[Intel-gfx] [RFC] drm/i915: always set positive sync in the sdvo register

Eric Anholt eric at anholt.net
Fri Dec 9 00:19:58 CET 2011


On Thu,  8 Dec 2011 13:41:53 -0200, przanoni at gmail.com wrote:
> From: Paulo Zanoni <paulo.r.zanoni at intel.com>
> 
> We use struct intel_sdvo_dtd for that too.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=15766
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42174
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=43333
> 
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>

I think the patch this is sort-of-reverting was wrong.  Here's what I
found:

It was non-obvious to me what vblank high/low would mean on a digital
link.  It turns out that there are 3 magic characters sent down instead
of pixel data: blank, hsync, and vsync (and syncs can overlap).  The
sync polarity field for SDVOB in the PRM (looking at G35 here) says:

    "Indicates the polarity of Hsync and Vsync. Inverted polarity is
     transmitted as SYNC-BLANK-SYNC and standard polarity is transmitted
     as BLANK-SYNC-BLANK. For example, if Vsync is not inverted and
     Hsync is inverted, an Hsync period transmitted during Vsync would
     be transmitted as BLANK+VS+HS – BLANK+VS – BLANK+VS+HS."

Looking at my SDVO EDS, there's an example of "Invalid HSync Blank
Periods", which includes a sample sequence of "active blank+ hsync blank
hsync blank+ active" being invalid, which matches that description for
hsync low.  The valid hsync examples all match "active blank+ hsync+
blank+ active".  (+ here is the regexp meaning of "at least one of the
character").  I don't see equivalent examples banning vertical low,
but I'd expect so (the valid vertical example is vertical high).

However, I think setting these flags pre-gen4 is also wrong -- bit 4 is
reserved and bit 3 is RO and has a different meaning.  I think the pure
revert is the right answer, instead.

A couple of interesting notes for people debugging SDVO that aren't
reflected in our code:

vblank must be at least 3 lines
vsync must be at least one line.
hblank must be at least hsync characters
hsync must be at least 16 characters.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20111208/3bbb0d59/attachment.sig>


More information about the Intel-gfx mailing list