diff options
| -rw-r--r-- | drivers/usb/renesas_usbhs/mod_host.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/usb/renesas_usbhs/mod_host.c b/drivers/usb/renesas_usbhs/mod_host.c index 72ee8e55e717..c947d0aca9bf 100644 --- a/drivers/usb/renesas_usbhs/mod_host.c +++ b/drivers/usb/renesas_usbhs/mod_host.c | |||
| @@ -1245,6 +1245,14 @@ static int usbhsh_irq_attch(struct usbhs_priv *priv, | |||
| 1245 | usbhsh_port_stat_set(hpriv, USB_PORT_STAT_CONNECTION); | 1245 | usbhsh_port_stat_set(hpriv, USB_PORT_STAT_CONNECTION); |
| 1246 | usbhsh_port_stat_set(hpriv, USB_PORT_STAT_C_CONNECTION << 16); | 1246 | usbhsh_port_stat_set(hpriv, USB_PORT_STAT_C_CONNECTION << 16); |
| 1247 | 1247 | ||
| 1248 | /* | ||
| 1249 | * attch interrupt might happen infinitely on some device | ||
| 1250 | * (on self power USB hub ?) | ||
| 1251 | * disable it here. | ||
| 1252 | */ | ||
| 1253 | hpriv->mod.irq_attch = NULL; | ||
| 1254 | usbhs_irq_callback_update(priv, &hpriv->mod); | ||
| 1255 | |||
| 1248 | return 0; | 1256 | return 0; |
| 1249 | } | 1257 | } |
| 1250 | 1258 | ||
| @@ -1259,6 +1267,12 @@ static int usbhsh_irq_dtch(struct usbhs_priv *priv, | |||
| 1259 | usbhsh_port_stat_clear(hpriv, USB_PORT_STAT_CONNECTION); | 1267 | usbhsh_port_stat_clear(hpriv, USB_PORT_STAT_CONNECTION); |
| 1260 | usbhsh_port_stat_set(hpriv, USB_PORT_STAT_C_CONNECTION << 16); | 1268 | usbhsh_port_stat_set(hpriv, USB_PORT_STAT_C_CONNECTION << 16); |
| 1261 | 1269 | ||
| 1270 | /* | ||
| 1271 | * enable attch interrupt again | ||
| 1272 | */ | ||
| 1273 | hpriv->mod.irq_attch = usbhsh_irq_attch; | ||
| 1274 | usbhs_irq_callback_update(priv, &hpriv->mod); | ||
| 1275 | |||
| 1262 | return 0; | 1276 | return 0; |
| 1263 | } | 1277 | } |
| 1264 | 1278 | ||
