diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2020-03-06 15:01:14 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2020-08-19 07:34:47 +0200 |
commit | 25c7a033c0a5a595354dc9bc55449f9c390bf3c8 (patch) | |
tree | 9b1e86a0d1317ba244d392ca08f6e56a79cc9fe2 /drivers/usb | |
parent | e17c408b19a57736d4cc3d5bf6f0a2b61b6f3005 (diff) | |
download | barebox-25c7a033c0a5a595354dc9bc55449f9c390bf3c8.tar.gz barebox-25c7a033c0a5a595354dc9bc55449f9c390bf3c8.tar.xz |
usb: Add a slice to usb host controllers
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/core/usb.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c index 30c251f405..c068c64c6b 100644 --- a/drivers/usb/core/usb.c +++ b/drivers/usb/core/usb.c @@ -75,28 +75,30 @@ static int host_busnum = 1; static inline int usb_host_acquire(struct usb_host *host) { - if (host->sem) + if (slice_acquired(&host->slice)) return -EAGAIN; - host->sem++; + + slice_acquire(&host->slice); + return 0; } static inline void usb_host_release(struct usb_host *host) { - if (host->sem > 0) - host->sem--; + slice_release(&host->slice); } int usb_register_host(struct usb_host *host) { list_add_tail(&host->list, &host_list); host->busnum = host_busnum++; - host->sem = 0; + slice_init(&host->slice, dev_name(host->hw_dev)); return 0; } void usb_unregister_host(struct usb_host *host) { + slice_exit(&host->slice); list_del(&host->list); } |