The 32-bit MSR interfaces rdmsr() and wrmsr() are planned to be removed. Use the related 64-bit variants instead.
Signed-off-by: Juergen Gross <[email protected]> --- drivers/char/agp/nvidia-agp.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/drivers/char/agp/nvidia-agp.c b/drivers/char/agp/nvidia-agp.c index 4787391bb6b4..3e760bc00afa 100644 --- a/drivers/char/agp/nvidia-agp.c +++ b/drivers/char/agp/nvidia-agp.c @@ -65,22 +65,20 @@ static int nvidia_fetch_size(void) static int nvidia_init_iorr(u32 base, u32 size) { - u32 base_hi, base_lo; - u32 mask_hi, mask_lo; - u32 sys_hi, sys_lo; + struct msr base_msr, mask_msr, sys_msr; u32 iorr_addr, free_iorr_addr; /* Find the iorr that is already used for the base */ /* If not found, determine the uppermost available iorr */ free_iorr_addr = AMD_K7_NUM_IORR; for (iorr_addr = 0; iorr_addr < AMD_K7_NUM_IORR; iorr_addr++) { - rdmsr(IORR_BASE0 + 2 * iorr_addr, base_lo, base_hi); - rdmsr(IORR_MASK0 + 2 * iorr_addr, mask_lo, mask_hi); + rdmsrq(IORR_BASE0 + 2 * iorr_addr, base_msr.q); + rdmsrq(IORR_MASK0 + 2 * iorr_addr, mask_msr.q); - if ((base_lo & 0xfffff000) == (base & 0xfffff000)) + if ((base_msr.l & 0xfffff000) == (base & 0xfffff000)) break; - if ((mask_lo & 0x00000800) == 0) + if ((mask_msr.l & 0x00000800) == 0) free_iorr_addr = iorr_addr; } @@ -89,16 +87,16 @@ static int nvidia_init_iorr(u32 base, u32 size) if (iorr_addr >= AMD_K7_NUM_IORR) return -EINVAL; } - base_hi = 0x0; - base_lo = (base & ~0xfff) | 0x18; - mask_hi = 0xf; - mask_lo = ((~(size - 1)) & 0xfffff000) | 0x800; - wrmsr(IORR_BASE0 + 2 * iorr_addr, base_lo, base_hi); - wrmsr(IORR_MASK0 + 2 * iorr_addr, mask_lo, mask_hi); - - rdmsr(SYSCFG, sys_lo, sys_hi); - sys_lo |= 0x00100000; - wrmsr(SYSCFG, sys_lo, sys_hi); + base_msr.h = 0x0; + base_msr.l = (base & ~0xfff) | 0x18; + mask_msr.h = 0xf; + mask_msr.l = ((~(size - 1)) & 0xfffff000) | 0x800; + wrmsrq(IORR_BASE0 + 2 * iorr_addr, base_msr.q); + wrmsrq(IORR_MASK0 + 2 * iorr_addr, mask_msr.q); + + rdmsrq(SYSCFG, sys_msr.q); + sys_msr.l |= 0x00100000; + wrmsrq(SYSCFG, sys_msr.q); return 0; } -- 2.54.0
