summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2011-09-14 15:26:57 +0000
committerMichael Sevakis <jethead71@rockbox.org>2011-09-14 15:26:57 +0000
commit82259b7af57eab383b38616a2e391d9b7fcaf967 (patch)
tree6430bfee221c6e7ae87a47355953e7a8c7c29ed3 /firmware
parent207131c53b15e7b5956177e90932b7445ff5b4ce (diff)
downloadrockbox-82259b7af57eab383b38616a2e391d9b7fcaf967.tar.gz
rockbox-82259b7af57eab383b38616a2e391d9b7fcaf967.zip
Move AMSv1 (AMSv2 had been done already) to using setup packet request to detect a host.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30547 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/export/config.h2
-rw-r--r--firmware/target/arm/as3525/usb-as3525.c59
-rw-r--r--firmware/target/arm/as3525/usb-drv-as3525.c4
3 files changed, 14 insertions, 51 deletions
diff --git a/firmware/export/config.h b/firmware/export/config.h
index e6a87915fc..a22922b0b1 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -767,7 +767,7 @@ Lyre prototype 1 */
#define INCLUDE_TIMEOUT_API
#elif CONFIG_USBOTG == USBOTG_AS3525
#define USB_STATUS_BY_EVENT
-#define USB_DETECT_BY_DRV
+#define USB_DETECT_BY_CORE
#elif CONFIG_USBOTG == USBOTG_AS3525v2
#define USB_STATUS_BY_EVENT
#define USB_DETECT_BY_CORE
diff --git a/firmware/target/arm/as3525/usb-as3525.c b/firmware/target/arm/as3525/usb-as3525.c
index a6d5d3a245..6dcf99934e 100644
--- a/firmware/target/arm/as3525/usb-as3525.c
+++ b/firmware/target/arm/as3525/usb-as3525.c
@@ -30,39 +30,6 @@
static int usb_status = USB_EXTRACTED;
-#if CONFIG_CPU == AS3525v2 && !defined(USE_ROCKBOX_USB)
-/* Rebooting on USB plug can crash these players in a state where
- * hardware power off (pressing the power button) doesn't work anymore
- * TODO: Implement USB in rockbox for these players */
-#define USB_INSERT_INT_STATUS USB_EXTRACTED
-#undef USB_DETECT_BY_DRV
-#undef USB_DETECT_BY_CORE
-#undef USB_STATUS_BY_EVENT
-
-#else /* !AS3525v2 */
-
-#if defined(USB_DETECT_BY_DRV) || defined(USB_DETECT_BY_CORE)
-
-#ifdef USB_STATUS_BY_EVENT
-#define USB_INSERT_INT_STATUS USB_INSERTED
-#define USB_INSERT_INT_EVENT USB_POWERED
-#define USB_REMOVE_INT_EVENT USB_UNPOWERED
-#else
-#define USB_INSERT_INT_STATUS USB_POWERED
-#endif /* USB_STATUS_BY_EVENT */
-
-#else /* !USB_DETECT_BY_* */
-
-#define USB_INSERT_INT_STATUS USB_INSERTED
-#ifdef USB_STATUS_BY_EVENT
-#define USB_INSERT_INT_EVENT USB_INSERTED
-#define USB_REMOVE_INT_EVENT USB_EXTRACTED
-#endif /* USB_STATUS_BY_EVENT */
-
-#endif /* USB_DETECT_BY_* */
-
-#endif /* AS3525v2 */
-
void usb_enable(bool on)
{
#if defined(HAVE_USBSTACK) && defined(USE_ROCKBOX_USB)
@@ -77,33 +44,29 @@ void usb_enable(bool on)
void usb_insert_int(void)
{
- usb_status = USB_INSERT_INT_STATUS;
-#ifdef USB_STATUS_BY_EVENT
- usb_status_event(USB_INSERT_INT_EVENT);
-#endif
+ usb_status = USB_INSERTED;
+ usb_status_event(USB_POWERED);
}
void usb_remove_int(void)
{
usb_status = USB_EXTRACTED;
-#ifdef USB_STATUS_BY_EVENT
- usb_status_event(USB_REMOVE_INT_EVENT);
-#endif
+ usb_status_event(USB_UNPOWERED);
}
void usb_drv_usb_detect_event(void)
{
-#if defined(USB_DETECT_BY_DRV) || defined(USB_DETECT_BY_CORE)
+#if CONFIG_CPU != AS3525v2 || defined(USE_ROCKBOX_USB)
+/* Rebooting on USB plug can crash these players in a state where
+ * hardware power off (pressing the power button) doesn't work anymore
+ * TODO: Implement USB in rockbox for these players */
int oldstatus = disable_irq_save(); /* May come via USB thread */
- if (usb_status == USB_INSERT_INT_STATUS)
- {
- usb_status = USB_INSERTED;
-#ifdef USB_STATUS_BY_EVENT
+
+ if (usb_status == USB_INSERTED)
usb_status_event(USB_INSERTED);
-#endif
- }
+
restore_irq(oldstatus);
-#endif /* USB_DETECT_BY_* */
+#endif
}
int usb_detect(void)
diff --git a/firmware/target/arm/as3525/usb-drv-as3525.c b/firmware/target/arm/as3525/usb-drv-as3525.c
index 69c50cda93..1f52d40ce6 100644
--- a/firmware/target/arm/as3525/usb-drv-as3525.c
+++ b/firmware/target/arm/as3525/usb-drv-as3525.c
@@ -76,7 +76,8 @@ static inline void usb_disable_pll(void)
void usb_attach(void)
{
- usb_enable(true);
+ logf("usb-drv: attach");
+ /* Nothing to do */
}
static void usb_tick(void);
@@ -768,7 +769,6 @@ void INT_USB(void)
}
if (intr & USB_DEV_INTR_USB_RESET) {/* usb reset from host? */
logf("usb reset\n");
- usb_drv_usb_detect_event();
reset_endpoints(1);
usb_core_bus_reset();
intr &= ~USB_DEV_INTR_USB_RESET;