Skip to content

Commit d617484

Browse files
committed
ice: use bitfields instead of unions for CGU regs
jira LE-4694 Rebuild_History Non-Buildable kernel-6.12.0-55.43.1.el10_0 commit-author Karol Kolacinski <karol.kolacinski@intel.com> commit c6b4486 Switch from unions with bitfield structs to definitions with bitfield masks. This is necessary, because some registers have different field definitions or even use a different register for the same fields based on HW type. Remove unused register fields. Reviewed-by: Milena Olech <milena.olech@intel.com> Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> (cherry picked from commit c6b4486) Signed-off-by: Jonathan Maple <jmaple@ciq.com>
1 parent cd963d2 commit d617484

File tree

2 files changed

+156
-295
lines changed

2 files changed

+156
-295
lines changed

drivers/net/ethernet/intel/ice/ice_common.h

Lines changed: 32 additions & 180 deletions
Original file line numberDiff line numberDiff line change
@@ -39,194 +39,46 @@
3939
#define FEC_RECEIVER_ID_PCS0 (0x33 << FEC_RECV_ID_SHIFT)
4040
#define FEC_RECEIVER_ID_PCS1 (0x34 << FEC_RECV_ID_SHIFT)
4141

42-
#define ICE_CGU_R9 0x24
43-
union ice_cgu_r9 {
44-
struct {
45-
u32 time_ref_freq_sel : 3;
46-
u32 clk_eref1_en : 1;
47-
u32 clk_eref0_en : 1;
48-
u32 time_ref_en : 1;
49-
u32 time_sync_en : 1;
50-
u32 one_pps_out_en : 1;
51-
u32 clk_ref_synce_en : 1;
52-
u32 clk_synce1_en : 1;
53-
u32 clk_synce0_en : 1;
54-
u32 net_clk_ref1_en : 1;
55-
u32 net_clk_ref0_en : 1;
56-
u32 clk_synce1_amp : 2;
57-
u32 misc6 : 1;
58-
u32 clk_synce0_amp : 2;
59-
u32 one_pps_out_amp : 2;
60-
u32 misc24 : 12;
61-
};
62-
u32 val;
63-
};
42+
#define ICE_CGU_R9 0x24
43+
#define ICE_CGU_R9_TIME_REF_FREQ_SEL GENMASK(2, 0)
44+
#define ICE_CGU_R9_CLK_EREF0_EN BIT(4)
45+
#define ICE_CGU_R9_TIME_REF_EN BIT(5)
46+
#define ICE_CGU_R9_TIME_SYNC_EN BIT(6)
47+
#define ICE_CGU_R9_ONE_PPS_OUT_EN BIT(7)
48+
#define ICE_CGU_R9_ONE_PPS_OUT_AMP GENMASK(19, 18)
6449

65-
#define ICE_CGU_R16 0x40
66-
union ice_cgu_r16 {
67-
struct {
68-
u32 synce_remndr : 6;
69-
u32 synce_phlmt_en : 1;
70-
u32 misc13 : 17;
71-
u32 ck_refclkfreq : 8;
72-
};
73-
u32 val;
74-
};
50+
#define ICE_CGU_R16 0x40
51+
#define ICE_CGU_R16_TSPLL_CK_REFCLKFREQ GENMASK(31, 24)
7552

76-
#define ICE_CGU_R19 0x4c
77-
union ice_cgu_r19_e82x {
78-
struct {
79-
u32 fbdiv_intgr : 8;
80-
u32 fdpll_ulck_thr : 5;
81-
u32 misc15 : 3;
82-
u32 ndivratio : 4;
83-
u32 tspll_iref_ndivratio : 3;
84-
u32 misc19 : 1;
85-
u32 japll_ndivratio : 4;
86-
u32 japll_iref_ndivratio : 3;
87-
u32 misc27 : 1;
88-
};
89-
u32 val;
90-
};
53+
#define ICE_CGU_R19 0x4C
54+
#define ICE_CGU_R19_TSPLL_FBDIV_INTGR_E82X GENMASK(7, 0)
55+
#define ICE_CGU_R19_TSPLL_FBDIV_INTGR_E825 GENMASK(9, 0)
56+
#define ICE_CGU_R19_TSPLL_NDIVRATIO GENMASK(19, 16)
9157

