Date: Mon, 2 Oct 2017 17:20:07 +0000 (UTC) From: Emmanuel Vadot <manu@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r324214 - head/sys/arm/allwinner Message-ID: <201710021720.v92HK7oX046515@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: manu Date: Mon Oct 2 17:20:07 2017 New Revision: 324214 URL: https://svnweb.freebsd.org/changeset/base/324214 Log: Allwinner GPIO: Fail if we cannot enable a clock If we cannot enable a clock (which is required to have the device working), do not attach the device as it will not work. Modified: head/sys/arm/allwinner/a10_gpio.c Modified: head/sys/arm/allwinner/a10_gpio.c ============================================================================== --- head/sys/arm/allwinner/a10_gpio.c Mon Oct 2 16:39:12 2017 (r324213) +++ head/sys/arm/allwinner/a10_gpio.c Mon Oct 2 17:20:07 2017 (r324214) @@ -775,7 +775,7 @@ a10_gpio_attach(device_t dev) struct clk_list *clkp, *clkp_tmp; clk_t clk; hwreset_t rst = NULL; - int off, err; + int off, err, clkret; sc = device_get_softc(dev); sc->sc_dev = dev; @@ -815,12 +815,15 @@ a10_gpio_attach(device_t dev) error = hwreset_deassert(rst); if (error != 0) { device_printf(dev, "cannot de-assert reset\n"); - return (error); + goto fail; } } TAILQ_INIT(&sc->clk_list); - for (off = 0; clk_get_by_ofw_index(dev, 0, off, &clk) == 0; off++) { + for (off = 0, clkret = 0; clkret == 0; off++) { + clkret = clk_get_by_ofw_index(dev, 0, off, &clk); + if (clkret != 0) + break; err = clk_enable(clk); if (err != 0) { device_printf(dev, "Could not enable clock %s\n", @@ -830,6 +833,11 @@ a10_gpio_attach(device_t dev) clkp = malloc(sizeof(*clkp), M_DEVBUF, M_WAITOK | M_ZERO); clkp->clk = clk; TAILQ_INSERT_TAIL(&sc->clk_list, clkp, next); + } + if (clkret != 0 && clkret != ENOENT) { + device_printf(dev, "Could not find clock at offset %d (%d)\n", + off, clkret); + goto fail; } sc->sc_busdev = gpiobus_attach_bus(dev);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201710021720.v92HK7oX046515>