Commit 1e6159f8 authored by Yoshihiro Shimoda's avatar Yoshihiro Shimoda Committed by Greg Kroah-Hartman

USB: r8a66597-hcd: fix cannot detect a device when uses_new_polling is set

Signed-off-by: default avatarYoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent b64dc0a5
...@@ -1003,19 +1003,20 @@ static void r8a66597_check_syssts(struct r8a66597 *r8a66597, int port, ...@@ -1003,19 +1003,20 @@ static void r8a66597_check_syssts(struct r8a66597 *r8a66597, int port,
if (syssts == SE0) { if (syssts == SE0) {
r8a66597_write(r8a66597, ~ATTCH, get_intsts_reg(port)); r8a66597_write(r8a66597, ~ATTCH, get_intsts_reg(port));
r8a66597_bset(r8a66597, ATTCHE, get_intenb_reg(port)); r8a66597_bset(r8a66597, ATTCHE, get_intenb_reg(port));
return; } else {
} if (syssts == FS_JSTS)
r8a66597_bset(r8a66597, HSE, get_syscfg_reg(port));
else if (syssts == LS_JSTS)
r8a66597_bclr(r8a66597, HSE, get_syscfg_reg(port));
if (syssts == FS_JSTS) r8a66597_write(r8a66597, ~DTCH, get_intsts_reg(port));
r8a66597_bset(r8a66597, HSE, get_syscfg_reg(port)); r8a66597_bset(r8a66597, DTCHE, get_intenb_reg(port));
else if (syssts == LS_JSTS)
r8a66597_bclr(r8a66597, HSE, get_syscfg_reg(port));
r8a66597_write(r8a66597, ~DTCH, get_intsts_reg(port)); if (r8a66597->bus_suspended)
r8a66597_bset(r8a66597, DTCHE, get_intenb_reg(port)); usb_hcd_resume_root_hub(r8a66597_to_hcd(r8a66597));
}
if (r8a66597->bus_suspended) usb_hcd_poll_rh_status(r8a66597_to_hcd(r8a66597));
usb_hcd_resume_root_hub(r8a66597_to_hcd(r8a66597));
} }
/* this function must be called with interrupt disabled */ /* this function must be called with interrupt disabled */
...@@ -1024,6 +1025,8 @@ static void r8a66597_usb_connect(struct r8a66597 *r8a66597, int port) ...@@ -1024,6 +1025,8 @@ static void r8a66597_usb_connect(struct r8a66597 *r8a66597, int port)
u16 speed = get_rh_usb_speed(r8a66597, port); u16 speed = get_rh_usb_speed(r8a66597, port);
struct r8a66597_root_hub *rh = &r8a66597->root_hub[port]; struct r8a66597_root_hub *rh = &r8a66597->root_hub[port];
rh->port &= ~((1 << USB_PORT_FEAT_HIGHSPEED) |
(1 << USB_PORT_FEAT_LOWSPEED));
if (speed == HSMODE) if (speed == HSMODE)
rh->port |= (1 << USB_PORT_FEAT_HIGHSPEED); rh->port |= (1 << USB_PORT_FEAT_HIGHSPEED);
else if (speed == LSMODE) else if (speed == LSMODE)
......
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