100-dwc2-disable-powerdown.patch 1.2 KB

1234567891011121314151617181920212223242526272829
  1. From 88ca61467a0897c79b1fbf8f5c30691b43b52613 Mon Sep 17 00:00:00 2001
  2. From: Christian Lamparter <[email protected]>
  3. Date: Sun, 26 Dec 2021 22:36:29 +0200
  4. Subject: [PATCH] dwc2: temporary force to be powered up all times
  5. the APM821xx's onchip dwc2 misbehaves with 5.4 and 5.10
  6. when a USB device gets connected. Instead of announcing
  7. and setting up the USB devices it crashes and burns with:
  8. [ 22.023476] dwc2 4bff80000.usbotg: dwc2_restore_global_registers: no global registers to restore
  9. [ 22.032245] dwc2 4bff80000.usbotg: dwc2_exit_partial_power_down: failed to restore registers
  10. [ 22.040647] dwc2 4bff80000.usbotg: exit partial_power_down failed
  11. [ 22.058765] dwc2 4bff80000.usbotg: HC died; cleaning up
  12. This is all seemingly fixed with dwc2 from a 5.16-rc6.
  13. Signed-off-by: Christian Lamparter <[email protected]>
  14. ---
  15. --- a/drivers/usb/dwc2/params.c
  16. +++ b/drivers/usb/dwc2/params.c
  17. @@ -137,6 +137,7 @@ static void dwc2_set_amcc_params(struct
  18. struct dwc2_core_params *p = &hsotg->params;
  19. p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 << GAHBCFG_HBSTLEN_SHIFT;
  20. + p->power_down = DWC2_POWER_DOWN_PARAM_NONE;
  21. }
  22. static void dwc2_set_stm32f4x9_fsotg_params(struct dwc2_hsotg *hsotg)