Skip to content
Snippets Groups Projects
Commit a0269bb6 authored by Fiach Antaw's avatar Fiach Antaw Committed by Jaehoon Chung
Browse files

mmc: init mmc block devices on probe


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: default avatarFiach Antaw <fiach.antaw@uqconnect.edu.au>
parent 6aca17c9
No related branches found
No related tags found
No related merge requests found
......@@ -254,6 +254,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
......@@ -267,6 +278,7 @@ U_BOOT_DRIVER(mmc_blk) = {
.name = "mmc_blk",
.id = UCLASS_BLK,
.ops = &mmc_blk_ops,
.probe = mmc_blk_probe,
};
#endif /* CONFIG_BLK */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment