summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/usb-drv-pp502x.c1
-rw-r--r--firmware/usb.c5
-rw-r--r--firmware/usbstack/usb_storage.c3
3 files changed, 5 insertions, 4 deletions
diff --git a/firmware/target/arm/usb-drv-pp502x.c b/firmware/target/arm/usb-drv-pp502x.c
index 7a88e2bbc2..62addc164e 100644
--- a/firmware/target/arm/usb-drv-pp502x.c
+++ b/firmware/target/arm/usb-drv-pp502x.c
@@ -353,7 +353,6 @@ bool usb_drv_powered(void)
353/* manual: 32.14.1 Device Controller Initialization */ 353/* manual: 32.14.1 Device Controller Initialization */
354void usb_drv_init(void) 354void usb_drv_init(void)
355{ 355{
356 trigger_cpu_boost();
357 REG_USBCMD &= ~USBCMD_RUN; 356 REG_USBCMD &= ~USBCMD_RUN;
358 udelay(50000); 357 udelay(50000);
359 REG_USBCMD |= USBCMD_CTRL_RESET; 358 REG_USBCMD |= USBCMD_CTRL_RESET;
diff --git a/firmware/usb.c b/firmware/usb.c
index 3cd93d8be5..977a3fbccb 100644
--- a/firmware/usb.c
+++ b/firmware/usb.c
@@ -529,6 +529,10 @@ bool usb_inserted(void)
529#ifdef HAVE_USBSTACK 529#ifdef HAVE_USBSTACK
530void usb_request_exclusive_ata(void) 530void usb_request_exclusive_ata(void)
531{ 531{
532 /* This is not really a clean place to start boosting the cpu. but it's
533 * currently the best one. We want to get rid of having to boost the cpu
534 * for usb anyway */
535 trigger_cpu_boost();
532 if(!exclusive_ata_access) { 536 if(!exclusive_ata_access) {
533 queue_post(&usb_queue, USB_REQUEST_DISK, 0); 537 queue_post(&usb_queue, USB_REQUEST_DISK, 0);
534 } 538 }
@@ -536,6 +540,7 @@ void usb_request_exclusive_ata(void)
536 540
537void usb_release_exclusive_ata(void) 541void usb_release_exclusive_ata(void)
538{ 542{
543 cancel_cpu_boost();
539 if(exclusive_ata_access) { 544 if(exclusive_ata_access) {
540 queue_post(&usb_queue, USB_RELEASE_DISK, 0); 545 queue_post(&usb_queue, USB_RELEASE_DISK, 0);
541 exclusive_ata_access = false; 546 exclusive_ata_access = false;
diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c
index 8de0f418dc..c528a3a21d 100644
--- a/firmware/usbstack/usb_storage.c
+++ b/firmware/usbstack/usb_storage.c
@@ -879,7 +879,6 @@ static void handle_scsi(struct command_block_wrapper* cbw)
879 cur_sense_data.ascq=0; 879 cur_sense_data.ascq=0;
880 } 880 }
881 else { 881 else {
882 trigger_cpu_boost();
883 cur_cmd.last_result = ata_read_sectors(IF_MV2(cur_cmd.lun,) 882 cur_cmd.last_result = ata_read_sectors(IF_MV2(cur_cmd.lun,)
884 cur_cmd.sector, 883 cur_cmd.sector,
885 MIN(BUFFER_SIZE/SECTOR_SIZE, 884 MIN(BUFFER_SIZE/SECTOR_SIZE,
@@ -917,7 +916,6 @@ static void handle_scsi(struct command_block_wrapper* cbw)
917 cur_sense_data.ascq=0; 916 cur_sense_data.ascq=0;
918 } 917 }
919 else { 918 else {
920 trigger_cpu_boost();
921 receive_block_data(cur_cmd.data[0], 919 receive_block_data(cur_cmd.data[0],
922 MIN(BUFFER_SIZE, 920 MIN(BUFFER_SIZE,
923 cur_cmd.count*SECTOR_SIZE)); 921 cur_cmd.count*SECTOR_SIZE));
@@ -953,7 +951,6 @@ static void receive_block_data(void *data,int size)
953 951
954static void send_csw(int status) 952static void send_csw(int status)
955{ 953{
956 cancel_cpu_boost();
957 tb.csw->signature = htole32(CSW_SIGNATURE); 954 tb.csw->signature = htole32(CSW_SIGNATURE);
958 tb.csw->tag = cur_cmd.tag; 955 tb.csw->tag = cur_cmd.tag;
959 tb.csw->data_residue = 0; 956 tb.csw->data_residue = 0;