There is no need to keep a pointer to usb_serial in ti_port structure. Signed-off-by: Mathieu OTHACEHE <m.othac...@gmail.com> --- 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 48f9253..8350c6b 100644 --- a/drivers/usb/serial/ti_usb_3410_5052.c +++ b/drivers/usb/serial/ti_usb_3410_5052.c @@ -282,7 +282,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; int td_urb_error; @@ -312,7 +311,7 @@ static int ti_get_serial_info(struct ti_port *tport, static int ti_set_serial_info(struct tty_struct *tty, struct ti_port *tport, struct serial_struct __user *new_arg); static void ti_handle_new_msr(struct usb_serial_port *port, u8 msr); -static int ti_download_firmware(struct ti_device *tdev); +static int ti_download_firmware(struct usb_serial *serial); static const struct usb_device_id ti_id_table_3410[] = { { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) }, @@ -571,7 +570,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 */ @@ -596,7 +594,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; @@ -705,7 +703,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; @@ -798,7 +796,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; @@ -1310,17 +1308,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.8.2 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html