[PATCH] Fn+F* keys don't work on MSI Wind U100Plus since Ubuntu 10.04

Bug #949311 reported by Maxim Mikityanskiy on 2012-03-07
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Medium
Brad Figg
Natty
Undecided
Unassigned
Oneiric
Undecided
Unassigned
Precise
Medium
Brad Figg

Bug Description

After upgrading to Ubuntu 10.04 LTS two years ago some special keys on my laptop stopped working. They don't send any scan codes or ACPI events ("showkey -s" and "acpi_listen" don't show anything), but they did it on Ubuntu 9.10 and they still do it on Gentoo with vanilla kernel. I expect that these keys have to work (to send scan codes and ACPI events) in newer Ubuntu than 9.10.

It was obvious that problem is in Ubuntu kernel patchset, because the thing works on vanilla kernel and doesn't work on Ubuntu-patched kernel. So, I decided to debug patched kernel, found the problem and have written the patch to fix it. The bug is in the file "drivers/acpi/video.c" in function acpi_video_bus_start_devices().

There is a line in the function in vanilla kernel:

return acpi_video_bus_DOS(video, 0, 0);

But in Ubuntu-patched kernel it is:

return acpi_video_bus_DOS(video, 0, 1);

The difference is the last argument: there is 0 in vanilla kernel and 1 in Ubuntu kernel.

If I change the last argument to 0 (like in vanilla kernel), my laptop's problem disappears.

But there should be 1 on other laptops, because setting the last argument to 1 on other laptops disables automatic display backlight brightness changing by BIOS when AC power appears/disappears: this behavior is provided by power manager in userspace and BIOS shouldn't interfere gnome-power-manager. It is correct on some other laptops, but my BIOS doesn't touch brightness on AC/DC power switch. However, it disables Fn+F* keys instead of disabling brightness autoswitch.

So, I think, there should be some settings to set the last parameter to 1 on the most laptops and to 0 on MSI Wind laptops. I'm attaching the patch. It doesn't change the current behavior by default, but it does if special kernel command line parameter is used. I hope you will accept this patch. It doesn't affect anything unless you add kernel command line parameter "video.brightness_autoswitch_on_power_events=1", but it fixes the bug on MSI Wind laptop if you add this parameter.

The problem exists in all Ubuntu versions from 10.04 to 12.04 with all kernels from 2.6.32 to current 3.2.0.

