The header asm/mach-au1x00/au1000.h is unused apart from pulling in <linux/delay.h> (for mdelay()) and <linux/io.h> (for KSEG1ADDR()). Then the only platform specific part in the driver is the usage of the KSEG1ADDR macro, which for the non-mips case can be stubbed.
Signed-off-by: Uwe Kleine-König <[email protected]> --- drivers/video/fbdev/Kconfig | 3 ++- drivers/video/fbdev/au1100fb.c | 12 ++++++++++-- drivers/video/fbdev/au1100fb.h | 2 -- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig index 45733522ff48..4514c42db9fa 100644 --- a/drivers/video/fbdev/Kconfig +++ b/drivers/video/fbdev/Kconfig @@ -1345,7 +1345,8 @@ endchoice config FB_AU1100 bool "Au1100 LCD Driver" - depends on (FB = y) && MIPS_ALCHEMY + depends on FB + depends on MIPS_ALCHEMY || COMPILE_TEST select FB_IOMEM_HELPERS help This is the framebuffer driver for the AMD Au1100 SOC. It can drive diff --git a/drivers/video/fbdev/au1100fb.c b/drivers/video/fbdev/au1100fb.c index a0e1aceaf9a6..758002cb5ea8 100644 --- a/drivers/video/fbdev/au1100fb.c +++ b/drivers/video/fbdev/au1100fb.c @@ -42,6 +42,8 @@ * 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <linux/clk.h> +#include <linux/delay.h> +#include <linux/io.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/errno.h> @@ -55,12 +57,15 @@ #include <linux/platform_device.h> #include <linux/slab.h> -#include <asm/mach-au1x00/au1000.h> - #define DEBUG 0 #include "au1100fb.h" +#if defined(CONFIG_COMPILE_TEST) && !defined(CONFIG_MIPS) +/* This is only defined to be able to compile this driver on non-mips platforms */ +#define KSEG1ADDR(x) (x) +#endif + #define DRIVER_NAME "au1100fb" #define DRIVER_DESC "LCD controller driver for AU1100 processors" @@ -331,7 +336,10 @@ static int au1100fb_fb_mmap(struct fb_info *fbi, struct vm_area_struct *vma) vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); +#ifndef CONFIG_S390 + /* On s390 pgprot_val() is a function and thus not a lvalue */ pgprot_val(vma->vm_page_prot) |= (6 << 9); //CCA=6 +#endif return dma_mmap_coherent(fbdev->dev, vma, fbdev->fb_mem, fbdev->fb_phys, fbdev->fb_len); diff --git a/drivers/video/fbdev/au1100fb.h b/drivers/video/fbdev/au1100fb.h index dc53d063fcc3..998328cd16a2 100644 --- a/drivers/video/fbdev/au1100fb.h +++ b/drivers/video/fbdev/au1100fb.h @@ -30,8 +30,6 @@ #ifndef _AU1100LCD_H #define _AU1100LCD_H -#include <asm/mach-au1x00/au1000.h> - #define print_err(f, arg...) printk(KERN_ERR DRIVER_NAME ": " f "\n", ## arg) #define print_warn(f, arg...) printk(KERN_WARNING DRIVER_NAME ": " f "\n", ## arg) #define print_info(f, arg...) printk(KERN_INFO DRIVER_NAME ": " f "\n", ## arg) -- 2.47.3
