1. 16 12月, 2009 7 次提交
    • A
      887965e6
    • H
      thinkpad-acpi: basic ALSA mixer support (v2) · 0d204c34
      Henrique de Moraes Holschuh 提交于
      Add the basic ALSA mixer functionality.  The mixer is event-driven,
      and will work fine on IBM ThinkPads.  I expect Lenovo ThinkPads will
      cause some trouble with the event interface.
      
      Heavily based on work by Lorne Applebaum <lorne.applebaum@gmail.com>
      and ideas from Matthew Garrett <mjg@redhat.com>.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Cc: Lorne Applebaum <lorne.applebaum@gmail.com>
      Cc: Matthew Garrett <mjg@redhat.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      0d204c34
    • H
      thinkpad-acpi: disable volume control · c7ac6291
      Henrique de Moraes Holschuh 提交于
      Disable volume control by default.  It can be enabled at module load
      time by a module parameter (volume_control=1).
      
      The audio control mixer that thinkpad-acpi interacts with is fully
      functional without any drivers, and operated by hotkeys.
      
      The idea behind the console audio control is that the human operator
      is the only one that can interact with it.  The ThinkVantage suite in
      Windows does not allow any software-based overrides, and only does OSD
      (on-screen-display) functions.
      
      The Linux driver will, with the addition of the ALSA interface, try to
      follow and enforce the ThinkVantage UI design:
      
      The user is supposed to use the keyboard hotkeys to interact with the
      console audio control.  The kernel and the desktop environment is
      supposed to cooperate to provide proper user feedback through
      on-screen-display functions.
      
      Distros are urged to not to enable volume control by default.
      Enabling this must be a local admin's decision.  This is the reason
      why there is no Kconfig option.
      
      Keep in mind that all ThinkPads have a normal, main mixer (AC97 or
      HDA) for regular software-based audio control.  We are not talking
      about that mixer here.
      
      Advanced users are, of course, free to enable volume control and do as
      they please.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Cc: Lorne Applebaum <lorne.applebaum@gmail.com>
      Cc: Matthew Garrett <mjg@redhat.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      c7ac6291
    • H
      thinkpad-acpi: support MUTE-only ThinkPads · a112ceee
      Henrique de Moraes Holschuh 提交于
      Lenovo removed the extra mixer since the T61 and thereabouts.
      Newer Lenovo models only have the mute gate function, and leave
      the volume control to the HDA mixer.
      
      Until a way to automatically query the firmware about its audio
      control capabilities is discovered (there might not be any), use a
      white/black list.
      
      We will likely need to ask T60 (old and new model) and Z60/Z61 users
      whether they have volume control to populate the black/white list.
      Meanwhile, provide a volume_capabilities parameter that can be used to
      override the defaults.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Cc: Lorne Applebaum <lorne.applebaum@gmail.com>
      Cc: Matthew Garrett <mjg@redhat.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      a112ceee
    • H
      thinkpad-acpi: volume subdriver rewrite · 329e4e18
      Henrique de Moraes Holschuh 提交于
      I don't trust the coupled EC writes and SMI calls the current volume
      control code does very much, although it is exactly what the IBM DSDTs
      seem to do (they never do more than a single step though).
      
      Change the driver to stop issuing SMIs, and just drive the EC directly
      to the desired level (DSDTs seem to confirm this will work even on
      very old models like the 570 and 600e/x).
      
      We checkpoint directly to NVRAM (this can be turned off) at
      suspend/shutdown/driver unload, which from what I can see in tbp,
      should also work on every ThinkPad.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Cc: Lorne Applebaum <lorne.applebaum@gmail.com>
      Cc: Matthew Garrett <mjg@redhat.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      329e4e18
    • H
      thinkpad-acpi: log initial state of rfkill switches · 5451a923
      Henrique de Moraes Holschuh 提交于
      We already log the initial state of the hardware rfkill switch (WLSW),
      might as well log the state of the softswitches as well.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Cc: Josip Rodin <joy+kernel@entuzijast.net>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      5451a923
    • H
      thinkpad-acpi: sync input device EV_SW initial state · d89a727a
      Henrique de Moraes Holschuh 提交于
      Before we register the input device, sync the input layer EV_SW state
      through a call to input_report_switch(), to avoid issuing a gratuitous
      event for the initial state of these switches.
      
      This fixes some annoyances caused by the interaction with rfkill and
      EV_SW SW_RFKILL_ALL events.
      Reported-by: NKevin Locke <kevin@kevinlocke.name>
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Cc: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
      Cc: Johannes Berg <johannes@sipsolutions.net>
      Cc: Dmitry Torokhov <dtor@mail.ru>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      d89a727a
  2. 10 12月, 2009 9 次提交
  3. 25 11月, 2009 3 次提交
  4. 03 11月, 2009 2 次提交
  5. 13 10月, 2009 2 次提交
  6. 10 10月, 2009 1 次提交
  7. 29 9月, 2009 2 次提交
  8. 28 9月, 2009 4 次提交
    • A
      sony-laptop: Don't unregister the SPIC driver if it wasn't registered · 5e6f9725
      Alan Jenkins 提交于
      This fixes a warning when the module is unloaded on machines without SPIC.
      
      ------------[ cut here ]------------
      WARNING: at drivers/base/driver.c:261 driver_unregister+0x6e/0x80()
      Hardware name: OEM
      Unexpected driver unregister!
      Modules linked in: sony_laptop(-) rfkill af_packet i915
       drm i2c_algo_bit cfbcopyarea i2c_core cfbimgblt cfbfillrect binfmt_misc
       ipv6 kvm_intel kvm acpi_cpufreq cpufreq_userspace cpufreq_powersave
       cpufreq_stats acpi_pad ac video output battery pci_slot sbs sbshc
       container iptable_filter ip_tables x_tables ext2 fuse
       snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep snd_pcm_oss
       snd_mixer_oss snd_pcm snd_seq_dummy snd_seq_oss snd_seq_midi_event
       snd_seq snd_timer snd_seq_device snd fan sg serio_raw sr_mod cdrom
       soundcore button thermal processor thermal_sys floppy snd_page_alloc
       pcspkr intel_agp evdev [last unloaded: asus_atk0110]
      Pid: 8136, comm: modprobe Not tainted 2.6.31-rc8debug #50
      Call Trace:
      [<ffffffff8121ec7e>] ? driver_unregister+0x6e/0x80
      [<ffffffff81047577>] warn_slowpath_common+0x87/0xb0
      [<ffffffff81047624>] warn_slowpath_fmt+0x64/0x70
      [<ffffffff8119a360>] ? kobject_release+0x0/0x1f0
      [<ffffffff8119a267>] ? kobject_put+0x27/0x60
      [<ffffffff8121d346>] ? bus_put+0x16/0x20
      [<ffffffff8121d406>] ? bus_remove_driver+0xb6/0xf0
      [<ffffffff8121ec7e>] driver_unregister+0x6e/0x80
      [<ffffffff811cab50>] acpi_bus_unregister_driver+0x10/0x12
      [<ffffffffa035e86c>] sony_laptop_exit+0x2c/0x2e [sony_laptop]
      [<ffffffff8107ddc6>] sys_delete_module+0x176/0x230
      [<ffffffff8107186d>] ? trace_hardirqs_on_caller+0x14d/0x1a0
      [<ffffffff81350a04>] ? trace_hardirqs_on_thunk+0x3a/0x3f
      [<ffffffff8100bdab>] system_call_fastpath+0x16/0x1b
      ---[ end trace f638b6a59b19703e ]---
      Signed-off-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: NMattia Dongili <malattia@linux.it>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      5e6f9725
    • M
      sony-laptop: remove _INI call at init time · 922553f2
      Mattia Dongili 提交于
      This is unnecessary as OSPM is supposed to call the method already when
      the device is discovered.
      Signed-off-by: NMattia Dongili <malattia@linux.it>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      922553f2
    • M
      sony-laptop: SPIC unset IRQF_SHARED, set IRQF_DISABLED · d1e0de92
      Mattia Dongili 提交于
      The SPIC irq is not really shareable, the IO port cannot be cleared and
      always returns some data so there is no real way to understand if the irq
      is for us or not. Moreover the _PRS acpi method says the irq is not
      shareable.
      In addition to this, in some cases, an additional write to the IO port has
      to be performed in order to properly decode the event received from the
      device. This generates another interrupt which may overlap with the
      previous one. In the future this is going to be important for properly
      decoding events.
      Signed-off-by: NMattia Dongili <malattia@linux.it>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      d1e0de92
    • M
      sony-laptop: remove device_ctrl and the SPIC mini drivers · 31df7144
      Mattia Dongili 提交于
      Having separate drivers for SPIC showed to be useless, only type3 has a
      slightly different behaviour than the others and there seem to be no real
      conflict between them.
      Signed-off-by: NMattia Dongili <malattia@linux.it>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      31df7144
  9. 27 9月, 2009 1 次提交
  10. 22 9月, 2009 1 次提交
  11. 21 9月, 2009 6 次提交
  12. 19 9月, 2009 2 次提交