rpmsg_tty.c (03ab8e6297acd1bc0eedaa050e2a1635c576fd11) | rpmsg_tty.c (95713967ba52389f7cea75704d0cf048080ec218) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (C) 2021 STMicroelectronics - All Rights Reserved 4 * 5 * The rpmsg tty driver implements serial communication on the RPMsg bus to makes 6 * possible for user-space programs to send and receive rpmsg messages as a standard 7 * tty protocol. 8 * --- 59 unchanged lines hidden (view full) --- 68 return tty_port_open(tty->port, tty, filp); 69} 70 71static void rpmsg_tty_close(struct tty_struct *tty, struct file *filp) 72{ 73 return tty_port_close(tty->port, tty, filp); 74} 75 | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (C) 2021 STMicroelectronics - All Rights Reserved 4 * 5 * The rpmsg tty driver implements serial communication on the RPMsg bus to makes 6 * possible for user-space programs to send and receive rpmsg messages as a standard 7 * tty protocol. 8 * --- 59 unchanged lines hidden (view full) --- 68 return tty_port_open(tty->port, tty, filp); 69} 70 71static void rpmsg_tty_close(struct tty_struct *tty, struct file *filp) 72{ 73 return tty_port_close(tty->port, tty, filp); 74} 75 |
76static int rpmsg_tty_write(struct tty_struct *tty, const u8 *buf, int len) | 76static ssize_t rpmsg_tty_write(struct tty_struct *tty, const u8 *buf, 77 size_t len) |
77{ 78 struct rpmsg_tty_port *cport = tty->driver_data; 79 struct rpmsg_device *rpdev; 80 int msg_max_size, msg_size; 81 int ret; 82 83 rpdev = cport->rpdev; 84 85 msg_max_size = rpmsg_get_mtu(rpdev->ept); 86 if (msg_max_size < 0) 87 return msg_max_size; 88 | 78{ 79 struct rpmsg_tty_port *cport = tty->driver_data; 80 struct rpmsg_device *rpdev; 81 int msg_max_size, msg_size; 82 int ret; 83 84 rpdev = cport->rpdev; 85 86 msg_max_size = rpmsg_get_mtu(rpdev->ept); 87 if (msg_max_size < 0) 88 return msg_max_size; 89 |
89 msg_size = min(len, msg_max_size); | 90 msg_size = min_t(unsigned int, len, msg_max_size); |
90 91 /* 92 * Use rpmsg_trysend instead of rpmsg_send to send the message so the caller is not 93 * hung until a rpmsg buffer is available. In such case rpmsg_trysend returns -ENOMEM. 94 */ 95 ret = rpmsg_trysend(rpdev->ept, (void *)buf, msg_size); 96 if (ret) { 97 dev_dbg_ratelimited(&rpdev->dev, "rpmsg_send failed: %d\n", ret); --- 190 unchanged lines hidden --- | 91 92 /* 93 * Use rpmsg_trysend instead of rpmsg_send to send the message so the caller is not 94 * hung until a rpmsg buffer is available. In such case rpmsg_trysend returns -ENOMEM. 95 */ 96 ret = rpmsg_trysend(rpdev->ept, (void *)buf, msg_size); 97 if (ret) { 98 dev_dbg_ratelimited(&rpdev->dev, "rpmsg_send failed: %d\n", ret); --- 190 unchanged lines hidden --- |