Excuse my poor English.
---
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24.
AplayDevices:
 **** List of PLAYBACK Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: ALC1200 Analog [ALC1200 Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
ApportVersion: 1.94.1-0ubuntu2
Architecture: i386
ArecordDevices:
 **** List of CAPTURE Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: ALC1200 Analog [ALC1200 Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: max 1607 F.... pulseaudio
CRDA: Error: command ['iw', 'reg', 'get'] failed with exit code 1: nl80211 not found.
Card0.Amixer.info:
 Card hw:0 'Intel'/'HDA Intel at 0xffe00000 irq 44'
   Mixer name : 'Realtek ALC1200'
   Components : 'HDA:10ec0888,14620110,00100101'
   Controls : 20
   Simple ctrls : 11
DistroRelease: Ubuntu 12.04
HibernationDevice: RESUME=UUID=7edd3c04-5781-45b6-b168-6c620e252b57
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Alpha i386 (20120218)
MachineType: MICRO-STAR INTERNATIONAL CO., LTD U90/U100
Package: linux (not installed)
ProcEnviron:
 LANGUAGE=ru_UA:ru
 TERM=xterm
 LANG=ru_UA.UTF-8
 SHELL=/bin/zsh
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-18-generic-pae root=UUID=c7f10cf8-847a-4663-86ac-98f65904ce91 ro clocksource=hpet usbcore.autosuspend=1 i8042.reset=1 video.brightness_switch_enabled=0 quiet splash vt.handoff=7
ProcVersionSignature: Ubuntu 3.2.0-18.29-generic-pae 3.2.9
RelatedPackageVersions:
 linux-restricted-modules-3.2.0-18-generic-pae N/A
 linux-backports-modules-3.2.0-18-generic-pae N/A
 linux-firmware 1.71
RfKill:
 0: hci0: Bluetooth
  Soft blocked: no
  Hard blocked: no
StagingDrivers: r8187se
Tags: precise staging
Uname: Linux 3.2.0-18-generic-pae i686
UpgradeStatus: Upgraded to precise on 2012-03-12 (4 days ago)
UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo
dmi.bios.date: 12/01/2009
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 4.6.3
dmi.board.asset.tag: To be filled by O.E.M.
dmi.board.name: U90/U100
dmi.board.vendor: MICRO-STAR INTERNATIONAL CO., LTD
dmi.board.version: Ver.001
dmi.chassis.asset.tag: To Be Filled By O.E.M.
dmi.chassis.type: 10
dmi.chassis.vendor: MICRO-STAR INTERNATIONAL CO., LTD
dmi.chassis.version: Ver.001
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr4.6.3:bd12/01/2009:svnMICRO-STARINTERNATIONALCO.,LTD:pnU90/U100:pvrVer.001:rvnMICRO-STARINTERNATIONALCO.,LTD:rnU90/U100:rvrVer.001:cvnMICRO-STARINTERNATIONALCO.,LTD:ct10:cvrVer.001:
dmi.product.name: U90/U100
dmi.product.version: Ver.001
dmi.sys.vendor: MICRO-STAR INTERNATIONAL CO., LTD

Maxim Mikityanskiy (maxtram95) wrote :
Maxim Mikityanskiy (maxtram95) wrote :

Patch is attached.

Changed in linux (Ubuntu):
assignee: nobody → Maxim Mikityanskiy (maxtram95)
status: New → Fix Released
Changed in linux (Ubuntu):
status: Fix Released → New

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 949311

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete

apport information

tags: added: apport-collected precise staging
description: updated

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Maxim Mikityanskiy (maxtram95) wrote :

>This bug is missing log files that will aid in diagnosing the problem.

I think we don't need diagnosing the problem because I've already diagnosed it and created the patch that fixes it. We only need accepting this patch in Ubuntu upstream.

tags: added: patch
Changed in linux (Ubuntu):
importance: Undecided → Medium
Brad Figg (brad-figg) wrote :

@Maxim,

Have you submitted your patch to the upstream maintainer?

Brad Figg (brad-figg) wrote :

@Maxim,

Ignore my last comment.

Brad Figg (brad-figg) on 2012-03-28
Changed in linux (Ubuntu):
assignee: Maxim Mikityanskiy (maxtram95) → Brad Figg (brad-figg)
status: Confirmed → In Progress
Brad Figg (brad-figg) wrote :

I took the previous patch, modified it slightly and this is it. I have built test kernels with this patch and they can be found at:
http://people.canonical.com/~bradf/lp949311 .

Let me know if the work as desired.

Maxim Mikityanskiy (maxtram95) wrote :

I have installed your kernel 2.6.38-14-generic-pae, added kernel parameter "video.brightness_autoswitch_via_bios=1" to its command line and it works perfectly.

Brad Figg (brad-figg) wrote :

SRU Justification:

Impact: See the description for this bug
Fix: The original bug submitter submitted a patch (see patch attachment)
Testcase: See the description for this bug

Brad Figg (brad-figg) wrote :

@Maxim,

I've submitted the patch to the Ubuntu kernel mailing list. Once it is applied and a kernel produced, this bug will get spammed with a request to test the kernel in -proposed. You will need to do that and then indicate in this bug if that was successful or not.

Maxim Mikityanskiy (maxtram95) wrote :

Thank you, I will surely do that.

Tim Gardner (timg-tpi) on 2012-03-29
Changed in linux (Ubuntu Natty):
status: New → Fix Committed
Changed in linux (Ubuntu Oneiric):
status: New → Fix Committed
Changed in linux (Ubuntu Precise):
status: In Progress → Fix Committed

The attachment "This patch fixes the bug" of this bug report has been identified as being a patch. The ubuntu-reviewers team has been subscribed to the bug report so that they can review the patch. In the event that this is in fact not a patch you can resolve this situation by removing the tag 'patch' from the bug report and editing the attachment so that it is not flagged as a patch. Additionally, if you are member of the ubuntu-reviewers team please also unsubscribe the team from this bug report.

[This is an automated message performed by a Launchpad user owned by Brian Murray. Please contact him regarding any issues with the action taken in this bug report.]

Launchpad Janitor (janitor) wrote :
Download full text (5.2 KiB)

This bug was fixed in the package linux - 3.2.0-22.35

---------------
linux (3.2.0-22.35) precise; urgency=low

  [ Andy Whitcroft ]

  * Revert "SAUCE: hotkey quirks for various Zeptro Znote and Fujitsu Amilo
    laptops"
  * SAUCE: (no-up) elide some ioctl warnings which are known benign
    - LP: #972355

  [ Brad Figg ]

  * SAUCE (no-up) Provide a param for allowing the BIOS to handle changing
    the brightness on AC/battery status changes.
    - LP: #949311
  * SAUCE (drop after 3.4) Quirk for enabling backlight hotkeys on Samsung
    N150P
    - LP: #875893

  [ Colin Ian King ]

  * SAUCE: PCI: Allow pcie_aspm=force to work even when FADT indicates it
    is unsupported
    - LP: #962038

  [ Daniel Vetter ]

  * SAUCE: (drop after 3.5) drm/i915: reinstate GM45 TV detection fix
    - LP: #638939

  [ Kees Cook ]

  * SAUCE: SECCOMP: audit: always report seccomp violations
  * SAUCE: SECCOMP: adjust prctl constant

  [ Leann Ogasawara ]

  * [Config] Enable CONFIG_USBIP_CORE=m
    - LP: #900384
  * Rebase to v3.2.14
  * [Config] Updateconfigs after rebase to v3.2.14

  [ Stefan Bader ]

  * d-i: Fix module name for dm-raid45
    - LP: #969248

  [ Tim Gardner ]

  * SAUCE: remove __initdata from vesafb_fix
    - LP: #969309

  [ Upstream Kernel Changes ]

  * Revert "sched: tg->se->load should be initialised to tg->shares"
  * toshiba_acpi: make one-bit bitfields unsigned
    - LP: #810015
  * ACPI: EC: Add ec_get_handle()
    - LP: #810015
  * toshiba_acpi: Support alternate hotkey interfaces
    - LP: #810015
  * toshiba_acpi: Support additional hotkey scancodes
    - LP: #810015
  * toshiba_acpi: Refuse to load on machines with buggy INFO
    implementations
    - LP: #810015
  * ata_piix: Add Toshiba Satellite Pro A120 to the quirks list due to
    broken suspend functionality.
    - LP: #886850
  * sweep the floors and convert some .get_drvinfo routines to strlcpy
    - LP: #921793
  * be2net: init (vf)_if_handle/vf_pmac_id to handle failure scenarios
    - LP: #921793
  * be2net: stop checking the UE registers after an EEH error
    - LP: #921793
  * be2net: don't log more than one error on detecting EEH/UE errors
    - LP: #921793
  * be2net: stop issuing FW cmds if any cmd times out
    - LP: #921793
  * be2net: Fix TX queue create for Lancer
    - LP: #921793
  * be2net: add register dump feature for Lancer
    - LP: #921793
  * be2net: Add EEPROM dump feature for Lancer
    - LP: #921793
  * be2net: Fix VLAN promiscous mode for Lancer
    - LP: #921793
  * be2net: Use V1 query link status command for lancer
    - LP: #921793
  * be2net: Move to new SR-IOV implementation in Lancer
    - LP: #921793
  * be2net: Fix error recovery paths
    - LP: #921793
  * be2net: Add error handling for Lancer
    - LP: #921793
  * be2net: Use new hash key
    - LP: #921793
  * be2net: Fix non utilization of RX queues
    - LP: #921793
  * be2net: netpoll support
    - LP: #921793
  * be2net: update some counters to display via ethtool
    - LP: #921793
  * be2net: workaround to fix a bug in BE
    - LP: #921793
  * be2net: fix ethtool ringparam reporting
    - LP: #921793
  * be2net: refactor/cleanup vf configuration code
    - LP: #921793
...

Read more...

Changed in linux (Ubuntu Precise):
status: Fix Committed → Fix Released
Brad Figg (brad-figg) on 2012-04-07
tags: added: verification-needed-oneiric
Luis Henriques (henrix) wrote :

This bug is awaiting verification that the kernel for Oneiric in -proposed solves the problem ( 3.0.0-19.32). Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-oneiric' to 'verification-done-oneiric'.

If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

Maxim Mikityanskiy (maxtram95) wrote :

I've installed on another partition minimal Ubuntu Oneiric system with Linux 3.0.0-19-generic-pae from oneiric-proposed repository, added "video.brightness_autoswitch_via_bios=1" to kernel command line and it works as supposed.

tags: added: verification-done-oneiric
removed: verification-needed-oneiric
Launchpad Janitor (janitor) wrote :
Download full text (24.1 KiB)

This bug was fixed in the package linux - 3.0.0-19.33

---------------
linux (3.0.0-19.33) oneiric-proposed; urgency=low

  [Luis Henriques]

  * Release Tracking Bug
    - LP: #985736

  [ Luis Henriques ]

  * SAUCE: ite-cir: postpone ISR registration
    - LP: #984387

linux (3.0.0-19.32) oneiric-proposed; urgency=low

  [Luis Henriques]

  * Release Tracking Bug
    - LP: #974368

  [ Brad Figg ]

  * SAUCE (no-up) Provide a param for allowing the BIOS to handle changing
    the brightness on AC/battery status changes.
    - LP: #949311
  * SAUCE (no-up) Quirk for enabling backlight hotkeys on Samsung N150P
    - LP: #875893

  [ Daniel Vetter ]

  * SAUCE: (drop after 3.5) drm/i915: reinstate GM45 TV detection fix
    - LP: #638939

  [ Herton Ronaldo Krzesinski ]

  * SAUCE: (no-up) Reinstate missing hunk from nx emulation
    - LP: #972821

  [ Tim Gardner ]

  * SAUCE: ubuntu drivers: use UMH_WAIT_PROC consistently
    - LP: #963685
  * SAUCE: disable_nx should not be in __cpuinitdata section for X86_32
    - LP: #968233
  * SAUCE: (no-up) remove __initdata from vesafb_fix
    - LP: #969309

  [ Upstream Kernel Changes ]

  * usermodehelper: use UMH_WAIT_PROC consistently
    - LP: #963685
  * usermodehelper: introduce umh_complete(sub_info)
    - LP: #963685
  * usermodehelper: implement UMH_KILLABLE
    - LP: #963685
  * usermodehelper: kill umh_wait, renumber UMH_* constants
    - LP: #963685
  * usermodehelper: ____call_usermodehelper() doesn't need do_exit()
    - LP: #963685
  * kmod: introduce call_modprobe() helper
    - LP: #963685
  * kmod: make __request_module() killable
    - LP: #963685
  * x86, tsc: Fix SMI induced variation in quick_pit_calibrate()
    - LP: #965586
  * ata_piix: Add Toshiba Satellite Pro A120 to the quirks list due to
    broken suspend functionality.
    - LP: #886850
  * ACPICA: Fix regression in FADT revision checks
    - LP: #883441
  * ASPM: Fix pcie devices with non-pcie children
    - LP: #961482
  * USB: option: Add MediaTek MT6276M modem&app interfaces
    - LP: #971808
  * USB: option driver: adding support for Telit CC864-SINGLE, CC864-DUAL
    and DE910-DUAL modems
    - LP: #971808
  * USB: option: make interface blacklist work again
    - LP: #971808
  * USB: option: add ZTE MF820D
    - LP: #971808
  * USB: ftdi_sio: fix problem when the manufacture is a NULL string
    - LP: #971808
  * USB: ftdi_sio: add support for BeagleBone rev A5+
    - LP: #971808
  * USB: Microchip VID mislabeled as Hornby VID in ftdi_sio.
    - LP: #971808
  * USB: ftdi_sio: new PID: Distortec JTAG-lock-pick
    - LP: #971808
  * USB: ftdi_sio: add support for FT-X series devices
    - LP: #971808
  * USB: ftdi_sio: new PID: LUMEL PD12
    - LP: #971808
  * powerpc/usb: fix bug of kernel hang when initializing usb
    - LP: #971808
  * usb: musb: Reselect index reg in interrupt context
    - LP: #971808
  * usb: gadgetfs: return number of bytes on ep0 read request
    - LP: #971808
  * USB: gadget: Make g_hid device class conform to spec.
    - LP: #971808
  * futex: Cover all PI opcodes with cmpxchg enabled check
    - LP: #971808
  * sysfs: Fix memory leak in sysfs_sd_setsecdata().
    - LP: #971808
  * tty: ...

Changed in linux (Ubuntu Oneiric):
status: Fix Committed → Fix Released
Herton R. Krzesinski (herton) wrote :

This bug is awaiting verification that the kernel for Natty in -proposed solves the problem (2.6.38-15.59). Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-natty' to 'verification-done-natty'.

If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-natty
Maxim Mikityanskiy (maxtram95) wrote :

I've just tested kernel from natty-proposed, and it works as desired.

tags: added: verification-done-natty
removed: verification-needed-natty
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 2.6.38-15.59

---------------
linux (2.6.38-15.59) natty-proposed; urgency=low

  [Luis Henriques]

  * Release Tracking Bug
    - LP: #987281

  [ Brad Figg ]

  * SAUCE (no-up) Provide a param for allowing the BIOS to handle changing
    the brightness on AC/battery status changes.
    - LP: #949311

  [ Tim Gardner ]

  * SAUCE: ubuntu drivers: use UMH_WAIT_PROC consistently
    - LP: #963685
  * SAUCE: disable_nx should not be in __cpuinitdata section for X86_32
    - LP: #968233
  * SAUCE: (no-up) remove __initdata from vesafb_fix
    - LP: #969309

  [ Upstream Kernel Changes ]

  * usermodehelper: use UMH_WAIT_PROC consistently
    - LP: #963685
  * usermodehelper: introduce umh_complete(sub_info)
    - LP: #963685
  * usermodehelper: implement UMH_KILLABLE
    - LP: #963685
  * usermodehelper: kill umh_wait, renumber UMH_* constants
    - LP: #963685
  * usermodehelper: ____call_usermodehelper() doesn't need do_exit()
    - LP: #963685
  * kmod: introduce call_modprobe() helper
    - LP: #963685
  * kmod: make __request_module() killable
    - LP: #963685
  * drm/i915: Fixes distorted external screen image on HP 2730p
    - LP: #796030
  * ext4: fix undefined behavior in ext4_fill_flex_info()
    - LP: #984757
    - CVE-2012-2100
  * jbd2: clear BH_Delay & BH_Unwritten in journal_unmap_buffer
    - LP: #929781
    - CVE-2011-4086
  * cifs: fix dentry refcount leak when opening a FIFO on lookup
    - LP: #947997
    - CVE-2012-1090
 -- Luis Henriques <email address hidden> Mon, 23 Apr 2012 14:02:53 +0100

Changed in linux (Ubuntu Natty):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers