[Intel-gfx] [PATCH 1/4] drm/i915: Configure the TV sense state correctly on GM45 to make TV detection reliable

Adam Jackson ajax at redhat.com
Wed Apr 21 17:09:08 CEST 2010


On Wed, 2010-04-21 at 16:46 +0800, ykzhao wrote:
> On Sat, 2010-04-10 at 05:14 +0800, Eric Anholt wrote:
> > As far as I can tell from reading the specs, this patch just completely
> > breaks TV detect on GM45.  And the logic of "set all the bits for the
> > register setting we're going to do and then if it's gm45 skip a few of
> > them" is unintuitive and backwards, even if it was correct.\\
> 
> This is from bios code. And the bios team also helps to confirm that TV
> DAC sense state bits should be cleared to zero on cantiga platform.

Uh.  The patch does this:

> +       if (IS_GM45(dev))
> +               tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL |
> +                           TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL);
> +

TVDAC_STATE_CHG_EN is documented as:

> TVDAC_STATE_CHG_EN : Enables DAC state change detection logic
>  0 = disabled
>  1 = enabled

You mean to tell me that, on Cantiga, _disabling_ the state change
detection logic, enables state change detection?

> How about the following commit log?
> 
>    The TV detection logic is not reliable on the cantiga platform. Sometimes the
> TV will be misdetected as the following two cases:
>    a. TV is misdetected on some laptops. e.g. There is no TV connector
> port or no TV is attaced. But the TV is shown as connected.
>    b. TV connector type is misdetected. E.g. the component TV is
> attached, but the TV is shown as S-video type.
> 
> It is confirmed that in bios code the TV DAC sense bits should be cleared
> to zero on GM45 in course of TV detection, which is different with other
> platforms. It uses the following conditional definition:
>   IF   CTG
>     TVDAC_SENSE_CTL EQU 0               ; Cantiga to Low level
>   ELSE
>     TVDAC_SENSE_CTL EQU BIT27 + BIT26 + BIT25 + BIT24
>   ENDIF         ; CTG

If the BIOS clears all those bits in TV_DAC, _then_ enables bit 27, then
this seems like a reasonable thing to do.  That would mean that the
detection logic is basically one shot, and needs to be completely reset
between uses.

But I really don't see how, short of a really really bad hardware bug,
turning a subsystem _off_ would make that subsystem work.

- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20100421/66ff06b9/attachment.sig>


More information about the Intel-gfx mailing list