From: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
To: Thierry Reding
<thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: Tegra DRM with HDMI support (\o/)
Date: Thu, 11 Oct 2012 17:36:35 -0600 [thread overview]
Message-ID: <50775803.1010209@wwwdotorg.org> (raw)
In-Reply-To: <20121011200705.GB27599-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
On 10/11/2012 02:07 PM, Thierry Reding wrote:
> Hi,
>
> I've finally managed to get HDMI working on Tegra20. Unfortunately
> the xf86-video-modesetting driver doesn't work on top of it yet,
> but I think that's a different error somewhere else and I'm still
> trying to figure out what exactly is going wrong. However, a
> framebuffer console can be run on top of it, as does a small test
> program that I've written for testing.
I should start out by saying that this is all very excellent news!
Thanks so much for your hard work on tegra-drm.
I have managed to get Harmony HDMI working, mostly just by copying the
obvious device tree entries from tegra20-trimslice.dts. This didn't
quite work immediately though, and while debugging this I found a few
issues...
(most files I mention below are in drivers/gpu/drm/tegra/)
1)
clock.c:tegra_clock_setup() calls clk_set_rate() on the PLL. However,
there is no error-checking, so any failure is completely silent and
simply results in the display not working without much clue as to why.
In my case, my monitor's preferred mode was 1920x1080 with a 154MHz
pixel clock, which required a 616MHz clock for pll_d. However,
mach-tegra/tegra20_clocks_data.c didn't have an entry for that rate,
so clk_set_rate() failed.
For reference, the following entry in tegra_pll_d_freq_table[] solves
this for me:
{ 12000000, 616000000, 616, 12, 1, 8},
(although I have no idea if the "cpcon" field there is correct)
I imagine that output.c:tegra_connector_mode_valid() should be
querying the clock API to determine whether the desired mode clock is
actually possible, and rejecting the mode if not. In my case, I assume
that would have caused the code to fall back to some other mode, and
hopefully found one that did (my monitor apparently lists 51 modes in
the EDID after all).
2)
The code in clock.c uses lots of clk_get_sys() calls with hard-coded
clock names. We really should be using the common clock DT bindings
for this instead of hard-coding names. This is especially true since
the names differ on different SoCs, so there's a ton of
of_device_is_compatible(output->dev->of_node, "nvidia,tegra30-hdmi")
in this code.
3)
It sucks that our clock driver can't just calculate the PLL m and n
values; without this, we will end up with an almost infinitely large
tegra_pll_d_freq_table[]. I'll try and find out whether this can be fixed.
next prev parent reply other threads:[~2012-10-11 23:36 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-11 20:07 Tegra DRM with HDMI support (\o/) Thierry Reding
[not found] ` <20121011200705.GB27599-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-10-11 23:36 ` Stephen Warren [this message]
[not found] ` <50775803.1010209-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-10-12 1:16 ` Mark Zhang
2012-10-12 5:09 ` Thierry Reding
[not found] ` <20121012050957.GA29881-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-10-12 21:17 ` Stephen Warren
[not found] ` <507888D0.1090103-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-10-13 20:42 ` Thierry Reding
[not found] ` <20121013204223.GA24354-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-10-15 16:11 ` Stephen Warren
[not found] ` <507C35C6.20705-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-10-17 6:46 ` Thierry Reding
2012-10-16 8:28 ` Peter De Schrijver
[not found] ` <20121016082827.GI3196-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2012-10-17 6:55 ` Thierry Reding
[not found] ` <20121017065547.GE21783-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-10-17 15:20 ` Stephen Warren
[not found] ` <507ECCCD.7000600-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-10-17 18:04 ` Jon Mayo
[not found] ` <D6C615D3E4730340AE82D5BD856631C0A1DA306B31-QfAaPSPn5qZDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-10-17 19:12 ` Thierry Reding
[not found] ` <20121017191240.GA22570-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-10-17 19:41 ` Stephen Warren
[not found] ` <507F0A03.2050008-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-10-17 20:08 ` Jon Mayo
[not found] ` <D6C615D3E4730340AE82D5BD856631C0A1DA306B39-QfAaPSPn5qZDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-10-18 6:29 ` Thierry Reding
[not found] ` <20121018062918.GC24637-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-10-18 21:37 ` Jon Mayo
2012-10-18 22:05 ` Stephen Warren
2012-10-18 22:14 ` Stephen Warren
2012-10-12 1:20 ` Mark Zhang
2012-10-16 8:18 ` Mark Zhang
2012-10-16 16:03 ` Stephen Warren
[not found] ` <507D856C.1070708-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-10-17 1:32 ` Mark Zhang
[not found] ` <507E0AC1.8020001-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-10-17 20:38 ` Stephen Warren
[not found] ` <507F175A.3000406-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-10-18 5:55 ` Thierry Reding
[not found] ` <20121018055518.GB24637-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-10-18 8:43 ` Mark Zhang
2012-10-18 7:00 ` Mark Zhang
2012-10-17 5:42 ` Thierry Reding
[not found] ` <20121017054224.GA21783-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-10-18 6:04 ` Mark Zhang
[not found] ` <507F9BF5.20002-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-10-18 6:34 ` Thierry Reding
[not found] ` <20121018063453.GD24637-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-10-18 7:05 ` Mark Zhang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50775803.1010209@wwwdotorg.org \
--to=swarren-3lzwwm7+weoh9zmkesr00q@public.gmane.org \
--cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.