1. 18 7月, 2013 2 次提交
    • R
      ACPI / video / i915: No ACPI backlight if firmware expects Windows 8 · 8c5bd7ad
      Rafael J. Wysocki 提交于
      According to Matthew Garrett, "Windows 8 leaves backlight control up
      to individual graphics drivers rather than making ACPI calls itself.
      There's plenty of evidence to suggest that the Intel driver for
      Windows [8] doesn't use the ACPI interface, including the fact that
      it's broken on a bunch of machines when the OS claims to support
      Windows 8.  The simplest thing to do appears to be to disable the
      ACPI backlight interface on these systems".
      
      There's a problem with that approach, however, because simply
      avoiding to register the ACPI backlight interface if the firmware
      calls _OSI for Windows 8 may not work in the following situations:
       (1) The ACPI backlight interface actually works on the given system
           and the i915 driver is not loaded (e.g. another graphics driver
           is used).
       (2) The ACPI backlight interface doesn't work on the given system,
           but there is a vendor platform driver that will register its
           own, equally broken, backlight interface if not prevented from
           doing so by the ACPI subsystem.
      Therefore we need to allow the ACPI backlight interface to be
      registered until the i915 driver is loaded which then will unregister
      it if the firmware has called _OSI for Windows 8 (or will register
      the ACPI video driver without backlight support if not already
      present).
      
      For this reason, introduce an alternative function for registering
      ACPI video, acpi_video_register_with_quirks(), that will check
      whether or not the ACPI video driver has already been registered
      and whether or not the backlight Windows 8 quirk has to be applied.
      If the quirk has to be applied, it will block the ACPI backlight
      support and either unregister the backlight interface if the ACPI
      video driver has already been registered, or register the ACPI
      video driver without the backlight interface otherwise.  Make
      the i915 driver use acpi_video_register_with_quirks() instead of
      acpi_video_register() in i915_driver_load().
      
      This change is based on earlier patches from Matthew Garrett,
      Chun-Yi Lee and Seth Forshee and includes a fix from Aaron Lu's.
      
      References: https://bugzilla.kernel.org/show_bug.cgi?id=51231Tested-by: NAaron Lu <aaron.lu@intel.com>
      Tested-by: NIgor Gnatenko <i.gnatenko.brain@gmail.com>
      Tested-by: NYves-Alexis Perez <corsac@debian.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Reviewed-by: NAaron Lu <aaron.lu@intel.com>
      Acked-by: NMatthew Garrett <matthew.garrett@nebula.com>
      8c5bd7ad
    • M
      ACPI / video: Always call acpi_video_init_brightness() on init · c04c697c
      Matthew Garrett 提交于
      We have to call acpi_video_init_brightness() even if we're not going
      to initialise the backlight - Thinkpads seem to use this as the
      trigger for enabling ACPI notifications rather than handling it in
      firmware.
      
      [rjw: Drop the brightness object created by
       acpi_video_init_brightness() if we are not going to use it.]
      Signed-off-by: NMatthew Garrett <matthew.garrett@nebula.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      c04c697c
  2. 20 6月, 2013 1 次提交
  3. 10 6月, 2013 1 次提交
  4. 02 6月, 2013 2 次提交
  5. 12 5月, 2013 1 次提交
  6. 25 4月, 2013 1 次提交
    • A
      ACPI: video: correct acpi_video_bus_add error processing · 91e13aa3
      Aaron Lu 提交于
      acpi_video_bus_get_devices() may fail due to some video output device
      doesn't have the _ADR method, and in this case, the error processing
      is to simply free the video structure in acpi_video_bus_add(), while
      leaving those already registered video output devices in the wild,
      which means for some video output device, we have already registered
      a backlight interface and installed a notification handler for it.
      So it can happen when user is using this system, on hotkey pressing,
      the notification handler will send a keycode through a non-existing
      input device, causing kernel freeze.
      
      To solve this problem, free all those already registered video output
      devices once something goes wrong in acpi_video_bus_get_devices(), so
      that no wild backlight interfaces and notification handlers exist.
      
      References: https://bugzilla.kernel.org/show_bug.cgi?id=51731
      Reported-and-tested-by: <i-tek@web.de>
      Signed-off-by: NAaron Lu <aaron.lu@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      91e13aa3
  7. 22 4月, 2013 1 次提交
  8. 25 3月, 2013 4 次提交
  9. 26 1月, 2013 2 次提交
  10. 05 12月, 2012 1 次提交
  11. 03 11月, 2012 1 次提交
  12. 21 9月, 2012 1 次提交
    • L
      ACPI video: allow events handlers to veto the keypress · 8a37c65d
      Luca Tettamanti 提交于
      The standard video events may be overloaded for device specific
      purposes. For example AMD ACPI interface overloads
      ACPI_VIDEO_NOTIFY_PROBE (0x81) to signal AMD-specific events. In such
      cases we don't want to send the keypress (KEY_SWITCHVIDEOMODE) to the
      userspace because the user did not press the mode switch key (the
      spurious keypress confuses the DE which usually changes the
      display configuration and messes up a dual-screen setup).
      This patch gives the handlers the chance to examine the event and
      block the keypress if the event is device specific.
      v2: refactor as suggested by Zhang Rui <rui.zhang@intel.com>
      Signed-off-by: NLuca Tettamanti <kronos.it@gmail.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      8a37c65d
  13. 30 6月, 2012 1 次提交
  14. 02 6月, 2012 3 次提交
  15. 31 3月, 2012 2 次提交
  16. 13 1月, 2012 1 次提交
  17. 17 7月, 2011 1 次提交
  18. 14 7月, 2011 1 次提交
  19. 10 5月, 2011 1 次提交
  20. 31 3月, 2011 1 次提交
  21. 29 3月, 2011 1 次提交
  22. 23 3月, 2011 2 次提交
  23. 14 12月, 2010 3 次提交
  24. 16 11月, 2010 1 次提交
  25. 16 10月, 2010 1 次提交
  26. 15 8月, 2010 2 次提交
  27. 20 5月, 2010 1 次提交