Skip to content

Commit 5413bb0

Browse files
committed
[core] Mutex->spinlock for FATFS and remove IRQ disabling from SD SPI.
1 parent d1fe646 commit 5413bb0

2 files changed

Lines changed: 62 additions & 77 deletions

File tree

src/drivers/spi.c

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,6 @@ void spi_send_byte(register uint8 b) {
369369

370370
register uint16 _pwork;
371371
_pwork = pwork;
372-
int old = irq_disable();
373372

374373
TX_BIT();
375374
CTS_ON_FAST(); /* SPI clock ON */
@@ -408,7 +407,6 @@ void spi_send_byte(register uint8 b) {
408407
dbglog(DBG_DEBUG, "spi_send_byte: %02x\n", b);
409408
//dump_regs();
410409
#endif
411-
irq_restore(old);
412410
}
413411

414412

@@ -466,7 +464,6 @@ uint8 spi_rec_byte() {
466464

467465
_pwork = pwork;
468466
b = 0xff;
469-
int old = irq_disable();
470467

471468
TX_BIT();
472469
CTS_ON_FAST(); /* SPI clock ON */
@@ -499,7 +496,6 @@ uint8 spi_rec_byte() {
499496
//dump_regs();
500497
#endif
501498

502-
irq_restore(old);
503499
return b;
504500
}
505501

@@ -570,7 +566,6 @@ uint8 spi_sr_byte(register uint8 b) {
570566
dbglog(DBG_DEBUG, "spi_sr_byte: send: %02x\n", b);
571567
//dump_regs();
572568
#endif
573-
int old = irq_disable();
574569

575570
TX_BIT();
576571
CTS_ON_FAST(); /* SPI clock ON */
@@ -610,7 +605,6 @@ uint8 spi_sr_byte(register uint8 b) {
610605
//dump_regs();
611606
#endif
612607

613-
irq_restore(old);
614608
return b;
615609
}
616610

@@ -628,8 +622,6 @@ uint8 spi_slow_sr_byte(register uint8 b) {
628622
dbglog(DBG_DEBUG, "spi_slow_sr_byte: send: %02x\n", b);
629623
#endif
630624

631-
int old = irq_disable();
632-
633625
for (cnt = 0; cnt < 8; cnt++) {
634626

635627
pwork = b & MSB ? (pwork | SCSPTR2_SPB2DT) : (pwork & ~SCSPTR2_SPB2DT);
@@ -645,8 +637,6 @@ uint8 spi_slow_sr_byte(register uint8 b) {
645637
reg_write_16(SCSPTR2, pwork);
646638
}
647639

648-
irq_restore(old);
649-
650640
#ifdef SPI_DEBUG_RW
651641
dbglog(DBG_DEBUG, "spi_slow_sr_byte: receive: %02x\n", b);
652642
//dump_regs();
@@ -675,8 +665,6 @@ void spi_send_data(const uint8* data, uint16 len) {
675665
register uint16 _pwork;
676666
_pwork = pwork;
677667

678-
int old = irq_disable();
679-
680668
/* Used send/receive byte because only receive works unstable */
681669
for(; len > 0; len -= 4) {
682670

@@ -822,7 +810,6 @@ void spi_send_data(const uint8* data, uint16 len) {
822810

823811
data += 4;
824812
}
825-
irq_restore(old);
826813
}
827814

828815

@@ -842,7 +829,6 @@ void spi_rec_data(uint8* buffer, uint16 len) {
842829
uint8 b = 0xff;
843830
uint16 cts_off = (pwork & ~SCSPTR2_CTSDT) | SCSPTR2_SPB2DT;
844831
uint16 cts_on = (pwork | SCSPTR2_CTSDT | SCSPTR2_SPB2DT);
845-
int old = irq_disable();
846832

847833
reg_write_16(SCSPTR2, cts_off);
848834

@@ -956,5 +942,4 @@ void spi_rec_data(uint8* buffer, uint16 len) {
956942
buffer[3] = b;
957943
buffer += 4;
958944
}
959-
irq_restore(old);
960945
}

0 commit comments

Comments
 (0)