Re: [PATCH 02/14] drivers: net: dsa: qca8k: tweak internal delay to oem spec
From: Ansuel Smith <ansuelsmth@gmail.com>
Date: 2021-04-23 01:57:42
Also in:
linux-devicetree, lkml
On Thu, Apr 22, 2021 at 06:53:45PM -0700, Florian Fainelli wrote:
On 4/22/2021 6:47 PM, Ansuel Smith wrote:quoted
The original code had the internal dalay set to 1 for tx and 2 for rx. Apply the oem internal dalay to fix some switch communication error. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> --- drivers/net/dsa/qca8k.c | 6 ++++-- drivers/net/dsa/qca8k.h | 9 ++++----- 2 files changed, 8 insertions(+), 7 deletions(-)diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c index a6d35b825c0e..b8bfc7acf6f4 100644 --- a/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c@@ -849,8 +849,10 @@ qca8k_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode, */ qca8k_write(priv, reg, QCA8K_PORT_PAD_RGMII_EN | - QCA8K_PORT_PAD_RGMII_TX_DELAY(QCA8K_MAX_DELAY) | - QCA8K_PORT_PAD_RGMII_RX_DELAY(QCA8K_MAX_DELAY)); + QCA8K_PORT_PAD_RGMII_TX_DELAY(1) | + QCA8K_PORT_PAD_RGMII_RX_DELAY(2) | + QCA8K_PORT_PAD_RGMII_TX_DELAY_EN | + QCA8K_PORT_PAD_RGMII_RX_DELAY_EN);There are standard properties in order to configure a specific RX and TX delay: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/net/ethernet-controller.yaml#n125 can you use that mechanism and parse that property, or if nothing else, allow an user to override delays via device tree using these standard properties?
Since this is mac config, what would be the best way to parse these data? Parse them in the qca8k_setup and put them in the qca8k_priv?
-- Florian