[PATCH 01/12] mmc: mmc_spi: Support CD/RO GPIOs

Ryan Mallon rmallon at gmail.com
Thu Jul 25 19:45:26 EDT 2013


On 26/07/13 09:26, Laurent Pinchart wrote:
> Add support for passing CD/RO GPIO numbers directly to the mmc_spi
> driver instead of relying solely on board code callbacks to retrieve the
> CD/RO signals values.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>
> ---
>  drivers/mmc/host/mmc_spi.c    | 32 +++++++++++++++++++++---------
>  drivers/mmc/host/of_mmc_spi.c | 46 +++++++++++--------------------------------
>  include/linux/spi/mmc_spi.h   | 11 +++++++++++
>  3 files changed, 46 insertions(+), 43 deletions(-)
> 
> diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c
> index 74145d1..4e83908 100644
> --- a/drivers/mmc/host/mmc_spi.c
> +++ b/drivers/mmc/host/mmc_spi.c
> @@ -36,6 +36,7 @@
>  
>  #include <linux/mmc/host.h>
>  #include <linux/mmc/mmc.h>		/* for R1_SPI_* bit values */
> +#include <linux/mmc/slot-gpio.h>
>  
>  #include <linux/spi/spi.h>
>  #include <linux/spi/mmc_spi.h>
> @@ -1278,11 +1279,8 @@ static int mmc_spi_get_ro(struct mmc_host *mmc)
>  
>  	if (host->pdata && host->pdata->get_ro)
>  		return !!host->pdata->get_ro(mmc->parent);
> -	/*
> -	 * Board doesn't support read only detection; let the mmc core
> -	 * decide what to do.
> -	 */
> -	return -ENOSYS;
> +	else
> +		return mmc_gpio_get_ro(mmc);

Why not just have the board file assign mmc_gpio_get_ro as
host->pdata->get_ro? This would eliminate the need for the
MMC_SPI_USE_RO_GPIO flag.

Also, if host->pdata->get_ro is not set then this will assume
mmc_gpio_get_ro is valid, even if MMC_SPI_USE_RO_GPIO is not set. I'm
guessing it will end up returning -ENOSYS, but they way the code reads
is that if the host doesn't have get_ro function set, then it is must be
a gpio.

Same applies for the other callbacks.

~Ryan




More information about the linux-arm-kernel mailing list