xf86-video-intel : SDVO TV out with Component output: proposing a fix

Zhenyu Wang zhenyu.z.wang at intel.com
Mon Mar 30 18:18:16 PDT 2009


On 2009.03.27 07:07:35 +0800, Jacques, Hugo wrote:
> Hi xf86-video-intel folks,
> 
> I just gave a try to a recent driver (xf86-video-intel-2.7-rc1) to see how it went driving an SDVO TV output.
> 
> I am using an Add2 card with a CH7021 on SDVO-B (component output = CVBS) and a CH7307 for DVI-D on SDVO-C.

CVBS is composite output, component is YPrPb.

> 
> Launching X with a VGA monitor connected to the Mobo and a plain old TV set to the Add2's CVBS, the TV gets no signal.
> 
> In the Xorg.0.log, I got:
> 
> (WW) intel(0): SDVOB: Unknown SDVO output type (0x0400)

Interesting, this looks violate SDVO spec. As device shouldn't have xxxx1 output
unless it has xxxx0 output, and only one TV output, so 0x0400 (CVBS1) should always
be invalid. But real hw vendor could possibly break this as your case.

> 
> In i830_sdvo.c, function i830_sdvo_output_setup, it seems that the cases with flag = SDVO_OUTPUT_CVBS0 or SDVO_OUTPUT_CVBS1 or SDVO_OUTPUT_SVID1 are not handled.
> 
> I am not sure why this is so, but I took a chance (I am a newbie with this code) and added some code to do handle the above cases.

Because we don't have hardware for verify this.

> 
> I made the thing working.
> 
> Below is the diff between the original code and my modifs.
> 
> Feel free to integrate it. (Should I be entering this into Bugzilla?)
> 

Looks ok to me, except it's not in diff format.
Anyway I'll try to integrate it. Thanks.

> 
> diff i830_sdvo.c i830_sdvo.c.modif
> 
> 1561a1562,1585
> >     else if (flag & SDVO_OUTPUT_SVID1)
> >     {
> >       dev_priv->controlled_output = SDVO_OUTPUT_SVID1;
> >       output->subpixel_order = SubPixelHorizontalRGB; /* XXX */
> >       name_prefix="TV";
> >       dev_priv->is_tv = TRUE;
> >       intel_output->needs_tv_clock = TRUE;
> >     }
> >     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;
> >     }
> >     else if (flag & SDVO_OUTPUT_CVBS1)
> >     {
> >       dev_priv->controlled_output = SDVO_OUTPUT_CVBS1;
> >       output->subpixel_order = SubPixelHorizontalRGB; /* XXX */
> >       name_prefix="TV";
> >       dev_priv->is_tv = TRUE;
> >       intel_output->needs_tv_clock = TRUE;
> >     } 
> 
> Hugo Jacques
> This electronic message may contain proprietary and confidential information of Verint Systems Inc., its affiliates and/or subsidiaries.
> The information is intended to be for the use of the individual(s) or
> entity(ies) named above.  If you are not the intended recipient (or authorized to receive this e-mail for the intended recipient), you may not use, copy, disclose or distribute to anyone this message or any information contained in this message.  If you have received this electronic message in error, please notify us by replying to this e-mail.
> 
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg

-- 
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.x.org/archives/xorg/attachments/20090331/f28a35c2/attachment.pgp>


More information about the xorg mailing list