Skip to content

Commit 93909c9

Browse files
committed
drivers/: update to the new ring_buffer api
Move to use new ring_buffer api. Signed-off-by: Måns Ansgariusson <[email protected]>
1 parent 1cd0f72 commit 93909c9

File tree

19 files changed

+117
-158
lines changed

19 files changed

+117
-158
lines changed

drivers/console/Kconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ config IPM_CONSOLE_SENDER
173173

174174
config IPM_CONSOLE_RECEIVER
175175
bool "Inter-processor Mailbox console receiver"
176-
select RING_BUFFER
177176
help
178177
Enable the receiving side of IPM console
179178

drivers/console/ipm_console_receiver.c

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
static void ipm_console_thread(void *arg1, void *arg2, void *arg3)
2020
{
2121
uint8_t size32;
22-
uint16_t type;
2322
int ret, key;
2423
const struct ipm_console_receiver_config_info *config_info;
2524
struct ipm_console_receiver_runtime_data *driver_data;
@@ -28,19 +27,17 @@ static void ipm_console_thread(void *arg1, void *arg2, void *arg3)
2827
driver_data = (struct ipm_console_receiver_runtime_data *)arg1;
2928
config_info = (const struct ipm_console_receiver_config_info *)arg2;
3029
ARG_UNUSED(arg3);
31-
size32 = 0U;
3230
pos = 0;
3331

3432
while (1) {
3533
k_sem_take(&driver_data->sem, K_FOREVER);
3634

37-
ret = ring_buf_item_get(&driver_data->rb, &type,
38-
(uint8_t *)&config_info->line_buf[pos],
39-
NULL, &size32);
40-
if (ret) {
35+
ret = ring_buffer_read(&driver_data->rb, (uint8_t *)&config_info->line_buf[pos],
36+
sizeof(uint32_t));
37+
38+
if (ret < sizeof(uint32_t)) {
4139
/* Shouldn't ever happen... */
4240
printk("ipm console ring buffer error: %d\n", ret);
43-
size32 = 0U;
4441
continue;
4542
}
4643

@@ -73,7 +70,7 @@ static void ipm_console_thread(void *arg1, void *arg2, void *arg3)
7370
* clearing the channel_disabled flag.
7471
*/
7572
if (driver_data->channel_disabled &&
76-
ring_buf_item_space_get(&driver_data->rb)) {
73+
sizeof(uint32_t) <= ring_buffer_space(&driver_data->rb)) {
7774
key = irq_lock();
7875
ipm_set_enabled(driver_data->ipm_device, 1);
7976
driver_data->channel_disabled = 0;
@@ -92,8 +89,8 @@ static void ipm_console_receive_callback(const struct device *ipm_dev,
9289
ARG_UNUSED(data);
9390

9491
/* Should always be at least one free buffer slot */
95-
ret = ring_buf_item_put(&driver_data->rb, 0, id, NULL, 0);
96-
__ASSERT(ret == 0, "Failed to insert data into ring buffer");
92+
ret = ring_buffer_write(&driver_data->rb, &id, sizeof(id));
93+
__ASSERT(ret != sizeof(id), "Failed to insert data into ring buffer");
9794
k_sem_give(&driver_data->sem);
9895

9996
/* If the buffer is now full, disable future interrupts for this channel
@@ -104,7 +101,7 @@ static void ipm_console_receive_callback(const struct device *ipm_dev,
104101
* call with the wait flag enabled. It blocks until the receiver side
105102
* re-enables the channel and consumes the data.
106103
*/
107-
if (ring_buf_item_space_get(&driver_data->rb) == 0) {
104+
if (ring_buffer_space(&driver_data->rb) < sizeof(uint32_t)) {
108105
ipm_set_enabled(ipm_dev, 0);
109106
driver_data->channel_disabled = 1;
110107
}
@@ -135,8 +132,8 @@ int ipm_console_receiver_init(const struct device *d)
135132
driver_data->ipm_device = ipm;
136133
driver_data->channel_disabled = 0;
137134
k_sem_init(&driver_data->sem, 0, K_SEM_MAX_LIMIT);
138-
ring_buf_item_init(&driver_data->rb, config_info->rb_size32,
139-
config_info->ring_buf_data);
135+
ring_buffer_init(&driver_data->rb, config_info->ring_buf_data,
136+
config_info->rb_size32 * sizeof(uint32_t));
140137

141138
ipm_register_callback(ipm, ipm_console_receive_callback, driver_data);
142139

drivers/entropy/Kconfig.cc13xx_cc26xx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ config ENTROPY_CC13XX_CC26XX_RNG
88
default y
99
depends on DT_HAS_TI_CC13XX_CC26XX_TRNG_ENABLED
1010
select ENTROPY_HAS_DRIVER
11-
select RING_BUFFER
1211
help
1312
This option enables the driver for the True Random Number Generator (TRNG)
1413
for TI SimpleLink CC13xx / CC26xx SoCs.

drivers/entropy/entropy_cc13xx_cc26xx.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
struct entropy_cc13xx_cc26xx_data {
3131
struct k_sem lock;
3232
struct k_sem sync;
33-
struct ring_buf pool;
33+
struct ring_buffer pool;
3434
uint8_t data[CONFIG_ENTROPY_CC13XX_CC26XX_POOL_SIZE];
3535
#ifdef CONFIG_PM
3636
Power_NotifyObj post_notify;
@@ -111,7 +111,7 @@ static int entropy_cc13xx_cc26xx_get_entropy(const struct device *dev,
111111

112112
while (len) {
113113
k_sem_take(&data->lock, K_FOREVER);
114-
cnt = ring_buf_get(&data->pool, buf, len);
114+
cnt = ring_buffer_read(&data->pool, buf, len);
115115
k_sem_give(&data->lock);
116116

117117
if (cnt) {
@@ -140,7 +140,7 @@ static void entropy_cc13xx_cc26xx_isr(const struct device *dev)
140140
num[1] = TRNGNumberGet(TRNG_HI_WORD);
141141
num[0] = TRNGNumberGet(TRNG_LOW_WORD);
142142

143-
cnt = ring_buf_put(&data->pool, (uint8_t *)num, sizeof(num));
143+
cnt = ring_buffer_write(&data->pool, (uint8_t *)num, sizeof(num));
144144

145145
/* When pool is full disable interrupt and stop reading numbers */
146146
if (cnt != sizeof(num)) {
@@ -178,7 +178,7 @@ static int entropy_cc13xx_cc26xx_get_entropy_isr(const struct device *dev,
178178
unsigned int key;
179179

180180
key = irq_lock();
181-
cnt = ring_buf_get(&data->pool, buf, len);
181+
cnt = ring_buffer_read(&data->pool, buf, len);
182182
irq_unlock(key);
183183

184184
if ((cnt == len) || ((flags & ENTROPY_BUSYWAIT) == 0U)) {
@@ -200,7 +200,7 @@ static int entropy_cc13xx_cc26xx_get_entropy_isr(const struct device *dev,
200200
num[1] = TRNGNumberGet(TRNG_HI_WORD);
201201
num[0] = TRNGNumberGet(TRNG_LOW_WORD);
202202

203-
ring_buf_put(&data->pool, (uint8_t *)num,
203+
ring_buffer_write(&data->pool, (uint8_t *)num,
204204
sizeof(num));
205205
}
206206

@@ -209,7 +209,7 @@ static int entropy_cc13xx_cc26xx_get_entropy_isr(const struct device *dev,
209209
* would allow us to pick up anything that has been put
210210
* in by the ISR as well.
211211
*/
212-
cnt = ring_buf_get(&data->pool, buf, len);
212+
cnt = ring_buffer_read(&data->pool, buf, len);
213213

214214
if (src & TRNG_FRO_SHUTDOWN) {
215215
handle_shutdown_ovf();
@@ -286,7 +286,7 @@ static int entropy_cc13xx_cc26xx_init(const struct device *dev)
286286
struct entropy_cc13xx_cc26xx_data *data = dev->data;
287287

288288
/* Initialize driver data */
289-
ring_buf_init(&data->pool, sizeof(data->data), data->data);
289+
ring_buffer_init(&data->pool, data->data, sizeof(data->data));
290290

291291
#if defined(CONFIG_PM)
292292
Power_setDependency(PowerCC26XX_PERIPH_TRNG);

drivers/espi/Kconfig.npcx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,7 @@ config ESPI_NPCX_BYPASS_CH_ENABLE_FATAL_ERROR
7474

7575
config ESPI_NPCX_PERIPHERAL_DEBUG_PORT_80_MULTI_BYTE
7676
bool "Host can write 1/2/4 bytes of Port80 data in a eSPI transaction"
77-
depends on (ESPI_NPCX_NPCXN_V2 || ESPI_NPCX_NPCXN_V3) && ESPI_PERIPHERAL_DEBUG_PORT_80
78-
select RING_BUFFER
77+
depends on (SOC_SERIES_NPCX9 || SOC_SERIES_NPCX4) && ESPI_PERIPHERAL_DEBUG_PORT_80
7978
help
8079
EC can accept 1/2/4 bytes of Port 80 data written from the Host in an
8180
eSPI transaction.

drivers/espi/host_subs_npcx.c

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ struct host_sub_npcx_data {
150150
uint8_t espi_rst_level; /* current ESPI_RST# status */
151151
const struct device *host_bus_dev; /* device for eSPI/LPC bus */
152152
#ifdef CONFIG_ESPI_NPCX_PERIPHERAL_DEBUG_PORT_80_MULTI_BYTE
153-
struct ring_buf port80_ring_buf;
153+
struct ring_buffer port80_ring_buf;
154154
uint8_t port80_data[CONFIG_ESPI_NPCX_PERIPHERAL_DEBUG_PORT_80_RING_BUF_SIZE];
155155
struct k_work work;
156156
#endif
@@ -505,26 +505,26 @@ static void host_port80_work_handler(struct k_work *item)
505505
{
506506
uint32_t code = 0;
507507
struct host_sub_npcx_data *data = CONTAINER_OF(item, struct host_sub_npcx_data, work);
508-
struct ring_buf *rbuf = &data->port80_ring_buf;
508+
struct ring_buffer *rbuf = &data->port80_ring_buf;
509509
struct espi_event evt = {ESPI_BUS_PERIPHERAL_NOTIFICATION,
510510
(ESPI_PERIPHERAL_INDEX_0 << 16) | ESPI_PERIPHERAL_DEBUG_PORT80,
511511
ESPI_PERIPHERAL_NODATA};
512512

513-
while (!ring_buf_is_empty(rbuf)) {
513+
while (!ring_buffer_empty(rbuf)) {
514514
struct npcx_dp80_buf dp80_buf;
515515
uint8_t offset;
516516

517-
ring_buf_get(rbuf, &dp80_buf.offset_code[0], sizeof(dp80_buf.offset_code));
517+
ring_buffer_read(rbuf, &dp80_buf.offset_code[0], sizeof(dp80_buf.offset_code));
518518
offset = dp80_buf.offset_code[1];
519519
code |= dp80_buf.offset_code[0] << (8 * offset);
520-
if (ring_buf_is_empty(rbuf)) {
520+
if (ring_buffer_empty(rbuf)) {
521521
evt.evt_data = code;
522522
espi_send_callbacks(host_sub_data.callbacks, host_sub_data.host_bus_dev,
523523
evt);
524524
break;
525525
}
526526
/* peek the offset of the next byte */
527-
ring_buf_peek(rbuf, &dp80_buf.offset_code[0], sizeof(dp80_buf.offset_code));
527+
ring_buffer_peek(rbuf, &dp80_buf.offset_code[0], sizeof(dp80_buf.offset_code));
528528
offset = dp80_buf.offset_code[1];
529529
/*
530530
* If the peeked next byte's offset is 0, it is the start of the new code.
@@ -547,13 +547,13 @@ static void host_port80_isr(const void *arg)
547547
uint8_t status = inst_shm->DP80STS;
548548

549549
#ifdef CONFIG_ESPI_NPCX_PERIPHERAL_DEBUG_PORT_80_MULTI_BYTE
550-
struct ring_buf *rbuf = &host_sub_data.port80_ring_buf;
550+
struct ring_buffer *rbuf = &host_sub_data.port80_ring_buf;
551551

552552
while (IS_BIT_SET(inst_shm->DP80STS, NPCX_DP80STS_FNE)) {
553553
struct npcx_dp80_buf dp80_buf;
554554

555555
dp80_buf.offset_code_16 = inst_shm->DP80BUF;
556-
ring_buf_put(rbuf, &dp80_buf.offset_code[0], sizeof(dp80_buf.offset_code));
556+
ring_buffer_write(rbuf, &dp80_buf.offset_code[0], sizeof(dp80_buf.offset_code));
557557
}
558558
k_work_submit(&host_sub_data.work);
559559
#else
@@ -1156,8 +1156,9 @@ int npcx_host_init_subs_core_domain(const struct device *host_bus_dev,
11561156
#if defined(CONFIG_ESPI_PERIPHERAL_DEBUG_PORT_80)
11571157
host_port80_init();
11581158
#if defined(CONFIG_ESPI_NPCX_PERIPHERAL_DEBUG_PORT_80_MULTI_BYTE)
1159-
ring_buf_init(&host_sub_data.port80_ring_buf, sizeof(host_sub_data.port80_data),
1160-
host_sub_data.port80_data);
1159+
ring_buffer_init(&host_sub_data.port80_ring_buf,
1160+
host_sub_data.port80_data,
1161+
sizeof(host_sub_data.port80_data));
11611162
k_work_init(&host_sub_data.work, host_port80_work_handler);
11621163
#endif
11631164
#endif

drivers/hdlc_rcp_if/hdlc_rcp_if_uart.c

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
3535

3636
struct openthread_uart {
3737
struct k_work work;
38-
struct ring_buf *rx_ringbuf;
39-
struct ring_buf *tx_ringbuf;
38+
struct ring_buffer *rx_ringbuf;
39+
struct ring_buffer *tx_ringbuf;
4040
const struct device *dev;
4141
atomic_t tx_busy;
4242

@@ -45,8 +45,8 @@ struct openthread_uart {
4545
};
4646

4747
#define OT_UART_DEFINE(_name, _ringbuf_rx_size, _ringbuf_tx_size) \
48-
RING_BUF_DECLARE(_name##_rx_ringbuf, _ringbuf_rx_size); \
49-
RING_BUF_DECLARE(_name##_tx_ringbuf, _ringbuf_tx_size); \
48+
RING_BUFFER_DECLARE(_name##_rx_ringbuf, _ringbuf_rx_size); \
49+
RING_BUFFER_DECLARE(_name##_tx_ringbuf, _ringbuf_tx_size); \
5050
static struct openthread_uart _name = { \
5151
.rx_ringbuf = &_name##_rx_ringbuf, \
5252
.tx_ringbuf = &_name##_tx_ringbuf, \
@@ -70,11 +70,10 @@ static void ot_uart_rx_cb(struct k_work *item)
7070
uint8_t *data;
7171
uint32_t len;
7272

73-
len = ring_buf_get_claim(otuart->rx_ringbuf, &data,
74-
otuart->rx_ringbuf->size);
73+
len = ring_buffer_read_ptr(otuart->rx_ringbuf, &data);
7574
if (len > 0) {
7675
otuart->cb(data, len, otuart->param);
77-
ring_buf_get_finish(otuart->rx_ringbuf, len);
76+
ring_buffer_consume(otuart->rx_ringbuf, len);
7877
}
7978
}
8079

@@ -83,14 +82,10 @@ static void uart_tx_handle(const struct device *dev)
8382
uint32_t tx_len = 0, len;
8483
uint8_t *data;
8584

86-
len = ring_buf_get_claim(
87-
ot_uart.tx_ringbuf, &data,
88-
ot_uart.tx_ringbuf->size);
85+
len = ring_buffer_read_ptr(ot_uart.tx_ringbuf, &data);
8986
if (len > 0) {
9087
tx_len = uart_fifo_fill(dev, data, len);
91-
int err = ring_buf_get_finish(ot_uart.tx_ringbuf, tx_len);
92-
(void)err;
93-
__ASSERT_NO_MSG(err == 0);
88+
ring_buffer_consume(ot_uart.tx_ringbuf, tx_len);
9489
} else {
9590
uart_irq_tx_disable(dev);
9691
}
@@ -101,15 +96,10 @@ static void uart_rx_handle(const struct device *dev)
10196
uint32_t rd_len = 0, len;
10297
uint8_t *data;
10398

104-
len = ring_buf_put_claim(
105-
ot_uart.rx_ringbuf, &data,
106-
ot_uart.rx_ringbuf->size);
99+
len = ring_buffer_write_ptr(ot_uart.rx_ringbuf, &data);
107100
if (len > 0) {
108101
rd_len = uart_fifo_read(dev, data, len);
109-
110-
int err = ring_buf_put_finish(ot_uart.rx_ringbuf, rd_len);
111-
(void)err;
112-
__ASSERT_NO_MSG(err == 0);
102+
ring_buffer_commit(ot_uart.rx_ringbuf, rd_len);
113103
}
114104
}
115105

@@ -127,7 +117,7 @@ static void uart_callback(const struct device *dev, void *user_data)
127117
}
128118
}
129119

130-
if (ring_buf_size_get(ot_uart.rx_ringbuf) > 0) {
120+
if (ring_buffer_size(ot_uart.rx_ringbuf) > 0) {
131121
k_work_submit(&ot_uart.work);
132122
}
133123
}
@@ -175,7 +165,7 @@ static int hdlc_send(const uint8_t *frame, uint16_t length)
175165
return -EIO;
176166
}
177167

178-
ret = ring_buf_put(ot_uart.tx_ringbuf, frame, length);
168+
ret = ring_buffer_write(ot_uart.tx_ringbuf, frame, length);
179169
uart_irq_tx_enable(ot_uart.dev);
180170

181171
if (ret < length) {
@@ -191,8 +181,8 @@ static int hdlc_deinit(void)
191181
uart_irq_tx_disable(ot_uart.dev);
192182
uart_irq_rx_disable(ot_uart.dev);
193183

194-
ring_buf_reset(ot_uart.rx_ringbuf);
195-
ring_buf_reset(ot_uart.tx_ringbuf);
184+
ring_buffer_reset(ot_uart.rx_ringbuf);
185+
ring_buffer_reset(ot_uart.tx_ringbuf);
196186

197187
return 0;
198188
}

0 commit comments

Comments
 (0)