/* * linux/drivers/video/pxafb.c * * Copyright (C) 1999 Eric A. Thomas. * Copyright (C) 2004 Jean-Frederic Clere. * Copyright (C) 2004 Ian Campbell. * Copyright (C) 2004 Jeff Lackey. * Based on sa1100fb.c Copyright (C) 1999 Eric A. Thomas * which in turn is * Based on acornfb.c Copyright (C) Russell King. * * This file is subject to the terms and conditions of the GNU General Public * License. See the file COPYING in the main directory of this archive for * more details. * * Intel PXA250/210 LCD Controller Frame Buffer Driver * * Please direct your questions and comments on this driver to the following * email address: * * linux-arm-kernel@lists.arm.linux.org.uk * */#include<linux/config.h>#include<linux/module.h>#include<linux/moduleparam.h>#include<linux/kernel.h>#include<linux/sched.h>#include<linux/errno.h>#include<linux/string.h>#include<linux/interrupt.h>#include<linux/slab.h>#include<linux/fb.h>#include<linux/delay.h>#include<linux/init.h>#include<linux/ioport.h>#include<linux/cpufreq.h>#include<linux/device.h>#include<linux/dma-mapping.h>#include<asm/hardware.h>#include<asm/io.h>#include<asm/irq.h>#include<asm/uaccess.h>#include<asm/div64.h>#include<asm/arch/pxa-regs.h>#include<asm/arch/bitfield.h>#include<asm/arch/pxafb.h>/* * Complain if VAR is out of range. */#define DEBUG_VAR 1#include"pxafb.h"/* Bits which should not be set in machine configuration structures */#define LCCR0_INVALID_CONFIG_MASK (LCCR0_OUM|LCCR0_BM|LCCR0_QDM|LCCR0_DIS|LCCR0_EFM|LCCR0_IUM|LCCR0_SFM|LCCR0_LDM|LCCR0_ENB)#define LCCR3_INVALID_CONFIG_MASK (LCCR3_HSP|LCCR3_VSP|LCCR3_PCD|LCCR3_BPP)staticvoid(*pxafb_backlight_power)(int);staticvoid(*pxafb_lcd_power)(int);staticintpxafb_activate_var(structfb_var_screeninfo*var,structpxafb_info*);staticvoidset_ctrlr_state(structpxafb_info*fbi,u_intstate);#ifdef CONFIG_FB_PXA_PARAMETERS#define PXAFB_OPTIONS_SIZE 256staticcharg_options[PXAFB_OPTIONS_SIZE]__initdata="";#endifstaticinlinevoidpxafb_schedule_work(structpxafb_info*fbi,u_intstate){unsignedlongflags;local_irq_save(flags);