1. 31 1月, 2013 2 次提交
    • M
      samsung-laptop: Disable on EFI hardware · e0094244
      Matt Fleming 提交于
      It has been reported that running this driver on some Samsung laptops
      with EFI can cause those machines to become bricked as detailed in the
      following report,
      
      	https://bugs.launchpad.net/ubuntu-cdimage/+bug/1040557
      
      There have also been reports of this driver causing Machine Check
      Exceptions on recent EFI-enabled Samsung laptops,
      
      	https://bugzilla.kernel.org/show_bug.cgi?id=47121
      
      So disable it if booting from EFI since this driver relies on
      grovelling around in the BIOS memory map which isn't going to work.
      
      Cc: Corentin Chary <corentincj@iksaif.net>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Steve Langasek <steve.langasek@canonical.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      e0094244
    • M
      efi: Make 'efi_enabled' a function to query EFI facilities · 83e68189
      Matt Fleming 提交于
      Originally 'efi_enabled' indicated whether a kernel was booted from
      EFI firmware. Over time its semantics have changed, and it now
      indicates whether or not we are booted on an EFI machine with
      bit-native firmware, e.g. 64-bit kernel with 64-bit firmware.
      
      The immediate motivation for this patch is the bug report at,
      
          https://bugs.launchpad.net/ubuntu-cdimage/+bug/1040557
      
      which details how running a platform driver on an EFI machine that is
      designed to run under BIOS can cause the machine to become
      bricked. Also, the following report,
      
          https://bugzilla.kernel.org/show_bug.cgi?id=47121
      
      details how running said driver can also cause Machine Check
      Exceptions. Drivers need a new means of detecting whether they're
      running on an EFI machine, as sadly the expression,
      
          if (!efi_enabled)
      
      hasn't been a sufficient condition for quite some time.
      
      Users actually want to query 'efi_enabled' for different reasons -
      what they really want access to is the list of available EFI
      facilities.
      
      For instance, the x86 reboot code needs to know whether it can invoke
      the ResetSystem() function provided by the EFI runtime services, while
      the ACPI OSL code wants to know whether the EFI config tables were
      mapped successfully. There are also checks in some of the platform
      driver code to simply see if they're running on an EFI machine (which
      would make it a bad idea to do BIOS-y things).
      
      This patch is a prereq for the samsung-laptop fix patch.
      
      Cc: David Airlie <airlied@linux.ie>
      Cc: Corentin Chary <corentincj@iksaif.net>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Cc: Dave Jiang <dave.jiang@intel.com>
      Cc: Olof Johansson <olof@lixom.net>
      Cc: Peter Jones <pjones@redhat.com>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Steve Langasek <steve.langasek@canonical.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>
      Cc: Rafael J. Wysocki <rjw@sisk.pl>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      83e68189
  2. 08 1月, 2013 7 次提交
  3. 04 1月, 2013 1 次提交
    • G
      Drivers: platform: x86: remove __dev* attributes. · b859f159
      Greg Kroah-Hartman 提交于
      CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
      markings need to be removed.
      
      This change removes the use of __devinit, __devexit_p, __devinitdata,
      __devinitconst, and __devexit from these drivers.
      
      Based on patches originally written by Bill Pemberton, but redone by me
      in order to handle some of the coding style issues better, by hand.
      
      Cc: Bill Pemberton <wfp5p@virginia.edu>
      Cc: Joey Lee <jlee@novell.com>
      Cc: Matthew Garrett <mjg@redhat.com>
      Cc: Peter Feuerer <peter@piie.net>
      Cc: Corentin Chary <corentin.chary@gmail.com>
      Cc: Cezary Jackiewicz <cezary.jackiewicz@gmail.com>
      Cc: Robert Gerlach <khnz@gmx.de>
      Cc: Ike Panhc <ike.pan@canonical.com>
      Cc: Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b859f159
  4. 18 12月, 2012 1 次提交
  5. 05 11月, 2012 1 次提交
  6. 06 10月, 2012 1 次提交
  7. 24 9月, 2012 2 次提交
  8. 22 9月, 2012 5 次提交
  9. 14 9月, 2012 8 次提交
  10. 02 9月, 2012 1 次提交
  11. 21 8月, 2012 3 次提交
  12. 18 8月, 2012 8 次提交
    • C
      classmate-laptop: always call input_sync() after input_report_switch() · ad20c73b
      Carlos Alberto Lopez Perez 提交于
      Due to commit cdda911c evdev only
      becomes readable when the buffer contains an EV_SYN/SYN_REPORT event.
      
      So in order to read the tablet sensor data as it happens we need to
      ensure that we always call input_sync() after input_report_switch()
      Signed-off-by: NCarlos Alberto Lopez Perez <clopez@igalia.com>
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      ad20c73b
    • M
      thinkpad-acpi: recognize latest V-Series using DMI_BIOS_VENDOR · a4f46bb9
      Manoj Iyer 提交于
      In the latest V-series bios DMI_PRODUCT_VERSION does not contain
      the string Lenovo or Thinkpad, but is set to the model number, this
      causes the thinkpad_acpi module to fail to load. Recognize laptop
      as Lenovo using DMI_BIOS_VENDOR instead, which is set to Lenovo.
      
      Test on V490u
      =============
      == After the patch ==
      
      [ 1350.295757] thinkpad_acpi: ThinkPad ACPI Extras v0.24
      [ 1350.295760] thinkpad_acpi: http://ibm-acpi.sf.net/
      [ 1350.295761] thinkpad_acpi: ThinkPad BIOS H7ET21WW (1.00 ), EC unknown
      [ 1350.295763] thinkpad_acpi: Lenovo LENOVO, model LV5DXXX
      [ 1350.296086] thinkpad_acpi: detected a 8-level brightness capable ThinkPad
      [ 1350.296694] thinkpad_acpi: radio switch found; radios are enabled
      [ 1350.296703] thinkpad_acpi: possible tablet mode switch found; ThinkPad in laptop mode
      [ 1350.306466] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
      [ 1350.307082] Registered led device: tpacpi::thinklight
      [ 1350.307215] Registered led device: tpacpi::power
      [ 1350.307255] Registered led device: tpacpi::standby
      [ 1350.307294] Registered led device: tpacpi::thinkvantage
      [ 1350.308160] thinkpad_acpi: Standard ACPI backlight interface available, not loading native one
      [ 1350.308333] thinkpad_acpi: Console audio control enabled, mode: monitor (read only)
      [ 1350.312287] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input14
      
      == Before the patch ==
      sudo modprobe thinkpad_acpi
      FATAL: Error inserting thinkpad_acpi (/lib/modules/3.2.0-27-generic/kernel/drivers/platform/x86/thinkpad_acpi.ko): No such device
      
      Test on B485
      =============
      This patch was also test in a B485 where the thinkpad_acpi module does not
      have any issues loading. But, I tested it to make sure this patch does not
      break on already functioning models of Lenovo products.
      
      [13486.746359] thinkpad_acpi: ThinkPad ACPI Extras v0.24
      [13486.746364] thinkpad_acpi: http://ibm-acpi.sf.net/
      [13486.746368] thinkpad_acpi: ThinkPad BIOS HJET15WW(1.01), EC unknown
      [13486.746373] thinkpad_acpi: Lenovo Lenovo LB485, model 814TR01
      [13486.747300] thinkpad_acpi: detected a 8-level brightness capable ThinkPad
      [13486.752435] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
      [13486.752883] Registered led device: tpacpi::thinklight
      [13486.752915] thinkpad_acpi: Standard ACPI backlight interface available, not loading native one
      [13486.753216] thinkpad_acpi: Console audio control enabled, mode: monitor (read only)
      [13486.757147] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input15
      Signed-off-by: NManoj Iyer <manoj.iyer@canonical.com>
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      a4f46bb9
    • A
      dell-laptop: Fixed typo in touchpad LED quirk · a2174ba2
      AceLan Kao 提交于
      Fixed the typo introduced from the below commit
      5f1e88f4 dell-laptop: Add 6 machines to touchpad led quirk
      Reported-by: NCarlos Alberto Lopez Perez <clopez@igalia.com>
      Signed-off-by: NAceLan Kao <acelan.kao@canonical.com>
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      a2174ba2
    • A
      apple-gmux: Add display mux support · 76b487dd
      Andreas Heider 提交于
      Add support for the gmux display muxing functionality and register a mux
      handler with vga_switcheroo.
      Signed-off-by: NAndreas Heider <andreas@meetr.de>
      Signed-off-by: NSeth Forshee <seth.forshee@canonical.com>
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      76b487dd
    • S
      apple-gmux: Fix kconfig dependencies · f94f0f10
      Seth Forshee 提交于
      Fix the dependencies of apple-gmux to prevent it from being built-in
      when one or more of its dependencies is built as a module. Otherwise it
      can fail to build due to missing symbols.
      
      v2: Add dependency on ACPI to fix build failure when ACPI=n
      Reported-by: NArun Raghavan <arun.raghavan@collabora.co.uk>
      Signed-off-by: NSeth Forshee <seth.forshee@canonical.com>
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      f94f0f10
    • A
      asus-wmi: record wlan status while controlled by userapp · a50bd128
      AceLan Kao 提交于
      If the user bit is set, that mean BIOS can't set and record the wlan
      status, it will report the value read from id ASUS_WMI_DEVID_WLAN_LED
      (0x00010012) while we query the wlan status by id ASUS_WMI_DEVID_WLAN
      (0x00010011) through WMI.
      So, we have to record wlan status in id ASUS_WMI_DEVID_WLAN_LED
      (0x00010012) while setting the wlan status through WMI.
      This is also the behavior that windows app will do.
      
      Quote from ASUS application engineer
      ===
      When you call WMIMethod(DSTS, 0x00010011) to get WLAN status, it may return
      
      (1) 0x00050001 (On)
      (2) 0x00050000 (Off)
      (3) 0x00030001 (On)
      (4) 0x00030000 (Off)
      (5) 0x00000002 (Unknown)
      
      (1), (2) means that the model has hardware GPIO for WLAN, you can call
      WMIMethod(DEVS, 0x00010011, 1 or 0) to turn WLAN on/off.
      (3), (4) means that the model doesn’t have hardware GPIO, you need to use
      API or driver library to turn WLAN on/off, and call
      WMIMethod(DEVS, 0x00010012, 1 or 0) to set WLAN LED status.
      After you set WLAN LED status, you can see the WLAN status is changed with
      WMIMethod(DSTS, 0x00010011). Because the status is recorded lastly
      (ex: Windows), you can use it for synchronization.
      (5) means that the model doesn’t have WLAN device.
      
      WLAN is the ONLY special case with upper rule.
      
      For other device, like Bluetooth, you just need use
      WMIMethod(DSTS, 0x00010013) to get, and WMIMethod(DEVS, 0x00010013, 1 or 0)
      to set.
      ===
      Signed-off-by: NAceLan Kao <acelan.kao@canonical.com>
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      a50bd128
    • M
      apple_gmux: Fix ACPI video unregister · 9f6f955a
      Matthew Garrett 提交于
      We were only calling acpi_video_unregister() if ACPI video support was built
      in, not if it was a module.
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      9f6f955a
    • M
      apple_gmux: Add support for newer hardware · 96ff7056
      Matthew Garrett 提交于
      New gmux devices have a different method for accessing the registers.
      Update the driver to cope. Incorporates feedback from Bernhard Froemel.
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      Cc: Bernhard Froemel <froemel@vmars.tuwien.ac.at>
      Cc: Seth Forshee <seth.forshee@canonical.com>
      96ff7056