diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-05 12:49:32 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-05 12:49:32 -0400 |
| commit | 9ab073bc45b8b523cc39658925bb44bef35ca657 (patch) | |
| tree | 37bfe5c5fd5ef0d296fe47c7ed2c227b198e8fdc | |
| parent | eced5a0a5a8f7a3b07320e3b7d1d432e0f044735 (diff) | |
| parent | 028cd86b794f4a7f09525587c8e9ab6b03a6fa0f (diff) | |
Merge tag 'fbdev-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux
Pull fbdev changes from Tomi Valkeinen:
- Improvements to da8xx-fb to make it support v2 of the LCDC IP, used
eg in BeagleBone
- Himax HX8369 controller support
- Various small fixes and cleanups
* tag 'fbdev-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (42 commits)
video: da8xx-fb: fix the polarities of the hsync/vsync pulse
video: da8xx-fb: support lcdc v2 timing register expansion
video: da8xx-fb: fixing timing off by one errors
video: da8xx-fb fixing incorrect porch mappings
video: xilinxfb: replace devm_request_and_ioremap by devm_ioremap_resource
fbmem: move EXPORT_SYMBOL annotation next to symbol declarations
drivers: video: fbcmap: remove the redundency and incorrect checkings
video: mxsfb: simplify use of devm_ioremap_resource
Release efifb's colormap in efifb_destroy()
at91/avr32/atmel_lcdfb: prepare clk before calling enable
video: exynos: Ensure definitions match prototypes
OMAPDSS: fix WARN_ON in 'alpha_blending_enabled' sysfs file
OMAPDSS: HDMI: Fix possible NULL reference
video: da8xx-fb: adding am33xx as dependency
video: da8xx-fb: let compiler decide what to inline
video: da8xx-fb: make clock naming consistent
video: da8xx-fb: set upstream clock rate (if reqd)
video: da8xx-fb: reorganize panel detection
video: da8xx-fb: ensure non-null cfg in pdata
video: da8xx-fb: use devres
...
| -rw-r--r-- | Documentation/devicetree/bindings/video/simple-framebuffer.txt | 1 | ||||
| -rw-r--r-- | drivers/video/Kconfig | 15 | ||||
| -rw-r--r-- | drivers/video/atmel_lcdfb.c | 8 | ||||
| -rw-r--r-- | drivers/video/backlight/hx8357.c | 269 | ||||
| -rw-r--r-- | drivers/video/backlight/lp855x_bl.c | 2 | ||||
| -rw-r--r-- | drivers/video/da8xx-fb.c | 387 | ||||
| -rw-r--r-- | drivers/video/efifb.c | 1 | ||||
| -rw-r--r-- | drivers/video/exynos/exynos_mipi_dsi_lowlevel.c | 1 | ||||
| -rw-r--r-- | drivers/video/fbcmap.c | 7 | ||||
| -rw-r--r-- | drivers/video/fbmem.c | 29 | ||||
| -rw-r--r-- | drivers/video/matrox/matroxfb_base.c | 3 | ||||
| -rw-r--r-- | drivers/video/mxsfb.c | 15 | ||||
| -rw-r--r-- | drivers/video/omap2/dss/hdmi.c | 5 | ||||
| -rw-r--r-- | drivers/video/omap2/dss/manager-sysfs.c | 8 | ||||
| -rw-r--r-- | drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c | 42 | ||||
| -rw-r--r-- | drivers/video/output.c | 20 | ||||
| -rw-r--r-- | drivers/video/xilinxfb.c | 8 | ||||
| -rw-r--r-- | include/linux/platform_data/simplefb.h | 1 | ||||
| -rw-r--r-- | include/video/da8xx-fb.h | 5 |
19 files changed, 542 insertions, 285 deletions
diff --git a/Documentation/devicetree/bindings/video/simple-framebuffer.txt b/Documentation/devicetree/bindings/video/simple-framebuffer.txt index 3ea460583111..70c26f3a5b9a 100644 --- a/Documentation/devicetree/bindings/video/simple-framebuffer.txt +++ b/Documentation/devicetree/bindings/video/simple-framebuffer.txt | |||
| @@ -12,6 +12,7 @@ Required properties: | |||
| 12 | - stride: The number of bytes in each line of the framebuffer. | 12 | - stride: The number of bytes in each line of the framebuffer. |
| 13 | - format: The format of the framebuffer surface. Valid values are: | 13 | - format: The format of the framebuffer surface. Valid values are: |
| 14 | - r5g6b5 (16-bit pixels, d[15:11]=r, d[10:5]=g, d[4:0]=b). | 14 | - r5g6b5 (16-bit pixels, d[15:11]=r, d[10:5]=g, d[4:0]=b). |
| 15 | - a8b8g8r8 (32-bit pixels, d[31:24]=a, d[23:16]=b, d[15:8]=g, d[7:0]=r). | ||
| 15 | 16 | ||
| 16 | Example: | 17 | Example: |
| 17 | 18 | ||
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 34c3d960634d..84b685f7ab6e 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig | |||
| @@ -2100,13 +2100,6 @@ config GPM1040A0_320X240 | |||
| 2100 | bool "Giantplus Technology GPM1040A0 320x240 Color TFT LCD" | 2100 | bool "Giantplus Technology GPM1040A0 320x240 Color TFT LCD" |
| 2101 | depends on FB_NUC900 | 2101 | depends on FB_NUC900 |
| 2102 | 2102 | ||
| 2103 | config FB_NUC900_DEBUG | ||
| 2104 | bool "NUC900 lcd debug messages" | ||
| 2105 | depends on FB_NUC900 | ||
| 2106 | help | ||
| 2107 | Turn on debugging messages. Note that you can set/unset at run time | ||
| 2108 | through sysfs | ||
| 2109 | |||
| 2110 | config FB_SM501 | 2103 | config FB_SM501 |
| 2111 | tristate "Silicon Motion SM501 framebuffer support" | 2104 | tristate "Silicon Motion SM501 framebuffer support" |
| 2112 | depends on FB && MFD_SM501 | 2105 | depends on FB && MFD_SM501 |
| @@ -2228,15 +2221,17 @@ config FB_SH7760 | |||
| 2228 | panels <= 320 pixel horizontal resolution. | 2221 | panels <= 320 pixel horizontal resolution. |
| 2229 | 2222 | ||
| 2230 | config FB_DA8XX | 2223 | config FB_DA8XX |
| 2231 | tristate "DA8xx/OMAP-L1xx Framebuffer support" | 2224 | tristate "DA8xx/OMAP-L1xx/AM335x Framebuffer support" |
| 2232 | depends on FB && ARCH_DAVINCI_DA8XX | 2225 | depends on FB && (ARCH_DAVINCI_DA8XX || SOC_AM33XX) |
| 2233 | select FB_CFB_FILLRECT | 2226 | select FB_CFB_FILLRECT |
| 2234 | select FB_CFB_COPYAREA | 2227 | select FB_CFB_COPYAREA |
| 2235 | select FB_CFB_IMAGEBLIT | 2228 | select FB_CFB_IMAGEBLIT |
| 2236 | select FB_CFB_REV_PIXELS_IN_BYTE | 2229 | select FB_CFB_REV_PIXELS_IN_BYTE |
| 2230 | select FB_MODE_HELPERS | ||
| 2231 | select VIDEOMODE_HELPERS | ||
| 2237 | ---help--- | 2232 | ---help--- |
| 2238 | This is the frame buffer device driver for the TI LCD controller | 2233 | This is the frame buffer device driver for the TI LCD controller |
| 2239 | found on DA8xx/OMAP-L1xx SoCs. | 2234 | found on DA8xx/OMAP-L1xx/AM335x SoCs. |
| 2240 | If unsure, say N. | 2235 | If unsure, say N. |
| 2241 | 2236 | ||
| 2242 | config FB_VIRTUAL | 2237 | config FB_VIRTUAL |
diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c index effdb373b8db..088511a58a26 100644 --- a/drivers/video/atmel_lcdfb.c +++ b/drivers/video/atmel_lcdfb.c | |||
| @@ -902,14 +902,14 @@ static int __init atmel_lcdfb_init_fbinfo(struct atmel_lcdfb_info *sinfo) | |||
| 902 | 902 | ||
| 903 | static void atmel_lcdfb_start_clock(struct atmel_lcdfb_info *sinfo) | 903 | static void atmel_lcdfb_start_clock(struct atmel_lcdfb_info *sinfo) |
| 904 | { | 904 | { |
| 905 | clk_enable(sinfo->bus_clk); | 905 | clk_prepare_enable(sinfo->bus_clk); |
| 906 | clk_enable(sinfo->lcdc_clk); | 906 | clk_prepare_enable(sinfo->lcdc_clk); |
| 907 | } | 907 | } |
| 908 | 908 | ||
| 909 | static void atmel_lcdfb_stop_clock(struct atmel_lcdfb_info *sinfo) | 909 | static void atmel_lcdfb_stop_clock(struct atmel_lcdfb_info *sinfo) |
| 910 | { | 910 | { |
| 911 | clk_disable(sinfo->bus_clk); | 911 | clk_disable_unprepare(sinfo->bus_clk); |
| 912 | clk_disable(sinfo->lcdc_clk); | 912 | clk_disable_unprepare(sinfo->lcdc_clk); |
| 913 | } | 913 | } |
| 914 | 914 | ||
| 915 | 915 | ||
diff --git a/drivers/video/backlight/hx8357.c b/drivers/video/backlight/hx8357.c index a0482b567bfe..c7af8c45ab8a 100644 --- a/drivers/video/backlight/hx8357.c +++ b/drivers/video/backlight/hx8357.c | |||
| @@ -71,11 +71,24 @@ | |||
| 71 | #define HX8357_SET_POWER_NORMAL 0xd2 | 71 | #define HX8357_SET_POWER_NORMAL 0xd2 |
| 72 | #define HX8357_SET_PANEL_RELATED 0xe9 | 72 | #define HX8357_SET_PANEL_RELATED 0xe9 |
| 73 | 73 | ||
| 74 | #define HX8369_SET_DISPLAY_BRIGHTNESS 0x51 | ||
| 75 | #define HX8369_WRITE_CABC_DISPLAY_VALUE 0x53 | ||
| 76 | #define HX8369_WRITE_CABC_BRIGHT_CTRL 0x55 | ||
| 77 | #define HX8369_WRITE_CABC_MIN_BRIGHTNESS 0x5e | ||
| 78 | #define HX8369_SET_POWER 0xb1 | ||
| 79 | #define HX8369_SET_DISPLAY_MODE 0xb2 | ||
| 80 | #define HX8369_SET_DISPLAY_WAVEFORM_CYC 0xb4 | ||
| 81 | #define HX8369_SET_VCOM 0xb6 | ||
| 82 | #define HX8369_SET_EXTENSION_COMMAND 0xb9 | ||
| 83 | #define HX8369_SET_GIP 0xd5 | ||
| 84 | #define HX8369_SET_GAMMA_CURVE_RELATED 0xe0 | ||
| 85 | |||
| 74 | struct hx8357_data { | 86 | struct hx8357_data { |
| 75 | unsigned im_pins[HX8357_NUM_IM_PINS]; | 87 | unsigned im_pins[HX8357_NUM_IM_PINS]; |
| 76 | unsigned reset; | 88 | unsigned reset; |
| 77 | struct spi_device *spi; | 89 | struct spi_device *spi; |
| 78 | int state; | 90 | int state; |
| 91 | bool use_im_pins; | ||
| 79 | }; | 92 | }; |
| 80 | 93 | ||
| 81 | static u8 hx8357_seq_power[] = { | 94 | static u8 hx8357_seq_power[] = { |
| @@ -143,6 +156,61 @@ static u8 hx8357_seq_display_mode[] = { | |||
| 143 | HX8357_SET_DISPLAY_MODE_RGB_INTERFACE, | 156 | HX8357_SET_DISPLAY_MODE_RGB_INTERFACE, |
| 144 | }; | 157 | }; |
| 145 | 158 | ||
| 159 | static u8 hx8369_seq_write_CABC_min_brightness[] = { | ||
| 160 | HX8369_WRITE_CABC_MIN_BRIGHTNESS, 0x00, | ||
| 161 | }; | ||
| 162 | |||
| 163 | static u8 hx8369_seq_write_CABC_control[] = { | ||
| 164 | HX8369_WRITE_CABC_DISPLAY_VALUE, 0x24, | ||
| 165 | }; | ||
| 166 | |||
| 167 | static u8 hx8369_seq_set_display_brightness[] = { | ||
| 168 | HX8369_SET_DISPLAY_BRIGHTNESS, 0xFF, | ||
| 169 | }; | ||
| 170 | |||
| 171 | static u8 hx8369_seq_write_CABC_control_setting[] = { | ||
| 172 | HX8369_WRITE_CABC_BRIGHT_CTRL, 0x02, | ||
| 173 | }; | ||
| 174 | |||
| 175 | static u8 hx8369_seq_extension_command[] = { | ||
| 176 | HX8369_SET_EXTENSION_COMMAND, 0xff, 0x83, 0x69, | ||
| 177 | }; | ||
| 178 | |||
| 179 | static u8 hx8369_seq_display_related[] = { | ||
| 180 | HX8369_SET_DISPLAY_MODE, 0x00, 0x2b, 0x03, 0x03, 0x70, 0x00, | ||
| 181 | 0xff, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x01, | ||
| 182 | }; | ||
| 183 | |||
| 184 | static u8 hx8369_seq_panel_waveform_cycle[] = { | ||
| 185 | HX8369_SET_DISPLAY_WAVEFORM_CYC, 0x0a, 0x1d, 0x80, 0x06, 0x02, | ||
| 186 | }; | ||
| 187 | |||
| 188 | static u8 hx8369_seq_set_address_mode[] = { | ||
| 189 | HX8357_SET_ADDRESS_MODE, 0x00, | ||
| 190 | }; | ||
| 191 | |||
| 192 | static u8 hx8369_seq_vcom[] = { | ||
| 193 | HX8369_SET_VCOM, 0x3e, 0x3e, | ||
| 194 | }; | ||
| 195 | |||
| 196 | static u8 hx8369_seq_gip[] = { | ||
| 197 | HX8369_SET_GIP, 0x00, 0x01, 0x03, 0x25, 0x01, 0x02, 0x28, 0x70, | ||
| 198 | 0x11, 0x13, 0x00, 0x00, 0x40, 0x26, 0x51, 0x37, 0x00, 0x00, 0x71, | ||
