summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/cx88/cx88-alsa.c
AgeCommit message (Collapse)Author
2006-10-21IRQ: Maintain regs pointer globally rather than passing to IRQ handlersMauro Carvalho Chehab
Kernel-sync: This patch is required to allow compilation of the tree with kernel 2.6.19. This is the original description of the original patch, signed by David Howells <dhowells@redhat.com>: 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: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-07-19[PATCH] 64bit resource: fix up printks for resources in video driversMauro Carvalho Chehab
From: Greg Kroah-Hartman <gregkh@suse.de> This is needed if we wish to change the size of the resource structures. kernel-sync: backport from kernel to v4l/dvb tree Based on an original patch from Vivek Goyal <vgoyal@in.ibm.com> Cc: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-07-19[PATCH] irq-flags: media: Use the new IRQF_ constantsMauro Carvalho Chehab
From: Thomas Gleixner <tglx@linutronix.de> 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> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-06-25Sync changes with alsa stuff at kernelMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> kernel-sync Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-06-18Fix cx88-alsa vs IRQ remote conflictRicardo Cerqueira
From: Ricardo Cerqueira <v4l@cerqueira.org> cx88-alsa was resetting the card on load, causing the IRQ IR handler to go away (maybe others, too). There's no actual need to reset the card, though, so that line was removed Signed-off-by: Ricardo Cerqueira <v4l@cerqueira.org>
2006-05-24Include at V4L/DVB tree some changes from kernelMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> __devinit were introduced for the device init functions kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-05-03[ALSA] add __devinitdata to all pci_device_idMauro Carvalho Chehab
From: Henrik Kretzschmar <henne@nachtwindheim.de> kernel-sync: Signed-off-by: Henrik Kretzschmar <henne@nachtwindheim.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-04-11Since we are not using CVS, $Id makes no sense anymoreMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-04-03Change all emails to the currently used one.Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-03-28Wrong version testing... fixed.Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> kernel-sync. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-03-28Make code sync with recent ALSA changes on -gitMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> kernel-sync Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-03-15Merging from mchehab vivi branchMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> merge: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-03-14Snd_cx88_create: don't dereference NULL coreMauro Carvalho Chehab
From: Duncan Sands <duncan.sands@math.u-psud.fr> If the call to cx88_core_get returns a NULL value, it is dereferenced by cx88_reset, and perhaps by cx88_core_put. Spotted by the Coverity checker. Signed-off-by: Duncan Sands <baldrick@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-03-10Make video_buf more genericMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Video_buf were concerned to allow PCI devices to be used as video capture devices. This patch extends video_buf features by virtualizing pci-dependent functions and allowing other type of devices to use it. It is still DMA centric, although it may be used also by devices that emulates scatter/gather behavior or a DMA device Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-01-15fix some sound quality & distortion problems.Michael Krufky
From: Ricardo Cerqueira <v4l@cerqueira.org> - fix some sound quality & distortion problems. Signed-off-by: Ricardo Cerqueira <v4l@cerqueira.org> Signed-off-by: Michael Krufky <mkrufky@m1k.net>
2006-01-15From: Adrian Bunk <bunk@stusta.de>Mauro Carvalho Chehab
make some code static This patch makes some needlessly global code static. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-01-15git dvb callbacks fixMauro Carvalho Chehab
From: Andrew Morton <akpm@osdl.org> Not sure what went wrong here, but SND_PCI_PM_CALLBACKS got deleted. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-01-12removed uneeded init on structs like static int foo=0Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> - static vars are equal to zero by default. Removed unnecessary =0 from them, saving some data space; - Fixed compiling against kernels bellow 2.6.13. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-01-05Make CONFIG_VIDEO_ALSA support all ALSA modules, and enable itRicardo Cerqueira
From: Ricardo Cerqueira <v4l@cerqueira.org> VIDEO_ALSA now actually means "enable ALSA modules". Both cx88 and saa7134 are covered by it (bt87x is disabled as it may conflict with snd_bt87x in ALSA's tree), and it now defaults to "y". Signed-off-by:
2006-01-05Workaround to deal with the cx88 DMA code conflictsRicardo Cerqueira
From: Ricardo Cerqueira <v4l@cerqueira.org> Existing audio DMA uses conflict with cx88-alsa. This workaround disables that code if cx88-alsa is being compiled Signed-off-by:
2006-01-05Fix cx88-alsa oopsRicardo Cerqueira
From: Ricardo Cerqueira <v4l@cerqueira.org> Fixed double-spinlock bug Signed-off-by:
2006-01-05Cleanup old code and debug from cx88-alsaRicardo Cerqueira
From: Ricardo Cerqueira <v4l@cerqueira.org> Cleaned up some code and excessive debug left behind during development Signed-off-by:
2006-01-04Fixed the audio distortion in cx88-alsaRicardo Cerqueira
From: Ricardo Cerqueira <v4l@cerqueira.org> The audio distortion was apparently being caused by the high amount of interrupts being generated. Increasing the buffer from 512 to 4096 seems to fix it Signed-off-by:
2006-01-03whitespace cleanupsMauro Carvalho Chehab
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2006-01-03cx88-alsa, now with working sound goodnessRicardo Cerqueira
From: Ricardo Cerqueira <v4l@cerqueira.org> It's still not perfect (lots of over and underruns), but there's now working audio. Dropped the videobuf queues (too geared for video...) in favor of a single RISC databuffer, and changed the remaining code accordingly. And it works ;) Signed-off-by:
2005-12-30cx88-alsa, now with rmmod goodnessRicardo Cerqueira
From: Ricardo Cerqueira <v4l@cerqueira.org> The module can now be removed and reloaded without problems, if the PCM isn't opened. PCM cleanup is still missing. Signed-off-by:
2005-12-30More cx88-alsa changes, still not workingRicardo Cerqueira
From: Ricardo Cerqueira <v4l@cerqueira.org> Changed a few more things in the buffers and ALSA initialization code, but still no luck. No IRQ activity yet, even with the IRQ mask fixed. Signed-off-by:
2005-12-24More changes to cx88-alsa buffersRicardo Cerqueira
From: Ricardo Cerqueira <v4l@cerqueira.org> the videobuf sequence now looks complete. Still no IRQ activity, though. Signed-off-by:
2005-12-14more videobuf stuff included ad dsp_buffer_init. Still no joy.Mauro Carvalho Chehab
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-12-14Several fixes at videobuf and alsa stuff. Still doesn't work.Mauro Carvalho Chehab
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-12-13several fixes at videobuf stuff.Mauro Carvalho Chehab
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-12-13Videobuf code in alsa now compilesMauro Carvalho Chehab
Signed-off-by: Mauro Carvalho Chehab <mchehab@brtubo.com.br>
2005-12-13More cx88-alsa changes. Doesn't crash on removal anymoreRicardo Cerqueira
From: Ricardo Cerqueira <v4l@cerqueira.org> - Bugfixes to allow the module to be removed without hard-locking the system Signed-off-by:
2005-12-10Fixed some DMA handlers. Yet to be tested.Mauro Carvalho Chehab
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-12-10cx88-alsa now doesn't generate OOPS. Still doesn't work.Mauro Carvalho Chehab
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-12-04kernel-syncMichael Krufky
[PATCH 9/11] MEDIA: replace all uses of pci_module_init with pci_register_driver From: Otavio Salvador <otavio@debian.org> This patch replace all calls to pci_module_init, that's deprecated and will be removed in future, with pci_register_driver that should be the used function now. Signed-off-by: Otavio Salvador <otavio@debian.org> Signed-off-by: Michael Krufky <mkrufky@m1k.net>
2005-10-25 * ../linux/drivers/media/video/cx88/cx88-alsa.c:Nickolay V. Shmyrev
(snd_cx88_pointer), (snd_cx88_create): - Fix build warnings and errors. Signed-off-by: Nickolay V. Shmyrev <nshmyrev@yandex.ru>
2005-10-16- Whitespace Cleanups.Mauro Carvalho Chehab
- Whitespace script improved. Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-08-15 * cx88-alsa.c:Mauro Carvalho Chehab
- Some fixups. Still incomplete. * cx88-core.c: - New error message. - spaces replaced by tabs. Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-08-15 * cx88-alsa.c:Mauro Carvalho Chehab
- some DMA code included. Still incomplete. Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-08-13cx88-alsa.c:Mauro Carvalho Chehab
- snd register working. Also Capture control. - pending: pcm functions and fix some trouble when inserting it with other cx88 functions (cx8800) for example. Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-08-10 * Make.config, MakeMauro Carvalho Chehab
- Added support for future alsa support, yet to be finished. * bt87x-alsa.c: - bt87x.c that is inside ALSA tree. Yet to make it compile from here. * cx88-alsa.c,cx88.h: - cx88 ALSA skeleton. It is not yet working. Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-07-15 - linux/version.h removed at linux-2.6.13-rc3-mm1.Mauro Carvalho Chehab
- Removed remaining trailing spaces. Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2004-10-13- kill trailing whitespaces.Gerd Knorr
2004-07-30- cx88: more reorganization stuff.Gerd Knorr
2004-07-29- cx88: big code reorganization.Gerd Knorr
- cx88: started merging blackbird patches, not working yet.