2021-07-01 16:34:51

by Chris Chiu

[permalink] [raw]
Subject: [PATCH] rtl8xxxu: disable interrupt_in transfer for 8188cu and 8192cu

From: Chris Chiu <[email protected]>

There will be crazy numbers of interrupts triggered by 8188cu and
8192cu module, around 8000~10000 interrupts per second, on the usb
host controller. Compare with the vendor driver source code, it's
mapping to the configuration CONFIG_USB_INTERRUPT_IN_PIPE and it is
disabled by default.

Since the interrupt transfer is neither used for TX/RX nor H2C
commands. Disable it to avoid the confusing interrupts for the
8188cu and 8192cu module which I only have for verification.

Signed-off-by: Chris Chiu <[email protected]>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
index 03c6ed7efe06..6a3dfa71b27f 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
@@ -1670,7 +1670,7 @@ static int rtl8xxxu_identify_chip(struct rtl8xxxu_priv *priv)
priv->rf_paths = 2;
priv->rx_paths = 2;
priv->tx_paths = 2;
- priv->usb_interrupts = 1;
+ priv->usb_interrupts = 0;
priv->rtl_chip = RTL8192C;
}
priv->has_wifi = 1;
@@ -1680,7 +1680,7 @@ static int rtl8xxxu_identify_chip(struct rtl8xxxu_priv *priv)
priv->rx_paths = 1;
priv->tx_paths = 1;
priv->rtl_chip = RTL8188C;
- priv->usb_interrupts = 1;
+ priv->usb_interrupts = 0;
priv->has_wifi = 1;
}

--
2.20.1


2021-07-06 17:36:27

by Jes Sorensen

[permalink] [raw]
Subject: Re: [PATCH] rtl8xxxu: disable interrupt_in transfer for 8188cu and 8192cu

On 7/1/21 12:33 PM, [email protected] wrote:
> From: Chris Chiu <[email protected]>
>
> There will be crazy numbers of interrupts triggered by 8188cu and
> 8192cu module, around 8000~10000 interrupts per second, on the usb
> host controller. Compare with the vendor driver source code, it's
> mapping to the configuration CONFIG_USB_INTERRUPT_IN_PIPE and it is
> disabled by default.
>
> Since the interrupt transfer is neither used for TX/RX nor H2C
> commands. Disable it to avoid the confusing interrupts for the
> 8188cu and 8192cu module which I only have for verification.
>
> Signed-off-by: Chris Chiu <[email protected]>

I remember noticing this earlier but never had a chance to dig into it.

Thanks for fixing this!

Acked-by: Jes Sorensen <[email protected]>

Jes

2021-08-21 18:17:41

by Kalle Valo

[permalink] [raw]
Subject: Re: rtl8xxxu: disable interrupt_in transfer for 8188cu and 8192cu

[email protected] wrote:

> From: Chris Chiu <[email protected]>
>
> There will be crazy numbers of interrupts triggered by 8188cu and
> 8192cu module, around 8000~10000 interrupts per second, on the usb
> host controller. Compare with the vendor driver source code, it's
> mapping to the configuration CONFIG_USB_INTERRUPT_IN_PIPE and it is
> disabled by default.
>
> Since the interrupt transfer is neither used for TX/RX nor H2C
> commands. Disable it to avoid the excessive amount of interrupts
> for the 8188cu and 8192cu module which I only have for verification.
>
> Signed-off-by: Chris Chiu <[email protected]>
> Tested-by: [email protected]
> Acked-by: Jes Sorensen <[email protected]>

Patch applied to wireless-drivers-next.git, thanks.

f62cdab7f5db rtl8xxxu: disable interrupt_in transfer for 8188cu and 8192cu

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches