diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/backing-dev.h | 6 | ||||
-rw-r--r-- | include/linux/bug.h | 47 | ||||
-rw-r--r-- | include/linux/compiler-gcc.h | 3 | ||||
-rw-r--r-- | include/linux/compiler-gcc3.h | 8 | ||||
-rw-r--r-- | include/linux/compiler-gcc4.h | 36 | ||||
-rw-r--r-- | include/linux/compiler.h | 32 | ||||
-rw-r--r-- | include/linux/lockdep.h | 4 | ||||
-rw-r--r-- | include/linux/pagemap.h | 1 | ||||
-rw-r--r-- | include/linux/platform_data/lp855x.h | 19 | ||||
-rw-r--r-- | include/linux/printk.h | 18 | ||||
-rw-r--r-- | include/linux/smp.h | 3 | ||||
-rw-r--r-- | include/uapi/linux/elf.h | 12 | ||||
-rw-r--r-- | include/uapi/linux/fs.h | 3 | ||||
-rw-r--r-- | include/video/exynos_mipi_dsim.h | 1 | ||||
-rw-r--r-- | include/video/mmp_disp.h | 352 | ||||
-rw-r--r-- | include/video/samsung_fimd.h | 205 |
16 files changed, 590 insertions, 160 deletions
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index 12731a19ef06..350459910fe1 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h | |||
@@ -254,6 +254,7 @@ int bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ratio); | |||
254 | #define BDI_CAP_EXEC_MAP 0x00000040 | 254 | #define BDI_CAP_EXEC_MAP 0x00000040 |
255 | #define BDI_CAP_NO_ACCT_WB 0x00000080 | 255 | #define BDI_CAP_NO_ACCT_WB 0x00000080 |
256 | #define BDI_CAP_SWAP_BACKED 0x00000100 | 256 | #define BDI_CAP_SWAP_BACKED 0x00000100 |
257 | #define BDI_CAP_STABLE_WRITES 0x00000200 | ||
257 | 258 | ||
258 | #define BDI_CAP_VMFLAGS \ | 259 | #define BDI_CAP_VMFLAGS \ |
259 | (BDI_CAP_READ_MAP | BDI_CAP_WRITE_MAP | BDI_CAP_EXEC_MAP) | 260 | (BDI_CAP_READ_MAP | BDI_CAP_WRITE_MAP | BDI_CAP_EXEC_MAP) |
@@ -308,6 +309,11 @@ long wait_iff_congested(struct zone *zone, int sync, long timeout); | |||
308 | int pdflush_proc_obsolete(struct ctl_table *table, int write, | 309 | int pdflush_proc_obsolete(struct ctl_table *table, int write, |
309 | void __user *buffer, size_t *lenp, loff_t *ppos); | 310 | void __user *buffer, size_t *lenp, loff_t *ppos); |
310 | 311 | ||
312 | static inline bool bdi_cap_stable_pages_required(struct backing_dev_info *bdi) | ||
313 | { | ||
314 | return bdi->capabilities & BDI_CAP_STABLE_WRITES; | ||
315 | } | ||
316 | |||
311 | static inline bool bdi_cap_writeback_dirty(struct backing_dev_info *bdi) | 317 | static inline bool bdi_cap_writeback_dirty(struct backing_dev_info *bdi) |
312 | { | 318 | { |
313 | return !(bdi->capabilities & BDI_CAP_NO_WRITEBACK); | 319 | return !(bdi->capabilities & BDI_CAP_NO_WRITEBACK); |
diff --git a/include/linux/bug.h b/include/linux/bug.h index b1cf40de847e..7f4818673c41 100644 --- a/include/linux/bug.h +++ b/include/linux/bug.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _LINUX_BUG_H | 2 | #define _LINUX_BUG_H |
3 | 3 | ||
4 | #include <asm/bug.h> | 4 | #include <asm/bug.h> |
5 | #include <linux/compiler.h> | ||
5 | 6 | ||
6 | enum bug_trap_type { | 7 | enum bug_trap_type { |
7 | BUG_TRAP_TYPE_NONE = 0, | 8 | BUG_TRAP_TYPE_NONE = 0, |
@@ -12,11 +13,12 @@ enum bug_trap_type { | |||
12 | struct pt_regs; | 13 | struct pt_regs; |
13 | 14 | ||
14 | #ifdef __CHECKER__ | 15 | #ifdef __CHECKER__ |
15 | #define BUILD_BUG_ON_NOT_POWER_OF_2(n) | 16 | #define BUILD_BUG_ON_NOT_POWER_OF_2(n) (0) |
16 | #define BUILD_BUG_ON_ZERO(e) (0) | 17 | #define BUILD_BUG_ON_ZERO(e) (0) |
17 | #define BUILD_BUG_ON_NULL(e) ((void*)0) | 18 | #define BUILD_BUG_ON_NULL(e) ((void*)0) |
18 | #define BUILD_BUG_ON_INVALID(e) (0) | 19 | #define BUILD_BUG_ON_INVALID(e) (0) |
19 | #define BUILD_BUG_ON(condition) | 20 | #define BUILD_BUG_ON_MSG(cond, msg) (0) |
21 | #define BUILD_BUG_ON(condition) (0) | ||
20 | #define BUILD_BUG() (0) | 22 | #define BUILD_BUG() (0) |
21 | #else /* __CHECKER__ */ | 23 | #else /* __CHECKER__ */ |
22 | 24 | ||
@@ -39,29 +41,37 @@ struct pt_regs; | |||
39 | #define BUILD_BUG_ON_INVALID(e) ((void)(sizeof((__force long)(e)))) | 41 | #define BUILD_BUG_ON_INVALID(e) ((void)(sizeof((__force long)(e)))) |
40 | 42 | ||
41 | /** | 43 | /** |
44 | * BUILD_BUG_ON_MSG - break compile if a condition is true & emit supplied | ||
45 | * error message. | ||
46 | * @condition: the condition which the compiler should know is false. | ||
47 | * | ||
48 | * See BUILD_BUG_ON for description. | ||
49 | */ | ||
50 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) | ||
51 | |||
52 | /** | ||
42 | * BUILD_BUG_ON - break compile if a condition is true. | 53 | * BUILD_BUG_ON - break compile if a condition is true. |
43 | * @condition: the condition which the compiler should know is false. | 54 | * @condition: the condition which the compiler should know is false. |
44 | * | 55 | * |
45 | * If you have some code which relies on certain constants being equal, or | 56 | * If you have some code which relies on certain constants being equal, or |
46 | * other compile-time-evaluated condition, you should use BUILD_BUG_ON to | 57 | * some other compile-time-evaluated condition, you should use BUILD_BUG_ON to |
47 | * detect if someone changes it. | 58 | * detect if someone changes it. |
48 | * | 59 | * |
49 | * The implementation uses gcc's reluctance to create a negative array, but | 60 | * The implementation uses gcc's reluctance to create a negative array, but gcc |
50 | * gcc (as of 4.4) only emits that error for obvious cases (eg. not arguments | 61 | * (as of 4.4) only emits that error for obvious cases (e.g. not arguments to |
51 | * to inline functions). So as a fallback we use the optimizer; if it can't | 62 | * inline functions). Luckily, in 4.3 they added the "error" function |
52 | * prove the condition is false, it will cause a link error on the undefined | 63 | * attribute just for this type of case. Thus, we use a negative sized array |
53 | * "__build_bug_on_failed". This error message can be harder to track down | 64 | * (should always create an error on gcc versions older than 4.4) and then call |
54 | * though, hence the two different methods. | 65 | * an undefined function with the error attribute (should always create an |
66 | * error on gcc 4.3 and later). If for some reason, neither creates a | ||
67 | * compile-time error, we'll still have a link-time error, which is harder to | ||
68 | * track down. | ||
55 | */ | 69 | */ |
56 | #ifndef __OPTIMIZE__ | 70 | #ifndef __OPTIMIZE__ |
57 | #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) | 71 | #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) |
58 | #else | 72 | #else |
59 | extern int __build_bug_on_failed; | 73 | #define BUILD_BUG_ON(condition) \ |
60 | #define BUILD_BUG_ON(condition) \ | 74 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition) |
61 | do { \ | ||
62 | ((void)sizeof(char[1 - 2*!!(condition)])); \ | ||
63 | if (condition) __build_bug_on_failed = 1; \ | ||
64 | } while(0) | ||
65 | #endif | 75 | #endif |
66 | 76 | ||
67 | /** | 77 | /** |
@@ -71,12 +81,7 @@ extern int __build_bug_on_failed; | |||
71 | * build time, you should use BUILD_BUG to detect if it is | 81 | * build time, you should use BUILD_BUG to detect if it is |
72 | * unexpectedly used. | 82 | * unexpectedly used. |
73 | */ | 83 | */ |
74 | #define BUILD_BUG() \ | 84 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed") |
75 | do { \ | ||
76 | extern void __build_bug_failed(void) \ | ||
77 | __linktime_error("BUILD_BUG failed"); \ | ||
78 | __build_bug_failed(); \ | ||
79 | } while (0) | ||
80 | 85 | ||
81 | #endif /* __CHECKER__ */ | 86 | #endif /* __CHECKER__ */ |
82 | 87 | ||
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index 6a6d7aefe12d..24545cd90a25 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h | |||
@@ -5,6 +5,9 @@ | |||
5 | /* | 5 | /* |
6 | * Common definitions for all gcc versions go here. | 6 | * Common definitions for all gcc versions go here. |
7 | */ | 7 | */ |
8 | #define GCC_VERSION (__GNUC__ * 10000 \ | ||
9 | + __GNUC_MINOR__ * 100 \ | ||
10 | + __GNUC_PATCHLEVEL__) | ||
8 | 11 | ||
9 | 12 | ||
10 | /* Optimization barrier */ | 13 | /* Optimization barrier */ |
diff --git a/include/linux/compiler-gcc3.h b/include/linux/compiler-gcc3.h index 37d412436d0f..7d89febe4d79 100644 --- a/include/linux/compiler-gcc3.h +++ b/include/linux/compiler-gcc3.h | |||
@@ -2,22 +2,22 @@ | |||
2 | #error "Please don't include <linux/compiler-gcc3.h> directly, include <linux/compiler.h> instead." | 2 | #error "Please don't include <linux/compiler-gcc3.h> directly, include <linux/compiler.h> instead." |
3 | #endif | 3 | #endif |
4 | 4 | ||
5 | #if __GNUC_MINOR__ < 2 | 5 | #if GCC_VERSION < 30200 |
6 | # error Sorry, your compiler is too old - please upgrade it. | 6 | # error Sorry, your compiler is too old - please upgrade it. |
7 | #endif | 7 | #endif |
8 | 8 | ||
9 | #if __GNUC_MINOR__ >= 3 | 9 | #if GCC_VERSION >= 30300 |
10 | # define __used __attribute__((__used__)) | 10 | # define __used __attribute__((__used__)) |
11 | #else | 11 | #else |
12 | # define __used __attribute__((__unused__)) | 12 | # define __used __attribute__((__unused__)) |
13 | #endif | 13 | #endif |
14 | 14 | ||
15 | #if __GNUC_MINOR__ >= 4 | 15 | #if GCC_VERSION >= 30400 |
16 | #define __must_check __attribute__((warn_unused_result)) | 16 | #define __must_check __attribute__((warn_unused_result)) |
17 | #endif | 17 | #endif |
18 | 18 | ||
19 | #ifdef CONFIG_GCOV_KERNEL | 19 | #ifdef CONFIG_GCOV_KERNEL |
20 | # if __GNUC_MINOR__ < 4 | 20 | # if GCC_VERSION < 30400 |
21 | # error "GCOV profiling support for gcc versions below 3.4 not included" | 21 | # error "GCOV profiling support for gcc versions below 3.4 not included" |
22 | # endif /* __GNUC_MINOR__ */ | 22 | # endif /* __GNUC_MINOR__ */ |
23 | #endif /* CONFIG_GCOV_KERNEL */ | 23 | #endif /* CONFIG_GCOV_KERNEL */ |
diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h index 662fd1b4c42a..68b162d92254 100644 --- a/include/linux/compiler-gcc4.h +++ b/include/linux/compiler-gcc4.h | |||
@@ -4,7 +4,7 @@ | |||
4 | 4 | ||
5 | /* GCC 4.1.[01] miscompiles __weak */ | 5 | /* GCC 4.1.[01] miscompiles __weak */ |
6 | #ifdef __KERNEL__ | 6 | #ifdef __KERNEL__ |
7 | # if __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ <= 1 | 7 | # if GCC_VERSION >= 40100 && GCC_VERSION <= 40101 |
8 | # error Your version of gcc miscompiles the __weak directive | 8 | # error Your version of gcc miscompiles the __weak directive |
9 | # endif | 9 | # endif |
10 | #endif | 10 | #endif |
@@ -13,7 +13,11 @@ | |||
13 | #define __must_check __attribute__((warn_unused_result)) | 13 | #define __must_check __attribute__((warn_unused_result)) |
14 | #define __compiler_offsetof(a,b) __builtin_offsetof(a,b) | 14 | #define __compiler_offsetof(a,b) __builtin_offsetof(a,b) |
15 | 15 | ||
16 | #if __GNUC_MINOR__ >= 3 | 16 | #if GCC_VERSION >= 40100 |
17 | # define __compiletime_object_size(obj) __builtin_object_size(obj, 0) | ||
18 | #endif | ||
19 | |||
20 | #if GCC_VERSION >= 40300 | ||
17 | /* Mark functions as cold. gcc will assume any path leading to a call | 21 | /* Mark functions as cold. gcc will assume any path leading to a call |
18 | to them will be unlikely. This means a lot of manual unlikely()s | 22 | to them will be unlikely. This means a lot of manual unlikely()s |
19 | are unnecessary now for any paths leading to the usual suspects | 23 | are unnecessary now for any paths leading to the usual suspects |
@@ -29,11 +33,15 @@ | |||
29 | the kernel context */ | 33 | the kernel context */ |
30 | #define __cold __attribute__((__cold__)) | 34 | #define __cold __attribute__((__cold__)) |
31 | 35 | ||
32 | #define __linktime_error(message) __attribute__((__error__(message))) | ||
33 | |||
34 | #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) | 36 | #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) |
35 | 37 | ||
36 | #if __GNUC_MINOR__ >= 5 | 38 | #ifndef __CHECKER__ |
39 | # define __compiletime_warning(message) __attribute__((warning(message))) | ||
40 | # define __compiletime_error(message) __attribute__((error(message))) | ||
41 | #endif /* __CHECKER__ */ | ||
42 | #endif /* GCC_VERSION >= 40300 */ | ||
43 | |||
44 | #if GCC_VERSION >= 40500 | ||
37 | /* | 45 | /* |
38 | * Mark a position in code as unreachable. This can be used to | 46 | * Mark a position in code as unreachable. This can be used to |
39 | * suppress control flow warnings after asm blocks that transfer | 47 | * suppress control flow warnings after asm blocks that transfer |
@@ -48,30 +56,22 @@ | |||
48 | /* Mark a function definition as prohibited from being cloned. */ | 56 | /* Mark a function definition as prohibited from being cloned. */ |
49 | #define __noclone __attribute__((__noclone__)) | 57 | #define __noclone __attribute__((__noclone__)) |
50 | 58 | ||
51 | #endif | 59 | #endif /* GCC_VERSION >= 40500 */ |
52 | #endif | ||
53 | 60 | ||
54 | #if __GNUC_MINOR__ >= 6 | 61 | #if GCC_VERSION >= 40600 |
55 | /* | 62 | /* |
56 | * Tell the optimizer that something else uses this function or variable. | 63 | * Tell the optimizer that something else uses this function or variable. |
57 | */ | 64 | */ |
58 | #define __visible __attribute__((externally_visible)) | 65 | #define __visible __attribute__((externally_visible)) |
59 | #endif | 66 | #endif |
60 | 67 | ||
61 | #if __GNUC_MINOR__ > 0 | ||
62 | #define __compiletime_object_size(obj) __builtin_object_size(obj, 0) | ||
63 | #endif | ||
64 | #if __GNUC_MINOR__ >= 3 && !defined(__CHECKER__) | ||
65 | #define __compiletime_warning(message) __attribute__((warning(message))) | ||
66 | #define __compiletime_error(message) __attribute__((error(message))) | ||
67 | #endif | ||
68 | 68 | ||
69 | #ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP | 69 | #ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP |
70 | #if __GNUC_MINOR__ >= 4 | 70 | #if GCC_VERSION >= 40400 |
71 | #define __HAVE_BUILTIN_BSWAP32__ | 71 | #define __HAVE_BUILTIN_BSWAP32__ |
72 | #define __HAVE_BUILTIN_BSWAP64__ | 72 | #define __HAVE_BUILTIN_BSWAP64__ |
73 | #endif | 73 | #endif |
74 | #if __GNUC_MINOR__ >= 8 || (defined(__powerpc__) && __GNUC_MINOR__ >= 6) | 74 | #if GCC_VERSION >= 40800 || (defined(__powerpc__) && GCC_VERSION >= 40600) |
75 | #define __HAVE_BUILTIN_BSWAP16__ | 75 | #define __HAVE_BUILTIN_BSWAP16__ |
76 | #endif | 76 | #endif |
77 | #endif | 77 | #endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */ |
diff --git a/include/linux/compiler.h b/include/linux/compiler.h index dd852b73b286..10b8f23fab0f 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h | |||
@@ -307,10 +307,36 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); | |||
307 | #endif | 307 | #endif |
308 | #ifndef __compiletime_error | 308 | #ifndef __compiletime_error |
309 | # define __compiletime_error(message) | 309 | # define __compiletime_error(message) |
310 | # define __compiletime_error_fallback(condition) \ | ||
311 | do { ((void)sizeof(char[1 - 2 * condition])); } while (0) | ||
312 | #else | ||
313 | # define __compiletime_error_fallback(condition) do { } while (0) | ||
310 | #endif | 314 | #endif |
311 | #ifndef __linktime_error | 315 | |
312 | # define __linktime_error(message) | 316 | #define __compiletime_assert(condition, msg, prefix, suffix) \ |
313 | #endif | 317 | do { \ |
318 | bool __cond = !(condition); \ | ||
319 | extern void prefix ## suffix(void) __compiletime_error(msg); \ | ||
320 | if (__cond) \ | ||
321 | prefix ## suffix(); \ | ||
322 | __compiletime_error_fallback(__cond); \ | ||
323 | } while (0) | ||
324 | |||
325 | #define _compiletime_assert(condition, msg, prefix, suffix) \ | ||
326 | __compiletime_assert(condition, msg, prefix, suffix) | ||
327 | |||
328 | /** | ||
329 | * compiletime_assert - break build and emit msg if condition is false | ||
330 | * @condition: a compile-time constant condition to check | ||
331 | * @msg: a message to emit if condition is false | ||
332 | * | ||
333 | * In tradition of POSIX assert, this macro will break the build if the | ||
334 | * supplied condition is *false*, emitting the supplied error message if the | ||
335 | * compiler has support to do so. | ||
336 | */ | ||
337 | #define compiletime_assert(condition, msg) \ | ||
338 | _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) | ||
339 | |||
314 | /* | 340 | /* |
315 | * Prevent the compiler from merging or refetching accesses. The compiler | 341 | * Prevent the compiler from merging or refetching accesses. The compiler |
316 | * is also forbidden from reordering successive instances of ACCESS_ONCE(), | 342 | * is also forbidden from reordering successive instances of ACCESS_ONCE(), |
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h index 2bca44b0893c..bfe88c4aa251 100644 --- a/include/linux/lockdep.h +++ b/include/linux/lockdep.h | |||
@@ -359,7 +359,9 @@ extern void lockdep_trace_alloc(gfp_t mask); | |||
359 | 359 | ||
360 | #define lockdep_depth(tsk) (debug_locks ? (tsk)->lockdep_depth : 0) | 360 | #define lockdep_depth(tsk) (debug_locks ? (tsk)->lockdep_depth : 0) |
361 | 361 | ||
362 | #define lockdep_assert_held(l) WARN_ON(debug_locks && !lockdep_is_held(l)) | 362 | #define lockdep_assert_held(l) do { \ |
363 | WARN_ON(debug_locks && !lockdep_is_held(l)); \ | ||
364 | } while (0) | ||
363 | 365 | ||
364 | #define lockdep_recursing(tsk) ((tsk)->lockdep_recursion) | 366 | #define lockdep_recursing(tsk) ((tsk)->lockdep_recursion) |
365 | 367 | ||
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 6da609d14c15..0e38e13eb249 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h | |||
@@ -414,6 +414,7 @@ static inline void wait_on_page_writeback(struct page *page) | |||
414 | } | 414 | } |
415 | 415 | ||
416 | extern void end_page_writeback(struct page *page); | 416 | extern void end_page_writeback(struct page *page); |
417 | void wait_for_stable_page(struct page *page); | ||
417 | 418 | ||
418 | /* | 419 | /* |
419 | * Add an arbitrary waiter to a page's wait queue | 420 | * Add an arbitrary waiter to a page's wait queue |
diff --git a/include/linux/platform_data/lp855x.h b/include/linux/platform_data/lp855x.h index e81f62d24ee2..20ee8b221dbd 100644 --- a/include/linux/platform_data/lp855x.h +++ b/include/linux/platform_data/lp855x.h | |||
@@ -49,12 +49,24 @@ | |||
49 | #define LP8556_FAST_CONFIG BIT(7) /* use it if EPROMs should be maintained | 49 | #define LP8556_FAST_CONFIG BIT(7) /* use it if EPROMs should be maintained |
50 | when exiting the low power mode */ | 50 | when exiting the low power mode */ |
51 | 51 | ||
52 | /* CONFIG register - LP8557 */ | ||
53 | #define LP8557_PWM_STANDBY BIT(7) | ||
54 | #define LP8557_PWM_FILTER BIT(6) | ||
55 | #define LP8557_RELOAD_EPROM BIT(3) /* use it if EPROMs should be reset | ||
56 | when the backlight turns on */ | ||
57 | #define LP8557_OFF_OPENLEDS BIT(2) | ||
58 | #define LP8557_PWM_CONFIG LP8557_PWM_ONLY | ||
59 | #define LP8557_I2C_CONFIG LP8557_I2C_ONLY | ||
60 | #define LP8557_COMB1_CONFIG LP8557_COMBINED1 | ||
61 | #define LP8557_COMB2_CONFIG LP8557_COMBINED2 | ||
62 | |||
52 | enum lp855x_chip_id { | 63 | enum lp855x_chip_id { |
53 | LP8550, | 64 | LP8550, |
54 | LP8551, | 65 | LP8551, |
55 | LP8552, | 66 | LP8552, |
56 | LP8553, | 67 | LP8553, |
57 | LP8556, | 68 | LP8556, |
69 | LP8557, | ||
58 | }; | 70 | }; |
59 | 71 | ||
60 | enum lp855x_brightness_ctrl_mode { | 72 | enum lp855x_brightness_ctrl_mode { |
@@ -89,6 +101,13 @@ enum lp8556_brightness_source { | |||
89 | LP8556_COMBINED2, /* pwm + i2c after the shaper block */ | 101 | LP8556_COMBINED2, /* pwm + i2c after the shaper block */ |
90 | }; | 102 | }; |
91 | 103 | ||
104 | enum lp8557_brightness_source { | ||
105 | LP8557_PWM_ONLY, | ||
106 | LP8557_I2C_ONLY, | ||
107 | LP8557_COMBINED1, /* pwm + i2c after the shaper block */ | ||
108 | LP8557_COMBINED2, /* pwm + i2c before the shaper block */ | ||
109 | }; | ||
110 | |||
92 | struct lp855x_rom_data { | 111 | struct lp855x_rom_data { |
93 | u8 addr; | 112 | u8 addr; |
94 | u8 val; | 113 | u8 val; |
diff --git a/include/linux/printk.h b/include/linux/printk.h index 5bef3045218e..1249a54d17e0 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h | |||
@@ -252,6 +252,15 @@ extern void dump_stack(void) __cold; | |||
252 | printk_once(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) | 252 | printk_once(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) |
253 | #define pr_cont_once(fmt, ...) \ | 253 | #define pr_cont_once(fmt, ...) \ |
254 | printk_once(KERN_CONT pr_fmt(fmt), ##__VA_ARGS__) | 254 | printk_once(KERN_CONT pr_fmt(fmt), ##__VA_ARGS__) |
255 | |||
256 | #if defined(DEBUG) | ||
257 | #define pr_devel_once(fmt, ...) \ | ||
258 | printk_once(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__) | ||
259 | #else | ||
260 | #define pr_devel_once(fmt, ...) \ | ||
261 | no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__) | ||
262 | #endif | ||
263 | |||
255 | /* If you are writing a driver, please use dev_dbg instead */ | 264 | /* If you are writing a driver, please use dev_dbg instead */ |
256 | #if defined(DEBUG) | 265 | #if defined(DEBUG) |
257 | #define pr_debug_once(fmt, ...) \ | 266 | #define pr_debug_once(fmt, ...) \ |
@@ -295,6 +304,15 @@ extern void dump_stack(void) __cold; | |||
295 | #define pr_info_ratelimited(fmt, ...) \ | 304 | #define pr_info_ratelimited(fmt, ...) \ |
296 | printk_ratelimited(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) | 305 | printk_ratelimited(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) |
297 | /* no pr_cont_ratelimited, don't do that... */ | 306 | /* no pr_cont_ratelimited, don't do that... */ |
307 | |||
308 | #if defined(DEBUG) | ||
309 | #define pr_devel_ratelimited(fmt, ...) \ | ||
310 | printk_ratelimited(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__) | ||
311 | #else | ||
312 | #define pr_devel_ratelimited(fmt, ...) \ | ||
313 | no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__) | ||
314 | #endif | ||
315 | |||
298 | /* If you are writing a driver, please use dev_dbg instead */ | 316 | /* If you are writing a driver, please use dev_dbg instead */ |
299 | #if defined(DEBUG) | 317 | #if defined(DEBUG) |
300 | #define pr_debug_ratelimited(fmt, ...) \ | 318 | #define pr_debug_ratelimited(fmt, ...) \ |
diff --git a/include/linux/smp.h b/include/linux/smp.h index dd6f06be3c9f..3e07a7df6478 100644 --- a/include/linux/smp.h +++ b/include/linux/smp.h | |||
@@ -89,7 +89,8 @@ void kick_all_cpus_sync(void); | |||
89 | #ifdef CONFIG_USE_GENERIC_SMP_HELPERS | 89 | #ifdef CONFIG_USE_GENERIC_SMP_HELPERS |
90 | void __init call_function_init(void); | 90 | void __init call_function_init(void); |
91 | void generic_smp_call_function_single_interrupt(void); | 91 | void generic_smp_call_function_single_interrupt(void); |
92 | void generic_smp_call_function_interrupt(void); | 92 | #define generic_smp_call_function_interrupt \ |
93 | generic_smp_call_function_single_interrupt | ||
93 | #else | 94 | #else |
94 | static inline void call_function_init(void) { } | 95 | static inline void call_function_init(void) { } |
95 | #endif | 96 | #endif |
diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h index 126a8175e3e2..900b9484445b 100644 --- a/include/uapi/linux/elf.h +++ b/include/uapi/linux/elf.h | |||
@@ -49,14 +49,14 @@ typedef __s64 Elf64_Sxword; | |||
49 | * | 49 | * |
50 | * Specifications are available in: | 50 | * Specifications are available in: |
51 | * | 51 | * |
52 | * - Sun microsystems: Linker and Libraries. | 52 | * - Oracle: Linker and Libraries. |
53 | * Part No: 817-1984-17, September 2008. | 53 | * Part No: 817–1984–19, August 2011. |
54 | * URL: http://docs.sun.com/app/docs/doc/817-1984 | 54 | * http://docs.oracle.com/cd/E18752_01/pdf/817-1984.pdf |
55 | * | 55 | * |
56 | * - System V ABI AMD64 Architecture Processor Supplement | 56 | * - System V ABI AMD64 Architecture Processor Supplement |
57 | * Draft Version 0.99., | 57 | * Draft Version 0.99.4, |
58 | * May 11, 2009. | 58 | * January 13, 2010. |
59 | * URL: http://www.x86-64.org/ | 59 | * http://www.cs.washington.edu/education/courses/cse351/12wi/supp-docs/abi.pdf |
60 | */ | 60 | */ |
61 | #define PN_XNUM 0xffff | 61 | #define PN_XNUM 0xffff |
62 | 62 | ||
diff --git a/include/uapi/linux/fs.h b/include/uapi/linux/fs.h index 780d4c6093eb..c7fc1e6517c3 100644 --- a/include/uapi/linux/fs.h +++ b/include/uapi/linux/fs.h | |||
@@ -86,6 +86,9 @@ struct inodes_stat_t { | |||
86 | #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ | 86 | #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ |
87 | #define MS_I_VERSION (1<<23) /* Update inode I_version field */ | 87 | #define MS_I_VERSION (1<<23) /* Update inode I_version field */ |
88 | #define MS_STRICTATIME (1<<24) /* Always perform atime updates */ | 88 | #define MS_STRICTATIME (1<<24) /* Always perform atime updates */ |
89 | |||
90 | /* These sb flags are internal to the kernel */ | ||
91 | #define MS_SNAP_STABLE (1<<27) /* Snapshot pages during writeback, if needed */ | ||
89 | #define MS_NOSEC (1<<28) | 92 | #define MS_NOSEC (1<<28) |
90 | #define MS_BORN (1<<29) | 93 | #define MS_BORN (1<<29) |
91 | #define MS_ACTIVE (1<<30) | 94 | #define MS_ACTIVE (1<<30) |
diff --git a/include/video/exynos_mipi_dsim.h b/include/video/exynos_mipi_dsim.h index 83ce5e667d47..89dc88a171af 100644 --- a/include/video/exynos_mipi_dsim.h +++ b/include/video/exynos_mipi_dsim.h | |||
@@ -220,7 +220,6 @@ struct mipi_dsim_config { | |||
220 | struct mipi_dsim_device { | 220 | struct mipi_dsim_device { |
221 | struct device *dev; | 221 | struct device *dev; |
222 | int id; | 222 | int id; |
223 | struct resource *res; | ||
224 | struct clk *clock; | 223 | struct clk *clock; |
225 | unsigned int irq; | 224 | unsigned int irq; |
226 | void __iomem *reg_base; | 225 | void __iomem *reg_base; |
diff --git a/include/video/mmp_disp.h b/include/video/mmp_disp.h new file mode 100644 index 000000000000..b9dd1fbb0082 --- /dev/null +++ b/include/video/mmp_disp.h | |||
@@ -0,0 +1,352 @@ | |||
1 | /* | ||
2 | * linux/include/video/mmp_disp.h | ||
3 | * Header file for Marvell MMP Display Controller | ||
4 | * | ||
5 | * Copyright (C) 2012 Marvell Technology Group Ltd. | ||
6 | * Authors: Zhou Zhu <zzhu3@marvell.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify it | ||
9 | * under the terms of the GNU General Public License as published by the | ||
10 | * Free Software Foundation; either version 2 of the License, or (at your | ||
11 | * option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, but WITHOUT | ||
14 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
15 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
16 | * more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License along with | ||
19 | * this program. If not, see <http://www.gnu.org/licenses/>. | ||
20 | * | ||
21 | */ | ||
22 | |||
23 | #ifndef _MMP_DISP_H_ | ||
24 | #define _MMP_DISP_H_ | ||
25 | #include <linux/kthread.h> | ||
26 | |||
27 | enum { | ||
28 | PIXFMT_UYVY = 0, | ||
29 | PIXFMT_VYUY, | ||
30 | PIXFMT_YUYV, | ||
31 | PIXFMT_YUV422P, | ||
32 | PIXFMT_YVU422P, | ||
33 | PIXFMT_YUV420P, | ||
34 | PIXFMT_YVU420P, | ||
35 | PIXFMT_RGB565 = 0x100, | ||
36 | PIXFMT_BGR565, | ||
37 | PIXFMT_RGB1555, | ||
38 | PIXFMT_BGR1555, | ||
39 | PIXFMT_RGB888PACK, | ||
40 | PIXFMT_BGR888PACK, | ||
41 | PIXFMT_RGB888UNPACK, | ||
42 | PIXFMT_BGR888UNPACK, | ||
43 | PIXFMT_RGBA888, | ||
44 | PIXFMT_BGRA888, | ||
45 | PIXFMT_RGB666, /* for output usage */ | ||
46 | PIXFMT_PSEUDOCOLOR = 0x200, | ||
47 | }; | ||
48 | |||
49 | static inline int pixfmt_to_stride(int pix_fmt) | ||
50 | { | ||
51 | switch (pix_fmt) { | ||
52 | case PIXFMT_RGB565: | ||
53 | case PIXFMT_BGR565: | ||
54 | case PIXFMT_RGB1555: | ||
55 | case PIXFMT_BGR1555: | ||
56 | case PIXFMT_UYVY: | ||
57 | case PIXFMT_VYUY: | ||
58 | case PIXFMT_YUYV: | ||
59 | return 2; | ||
60 | case PIXFMT_RGB888UNPACK: | ||
61 | case PIXFMT_BGR888UNPACK: | ||
62 | case PIXFMT_RGBA888: | ||
63 | case PIXFMT_BGRA888: | ||
64 | return 4; | ||
65 | case PIXFMT_RGB888PACK: | ||
66 | case PIXFMT_BGR888PACK: | ||
67 | return 3; | ||
68 | case PIXFMT_YUV422P: | ||
69 | case PIXFMT_YVU422P: | ||
70 | case PIXFMT_YUV420P: | ||
71 | case PIXFMT_YVU420P: | ||
72 | case PIXFMT_PSEUDOCOLOR: | ||
73 | return 1; | ||
74 | default: | ||
75 | return 0; | ||
76 | } | ||
77 | } | ||
78 | |||
79 | /* parameters used by path/overlay */ | ||
80 | /* overlay related para: win/addr */ | ||
81 | struct mmp_win { | ||
82 | /* position/size of window */ | ||
83 | u16 xsrc; | ||
84 | u16 ysrc; | ||
85 | u16 xdst; | ||
86 | u16 ydst; | ||
87 | u16 xpos; | ||
88 | u16 ypos; | ||
89 | u16 left_crop; | ||
90 | u16 right_crop; | ||
91 | u16 up_crop; | ||
92 | u16 bottom_crop; | ||
93 | int pix_fmt; | ||
94 | }; | ||
95 | |||
96 | struct mmp_addr { | ||
97 | /* phys address */ | ||
98 | u32 phys[6]; | ||
99 | }; | ||
100 | |||
101 | /* path related para: mode */ | ||
102 | struct mmp_mode { | ||
103 | const char *name; | ||
104 | u32 refresh; | ||
105 | u32 xres; | ||
106 | u32 yres; | ||
107 | u32 left_margin; | ||
108 | u32 right_margin; | ||
109 | u32 upper_margin; | ||
110 | u32 lower_margin; | ||
111 | u32 hsync_len; | ||
112 | u32 vsync_len; | ||
113 | u32 hsync_invert; | ||
114 | u32 vsync_invert; | ||
115 | u32 invert_pixclock; | ||
116 | u32 pixclock_freq; | ||
117 | int pix_fmt_out; | ||
118 | }; | ||
119 | |||
120 | /* main structures */ | ||
121 | struct mmp_path; | ||
122 | struct mmp_overlay; | ||
123 | struct mmp_panel; | ||
124 | |||
125 | /* status types */ | ||
126 | enum { | ||
127 | MMP_OFF = 0, | ||
128 | MMP_ON, | ||
129 | }; | ||
130 | |||
131 | static inline const char *stat_name(int stat) | ||
132 | { | ||
133 | switch (stat) { | ||
134 | case MMP_OFF: | ||
135 | return "OFF"; | ||
136 | case MMP_ON: | ||
137 | return "ON"; | ||
138 | default: | ||
139 | return "UNKNOWNSTAT"; | ||
140 | } | ||
141 | } | ||
142 | |||
143 | struct mmp_overlay_ops { | ||
144 | /* should be provided by driver */ | ||
145 | void (*set_fetch)(struct mmp_overlay *overlay, int fetch_id); | ||
146 | void (*set_onoff)(struct mmp_overlay *overlay, int status); | ||
147 | void (*set_win)(struct mmp_overlay *overlay, struct mmp_win *win); | ||
148 | int (*set_addr)(struct mmp_overlay *overlay, struct mmp_addr *addr); | ||
149 | }; | ||
150 | |||
151 | /* overlay describes a z-order indexed slot in each path. */ | ||
152 | struct mmp_overlay { | ||
153 | int id; | ||
154 | const char *name; | ||
155 | struct mmp_path *path; | ||
156 | |||
157 | /* overlay info: private data */ | ||
158 | int dmafetch_id; | ||
159 | struct mmp_addr addr; | ||
160 | struct mmp_win win; | ||
161 | |||
162 | /* state */ | ||
163 | int open_count; | ||
164 | int status; | ||
165 | struct mutex access_ok; | ||
166 | |||
167 | struct mmp_overlay_ops *ops; | ||
168 | }; | ||
169 | |||
170 | /* panel type */ | ||
171 | enum { | ||
172 | PANELTYPE_ACTIVE = 0, | ||
173 | PANELTYPE_SMART, | ||
174 | PANELTYPE_TV, | ||
175 | PANELTYPE_DSI_CMD, | ||
176 | PANELTYPE_DSI_VIDEO, | ||
177 | }; | ||
178 | |||
179 | struct mmp_panel { | ||
180 | /* use node to register to list */ | ||
181 | struct list_head node; | ||
182 | const char *name; | ||
183 | /* path name used to connect to proper path configed */ | ||
184 | const char *plat_path_name; | ||
185 | struct device *dev; | ||
186 | int panel_type; | ||
187 | void *plat_data; | ||
188 | int (*get_modelist)(struct mmp_panel *panel, | ||
189 | struct mmp_mode **modelist); | ||
190 | void (*set_mode)(struct mmp_panel *panel, | ||
191 | struct mmp_mode *mode); | ||
192 | void (*set_onoff)(struct mmp_panel *panel, | ||
193 | int status); | ||
194 | }; | ||
195 | |||
196 | struct mmp_path_ops { | ||
197 | int (*check_status)(struct mmp_path *path); | ||
198 | struct mmp_overlay *(*get_overlay)(struct mmp_path *path, | ||
199 | int overlay_id); | ||
200 | int (*get_modelist)(struct mmp_path *path, | ||
201 | struct mmp_mode **modelist); | ||
202 | |||
203 | /* follow ops should be provided by driver */ | ||
204 | void (*set_mode)(struct mmp_path *path, struct mmp_mode *mode); | ||
205 | void (*set_onoff)(struct mmp_path *path, int status); | ||
206 | /* todo: add query */ | ||
207 | }; | ||
208 | |||
209 | /* path output types */ | ||
210 | enum { | ||
211 | PATH_OUT_PARALLEL, | ||
212 | PATH_OUT_DSI, | ||
213 | PATH_OUT_HDMI, | ||
214 | }; | ||
215 | |||
216 | /* path is main part of mmp-disp */ | ||
217 | struct mmp_path { | ||
218 | /* use node to register to list */ | ||
219 | struct list_head node; | ||
220 | |||
221 | /* init data */ | ||
222 | struct device *dev; | ||
223 | |||
224 | int id; | ||
225 | const char *name; | ||
226 | int output_type; | ||
227 | struct mmp_panel *panel; | ||
228 | void *plat_data; | ||
229 | |||
230 | /* dynamic use */ | ||
231 | struct mmp_mode mode; | ||
232 | |||
233 | /* state */ | ||
234 | int open_count; | ||
235 | int status; | ||
236 | struct mutex access_ok; | ||
237 | |||
238 | struct mmp_path_ops ops; | ||
239 | |||
240 | /* layers */ | ||
241 | int overlay_num; | ||
242 | struct mmp_overlay overlays[0]; | ||
243 | }; | ||
244 | |||
245 | extern struct mmp_path *mmp_get_path(const char *name); | ||
246 | static inline void mmp_path_set_mode(struct mmp_path *path, | ||
247 | struct mmp_mode *mode) | ||
248 | { | ||
249 | if (path) | ||
250 | path->ops.set_mode(path, mode); | ||
251 | } | ||
252 | static inline void mmp_path_set_onoff(struct mmp_path *path, int status) | ||
253 | { | ||
254 | if (path) | ||
255 | path->ops.set_onoff(path, status); | ||
256 | } | ||
257 | static inline int mmp_path_get_modelist(struct mmp_path *path, | ||
258 | struct mmp_mode **modelist) | ||
259 | { | ||
260 | if (path) | ||
261 | return path->ops.get_modelist(path, modelist); | ||
262 | return 0; | ||
263 | } | ||
264 | static inline struct mmp_overlay *mmp_path_get_overlay( | ||
265 | struct mmp_path *path, int overlay_id) | ||
266 | { | ||
267 | if (path) | ||
268 | return path->ops.get_overlay(path, overlay_id); | ||
269 | return NULL; | ||
270 | } | ||
271 | static inline void mmp_overlay_set_fetch(struct mmp_overlay *overlay, | ||
272 | int fetch_id) | ||
273 | { | ||
274 | if (overlay) | ||
275 | overlay->ops->set_fetch(overlay, fetch_id); | ||
276 | } | ||
277 | static inline void mmp_overlay_set_onoff(struct mmp_overlay *overlay, | ||
278 | int status) | ||
279 | { | ||
280 | if (overlay) | ||
281 | overlay->ops->set_onoff(overlay, status); | ||
282 | } | ||
283 | static inline void mmp_overlay_set_win(struct mmp_overlay *overlay, | ||
284 | struct mmp_win *win) | ||
285 | { | ||
286 | if (overlay) | ||
287 | overlay->ops->set_win(overlay, win); | ||
288 | } | ||
289 | static inline int mmp_overlay_set_addr(struct mmp_overlay *overlay, | ||
290 | struct mmp_addr *addr) | ||
291 | { | ||
292 | if (overlay) | ||
293 | return overlay->ops->set_addr(overlay, addr); | ||
294 | return 0; | ||
295 | } | ||
296 | |||
297 | /* | ||
298 | * driver data is set from each detailed ctrl driver for path usage | ||
299 | * it defined a common interface that plat driver need to implement | ||
300 | */ | ||
301 | struct mmp_path_info { | ||
302 | /* driver data, set when registed*/ | ||
303 | const char *name; | ||
304 | struct device *dev; | ||
305 | int id; | ||
306 | int output_type; | ||
307 | int overlay_num; | ||
308 | void (*set_mode)(struct mmp_path *path, struct mmp_mode *mode); | ||
309 | void (*set_onoff)(struct mmp_path *path, int status); | ||
310 | struct mmp_overlay_ops *overlay_ops; | ||
311 | void *plat_data; | ||
312 | }; | ||
313 | |||
314 | extern struct mmp_path *mmp_register_path( | ||
315 | struct mmp_path_info *info); | ||
316 | extern void mmp_unregister_path(struct mmp_path *path); | ||
317 | extern void mmp_register_panel(struct mmp_panel *panel); | ||
318 | extern void mmp_unregister_panel(struct mmp_panel *panel); | ||
319 | |||
320 | /* defintions for platform data */ | ||
321 | /* interface for buffer driver */ | ||
322 | struct mmp_buffer_driver_mach_info { | ||
323 | const char *name; | ||
324 | const char *path_name; | ||
325 | int overlay_id; | ||
326 | int dmafetch_id; | ||
327 | int default_pixfmt; | ||
328 | }; | ||
329 | |||
330 | /* interface for controllers driver */ | ||
331 | struct mmp_mach_path_config { | ||
332 | const char *name; | ||
333 | int overlay_num; | ||
334 | int output_type; | ||
335 | u32 path_config; | ||
336 | u32 link_config; | ||
337 | }; | ||
338 | |||
339 | struct mmp_mach_plat_info { | ||
340 | const char *name; | ||
341 | const char *clk_name; | ||
342 | int path_num; | ||
343 | struct mmp_mach_path_config *paths; | ||
344 | }; | ||
345 | |||
346 | /* interface for panel drivers */ | ||
347 | struct mmp_mach_panel_info { | ||
348 | const char *name; | ||
349 | void (*plat_set_onoff)(int status); | ||
350 | const char *plat_path_name; | ||
351 | }; | ||
352 | #endif /* _MMP_DISP_H_ */ | ||
diff --git a/include/video/samsung_fimd.h b/include/video/samsung_fimd.h index e7554486a2b7..b0393209679b 100644 --- a/include/video/samsung_fimd.h +++ b/include/video/samsung_fimd.h | |||
@@ -8,12 +8,8 @@ | |||
8 | * S3C Platform - new-style fimd and framebuffer register definitions | 8 | * S3C Platform - new-style fimd and framebuffer register definitions |
9 | * | 9 | * |
10 | * This is the register set for the fimd and new style framebuffer interface | 10 | * This is the register set for the fimd and new style framebuffer interface |
11 | * found from the S3C2443 onwards into the S3C2416, S3C2450 and the | 11 | * found from the S3C2443 onwards into the S3C2416, S3C2450, the |
12 | * S3C64XX series such as the S3C6400 and S3C6410. | 12 | * S3C64XX series such as the S3C6400 and S3C6410, and EXYNOS series. |
13 | * | ||
14 | * The file does not contain the cpu specific items which are based on | ||
15 | * whichever architecture is selected, it only contains the core of the | ||
16 | * register set. See <mach/regs-fb.h> to get the specifics. | ||
17 | * | 13 | * |
18 | * This program is free software; you can redistribute it and/or modify | 14 | * This program is free software; you can redistribute it and/or modify |
19 | * it under the terms of the GNU General Public License version 2 as | 15 | * it under the terms of the GNU General Public License version 2 as |
@@ -22,10 +18,10 @@ | |||
22 | 18 | ||
23 | /* VIDCON0 */ | 19 | /* VIDCON0 */ |
24 | 20 | ||
25 | #define VIDCON0 (0x00) | 21 | #define VIDCON0 0x00 |
26 | #define VIDCON0_INTERLACE (1 << 29) | 22 | #define VIDCON0_INTERLACE (1 << 29) |
27 | #define VIDCON0_VIDOUT_MASK (0x7 << 26) | 23 | #define VIDCON0_VIDOUT_MASK (0x7 << 26) |
28 | #define VIDCON0_VIDOUT_SHIFT (26) | 24 | #define VIDCON0_VIDOUT_SHIFT 26 |
29 | #define VIDCON0_VIDOUT_RGB (0x0 << 26) | 25 | #define VIDCON0_VIDOUT_RGB (0x0 << 26) |
30 | #define VIDCON0_VIDOUT_TV (0x1 << 26) | 26 | #define VIDCON0_VIDOUT_TV (0x1 << 26) |
31 | #define VIDCON0_VIDOUT_I80_LDI0 (0x2 << 26) | 27 | #define VIDCON0_VIDOUT_I80_LDI0 (0x2 << 26) |
@@ -35,7 +31,7 @@ | |||
35 | #define VIDCON0_VIDOUT_WB_I80_LDI1 (0x7 << 26) | 31 | #define VIDCON0_VIDOUT_WB_I80_LDI1 (0x7 << 26) |
36 | 32 | ||
37 | #define VIDCON0_L1_DATA_MASK (0x7 << 23) | 33 | #define VIDCON0_L1_DATA_MASK (0x7 << 23) |
38 | #define VIDCON0_L1_DATA_SHIFT (23) | 34 | #define VIDCON0_L1_DATA_SHIFT 23 |
39 | #define VIDCON0_L1_DATA_16BPP (0x0 << 23) | 35 | #define VIDCON0_L1_DATA_16BPP (0x0 << 23) |
40 | #define VIDCON0_L1_DATA_18BPP16 (0x1 << 23) | 36 | #define VIDCON0_L1_DATA_18BPP16 (0x1 << 23) |
41 | #define VIDCON0_L1_DATA_18BPP9 (0x2 << 23) | 37 | #define VIDCON0_L1_DATA_18BPP9 (0x2 << 23) |
@@ -44,7 +40,7 @@ | |||
44 | #define VIDCON0_L1_DATA_16BPP8 (0x5 << 23) | 40 | #define VIDCON0_L1_DATA_16BPP8 (0x5 << 23) |
45 | 41 | ||
46 | #define VIDCON0_L0_DATA_MASK (0x7 << 20) | 42 | #define VIDCON0_L0_DATA_MASK (0x7 << 20) |
47 | #define VIDCON0_L0_DATA_SHIFT (20) | 43 | #define VIDCON0_L0_DATA_SHIFT 20 |
48 | #define VIDCON0_L0_DATA_16BPP (0x0 << 20) | 44 | #define VIDCON0_L0_DATA_16BPP (0x0 << 20) |
49 | #define VIDCON0_L0_DATA_18BPP16 (0x1 << 20) | 45 | #define VIDCON0_L0_DATA_18BPP16 (0x1 << 20) |
50 | #define VIDCON0_L0_DATA_18BPP9 (0x2 << 20) | 46 | #define VIDCON0_L0_DATA_18BPP9 (0x2 << 20) |
@@ -53,7 +49,7 @@ | |||
53 | #define VIDCON0_L0_DATA_16BPP8 (0x5 << 20) | 49 | #define VIDCON0_L0_DATA_16BPP8 (0x5 << 20) |
54 | 50 | ||
55 | #define VIDCON0_PNRMODE_MASK (0x3 << 17) | 51 | #define VIDCON0_PNRMODE_MASK (0x3 << 17) |
56 | #define VIDCON0_PNRMODE_SHIFT (17) | 52 | #define VIDCON0_PNRMODE_SHIFT 17 |
57 | #define VIDCON0_PNRMODE_RGB (0x0 << 17) | 53 | #define VIDCON0_PNRMODE_RGB (0x0 << 17) |
58 | #define VIDCON0_PNRMODE_BGR (0x1 << 17) | 54 | #define VIDCON0_PNRMODE_BGR (0x1 << 17) |
59 | #define VIDCON0_PNRMODE_SERIAL_RGB (0x2 << 17) | 55 | #define VIDCON0_PNRMODE_SERIAL_RGB (0x2 << 17) |
@@ -61,14 +57,14 @@ | |||
61 | 57 | ||
62 | #define VIDCON0_CLKVALUP (1 << 16) | 58 | #define VIDCON0_CLKVALUP (1 << 16) |
63 | #define VIDCON0_CLKVAL_F_MASK (0xff << 6) | 59 | #define VIDCON0_CLKVAL_F_MASK (0xff << 6) |
64 | #define VIDCON0_CLKVAL_F_SHIFT (6) | 60 | #define VIDCON0_CLKVAL_F_SHIFT 6 |
65 | #define VIDCON0_CLKVAL_F_LIMIT (0xff) | 61 | #define VIDCON0_CLKVAL_F_LIMIT 0xff |
66 | #define VIDCON0_CLKVAL_F(_x) ((_x) << 6) | 62 | #define VIDCON0_CLKVAL_F(_x) ((_x) << 6) |
67 | #define VIDCON0_VLCKFREE (1 << 5) | 63 | #define VIDCON0_VLCKFREE (1 << 5) |
68 | #define VIDCON0_CLKDIR (1 << 4) | 64 | #define VIDCON0_CLKDIR (1 << 4) |
69 | 65 | ||
70 | #define VIDCON0_CLKSEL_MASK (0x3 << 2) | 66 | #define VIDCON0_CLKSEL_MASK (0x3 << 2) |
71 | #define VIDCON0_CLKSEL_SHIFT (2) | 67 | #define VIDCON0_CLKSEL_SHIFT 2 |
72 | #define VIDCON0_CLKSEL_HCLK (0x0 << 2) | 68 | #define VIDCON0_CLKSEL_HCLK (0x0 << 2) |
73 | #define VIDCON0_CLKSEL_LCD (0x1 << 2) | 69 | #define VIDCON0_CLKSEL_LCD (0x1 << 2) |
74 | #define VIDCON0_CLKSEL_27M (0x3 << 2) | 70 | #define VIDCON0_CLKSEL_27M (0x3 << 2) |
@@ -76,17 +72,17 @@ | |||
76 | #define VIDCON0_ENVID (1 << 1) | 72 | #define VIDCON0_ENVID (1 << 1) |
77 | #define VIDCON0_ENVID_F (1 << 0) | 73 | #define VIDCON0_ENVID_F (1 << 0) |
78 | 74 | ||
79 | #define VIDCON1 (0x04) | 75 | #define VIDCON1 0x04 |
80 | #define VIDCON1_LINECNT_MASK (0x7ff << 16) | 76 | #define VIDCON1_LINECNT_MASK (0x7ff << 16) |
81 | #define VIDCON1_LINECNT_SHIFT (16) | 77 | #define VIDCON1_LINECNT_SHIFT 16 |
82 | #define VIDCON1_LINECNT_GET(_v) (((_v) >> 16) & 0x7ff) | 78 | #define VIDCON1_LINECNT_GET(_v) (((_v) >> 16) & 0x7ff) |
83 | #define VIDCON1_FSTATUS_EVEN (1 << 15) | 79 | #define VIDCON1_FSTATUS_EVEN (1 << 15) |
84 | #define VIDCON1_VSTATUS_MASK (0x3 << 13) | 80 | #define VIDCON1_VSTATUS_MASK (0x3 << 13) |
85 | #define VIDCON1_VSTATUS_SHIFT (13) | 81 | #define VIDCON1_VSTATUS_SHIFT 13 |
86 | #define VIDCON1_VSTATUS_VSYNC (0x0 << 13) | 82 | #define VIDCON1_VSTATUS_VSYNC (0x0 << 13) |
87 | #define VIDCON1_VSTATUS_BACKPORCH (0x1 << 13) | 83 | #define VIDCON1_VSTATUS_BACKPORCH (0x1 << 13) |
88 | #define VIDCON1_VSTATUS_ACTIVE (0x2 << 13) | 84 | #define VIDCON1_VSTATUS_ACTIVE (0x2 << 13) |
89 | #define VIDCON1_VSTATUS_FRONTPORCH (0x0 << 13) | 85 | #define VIDCON1_VSTATUS_FRONTPORCH (0x3 << 13) |
90 | #define VIDCON1_VCLK_MASK (0x3 << 9) | 86 | #define VIDCON1_VCLK_MASK (0x3 << 9) |
91 | #define VIDCON1_VCLK_HOLD (0x0 << 9) | 87 | #define VIDCON1_VCLK_HOLD (0x0 << 9) |
92 | #define VIDCON1_VCLK_RUN (0x1 << 9) | 88 | #define VIDCON1_VCLK_RUN (0x1 << 9) |
@@ -98,12 +94,12 @@ | |||
98 | 94 | ||
99 | /* VIDCON2 */ | 95 | /* VIDCON2 */ |
100 | 96 | ||
101 | #define VIDCON2 (0x08) | 97 | #define VIDCON2 0x08 |
102 | #define VIDCON2_EN601 (1 << 23) | 98 | #define VIDCON2_EN601 (1 << 23) |
103 | #define VIDCON2_TVFMTSEL_SW (1 << 14) | 99 | #define VIDCON2_TVFMTSEL_SW (1 << 14) |
104 | 100 | ||
105 | #define VIDCON2_TVFMTSEL1_MASK (0x3 << 12) | 101 | #define VIDCON2_TVFMTSEL1_MASK (0x3 << 12) |
106 | #define VIDCON2_TVFMTSEL1_SHIFT (12) | 102 | #define VIDCON2_TVFMTSEL1_SHIFT 12 |
107 | #define VIDCON2_TVFMTSEL1_RGB (0x0 << 12) | 103 | #define VIDCON2_TVFMTSEL1_RGB (0x0 << 12) |
108 | #define VIDCON2_TVFMTSEL1_YUV422 (0x1 << 12) | 104 | #define VIDCON2_TVFMTSEL1_YUV422 (0x1 << 12) |
109 | #define VIDCON2_TVFMTSEL1_YUV444 (0x2 << 12) | 105 | #define VIDCON2_TVFMTSEL1_YUV444 (0x2 << 12) |
@@ -115,74 +111,75 @@ | |||
115 | * Might not be present in the S3C6410 documentation, | 111 | * Might not be present in the S3C6410 documentation, |
116 | * but tests prove it's there almost for sure; shouldn't hurt in any case. | 112 | * but tests prove it's there almost for sure; shouldn't hurt in any case. |
117 | */ | 113 | */ |
118 | #define PRTCON (0x0c) | 114 | #define PRTCON 0x0c |
119 | #define PRTCON_PROTECT (1 << 11) | 115 | #define PRTCON_PROTECT (1 << 11) |
120 | 116 | ||
121 | /* VIDTCON0 */ | 117 | /* VIDTCON0 */ |
122 | 118 | ||
123 | #define VIDTCON0 (0x10) | 119 | #define VIDTCON0 0x10 |
124 | #define VIDTCON0_VBPDE_MASK (0xff << 24) | 120 | #define VIDTCON0_VBPDE_MASK (0xff << 24) |
125 | #define VIDTCON0_VBPDE_SHIFT (24) | 121 | #define VIDTCON0_VBPDE_SHIFT 24 |
126 | #define VIDTCON0_VBPDE_LIMIT (0xff) | 122 | #define VIDTCON0_VBPDE_LIMIT 0xff |
127 | #define VIDTCON0_VBPDE(_x) ((_x) << 24) | 123 | #define VIDTCON0_VBPDE(_x) ((_x) << 24) |
128 | 124 | ||
129 | #define VIDTCON0_VBPD_MASK (0xff << 16) | 125 | #define VIDTCON0_VBPD_MASK (0xff << 16) |
130 | #define VIDTCON0_VBPD_SHIFT (16) | 126 | #define VIDTCON0_VBPD_SHIFT 16 |
131 | #define VIDTCON0_VBPD_LIMIT (0xff) | 127 | #define VIDTCON0_VBPD_LIMIT 0xff |
132 | #define VIDTCON0_VBPD(_x) ((_x) << 16) | 128 | #define VIDTCON0_VBPD(_x) ((_x) << 16) |
133 | 129 | ||
134 | #define VIDTCON0_VFPD_MASK (0xff << 8) | 130 | #define VIDTCON0_VFPD_MASK (0xff << 8) |
135 | #define VIDTCON0_VFPD_SHIFT (8) | 131 | #define VIDTCON0_VFPD_SHIFT 8 |
136 | #define VIDTCON0_VFPD_LIMIT (0xff) | 132 | #define VIDTCON0_VFPD_LIMIT 0xff |
137 | #define VIDTCON0_VFPD(_x) ((_x) << 8) | 133 | #define VIDTCON0_VFPD(_x) ((_x) << 8) |
138 | 134 | ||
139 | #define VIDTCON0_VSPW_MASK (0xff << 0) | 135 | #define VIDTCON0_VSPW_MASK (0xff << 0) |
140 | #define VIDTCON0_VSPW_SHIFT (0) | 136 | #define VIDTCON0_VSPW_SHIFT 0 |
141 | #define VIDTCON0_VSPW_LIMIT (0xff) | 137 | #define VIDTCON0_VSPW_LIMIT 0xff |
142 | #define VIDTCON0_VSPW(_x) ((_x) << 0) | 138 | #define VIDTCON0_VSPW(_x) ((_x) << 0) |
143 | 139 | ||
144 | /* VIDTCON1 */ | 140 | /* VIDTCON1 */ |
145 | 141 | ||
146 | #define VIDTCON1 (0x14) | 142 | #define VIDTCON1 0x14 |
147 | #define VIDTCON1_VFPDE_MASK (0xff << 24) | 143 | #define VIDTCON1_VFPDE_MASK (0xff << 24) |
148 | #define VIDTCON1_VFPDE_SHIFT (24) | 144 | #define VIDTCON1_VFPDE_SHIFT 24 |
149 | #define VIDTCON1_VFPDE_LIMIT (0xff) | 145 | #define VIDTCON1_VFPDE_LIMIT 0xff |
150 | #define VIDTCON1_VFPDE(_x) ((_x) << 24) | 146 | #define VIDTCON1_VFPDE(_x) ((_x) << 24) |
151 | 147 | ||
152 | #define VIDTCON1_HBPD_MASK (0xff << 16) | 148 | #define VIDTCON1_HBPD_MASK (0xff << 16) |
153 | #define VIDTCON1_HBPD_SHIFT (16) | 149 | #define VIDTCON1_HBPD_SHIFT 16 |
154 | #define VIDTCON1_HBPD_LIMIT (0xff) | 150 | #define VIDTCON1_HBPD_LIMIT 0xff |
155 | #define VIDTCON1_HBPD(_x) ((_x) << 16) | 151 | #define VIDTCON1_HBPD(_x) ((_x) << 16) |
156 | 152 | ||
157 | #define VIDTCON1_HFPD_MASK (0xff << 8) | 153 | #define VIDTCON1_HFPD_MASK (0xff << 8) |
158 | #define VIDTCON1_HFPD_SHIFT (8) | 154 | #define VIDTCON1_HFPD_SHIFT 8 |
159 | #define VIDTCON1_HFPD_LIMIT (0xff) | 155 | #define VIDTCON1_HFPD_LIMIT 0xff |
160 | #define VIDTCON1_HFPD(_x) ((_x) << 8) | 156 | #define VIDTCON1_HFPD(_x) ((_x) << 8) |
161 | 157 | ||
162 | #define VIDTCON1_HSPW_MASK (0xff << 0) | 158 | #define VIDTCON1_HSPW_MASK (0xff << 0) |
163 | #define VIDTCON1_HSPW_SHIFT (0) | 159 | #define VIDTCON1_HSPW_SHIFT 0 |
164 | #define VIDTCON1_HSPW_LIMIT (0xff) | 160 | #define VIDTCON1_HSPW_LIMIT 0xff |
165 | #define VIDTCON1_HSPW(_x) ((_x) << 0) | 161 | #define VIDTCON1_HSPW(_x) ((_x) << 0) |
166 | 162 | ||
167 | #define VIDTCON2 (0x18) | 163 | #define VIDTCON2 0x18 |
168 | #define VIDTCON2 (0x18) | ||
169 | #define VIDTCON2_LINEVAL_E(_x) ((((_x) & 0x800) >> 11) << 23) | 164 | #define VIDTCON2_LINEVAL_E(_x) ((((_x) & 0x800) >> 11) << 23) |
170 | #define VIDTCON2_LINEVAL_MASK (0x7ff << 11) | 165 | #define VIDTCON2_LINEVAL_MASK (0x7ff << 11) |
171 | #define VIDTCON2_LINEVAL_SHIFT (11) | 166 | #define VIDTCON2_LINEVAL_SHIFT 11 |
172 | #define VIDTCON2_LINEVAL_LIMIT (0x7ff) | 167 | #define VIDTCON2_LINEVAL_LIMIT 0x7ff |
173 | #define VIDTCON2_LINEVAL(_x) (((_x) & 0x7ff) << 11) | 168 | #define VIDTCON2_LINEVAL(_x) (((_x) & 0x7ff) << 11) |
174 | 169 | ||
175 | #define VIDTCON2_HOZVAL_E(_x) ((((_x) & 0x800) >> 11) << 22) | 170 | #define VIDTCON2_HOZVAL_E(_x) ((((_x) & 0x800) >> 11) << 22) |
176 | #define VIDTCON2_HOZVAL_MASK (0x7ff << 0) | 171 | #define VIDTCON2_HOZVAL_MASK (0x7ff << 0) |
177 | #define VIDTCON2_HOZVAL_SHIFT (0) | 172 | #define VIDTCON2_HOZVAL_SHIFT 0 |
178 | #define VIDTCON2_HOZVAL_LIMIT (0x7ff) | 173 | #define VIDTCON2_HOZVAL_LIMIT 0x7ff |
179 | #define VIDTCON2_HOZVAL(_x) (((_x) & 0x7ff) << 0) | 174 | #define VIDTCON2_HOZVAL(_x) (((_x) & 0x7ff) << 0) |
180 | 175 | ||
181 | /* WINCONx */ | 176 | /* WINCONx */ |
182 | 177 | ||
183 | #define WINCON(_win) (0x20 + ((_win) * 4)) | 178 | #define WINCON(_win) (0x20 + ((_win) * 4)) |
179 | #define WINCONx_CSCCON_EQ601 (0x0 << 28) | ||
180 | #define WINCONx_CSCCON_EQ709 (0x1 << 28) | ||
184 | #define WINCONx_CSCWIDTH_MASK (0x3 << 26) | 181 | #define WINCONx_CSCWIDTH_MASK (0x3 << 26) |
185 | #define WINCONx_CSCWIDTH_SHIFT (26) | 182 | #define WINCONx_CSCWIDTH_SHIFT 26 |
186 | #define WINCONx_CSCWIDTH_WIDE (0x0 << 26) | 183 | #define WINCONx_CSCWIDTH_WIDE (0x0 << 26) |
187 | #define WINCONx_CSCWIDTH_NARROW (0x3 << 26) | 184 | #define WINCONx_CSCWIDTH_NARROW (0x3 << 26) |
188 | #define WINCONx_ENLOCAL (1 << 22) | 185 | #define WINCONx_ENLOCAL (1 << 22) |
@@ -195,14 +192,14 @@ | |||
195 | #define WINCONx_WSWP (1 << 15) | 192 | #define WINCONx_WSWP (1 << 15) |
196 | #define WINCONx_YCbCr (1 << 13) | 193 | #define WINCONx_YCbCr (1 << 13) |
197 | #define WINCONx_BURSTLEN_MASK (0x3 << 9) | 194 | #define WINCONx_BURSTLEN_MASK (0x3 << 9) |
198 | #define WINCONx_BURSTLEN_SHIFT (9) | 195 | #define WINCONx_BURSTLEN_SHIFT 9 |
199 | #define WINCONx_BURSTLEN_16WORD (0x0 << 9) | 196 | #define WINCONx_BURSTLEN_16WORD (0x0 << 9) |
200 | #define WINCONx_BURSTLEN_8WORD (0x1 << 9) | 197 | #define WINCONx_BURSTLEN_8WORD (0x1 << 9) |
201 | #define WINCONx_BURSTLEN_4WORD (0x2 << 9) | 198 | #define WINCONx_BURSTLEN_4WORD (0x2 << 9) |
202 | #define WINCONx_ENWIN (1 << 0) | 199 | #define WINCONx_ENWIN (1 << 0) |
203 | 200 | ||
204 | #define WINCON0_BPPMODE_MASK (0xf << 2) | 201 | #define WINCON0_BPPMODE_MASK (0xf << 2) |
205 | #define WINCON0_BPPMODE_SHIFT (2) | 202 | #define WINCON0_BPPMODE_SHIFT 2 |
206 | #define WINCON0_BPPMODE_1BPP (0x0 << 2) | 203 | #define WINCON0_BPPMODE_1BPP (0x0 << 2) |
207 | #define WINCON0_BPPMODE_2BPP (0x1 << 2) | 204 | #define WINCON0_BPPMODE_2BPP (0x1 << 2) |
208 | #define WINCON0_BPPMODE_4BPP (0x2 << 2) | 205 | #define WINCON0_BPPMODE_4BPP (0x2 << 2) |
@@ -215,7 +212,7 @@ | |||
215 | #define WINCON1_LOCALSEL_CAMIF (1 << 23) | 212 | #define WINCON1_LOCALSEL_CAMIF (1 << 23) |
216 | #define WINCON1_BLD_PIX (1 << 6) | 213 | #define WINCON1_BLD_PIX (1 << 6) |
217 | #define WINCON1_BPPMODE_MASK (0xf << 2) | 214 | #define WINCON1_BPPMODE_MASK (0xf << 2) |
218 | #define WINCON1_BPPMODE_SHIFT (2) | 215 | #define WINCON1_BPPMODE_SHIFT 2 |
219 | #define WINCON1_BPPMODE_1BPP (0x0 << 2) | 216 | #define WINCON1_BPPMODE_1BPP (0x0 << 2) |
220 | #define WINCON1_BPPMODE_2BPP (0x1 << 2) | 217 | #define WINCON1_BPPMODE_2BPP (0x1 << 2) |
221 | #define WINCON1_BPPMODE_4BPP (0x2 << 2) | 218 | #define WINCON1_BPPMODE_4BPP (0x2 << 2) |
@@ -234,7 +231,7 @@ | |||
234 | #define WINCON1_ALPHA_SEL (1 << 1) | 231 | #define WINCON1_ALPHA_SEL (1 << 1) |
235 | 232 | ||
236 | /* S5PV210 */ | 233 | /* S5PV210 */ |
237 | #define SHADOWCON (0x34) | 234 | #define SHADOWCON 0x34 |
238 | #define SHADOWCON_WINx_PROTECT(_win) (1 << (10 + (_win))) | 235 | #define SHADOWCON_WINx_PROTECT(_win) (1 << (10 + (_win))) |
239 | /* DMA channels (all windows) */ | 236 | /* DMA channels (all windows) */ |
240 | #define SHADOWCON_CHx_ENABLE(_win) (1 << (_win)) | 237 | #define SHADOWCON_CHx_ENABLE(_win) (1 << (_win)) |
@@ -243,52 +240,52 @@ | |||
243 | 240 | ||
244 | /* VIDOSDx */ | 241 | /* VIDOSDx */ |
245 | 242 | ||
246 | #define VIDOSD_BASE (0x40) | 243 | #define VIDOSD_BASE 0x40 |
247 | #define VIDOSDxA_TOPLEFT_X_E(_x) ((((_x) & 0x800) >> 11) << 23) | 244 | #define VIDOSDxA_TOPLEFT_X_E(_x) ((((_x) & 0x800) >> 11) << 23) |
248 | #define VIDOSDxA_TOPLEFT_X_MASK (0x7ff << 11) | 245 | #define VIDOSDxA_TOPLEFT_X_MASK (0x7ff << 11) |
249 | #define VIDOSDxA_TOPLEFT_X_SHIFT (11) | 246 | #define VIDOSDxA_TOPLEFT_X_SHIFT 11 |
250 | #define VIDOSDxA_TOPLEFT_X_LIMIT (0x7ff) | 247 | #define VIDOSDxA_TOPLEFT_X_LIMIT 0x7ff |
251 | #define VIDOSDxA_TOPLEFT_X(_x) (((_x) & 0x7ff) << 11) | 248 | #define VIDOSDxA_TOPLEFT_X(_x) (((_x) & 0x7ff) << 11) |
252 | 249 | ||
253 | #define VIDOSDxA_TOPLEFT_Y_E(_x) ((((_x) & 0x800) >> 11) << 22) | 250 | #define VIDOSDxA_TOPLEFT_Y_E(_x) ((((_x) & 0x800) >> 11) << 22) |
254 | #define VIDOSDxA_TOPLEFT_Y_MASK (0x7ff << 0) | 251 | #define VIDOSDxA_TOPLEFT_Y_MASK (0x7ff << 0) |
255 | #define VIDOSDxA_TOPLEFT_Y_SHIFT (0) | 252 | #define VIDOSDxA_TOPLEFT_Y_SHIFT 0 |
256 | #define VIDOSDxA_TOPLEFT_Y_LIMIT (0x7ff) | 253 | #define VIDOSDxA_TOPLEFT_Y_LIMIT 0x7ff |
257 | #define VIDOSDxA_TOPLEFT_Y(_x) (((_x) & 0x7ff) << 0) | 254 | #define VIDOSDxA_TOPLEFT_Y(_x) (((_x) & 0x7ff) << 0) |
258 | 255 | ||
259 | #define VIDOSDxB_BOTRIGHT_X_E(_x) ((((_x) & 0x800) >> 11) << 23) | 256 | #define VIDOSDxB_BOTRIGHT_X_E(_x) ((((_x) & 0x800) >> 11) << 23) |
260 | #define VIDOSDxB_BOTRIGHT_X_MASK (0x7ff << 11) | 257 | #define VIDOSDxB_BOTRIGHT_X_MASK (0x7ff << 11) |
261 | #define VIDOSDxB_BOTRIGHT_X_SHIFT (11) | 258 | #define VIDOSDxB_BOTRIGHT_X_SHIFT 11 |
262 | #define VIDOSDxB_BOTRIGHT_X_LIMIT (0x7ff) | 259 | #define VIDOSDxB_BOTRIGHT_X_LIMIT 0x7ff |
263 | #define VIDOSDxB_BOTRIGHT_X(_x) (((_x) & 0x7ff) << 11) | 260 | #define VIDOSDxB_BOTRIGHT_X(_x) (((_x) & 0x7ff) << 11) |
264 | 261 | ||
265 | #define VIDOSDxB_BOTRIGHT_Y_E(_x) ((((_x) & 0x800) >> 11) << 22) | 262 | #define VIDOSDxB_BOTRIGHT_Y_E(_x) ((((_x) & 0x800) >> 11) << 22) |
266 | #define VIDOSDxB_BOTRIGHT_Y_MASK (0x7ff << 0) | 263 | #define VIDOSDxB_BOTRIGHT_Y_MASK (0x7ff << 0) |
267 | #define VIDOSDxB_BOTRIGHT_Y_SHIFT (0) | 264 | #define VIDOSDxB_BOTRIGHT_Y_SHIFT 0 |
268 | #define VIDOSDxB_BOTRIGHT_Y_LIMIT (0x7ff) | 265 | #define VIDOSDxB_BOTRIGHT_Y_LIMIT 0x7ff |
269 | #define VIDOSDxB_BOTRIGHT_Y(_x) (((_x) & 0x7ff) << 0) | 266 | #define VIDOSDxB_BOTRIGHT_Y(_x) (((_x) & 0x7ff) << 0) |
270 | 267 | ||
271 | /* For VIDOSD[1..4]C */ | 268 | /* For VIDOSD[1..4]C */ |
272 | #define VIDISD14C_ALPHA0_R(_x) ((_x) << 20) | 269 | #define VIDISD14C_ALPHA0_R(_x) ((_x) << 20) |
273 | #define VIDISD14C_ALPHA0_G_MASK (0xf << 16) | 270 | #define VIDISD14C_ALPHA0_G_MASK (0xf << 16) |
274 | #define VIDISD14C_ALPHA0_G_SHIFT (16) | 271 | #define VIDISD14C_ALPHA0_G_SHIFT 16 |
275 | #define VIDISD14C_ALPHA0_G_LIMIT (0xf) | 272 | #define VIDISD14C_ALPHA0_G_LIMIT 0xf |
276 | #define VIDISD14C_ALPHA0_G(_x) ((_x) << 16) | 273 | #define VIDISD14C_ALPHA0_G(_x) ((_x) << 16) |
277 | #define VIDISD14C_ALPHA0_B_MASK (0xf << 12) | 274 | #define VIDISD14C_ALPHA0_B_MASK (0xf << 12) |
278 | #define VIDISD14C_ALPHA0_B_SHIFT (12) | 275 | #define VIDISD14C_ALPHA0_B_SHIFT 12 |
279 | #define VIDISD14C_ALPHA0_B_LIMIT (0xf) | 276 | #define VIDISD14C_ALPHA0_B_LIMIT 0xf |
280 | #define VIDISD14C_ALPHA0_B(_x) ((_x) << 12) | 277 | #define VIDISD14C_ALPHA0_B(_x) ((_x) << 12) |
281 | #define VIDISD14C_ALPHA1_R_MASK (0xf << 8) | 278 | #define VIDISD14C_ALPHA1_R_MASK (0xf << 8) |
282 | #define VIDISD14C_ALPHA1_R_SHIFT (8) | 279 | #define VIDISD14C_ALPHA1_R_SHIFT 8 |
283 | #define VIDISD14C_ALPHA1_R_LIMIT (0xf) | 280 | #define VIDISD14C_ALPHA1_R_LIMIT 0xf |
284 | #define VIDISD14C_ALPHA1_R(_x) ((_x) << 8) | 281 | #define VIDISD14C_ALPHA1_R(_x) ((_x) << 8) |
285 | #define VIDISD14C_ALPHA1_G_MASK (0xf << 4) | 282 | #define VIDISD14C_ALPHA1_G_MASK (0xf << 4) |
286 | #define VIDISD14C_ALPHA1_G_SHIFT (4) | 283 | #define VIDISD14C_ALPHA1_G_SHIFT 4 |
287 | #define VIDISD14C_ALPHA1_G_LIMIT (0xf) | 284 | #define VIDISD14C_ALPHA1_G_LIMIT 0xf |
288 | #define VIDISD14C_ALPHA1_G(_x) ((_x) << 4) | 285 | #define VIDISD14C_ALPHA1_G(_x) ((_x) << 4) |
289 | #define VIDISD14C_ALPHA1_B_MASK (0xf << 0) | 286 | #define VIDISD14C_ALPHA1_B_MASK (0xf << 0) |
290 | #define VIDISD14C_ALPHA1_B_SHIFT (0) | 287 | #define VIDISD14C_ALPHA1_B_SHIFT 0 |
291 | #define VIDISD14C_ALPHA1_B_LIMIT (0xf) | 288 | #define VIDISD14C_ALPHA1_B_LIMIT 0xf |
292 | #define VIDISD14C_ALPHA1_B(_x) ((_x) << 0) | 289 | #define VIDISD14C_ALPHA1_B(_x) ((_x) << 0) |
293 | 290 | ||
294 | /* Video buffer addresses */ | 291 | /* Video buffer addresses */ |
@@ -300,22 +297,22 @@ | |||
300 | 297 | ||
301 | #define VIDW_BUF_SIZE_OFFSET_E(_x) ((((_x) & 0x2000) >> 13) << 27) | 298 | #define VIDW_BUF_SIZE_OFFSET_E(_x) ((((_x) & 0x2000) >> 13) << 27) |
302 | #define VIDW_BUF_SIZE_OFFSET_MASK (0x1fff << 13) | 299 | #define VIDW_BUF_SIZE_OFFSET_MASK (0x1fff << 13) |
303 | #define VIDW_BUF_SIZE_OFFSET_SHIFT (13) | 300 | #define VIDW_BUF_SIZE_OFFSET_SHIFT 13 |
304 | #define VIDW_BUF_SIZE_OFFSET_LIMIT (0x1fff) | 301 | #define VIDW_BUF_SIZE_OFFSET_LIMIT 0x1fff |
305 | #define VIDW_BUF_SIZE_OFFSET(_x) (((_x) & 0x1fff) << 13) | 302 | #define VIDW_BUF_SIZE_OFFSET(_x) (((_x) & 0x1fff) << 13) |
306 | 303 | ||
307 | #define VIDW_BUF_SIZE_PAGEWIDTH_E(_x) ((((_x) & 0x2000) >> 13) << 26) | 304 | #define VIDW_BUF_SIZE_PAGEWIDTH_E(_x) ((((_x) & 0x2000) >> 13) << 26) |
308 | #define VIDW_BUF_SIZE_PAGEWIDTH_MASK (0x1fff << 0) | 305 | #define VIDW_BUF_SIZE_PAGEWIDTH_MASK (0x1fff << 0) |
309 | #define VIDW_BUF_SIZE_PAGEWIDTH_SHIFT (0) | 306 | #define VIDW_BUF_SIZE_PAGEWIDTH_SHIFT 0 |
310 | #define VIDW_BUF_SIZE_PAGEWIDTH_LIMIT (0x1fff) | 307 | #define VIDW_BUF_SIZE_PAGEWIDTH_LIMIT 0x1fff |
311 | #define VIDW_BUF_SIZE_PAGEWIDTH(_x) (((_x) & 0x1fff) << 0) | 308 | #define VIDW_BUF_SIZE_PAGEWIDTH(_x) (((_x) & 0x1fff) << 0) |
312 | 309 | ||
313 | /* Interrupt controls and status */ | 310 | /* Interrupt controls and status */ |
314 | 311 | ||
315 | #define VIDINTCON0 (0x130) | 312 | #define VIDINTCON0 0x130 |
316 | #define VIDINTCON0_FIFOINTERVAL_MASK (0x3f << 20) | 313 | #define VIDINTCON0_FIFOINTERVAL_MASK (0x3f << 20) |
317 | #define VIDINTCON0_FIFOINTERVAL_SHIFT (20) | 314 | #define VIDINTCON0_FIFOINTERVAL_SHIFT 20 |
318 | #define VIDINTCON0_FIFOINTERVAL_LIMIT (0x3f) | 315 | #define VIDINTCON0_FIFOINTERVAL_LIMIT 0x3f |
319 | #define VIDINTCON0_FIFOINTERVAL(_x) ((_x) << 20) | 316 | #define VIDINTCON0_FIFOINTERVAL(_x) ((_x) << 20) |
320 | 317 | ||
321 | #define VIDINTCON0_INT_SYSMAINCON (1 << 19) | 318 | #define VIDINTCON0_INT_SYSMAINCON (1 << 19) |
@@ -323,7 +320,7 @@ | |||
323 | #define VIDINTCON0_INT_I80IFDONE (1 << 17) | 320 | #define VIDINTCON0_INT_I80IFDONE (1 << 17) |
324 | 321 | ||
325 | #define VIDINTCON0_FRAMESEL0_MASK (0x3 << 15) | 322 | #define VIDINTCON0_FRAMESEL0_MASK (0x3 << 15) |
326 | #define VIDINTCON0_FRAMESEL0_SHIFT (15) | 323 | #define VIDINTCON0_FRAMESEL0_SHIFT 15 |
327 | #define VIDINTCON0_FRAMESEL0_BACKPORCH (0x0 << 15) | 324 | #define VIDINTCON0_FRAMESEL0_BACKPORCH (0x0 << 15) |
328 | #define VIDINTCON0_FRAMESEL0_VSYNC (0x1 << 15) | 325 | #define VIDINTCON0_FRAMESEL0_VSYNC (0x1 << 15) |
329 | #define VIDINTCON0_FRAMESEL0_ACTIVE (0x2 << 15) | 326 | #define VIDINTCON0_FRAMESEL0_ACTIVE (0x2 << 15) |
@@ -338,7 +335,7 @@ | |||
338 | 335 | ||
339 | #define VIDINTCON0_INT_FRAME (1 << 12) | 336 | #define VIDINTCON0_INT_FRAME (1 << 12) |
340 | #define VIDINTCON0_FIFIOSEL_MASK (0x7f << 5) | 337 | #define VIDINTCON0_FIFIOSEL_MASK (0x7f << 5) |
341 | #define VIDINTCON0_FIFIOSEL_SHIFT (5) | 338 | #define VIDINTCON0_FIFIOSEL_SHIFT 5 |
342 | #define VIDINTCON0_FIFIOSEL_WINDOW0 (0x1 << 5) | 339 | #define VIDINTCON0_FIFIOSEL_WINDOW0 (0x1 << 5) |
343 | #define VIDINTCON0_FIFIOSEL_WINDOW1 (0x2 << 5) | 340 | #define VIDINTCON0_FIFIOSEL_WINDOW1 (0x2 << 5) |
344 | #define VIDINTCON0_FIFIOSEL_WINDOW2 (0x10 << 5) | 341 | #define VIDINTCON0_FIFIOSEL_WINDOW2 (0x10 << 5) |
@@ -346,7 +343,7 @@ | |||
346 | #define VIDINTCON0_FIFIOSEL_WINDOW4 (0x40 << 5) | 343 | #define VIDINTCON0_FIFIOSEL_WINDOW4 (0x40 << 5) |
347 | 344 | ||
348 | #define VIDINTCON0_FIFOLEVEL_MASK (0x7 << 2) | 345 | #define VIDINTCON0_FIFOLEVEL_MASK (0x7 << 2) |
349 | #define VIDINTCON0_FIFOLEVEL_SHIFT (2) | 346 | #define VIDINTCON0_FIFOLEVEL_SHIFT 2 |
350 | #define VIDINTCON0_FIFOLEVEL_TO25PC (0x0 << 2) | 347 | #define VIDINTCON0_FIFOLEVEL_TO25PC (0x0 << 2) |
351 | #define VIDINTCON0_FIFOLEVEL_TO50PC (0x1 << 2) | 348 | #define VIDINTCON0_FIFOLEVEL_TO50PC (0x1 << 2) |
352 | #define VIDINTCON0_FIFOLEVEL_TO75PC (0x2 << 2) | 349 | #define VIDINTCON0_FIFOLEVEL_TO75PC (0x2 << 2) |
@@ -354,46 +351,46 @@ | |||
354 | #define VIDINTCON0_FIFOLEVEL_FULL (0x4 << 2) | 351 | #define VIDINTCON0_FIFOLEVEL_FULL (0x4 << 2) |
355 | 352 | ||
356 | #define VIDINTCON0_INT_FIFO_MASK (0x3 << 0) | 353 | #define VIDINTCON0_INT_FIFO_MASK (0x3 << 0) |
357 | #define VIDINTCON0_INT_FIFO_SHIFT (0) | 354 | #define VIDINTCON0_INT_FIFO_SHIFT 0 |
358 | #define VIDINTCON0_INT_ENABLE (1 << 0) | 355 | #define VIDINTCON0_INT_ENABLE (1 << 0) |
359 | 356 | ||
360 | #define VIDINTCON1 (0x134) | 357 | #define VIDINTCON1 0x134 |
361 | #define VIDINTCON1_INT_I180 (1 << 2) | 358 | #define VIDINTCON1_INT_I180 (1 << 2) |
362 | #define VIDINTCON1_INT_FRAME (1 << 1) | 359 | #define VIDINTCON1_INT_FRAME (1 << 1) |
363 | #define VIDINTCON1_INT_FIFO (1 << 0) | 360 | #define VIDINTCON1_INT_FIFO (1 << 0) |
364 | 361 | ||
365 | /* Window colour-key control registers */ | 362 | /* Window colour-key control registers */ |
366 | #define WKEYCON (0x140) /* 6410,V210 */ | 363 | #define WKEYCON 0x140 |
367 | 364 | ||
368 | #define WKEYCON0 (0x00) | 365 | #define WKEYCON0 0x00 |
369 | #define WKEYCON1 (0x04) | 366 | #define WKEYCON1 0x04 |
370 | 367 | ||
371 | #define WxKEYCON0_KEYBL_EN (1 << 26) | 368 | #define WxKEYCON0_KEYBL_EN (1 << 26) |
372 | #define WxKEYCON0_KEYEN_F (1 << 25) | 369 | #define WxKEYCON0_KEYEN_F (1 << 25) |
373 | #define WxKEYCON0_DIRCON (1 << 24) | 370 | #define WxKEYCON0_DIRCON (1 << 24) |
374 | #define WxKEYCON0_COMPKEY_MASK (0xffffff << 0) | 371 | #define WxKEYCON0_COMPKEY_MASK (0xffffff << 0) |
375 | #define WxKEYCON0_COMPKEY_SHIFT (0) | 372 | #define WxKEYCON0_COMPKEY_SHIFT 0 |
376 | #define WxKEYCON0_COMPKEY_LIMIT (0xffffff) | 373 | #define WxKEYCON0_COMPKEY_LIMIT 0xffffff |
377 | #define WxKEYCON0_COMPKEY(_x) ((_x) << 0) | 374 | #define WxKEYCON0_COMPKEY(_x) ((_x) << 0) |
378 | #define WxKEYCON1_COLVAL_MASK (0xffffff << 0) | 375 | #define WxKEYCON1_COLVAL_MASK (0xffffff << 0) |
379 | #define WxKEYCON1_COLVAL_SHIFT (0) | 376 | #define WxKEYCON1_COLVAL_SHIFT 0 |
380 | #define WxKEYCON1_COLVAL_LIMIT (0xffffff) | 377 | #define WxKEYCON1_COLVAL_LIMIT 0xffffff |
381 | #define WxKEYCON1_COLVAL(_x) ((_x) << 0) | 378 | #define WxKEYCON1_COLVAL(_x) ((_x) << 0) |
382 | 379 | ||
383 | /* Dithering control */ | 380 | /* Dithering control */ |
384 | #define DITHMODE (0x170) | 381 | #define DITHMODE 0x170 |
385 | #define DITHMODE_R_POS_MASK (0x3 << 5) | 382 | #define DITHMODE_R_POS_MASK (0x3 << 5) |
386 | #define DITHMODE_R_POS_SHIFT (5) | 383 | #define DITHMODE_R_POS_SHIFT 5 |
387 | #define DITHMODE_R_POS_8BIT (0x0 << 5) | 384 | #define DITHMODE_R_POS_8BIT (0x0 << 5) |
388 | #define DITHMODE_R_POS_6BIT (0x1 << 5) | 385 | #define DITHMODE_R_POS_6BIT (0x1 << 5) |
389 | #define DITHMODE_R_POS_5BIT (0x2 << 5) | 386 | #define DITHMODE_R_POS_5BIT (0x2 << 5) |
390 | #define DITHMODE_G_POS_MASK (0x3 << 3) | 387 | #define DITHMODE_G_POS_MASK (0x3 << 3) |
391 | #define DITHMODE_G_POS_SHIFT (3) | 388 | #define DITHMODE_G_POS_SHIFT 3 |
392 | #define DITHMODE_G_POS_8BIT (0x0 << 3) | 389 | #define DITHMODE_G_POS_8BIT (0x0 << 3) |
393 | #define DITHMODE_G_POS_6BIT (0x1 << 3) | 390 | #define DITHMODE_G_POS_6BIT (0x1 << 3) |
394 | #define DITHMODE_G_POS_5BIT (0x2 << 3) | 391 | #define DITHMODE_G_POS_5BIT (0x2 << 3) |
395 | #define DITHMODE_B_POS_MASK (0x3 << 1) | 392 | #define DITHMODE_B_POS_MASK (0x3 << 1) |
396 | #define DITHMODE_B_POS_SHIFT (1) | 393 | #define DITHMODE_B_POS_SHIFT 1 |
397 | #define DITHMODE_B_POS_8BIT (0x0 << 1) | 394 | #define DITHMODE_B_POS_8BIT (0x0 << 1) |
398 | #define DITHMODE_B_POS_6BIT (0x1 << 1) | 395 | #define DITHMODE_B_POS_6BIT (0x1 << 1) |
399 | #define DITHMODE_B_POS_5BIT (0x2 << 1) | 396 | #define DITHMODE_B_POS_5BIT (0x2 << 1) |
@@ -403,18 +400,18 @@ | |||
403 | #define WINxMAP(_win) (0x180 + ((_win) * 4)) | 400 | #define WINxMAP(_win) (0x180 + ((_win) * 4)) |
404 | #define WINxMAP_MAP (1 << 24) | 401 | #define WINxMAP_MAP (1 << 24) |
405 | #define WINxMAP_MAP_COLOUR_MASK (0xffffff << 0) | 402 | #define WINxMAP_MAP_COLOUR_MASK (0xffffff << 0) |
406 | #define WINxMAP_MAP_COLOUR_SHIFT (0) | 403 | #define WINxMAP_MAP_COLOUR_SHIFT 0 |
407 | #define WINxMAP_MAP_COLOUR_LIMIT (0xffffff) | 404 | #define WINxMAP_MAP_COLOUR_LIMIT 0xffffff |
408 | #define WINxMAP_MAP_COLOUR(_x) ((_x) << 0) | 405 | #define WINxMAP_MAP_COLOUR(_x) ((_x) << 0) |
409 | 406 | ||
410 | /* Winodw palette control */ | 407 | /* Winodw palette control */ |
411 | #define WPALCON (0x1A0) | 408 | #define WPALCON 0x1A0 |
412 | #define WPALCON_PAL_UPDATE (1 << 9) | 409 | #define WPALCON_PAL_UPDATE (1 << 9) |
413 | #define WPALCON_W4PAL_16BPP_A555 (1 << 8) | 410 | #define WPALCON_W4PAL_16BPP_A555 (1 << 8) |
414 | #define WPALCON_W3PAL_16BPP_A555 (1 << 7) | 411 | #define WPALCON_W3PAL_16BPP_A555 (1 << 7) |
415 | #define WPALCON_W2PAL_16BPP_A555 (1 << 6) | 412 | #define WPALCON_W2PAL_16BPP_A555 (1 << 6) |
416 | #define WPALCON_W1PAL_MASK (0x7 << 3) | 413 | #define WPALCON_W1PAL_MASK (0x7 << 3) |
417 | #define WPALCON_W1PAL_SHIFT (3) | 414 | #define WPALCON_W1PAL_SHIFT 3 |
418 | #define WPALCON_W1PAL_25BPP_A888 (0x0 << 3) | 415 | #define WPALCON_W1PAL_25BPP_A888 (0x0 << 3) |
419 | #define WPALCON_W1PAL_24BPP (0x1 << 3) | 416 | #define WPALCON_W1PAL_24BPP (0x1 << 3) |
420 | #define WPALCON_W1PAL_19BPP_A666 (0x2 << 3) | 417 | #define WPALCON_W1PAL_19BPP_A666 (0x2 << 3) |
@@ -423,7 +420,7 @@ | |||
423 | #define WPALCON_W1PAL_16BPP_A555 (0x5 << 3) | 420 | #define WPALCON_W1PAL_16BPP_A555 (0x5 << 3) |
424 | #define WPALCON_W1PAL_16BPP_565 (0x6 << 3) | 421 | #define WPALCON_W1PAL_16BPP_565 (0x6 << 3) |
425 | #define WPALCON_W0PAL_MASK (0x7 << 0) | 422 | #define WPALCON_W0PAL_MASK (0x7 << 0) |
426 | #define WPALCON_W0PAL_SHIFT (0) | 423 | #define WPALCON_W0PAL_SHIFT 0 |
427 | #define WPALCON_W0PAL_25BPP_A888 (0x0 << 0) | 424 | #define WPALCON_W0PAL_25BPP_A888 (0x0 << 0) |
428 | #define WPALCON_W0PAL_24BPP (0x1 << 0) | 425 | #define WPALCON_W0PAL_24BPP (0x1 << 0) |
429 | #define WPALCON_W0PAL_19BPP_A666 (0x2 << 0) | 426 | #define WPALCON_W0PAL_19BPP_A666 (0x2 << 0) |
@@ -433,13 +430,11 @@ | |||
433 | #define WPALCON_W0PAL_16BPP_565 (0x6 << 0) | 430 | #define WPALCON_W0PAL_16BPP_565 (0x6 << 0) |
434 | 431 | ||
435 | /* Blending equation control */ | 432 | /* Blending equation control */ |
436 | #define BLENDCON (0x260) | 433 | #define BLENDCON 0x260 |
437 | #define BLENDCON_NEW_MASK (1 << 0) | 434 | #define BLENDCON_NEW_MASK (1 << 0) |
438 | #define BLENDCON_NEW_8BIT_ALPHA_VALUE (1 << 0) | 435 | #define BLENDCON_NEW_8BIT_ALPHA_VALUE (1 << 0) |
439 | #define BLENDCON_NEW_4BIT_ALPHA_VALUE (0 << 0) | 436 | #define BLENDCON_NEW_4BIT_ALPHA_VALUE (0 << 0) |
440 | 437 | ||
441 | #define S3C_FB_MAX_WIN (5) /* number of hardware windows available. */ | ||
442 | |||
443 | /* Notes on per-window bpp settings | 438 | /* Notes on per-window bpp settings |
444 | * | 439 | * |
445 | * Value Win0 Win1 Win2 Win3 Win 4 | 440 | * Value Win0 Win1 Win2 Win3 Win 4 |
@@ -462,8 +457,8 @@ | |||
462 | */ | 457 | */ |
463 | 458 | ||
464 | /* FIMD Version 8 register offset definitions */ | 459 | /* FIMD Version 8 register offset definitions */ |
465 | #define FIMD_V8_VIDTCON0 (0x20010) | 460 | #define FIMD_V8_VIDTCON0 0x20010 |
466 | #define FIMD_V8_VIDTCON1 (0x20014) | 461 | #define FIMD_V8_VIDTCON1 0x20014 |
467 | #define FIMD_V8_VIDTCON2 (0x20018) | 462 | #define FIMD_V8_VIDTCON2 0x20018 |
468 | #define FIMD_V8_VIDTCON3 (0x2001C) | 463 | #define FIMD_V8_VIDTCON3 0x2001C |
469 | #define FIMD_V8_VIDCON1 (0x20004) | 464 | #define FIMD_V8_VIDCON1 0x20004 |