92-
union ice_cgu_r19_e825 {
93-
struct {
94-
u32 tspll_fbdiv_intgr : 10;
95-
u32 fdpll_ulck_thr : 5;
96-
u32 misc15 : 1;
97-
u32 tspll_ndivratio : 4;
98-
u32 tspll_iref_ndivratio : 3;
99-
u32 misc19 : 1;
100-
u32 japll_ndivratio : 4;
101-
u32 japll_postdiv_pdivratio : 3;
102-
u32 misc27 : 1;
103-
};
104-
u32 val;
105-
};
58+
#define ICE_CGU_R22 0x58
59+
#define ICE_CGU_R22_TIME1588CLK_DIV GENMASK(23, 20)
60+
#define ICE_CGU_R22_TIME1588CLK_DIV2 BIT(30)
10661

107-
#define ICE_CGU_R22 0x58
108-
union ice_cgu_r22 {
109-
struct {
110-
u32 fdpll_frac_div_out_nc : 2;
111-
u32 fdpll_lock_int_for : 1;
112-
u32 synce_hdov_int_for : 1;
113-
u32 synce_lock_int_for : 1;
114-
u32 fdpll_phlead_slip_nc : 1;
115-
u32 fdpll_acc1_ovfl_nc : 1;
116-
u32 fdpll_acc2_ovfl_nc : 1;
117-
u32 synce_status_nc : 6;
118-
u32 fdpll_acc1f_ovfl : 1;
119-
u32 misc18 : 1;
120-
u32 fdpllclk_div : 4;
121-
u32 time1588clk_div : 4;
122-
u32 synceclk_div : 4;
123-
u32 synceclk_sel_div2 : 1;
124-
u32 fdpllclk_sel_div2 : 1;
125-
u32 time1588clk_sel_div2 : 1;
126-
u32 misc3 : 1;
127-
};
128-
u32 val;
129-
};
62+
#define ICE_CGU_R23 0x5C
63+
#define ICE_CGU_R24 0x60
64+
#define ICE_CGU_R24_FBDIV_FRAC GENMASK(21, 0)
65+
#define ICE_CGU_R23_R24_TSPLL_ENABLE BIT(24)
66+
#define ICE_CGU_R23_R24_REF1588_CK_DIV GENMASK(30, 27)
67+
#define ICE_CGU_R23_R24_TIME_REF_SEL BIT(31)
13068

131-
#define ICE_CGU_R23 0x5C
132-
union ice_cgu_r23 {
133-
struct {
134-
u32 cgupll_fbdiv_intgr : 10;
135-
u32 ux56pll_fbdiv_intgr : 10;
136-
u32 misc20 : 4;
137-
u32 ts_pll_enable : 1;
138-
u32 time_sync_tspll_align_sel : 1;
139-
u32 ext_synce_sel : 1;
140-
u32 ref1588_ck_div : 4;
141-
u32 time_ref_sel : 1;
69+
#define ICE_CGU_BW_TDC 0x31C
70+
#define ICE_CGU_BW_TDC_PLLLOCK_SEL GENMASK(30, 29)
14271

143-
};
144-
u32 val;
145-
};
72+
#define ICE_CGU_RO_LOCK 0x3F0
73+
#define ICE_CGU_RO_LOCK_TRUE_LOCK BIT(12)
74+
#define ICE_CGU_RO_LOCK_UNLOCK BIT(13)
14675

