1. 02 11月, 2015 1 次提交
    • A
      ACPI / video: only register backlight for LCD device · e50b9be1
      Aaron Lu 提交于
      The firmware of ESPRIMO Mobile M9410 has two video output devices that
      have _BCM control method, one is the type of "External Digital Monitor"
      while the other is the type of "Internal/Integrated Digital Flat Panel".
      Only the 2nd video output device's _BCM control method works, but
      since we have created two and the 1st one got picked up by user space,
      the backlight functionality is broken. To solve this problem, only
      register backlight interface for "Internal/Integrated Digital Flat Panel"
      type video output device on this laptop.
      
      Another problem of this laptop is that the IDs listed by the _DOD method
      doesn't have bit 31 set, which means it doesn't follow the format
      specified by ACPI spec. But the value indicates that it actually follows
      that format so I've added a DMI quirk and a module level parameter to
      force use the device_id_scheme so that we can get the video output
      device's type to do the decision if we should register backlight
      interface.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=104121Suggested-by: NHans de Goede <hdegoede@redhat.com>
      Reported-and-tested-by: NChristian Scharl <zahlsum-kernelbugs@yahoo.de>
      Signed-off-by: NAaron Lu <aaron.lu@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      e50b9be1
  2. 08 7月, 2015 1 次提交
  3. 19 6月, 2015 6 次提交
  4. 15 6月, 2015 2 次提交
  5. 23 3月, 2015 2 次提交
  6. 04 3月, 2015 2 次提交
  7. 18 2月, 2015 1 次提交
  8. 09 2月, 2015 1 次提交
  9. 20 1月, 2015 1 次提交
  10. 07 1月, 2015 1 次提交
  11. 23 12月, 2014 1 次提交
  12. 15 12月, 2014 1 次提交
  13. 01 12月, 2014 1 次提交
  14. 30 10月, 2014 1 次提交
    • A
      ACPI / video: Run _BCL before deciding registering backlight · dce4ec2e
      Aaron Lu 提交于
      The ASUS K53SM's ACPI table queries _OSI("Windows 2012") in the video
      output device's _BCL and _BCM control method instead of the usual _INI
      functions of the _SB or PCI host bridge PCI0 devices. This made our
      video module thought this is a pre-Win8 system when deciding if we
      should register a backlight interface for it and the end result is that
      a non-working acpi_video interface is registered and user is unable to
      control backlight from GUI. Solve this problem by evaluating _BCL control
      method before doing the decision.
      
      Note that for some Thinkpad systems, the _BCL is also required to be
      evaluated for the hotkey event to be generated no matter if we will
      register an ACPI video backlight interface for it or not. Since the
      thinkpad_acpi module will do this anyway we didn't add such a thing in
      the video module previously. But now with this change here, the
      thinkpad_acpi module is no more necessary for those systems regarding
      backlight functionality.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=85051Reported-and-tested-by: NRalf Jung <post+kernel@ralfj.de>
      Signed-off-by: NAaron Lu <aaron.lu@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      dce4ec2e
  15. 01 10月, 2014 1 次提交
    • A
      ACPI / video: check _DOD list when creating backlight devices · 0b8db271
      Aaron Lu 提交于
      The _DOD method lists which video output device is currently attached so
      we should only care about them and ignore others. An user recently
      reported that there are two acpi_video interfaces appeared on his system
      and one of them doesn't work. From the acpidump, it is found that there
      are more than one video output devices that have _BCM control method but
      the _DOD lists only one of them. So this patch checks if the video output
      device is in the _DOD list and will not create backlight device if it is
      not in the list. Also, we consider the broken _DOD case(reflected by the
      video->attached_count is 0) and do not change behaviour for those broken
      _DOD systems.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=84111
      Reported-and-tested-by: ntrrgc@gmail.com
      Signed-off-by: NAaron Lu <aaron.lu@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0b8db271
  16. 22 9月, 2014 1 次提交
  17. 04 9月, 2014 1 次提交
  18. 02 9月, 2014 3 次提交
  19. 30 7月, 2014 1 次提交
  20. 21 7月, 2014 2 次提交
  21. 16 7月, 2014 1 次提交
  22. 15 7月, 2014 1 次提交
  23. 08 7月, 2014 2 次提交
  24. 06 6月, 2014 1 次提交
  25. 27 5月, 2014 3 次提交
  26. 20 5月, 2014 1 次提交
    • H
      ACPI / video: Add an acpi_video_unregister_backlight function · 1b7f37e1
      Hans de Goede 提交于
      Add an acpi_video_unregister_backlight function, which only unregisters
      the backlight device, and leaves the acpi_notifier in place. Some acpi_vendor
      driver need this as they don't want the acpi_video# backlight device, but do
      need the acpi-video driver for hotkey handling.
      
      Chances are that this new acpi_video_unregister_backlight() is actually
      what existing acpi_vendor drivers have wanted all along. Currently acpi_vendor
      drivers which want to disable the acpi_video# backlight device, make 2 calls:
      
      acpi_video_dmi_promote_vendor();
      acpi_video_unregister();
      
      The intention here is to make things independent of when acpi_video_register()
      gets called. As acpi_video_register() will get called on acpi-video load time
      on non intel gfx machines, while it gets called on i915 load time on intel
      gfx machines.
      
      This leads to the following 2 interesting scenarios:
      
       a) intel gfx:
        1) acpi-video module gets loaded (as it is a dependency of acpi_vendor
           and i915)
        2) acpi-video does NOT call acpi_video_register()
        3) acpi_vendor loads (lets assume it loads before i915), calls
           acpi_video_dmi_promote_vendor(); which sets
           ACPI_VIDEO_BACKLIGHT_DMI_VENDOR
        4) calls acpi_video_unregister -> not registered, nop
        5) i915 loads, calls acpi_video_register
        6) acpi_video_register registers the acpi_notifier for the hotkeys,
           does NOT register a backlight device because of
           ACPI_VIDEO_BACKLIGHT_DMI_VENDOR
      
       b) non intel gfx
        1) acpi-video module gets loaded (as it is a dependency acpi_vendor)
        2) acpi-video calls acpi_video_register()
        3) acpi_video_register registers the acpi_notifier for the hotkeys,
           and a backlight device
        4) acpi_vendor loads, calls acpi_video_dmi_promote_vendor()
        5) calls acpi_video_unregister, this unregisters BOTH the acpi_notifier
           for the hotkeys AND the backlight device
      
      So here we have possibly the same acpi_vendor module, making the same calls,
      but with different results, in one cases acpi-video does handle hotkeys,
      in the other it does not.
      
      Note that the a) scenario turns into b) if we assume the i915 module loads
      before the vendor_acpi module, so we also have different behavior depending
      on module loading order!
      
      So as said I believe that quite a few existing acpi_vendor modules really
      always want the behavior of a), hence this patch adds a new
      acpi_video_unregister_backlight() which gives the behavior of a) independent
      of module loading order.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      1b7f37e1