From e744855f94f37388d4adb1f9a79077aca61ec71c Mon Sep 17 00:00:00 2001 From: Dawid Niedzwiecki Date: Wed, 24 Nov 2021 09:51:31 +0100 Subject: atomic: cast pointers to atomic_t* for atomic_* calls Some atomic_* calls use pointers to different types of variables than atomic_t. Cast those to atomic_t* to avoid compilation errors. It shouldn't change the generated code. BUG=b:207082842 TEST=make buildall && zmake testall && build_compare.sh -b all BRANCH=main Signed-off-by: Dawid Niedzwiecki Change-Id: I5d8e8eca7c5d7fe661c75bc75f82c49083c88be0 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3300319 Reviewed-by: Keith Short Commit-Queue: Keith Short --- board/twinkie/sniffer.c | 4 ++-- chip/lm4/registers.h | 3 ++- chip/stm32/usart_info_command.c | 4 ++-- chip/stm32/usart_rx_dma.c | 4 ++-- chip/stm32/usart_rx_interrupt-stm32f4.c | 2 +- chip/stm32/usart_rx_interrupt-stm32l.c | 4 ++-- chip/stm32/usart_rx_interrupt.c | 2 +- chip/stm32/usb.c | 2 +- chip/stm32/usb_hid_keyboard.c | 2 +- common/charge_manager.c | 4 ++-- common/keyboard_scan.c | 4 ++-- common/timer.c | 6 +++--- 12 files changed, 21 insertions(+), 20 deletions(-) diff --git a/board/twinkie/sniffer.c b/board/twinkie/sniffer.c index a567b5d725..7d2d8d439f 100644 --- a/board/twinkie/sniffer.c +++ b/board/twinkie/sniffer.c @@ -316,9 +316,9 @@ void sniffer_task(void) + (EP_PACKET_HEADER_SIZE>>1))), samples[d >> 4]+off, EP_PAYLOAD_SIZE); - atomic_clear_bits((uint32_t *)&free_usb, 1 << u); + atomic_clear_bits((atomic_t *)&free_usb, 1 << u); u = !u; - atomic_clear_bits((uint32_t *)&filled_dma, 1 << d); + atomic_clear_bits((atomic_t *)&filled_dma, 1 << d); } led_reset_record(); diff --git a/chip/lm4/registers.h b/chip/lm4/registers.h index 0c59da19f6..1065cd7f5e 100644 --- a/chip/lm4/registers.h +++ b/chip/lm4/registers.h @@ -8,6 +8,7 @@ #ifndef __CROS_EC_REGISTERS_H #define __CROS_EC_REGISTERS_H +#include "atomic.h" #include "common.h" #define LM4_UART_CH0_BASE 0x4000c000 @@ -265,7 +266,7 @@ static inline int lm4_fan_addr(int ch, int offset) #define LM4_SYSTEM_SRI2C REG32(0x400fe520) #define LM4_SYSTEM_SREEPROM REG32(0x400fe558) -#define LM4_SYSTEM_SRI2C_ADDR ((uint32_t *)0x400fe520) +#define LM4_SYSTEM_SRI2C_ADDR ((atomic_t *)0x400fe520) #define LM4_SYSTEM_RCGC_BASE ((volatile uint32_t *)0x400fe600) #define LM4_SYSTEM_RCGCGPIO REG32(0x400fe608) diff --git a/chip/stm32/usart_info_command.c b/chip/stm32/usart_info_command.c index 2649a97351..50d56aa2ba 100644 --- a/chip/stm32/usart_info_command.c +++ b/chip/stm32/usart_info_command.c @@ -25,8 +25,8 @@ static int command_usart_info(int argc, char **argv) " dropped %d bytes\n" " overran %d times\n", config->hw->index + 1, - atomic_clear((uint32_t *)&(config->state->rx_dropped)), - atomic_clear((uint32_t *)&(config->state->rx_overrun))); + atomic_clear((atomic_t *)&(config->state->rx_dropped)), + atomic_clear((atomic_t *)&(config->state->rx_overrun))); if (config->rx->info) config->rx->info(config); diff --git a/chip/stm32/usart_rx_dma.c b/chip/stm32/usart_rx_dma.c index a185878261..13c63949dd 100644 --- a/chip/stm32/usart_rx_dma.c +++ b/chip/stm32/usart_rx_dma.c @@ -81,7 +81,7 @@ static void usart_rx_dma_interrupt_common( /* (new_index == old_index): nothing to add to the queue. */ } - atomic_add((uint32_t *)&(config->state->rx_dropped), new_bytes - added); + atomic_add((atomic_t *)&(config->state->rx_dropped), new_bytes - added); if (dma_config->state->max_bytes < new_bytes) dma_config->state->max_bytes = new_bytes; @@ -115,5 +115,5 @@ void usart_rx_dma_info(struct usart_config const *config) DOWNCAST(config->rx, struct usart_rx_dma const, usart_rx); ccprintf(" DMA RX max_bytes %d\n", - atomic_clear((uint32_t *)&dma_config->state->max_bytes)); + atomic_clear((atomic_t *)&dma_config->state->max_bytes)); } diff --git a/chip/stm32/usart_rx_interrupt-stm32f4.c b/chip/stm32/usart_rx_interrupt-stm32f4.c index 198c6dd180..b796ae1175 100644 --- a/chip/stm32/usart_rx_interrupt-stm32f4.c +++ b/chip/stm32/usart_rx_interrupt-stm32f4.c @@ -33,7 +33,7 @@ static void usart_rx_interrupt_handler(struct usart_config const *config) uint8_t byte = STM32_USART_RDR(base); if (!queue_add_unit(config->producer.queue, &byte)) - atomic_add((uint32_t *)&(config->state->rx_dropped), 1); + atomic_add((atomic_t *)&(config->state->rx_dropped), 1); } } diff --git a/chip/stm32/usart_rx_interrupt-stm32l.c b/chip/stm32/usart_rx_interrupt-stm32l.c index 24ca7a0487..7c3f765f19 100644 --- a/chip/stm32/usart_rx_interrupt-stm32l.c +++ b/chip/stm32/usart_rx_interrupt-stm32l.c @@ -39,14 +39,14 @@ static void usart_rx_interrupt_handler(struct usart_config const *config) if (!(status & STM32_USART_SR_RXNE)) (void)STM32_USART_RDR(config->hw->base); - atomic_add((uint32_t *)&(config->state->rx_overrun), 1); + atomic_add((atomic_t *)&(config->state->rx_overrun), 1); } if (status & STM32_USART_SR_RXNE) { uint8_t byte = STM32_USART_RDR(base); if (!queue_add_unit(config->producer.queue, &byte)) - atomic_add((uint32_t *)&(config->state->rx_dropped), 1); + atomic_add((atomic_t *)&(config->state->rx_dropped), 1); } } diff --git a/chip/stm32/usart_rx_interrupt.c b/chip/stm32/usart_rx_interrupt.c index 3bc30d4aaf..49d4e83894 100644 --- a/chip/stm32/usart_rx_interrupt.c +++ b/chip/stm32/usart_rx_interrupt.c @@ -30,7 +30,7 @@ static void usart_rx_interrupt_handler(struct usart_config const *config) uint8_t byte = STM32_USART_RDR(base); if (!queue_add_unit(config->producer.queue, &byte)) - atomic_add((uint32_t *)&(config->state->rx_dropped), 1); + atomic_add((atomic_t *)&(config->state->rx_dropped), 1); } } diff --git a/chip/stm32/usb.c b/chip/stm32/usb.c index dde84efaea..a1f60e8906 100644 --- a/chip/stm32/usb.c +++ b/chip/stm32/usb.c @@ -578,7 +578,7 @@ void usb_wake(void) } /* Only allow one caller at a time. */ - if (!atomic_clear((int *)&usb_wake_done)) + if (!atomic_clear((atomic_t *)&usb_wake_done)) return; CPRINTF("WAKE\n"); diff --git a/chip/stm32/usb_hid_keyboard.c b/chip/stm32/usb_hid_keyboard.c index ac4a9f5a1f..b4561d591f 100644 --- a/chip/stm32/usb_hid_keyboard.c +++ b/chip/stm32/usb_hid_keyboard.c @@ -397,7 +397,7 @@ static void write_keyboard_report(void) return; } - if (atomic_clear((int *)&hid_ep_data_ready)) { + if (atomic_clear((atomic_t *)&hid_ep_data_ready)) { /* * Endpoint is not busy, and interrupt handler did not just * send the buffer: enable TX. diff --git a/common/charge_manager.c b/common/charge_manager.c index 3d41c3a08d..041f41f1bc 100644 --- a/common/charge_manager.c +++ b/common/charge_manager.c @@ -1388,9 +1388,9 @@ void charge_manager_source_port(int port, int enable) int p, rp; if (enable) - atomic_or((uint32_t *)&source_port_bitmap, 1 << port); + atomic_or((atomic_t *)&source_port_bitmap, 1 << port); else - atomic_clear_bits((uint32_t *)&source_port_bitmap, 1 << port); + atomic_clear_bits((atomic_t *)&source_port_bitmap, 1 << port); /* No change, exit early. */ if (prev_bitmap == source_port_bitmap) diff --git a/common/keyboard_scan.c b/common/keyboard_scan.c index 071b441cfa..d192214f1e 100644 --- a/common/keyboard_scan.c +++ b/common/keyboard_scan.c @@ -140,9 +140,9 @@ void keyboard_scan_enable(int enable, enum kb_scan_disable_masks mask) { /* Access atomically */ if (enable) { - atomic_clear_bits((uint32_t *)&disable_scanning_mask, mask); + atomic_clear_bits((atomic_t *)&disable_scanning_mask, mask); } else { - atomic_or((uint32_t *)&disable_scanning_mask, mask); + atomic_or((atomic_t *)&disable_scanning_mask, mask); clear_typematic_key(); } diff --git a/common/timer.c b/common/timer.c index 0490741c4c..0cb0d97289 100644 --- a/common/timer.c +++ b/common/timer.c @@ -49,7 +49,7 @@ static int timer_irq; static void expire_timer(task_id_t tskid) { /* we are done with this timer */ - atomic_clear_bits(&timer_running, 1 << tskid); + atomic_clear_bits((atomic_t *)&timer_running, 1 << tskid); /* wake up the taks waiting for this timer */ task_set_event(tskid, TASK_EVENT_TIMER); } @@ -142,7 +142,7 @@ int timer_arm(timestamp_t event, task_id_t tskid) return EC_ERROR_BUSY; timer_deadline[tskid] = event; - atomic_or(&timer_running, BIT(tskid)); + atomic_or((atomic_t *)&timer_running, BIT(tskid)); /* Modify the next event if needed */ if ((event.le.hi < now.le.hi) || @@ -156,7 +156,7 @@ void timer_cancel(task_id_t tskid) { ASSERT(tskid < TASK_ID_COUNT); - atomic_clear_bits(&timer_running, BIT(tskid)); + atomic_clear_bits((atomic_t *)&timer_running, BIT(tskid)); /* * Don't need to cancel the hardware timer interrupt, instead do * timer-related housekeeping when the next timer interrupt fires. -- cgit v1.2.1