Minor comment,
Maybe Seungwon mentioned the prefix use as "dw_mmc".

Best Regards,
Jaehoon Chung

On 04/02/2013 03:09 PM, Thomas Abraham wrote:
> With device core now able to setup the default pin configuration,
> the pin configuration code based on the deprecated Samsung specific
> gpio bindings is removed.
> 
> Signed-off-by: Thomas Abraham <thomas.abra...@linaro.org>
> Acked-by: Linus Walleij <linus.wall...@linaro.org>
> Reviewed-by: Doug Anderson <diand...@chromium.org>
> Tested-by: Doug Anderson <diand...@chromium.org>
> ---
> 
> Hi Doug, Seungwon,
> 
> I apologize for the delaying in following up on the review comment.
> The setup_bus callback support has been removed in this patch. I did
> intend to retain the support for setup_bus callback in the previous
> version of this patch since any new platform that might use this
> driver and need such a callback would have this callback ready for
> use. But it seems removing the setup_bus callback is preferred, so
> I am fine with it.
> 
> Thomas.
> 
>  drivers/mmc/host/dw_mmc-exynos.c |   38 
> --------------------------------------
>  drivers/mmc/host/dw_mmc.c        |   14 +-------------
>  drivers/mmc/host/dw_mmc.h        |    3 ---
>  3 files changed, 1 insertions(+), 54 deletions(-)
> 
> diff --git a/drivers/mmc/host/dw_mmc-exynos.c 
> b/drivers/mmc/host/dw_mmc-exynos.c
> index 72fd0f2..467d043 100644
> --- a/drivers/mmc/host/dw_mmc-exynos.c
> +++ b/drivers/mmc/host/dw_mmc-exynos.c
> @@ -152,43 +152,6 @@ static int dw_mci_exynos_parse_dt(struct dw_mci *host)
>       return 0;
>  }
>  
> -static int dw_mci_exynos_setup_bus(struct dw_mci *host,
> -                             struct device_node *slot_np, u8 bus_width)
> -{
> -     int idx, gpio, ret;
> -
> -     if (!slot_np)
> -             return -EINVAL;
> -
> -     /* cmd + clock + bus-width pins */
> -     for (idx = 0; idx < NUM_PINS(bus_width); idx++) {
> -             gpio = of_get_gpio(slot_np, idx);
> -             if (!gpio_is_valid(gpio)) {
> -                     dev_err(host->dev, "invalid gpio: %d\n", gpio);
> -                     return -EINVAL;
> -             }
> -
> -             ret = devm_gpio_request(host->dev, gpio, "dw-mci-bus");
> -             if (ret) {
> -                     dev_err(host->dev, "gpio [%d] request failed\n", gpio);
> -                     return -EBUSY;
> -             }
> -     }
> -
> -     if (host->pdata->quirks & DW_MCI_QUIRK_BROKEN_CARD_DETECTION)
> -             return 0;
> -
> -     gpio = of_get_named_gpio(slot_np, "samsung,cd-pinmux-gpio", 0);
> -     if (gpio_is_valid(gpio)) {
> -             if (devm_gpio_request(host->dev, gpio, "dw-mci-cd"))
> -                     dev_err(host->dev, "gpio [%d] request failed\n", gpio);
> -     } else {
> -             dev_info(host->dev, "cd gpio not available");
> -     }
> -
> -     return 0;
> -}
> -
>  /* Exynos5250 controller specific capabilities */
>  static unsigned long exynos5250_dwmmc_caps[4] = {
>       MMC_CAP_UHS_DDR50 | MMC_CAP_1_8V_DDR |
> @@ -205,7 +168,6 @@ static const struct dw_mci_drv_data exynos5250_drv_data = 
> {
>       .prepare_command        = dw_mci_exynos_prepare_command,
>       .set_ios                = dw_mci_exynos_set_ios,
>       .parse_dt               = dw_mci_exynos_parse_dt,
> -     .setup_bus              = dw_mci_exynos_setup_bus,
>  };
>  
>  static const struct of_device_id dw_mci_exynos_match[] = {
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index 9834221..adb1b7d 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -1878,7 +1878,7 @@ static int dw_mci_init_slot(struct dw_mci *host, 
> unsigned int id)
>       struct mmc_host *mmc;
>       struct dw_mci_slot *slot;
>       const struct dw_mci_drv_data *drv_data = host->drv_data;
> -     int ctrl_id, ret;
> +     int ctrl_id;
>       u8 bus_width;
>  
>       mmc = mmc_alloc_host(sizeof(struct dw_mci_slot), host->dev);
> @@ -1935,14 +1935,6 @@ static int dw_mci_init_slot(struct dw_mci *host, 
> unsigned int id)
>       else
>               bus_width = 1;
>  
> -     if (drv_data && drv_data->setup_bus) {
> -             struct device_node *slot_np;
> -             slot_np = dw_mci_of_find_slot_node(host->dev, slot->id);
> -             ret = drv_data->setup_bus(host, slot_np, bus_width);
> -             if (ret)
> -                     goto err_setup_bus;
> -     }
> -
>       switch (bus_width) {
>       case 8:
>               mmc->caps |= MMC_CAP_8_BIT_DATA;
> @@ -2006,10 +1998,6 @@ static int dw_mci_init_slot(struct dw_mci *host, 
> unsigned int id)
>       queue_work(host->card_workqueue, &host->card_work);
>  
>       return 0;
> -
> -err_setup_bus:
> -     mmc_free_host(mmc);
> -     return -EINVAL;
>  }
>  
>  static void dw_mci_cleanup_slot(struct dw_mci_slot *slot, unsigned int id)
> diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
> index 53b8fd9..0b74189 100644
> --- a/drivers/mmc/host/dw_mmc.h
> +++ b/drivers/mmc/host/dw_mmc.h
> @@ -190,7 +190,6 @@ extern int dw_mci_resume(struct dw_mci *host);
>   * @prepare_command: handle CMD register extensions.
>   * @set_ios: handle bus specific extensions.
>   * @parse_dt: parse implementation specific device tree properties.
> - * @setup_bus: initialize io-interface
>   *
>   * Provide controller implementation specific extensions. The usage of this
>   * data structure is fully optional and usage of each member in this 
> structure
> @@ -203,7 +202,5 @@ struct dw_mci_drv_data {
>       void            (*prepare_command)(struct dw_mci *host, u32 *cmdr);
>       void            (*set_ios)(struct dw_mci *host, struct mmc_ios *ios);
>       int             (*parse_dt)(struct dw_mci *host);
> -     int             (*setup_bus)(struct dw_mci *host,
> -                             struct device_node *slot_np, u8 bus_width);
>  };
>  #endif /* _DW_MMC_H_ */
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to