Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753200AbdLMNpT (ORCPT ); Wed, 13 Dec 2017 08:45:19 -0500 Received: from smtp35.i.mail.ru ([94.100.177.95]:41322 "EHLO smtp35.i.mail.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752751AbdLMNpP (ORCPT ); Wed, 13 Dec 2017 08:45:15 -0500 Date: Wed, 13 Dec 2017 16:45:06 +0300 From: Mikhail Zaytsev To: Johan Hovold Cc: Greg Kroah-Hartman , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/2] USB: serial: ark3116.c: Move TIOCGSERIAL ioctl case to function. Message-ID: <20171213164506.79ef2eaa@zaytsev.tver.pg> In-Reply-To: <20171213112445.GB3831@localhost> References: <20171213123004.4619000a@zaytsev.tver.pg> <20171213112445.GB3831@localhost> X-Mailer: Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Authentication-Results: smtp35.i.mail.ru; auth=pass smtp.auth=flashed@mail.ru smtp.mailfrom=flashed@mail.ru X-7FA49CB5: 0D63561A33F958A55FBBF97FD031E089BBFAA4F00BF709E4D0A81DC15D2DFF32725E5C173C3A84C329E02162369759EE56D39A1CFEC4E129BEFCD6C56BCFE9CEC4224003CC836476C0CAF46E325F83A50BF2EBBBDD9D6B0F9007B117A3693DAE3B503F486389A921A5CC5B56E945C8DA X-Mailru-Sender: AAD8E2226B689FDAF6252034B9A76A5C893A7BE51019B5743A220AB020692527FD4B8B46F2305AD189FF501873465F1766FEC6BF5C9C28D91C46F632D9E29CE943722207280E957E67EA787935ED9F1B X-Mras: OK Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1901 Lines: 69 The patch moves TIOCGSERIAL ioctl case to get_serial_info function. Signed-off-by: Mikhail Zaytsev --- drivers/usb/serial/ark3116.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/drivers/usb/serial/ark3116.c b/drivers/usb/serial/ark3116.c index 2e957c76f..2ce8fe10e 100644 --- a/drivers/usb/serial/ark3116.c +++ b/drivers/usb/serial/ark3116.c @@ -36,6 +36,7 @@ #define DRIVER_DESC "USB ARK3116 serial/IrDA driver" #define DRIVER_DEV_DESC "ARK3116 RS232/IrDA" #define DRIVER_NAME "ark3116" +#define ARK3116_BAUDRATE 460800 /* usb timeout of 1 second */ #define ARK_TIMEOUT 1000 @@ -397,27 +398,33 @@ static int ark3116_open(struct tty_struct *tty, struct usb_serial_port *port) return result; } +static int ark3116_get_serial_info(struct usb_serial_port *port, + unsigned long arg) +{ + struct serial_struct ser; + + memset(&ser, 0, sizeof(ser)); + + ser.type = PORT_16654; + ser.line = port->minor; + ser.port = port->port_number; + ser.custom_divisor = 0; + ser.baud_base = ARK3116_BAUDRATE; + + if (copy_to_user((void __user *)arg, &ser, sizeof(ser))) + return -EFAULT; + + return 0; +} + static int ark3116_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg) { struct usb_serial_port *port = tty->driver_data; - struct serial_struct serstruct; - void __user *user_arg = (void __user *)arg; switch (cmd) { case TIOCGSERIAL: - /* XXX: Some of these values are probably wrong. */ - memset(&serstruct, 0, sizeof(serstruct)); - serstruct.type = PORT_16654; - serstruct.line = port->minor; - serstruct.port = port->port_number; - serstruct.custom_divisor = 0; - serstruct.baud_base = 460800; - - if (copy_to_user(user_arg, &serstruct, sizeof(serstruct))) - return -EFAULT; - - return 0; + return ark3116_get_serial_info(port, arg); default: break; } -- 2.11.0