linux_old1/drivers/usb/dwc2
John Youn 5268ed9d2e usb: dwc2: Fix dr_mode validation
The dr_mode parameter was being checked against how the dwc2 module
was being configured at compile time. But it wasn't checked against
the hardware capabilities, nor were the hardware capabilities checked
against the compilation parameters.

This commit adds those checks and adjusts dr_mode to an appropriate
value, if needed. If the hardware capabilities and module compilation
do not match then we fail as it wouldn't be possible to run properly.

The hardware, module, and dr_mode, can each be set to host, device,
or otg. Check that all these values are compatible and adjust the
value of dr_mode if possible.

The following table summarizes the behavior:

                     actual
   HW  MOD dr_mode   dr_mode
 ------------------------------
  HST  HST  any    :  HST
  HST  DEV  any    :  ---
  HST  OTG  any    :  HST

  DEV  HST  any    :  ---
  DEV  DEV  any    :  DEV
  DEV  OTG  any    :  DEV

  OTG  HST  any    :  HST
  OTG  DEV  any    :  DEV
  OTG  OTG  any    :  dr_mode

Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2015-12-22 11:57:35 -06:00
..
Kconfig usb: dwc2: remove dwc2_platform.ko 2015-04-29 15:20:11 -05:00
Makefile usb: dwc2: remove dwc2_platform.ko 2015-04-29 15:20:11 -05:00
core.c usb: dwc2: Add functions to check the HW OTG config 2015-12-22 11:55:46 -06:00
core.h usb: dwc2: Add functions to check the HW OTG config 2015-12-22 11:55:46 -06:00
core_intr.c usb: dwc2: host: Clear interrupts before handling them 2015-12-15 09:12:41 -06:00
debug.h usb: dwc2: move debugfs code to a separate file 2015-04-29 15:18:25 -05:00
debugfs.c usb: dwc2: Use platform endianness when accessing registers 2015-09-27 10:54:31 -05:00
gadget.c usb: dwc2: gadget: don't overwrite DCTL register on NAKEFF interrupts 2015-12-22 11:50:43 -06:00
hcd.c usb: dwc2: Avoid double-reset at boot time 2015-12-22 11:52:08 -06:00
hcd.h usb: dwc2: host: avoid usage of dma_alloc_coherent with irqs disabled 2015-12-15 09:12:41 -06:00
hcd_ddma.c usb: dwc2: host: use kmem cache to allocate descriptors 2015-12-15 09:12:41 -06:00
hcd_intr.c usb: dwc2: host: Clear interrupts before handling them 2015-12-15 09:12:41 -06:00
hcd_queue.c usb: dwc2: host: enable descriptor dma for fs devices 2015-12-15 09:12:41 -06:00
hw.h usb: dwc2: host: fix descriptor list address masking 2015-12-15 09:12:41 -06:00
pci.c usb: dwc2: pci: Add device mode to the dwc2-pci driver 2015-03-11 15:08:17 -05:00
platform.c usb: dwc2: Fix dr_mode validation 2015-12-22 11:57:35 -06:00