On 01/25/2017 06:00 PM, Fiach Antaw wrote:
> MMC devices accessed exclusively via the driver model were not
> being initialized before being exposed as block devices, causing
> issues in scenarios where the MMC device is first accessed via the
> uclass block interface.
> 
> Signed-off-by: Fiach Antaw <fiach.an...@uqconnect.edu.au>

Applied on u-boot-mmc. Thanks!

Best Regards,
Jaehoon Chung

> 
> ---
> 
>  drivers/mmc/mmc-uclass.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/drivers/mmc/mmc-uclass.c b/drivers/mmc/mmc-uclass.c
> index 2fe5d61..a1c31a5 100644
> --- a/drivers/mmc/mmc-uclass.c
> +++ b/drivers/mmc/mmc-uclass.c
> @@ -247,6 +247,17 @@ static int mmc_select_hwpart(struct udevice *bdev, int 
> hwpart)
>       return mmc_switch_part(mmc, hwpart);
>  }
>  
> +static int mmc_blk_probe(struct udevice *dev)
> +{
> +     struct blk_desc *block_dev = dev_get_uclass_platdata(dev);
> +     int dev_num = block_dev->devnum;
> +     struct mmc *mmc = find_mmc_device(dev_num);
> +
> +     if (!mmc)
> +             return -ENODEV;
> +     return mmc_init(mmc);
> +}
> +
>  static const struct blk_ops mmc_blk_ops = {
>       .read   = mmc_bread,
>  #ifndef CONFIG_SPL_BUILD
> @@ -260,6 +271,7 @@ U_BOOT_DRIVER(mmc_blk) = {
>       .name           = "mmc_blk",
>       .id             = UCLASS_BLK,
>       .ops            = &mmc_blk_ops,
> +     .probe          = mmc_blk_probe,
>  };
>  #endif /* CONFIG_BLK */
>  
> 

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

Reply via email to