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;
|
struct udevice *dev;
|
||||||
int ret;
|
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) {
|
if (devnum == -1) {
|
||||||
ret = blk_find_max_devnum(if_type);
|
ret = blk_find_max_devnum(if_type);
|
||||||
if (ret == -ENODEV)
|
if (ret == -ENODEV)
|
||||||
@ -457,6 +448,15 @@ int blk_create_device(struct udevice *parent, const char *drv_name,
|
|||||||
else
|
else
|
||||||
devnum = ret + 1;
|
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;
|
desc->devnum = devnum;
|
||||||
*devp = dev;
|
*devp = dev;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user