mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-04 20:26:13 +02:00
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>
This commit is contained in:
parent
3282298230
commit
6cc6a2f699
@ -588,11 +588,6 @@ static int serial_post_probe(struct udevice *dev)
|
||||
sdev.getc = serial_stub_getc;
|
||||
sdev.tstc = serial_stub_tstc;
|
||||
|
||||
#if CONFIG_IS_ENABLED(SERIAL_RX_BUFFER)
|
||||
/* Allocate the RX buffer */
|
||||
upriv->buf = malloc(CONFIG_SERIAL_RX_BUFFER_SIZE);
|
||||
#endif
|
||||
|
||||
stdio_register_dev(&sdev, &upriv->sdev);
|
||||
#endif
|
||||
return 0;
|
||||
|
||||
@ -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 */
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user