]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/usb/serial/sierra.c
Merge branch 'linus' into WIP.x86/boot, to fix up conflicts and to pick up updates
[karo-tx-linux.git] / drivers / usb / serial / sierra.c
index e1994e264cc0237f236d14552104e56a02760684..465e851b281585b3b7445177868a061cecfd3c15 100644 (file)
@@ -137,24 +137,9 @@ static int is_himemory(const u8 ifnum,
        return 0;
 }
 
-static int sierra_calc_interface(struct usb_serial *serial)
+static u8 sierra_interface_num(struct usb_serial *serial)
 {
-       int interface;
-       struct usb_interface *p_interface;
-       struct usb_host_interface *p_host_interface;
-
-       /* Get the interface structure pointer from the serial struct */
-       p_interface = serial->interface;
-
-       /* Get a pointer to the host interface structure */
-       p_host_interface = p_interface->cur_altsetting;
-
-       /* read the interface descriptor for this active altsetting
-        * to find out the interface number we are on
-       */
-       interface = p_host_interface->desc.bInterfaceNumber;
-
-       return interface;
+       return serial->interface->cur_altsetting->desc.bInterfaceNumber;
 }
 
 static int sierra_probe(struct usb_serial *serial,
@@ -165,7 +150,7 @@ static int sierra_probe(struct usb_serial *serial,
        u8 ifnum;
 
        udev = serial->dev;
-       ifnum = sierra_calc_interface(serial);
+       ifnum = sierra_interface_num(serial);
 
        /*
         * If this interface supports more than 1 alternate
@@ -178,9 +163,6 @@ static int sierra_probe(struct usb_serial *serial,
                usb_set_interface(udev, ifnum, 1);
        }
 
-       /* ifnum could have changed - by calling usb_set_interface */
-       ifnum = sierra_calc_interface(serial);
-
        if (is_blacklisted(ifnum,
                                (struct sierra_iface_info *)id->driver_info)) {
                dev_dbg(&serial->dev->dev,
@@ -342,7 +324,7 @@ static int sierra_send_setup(struct usb_serial_port *port)
 
        /* If composite device then properly report interface */
        if (serial->num_ports == 1) {
-               interface = sierra_calc_interface(serial);
+               interface = sierra_interface_num(serial);
                /* Control message is sent only to interfaces with
                 * interrupt_in endpoints
                 */
@@ -916,7 +898,7 @@ static int sierra_port_probe(struct usb_serial_port *port)
        /* Determine actual memory requirements */
        if (serial->num_ports == 1) {
                /* Get interface number for composite device */
-               ifnum = sierra_calc_interface(serial);
+               ifnum = sierra_interface_num(serial);
                himemoryp = &typeB_interface_list;
        } else {
                /* This is really the usb-serial port number of the interface