summaryrefslogtreecommitdiffstats
path: root/sound/pci/ca0106
Commit message (Collapse)AuthorAgeFilesLines
* IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells2006-10-051-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: David Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
* [ALSA] Fix compile errors with older gccTakashi Iwai2006-09-231-2/+2
| | | | | | | | | | | Fixed compile errors with older gcc for initialization of a union. sound/pci/ca0106/ca0106_mixer.c: At top level: sound/pci/ca0106/ca0106_mixer.c:499: unknown field 'p' specified in initializer sound/pci/ca0106/ca0106_mixer.c:499: warning: missing braces around initializer sound/pci/ca0106/ca0106_mixer.c:499: warning: (near initialization for 'snd_ca0106_volume_ctls[0].tlv') Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] snd-ca0106: Fix dB gain TLVs.James Courtier-Dutton2006-09-231-2/+6
| | | | | Signed-off-by: James Courtier-Dutton <James@superbug.co.uk> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] HDA codec & CA0106 - add/fix TLV supportJaroslav Kysela2006-09-231-1/+3
| | | | Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Control API - TLV implementation for additional information like dB scaleJaroslav Kysela2006-09-231-0/+4
| | | | | | | | This patch implements a TLV mechanism to transfer an additional information like dB scale to the user space. The types might be extended in future. Acked-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Fix section mismatch errors in ALSA PCI driversTakashi Iwai2006-07-121-1/+1
| | | | | | | | | Fixed 'section mismatch' errors in ALSA PCI drivers: - removed invalid __devinitdata from pci id tables - fix/remove __devinit of functions called in suspend/resume Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [PATCH] irq-flags: sound: Use the new IRQF_ constantsThomas Gleixner2006-07-021-1/+1
| | | | | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: "David S. Miller" <davem@davemloft.net> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Jaroslav Kysela <perex@suse.cz> Cc: Takashi Iwai <tiwai@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [ALSA] snd-ca0106: Update playback to 24bit. Fix typo is comment.James Courtier-Dutton2006-06-221-3/+3
| | | | Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] Remove unneeded read/write_size fields in proc text opsTakashi Iwai2006-06-221-10/+7
| | | | | | | Remove unneeded read/write_size fields in proc text ops. snd_info_set_text_ops() is fixed, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] ca0106: Fixes MSI K8N's SB Live 24 bit, no sound from line-in.James Courtier-Dutton2006-06-222-3/+35
| | | | | | Fixed bug#1331 Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] ca0106: Add analog capture controls.James Courtier-Dutton2006-06-223-14/+186
| | | | Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] add __devinitdata to all pci_device_idHenrik Kretzschmar2006-04-271-1/+1
| | | | | Signed-off-by: Henrik Kretzschmar <henne@nachtwindheim.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] snd-ca0106: Fixed ALSA bug#1600James Courtier-Dutton2006-01-221-1/+11
| | | | | | | | | | | | Modules: CA0106 driver Description: Shuttle XPC SD11G5 which has an onboard Creative Labs Sound Blaster Live! 24-bit EAX high-definition 7.1 audio processor'. Fixes ALSA bug#1600 Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] snd-ca0106: Fix SPI driver code. Fixes speaker output.James Courtier-Dutton2006-01-031-15/+57
| | | | | | Modules: CA0106 driver Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] snd-ca0106: Fixes sound output for Creative Audigy SE aka.SB0570.James Courtier-Dutton2006-01-032-0/+33
| | | | | | | | Modules: CA0106 driver Fixes ALSA bug#1636 Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] snd-ca0106: update SPDIF to IEC958 in mixer control names.James Courtier-Dutton2006-01-031-6/+6
| | | | | | Modules: CA0106 driver Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] Optimize for config without PROC_FS (pci drivers)Takashi Iwai2006-01-032-0/+5
| | | | | | Optimize the code when compiled without CONFIG_PROC_FS for some pci drivers. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Remove xxx_t typedefs: PCI CA0106Takashi Iwai2006-01-036-258/+263
| | | | | | | | Modules: CA0106 driver Remove xxx_t typedefs from the PCI CA0106 driver. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] ca0106 - Code clean upTakashi Iwai2006-01-032-360/+131
| | | | | | | | | | | | | Modules: CA0106 driver Clean up snd-ca0106 driver code: - Fix spaces and indents - Remove unnecessary spinlocks - Clean up the mixer callbacks using private_value - Clean up mixer constructors using an array Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Remove superfluous pcm_free callbacksTakashi Iwai2006-01-031-8/+0
| | | | | | Remove superflous pcm_free callbacks. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [PATCH] PCI: removed unneeded .owner field from struct pci_driverGreg Kroah-Hartman2005-11-101-1/+0
| | | | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* [ALSA] ca0106: Added copyright messages.James Courtier-Dutton2005-11-041-0/+2
| | | | | | Modules: CA0106 driver Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] ca0106: Cosmetic changes.James Courtier-Dutton2005-11-043-20/+17
| | | | | | | | Modules: CA0106 driver Just tidying up the code. Making more functions static. Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] snd-ca0106: Add midi support.James Courtier-Dutton2005-11-045-5/+511
| | | | | | | | Modules: PCI drivers,CA0106 driver Author: Tilman Kranz <tilde@tk-sls.de> Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] Add missing KERN_* suffix to printkTakashi Iwai2005-11-041-3/+3
| | | | | | Add missing KERN_* suffix to printk. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Remove vmalloc wrapper, kfree_nocheck()Takashi Iwai2005-11-041-4/+2
| | | | | | | | - Remove vmalloc wrapper - Add release_and_free_resource() to remove kfree_nocheck() from each driver and simplify the code Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Replace with kzalloc() - pci stuffTakashi Iwai2005-09-121-3/+3
| | | | | | | | | | | | | | 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] snd-ca0106, snd-emu10k1: Add symlink in the sys tree.James Courtier-Dutton2005-09-121-0/+1
| | | | | | | | | | | | | | | | | | | 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] 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>
* [ALSA] Add new ID. Fixes ALSA bug #1298James Courtier-Dutton2005-08-301-0/+8
| | | | | | CA0106 driver Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] use PCM interface for IEC958 controlsClemens Ladisch2005-08-301-2/+2
| | | | | | | | | Digigram VX core,ENS1370/1+ driver,CA0106 driver,EMU10K1/EMU10K2 driver RME HDSP driver,RME9652 driver For consistency, use the PCM interface instead of MIXER for IEC958 default/mask/stream mixer controls. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] ca0106: Fix 96000 Hz audio playback.James Courtier-Dutton2005-06-222-2/+2
| | | | | | CA0106 driver Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] Remove redundant NULL checks before kfreeJesper Juhl2005-06-221-5/+1
| | | | | | | | | | | | | | | | Timer Midlevel,ALSA sequencer,ALSA<-OSS sequencer,Digigram VX core I2C tea6330t,GUS Library,VIA82xx driver,VIA82xx-modem driver CA0106 driver,CS46xx driver,EMU10K1/EMU10K2 driver,YMFPCI driver Digigram VX Pocket driver,Common EMU synth,USB generic driver,USB USX2Y Checking a pointer for NULL before calling kfree() on it is redundant, kfree() deals with NULL pointers just fine. This patch removes such checks from sound/ This patch also makes another, but closely related, change. It avoids casting pointers about to be kfree()'ed. Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] sound/pci/ca0106: Use the DMA_32BIT_MASK constantTobias Klauser2005-06-221-2/+3
| | | | | | | | | | | CA0106 driver Use the DMA_32BIT_MASK constant from dma-mapping.h when calling pci_set_dma_mask() or pci_set_consistent_dma_mask() See http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for details Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch> Signed-off-by: Domen Puncer <domen@coderock.org> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Be more specific with which I2C channel to use.James Courtier-Dutton2005-06-221-1/+4
| | | | | | CA0106 driver Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] Implement S32_LE(24bit) and 96000 capture rates etc.James Courtier-Dutton2005-06-221-4/+59
| | | | | | CA0106 driver Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] Add Mic capture support.James Courtier-Dutton2005-06-222-1/+69
| | | | | | | CA0106 driver Notes: This adds a new mixer item to switch between Mic and Line-in. Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] Implement support for Line-in capture on SB Live 24bit.James Courtier-Dutton2005-06-223-10/+148
| | | | | | | CA0106 driver Notes: MIC capture not tested yet. Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] Tidy up card recognition.James Courtier-Dutton2005-05-292-28/+43
| | | | | | | CA0106 driver Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] When the alsamixer says 'SPDIF Out [Off]', SPDIF output should be off ↵James Courtier-Dutton2005-05-291-2/+2
| | | | | | | | | | | | | and Analog output should be on. CA0106 driver This fixes a bug whereby when the snd-ca0106 module first loads, alsamixer says 'SPDIF Out [Off]' but no analog sound comes from the speakers. This covers any bug reports that said things like 'mixer fails to remember analog output on, when the system is rebooted.' Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] Implement surround71 outputs on SB Live 24bit.James Courtier-Dutton2005-05-291-2/+2
| | | | | | | CA0106 driver Notes: Requires updated alsa-lib. Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
* [ALSA] make code staticAdrian Bunk2005-05-291-1/+1
| | | | | | | | CA0106 driver,HDA Codec driver This patch makes needlessly global code static. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Fix permissions in some /proc filesTakashi Iwai2005-05-291-0/+2
| | | | | | | | | | | | | PCM Midlevel,CA0106 driver,EMU10K1/EMU10K2 driver Fix by Guillaume Chazarain <guichaz@yahoo.fr>: Some tunables in /proc have a write() function, but as their permission does not reflect it, it can be confusing to the user. So here is a patch that corrects the mode of those files. Note that I have only tested the 'xrun_debug' entry. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Replace pci_module_init() with pci_register_driver()Takashi Iwai2005-05-291-1/+1
| | | | | | | | | | | | | | | Documentation,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,CA0106 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 Replace the obsolete pci_module_init() with pci_register_driver(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Skip ac97 SPDIF controlsTakashi Iwai2005-05-292-5/+1
| | | | | | | | CA0106 driver Skip building ac97 SPDIF controls via AC97_SCAP_NO_SPDIF. Clean up the code. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Linux-2.6.12-rc2v2.6.12-rc2Linus Torvalds2005-04-165-0/+2905
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
OpenPOWER on IntegriCloud