aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2
diff options
context:
space:
mode:
authorRicardo Neri <ricardo.neri@ti.com>2012-02-16 10:20:57 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2012-02-21 02:40:11 -0500
commit709881942d2af6944a59d1b90e73ba8f4d76bd82 (patch)
treef45d0b458afcf77763f2bd82401fd65b1b976d50 /drivers/video/omap2
parent4306b721ac1e8b79858b38537f0fb5a940a792be (diff)
OMAPDSS: Add DSS feature for HDMI MCLK for audio
Certain OMAP4 revisions (i.e., 4430 ES2.3, 4460, and 4470) use a pseudo clock (generated from the TMDS clock), MCLK, to drive the generation of Audio Clock Regeneration packets. Other devices (i.e., 4430 ES2.[0,2]) use the TMDS clock directly. This patch adds a new DSS feature for MCLK support. It also rearranges the omap_dss_features structures to reflect the devices supporting it. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2')
-rw-r--r--drivers/video/omap2/dss/dss_features.c41
-rw-r--r--drivers/video/omap2/dss/dss_features.h1
2 files changed, 42 insertions, 0 deletions
diff --git a/drivers/video/omap2/dss/dss_features.c b/drivers/video/omap2/dss/dss_features.c
index 656cb69f4640..0a926432ccdc 100644
--- a/drivers/video/omap2/dss/dss_features.c
+++ b/drivers/video/omap2/dss/dss_features.c
@@ -400,6 +400,23 @@ static const enum dss_feat_id omap4430_es1_0_dss_feat_list[] = {
400 FEAT_FIFO_MERGE, 400 FEAT_FIFO_MERGE,
401}; 401};
402 402
403static const enum dss_feat_id omap4430_es2_0_1_2_dss_feat_list[] = {
404 FEAT_MGR_LCD2,
405 FEAT_CORE_CLK_DIV,
406 FEAT_LCD_CLK_SRC,
407 FEAT_DSI_DCS_CMD_CONFIG_VC,
408 FEAT_DSI_VC_OCP_WIDTH,
409 FEAT_DSI_GNQ,
410 FEAT_HDMI_CTS_SWMODE,
411 FEAT_HANDLE_UV_SEPARATE,
412 FEAT_ATTR2,
413 FEAT_CPR,
414 FEAT_PRELOAD,
415 FEAT_FIR_COEF_V,
416 FEAT_ALPHA_FREE_ZORDER,
417 FEAT_FIFO_MERGE,
418};
419
403static const enum dss_feat_id omap4_dss_feat_list[] = { 420static const enum dss_feat_id omap4_dss_feat_list[] = {
404 FEAT_MGR_LCD2, 421 FEAT_MGR_LCD2,
405 FEAT_CORE_CLK_DIV, 422 FEAT_CORE_CLK_DIV,
@@ -408,6 +425,7 @@ static const enum dss_feat_id omap4_dss_feat_list[] = {
408 FEAT_DSI_VC_OCP_WIDTH, 425 FEAT_DSI_VC_OCP_WIDTH,
409 FEAT_DSI_GNQ, 426 FEAT_DSI_GNQ,
410 FEAT_HDMI_CTS_SWMODE, 427 FEAT_HDMI_CTS_SWMODE,
428 FEAT_HDMI_AUDIO_USE_MCLK,
411 FEAT_HANDLE_UV_SEPARATE, 429 FEAT_HANDLE_UV_SEPARATE,
412 FEAT_ATTR2, 430 FEAT_ATTR2,
413 FEAT_CPR, 431 FEAT_CPR,
@@ -493,6 +511,25 @@ static const struct omap_dss_features omap4430_es1_0_dss_features = {
493 .burst_size_unit = 16, 511 .burst_size_unit = 16,
494}; 512};
495 513
514/* For OMAP4430 ES 2.0, 2.1 and 2.2 revisions */
515static const struct omap_dss_features omap4430_es2_0_1_2_dss_features = {
516 .reg_fields = omap4_dss_reg_fields,
517 .num_reg_fields = ARRAY_SIZE(omap4_dss_reg_fields),
518
519 .features = omap4430_es2_0_1_2_dss_feat_list,
520 .num_features = ARRAY_SIZE(omap4430_es2_0_1_2_dss_feat_list),
521
522 .num_mgrs = 3,
523 .num_ovls = 4,
524 .supported_displays = omap4_dss_supported_displays,
525 .supported_color_modes = omap4_dss_supported_color_modes,
526 .overlay_caps = omap4_dss_overlay_caps,
527 .clksrc_names = omap4_dss_clk_source_names,
528 .dss_params = omap4_dss_param_range,
529 .buffer_size_unit = 16,
530 .burst_size_unit = 16,
531};
532
496/* For all the other OMAP4 versions */ 533/* For all the other OMAP4 versions */
497static const struct omap_dss_features omap4_dss_features = { 534static const struct omap_dss_features omap4_dss_features = {
498 .reg_fields = omap4_dss_reg_fields, 535 .reg_fields = omap4_dss_reg_fields,
@@ -634,6 +671,10 @@ void dss_features_init(void)
634 omap_current_dss_features = &omap3430_dss_features; 671 omap_current_dss_features = &omap3430_dss_features;
635 else if (omap_rev() == OMAP4430_REV_ES1_0) 672 else if (omap_rev() == OMAP4430_REV_ES1_0)
636 omap_current_dss_features = &omap4430_es1_0_dss_features; 673 omap_current_dss_features = &omap4430_es1_0_dss_features;
674 else if (omap_rev() == OMAP4430_REV_ES2_0 ||
675 omap_rev() == OMAP4430_REV_ES2_1 ||
676 omap_rev() == OMAP4430_REV_ES2_2)
677 omap_current_dss_features = &omap4430_es2_0_1_2_dss_features;
637 else if (cpu_is_omap44xx()) 678 else if (cpu_is_omap44xx())
638 omap_current_dss_features = &omap4_dss_features; 679 omap_current_dss_features = &omap4_dss_features;
639 else 680 else
diff --git a/drivers/video/omap2/dss/dss_features.h b/drivers/video/omap2/dss/dss_features.h
index 682f091cf02e..c332e7ddfce1 100644
--- a/drivers/video/omap2/dss/dss_features.h
+++ b/drivers/video/omap2/dss/dss_features.h
@@ -50,6 +50,7 @@ enum dss_feat_id {
50 FEAT_DSI_REVERSE_TXCLKESC, 50 FEAT_DSI_REVERSE_TXCLKESC,
51 FEAT_DSI_GNQ, 51 FEAT_DSI_GNQ,
52 FEAT_HDMI_CTS_SWMODE, 52 FEAT_HDMI_CTS_SWMODE,
53 FEAT_HDMI_AUDIO_USE_MCLK,
53 FEAT_HANDLE_UV_SEPARATE, 54 FEAT_HANDLE_UV_SEPARATE,
54 FEAT_ATTR2, 55 FEAT_ATTR2,
55 FEAT_VENC_REQUIRES_TV_DAC_CLK, 56 FEAT_VENC_REQUIRES_TV_DAC_CLK,