Re: [Linux-fbdev-devel] [PATCHv2 1/4] OMAP 2/3 DSS Library
From: Tony Lindgren <tony@atomide.com>
Date: 2008-10-24 19:13:25
Also in:
linux-omap
Hi, * Hardik Shah [off-list ref] [081024 03:16]:
quoted hunk ↗ jump to hunk
Cleaned up the DSS Library according to open source comments Removed unused #ifdefs Removed unused #defines Minor cleanups done Removed Architecture specific #ifdefs Signed-off-by: Brijesh Jadav <redacted> Hari Nagalla [off-list ref] Hardik Shah [off-list ref] Manjunath Hadli [off-list ref] R Sivaraj [off-list ref] Vaibhav Hiremath [off-list ref] --- arch/arm/plat-omap/Kconfig | 7 + arch/arm/plat-omap/Makefile | 2 +- arch/arm/plat-omap/include/mach/io.h | 2 +- arch/arm/plat-omap/include/mach/omap-dss.h | 921 ++++++++++++ arch/arm/plat-omap/omap-dss.c | 2248 ++++++++++++++++++++++++++++ 5 files changed, 3178 insertions(+), 2 deletions(-) create mode 100644 arch/arm/plat-omap/include/mach/omap-dss.h create mode 100644 arch/arm/plat-omap/omap-dss.cdiff --git a/arch/arm/plat-omap/include/mach/io.h b/arch/arm/plat-omap/include/mach/io.h index ea55267..2495656 100644 --- a/arch/arm/plat-omap/include/mach/io.h +++ b/arch/arm/plat-omap/include/mach/io.h@@ -142,11 +142,11 @@ #define OMAP343X_SDRC_VIRT 0xFD000000 #define OMAP343X_SDRC_SIZE SZ_1M - #define IO_OFFSET 0x90000000 #define __IO_ADDRESS(pa) ((pa) + IO_OFFSET)/* Works for L3 and L4 */ #define __OMAP2_IO_ADDRESS(pa) ((pa) + IO_OFFSET)/* Works for L3 and L4 */ #define io_v2p(va) ((va) - IO_OFFSET)/* Works for L3 and L4 */ +#define io_p2v(pa) __IO_ADDRESS(pa)/* Works for L3 and L4 */ /* DSP */ #define DSP_MEM_34XX_PHYS OMAP34XX_DSP_MEM_BASE /* 0x58000000 */
NAK for adding back io_p2v(). See below.
quoted hunk ↗ jump to hunk
diff --git a/arch/arm/plat-omap/include/mach/omap-dss.h b/arch/arm/plat-omap/include/mach/omap-dss.h new file mode 100644 index 0000000..d9a33bd --- /dev/null +++ b/arch/arm/plat-omap/include/mach/omap-dss.h@@ -0,0 +1,921 @@ +/* + * arch/arm/plat-omap/include/mach/omap-dss.h + * + * Copyright (C) 2004-2005 Texas Instruments. + * Copyright (C) 2006 Texas Instruments. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + + * Leveraged from original Linux 2.6 framebuffer driver for OMAP24xx + * Author: Andy Lowe (source@mvista.com) + * Copyright (C) 2004 MontaVista Software, Inc. + * + */ + +#ifndef __ASM_ARCH_OMAP_DISP_H +#define __ASM_ARCH_OMAP_DISP_H + +/* 16 bit uses LDRH/STRH, base +/- offset_8 */ +typedef struct { + volatile u16 offset[256]; +} __regbase16; +#define __REGV16(vaddr) (((__regbase16 *)((vaddr)&~0xff)) \ + ->offset[((vaddr)&0xff)>>1]) +#define __REG16(paddr) __REGV16(io_p2v(paddr)) + +/* 8/32 bit uses LDR/STR, base +/- offset_12 */ +typedef struct { + volatile u8 offset[4096]; +} __regbase8; +#define __REGV8(vaddr) (((__regbase8 *)((vaddr)&~4095)) \ + ->offset[((vaddr)&4095)>>0]) +#define __REG8(paddr) __REGV8(io_p2v(paddr)) + +typedef struct { + volatile u32 offset[4096]; +} __regbase32; +#define __REGV32(vaddr) (((__regbase32 *)((vaddr)&~4095)) \ + ->offset[((vaddr)&4095)>>2]) +#define __REG32(paddr) __REGV32(io_p2v(paddr)) +
NAK for adding back the __REG stuff. We've just spent quite a bit of effort to remove these. The __REG stuff is not portable. Please use ioremap and then __raw_read/write instead. Regards, Tony