OSDN Git Service

USB: host: ohci-at91: merge loops in ohci_hcd_at91_drv_probe
authorAlexandre Belloni <alexandre.belloni@free-electrons.com>
Mon, 10 Aug 2015 14:23:12 +0000 (16:23 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 14 Aug 2015 23:57:43 +0000 (16:57 -0700)
ohci_hcd_at91_drv_probe() has four at91_for_each_port. They can be merged
into two loops without changing the driver behaviour.

Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/ohci-at91.c

index cdd91c5..342ffd1 100644 (file)
@@ -477,33 +477,21 @@ static int ohci_hcd_at91_drv_probe(struct platform_device *pdev)
                pdata->ports = ports;
 
        at91_for_each_port(i) {
-               gpio = of_get_named_gpio_flags(np, "atmel,vbus-gpio", i, &flags);
-               pdata->vbus_pin[i] = gpio;
-               if (!gpio_is_valid(gpio))
-                       continue;
-               pdata->vbus_pin_active_low[i] = flags & OF_GPIO_ACTIVE_LOW;
-       }
-
-       at91_for_each_port(i)
-               pdata->overcurrent_pin[i] =
-                       of_get_named_gpio_flags(np, "atmel,oc-gpio", i, &flags);
-
-       pdev->dev.platform_data = pdata;
-
-       at91_for_each_port(i) {
                /*
                 * do not configure PIO if not in relation with
                 * real USB port on board
                 */
                if (i >= pdata->ports) {
                        pdata->vbus_pin[i] = -EINVAL;
-                       pdata->overcurrent_pin[i] = -EINVAL;
-                       break;
+                       continue;
                }
 
-               if (!gpio_is_valid(pdata->vbus_pin[i]))
+               gpio = of_get_named_gpio_flags(np, "atmel,vbus-gpio", i,
+                                              &flags);
+               pdata->vbus_pin[i] = gpio;
+               if (!gpio_is_valid(gpio))
                        continue;
-               gpio = pdata->vbus_pin[i];
+               pdata->vbus_pin_active_low[i] = flags & OF_GPIO_ACTIVE_LOW;
 
                ret = gpio_request(gpio, "ohci_vbus");
                if (ret) {
@@ -525,6 +513,14 @@ static int ohci_hcd_at91_drv_probe(struct platform_device *pdev)
        }
 
        at91_for_each_port(i) {
+               if (i >= pdata->ports) {
+                       pdata->overcurrent_pin[i] = -EINVAL;
+                       continue;
+               }
+
+               pdata->overcurrent_pin[i] =
+                       of_get_named_gpio_flags(np, "atmel,oc-gpio", i, &flags);
+
                if (!gpio_is_valid(pdata->overcurrent_pin[i]))
                        continue;
                gpio = pdata->overcurrent_pin[i];
@@ -556,6 +552,8 @@ static int ohci_hcd_at91_drv_probe(struct platform_device *pdev)
                }
        }
 
+       pdev->dev.platform_data = pdata;
+
        device_init_wakeup(&pdev->dev, 1);
        return usb_hcd_at91_probe(&ohci_at91_hc_driver, pdev);
 }