<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><span class="vcard"><a class="email" href="mailto:lakshminarayana.vudum@intel.com" title="Lakshmi <lakshminarayana.vudum@intel.com>"> <span class="fn">Lakshmi</span></a>
</span> changed
<a class="bz_bug_link
bz_status_NEW "
title="NEW - i915: intel_dp_aux_backlight max_brightness set to incorrect value on Thinkpad P1 Gen2 AMOLED"
href="https://bugs.freedesktop.org/show_bug.cgi?id=112014">bug 112014</a>
<br>
<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>What</th>
<th>Removed</th>
<th>Added</th>
</tr>
<tr>
<td style="text-align:right;">CC</td>
<td>
</td>
<td>jani.nikula@intel.com
</td>
</tr>
<tr>
<td style="text-align:right;">i915 features</td>
<td>
</td>
<td>display/backlight
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - i915: intel_dp_aux_backlight max_brightness set to incorrect value on Thinkpad P1 Gen2 AMOLED"
href="https://bugs.freedesktop.org/show_bug.cgi?id=112014#c2">Comment # 2</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - i915: intel_dp_aux_backlight max_brightness set to incorrect value on Thinkpad P1 Gen2 AMOLED"
href="https://bugs.freedesktop.org/show_bug.cgi?id=112014">bug 112014</a>
from <span class="vcard"><a class="email" href="mailto:lakshminarayana.vudum@intel.com" title="Lakshmi <lakshminarayana.vudum@intel.com>"> <span class="fn">Lakshmi</span></a>
</span></b>
<pre>(In reply to Josh Farwell from <a href="show_bug.cgi?id=112014#c0">comment #0</a>)
<span class="quote">> I found an interesting issue concerning the backlight on my new laptop. I am
> running Fedora 30 and replicated the issue with 5.2.17 and 5.3.5 kernels.
> Hardware is as follows:
>
> Thinkpad P1 Gen2
> - i9-9880k
> - Nvidia Optimus with Quadro T2000
> - 4K AMOLED Touch display with eDP display connector
>
> I would not be surprised at all if the Thinkpad X1 Extreme Gen 2 with AMOLED
> has the same problem, they're pretty much exactly the same hardware
> apparently.
>
> This laptop's display uses AMOLED and does not have a traditional backlight.
> We get backlight control by turning on the enable_dpcd_backlight parameter
> in the i915 module and using PWM based backlight control. I dropped this
> config in /etc/modprobe.d/i915.conf to enable this feature:
>
> ```
> [josh@lappy-mk5 linux-stable]$ cat /etc/modprobe.d/i915.conf
> options i915 enable_dpcd_backlight
> ```
>
> When I turned it on, I discovered that the brightness controls were very
> wonky. As I triggered the "brightness up" ACPI event, the backlight was
> switching between low brightness and high brightness with every key press,
> and the brightness level seemed random. There were no errors found in dmesg.
>
> The backlight control is found in
> /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight
> on my system. max_brightness is set to 65535, which i've seen on other
> systems. I discovered through some tinkering that if we pass integers 0 -
> 2047 to intel_backlight/brightness, the brightness scales linearly. Once we
> pass 2048 to the brightness function, the brightness drops back down to the
> same level as it was at 0. This happens again at 4097 where it is at maximum
> brightness, and 4098 brings the brightness level back to zero again. This
> sequence repeats 30 more times until we are at maximum brightness at 65535.
>
> I traced this issue to this function in
> drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c (line 228-245 on 5.3.5
> stable):
>
> ```
> static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
> enum pipe pipe)
> {
> struct intel_dp *intel_dp =
> enc_to_intel_dp(&connector->encoder->base);
> struct intel_panel *panel = &connector->panel;
>
> if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT)
> panel->backlight.max = 0xFFFF;
> else
> panel->backlight.max = 0xFF;
>
> panel->backlight.min = 0;
> panel->backlight.level = intel_dp_aux_get_backlight(connector);
>
> panel->backlight.enabled = panel->backlight.level != 0;
>
> return 0;
> }
> ```
>
> When I hack this function and replace 0xFFFF with 0x7FF, my backlight works
> perfectly with no problems.
>
> It seems like this function needs a third branch in that conditional that
> knows something specific about this laptop's display and can set the
> max_brightness to 2047. I don't know enough about the rest of the driver to
> write a patch for this, but I am happy to help by collecting debug
> information and testing patches. Just let me know what I should provide next.</span >
@Josh, Which platform is this?
CC'ing Jani.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
<li>You are on the CC list for the bug.</li>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>