mbox series

[v2,net-next,00/17] Add WED support for MT7988 chipset

Message ID cover.1695032290.git.lorenzo@kernel.org
Headers show
Series Add WED support for MT7988 chipset | expand

Message

Lorenzo Bianconi Sept. 18, 2023, 10:29 a.m. UTC
Similar to MT7622 and MT7986, introduce Wireless Ethernet Dispatcher (WED)
support for MT7988 chipset in order to offload to the hw packet engine traffic
received from LAN/WAN device to WLAN nic (MT7996E).
Add WED RX support in order to offload traffic received by WLAN nic to the
wired interfaces (LAN/WAN).

Changes since v1:
- introduce mtk_wed_soc_data data structure to contain per-SoC definitions
- get rid of buf pointer in mtk_wed_hwrro_buffer_alloc()
- rebase on top of net-next

Lorenzo Bianconi (12):
  dt-bindings: soc: mediatek: mt7986-wo-ccif: add binding for MT7988 SoC
  dt-bindings: arm: mediatek: mt7622-wed: add WED binding for MT7988 SoC
  net: ethernet: mtk_wed: introduce versioning utility routines
  net: ethernet: mtk_wed: do not configure rx offload if not supported
  net: ethernet: mtk_wed: rename mtk_rxbm_desc in mtk_wed_bm_desc
  net: ethernet: mtk_wed: introduce mtk_wed_buf structure
  net: ethernet: mtk_wed: move mem_region array out of
    mtk_wed_mcu_load_firmware
  net: ethernet: mtk_wed: make memory region optional
  net: ethernet: mtk_wed: fix EXT_INT_STATUS_RX_FBUF definitions for
    MT7986 SoC
  net: ethernet: mtk_wed: add mtk_wed_soc_data structure
  net: ethernet: mtk_wed: refactor mtk_wed_check_wfdma_rx_fill routine
  net: ethernet: mtk_wed: debugfs: move wed_v2 specific regs out of regs
    array

Sujuan Chen (5):
  net: ethernet: mtk_wed: introduce WED support for MT7988
  net: ethernet: mtk_wed: introduce partial AMSDU offload support for
    MT7988
  net: ethernet: mtk_wed: introduce hw_rro support for MT7988
  net: ethernet: mtk_wed: debugfs: add WED 3.0 debugfs entries
  net: ethernet: mtk_wed: add wed 3.0 reset support

 .../arm/mediatek/mediatek,mt7622-wed.yaml     |    1 +
 .../soc/mediatek/mediatek,mt7986-wo-ccif.yaml |    1 +
 drivers/net/ethernet/mediatek/mtk_eth_soc.c   |    1 +
 drivers/net/ethernet/mediatek/mtk_eth_soc.h   |    2 +-
 drivers/net/ethernet/mediatek/mtk_ppe.c       |    4 +-
 drivers/net/ethernet/mediatek/mtk_ppe.h       |   19 +-
 .../net/ethernet/mediatek/mtk_ppe_offload.c   |    6 +-
 drivers/net/ethernet/mediatek/mtk_wed.c       | 1400 ++++++++++++++---
 drivers/net/ethernet/mediatek/mtk_wed.h       |   57 +
 .../net/ethernet/mediatek/mtk_wed_debugfs.c   |  400 ++++-
 drivers/net/ethernet/mediatek/mtk_wed_mcu.c   |   95 +-
 drivers/net/ethernet/mediatek/mtk_wed_regs.h  |  369 ++++-
 drivers/net/ethernet/mediatek/mtk_wed_wo.h    |    3 +-
 .../net/wireless/mediatek/mt76/mt7915/mmio.c  |    2 +-
 include/linux/netdevice.h                     |    1 +
 include/linux/soc/mediatek/mtk_wed.h          |   76 +-
 16 files changed, 2109 insertions(+), 328 deletions(-)

Comments

Daniel Golle Sept. 18, 2023, 11:35 a.m. UTC | #1
On Mon, Sep 18, 2023 at 12:29:11PM +0200, Lorenzo Bianconi wrote:
> Fix MTK_WED_EXT_INT_STATUS_RX_FBUF_LO_TH and
> MTK_WED_EXT_INT_STATUS_RX_FBUF_HI_TH definitions for MT7986 (MT7986 is
> the only SoC to use them).

Afaik this applies also to MT7981 which is very similar to MT7986.

