Message ID | 20240208231145.2732931-1-quic_abchauha@quicinc.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 0918c1dcd55cfe3b8f9844731dc68eee948c9f92 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,v4] net: stmmac: dwmac-qcom-ethqos: Enable TBS on all queues but 0 | expand |
On 2/8/2024 3:11 PM, Abhishek Chauhan wrote: > TSO and TBS cannot co-exist. TBS requires special descriptor to be > allocated at bootup. Initialising Tx queues at probe to support > TSO and TBS can help in allocating those resources at bootup. > > TX queues with TBS can support etf qdisc hw offload. > > This is similar to the patch raised by NXP > commit 3b12ec8f618e ("net: stmmac: dwmac-imx: set TSO/TBS TX queues default settings") > > Tested-by: Andrew Halaney <ahalaney@redhat.com> # sa8775p-ride > Signed-off-by: Abhishek Chauhan <quic_abchauha@quicinc.com> Reviewed-by: Jeff Johnson <quic_jjohnson@quicinc.com>
On Thu, Feb 08, 2024 at 03:11:45PM -0800, Abhishek Chauhan wrote: > TSO and TBS cannot co-exist. TBS requires special descriptor to be > allocated at bootup. Initialising Tx queues at probe to support > TSO and TBS can help in allocating those resources at bootup. > > TX queues with TBS can support etf qdisc hw offload. > > This is similar to the patch raised by NXP > commit 3b12ec8f618e ("net: stmmac: dwmac-imx: set TSO/TBS TX queues default settings") > > Tested-by: Andrew Halaney <ahalaney@redhat.com> # sa8775p-ride > Signed-off-by: Abhishek Chauhan <quic_abchauha@quicinc.com> Reviewed-by: Andrew Halaney <ahalaney@redhat.com> > --- > Changes since v3: > - The change is Tested-by Andrew Halaney <ahalaney@redhat.com> > on Qualcomm Ride platform > - Change log is removed from the commit text > > Changes since v2: > - Fixed the styling of comment in the dwmac-qcom-ethqos.c > - Followed the upstream format to give other glue > driver references to solve the same problem > - Appended the subject with net-next > - Discussion of why this patch is required is discussed in > https://lore.kernel.org/netdev/c2497eef-1041-4cd0-8220-42622c8902f4@quicinc.com/ > > Changes since v1: > - Subject is changed as per upstream guidelines > - Added a reference of a similar change done by NXP in > body of the commit message > > drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > index 31631e3f89d0..2691a250a5a7 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > @@ -728,7 +728,7 @@ static int qcom_ethqos_probe(struct platform_device *pdev) > struct stmmac_resources stmmac_res; > struct device *dev = &pdev->dev; > struct qcom_ethqos *ethqos; > - int ret; > + int ret, i; > > ret = stmmac_get_platform_resources(pdev, &stmmac_res); > if (ret) > @@ -822,6 +822,10 @@ static int qcom_ethqos_probe(struct platform_device *pdev) > plat_dat->serdes_powerdown = qcom_ethqos_serdes_powerdown; > } > > + /* Enable TSO on queue0 and enable TBS on rest of the queues */ > + for (i = 1; i < plat_dat->tx_queues_to_use; i++) > + plat_dat->tx_queues_cfg[i].tbs_en = 1; > + > return devm_stmmac_pltfr_probe(pdev, plat_dat, &stmmac_res); > } > > -- > 2.25.1 >
Hello: This patch was applied to netdev/net-next.git (main) by David S. Miller <davem@davemloft.net>: On Thu, 8 Feb 2024 15:11:45 -0800 you wrote: > TSO and TBS cannot co-exist. TBS requires special descriptor to be > allocated at bootup. Initialising Tx queues at probe to support > TSO and TBS can help in allocating those resources at bootup. > > TX queues with TBS can support etf qdisc hw offload. > > This is similar to the patch raised by NXP > commit 3b12ec8f618e ("net: stmmac: dwmac-imx: set TSO/TBS TX queues default settings") > > [...] Here is the summary with links: - [net-next,v4] net: stmmac: dwmac-qcom-ethqos: Enable TBS on all queues but 0 https://git.kernel.org/netdev/net-next/c/0918c1dcd55c You are awesome, thank you!
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c index 31631e3f89d0..2691a250a5a7 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c @@ -728,7 +728,7 @@ static int qcom_ethqos_probe(struct platform_device *pdev) struct stmmac_resources stmmac_res; struct device *dev = &pdev->dev; struct qcom_ethqos *ethqos; - int ret; + int ret, i; ret = stmmac_get_platform_resources(pdev, &stmmac_res); if (ret) @@ -822,6 +822,10 @@ static int qcom_ethqos_probe(struct platform_device *pdev) plat_dat->serdes_powerdown = qcom_ethqos_serdes_powerdown; } + /* Enable TSO on queue0 and enable TBS on rest of the queues */ + for (i = 1; i < plat_dat->tx_queues_to_use; i++) + plat_dat->tx_queues_cfg[i].tbs_en = 1; + return devm_stmmac_pltfr_probe(pdev, plat_dat, &stmmac_res); }