forked from len0rd/rockbox
Sansa Connect: Working USB Mass Storage
Acknowledge SYS_USB_CONNECTED in all queues so USB task can gain exclusive access to the storage. Reduce CPPI requeue timeout to speed up disk access. Change-Id: I322aae4cac679696bb8186ccacf838a18f0715e9
This commit is contained in:
parent
a11c88e0df
commit
163e3507f8
5 changed files with 59 additions and 31 deletions
|
|
@ -374,7 +374,13 @@ void btn_thread(void)
|
|||
while (1)
|
||||
{
|
||||
queue_wait(&btn_queue, &ev);
|
||||
|
||||
|
||||
if (ev.id == SYS_USB_CONNECTED)
|
||||
{
|
||||
/* Allow USB to gain exclusive storage access */
|
||||
usb_acknowledge(SYS_USB_CONNECTED_ACK);
|
||||
}
|
||||
|
||||
/* Ignore all messages except BTN_INTERRUPT */
|
||||
if (ev.id != BTN_INTERRUPT)
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -1034,7 +1034,7 @@ static int cppi_timeout_cb(struct timeout *tmo)
|
|||
int flags = disable_irq_save();
|
||||
bool requeue = tnetv_handle_cppi();
|
||||
restore_irq(flags);
|
||||
return requeue ? HZ/10 : 0;
|
||||
return requeue ? 1 : 0;
|
||||
}
|
||||
|
||||
void VLYNQ(void) __attribute__ ((section(".icode")));
|
||||
|
|
@ -1205,7 +1205,7 @@ void VLYNQ(void)
|
|||
|
||||
if (tnetv_handle_cppi())
|
||||
{
|
||||
timeout_register(&cppi_timeout, cppi_timeout_cb, HZ/10, 0);
|
||||
timeout_register(&cppi_timeout, cppi_timeout_cb, 1, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -781,20 +781,10 @@ int sd_read_sectors(IF_MD(int card_no,) unsigned long start, int incount,
|
|||
int sd_write_sectors(IF_MD(int card_no,) unsigned long start, int count,
|
||||
const void* outbuf)
|
||||
{
|
||||
#ifndef BOOTLOADER
|
||||
#ifndef HAVE_MULTIDRIVE
|
||||
const int card_no = 0;
|
||||
#endif
|
||||
return sd_transfer_sectors(card_no, start, count, (void*)outbuf, true);
|
||||
#else /* we don't need write support in bootloader */
|
||||
#ifdef HAVE_MULTIDRIVE
|
||||
(void)card_no;
|
||||
#endif
|
||||
(void)start;
|
||||
(void)count;
|
||||
(void)outbuf;
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
int sd_init(void)
|
||||
|
|
@ -809,9 +799,7 @@ int sd_init(void)
|
|||
|
||||
mutex_lock(&sd_mtx);
|
||||
|
||||
#ifndef BOOTLOADER
|
||||
enable_controller(false);
|
||||
#endif
|
||||
|
||||
/* based on linux/drivers/mmc/dm320mmc.c
|
||||
Copyright (C) 2006 ZSI, All Rights Reserved.
|
||||
|
|
@ -859,8 +847,6 @@ int sd_init(void)
|
|||
#endif
|
||||
#endif
|
||||
|
||||
sd_select_device(1);
|
||||
|
||||
/* Disable Memory Card CLK - it is enabled on demand by TMS320DM320 */
|
||||
bitclr16(&IO_MMC_MEM_CLK_CONTROL, (1 << 8));
|
||||
mutex_unlock(&sd_mtx);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue