summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/cx88
AgeCommit message (Collapse)Author
2007-03-28Use ARRAY_SIZE and a cleaner logic for initializing tunerMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> ATI HDTV Wonder needs to initialize some registers before allowing the tuner to start working. The current logic have lots of magic. This patch makes the code cleaner, using ARRAY_SIZE() for the initialization array and using a bidimensional array, instead of doing some stuff like: &buffer[i+2][0] Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-03-25Reverted changeset 5463Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-03-23Fix pll input logic for nxt200x/tuv1236dMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> This patch fixes a few troubles on nxt200x implementation: 1) A nxt200x internal input control logic were done on both cx88-dvb and saa7134-dvb; 2) The nx200x_set_pll_input callback were filling buffer, at the 5th position, without even testing if that buffer were filled; 3) a 5 byte buffer were written to the device, even if the buffer were not properly initialized by calc_regs. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-08-27whitespace cleanup: replace leading spaces with tabsMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> There were many instances of 7-space indents spread throughout the v4l-dvb tree. This patch replaces the 7-space indents with tabs. The whitespace cleaner script doesn't catch these, because it assumes that all indents are 8-space. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-08-24merge: http://linuxtv.org/hg/~hverkuil/v4l-dvbMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-08-23cx88-alsa: Fix mmap supportTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> The driver has long claimed to support mmap, but it didn't work at all. Some of the dma buffer parameters weren't set, and since video_buf uses vmalloc to allocate the buffer, a page callback is needed too. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-08-23cx88-alsa: Eliminate snd_cx88_cardsTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> The driver kepts a static global array of snd_card pointers for each card probed, which was never used. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-08-23cx88-alsa: Rework buffer handlingTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> Rework the way the DMA buffer is handled and IRQs are generated. ALSA uses a ring-buffer of multiple periods. Each period is supposed to corrispond to one IRQ. The existing driver was generating one interrupt per ring-buffer, as opposed to per period. This meant that as soon as the IRQ was generated, the hardware was already starting to re-write the beginning of the buffer. Since the DMA happens on a per-line basis, there was only a narrow window to copy the data out before the buffer was overwritten. The cx88 core RISC program generator is modified so that it can set the IRQ and counter flags to count every X lines of DMA transfer. This way we can generate an interrupt every period instead of every full ring-buffer. Right now only period of one line are supported, but it should be possible to support longer periods. Note that a WRITE instruction generates an IRQ when it starts, not when the transfer is finished. Thus to generate an IRQ when line X is done, one must set the IRQ flag on the instruction that starts line X+1, not the one that ends line X. Change the line size so that there are four lines in the SRAM FIFO. If there are not four lines, the analog output from the cx88's internal DACs is full of clicks and pops. Try to handle FIFO sync errors. Sometimes the chip generates many of these errors before audio data starts. Up to 50 sync errors will be ignored and the counter reset. Have the IRQ handler save the RISC counter to the chip struct, and then have the pointer callback use this to calculate the pointer position. We could read the counter from the pointer callback, but sometimes the sync errors on start up cause the counter to go crazy. ALSA sees this and thinks there has been an overrun. The IRQ hander can avoid saving the counter position on sync errors. The chip "opened" flag wasn't necessary. ALSA won't try to open the same substream multiple times. Probably this code was cut&pasted from the bt87x driver, which has multiple sub-streams for one chip. Do error checking for the videobuf mapping functions. snd_card_cx88_runtime_free() is useless and can be deleted. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-08-21cx2341x: some controls should not be changed while the device is busy.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> The driver should now pass the 'busy' state of the device to the cx2341x module whenever controls are set or tried. -EBUSY will be returned if the device is busy and the user attempts to modify certain 'dangerous' controls. It concerns controls that change the audio or video compression mode and bitrates. The cx88-blackbird and pvrusb2 drivers currently always pass '0' (not busy) to the cx2341x, effectively keeping the old behavior for now. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-21cx88: Improve risc instruction printing in sram channel dumpTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> When the risc instrunctions from the CMDS were printed, instruction arguments weren't taken into account. This changes output like: cx88[0]: risc0: 0x1d010400 [ write sol eol irq1 cnt0 count=1024 ] cx88[0]: risc1: 0x0cac2800 [ INVALID sol eol 23 21 19 18 13 count=2048 ] cx88[0]: risc2: 0x1d010400 [ write sol eol irq1 cnt0 count=1024 ] cx88[0]: risc3: 0x0cac2c00 [ INVALID sol eol 23 21 19 18 13 count=3072 ] into: cx88[0]: risc0: 0x1d010400 [ write sol eol irq1 cnt0 count=1024 ] cx88[0]: risc1: 0x0cac2800 [ arg #1 ] cx88[0]: risc2: 0x1d010400 [ write sol eol irq1 cnt0 count=1024 ] cx88[0]: risc3: 0x0cac2c00 [ arg #1 ] Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-03-09cx88: merge identical boardsTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> The attach code for HAUPPAUGE_HVR3000 and HAUPPAUGE_HVR1300 is exactly the same as the code used by HAUPPAUGE_HVR1100, HAUPPAUGE_HVR1100LP, and WINFAST_DTV2000H. So, those first two cards are added to the case block used by the last three. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-03-11cx88: whitespace cleanupMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> replace leading spaces with tabs Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-03-11cx88: autodetect ADS Tech InstantTV DVB-SMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> The ADS Tech InstantTV DVB-S is a clone of the KWorld DVB-S 100. This patch adds autodetection support for this card based on pci subsystem id. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-02-27dvb: Remove lgh06xf driverTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> The code of the dvb-pll driver and the lgh06xf driver is nearly identical. The main difference is that the lgh06xf driver would set the AGC TOP value on every tune call. The dvb-pll driver now has the ability to set the AGC TOP when the front-end device is opened, which is a better way to go about it. By using this ability of dvb-pll, the lgh06xf driver is made unnecessary. There is one other difference. dvb-pll will probe for the presence of an I2C pll chip by doing a one byte read, the lgh06xf driver did not do this. In some devices the PLL is not reachable over I2C at the timer the tuner is attached. Some more initialization, such as firmware loading, must take place first. None of the devices using a LG-H06xF should have this problem. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Acked-by: Michael Krufky <mkrufky@linuxtv.org>
2007-02-24Improve chip matching in v4l2_register for VIDIOC_DBG_G/S_REGISTERHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> The chip matching in struct v4l2_register was rather primitive. It could not be extended to other busses besides i2c and it lacked a way to differentiate between two i2c chips driven by the same driver on one board (e.g. a PVR500 with two tuner chips, one for analog TV and one for radio). It has now been improved making it much more powerful. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> CC: Mike Isely <isely@isely.net> CC: Trent Piepho <xyzzy@speakeasy.org>
2007-02-23merge: http://linuxtv.org/hg/~mrechberger/v4l-dvb-cx88Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21coding style changesMarkus Rechberger
From: Markus Rechberger <mrechberger@gmail.com> coding style changes Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
2007-02-21Backport of git changeset cd354f1ae75e6466a7e31b727faede57a1f89ca5Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Backport a changeset from Schmielau <tim@physik3.uni-rostock.de> that removes uneeded includes for linux/sched.h Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21Backport: make file_operations constMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Backport a kernel patch by Arjan van de Ven <arjan@linux.intel.com> that made all file_operations instances const. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-20added support for loading cx88-dvb and cx88-blackbirdMarkus Rechberger
From: Markus Rechberger <mrechberger@gmail.com> added support for loading cx88-dvb and cx88-blackbird Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
2007-02-20added support for deferred module requesting to cx88Markus Rechberger
From: Markus Rechberger <mrechberger@gmail.com> added support for deferred module requesting to cx88 Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
2007-02-18cx88-blackbird: allow usage of both 376836 and 262144 sized firmware imagesMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> This updates the cx88-blackbird driver to be able to use the new cx23416 firmware image released by Hauppauge Computer Works, while retaining compatibility with the older firmware images. cx2341x firmware can be downloaded at: http://dl.ivtvdriver.org/ivtv/firmware/ Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-02-06Cx88-video.c: remove struct radionormsMauro Carvalho Chehab
From: Adrian Bunk <bunk@stusta.de> This patch removes the unused struct radionorms. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-01-30Remove obsolete alias defines of CONFIG_* settingsTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> The out of tree v4l-dvb build system didn't always override the kernel's configuration settings with v4l-dvb's settings correctly. To work around this, makefiles would define some new macro based on the setting of a config variable. e.g. the pwc Makefile would define CONFIG_PWC_DEBUG if CONFIG_USB_PWC_DEBUG (which is defined via Kconfig) was set. The v4l-dvb build system should now always override correctly, and this is no longer necessary. This patch gets ride of these extra defines and just uses the CONFIG_* settings directly. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-01-23Make VIDIOC_INT_[SG]_REGISTER ioctls no longer internal onlyTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> The direct register access ioctls were defined as kernel internal only, but they are very useful for debugging hardware from userspace and are used as such. Officially export them. VIDIOC_INT_[SG]_REGISTER is renamed to VIDIOC_DBG_[SG]_REGISTER Definition of ioctl and struct v4l2_register is moved from v4l2-common.h to videodev2.h. Types used in struct v4l2_register are changed to the userspace exportable versions (u32 -> __u32, etc). Use of VIDIOC_DBG_S_REGISTER requires CAP_SYS_ADMIN permission, so move the check into the video_ioctl2() dispatcher so it doesn't need to be duplicated in each driver's call-back function. CAP_SYS_ADMIN check is added to pvrusb2 (which doesn't use video_ioctl2). Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-01-23merge: http://linuxtv.org/hg/~tap/v4l-dvbMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-01-22Restore VIDIOC_INT_[SG]_REGISTER callsTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> Add support for these ioctls to the video_ioctl2 system and the cx88 driver. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-01-21cx88: Add support for svideo/composite input of the Terratec Cinergy 1400 DVB-TMichael Krufky
From: Heiko Baums <heiko@baums-on-web.de> Adds support for the combined S-Video/Composite input of the Terratec Cinergy 1400 DVB-T. Signed-off-by: Heiko Baums <heiko@baums-on-web.de> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-01-20keep the previous tvnorm default for cx88 and cx88-blackbirdMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> The video_ioctl2 conversion replaced the default from NTSC to PAL_BG. This broke cx88-blackbird. Probably, there are some badness at this driver, not doing all required stuff to change video standard. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-01-20Convert cx88-blackbird to use video_ioctl2Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> This patch finishes cx88-blackbird conversion to use video_ioctl2. Video standards are generated automatically inside videodev.c. the big ioctl parser is removed, using, instead, video_ioctl2. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-01-20Remove_cx88_ioctlMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> cx88_ioctl were merged at the master ioctl handler on cx88-blackbird Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-01-20Use cx88_set_freq() on cx88-blackbird.cMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-01-20Do some cleanups at cx88-blackbirdMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-of-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-01-20changeset: 4899:0e0da8488f6b6ca379cf012987bd37237dfbab25Mauro Carvalho Chehab
tag: tip user: Mauro Carvalho Chehab <mchehab@infradead.org> date: Mon Nov 27 21:28:04 2006 -0200 files: linux/drivers/media/video/cx88/cx88-blackbird.c description: Reorder some ioctl handlers to make easy to convert to video_ioctl2 From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-01-20Moved several stuff that were at cx88-video to cx88-blackbird.cMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> cx88-blackbird were using some ioctl handling that were previously on cx88-video.
2007-01-20Fix vidioc_g_tuner handlingMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> --- linux/drivers/media/video/cx88/cx88-video.c | 2 ++ 1 file changed, 2 insertions(+)
2007-01-20Removed v4l2_tvnorm and made videodev to auto-generate standardsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> v4l2_tvnorm were meant to describe video standards and its names to V4L2 API. However, this were meaning several static structures at the driver. This patch changes the internals in a way that, at the driver, only a v4l2_tvnorm (a 32 bit integer) should be filled, with all supported parameters. videodev will dynamically generate the proper API array based on supported standards. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-01-20Renamed video_mux to cx88_video_mux and exported to cx88-blackbirdMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> --- linux/drivers/media/video/cx88/cx88-video.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
2007-01-20Make cx88-blackbird to work againMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> --- linux/drivers/media/video/cx88/cx88-video.c | 84 ++- linux/drivers/media/video/cx88/cx88.h | 12 3 files changed, 421 insertions(+), 238 deletions(-)
2007-01-20Uncommented NTSC/443 video standardMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-01-20Added support for V4L2_STD_NTSC_443Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> --- linux/drivers/media/video/cx88/cx88-core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
2007-01-20Convert cx8800 driver to video_ioctl2 handlerMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> video_ioctl2 handler provides V4L2 API parsing. Using it makes the driver simpler, and isolates API parsing. This allows future reusage of driver controls using other ways, like sysfs and/or procfs and increases isolation of driver-specific handling from the generic common ioctl processing. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-01-07freezer.h exists only on kernel 2.6.20Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Create compat code with older kernels. kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-01-07Cx88xx: Fix lockup on suspendMauro Carvalho Chehab
From: Robert Hancock <hancockr@shaw.ca> Suspending with the cx88xx module loaded causes the system to lock up because the cx88_audio_thread kthread was missing a try_to_freeze() call, which caused it to go into a tight loop and result in softlockup when suspending. Fix that. Signed-off-by: Robert Hancock <hancockr@shaw.ca> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-12-27Backport some changes that happened at mainstreamMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Basic changes: - replaced i2c_bit_del_bus() to i2c_del_adapter(); - Fixed MODULE_AUTHOR on ov7670 - Updates on drivers not maintained on this tree: i2c-id.h and sound/* kernel-sync: drivers/media/dvb/pluto2/pluto2.c | 8 ++++---- drivers/media/video/bt8xx/bttv-i2c.c | 6 +----- drivers/media/video/cx88/cx88-core.c | 2 +- drivers/media/video/cx88/cx88-vp3054-i2c.c | 2 +- drivers/media/video/ov7670.c | 2 +- drivers/media/video/vino.c | 2 +- drivers/media/video/zoran_card.c | 2 +- include/linux/i2c-id.h | 18 ++++++------------ sound/pci/bt87x.c | 4 ++-- Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-12-23cx88: Fix leadtek_eeprom taggingMichael Krufky
From: Jean Delvare <khali@linux-fr.org> WARNING: drivers/media/video/cx88/cx88xx.o - Section mismatch: reference to .init.text: from .text between 'cx88_card_setup' (at offset 0x68c) and 'cx88_risc_field' Caused by leadtek_eeprom() being declared __devinit and called from a non-devinit context. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-12-18Fixes bug 7267: PAL/60 is not workingMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> On cx88 driver, sampling rate should be at chroma subcarrier freq (FSC). However, driver were programming wrong values for PAL/60, PAL/Nc and NTSC 4.43. This patch do the proper calculation. It also calculates htotal, hdelay and hactive constants, according with the sampling rate. It is tested with PAL/60 by Piotr Maksymuk and Olivier. Test is still required for PAL/Nc. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-12-16Several stuff backported from 2.6.19-git seriesMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> - INIT_WORK replaced by INIT_DELAYED_WORK - struct work_struct replaced by struct delayed_work - callback parameters also changed - SLAB_KERNEL replaced by GFP_KERNEL - linux/suspend.h replaced by linux/freezer.h - on cpia: INIT_WORK replaced by INIT_WORK_NAR - file->f_dentry->d_inode replaced by file->f_path.dentry->d_inode Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-12-05cx88: trivial cleanupsMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> - small whitespace cleanups - 80-column whitespace cleanups - remove unneeded brackets Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-12-04cx88: Move cx88_dvb_bus_ctrl out of the card-specific areaMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> This function should not be in the card-specific area of the file. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>