aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/ports/STM32/LLD/emcnand_lld.c
diff options
context:
space:
mode:
Diffstat (limited to 'os/hal/ports/STM32/LLD/emcnand_lld.c')
-rw-r--r--os/hal/ports/STM32/LLD/emcnand_lld.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/os/hal/ports/STM32/LLD/emcnand_lld.c b/os/hal/ports/STM32/LLD/emcnand_lld.c
index a00ae7121..9ed6db9bd 100644
--- a/os/hal/ports/STM32/LLD/emcnand_lld.c
+++ b/os/hal/ports/STM32/LLD/emcnand_lld.c
@@ -74,16 +74,10 @@ EMCNANDDriver EMCNANDD2;
*
* @notapi
*/
-static void wakeup_isr(EMCNANDDriver *emcnandp, msg_t msg){
+static void wakeup_isr(EMCNANDDriver *emcnandp){
osalDbgCheck(emcnandp->thread != NULL);
-
- if (emcnandp->thread) {
- thread_t *tp = emcnandp->thread;
- emcnandp->thread = NULL;
- tp->p_u.rdymsg = msg;
- chSchReadyI(tp);
- }
+ osalThreadResumeI(&emcnandp->thread, MSG_OK);
}
/**
@@ -93,8 +87,8 @@ static void wakeup_isr(EMCNANDDriver *emcnandp, msg_t msg){
*/
static void emcnand_lld_suspend_thread(EMCNANDDriver *emcnandp) {
- emcnandp->thread = chThdGetSelfX();
- chSchGoSleepS(CH_STATE_SUSPENDED);
+ //emcnandp->thread = chThdGetSelfX();
+ osalThreadSuspendS(&emcnandp->thread);
}
/**
@@ -130,7 +124,7 @@ static uint32_t calc_eccps(EMCNANDDriver *emcnandp){
*/
static void emcnand_ready_isr_enable(EMCNANDDriver *emcnandp) {
emcnandp->nand->SR |= FSMC_SR_IREN;
- chDbgPanic("Function untested");
+ osalSysHalt("Function untested");
}
/**
@@ -142,7 +136,7 @@ static void emcnand_ready_isr_enable(EMCNANDDriver *emcnandp) {
*/
static void emcnand_ready_isr_disable(EMCNANDDriver *emcnandp) {
emcnandp->nand->SR &= ~FSMC_SR_IREN;
- chDbgPanic("Function untested");
+ osalSysHalt("Function untested");
}
/**
@@ -158,7 +152,7 @@ static void emcnand_isr_handler (EMCNANDDriver *emcnandp,
(void)emcnandp;
(void)flags;
- chDbgPanic("Unrealized");
+ osalSysHalt("Unrealized");
}
#else /* STM32_EMC_USE_INT */
/**
@@ -205,13 +199,13 @@ static void emcnand_isr_handler(EMCNANDDriver *emcnandp){
case EMCNAND_ERASE:
/* NAND reports about erase finish */
emcnandp->state = EMCNAND_READY;
- wakeup_isr(emcnandp, MSG_OK);
+ wakeup_isr(emcnandp);
break;
case EMCNAND_PROGRAM:
/* NAND reports about page programming finish */
emcnandp->state = EMCNAND_READY;
- wakeup_isr(emcnandp, MSG_OK);
+ wakeup_isr(emcnandp);
break;
default:
@@ -257,7 +251,7 @@ static void emcnand_lld_serve_transfer_end_irq(EMCNANDDriver *emcnandp,
emcnandp->state = EMCNAND_READY;
emcnandp->rxdata = NULL;
emcnandp->datalen = 0;
- wakeup_isr(emcnandp, MSG_OK);
+ wakeup_isr(emcnandp);
break;
default: