On Friday 05 October 2012 04:34 PM, Tomi Valkeinen wrote:
On Thu, 2012-10-04 at 10:56 -0700, Tony Lindgren wrote:
Hi,
FYI, looks like for some reason DSS command line is not
working for HDMI while it works for DSS. On my panda es
I'm trying to set my motorola lapdock resolution from
cmdline with:
omapdss.def_disp=hdmi omapfb.mode=hdmi:1366x768@60
But it does not seem to do anything and resolution is
VGA. If I change the cable to DVI port this works:
omapdss.def_disp=dvi omapfb.mode=dvi:1366x768@60
Any ideas? This is with current linux next.
That's because our HDMI only supports certain timings. To be honest, I
don't really understand this restriction, as I believe the hardware
should be able to use more or less any timings just like DVI.
The 1366x768@60 mode is parsed with fbdev functions, which returns a
video timings. These timings are then given to the HDMI driver, which
tries to find matching timings from its timing table. And when it
doesn't find a match, it fails.
This is a known problem, and the hdmi driver would really need some love
in other aspects also. I'm not sure what would be the best way to
improve this without doing major rewrites. Perhaps the check in the hdmi
driver could be more relaxed, but that needs some careful thought.
I can change the HDMI resolution OK from userspace with:
echo "1" > /sys/devices/platform/omapdss/display1/enabled
echo "0" > /sys/devices/platform/omapdss/overlay0/enabled
echo "tv" > /sys/devices/platform/omapdss/overlay0/manager
echo "1" > /sys/devices/platform/omapdss/overlay0/enabled
echo "85500,1366/70/213/143,768/3/24/3" >
/sys/devices/platform/omapdss/display1/timings
That's because the above line has timings that are in the hdmi driver's
table. They are somewhat different than what fbdev gives for
"1366x768@60".
The reason to use HDMI instead of DVI here is that HDMI
also has the speakers on the lapdock ;)
Then I'm able to switch between HDMI panel and DVI panel
just fine using overlay0. I don't know if getting both
HDMI and DVI to work the same time using overlay1 is
supposed to work, but trying use overlay1 produces the
following:
HDMI and DVI cannot be used reliably at the same time, due to a HW issue
we've had unresolved for a long time. Luckily, it was solved this week
and we'll have a patch for next merge window to get this working.
echo "1" > /sys/devices/platform/omapdss/display0/enabled
echo "0" > /sys/devices/platform/omapdss/overlay1/enabled
echo "lcd2" > /sys/devices/platform/omapdss/overlay1/manager
echo "1" > /sys/devices/platform/omapdss/overlay1/enabled
echo "170666,1920/336/128/208,1200/38/1/3" >
/sys/devices/platform/omapdss/display0/timings
[ 816.446044] omapdss DPI: Could not find exact pixel clock. Requested 23500
kHz, got 23630 kHz
[ 881.639221] omapdss APPLY: timeout in wait_pending_extra_info_updates
[ 958.946594] ------------[ cut here ]------------
[ 958.953277] WARNING: at drivers/bus/omap_l3_noc.c:97
l3_interrupt_handler+0xc0/0x184()
[ 958.965576] L3 standard error: TARGET:DMM2 at address 0x0
...
Having said the above, I don't quite know where this error comes from...
Tiler (DMM) is not even used by omapfb.
There is a timeout in wait_pending_extra_info_updates() which happens
before. That's something that shouldn't have occurred.
The overlay1 disable would have led to extra info being dirty. The
unsetting of the manager led to the call of
wait_pending_extra_info_updates(). This function noticed that there is
an extra_info update on going, and waited for the completion, but never
got it. I'm not sure why that's happened.
Archit
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html