@@ -555,6 +555,22 @@ static void reinitSCSI()
555
555
}
556
556
}
557
557
558
+ void check_and_apply_sdio_delay () {
559
+ long add_sdio_delay = ini_getl (" SDIO" , " AddClockDelay" , 0 , CONFIGFILE);
560
+ if (add_sdio_delay) {
561
+ if (add_sdio_delay < 0 ) {
562
+ add_sdio_delay = 0 ;
563
+ log (" ---- WARNING: Negative numbers are not valid for AddClockDelay. Setting value to 0" );
564
+ }
565
+ if (add_sdio_delay > 2 ) {
566
+ add_sdio_delay = 2 ;
567
+ log (" ---- WARNING: Max value 2 exceeded for AddClockDelay. Setting value to 2." );
568
+ }
569
+ log (" INFO: Injecting " , (uint16_t )add_sdio_delay, " additional wait state(s) on SDIO" );
570
+ add_extra_sdio_delay ((uint16_t ) add_sdio_delay);
571
+ }
572
+ }
573
+
558
574
extern " C" void bluescsi_setup (void )
559
575
{
560
576
pio_clear_instruction_memory (pio0);
@@ -599,20 +615,7 @@ extern "C" void bluescsi_setup(void)
599
615
{
600
616
log (" SD card without filesystem!" );
601
617
}
602
-
603
- long add_sdio_delay = ini_getl (" SDIO" , " AddClockDelay" , 0 , CONFIGFILE);
604
- if (add_sdio_delay) {
605
- if (add_sdio_delay < 0 ) {
606
- add_sdio_delay = 0 ;
607
- log (" ---- WARNING: Negative numbers are not valid for AddClockDelay. Setting value to 0" );
608
- }
609
- if (add_sdio_delay > 2 ) {
610
- add_sdio_delay = 2 ;
611
- log (" ---- WARNING: Max value 2 exceeded for AddClockDelay. Setting value to 2." );
612
- }
613
- log (" INFO: Injecting " , (uint16_t )add_sdio_delay, " additional wait state(s) on SDIO" );
614
- add_extra_sdio_delay ((uint16_t ) add_sdio_delay);
615
- }
618
+ check_and_apply_sdio_delay ();
616
619
617
620
print_sd_info ();
618
621
@@ -750,6 +753,7 @@ extern "C" void bluescsi_main_loop(void)
750
753
if (g_sdcard_present)
751
754
{
752
755
log (" SD card reinit succeeded" );
756
+ check_and_apply_sdio_delay ();
753
757
print_sd_info ();
754
758
755
759
reinitSCSI ();
0 commit comments