summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2020-03-06 15:01:14 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2020-08-19 07:34:47 +0200
commit25c7a033c0a5a595354dc9bc55449f9c390bf3c8 (patch)
tree9b1e86a0d1317ba244d392ca08f6e56a79cc9fe2 /drivers/usb
parente17c408b19a57736d4cc3d5bf6f0a2b61b6f3005 (diff)
downloadbarebox-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.c12
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);
}