17 Sep, 2007

2 commits

  • Name it thinkpad-acpi version 0.16 to avoid any confusion with some 0.15
    thinkpad-acpi development snapshots and backports that had input layer
    support, but no hotkey_report_mode support.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    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: Henrique de Moraes Holschuh
    Cc: Michael S. Tsirkin
    Cc: Hugh Dickins
    Cc: Richard Hughes
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     

12 Aug, 2007

1 commit

  • The documentation used "thinkpad-acpi" to refer to the directories in
    sysfs, while it should have been using "thinkpad_acpi". Thanks to Hugh
    Dickins for the error report.

    I wish I could just call the module and everything else by the proper
    name with the "-", instead of using these ugly translations to "_".

    Signed-off-by: Henrique de Moraes Holschuh
    Cc: Hugh Dickins
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     

22 Jul, 2007

13 commits

  • Name it thinkpad-acpi version 0.15.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • Reading the 16 thermal sensors directly from the EC has been stable for
    about one year, in all supported ThinkPad models. Remove its
    "experimental" label.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • Lenovo ThinkPads have a slightly different key map layout from IBM
    ThinkPads (fn+f2 and fn+f3 are swapped). Knowing which one we are dealing
    with, we can properly set a few more hot keys up by default.

    Also, export the correct vendor in the input device, as that information
    might be useful to userspace.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • It appears that Lenovo decided to break the EC brightness control interface
    in a weird way in their latest BIOSes. Fortunately, the old CMOS NVRAM
    interface works just fine in such BIOSes.

    Add a module parameter that allows the user to select which strategy to use
    for brightness control: EC, NVRAM, or both. By default, do both (which is
    the way thinkpad-acpi used to work until now) on IBM ThinkPads, and use
    NVRAM only on Lenovo ThinkPads.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • The change in the way hotkey events are handled by default, and the use of
    the input layer for the hotkey events are important enough features to
    warrant increasing the major field of the sysfs interface version.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • Make the input layer the default way to deal with thinkpad-acpi hot keys,
    but add a kernel config option to retain the old way of doing things.

    This means we map a lot more keys to useful stuff by default, and also that
    we enable hot key handling by default on driver load (like Windows does).

    The documentation for proper use of this resource is also updated.

    Signed-off-by: Henrique de Moraes Holschuh
    Cc: Richard Hughes
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • Add input device support to the hotkey subdriver.

    Hot keys that have a valid keycode mapping are reported through the input
    layer if the input device is open. Otherwise, they will be reported as
    ACPI events, as they were before.

    Scan codes are reported (using EV_MSC MSC_SCAN events) along with EV_KEY
    KEY_UNKNOWN events.

    For backwards compatibility purposes, hot keys that used to be reported
    through ACPI events are not mapped to anything meaningful by default.
    Userspace is supposed to remap them if it wants to use the input device for
    hot key reporting.

    This patch is based on a patch by Richard Hughes .

    Signed-off-by: Henrique de Moraes Holschuh
    Cc: Richard Hughes
    Cc: Dmitry Torokhov
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • The CMOS set of commands is often just used to keep the CMOS NVRAM in sync
    with whatever the ACPI BIOS has been doing in modern ThinkPads. In older
    ThinkPads, it actually carried out real actions. Document this.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • The change in the size of the hotkey mask, the hability to report the keys
    that use the higher bits, and the addition of the hotkey_radio_sw attribute
    are important enough features to warrant increasing the minor field of the
    sysfs interface version.

    Also, document a bit better how and when the thinkpad-acpi sysfs interface
    version will be updated.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • Some ThinkPad models, notably the T60 and X60, have a slider switch to
    enable and disable the radios. The switch has the capability of
    force-disabling the radios in hardware on most models, and it is supposed
    to affect all radios (WLAN, WWAN, BlueTooth).

    Export the switch state as a sysfs attribute, on ThinkPads where it is
    available.

    Thanks to Henning Schild for asking for this feature, and for tracking down
    the EC register that holds the radio switch state.

    Signed-off-by: Henrique de Moraes Holschuh
    Cc: Henning Schild
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • The firmware knows how many hot keys it supports, so export this
    information in a sysfs attribute.

    And the driver knows which keys are always handled by the firmware in all
    known ThinkPad models too, so export this information as well in a sysfs
    attribute. Unless you know which events need to be handled in a passive
    way, do *not* enable hotkeys that are always handled by the firmware.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • Revise ACPI HKEY functionality to better interface with the firmware, and
    enable up to 32 regular hotkeys, instead of just 16 of them. Ouch.

    This takes care of most keys one used to have to do CMOS NVRAM polling on,
    and should drop the need for tpb, thinkpad-keys, and other such 5Hz NVRAM
    polling power vampires on most modern ThinkPads ;-)

    And, just to add insult to injury, this was sort of working since forever
    through the procfs interface, but nobody noticed or tried an echo
    0xffffffff > /proc/acpi/ibm/hotkey and told me it would generate weird
    events. ARGH!

    Thanks to Richard Hughes for kicking off the work that ended up with this
    discovery, and to Matthew Garret for calling my attention to the fact that
    newer ThinkPads were indeed generating ACPI GPEs when such hot keys were
    pressed.

    Signed-off-by: Henrique de Moraes Holschuh
    Cc: Richard Hughes
    Cc: Matthew Garrett
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • Update the documentation with some extra data on the T43 thermal sensor
    @0xc1, thanks to Alexey Fisher.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     

