u-boot/drivers
Sean Anderson 7a76347189 serial: dm: Add support for puts
Some serial drivers can be vastly more efficient when printing multiple
characters at once. Non-DM serial has had a puts option for these sorts
of drivers; implement it for DM serial as well.

Because we have to add carriage returns, we can't just pass the whole
string directly to the serial driver. Instead, we print up to the
newline, then print a carriage return, and then continue on. This is
less efficient, but it is better than printing each character
individually. It also avoids having to allocate memory just to add a few
characters.

Drivers may perform short writes (such as filling a FIFO) and return the
number of characters written in len. We loop over them in the same way
that _serial_putc loops over putc.

This results in around sizeof(void *) growth for all boards with
DM_SERIAL. The full implementation takes around 140 bytes.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2022-04-01 16:56:54 -04:00
..
adc rockchip: saradc: remove double semi-colon 2022-03-18 18:12:03 +08:00
ata Xilinx changes for v2022.04-rc3 2022-02-21 08:32:02 -05:00
axi WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
bios_emulator pci: Drop DM_PCI check from bios_emul 2021-08-05 19:46:35 -04:00
block disk: Add an option for partitions in SPL 2022-03-25 16:42:40 -04:00
bootcount Prepare v2022.04-rc5 2022-03-28 12:36:49 -04:00
bus bus: ti-sysc: change in a normal driver 2021-03-22 19:23:27 +13:00
button button: adc: set state to pressed when the voltage is closest to nominal 2022-02-11 09:00:47 -05:00
cache cache: sifive: Fix -Wint-to-pointer-cast warning 2021-10-20 10:59:09 +08:00
clk clk: Use generic CCF ops where possible 2022-03-30 14:18:56 -04:00
core Xilinx changes for v2022.07-rc1 2022-03-16 12:52:02 -04:00
cpu sandbox: correct cpu nodes 2021-09-25 09:46:15 -06:00
crypto crypto: aspeed: fix polling RSA status wrong issue 2022-02-21 08:35:40 -05:00
ddr db-mv784mp-gp: Rename CONFIG_DB_784MP_GP to CONFIG_TARGET_DB_MV784MP_GP 2022-04-01 10:28:47 -04:00
demo demo: migrate uclass to livetree 2021-10-05 08:50:15 -04:00
dfu DFU: Check the number of arguments and argument string strictly 2022-02-11 11:29:23 -05:00
dma dma: bcm6348: Don't check clk_free 2022-03-30 13:02:55 -04:00
fastboot fastboot: only look up real partition names when no alias exists 2022-01-28 11:30:39 -05:00
firmware Xilinx changes for v2022.07-rc1 2022-03-16 12:52:02 -04:00
fpga arm: socfpga: arria10: Enable double peripheral RBF configuration 2021-12-17 12:58:01 +08:00
gpio Convert CONFIG_BCM2835_GPIO to Kconfig 2022-04-01 10:28:46 -04:00
hwspinlock treewide: invaild -> invalid 2022-01-13 07:57:49 -05:00
i2c Prepare v2022.04-rc5 2022-03-28 12:36:49 -04:00
input input: apple: Add support for Apple SPI keyboard 2022-02-10 16:44:23 -05:00
iommu iommu: Add M1 Pro/Max support to Apple DART driver 2022-02-21 08:35:40 -05:00
led drivers: led: led_bcm6753: initial support 2022-03-07 11:36:12 -05:00
mailbox mailbox: apple: Add driver for Apple IOP mailbox 2022-02-10 16:44:23 -05:00
memory keystone2: Move CONFIG_AEMIF_CNTRL_BASE out of CONFIG namespace 2021-09-27 21:38:34 -04:00
misc Fix URLs to old freescale git repos 2022-03-28 08:22:17 -04:00
mmc Prepare v2022.04-rc5 2022-03-28 12:36:49 -04:00
mtd Prepare v2022.04-rc5 2022-03-28 12:36:49 -04:00
mux treewide: invaild -> invalid 2022-01-13 07:57:49 -05:00
net Convert CONFIG_BITBANGMII_MULTI to Kconfig 2022-04-01 10:28:46 -04:00
nvme nvme: apple: Add driver for Apple NVMe storage controller 2022-02-10 16:44:23 -05:00
pch treewide: Simply conditions with the new OF_REAL 2021-09-25 09:46:15 -06:00
pci video: Drop video_fb header 2022-03-28 20:16:46 +02:00
pci_endpoint dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
phy phy: bcm63xx: Don't check clk_free 2022-03-30 13:02:55 -04:00
pinctrl Prepare v2022.04-rc5 2022-03-28 12:36:49 -04:00
power Xilinx changes for v2022.07-rc1 2022-03-16 12:52:02 -04:00
pwm pwm: Add Aspeed ast2600 PWM support 2022-03-25 13:35:50 -04:00
qe configs: fsl: migrate FMAN/QE specific defines to Kconfig 2021-11-09 17:18:23 +05:30
ram Prepare v2022.04-rc5 2022-03-28 12:36:49 -04:00
reboot-mode reboot-mode: migrate uclass to livetree 2021-10-05 08:50:15 -04:00
remoteproc remoteproc: ipu: Add driver to bring up ipu 2022-02-08 11:00:03 -05:00
reset scmi: change parameter dev in devm_scmi_process_msg 2022-03-02 17:42:06 -05:00
rng clk: Add clk_get_by_name_optional 2022-02-25 01:41:04 -05:00
rtc Convert CONFIG_MCFRTC et al to Kconfig 2022-04-01 10:28:46 -04:00
scsi Convert CONFIG_SCSI_AHCI_PLAT et al to Kconfig 2022-02-09 09:16:48 -05:00
serial serial: dm: Add support for puts 2022-04-01 16:56:54 -04:00
smem dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
soc soc: soc_ti_k3: update j721e revision numbering 2022-02-08 09:41:27 -05:00
sound doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
spi spi: dw: Don't check clk_free 2022-03-30 13:02:55 -04:00
spmi spmi: msm: add arbiter version 5 support 2021-10-31 08:46:44 -04:00
sysinfo sysinfo: rcar3: Add Renesas R-Car Gen3 sysinfo driver 2021-07-20 23:33:54 +02:00
sysreset Xilinx changes for v2022.04-rc1 2022-01-19 11:43:44 -05:00
tee tee: optee: remove unused duplicated login Id macros 2021-11-23 13:53:03 -05:00
thermal WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
timer omap: timer: implement timer_get_boot_us 2022-01-16 08:31:03 -05:00
tpm doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
ufs dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
usb usb: dwc2: handle return code of dev_read_size() in of to, plat function 2022-03-14 12:31:12 +01:00
video video: Drop formike driver 2022-03-28 20:29:58 +02:00
virtio doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
w1 arm: Remove zmx25 board and ARCH_MX25 2021-10-01 21:08:18 -04:00
w1-eeprom dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
watchdog Prepare v2022.04-rc4 2022-03-14 17:40:36 -04:00
xen WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
Kconfig iommu: Add IOMMU uclass 2021-10-31 08:46:44 -04:00
Makefile iommu: Add IOMMU uclass 2021-10-31 08:46:44 -04:00