siihdmi: make 1080p and 720p autodetection a little more panel-friendly
authorMatt Sealey <matt@genesi-usa.com>
Sat, 17 Sep 2011 02:38:49 +0000 (21:38 -0500)
committerMatt Sealey <matt@genesi-usa.com>
Sat, 17 Sep 2011 02:38:49 +0000 (21:38 -0500)
commit680b24818e03ac396935deef14000a967d20e248
tree2e24e83004bc3ac6ae2911aa509237c8caa572f1
parent632be9672e96dfe83d0e1fd153424ec982280cca
siihdmi: make 1080p and 720p autodetection a little more panel-friendly

Essentially where before we simply picked a 1080p or 720p mode and then fall back to
EDID preferred mode, now we basically do

if (teneighty)
if (native is 1680x1050, 1440x900) return native
if (1080p) return 1080p

if (seventwenty)
if (native is 1366x768, 1360x768, 1280x768, 1280x800, 1024x768) return native
if (720p) return 720p

fallback: use preferred mode

This means far more "close to 720p" modes for plasmas are used instead of 720p with
a scaler, and for monitors that SAY they can do 1080p (but it's actually scaled down
or overscanned because native res is smaller) then use panel native instead for a
much better experience.

Tested on every monitor we have available and matches native res on most, and the
best mode fallback is used as per previous mode selection on the few fringe cases
left. Experience is crisper displays.

Note that if teneighty is selected, the modes returned absolutely will suck at video
playback performance - mfw_v4lsink will fail to fullscreen at anything above 1366x768
due to lack of bandwidth. 1440x900 may work if you're lucky. mfw_xvimagesink simply
cannot convert YV12 to YUY2 fast enough to work (and double buffering seems broken).
It is therefore still disabled by default.

Also: add a siihdmi.vic= option, so you can give it any CEA VIC from the CEA spec
(look for an entry in drivers/video/cea861_modes.c and use that number) if it's
still in the modelist.

Requesting specific video modes requires some duplication of option parsing and I
feel that's really not going to give people a reasonable experience, so it's not
being done right now. Investigation into exactly what the mitigating factor for
a lower_margin < 2 actually working is underway so we can cull less modes and give
people much better monitor experience once we get XRandR working.
drivers/video/mxc/siihdmi.c