summaryrefslogtreecommitdiff
path: root/linux/drivers/media/common/saa7146_core.c
AgeCommit message (Collapse)Author
2009-02-08saa7146: move v4l2 device registration to saa7146_vv.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Doing the v4l2_device registration in the saa7146 core will make it dependent on v4l2, even for DVB-only boards. This registration and unregistration belongs in saa7146_vv instead. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2009-02-07saa7146: i2c adapdata now points to v4l2_device.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Prepare for converting to v4l2_subdev. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2009-02-07saa7146: implement v4l2_device support.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-08-22v4l2: fix a bunch of compile warnings.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-06-22saa7146: ->cpu_addr and friends are little-endianMauro Carvalho Chehab
From: Al Viro <viro@ftp.linux.org.uk> Annotations + stop saa7146_i2c from playing fast and loose with reuse of ->cpu_addr for host-endian. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-30backport tuners move patch from -gitMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Due to the feedback I got, I've changed the -git patch. This needs to be reflected also at -hg tree. kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-26From: Mauro Carvalho Chehab <mchehab@infradead.org>Mauro Carvalho Chehab
Move tuners to common/tuners There were several issues in the past, caused by the hybrid tuner design, since now, the same tuner can be used by drivers/media/dvb and drivers/media/video. This patch moves those common tuners into a common dir. It also moves saa7146 driver into drivers/media/video, where other hybrid drivers are placed. Kconfig items were rearranged, to split V4L/DVB core from their drivers. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-15Backport changeset 5fa1247a2b56f33f88432c24e109deaf91ef8281Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Original patch from Al Viro <viro@ftp.linux.org.uk> Date: Sat Mar 29 03:07:38 2008 +0000 NULL noise: drivers/media kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-08media/common/ replace remaining __FUNCTION__ occurrencesMichael Krufky
From: Harvey Harrison <harvey.harrison@gmail.com> __FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Acked-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2008-02-21 saa7146: fix sparse warningsMauro Carvalho Chehab
From: Harvey Harrison <harvey.harrison@gmail.com> Went along with the existing file style. drivers/media/common/saa7146_core.c:309:6: warning: Using plain integer as NULL pointer drivers/media/common/saa7146_core.c:311:8: warning: Using plain integer as NULL pointer drivers/media/common/saa7146_core.c:319:7: warning: Using plain integer as NULL pointer drivers/media/common/saa7146_core.c:319:28: warning: Using plain integer as NULL pointer drivers/media/common/saa7146_core.c:325:7: warning: Using plain integer as NULL pointer drivers/media/common/saa7146_core.c:325:28: warning: Using plain integer as NULL pointer drivers/media/common/saa7146_fops.c:275:12: warning: Using plain integer as NULL pointer Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-02-05backport kernel commit c84e6036ba7177a404cc860cb5a440e06fad92ddMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Original changelog: Author: Joe Perches <joe@perches.com> Date: Sun Feb 3 17:18:59 2008 +0200 drivers/media/: Spelling fixes kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-02Backport some changesets touching S/G codeMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> kernel-sync: Backport kernel changesets: 45711f1af6eff1a6d010703b4862e0d2b9afd056 117636092a87a28a013a4acb5de5492645ed620f 642f149031d70415d9318b919d50b71e4724adbd Also, added newer entreis at compat.h, to avoid needing to add checks for linux versions inside the source codes. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-31saa7146: saa7146_wait_for_debi_done fixesOliver Endriss
From: Oliver Endriss <o.endriss@gmx.de> Two fixes for the 'saa7146_wait_for_debi_done' code: (a) Timeout did not work when the routine was called with interrupts disabled. (b) Reduce PCI I/O load caused by saa7146_wait_for_debi_done. Seems to be very important on fast machines! Based on code posted by Hartmut Birr @vdr-portal. Thanks-to: Hartmut Birr <e9hack@googlemail.com> Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
2007-08-23Adapt drivers to use the newer videobuf modulesMauro Carvalho Chehab
PCI-dependent videobuf_foo methods were renamed as videobuf_pci_foo. Also, videobuf_dmabuf is now part of videobuf-dma-sg private struct. So, to access it, a subroutine call is needed. This patch renames all occurences of those function calls to be consistent with the video-buf split. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> http://thread.gmane.org/gmane.comp.video.video4linux/34978/focus=34981 Reviewed-by: Ricardo Cerqueira <v4l@cerqueira.org>
2007-08-09saa7146: clean-up irq processingOliver Endriss
From: Oliver Endriss <o.endriss@gmx.de> Interrupt processing fixed: First handle interrupt, then acknowledge it. Otherwise the same interrupt might occur twice. Cleaned-up i2c interrupt handler and i2c error messages. Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
2007-07-23dvb-ttpci/saa7146: Replace saa7146_i2c_transfer by generic i2c_transferOliver Endriss
From: Oliver Endriss <o.endriss@gmx.de> Convert av7110_v4l.c to use i2c_transfer() instead of saa7146_i2c_transfer(). Make saa7146_i2c_transfer() static. Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
2007-07-13saa7146/dvb-ttpci: Fix signedness warnings (gcc 4.1.1, kernel 2.6.22)Oliver Endriss
From: Oliver Endriss <o.endriss@gmx.de> Fix signedness warnings (gcc 4.1.1, kernel 2.6.22). Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
2007-05-03saa7146: DMA: Correctly free resources on error, sync PCI streamed dataOliver Endriss
From: Jon Burgess <jburgess777@googlemail.com> I added saa7146_vmalloc_destroy_pgtable() which frees the resources allocated by saa7146_vmalloc_build_pgtable() and updated the callers in budget-core.c and av7110.c. I have also been through the updated functions and updated the error paths to ensure they free all allocated resources on error. I also realised that there are other callers to saa7146_pgtable_free() which did not have any sg DMA mapped so it seems wrong to add the pci_unmap_sg() into that function. Instead I created saa7146_vmalloc_destroy_pgtable() to do this. Also included in this patch are the previous fixes for pci_unmap_sg() and syncing the PCI streamed data to work with a SWIOTLB and match the requirements documented in DMA-API.txt. Signed-off-by: Jon Burgess <jburgess777@googlemail.com> Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
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] 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-03-13BUG_ON() Conversion in drivers/video/mediaMauro Carvalho Chehab
From: Eric Sesterhenn <snakebyte@gmx.de> Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-02-06sem2mutex: drivers/media/, #2Mauro Carvalho Chehab
Semaphore to mutex conversion. The conversion was generated via scripts, and the result was validated automatically via a script as well. Kernel-sync from patch 3318b Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-01-11From: Panagiotis Issaris <takis@issaris.org>Mauro Carvalho Chehab
Conversions from kmalloc+memset to k(z|c)alloc Conversions from kmalloc+memset to k(z|c)alloc. kernel-sync Signed-off-by: Panagiotis Issaris <takis@issaris.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2005-12-08syncronizes some changes between v4l and dvbMauro Carvalho Chehab
- Updated firmware names - kfree (NULL) is valid. - assert_spin_locked() is the new way - small fixes to make in sync with kernel Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-12-08Documentation fix and keep debug code at kernelMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@brturbo.com.br> kernel-sync - Removed inexistent site - keep debug #if 0 at kernel patches Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-11-26Whitespaces cleanups.Mauro Carvalho Chehab
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-06-26timeout handling fixed, especially for preemtible kernels and/or high system ↵Oliver Endriss
load Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
2005-06-22From: Christophe Lucas <c.lucas@ifrance.com>Johannes Stezenbach
http://kerneljanitors.org/TODO - convert from pci_module_init to pci_register_driver Signed-off-by: Christophe Lucas <c.lucas@ifrance.com> Signed-off-by: Domen Puncer <domen@coderock.org>
2005-03-22no need to initialize static/global variables to 0Johannes Stezenbach
2005-03-08 - Remove duplicate setgpioKenneth Aafloy
2005-02-16Static initialization.Johannes Stezenbach
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
2005-01-21various backport from 2.6.11-rc1:Michael Hunold
- replace static spinlock initializations with spin_lock_init() - add le16_to_cpu() macros to various values aquired via USB - add __user annotations to user space pointers
2005-01-09patch by Emard: explicitely disable RPS tasks in saa7146_init_one()Johannes Stezenbach
2004-11-21- prefix IER_DISABLE and IER_ENABLE with SAA7146_Johannes Stezenbach
- add SAA7146_ISR_CLEAR - use those consistently in the ttpci driver
2004-11-16 - MODULE_PARM -> module_paramKenneth Aafloy
2004-11-13Undid formatting and renamed parameter correctlyAndrew de Quincy
2004-11-12Added non-busy waiting optionAndrew de Quincy
2004-11-08- make needlessly global code staticMichael Hunold
- remove unused code Thanks to Adrian Bunk <bunk@stusta.de>
2004-10-28Imported FE_REFACTORING to HEADAndrew de Quincy
2004-04-28- fix some ppc be endianess issues, overlay works fine, grabbing does not ↵Michael Hunold
work reliably yet, though
2004-02-20fix timeout bug on AMD64 in saa7146_wait_for_debi_done()Johannes Stezenbach
2004-01-03- fix memory leak when using custom pagetables for video dma,Michael Hunold
store the pointer in our saa7146_pagetable struct and free it later on correctly (only used by budget DVB drivers) - remove some commented out debug code
2003-12-12- use vmalloc_32() instead of vmalloc() in saa7146_vmalloc_build_pgtable().Michael Hunold
this makes sure that the pagetable is in lowmem kernel memory, so we can DMA to it. this fixes the bug where budget-core.o oopsed on machines with highmem enabled.
2003-11-20- move saa7146_set_gpio() from saa7146_vv to saa7146_coreMichael Hunold
- add "new" saa7146_wait_for_debi_done() function, remove other versions from av7110 and budget.ci - make budget-ci use this gpio function and the new wait_...() function, therefore fix BORROWED_FROM_AV7110_H_BUT_REALLY_BELONGS_IN_SAA7146_DEFS_H remark
2003-11-20- make saa7146_pgtable_build_single() deliver a return code, make someMichael Hunold
sanity checks of the arguments (if a bad pagetable is created, unpredictable thinks can happen. trust me... ;-) - follow this change for the several uses
2003-11-14- sanitize enabling of video input pins and i2c pinsMichael Hunold
- use some default values, so the hardware is always in a sane state
2003-08-26Fix bytesperline-calculation forMichael Hunold
V4L2_FIELD_ALTERNATE vs. V4L2_FIELD_INTERLACED captures
2003-08-16- re-disable the saa7146 master reset on device startup. I enabled thisMichael Hunold
for debugging purposes and committed this change by accident. My PC at home does a hard freeze when the master reset is done...
2003-08-11Fix typo, remove unused variable.Michael Hunold
2003-08-11- follow latest changes in video-bufMichael Hunold
- fix pgtable_build_single, it should work for all kinds of buffers (system memory (kernel/user) and gfx-memory) - add/change some debug messages