mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 09:00:54 +07:00
perf/x86/intel/uncore: Factor out __snr_uncore_mmio_init_box
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
This commit is contained in:
parent
bc88a2fe21
commit
3442a9ecb8
@ -4380,10 +4380,10 @@ static struct pci_dev *snr_uncore_get_mc_dev(int id)
|
|||||||
return mc_dev;
|
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);
|
struct pci_dev *pdev = snr_uncore_get_mc_dev(box->dieid);
|
||||||
unsigned int box_ctl = uncore_mmio_box_ctl(box);
|
|
||||||
resource_size_t addr;
|
resource_size_t addr;
|
||||||
u32 pci_dword;
|
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);
|
pci_read_config_dword(pdev, SNR_IMC_MMIO_BASE_OFFSET, &pci_dword);
|
||||||
addr = (pci_dword & SNR_IMC_MMIO_BASE_MASK) << 23;
|
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 |= (pci_dword & SNR_IMC_MMIO_MEM0_MASK) << 12;
|
||||||
|
|
||||||
addr += box_ctl;
|
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);
|
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)
|
static void snr_uncore_mmio_disable_box(struct intel_uncore_box *box)
|
||||||
{
|
{
|
||||||
u32 config;
|
u32 config;
|
||||||
|
Loading…
Reference in New Issue
Block a user