* Tomi Valkeinen <tomi.valkeinen@xxxxxx> [121005 04:06]: > 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. OK, I'll take a look when I have a chance. > > 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". OK > > 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. That's nice, I'll give that a try at some point. > > 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. Looks like somehow also output_size won't change when changing display output from DVI to HDMI. If I boot with DVI panel at 1600x1200, then try to switch to the HDMI monitor with the following script: #!/bin/sh export dvi=display0 export hdmi=display1 export overlay=overlay0 echo 0 > /sys/devices/platform/omapdss/$dvi/enabled echo 1 > /sys/devices/platform/omapdss/$hdmi/enabled echo "85500,1366/70/213/143,768/3/24/3" > /sys/devices/platform/omapdss/$hdmi/timings echo 0 > /sys/devices/platform/omapdss/$overlay/enabled echo tv > /sys/devices/platform/omapdss/$overlay/manager #echo "1366,768" > /sys/devices/platform/omapdss/$overlay/output_size echo 1 > /sys/devices/platform/omapdss/$overlay/enabled cat /sys/devices/platform/omapdss/$hdmi/timings cat /sys/devices/platform/omapdss/$overlay/output_size I get the following which may provide more clues: [64370.820312] omapdss DISPC error: SYNC_LOST on channel tv, restarting the output with video overlays dd [64370.831024] omapdss OVERLAY error: overlay 0 horizontally not inside the display area (0 + 1600 >= 13) [64370.840972] omapdss APPLY error: failed to enable manager 1: check_settings failed [64370.849670] omapdss HDMI error: failed to power on device [64370.855407] omapdss error: failed to power on [64370.862487] omapdss OVERLAY error: overlay 0 horizontally not inside the display area (0 + 1600 >= 13) [64370.872436] omapdss APPLY error: failed to enable manager 1: check_settings failed [64370.880798] omapdss HDMI error: failed to power on device [64370.886505] omapdss error: failed to power on 85500,1366/70/213/143,768/3/24/3 1600,1200 FYI, I'm also seeing the DVI monitor blank out on it's own for about a second or so on regular basis every 10 minutes or so. No idea what's causing that, maybe it's a reminder to take a short break :) Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html