Add arch_phys_wc_{add, del} to manipulate WC MTRRs if needed
authorAndy Lutomirski <luto@amacapital.net>
Mon, 13 May 2013 23:58:40 +0000 (23:58 +0000)
committerDave Airlie <airlied@redhat.com>
Fri, 31 May 2013 03:02:52 +0000 (13:02 +1000)
commitd0d98eedee2178c803dd824bb09f52b0e2ac1811
tree302ece15c574dc061b1dea4e67125c7b01342154
parente81f3d81e282a156b47c1c2c09a1976e34073060
Add arch_phys_wc_{add, del} to manipulate WC MTRRs if needed

Several drivers currently use mtrr_add through various #ifdef guards
and/or drm wrappers.  The vast majority of them want to add WC MTRRs
on x86 systems and don't actually need the MTRR if PAT (i.e.
ioremap_wc, etc) are working.

arch_phys_wc_add and arch_phys_wc_del are new functions, available
on all architectures and configurations, that add WC MTRRs on x86 if
needed (and handle errors) and do nothing at all otherwise.  They're
also easier to use than mtrr_add and mtrr_del, so the call sites can
be simplified.

As an added benefit, this will avoid wasting MTRRs and possibly
warning pointlessly on PAT-supporting systems.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
arch/x86/include/asm/io.h
arch/x86/include/asm/mtrr.h
arch/x86/kernel/cpu/mtrr/main.c
include/linux/io.h