summaryrefslogtreecommitdiffstats
path: root/sound
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] oss: don't concatenate __FUNCTION__ with stringsClemens Buchacher2005-09-222-2/+2
| | | | | | | | | | | It's deprecated. Use "%s", __FUNCTION__ instead. Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Maximilian Attems <janitor@sternwelten.at> Signed-off-by: Domen Puncer <domen@coderock.org> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] atiixp_modem printk fixesChuck Ebbert2005-09-221-8/+8
| | | | | | | | | Correctly identify atiixp_modem in its error messages. Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> Cc: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [SPARC] cs4231: Fix SBUS support in this driver.Christopher Zimmermann2005-09-211-157/+166
| | | | | | | | | | | | | | | | | | | | | From: Christopher Zimmermann <madroach@zakweb.de> This patch enables SBus support for the cs4231 sound driver. It is tested on an Ultra2. Capture and playback both work. I experienced lags and crashes using certain threaded players like ogg123 and mp3blaster, while the former is lagging far more. This behavior may be specific to SMP systems. It is reproducable using the dummy sound card driver. Sox works flawlessly. Setting up the calculation of ptr in snd_cs4231_playback_pointer was a bit strange. I got it to work by not incrementing the [pc]_periods_sent counter when starting DMA the first time in cs4231_dma_trigger. Therefore this dummy thing. [ I did some minor cleanups -DaveM ] Signed-off-by: David S. Miller <davem@davemloft.net>
* [PATCH] Fix up some pm_message_t typesRichard Purdie2005-09-171-1/+1
| | | | | | | | Fix up some pm_message_t types Signed-Off-By: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] add PCI IDs so RME32 and RME96 drivers buildRoland Dreier2005-09-142-52/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | While doing an allyesconfig build, I noticed that the commit commit 8cdfd2519c6c9a1e6057dc5970b2542b35895738 Author: Takashi Iwai <tiwai@suse.de> Date: Wed Sep 7 14:08:11 2005 +0200 [ALSA] Remove superfluous PCI ID definitions broke the RME32 and RME96 drivers, since the PCI IDs they use seem to have changed names. Here's a patch to fix this -- compile tested only, since I have no idea what the hardware even is. Fix the build of the RME32 and RME96 drivers by having them use the PCI_DEVICE_ID_RME_xxx names defined in <linux/pci_ids.h> instead of the PCI_DEVICE_ID_xxx names that they used to define themselves. Also fix the typo in the id PCI_DEVICE_IDRME__DIGI96_8_PAD_OR_PST so the name is PCI_DEVICE_ID_RME_DIGI96_8_PAD_OR_PST. Signed-off-by: Roland Dreier <rolandd@cisco.com> Acked-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [ALSA] set owner field in struct pci_driverClemens Ladisch2005-09-1236-1/+37
| | | | | | | | | | | | | | | | AD1889 driver,ALS4000 driver,ATIIXP driver,ATIIXP-modem driver AZT3328 driver,BT87x driver,CMIPCI driver,CS4281 driver ENS1370/1+ driver,ES1938 driver,ES1968 driver,FM801 driver Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver,RME32 driver RME96 driver,SonicVibes driver,VIA82xx driver,VIA82xx-modem driver ALI5451 driver,au88x0 driver,CS46xx driver,EMU10K1/EMU10K2 driver HDA Intel driver,ICE1712 driver,ICE1724 driver,KORG1212 driver MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver Trident driver,Digigram VX222 driver,YMFPCI driver Set the module owner field in each driver's struct pci_driver to get the driver symlink in the sysfs device directory. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] Several fixes for the Sun DBRI driverMartin Habets2005-09-121-102/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | SPARC DBRI driver This patch contains the following fixes to the Alsa DBRI driver: - Remove 2.6.13 build warning on the prom_getproperty() call. - Rework command synchronization: send a sequence number with D_WAIT, and check it in the completion interrupt. Move synchronization delays from _cmdsend() to _cmdlock() allowing the CPU to do other usefull things while the DBRI is processing the commands. - Fix first argument of printk() calls. - Enable burst transfers for DBRI. Original 2.4 patch from Krzysztof Helt - Make dbri_debug module parameter writable from sysfs. Remove obsolete write access to the /proc debug file. - Replace udelay() with msleep_interruptible() where possible. - Update documentation comments. Signed-off-by: Martin Habets <errandir_news@mph.eclipse.co.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] snd-emu10k1: ALSA bug#1297: Fix a error recognising the SB Live Platinum.James Courtier-Dutton2005-09-121-3/+2
| | | | | | | | EMU10K1/EMU10K2 driver The card does not have an AC97 chip. .subsystem = 0x80611102 Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] Replace with kzalloc() - othersTakashi Iwai2005-09-1228-43/+43
| | | | | | | | | | | Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3 OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers AK4114 receiver,AK4117 receiver,PDAudioCF driver,PPC PMAC driver SPARC AMD7930 driver,SPARC cs4231 driver,Synth,Common EMU synth USB generic driver,USB USX2Y Replace kcalloc(1,..) with kzalloc(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Replace with kzalloc() - pci stuffTakashi Iwai2005-09-1246-76/+76
| | | | | | | | | | | | | | AD1889 driver,ATIIXP driver,ATIIXP-modem driver,AZT3328 driver BT87x driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver ES1938 driver,ES1968 driver,FM801 driver,Intel8x0 driver Intel8x0-modem driver,Maestro3 driver,SonicVibes driver,VIA82xx driver VIA82xx-modem driver,AC97 Codec,AK4531 codec,au88x0 driver CA0106 driver,CS46xx driver,EMU10K1/EMU10K2 driver,HDA Codec driver HDA generic driver,HDA Intel driver,ICE1712 driver,ICE1724 driver KORG1212 driver,MIXART driver,NM256 driver,Trident driver,YMFPCI driver Replace kcalloc(1,..) with kzalloc(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Replace with kzalloc() - isa stuffTakashi Iwai2005-09-1214-15/+15
| | | | | | | | | ES18xx driver,OPL3SA2 driver,AD1816A driver,AD1848 driver,CS4231 driver ES1688 driver,GUS Library,Opti9xx drivers,EMU8000 driver SB16/AWE driver,SB drivers Replace kcalloc(1,..) with kzalloc(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Replace with kzalloc() - seq stuffTakashi Iwai2005-09-1222-32/+32
| | | | | | | ALSA sequencer,Instrument layer,ALSA<-OSS sequencer Replace kcalloc(1,..) with kzalloc(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Replace with kzalloc() - core stuffTakashi Iwai2005-09-1214-46/+46
| | | | | | | | Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel Timer Midlevel,ALSA<-OSS emulation Replace kcalloc(1,..) with kzalloc(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] hda-codec - Added ASUS A6Takashi Iwai2005-09-121-0/+1
| | | | | | | HDA Codec driver Added ASUS A6 support for ALC880 codec. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] intel8x0 - Add buggy_semaphore optionTakashi Iwai2005-09-121-1/+11
| | | | | | | | Documentation,Intel8x0 driver Added buggy_semaphore module option to snd-intel8x0 driver for a workaround for hardwards with buggy codec semaphores. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] pcm-oss - Add bugg-yptr optionTakashi Iwai2005-09-121-1/+7
| | | | | | | Documentation,ALSA<-OSS emulation Added 'buggy-ptr' proc option to switch the behavior of GETOPTR ioctl. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] powermac - Add AUTO_DRC configTakashi Iwai2005-09-122-7/+30
| | | | | | | | PPC,PPC Tumbler driver Added AUTO_DRC kernel config to enable/disable the auto-DRC-toggle feature on tumbler/snapper. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] hda-intel - Fix modem PCM creationTakashi Iwai2005-09-121-1/+1
| | | | | | | HDA Intel driver Fix a bug of modem PCM creation (due to a typo). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] pci_find_device removeJiri Slaby2005-09-125-23/+38
| | | | | | | | | Memalloc module,CS46xx driver,VIA82xx driver,ALI5451 driver au88x0 driver Replace pci_find_device() with pci_get_device() and pci_dev_put(). Signed-off-by: Jiri Slaby <xslaby@fi.muni.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Remove superfluous PCI ID definitionsTakashi Iwai2005-09-1221-346/+16
| | | | | | | | | | | | CS46xx driver,EMU10K1/EMU10K2 driver,PCM Midlevel,Trident driver YMFPCI driver,BT87x driver,CMIPCI driver,CS4281 driver ENS1370/1+ driver,ES1938 driver,ES1968 driver,Intel8x0 driver Intel8x0-modem driver,Maestro3 driver,RME32 driver,RME96 driver SonicVibes driver,VIA82xx driver,ALI5451 driver,ICE1712 driver ICE1724 driver,NM256 driver,RME HDSP driver,RME9652 driver Remove superfluous PCI ID definitions. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Fix DocBook warningsTakashi Iwai2005-09-124-6/+124
| | | | | | | PCM Midlevel,RawMidi Midlevel Fix DocBook warnings. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] hda-codec - Assign audio PCMS firstTakashi Iwai2005-09-124-3/+30
| | | | | | | | | HDA Codec driver,HDA Intel driver,HDA generic driver Assign audio PCMs first before modem PCMs. The modem stream is assigned up to device #6, to be consistent over different models. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Correct detection of iBook G4 1420Mhz soundcardVincent Pelletier2005-09-121-0/+1
| | | | | | | | | | PPC PMAC driver Here is a patch to correct detection of the soundcard on my iBook model (bought really recently). Without that fix, there were only andui in the headphone, and the mixer was totaly non functional. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] rtctimer: add option to make RTC timer the default sequencer timerClemens Ladisch2005-09-122-1/+19
| | | | | | | | | ALSA Core,ALSA sequencer Add an option to make the RTC timer the default sequencer timer. This becomes necessary for precise MIDI timing when the system timer runs at less than 1000 Hz. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] Add snd_card_set_generic_dev() call to ISA driversTakashi Iwai2005-09-1218-648/+587
| | | | | | | | | | | | | ISA,CMI8330 driver,ES18xx driver,OPL3SA2 driver,Sound Galaxy driver Sound Scape driver,AD1848 driver,CS4231 driver,CS4236+ driver ES1688 driver,GUS Classic driver,GUS Extreme driver,GUS MAX driver AMD InterWave driver,Opti9xx drivers,SB16/AWE driver,SB8 driver Wavefront drivers - Added snd_card_set_generic_dev() call. - Added SND_GENERIC_DRIVER to Kconfig. - Clean up the error path in probe if necessary. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Add snd_card_set_generic_dev() callTakashi Iwai2005-09-1216-38/+84
| | | | | | | | | | | ARM,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,MIPS MIPS AU1x00 driver,PPC,PPC PowerMac driver,SPARC,SPARC AMD7930 driver SPARC cs4231 driver,SPARC DBRI driver - Added snd_card_set_generic_dev() call. - Added SND_GENERIC_DRIVER to Kconfig. - Clean up the error path in probe if necessary. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Introduce snd_card_set_generic_dev()Takashi Iwai2005-09-123-86/+116
| | | | | | | | | | ALSA Core A new function snd_card_set_generic_dev() is introduced to add the 'generic device' support for devices without proper bus on sysfs. It's a last resort, and should be removed in future when they have a proper bus, instead. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] hda-intel - Check validity of DMA positionTakashi Iwai2005-09-121-22/+41
| | | | | | | | | HDA Intel driver Check the validity of the current DMA position when position_fix=0 (auto) is set. If the DMA position overcomes the threshold, the driver changes the fix behavior automatically to use POSBUF. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Add snd_card_set_dev()Takashi Iwai2005-09-122-0/+4
| | | | | | | ARM AACI PL041 driver,PARISC Harmony driver Added snd_card_set_dev() calls to register the device pointer for the card. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] hda-codec - Bring the Vaio's RA826G HDA (82801) to life ...Davide Libenzi2005-09-121-0/+1
| | | | | | | | HDA Codec driver Add the subsystem PCI devid to the list (on top of 2.6.13). Signed-off-by: Davide Libenzi <davidel@xmailserver.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] opti93x: optimize a register accessClemens Ladisch2005-09-121-2/+1
| | | | | | | | Opti9xx drivers When clearing some bits in a register, don't bother with the bits that won't be changed anyway. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] sparse address space annotationsClemens Ladisch2005-09-128-19/+33
| | | | | | | | | ALSA Core,RawMidi Midlevel,ALSA<-OSS emulation,ALSA sequencer RME32 driver,RME96 driver,EMU10K1/EMU10K2 driver,NM256 driver Add sparse annotations where we do strange this with __iomem/__user pointers. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] usb-audio: add SNDRV_PCM_INFO_BATCH flagClemens Ladisch2005-09-121-6/+10
| | | | | | | | USB generic driver Add the SNDRV_PCM_INFO_BATCH flag to the PCM hardware information to indicate that the driver uses double buffering. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] snd-ca0106, snd-emu10k1: Add symlink in the sys tree.James Courtier-Dutton2005-09-122-0/+2
| | | | | | | | | | | | | | | | | | | CA0106 driver,EMU10K1/EMU10K2 driver A thread appeared on the LKML. This patch implements the fix. Question: in sysfs, /sys/bus/*/drivers lists the driver names, with their exported .name (eg. '.name = 'EMU10K1_Audigy'' in the module code, from now on 'driver name'). In /sys/modules, the kernel modules are listed with their module name, eg. snd_emu10k1. However, it seems to me that in sysfs, there is no way in particular to tell, which module has which .name. That is, that snd_emu10k1 is EMU10K1_Audigy and vice versa. I wonder whether it wouldn't be possible to add a symlink to the particular module from the driver, and/or from the module to the driver, so the list of devices handled by the module and the module name would be accessible. This way, I would know which driver name corresponds to which module name and vice versa. Answer: For PCI drivers, just add the line: .owner = THIS_MODULE, to their struct pci_driver definition and you will get the symlink created for you. Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] Fix ALC658D supportTakashi Iwai2005-09-123-2/+15
| | | | | | | | AC97 Codec Fix the internal speaker problem (e.g. Targa Traveller 826) with ALC658D codec. The info is taken from Cyberlink/realtek-modified code. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] hdsp: always initialize card nameClemens Ladisch2005-09-121-0/+1
| | | | | | | | | RME HDSP driver When using the kernel firmware loader, initialize the card shortname before registering the card with ALSA to prevent it from using a default card ID. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] intel8x0 - Add quirk for IBM NetVisa A30pTakashi Iwai2005-09-121-0/+6
| | | | | | | Intel8x0 driver Added ac97_quirk entry for IBM NetVisa A30p. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] atiixp - Fix PM resumeTakashi Iwai2005-09-121-0/+1
| | | | | | | ATIIXP driver Fixed PM resume on atiixp driver. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] ad1889: add AD1889 driverClemens Ladisch2005-09-124-0/+1292
| | | | | | | | | | PCI drivers,AD1889 driver move the AD1889 driver to the kernel tree Acked-by: Thibaut Varene <varenet@parisc-linux.org> Acked-by: Kyle McMartin <kyle@parisc-linux.org> Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] Fix EAPD for MSI S270Takashi Iwai2005-09-121-2/+7
| | | | | | | AC97 Codec Fix pin47 setting for EAPD control on MSI S270 laptop. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] snd-ca0106: Tidy up volume controlsJames Courtier-Dutton2005-09-121-9/+9
| | | | | | | | | CA0106 driver Playback volume controls were appearing in both the playback and capture displays of alsamixer. Now those playback controls only appear in the playback display. Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [PATCH] patch] remove sound/oss/skeleton.cAdrian Bunk2005-09-101-219/+0
| | | | | | | | We do no longer need a template for OSS drivers. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] sb16_csp: untypedefAlexey Dobriyan2005-09-101-7/+7
| | | | | | | Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Domen Puncer <domen@coderock.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] sb16_csp: remove home-grown le??_to_cpu macrosAlexey Dobriyan2005-09-101-16/+14
| | | | | | | Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Domen Puncer <domen@coderock.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] timer initialization cleanup: DEFINE_TIMERIngo Molnar2005-09-094-7/+4
| | | | | | | | | | Clean up timer initialization by introducing DEFINE_TIMER a'la DEFINE_SPINLOCK. Build and boot-tested on x86. A similar patch has been been in the -RT tree for some time. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] USB: URB_ASYNC_UNLINK flag removed from the kernelAlan Stern2005-09-081-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 29 July 2005, Cambridge, MA: This afternoon Alan Stern submitted a patch to remove the URB_ASYNC_UNLINK flag from the Linux kernel. Mr. Stern explained, "This flag is a relic from an earlier, less-well-designed system. For over a year it hasn't been used for anything other than printing warning messages." An anonymous spokesman for the Linux kernel development community commented, "This is exactly the sort of thing we see happening all the time. As the kernel evolves, support for old techniques and old code can be jettisoned and replaced by newer, better approaches. Proprietary operating systems do not have the freedom or flexibility to change so quickly." Mr. Stern, a staff member at Harvard University's Rowland Institute who works on Linux only as a hobby, noted that the patch (labelled as548) did not update two files, keyspan.c and option.c, in the USB drivers' "serial" subdirectory. "Those files need more extensive changes," he remarked. "They examine the status field of several URBs at times when they're not supposed to. That will need to be fixed before the URB_ASYNC_UNLINK flag is removed." Greg Kroah-Hartman, the kernel maintainer responsible for overseeing all of Linux's USB drivers, did not respond to our inquiries or return our calls. His only comment was "Applied, thanks." Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* [PATCH] iomem annotations (sound/arm/aaci)viro@ZenIV.linux.org.uk2005-09-072-5/+5
| | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] ALSA: convert kcalloc to kzallocPekka Enberg2005-09-072-5/+11
| | | | | | | | | | This patch introduces a memory-leak tracking version of kzalloc for ALSA. Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Jaroslav Kysela <perex@suse.cz> Signed-off-by: Jiri Slaby <xslaby@fi.muni.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Remove non-arch consumers of asm/segment.hKumar Gala2005-09-071-3/+0
| | | | | | | | | | asm/segment.h varies greatly on different architectures but is clearly deprecated. Removing all non-architecture consumers will make it easier for us to get ride of asm/segment.h all together. Signed-off-by: Kumar Gala <kumar.gala@freescale.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Fix sound/arm/Makefile for locality of referenceRussell King2005-09-071-7/+9
| | | | | | | | | | | Ensure that sound/arm/Makefile is sanely organised so that additions to it don't break all other patches out there. This means I only have to adjust the line numbers in my patch queue rather than having to re-generate by hand those which touch this file. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>