ice: convert clk_freq capability into time_ref
Convert the clk_freq value into the associated time_ref frequency value for E822 devices. This simplifies determining the time reference value for the clock. Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Tested-by: Gurucharan G <gurucharanx.g@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
This commit is contained in:
parent
b2ee72565c
commit
405efa49b5
|
@ -2189,6 +2189,18 @@ ice_parse_1588_func_caps(struct ice_hw *hw, struct ice_hw_func_caps *func_p,
|
|||
info->clk_freq = (number & ICE_TS_CLK_FREQ_M) >> ICE_TS_CLK_FREQ_S;
|
||||
info->clk_src = ((number & ICE_TS_CLK_SRC_M) != 0);
|
||||
|
||||
if (info->clk_freq < NUM_ICE_TIME_REF_FREQ) {
|
||||
info->time_ref = (enum ice_time_ref_freq)info->clk_freq;
|
||||
} else {
|
||||
/* Unknown clock frequency, so assume a (probably incorrect)
|
||||
* default to avoid out-of-bounds look ups of frequency
|
||||
* related information.
|
||||
*/
|
||||
ice_debug(hw, ICE_DBG_INIT, "1588 func caps: unknown clock frequency %u\n",
|
||||
info->clk_freq);
|
||||
info->time_ref = ICE_TIME_REF_FREQ_25_000;
|
||||
}
|
||||
|
||||
ice_debug(hw, ICE_DBG_INIT, "func caps: ieee_1588 = %u\n",
|
||||
func_p->common_cap.ieee_1588);
|
||||
ice_debug(hw, ICE_DBG_INIT, "func caps: src_tmr_owned = %u\n",
|
||||
|
|
|
@ -298,9 +298,30 @@ struct ice_hw_common_caps {
|
|||
#define ICE_TS_TMR_IDX_ASSOC_S 24
|
||||
#define ICE_TS_TMR_IDX_ASSOC_M BIT(24)
|
||||
|
||||
/* TIME_REF clock rate specification */
|
||||
enum ice_time_ref_freq {
|
||||
ICE_TIME_REF_FREQ_25_000 = 0,
|
||||
ICE_TIME_REF_FREQ_122_880 = 1,
|
||||
ICE_TIME_REF_FREQ_125_000 = 2,
|
||||
ICE_TIME_REF_FREQ_153_600 = 3,
|
||||
ICE_TIME_REF_FREQ_156_250 = 4,
|
||||
ICE_TIME_REF_FREQ_245_760 = 5,
|
||||
|
||||
NUM_ICE_TIME_REF_FREQ
|
||||
};
|
||||
|
||||
/* Clock source specification */
|
||||
enum ice_clk_src {
|
||||
ICE_CLK_SRC_TCX0 = 0, /* Temperature compensated oscillator */
|
||||
ICE_CLK_SRC_TIME_REF = 1, /* Use TIME_REF reference clock */
|
||||
|
||||
NUM_ICE_CLK_SRC
|
||||
};
|
||||
|
||||
struct ice_ts_func_info {
|
||||
/* Function specific info */
|
||||
u32 clk_freq;
|
||||
enum ice_time_ref_freq time_ref;
|
||||
u8 clk_freq;
|
||||
u8 clk_src;
|
||||
u8 tmr_index_assoc;
|
||||
u8 ena;
|
||||
|
|
Loading…
Reference in New Issue