Skip to contentSkip to conversation

usb: host/gadget: Miscellaneous fixes

PATCH Superseded Kishon Vijay Abraham I 4 participants 10 messages Aug 10, 2015 – Aug 11, 2015

Subsystems (3)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

cover usb: host/gadget: Miscellaneous fixes

This patch series is split from [1] to contain only the usb host/gadget fixes.

[1] -> http://permalink.gmane.org/gmane.comp.boot-loaders.u-boot/229188

Kishon Vijay Abraham I (3):
usb: gadget: ether: Perform board initialization from ethernet gadget
driver
usb: host: xhci-omap: invoke board_usb_cleanup in xhci_hcd_stop
usb: gadget: ether: populate _reset_ callback

 drivers/usb/gadget/ether.c   |    5 +++++
 drivers/usb/host/xhci-omap.c |    1 +
 2 files changed, 6 insertions(+)
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 1/3 usb: gadget: ether: Perform board initialization from ethernet gadget driver

Ethernet gadget driver can be used both by both SPL and u-boot. Since usb_eth_init() is the entry point for ethernet gadget driver, perform board initialization there. Also perform the cleanup in usb_eth_halt.

---
 drivers/usb/gadget/ether.c |    4 ++++
 1 file changed, 4 insertions(+)
drivers/usb/gadget/ether.c +4 -0
index 141ff8b..850ba02 100644
@@ -15,6 +15,7 @@
 #include <linux/usb/cdc.h>
 #include <linux/usb/gadget.h>
 #include <net.h>
+#include <usb.h>
 #include <malloc.h>
 #include <linux/ctype.h>
 
@@ -2312,6 +2313,8 @@ static int usb_eth_init(struct eth_device *netdev, bd_t *bd)
 		goto fail;
 	}
 
+	board_usb_init(0, USB_INIT_DEVICE);
+
 	/* Configure default mac-addresses for the USB ethernet device */
 #ifdef CONFIG_USBNET_DEV_ADDR
 	strlcpy(dev_addr, CONFIG_USBNET_DEV_ADDR, sizeof(dev_addr));
@@ -2492,6 +2495,7 @@ void usb_eth_halt(struct eth_device *netdev)
 	}
 
 	usb_gadget_unregister_driver(&eth_driver);
+	board_usb_cleanup(0, USB_INIT_DEVICE);
 }
 
 static struct usb_gadget_driver eth_driver = {
Signature · 1 line
1.7.9.5
#2 lore raw

PATCH 1/3 usb: gadget: ether: Perform board initialization from ethernet gadget driver

Quoted 6 lines · Kishon Vijay Abraham I

Ethernet gadget driver can be used both by both SPL and u-boot. Since usb_eth_init() is the entry point for ethernet gadget driver, perform board initialization there. Also perform the cleanup in usb_eth_halt.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150810/ce13f412/attachment.sig>
#3 lore raw

PATCH 2/3 usb: host: xhci-omap: invoke board_usb_cleanup in xhci_hcd_stop

In reply to Kishon Vijay Abraham I

xhci omap driver has board_usb_init in xhci_hcd_init but doesn't have the corresponding cleanup function in xhci_hcd_stop.

Fix it here by invoking board_usb_cleanup() in xhci_hcd_stop().

---
 drivers/usb/host/xhci-omap.c |    1 +
 1 file changed, 1 insertion(+)
drivers/usb/host/xhci-omap.c +1 -0
index 3a55208..104e7a7 100644
@@ -96,4 +96,5 @@ void xhci_hcd_stop(int index)
 	struct omap_xhci *ctx = &omap;
 
 	omap_xhci_core_exit(ctx);
+	board_usb_cleanup(index, USB_INIT_HOST);
 }
Signature · 1 line
1.7.9.5
#4 lore raw

PATCH 2/3 usb: host: xhci-omap: invoke board_usb_cleanup in xhci_hcd_stop

Quoted 7 lines · Kishon Vijay Abraham I

xhci omap driver has board_usb_init in xhci_hcd_init but doesn't have the corresponding cleanup function in xhci_hcd_stop.

Fix it here by invoking board_usb_cleanup() in xhci_hcd_stop().

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150810/685772c7/attachment.sig>
#5 lore raw

PATCH 3/3 usb: gadget: ether: populate _reset_ callback

In reply to Kishon Vijay Abraham I

populate _reset_ callback to the USB ethernet gadget since UDC core expects every gadget driver to have the reset callback. This shouldn't be needed once the ethernet gadget driver is adapted to use the composite driver.

