Only boost the CPU for large transactions. It would be nice to get rid of boosting for USB altogehter, but it doesn't seem to work then.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16656 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Frank Gevaerts 2008-03-13 19:56:52 +00:00
parent 3c561f2cf9
commit 7fcd26e479
2 changed files with 3 additions and 1 deletions

View file

@ -353,7 +353,6 @@ bool usb_drv_powered(void)
/* manual: 32.14.1 Device Controller Initialization */ /* manual: 32.14.1 Device Controller Initialization */
void usb_drv_init(void) void usb_drv_init(void)
{ {
trigger_cpu_boost();
REG_USBCMD &= ~USBCMD_RUN; REG_USBCMD &= ~USBCMD_RUN;
udelay(50000); udelay(50000);
REG_USBCMD |= USBCMD_CTRL_RESET; REG_USBCMD |= USBCMD_CTRL_RESET;

View file

@ -879,6 +879,7 @@ static void handle_scsi(struct command_block_wrapper* cbw)
cur_sense_data.ascq=0; cur_sense_data.ascq=0;
} }
else { else {
trigger_cpu_boost();
cur_cmd.last_result = ata_read_sectors(IF_MV2(cur_cmd.lun,) cur_cmd.last_result = ata_read_sectors(IF_MV2(cur_cmd.lun,)
cur_cmd.sector, cur_cmd.sector,
MIN(BUFFER_SIZE/SECTOR_SIZE, MIN(BUFFER_SIZE/SECTOR_SIZE,
@ -916,6 +917,7 @@ static void handle_scsi(struct command_block_wrapper* cbw)
cur_sense_data.ascq=0; cur_sense_data.ascq=0;
} }
else { else {
trigger_cpu_boost();
receive_block_data(cur_cmd.data[0], receive_block_data(cur_cmd.data[0],
MIN(BUFFER_SIZE, MIN(BUFFER_SIZE,
cur_cmd.count*SECTOR_SIZE)); cur_cmd.count*SECTOR_SIZE));
@ -951,6 +953,7 @@ static void receive_block_data(void *data,int size)
static void send_csw(int status) static void send_csw(int status)
{ {
cancel_cpu_boost();
tb.csw->signature = htole32(CSW_SIGNATURE); tb.csw->signature = htole32(CSW_SIGNATURE);
tb.csw->tag = cur_cmd.tag; tb.csw->tag = cur_cmd.tag;
tb.csw->data_residue = 0; tb.csw->data_residue = 0;