• Thinh Nguyen's avatar
    usb: dwc3: Fix dr_mode validation · 9d6173e1
    Thinh Nguyen authored
    This patch follows the similar fix in dwc2. See
    commit 5268ed9d ("usb: dwc2: Fix dr_mode validation")
    
    Currently, the dr_mode is only checked against the module configuration.
    It also needs to be checked against the hardware capablities.
    
    The driver now checks if both the module configuration and hardware are
    capable of the dr_mode value. If not, then it will issue a warning and
    fall back to a supported value. If it is unable to fall back to a
    suitable value, then the probe will fail.
    
    Behavior summary:
    
          module          :  actual
     HW   config  dr_mode :  dr_mode
    ---------------------------------
     host  host   any     :  host
     host  dev    any     :  INVALID
     host  otg    any     :  host
    
     dev   host   any     :  INVALID
     dev   dev    any     :  dev
     dev   otg    any     :  dev
    
     otg   host   any     :  host
     otg   dev    any     :  dev
     otg   otg    any     :  dr_mode
    Signed-off-by: default avatarThinh Nguyen <thinhn@synopsys.com>
    Signed-off-by: default avatarJohn Youn <johnyoun@synopsys.com>
    Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
    9d6173e1
core.h 37.3 KB