summaryrefslogtreecommitdiff
path: root/firmware/target/arm/usb-pp.c
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2007-02-17 01:32:39 +0000
committerDave Chapman <dave@dchapman.com>2007-02-17 01:32:39 +0000
commit139fb1af20621e233f8f33cd1d984cb79231b7d4 (patch)
treebcb781747c6e1984cd5d637b3d064ca236218c44 /firmware/target/arm/usb-pp.c
parent620c62e262170063adccc57a58d4edd6b637f4bf (diff)
downloadrockbox-139fb1af20621e233f8f33cd1d984cb79231b7d4.tar.gz
rockbox-139fb1af20621e233f8f33cd1d984cb79231b7d4.zip
Move dr_controller_setup() to usb_init_device() and add a call to dr_controller_stop() if we detect USB disconnection. This seems to improve reliability when connecting to Mac OS X - Rockbox previously killed its USB stack since the introduction of the new USB detection code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12342 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/usb-pp.c')
-rw-r--r--firmware/target/arm/usb-pp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/firmware/target/arm/usb-pp.c b/firmware/target/arm/usb-pp.c
index 042fb5bda5..d69c6e6c9c 100644
--- a/firmware/target/arm/usb-pp.c
+++ b/firmware/target/arm/usb-pp.c
@@ -85,6 +85,9 @@ void usb_init_device(void)
85 outl(inl(0x70000028) | 0x2, 0x70000028); 85 outl(inl(0x70000028) | 0x2, 0x70000028);
86 86
87 udelay(0x186A0); 87 udelay(0x186A0);
88
89
90 dr_controller_setup();
88} 91}
89 92
90void usb_enable(bool on) 93void usb_enable(bool on)
@@ -138,9 +141,11 @@ bool usb_detect(void)
138 141
139 usbstatus1 = (UDC_OTGSC & 0x800) ? true : false; 142 usbstatus1 = (UDC_OTGSC & 0x800) ? true : false;
140 if ((usbstatus1 == true) && (prev_usbstatus1 == false)) { 143 if ((usbstatus1 == true) && (prev_usbstatus1 == false)) {
141 dr_controller_setup();
142 dr_controller_run(); 144 dr_controller_run();
145 } else if ((usbstatus1 == false) && (prev_usbstatus1 == true)) {
146 dr_controller_stop();
143 } 147 }
148
144 prev_usbstatus1 = usbstatus1; 149 prev_usbstatus1 = usbstatus1;
145 usbstatus2 = (UDC_PORTSC1 & PORTSCX_CURRENT_CONNECT_STATUS) ? true : false; 150 usbstatus2 = (UDC_PORTSC1 & PORTSCX_CURRENT_CONNECT_STATUS) ? true : false;
146 151