There is no need to keep a pointer to usb_serial in ti_port structure. Signed-off-by: Mathieu OTHACEHE <m.othacehe@xxxxxxxxx> --- drivers/usb/serial/ti_usb_3410_5052.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c index ee8f08c..8b1dc1a 100644 --- a/drivers/usb/serial/ti_usb_3410_5052.c +++ b/drivers/usb/serial/ti_usb_3410_5052.c @@ -304,7 +304,6 @@ struct ti_port { struct ti_device { struct mutex td_open_close_lock; int td_open_port_count; - struct usb_serial *td_serial; int td_is_3410; bool td_rs485_only; }; @@ -351,7 +350,7 @@ static int ti_restart_read(struct ti_port *tport, struct tty_struct *tty); static int ti_write_byte(struct usb_serial_port *port, u32 addr, u8 mask, u8 byte); -static int ti_download_firmware(struct ti_device *tdev); +static int ti_download_firmware(struct usb_serial *serial); static int closing_wait = TI_DEFAULT_CLOSING_WAIT; @@ -597,7 +596,6 @@ static int ti_startup(struct usb_serial *serial) return -ENOMEM; mutex_init(&tdev->td_open_close_lock); - tdev->td_serial = serial; usb_set_serial_data(serial, tdev); /* determine device type */ @@ -622,7 +620,7 @@ static int ti_startup(struct usb_serial *serial) /* if we have only 1 configuration and 1 endpoint, download firmware */ if (dev->descriptor.bNumConfigurations == 1 && num_endpoints == 1) { - status = ti_download_firmware(tdev); + status = ti_download_firmware(serial); if (status != 0) goto free_tdev; @@ -729,7 +727,7 @@ static int ti_open(struct tty_struct *tty, struct usb_serial_port *port) /* start interrupt urb the first time a port is opened on this device */ if (tdev->td_open_port_count == 0) { dev_dbg(&port->dev, "%s - start interrupt in urb\n", __func__); - urb = tdev->td_serial->port[0]->interrupt_in_urb; + urb = serial->port[0]->interrupt_in_urb; if (!urb) { dev_err(&port->dev, "%s - no interrupt urb\n", __func__); status = -EINVAL; @@ -824,7 +822,7 @@ static int ti_open(struct tty_struct *tty, struct usb_serial_port *port) unlink_int_urb: if (tdev->td_open_port_count == 0) - usb_kill_urb(port->serial->port[0]->interrupt_in_urb); + usb_kill_urb(serial->port[0]->interrupt_in_urb); release_lock: mutex_unlock(&tdev->td_open_close_lock); return status; @@ -1661,17 +1659,19 @@ static int ti_do_download(struct usb_device *dev, int pipe, return status; } -static int ti_download_firmware(struct ti_device *tdev) +static int ti_download_firmware(struct usb_serial *serial) { int status; int buffer_size; u8 *buffer; - struct usb_device *dev = tdev->td_serial->dev; - unsigned int pipe = usb_sndbulkpipe(dev, - tdev->td_serial->port[0]->bulk_out_endpointAddress); + struct usb_device *dev = serial->dev; + struct ti_device *tdev = usb_get_serial_data(serial); + unsigned int pipe; const struct firmware *fw_p; char buf[32]; + pipe = usb_sndbulkpipe(dev, serial->port[0]->bulk_out_endpointAddress); + if (le16_to_cpu(dev->descriptor.idVendor) == MXU1_VENDOR_ID) { snprintf(buf, sizeof(buf), -- 2.9.0 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html