diff options
author | Simon Glass <sjg@chromium.org> | 2016-03-13 14:22:33 (GMT) |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2016-03-18 03:27:39 (GMT) |
commit | 9b9775687f85c8b91d849e7dfdc380db4730672c (patch) | |
tree | 2489ce7db4881e745531b27d0f343e2afeb86932 /drivers | |
parent | c81d0d215ea38d3b8cf3684a57f4ecaca3c01b03 (diff) | |
download | u-boot-9b9775687f85c8b91d849e7dfdc380db4730672c.tar.xz |
dm: usb: Unbind old block devices when shutting down USB
When 'usb start' is used, block devices are created for any USB flash sticks
and disks, etc. When 'usb stop' is used, these block devices are currently
not removed.
We don't want old block devices hanging around since they can still be
visible to U-Boot. Therefore, when USB is shut down, remove and unbind all
the block devices created by the USB subsystem.
Possibly we should unbind all devices which don't cause problems by being
unbound. Most likely we can remove everything except USB controllers, hubs
and emulators. We can consider that later.
Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/host/usb-uclass.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/usb/host/usb-uclass.c b/drivers/usb/host/usb-uclass.c index 50538e0..69c9a50 100644 --- a/drivers/usb/host/usb-uclass.c +++ b/drivers/usb/host/usb-uclass.c @@ -159,7 +159,11 @@ int usb_stop(void) if (ret && !err) err = ret; } - +#ifdef CONFIG_BLK + ret = blk_unbind_all(IF_TYPE_USB); + if (ret && !err) + err = ret; +#endif #ifdef CONFIG_SANDBOX struct udevice *dev; |