[PATCH 2/3] riscv: implement local_irq_{save,restore} macros
Ben Dooks
ben.dooks at codethink.co.uk
Fri Jun 23 11:57:14 CEST 2023
On 2023-06-12 08:47, Leo Liang wrote:
> Hi Ben,
>
> On Fri, May 05, 2023 at 09:02:06AM +0100, Ben Dooks wrote:
>> Add implementations of the local_irq_{save,restore} macros so that
>> <asm/atomic.h> can be used with riscv.
>>
>> Signed-off-by: Ben Dooks <ben.dooks at sifive.com>
>> ---
>> arch/riscv/include/asm/system.h | 15 +++++++++++----
>> 1 file changed, 11 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/riscv/include/asm/system.h
>> b/arch/riscv/include/asm/system.h
>> index 9d8e43e394..78093681e5 100644
>> --- a/arch/riscv/include/asm/system.h
>> +++ b/arch/riscv/include/asm/system.h
>> @@ -7,15 +7,22 @@
>> #ifndef __ASM_RISCV_SYSTEM_H
>> #define __ASM_RISCV_SYSTEM_H
>>
>> +#include <asm/csr.h>
>> +
>> struct event;
>>
>> /*
>> - * Interrupt configuring macros.
>> - *
>> - * TODO
>> - *
>> + * Interupt configuration macros
>> */
>>
>> +#define local_irq_save(__flags) do { \
>
> Can we have this "do" in a new line just like what kernel does?
>
>> + __flags = csr_read_clear(CSR_SSTATUS, SR_SIE) & SR_SIE; \
>> + } while (0)
>> +
>> +#define local_irq_restore(__flags) do { \
>> + csr_set(CSR_SSTATUS, __flags & SR_SIE); \
>> + } while(0)
> ^
> a space missing
>> +
>> /* Hook to set up the CPU (called from SPL too) */
>> int riscv_cpu_setup(void *ctx, struct event *event);
>>
>
> If you don't mind, I could make these format modification on my side,
> so you don't have to spin another patch set.
>
> Best regards,
> Leo
Yes that's fine, this got buried under a lot of other work.
Thank you.
--
Ben
More information about the U-Boot
mailing list