147-
#define ICE_CGU_R24 0x60
148-
union ice_cgu_r24 {
149-
struct {
150-
u32 fbdiv_frac : 22;
151-
u32 misc20 : 2;
152-
u32 ts_pll_enable : 1;
153-
u32 time_sync_tspll_align_sel : 1;
154-
u32 ext_synce_sel : 1;
155-
u32 ref1588_ck_div : 4;
156-
u32 time_ref_sel : 1;
157-
};
158-
u32 val;
159-
};
76+
#define ICE_CGU_CNTR_BIST 0x344
77+
#define ICE_CGU_CNTR_BIST_PLLLOCK_SEL_0 BIT(15)
78+
#define ICE_CGU_CNTR_BIST_PLLLOCK_SEL_1 BIT(16)
16079

161-
#define TSPLL_CNTR_BIST_SETTINGS 0x344
162-
union tspll_cntr_bist_settings {
163-
struct {
164-
u32 i_irefgen_settling_time_cntr_7_0 : 8;
165-
u32 i_irefgen_settling_time_ro_standby_1_0 : 2;
166-
u32 reserved195 : 5;
167-
u32 i_plllock_sel_0 : 1;
168-
u32 i_plllock_sel_1 : 1;
169-
u32 i_plllock_cnt_6_0 : 7;
170-
u32 i_plllock_cnt_10_7 : 4;
171-
u32 reserved200 : 4;
172-
};
173-
u32 val;
174-
};
175-
176-
#define TSPLL_RO_BWM_LF 0x370
177-
union tspll_ro_bwm_lf {
178-
struct {
179-
u32 bw_freqov_high_cri_7_0 : 8;
180-
u32 bw_freqov_high_cri_9_8 : 2;
181-
u32 biascaldone_cri : 1;
182-
u32 plllock_gain_tran_cri : 1;
183-
u32 plllock_true_lock_cri : 1;
184-
u32 pllunlock_flag_cri : 1;
185-
u32 afcerr_cri : 1;
186-
u32 afcdone_cri : 1;
187-
u32 feedfwrdgain_cal_cri_7_0 : 8;
188-
u32 m2fbdivmod_cri_7_0 : 8;
189-
};
190-
u32 val;
191-
};
192-
193-
#define TSPLL_RO_LOCK_E825C 0x3f0
194-
union tspll_ro_lock_e825c {
195-
struct {
196-
u32 bw_freqov_high_cri_7_0 : 8;
197-
u32 bw_freqov_high_cri_9_8 : 2;
198-
u32 reserved455 : 1;
199-
u32 plllock_gain_tran_cri : 1;
200-
u32 plllock_true_lock_cri : 1;
201-
u32 pllunlock_flag_cri : 1;
202-
u32 afcerr_cri : 1;
203-
u32 afcdone_cri : 1;
204-
u32 feedfwrdgain_cal_cri_7_0 : 8;
205-
u32 reserved462 : 8;
206-
};
207-
u32 val;
208-
};
209-
210-
#define TSPLL_BW_TDC_E825C 0x31c
211-
union tspll_bw_tdc_e825c {
212-
struct {
213-
u32 i_tdc_offset_lock_1_0 : 2;
214-
u32 i_bbthresh1_2_0 : 3;
215-
u32 i_bbthresh2_2_0 : 3;
216-
u32 i_tdcsel_1_0 : 2;
217-
u32 i_tdcovccorr_en_h : 1;
218-
u32 i_divretimeren : 1;
219-
u32 i_bw_ampmeas_window : 1;
220-
u32 i_bw_lowerbound_2_0 : 3;
221-
u32 i_bw_upperbound_2_0 : 3;
222-
u32 i_bw_mode_1_0 : 2;
223-
u32 i_ft_mode_sel_2_0 : 3;
224-
u32 i_bwphase_4_0 : 5;
225-
u32 i_plllock_sel_1_0 : 2;
226-
u32 i_afc_divratio : 1;
227-
};
228-
u32 val;
229-
};
80+
#define ICE_CGU_RO_BWM_LF 0x370
81+
#define ICE_CGU_RO_BWM_LF_TRUE_LOCK BIT(12)
23082

23183
int ice_init_hw(struct ice_hw *hw);
23284
void ice_deinit_hw(struct ice_hw *hw);

0 commit comments

Comments
 (0)