lkml.org 
[lkml]   [2012]   [Sep]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH] i915: Quirk out disconnected backlight
    On Fri, Sep 14, 2012 at 2:12 PM, David Woodhouse <dwmw2@infradead.org> wrote:
    > On Fri, 2012-09-14 at 14:09 +0100, Grant Likely wrote:
    >> On Fri, Sep 14, 2012 at 2:01 PM, Chris Wilson <chris@chris-wilson.co.uk> wrote:
    >> > On Fri, 14 Sep 2012 13:57:06 +0100, Grant Likely <grant.likely@secretlab.ca> wrote:
    >> >> Some platforms (for instance MacbookPros) have custom backlight drivers
    >> >> and don't use the integrated i915 backlight control. This patch adds a
    >> >> quirk to disable registering the intel backlight when unused on a
    >> >> platform.
    >> >>
    >> >> Tested on MacbookPro8,3. Without this patch both the intel_backlight and
    >> >> gmux_backlight devices get registered and userspace doesn't know which
    >> >> it should use.
    >> >
    >> > Userspace is informed throught the backlight/type property.
    >>
    >> Perhaps, but userspace (Ubuntu) isn't doing anything with it, and it
    >> still remains that it makes no sense whatsoever to register a
    >> backlight device that doesn't exist.
    >
    > Indeed. Userspace (well, gnome-settings-daemon) will use the backlight
    > provided by X, in preference to anything it finds
    > in /sys/class/backlight. So if the Intel one is present (and thus
    > exposed via X) then userspace will never bother with comparing types and
    > choosing the sanest backlight to use.
    >
    > See https://bugzilla.redhat.com/show_bug.cgi?id=752595

    In that bug you mention that the intel backlight sets a bogus max of
    '1' when a backlight isn't present. I saw that too here. Here's the
    offending code:

    u32 intel_panel_get_max_backlight(struct drm_device *dev)
    {
    struct drm_i915_private *dev_priv = dev->dev_private;
    u32 max;

    max = i915_read_blc_pwm_ctl(dev_priv);
    if (max == 0) {
    /* XXX add code here to query mode clock or hardware clock
    * and program max PWM appropriately.
    */
    pr_warn_once("fixme: max PWM is zero\n");
    return 1;
    }

    I used a quirk in my patch, but I could instead change the driver to
    bail here instead of trying to limp along.

    g.


    \
     
     \ /
      Last update: 2012-09-14 16:01    [W:0.042 / U:0.208 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site