[Intel-gfx] [PATCH 01/15] drm/i915: fixup 12bpc hdmi dotclock handling

Daniel Vetter daniel.vetter at ffwll.ch
Tue Apr 23 17:37:14 CEST 2013


On Tue, Apr 23, 2013 at 5:02 PM, Ville Syrjälä
<ville.syrjala at linux.intel.com> wrote:
> On Fri, Apr 19, 2013 at 11:24:33AM +0200, Daniel Vetter wrote:
>> We need to multiply the hdmi port dotclock by 1.5x since it's not
>> really a dotclock, but the 10/8 encoding bitclock divided by 10.
>>
>> Also add correct limit checks for the dotclock and reject modes which
>> don't fit. HDMI 1.4 would allow more, but our hw doesn't support that
>> unfortunately :(
>>
>> Somehow I suspect 12bpc hdmi output never really worked - we really
>> need an i-g-t testcase to check all the different pixel modes and
>> outputs.
>>
>> v2: Fixup the adjusted port clock handling - we need to make sure that
>> the fdi link code still gets the real pixelclock.
>>
>> v3: g4x/vlv don't support 12bpc hdmi output so drop the bogus comment.
>>
>> Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
>
> Seems to match what the spec says. Although I'm getting confused about
> all the clocks we have. Somehow I'd prefer to store the pixel clock in
> the mode, and move the link clock out, but perhaps that makes things
> more messy elsewhere...

Yeah, I think we need to switch over to storing the adjusted pixel
clok in adjuste_mode->clock and keep the link clock in a separate
field in the pipe config. The current code is just a mess.

I haven't done this yet since I need some more clarity first, so that
we don't horribly break eDP ...

> Also I'm confused about the 225 MHz limit. That seems to be specific to
> PCH platforms. My g4x docs say that HDMI limit is 165 MHz. Also
> intel_limits_g4x_hdmi() has dot.max of 400 MHz which seems to contradict
> the docs (400 MHz is correct for the DAC apparently). But then again the
> docs also say that the p1_slow/p2_fast switchover point is 165 MHz, so
> if the max is 165 MHz too, there would never be any need to use p2_fast
> with HDMI. The more I read the docs, the more confused I get.

Yeah, it's a complete disaster. My thinking with the 225 MHz clock is that:
- 12 bpc is a hdmi-only feature, so we can forget about any fancy DVI cases
- hdmi spec up to 1.2 says 225MHz is the upper limit of the 8/10 symbol clock.

So I've figured by limiting things to the 1.2 hdmi spec I could avoid
trying to untangle this mess and trying to reconcile our code with
Bspec. I'm cheap, I know ...
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list