From d2c7e5e7904f08cb9f6639b418bed879bf921738 Mon Sep 17 00:00:00 2001 From: Steve Sakoman Date: Tue, 19 Jan 2010 21:19:15 -0800 Subject: [PATCH 14/48] DSS2: add bootarg for selecting svideo or composite for tv output also add pal-16 and ntsc-16 omapfb.mode settings for 16bpp --- drivers/video/omap2/dss/venc.c | 22 ++++++++++++++++++++++ drivers/video/omap2/omapfb/omapfb-main.c | 10 +++++++++- 2 files changed, 31 insertions(+), 1 deletions(-) diff --git a/drivers/video/omap2/dss/venc.c b/drivers/video/omap2/dss/venc.c index 1127e85..53fa54e 100644 --- a/drivers/video/omap2/dss/venc.c +++ b/drivers/video/omap2/dss/venc.c @@ -87,6 +87,11 @@ #define VENC_OUTPUT_TEST 0xC8 #define VENC_DAC_B__DAC_C 0xC8 +static char *tv_connection; + +module_param_named(tvcable, tv_connection, charp, 0); +MODULE_PARM_DESC(tvcable, "TV connection type (svideo, composite)"); + struct venc_config { u32 f_control; u32 vidout_ctrl; @@ -430,6 +435,23 @@ static int venc_panel_probe(struct omap_dss_device *dssdev) { dssdev->panel.timings = omap_dss_pal_timings; + /* Allow the TV output to be overriden */ + if (tv_connection) { + if (strcmp(tv_connection, "svideo") == 0) { + printk(KERN_INFO + "omapdss: tv output is svideo.\n"); + dssdev->phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO; + } else if (strcmp(tv_connection, "composite") == 0) { + printk(KERN_INFO + "omapdss: tv output is composite.\n"); + dssdev->phy.venc.type = OMAP_DSS_VENC_TYPE_COMPOSITE; + } else { + printk(KERN_INFO + "omapdss: unsupported output type'%s'.\n", + tv_connection); + } + } + return 0; } diff --git a/drivers/video/omap2/omapfb/omapfb-main.c b/drivers/video/omap2/omapfb/omapfb-main.c index ef29983..015831b 100644 --- a/drivers/video/omap2/omapfb/omapfb-main.c +++ b/drivers/video/omap2/omapfb/omapfb-main.c @@ -1961,7 +1961,15 @@ static int omapfb_mode_to_timings(const char *mode_str, int r; #ifdef CONFIG_OMAP2_DSS_VENC - if (strcmp(mode_str, "pal") == 0) { + if (strcmp(mode_str, "pal-16") == 0) { + *timings = omap_dss_pal_timings; + *bpp = 16; + return 0; + } else if (strcmp(mode_str, "ntsc-16") == 0) { + *timings = omap_dss_ntsc_timings; + *bpp = 16; + return 0; + } else if (strcmp(mode_str, "pal") == 0) { *timings = omap_dss_pal_timings; *bpp = 0; return 0; -- 1.6.6.1