mbox series

[net-next,v3,00/17] net: dsa: microchip: add error handling and register access validation

Message ID 20220823080231.2466017-1-o.rempel@pengutronix.de (mailing list archive)
Headers show
Series net: dsa: microchip: add error handling and register access validation | expand

Message

Oleksij Rempel Aug. 23, 2022, 8:02 a.m. UTC
changes v3:
- fix build error in the middle of the patch stack.

changes v2:
- add regmap_ranges for KSZ9477
- drop output clock devicetree in driver validation patches. DTs need
  some more refactoring and can be done in a separate patch set.
- remove some unused variables.

This patch series adds error handling for the PHY read/write path and optional
register access validation.
After adding regmap_ranges for KSZ8563 some bugs was detected, so
critical bug fixes are sorted before ragmap_range patch.

Potentially this bug fixes can be ported to stable kernels, but need to be
reworked.

Oleksij Rempel (17):
  net: dsa: microchip: add separate struct ksz_chip_data for KSZ8563
    chip
  net: dsa: microchip: do per-port Gbit detection instead of per-chip
  net: dsa: microchip: don't announce extended register support on non
    Gbit chips
  net: dsa: microchip: allow to pass return values for PHY read/write
    accesses
  net: dsa: microchip: forward error value on all ksz_pread/ksz_pwrite
    functions
  net: dsa: microchip: ksz9477: add error handling to ksz9477_r/w_phy
  net: dsa: microchip: ksz8795: add error handling to ksz8_r/w_phy
  net: dsa: microchip: KSZ9893: do not write to not supported Output
    Clock Control Register
  net: dsa: microchip: add support for regmap_access_tables
  net: dsa: microchip: add regmap_range for KSZ8563 chip
  net: dsa: microchip: ksz9477: remove MII_CTRL1000 check from
    ksz9477_w_phy()
  net: dsa: microchip: add regmap_range for KSZ9477 chip
  net: dsa: microchip: ksz9477: use internal_phy instead of phy_port_cnt
  net: dsa: microchip: remove unused port phy variable
  net: dsa: microchip: ksz9477: remove unused "on" variable
  net: dsa: microchip: remove unused sgmii variable
  net: dsa: microchip: remove IS_9893 flag

 drivers/net/dsa/microchip/ksz8.h         |   4 +-
 drivers/net/dsa/microchip/ksz8795.c      | 111 ++++--
 drivers/net/dsa/microchip/ksz9477.c      |  86 ++---
 drivers/net/dsa/microchip/ksz9477.h      |   4 +-
 drivers/net/dsa/microchip/ksz_common.c   | 450 ++++++++++++++++++++++-
 drivers/net/dsa/microchip/ksz_common.h   |  90 +++--
 drivers/net/dsa/microchip/ksz_spi.c      |   5 +-
 drivers/net/dsa/microchip/lan937x.h      |   4 +-
 drivers/net/dsa/microchip/lan937x_main.c |   8 +-
 9 files changed, 646 insertions(+), 116 deletions(-)

Comments

Paolo Abeni Aug. 25, 2022, 9 a.m. UTC | #1
On Tue, 2022-08-23 at 10:02 +0200, Oleksij Rempel wrote:
> changes v3:
> - fix build error in the middle of the patch stack.

The series looks reasonable to me, let's see the comments from the DSA
crew;)

The next time please additionally add the change informations in the
individual patch, after the '---' separator: that will made reviewers
life more easier.

It's hard to track what changed exactly since v2 from the above line.

Thanks!

Paolo
Vladimir Oltean Aug. 25, 2022, 9:44 p.m. UTC | #2
On Thu, Aug 25, 2022 at 11:00:44AM +0200, Paolo Abeni wrote:
> On Tue, 2022-08-23 at 10:02 +0200, Oleksij Rempel wrote:
> > changes v3:
> > - fix build error in the middle of the patch stack.
> 
> The series looks reasonable to me, let's see the comments from the DSA
> crew;)

Patch set looks ok from my side, won't leave review tags for each of the
17 patches, just here

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Jakub Kicinski Aug. 25, 2022, 10:57 p.m. UTC | #3
On Fri, 26 Aug 2022 00:44:24 +0300 Vladimir Oltean wrote:
> On Thu, Aug 25, 2022 at 11:00:44AM +0200, Paolo Abeni wrote:
> > On Tue, 2022-08-23 at 10:02 +0200, Oleksij Rempel wrote:  
> > > changes v3:
> > > - fix build error in the middle of the patch stack.  
> > 
> > The series looks reasonable to me, let's see the comments from the DSA
> > crew;)  
> 
> Patch set looks ok from my side, won't leave review tags for each of the
> 17 patches, just here
> 
> Reviewed-by: Vladimir Oltean <olteanv@gmail.com>

Thanks a lot!

Oleksij there are quite a few checkpatch annoyances here, please fix up:

-------------------------------------------------------------------------------------------
Commit 0ef2f8617176 ("net: dsa: microchip: do per-port Gbit detection instead of per-chip")
-------------------------------------------------------------------------------------------
WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#12: 
ksz9477_switch_init() function. Which is using undocumented REG_GLOBAL_OPTIONS

total: 0 errors, 1 warnings, 0 checks, 144 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit 0ef2f8617176 ("net: dsa: microchip: do per-port Gbit detection instead of per-chip") has style problems, please review.
-------------------------------------------------------------------------------------------------------
Commit 06c98e1faaa7 ("net: dsa: microchip: don't announce extended register support on non Gbit chips")
-------------------------------------------------------------------------------------------------------
CHECK: Please don't use multiple blank lines
#29: FILE: drivers/net/dsa/microchip/ksz9477.c:267:
 
+

total: 0 errors, 0 warnings, 1 checks, 32 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit 06c98e1faaa7 ("net: dsa: microchip: don't announce extended register support on non Gbit chips") has style problems, please review.


------------------------------------------------------------------------------------------------------
Commit 872fff3049d3 ("net: dsa: microchip: forward error value on all ksz_pread/ksz_pwrite functions")
------------------------------------------------------------------------------------------------------
CHECK: Alignment should match open parenthesis
#28: FILE: drivers/net/dsa/microchip/ksz_common.h:397:
+static inline int ksz_pread8(struct ksz_device *dev, int port, int offset,
 			      u8 *data)

CHECK: Alignment should match open parenthesis
#36: FILE: drivers/net/dsa/microchip/ksz_common.h:403:
+static inline int ksz_pread16(struct ksz_device *dev, int port, int offset,
 			       u16 *data)

CHECK: Alignment should match open parenthesis
#44: FILE: drivers/net/dsa/microchip/ksz_common.h:409:
+static inline int ksz_pread32(struct ksz_device *dev, int port, int offset,
 			       u32 *data)

CHECK: Alignment should match open parenthesis
#52: FILE: drivers/net/dsa/microchip/ksz_common.h:415:
+static inline int ksz_pwrite8(struct ksz_device *dev, int port, int offset,
 			       u8 data)

CHECK: Alignment should match open parenthesis
#60: FILE: drivers/net/dsa/microchip/ksz_common.h:421:
+static inline int ksz_pwrite16(struct ksz_device *dev, int port, int offset,
 				u16 data)

CHECK: Alignment should match open parenthesis
#69: FILE: drivers/net/dsa/microchip/ksz_common.h:428:
+static inline int ksz_pwrite32(struct ksz_device *dev, int port, int offset,
 				u32 data)

total: 0 errors, 0 warnings, 6 checks, 58 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit 872fff3049d3 ("net: dsa: microchip: forward error value on all ksz_pread/ksz_pwrite functions") has style problems, please review.

-----------------------------------------------------------------------------------------------------------------
Commit a615f4ad0116 ("net: dsa: microchip: KSZ9893: do not write to not supported Output Clock Control Register")
-----------------------------------------------------------------------------------------------------------------
WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#8: 
KSZ9893 compatible chips do not have "Output Clock Control Register 0x0103".

total: 0 errors, 1 warnings, 0 checks, 15 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit a615f4ad0116 ("net: dsa: microchip: KSZ9893: do not write to not supported Output Clock Control Register") has style problems, please review.
---------------------------------------------------------------------------------
Commit d1abab8b5762 ("net: dsa: microchip: add support for regmap_access_tables")
---------------------------------------------------------------------------------
WARNING: unnecessary whitespace before a quoted newline
#43: FILE: drivers/net/dsa/microchip/ksz_common.h:338:
+		dev_err(dev->dev, "can't read 8bit reg: 0x%x %pe \n", reg,

WARNING: unnecessary whitespace before a quoted newline
#56: FILE: drivers/net/dsa/microchip/ksz_common.h:351:
+		dev_err(dev->dev, "can't read 16bit reg: 0x%x %pe \n", reg,

WARNING: unnecessary whitespace before a quoted newline
#69: FILE: drivers/net/dsa/microchip/ksz_common.h:364:
+		dev_err(dev->dev, "can't read 32bit reg: 0x%x %pe \n", reg,

WARNING: unnecessary whitespace before a quoted newline
#84: FILE: drivers/net/dsa/microchip/ksz_common.h:378:
+		dev_err(dev->dev, "can't read 64bit reg: 0x%x %pe \n", reg,

WARNING: unnecessary whitespace before a quoted newline
#99: FILE: drivers/net/dsa/microchip/ksz_common.h:392:
+		dev_err(dev->dev, "can't write 8bit reg: 0x%x %pe \n", reg,

WARNING: unnecessary whitespace before a quoted newline
#112: FILE: drivers/net/dsa/microchip/ksz_common.h:404:
+		dev_err(dev->dev, "can't write 16bit reg: 0x%x %pe \n", reg,

WARNING: unnecessary whitespace before a quoted newline
#125: FILE: drivers/net/dsa/microchip/ksz_common.h:416:
+		dev_err(dev->dev, "can't write 32bit reg: 0x%x %pe \n", reg,

total: 0 errors, 7 warnings, 0 checks, 123 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit d1abab8b5762 ("net: dsa: microchip: add support for regmap_access_tables") has style problems, please review.

----------------------------------------------------------------------------------------------------
Commit 39a148ccc56c ("net: dsa: microchip: ksz9477: remove MII_CTRL1000 check from ksz9477_w_phy()")
----------------------------------------------------------------------------------------------------
WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#11: 
With proper regmap_ranges provided for all chips we will be able to catch this

total: 0 errors, 1 warnings, 0 checks, 14 lines checked