Skip to content

Commit a264f71

Browse files
qzhuo2aegl
authored andcommitted
EDAC/igen6: Make get_mchbar() helper function
Make get_mchbar() helper function to retrieve the BAR address of the memory controller. No function changes. Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
1 parent 12f230c commit a264f71

1 file changed

Lines changed: 31 additions & 15 deletions

File tree

drivers/edac/igen6_edac.c

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,36 @@ static struct work_struct ecclog_work;
222222
#define DID_ADL_SKU3 0x4621
223223
#define DID_ADL_SKU4 0x4641
224224

225+
static int get_mchbar(struct pci_dev *pdev, u64 *mchbar)
226+
{
227+
union {
228+
u64 v;
229+
struct {
230+
u32 v_lo;
231+
u32 v_hi;
232+
};
233+
} u;
234+
235+
if (pci_read_config_dword(pdev, MCHBAR_OFFSET, &u.v_lo)) {
236+
igen6_printk(KERN_ERR, "Failed to read lower MCHBAR\n");
237+
return -ENODEV;
238+
}
239+
240+
if (pci_read_config_dword(pdev, MCHBAR_OFFSET + 4, &u.v_hi)) {
241+
igen6_printk(KERN_ERR, "Failed to read upper MCHBAR\n");
242+
return -ENODEV;
243+
}
244+
245+
if (!(u.v & MCHBAR_EN)) {
246+
igen6_printk(KERN_ERR, "MCHBAR is disabled\n");
247+
return -ENODEV;
248+
}
249+
250+
*mchbar = MCHBAR_BASE(u.v);
251+
252+
return 0;
253+
}
254+
225255
static bool ehl_ibecc_available(struct pci_dev *pdev)
226256
{
227257
u32 v;
@@ -969,22 +999,8 @@ static int igen6_pci_setup(struct pci_dev *pdev, u64 *mchbar)
969999

9701000
igen6_tom = u.v & GENMASK_ULL(38, 20);
9711001

972-
if (pci_read_config_dword(pdev, MCHBAR_OFFSET, &u.v_lo)) {
973-
igen6_printk(KERN_ERR, "Failed to read lower MCHBAR\n");
974-
goto fail;
975-
}
976-
977-
if (pci_read_config_dword(pdev, MCHBAR_OFFSET + 4, &u.v_hi)) {
978-
igen6_printk(KERN_ERR, "Failed to read upper MCHBAR\n");
1002+
if (get_mchbar(pdev, mchbar))
9791003
goto fail;
980-
}
981-
982-
if (!(u.v & MCHBAR_EN)) {
983-
igen6_printk(KERN_ERR, "MCHBAR is disabled\n");
984-
goto fail;
985-
}
986-
987-
*mchbar = MCHBAR_BASE(u.v);
9881004

9891005
#ifdef CONFIG_EDAC_DEBUG
9901006
if (pci_read_config_dword(pdev, TOUUD_OFFSET, &u.v_lo))

0 commit comments

Comments
 (0)