|
|
@@ -268,11 +268,14 @@ static u64 get_sideband_reg_base_addr(void)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+#define DNV_MCHBAR_SIZE 0x8000
|
|
|
+#define DNV_SB_PORT_SIZE 0x10000
|
|
|
static int dnv_rd_reg(int port, int off, int op, void *data, size_t sz, char *name)
|
|
|
{
|
|
|
struct pci_dev *pdev;
|
|
|
char *base;
|
|
|
u64 addr;
|
|
|
+ unsigned long size;
|
|
|
|
|
|
if (op == 4) {
|
|
|
pdev = pci_get_device(PCI_VENDOR_ID_INTEL, 0x1980, NULL);
|
|
|
@@ -287,15 +290,17 @@ static int dnv_rd_reg(int port, int off, int op, void *data, size_t sz, char *na
|
|
|
addr = get_mem_ctrl_hub_base_addr();
|
|
|
if (!addr)
|
|
|
return -ENODEV;
|
|
|
+ size = DNV_MCHBAR_SIZE;
|
|
|
} else {
|
|
|
/* MMIO via sideband register base address */
|
|
|
addr = get_sideband_reg_base_addr();
|
|
|
if (!addr)
|
|
|
return -ENODEV;
|
|
|
addr += (port << 16);
|
|
|
+ size = DNV_SB_PORT_SIZE;
|
|
|
}
|
|
|
|
|
|
- base = ioremap((resource_size_t)addr, 0x10000);
|
|
|
+ base = ioremap((resource_size_t)addr, size);
|
|
|
if (!base)
|
|
|
return -ENODEV;
|
|
|
|