Bug 20947

Summary: [945GC SDVO-TV] CVBS Output type not recognized
Product: xorg Reporter: Hugo Jacques <hugo.jacques>
Component: Driver/intelAssignee: Wang Zhenyu <zhenyu.z.wang>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: hugo.jacques
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg.0.log showing defect
none
xorg.conf reproducing defect
none
xrandr --versbose log
none
dmesg when defect present
none
patch that solves the problem on my setup none

Description Hugo Jacques 2009-03-30 07:19:29 UTC
Created attachment 24366 [details]
Xorg.0.log showing defect

The Composite output (CVBS) type is not recognized on SDVO TV ports. 
See line (WW) intel(0): SDVOB: Unknown SDVO output type (0x0400) in xorg.0.log
This results in plain old TV set not working through SDVO.


System environment:
-- chipset: 945GC
-- system architecture: i686 32 bits
-- xf86-video-intel: git commit #:375b2e40fcb17e94538a75392950e2533c1bb031
-- xserver: xorg-server-1.6.0
-- mesa: git commit #: 2002e03a5232c54988161cb629966bdce19d35de
-- libdrm: git commit #: c9cfeaa5542e08381a8144d0a5bd96036a19082f
-- kernel: 2.6.28.8
-- Linux distribution: Zenwalk 6.0.0
-- Machine or mobo model: Asus P5GC-MX
-- Display connector: VGA(DB-15) + Composite BNC Connector

Reproducing steps:

Boot the machine with attached xorg.conf, a regular VGA monitor on the DB-15 and a NTSV TV set on the the Composite BNC connector.
Nothing plugged into the DVI connector.
Would expect the VGA and the TV to side by side in a desktop spanning the two monitors.
Only the VGA monitor is being used in the desktop and the TV does not get any signal.
xrandr reports TV connector as "Unknown-1" instead of TV-1 (see attached log)

Additional info:

Using an Advantech Add2 card with Chrontel CH7021 on SDVO-B (Composite) and Chrontel CH7307 on SDVO-C (DVI)

This issue seems to be related to the fact the case where flag = SDVO_OUTPUT_CVBS0 in i830_sdvo_output_setup is not supported.
In fact, adding the following code after the "else if (flag & SDVO_OUTPUT_SVID0)" block makes the thing works just fine.


    else if (flag & SDVO_OUTPUT_CVBS0)
    {
	dev_priv->controlled_output = SDVO_OUTPUT_CVBS0;
	output->subpixel_order = SubPixelHorizontalRGB; /* XXX */
	name_prefix="TV";
	dev_priv->is_tv = TRUE;
	intel_output->needs_tv_clock = TRUE;
    }
Comment 1 Hugo Jacques 2009-03-30 07:21:39 UTC
Created attachment 24367 [details]
xorg.conf reproducing defect
Comment 2 Hugo Jacques 2009-03-30 07:22:42 UTC
Created attachment 24368 [details]
xrandr --versbose log
Comment 3 Hugo Jacques 2009-03-30 07:23:27 UTC
Created attachment 24369 [details]
dmesg when defect present
Comment 4 Wang Zhenyu 2009-03-30 22:25:44 UTC
I've read you mail on xorg list, could you do a patch for this? Thanks.
Comment 5 Hugo Jacques 2009-03-31 05:20:53 UTC
Created attachment 24400 [details] [review]
patch that solves the problem on my setup

Here is the patch.
Comment 6 Wang Zhenyu 2009-03-31 19:22:55 UTC
Thanks a lot! Pushed.

commit 00de1757dd5776962bdd4c8968181878c2ebf4c9
Author: Hugo Jacques <hugo.jacques@verint.com>
Date:   Wed Apr 1 10:10:05 2009 +0800

    SDVO: add composite TV out support

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.