summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/usb-as3525.c
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/target/arm/as3525/usb-as3525.c
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/target/arm/as3525/usb-as3525.c')
-rw-r--r--firmware/target/arm/as3525/usb-as3525.c59
1 files changed, 11 insertions, 48 deletions
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 @@
30 30
31static int usb_status = USB_EXTRACTED; 31static int usb_status = USB_EXTRACTED;
32 32
33#if CONFIG_CPU == AS3525v2 && !defined(USE_ROCKBOX_USB)
34/* Rebooting on USB plug can crash these players in a state where
35 * hardware power off (pressing the power button) doesn't work anymore
36 * TODO: Implement USB in rockbox for these players */
37#define USB_INSERT_INT_STATUS USB_EXTRACTED
38#undef USB_DETECT_BY_DRV
39#undef USB_DETECT_BY_CORE
40#undef USB_STATUS_BY_EVENT
41
42#else /* !AS3525v2 */
43
44#if defined(USB_DETECT_BY_DRV) || defined(USB_DETECT_BY_CORE)
45
46#ifdef USB_STATUS_BY_EVENT
47#define USB_INSERT_INT_STATUS USB_INSERTED
48#define USB_INSERT_INT_EVENT USB_POWERED
49#define USB_REMOVE_INT_EVENT USB_UNPOWERED
50#else
51#define USB_INSERT_INT_STATUS USB_POWERED
52#endif /* USB_STATUS_BY_EVENT */
53
54#else /* !USB_DETECT_BY_* */
55
56#define USB_INSERT_INT_STATUS USB_INSERTED
57#ifdef USB_STATUS_BY_EVENT
58#define USB_INSERT_INT_EVENT USB_INSERTED
59#define USB_REMOVE_INT_EVENT USB_EXTRACTED
60#endif /* USB_STATUS_BY_EVENT */
61
62#endif /* USB_DETECT_BY_* */
63
64#endif /* AS3525v2 */
65
66void usb_enable(bool on) 33void usb_enable(bool on)
67{ 34{
68#if defined(HAVE_USBSTACK) && defined(USE_ROCKBOX_USB) 35#if defined(HAVE_USBSTACK) && defined(USE_ROCKBOX_USB)
@@ -77,33 +44,29 @@ void usb_enable(bool on)
77 44
78void usb_insert_int(void) 45void usb_insert_int(void)
79{ 46{
80 usb_status = USB_INSERT_INT_STATUS; 47 usb_status = USB_INSERTED;
81#ifdef USB_STATUS_BY_EVENT 48 usb_status_event(USB_POWERED);
82 usb_status_event(USB_INSERT_INT_EVENT);
83#endif
84} 49}
85 50
86void usb_remove_int(void) 51void usb_remove_int(void)
87{ 52{
88 usb_status = USB_EXTRACTED; 53 usb_status = USB_EXTRACTED;
89#ifdef USB_STATUS_BY_EVENT 54 usb_status_event(USB_UNPOWERED);
90 usb_status_event(USB_REMOVE_INT_EVENT);
91#endif
92} 55}
93 56
94void usb_drv_usb_detect_event(void) 57void usb_drv_usb_detect_event(void)
95{ 58{
96#if defined(USB_DETECT_BY_DRV) || defined(USB_DETECT_BY_CORE) 59#if CONFIG_CPU != AS3525v2 || defined(USE_ROCKBOX_USB)
60/* Rebooting on USB plug can crash these players in a state where
61 * hardware power off (pressing the power button) doesn't work anymore
62 * TODO: Implement USB in rockbox for these players */
97 int oldstatus = disable_irq_save(); /* May come via USB thread */ 63 int oldstatus = disable_irq_save(); /* May come via USB thread */
98 if (usb_status == USB_INSERT_INT_STATUS) 64
99 { 65 if (usb_status == USB_INSERTED)
100 usb_status = USB_INSERTED;
101#ifdef USB_STATUS_BY_EVENT
102 usb_status_event(USB_INSERTED); 66 usb_status_event(USB_INSERTED);
103#endif 67
104 }
105 restore_irq(oldstatus); 68 restore_irq(oldstatus);
106#endif /* USB_DETECT_BY_* */ 69#endif
107} 70}
108 71
109int usb_detect(void) 72int usb_detect(void)