mirror of
https://github.com/apache/nuttx.git
synced 2026-08-02 12:49:00 +00:00
Review: Address @raiden00pl comments
The fix was ported from the STM32G0 to all the STM32 platforms, as the code is mostly the same hence presents the same failure Signed-off-by: Javier Alonso <javieralonso@geotab.com>
This commit is contained in:
parent
cacf519a96
commit
ec83d9a3a7
8 changed files with 88 additions and 0 deletions
|
|
@ -259,6 +259,7 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
xcpt_t handler;
|
||||
int nshared;
|
||||
int i;
|
||||
int ret;
|
||||
|
||||
/* Select the interrupt handler for this EXTI pin */
|
||||
|
||||
|
|
@ -333,6 +334,16 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
|
||||
if (i == nshared)
|
||||
{
|
||||
/* remove any leftover callback */
|
||||
|
||||
ret = irq_detach(irq);
|
||||
if (ret < 0)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* disable the interrupt */
|
||||
|
||||
up_disable_irq(irq);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -266,6 +266,7 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
xcpt_t handler;
|
||||
int nshared;
|
||||
int i;
|
||||
int ret;
|
||||
|
||||
/* Select the interrupt handler for this EXTI pin */
|
||||
|
||||
|
|
@ -340,6 +341,16 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
|
||||
if (i == nshared)
|
||||
{
|
||||
/* remove any leftover callback */
|
||||
|
||||
ret = irq_detach(irq);
|
||||
if (ret < 0)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* disable the interrupt */
|
||||
|
||||
up_disable_irq(irq);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -268,6 +268,7 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
xcpt_t handler;
|
||||
int nshared;
|
||||
int i;
|
||||
int ret;
|
||||
|
||||
/* Select the interrupt handler for this EXTI pin */
|
||||
|
||||
|
|
@ -342,6 +343,16 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
|
||||
if (i == nshared)
|
||||
{
|
||||
/* remove any leftover callback */
|
||||
|
||||
ret = irq_detach(irq);
|
||||
if (ret < 0)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* disable the interrupt */
|
||||
|
||||
up_disable_irq(irq);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -262,6 +262,7 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
xcpt_t handler;
|
||||
int nshared;
|
||||
int i;
|
||||
int ret;
|
||||
|
||||
/* Select the interrupt handler for this EXTI pin */
|
||||
|
||||
|
|
@ -336,6 +337,16 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
|
||||
if (i == nshared)
|
||||
{
|
||||
/* remove any leftover callback */
|
||||
|
||||
ret = irq_detach(irq);
|
||||
if (ret < 0)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* disable the interrupt */
|
||||
|
||||
up_disable_irq(irq);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -126,6 +126,7 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
uint32_t pin = pinset & GPIO_PIN_MASK;
|
||||
uint32_t exti = 1 << pin;
|
||||
int irq = STM32_IRQ_EXTI0 + pin;
|
||||
int ret;
|
||||
|
||||
g_gpio_handlers[pin].callback = func;
|
||||
g_gpio_handlers[pin].arg = arg;
|
||||
|
|
@ -139,6 +140,16 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
}
|
||||
else
|
||||
{
|
||||
/* remove any leftover callback */
|
||||
|
||||
ret = irq_detach(irq);
|
||||
if (ret < 0)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* disable the interrupt */
|
||||
|
||||
up_disable_irq(irq);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -126,6 +126,7 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
uint32_t pin = pinset & GPIO_PIN_MASK;
|
||||
uint32_t exti = 1 << pin;
|
||||
int irq = STM32_IRQ_EXTI0 + pin;
|
||||
int ret;
|
||||
|
||||
g_gpio_handlers[pin].callback = func;
|
||||
g_gpio_handlers[pin].arg = arg;
|
||||
|
|
@ -139,6 +140,16 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
}
|
||||
else
|
||||
{
|
||||
/* remove any leftover callback */
|
||||
|
||||
ret = irq_detach(irq);
|
||||
if (ret < 0)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* disable the interrupt */
|
||||
|
||||
up_disable_irq(irq);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -260,6 +260,7 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
xcpt_t handler;
|
||||
int nshared;
|
||||
int i;
|
||||
int ret;
|
||||
|
||||
/* Select the interrupt handler for this EXTI pin */
|
||||
|
||||
|
|
@ -334,6 +335,16 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
|
||||
if (i == nshared)
|
||||
{
|
||||
/* remove any leftover callback */
|
||||
|
||||
ret = irq_detach(irq);
|
||||
if (ret < 0)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* disable the interrupt */
|
||||
|
||||
up_disable_irq(irq);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -262,6 +262,7 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
xcpt_t handler;
|
||||
int nshared;
|
||||
int i;
|
||||
int ret;
|
||||
|
||||
/* Select the interrupt handler for this EXTI pin */
|
||||
|
||||
|
|
@ -336,6 +337,16 @@ int stm32_gpiosetevent(uint32_t pinset, bool risingedge, bool fallingedge,
|
|||
|
||||
if (i == nshared)
|
||||
{
|
||||
/* remove any leftover callback */
|
||||
|
||||
ret = irq_detach(irq);
|
||||
if (ret < 0)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* disable the interrupt */
|
||||
|
||||
up_disable_irq(irq);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue