dm: blk: Fix allocation of block-device numbering
Due to code ordering the block devices are not numbered sequentially. Fix this. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
cd995a8aa0
commit
72a85c0d2d
@ -439,15 +439,6 @@ int blk_create_device(struct udevice *parent, const char *drv_name,
|
||||
struct udevice *dev;
|
||||
int ret;
|
||||
|
||||
ret = device_bind_driver(parent, drv_name, name, &dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
desc = dev_get_uclass_platdata(dev);
|
||||
desc->if_type = if_type;
|
||||
desc->blksz = blksz;
|
||||
desc->lba = size / blksz;
|
||||
desc->part_type = PART_TYPE_UNKNOWN;
|
||||
desc->bdev = dev;
|
||||
if (devnum == -1) {
|
||||
ret = blk_find_max_devnum(if_type);
|
||||
if (ret == -ENODEV)
|
||||
@ -457,6 +448,15 @@ int blk_create_device(struct udevice *parent, const char *drv_name,
|
||||
else
|
||||
devnum = ret + 1;
|
||||
}
|
||||
ret = device_bind_driver(parent, drv_name, name, &dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
desc = dev_get_uclass_platdata(dev);
|
||||
desc->if_type = if_type;
|
||||
desc->blksz = blksz;
|
||||
desc->lba = size / blksz;
|
||||
desc->part_type = PART_TYPE_UNKNOWN;
|
||||
desc->bdev = dev;
|
||||
desc->devnum = devnum;
|
||||
*devp = dev;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user