diff options
author | P. J. McDermott <pj@pehjota.net> | 2015-09-20 07:47:18 (EDT) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2015-09-20 08:37:52 (EDT) |
commit | d62b568caac667c42f3dca6e0335aaf4a2e9c083 (patch) | |
tree | e8714b42d5aceeeff8b52dc8399fc1e2f26cb024 /docs | |
parent | d9b63be109dd591e23c2f6b7b0000a84266d11c1 (diff) | |
download | libreboot-d62b568caac667c42f3dca6e0335aaf4a2e9c083.zip libreboot-d62b568caac667c42f3dca6e0335aaf4a2e9c083.tar.gz libreboot-d62b568caac667c42f3dca6e0335aaf4a2e9c083.tar.bz2 |
docs/hcl/gm45_lcd.html: Describe solution to LVDS channels problem
Diffstat (limited to 'docs')
-rw-r--r-- | docs/hcl/gm45_lcd.html | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/docs/hcl/gm45_lcd.html b/docs/hcl/gm45_lcd.html index 137bc68..29b31ec 100644 --- a/docs/hcl/gm45_lcd.html +++ b/docs/hcl/gm45_lcd.html @@ -64,6 +64,43 @@ lvds_channel_mode:Specify LVDS channel mode (0=probe BIOS [default], 1=single-channel, 2=dual-channel) (int) - from /sbin/modinfo i915 </p> + <h1> + Proper solution to LVDS second channel enablement problem + </h1> + <p> + The definition of <b>register "gfx.lvds_dual_channel" = "0"</b> in + <b>coreboot/src/mainboard/lenovo/t400/devicetree.cb</b> in libreboot affects the + <b>int lvds_dual_channel</b> member of a <b>struct i915_gpu_controller_info</b> + (defined in <b>coreboot/src/drivers/intel/gma/i915.h</b>) named <b>gfx</b> in a + <b>struct northbridge_intel_gm45_config</b> (defined in + <b>coreboot/src/northbridge/intel/gm45/chip.h</b>). That + <b>gfx.lvds_dual_channel</b> in that <b>struct northbridge_intel_gm45_config</b> + affects various registers set in <b>intel_gma_init()</b> in + <b>coreboot/src/northbridge/intel/gm45/gma.c</b>. + </p> + <p> + A proper solution would likely be as follows: + </p> + <ul> + <li> + Remove <b>gfx.lvds_dual_channel</b> from the <b>devicetree.cb</b> files of + GM45-based mainboards. + </li> + <li> + In <b>intel_gma_init()</b> in <b>coreboot/src/northbridge/intel/gm45/gma.c</b>, + somehow detect whether both LVDS channels should be used (maybe if the + resolution as obtained from the decoded EDID data is greater than 1280x800 + pixels) and set a local variable <b>lvds_dual_channel</b> accordingly. Use that + variable instead of <b>info->gfx.lvds_dual_channel</b>. + </li> + </ul> + <p> + Note that this doesn't completely solve the problem for those dual-channel + displays and that GRUB still won't have graphics output. More work is still + needed to investigate why coreboot's graphics initialization code for GM45 + doesn't properly handle dual-channel displays (but the code for Sandy/Ivy Bridge + apparently does, as does Linux's i915 driver) and resolve that. + </p> </div> <div class="section"> |