summaryrefslogtreecommitdiffstats
path: root/drivers
Commit message (Collapse)AuthorAgeFilesLines
* hwmon: (w83781d) Add individual alarm and beep filesJean Delvare2007-10-091-6/+162
| | | | | | | | | | The upcoming libsensors 3 needs these individual alarm and beep files. For the W83781D, this is quirky because this chip has a single alarm bit for both temp2 and temp3. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans de Goede <j.w.r.degoede@hhs.nl> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: VRM is not read from registersJean Delvare2007-10-0911-11/+11
| | | | | | | | | | The VRM value is not read from chip registers, so there's no need to update the device data cache before exporting the VRM value to user-space. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans de Goede <j.w.r.degoede@hhs.nl> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (thmc50) Fix a debug messageJean Delvare2007-10-091-6/+6
| | | | | | | | | type_name was used before being set. See why I don't like play-it-safe variable initializations: they prevent the compiler from warning you about such mistakes. So fix that as well. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (thmc50) Don't create temp3 if not enabledJean Delvare2007-10-091-9/+9
| | | | | | Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (lm87) Add individual alarm filesJean Delvare2007-10-091-6/+61
| | | | | | | | | Add individual alarm files to the lm87 driver. The new libsensors needs this. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans de Goede <j.w.r.degoede@hhs.nl> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (lm87) Fix a division by zeroJean Delvare2007-10-091-1/+1
| | | | | | | | | Missing parentheses in the definition of FAN_FROM_REG cause a division by zero for a specific register value. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans de Goede <j.w.r.degoede@hhs.nl> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (lm78) Add individual alarm filesJean Delvare2007-10-091-0/+30
| | | | | | | | | Add individual alarm files to the lm78 driver, these are needed by the next version of libsensors. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans de Goede <j.w.r.degoede@hhs.nl> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (lm90) Export temperature offset valuesJean Delvare2007-10-091-4/+25
| | | | | | | | | | Now that we have standard sysfs names to export temperature offset values, add this feature to the lm90 driver. All supported chips except the MAX6657, MAX6658 and MAX6659 support it. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans de Goede <j.w.r.degoede@hhs.nl> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: Kconfig dependency cleanupsJean Delvare2007-10-091-6/+6
| | | | | | | | | | | | * Drop HWMON from the dependency list of ABITUGURU3 and LM93: this is now handled at menu level. * Make the Abit, Asus and FSC chip drivers depend on X86. These are custom chips which can only be found on their respective manufacturer's systems, and these manufacturers only do x86 hardware AFAIK. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans de Goede <j.w.r.degoede@hhs.nl> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (adm1021) individual alarm filesKrzysztof Helt2007-10-091-0/+19
| | | | | | | | | This patch converts the driver to individual alarm files as required by the new lmsensors library. Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (adm1021) dynamic sysfs callbacks conversionKrzysztof Helt2007-10-091-88/+106
| | | | | | | | This is conversion of the driver to the dynamic sysfs callbacks. Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (thmc50) Fix alarms clearingKrzysztof Helt2007-10-091-4/+4
| | | | | | | | | This patch make use the interrupt status register instead of the interrupt status mirror register. Reading of the mirror register does not clear alarms. Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (it87) Add support for fan4 and fan5Jean Delvare2007-10-091-15/+39
| | | | | | | | | Add support for the IT8716F and IT8718F fan4 and fan5. The late revisions of the IT8712F have these too but support is harder to add and nobody asked for it yet, so I didn't include it. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (w83791d) new sysfs beep/alarm methodologyCharles Spirakis2007-10-091-4/+118
| | | | | | | | Add new sysfs alarm methodology to w83791d driver Signed-off-by: Charles Spirakis <bezaur@gmail.com> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (sis5595) re-use s_bridge->revisionAuke Kok2007-10-091-1/+1
| | | | | | Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (lm93) Use standard names for vid filesJean Delvare2007-10-091-4/+4
| | | | | | | | | The lm93 driver doesn't follow the standard naming convention for its vid files. Fix this so that libsensors will pick them. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans J. Koch <hjk@linutronix.de> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (lm85) Let the user set the fan min limit to 0Jean Delvare2007-10-091-2/+7
| | | | | | | | | | | Trying to set the fan min limit to 0 currently writes 0 to the register, which is an invalid value. It's read back as -1 and the alarm flag is raised. Instead we should write 0xffff (maximum value), which reads back as 0 and no alarm flag is raised. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Juerg Haefliger <juergh at gmail.com> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (lm85) Clean up the handling of additional resolution bitsJean Delvare2007-10-091-20/+12
| | | | | | | | | | The way the lm85 driver currently handles the additional resolution bits some chips have for the voltage and temperature measurements is quite complex. This is my attempt to make it simpler. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Juerg Haefliger <juergh at gmail.com> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (lm85) Add individual alarm filesJean Delvare2007-10-091-17/+43
| | | | | | | | | | The future libsensors needs these individual alarm and fault files. Also delete old and unused alarm defines. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Juerg Haefliger <juergh at gmail.com> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (lm85) Export in5, in6 and in7 voltage channelsJean Delvare2007-10-091-11/+37
| | | | | | | | | | | The SMSC EMC6D100 supports 3 additional voltage channels. The lm85 driver reads the register values for these, but doesn't create the corresponding sysfs files, so the user can't read the values nor write the limits. Create the missing sysfs files. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Juerg Haefliger <juergh at gmail.com> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (lm85) Use dynamic sysfs callbacksJean Delvare2007-10-091-307/+244
| | | | | | | | | | | | | | | | | | | | This lets us get rid of macro-generated functions and shrinks the driver size by about 10%. I used a new style suggested by Mark M. Hoffman to retrieve the channel number. Instead of: struct sensor_device_attribute *sda = to_sensor_dev_attr(attr); int nr = sda->index; I do: int nr = to_sensor_dev_attr(attr)->index; This looks better, and even allows the compiler to do some minor optimizations. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: Convert from class_device to deviceTony Jones2007-10-0960-307/+306
| | | | | | | | | Convert from class_device to device for hwmon_device_register/unregister Signed-off-by: Tony Jones <tonyj@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (coretemp) Remove bogus __cpuinitdata etc cleanupSatyam Sharma2007-10-091-3/+1
| | | | | | | | | | | | | | The CPU hotplug notifier_block coretemp_cpu_notifier is already defined inside an #ifdef HOTPLUG_CPU, therefore marking it as __cpuinitdata is quite a pointless thing to do. Also, remove duplicate prototype of function coretemp_update_device() at the top of this file (another one already exists barely 10 lines above this one :-) Signed-off-by: Satyam Sharma <satyam@infradead.org> Acked-by: Rudolf Marek <r.marek@assembler.cz> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: Add f75375s driverRiku Voipio2007-10-093-0/+702
| | | | | | | Add support for Fintek F75375S/SP and F75373. Signed-off-by: Riku Voipio <riku.voipio@movial.fi> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (smsc47m1) No confusing debugging messagesJean Delvare2007-10-091-2/+2
| | | | | | | | It's confusing to display debugging messages for fan3 and pwm3 for chips which don't have them. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (lm70) Add a name attributeJean Delvare2007-10-091-2/+13
| | | | | | | | | | | | | | Add a name attribute to the lm70 devices. This is required for libsensors to recognize them. Also drop the "+" before the temperature value, even though it did not cause problems to libsensors, other hardware monitoring drivers don't print it, so it's more consistent that way. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans de Goede <j.w.r.degoede@hhs.nl> Acked-by: Kaiwan <kaiwan@designergraphix.com> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: Don't export thermistor betaJean Delvare2007-10-092-16/+19
| | | | | | | | | Deprecate the use of thermistor beta values as thermal sensor types. No driver supports changing the beta value anyway. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans de Goede <j.w.r.degoede@hhs.nl> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: Allow writing of negative trigger temperaturesChristian Hohnstaedt2007-10-0911-20/+20
| | | | | | | | | - replace differing temperature variable types by long - use strtol() instead of strtoul() for conversion Signed-off-by: Christian Hohnstaedt <chohnstaedt@innominate.com> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (thmc50) add individual alarm & fault filesKrzysztof Helt2007-10-091-0/+28
| | | | | | | | | | This patch adds individual alarm and fault files to the thmc50 driver. These sysfs entries are required for a new libsensors library. Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: add support for adt7470Darrick J. Wong2007-10-093-0/+1061
| | | | | | | | New driver to expose temperature and fan controls attached to Analog Devices ADT7470 hwmon chips. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (f71882fg) trivial whitespace cleanupMark M. Hoffman2007-10-091-7/+7
| | | | Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: add support for Fintek F71882FG and F71883FGHans de Goede2007-10-093-0/+961
| | | | | | | | | | | | | | | | | | This is the second version of a new driver for the hardware monitoring features of the Fintek F71882FG and F71883FG Super-I/O chips. This version has several small fixes for flaws discovered during the review of the first version. This version of the driver does not support the pwm part of these chips (yet). I'll first design a sysfs api for this and post that for discussion, and then implement pwm support as an incremental patch over this one. This driver supports all sensors of this chip, except for the vid inputs. The vid inputs are somewhat documented in the datasheet, but I know nothing about vid/vrm stuff. Help with this would be much appreciated. Signed-off-by: Hans de Goede <j.w.r.degoede@hhs.nl> Acked-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (f71805f) List the F71806F/FG as supportedJean Delvare2007-10-092-4/+7
| | | | | | | | | | | The Fintek F71806F/FG is compatible with the F71872F/FG, so it is already supported by the f71805f hardware monitoring driver. In fact, both chips have the same chip ID, so the driver can't even differentiate between them. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans de Goede <j.w.r.degoede@hhs.nl> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (w83792d) Add individual alarm filesGong Jun2007-10-091-1/+48
| | | | | | | | w83792d: add individual alarm files for the new libsensors. Signed-off-by: Gong Jun <jgong@winbond.com> Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: adm1021 clean upsKrzysztof Helt2007-10-091-104/+122
| | | | | | | | | | This patch provides some coding standard cleanups and general code improvements (more debug info, signed values for temperatures, changed names of ADM1023 regs, removed read/write_value functions). Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* sata_mv: correct S/G table limitsJeff Garzik2007-10-091-3/+6
| | | | | | | | | | | | The recent mv_fill_sg() rewrite, to fix a data corruption problem related to IOMMU virtual merging, forgot to account for the potentially-increased size of the scatter/gather table after its run. Additionally, the DMA boundary is reduced from 0xffffffff to 0xffff to more closely match the needs of mv_fill_sg(). Signed-off-by: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Correct Makefile rule for generating custom keymapMaarten Bressers2007-10-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | When building a custom keymap, after setting GENERATE_KEYMAP := 1 in drivers/char/Makefile, the kernel build fails like this: CC drivers/char/vt.o make[2]: *** No rule to make target `drivers/char/%.map', needed by `drivers/char/defkeymap.c'. Stop. make[1]: *** [drivers/char] Error 2 make: *** [drivers] Error 2 This was caused by commit af8b128719f5248e542036ea994610a29d0642a6, which deleted a necessary colon from the Makefile rule that generates the keymap, since that rule contains both a target and a target-pattern. The following patch puts the colon back: Signed-off-by: Maarten Bressers <mbres@gentoo.org> Cc: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* ISDN: Fix data access out of array boundsKarsten Keil2007-10-081-2/+3
| | | | | | | | Fix against access random data bytes outside the dev->chanmap array. Thanks to Oliver Neukum for pointing me to this issue. Signed-off-by: Karsten Keil <kkeil@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Driver core: fix SYSF_DEPRECATED breakage for nested classdevsDmitry Torokhov2007-10-071-3/+7
| | | | | | | | | | | We should only reparent to a class former class devices that form the base of class hierarchy. Nested devices should still grow from their real parents. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Tested-by: Andrey Borzenkov <arvidjaar@mail.ru> Tested-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge branch 'for-linus' of ↵Linus Torvalds2007-10-071-1/+2
|\ | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: firewire: point to migration document
| * firewire: point to migration documentStefan Richter2007-10-071-1/+2
| | | | | | | | Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
* | Add manufacturer and card id of teltonica pcmcia modemsAttila Kinali2007-10-071-0/+1
| | | | | | | | | | | | | | | | | | Add the manufacturer and card id of teltonica pcmcia modems to serial_cs.c Signed-off-by: Attila Kinali <attila@kinali.ch> Acked-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | VT_WAITACTIVE: Avoid returning EINTR when not necessaryLinus Torvalds2007-10-071-2/+2
|/ | | | | | | | | | | | | | | | | | | We should generally prefer to return ERESTARTNOHAND rather than EINTR, so that processes with unhandled signals that get ignored don't return EINTR. This can help with X startup issues: Fatal server error: xf86OpenConsole: VT_WAITACTIVE failed: Interrupted system call although the real fix is having the X server always retry EINTR regardless (since EINTR does happen for signals that have handlers installed). Keithp has a patch for that. Regardless, ERESTARTNOHAND is the correct thing to use. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Revert "intel_agp: fix stolen mem range on G33"Kyle McMartin2007-10-061-5/+0
| | | | | | | | | | | | This reverts commit f443675affe3f16dd428e46f0f7fd3f4d703eeab, which breaks horribly if you aren't running an unreleased xf86-video-intel driver out of git. Signed-off-by: Kyle McMartin <kyle@mcmartin.ca> Cc: Dave Airlie <airlied@linux.ie> Cc: Zhenyu Wang <zhenyu.z.wang@intel.com> Acked-by: Keith Packard <keithp@keithp.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Fix non-terminated PCI match table in PowerMac IDEBenjamin Herrenschmidt2007-10-061-0/+1
| | | | | | | | | | | | | | | | | | The PCI device table in the powermac IDE driver isn't properly terminated. Depending on how your kernel is linked and other random factors, you can end up with this driver matched against any other PCI device in your system, possibly crashing at boot. Thanks to Heikki for tracking this down with me, the bug have been there for some time, though it rarely hurts due to luck. In this case, the switch from .22 to .23-rc9 is causing it to show up due to differences in the resulting layout of .data I suppose. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <pmac@au1.ibm.com> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Cc: Heikki Lindholm <holindho@cs.helsinki.fi> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* r8169: revert part of 6dccd16b7c2703e8bbf8bca62b5cf248332afbe2Francois Romieu2007-10-051-3/+13
| | | | | | | | | | | | | | | | The 8169/8110SC currently announces itself as: [...] eth0: RTL8169sc/8110sc at 0x........, ..:..:..:..:..:.., XID 18000000 IRQ .. ^^^^^^^^ It uses RTL_GIGA_MAC_VER_05 and this part of the changeset can cut its performance by a factor of 2~2.5 as reported by Timo. (the driver includes code just before the hunk to write the ChipCmd register when mac_version == RTL_GIGA_MAC_VER_0[1-4]) Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Cc: Timo Jantunen <jeti@welho.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [SCSI] megaraid_old: fix READ_CAPACITYFUJITA Tomonori2007-10-041-0/+8
| | | | | | | | | | | The bulk transfer mode got eleminated by 3f6270ef76f2ce5c134615a470685d6c2a66c07e. Unfortunately, this mode is required for READ_CAPACITY commands on certain cards, so put it back again. This fixes a boot failure regression reported by Burton Windle. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* Merge branch 'upstream-linus' of ↵Linus Torvalds2007-10-033-9/+24
|\ | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: drivers/ata/pata_ixp4xx_cf.c: ioremap return code check Ata: pata_marvell, use ioread* for iomap-ped memory libata: fix for sata_mv >64KB DMA segments
| * drivers/ata/pata_ixp4xx_cf.c: ioremap return code checkScott Thompson2007-10-031-0/+3
| | | | | | | | | | | | | | | | | | | | Add missing ioremap return checks. Signed-off-by: Scott Thompson <postfail <at> hushmail.com> Acked-by: Tejun Heo <htejun@gmail.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * Ata: pata_marvell, use ioread* for iomap-ped memoryJiri Slaby2007-10-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | pata_marvell, use ioread* for iomap-ped memory read* on pci_iomapped memory is incorrect, fix it Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>