On Wed, 11 Sep 2013, Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> wrote: > From: Kamal Mostafa <kamal@xxxxxxxxxxxxx> > > Boot params quirks_set and quirks_mask allow the user to enable or > inhibit any dmi-matched quirks, overriding the dmi match table. Examples: > > i915.quirks_set=0x2 - enables QUIRK_LVDS_SSC_DISABLE > i915.quirks_set=0x8 - enables QUIRK_NO_PCH_PWM_ENABLE > i915.quirks_mask=0x8 - disables QUIRK_NO_PCH_PWM_ENABLE > i915.quirks_mask=0xFF - disables all quirks While I admit this can be used to workaround issues with certain machines, this is a hack that exposes an implementation detail to the userspace, and carves it into the stone. Any user of it would have to look at the kernel source to make a smart choice of parameters; more likely forums would start filling with tips what to set. So NAK from me. That said, I think we still have a few stones unturned wrt backlight and what BIOS does in UEFI mode. Cheers, Jani. > > Signed-off-by: Kamal Mostafa <kamal@xxxxxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_display.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 1eabca3..12607f2 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -10043,8 +10043,19 @@ static struct intel_quirk intel_quirks[] = { > { 0x0166, 0x1028, 0x058b, quirk_no_pcm_pwm_enable }, > }; > > +unsigned long i915_quirks_set __read_mostly = 0; > +module_param_named(quirks_set, i915_quirks_set, ulong, 0600); > +MODULE_PARM_DESC(quirks_set, > + "Enable specified quirks bits."); > + > +unsigned long i915_quirks_mask __read_mostly = 0; > +module_param_named(quirks_mask, i915_quirks_mask, ulong, 0600); > +MODULE_PARM_DESC(quirks_mask, > + "Disable specified quirks bits (override dmi match)."); > + > static void intel_init_quirks(struct drm_device *dev) > { > + struct drm_i915_private *dev_priv = dev->dev_private; > struct pci_dev *d = dev->pdev; > int i; > > @@ -10062,6 +10073,10 @@ static void intel_init_quirks(struct drm_device *dev) > if (dmi_check_system(*intel_dmi_quirks[i].dmi_id_list) != 0) > intel_dmi_quirks[i].hook(dev); > } > + > + /* handle user-specified quirks overrides */ > + dev_priv->quirks |= i915_quirks_set; > + dev_priv->quirks &= ~i915_quirks_mask; > } > > /* Disable the VGA plane that we never use */ > -- > 1.8.1.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx