summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2012-01-04 21:55:09 +0000
committerFrank Gevaerts <frank@gevaerts.be>2012-01-04 21:55:09 +0000
commit4fcffcbdf34fc7a619c0626f8478cf06cdf1a043 (patch)
treead3a951e3ec9566b315807af8ab4045529c8878c /firmware/target
parentfd5524ff92b49d9fb14d3feaca4d26d86a05b2b2 (diff)
downloadrockbox-4fcffcbdf34fc7a619c0626f8478cf06cdf1a043.tar.gz
rockbox-4fcffcbdf34fc7a619c0626f8478cf06cdf1a043.zip
Reorganise USB initialisation to not depend on a specific enumeration sequence, by Bartosz Fabianowski, with minor tweaks by Michael Sevakis (FS#12497)
FreeBSD apparently sends a SET_ADDRESS first, which confused our code. This patch fixes that, and also simplifies the connection handling a bit. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31582 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/as3525/usb-as3525.c16
-rw-r--r--firmware/target/arm/imx233/usb-imx233.c5
-rw-r--r--firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c7
-rw-r--r--firmware/target/arm/pp/usb-fw-pp502x.c9
-rw-r--r--firmware/target/arm/rk27xx/usb-rk27xx.c5
5 files changed, 0 insertions, 42 deletions
diff --git a/firmware/target/arm/as3525/usb-as3525.c b/firmware/target/arm/as3525/usb-as3525.c
index 508906965e..99ae66dc15 100644
--- a/firmware/target/arm/as3525/usb-as3525.c
+++ b/firmware/target/arm/as3525/usb-as3525.c
@@ -58,22 +58,6 @@ void usb_remove_int(void)
58#endif 58#endif
59} 59}
60 60
61void usb_drv_usb_detect_event(void)
62{
63#if (CONFIG_CPU != AS3525v2 || defined(USE_ROCKBOX_USB)) \
64 && defined (USB_STATUS_BY_EVENT)
65/* Rebooting on USB plug can crash these players in a state where
66 * hardware power off (pressing the power button) doesn't work anymore
67 * TODO: Implement USB in rockbox for these players */
68 int oldstatus = disable_irq_save(); /* May come via USB thread */
69
70 if (usb_status == USB_INSERTED)
71 usb_status_event(USB_HOSTED);
72
73 restore_irq(oldstatus);
74#endif
75}
76
77int usb_detect(void) 61int usb_detect(void)
78{ 62{
79 return usb_status; 63 return usb_status;
diff --git a/firmware/target/arm/imx233/usb-imx233.c b/firmware/target/arm/imx233/usb-imx233.c
index e2bab4fef4..a89a2611ba 100644
--- a/firmware/target/arm/imx233/usb-imx233.c
+++ b/firmware/target/arm/imx233/usb-imx233.c
@@ -40,11 +40,6 @@ void usb_remove_int(void)
40 usb_status_event(USB_EXTRACTED); 40 usb_status_event(USB_EXTRACTED);
41} 41}
42 42
43void usb_drv_usb_detect_event()
44{
45 usb_status_event(USB_HOSTED);
46}
47
48void usb_attach(void) 43void usb_attach(void)
49{ 44{
50 usb_drv_attach(); 45 usb_drv_attach();
diff --git a/firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c b/firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c
index 1584ffb574..c838f65c8a 100644
--- a/firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c
+++ b/firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c
@@ -145,13 +145,6 @@ void usb_drv_int_enable(bool enable)
145 } 145 }
146} 146}
147 147
148/* Called during the setup packet request by the host */
149void usb_drv_usb_detect_event(void)
150{
151 if (usb_drv_powered())
152 usb_status_event(USB_HOSTED);
153}
154
155/* Called when reading the MBR */ 148/* Called when reading the MBR */
156void usb_fix_mbr(unsigned char *mbr) 149void usb_fix_mbr(unsigned char *mbr)
157{ 150{
diff --git a/firmware/target/arm/pp/usb-fw-pp502x.c b/firmware/target/arm/pp/usb-fw-pp502x.c
index 5272102fad..010cdb718c 100644
--- a/firmware/target/arm/pp/usb-fw-pp502x.c
+++ b/firmware/target/arm/pp/usb-fw-pp502x.c
@@ -224,15 +224,6 @@ void usb_insert_int(void)
224 USB_GPIO_INT_CLR = USB_GPIO_MASK; 224 USB_GPIO_INT_CLR = USB_GPIO_MASK;
225 timeout_register(&usb_oneshot, usb_timeout_event, HZ/5, val); 225 timeout_register(&usb_oneshot, usb_timeout_event, HZ/5, val);
226} 226}
227
228/* USB_DETECT_BY_CORE: Called when device descriptor is requested */
229void usb_drv_usb_detect_event(void)
230{
231 /* Filter for invalid bus reset when unplugging by checking the pin state. */
232 if(usb_plugged()) {
233 usb_status_event(USB_HOSTED);
234 }
235}
236#endif /* USB_STATUS_BY_EVENT */ 227#endif /* USB_STATUS_BY_EVENT */
237 228
238#ifdef HAVE_BOOTLOADER_USB_MODE 229#ifdef HAVE_BOOTLOADER_USB_MODE
diff --git a/firmware/target/arm/rk27xx/usb-rk27xx.c b/firmware/target/arm/rk27xx/usb-rk27xx.c
index 2bae9745c0..20bf867c8d 100644
--- a/firmware/target/arm/rk27xx/usb-rk27xx.c
+++ b/firmware/target/arm/rk27xx/usb-rk27xx.c
@@ -30,11 +30,6 @@
30 30
31int usb_status = USB_EXTRACTED; 31int usb_status = USB_EXTRACTED;
32 32
33void usb_drv_usb_detect_event()
34{
35 usb_status_event(USB_INSERTED);
36}
37
38void usb_init_device(void) 33void usb_init_device(void)
39{ 34{
40} 35}