All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] USB: serial: ftdi_sio: misc clean ups
@ 2022-09-19 13:24 Johan Hovold
  2022-09-19 13:24 ` [PATCH 1/3] USB: serial: ftdi_sio: clean up attribute visibility logic Johan Hovold
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Johan Hovold @ 2022-09-19 13:24 UTC (permalink / raw)
  To: Johan Hovold; +Cc: Jiasheng Jiang, linux-usb, linux-kernel

Here are some clean ups on top of the recent dev_groups attribute
conversion.

Johan

Johan Hovold (3):
  USB: serial: ftdi_sio: clean up attribute visibility logic
  USB: serial: ftdi_sio: move driver structure
  USB: serial: ftdi_sio: clean up driver prefix

 drivers/usb/serial/ftdi_sio.c | 144 +++++++++++++---------------------
 1 file changed, 54 insertions(+), 90 deletions(-)

-- 
2.35.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/3] USB: serial: ftdi_sio: clean up attribute visibility logic
  2022-09-19 13:24 [PATCH 0/3] USB: serial: ftdi_sio: misc clean ups Johan Hovold
@ 2022-09-19 13:24 ` Johan Hovold
  2022-09-19 13:24 ` [PATCH 2/3] USB: serial: ftdi_sio: move driver structure Johan Hovold
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Johan Hovold @ 2022-09-19 13:24 UTC (permalink / raw)
  To: Johan Hovold; +Cc: Jiasheng Jiang, linux-usb, linux-kernel

Clean up the attribute visibility logic by defaulting to attributes
being visible and explicitly listing the exceptions.

Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/usb/serial/ftdi_sio.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index 147b5e80595a..a5fc199cde0b 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -1775,19 +1775,18 @@ static umode_t ftdi_is_visible(struct kobject *kobj, struct attribute *attr, int
 	struct usb_serial_port *port = to_usb_serial_port(dev);
 	struct ftdi_private *priv = usb_get_serial_port_data(port);
 	enum ftdi_chip_type type = priv->chip_type;
-	umode_t mode = attr->mode;
 
-	if (type != SIO) {
-		if (attr == &dev_attr_event_char.attr)
-			return mode;
+	if (attr == &dev_attr_event_char.attr) {
+		if (type == SIO)
+			return 0;
 	}
 
-	if (type != SIO && type != FT232A) {
-		if (attr == &dev_attr_latency_timer.attr)
-			return mode;
+	if (attr == &dev_attr_latency_timer.attr) {
+		if (type == SIO || type == FT232A)
+			return 0;
 	}
 
-	return 0;
+	return attr->mode;
 }
 
 static const struct attribute_group ftdi_group = {
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/3] USB: serial: ftdi_sio: move driver structure
  2022-09-19 13:24 [PATCH 0/3] USB: serial: ftdi_sio: misc clean ups Johan Hovold
  2022-09-19 13:24 ` [PATCH 1/3] USB: serial: ftdi_sio: clean up attribute visibility logic Johan Hovold
