* [Intel-wired-lan] [PATCH iwl-next v2 0/3] E825C PTP cleanup @ 2025-02-10 14:11 ` Grzegorz Nitka 0 siblings, 0 replies; 18+ messages in thread From: Grzegorz Nitka @ 2025-02-10 14:11 UTC (permalink / raw) To: intel-wired-lan; +Cc: netdev, anthony.l.nguyen, horms, przemyslaw.kitszel This patch series simplifies PTP code related to E825C products by simplifying PHY register info definition. Cleanup the code by removing unused register definitions. v1->v2: * remove sync delay adding from the series (patch 1/3). To be submitted as separate patch. * fix kdoc (patch 2/3) in ice_phy_reg_info_eth56g struct Karol Kolacinski (3): ice: rename ice_ptp_init_phc_eth56g function ice: Refactor E825C PHY registers info struct ice: E825C PHY register cleanup .../net/ethernet/intel/ice/ice_ptp_consts.h | 75 ++++--------------- drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 19 +++-- drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 35 ++++----- 3 files changed, 40 insertions(+), 89 deletions(-) base-commit: 820e145d30facd90981914efefddb82c9786c963 -- 2.39.3 ^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH iwl-next v2 0/3] E825C PTP cleanup @ 2025-02-10 14:11 ` Grzegorz Nitka 0 siblings, 0 replies; 18+ messages in thread From: Grzegorz Nitka @ 2025-02-10 14:11 UTC (permalink / raw) To: intel-wired-lan Cc: netdev, anthony.l.nguyen, przemyslaw.kitszel, horms, Grzegorz Nitka This patch series simplifies PTP code related to E825C products by simplifying PHY register info definition. Cleanup the code by removing unused register definitions. v1->v2: * remove sync delay adding from the series (patch 1/3). To be submitted as separate patch. * fix kdoc (patch 2/3) in ice_phy_reg_info_eth56g struct Karol Kolacinski (3): ice: rename ice_ptp_init_phc_eth56g function ice: Refactor E825C PHY registers info struct ice: E825C PHY register cleanup .../net/ethernet/intel/ice/ice_ptp_consts.h | 75 ++++--------------- drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 19 +++-- drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 35 ++++----- 3 files changed, 40 insertions(+), 89 deletions(-) base-commit: 820e145d30facd90981914efefddb82c9786c963 -- 2.39.3 ^ permalink raw reply [flat|nested] 18+ messages in thread
* [Intel-wired-lan] [PATCH iwl-next v2 1/3] ice: rename ice_ptp_init_phc_eth56g function 2025-02-10 14:11 ` Grzegorz Nitka @ 2025-02-10 14:11 ` Grzegorz Nitka -1 siblings, 0 replies; 18+ messages in thread From: Grzegorz Nitka @ 2025-02-10 14:11 UTC (permalink / raw) To: intel-wired-lan Cc: netdev, Karol Kolacinski, anthony.l.nguyen, horms, przemyslaw.kitszel From: Karol Kolacinski <karol.kolacinski@intel.com> Refactor the code by changing ice_ptp_init_phc_eth56g function name to ice_ptp_init_phc_e825, to be consistent with the naming pattern for other devices. Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> --- drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/intel/ice/ice_ptp_hw.c b/drivers/net/ethernet/intel/ice/ice_ptp_hw.c index 3e824f7b30c0..fbaf2819e40e 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp_hw.c +++ b/drivers/net/ethernet/intel/ice/ice_ptp_hw.c @@ -2650,18 +2650,17 @@ static void ice_sb_access_ena_eth56g(struct ice_hw *hw, bool enable) } /** - * ice_ptp_init_phc_eth56g - Perform E82X specific PHC initialization + * ice_ptp_init_phc_e825 - Perform E825 specific PHC initialization * @hw: pointer to HW struct * - * Perform PHC initialization steps specific to E82X devices. + * Perform E825-specific PTP hardware clock initialization steps. * - * Return: - * * %0 - success - * * %other - failed to initialize CGU + * Return: 0 on success, negative error code otherwise. */ -static int ice_ptp_init_phc_eth56g(struct ice_hw *hw) +static int ice_ptp_init_phc_e825(struct ice_hw *hw) { ice_sb_access_ena_eth56g(hw, true); + /* Initialize the Clock Generation Unit */ return ice_init_cgu_e82x(hw); } @@ -6123,7 +6122,7 @@ int ice_ptp_init_phc(struct ice_hw *hw) case ICE_MAC_GENERIC: return ice_ptp_init_phc_e82x(hw); case ICE_MAC_GENERIC_3K_E825: - return ice_ptp_init_phc_eth56g(hw); + return ice_ptp_init_phc_e825(hw); default: return -EOPNOTSUPP; } -- 2.39.3 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH iwl-next v2 1/3] ice: rename ice_ptp_init_phc_eth56g function @ 2025-02-10 14:11 ` Grzegorz Nitka 0 siblings, 0 replies; 18+ messages in thread From: Grzegorz Nitka @ 2025-02-10 14:11 UTC (permalink / raw) To: intel-wired-lan Cc: netdev, anthony.l.nguyen, przemyslaw.kitszel, horms, Karol Kolacinski, Grzegorz Nitka From: Karol Kolacinski <karol.kolacinski@intel.com> Refactor the code by changing ice_ptp_init_phc_eth56g function name to ice_ptp_init_phc_e825, to be consistent with the naming pattern for other devices. Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> --- drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/intel/ice/ice_ptp_hw.c b/drivers/net/ethernet/intel/ice/ice_ptp_hw.c index 3e824f7b30c0..fbaf2819e40e 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp_hw.c +++ b/drivers/net/ethernet/intel/ice/ice_ptp_hw.c @@ -2650,18 +2650,17 @@ static void ice_sb_access_ena_eth56g(struct ice_hw *hw, bool enable) } /** - * ice_ptp_init_phc_eth56g - Perform E82X specific PHC initialization + * ice_ptp_init_phc_e825 - Perform E825 specific PHC initialization * @hw: pointer to HW struct * - * Perform PHC initialization steps specific to E82X devices. + * Perform E825-specific PTP hardware clock initialization steps. * - * Return: - * * %0 - success - * * %other - failed to initialize CGU + * Return: 0 on success, negative error code otherwise. */ -static int ice_ptp_init_phc_eth56g(struct ice_hw *hw) +static int ice_ptp_init_phc_e825(struct ice_hw *hw) { ice_sb_access_ena_eth56g(hw, true); + /* Initialize the Clock Generation Unit */ return ice_init_cgu_e82x(hw); } @@ -6123,7 +6122,7 @@ int ice_ptp_init_phc(struct ice_hw *hw) case ICE_MAC_GENERIC: return ice_ptp_init_phc_e82x(hw); case ICE_MAC_GENERIC_3K_E825: - return ice_ptp_init_phc_eth56g(hw); + return ice_ptp_init_phc_e825(hw); default: return -EOPNOTSUPP; } -- 2.39.3 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [Intel-wired-lan] [PATCH iwl-next v2 1/3] ice: rename ice_ptp_init_phc_eth56g function 2025-02-10 14:11 ` Grzegorz Nitka @ 2025-02-12 16:45 ` Simon Horman -1 siblings, 0 replies; 18+ messages in thread From: Simon Horman @ 2025-02-12 16:45 UTC (permalink / raw) To: Grzegorz Nitka Cc: intel-wired-lan, netdev, anthony.l.nguyen, przemyslaw.kitszel, Karol Kolacinski On Mon, Feb 10, 2025 at 03:11:10PM +0100, Grzegorz Nitka wrote: > From: Karol Kolacinski <karol.kolacinski@intel.com> > > Refactor the code by changing ice_ptp_init_phc_eth56g function > name to ice_ptp_init_phc_e825, to be consistent with the naming pattern > for other devices. > > Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> > Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> Reviewed-by: Simon Horman <horms@kernel.org> ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH iwl-next v2 1/3] ice: rename ice_ptp_init_phc_eth56g function @ 2025-02-12 16:45 ` Simon Horman 0 siblings, 0 replies; 18+ messages in thread From: Simon Horman @ 2025-02-12 16:45 UTC (permalink / raw) To: Grzegorz Nitka Cc: intel-wired-lan, netdev, anthony.l.nguyen, przemyslaw.kitszel, Karol Kolacinski On Mon, Feb 10, 2025 at 03:11:10PM +0100, Grzegorz Nitka wrote: > From: Karol Kolacinski <karol.kolacinski@intel.com> > > Refactor the code by changing ice_ptp_init_phc_eth56g function > name to ice_ptp_init_phc_e825, to be consistent with the naming pattern > for other devices. > > Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> > Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> Reviewed-by: Simon Horman <horms@kernel.org> ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Intel-wired-lan] [PATCH iwl-next v2 1/3] ice: rename ice_ptp_init_phc_eth56g function 2025-02-10 14:11 ` Grzegorz Nitka @ 2025-02-26 6:08 ` Rinitha, SX -1 siblings, 0 replies; 18+ messages in thread From: Rinitha, SX @ 2025-02-26 6:08 UTC (permalink / raw) To: Nitka, Grzegorz, intel-wired-lan@lists.osuosl.org Cc: netdev@vger.kernel.org, Kolacinski, Karol, Nguyen, Anthony L, horms@kernel.org, Kitszel, Przemyslaw > -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Grzegorz Nitka > Sent: 10 February 2025 19:41 > To: intel-wired-lan@lists.osuosl.org > Cc: netdev@vger.kernel.org; Kolacinski, Karol <karol.kolacinski@intel.com>; Nguyen, Anthony L <anthony.l.nguyen@intel.com>; horms@kernel.org; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com> > Subject: [Intel-wired-lan] [PATCH iwl-next v2 1/3] ice: rename ice_ptp_init_phc_eth56g function > > From: Karol Kolacinski <karol.kolacinski@intel.com> > > Refactor the code by changing ice_ptp_init_phc_eth56g function name to ice_ptp_init_phc_e825, to be consistent with the naming pattern for other devices. > > Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> > Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> > --- > drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel) ^ permalink raw reply [flat|nested] 18+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next v2 1/3] ice: rename ice_ptp_init_phc_eth56g function @ 2025-02-26 6:08 ` Rinitha, SX 0 siblings, 0 replies; 18+ messages in thread From: Rinitha, SX @ 2025-02-26 6:08 UTC (permalink / raw) To: Nitka, Grzegorz, intel-wired-lan@lists.osuosl.org Cc: netdev@vger.kernel.org, Kolacinski, Karol, Nguyen, Anthony L, horms@kernel.org, Kitszel, Przemyslaw > -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Grzegorz Nitka > Sent: 10 February 2025 19:41 > To: intel-wired-lan@lists.osuosl.org > Cc: netdev@vger.kernel.org; Kolacinski, Karol <karol.kolacinski@intel.com>; Nguyen, Anthony L <anthony.l.nguyen@intel.com>; horms@kernel.org; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com> > Subject: [Intel-wired-lan] [PATCH iwl-next v2 1/3] ice: rename ice_ptp_init_phc_eth56g function > > From: Karol Kolacinski <karol.kolacinski@intel.com> > > Refactor the code by changing ice_ptp_init_phc_eth56g function name to ice_ptp_init_phc_e825, to be consistent with the naming pattern for other devices. > > Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> > Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> > --- > drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel) ^ permalink raw reply [flat|nested] 18+ messages in thread
* [Intel-wired-lan] [PATCH iwl-next v2 2/3] ice: Refactor E825C PHY registers info struct 2025-02-10 14:11 ` Grzegorz Nitka @ 2025-02-10 14:11 ` Grzegorz Nitka -1 siblings, 0 replies; 18+ messages in thread From: Grzegorz Nitka @ 2025-02-10 14:11 UTC (permalink / raw) To: intel-wired-lan Cc: netdev, Karol Kolacinski, anthony.l.nguyen, horms, przemyslaw.kitszel From: Karol Kolacinski <karol.kolacinski@intel.com> Simplify ice_phy_reg_info_eth56g struct definition to include base address for the very first quad. Use base address info and 'step' value to determine address for specific PHY quad. Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> --- .../net/ethernet/intel/ice/ice_ptp_consts.h | 75 ++++--------------- drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 6 +- drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 4 +- 3 files changed, 20 insertions(+), 65 deletions(-) diff --git a/drivers/net/ethernet/intel/ice/ice_ptp_consts.h b/drivers/net/ethernet/intel/ice/ice_ptp_consts.h index ac46d1183300..003cdfada3ca 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp_consts.h +++ b/drivers/net/ethernet/intel/ice/ice_ptp_consts.h @@ -10,70 +10,25 @@ /* Constants defined for the PTP 1588 clock hardware. */ const struct ice_phy_reg_info_eth56g eth56g_phy_res[NUM_ETH56G_PHY_RES] = { - /* ETH56G_PHY_REG_PTP */ - { - /* base_addr */ - { - 0x092000, - 0x126000, - 0x1BA000, - 0x24E000, - 0x2E2000, - }, - /* step */ - 0x98, + [ETH56G_PHY_REG_PTP] = { + .base_addr = 0x092000, + .step = 0x98, }, - /* ETH56G_PHY_MEM_PTP */ - { - /* base_addr */ - { - 0x093000, - 0x127000, - 0x1BB000, - 0x24F000, - 0x2E3000, - }, - /* step */ - 0x200, + [ETH56G_PHY_MEM_PTP] = { + .base_addr = 0x093000, + .step = 0x200, }, - /* ETH56G_PHY_REG_XPCS */ - { - /* base_addr */ - { - 0x000000, - 0x009400, - 0x128000, - 0x1BC000, - 0x250000, - }, - /* step */ - 0x21000, + [ETH56G_PHY_REG_XPCS] = { + .base_addr = 0x000000, + .step = 0x21000, }, - /* ETH56G_PHY_REG_MAC */ - { - /* base_addr */ - { - 0x085000, - 0x119000, - 0x1AD000, - 0x241000, - 0x2D5000, - }, - /* step */ - 0x1000, + [ETH56G_PHY_REG_MAC] = { + .base_addr = 0x085000, + .step = 0x1000, }, - /* ETH56G_PHY_REG_GPCS */ - { - /* base_addr */ - { - 0x084000, - 0x118000, - 0x1AC000, - 0x240000, - 0x2D4000, - }, - /* step */ - 0x400, + [ETH56G_PHY_REG_GPCS] = { + .base_addr = 0x084000, + .step = 0x400, }, }; diff --git a/drivers/net/ethernet/intel/ice/ice_ptp_hw.c b/drivers/net/ethernet/intel/ice/ice_ptp_hw.c index fbaf2819e40e..89bb8461284a 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp_hw.c +++ b/drivers/net/ethernet/intel/ice/ice_ptp_hw.c @@ -1010,7 +1010,7 @@ static int ice_phy_res_address_eth56g(struct ice_hw *hw, u8 lane, /* Lanes 4..7 are in fact 0..3 on a second PHY */ lane %= hw->ptp.ports_per_phy; - *addr = eth56g_phy_res[res_type].base[0] + + *addr = eth56g_phy_res[res_type].base_addr + lane * eth56g_phy_res[res_type].step + offset; return 0; @@ -1240,7 +1240,7 @@ static int ice_write_quad_ptp_reg_eth56g(struct ice_hw *hw, u8 port, if (port >= hw->ptp.num_lports) return -EIO; - addr = eth56g_phy_res[ETH56G_PHY_REG_PTP].base[0] + offset; + addr = eth56g_phy_res[ETH56G_PHY_REG_PTP].base_addr + offset; return ice_write_phy_eth56g(hw, port, addr, val); } @@ -1265,7 +1265,7 @@ static int ice_read_quad_ptp_reg_eth56g(struct ice_hw *hw, u8 port, if (port >= hw->ptp.num_lports) return -EIO; - addr = eth56g_phy_res[ETH56G_PHY_REG_PTP].base[0] + offset; + addr = eth56g_phy_res[ETH56G_PHY_REG_PTP].base_addr + offset; return ice_read_phy_eth56g(hw, port, addr, val); } diff --git a/drivers/net/ethernet/intel/ice/ice_ptp_hw.h b/drivers/net/ethernet/intel/ice/ice_ptp_hw.h index 8442d1d60351..cca81391b6ad 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp_hw.h +++ b/drivers/net/ethernet/intel/ice/ice_ptp_hw.h @@ -65,14 +65,14 @@ enum ice_eth56g_link_spd { /** * struct ice_phy_reg_info_eth56g - ETH56G PHY register parameters - * @base: base address for each PHY block + * @base_addr: base address for each PHY block * @step: step between PHY lanes * * Characteristic information for the various PHY register parameters in the * ETH56G devices */ struct ice_phy_reg_info_eth56g { - u32 base[NUM_ETH56G_PHY_RES]; + u32 base_addr; u32 step; }; -- 2.39.3 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH iwl-next v2 2/3] ice: Refactor E825C PHY registers info struct @ 2025-02-10 14:11 ` Grzegorz Nitka 0 siblings, 0 replies; 18+ messages in thread From: Grzegorz Nitka @ 2025-02-10 14:11 UTC (permalink / raw) To: intel-wired-lan Cc: netdev, anthony.l.nguyen, przemyslaw.kitszel, horms, Karol Kolacinski, Grzegorz Nitka From: Karol Kolacinski <karol.kolacinski@intel.com> Simplify ice_phy_reg_info_eth56g struct definition to include base address for the very first quad. Use base address info and 'step' value to determine address for specific PHY quad. Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> --- .../net/ethernet/intel/ice/ice_ptp_consts.h | 75 ++++--------------- drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 6 +- drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 4 +- 3 files changed, 20 insertions(+), 65 deletions(-) diff --git a/drivers/net/ethernet/intel/ice/ice_ptp_consts.h b/drivers/net/ethernet/intel/ice/ice_ptp_consts.h index ac46d1183300..003cdfada3ca 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp_consts.h +++ b/drivers/net/ethernet/intel/ice/ice_ptp_consts.h @@ -10,70 +10,25 @@ /* Constants defined for the PTP 1588 clock hardware. */ const struct ice_phy_reg_info_eth56g eth56g_phy_res[NUM_ETH56G_PHY_RES] = { - /* ETH56G_PHY_REG_PTP */ - { - /* base_addr */ - { - 0x092000, - 0x126000, - 0x1BA000, - 0x24E000, - 0x2E2000, - }, - /* step */ - 0x98, + [ETH56G_PHY_REG_PTP] = { + .base_addr = 0x092000, + .step = 0x98, }, - /* ETH56G_PHY_MEM_PTP */ - { - /* base_addr */ - { - 0x093000, - 0x127000, - 0x1BB000, - 0x24F000, - 0x2E3000, - }, - /* step */ - 0x200, + [ETH56G_PHY_MEM_PTP] = { + .base_addr = 0x093000, + .step = 0x200, }, - /* ETH56G_PHY_REG_XPCS */ - { - /* base_addr */ - { - 0x000000, - 0x009400, - 0x128000, - 0x1BC000, - 0x250000, - }, - /* step */ - 0x21000, + [ETH56G_PHY_REG_XPCS] = { + .base_addr = 0x000000, + .step = 0x21000, }, - /* ETH56G_PHY_REG_MAC */ - { - /* base_addr */ - { - 0x085000, - 0x119000, - 0x1AD000, - 0x241000, - 0x2D5000, - }, - /* step */ - 0x1000, + [ETH56G_PHY_REG_MAC] = { + .base_addr = 0x085000, + .step = 0x1000, }, - /* ETH56G_PHY_REG_GPCS */ - { - /* base_addr */ - { - 0x084000, - 0x118000, - 0x1AC000, - 0x240000, - 0x2D4000, - }, - /* step */ - 0x400, + [ETH56G_PHY_REG_GPCS] = { + .base_addr = 0x084000, + .step = 0x400, }, }; diff --git a/drivers/net/ethernet/intel/ice/ice_ptp_hw.c b/drivers/net/ethernet/intel/ice/ice_ptp_hw.c index fbaf2819e40e..89bb8461284a 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp_hw.c +++ b/drivers/net/ethernet/intel/ice/ice_ptp_hw.c @@ -1010,7 +1010,7 @@ static int ice_phy_res_address_eth56g(struct ice_hw *hw, u8 lane, /* Lanes 4..7 are in fact 0..3 on a second PHY */ lane %= hw->ptp.ports_per_phy; - *addr = eth56g_phy_res[res_type].base[0] + + *addr = eth56g_phy_res[res_type].base_addr + lane * eth56g_phy_res[res_type].step + offset; return 0; @@ -1240,7 +1240,7 @@ static int ice_write_quad_ptp_reg_eth56g(struct ice_hw *hw, u8 port, if (port >= hw->ptp.num_lports) return -EIO; - addr = eth56g_phy_res[ETH56G_PHY_REG_PTP].base[0] + offset; + addr = eth56g_phy_res[ETH56G_PHY_REG_PTP].base_addr + offset; return ice_write_phy_eth56g(hw, port, addr, val); } @@ -1265,7 +1265,7 @@ static int ice_read_quad_ptp_reg_eth56g(struct ice_hw *hw, u8 port, if (port >= hw->ptp.num_lports) return -EIO; - addr = eth56g_phy_res[ETH56G_PHY_REG_PTP].base[0] + offset; + addr = eth56g_phy_res[ETH56G_PHY_REG_PTP].base_addr + offset; return ice_read_phy_eth56g(hw, port, addr, val); } diff --git a/drivers/net/ethernet/intel/ice/ice_ptp_hw.h b/drivers/net/ethernet/intel/ice/ice_ptp_hw.h index 8442d1d60351..cca81391b6ad 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp_hw.h +++ b/drivers/net/ethernet/intel/ice/ice_ptp_hw.h @@ -65,14 +65,14 @@ enum ice_eth56g_link_spd { /** * struct ice_phy_reg_info_eth56g - ETH56G PHY register parameters - * @base: base address for each PHY block + * @base_addr: base address for each PHY block * @step: step between PHY lanes * * Characteristic information for the various PHY register parameters in the * ETH56G devices */ struct ice_phy_reg_info_eth56g { - u32 base[NUM_ETH56G_PHY_RES]; + u32 base_addr; u32 step; }; -- 2.39.3 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [Intel-wired-lan] [PATCH iwl-next v2 2/3] ice: Refactor E825C PHY registers info struct 2025-02-10 14:11 ` Grzegorz Nitka @ 2025-02-12 16:45 ` Simon Horman -1 siblings, 0 replies; 18+ messages in thread From: Simon Horman @ 2025-02-12 16:45 UTC (permalink / raw) To: Grzegorz Nitka Cc: intel-wired-lan, netdev, anthony.l.nguyen, przemyslaw.kitszel, Karol Kolacinski On Mon, Feb 10, 2025 at 03:11:11PM +0100, Grzegorz Nitka wrote: > From: Karol Kolacinski <karol.kolacinski@intel.com> > > Simplify ice_phy_reg_info_eth56g struct definition to include base > address for the very first quad. Use base address info and 'step' > value to determine address for specific PHY quad. > > Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> > Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> Reviewed-by: Simon Horman <horms@kernel.org> ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH iwl-next v2 2/3] ice: Refactor E825C PHY registers info struct @ 2025-02-12 16:45 ` Simon Horman 0 siblings, 0 replies; 18+ messages in thread From: Simon Horman @ 2025-02-12 16:45 UTC (permalink / raw) To: Grzegorz Nitka Cc: intel-wired-lan, netdev, anthony.l.nguyen, przemyslaw.kitszel, Karol Kolacinski On Mon, Feb 10, 2025 at 03:11:11PM +0100, Grzegorz Nitka wrote: > From: Karol Kolacinski <karol.kolacinski@intel.com> > > Simplify ice_phy_reg_info_eth56g struct definition to include base > address for the very first quad. Use base address info and 'step' > value to determine address for specific PHY quad. > > Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> > Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> Reviewed-by: Simon Horman <horms@kernel.org> ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Intel-wired-lan] [PATCH iwl-next v2 2/3] ice: Refactor E825C PHY registers info struct 2025-02-10 14:11 ` Grzegorz Nitka @ 2025-02-26 6:09 ` Rinitha, SX -1 siblings, 0 replies; 18+ messages in thread From: Rinitha, SX @ 2025-02-26 6:09 UTC (permalink / raw) To: Nitka, Grzegorz, intel-wired-lan@lists.osuosl.org Cc: netdev@vger.kernel.org, Kolacinski, Karol, Nguyen, Anthony L, horms@kernel.org, Kitszel, Przemyslaw > -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Grzegorz Nitka > Sent: 10 February 2025 19:41 > To: intel-wired-lan@lists.osuosl.org > Cc: netdev@vger.kernel.org; Kolacinski, Karol <karol.kolacinski@intel.com>; Nguyen, Anthony L <anthony.l.nguyen@intel.com>; horms@kernel.org; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com> > Subject: [Intel-wired-lan] [PATCH iwl-next v2 2/3] ice: Refactor E825C PHY registers info struct > > From: Karol Kolacinski <karol.kolacinski@intel.com> > > Simplify ice_phy_reg_info_eth56g struct definition to include base address for the very first quad. Use base address info and 'step' value to determine address for specific PHY quad. > > Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> > Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> > --- > .../net/ethernet/intel/ice/ice_ptp_consts.h | 75 ++++--------------- > drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 6 +- > drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 4 +- > 3 files changed, 20 insertions(+), 65 deletions(-) > Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel) ^ permalink raw reply [flat|nested] 18+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next v2 2/3] ice: Refactor E825C PHY registers info struct @ 2025-02-26 6:09 ` Rinitha, SX 0 siblings, 0 replies; 18+ messages in thread From: Rinitha, SX @ 2025-02-26 6:09 UTC (permalink / raw) To: Nitka, Grzegorz, intel-wired-lan@lists.osuosl.org Cc: netdev@vger.kernel.org, Kolacinski, Karol, Nguyen, Anthony L, horms@kernel.org, Kitszel, Przemyslaw > -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Grzegorz Nitka > Sent: 10 February 2025 19:41 > To: intel-wired-lan@lists.osuosl.org > Cc: netdev@vger.kernel.org; Kolacinski, Karol <karol.kolacinski@intel.com>; Nguyen, Anthony L <anthony.l.nguyen@intel.com>; horms@kernel.org; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com> > Subject: [Intel-wired-lan] [PATCH iwl-next v2 2/3] ice: Refactor E825C PHY registers info struct > > From: Karol Kolacinski <karol.kolacinski@intel.com> > > Simplify ice_phy_reg_info_eth56g struct definition to include base address for the very first quad. Use base address info and 'step' value to determine address for specific PHY quad. > > Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> > Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> > --- > .../net/ethernet/intel/ice/ice_ptp_consts.h | 75 ++++--------------- > drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 6 +- > drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 4 +- > 3 files changed, 20 insertions(+), 65 deletions(-) > Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel) ^ permalink raw reply [flat|nested] 18+ messages in thread
* [Intel-wired-lan] [PATCH iwl-next v2 3/3] ice: E825C PHY register cleanup 2025-02-10 14:11 ` Grzegorz Nitka @ 2025-02-10 14:11 ` Grzegorz Nitka -1 siblings, 0 replies; 18+ messages in thread From: Grzegorz Nitka @ 2025-02-10 14:11 UTC (permalink / raw) To: intel-wired-lan Cc: netdev, Karol Kolacinski, anthony.l.nguyen, horms, przemyslaw.kitszel From: Karol Kolacinski <karol.kolacinski@intel.com> Minor PTP register refactor, including logical grouping E825C 1-step timestamping registers. Remove unused register definitions (PHY_REG_GPCS_BITSLIP, PHY_REG_REVISION). Also, apply preferred GENMASK macro (instead of ICE_M) for register fields definition affected by this patch. Reviewed-by: Simon Horman <horms@kernel.org> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> --- drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 31 ++++++++++----------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/drivers/net/ethernet/intel/ice/ice_ptp_hw.h b/drivers/net/ethernet/intel/ice/ice_ptp_hw.h index cca81391b6ad..e5925ccc2613 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp_hw.h +++ b/drivers/net/ethernet/intel/ice/ice_ptp_hw.h @@ -780,36 +780,19 @@ static inline bool ice_is_dual(struct ice_hw *hw) #define PHY_MAC_XIF_TS_SFD_ENA_M ICE_M(0x1, 20) #define PHY_MAC_XIF_GMII_TS_SEL_M ICE_M(0x1, 21) -/* GPCS config register */ -#define PHY_GPCS_CONFIG_REG0 0x268 -#define PHY_GPCS_CONFIG_REG0_TX_THR_M ICE_M(0xF, 24) -#define PHY_GPCS_BITSLIP 0x5C - #define PHY_TS_INT_CONFIG_THRESHOLD_M ICE_M(0x3F, 0) #define PHY_TS_INT_CONFIG_ENA_M BIT(6) -/* 1-step PTP config */ -#define PHY_PTP_1STEP_CONFIG 0x270 -#define PHY_PTP_1STEP_T1S_UP64_M ICE_M(0xF, 4) -#define PHY_PTP_1STEP_T1S_DELTA_M ICE_M(0xF, 8) -#define PHY_PTP_1STEP_PEER_DELAY(_port) (0x274 + 4 * (_port)) -#define PHY_PTP_1STEP_PD_ADD_PD_M ICE_M(0x1, 0) -#define PHY_PTP_1STEP_PD_DELAY_M ICE_M(0x3fffffff, 1) -#define PHY_PTP_1STEP_PD_DLY_V_M ICE_M(0x1, 31) - /* Macros to derive offsets for TimeStampLow and TimeStampHigh */ #define PHY_TSTAMP_L(x) (((x) * 8) + 0) #define PHY_TSTAMP_U(x) (((x) * 8) + 4) -#define PHY_REG_REVISION 0x85000 - #define PHY_REG_DESKEW_0 0x94 #define PHY_REG_DESKEW_0_RLEVEL GENMASK(6, 0) #define PHY_REG_DESKEW_0_RLEVEL_FRAC GENMASK(9, 7) #define PHY_REG_DESKEW_0_RLEVEL_FRAC_W 3 #define PHY_REG_DESKEW_0_VALID GENMASK(10, 10) -#define PHY_REG_GPCS_BITSLIP 0x5C #define PHY_REG_SD_BIT_SLIP(_port_offset) (0x29C + 4 * (_port_offset)) #define PHY_REVISION_ETH56G 0x10200 #define PHY_VENDOR_TXLANE_THRESH 0x2000C @@ -829,7 +812,21 @@ static inline bool ice_is_dual(struct ice_hw *hw) #define PHY_MAC_BLOCKTIME 0x50 #define PHY_MAC_MARKERTIME 0x54 #define PHY_MAC_TX_OFFSET 0x58 +#define PHY_GPCS_BITSLIP 0x5C #define PHY_PTP_INT_STATUS 0x7FD140 +/* ETH56G registers shared per quad */ +/* GPCS config register */ +#define PHY_GPCS_CONFIG_REG0 0x268 +#define PHY_GPCS_CONFIG_REG0_TX_THR_M GENMASK(27, 24) +/* 1-step PTP config */ +#define PHY_PTP_1STEP_CONFIG 0x270 +#define PHY_PTP_1STEP_T1S_UP64_M GENMASK(7, 4) +#define PHY_PTP_1STEP_T1S_DELTA_M GENMASK(11, 8) +#define PHY_PTP_1STEP_PEER_DELAY(_quad_lane) (0x274 + 4 * (_quad_lane)) +#define PHY_PTP_1STEP_PD_ADD_PD_M BIT(0) +#define PHY_PTP_1STEP_PD_DELAY_M GENMASK(30, 1) +#define PHY_PTP_1STEP_PD_DLY_V_M BIT(31) + #endif /* _ICE_PTP_HW_H_ */ -- 2.39.3 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH iwl-next v2 3/3] ice: E825C PHY register cleanup @ 2025-02-10 14:11 ` Grzegorz Nitka 0 siblings, 0 replies; 18+ messages in thread From: Grzegorz Nitka @ 2025-02-10 14:11 UTC (permalink / raw) To: intel-wired-lan Cc: netdev, anthony.l.nguyen, przemyslaw.kitszel, horms, Karol Kolacinski, Grzegorz Nitka From: Karol Kolacinski <karol.kolacinski@intel.com> Minor PTP register refactor, including logical grouping E825C 1-step timestamping registers. Remove unused register definitions (PHY_REG_GPCS_BITSLIP, PHY_REG_REVISION). Also, apply preferred GENMASK macro (instead of ICE_M) for register fields definition affected by this patch. Reviewed-by: Simon Horman <horms@kernel.org> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> --- drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 31 ++++++++++----------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/drivers/net/ethernet/intel/ice/ice_ptp_hw.h b/drivers/net/ethernet/intel/ice/ice_ptp_hw.h index cca81391b6ad..e5925ccc2613 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp_hw.h +++ b/drivers/net/ethernet/intel/ice/ice_ptp_hw.h @@ -780,36 +780,19 @@ static inline bool ice_is_dual(struct ice_hw *hw) #define PHY_MAC_XIF_TS_SFD_ENA_M ICE_M(0x1, 20) #define PHY_MAC_XIF_GMII_TS_SEL_M ICE_M(0x1, 21) -/* GPCS config register */ -#define PHY_GPCS_CONFIG_REG0 0x268 -#define PHY_GPCS_CONFIG_REG0_TX_THR_M ICE_M(0xF, 24) -#define PHY_GPCS_BITSLIP 0x5C - #define PHY_TS_INT_CONFIG_THRESHOLD_M ICE_M(0x3F, 0) #define PHY_TS_INT_CONFIG_ENA_M BIT(6) -/* 1-step PTP config */ -#define PHY_PTP_1STEP_CONFIG 0x270 -#define PHY_PTP_1STEP_T1S_UP64_M ICE_M(0xF, 4) -#define PHY_PTP_1STEP_T1S_DELTA_M ICE_M(0xF, 8) -#define PHY_PTP_1STEP_PEER_DELAY(_port) (0x274 + 4 * (_port)) -#define PHY_PTP_1STEP_PD_ADD_PD_M ICE_M(0x1, 0) -#define PHY_PTP_1STEP_PD_DELAY_M ICE_M(0x3fffffff, 1) -#define PHY_PTP_1STEP_PD_DLY_V_M ICE_M(0x1, 31) - /* Macros to derive offsets for TimeStampLow and TimeStampHigh */ #define PHY_TSTAMP_L(x) (((x) * 8) + 0) #define PHY_TSTAMP_U(x) (((x) * 8) + 4) -#define PHY_REG_REVISION 0x85000 - #define PHY_REG_DESKEW_0 0x94 #define PHY_REG_DESKEW_0_RLEVEL GENMASK(6, 0) #define PHY_REG_DESKEW_0_RLEVEL_FRAC GENMASK(9, 7) #define PHY_REG_DESKEW_0_RLEVEL_FRAC_W 3 #define PHY_REG_DESKEW_0_VALID GENMASK(10, 10) -#define PHY_REG_GPCS_BITSLIP 0x5C #define PHY_REG_SD_BIT_SLIP(_port_offset) (0x29C + 4 * (_port_offset)) #define PHY_REVISION_ETH56G 0x10200 #define PHY_VENDOR_TXLANE_THRESH 0x2000C @@ -829,7 +812,21 @@ static inline bool ice_is_dual(struct ice_hw *hw) #define PHY_MAC_BLOCKTIME 0x50 #define PHY_MAC_MARKERTIME 0x54 #define PHY_MAC_TX_OFFSET 0x58 +#define PHY_GPCS_BITSLIP 0x5C #define PHY_PTP_INT_STATUS 0x7FD140 +/* ETH56G registers shared per quad */ +/* GPCS config register */ +#define PHY_GPCS_CONFIG_REG0 0x268 +#define PHY_GPCS_CONFIG_REG0_TX_THR_M GENMASK(27, 24) +/* 1-step PTP config */ +#define PHY_PTP_1STEP_CONFIG 0x270 +#define PHY_PTP_1STEP_T1S_UP64_M GENMASK(7, 4) +#define PHY_PTP_1STEP_T1S_DELTA_M GENMASK(11, 8) +#define PHY_PTP_1STEP_PEER_DELAY(_quad_lane) (0x274 + 4 * (_quad_lane)) +#define PHY_PTP_1STEP_PD_ADD_PD_M BIT(0) +#define PHY_PTP_1STEP_PD_DELAY_M GENMASK(30, 1) +#define PHY_PTP_1STEP_PD_DLY_V_M BIT(31) + #endif /* _ICE_PTP_HW_H_ */ -- 2.39.3 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [Intel-wired-lan] [PATCH iwl-next v2 3/3] ice: E825C PHY register cleanup 2025-02-10 14:11 ` Grzegorz Nitka @ 2025-02-26 6:09 ` Rinitha, SX -1 siblings, 0 replies; 18+ messages in thread From: Rinitha, SX @ 2025-02-26 6:09 UTC (permalink / raw) To: Nitka, Grzegorz, intel-wired-lan@lists.osuosl.org Cc: netdev@vger.kernel.org, Kolacinski, Karol, Nguyen, Anthony L, horms@kernel.org, Kitszel, Przemyslaw > -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Grzegorz Nitka > Sent: 10 February 2025 19:41 > To: intel-wired-lan@lists.osuosl.org > Cc: netdev@vger.kernel.org; Kolacinski, Karol <karol.kolacinski@intel.com>; Nguyen, Anthony L <anthony.l.nguyen@intel.com>; horms@kernel.org; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com> > Subject: [Intel-wired-lan] [PATCH iwl-next v2 3/3] ice: E825C PHY register cleanup > > From: Karol Kolacinski <karol.kolacinski@intel.com> > > Minor PTP register refactor, including logical grouping E825C 1-step timestamping registers. Remove unused register definitions (PHY_REG_GPCS_BITSLIP, PHY_REG_REVISION). > Also, apply preferred GENMASK macro (instead of ICE_M) for register fields definition affected by this patch. > > Reviewed-by: Simon Horman <horms@kernel.org> > Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> > Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> > --- > drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 31 ++++++++++----------- > 1 file changed, 14 insertions(+), 17 deletions(-) > Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel) ^ permalink raw reply [flat|nested] 18+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-next v2 3/3] ice: E825C PHY register cleanup @ 2025-02-26 6:09 ` Rinitha, SX 0 siblings, 0 replies; 18+ messages in thread From: Rinitha, SX @ 2025-02-26 6:09 UTC (permalink / raw) To: Nitka, Grzegorz, intel-wired-lan@lists.osuosl.org Cc: netdev@vger.kernel.org, Kolacinski, Karol, Nguyen, Anthony L, horms@kernel.org, Kitszel, Przemyslaw > -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Grzegorz Nitka > Sent: 10 February 2025 19:41 > To: intel-wired-lan@lists.osuosl.org > Cc: netdev@vger.kernel.org; Kolacinski, Karol <karol.kolacinski@intel.com>; Nguyen, Anthony L <anthony.l.nguyen@intel.com>; horms@kernel.org; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com> > Subject: [Intel-wired-lan] [PATCH iwl-next v2 3/3] ice: E825C PHY register cleanup > > From: Karol Kolacinski <karol.kolacinski@intel.com> > > Minor PTP register refactor, including logical grouping E825C 1-step timestamping registers. Remove unused register definitions (PHY_REG_GPCS_BITSLIP, PHY_REG_REVISION). > Also, apply preferred GENMASK macro (instead of ICE_M) for register fields definition affected by this patch. > > Reviewed-by: Simon Horman <horms@kernel.org> > Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> > Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com> > --- > drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 31 ++++++++++----------- > 1 file changed, 14 insertions(+), 17 deletions(-) > Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel) ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2025-02-26 6:09 UTC | newest] Thread overview: 18+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-02-10 14:11 [Intel-wired-lan] [PATCH iwl-next v2 0/3] E825C PTP cleanup Grzegorz Nitka 2025-02-10 14:11 ` Grzegorz Nitka 2025-02-10 14:11 ` [Intel-wired-lan] [PATCH iwl-next v2 1/3] ice: rename ice_ptp_init_phc_eth56g function Grzegorz Nitka 2025-02-10 14:11 ` Grzegorz Nitka 2025-02-12 16:45 ` [Intel-wired-lan] " Simon Horman 2025-02-12 16:45 ` Simon Horman 2025-02-26 6:08 ` [Intel-wired-lan] " Rinitha, SX 2025-02-26 6:08 ` Rinitha, SX 2025-02-10 14:11 ` [Intel-wired-lan] [PATCH iwl-next v2 2/3] ice: Refactor E825C PHY registers info struct Grzegorz Nitka 2025-02-10 14:11 ` Grzegorz Nitka 2025-02-12 16:45 ` [Intel-wired-lan] " Simon Horman 2025-02-12 16:45 ` Simon Horman 2025-02-26 6:09 ` [Intel-wired-lan] " Rinitha, SX 2025-02-26 6:09 ` Rinitha, SX 2025-02-10 14:11 ` [Intel-wired-lan] [PATCH iwl-next v2 3/3] ice: E825C PHY register cleanup Grzegorz Nitka 2025-02-10 14:11 ` Grzegorz Nitka 2025-02-26 6:09 ` [Intel-wired-lan] " Rinitha, SX 2025-02-26 6:09 ` Rinitha, SX
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.