STM3 L4: EXTI COMP function no longer returns the xcpt_t oldhandler. There value is useless and dangerous after the recent changes to interrupt argument passing.

This commit is contained in:
Gregory Nutt 2017-03-02 09:03:12 -06:00
parent 89058172f1
commit d5e04a8c43
5 changed files with 10 additions and 23 deletions

View File

@ -158,7 +158,5 @@ int stm32_exti_pvd(bool risingedge, bool fallingedge, bool event,
func ? 0 : EXTI_PVD_LINE,
func ? EXTI_PVD_LINE : 0);
/* Return the old IRQ handler */
return OK;
}

View File

@ -166,7 +166,5 @@ int stm32_exti_pvd(bool risingedge, bool fallingedge, bool event,
func ? 0 : EXTI_PVD_LINE,
func ? EXTI_PVD_LINE : 0);
/* Return the old IRQ handler */
return OK;
}

View File

@ -127,15 +127,14 @@ xcpt_t stm32l4_exti_alarm(bool risingedge, bool fallingedge, bool event,
* - arg: Argument passed to the interrupt callback
*
* Returns:
* The previous value of the interrupt handler function pointer. This
* value may, for example, be used to restore the previous handler when
* multiple handlers are used.
* Zero (OK) returned on success; a negated errno value is returned on
* failure.
*
****************************************************************************/
#ifdef CONFIG_STM32L4_COMP
xcpt_t stm32l4_exti_comp(int cmp, bool risingedge, bool fallingedge,
bool event, xcpt_t func, void *arg);
int stm32l4_exti_comp(int cmp, bool risingedge, bool fallingedge,
bool event, xcpt_t func, void *arg);
#endif
#undef EXTERN

View File

@ -129,16 +129,14 @@ static int stm32l4_exti_comp_isr(int irq, void *context)
* - arg: Argument passed to the interrupt callback
*
* Returns:
* The previous value of the interrupt handler function pointer. This
* value may, for example, be used to restore the previous handler when
* multiple handlers are used.
* Zero (OK) returned on success; a negated errno value is returned on
* failure.
*
****************************************************************************/
xcpt_t stm32l4_exti_comp(int cmp, bool risingedge, bool fallingedge,
bool event, xcpt_t func, void *arg)
int stm32l4_exti_comp(int cmp, bool risingedge, bool fallingedge,
bool event, xcpt_t func, void *arg)
{
xcpt_t oldhandler;
irqstate_t flags;
uint32_t ln = g_comp_lines[cmp];
@ -152,7 +150,7 @@ xcpt_t stm32l4_exti_comp(int cmp, bool risingedge, bool fallingedge,
if (func != NULL)
{
irq_attach(STM32L4_IRQ_COMP, stm32l4_exti_comp_isr);
irq_attach(STM32L4_IRQ_COMP, stm32l4_exti_comp_isr, NULL);
up_enable_irq(STM32L4_IRQ_COMP);
}
else
@ -172,15 +170,11 @@ xcpt_t stm32l4_exti_comp(int cmp, bool risingedge, bool fallingedge,
/* Get the previous IRQ handler and save the new IRQ handler. */
oldhandler = g_comp_handlers[cmp].callback;
g_comp_handlers[cmp].callback = func;
g_comp_handlers[cmp].arg = arg;
/* Leave the critical section */
leave_critical_section(flags);
/* Return the old IRQ handler */
return oldhandler;
return OK;
}

View File

@ -157,7 +157,5 @@ int stm32l4_exti_pvd(bool risingedge, bool fallingedge, bool event,
func ? 0 : EXTI1_PVD_LINE,
func ? EXTI1_PVD_LINE : 0);
/* Return the old IRQ handler */
return OK;
}