|
@@ -1722,15 +1722,16 @@ static struct attribute_group snb_uncore_imc_format_group = {
|
|
|
static void snb_uncore_imc_init_box(struct intel_uncore_box *box)
|
|
|
{
|
|
|
struct pci_dev *pdev = box->pci_dev;
|
|
|
- u32 addr_lo, addr_hi;
|
|
|
+ int where = SNB_UNCORE_PCI_IMC_BAR_OFFSET;
|
|
|
resource_size_t addr;
|
|
|
+ u32 pci_dword;
|
|
|
|
|
|
- pci_read_config_dword(pdev, SNB_UNCORE_PCI_IMC_BAR_OFFSET, &addr_lo);
|
|
|
- addr = addr_lo;
|
|
|
+ pci_read_config_dword(pdev, where, &pci_dword);
|
|
|
+ addr = pci_dword;
|
|
|
|
|
|
#ifdef CONFIG_PHYS_ADDR_T_64BIT
|
|
|
- pci_read_config_dword(pdev, SNB_UNCORE_PCI_IMC_BAR_OFFSET+4, &addr_hi);
|
|
|
- addr = ((resource_size_t)addr_hi << 32) | addr_lo;
|
|
|
+ pci_read_config_dword(pdev, where + 4, &pci_dword);
|
|
|
+ addr |= ((resource_size_t)pci_dword << 32);
|
|
|
#endif
|
|
|
|
|
|
addr &= ~(PAGE_SIZE - 1);
|