diff options
author | Tomasz Moń <desowin@gmail.com> | 2021-06-09 20:50:30 +0200 |
---|---|---|
committer | Tomasz Moń <desowin@gmail.com> | 2021-06-09 20:52:36 +0200 |
commit | 163e3507f87b7de7b9e1bdfc7b2c5d5e0357da51 (patch) | |
tree | 78c666fe344cb9491870a1162fd69dd3bf25a58e /firmware/target/arm | |
parent | a11c88e0df66b4020ef4d9025b9fb07f04402852 (diff) | |
download | rockbox-163e3507f87b7de7b9e1bdfc7b2c5d5e0357da51.tar.gz rockbox-163e3507f87b7de7b9e1bdfc7b2c5d5e0357da51.zip |
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
Diffstat (limited to 'firmware/target/arm')
3 files changed, 9 insertions, 17 deletions
diff --git a/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c b/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c index 611bdbfde5..1af9789174 100644 --- a/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c +++ b/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c | |||
@@ -374,7 +374,13 @@ void btn_thread(void) | |||
374 | while (1) | 374 | while (1) |
375 | { | 375 | { |
376 | queue_wait(&btn_queue, &ev); | 376 | queue_wait(&btn_queue, &ev); |
377 | 377 | ||
378 | if (ev.id == SYS_USB_CONNECTED) | ||
379 | { | ||
380 | /* Allow USB to gain exclusive storage access */ | ||
381 | usb_acknowledge(SYS_USB_CONNECTED_ACK); | ||
382 | } | ||
383 | |||
378 | /* Ignore all messages except BTN_INTERRUPT */ | 384 | /* Ignore all messages except BTN_INTERRUPT */ |
379 | if (ev.id != BTN_INTERRUPT) | 385 | if (ev.id != BTN_INTERRUPT) |
380 | continue; | 386 | continue; |
diff --git a/firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c b/firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c index 56251a96db..00c9c2b80d 100644 --- a/firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c +++ b/firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c | |||
@@ -1034,7 +1034,7 @@ static int cppi_timeout_cb(struct timeout *tmo) | |||
1034 | int flags = disable_irq_save(); | 1034 | int flags = disable_irq_save(); |
1035 | bool requeue = tnetv_handle_cppi(); | 1035 | bool requeue = tnetv_handle_cppi(); |
1036 | restore_irq(flags); | 1036 | restore_irq(flags); |
1037 | return requeue ? HZ/10 : 0; | 1037 | return requeue ? 1 : 0; |
1038 | } | 1038 | } |
1039 | 1039 | ||
1040 | void VLYNQ(void) __attribute__ ((section(".icode"))); | 1040 | void VLYNQ(void) __attribute__ ((section(".icode"))); |
@@ -1205,7 +1205,7 @@ void VLYNQ(void) | |||
1205 | 1205 | ||
1206 | if (tnetv_handle_cppi()) | 1206 | if (tnetv_handle_cppi()) |
1207 | { | 1207 | { |
1208 | timeout_register(&cppi_timeout, cppi_timeout_cb, HZ/10, 0); | 1208 | timeout_register(&cppi_timeout, cppi_timeout_cb, 1, 0); |
1209 | } | 1209 | } |
1210 | } | 1210 | } |
1211 | } | 1211 | } |
diff --git a/firmware/target/arm/tms320dm320/sdmmc-dm320.c b/firmware/target/arm/tms320dm320/sdmmc-dm320.c index fdc3e041a0..cc5c4a822e 100644 --- a/firmware/target/arm/tms320dm320/sdmmc-dm320.c +++ b/firmware/target/arm/tms320dm320/sdmmc-dm320.c | |||
@@ -781,20 +781,10 @@ int sd_read_sectors(IF_MD(int card_no,) unsigned long start, int incount, | |||
781 | int sd_write_sectors(IF_MD(int card_no,) unsigned long start, int count, | 781 | int sd_write_sectors(IF_MD(int card_no,) unsigned long start, int count, |
782 | const void* outbuf) | 782 | const void* outbuf) |
783 | { | 783 | { |
784 | #ifndef BOOTLOADER | ||
785 | #ifndef HAVE_MULTIDRIVE | 784 | #ifndef HAVE_MULTIDRIVE |
786 | const int card_no = 0; | 785 | const int card_no = 0; |
787 | #endif | 786 | #endif |
788 | return sd_transfer_sectors(card_no, start, count, (void*)outbuf, true); | 787 | return sd_transfer_sectors(card_no, start, count, (void*)outbuf, true); |
789 | #else /* we don't need write support in bootloader */ | ||
790 | #ifdef HAVE_MULTIDRIVE | ||
791 | (void)card_no; | ||
792 | #endif | ||
793 | (void)start; | ||
794 | (void)count; | ||
795 | (void)outbuf; | ||
796 | return 0; | ||
797 | #endif | ||
798 | } | 788 | } |
799 | 789 | ||
800 | int sd_init(void) | 790 | int sd_init(void) |
@@ -809,9 +799,7 @@ int sd_init(void) | |||
809 | 799 | ||
810 | mutex_lock(&sd_mtx); | 800 | mutex_lock(&sd_mtx); |
811 | 801 | ||
812 | #ifndef BOOTLOADER | ||
813 | enable_controller(false); | 802 | enable_controller(false); |
814 | #endif | ||
815 | 803 | ||
816 | /* based on linux/drivers/mmc/dm320mmc.c | 804 | /* based on linux/drivers/mmc/dm320mmc.c |
817 | Copyright (C) 2006 ZSI, All Rights Reserved. | 805 | Copyright (C) 2006 ZSI, All Rights Reserved. |
@@ -859,8 +847,6 @@ int sd_init(void) | |||
859 | #endif | 847 | #endif |
860 | #endif | 848 | #endif |
861 | 849 | ||
862 | sd_select_device(1); | ||
863 | |||
864 | /* Disable Memory Card CLK - it is enabled on demand by TMS320DM320 */ | 850 | /* Disable Memory Card CLK - it is enabled on demand by TMS320DM320 */ |
865 | bitclr16(&IO_MMC_MEM_CLK_CONTROL, (1 << 8)); | 851 | bitclr16(&IO_MMC_MEM_CLK_CONTROL, (1 << 8)); |
866 | mutex_unlock(&sd_mtx); | 852 | mutex_unlock(&sd_mtx); |