[PATCH V2] net: stmmac: dwmac-loongson: Add fix_soc_reset() callback

Qunqin Zhao posted 1 patch 12 months ago
There is a newer version of this series
.../net/ethernet/stmicro/stmmac/dwmac-loongson.c   | 14 ++++++++++++++
1 file changed, 14 insertions(+)
[PATCH V2] net: stmmac: dwmac-loongson: Add fix_soc_reset() callback
Posted by Qunqin Zhao 12 months ago
Loongson's DWMAC device may take nearly two seconds to complete DMA reset,
however, the default waiting time for reset is 200 milliseconds.

Fixes: 803fc61df261 ("net: stmmac: dwmac-loongson: Add Loongson Multi-channels GMAC support")
Signed-off-by: Qunqin Zhao <zhaoqunqin@loongson.cn>
Reviewed-by: Huacai Chen <chenhuacai@loongson.cn>
---
v2: Added comments. Changed callback name to loongson_dwmac_fix_reset.

 .../net/ethernet/stmicro/stmmac/dwmac-loongson.c   | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
index bfe6e2d631bd..f5acfb7d4ff6 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
@@ -516,6 +516,19 @@ static int loongson_dwmac_acpi_config(struct pci_dev *pdev,
 	return 0;
 }
 
+/* Loongson's DWMAC device may take nearly two seconds to complete DMA reset */
+static int loongson_dwmac_fix_reset(void *priv, void __iomem *ioaddr)
+{
+	u32 value = readl(ioaddr + DMA_BUS_MODE);
+
+	value |= DMA_BUS_MODE_SFT_RESET;
+	writel(value, ioaddr + DMA_BUS_MODE);
+
+	return readl_poll_timeout(ioaddr + DMA_BUS_MODE, value,
+				  !(value & DMA_BUS_MODE_SFT_RESET),
+				  10000, 2000000);
+}
+
 static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 {
 	struct plat_stmmacenet_data *plat;
@@ -566,6 +579,7 @@ static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id
 
 	plat->bsp_priv = ld;
 	plat->setup = loongson_dwmac_setup;
+	plat->fix_soc_reset = loongson_dwmac_fix_reset;
 	ld->dev = &pdev->dev;
 	ld->loongson_id = readl(res.addr + GMAC_VERSION) & 0xff;
 

base-commit: a64dcfb451e254085a7daee5fe51bf22959d52d3
-- 
2.43.0
Re: [PATCH V2] net: stmmac: dwmac-loongson: Add fix_soc_reset() callback
Posted by Krzysztof Kozlowski 12 months ago
On 12/02/2025 03:36, Qunqin Zhao wrote:
> Loongson's DWMAC device may take nearly two seconds to complete DMA reset,
> however, the default waiting time for reset is 200 milliseconds.
> 
> Fixes: 803fc61df261 ("net: stmmac: dwmac-loongson: Add Loongson Multi-channels GMAC support")

You still miss cc-stable.

Best regards,
Krzysztof
Re: [PATCH V2] net: stmmac: dwmac-loongson: Add fix_soc_reset() callback
Posted by Qunqin Zhao 12 months ago
在 2025/2/12 下午1:42, Krzysztof Kozlowski 写道:
> On 12/02/2025 03:36, Qunqin Zhao wrote:
>> Loongson's DWMAC device may take nearly two seconds to complete DMA reset,
>> however, the default waiting time for reset is 200 milliseconds.
>>
>> Fixes: 803fc61df261 ("net: stmmac: dwmac-loongson: Add Loongson Multi-channels GMAC support")
> You still miss cc-stable.
OK, thanks.
>
> Best regards,
> Krzysztof

Re: [PATCH V2] net: stmmac: dwmac-loongson: Add fix_soc_reset() callback
Posted by Huacai Chen 12 months ago
On Wed, Feb 12, 2025 at 2:03 PM Qunqin Zhao <zhaoqunqin@loongson.cn> wrote:
>
>
> 在 2025/2/12 下午1:42, Krzysztof Kozlowski 写道:
> > On 12/02/2025 03:36, Qunqin Zhao wrote:
> >> Loongson's DWMAC device may take nearly two seconds to complete DMA reset,
> >> however, the default waiting time for reset is 200 milliseconds.
> >>
> >> Fixes: 803fc61df261 ("net: stmmac: dwmac-loongson: Add Loongson Multi-channels GMAC support")
> > You still miss cc-stable.
> OK, thanks.
You can copy-paste the error message to commit message since you need
V3, and the title should begin with [PATCH net V3].

Huacai

> >
> > Best regards,
> > Krzysztof
>
Re: [PATCH V2] net: stmmac: dwmac-loongson: Add fix_soc_reset() callback
Posted by Qunqin Zhao 12 months ago
在 2025/2/12 下午2:13, Huacai Chen 写道:
> On Wed, Feb 12, 2025 at 2:03 PM Qunqin Zhao <zhaoqunqin@loongson.cn> wrote:
>>
>> 在 2025/2/12 下午1:42, Krzysztof Kozlowski 写道:
>>> On 12/02/2025 03:36, Qunqin Zhao wrote:
>>>> Loongson's DWMAC device may take nearly two seconds to complete DMA reset,
>>>> however, the default waiting time for reset is 200 milliseconds.
>>>>
>>>> Fixes: 803fc61df261 ("net: stmmac: dwmac-loongson: Add Loongson Multi-channels GMAC support")
>>> You still miss cc-stable.
>> OK, thanks.
> You can copy-paste the error message to commit message since you need
> V3, and the title should begin with [PATCH net V3].
OK, thanks.
>
> Huacai
>
>>> Best regards,
>>> Krzysztof