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 <[email protected]> # sa8775p-ride
Signed-off-by: Abhishek Chauhan <[email protected]>
---
Changes since v3:
- The change is Tested-by Andrew Halaney <[email protected]>
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/[email protected]/
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
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 <[email protected]> # sa8775p-ride
> Signed-off-by: Abhishek Chauhan <[email protected]>
Reviewed-by: Jeff Johnson <[email protected]>
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 <[email protected]> # sa8775p-ride
> Signed-off-by: Abhishek Chauhan <[email protected]>
Reviewed-by: Andrew Halaney <[email protected]>
> ---
> Changes since v3:
> - The change is Tested-by Andrew Halaney <[email protected]>
> 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/[email protected]/
>
> 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 <[email protected]>:
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!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html