Hi Christian,
+CC netdev folks
Hi All,
The DPAA Ethernet doesn’t work anymore on our FSL P5020/P5040 boards [1]
since the first updates after the final kernel 6.1 [2].
We bisected yesterday [3] and found the problematic commit [4]. I was
able to revert it. After that the DPAA Ethernet works again. I created a
patch for reverting the commit [4]. After patching and compiling, the
DPAA Ethernet also works again.
Thank you for testing this. Unfortunately, I have no P-series hardware,
so I was unable to test the 10gec/dtsec parts of this conversion. I had
hoped that this would get tested by someone with the hardware (at NXP)
before now, but it seems you get to be the "lucky" first user.
I see you have labeled one of your kernels as supporting QEMU. Do you
happen to have instructions for running Linux on QEMU?
It seems, that the new driver doesn’t work with our onboard DPAA network
interfaces.
Could you please check your commit? [4]
Can you try the following patch. I think my mail client will mangle it,
so I have also attached it to this email.
From 3898c62106025209b26527ad1516b339eebb62f1 Mon Sep 17 00:00:00 2001
From: Sean Anderson <sean...@gmail.com>
Date: Sun, 1 Jan 2023 13:00:21 -0500
Subject: [PATCH] net: dpaa: Fix dtsec check for PCS availability
We want to fail if the PCS is not available, not if it is available. Fix
this condition.
Fixes: 5d93cfcf7360 ("net: dpaa: Convert to phylink")
Reported-by: Christian Zigotzky <i...@xenosoft.de>
Signed-off-by: Sean Anderson <sean...@gmail.com>
---
drivers/net/ethernet/freescale/fman/fman_dtsec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/freescale/fman/fman_dtsec.c
b/drivers/net/ethernet/freescale/fman/fman_dtsec.c
index 3c87820ca202..3462f2b78680 100644
--- a/drivers/net/ethernet/freescale/fman/fman_dtsec.c
+++ b/drivers/net/ethernet/freescale/fman/fman_dtsec.c
@@ -1431,7 +1431,7 @@ int dtsec_initialization(struct mac_device *mac_dev,
dtsec->dtsec_drv_param->tx_pad_crc = true;
phy_node = of_parse_phandle(mac_node, "tbi-handle", 0);
- if (!phy_node || of_device_is_available(phy_node)) {
+ if (!phy_node || !of_device_is_available(phy_node)) {
of_node_put(phy_node);
err = -EINVAL;
dev_err_probe(mac_dev->dev, err,
--
2.37.1
From 3898c62106025209b26527ad1516b339eebb62f1 Mon Sep 17 00:00:00 2001
From: Sean Anderson <sean...@gmail.com>
Date: Sun, 1 Jan 2023 13:00:21 -0500
Subject: [PATCH] net: dpaa: Fix dtsec check for PCS availability
We want to fail if the PCS is not available, not if it is available. Fix
this condition.
Fixes: 5d93cfcf7360 ("net: dpaa: Convert to phylink")
Reported-by: Christian Zigotzky <i...@xenosoft.de>
Signed-off-by: Sean Anderson <sean...@gmail.com>
---
drivers/net/ethernet/freescale/fman/fman_dtsec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/freescale/fman/fman_dtsec.c b/drivers/net/ethernet/freescale/fman/fman_dtsec.c
index 3c87820ca202..3462f2b78680 100644
--- a/drivers/net/ethernet/freescale/fman/fman_dtsec.c
+++ b/drivers/net/ethernet/freescale/fman/fman_dtsec.c
@@ -1431,7 +1431,7 @@ int dtsec_initialization(struct mac_device *mac_dev,
dtsec->dtsec_drv_param->tx_pad_crc = true;
phy_node = of_parse_phandle(mac_node, "tbi-handle", 0);
- if (!phy_node || of_device_is_available(phy_node)) {
+ if (!phy_node || !of_device_is_available(phy_node)) {
of_node_put(phy_node);
err = -EINVAL;
dev_err_probe(mac_dev->dev, err,
--
2.37.1