202 lines
5.6 KiB
C
202 lines
5.6 KiB
C
/* Copyright (c) 2008-2009, Code Aurora Forum. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are met:
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* * Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
* * Neither the name of Code Aurora nor
|
|
* the names of its contributors may be used to endorse or promote
|
|
* products derived from this software without specific prior written
|
|
* permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
* NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
*/
|
|
|
|
#ifndef MSM_FB_DEF_H
|
|
#define MSM_FB_DEF_H
|
|
|
|
#include <linux/module.h>
|
|
#include <linux/moduleparam.h>
|
|
#include <linux/kernel.h>
|
|
#include <linux/slab.h>
|
|
#include <linux/delay.h>
|
|
#include <linux/mm.h>
|
|
#include <linux/fb.h>
|
|
#include "msm_mdp.h"
|
|
#include <linux/init.h>
|
|
#include <linux/ioport.h>
|
|
#include <linux/device.h>
|
|
#include <linux/dma-mapping.h>
|
|
#include <linux/uaccess.h>
|
|
#include <linux/workqueue.h>
|
|
#include <linux/string.h>
|
|
#include <linux/version.h>
|
|
#include <linux/proc_fs.h>
|
|
#include <linux/vmalloc.h>
|
|
#include <linux/debugfs.h>
|
|
#include <linux/console.h>
|
|
|
|
#include <linux/kernel.h>
|
|
#include <linux/sched.h>
|
|
#include <linux/time.h>
|
|
#include <linux/init.h>
|
|
#include <linux/interrupt.h>
|
|
#include "linux/proc_fs.h"
|
|
#include <mach/hardware.h>
|
|
#include <linux/io.h>
|
|
#include <linux/fb.h>
|
|
#include <asm/system.h>
|
|
#include <asm/mach-types.h>
|
|
#include <linux/platform_device.h>
|
|
|
|
typedef s64 int64;
|
|
typedef s32 int32;
|
|
typedef s16 int16;
|
|
typedef s8 int8;
|
|
|
|
typedef u64 uint64;
|
|
typedef u32 uint32;
|
|
typedef u16 uint16;
|
|
typedef u8 uint8;
|
|
|
|
typedef s32 int4;
|
|
typedef s16 int2;
|
|
typedef s8 int1;
|
|
|
|
typedef u32 uint4;
|
|
typedef u16 uint2;
|
|
typedef u8 uint1;
|
|
|
|
typedef u32 dword;
|
|
typedef u16 word;
|
|
typedef u8 byte;
|
|
|
|
typedef unsigned int boolean;
|
|
|
|
#ifndef TRUE
|
|
#define TRUE 1
|
|
#endif
|
|
|
|
#ifndef FALSE
|
|
#define FALSE 0
|
|
#endif
|
|
|
|
#define MSM_FB_ENABLE_DBGFS
|
|
#define FEATURE_MDDI
|
|
|
|
#define outp32(addr, val) writel(val, addr)
|
|
#define outp16(addr, val) writew(val, addr)
|
|
#define outp8(addr, val) writeb(val, addr)
|
|
#define outp(addr, val) outp32(addr, val)
|
|
|
|
#ifndef MAX
|
|
#define MAX( x, y ) (((x) > (y)) ? (x) : (y))
|
|
#endif
|
|
|
|
#ifndef MIN
|
|
#define MIN( x, y ) (((x) < (y)) ? (x) : (y))
|
|
#endif
|
|
|
|
/*--------------------------------------------------------------------------*/
|
|
|
|
#define inp32(addr) readl(addr)
|
|
#define inp16(addr) readw(addr)
|
|
#define inp8(addr) readb(addr)
|
|
#define inp(addr) inp32(addr)
|
|
|
|
#define inpw(port) readw(port)
|
|
#define outpw(port, val) writew(val, port)
|
|
#define inpdw(port) readl(port)
|
|
#define outpdw(port, val) writel(val, port)
|
|
|
|
|
|
#define clk_busy_wait(x) msleep_interruptible((x)/1000)
|
|
|
|
#define memory_barrier()
|
|
|
|
#define assert(expr) \
|
|
if(!(expr)) { \
|
|
printk(KERN_ERR "msm_fb: assertion failed! %s,%s,%s,line=%d\n",\
|
|
#expr, __FILE__, __func__, __LINE__); \
|
|
}
|
|
|
|
#define ASSERT(x) assert(x)
|
|
|
|
#define DISP_EBI2_LOCAL_DEFINE
|
|
#ifdef DISP_EBI2_LOCAL_DEFINE
|
|
#define LCD_PRIM_BASE_PHYS 0x98000000
|
|
#define LCD_SECD_BASE_PHYS 0x9c000000
|
|
#define EBI2_PRIM_LCD_RS_PIN 0x20000
|
|
#define EBI2_SECD_LCD_RS_PIN 0x20000
|
|
|
|
#define EBI2_PRIM_LCD_CLR 0xC0
|
|
#define EBI2_PRIM_LCD_SEL 0x40
|
|
|
|
#define EBI2_SECD_LCD_CLR 0x300
|
|
#define EBI2_SECD_LCD_SEL 0x100
|
|
#endif
|
|
|
|
extern u32 msm_fb_msg_level;
|
|
|
|
/*
|
|
* Message printing priorities:
|
|
* LEVEL 0 KERN_EMERG (highest priority)
|
|
* LEVEL 1 KERN_ALERT
|
|
* LEVEL 2 KERN_CRIT
|
|
* LEVEL 3 KERN_ERR
|
|
* LEVEL 4 KERN_WARNING
|
|
* LEVEL 5 KERN_NOTICE
|
|
* LEVEL 6 KERN_INFO
|
|
* LEVEL 7 KERN_DEBUG (Lowest priority)
|
|
*/
|
|
#define MSM_FB_EMERG(msg, ...) \
|
|
if (msm_fb_msg_level > 0) \
|
|
printk(KERN_EMERG msg, ## __VA_ARGS__);
|
|
#define MSM_FB_ALERT(msg, ...) \
|
|
if (msm_fb_msg_level > 1) \
|
|
printk(KERN_ALERT msg, ## __VA_ARGS__);
|
|
#define MSM_FB_CRIT(msg, ...) \
|
|
if (msm_fb_msg_level > 2) \
|
|
printk(KERN_CRIT msg, ## __VA_ARGS__);
|
|
#define MSM_FB_ERR(msg, ...) \
|
|
if (msm_fb_msg_level > 3) \
|
|
printk(KERN_ERR msg, ## __VA_ARGS__);
|
|
#define MSM_FB_WARNING(msg, ...) \
|
|
if (msm_fb_msg_level > 4) \
|
|
printk(KERN_WARNING msg, ## __VA_ARGS__);
|
|
#define MSM_FB_NOTICE(msg, ...) \
|
|
if (msm_fb_msg_level > 5) \
|
|
printk(KERN_NOTICE msg, ## __VA_ARGS__);
|
|
#define MSM_FB_INFO(msg, ...) \
|
|
if (msm_fb_msg_level > 6) \
|
|
printk(KERN_INFO msg, ## __VA_ARGS__);
|
|
#define MSM_FB_DEBUG(msg, ...) \
|
|
if (msm_fb_msg_level > 7) \
|
|
printk(KERN_DEBUG msg, ## __VA_ARGS__);
|
|
|
|
#ifdef MSM_FB_C
|
|
unsigned char *msm_mdp_base;
|
|
unsigned char *msm_pmdh_base;
|
|
unsigned char *msm_emdh_base;
|
|
#else
|
|
extern unsigned char *msm_mdp_base;
|
|
extern unsigned char *msm_pmdh_base;
|
|
extern unsigned char *msm_emdh_base;
|
|
#endif
|
|
|
|
#endif /* MSM_FB_DEF_H */
|