01 Jun, 2007

1 commit

  • 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: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     

29 Apr, 2007

4 commits


25 Apr, 2007

6 commits

  • Update the brightness sysfs interface (done through the backlight class) to
    be in line with the rest of the thinkpad-acpi driver.

    This renames the incorrect, un-obvious, and clash-prone name of "ibm" for
    the backlight device to a much more fitting and descriptive
    "thinkpad_screen". This is something I wanted to do for quite a while...

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • Add sysfs attributes to send ThinkPad CMOS commands.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • Export sysfs attributes to monitor and control the internal thinkpad fan
    (some thinkpads have more than one fan, but thinkpad-acpi doesn't support
    the second fan yet). The sysfs interface follows the hwmon design guide
    for fan devices.

    Also, fix some stray "thermal" files in the fan procfs description that
    have been there forever, and officially support "full-speed" as the name
    for the PWM-disabled state of the fan controller to keep it in line with
    the hwmon interface. It is much better a name for that mode than the
    unobvious "disengaged" anyway. Change the procfs interface to also accept
    full-speed as a fan level, but still report it as disengaged for backwards
    compatibility.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • Export thinkpad thermal sensors to sysfs, following the hwmon
    specification for thermal monitoring sensors.

    ThinkPad thermal monitoring is done by the EC. Sensors can show up or
    disappear at runtime when they are inside hotswappable hardware, such as
    batteries. Sensors that are not available return -ENXIO when accessed.

    Up to 16 thermal sensors are supported on new firmware (but nobody has
    reported a ThinkPad with more than 12 sensors so far), and 8 sensors are
    supported on older firmware. Thermal sensor mapping is model-specific.
    Precision varies, it is 1 degree Celcius on new ThinkPads, but higher on
    some older models.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • Add the sysfs attributes for the platform driver.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • Register thinkpad-acpi platform driver and platform device for the device
    model. Also register the platform device with the hwmon class.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     

22 Apr, 2007

3 commits


31 Mar, 2007

2 commits

  • Cleanup documentation, driver strings and other misc stuff, now that the
    driver is named "thinkpad-acpi".

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh
     
  • Rename the ibm-acpi driver to thinkpad-acpi. ThinkPads are not even made
    by IBM anymore, so it is high time to rename the driver...

    The name thinkpad-acpi was used sometime ago by a thinkpad-specific hotkey
    driver by Erik Rigtorp, around the 2.6.8-2.6.10 time frame. The driver
    apparently never got merged into mainline (it did make some trips through
    -mm). ibm-acpi was merged soon after, making its debut in 2.6.10.

    The reuse of the thinkpad-acpi name shouldn't be a problem as far as user
    confusion goes, as Erik's thinkpad-acpi apparently didn't get widespread
    use in the Linux ThinkPad community and most hits for thinkpad-acpi in
    google point to ibm-acpi anyway.

    Erik, if you read this, please consider the reuse of the thinkpad-acpi name
    as a compliment to your effort to make ThinkPads more useful to all of us.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Len Brown

    Henrique de Moraes Holschuh