[PATCH v2 6/6] mmc: omap_hsmmc: Don't expect MMC1 to always have vmmc supply
S, Venkatraman
svenkatr at ti.com
Tue Feb 21 07:13:54 EST 2012
On Tue, Feb 21, 2012 at 3:33 PM, Rajendra Nayak <rnayak at ti.com> wrote:
>
> MMC1 is not the only instance that can be used/wired for SD.
> So remove this assumption from the driver.
>
> Now that all the mmc id based usage is removed, get rid
> of all the DEVID defines and also the 'id' field from the
> omap_hsmmc_host structure.
>
> Signed-off-by: Rajendra Nayak <rnayak at ti.com>
> Tested-by: Venkatraman S <svenkatr at ti.com>
> Tested-by: Balaji T K <balajitk at ti.com>
For the whole series,
Acked-by: Venkatraman S <svenkatr at ti.com>
> ---
> drivers/mmc/host/omap_hsmmc.c | 31 ++-----------------------------
> 1 files changed, 2 insertions(+), 29 deletions(-)
>
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index 17e264b..e3eb9d4 100644
> --- a/drivers/mmc/host/omap_hsmmc.c
> +++ b/drivers/mmc/host/omap_hsmmc.c
> @@ -106,17 +106,6 @@
> #define SOFTRESET (1 << 1)
> #define RESETDONE (1 << 0)
>
> -/*
> - * FIXME: Most likely all the data using these _DEVID defines should come
> - * from the platform_data, or implemented in controller and slot specific
> - * functions.
> - */
> -#define OMAP_MMC1_DEVID 0
> -#define OMAP_MMC2_DEVID 1
> -#define OMAP_MMC3_DEVID 2
> -#define OMAP_MMC4_DEVID 3
> -#define OMAP_MMC5_DEVID 4
> -
> #define MMC_AUTOSUSPEND_DELAY 100
> #define MMC_TIMEOUT_MS 20
> #define OMAP_MMC_MIN_CLOCK 400000
> @@ -164,7 +153,6 @@ struct omap_hsmmc_host {
> void __iomem *base;
> resource_size_t mapbase;
> spinlock_t irq_lock; /* Prevent races with irq handler
> */
> - unsigned int id;
> unsigned int dma_len;
> unsigned int dma_sg_idx;
> unsigned char bus_mode;
> @@ -300,7 +288,6 @@ static int omap_hsmmc_set_power(struct device *dev,
> int slot, int power_on,
> static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
> {
> struct regulator *reg;
> - int ret = 0;
> int ocr_value = 0;
>
> mmc_slot(host).set_power = omap_hsmmc_set_power;
> @@ -308,15 +295,6 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host
> *host)
> reg = regulator_get(host->dev, "vmmc");
> if (IS_ERR(reg)) {
> dev_dbg(host->dev, "vmmc regulator missing\n");
> - /*
> - * HACK: until fixed.c regulator is usable,
> - * we don't require a main regulator
> - * for MMC2 or MMC3
> - */
> - if (host->id == OMAP_MMC1_DEVID) {
> - ret = PTR_ERR(reg);
> - goto err;
> - }
> } else {
> host->vcc = reg;
> ocr_value = mmc_regulator_get_ocrmask(reg);
> @@ -324,8 +302,8 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host
> *host)
> mmc_slot(host).ocr_mask = ocr_value;
> } else {
> if (!(mmc_slot(host).ocr_mask & ocr_value)) {
> - pr_err("MMC%d ocrmask %x is not
> supported\n",
> - host->id,
> mmc_slot(host).ocr_mask);
> + pr_err("MMC ocrmask %x is not
> supported\n",
> + mmc_slot(host).ocr_mask);
> mmc_slot(host).ocr_mask = 0;
> return -EINVAL;
> }
> @@ -358,10 +336,6 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host
> *host)
> }
>
> return 0;
> -
> -err:
> - mmc_slot(host).set_power = NULL;
> - return ret;
> }
>
> static void omap_hsmmc_reg_put(struct omap_hsmmc_host *host)
> @@ -1791,7 +1765,6 @@ static int __init omap_hsmmc_probe(struct
> platform_device *pdev)
> host->dev->dma_mask = &pdata->dma_mask;
> host->dma_ch = -1;
> host->irq = irq;
> - host->id = pdev->id;
> host->slot_id = 0;
> host->mapbase = res->start;
> host->base = ioremap(host->mapbase, SZ_4K);
> --
> 1.7.1
>
More information about the linux-arm-kernel
mailing list