diff options
author | Richard Purdie <rpurdie@net.rmk.(none)> | 2006-09-20 17:54:21 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-10-02 08:33:37 -0400 |
commit | d14b272bc63f35a8f20b4b1df16c080b8d24f8f1 (patch) | |
tree | f754f3b333388e0ab78c934fd492906688fab2a6 /include/asm-arm/arch-pxa | |
parent | c5d311c7e93c7d84941028835bc6ae5e1bc4e73c (diff) |
[ARM] 3848/1: pxafb: Add option of fixing video modes and spitz QVGA mode support
Add the ability to have pxafb use only certain fixed video modes
(selected on a per platform basis). This is useful on production
hardware such as the Zaurus cxx00 models where the valid modes are
known in advance and any other modes could result in hardware damage.
Following this, add support for the cxx00 QVGA mode. Mode information
is passed to the lcd_power call to allowing the panel drivers to
configure the display hardware accordingly (corgi_lcd already contains
the functionality for the cxx00 panel).
This mirrors the setup already used by w100fb.
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'include/asm-arm/arch-pxa')
-rw-r--r-- | include/asm-arm/arch-pxa/pxafb.h | 14 | ||||
-rw-r--r-- | include/asm-arm/arch-pxa/spitz.h | 4 |
2 files changed, 15 insertions, 3 deletions
diff --git a/include/asm-arm/arch-pxa/pxafb.h b/include/asm-arm/arch-pxa/pxafb.h index aba9b30f4249..81c3928d608c 100644 --- a/include/asm-arm/arch-pxa/pxafb.h +++ b/include/asm-arm/arch-pxa/pxafb.h | |||
@@ -12,12 +12,14 @@ | |||
12 | * published by the Free Software Foundation. | 12 | * published by the Free Software Foundation. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/fb.h> | ||
16 | |||
15 | /* | 17 | /* |
16 | * This structure describes the machine which we are running on. | 18 | * This structure describes the machine which we are running on. |
17 | * It is set in linux/arch/arm/mach-pxa/machine_name.c and used in the probe routine | 19 | * It is set in linux/arch/arm/mach-pxa/machine_name.c and used in the probe routine |
18 | * of linux/drivers/video/pxafb.c | 20 | * of linux/drivers/video/pxafb.c |
19 | */ | 21 | */ |
20 | struct pxafb_mach_info { | 22 | struct pxafb_mode_info { |
21 | u_long pixclock; | 23 | u_long pixclock; |
22 | 24 | ||
23 | u_short xres; | 25 | u_short xres; |
@@ -34,6 +36,14 @@ struct pxafb_mach_info { | |||
34 | u_char sync; | 36 | u_char sync; |
35 | 37 | ||
36 | u_int cmap_greyscale:1, | 38 | u_int cmap_greyscale:1, |
39 | unused:31; | ||
40 | }; | ||
41 | |||
42 | struct pxafb_mach_info { | ||
43 | struct pxafb_mode_info *modes; | ||
44 | unsigned int num_modes; | ||
45 | |||
46 | u_int fixed_modes:1, | ||
37 | cmap_inverse:1, | 47 | cmap_inverse:1, |
38 | cmap_static:1, | 48 | cmap_static:1, |
39 | unused:29; | 49 | unused:29; |
@@ -62,7 +72,7 @@ struct pxafb_mach_info { | |||
62 | u_int lccr3; | 72 | u_int lccr3; |
63 | 73 | ||
64 | void (*pxafb_backlight_power)(int); | 74 | void (*pxafb_backlight_power)(int); |
65 | void (*pxafb_lcd_power)(int); | 75 | void (*pxafb_lcd_power)(int, struct fb_var_screeninfo *); |
66 | 76 | ||
67 | }; | 77 | }; |
68 | void set_pxa_fb_info(struct pxafb_mach_info *hard_pxa_fb_info); | 78 | void set_pxa_fb_info(struct pxafb_mach_info *hard_pxa_fb_info); |
diff --git a/include/asm-arm/arch-pxa/spitz.h b/include/asm-arm/arch-pxa/spitz.h index 62e1fe4d025f..4953dd324d4d 100644 --- a/include/asm-arm/arch-pxa/spitz.h +++ b/include/asm-arm/arch-pxa/spitz.h | |||
@@ -15,6 +15,8 @@ | |||
15 | #define __ASM_ARCH_SPITZ_H 1 | 15 | #define __ASM_ARCH_SPITZ_H 1 |
16 | #endif | 16 | #endif |
17 | 17 | ||
18 | #include <linux/fb.h> | ||
19 | |||
18 | /* Spitz/Akita GPIOs */ | 20 | /* Spitz/Akita GPIOs */ |
19 | 21 | ||
20 | #define SPITZ_GPIO_KEY_INT (0) /* Key Interrupt */ | 22 | #define SPITZ_GPIO_KEY_INT (0) /* Key Interrupt */ |
@@ -155,4 +157,4 @@ extern struct platform_device spitzscoop2_device; | |||
155 | extern struct platform_device spitzssp_device; | 157 | extern struct platform_device spitzssp_device; |
156 | extern struct sharpsl_charger_machinfo spitz_pm_machinfo; | 158 | extern struct sharpsl_charger_machinfo spitz_pm_machinfo; |
157 | 159 | ||
158 | extern void spitz_lcd_power(int on); | 160 | extern void spitz_lcd_power(int on, struct fb_var_screeninfo *var); |