forked from len0rd/rockbox
Gigabeat S: Revert removal of usb_plugged in r31489
Synchronous cable read is still required because the timing of the receipt of the cable event cannot be known for sure-- basically it introduced a thread race between main and pmic. If a keypress is desired instead to enter BL USB mode a la AS3525, then it's possible to remove that. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31510 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
7b22ea0d37
commit
36bc6a1fd5
3 changed files with 10 additions and 4 deletions
|
|
@ -109,7 +109,7 @@ static void handle_usb(int connect_timeout)
|
|||
break;
|
||||
}
|
||||
|
||||
if (usb_detect() == USB_EXTRACTED)
|
||||
if (usb_plugged() == USB_EXTRACTED)
|
||||
break; /* Cable pulled */
|
||||
}
|
||||
|
||||
|
|
@ -376,7 +376,7 @@ void main(void)
|
|||
|
||||
/* Do USB first since a tar or binary could be added to the MTP directory
|
||||
* at the time and we can untar or move after unplugging. */
|
||||
if (usb_detect() == USB_INSERTED)
|
||||
if (usb_plugged() == USB_INSERTED)
|
||||
handle_usb(HZ*2);
|
||||
|
||||
handle_untar();
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ struct ARM_REGS {
|
|||
|
||||
void dumpregs(void);
|
||||
|
||||
bool usb_plugged(void);
|
||||
void usb_connect_event(void);
|
||||
|
||||
/** Sector read/write filters **/
|
||||
|
|
|
|||
|
|
@ -53,11 +53,16 @@ static void enable_transceiver(bool enable)
|
|||
}
|
||||
}
|
||||
|
||||
/* Read the immediate state of the cable from the PMIC */
|
||||
bool usb_plugged(void)
|
||||
{
|
||||
return mc13783_read(MC13783_INTERRUPT_SENSE0) & MC13783_USB4V4S;
|
||||
}
|
||||
|
||||
void usb_connect_event(void)
|
||||
{
|
||||
/* Read the immediate state of the cable from the PMIC */
|
||||
int status = (mc13783_read(MC13783_INTERRUPT_SENSE0) & MC13783_USB4V4S)
|
||||
? USB_INSERTED : USB_EXTRACTED;
|
||||
int status = usb_plugged() ? USB_INSERTED : USB_EXTRACTED;
|
||||
usb_status = status;
|
||||
/* Notify power that USB charging is potentially available */
|
||||
charger_usb_detect_event(status);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue