summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/saa7134/saa7134-core.c
AgeCommit message (Collapse)Author
2009-08-10v4l: simplify v4l2_i2c_new_subdev and friendsHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Rewrite v4l2_i2c_new_subdev as a simplified version of v4l2_i2c_new_subdev_cfg and remove v4l2_i2c_new_probed_subdev and v4l2_i2c_new_probed_subdev_addr. This simplifies this API substantially. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2009-06-20saa7134: set RDS capability if applicable.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2009-05-28big rework of TS for saa7134Mauro Carvalho Chehab
From: Dmitri Belimov <d.belimov@gmail.com> 1. Add start/stop TS function. 2. Move setup DMA of TS to DMA function. 3. Write support cupture via MMAP 4. Rework startup and finish process, remove simple FSM. Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> Signed-off-by: Alexey Osipov <lion-simba@pridelands.ru> Tested-by: Hermann Pitton <hermann-pitton@arcor.de> Tested-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-05-18minor have assigned value twiceMauro Carvalho Chehab
From: figo.zhang <figo.zhang@kolorific.com> The variable minor have assigned value twice, the first time is in the initial "video_device" data struct in those drivers, pls see saa7134-video.c,line 2503. --- Signed-off-by: Figo.zhang <figo.zhang@kolorific.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-04-14backport commit 284901a90a9e0b812ca3f5f852cbbfb60d10249dMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Author: Yang Hongyang <yanghy@cn.fujitsu.com> Date: Mon Apr 6 19:01:15 2009 -0700 dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) Replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30v4l2: use v4l2_i2c_new_probed_subdev_addr where appropriate.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2009-04-01v4l2-common: add explicit v4l2_device pointer as first arg to ↵Hans Verkuil
new_(probed)_subdev From: Hans Verkuil <hverkuil@xs4all.nl> The functions v4l2_i2c_new_subdev and v4l2_i2c_new_probed_subdev relied on i2c_get_adapdata to return the v4l2_device. However, this is not always possible on embedded platforms. So modify the API to pass the v4l2_device pointer explicitly. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2009-04-01v4l2-subdev: move s_standby from core to tuner.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> s_standby is only used to put the tuner in powersaving mode, so move it from core to tuner. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2009-03-29saa7134: add RDS support.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> The Terratec Cinergy 600 TV MK3 supports the RDS decoder saa6588. Add support to saa7134 for such devices. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2009-03-28saa7134: fix RTD Embedded Technologies VFG7350 support.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> This card has the saa6752hs on 7-bit address 0x21 instead of 0x20. Add support in the card definition struct to select which address to use and update the definitions accordingly. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2009-03-15saa7134: set v4l2_dev field of video_deviceMauro Carvalho Chehab
From: Hans Verkuil <hverkuil@xs4all.nl> The v4l2_dev field of video_device wasn't initialized. The parent field is derived from v4l2_dev, so that doesn't need to be set anymore. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-02-09saa7134: get rid of KBLMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> KBL is not needed on saa7134, so, let's remove it. However, we should take some care to avoid opening the module while initializing it. This issue exists with newer udev's that opens a device as soon as the driver is registered. So, a proper lock is needed on open. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-02-08saa7134: move tuner init code to saa7134-cardsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> On certain devices, before opening a tuner, we need to open the tuner gate via i2c. This patch just moves the tuner probing code to the same place where such i2c commands are handled, to make easier to fix this trouble on later patches. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-01-31saa7134-core: loading saa7134-alsa is now the defaultMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Most boards nowadays supports saa7134-alsa. Even some of they doesn't have any option to wire an audio cable. So, lets load saa7134-alsa by default, if the board is not based on saa7130 and if saa7134-alsa is compiled. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-01-31saa7134-core: remove oss option, since saa7134-oss doesn't exist anymoreMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-01-18v4l2-common: added v4l2_i2c_tuner_addrs()Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Add v4l2_i2c_tuner_addrs() to obtain the various I2C tuner addresses. This will be used in several drivers, so make this a common function as we do not want to have these I2C addresses all over the place. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2009-01-17saa7134: convert to the new v4l2 framework.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Register v4l2_device and switch to v4l2_subdev to access the i2c modules. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2009-01-10saa7134: Prevent Oops due to stale IRQ status when enabling interruptsAndy Walls
From: Andy Walls <awalls@radix.net> When enabling a shared IRQ line, then saa7134_irq handler could be invoked before the driver had completely set up internal structures, due to a shared interrupt line firing. Clear the saa7134 interrupt status reg, before requesting the irq line, so that stale IRQ status isn't processed before the internal structures are set up. Marcin Slusarz recently brought this Oops to the attention of the v4l-dvb lists and provided an initial analysis by investigating reports found here: http://kerneloops.org/guilty.php?guilty=mute_input_7133&version=2.6.27-release&start=1802240&end=1835007&class=oops Reported-by: Marcin Slusarz <marcin.slusarz@gmail.com> Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-10-20[PATCH] saa7134: fix resource map sanity check conflictMauro Carvalho Chehab
From: Suresh Siddha <suresh.b.siddha@intel.com> Impact: driver could possibly stomp on resources outside of its scope {mchehab@redhat.com: I got two versions of the same patch (identical, except for whitespacing). One authored by Andy Burns and another authored by Suresh Siddha. Due to that, I'm applying the one that has less CodingStyle errors. I'm also adding both comments and the SOB's for both patches, since they are both interesting} Suresh Siddha commented: Alexey Fisher reported: > resource map sanity check conflict: 0xcfeff800 0xcff007ff 0xcfe00000 > 0xcfefffff PCI Bus 0000:01 BAR base is located in the middle of the 4K page and the hardcoded size argument makes the request span two pages causing the conflict. Fix the hard coded size argument in ioremap(). Andy Burns commented: I have already sent this patch on the linux-dvb list, but it didn't get much attention, so re-sending direct, I hope you all don't mind. While attempting to run mythtv in a xen domU, I encountered problems loading the driver for my saa7134 card, with an error from ioremap(). This error was due to the driver allocating an incorrectly sized mmio area, which was trapped by xen's permission checks, but this would go un-noticed on a kernel without xen. My card has a 1K sized mmio area, I've had information that other cards have 2K areas, perhaps others have different sizes, yet the driver always attempts to map 4K. I realise that the granularity of mapping is the page size, which typically would be 4K, but unless the card's base address happens to fall on a 4K boundary (mine does not) then the base+4K will end up spanning two pages, and this is when the error occurs under xen. My patch uses the pci_resource_len macro to determine the size required for the user's particular card, instead of the hardcoded 4K value. I've tested with a couple of printk() inside ioremap() that the start address and size do get rounded to the closest page boundary. With this patch I am able to successfully load the saa7134 driver and run mythtv under xen with my card, subject to correct pollirq settings in case of shared IRQ, I am still seeing occasional DMA panics, which I think are related to swiotlb handling by dom0/domU, usually the panic occurs when changing mux, once tuned to a mux, 12 hour continuous recordings are possible without errors. Reported-by: Alexey Fisher <bug-track@fisher-privat.net> Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: Andy Burns <andy@burns.net> Tested-by: Alexey Fisher <bug-track@fisher-privat.net> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-10-19v4l: use video_device.num instead of minor in video%dHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> The kernel number of a v4l2 node (e.g. videoX, radioX or vbiX) is now independent of the minor number. So instead of using the minor field of the video_device struct one has to use the num field: this always contains the kernel number of the device node. I forgot about this when I did the v4l2 core change, so this patch converts all drivers that use it in one go. Luckily the change is trivial. Priority: high Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> CC: michael@mihu.de CC: mchehab@infradead.org CC: corbet@lwn.net CC: luca.risolia@studio.unibo.it CC: isely@pobox.com CC: pe1rxq@amsat.org CC: royale@zerezo.com CC: mkrufky@linuxtv.org CC: stoth@linuxtv.org
2008-09-29saa7134: fix I2C remote controls on saa7134Mauro Carvalho Chehab
From: Dmitri Belimov <d.belimov@gmail.com> This is patch for solve this regression. Load ir-kbd-i2c module when remote is i2c type. With my best regards, Dmitry. Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-08-26saa7134-empress: remove incorrect IRQ defines for TSHans Verkuil
From: Dmitry Belimov <d.belimov@gmail.com> SAA7134_IRQ1_INTE_RA2_3 and SAA7134_IRQ1_INTE_RA2_2 are used for planar video, not for TS. Priority: normal Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> 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-08-20saa7134-core.c: fix warningMauro Carvalho Chehab
From: Alexander Beregalov <a.beregalov@gmail.com> drivers/media/video/saa7134/saa7134-core.c:366: warning: 'saa7134_buffer_requeue' defined but not used Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-27merge: http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-videodevMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-26v4l2-dev: remove unused type and type2 field from video_deviceHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> The type and type2 fields were unused and so could be removed. Instead add a vfl_type field that contains the type of the video device. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-20videodev: rename 'dev' to 'parent'Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> The field 'dev' is not the video device, but the parent of the video device. Rename accordingly. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-26saa7134: Copy tuner data earlier in init to avoid overwriting manual tuner typeMauro Carvalho Chehab
From: Simon Arlott <simon@fire.lp0.eu> When saa7134_board_init2 runs, it immediately overwrites the current value (set earlier from module parameter) of tuner_type with the static values, and then does autodetection. This patch moves the tuner_addr copy to earlier in saa7134_initdev and removes the tuner_type copy from saa7134_board_init2. Autodetection could still potentially change to the wrong tuner type, but it is now possible to override the default type for the card again. My card's tuner is configured with autodetection from eeprom, so I don't need to manually set the tuner. I've checked that the autodetection still works for my card. Reviewed-by: Hermann Pitton <hermann-pitton@arcor.de> Cc: Brian Marete <bgmarete@gmail.com> Signed-off-by: Simon Arlott <simon@fire.lp0.eu> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-08v4l-dvb: remove support for kernels < 2.6.16Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Phase 4 removes the compatibility support for kernels < 2.6.16. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-08v4l-dvb: remove support for kernels < 2.6.10Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Phase 2 removes support for kernels < 2.6.10. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-08v4l-dvb: remove support for kernels < 2.6.0Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> First phase of the backwards compatibility cleanup: stop supporting kernels older than 2.6.0. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-05-12saa7134: fixed a compile warning in saa7134-core.cHartmut Hackmann
From: Hartmut Hackmann <hartmut.hackmann@t-online.de> patch 779169257208 made the variable mask unnecessary. This patch just removes the declaration. Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
2008-05-09saa7134: remove explicit GPIO initializationHartmut Hackmann
From: Hartmut Hackmann <hartmut.hackmann@t-online.de> This causes a problem with the audio mute on some cards and is done implictly in the audio initialization code. Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
2008-03-20saa7134: add number of devices checkHartmut Hackmann
From: Alan McIvor <alan.mcivor@reveal.co.nz> This patch fixes reported problems when trying to add a 9th device into a system. Signed-off-by: Alan McIvor <alan.mcivor@reveal.co.nz> Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
2008-03-16tda827x: fixed support of tuners with LNAHartmut Hackmann
From: Hartmut Hackmann <hartmut.hackmann@t-online.de> Tuner refactoring broke support of tuners with LNA configurations 1 and 2 for both, analog TV and DVB-T. Additionally, this patch initializes the saa713x gpios defined by the gpiomask at driver init to avoid undefined stated at dvb. Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
2008-02-19saa7134: fix: tuner should be loaded before calling saa7134_board_init2()Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> There are several parts of saa7134_board_init2() that calls tuner modules. We should first load tuner, otherwise, the commands will fail. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-02-05Add support for xc3028-based boardsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> This patch adds support for the following saa7134 xc3028 based boards: 132 -> AVerMedia Cardbus TV/Radio (E506R) [1461:f436] 133 -> AVerMedia Hybrid TV/Radio (A16D) [1461:f936] 134 -> Avermedia M115 [1461:a836] 135 -> Compro VideoMate T750 [185b:c900] This is based on a original patch thanks to Markus Rechberger that added xc3028 gpio init code for the above boards. This patch moves saa7134_tuner_callback to saa7134-cards, originally used only by tda8290 DVB-S boards. The callback was made more generic to support other tuners. Currently, it supports both tda8290 and xc2028/xc3028 tuners. Added also the basis for xc5000 tuner callback. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> --- linux/Documentation/video4linux/CARDLIST.saa7134 | 4 linux/drivers/media/video/saa7134/saa7134-cards.c | 255 ++++++++++++++++++++-- linux/drivers/media/video/saa7134/saa7134-core.c | 34 -- linux/drivers/media/video/saa7134/saa7134-dvb.c | 39 +++ linux/drivers/media/video/saa7134/saa7134.h | 7 5 files changed, 290 insertions(+), 49 deletions(-)
2008-02-05Use the same callback argument as xc3028 and xc5000Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-02-05backport commit a3c53e2310192e63e49610ffcb6a36b2a706fa3eMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Original Changelog: Author: Daniel Walker <dwalker@mvista.com> Date: Thu Jan 17 12:52:05 2008 -0800 fix wrong sized spinlock flags argument Correct wrong sized spinlock flags, form int to unsigned long. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-27[PATCH] static memoryDouglas Schilling Landgraf
From: Douglas Schilling Landgraf <dougsland@gmail.com> - Static memory is always initialized with 0. - Replaced in some cases C99 comments for /* */ Signed-off-by: Douglas Schilling Landgraf <dougsland@gmail.com>
2007-12-11Fix VBI supportMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> VBI were broken, since there weren't any function handlers for it. This patch fixes it, by removing the vbi_template, using, instead video_template. This also saves some extra BSS data. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-12-07Fix some errors at the video_ioctl2 conversionMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-30 saa7134: fix ignored interruptsMauro Carvalho Chehab
From: Heikki Lindholm <holindho@cs.helsinki.fi> The saa7134 video driver starts dropping frames when used together with the saa7134-alsa driver. Frames are dropped because when an audio event is waiting the driver simply ignores the interrupt and passes it on to the saa7134-alsa interrupt handler. The alsa interrupt handler in turn acknowledges all types of events thus clearing the pending video events as well. Fix by only masking out the audio event in the video interrupt handler and by only acknowledging the audio event in the alsa driver. Signed-off-by: Heikki Lindholm <holindho@cs.helsinki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-23 V4L: saa7134: tvaudio cleanupsMauro Carvalho Chehab
From: Maxim Levitsky <maximlevitsky@gmail.com> move some tv-audio initialization code out of tvaudio thread, and call it on resume too. Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-04 Add few missing bits of code to saa7134_resumeMauro Carvalho Chehab
From: Maxim Levitsky <maximlevitsky@gmail.com> First the saa7134_initdev waits between saa7134_hwinit1 and saa7134_hwinit2 , thus it is probably wise to do the same in saa7134_resume some hardware probably needs this. Call saa7134_irq_video_signalchange in .resume like in saa7134_resume to make saa7134_resume mirror perfectly the saa7134_initdev although this call isn't strictly necessary in the saa7134_initdev, but it won't harm anyway. Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-05 Fix theoretical races between IRQ handler and .suspend/resumeMauro Carvalho Chehab
From: Maxim Levitsky <maximlevitsky@gmail.com> *dev->insuspend = 1 should be set before synchronize_irq *ACK interrupts after synchronize_irq, to make sure there aren't pending interrupts. *Add barrier before we restart interrupts so the handler will 100% see the dev->insuspend Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-04 Fix access to configuration space while in D3Mauro Carvalho Chehab
From: Maxim Levitsky <maximlevitsky@gmail.com> pci_save_state should be called before pci_set_power_state and pci_restore_state after pci_set_power_state Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-06V4L: videobuf: don't chew up namespace STATE_.*, convert to VIDEOBUF_Brandon Philips
s/STATE_NEEDS_INIT/VIDEOBUF_NEEDS_INIT/g s/STATE_PREPARED/VIDEOBUF_PREPARED/g s/STATE_QUEUED/VIDEOBUF_QUEUED/g s/STATE_ACTIVE/VIDEOBUF_ACTIVE/g s/STATE_DONE/VIDEOBUF_DONE/g s/STATE_ERROR/VIDEOBUF_ERROR/g s/STATE_IDLE/VIDEOBUF_IDLE/g Signed-off-by: Brandon Philips <bphilips@suse.de>
2007-10-24 saa7134/: make 2 functions staticMauro Carvalho Chehab
From: Adrian Bunk <bunk@kernel.org> saa7134_buffer_requeue() and set_tvnorm() can become static. Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-18saa7134: fix NULL dereference at suspend time for cards without IR receiverMauro Carvalho Chehab
Calling saa7134_ir_stop at suspend is no good idea for saa7134 cards without remote control. Signed-off-by: Matthias Schwarzott <zzam@gentoo.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>