dm: blk: Allow finding block devices without probing

Sometimes it is useful to be able to find a block device without also
probing it. Add a function for this as well as the associated test.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2017-04-23 20:02:05 -06:00
parent e7017a3c7d
commit 6139281a64
3 changed files with 48 additions and 3 deletions

View File

@@ -363,7 +363,7 @@ int blk_next_device(struct udevice **devp)
} while (1);
}
int blk_get_device(int if_type, int devnum, struct udevice **devp)
int blk_find_device(int if_type, int devnum, struct udevice **devp)
{
struct uclass *uc;
struct udevice *dev;
@@ -379,13 +379,24 @@ int blk_get_device(int if_type, int devnum, struct udevice **devp)
if_type, devnum, dev->name, desc->if_type, desc->devnum);
if (desc->if_type == if_type && desc->devnum == devnum) {
*devp = dev;
return device_probe(dev);
return 0;
}
}
return -ENODEV;
}
int blk_get_device(int if_type, int devnum, struct udevice **devp)
{
int ret;
ret = blk_find_device(if_type, devnum, devp);
if (ret)
return ret;
return device_probe(*devp);
}
unsigned long blk_dread(struct blk_desc *block_dev, lbaint_t start,
lbaint_t blkcnt, void *buffer)
{