@@ -166,15 +166,18 @@ static const struct mmio_reg adl_dvfs_mmio_regs[] = {
166
166
{ 0 , 0x5A40 , 1 , 0x1 , 0 }, /* rfi_disable */
167
167
};
168
168
169
+ static const struct mapping_table * dlvr_mapping ;
170
+ static const struct mmio_reg * dlvr_mmio_regs_table ;
171
+
169
172
#define RFIM_SHOW (suffix , table )\
170
173
static ssize_t suffix##_show(struct device *dev,\
171
174
struct device_attribute *attr,\
172
175
char *buf)\
173
176
{\
174
- const struct mapping_table *mapping = NULL;\
177
+ const struct mmio_reg *mmio_regs = dlvr_mmio_regs_table;\
178
+ const struct mapping_table *mapping = dlvr_mapping;\
175
179
struct proc_thermal_device *proc_priv;\
176
180
struct pci_dev *pdev = to_pci_dev(dev);\
177
- const struct mmio_reg *mmio_regs;\
178
181
const char **match_strs;\
179
182
int ret, err;\
180
183
u32 reg_val;\
@@ -186,12 +189,6 @@ static ssize_t suffix##_show(struct device *dev,\
186
189
mmio_regs = adl_dvfs_mmio_regs;\
187
190
} else if (table == 2) { \
188
191
match_strs = (const char **)dlvr_strings;\
189
- if (pdev->device == PCI_DEVICE_ID_INTEL_LNLM_THERMAL) {\
190
- mmio_regs = lnl_dlvr_mmio_regs;\
191
- mapping = lnl_dlvr_mapping;\
192
- } else {\
193
- mmio_regs = dlvr_mmio_regs;\
194
- } \
195
192
} else {\
196
193
match_strs = (const char **)fivr_strings;\
197
194
mmio_regs = tgl_fivr_mmio_regs;\
@@ -214,12 +211,12 @@ static ssize_t suffix##_store(struct device *dev,\
214
211
struct device_attribute *attr,\
215
212
const char *buf, size_t count)\
216
213
{\
217
- const struct mapping_table *mapping = NULL;\
214
+ const struct mmio_reg *mmio_regs = dlvr_mmio_regs_table;\
215
+ const struct mapping_table *mapping = dlvr_mapping;\
218
216
struct proc_thermal_device *proc_priv;\
219
217
struct pci_dev *pdev = to_pci_dev(dev);\
220
218
unsigned int input;\
221
219
const char **match_strs;\
222
- const struct mmio_reg *mmio_regs;\
223
220
int ret, err;\
224
221
u32 reg_val;\
225
222
u32 mask;\
@@ -230,12 +227,6 @@ static ssize_t suffix##_store(struct device *dev,\
230
227
mmio_regs = adl_dvfs_mmio_regs;\
231
228
} else if (table == 2) { \
232
229
match_strs = (const char **)dlvr_strings;\
233
- if (pdev->device == PCI_DEVICE_ID_INTEL_LNLM_THERMAL) {\
234
- mmio_regs = lnl_dlvr_mmio_regs;\
235
- mapping = lnl_dlvr_mapping;\
236
- } else {\
237
- mmio_regs = dlvr_mmio_regs;\
238
- } \
239
230
} else {\
240
231
match_strs = (const char **)fivr_strings;\
241
232
mmio_regs = tgl_fivr_mmio_regs;\
@@ -448,6 +439,16 @@ int proc_thermal_rfim_add(struct pci_dev *pdev, struct proc_thermal_device *proc
448
439
}
449
440
450
441
if (proc_priv -> mmio_feature_mask & PROC_THERMAL_FEATURE_DLVR ) {
442
+ switch (pdev -> device ) {
443
+ case PCI_DEVICE_ID_INTEL_LNLM_THERMAL :
444
+ case PCI_DEVICE_ID_INTEL_PTL_THERMAL :
445
+ dlvr_mmio_regs_table = lnl_dlvr_mmio_regs ;
446
+ dlvr_mapping = lnl_dlvr_mapping ;
447
+ break ;
448
+ default :
449
+ dlvr_mmio_regs_table = dlvr_mmio_regs ;
450
+ break ;
451
+ }
451
452
ret = sysfs_create_group (& pdev -> dev .kobj , & dlvr_attribute_group );
452
453
if (ret )
453
454
return ret ;
0 commit comments