diff options
author | Ricardo Neri <ricardo.neri@ti.com> | 2012-02-16 10:20:57 -0500 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2012-02-21 02:40:11 -0500 |
commit | 709881942d2af6944a59d1b90e73ba8f4d76bd82 (patch) | |
tree | f45d0b458afcf77763f2bd82401fd65b1b976d50 /drivers/video/omap2 | |
parent | 4306b721ac1e8b79858b38537f0fb5a940a792be (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.c | 41 | ||||
-rw-r--r-- | drivers/video/omap2/dss/dss_features.h | 1 |
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 | ||
403 | static 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 | |||
403 | static const enum dss_feat_id omap4_dss_feat_list[] = { | 420 | static 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 */ | ||
515 | static 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 */ |
497 | static const struct omap_dss_features omap4_dss_features = { | 534 | static 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, |