> 
> Fixes: de84a090d99a ("net: ethernet: mtk_eth_wed: add wed support for mt7986 chipset")
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> ---
>  drivers/net/ethernet/mediatek/mtk_wed_regs.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/mediatek/mtk_wed_regs.h b/drivers/net/ethernet/mediatek/mtk_wed_regs.h
> index 47ea69feb3b2..f87ab9b8a590 100644
> --- a/drivers/net/ethernet/mediatek/mtk_wed_regs.h
> +++ b/drivers/net/ethernet/mediatek/mtk_wed_regs.h
> @@ -64,8 +64,8 @@ struct mtk_wdma_desc {
>  #define MTK_WED_EXT_INT_STATUS_TKID_TITO_INVALID	BIT(4)
>  #define MTK_WED_EXT_INT_STATUS_TX_FBUF_LO_TH		BIT(8)
>  #define MTK_WED_EXT_INT_STATUS_TX_FBUF_HI_TH		BIT(9)
> -#define MTK_WED_EXT_INT_STATUS_RX_FBUF_LO_TH		BIT(12)
> -#define MTK_WED_EXT_INT_STATUS_RX_FBUF_HI_TH		BIT(13)
> +#define MTK_WED_EXT_INT_STATUS_RX_FBUF_LO_TH		BIT(10) /* wed v2 */
> +#define MTK_WED_EXT_INT_STATUS_RX_FBUF_HI_TH		BIT(11) /* wed v2 */
>  #define MTK_WED_EXT_INT_STATUS_RX_DRV_R_RESP_ERR	BIT(16)
>  #define MTK_WED_EXT_INT_STATUS_RX_DRV_W_RESP_ERR	BIT(17)
>  #define MTK_WED_EXT_INT_STATUS_RX_DRV_COHERENT		BIT(18)
> -- 
> 2.41.0
> 
>
Lorenzo Bianconi Sept. 18, 2023, 12:17 p.m. UTC | #2
> On Mon, Sep 18, 2023 at 12:29:11PM +0200, Lorenzo Bianconi wrote:
> > Fix MTK_WED_EXT_INT_STATUS_RX_FBUF_LO_TH and
> > MTK_WED_EXT_INT_STATUS_RX_FBUF_HI_TH definitions for MT7986 (MT7986 is
> > the only SoC to use them).
> 
> Afaik this applies also to MT7981 which is very similar to MT7986.

ack, fine. Can you please test it out when you have some free cycles?
I do not have a MT7981 device for testing.

Regards,
Lorenzo

> 
> > 
> > Fixes: de84a090d99a ("net: ethernet: mtk_eth_wed: add wed support for mt7986 chipset")
> > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> > ---
> >  drivers/net/ethernet/mediatek/mtk_wed_regs.h | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/net/ethernet/mediatek/mtk_wed_regs.h b/drivers/net/ethernet/mediatek/mtk_wed_regs.h
> > index 47ea69feb3b2..f87ab9b8a590 100644
> > --- a/drivers/net/ethernet/mediatek/mtk_wed_regs.h
> > +++ b/drivers/net/ethernet/mediatek/mtk_wed_regs.h
> > @@ -64,8 +64,8 @@ struct mtk_wdma_desc {
> >  #define MTK_WED_EXT_INT_STATUS_TKID_TITO_INVALID	BIT(4)
> >  #define MTK_WED_EXT_INT_STATUS_TX_FBUF_LO_TH		BIT(8)
> >  #define MTK_WED_EXT_INT_STATUS_TX_FBUF_HI_TH		BIT(9)
> > -#define MTK_WED_EXT_INT_STATUS_RX_FBUF_LO_TH		BIT(12)
> > -#define MTK_WED_EXT_INT_STATUS_RX_FBUF_HI_TH		BIT(13)
> > +#define MTK_WED_EXT_INT_STATUS_RX_FBUF_LO_TH		BIT(10) /* wed v2 */
> > +#define MTK_WED_EXT_INT_STATUS_RX_FBUF_HI_TH		BIT(11) /* wed v2 */
> >  #define MTK_WED_EXT_INT_STATUS_RX_DRV_R_RESP_ERR	BIT(16)
> >  #define MTK_WED_EXT_INT_STATUS_RX_DRV_W_RESP_ERR	BIT(17)
> >  #define MTK_WED_EXT_INT_STATUS_RX_DRV_COHERENT		BIT(18)
> > -- 
> > 2.41.0
> > 
> >
Paolo Abeni Sept. 19, 2023, 2:07 p.m. UTC | #3
On Mon, 2023-09-18 at 12:35 +0100, Daniel Golle wrote:
> On Mon, Sep 18, 2023 at 12:29:11PM +0200, Lorenzo Bianconi wrote:
> > Fix MTK_WED_EXT_INT_STATUS_RX_FBUF_LO_TH and
> > MTK_WED_EXT_INT_STATUS_RX_FBUF_HI_TH definitions for MT7986 (MT7986 is
> > the only SoC to use them).
> 
> Afaik this applies also to MT7981 which is very similar to MT7986.

FTR, I read the above as this series is going to additionally
support/work fine with MT7981; no modification asked here, fine to be
merged.

Please scream loudly soon otherwise ;)

Thanks,

Paolo
patchwork-bot+netdevbpf@kernel.org Sept. 19, 2023, 5:20 p.m. UTC | #4
Hello:

This series was applied to netdev/net-next.git (main)
by Paolo Abeni <pabeni@redhat.com>:

On Mon, 18 Sep 2023 12:29:02 +0200 you wrote:
> Similar to MT7622 and MT7986, introduce Wireless Ethernet Dispatcher (WED)
> support for MT7988 chipset in order to offload to the hw packet engine traffic
> received from LAN/WAN device to WLAN nic (MT7996E).
> Add WED RX support in order to offload traffic received by WLAN nic to the
> wired interfaces (LAN/WAN).
> 
> Changes since v1:
> - introduce mtk_wed_soc_data data structure to contain per-SoC definitions
> - get rid of buf pointer in mtk_wed_hwrro_buffer_alloc()
> - rebase on top of net-next
> 
> [...]

Here is the summary with links:
  - [v2,net-next,01/17] dt-bindings: soc: mediatek: mt7986-wo-ccif: add binding for MT7988 SoC
    https://git.kernel.org/netdev/net-next/c/4518b25c63d4
  - [v2,net-next,02/17] dt-bindings: arm: mediatek: mt7622-wed: add WED binding for MT7988 SoC
    https://git.kernel.org/netdev/net-next/c/f881f2732448
  - [v2,net-next,03/17] net: ethernet: mtk_wed: introduce versioning utility routines
    https://git.kernel.org/netdev/net-next/c/d274d523c71c
  - [v2,net-next,04/17] net: ethernet: mtk_wed: do not configure rx offload if not supported
    https://git.kernel.org/netdev/net-next/c/7d5a72733b21
  - [v2,net-next,05/17] net: ethernet: mtk_wed: rename mtk_rxbm_desc in mtk_wed_bm_desc
    https://git.kernel.org/netdev/net-next/c/bafd764a8baa
  - [v2,net-next,06/17] net: ethernet: mtk_wed: introduce mtk_wed_buf structure
    https://git.kernel.org/netdev/net-next/c/ff0ea57fa30e
  - [v2,net-next,07/17] net: ethernet: mtk_wed: move mem_region array out of mtk_wed_mcu_load_firmware
    https://git.kernel.org/netdev/net-next/c/c6d961aeaa77
  - [v2,net-next,08/17] net: ethernet: mtk_wed: make memory region optional
    https://git.kernel.org/netdev/net-next/c/71e2135967f4
  - [v2,net-next,09/17] net: ethernet: mtk_wed: fix EXT_INT_STATUS_RX_FBUF definitions for MT7986 SoC
    https://git.kernel.org/netdev/net-next/c/c80471ba74b7
  - [v2,net-next,10/17] net: ethernet: mtk_wed: add mtk_wed_soc_data structure
    https://git.kernel.org/netdev/net-next/c/9ae7eca9f901
  - [v2,net-next,11/17] net: ethernet: mtk_wed: introduce WED support for MT7988
    https://git.kernel.org/netdev/net-next/c/e2f64db13aa1
  - [v2,net-next,12/17] net: ethernet: mtk_wed: refactor mtk_wed_check_wfdma_rx_fill routine
    https://git.kernel.org/netdev/net-next/c/96ddb4d0bf2e
  - [v2,net-next,13/17] net: ethernet: mtk_wed: introduce partial AMSDU offload support for MT7988
    https://git.kernel.org/netdev/net-next/c/b230812b9dda
  - [v2,net-next,14/17] net: ethernet: mtk_wed: introduce hw_rro support for MT7988
    https://git.kernel.org/netdev/net-next/c/6757d345dd7d
  - [v2,net-next,15/17] net: ethernet: mtk_wed: debugfs: move wed_v2 specific regs out of regs array
    https://git.kernel.org/netdev/net-next/c/4b7e02bb6375
  - [v2,net-next,16/17] net: ethernet: mtk_wed: debugfs: add WED 3.0 debugfs entries
    https://git.kernel.org/netdev/net-next/c/3f3de094e834
  - [v2,net-next,17/17] net: ethernet: mtk_wed: add wed 3.0 reset support
    https://git.kernel.org/netdev/net-next/c/1543b8ff02f0

You are awesome, thank you!