---
 drivers/usb/gadget/ether.c |    1 +
 1 file changed, 1 insertion(+)
drivers/usb/gadget/ether.c +1 -0
index 850ba02..53f4672 100644
@@ -2505,6 +2505,7 @@ static struct usb_gadget_driver eth_driver = {
 	.unbind		= eth_unbind,
 
 	.setup		= eth_setup,
+	.reset		= eth_disconnect,
 	.disconnect	= eth_disconnect,
 
 	.suspend	= eth_suspend,
Signature · 1 line
1.7.9.5
#6 lore raw

PATCH 3/3 usb: gadget: ether: populate _reset_ callback

Quoted 15 lines · Kishon Vijay Abraham I

populate _reset_ callback to the USB ethernet gadget since UDC core expects every gadget driver to have the reset callback. This shouldn't be needed once the ethernet gadget driver is adapted to use the composite driver.

---
 drivers/usb/gadget/ether.c |    1 +
 1 file changed, 1 insertion(+)
drivers/usb/gadget/ether.c +0 -0
index 850ba02..53f4672 100644

drivers/usb/gadget/ether.c static struct usb_gadget_driver eth_driver = { · line 2509

Quoted 5 lines
drivers/usb/gadget/ether.c +1 -0
@@ -2505,6 +2505,7 @@ static struct usb_gadget_driver eth_driver = {
 	.unbind		= eth_unbind,
 
 	.setup		= eth_setup,
+	.reset		= eth_disconnect,
 	.disconnect	= eth_disconnect,

I'm not sure about this one, Lukasz, can you please comment ?

drivers/usb/gadget/ether.c static struct usb_gadget_driver eth_driver = { · line 2511

Quoted 2 lines
drivers/usb/gadget/ether.c +0 -0
 	.suspend	= eth_suspend,

Best regards,
Marek Vasut

#7 lore raw

PATCH 3/3 usb: gadget: ether: populate _reset_ callback

Hi Marek,

Quoted 19 lines
Quoted 17 lines · Kishon Vijay Abraham I

populate _reset_ callback to the USB ethernet gadget since UDC core expects every gadget driver to have the reset callback. This shouldn't be needed once the ethernet gadget driver is adapted to use the composite driver.

---
 drivers/usb/gadget/ether.c |    1 +
 1 file changed, 1 insertion(+)
drivers/usb/gadget/ether.c +0 -0
index 850ba02..53f4672 100644
@@ -2505,6 +2505,7 @@ static struct usb_gadget_driver eth_driver = {
 	.unbind		= eth_unbind,
 
Quoted 5 lines

drivers/usb/gadget/ether.c static struct usb_gadget_driver eth_driver = { · line 2509

Quoted 3 lines
drivers/usb/gadget/ether.c +1 -0
 	.setup		= eth_setup,
+	.reset		= eth_disconnect,
 	.disconnect	= eth_disconnect,

I'm not sure about this one, Lukasz, can you please comment ?

This is correct.

Quoted 6 lines

drivers/usb/gadget/ether.c static struct usb_gadget_driver eth_driver = { · line 2511

Quoted 3 lines
drivers/usb/gadget/ether.c +0 -0
 	.suspend	= eth_suspend,

Best regards,
Marek Vasut

Signature · 5 lines
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
#8 lore raw

PATCH 3/3 usb: gadget: ether: populate _reset_ callback

In reply to Kishon Vijay Abraham I
Quoted 6 lines · Kishon Vijay Abraham I

populate _reset_ callback to the USB ethernet gadget since UDC core expects every gadget driver to have the reset callback. This shouldn't be needed once the ethernet gadget driver is adapted to use the composite driver.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150810/5df7665b/attachment.sig>
#9 lore raw

cover usb: host/gadget: Miscellaneous fixes

In reply to Kishon Vijay Abraham I

Hi Kishon,

Quoted 12 lines

This patch series is split from [1] to contain only the usb host/gadget fixes.

[1] ->
http://permalink.gmane.org/gmane.comp.boot-loaders.u-boot/229188

Kishon Vijay Abraham I (3):
usb: gadget: ether: Perform board initialization from ethernet
gadget driver
usb: host: xhci-omap: invoke board_usb_cleanup in xhci_hcd_stop
usb: gadget: ether: populate _reset_ callback

Quoted 4 lines
 drivers/usb/gadget/ether.c   |    5 +++++
 drivers/usb/host/xhci-omap.c |    1 +
 2 files changed, 6 insertions(+)
Signature · 5 lines
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group