armv7-a/irq: add up_irq_disable method implementation

Signed-off-by: guoshichao <guoshichao@xiaomi.com>
(cherry picked from commit 7059b05e501d67c342f1753e8eb96e723b99d6b8)
This commit is contained in:
guoshichao 2024-02-07 11:39:41 +08:00 committed by Xiang Xiao
parent 0aa7e39eef
commit 24ce8dfbf2

View File

@ -394,6 +394,24 @@ static inline irqstate_t up_irq_enable(void)
return cpsr;
}
/* Disable IRQs and return the previous IRQ state */
static inline irqstate_t up_irq_disable(void)
{
unsigned int cpsr;
__asm__ __volatile__
(
"\tmrs %0, cpsr\n"
"\tcpsid i\n"
: "=r" (cpsr)
:
: "memory"
);
return cpsr;
}
/* Restore saved IRQ & FIQ state */
noinstrument_function static inline void up_irq_restore(irqstate_t flags)