[Bug 111475] New: Brightness control inversion from VBT table is not taken into account in Ubuntu 18.10

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Aug 23 09:03:51 UTC 2019


https://bugs.freedesktop.org/show_bug.cgi?id=111475

            Bug ID: 111475
           Summary: Brightness control inversion from VBT table is not
                    taken into account in Ubuntu 18.10
           Product: DRI
           Version: unspecified
          Hardware: x86 (IA32)
                OS: Linux (All)
            Status: NEW
          Severity: normal
          Priority: not set
         Component: DRM/Intel
          Assignee: intel-gfx-bugs at lists.freedesktop.org
          Reporter: szymon.balcerak at ts.fujitsu.com
        QA Contact: intel-gfx-bugs at lists.freedesktop.org
                CC: intel-gfx-bugs at lists.freedesktop.org

I’m currently struggling with LVDS panel brightness control on CoffeLake PCH
H310 board with Ubuntu 18.10.

Our setup is as follows:
1. The board is equipped with Realtek RTD2136R DP to LVDS converter.
2. LVDS backlight PWM signal comes from PCH EDP_BKLTCTL (GPP_F21) output pin.
3. Board has BIOS which allows user to change LVDS PWM logic (normal/inverted)
within SETUP.
4. Once user chooses “Inverted” setting, BIOS changes VBT table provided to OS.
By changing VBT I mean that BIOS changes active_low_pwm bit to 1 for LVDS
panel, so consequently we expect dev_priv->vbt.backlight.active_low_pwm from
intel_bios.c to be set to 1.

Result:
Ubuntu does NOT take PWM inversion into consideration and brightness control
behaves as in normal mode.

Expected result: 
Once PWM normal is set, LVDS brightness control should set minimum brightness
for position 0 of OS brightness slider and maximum brightness for position 100
of slider. 
Once PWM inverted is set, LVDS brightness control should set maximum brightness
for position 0 of OS brightness slider and minimum brightness for position 100
of slider.

Additional notes:
• Once kernel boot parameter acpi_backlight=vendor i915.invert_brightness=1 is
set Ubuntu properly handles PWM inversion.
• Exactly the same BIOS & board with Windows 10 behaves correctly  -> inversion
is taken into account. 
• I’m mostly familiar with Windows, not with Linux.
• I personally did not try any other Linux distribution however I assume all of
them use similar graphic driver code base.
• Although problem is visible on H310 PCH I assume it's NOT PCH specific
(however I haven't tried with different CFL PCH as only this H310 board is
equipped with LVDS).  
• I can alter BIOS behavior if requested/needed as I'm board's BIOS developer.

Questions:
1. Could you please verify if VBT information is properly handled in Linux
driver?
2. Is my understanding correct that Linux graphic driver tries to write 0xC8250
MMIO register with bit 29 once PWM inversion is set within VBT table?
3. Could you tell which Intel's documentation specify CoffeLake PCH register
(0xC8250 -> i915_reg.h) to modify PWM behavior? 
4. Is modification of VBT table the right way to achieve expected results or
there should be some other way applied by BIOS. 

Thanks,
Szymon

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20190823/b2dd332d/attachment.html>


More information about the intel-gfx-bugs mailing list