net: dsa: mv88e6xxx: remove redundant ptp/timestamping code
Subsystems (4)
v2 cover net: dsa: mv88e6xxx: remove redundant ptp/timestamping code
Hi,
mv88e6xxx as accumulated some unused data structures and code over the years. This series removes it and simplifies the code. See the patches for each change.
v2: fix evap_config typo, remove MV88E6XXX_TAI_EVENT_STATUS_CAP_TRIG definitio
drivers/net/dsa/mv88e6xxx/chip.c | 2 +- drivers/net/dsa/mv88e6xxx/chip.h | 2 -- drivers/net/dsa/mv88e6xxx/ptp.c | 55 ++++++---------------------------------- drivers/net/dsa/mv88e6xxx/ptp.h | 3 -- 4 files changed, 9 insertions(+), 53 deletions(-)
Signature · 2 lines
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
PATCH v2 1/4 net: dsa: mv88e6xxx: remove mv88e6250_ptp_ops
mv88e6250_ptp_ops and mv88e6352_ptp_ops are identical since commit 7e3c18097a70 ("net: dsa: mv88e6xxx: read cycle counter period from hardware"). Remove the unnecessary duplication.
--- drivers/net/dsa/mv88e6xxx/chip.c | 2 +- drivers/net/dsa/mv88e6xxx/ptp.c | 23 ----------------------- drivers/net/dsa/mv88e6xxx/ptp.h | 2 -- 3 files changed, 1 insertion(+), 26 deletions(-)
drivers/net/dsa/mv88e6xxx/chip.c +1 -1
@@ -5088,7 +5088,7 @@ static const struct mv88e6xxx_ops mv88e6250_ops = { .vtu_getnext = mv88e6185_g1_vtu_getnext, .vtu_loadpurge = mv88e6185_g1_vtu_loadpurge, .avb_ops = &mv88e6352_avb_ops, - .ptp_ops = &mv88e6250_ptp_ops, + .ptp_ops = &mv88e6352_ptp_ops, .phylink_get_caps = mv88e6250_phylink_get_caps, .set_max_frame_size = mv88e6185_g1_set_max_frame_size, };
drivers/net/dsa/mv88e6xxx/ptp.c +0 -23
@@ -413,29 +413,6 @@ const struct mv88e6xxx_ptp_ops mv88e6165_ptp_ops = { (1 << HWTSTAMP_FILTER_PTP_V2_DELAY_REQ), }; -const struct mv88e6xxx_ptp_ops mv88e6250_ptp_ops = { - .clock_read = mv88e6352_ptp_clock_read, - .ptp_enable = mv88e6352_ptp_enable, - .ptp_verify = mv88e6352_ptp_verify, - .event_work = mv88e6352_tai_event_work, - .port_enable = mv88e6352_hwtstamp_port_enable, - .port_disable = mv88e6352_hwtstamp_port_disable, - .n_ext_ts =1 , - .arr0_sts_reg =MV88E6XXX_PORT_PTP_ARR0_STS , - .arr1_sts_reg =MV88E6XXX_PORT_PTP_ARR1_STS , - .dep_sts_reg =MV88E6XXX_PORT_PTP_DEP_STS , - .rx_filters = (1 <<HWTSTAMP_FILTER_NONE ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_L4_EVENT ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_L4_SYNC ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_L2_EVENT ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_L2_SYNC ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_EVENT ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_SYNC ) | - (1 <<HWTSTAMP_FILTER_PTP_V2_DELAY_REQ ), -}; -const struct mv88e6xxx_ptp_ops mv88e6352_ptp_ops = { .clock_read = mv88e6352_ptp_clock_read, .ptp_enable = mv88e6352_ptp_enable,
drivers/net/dsa/mv88e6xxx/ptp.h +0 -2
@@ -149,7 +149,6 @@ void mv88e6xxx_ptp_free(struct mv88e6xxx_chip *chip); ptp_clock_info) extern const struct mv88e6xxx_ptp_ops mv88e6165_ptp_ops; -extern const struct mv88e6xxx_ptp_ops mv88e6250_ptp_ops;extern const struct mv88e6xxx_ptp_ops mv88e6352_ptp_ops;extern const struct mv88e6xxx_ptp_ops mv88e6390_ptp_ops;
@@ -170,7 +169,6 @@ static inline void mv88e6xxx_ptp_free(struct mv88e6xxx_chip *chip) }static const struct mv88e6xxx_ptp_ops mv88e6165_ptp_ops = {}; -static const struct mv88e6xxx_ptp_ops mv88e6250_ptp_ops = {};static const struct mv88e6xxx_ptp_ops mv88e6352_ptp_ops = {};static const struct mv88e6xxx_ptp_ops mv88e6390_ptp_ops = {};
Signature · 1 line
2.47.3
PATCH v2 2/4 net: dsa: mv88e6xxx: remove chip->trig_config
In reply to Russell King (Oracle)chip->trig_config is never written, and thus takes the value zero. Remove this struct member and its single reader.
--- drivers/net/dsa/mv88e6xxx/chip.h | 1 - drivers/net/dsa/mv88e6xxx/ptp.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-)
drivers/net/dsa/mv88e6xxx/chip.h +0 -1
@@ -424,7 +424,6 @@ struct mv88e6xxx_chip {struct ptp_clock_info ptp_clock_info;struct delayed_work tai_event_work;struct ptp_pin_desc pin_config[MV88E6XXX_MAX_GPIO ]; -u16 trig_config;u16 evcap_config;u16 enable_count;
drivers/net/dsa/mv88e6xxx/ptp.c +1 -1
@@ -184,7 +184,7 @@ static int mv88e6352_config_eventcap(struct mv88e6xxx_chip *chip, int event,if (!rising) chip->evcap_config |=MV88E6XXX_TAI_CFG_EVREQ_FALLING ; - global_config = (chip->evcap_config | chip->trig_config); + global_config = chip->evcap_config; err =mv88e6xxx_tai_write (chip,MV88E6XXX_TAI_CFG , global_config);if (err)return err;
Signature · 1 line
2.47.3
PATCH v2 3/4 net: dsa: mv88e6xxx: remove chip->evcap_config
In reply to Russell King (Oracle)evcap_config is only read and written in mv88e6352_config_eventcap(), so it makes little sense to store it in the global chip struct. Make it a local variable instead.
--
v2: fix evap_config typo
--- drivers/net/dsa/mv88e6xxx/chip.h | 1 - drivers/net/dsa/mv88e6xxx/ptp.c | 11 +++++------ 2 files changed, 5 insertions(+), 7 deletions(-)
drivers/net/dsa/mv88e6xxx/chip.h +0 -1
@@ -424,7 +424,6 @@ struct mv88e6xxx_chip {struct ptp_clock_info ptp_clock_info;struct delayed_work tai_event_work;struct ptp_pin_desc pin_config[MV88E6XXX_MAX_GPIO ]; -u16 evcap_config;u16 enable_count;/* Current ingress and egress monitor ports */
drivers/net/dsa/mv88e6xxx/ptp.c +5 -6
@@ -175,17 +175,16 @@ static u64 mv88e6165_ptp_clock_read(struct cyclecounter *cc)static int mv88e6352_config_eventcap (struct mv88e6xxx_chip *chip,int event,int rising) { -u16 global_config; +u16 evcap_config;u16 cap_config;int err; - chip->evcap_config =MV88E6XXX_TAI_CFG_CAP_OVERWRITE | -MV88E6XXX_TAI_CFG_CAP_CTR_START ; + evcap_config =MV88E6XXX_TAI_CFG_CAP_OVERWRITE | +MV88E6XXX_TAI_CFG_CAP_CTR_START ;if (!rising) - chip->evcap_config |=MV88E6XXX_TAI_CFG_EVREQ_FALLING ; + evcap_config |=MV88E6XXX_TAI_CFG_EVREQ_FALLING ; - global_config = chip->evcap_config; - err =mv88e6xxx_tai_write (chip,MV88E6XXX_TAI_CFG , global_config); + err =mv88e6xxx_tai_write (chip,MV88E6XXX_TAI_CFG , evcap_config);if (err)return err;
Signature · 1 line
2.47.3
PATCH v2 4/4 net: dsa: mv88e6xxx: remove unused support for PPS event capture
In reply to Russell King (Oracle)mv88e6352_config_eventcap() is documented as handling both EXTTS and PPS capture modes, but nothing ever calls it for PPS capture. Remove the unused PPS capture mode support, and the now unused MV88E6XXX_TAI_EVENT_STATUS_CAP_TRIG definition.
--
v2: remove MV88E6XXX_TAI_EVENT_STATUS_CAP_TRIG definition
--- drivers/net/dsa/mv88e6xxx/ptp.c | 21 +++------------------ drivers/net/dsa/mv88e6xxx/ptp.h | 1 - 2 files changed, 3 insertions(+), 19 deletions(-)
drivers/net/dsa/mv88e6xxx/ptp.c +3 -18
@@ -167,16 +167,13 @@ static u64 mv88e6165_ptp_clock_read(struct cyclecounter *cc) }/* mv88e6352_config_eventcap - configure TAI event capture -* @event: PTP_CLOCK_PPS (internal) or PTP_CLOCK_EXTTS (external) * @rising: zero for falling-edge trigger, else rising-edge trigger * * This will also reset the capture sequence counter. */ -static int mv88e6352_config_eventcap (struct mv88e6xxx_chip *chip,int event, -int rising) +static int mv88e6352_config_eventcap (struct mv88e6xxx_chip *chip,int rising) {u16 evcap_config; -u16 cap_config;int err; evcap_config = MV88E6XXX_TAI_CFG_CAP_OVERWRITE |
@@ -188,20 +185,8 @@ static int mv88e6352_config_eventcap(struct mv88e6xxx_chip *chip, int event,if (err)return err; -if (event ==PTP_CLOCK_PPS ) { - cap_config =MV88E6XXX_TAI_EVENT_STATUS_CAP_TRIG ; - }else if (event ==PTP_CLOCK_EXTTS ) { -/* if STATUS_CAP_TRIG is unset we capture PTP_EVREQ events */ - cap_config =0 ; - }else { -return -EINVAL ; - } -/* Write the capture config; this also clears the capture counter */ - err =mv88e6xxx_tai_write (chip,MV88E6XXX_TAI_EVENT_STATUS , - cap_config); - -return err; +return mv88e6xxx_tai_write (chip,MV88E6XXX_TAI_EVENT_STATUS ,0 ); }static void mv88e6352_tai_event_work (struct work_struct *ugly)
@@ -354,7 +339,7 @@ static int mv88e6352_ptp_enable_extts(struct mv88e6xxx_chip *chip,schedule_delayed_work (&chip->tai_event_work,TAI_EVENT_WORK_INTERVAL ); - err =mv88e6352_config_eventcap (chip,PTP_CLOCK_EXTTS , rising); + err =mv88e6352_config_eventcap (chip, rising); }else { func =MV88E6352_G2_SCRATCH_GPIO_PCTL_GPIO ;
drivers/net/dsa/mv88e6xxx/ptp.h +0 -1
@@ -54,7 +54,6 @@/* Offset 0x09: Event Status */ #define MV88E6XXX_TAI_EVENT_STATUS 0x09 -#define MV88E6XXX_TAI_EVENT_STATUS_CAP_TRIG 0x4000#define MV88E6XXX_TAI_EVENT_STATUS_ERROR 0x0200#define MV88E6XXX_TAI_EVENT_STATUS_VALID 0x0100#define MV88E6XXX_TAI_EVENT_STATUS_CTR_MASK 0x00ff
Signature · 1 line
2.47.3
This series was applied to netdev/net-next.git (main) by Jakub Kicinski <[email protected]>:
Hello:
This series was applied to netdev/net-next.git (main) by Jakub Kicinski <[email protected]>:
Quoted 10 lines · On Thu, 11 Sep 2025 11:45:55 +0100 you wrote:
Hi,
mv88e6xxx as accumulated some unused data structures and code over the years. This series removes it and simplifies the code. See the patches for each change.
v2: fix
evap_configtypo, removeMV88E6XXX_TAI_EVENT_STATUS_CAP_TRIGdefinitio[...]
Here is the summary with links:
- [net-next,v2,1/4] net: dsa: mv88e6xxx: remove mv88e6250_ptp_ops
https://git.kernel.org/netdev/net-next/c/afc0e12a235c - [net-next,v2,2/4] net: dsa: mv88e6xxx: remove chip->trig_config https://git.kernel.org/netdev/net-next/c/578c1eb9c541 - [net-next,v2,3/4] net: dsa: mv88e6xxx: remove chip->evcap_config https://git.kernel.org/netdev/net-next/c/ae4c94981683 - [net-next,v2,4/4] net: dsa: mv88e6xxx: remove unused support for PPS event capture https://git.kernel.org/netdev/net-next/c/fbd12de4c5b1
You are awesome, thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html