Bug 93246

Summary: [Patch] OpenChrome LVDS DFP (LCD) Power Management Improvement
Product: xorg Reporter: Kevin Brace <kevinbrace>
Component: Driver/openchromeAssignee: Openchrome development list <openchrome-devel>
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: medium CC: kevinbrace
Version: unspecified   
Hardware: Other   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
A new function called VIASetDFPBackLight was added none

Description Kevin Brace 2015-12-04 08:11:16 UTC
Created attachment 120331 [details]
A new function called VIASetDFPBackLight was added

This is a major improvement for those with DFP (Digital Flat Panel) like LCD, especially laptop users (i.e., LVDS DFP) who happened to have VIA Technologies integrated graphics.
In order to apply this patch, it is recommended to download 9 other patches I have posted here, but at the minimum, you can "probably" get away with applying a patch uploaded with Bug 93245 first before applying this one.
    For Ubuntu users (including Lubuntu and other variants), you should be using 10.04 LTS or later versions.
As far as I know, OpenChrome does not compile with 8.04 LTS at this point.
Before compiling OpenChrome you need to install git-core.

    sudo apt-get install git-core

In order to compile OpenChrome successfully, you will need to build dependency for xserver-xorg-video-openchrome.

    sudo apt-get build-dep xserver-xorg-video-openchrome

Download the current OpenChrome source code.

    git clone git://anongit.freedesktop.org/openchrome/xf86-video-openchrome

Change to the OpenChrome folder.

    cd xf86-video-openchrome

At a minimum, download this patch and the patch posted over at Bug 93245 to xf86-video-openchrome holder.
It is recommended to download all 10 patches including this one to xf86-video-openchrome holder.
Now apply the patch like the following way.

    patch -p1 < 0009-Made-improvements-to-ViaLVDSDFPPower-function-inside.patch
    patch -p1 < 0010-Added-a-new-function-called-VIASetDFPBackLight-to-vi.patch

For the other 8 earlier patches, just change the file name portion (*.patch section) of the patch command.
Now prepare for compilation.

    ./autogen.sh --prefix=/usr --enable-debug --enable-xv-debug --enable-viaregtool

Compile the source code.

    make

If you do not care about overwriting the current OpenChrome device driver, then you can proceed to installation.

    sudo make install

Now, reboot and hopefully OpenChrome works correctly with the updated code.
If you set the screen display turn off timer to, say 1 minute, then the DFP of your laptop should turn off automatically in 1 minute.
Of course, the screen turns back on if you move the mouse cursor or press the keyboard.
Please make sure that you specify the desired timer setting for both AC adapter operation and battery operation.
Note that this patch only affects DFP, and it has no impact on VGA-based screen (i.e., screen turn off feature already works correctly).
The source code compilation instructions were largely copied from the OpenChrome installation page, especially "Install from GIT" section.

http://www.freedesktop.org/wiki/Openchrome/Installation/

I hope the download, compilation, and installation instructions I provided is useful, but if anyone needs more detailed instructions, I will try to help you out.
    Note that if you are using VX855 chipset, you probably should not install the current iteration of OpenChrome since there was a user that reported a fatal crash bug that has not been resolved at this point (Bug 91966).
Furthermore, for CLE266, KM400, KM400A, and P4M800 chipset users, it is not recommended to install the current iteration of OpenChrome since cursor may not get rendered at all on the screen.
I am still working on resolving both bugs at this point, along with resolving ACPI S3 State resume bug.
Some of the patches I posted do improve the situation somewhat, but I still have not figured out completely why the LVDS DFP screen does not come back correctly.

Regards,

Kevin Brace
Comment 1 Kevin Brace 2015-12-04 08:12:30 UTC
Added a new function called VIASetDFPBackLight to via_lvds.c.
This function turns the DFP (Digital Flat Panel) back light on or off.
Previously, DFP back light was not being turned off when the computer turns the screen off, leading to unnecessary consumption of power.
This improvement is especially helpful in a mobile environment where conserving power is key to extending battery life.
     The compiled device driver was tested on the following computer.

 - Epic 1314 laptop (MSI VR321 laptop equivalent, VN896 chipset) with Lubuntu 12.04 i386
Comment 2 Kevin Brace 2017-01-22 18:54:07 UTC
I opened this one long time ago, and it is no longer relevant.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.