[Intel-gfx] [RFC] drm/i915: always set positive sync in the sdvo register
eric at anholt.net
Thu Dec 8 15:19:58 PST 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
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
Size: 197 bytes
Desc: not available
More information about the Intel-gfx