From: Qiuxu Zhuo <[email protected]>

commit a264f715ecb3e6dac7c4d7135db74eb2379cb086 upstream.

Make get_mchbar() helper function to retrieve the BAR address of
the memory controller. No function changes.

Signed-off-by: Qiuxu Zhuo <[email protected]>
Signed-off-by: Tony Luck <[email protected]>
Signed-off-by: Yongxin Liu <[email protected]>
---
 drivers/edac/igen6_edac.c | 46 ++++++++++++++++++++++++++-------------
 1 file changed, 31 insertions(+), 15 deletions(-)

diff --git a/drivers/edac/igen6_edac.c b/drivers/edac/igen6_edac.c
index 8ec70da8d84f..3d30b370615f 100644
--- a/drivers/edac/igen6_edac.c
+++ b/drivers/edac/igen6_edac.c
@@ -222,6 +222,36 @@ static struct work_struct ecclog_work;
 #define DID_ADL_SKU3   0x4621
 #define DID_ADL_SKU4   0x4641
 
+static int get_mchbar(struct pci_dev *pdev, u64 *mchbar)
+{
+       union  {
+               u64 v;
+               struct {
+                       u32 v_lo;
+                       u32 v_hi;
+               };
+       } u;
+
+       if (pci_read_config_dword(pdev, MCHBAR_OFFSET, &u.v_lo)) {
+               igen6_printk(KERN_ERR, "Failed to read lower MCHBAR\n");
+               return -ENODEV;
+       }
+
+       if (pci_read_config_dword(pdev, MCHBAR_OFFSET + 4, &u.v_hi)) {
+               igen6_printk(KERN_ERR, "Failed to read upper MCHBAR\n");
+               return -ENODEV;
+       }
+
+       if (!(u.v & MCHBAR_EN)) {
+               igen6_printk(KERN_ERR, "MCHBAR is disabled\n");
+               return -ENODEV;
+       }
+
+       *mchbar = MCHBAR_BASE(u.v);
+
+       return 0;
+}
+
 static bool ehl_ibecc_available(struct pci_dev *pdev)
 {
        u32 v;
@@ -969,22 +999,8 @@ static int igen6_pci_setup(struct pci_dev *pdev, u64 
*mchbar)
 
        igen6_tom = u.v & GENMASK_ULL(38, 20);
 
-       if (pci_read_config_dword(pdev, MCHBAR_OFFSET, &u.v_lo)) {
-               igen6_printk(KERN_ERR, "Failed to read lower MCHBAR\n");
-               goto fail;
-       }
-
-       if (pci_read_config_dword(pdev, MCHBAR_OFFSET + 4, &u.v_hi)) {
-               igen6_printk(KERN_ERR, "Failed to read upper MCHBAR\n");
+       if (get_mchbar(pdev, mchbar))
                goto fail;
-       }
-
-       if (!(u.v & MCHBAR_EN)) {
-               igen6_printk(KERN_ERR, "MCHBAR is disabled\n");
-               goto fail;
-       }
-
-       *mchbar = MCHBAR_BASE(u.v);
 
 #ifdef CONFIG_EDAC_DEBUG
        if (pci_read_config_dword(pdev, TOUUD_OFFSET, &u.v_lo))
-- 
2.43.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#13585): 
https://lists.yoctoproject.org/g/linux-yocto/message/13585
Mute This Topic: https://lists.yoctoproject.org/mt/104464076/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to