diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2012-12-13 07:30:56 -0500 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2012-12-13 07:30:56 -0500 |
commit | e7f5c9a16ea2648a3e85af8e34191026bf3dcb62 (patch) | |
tree | ad79eb6b57058e69013408d8ae4267ea06536ca6 /arch/arm/mach-omap2 | |
parent | a240af2eb24679f4d27d87281b25faee0a25df1a (diff) | |
parent | bd0f5cc3641cb76ae8fa2cc4924c29da157f8b2d (diff) |
Merge tag 'omapdss-for-3.8' of git://gitorious.org/linux-omap-dss2/linux into for-linus
OMAPDSS changes for 3.8, including:
- use dynanic debug prints
- OMAP platform dependency removals
- Creation of compat-layer, helping us to improve omapdrm
- Misc cleanups, aiming to make omadss more in line with the upcoming common
display framework
* tag 'omapdss-for-3.8' of git://gitorious.org/linux-omap-dss2/linux: (140 commits)
OMAPDSS: fix TV-out issue with DSI PLL
Revert "OMAPFB: simplify locking"
OMAPFB: remove silly loop in fb2display()
OMAPFB: fix error handling in omapfb_find_best_mode()
OMAPFB: use devm_kzalloc to allocate omapfb2_device
OMAPDSS: DISPC: remove dispc fck uses
OMAPDSS: DISPC: get dss clock rate from dss driver
OMAPDSS: use omapdss_compat_init() in other drivers
OMAPDSS: export dispc functions
OMAPDSS: export dss_feat functions
OMAPDSS: export dss_mgr_ops functions
OMAPDSS: separate compat files in the Makefile
OMAPDSS: move display sysfs init to compat layer
OMAPDSS: DPI: use dispc's check_timings
OMAPDSS: DISPC: add dispc_ovl_check()
OMAPDSS: move irq handling to dispc-compat
OMAPDSS: move omap_dispc_wait_for_irq_interruptible_timeout to dispc-compat.c
OMAPDSS: move blocking mgr enable/disable to compat layer
OMAPDSS: manage framedone irq with mgr ops
OMAPDSS: add manager ops
...
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r-- | arch/arm/mach-omap2/board-rx51-video.c | 14 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-rx51.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/display.c | 53 | ||||
-rw-r--r-- | arch/arm/mach-omap2/sdrc.c | 16 |
4 files changed, 48 insertions, 38 deletions
diff --git a/arch/arm/mach-omap2/board-rx51-video.c b/arch/arm/mach-omap2/board-rx51-video.c index c22e111bcd00..46f4fc982766 100644 --- a/arch/arm/mach-omap2/board-rx51-video.c +++ b/arch/arm/mach-omap2/board-rx51-video.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
17 | #include <asm/mach-types.h> | 17 | #include <asm/mach-types.h> |
18 | #include <video/omapdss.h> | 18 | #include <video/omapdss.h> |
19 | #include <plat/vram.h> | ||
20 | #include <linux/platform_data/spi-omap2-mcspi.h> | 19 | #include <linux/platform_data/spi-omap2-mcspi.h> |
21 | 20 | ||
22 | #include "board-rx51.h" | 21 | #include "board-rx51.h" |
@@ -87,17 +86,4 @@ static int __init rx51_video_init(void) | |||
87 | } | 86 | } |
88 | 87 | ||
89 | subsys_initcall(rx51_video_init); | 88 | subsys_initcall(rx51_video_init); |
90 | |||
91 | void __init rx51_video_mem_init(void) | ||
92 | { | ||
93 | /* | ||
94 | * GFX 864x480x32bpp | ||
95 | * VID1/2 1280x720x32bpp double buffered | ||
96 | */ | ||
97 | omap_vram_set_sdram_vram(PAGE_ALIGN(864 * 480 * 4) + | ||
98 | 2 * PAGE_ALIGN(1280 * 720 * 4 * 2), 0); | ||
99 | } | ||
100 | |||
101 | #else | ||
102 | void __init rx51_video_mem_init(void) { } | ||
103 | #endif /* defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE) */ | 89 | #endif /* defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE) */ |
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c index 7bbb05d9689b..6e0de6f83278 100644 --- a/arch/arm/mach-omap2/board-rx51.c +++ b/arch/arm/mach-omap2/board-rx51.c | |||
@@ -34,8 +34,6 @@ | |||
34 | 34 | ||
35 | #define RX51_GPIO_SLEEP_IND 162 | 35 | #define RX51_GPIO_SLEEP_IND 162 |
36 | 36 | ||
37 | extern void rx51_video_mem_init(void); | ||
38 | |||
39 | static struct gpio_led gpio_leds[] = { | 37 | static struct gpio_led gpio_leds[] = { |
40 | { | 38 | { |
41 | .name = "sleep_ind", | 39 | .name = "sleep_ind", |
@@ -112,7 +110,6 @@ static void __init rx51_init(void) | |||
112 | 110 | ||
113 | static void __init rx51_reserve(void) | 111 | static void __init rx51_reserve(void) |
114 | { | 112 | { |
115 | rx51_video_mem_init(); | ||
116 | omap_reserve(); | 113 | omap_reserve(); |
117 | } | 114 | } |
118 | 115 | ||
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c index 1011995f150a..282c814ea2e2 100644 --- a/arch/arm/mach-omap2/display.c +++ b/arch/arm/mach-omap2/display.c | |||
@@ -100,17 +100,20 @@ static const struct omap_dss_hwmod_data omap4_dss_hwmod_data[] __initconst = { | |||
100 | { "dss_hdmi", "omapdss_hdmi", -1 }, | 100 | { "dss_hdmi", "omapdss_hdmi", -1 }, |
101 | }; | 101 | }; |
102 | 102 | ||
103 | static void __init omap4_hdmi_mux_pads(enum omap_hdmi_flags flags) | 103 | static void __init omap4_tpd12s015_mux_pads(void) |
104 | { | 104 | { |
105 | u32 reg; | ||
106 | u16 control_i2c_1; | ||
107 | |||
108 | omap_mux_init_signal("hdmi_cec", | 105 | omap_mux_init_signal("hdmi_cec", |
109 | OMAP_PIN_INPUT_PULLUP); | 106 | OMAP_PIN_INPUT_PULLUP); |
110 | omap_mux_init_signal("hdmi_ddc_scl", | 107 | omap_mux_init_signal("hdmi_ddc_scl", |
111 | OMAP_PIN_INPUT_PULLUP); | 108 | OMAP_PIN_INPUT_PULLUP); |
112 | omap_mux_init_signal("hdmi_ddc_sda", | 109 | omap_mux_init_signal("hdmi_ddc_sda", |
113 | OMAP_PIN_INPUT_PULLUP); | 110 | OMAP_PIN_INPUT_PULLUP); |
111 | } | ||
112 | |||
113 | static void __init omap4_hdmi_mux_pads(enum omap_hdmi_flags flags) | ||
114 | { | ||
115 | u32 reg; | ||
116 | u16 control_i2c_1; | ||
114 | 117 | ||
115 | /* | 118 | /* |
116 | * CONTROL_I2C_1: HDMI_DDC_SDA_PULLUPRESX (bit 28) and | 119 | * CONTROL_I2C_1: HDMI_DDC_SDA_PULLUPRESX (bit 28) and |
@@ -161,8 +164,10 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes) | |||
161 | 164 | ||
162 | int __init omap_hdmi_init(enum omap_hdmi_flags flags) | 165 | int __init omap_hdmi_init(enum omap_hdmi_flags flags) |
163 | { | 166 | { |
164 | if (cpu_is_omap44xx()) | 167 | if (cpu_is_omap44xx()) { |
165 | omap4_hdmi_mux_pads(flags); | 168 | omap4_hdmi_mux_pads(flags); |
169 | omap4_tpd12s015_mux_pads(); | ||
170 | } | ||
166 | 171 | ||
167 | return 0; | 172 | return 0; |
168 | } | 173 | } |
@@ -284,6 +289,35 @@ err: | |||
284 | return ERR_PTR(r); | 289 | return ERR_PTR(r); |
285 | } | 290 | } |
286 | 291 | ||
292 | static enum omapdss_version __init omap_display_get_version(void) | ||
293 | { | ||
294 | if (cpu_is_omap24xx()) | ||
295 | return OMAPDSS_VER_OMAP24xx; | ||
296 | else if (cpu_is_omap3630()) | ||
297 | return OMAPDSS_VER_OMAP3630; | ||
298 | else if (cpu_is_omap34xx()) { | ||
299 | if (soc_is_am35xx()) { | ||
300 | return OMAPDSS_VER_AM35xx; | ||
301 | } else { | ||
302 | if (omap_rev() < OMAP3430_REV_ES3_0) | ||
303 | return OMAPDSS_VER_OMAP34xx_ES1; | ||
304 | else | ||
305 | return OMAPDSS_VER_OMAP34xx_ES3; | ||
306 | } | ||
307 | } else if (omap_rev() == OMAP4430_REV_ES1_0) | ||
308 | return OMAPDSS_VER_OMAP4430_ES1; | ||
309 | else if (omap_rev() == OMAP4430_REV_ES2_0 || | ||
310 | omap_rev() == OMAP4430_REV_ES2_1 || | ||
311 | omap_rev() == OMAP4430_REV_ES2_2) | ||
312 | return OMAPDSS_VER_OMAP4430_ES2; | ||
313 | else if (cpu_is_omap44xx()) | ||
314 | return OMAPDSS_VER_OMAP4; | ||
315 | else if (soc_is_omap54xx()) | ||
316 | return OMAPDSS_VER_OMAP5; | ||
317 | else | ||
318 | return OMAPDSS_VER_UNKNOWN; | ||
319 | } | ||
320 | |||
287 | int __init omap_display_init(struct omap_dss_board_info *board_data) | 321 | int __init omap_display_init(struct omap_dss_board_info *board_data) |
288 | { | 322 | { |
289 | int r = 0; | 323 | int r = 0; |
@@ -291,9 +325,18 @@ int __init omap_display_init(struct omap_dss_board_info *board_data) | |||
291 | int i, oh_count; | 325 | int i, oh_count; |
292 | const struct omap_dss_hwmod_data *curr_dss_hwmod; | 326 | const struct omap_dss_hwmod_data *curr_dss_hwmod; |
293 | struct platform_device *dss_pdev; | 327 | struct platform_device *dss_pdev; |
328 | enum omapdss_version ver; | ||
294 | 329 | ||
295 | /* create omapdss device */ | 330 | /* create omapdss device */ |
296 | 331 | ||
332 | ver = omap_display_get_version(); | ||
333 | |||
334 | if (ver == OMAPDSS_VER_UNKNOWN) { | ||
335 | pr_err("DSS not supported on this SoC\n"); | ||
336 | return -ENODEV; | ||
337 | } | ||
338 | |||
339 | board_data->version = ver; | ||
297 | board_data->dsi_enable_pads = omap_dsi_enable_pads; | 340 | board_data->dsi_enable_pads = omap_dsi_enable_pads; |
298 | board_data->dsi_disable_pads = omap_dsi_disable_pads; | 341 | board_data->dsi_disable_pads = omap_dsi_disable_pads; |
299 | board_data->get_context_loss_count = omap_pm_get_dev_context_loss_count; | 342 | board_data->get_context_loss_count = omap_pm_get_dev_context_loss_count; |
diff --git a/arch/arm/mach-omap2/sdrc.c b/arch/arm/mach-omap2/sdrc.c index e3d345f46409..4282e6e967d6 100644 --- a/arch/arm/mach-omap2/sdrc.c +++ b/arch/arm/mach-omap2/sdrc.c | |||
@@ -160,19 +160,3 @@ void __init omap2_sdrc_init(struct omap_sdrc_params *sdrc_cs0, | |||
160 | sdrc_write_reg(l, SDRC_POWER); | 160 | sdrc_write_reg(l, SDRC_POWER); |
161 | omap2_sms_save_context(); | 161 | omap2_sms_save_context(); |
162 | } | 162 | } |
163 | |||
164 | void omap2_sms_write_rot_control(u32 val, unsigned ctx) | ||
165 | { | ||
166 | sms_write_reg(val, SMS_ROT_CONTROL(ctx)); | ||
167 | } | ||
168 | |||
169 | void omap2_sms_write_rot_size(u32 val, unsigned ctx) | ||
170 | { | ||
171 | sms_write_reg(val, SMS_ROT_SIZE(ctx)); | ||
172 | } | ||
173 | |||
174 | void omap2_sms_write_rot_physical_ba(u32 val, unsigned ctx) | ||
175 | { | ||
176 | sms_write_reg(val, SMS_ROT_PHYSICAL_BA(ctx)); | ||
177 | } | ||
178 | |||