aboutsummaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2009-09-17MIPS: Octeon: False positive timeoutRoel Kluin
If we reach the test just below the loop with a `timeout' value of 0, this does not mean that the timeout caused the loop to end, but rather the `smi_rd.s.pending', in the last iteration. If timeout caused the loop to end, then `timeout' is -1, not 0. Since this can occur only in the last iteration, it is not very likely to be a problem. By changing the post- to prefix decrement we ensure that a timeout of 0 does mean it timed out. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Acked-by: David Daney <ddaney@caviumnetworks.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2009-09-17Merge branch 'for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: (53 commits) m68knommu: Make PAGE_SIZE available to assembly files. m68knommu: fix ColdFire definition of CLOCK_TICK_RATE m68knommu: set multi-function pins for ethernet when enabled m68knommu: remove special interrupt handling code for ne2k support m68knommu: relax IO_SPACE_LIMIT setting m68knommu: remove ColdFire direct interrupt register access m68knommu: create a speciailized ColdFire 5272 interrupt controller m68knommu: add support for second interrupt controller of ColdFire 5249 m68knommu: clean up old ColdFire timer irq setup m68knommu: map ColdFire interrupts to correct masking bits m68knommu: clean up ColdFire 532x CPU timer setup m68knommu: simplify ColdFire "timers" clock initialization m68knommu: support code to mask external interrupts on old ColdFire CPU's m68knommu: merge old ColdFire interrupt controller masking macros m68knommu: remove duplicate ColdFire mcf_autovector() code m68knommu: move ColdFire INTC definitions to new include file m68knommu: mask off all interrupts in ColdFire intc-simr controller m68knommu: remove timer device interrupt setup for ColdFire 532x m68knommu: remove interrupt masking from ColdFire pit timer m68knommu: remove unecessary interrupt level setting in ColdFire 520x setup ...
2009-09-17Merge branch 'hwmon-for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging: hwmon: (lm85) Don't bind to Winbond/Nuvoton WPCD377I hwmon: (pcf8591) Documentation clean-ups hwmon: Clearly mark ACPI drivers as such hwmon: Use resource_size hwmon: Include <linux/io.h> instead of <asm/io.h> hwmon: (tmp421) Add documentation hwmon: Add driver for Texas Instruments TMP421/422/423 sensor chips hwmon-vid: Ignore 6th VID pin of AMD family 0Fh processors hwmon: (asus_atk0110) Add maintainer information hwmon: (abituguru3) Support multiple DMI strings per chip ID
2009-09-17Merge branch 'for-upstream' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/dvrabel/uwb * 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/dvrabel/uwb: uwb: avoid radio controller reset loops uwb: stop uwbd thread if rc->start() fails uwb: handle radio controller events with out-of-range IDs correctly
2009-09-16Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: Driver Core: devtmpfs - kernel-maintained tmpfs-based /dev debugfs: Modify default debugfs directory for debugging pktcdvd. debugfs: Modified default dir of debugfs for debugging UHCI. debugfs: Change debugfs directory of IWMC3200 debugfs: Change debuhgfs directory of trace-events-sample.h debugfs: Fix mount directory of debugfs by default in events.txt hpilo: add poll f_op hpilo: add interrupt handler hpilo: staging for interrupt handling driver core: platform_device_add_data(): use kmemdup() Driver core: Add support for compatibility classes uio: add generic driver for PCI 2.3 devices driver-core: move dma-coherent.c from kernel to driver/base mem_class: fix bug mem_class: use minor as index instead of searching the array driver model: constify attribute groups UIO: remove 'default n' from Kconfig Driver core: Add accessor for device platform data Driver core: move dev_get/set_drvdata to drivers/base/dd.c Driver core: add new device to bus's list before probing
2009-09-16Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (641 commits) Staging: remove sxg driver Staging: remove heci driver Staging: remove at76_usb wireless driver. Staging: rspiusb: remove the driver Staging: meilhaus: remove the drivers Staging: remove me4000 driver. Staging: line6: ffzb returns an unsigned integer Staging: line6: pod.c: style cleanups Staging: iio: introduce missing kfree Staging: dream: introduce missing kfree Staging: comedi: addi-data: NULL dereference of amcc in v_pci_card_list_init() Staging: vt665x: fix built-in compiling Staging: rt3090: enable NATIVE_WPA_SUPPLICANT_SUPPORT option Staging: rt3090: port changes in WPA_MIX_PAIR_CIPHER to rt3090 Staging: rt3090: rename device from raX to wlanX Staging: rt3090: remove possible conflict with rt2860 Staging: rt2860/rt2870/rt3070/rt3090: fix compiler warning on x86_64 Staging: rt2860: add new device ids Staging: rt3090: add device id 1462:891a Staging: asus_oled: Cleaned up checkpatch issues. ...
2009-09-16Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pcmcia-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pcmcia-2.6: pcmcia: document return value of pcmcia_loop_config pcmcia: dtl1_cs: fix pcmcia_loop_config logic pcmcia: drop non-existant includes pcmcia: disable prefetch/burst for OZ6933 pcmcia: fix incorrect argument order to list_add_tail() pcmcia: drivers/pcmcia/pcmcia_resource.c: Remove unnecessary semicolons pcmcia: Use phys_addr_t for physical addresses pcmcia: drivers/pcmcia: Make static
2009-09-16Merge branch 'linux-next' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (75 commits) PCI hotplug: clean up acpi_run_hpp() PCI hotplug: acpiphp: use generic pci_configure_slot() PCI hotplug: shpchp: use generic pci_configure_slot() PCI hotplug: pciehp: use generic pci_configure_slot() PCI hotplug: add pci_configure_slot() PCI hotplug: clean up acpi_get_hp_params_from_firmware() interface PCI hotplug: acpiphp: don't cache hotplug_params in acpiphp_bridge PCI hotplug: acpiphp: remove superfluous _HPP/_HPX evaluation PCI: Clear saved_state after the state has been restored PCI PM: Return error codes from pci_pm_resume() PCI: use dev_printk in quirk messages PCI / PCIe portdrv: Fix pcie_portdrv_slot_reset() PCI Hotplug: convert acpi_pci_detect_ejectable() to take an acpi_handle PCI Hotplug: acpiphp: find bridges the easy way PCI: pcie portdrv: remove unused variable PCI / ACPI PM: Propagate wake-up enable for devices w/o ACPI support ACPI PM: Replace wakeup.prepared with reference counter PCI PM: Introduce device flag wakeup_prepared PCI / ACPI PM: Rework some debug messages PCI PM: Simplify PCI wake-up code ... Fixed up conflict in arch/powerpc/kernel/pci_64.c due to OF device tree scanning having been moved and merged for the 32- and 64-bit cases. The 'needs_freset' initialization added in 6e19314cc ("PCI/powerpc: support PCIe fundamental reset") is now in arch/powerpc/kernel/pci_of_scan.c.
2009-09-16m68knommu: remove ColdFire direct interrupt register accessGreg Ungerer
Now that the ColdFire 5272 has full interrupt controller functionality we can remove all the interrupt masking and acking code from the FEC ethernet driver. Signed-off-by: Greg Ungerer <gerg@uclinux.org>
2009-09-15Staging: remove sxg driverGreg Kroah-Hartman
Unfortunatly, the upstream company has abandonded development of this driver. So it's best to just remove the driver from the tree. Cc: Christopher Harrer <charrer@alacritech.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: remove heci driverGreg Kroah-Hartman
Intel has officially abandoned this project and does not want to maintian it or have it included in the main kernel tree, as no one should use the code, it's not needed anymore. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: remove at76_usb wireless driver.Greg Kroah-Hartman
There is already an in-kernel driver for this hardware (since 2.6.30), at76c50x-usb, and it supports all of the same devices. So this driver can now be deleted. Acked-by: Kalle Valo <kalle.valo@iki.fi> Cc: linux-wireless <linux-wireless@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rspiusb: remove the driverGreg Kroah-Hartman
No one cares, it's a custom userspace interface, and the code hasn't built in a long time. So remove it. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: meilhaus: remove the driversGreg Kroah-Hartman
The comedi drivers should be used instead, no need to have these in here as well. Cc: David Kiliani <mail@davidkiliani.de> Cc: Meilhaus Support <support@meilhaus.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: remove me4000 driver.Greg Kroah-Hartman
The comedi drivers should be used instead, no need to have this driver in the tree duplicating that one. Cc: Wolfgang Beiter <w.beiter@aon.at> Cc: Guenter Gebhardt <g.gebhardt@meilhaus.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: line6: ffzb returns an unsigned integerFrederik Deweerdt
find_first_zero_bit returns a positive value, use it accordingly. Signed-off-by: Frederik Deweerdt <frederik.deweerdt@xprog.eu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: line6: pod.c: style cleanupsFrederik Deweerdt
Line6 pod.c: Minor style cleanups Signed-off-by: Frederik Deweerdt <frederik.deweerdt@xprog.eu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: iio: introduce missing kfreeJulia Lawall
Error handling code following a kmalloc or kzalloc should free the allocated data. The semantic match that finds the problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @r exists@ local idexpression x; statement S; expression E; identifier f,f1,l; position p1,p2; expression *ptr != NULL; @@ x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...); ... if (x == NULL) S <... when != x when != if (...) { <+...x...+> } ( x->f1 = E | (x->f1 == NULL || ...) | f(...,x->f1,...) ) ...> ( return \(0\|<+...x...+>\|ptr\); | return@p2 ...; ) @script:python@ p1 << r.p1; p2 << r.p2; @@ print "* file: %s kmalloc %s return %s" % (p1[0].file,p1[0].line,p2[0].line) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk>
2009-09-15Staging: dream: introduce missing kfreeJulia Lawall
Error handling code following a kmalloc or kzalloc should free the allocated data. The semantic match that finds the problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @r exists@ local idexpression x; statement S; expression E; identifier f,f1,l; position p1,p2; expression *ptr != NULL; @@ x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...); ... if (x == NULL) S <... when != x when != if (...) { <+...x...+> } ( x->f1 = E | (x->f1 == NULL || ...) | f(...,x->f1,...) ) ...> ( return \(0\|<+...x...+>\|ptr\); | return@p2 ...; ) @script:python@ p1 << r.p1; p2 << r.p2; @@ print "* file: %s kmalloc %s return %s" % (p1[0].file,p1[0].line,p2[0].line) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk>
2009-09-15Staging: comedi: addi-data: NULL dereference of amcc in v_pci_card_list_init()Roel Kluin
amcc allocation may fail, prevent a NULL dereference. allocation may fail, prevent a dereference. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: vt665x: fix built-in compilingAlexander Beregalov
Fix this build error: undefined reference to "__this_module" Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rt3090: enable NATIVE_WPA_SUPPLICANT_SUPPORT optionBartlomiej Zolnierkiewicz
Similarly as it has been done in other in-kernel Ralink drivers and in openSUSE's rt3090sta package. Cc: Axel Koellhofer <rain_maker@root-forum.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rt3090: port changes in WPA_MIX_PAIR_CIPHER to rt3090Axel K
This patch ports a change recently applied to rt2860/rt2870 in order to change handling of WPA1/WPA2 mixed mode to rt3090. Signed-off-by: Axel Koellhofer <rain_maker@root-forum.org> Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rt3090: rename device from raX to wlanXAxel K
This patch sets "wlan" as the default suffix for naming the device, a change which has also been previously applied to rt2860/rt2870 in staging. Signed-off-by: Axel Koellhofer <rain_maker@root-forum.org> Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rt3090: remove possible conflict with rt2860Axel K
Both drivers (rt2860 and rt3090) register themselves as "rt2860" on loading the module. In the very rare case of somebody having two cards in his machine, one using rt3090 and the other one using the rt2860 driver, loading both modules would be impossible, the second one will not be loaded as the kernel will tell you that the driver is already registered. This was also present with rt2870/rt3070 (with both driver registering as "rt2870"), but the code has been merged to one driver recently. The follwoing patch fixes this potential problem until merging of rt2860/rt3090 code to a single driver. Signed-off-by: Axel Koellhofer <rain_maker@root-forum.org> Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rt2860/rt2870/rt3070/rt3090: fix compiler warning on x86_64Axel K
When compiling rt2860/rt2870/rt3070 or rt3090 on x86_64, the following warning is displayed: drivers/staging/rt3090/rt_linux.c: In function 'duplicate_pkt': drivers/staging/rt3090/rt_linux.c:531: warning: passing argument 1 of 'memmove' makes pointer from integer without a cast include2/asm/string_64.h:58: note: expected 'void *' but argument is of type 'sk_buff_data_t' drivers/staging/rt3090/rt_linux.c:533: warning: passing argument 1 of 'memmove' makes pointer from integer without a cast include2/asm/string_64.h:58: note: expected 'void *' but argument is of type 'sk_buff_data_t' The following patch fixes this warning. Credits go to Helmut Schaa <hschaa@suse.de> for his kind advice/help on this patch. Signed-off-by: Axel Koellhofer <rain_maker@root-forum.org> Cc: Helmut Schaa <hschaa@suse.de> Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rt2860: add new device idsAxel K
This patch adds new device IDs to ralink rt2860 driver in linux staging. The device IDs were retrieved from the latest vendor release (version 2.1.2.0). Signed-off-by: Axel Koellhofer <rain_maker@root-forum.org> Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rt3090: add device id 1462:891aAxel K
This patch adds a new device ID (1462:819a) to ralink rt3090 driver in linux staging. The device ID was retrieved from the latest vendor release (version 2.2.0.0). Signed-off-by: Axel Koellhofer <rain_maker@root-forum.org> Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: asus_oled: Cleaned up checkpatch issues.Kevin A. Granade
Signed-off-by: Kevin A. Granade <kevin.granade@gmail.com> Cc: Belisko Marek <marek.belisko@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rt2860: fix possible NULL dereferencesRoel Kluin
Allocations may fail, prevent NULL dereferences. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rtl8192e: Drop unnecessary NULL testJulia Lawall
The result of container_of should not be NULL. In particular, in this case the argument to the enclosing function has passed though INIT_WORK, which dereferences it, implying that its container cannot be NULL. A simplified version of the semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @@ identifier fn,work,x,fld; type T; expression E1,E2; statement S; @@ static fn(struct work_struct *work) { ... when != work = E1 x = container_of(work,T,fld) ... when != x = E2 - if (x == NULL) S ... } // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: vt665x: rename the module binaryGreg Kroah-Hartman
So it doesn't conflict with a mainline kernel driver currently under development. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: cowloop: remove kernel version checksGreg Kroah-Hartman
Now that the code is in the kernel tree, remove the unneeded version checks. Cc: "H.J. Thomassen" <hjt@ATComputing.nl> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: add cowloop to the buildGreg Kroah-Hartman
Now that the code can build, let's add it to the build system. Cc: "H.J. Thomassen" <hjt@ATComputing.nl> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: cowloop: add TODO fileGreg Kroah-Hartman
Add a TODO file with a few things that needs to be fixed up. Cc: "H.J. Thomassen" <hjt@ATComputing.nl> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: get cowloop to build properlyGreg Kroah-Hartman
There has been some block api changes since the last release of the cowloop code. This patch updates the code to properly build. Cc: "H.J. Thomassen" <hjt@ATComputing.nl> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: add cowloop driverH.J. Thomassen
Cowloop is a "copy-on-write" pseudo block driver. It can be stacked on top of a "real" block driver, and catches all write operations on their way from the file systems layer above to the real driver below, effectively shielding the lower driver from those write accesses. The requests are then diverted to an ordinary file, located somewhere else (configurable). Later read requests are checked to see whether they can be serviced by the "real" block driver below, or must be pulled in from the diverted location. More information is on the project's website http://www.ATComputing.nl/cowloop/ From: "H.J. Thomassen" <hjt@ATComputing.nl> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rtl8192e: fix timeouts on firmware downloadGreg Kroah-Hartman
We need to actually wait a specific ammount of time, not just hope that a set number of loops will be long enough. Based on a conversation with Ralink, and a proposed patch for their older kernel driver. Cc: david woo <xinhua_wu@realsil.com.cn> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rtl8192e: fix for stack bugGreg Kroah-Hartman
This should be a fix for the lockup bug when attaching to an access point. Patch came from a diff from RealTek. Hopefully it resolves the issue. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rtl8192e: remove annoying printk()Greg Kroah-Hartman
This message doesn't need to be constantly sent to the syslog, it's nothing but annoying gibberish. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rtl8192e: remove unneeded ieee80211 filesGreg Kroah-Hartman
These files are not even built or used, so just remove them. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rtl8192e: coding style cleanups on r819xE_firmware.cGreg Kroah-Hartman
This cleans up everything but a few 80 column issues in the r819xE_firmware.c file. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rtl8192e: remove another firmware header file not being usedGreg Kroah-Hartman
The built-in firmware images are never used, the firmware files are downloaded to the device through the standard firmware interface. This removes the firmware header file as it's not ever used. It also removes a .h file as it is not needed. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rtl8192e: remove firmware header file not being usedGreg Kroah-Hartman
This removes the r819xP firmware file that is never used. The size of the built code after this patch is identical to before it. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rtl8192e: remove kernel version checksGreg Kroah-Hartman
This removes a lot of code that is never built in to the driver. The size of the built code after this patch is identical to before it. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rtl8192e: remove #if 0 sectionsGreg Kroah-Hartman
This removes a lot of code that is never built in to the driver. The size of the built code after this patch is identical to before it. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rtl8192e: compile fixesJeff Mahoney
This patch removes -fhard-float and the software float helpers. In-kernel floating point is not allowed. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rtl8192e: remove unused functionsGreg Kroah-Hartman
This removes a number of unused functions. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: rtl8192e: fix lots of sparse warningsGreg Kroah-Hartman
This removes a number of static and extern warnings that sparse complains about. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-09-15Staging: add Realtek 8192 PCI wireless driverGreg Kroah-Hartman
This wireless driver should work for the Realtek 8192 PCI devices. It comes directly from Realtek and has been tested to work on at least one laptop in the wild. Cc: Anthony Wong <awong1@novell.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>