From: "Shih-Yuan Lee (FourDollars)" <sylee@canonical.com>
To: Jani Nikula <jani.nikula@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v2] drm/i915: Respect the brightness range from VBT.
Date: Tue, 10 Nov 2015 19:26:39 +0800 [thread overview]
Message-ID: <20151110112639.GA28550@localhost> (raw)
In-Reply-To: <87y4e6i2i3.fsf@intel.com>
On Tue, Nov 10, 2015 at 12:15:48PM +0200, Jani Nikula wrote:
> On Tue, 10 Nov 2015, "Shih-Yuan Lee (FourDollars)" <sylee@canonical.com> wrote:
> > Taking Dell XPS 13 (2015) as an example. The lowest PWM brightness is 10
> > and the highest PWM brightness is 937. Before this change, we can only
> > use from 37 to 937, and 37 is used to turn off the backlight because it
> > is mapped to 0 of sysfs brightness however the maximum sysfs brightness
> > is still 937 so it makes some sysfs brightness values are mapped to the
> > same PWM brightness values.
> >
> > After this change, we can use the whole PWM brightness range from 10 to
> > 937, and they are mapped into the range from 0 to 927 in the sysfs
> > brightness and vice versa because they are 1-1 mapping.
> >
> > 10 is the lowest PWM brightness. We should make users able to use it for
> > the extreme power saving reason and users can still see the display.
> >
> > Signed-off-by: Shih-Yuan Lee (FourDollars) <sylee@canonical.com>
> > ---
> > drivers/gpu/drm/i915/intel_panel.c | 10 +++++-----
> > 1 file changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
> > index a24df35..57bc2fe 100644
> > --- a/drivers/gpu/drm/i915/intel_panel.c
> > +++ b/drivers/gpu/drm/i915/intel_panel.c
> > @@ -1154,8 +1154,7 @@ static int intel_backlight_device_update_status(struct backlight_device *bd)
> > */
> > if (panel->backlight.enabled) {
> > if (panel->backlight.power) {
> > - bool enable = bd->props.power == FB_BLANK_UNBLANK &&
> > - bd->props.brightness != 0;
> > + bool enable = bd->props.power == FB_BLANK_UNBLANK;
> > panel->backlight.power(connector, enable);
>
> This hunk would be a revert of
>
> commit e6755fb78e8f20ecadf2a4080084121336624ad9
> Author: Jani Nikula <jani.nikula@intel.com>
> Date: Tue Aug 12 17:11:42 2014 +0300
>
> drm/i915: switch off backlight for backlight class 0 brightness
>
> > }
> > } else {
> > @@ -1211,7 +1210,7 @@ static int intel_backlight_device_register(struct intel_connector *connector)
> > * Note: Everything should work even if the backlight device max
> > * presented to the userspace is arbitrarily chosen.
> > */
> > - props.max_brightness = panel->backlight.max;
> > + props.max_brightness = panel->backlight.max - panel->backlight.min;
>
> IMO we should consider setting max to fixed 100 here instead. That was
> the plan all along when I wrote the scaling stuff and added the Note:
> above in
>
> commit 6dda730e55f412a6dfb181cae6784822ba463847
> Author: Jani Nikula <jani.nikula@intel.com>
> Date: Tue Jun 24 18:27:40 2014 +0300
>
> drm/i915: respect the VBT minimum backlight brightness
>
> I just chickened out of it at that time. The commit message is worth
> reading in full.
>
> > props.brightness = scale_hw_to_user(connector,
> > panel->backlight.level,
> > props.max_brightness);
> > @@ -1429,10 +1428,11 @@ static u32 get_backlight_min_vbt(struct intel_connector *connector)
> > if (min != dev_priv->vbt.backlight.min_brightness) {
> > DRM_DEBUG_KMS("clamping VBT min backlight %d/255 to %d/255\n",
> > dev_priv->vbt.backlight.min_brightness, min);
> > + /* vbt value is a coefficient in range [0..255] */
> > + return scale(min, 0, 255, 0, panel->backlight.max);
> > }
> >
> > - /* vbt value is a coefficient in range [0..255] */
> > - return scale(min, 0, 255, 0, panel->backlight.max);
> > + return min;
>
> This change would interpret the VBT minimum value as a coefficient x/255
> if it's in range 0..64, and as an absolute value x if it's in range
> 65..255. This seems like an odd thing to do, although I admit what I did
> in
>
> commit e1c412e75754ab7b7002f3e18a2652d999c40d4b
> Author: Jani Nikula <jani.nikula@intel.com>
> Date: Wed Nov 5 14:46:31 2014 +0200
>
> drm/i915: safeguard against too high minimum brightness
>
> is not that much better.
>
> The problem is, there's a spec on VBT (internal, I'm afraid), there's a
> tool to generate VBT (Windows only, probably not freely available) with
> some interpretation of the spec, and then there are users of the tool
> that tweak the variables until they see something they like on the
> machine they're developing, running some Windows version with a driver
> version with some interpretation of the spec.
>
> So no, I don't agree with any of the changes you propose.
>
> I do acknowledge that we have a minor bug that prevents the user from
> setting the brightness to the minimum acceptable by the hardware if the
> minimum is non-zero, and 0 means off. Keeping the 0 = off meaning, the
> fix would be to have 1 mean the minimum brightness acceptable by the
> hardware... which really isn't that much different from what 1 currently
> means. The bigger problem is that the userspace probably never sets
> brightness to 1 except by accident.
Apparently you are not aware of GNOME has used 1 as the minimum brightness
level because of
commit e6755fb78e8f20ecadf2a4080084121336624ad9
Author: Jani Nikula <jani.nikula@intel.com>
Date: Tue Aug 12 17:11:42 2014 +0300
drm/i915: switch off backlight for backlight class 0 brightness
Please check https://bugzilla.gnome.org/show_bug.cgi?id=744278.
Thanks for your time to review my patch.
I will check other commits you mentioned.
Regards,
$4
>
>
> BR,
> Jani.
>
>
> > }
> >
> > static int lpt_setup_backlight(struct intel_connector *connector, enum pipe unused)
>
> --
> Jani Nikula, Intel Open Source Technology Center
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-11-10 11:26 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-09 6:42 [PATCH] drm/i915: A better maximum brightness for users Shih-Yuan Lee (FourDollars)
2015-11-09 10:17 ` Jani Nikula
2015-11-09 10:30 ` Shih-Yuan Lee (FourDollars)
2015-11-09 10:51 ` Jani Nikula
2015-11-09 11:54 ` Shih-Yuan Lee (FourDollars)
2015-11-09 12:58 ` Jani Nikula
2015-11-09 14:02 ` Shih-Yuan Lee (FourDollars)
2015-11-09 15:25 ` Ville Syrjälä
2015-11-09 16:02 ` Paulo Zanoni
2015-11-09 16:57 ` Jani Nikula
2015-11-10 1:59 ` Shih-Yuan Lee (FourDollars)
2015-11-10 8:01 ` [PATCH v2] drm/i915: Respect the brightness range from VBT Shih-Yuan Lee (FourDollars)
2015-11-10 10:15 ` Jani Nikula
2015-11-10 11:26 ` Shih-Yuan Lee (FourDollars) [this message]
2015-11-10 12:57 ` Jani Nikula
2015-11-10 16:11 ` Shih-Yuan Lee (FourDollars)
2015-11-11 4:11 ` [PATCH v3] drm/i915: Set brightness maximum to a fixed value 100 Shih-Yuan Lee (FourDollars)
2015-11-11 4:57 ` kbuild test robot
2015-11-11 7:31 ` [PATCH v4] " Shih-Yuan Lee (FourDollars)
2015-11-11 12:05 ` Jani Nikula
2015-11-11 13:09 ` Shih-Yuan Lee (FourDollars)
2015-11-11 14:10 ` [PATCH v5] drm/i915: Set backlight class max to 100 and respect the VBT minimum again Shih-Yuan Lee (FourDollars)
2015-11-12 5:43 ` [PATCH v6] drm/i915: respect the VBT minimum backlight brightness again Shih-Yuan Lee (FourDollars)
2015-11-12 8:08 ` Stéphane ANCELOT
2015-11-12 8:28 ` Shih-Yuan Lee (FourDollars)
2015-11-12 8:40 ` Stéphane ANCELOT
2015-11-12 8:57 ` Shih-Yuan Lee (FourDollars)
2015-11-12 9:05 ` Stéphane ANCELOT
2015-11-12 10:01 ` Shih-Yuan Lee (FourDollars)
2015-11-18 9:06 ` Stéphane ANCELOT
2015-11-18 9:11 ` Shih-Yuan Lee (FourDollars)
2015-11-12 13:44 ` Jani Nikula
2015-11-13 3:50 ` [PATCH v7] drm/i915: A better backlight class brightness range Shih-Yuan Lee (FourDollars)
2015-11-13 3:50 ` Shih-Yuan Lee (FourDollars)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151110112639.GA28550@localhost \
--to=sylee@canonical.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox