From 88db6073b80cc7935c97a108544ee97ac8d89437 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=BB=84=E6=B6=9B?= Date: Thu, 23 Feb 2012 16:57:25 +0800 Subject: [PATCH] rk30: port ipp --- arch/arm/mach-rk29/include/mach/rk29-ipp.h | 1 + arch/arm/mach-rk30/devices.c | 25 ++++++++++++++++++++++ arch/arm/mach-rk30/include/mach/memory.h | 7 ++++++ drivers/staging/rk29/ipp/rk29-ipp.c | 4 ++-- 4 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 arch/arm/mach-rk29/include/mach/rk29-ipp.h diff --git a/arch/arm/mach-rk29/include/mach/rk29-ipp.h b/arch/arm/mach-rk29/include/mach/rk29-ipp.h new file mode 100644 index 000000000000..706e19eed5f9 --- /dev/null +++ b/arch/arm/mach-rk29/include/mach/rk29-ipp.h @@ -0,0 +1 @@ +#include diff --git a/arch/arm/mach-rk30/devices.c b/arch/arm/mach-rk30/devices.c index 0e40bf740398..708eaaeb4348 100755 --- a/arch/arm/mach-rk30/devices.c +++ b/arch/arm/mach-rk30/devices.c @@ -745,6 +745,28 @@ static struct platform_device device_rga = { }; #endif +#ifdef CONFIG_RK29_IPP +static struct resource resource_ipp[] = { + [0] = { + .start = RK30_IPP_PHYS, + .end = RK30_IPP_PHYS + RK30_IPP_SIZE - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = IRQ_IPP, + .end = IRQ_IPP, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device device_ipp = { + .name = "rk29-ipp", + .id = -1, + .num_resources = ARRAY_SIZE(resource_ipp), + .resource = resource_ipp, +}; +#endif + #ifdef CONFIG_KEYS_RK29 extern struct rk29_keys_platform_data rk29_keys_pdata; static struct platform_device device_keys = { @@ -771,6 +793,9 @@ static int __init rk30_init_devices(void) #ifdef CONFIG_RGA_RK30 platform_device_register(&device_rga); #endif +#ifdef CONFIG_RK29_IPP + platform_device_register(&device_ipp); +#endif #ifdef CONFIG_LCDC_RK30 platform_device_register(&device_lcdc); #endif diff --git a/arch/arm/mach-rk30/include/mach/memory.h b/arch/arm/mach-rk30/include/mach/memory.h index c30244efe8d5..37d66ae13993 100644 --- a/arch/arm/mach-rk30/include/mach/memory.h +++ b/arch/arm/mach-rk30/include/mach/memory.h @@ -1,6 +1,8 @@ #ifndef __MACH_MEMORY_H #define __MACH_MEMORY_H +#include + /* * Physical DRAM offset. */ @@ -14,4 +16,9 @@ #define SRAM_DATA_OFFSET 0xFEF03000 #define SRAM_DATA_END 0xFEF03FFF +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 34)) +#define dmac_clean_range(start, end) dmac_map_area(start, end - start, DMA_TO_DEVICE) +#define dmac_inv_range(start, end) dmac_unmap_area(start, end - start, DMA_FROM_DEVICE) +#endif + #endif diff --git a/drivers/staging/rk29/ipp/rk29-ipp.c b/drivers/staging/rk29/ipp/rk29-ipp.c index 853138558088..d3509d9b2456 100755 --- a/drivers/staging/rk29/ipp/rk29-ipp.c +++ b/drivers/staging/rk29/ipp/rk29-ipp.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include #include #include @@ -38,7 +38,7 @@ #include #include #include -#include +#include #include #include #include -- 2.34.1