Patch "net: stmmac: dwmac-qcom-ethqos: Configure host DMA width" has been added to the 6.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net: stmmac: dwmac-qcom-ethqos: Configure host DMA width

to the 6.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-stmmac-dwmac-qcom-ethqos-configure-host-dma-widt.patch
and it can be found in the queue-6.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 774a39b09566d6f83fa81dbaa32a15c87dce6690
Author: Sagar Cheluvegowda <quic_scheluve@xxxxxxxxxxx>
Date:   Wed Jun 5 11:57:18 2024 -0700

    net: stmmac: dwmac-qcom-ethqos: Configure host DMA width
    
    [ Upstream commit 0579f27249047006a818e463ee66a6c314d04cea ]
    
    Commit 070246e4674b ("net: stmmac: Fix for mismatched host/device DMA
    address width") added support in the stmmac driver for platform drivers
    to indicate the host DMA width, but left it up to authors of the
    specific platforms to indicate if their width differed from the addr64
    register read from the MAC itself.
    
    Qualcomm's EMAC4 integration supports only up to 36 bit width (as
    opposed to the addr64 register indicating 40 bit width). Let's indicate
    that in the platform driver to avoid a scenario where the driver will
    allocate descriptors of size that is supported by the CPU which in our
    case is 36 bit, but as the addr64 register is still capable of 40 bits
    the device will use two descriptors as one address.
    
    Fixes: 8c4d92e82d50 ("net: stmmac: dwmac-qcom-ethqos: add support for emac4 on sa8775p platforms")
    Signed-off-by: Sagar Cheluvegowda <quic_scheluve@xxxxxxxxxxx>
    Reviewed-by: Simon Horman <horms@xxxxxxxxxx>
    Reviewed-by: Andrew Halaney <ahalaney@xxxxxxxxxx>
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
index e254b21fdb598..65d7370b47d57 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
@@ -93,6 +93,7 @@ struct ethqos_emac_driver_data {
 	bool has_emac_ge_3;
 	const char *link_clk_name;
 	bool has_integrated_pcs;
+	u32 dma_addr_width;
 	struct dwmac4_addrs dwmac4_addrs;
 };
 
@@ -276,6 +277,7 @@ static const struct ethqos_emac_driver_data emac_v4_0_0_data = {
 	.has_emac_ge_3 = true,
 	.link_clk_name = "phyaux",
 	.has_integrated_pcs = true,
+	.dma_addr_width = 36,
 	.dwmac4_addrs = {
 		.dma_chan = 0x00008100,
 		.dma_chan_offset = 0x1000,
@@ -845,6 +847,8 @@ static int qcom_ethqos_probe(struct platform_device *pdev)
 		plat_dat->flags |= STMMAC_FLAG_RX_CLK_RUNS_IN_LPI;
 	if (data->has_integrated_pcs)
 		plat_dat->flags |= STMMAC_FLAG_HAS_INTEGRATED_PCS;
+	if (data->dma_addr_width)
+		plat_dat->host_dma_width = data->dma_addr_width;
 
 	if (ethqos->serdes_phy) {
 		plat_dat->serdes_powerup = qcom_ethqos_serdes_powerup;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux