mbox series

[net-next,v5,0/6] net: dsa: mv88e6xxx: Peridot/Topaz SERDES changes

Message ID 20190826213155.14685-1-marek.behun@nic.cz
Headers show
Series net: dsa: mv88e6xxx: Peridot/Topaz SERDES changes | expand

Message

Marek Behún Aug. 26, 2019, 9:31 p.m. UTC
Hello,

this is the fifth version of changes for the Topaz/Peridot family of
switches. The patches apply on net-next.
Changes since v4:
 - added Reviewed-by and Tested-by tags on first 2 patches, the others
   are changed are affected by changes in patch 3/6, so I did not add
   the tags, except for 5/6, which is just macro renaming
 - patch 3 was changed: the serdes_get_lane returns 0 on success (lane
   was discovered), -ENODEV if not lane is present on the port, and
   other error if other error occured. Lane is put into a pointer of
   type u8
 - patches 4 and 6 were affected by this (error detecting from
   serdes_get_lane)
 - Andrew's complaint about the two additional parameters
   (allow_over_2500 and make_cmode_writable) was addressed, by Vivien's
   advice: I put a new method into chip operations structure, named
   port_set_cmode_writable. This is called from mv88e6xxx_port_setup_mac
   just before port_set_cmode. The method is implemented for Topaz.
   The check if cmodes over 2500 should be allowed on given port is now
   done in the specific port_set_cmode() that requires it, thus the
   allow_over_2500 argument is not needed

Again, tested on Turris Mox with Peridot, Topaz, and Peridot + Topaz.

Marek

Marek Behún (6):
  net: dsa: mv88e6xxx: support 2500base-x in SGMII IRQ handler
  net: dsa: mv88e6xxx: update code operating on hidden registers
  net: dsa: mv88e6xxx: create serdes_get_lane chip operation
  net: dsa: mv88e6xxx: simplify SERDES code for Topaz and Peridot
  net: dsa: mv88e6xxx: rename port cmode macro
  net: dsa: mv88e6xxx: fully support SERDES on Topaz family

 drivers/net/dsa/mv88e6xxx/Makefile      |   1 +
 drivers/net/dsa/mv88e6xxx/chip.c        |  96 +++----
 drivers/net/dsa/mv88e6xxx/chip.h        |   4 +
 drivers/net/dsa/mv88e6xxx/port.c        |  89 +++++--
 drivers/net/dsa/mv88e6xxx/port.h        |  31 ++-
 drivers/net/dsa/mv88e6xxx/port_hidden.c |  70 +++++
 drivers/net/dsa/mv88e6xxx/serdes.c      | 325 ++++++++++++------------
 drivers/net/dsa/mv88e6xxx/serdes.h      |  27 +-
 8 files changed, 379 insertions(+), 264 deletions(-)
 create mode 100644 drivers/net/dsa/mv88e6xxx/port_hidden.c

Comments

David Miller Aug. 28, 2019, 4:42 a.m. UTC | #1
From: Marek Behún <marek.behun@nic.cz>
Date: Mon, 26 Aug 2019 23:31:49 +0200

> this is the fifth version of changes for the Topaz/Peridot family of
> switches. The patches apply on net-next.
> Changes since v4:
>  - added Reviewed-by and Tested-by tags on first 2 patches, the others
>    are changed are affected by changes in patch 3/6, so I did not add
>    the tags, except for 5/6, which is just macro renaming
>  - patch 3 was changed: the serdes_get_lane returns 0 on success (lane
>    was discovered), -ENODEV if not lane is present on the port, and
>    other error if other error occured. Lane is put into a pointer of
>    type u8
>  - patches 4 and 6 were affected by this (error detecting from
>    serdes_get_lane)
>  - Andrew's complaint about the two additional parameters
>    (allow_over_2500 and make_cmode_writable) was addressed, by Vivien's
>    advice: I put a new method into chip operations structure, named
>    port_set_cmode_writable. This is called from mv88e6xxx_port_setup_mac
>    just before port_set_cmode. The method is implemented for Topaz.
>    The check if cmodes over 2500 should be allowed on given port is now
>    done in the specific port_set_cmode() that requires it, thus the
>    allow_over_2500 argument is not needed
> 
> Again, tested on Turris Mox with Peridot, Topaz, and Peridot + Topaz.

Series applied, thank you.