USB: xhci: Fix finding extended capabilities registers
[firefly-linux-kernel-4.4.55.git] / drivers / usb / host / xhci-ext-caps.h
index ecc131c3fe337a68788054dfc2dc695503b30a77..78c4edac1db14cf324cd90a039467d22f90ae53f 100644 (file)
@@ -101,12 +101,15 @@ static inline int xhci_find_next_cap_offset(void __iomem *base, int ext_offset)
 
        next = readl(base + ext_offset);
 
-       if (ext_offset == XHCI_HCC_PARAMS_OFFSET)
+       if (ext_offset == XHCI_HCC_PARAMS_OFFSET) {
                /* Find the first extended capability */
                next = XHCI_HCC_EXT_CAPS(next);
-       else
+               ext_offset = 0;
+       } else {
                /* Find the next extended capability */
                next = XHCI_EXT_CAPS_NEXT(next);
+       }
+
        if (!next)
                return 0;
        /*