diff options
| author | Rasmus Villemoes <ravi@prevas.dk> | 2024-10-03 16:10:29 +0200 |
|---|---|---|
| committer | Tom Rini <trini@konsulko.com> | 2024-10-16 15:54:31 -0600 |
| commit | 6cc6a2f6992ebe0c087a0da29d1ded3f8799d6ca (patch) | |
| tree | f8f124b0e0c010d4c9c03587f12a921e6ddff6b6 /include/serial.h | |
| parent | 32822982307d3f4288580fe2f3b25e5031900702 (diff) | |
serial: embed the rx buffer in struct serial_dev_priv
The initialization of upriv->buf doesn't check for a NULL return. But
there's actually no point in doing a separate, unconditional malloc()
in post_probe; we can just make serial_dev_priv contain the rx buffer
itself, and let the (larger) allocation be handled by the driver core
when it allocates the ->per_device_auto. The total run-time memory
used is mostly the same, we reduce the code size a little, and as a
bonus, struct serial_dev_priv does not contain the unused members when
!SERIAL_RX_BUFFER.
Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/serial.h')
| -rw-r--r-- | include/serial.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/serial.h b/include/serial.h index 14563239b7d..eabc49f820f 100644 --- a/include/serial.h +++ b/include/serial.h @@ -298,9 +298,11 @@ struct dm_serial_ops { struct serial_dev_priv { struct stdio_dev *sdev; - char *buf; +#if CONFIG_IS_ENABLED(SERIAL_RX_BUFFER) + char buf[CONFIG_SERIAL_RX_BUFFER_SIZE]; uint rd_ptr; uint wr_ptr; +#endif }; /* Access the serial operations for a device */ |
