]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ice: check low latency PHY timer update firmware capability
authorJacob Keller <jacob.e.keller@intel.com>
Mon, 16 Dec 2024 14:53:31 +0000 (09:53 -0500)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Tue, 14 Jan 2025 22:37:34 +0000 (14:37 -0800)
Newer versions of firmware support programming the PHY timer via the low
latency interface exposed over REG_LL_PROXY_L and REG_LL_PROXY_H. Add
support for checking the device capabilities for this feature.

Co-developed-by: Karol Kolacinski <karol.kolacinski@intel.com>
Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Milena Olech <milena.olech@intel.com>
Signed-off-by: Anton Nadezhdin <anton.nadezhdin@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_common.c
drivers/net/ethernet/intel/ice/ice_type.h

index 7af16946665526155d6d2aad64d85fc22f09661e..9d143c6803f19d203d5d27e06a154191ac3460b3 100644 (file)
@@ -2641,6 +2641,7 @@ ice_parse_1588_dev_caps(struct ice_hw *hw, struct ice_hw_dev_caps *dev_p,
 
        info->ts_ll_read = ((number & ICE_TS_LL_TX_TS_READ_M) != 0);
        info->ts_ll_int_read = ((number & ICE_TS_LL_TX_TS_INT_READ_M) != 0);
+       info->ll_phy_tmr_update = ((number & ICE_TS_LL_PHY_TMR_UPDATE_M) != 0);
 
        info->ena_ports = logical_id;
        info->tmr_own_map = phys_id;
@@ -2663,6 +2664,8 @@ ice_parse_1588_dev_caps(struct ice_hw *hw, struct ice_hw_dev_caps *dev_p,
                  info->ts_ll_read);
        ice_debug(hw, ICE_DBG_INIT, "dev caps: ts_ll_int_read = %u\n",
                  info->ts_ll_int_read);
+       ice_debug(hw, ICE_DBG_INIT, "dev caps: ll_phy_tmr_update = %u\n",
+                 info->ll_phy_tmr_update);
        ice_debug(hw, ICE_DBG_INIT, "dev caps: ieee_1588 ena_ports = %u\n",
                  info->ena_ports);
        ice_debug(hw, ICE_DBG_INIT, "dev caps: tmr_own_map = %u\n",
index d01a9e79867876ac12b5b3e2caf2e692d59c464f..f5eac66d207e90c8ae0da64b6ff7c955f58c8245 100644 (file)
@@ -369,6 +369,7 @@ struct ice_ts_func_info {
 #define ICE_TS_TMR1_ENA_M              BIT(26)
 #define ICE_TS_LL_TX_TS_READ_M         BIT(28)
 #define ICE_TS_LL_TX_TS_INT_READ_M     BIT(29)
+#define ICE_TS_LL_PHY_TMR_UPDATE_M     BIT(30)
 
 struct ice_ts_dev_info {
        /* Device specific info */
@@ -383,6 +384,7 @@ struct ice_ts_dev_info {
        u8 tmr1_ena;
        u8 ts_ll_read;
        u8 ts_ll_int_read;
+       u8 ll_phy_tmr_update;
 };
 
 #define ICE_NAC_TOPO_PRIMARY_M BIT(0)