OSDN Git Service

perf/x86/intel/uncore: Factor out __snr_uncore_mmio_init_box
authorKan Liang <kan.liang@linux.intel.com>
Tue, 17 Mar 2020 18:38:33 +0000 (11:38 -0700)
committerPeter Zijlstra <peterz@infradead.org>
Fri, 20 Mar 2020 12:06:23 +0000 (13:06 +0100)
The IMC uncore unit in Ice Lake server can only be accessed by MMIO,
which is similar as Snow Ridge.
Factor out __snr_uncore_mmio_init_box which can be shared with Ice Lake
server in the following patch.

No functional changes.

Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/1584470314-46657-2-git-send-email-kan.liang@linux.intel.com
arch/x86/events/intel/uncore_snbep.c

index ad20220..01023f0 100644 (file)
@@ -4380,10 +4380,10 @@ static struct pci_dev *snr_uncore_get_mc_dev(int id)
        return mc_dev;
 }
 
-static void snr_uncore_mmio_init_box(struct intel_uncore_box *box)
+static void __snr_uncore_mmio_init_box(struct intel_uncore_box *box,
+                                      unsigned int box_ctl, int mem_offset)
 {
        struct pci_dev *pdev = snr_uncore_get_mc_dev(box->dieid);
-       unsigned int box_ctl = uncore_mmio_box_ctl(box);
        resource_size_t addr;
        u32 pci_dword;
 
@@ -4393,7 +4393,7 @@ static void snr_uncore_mmio_init_box(struct intel_uncore_box *box)
        pci_read_config_dword(pdev, SNR_IMC_MMIO_BASE_OFFSET, &pci_dword);
        addr = (pci_dword & SNR_IMC_MMIO_BASE_MASK) << 23;
 
-       pci_read_config_dword(pdev, SNR_IMC_MMIO_MEM0_OFFSET, &pci_dword);
+       pci_read_config_dword(pdev, mem_offset, &pci_dword);
        addr |= (pci_dword & SNR_IMC_MMIO_MEM0_MASK) << 12;
 
        addr += box_ctl;
@@ -4405,6 +4405,12 @@ static void snr_uncore_mmio_init_box(struct intel_uncore_box *box)
        writel(IVBEP_PMON_BOX_CTL_INT, box->io_addr);
 }
 
+static void snr_uncore_mmio_init_box(struct intel_uncore_box *box)
+{
+       __snr_uncore_mmio_init_box(box, uncore_mmio_box_ctl(box),
+                                  SNR_IMC_MMIO_MEM0_OFFSET);
+}
+
 static void snr_uncore_mmio_disable_box(struct intel_uncore_box *box)
 {
        u32 config;