[PATCH 10/19] usb: Add a slice to usb host controllers

2020-05-20 Thread Sascha Hauer
Signed-off-by: Sascha Hauer 
---
 drivers/usb/core/usb.c | 6 ++
 include/usb/usb.h  | 7 +++
 2 files changed, 13 insertions(+)

diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index 30c251f405..f25e350f15 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -78,11 +78,16 @@ static inline int usb_host_acquire(struct usb_host *host)
if (host->sem)
return -EAGAIN;
host->sem++;
+
+   slice_acquire(>slice);
+
return 0;
 }
 
 static inline void usb_host_release(struct usb_host *host)
 {
+   slice_release(>slice);
+
if (host->sem > 0)
host->sem--;
 }
@@ -92,6 +97,7 @@ int usb_register_host(struct usb_host *host)
list_add_tail(>list, _list);
host->busnum = host_busnum++;
host->sem = 0;
+   slice_init(>slice, dev_name(host->hw_dev));
return 0;
 }
 
diff --git a/include/usb/usb.h b/include/usb/usb.h
index c2085eae87..1b51a00ddc 100644
--- a/include/usb/usb.h
+++ b/include/usb/usb.h
@@ -20,6 +20,7 @@
 #define _USB_H_
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -165,11 +166,17 @@ struct usb_host {
struct usb_device *root_dev;
int sem;
struct usb_phy *usbphy;
+   struct slice slice;
 };
 
 int usb_register_host(struct usb_host *);
 void usb_unregister_host(struct usb_host *host);
 
+static inline struct slice *usb_device_slice(struct usb_device *udev)
+{
+   return >host->slice;
+}
+
 int usb_host_detect(struct usb_host *host);
 
 int usb_set_protocol(struct usb_device *dev, int ifnum, int protocol);
-- 
2.26.2


___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


[PATCH 10/19] usb: Add a slice to usb host controllers

2020-03-12 Thread Sascha Hauer
Signed-off-by: Sascha Hauer 
---
 drivers/usb/core/usb.c | 6 ++
 include/usb/usb.h  | 7 +++
 2 files changed, 13 insertions(+)

diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index 1c3dcb79a8..bc122f7d7a 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -83,11 +83,16 @@ static inline int usb_host_acquire(struct usb_host *host)
if (host->sem)
return -EAGAIN;
host->sem++;
+
+   slice_acquire(>slice);
+
return 0;
 }
 
 static inline void usb_host_release(struct usb_host *host)
 {
+   slice_release(>slice);
+
if (host->sem > 0)
host->sem--;
 }
@@ -97,6 +102,7 @@ int usb_register_host(struct usb_host *host)
list_add_tail(>list, _list);
host->busnum = host_busnum++;
host->sem = 0;
+   slice_init(>slice, dev_name(host->hw_dev));
return 0;
 }
 
diff --git a/include/usb/usb.h b/include/usb/usb.h
index 95dedfd5b7..d730578fd7 100644
--- a/include/usb/usb.h
+++ b/include/usb/usb.h
@@ -23,6 +23,7 @@
 #define _USB_H_
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -154,11 +155,17 @@ struct usb_host {
struct usb_device *root_dev;
int sem;
struct usb_phy *usbphy;
+   struct slice slice;
 };
 
 int usb_register_host(struct usb_host *);
 void usb_unregister_host(struct usb_host *host);
 
+static inline struct slice *usb_device_slice(struct usb_device *udev)
+{
+   return >host->slice;
+}
+
 int usb_host_detect(struct usb_host *host);
 
 int usb_set_protocol(struct usb_device *dev, int ifnum, int protocol);
-- 
2.25.1


___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox