Commit 4748cce5 authored by Stephen Warren's avatar Stephen Warren Committed by Marek Vasut
Browse files

usb: dwc2: detect device speed correctly



This doesn't make my LS keyboard work any better, but it does at least
report the correct speed in "usb tree".
Signed-off-by: default avatarStephen Warren <swarren@wwwdotorg.org>
parent 5c0beb5c
...@@ -463,7 +463,11 @@ static int dwc_otg_submit_rh_msg_in_status(struct usb_device *dev, void *buffer, ...@@ -463,7 +463,11 @@ static int dwc_otg_submit_rh_msg_in_status(struct usb_device *dev, void *buffer,
if (hprt0 & DWC2_HPRT0_PRTPWR) if (hprt0 & DWC2_HPRT0_PRTPWR)
port_status |= USB_PORT_STAT_POWER; port_status |= USB_PORT_STAT_POWER;
port_status |= USB_PORT_STAT_HIGH_SPEED; if ((hprt0 & DWC2_HPRT0_PRTSPD_MASK) == DWC2_HPRT0_PRTSPD_LOW)
port_status |= USB_PORT_STAT_LOW_SPEED;
else if ((hprt0 & DWC2_HPRT0_PRTSPD_MASK) ==
DWC2_HPRT0_PRTSPD_HIGH)
port_status |= USB_PORT_STAT_HIGH_SPEED;
if (hprt0 & DWC2_HPRT0_PRTENCHNG) if (hprt0 & DWC2_HPRT0_PRTENCHNG)
port_change |= USB_PORT_STAT_C_ENABLE; port_change |= USB_PORT_STAT_C_ENABLE;
......
...@@ -536,6 +536,9 @@ struct dwc2_core_regs { ...@@ -536,6 +536,9 @@ struct dwc2_core_regs {
#define DWC2_HPRT0_PRTPWR_OFFSET 12 #define DWC2_HPRT0_PRTPWR_OFFSET 12
#define DWC2_HPRT0_PRTTSTCTL_MASK (0xF << 13) #define DWC2_HPRT0_PRTTSTCTL_MASK (0xF << 13)
#define DWC2_HPRT0_PRTTSTCTL_OFFSET 13 #define DWC2_HPRT0_PRTTSTCTL_OFFSET 13
#define DWC2_HPRT0_PRTSPD_HIGH (0 << 17)
#define DWC2_HPRT0_PRTSPD_FULL (1 << 17)
#define DWC2_HPRT0_PRTSPD_LOW (2 << 17)
#define DWC2_HPRT0_PRTSPD_MASK (0x3 << 17) #define DWC2_HPRT0_PRTSPD_MASK (0x3 << 17)
#define DWC2_HPRT0_PRTSPD_OFFSET 17 #define DWC2_HPRT0_PRTSPD_OFFSET 17
#define DWC2_HAINT_CH0 (1 << 0) #define DWC2_HAINT_CH0 (1 << 0)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment