treewide, serdev: change receive_buf() return type to size_t
authorFrancesco Dolcini <francesco.dolcini@toradex.com>
Mon, 22 Jan 2024 18:05:51 +0000 (19:05 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 28 Jan 2024 02:13:53 +0000 (18:13 -0800)
commitfed99212acae832607817b24fa589f8aaf03103f
tree61851770d6f15f51be780ca4a8ec9ac1dc47b2b0
parentcf066f9334b9632ca1a8185118083a9218504e0a
treewide, serdev: change receive_buf() return type to size_t

receive_buf() is called from ttyport_receive_buf() that expects values
">= 0" from serdev_controller_receive_buf(), change its return type from
ssize_t to size_t.

The need for this clean-up was noticed while fixing a warning, see
commit 94d053942544 ("Bluetooth: btnxpuart: fix recv_buf() return value").
Changing the callback prototype to return an unsigned seems the best way
to document the API and ensure that is properly used.

GNSS drivers implementation of serdev receive_buf() callback return
directly the return value of gnss_insert_raw(). gnss_insert_raw()
returns a signed int, however this is not an issue since the value
returned is always positive, because of the kfifo_in() implementation.
gnss_insert_raw() could be changed to return also an unsigned, however
this is not implemented here as request by the GNSS maintainer Johan
Hovold.

Suggested-by: Jiri Slaby <jirislaby@kernel.org>
Link: https://lore.kernel.org/all/087be419-ec6b-47ad-851a-5e1e3ea5cfcc@kernel.org/
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> #for-iio
Reviewed-by: Johan Hovold <johan@kernel.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Alex Elder <elder@linaro.org>
Acked-by: Maximilian Luz <luzmaximilian@gmail.com> # for platform/surface
Acked-by: Lee Jones <lee@kernel.org>
Acked-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20240122180551.34429-1-francesco@dolcini.it
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
19 files changed:
drivers/bluetooth/btmtkuart.c
drivers/bluetooth/btnxpuart.c
drivers/bluetooth/hci_serdev.c
drivers/gnss/serial.c
drivers/gnss/sirf.c
drivers/greybus/gb-beagleplay.c
drivers/iio/chemical/pms7003.c
drivers/iio/chemical/scd30_serial.c
drivers/iio/chemical/sps30_serial.c
drivers/iio/imu/bno055/bno055_ser_core.c
drivers/mfd/rave-sp.c
drivers/net/ethernet/qualcomm/qca_uart.c
drivers/nfc/pn533/uart.c
drivers/nfc/s3fwrn5/uart.c
drivers/platform/chrome/cros_ec_uart.c
drivers/platform/surface/aggregator/core.c
drivers/tty/serdev/serdev-ttyport.c
include/linux/serdev.h
sound/drivers/serial-generic.c