@ 2022-09-19 13:24 ` Johan Hovold
  2022-09-19 13:24 ` [PATCH 3/3] USB: serial: ftdi_sio: clean up driver prefix Johan Hovold
  2022-09-20  7:29 ` [PATCH 0/3] USB: serial: ftdi_sio: misc clean ups Greg KH
  3 siblings, 0 replies; 6+ messages in thread
From: Johan Hovold @ 2022-09-19 13:24 UTC (permalink / raw)
  To: Johan Hovold; +Cc: Jiasheng Jiang, linux-usb, linux-kernel

Move the definition of the USB serial driver structure to the end of the
file where it is used and drop the now redundant forward declarations.

Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/usb/serial/ftdi_sio.c | 101 ++++++++++++----------------------
 1 file changed, 35 insertions(+), 66 deletions(-)

diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index a5fc199cde0b..cd594937b0e6 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -1108,77 +1108,11 @@ static const char *ftdi_chip_name[] = {
 #define FTDI_STATUS_B1_MASK	(FTDI_RS_BI)
 /* End TIOCMIWAIT */
 
-/* function prototypes for a FTDI serial converter */
-static int  ftdi_sio_probe(struct usb_serial *serial,
-					const struct usb_device_id *id);
-static int  ftdi_sio_port_probe(struct usb_serial_port *port);
-static void ftdi_sio_port_remove(struct usb_serial_port *port);
-static int  ftdi_open(struct tty_struct *tty, struct usb_serial_port *port);
-static void ftdi_dtr_rts(struct usb_serial_port *port, int on);
-static void ftdi_process_read_urb(struct urb *urb);
-static int ftdi_prepare_write_buffer(struct usb_serial_port *port,
-						void *dest, size_t size);
 static void ftdi_set_termios(struct tty_struct *tty,
 			struct usb_serial_port *port, struct ktermios *old);
-static int  ftdi_tiocmget(struct tty_struct *tty);
-static int  ftdi_tiocmset(struct tty_struct *tty,
-			unsigned int set, unsigned int clear);
-static int  ftdi_ioctl(struct tty_struct *tty,
-			unsigned int cmd, unsigned long arg);
-static void get_serial_info(struct tty_struct *tty, struct serial_struct *ss);
-static int set_serial_info(struct tty_struct *tty,
-				struct serial_struct *ss);
-static void ftdi_break_ctl(struct tty_struct *tty, int break_state);
-static bool ftdi_tx_empty(struct usb_serial_port *port);
 static int ftdi_get_modem_status(struct usb_serial_port *port,
 						unsigned char status[2]);
 
-static unsigned short int ftdi_232am_baud_base_to_divisor(int baud, int base);
-static unsigned short int ftdi_232am_baud_to_divisor(int baud);
-static u32 ftdi_232bm_baud_base_to_divisor(int baud, int base);
-static u32 ftdi_232bm_baud_to_divisor(int baud);
-static u32 ftdi_2232h_baud_base_to_divisor(int baud, int base);
-static u32 ftdi_2232h_baud_to_divisor(int baud);
-
-static const struct attribute_group *ftdi_groups[];
-
-static struct usb_serial_driver ftdi_sio_device = {
-	.driver = {
-		.owner =	THIS_MODULE,
-		.name =		"ftdi_sio",
-		.dev_groups =	ftdi_groups,
-	},
-	.description =		"FTDI USB Serial Device",
-	.id_table =		id_table_combined,
-	.num_ports =		1,
-	.bulk_in_size =		512,
-	.bulk_out_size =	256,
-	.probe =		ftdi_sio_probe,
-	.port_probe =		ftdi_sio_port_probe,
-	.port_remove =		ftdi_sio_port_remove,
-	.open =			ftdi_open,
-	.dtr_rts =		ftdi_dtr_rts,
-	.throttle =		usb_serial_generic_throttle,
-	.unthrottle =		usb_serial_generic_unthrottle,
-	.process_read_urb =	ftdi_process_read_urb,
-	.prepare_write_buffer =	ftdi_prepare_write_buffer,
-	.tiocmget =		ftdi_tiocmget,
-	.tiocmset =		ftdi_tiocmset,
-	.tiocmiwait =		usb_serial_generic_tiocmiwait,
-	.get_icount =           usb_serial_generic_get_icount,
-	.ioctl =		ftdi_ioctl,
-	.get_serial =		get_serial_info,
-	.set_serial =		set_serial_info,
-	.set_termios =		ftdi_set_termios,
-	.break_ctl =		ftdi_break_ctl,
-	.tx_empty =		ftdi_tx_empty,
-};
-
-static struct usb_serial_driver * const serial_drivers[] = {
-	&ftdi_sio_device, NULL
-};
-
-
 #define WDR_TIMEOUT 5000 /* default urb timeout */
 #define WDR_SHORT_TIMEOUT 1000	/* shorter urb timeout */
 
@@ -2931,6 +2865,41 @@ static int ftdi_ioctl(struct tty_struct *tty,
 	return -ENOIOCTLCMD;
 }
 
+static struct usb_serial_driver ftdi_sio_device = {
+	.driver = {
+		.owner =	THIS_MODULE,
+		.name =		"ftdi_sio",
+		.dev_groups =	ftdi_groups,
+	},
+	.description =		"FTDI USB Serial Device",
+	.id_table =		id_table_combined,
+	.num_ports =		1,
+	.bulk_in_size =		512,
+	.bulk_out_size =	256,
+	.probe =		ftdi_sio_probe,
+	.port_probe =		ftdi_sio_port_probe,
+	.port_remove =		ftdi_sio_port_remove,
+	.open =			ftdi_open,
+	.dtr_rts =		ftdi_dtr_rts,
+	.throttle =		usb_serial_generic_throttle,
+	.unthrottle =		usb_serial_generic_unthrottle,
+	.process_read_urb =	ftdi_process_read_urb,
+	.prepare_write_buffer =	ftdi_prepare_write_buffer,
+	.tiocmget =		ftdi_tiocmget,
+	.tiocmset =		ftdi_tiocmset,
+	.tiocmiwait =		usb_serial_generic_tiocmiwait,
+	.get_icount =           usb_serial_generic_get_icount,
+	.ioctl =		ftdi_ioctl,
+	.get_serial =		get_serial_info,
+	.set_serial =		set_serial_info,
+	.set_termios =		ftdi_set_termios,
+	.break_ctl =		ftdi_break_ctl,
+	.tx_empty =		ftdi_tx_empty,
+};
+
+static struct usb_serial_driver * const serial_drivers[] = {
+	&ftdi_sio_device, NULL
+};
 module_usb_serial_driver(serial_drivers, id_table_combined);
 
 MODULE_AUTHOR(DRIVER_AUTHOR);
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/3] USB: serial: ftdi_sio: clean up driver prefix
  2022-09-19 13:24 [PATCH 0/3] USB: serial: ftdi_sio: misc clean ups Johan Hovold
  2022-09-19 13:24 ` [PATCH 1/3] USB: serial: ftdi_sio: clean up attribute visibility logic Johan Hovold
  2022-09-19 13:24 ` [PATCH 2/3] USB: serial: ftdi_sio: move driver structure Johan Hovold
@ 2022-09-19 13:24 ` Johan Hovold
  2022-09-20  7:29 ` [PATCH 0/3] USB: serial: ftdi_sio: misc clean ups Greg KH
  3 siblings, 0 replies; 6+ messages in thread
From: Johan Hovold @ 2022-09-19 13:24 UTC (permalink / raw)
  To: Johan Hovold; +Cc: Jiasheng Jiang, linux-usb, linux-kernel

Drop the "sio" infix from the few remaining definitions and symbol names
that still had it.

Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/usb/serial/ftdi_sio.c | 38 ++++++++++++++++-------------------
 1 file changed, 17 insertions(+), 21 deletions(-)

diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index cd594937b0e6..f584ce29fc9f 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -100,8 +100,7 @@ struct ftdi_private {
 #endif
 };
 
-/* struct ftdi_sio_quirk is used by devices requiring special attention. */
-struct ftdi_sio_quirk {
+struct ftdi_quirk {
 	int (*probe)(struct usb_serial *);
 	/* Special settings for probed ports. */
 	void (*port_probe)(struct ftdi_private *);
@@ -114,27 +113,27 @@ static int   ftdi_8u2232c_probe(struct usb_serial *serial);
 static void  ftdi_USB_UIRT_setup(struct ftdi_private *priv);
 static void  ftdi_HE_TIRA1_setup(struct ftdi_private *priv);
 
-static const struct ftdi_sio_quirk ftdi_jtag_quirk = {
+static const struct ftdi_quirk ftdi_jtag_quirk = {
 	.probe	= ftdi_jtag_probe,
 };
 
-static const struct ftdi_sio_quirk ftdi_NDI_device_quirk = {
+static const struct ftdi_quirk ftdi_NDI_device_quirk = {
 	.probe	= ftdi_NDI_device_setup,
 };
 
-static const struct ftdi_sio_quirk ftdi_USB_UIRT_quirk = {
+static const struct ftdi_quirk ftdi_USB_UIRT_quirk = {
 	.port_probe = ftdi_USB_UIRT_setup,
 };
 
-static const struct ftdi_sio_quirk ftdi_HE_TIRA1_quirk = {
+static const struct ftdi_quirk ftdi_HE_TIRA1_quirk = {
 	.port_probe = ftdi_HE_TIRA1_setup,
 };
 
-static const struct ftdi_sio_quirk ftdi_stmclite_quirk = {
+static const struct ftdi_quirk ftdi_stmclite_quirk = {
 	.probe	= ftdi_stmclite_probe,
 };
 
-static const struct ftdi_sio_quirk ftdi_8u2232c_quirk = {
+static const struct ftdi_quirk ftdi_8u2232c_quirk = {
 	.probe	= ftdi_8u2232c_probe,
 };
 
@@ -2170,12 +2169,9 @@ static void ftdi_gpio_remove(struct usb_serial_port *port) { }
  * ***************************************************************************
  */
 
-/* Probe function to check for special devices */
-static int ftdi_sio_probe(struct usb_serial *serial,
-					const struct usb_device_id *id)
+static int ftdi_probe(struct usb_serial *serial, const struct usb_device_id *id)
 {
-	const struct ftdi_sio_quirk *quirk =
-				(struct ftdi_sio_quirk *)id->driver_info;
+	const struct ftdi_quirk *quirk = (struct ftdi_quirk *)id->driver_info;
 
 	if (quirk && quirk->probe) {
 		int ret = quirk->probe(serial);
@@ -2188,10 +2184,10 @@ static int ftdi_sio_probe(struct usb_serial *serial,
 	return 0;
 }
 
-static int ftdi_sio_port_probe(struct usb_serial_port *port)
+static int ftdi_port_probe(struct usb_serial_port *port)
 {
+	const struct ftdi_quirk *quirk = usb_get_serial_data(port->serial);
 	struct ftdi_private *priv;
-	const struct ftdi_sio_quirk *quirk = usb_get_serial_data(port->serial);
 	int result;
 
 	priv = kzalloc(sizeof(struct ftdi_private), GFP_KERNEL);
@@ -2337,7 +2333,7 @@ static int ftdi_stmclite_probe(struct usb_serial *serial)
 	return 0;
 }
 
-static void ftdi_sio_port_remove(struct usb_serial_port *port)
+static void ftdi_port_remove(struct usb_serial_port *port)
 {
 	struct ftdi_private *priv = usb_get_serial_port_data(port);
 
@@ -2865,7 +2861,7 @@ static int ftdi_ioctl(struct tty_struct *tty,
 	return -ENOIOCTLCMD;
 }
 
-static struct usb_serial_driver ftdi_sio_device = {
+static struct usb_serial_driver ftdi_device = {
 	.driver = {
 		.owner =	THIS_MODULE,
 		.name =		"ftdi_sio",
@@ -2876,9 +2872,9 @@ static struct usb_serial_driver ftdi_sio_device = {
 	.num_ports =		1,
 	.bulk_in_size =		512,
 	.bulk_out_size =	256,
-	.probe =		ftdi_sio_probe,
-	.port_probe =		ftdi_sio_port_probe,
-	.port_remove =		ftdi_sio_port_remove,
+	.probe =		ftdi_probe,
+	.port_probe =		ftdi_port_probe,
+	.port_remove =		ftdi_port_remove,
 	.open =			ftdi_open,
 	.dtr_rts =		ftdi_dtr_rts,
 	.throttle =		usb_serial_generic_throttle,
@@ -2898,7 +2894,7 @@ static struct usb_serial_driver ftdi_sio_device = {
 };
 
 static struct usb_serial_driver * const serial_drivers[] = {
-	&ftdi_sio_device, NULL
+	&ftdi_device, NULL
 };
 module_usb_serial_driver(serial_drivers, id_table_combined);
 
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/3] USB: serial: ftdi_sio: misc clean ups
  2022-09-19 13:24 [PATCH 0/3] USB: serial: ftdi_sio: misc clean ups Johan Hovold
                   ` (2 preceding siblings ...)
  2022-09-19 13:24 ` [PATCH 3/3] USB: serial: ftdi_sio: clean up driver prefix Johan Hovold
@ 2022-09-20  7:29 ` Greg KH
  2022-09-20  7:47   ` Johan Hovold
  3 siblings, 1 reply; 6+ messages in thread
From: Greg KH @ 2022-09-20  7:29 UTC (permalink / raw)
  To: Johan Hovold; +Cc: Jiasheng Jiang, linux-usb, linux-kernel

On Mon, Sep 19, 2022 at 03:24:53PM +0200, Johan Hovold wrote:
> Here are some clean ups on top of the recent dev_groups attribute
> conversion.
> 
> Johan
> 
> Johan Hovold (3):
>   USB: serial: ftdi_sio: clean up attribute visibility logic
>   USB: serial: ftdi_sio: move driver structure
>   USB: serial: ftdi_sio: clean up driver prefix
> 
>  drivers/usb/serial/ftdi_sio.c | 144 +++++++++++++---------------------
>  1 file changed, 54 insertions(+), 90 deletions(-)

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/3] USB: serial: ftdi_sio: misc clean ups
  2022-09-20  7:29 ` [PATCH 0/3] USB: serial: ftdi_sio: misc clean ups Greg KH
