1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/pkg/tinyusb/patches/0005-src-portable-nordic-nrf5x-fix-compilation-with-clang.patch
2023-07-18 12:24:10 +02:00

63 lines
2.2 KiB
Diff

From 93b38d4855e2b6d5f3179d72da2f98f8df796804 Mon Sep 17 00:00:00 2001
From: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
Date: Fri, 19 May 2023 23:29:23 +0200
Subject: [PATCH] src/portable/nordic/nrf5x: fix compilation with clang
Previously code expecting atomic_flag as argument type was called with
atomic_bool as type. This brings the functions called back in
alignment with the types used.
---
src/portable/nordic/nrf5x/dcd_nrf5x.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/portable/nordic/nrf5x/dcd_nrf5x.c b/src/portable/nordic/nrf5x/dcd_nrf5x.c
index afc14b0..0316673 100644
--- a/src/portable/nordic/nrf5x/dcd_nrf5x.c
+++ b/src/portable/nordic/nrf5x/dcd_nrf5x.c
@@ -128,13 +128,13 @@ static void start_dma(volatile uint32_t* reg_startep)
// Therefore dma_pending is corrected right away
if ( (reg_startep == &NRF_USBD->TASKS_EP0STATUS) || (reg_startep == &NRF_USBD->TASKS_EP0RCVOUT) )
{
- atomic_flag_clear(&_dcd.dma_running);
+ atomic_store(&_dcd.dma_running, false);
}
}
static void edpt_dma_start(volatile uint32_t* reg_startep)
{
- if ( atomic_flag_test_and_set(&_dcd.dma_running) )
+ if ( atomic_exchange(&_dcd.dma_running, true) )
{
usbd_defer_func((osal_task_func_t) edpt_dma_start, (void*) (uintptr_t) reg_startep, true);
}else
@@ -147,7 +147,7 @@ static void edpt_dma_start(volatile uint32_t* reg_startep)
static void edpt_dma_end(void)
{
TU_ASSERT(_dcd.dma_running, );
- atomic_flag_clear(&_dcd.dma_running);
+ atomic_store(&_dcd.dma_running, false);
}
// helper getting td
@@ -171,7 +171,7 @@ static void xact_out_dma(uint8_t epnum)
// DMA can't be active during read of SIZE.EPOUT or SIZE.ISOOUT, so try to lock,
// If already running defer call regardless if it was called from ISR or task,
- if ( atomic_flag_test_and_set(&_dcd.dma_running) )
+ if ( atomic_exchange(&_dcd.dma_running, true) )
{
usbd_defer_func((osal_task_func_t)xact_out_dma_wrapper, (void *)(uint32_t)epnum, is_in_isr());
return;
@@ -183,7 +183,7 @@ static void xact_out_dma(uint8_t epnum)
if (xact_len & USBD_SIZE_ISOOUT_ZERO_Msk)
{
xact_len = 0;
- atomic_flag_clear(&_dcd.dma_running);
+ atomic_store(&_dcd.dma_running, false);
}
else
{
--
2.40.1