On Tue, 15 Oct 2019 17:24:22 +0000 (UTC)
Ruslan Bukin <b...@freebsd.org> wrote:

> Author: br
> Date: Tue Oct 15 17:24:21 2019
> New Revision: 353575
> URL: https://svnweb.freebsd.org/changeset/base/353575
> 
> Log:
>   Fix dwmmc(4) driver attachment when ext_resources are not present.
>   
>   Ignore only ENOENT (no DTS properties found) and ENODEV (driver not
>   present) non-zero return values from ext_resources.
>   
>   Reviewed by:        manu
>   Sponsored by:       DARPA, AFRL
>   Differential Revision:      https://reviews.freebsd.org/D22043
> 
> Modified:
>   head/sys/dev/mmc/host/dwmmc.c

 I've just realized that you are probably using the SOCFPGA kernel
configuration and it doesn't have option EXT_RESOURCES so how did you
got those errors ?

> Modified: head/sys/dev/mmc/host/dwmmc.c
> ==============================================================================
> --- head/sys/dev/mmc/host/dwmmc.c     Tue Oct 15 17:17:16 2019        
> (r353574)
> +++ head/sys/dev/mmc/host/dwmmc.c     Tue Oct 15 17:24:21 2019        
> (r353575)
> @@ -457,20 +457,32 @@ parse_fdt(struct dwmmc_softc *sc)
>  
>       /* IP block reset is optional */
>       error = hwreset_get_by_ofw_name(sc->dev, 0, "reset", &sc->hwreset);
> -     if (error != 0 && error != ENOENT)
> +     if (error != 0 &&
> +         error != ENOENT &&
> +         error != ENODEV) {
>               device_printf(sc->dev, "Cannot get reset\n");
> +             goto fail;
> +     }
>  
>       /* vmmc regulator is optional */
>       error = regulator_get_by_ofw_property(sc->dev, 0, "vmmc-supply",
>            &sc->vmmc);
> -     if (error != 0 && error != ENOENT)
> +     if (error != 0 &&
> +         error != ENOENT &&
> +         error != ENODEV) {
>               device_printf(sc->dev, "Cannot get regulator 'vmmc-supply'\n");
> +             goto fail;
> +     }
>  
>       /* vqmmc regulator is optional */
>       error = regulator_get_by_ofw_property(sc->dev, 0, "vqmmc-supply",
>            &sc->vqmmc);
> -     if (error != 0 && error != ENOENT)
> +     if (error != 0 &&
> +         error != ENOENT &&
> +         error != ENODEV) {
>               device_printf(sc->dev, "Cannot get regulator 'vqmmc-supply'\n");
> +             goto fail;
> +     }
>  
>       /* Assert reset first */
>       if (sc->hwreset != NULL) {
> @@ -483,8 +495,12 @@ parse_fdt(struct dwmmc_softc *sc)
>  
>       /* BIU (Bus Interface Unit clock) is optional */
>       error = clk_get_by_ofw_name(sc->dev, 0, "biu", &sc->biu);
> -     if (error != 0 && error != ENOENT)
> +     if (error != 0 &&
> +         error != ENOENT &&
> +         error != ENODEV) {
>               device_printf(sc->dev, "Cannot get 'biu' clock\n");
> +             goto fail;
> +     }
>  
>       if (sc->biu) {
>               error = clk_enable(sc->biu);
> @@ -499,8 +515,12 @@ parse_fdt(struct dwmmc_softc *sc)
>        * if no clock-frequency property is given
>        */
>       error = clk_get_by_ofw_name(sc->dev, 0, "ciu", &sc->ciu);
> -     if (error != 0 && error != ENOENT)
> +     if (error != 0 &&
> +         error != ENOENT &&
> +         error != ENODEV) {
>               device_printf(sc->dev, "Cannot get 'ciu' clock\n");
> +             goto fail;
> +     }
>  
>       if (sc->ciu) {
>               if (bus_hz != 0) {


-- 
Emmanuel Vadot <m...@bidouilliste.com>
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to