On Thu, 2012-04-26 at 22:07 +0200, Daniel Vetter wrote: > ... > To cut things short: This time around I want more justification for the > quirk than just "this makes this one machine work somehow". A bit more detail... On this Dell XPS 13z "Ultrabook" (sandybridge_m 0x0116) when intel_backlight/brightness gets stuffed with any value except 0 or max_brightness, the backlight cycles between flashing (like a strobe light!) and then pulsating (bright to dim to bright). That flashing/pulsating cycle repeats continuously, about every 2 seconds. The behavior is affected by the value stuffed into brightness more or less along the lines of: 0: very dim, totally stable 1: flashes like crazy for about 1.5 sec, then pulsates for 0.5 sec 1000: flashes for about 0.5 sec, then pulsates for about 1.5 sec 2000: flashes very briefly, then pulsates for about 2 sec 3000: flickers, then pulsates for about 2 sec 4000 pulsates continuously, every 2 sec 4882: (max_brightness) full brightness, stable This behavior manifests both in X and in a text VT, and occurs with or without the presence of other backlight interfaces besides intel_backlight. It does not appear to me to be a userspace problem. The additional wrinkle is that this machine presents an acpi_video0 backlight interface as well, and it even works properly -- but *only* after you specifically stuff 0 into intel_backlight/brightness (or if intel_backlight is disabled by the proposed quirk). Any non-zero intel_backlight/brightness value prevents acpi_video0 from working. When intel_backlight is set to max_brightness (like at boot), acpi_video0/brightness seems to have no effect at all; when intel_backlight is set to other non-zero values, the flashing/pulsating behavior occurs. I'd be (quite) happy to test a proper intel_backlight fix, but in the meantime disabling it by quirk seems appropriate for this machine, since that allows the acpi_video0 interface to work out of the box. Thanks for considering it, -Kamal On Wed, 2012-04-25 at 10:28 -0700, Kamal Mostafa wrote: > From: Robert Hooker <robert.hooker at canonical.com> > > Dell XPS 13z exhibits problems (backlight flashing/pulsating) when > intel_backlight is enabled at all, so disable it. > > BugLink: https://launchpad.net/bugs/954661 > Signed-off-by: Robert Hooker <robert.hooker at canonical.com> > Signed-off-by: Kamal Mostafa <kamal at canonical.com> > --- > drivers/gpu/drm/i915/intel_display.c | 17 +++++++++++++++++ > 1 files changed, 17 insertions(+), 0 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 5908cd5..0c4cac4 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -9100,6 +9100,19 @@ static void quirk_ssc_force_disable(struct drm_device *dev) > struct drm_i915_private *dev_priv = dev->dev_private; > dev_priv->quirks |= QUIRK_LVDS_SSC_DISABLE; > } > + > +/* > + * Some machines (Dell XPS 13z) exhibit problems with i915 control of the > + * backlight registers; Others may need the intel_backlight interface > + * disabled for some other reason. > + */ > +static void quirk_backlight_disable(struct drm_device *dev) > +{ > + if (i915_enable_backlight == -1) { > + i915_enable_backlight = 0; > + DRM_DEBUG_DRIVER("disabling intel_backlight interface via quirk\n"); > + } > +} > > struct intel_quirk { > int device; > @@ -9133,6 +9146,10 @@ struct intel_quirk intel_quirks[] = { > > /* Sony Vaio Y cannot use SSC on LVDS */ > { 0x0046, 0x104d, 0x9076, quirk_ssc_force_disable }, > + > + /* Dell XPS 13z needs to disable the intel_backlight interface > + (LP: #954661) */ > + { 0x0116, 0x1028, 0x052e, quirk_backlight_disable }, > }; > > static void intel_init_quirks(struct drm_device *dev)