* [PATCH net] net: wangxun: Fix vector length of interrupt cause
@ 2023-03-22 10:36 Jiawen Wu
2023-03-23 10:26 ` Leon Romanovsky
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Jiawen Wu @ 2023-03-22 10:36 UTC (permalink / raw)
To: netdev; +Cc: mengyuanlou, Jiawen Wu
There is 64-bit interrupt cause register for txgbe. Fix to clear upper
32 bits.
Fixes: 3f703186113f ("net: libwx: Add irq flow functions")
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
drivers/net/ethernet/wangxun/libwx/wx_type.h | 2 +-
drivers/net/ethernet/wangxun/ngbe/ngbe_main.c | 2 +-
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c | 3 ++-
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/wangxun/libwx/wx_type.h b/drivers/net/ethernet/wangxun/libwx/wx_type.h
index 77d8d7f1707e..97e2c1e13b80 100644
--- a/drivers/net/ethernet/wangxun/libwx/wx_type.h
+++ b/drivers/net/ethernet/wangxun/libwx/wx_type.h
@@ -222,7 +222,7 @@
#define WX_PX_INTA 0x110
#define WX_PX_GPIE 0x118
#define WX_PX_GPIE_MODEL BIT(0)
-#define WX_PX_IC 0x120
+#define WX_PX_IC(_i) (0x120 + (_i) * 4)
#define WX_PX_IMS(_i) (0x140 + (_i) * 4)
#define WX_PX_IMC(_i) (0x150 + (_i) * 4)
#define WX_PX_ISB_ADDR_L 0x160
diff --git a/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c b/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
index 5b564d348c09..17412e5282de 100644
--- a/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
+++ b/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
@@ -352,7 +352,7 @@ static void ngbe_up(struct wx *wx)
netif_tx_start_all_queues(wx->netdev);
/* clear any pending interrupts, may auto mask */
- rd32(wx, WX_PX_IC);
+ rd32(wx, WX_PX_IC(0));
rd32(wx, WX_PX_MISC_IC);
ngbe_irq_enable(wx, true);
if (wx->gpio_ctrl)
diff --git a/drivers/net/ethernet/wangxun/txgbe/txgbe_main.c b/drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
index 6c0a98230557..a58ce5463686 100644
--- a/drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
+++ b/drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
@@ -229,7 +229,8 @@ static void txgbe_up_complete(struct wx *wx)
wx_napi_enable_all(wx);
/* clear any pending interrupts, may auto mask */
- rd32(wx, WX_PX_IC);
+ rd32(wx, WX_PX_IC(0));
+ rd32(wx, WX_PX_IC(1));
rd32(wx, WX_PX_MISC_IC);
txgbe_irq_enable(wx, true);
--
2.27.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH net] net: wangxun: Fix vector length of interrupt cause
2023-03-22 10:36 [PATCH net] net: wangxun: Fix vector length of interrupt cause Jiawen Wu
@ 2023-03-23 10:26 ` Leon Romanovsky
2023-03-23 10:49 ` Steen.Hegelund
2023-03-24 18:00 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 5+ messages in thread
From: Leon Romanovsky @ 2023-03-23 10:26 UTC (permalink / raw)
To: Jiawen Wu; +Cc: netdev, mengyuanlou
On Wed, Mar 22, 2023 at 06:36:32PM +0800, Jiawen Wu wrote:
> There is 64-bit interrupt cause register for txgbe. Fix to clear upper
> 32 bits.
>
> Fixes: 3f703186113f ("net: libwx: Add irq flow functions")
It is worth to add two Fixes lines, as in this commit you added WX_PX_IC,
but actual bug started to be when you used it in commit:
5d3ac705c281 ("net: txgbe: Add interrupt support")
Thanks,
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net] net: wangxun: Fix vector length of interrupt cause
2023-03-22 10:36 [PATCH net] net: wangxun: Fix vector length of interrupt cause Jiawen Wu
2023-03-23 10:26 ` Leon Romanovsky
@ 2023-03-23 10:49 ` Steen.Hegelund
2023-03-24 2:01 ` Jiawen Wu
2023-03-24 18:00 ` patchwork-bot+netdevbpf
2 siblings, 1 reply; 5+ messages in thread
From: Steen.Hegelund @ 2023-03-23 10:49 UTC (permalink / raw)
To: jiawenwu, netdev; +Cc: mengyuanlou
Hi Jiawen,
On Wed Mar 22, 2023 at 11:36 AM CET, Jiawen Wu wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> There is 64-bit interrupt cause register for txgbe. Fix to clear upper
> 32 bits.
>
> Fixes: 3f703186113f ("net: libwx: Add irq flow functions")
> Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
> ---
> drivers/net/ethernet/wangxun/libwx/wx_type.h | 2 +-
> drivers/net/ethernet/wangxun/ngbe/ngbe_main.c | 2 +-
> drivers/net/ethernet/wangxun/txgbe/txgbe_main.c | 3 ++-
> 3 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/ethernet/wangxun/libwx/wx_type.h b/drivers/net/ethernet/wangxun/libwx/wx_type.h
> index 77d8d7f1707e..97e2c1e13b80 100644
> --- a/drivers/net/ethernet/wangxun/libwx/wx_type.h
> +++ b/drivers/net/ethernet/wangxun/libwx/wx_type.h
> @@ -222,7 +222,7 @@
> #define WX_PX_INTA 0x110
> #define WX_PX_GPIE 0x118
> #define WX_PX_GPIE_MODEL BIT(0)
> -#define WX_PX_IC 0x120
> +#define WX_PX_IC(_i) (0x120 + (_i) * 4)
> #define WX_PX_IMS(_i) (0x140 + (_i) * 4)
> #define WX_PX_IMC(_i) (0x150 + (_i) * 4)
> #define WX_PX_ISB_ADDR_L 0x160
> diff --git a/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c b/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
> index 5b564d348c09..17412e5282de 100644
> --- a/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
> +++ b/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
> @@ -352,7 +352,7 @@ static void ngbe_up(struct wx *wx)
> netif_tx_start_all_queues(wx->netdev);
>
> /* clear any pending interrupts, may auto mask */
> - rd32(wx, WX_PX_IC);
> + rd32(wx, WX_PX_IC(0));
Here you only clear irq 0 but not 1...
> rd32(wx, WX_PX_MISC_IC);
> ngbe_irq_enable(wx, true);
> if (wx->gpio_ctrl)
> diff --git a/drivers/net/ethernet/wangxun/txgbe/txgbe_main.c b/drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
> index 6c0a98230557..a58ce5463686 100644
> --- a/drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
> +++ b/drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
> @@ -229,7 +229,8 @@ static void txgbe_up_complete(struct wx *wx)
> wx_napi_enable_all(wx);
>
> /* clear any pending interrupts, may auto mask */
> - rd32(wx, WX_PX_IC);
> + rd32(wx, WX_PX_IC(0));
> + rd32(wx, WX_PX_IC(1));
Here you clear irq 0 and 1
> rd32(wx, WX_PX_MISC_IC);
> txgbe_irq_enable(wx, true);
>
> --
> 2.27.0
Why is there a difference between the two situations?
BR
Steen
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [PATCH net] net: wangxun: Fix vector length of interrupt cause
2023-03-23 10:49 ` Steen.Hegelund
@ 2023-03-24 2:01 ` Jiawen Wu
0 siblings, 0 replies; 5+ messages in thread
From: Jiawen Wu @ 2023-03-24 2:01 UTC (permalink / raw)
To: Steen.Hegelund, netdev; +Cc: mengyuanlou
On Thursday, March 23, 2023 6:50 PM, Steen.Hegelund@microchip.com wrote:
>
> Hi Jiawen,
>
>
> On Wed Mar 22, 2023 at 11:36 AM CET, Jiawen Wu wrote:
> > EXTERNAL EMAIL: Do not click links or open attachments unless you know
> > the content is safe
> >
> > There is 64-bit interrupt cause register for txgbe. Fix to clear upper
> > 32 bits.
> >
> > Fixes: 3f703186113f ("net: libwx: Add irq flow functions")
> > Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
> > ---
> > drivers/net/ethernet/wangxun/libwx/wx_type.h | 2 +-
> > drivers/net/ethernet/wangxun/ngbe/ngbe_main.c | 2 +-
> > drivers/net/ethernet/wangxun/txgbe/txgbe_main.c | 3 ++-
> > 3 files changed, 4 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/net/ethernet/wangxun/libwx/wx_type.h
> > b/drivers/net/ethernet/wangxun/libwx/wx_type.h
> > index 77d8d7f1707e..97e2c1e13b80 100644
> > --- a/drivers/net/ethernet/wangxun/libwx/wx_type.h
> > +++ b/drivers/net/ethernet/wangxun/libwx/wx_type.h
> > @@ -222,7 +222,7 @@
> > #define WX_PX_INTA 0x110
> > #define WX_PX_GPIE 0x118
> > #define WX_PX_GPIE_MODEL BIT(0)
> > -#define WX_PX_IC 0x120
> > +#define WX_PX_IC(_i) (0x120 + (_i) * 4)
> > #define WX_PX_IMS(_i) (0x140 + (_i) * 4)
> > #define WX_PX_IMC(_i) (0x150 + (_i) * 4)
> > #define WX_PX_ISB_ADDR_L 0x160
> > diff --git a/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
> > b/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
> > index 5b564d348c09..17412e5282de 100644
> > --- a/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
> > +++ b/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
> > @@ -352,7 +352,7 @@ static void ngbe_up(struct wx *wx)
> > netif_tx_start_all_queues(wx->netdev);
> >
> > /* clear any pending interrupts, may auto mask */
> > - rd32(wx, WX_PX_IC);
> > + rd32(wx, WX_PX_IC(0));
>
> Here you only clear irq 0 but not 1...
>
> > rd32(wx, WX_PX_MISC_IC);
> > ngbe_irq_enable(wx, true);
> > if (wx->gpio_ctrl)
> > diff --git a/drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
> > b/drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
> > index 6c0a98230557..a58ce5463686 100644
> > --- a/drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
> > +++ b/drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
> > @@ -229,7 +229,8 @@ static void txgbe_up_complete(struct wx *wx)
> > wx_napi_enable_all(wx);
> >
> > /* clear any pending interrupts, may auto mask */
> > - rd32(wx, WX_PX_IC);
> > + rd32(wx, WX_PX_IC(0));
> > + rd32(wx, WX_PX_IC(1));
>
> Here you clear irq 0 and 1
>
> > rd32(wx, WX_PX_MISC_IC);
> > txgbe_irq_enable(wx, true);
> >
> > --
> > 2.27.0
>
> Why is there a difference between the two situations?
>
> BR
> Steen
There is two different chip with different hardware design.
The register WX_PX_IC has total 64 bits in its low and high registers, which names WX_PX_IC(0) and WX_PX_IC(1).
For txgbe, it's necessary to clear irq 0-63, but 0-8 for ngbe.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net] net: wangxun: Fix vector length of interrupt cause
2023-03-22 10:36 [PATCH net] net: wangxun: Fix vector length of interrupt cause Jiawen Wu
2023-03-23 10:26 ` Leon Romanovsky
2023-03-23 10:49 ` Steen.Hegelund
@ 2023-03-24 18:00 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-03-24 18:00 UTC (permalink / raw)
To: Jiawen Wu; +Cc: netdev, mengyuanlou
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Wed, 22 Mar 2023 18:36:32 +0800 you wrote:
> There is 64-bit interrupt cause register for txgbe. Fix to clear upper
> 32 bits.
>
> Fixes: 3f703186113f ("net: libwx: Add irq flow functions")
> Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
> ---
> drivers/net/ethernet/wangxun/libwx/wx_type.h | 2 +-
> drivers/net/ethernet/wangxun/ngbe/ngbe_main.c | 2 +-
> drivers/net/ethernet/wangxun/txgbe/txgbe_main.c | 3 ++-
> 3 files changed, 4 insertions(+), 3 deletions(-)
Here is the summary with links:
- [net] net: wangxun: Fix vector length of interrupt cause
https://git.kernel.org/netdev/net/c/59513714f665
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-03-24 18:02 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-22 10:36 [PATCH net] net: wangxun: Fix vector length of interrupt cause Jiawen Wu
2023-03-23 10:26 ` Leon Romanovsky
2023-03-23 10:49 ` Steen.Hegelund
2023-03-24 2:01 ` Jiawen Wu
2023-03-24 18:00 ` patchwork-bot+netdevbpf
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.