Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Oct 2019 19:34:51 +0200
From:      Emmanuel Vadot <manu@bidouilliste.com>
To:        Ruslan Bukin <br@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r353575 - head/sys/dev/mmc/host
Message-ID:  <20191015193451.f7c9388f971432e6d1be369b@bidouilliste.com>
In-Reply-To: <201910151724.x9FHOM55015499@repo.freebsd.org>
References:  <201910151724.x9FHOM55015499@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 15 Oct 2019 17:24:22 +0000 (UTC)
Ruslan Bukin <br@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 <manu@bidouilliste.com>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20191015193451.f7c9388f971432e6d1be369b>