2020-07-09 18:44:26

by Chris Healy

[permalink] [raw]
Subject: [PATCH net-next] net: dsa: mv88e6xxx: Add serdes read/write dynamic debug

Add deb_dbg print statements in both serdes_read and serdes_write
functions.

Signed-off-by: Chris Healy <[email protected]>
---
drivers/net/dsa/mv88e6xxx/serdes.c | 27 +++++++++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dsa/mv88e6xxx/serdes.c b/drivers/net/dsa/mv88e6xxx/serdes.c
index 9c07b4f3d345..756b34343547 100644
--- a/drivers/net/dsa/mv88e6xxx/serdes.c
+++ b/drivers/net/dsa/mv88e6xxx/serdes.c
@@ -20,14 +20,25 @@
static int mv88e6352_serdes_read(struct mv88e6xxx_chip *chip, int reg,
u16 *val)
{
- return mv88e6xxx_phy_page_read(chip, MV88E6352_ADDR_SERDES,
+ int err;
+
+ err = mv88e6xxx_phy_page_read(chip, MV88E6352_ADDR_SERDES,
MV88E6352_SERDES_PAGE_FIBER,
reg, val);
+
+ if (err)
+ return err;
+
+ dev_dbg(chip->dev, "serdes <- reg: 0x%.2x val: 0x%.2x\n", reg, *val);
+
+ return 0;
}

static int mv88e6352_serdes_write(struct mv88e6xxx_chip *chip, int reg,
u16 val)
{
+ dev_dbg(chip->dev, "serdes -> reg: 0x%.2x val: 0x%.2x\n", reg, val);
+
return mv88e6xxx_phy_page_write(chip, MV88E6352_ADDR_SERDES,
MV88E6352_SERDES_PAGE_FIBER,
reg, val);
@@ -37,8 +48,17 @@ static int mv88e6390_serdes_read(struct mv88e6xxx_chip *chip,
int lane, int device, int reg, u16 *val)
{
int reg_c45 = MII_ADDR_C45 | device << 16 | reg;
+ int err;
+
+ err = mv88e6xxx_phy_read(chip, lane, reg_c45, val);
+ if (err)
+ return err;
+
+ dev_dbg(chip->dev, "serdes <- lane: %.2d device: 0x%.2x reg_c45: 0x%.4x val: 0x%.4x\n",
+ lane, device, reg_c45, *val);
+
+ return 0;

- return mv88e6xxx_phy_read(chip, lane, reg_c45, val);
}

static int mv88e6390_serdes_write(struct mv88e6xxx_chip *chip,
@@ -46,6 +66,9 @@ static int mv88e6390_serdes_write(struct mv88e6xxx_chip *chip,
{
int reg_c45 = MII_ADDR_C45 | device << 16 | reg;

+ dev_dbg(chip->dev, "serdes -> lane: %.2d device: 0x%.2x reg_c45: 0x%.4x val: 0x%.4x\n",
+ lane, device, reg_c45, val);
+
return mv88e6xxx_phy_write(chip, lane, reg_c45, val);
}

--
2.21.3


2020-07-09 19:47:16

by David Miller

[permalink] [raw]
Subject: Re: [PATCH net-next] net: dsa: mv88e6xxx: Add serdes read/write dynamic debug

From: Chris Healy <[email protected]>
Date: Thu, 9 Jul 2020 11:43:18 -0700

> Add deb_dbg print statements in both serdes_read and serdes_write
> functions.
>
> Signed-off-by: Chris Healy <[email protected]>

Please just use tracepoints or similar for this.

2020-07-09 20:11:08

by Andrew Lunn

[permalink] [raw]
Subject: Re: [PATCH net-next] net: dsa: mv88e6xxx: Add serdes read/write dynamic debug

On Thu, Jul 09, 2020 at 11:43:18AM -0700, Chris Healy wrote:
> Add deb_dbg print statements in both serdes_read and serdes_write
> functions.

Hi Chris

Why is SERDES access special? Why not all accesses? global1, global2,
global3, port, etc.

As David said, tracepoints are better for this. Take a look at
include/trace/events/mdio.h and drivers/net/phy/mdio_bus.c as an
example which traces all mdio accesses.

Andrew