On 12/16/25 7:38 AM, [email protected] wrote:
From: Alice Guo <[email protected]>

The usb_oc_config() function previously assumed that the overcurrent
control register index always matches the USB controller index, which is
true for i.MX6 but not for i.MX7/8M/9/7ULP/8/8ULP. On these platforms,
the overcurrent control is located in the USB OTG Control 1 register,
which is always at index 0.

Signed-off-by: Alice Guo <[email protected]>
---
  drivers/usb/host/ehci-mx6.c | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/drivers/usb/host/ehci-mx6.c b/drivers/usb/host/ehci-mx6.c
index cfaf49d67f0..03ff4ce10d5 100644
--- a/drivers/usb/host/ehci-mx6.c
+++ b/drivers/usb/host/ehci-mx6.c
@@ -280,7 +280,12 @@ static void ehci_mx6_powerup_fixup(struct ehci_ctrl *ctrl, 
uint32_t *status_reg,
  /* Should be done in the MXS PHY driver */
  static void usb_oc_config(struct usbnc_regs *usbnc, int index)
  {
+#if defined(CONFIG_MX6)
        void __iomem *ctrl = (void __iomem *)(&usbnc->ctrl[index]);
+#elif defined(CONFIG_USB_EHCI_MX7) || defined(CONFIG_MX7ULP) || 
defined(CONFIG_IMX8) || \
+      defined(CONFIG_IMX8ULP)
+       void __iomem *ctrl = (void __iomem *)(&usbnc->ctrl[0]);
+#endif
Can we simply pass 0 to this function as index for non-MX6 instead of this ifdeffery ?

Reply via email to