1. 02 2月, 2008 2 次提交
    • H
      ACPI: thinkpad-acpi: add CMOS NVRAM polling for hot keys (v9) · 01e88f25
      Henrique de Moraes Holschuh 提交于
      Older ThinkPad models do not export some of the hot keys over the
      event-based ACPI hot key interface.  For these models, one has to poll
      the CMOS NVRAM to check the key state at a rate faster than the expected
      rate at which the user might repeatedly press the same hot key.
      
      This patch implements this functionality for many of the hotkeys in a
      transparent way: hot keys will now Just Work, and the driver knows the
      best approach (events or NVRAM polling) to employ, based on the
      HKEY.MHKA ACPI method.
      
      Also, the driver can turn off the polling when there are no users for
      the hot keys that need such polling.
      
      The NVRAM-based hot keys of the A3x series that have never been
      implemented by later models are not supported, to avoid changes in the
      keymap of the input devices that could cause headaches in the future.
      
      There is a Kconfig option to avoid compiling the NVRAM polling code, as
      it is not very small, and unlikely to be useful on any ThinkPad newer
      than a T40, X31 or R52.
      
      This feature is based on a previous effort by Richard Hughes.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Cc: Richard Hughes <hughsient@gmail.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      01e88f25
    • H
      ACPI: thinkpad-acpi: refactor hotkey_get and hotkey_set (v2) · b2c985e7
      Henrique de Moraes Holschuh 提交于
      Refactor and organize the code a bit for the NVRAM polling support:
      
      1. Split hotkey_get/set into hotkey_status_get/set and hotkey_mask_get/set;
      2. Cache the status of hot key mask for later driver use;
      3. Make sure the cache of hot key mask is refreshed when needed;
      4. log a printk notice when the firmware doesn't set the hot key
         mask to exactly what we asked it to;
      5. Add proper locking to the data structures.
      
      Only (4) should be user-noticeable, but there is a chance (5) fixes
      some unknown/unreported race conditions.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      b2c985e7
  2. 06 11月, 2007 2 次提交
    • H
      ACPI: thinkpad-acpi: add brightness_force parameter · 87cc537a
      Henrique de Moraes Holschuh 提交于
      Add a "brightness_enable" module parameter that allows the local admin to
      force the backlight support to not be enabled.
      
      It can also be used to force the backlight support to be enabled, but that
      is currently a no-op as the backlight support is enabled by default when
      available.  This will be changed by a different patch.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      87cc537a
    • H
      ACPI: thinkpad-acpi: support 16 levels of brightness (v3) · a3f104c0
      Henrique de Moraes Holschuh 提交于
      Lenovo ThinkPads often have 16 brightness levels in EC, and not just eight
      levels like older ThinkPads.  They also have standard ACPI backlight
      brightness control.
      
      We detect the number of brightness levels by the presence of a BCLL package
      with 16 entries.  If BCLL is not there, we assume eight levels (Z6*).  If
      it is there, but it doesn't have 16 entries, we assume eight levels (T60).
      Otherwise we assume sixteen levels (T61, X61, etc).
      
      We don't use _BCL because it can have side-effects in thinkpads.  Thanks to
      Thomas Renninger <trenn@suse.de> for notifying me of this potential
      problem.
      
      Using the standard ACPI backlight brightness control *instead* of the
      native thinkpad backlight control is a better idea, though.  A different
      patch will take care of this.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Cc: Thomas Renninger <trenn@suse.de>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      a3f104c0
  3. 10 10月, 2007 1 次提交
  4. 26 9月, 2007 2 次提交
  5. 24 9月, 2007 1 次提交
  6. 17 9月, 2007 1 次提交
    • H
      ACPI: thinkpad-acpi: revert new 2.6.23 CONFIG_THINKPAD_ACPI_INPUT_ENABLED option · ff80f137
      Henrique de Moraes Holschuh 提交于
      Revert new 2.6.23 CONFIG_THINKPAD_ACPI_INPUT_ENABLED Kconfig option because
      it would create a legacy we don't want to support.
      
      CONFIG_THINKPAD_ACPI_INPUT_ENABLED was added to try to fix an issue that is
      now moot with the addition of the netlink ACPI event report interface to
      the ACPI core.
      
      Now that ACPI core can send events over netlink, we can use a different
      strategy to keep backwards compatibility with older userspace, without the
      need for the CONFIG_THINKPAD_ACPI_INPUT_ENABLED games.  And it arrived
      before CONFIG_THINKPAD_ACPI_INPUT_ENABLED made it to a stable mainline
      kernel, even, which is Good.
      
      This patch is in sync with some changes to thinkpad-acpi backports, that
      will keep things sane for userspace across different combinations of kernel
      versions, thinkpad-acpi backports (or the lack thereof), and userspace
      capabilities:
      
      Unless a module parameter is used, thinkpad-acpi will now behave in such a
      way that it will work well (by default) with userspace that still uses only
      the old ACPI procfs event interface and doesn't care for thinkpad-acpi
      input devices.
      
      It will also always work well with userspace that has been updated to use
      both the thinkpad-acpi input devices, and ACPI core netlink event
      interface, regardless of any module parameter.
      
      The module parameter was added to allow thinkpad-acpi to work with
      userspace that has been partially updated to use thinkpad-acpi input
      devices, but not the new ACPI core netlink event interface.  To use this
      mode of hot key reporting, one has to specify the hotkey_report_mode=2
      module parameter.
      
      The thinkpad-acpi driver exports the value of hotkey_report_mode through
      sysfs, as well.  thinkpad-acpi backports to older kernels, that do not
      support the new ACPI core netlink interface, have code to allow userspace
      to switch hotkey_report_mode at runtime through sysfs.  This capability
      will not be provided in mainline thinkpad-acpi as it is not needed there.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Cc: Michael S. Tsirkin <mst@dev.mellanox.co.il>
      Cc: Hugh Dickins <hugh@veritas.com>
      Cc: Richard Hughes <hughsient@gmail.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      ff80f137
  7. 04 8月, 2007 1 次提交
    • H
      ACPI: thinkpad-acpi: fix the module init failure path · ac36393d
      Henrique de Moraes Holschuh 提交于
      Thomas Renninger reports that if one tries to load thinkpad-acpi in a
      non-thinkpad, one gets:
      
      Call Trace:
       [<ffffffff802fa57d>] kref_get+0x2f/0x36
       [<ffffffff802f97f7>] kobject_get+0x12/0x17
       [<ffffffff8036dfd7>] get_driver+0x14/0x1a
       [<ffffffff8036dfee>] driver_remove_file+0x11/0x32
       [<ffffffff8823b9be>] :thinkpad_acpi:thinkpad_acpi_module_exit+0xa8/0xfc
       [<ffffffff8824b8a0>] :thinkpad_acpi:thinkpad_acpi_module_init+0x74a/0x776
       [<ffffffff8024f968>] __link_module+0x0/0x25
       [<ffffffff80252269>] sys_init_module+0x162c/0x178f
       [<ffffffff8020bc2e>] system_call+0x7e/0x83
      
      So, track if the platform driver and its driver attributes were registered,
      and only deallocate them in that case.
      
      This patch is based on Thomas Renninger's patch for the issue.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Acked-by: NThomas Renninger <trenn@suse.de>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      ac36393d
  8. 24 7月, 2007 1 次提交
  9. 22 7月, 2007 7 次提交
  10. 01 6月, 2007 1 次提交
    • H
      ACPI: thinkpad-acpi: do not use named sysfs groups · cc4c24e1
      Henrique de Moraes Holschuh 提交于
      The initial version of the thinkpad-acpi sysfs interface (not yet released
      in any stable mainline kernel) made liberal use of named sysfs groups, in
      order to get the attributes more organized.
      
      This proved to be a really bad design decision.  Maybe if attribute groups
      were as flexible as a real directory, and if binary attributes were not
      second-class citizens, the idea of subdirs and named groups would not have
      been so bad.
      
      This patch makes all the thinkpad-acpi sysfs groups anonymous (thus
      removing the subdirs), adds the former group names as a prefix (so that
      hotkey/enable becomes hotkey_enable for example), and updates the
      documentation.
      
      These changes will make the thinkpad-acpi sysfs ABI a lot easier to
      maintain.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      cc4c24e1
  11. 29 4月, 2007 4 次提交
  12. 25 4月, 2007 7 次提交
  13. 22 4月, 2007 10 次提交