All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Lorenzo Bianconi <lorenzo@kernel.org>
Cc: netdev@vger.kernel.org, lorenzo.bianconi@redhat.com,
	nbd@nbd.name, john@phrozen.org, sean.wang@mediatek.com,
	Mark-MC.Lee@mediatek.com, davem@davemloft.net,
	edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
	daniel@makrotopia.org, linux-mediatek@lists.infradead.org,
	sujuan.chen@mediatek.com, krzysztof.kozlowski+dt@linaro.org,
	devicetree@vger.kernel.org
Subject: Re: [PATCH net-next 10/15] net: ethernet: mtk_wed: introduce WED support for MT7988
Date: Fri, 15 Sep 2023 09:55:48 -0500	[thread overview]
Message-ID: <20230915145548.GA3704791-robh@kernel.org> (raw)
In-Reply-To: <330efa9f15a6da8a8e7596d3a942f3e893730e12.1694701767.git.lorenzo@kernel.org>

On Thu, Sep 14, 2023 at 04:38:15PM +0200, Lorenzo Bianconi wrote:
> From: Sujuan Chen <sujuan.chen@mediatek.com>
> 
> Similar to MT7986 and MT7622, enable Wireless Ethernet Ditpatcher for
> MT7988 in order to offload traffic forwarded from LAN/WLAN to WLAN/LAN
> 
> Co-developed-by: Lorenzo Bianconi <lorenzo@kernel.org>
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com>
> ---
>  drivers/net/ethernet/mediatek/mtk_eth_soc.c   |   1 +
>  drivers/net/ethernet/mediatek/mtk_eth_soc.h   |   2 +-
>  .../net/ethernet/mediatek/mtk_ppe_offload.c   |   3 +
>  drivers/net/ethernet/mediatek/mtk_wed.c       | 458 +++++++++++++-----
>  drivers/net/ethernet/mediatek/mtk_wed.h       |  28 ++
>  drivers/net/ethernet/mediatek/mtk_wed_mcu.c   |  33 +-
>  drivers/net/ethernet/mediatek/mtk_wed_regs.h  | 228 ++++++++-
>  drivers/net/ethernet/mediatek/mtk_wed_wo.h    |   2 +
>  include/linux/soc/mediatek/mtk_wed.h          |   9 +-
>  9 files changed, 618 insertions(+), 146 deletions(-)
> 
> diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> index 3cffd1bd3067..697620c6354b 100644
> --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> @@ -197,6 +197,7 @@ static const struct mtk_reg_map mt7988_reg_map = {
>  	.wdma_base = {
>  		[0]		= 0x4800,
>  		[1]		= 0x4c00,
> +		[2]		= 0x5000,
>  	},
>  	.pse_iq_sta		= 0x0180,
>  	.pse_oq_sta		= 0x01a0,
> diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
> index 403219d987ef..9ae3b8a71d0e 100644
> --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
> +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
> @@ -1132,7 +1132,7 @@ struct mtk_reg_map {
>  	u32	gdm1_cnt;
>  	u32	gdma_to_ppe;
>  	u32	ppe_base;
> -	u32	wdma_base[2];
> +	u32	wdma_base[3];
>  	u32	pse_iq_sta;
>  	u32	pse_oq_sta;
>  };
> diff --git a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
> index ef3980840695..95f76975f258 100644
> --- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
> +++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
> @@ -201,6 +201,9 @@ mtk_flow_set_output_device(struct mtk_eth *eth, struct mtk_foe_entry *foe,
>  			case 1:
>  				pse_port = PSE_WDMA1_PORT;
>  				break;
> +			case 2:
> +				pse_port = PSE_WDMA2_PORT;
> +				break;
>  			default:
>  				return -EINVAL;
>  			}
> diff --git a/drivers/net/ethernet/mediatek/mtk_wed.c b/drivers/net/ethernet/mediatek/mtk_wed.c
> index 58d97be98029..0d8e10df9da2 100644
> --- a/drivers/net/ethernet/mediatek/mtk_wed.c
> +++ b/drivers/net/ethernet/mediatek/mtk_wed.c
> @@ -17,17 +17,19 @@
>  #include <net/flow_offload.h>
>  #include <net/pkt_cls.h>
>  #include "mtk_eth_soc.h"
> -#include "mtk_wed_regs.h"
>  #include "mtk_wed.h"
>  #include "mtk_ppe.h"
>  #include "mtk_wed_wo.h"
>  
>  #define MTK_PCIE_BASE(n)		(0x1a143000 + (n) * 0x2000)
>  
> -#define MTK_WED_PKT_SIZE		1900
> +#define MTK_WED_PKT_SIZE		1920
>  #define MTK_WED_BUF_SIZE		2048
> +#define MTK_WED_PAGE_BUF_SIZE		128
>  #define MTK_WED_BUF_PER_PAGE		(PAGE_SIZE / 2048)
> +#define MTK_WED_RX_PAGE_BUF_PER_PAGE	(PAGE_SIZE / 128)
>  #define MTK_WED_RX_RING_SIZE		1536
> +#define MTK_WED_RX_PG_BM_CNT		8192
>  
>  #define MTK_WED_TX_RING_SIZE		2048
>  #define MTK_WED_WDMA_RING_SIZE		1024
> @@ -41,7 +43,10 @@
>  #define MTK_WED_RRO_QUE_CNT		8192
>  #define MTK_WED_MIOD_ENTRY_CNT		128
>  
> -static struct mtk_wed_hw *hw_list[2];
> +#define MTK_WED_TX_BM_DMA_SIZE		65536
> +#define MTK_WED_TX_BM_PKT_CNT		32768
> +
> +static struct mtk_wed_hw *hw_list[3];
>  static DEFINE_MUTEX(hw_lock);
>  
>  struct mtk_wed_flow_block_priv {
> @@ -300,33 +305,39 @@ mtk_wed_assign(struct mtk_wed_device *dev)
>  static int
>  mtk_wed_tx_buffer_alloc(struct mtk_wed_device *dev)
>  {
> +	int i, page_idx = 0, n_pages, ring_size;
> +	int token = dev->wlan.token_start;
>  	struct mtk_wed_buf *page_list;
> -	struct mtk_wdma_desc *desc;
>  	dma_addr_t desc_phys;
> -	int token = dev->wlan.token_start;
> -	int ring_size;
> -	int n_pages;
> -	int i, page_idx;
> +	void *desc_ptr;
>  
> -	ring_size = dev->wlan.nbuf & ~(MTK_WED_BUF_PER_PAGE - 1);
> -	n_pages = ring_size / MTK_WED_BUF_PER_PAGE;
> +	if (!mtk_wed_is_v3_or_greater(dev->hw)) {
> +		dev->tx_buf_ring.desc_size = sizeof(struct mtk_wdma_desc);

Instead of checking the version or using of_device_is_compatible() in 
other places why don't you define driver match data for all this static 
data.

Rob


  reply	other threads:[~2023-09-15 14:56 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-14 14:38 [PATCH net-next 00/15] Add WED support for MT7988 chipset Lorenzo Bianconi
2023-09-14 14:38 ` [PATCH net-next 01/15] dt-bindings: soc: mediatek: mt7986-wo-ccif: add binding for MT7988 SoC Lorenzo Bianconi
2023-09-15 14:56   ` Rob Herring
2023-09-14 14:38 ` [PATCH net-next 02/15] dt-bindings: arm: mediatek: mt7622-wed: add WED " Lorenzo Bianconi
2023-09-15 14:57   ` Rob Herring
2023-09-14 14:38 ` [PATCH net-next 03/15] net: ethernet: mtk_wed: introduce versioning utility routines Lorenzo Bianconi
2023-09-14 14:38 ` [PATCH net-next 04/15] net: ethernet: mtk_wed: introduce mtk_wed_wdma_get_desc_size utility routine Lorenzo Bianconi
2023-09-14 14:38 ` [PATCH net-next 05/15] net: ethernet: mtk_wed: do not configure rx offload if not supported Lorenzo Bianconi
2023-09-14 14:38 ` [PATCH net-next 06/15] net: ethernet: mtk_wed: rename mtk_rxbm_desc in mtk_wed_bm_desc Lorenzo Bianconi
2023-09-14 14:38 ` [PATCH net-next 07/15] net: ethernet: mtk_wed: introduce mtk_wed_buf structure Lorenzo Bianconi
2023-09-14 14:38 ` [PATCH net-next 08/15] net: ethernet: mtk_wed: move mem_region array out of mtk_wed_mcu_load_firmware Lorenzo Bianconi
2023-09-14 14:38 ` [PATCH net-next 09/15] net: ethernet: mtk_wed: make memory region optional Lorenzo Bianconi
2023-09-14 14:38 ` [PATCH net-next 10/15] net: ethernet: mtk_wed: introduce WED support for MT7988 Lorenzo Bianconi
2023-09-15 14:55   ` Rob Herring [this message]
2023-09-15 16:28     ` Lorenzo Bianconi
2023-09-14 14:38 ` [PATCH net-next 11/15] net: ethernet: mtk_wed: refactor mtk_wed_check_wfdma_rx_fill routine Lorenzo Bianconi
2023-09-14 14:38 ` [PATCH net-next 12/15] net: ethernet: mtk_wed: introduce partial AMSDU offload support for MT7988 Lorenzo Bianconi
2023-09-14 14:38 ` [PATCH net-next 13/15] net: ethernet: mtk_wed: introduce hw_rro " Lorenzo Bianconi
2023-09-17  8:47   ` Simon Horman
2023-09-18  7:54     ` Lorenzo Bianconi
2023-09-14 14:38 ` [PATCH net-next 14/15] net: ethernet: mtk_wed: debugfs: move wed_v2 specific regs out of regs array Lorenzo Bianconi
2023-09-14 14:38 ` [PATCH net-next 15/15] net: ethernet: mtk_wed: debugfs: add WED 3.0 debugfs entries Lorenzo Bianconi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230915145548.GA3704791-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=Mark-MC.Lee@mediatek.com \
    --cc=daniel@makrotopia.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=john@phrozen.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=kuba@kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=lorenzo.bianconi@redhat.com \
    --cc=lorenzo@kernel.org \
    --cc=nbd@nbd.name \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=sean.wang@mediatek.com \
    --cc=sujuan.chen@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.