@ 2022-09-20  7:47   ` Johan Hovold
  0 siblings, 0 replies; 6+ messages in thread
From: Johan Hovold @ 2022-09-20  7:47 UTC (permalink / raw)
  To: Greg KH; +Cc: Jiasheng Jiang, linux-usb, linux-kernel

On Tue, Sep 20, 2022 at 09:29:06AM +0200, Greg Kroah-Hartman wrote:
> On Mon, Sep 19, 2022 at 03:24:53PM +0200, Johan Hovold wrote:
> > Here are some clean ups on top of the recent dev_groups attribute
> > conversion.
> > 
> > Johan
> > 
> > Johan Hovold (3):
> >   USB: serial: ftdi_sio: clean up attribute visibility logic
> >   USB: serial: ftdi_sio: move driver structure
> >   USB: serial: ftdi_sio: clean up driver prefix
> > 
> >  drivers/usb/serial/ftdi_sio.c | 144 +++++++++++++---------------------
> >  1 file changed, 54 insertions(+), 90 deletions(-)
> 
> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Thanks for reviewing. Now applied.

Johan

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-09-20  7:49 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-19 13:24 [PATCH 0/3] USB: serial: ftdi_sio: misc clean ups Johan Hovold
2022-09-19 13:24 ` [PATCH 1/3] USB: serial: ftdi_sio: clean up attribute visibility logic Johan Hovold
2022-09-19 13:24 ` [PATCH 2/3] USB: serial: ftdi_sio: move driver structure Johan Hovold
2022-09-19 13:24 ` [PATCH 3/3] USB: serial: ftdi_sio: clean up driver prefix Johan Hovold
2022-09-20  7:29 ` [PATCH 0/3] USB: serial: ftdi_sio: misc clean ups Greg KH
2022-09-20  7:47   ` Johan Hovold

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.