aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/renesas_usbhs/mod_host.c14
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