Hi Simon,

> On May 4, 2015, at 20:31 , Simon Glass <s...@chromium.org> wrote:
> 
> If the mmc device is non-removable (as indicated by the device tree), set
> the flag so that users of the device know.
> 
> Signed-off-by: Simon Glass <s...@chromium.org>
> ---
> 
> drivers/mmc/tegra_mmc.c | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/mmc/tegra_mmc.c b/drivers/mmc/tegra_mmc.c
> index 2cd8cf1..5c9c54a 100644
> --- a/drivers/mmc/tegra_mmc.c
> +++ b/drivers/mmc/tegra_mmc.c
> @@ -528,7 +528,7 @@ static const struct mmc_ops tegra_mmc_ops = {
>       .getcd          = tegra_mmc_getcd,
> };
> 
> -static int do_mmc_init(int dev_index)
> +static int do_mmc_init(int dev_index, bool removable)
> {
>       struct mmc_host *host;
>       struct mmc *mmc;
> @@ -573,6 +573,7 @@ static int do_mmc_init(int dev_index)
>       host->cfg.b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT;
> 
>       mmc = mmc_create(&host->cfg, host);
> +     mmc->block_dev.removable = removable;
>       if (mmc == NULL)
>               return -1;
> 
> @@ -586,7 +587,8 @@ static int do_mmc_init(int dev_index)
>  * @param node                Device index (0-3)
>  * @param host                Structure to fill in (reg, width, mmc_id)
>  */
> -static int mmc_get_config(const void *blob, int node, struct mmc_host *host)
> +static int mmc_get_config(const void *blob, int node, struct mmc_host *host,
> +                       bool *removablep)
> {
>       debug("%s: node = %d\n", __func__, node);
> 
> @@ -619,6 +621,7 @@ static int mmc_get_config(const void *blob, int node, 
> struct mmc_host *host)
>                                  GPIOD_IS_IN);
>       gpio_request_by_name_nodev(blob, node, "power-gpios", 0,
>                                  &host->pwr_gpio, GPIOD_IS_OUT);
> +     *removablep = !fdtdec_get_bool(blob, node, "non-removable");
> 
>       debug("%s: found controller at %p, width = %d, periph_id = %d\n",
>               __func__, host->reg, host->width, host->mmc_id);
> @@ -636,6 +639,7 @@ static int mmc_get_config(const void *blob, int node, 
> struct mmc_host *host)
> static int process_nodes(const void *blob, int node_list[], int count)
> {
>       struct mmc_host *host;
> +     bool removable;
>       int i, node;
> 
>       debug("%s: count = %d\n", __func__, count);
> @@ -649,11 +653,11 @@ static int process_nodes(const void *blob, int 
> node_list[], int count)
>               host = &mmc_host[i];
>               host->id = i;
> 
> -             if (mmc_get_config(blob, node, host)) {
> +             if (mmc_get_config(blob, node, host, &removable)) {
>                       printf("%s: failed to decode dev %d\n", __func__, i);
>                       return -1;
>               }
> -             do_mmc_init(i);
> +             do_mmc_init(i, removable);
>       }
>       return 0;
> }
> -- 
> 2.2.0.rc0.207.ga3a616c
> 

Applied, thanks.

— Pantelis

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to