summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video
AgeCommit message (Collapse)Author
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-24ivtv: kzalloc() returns void pointer, no need to castHans Verkuil
From: Jesper Juhl <jesper.juhl@gmail.com> Since kzalloc() returns a void pointer, we don't need to cast the return value in drivers/media/video/ivtv/ivtv-queue.c Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
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-24ivtv: set correct pixel format and alpha properties in VIDIOC_G_FBUFHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-23ivtv: fix V4L2_ENC_CMD_STOP_AT_GOP_END supportHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Support for V4L2_ENC_CMD_STOP_AT_GOP_END was broken. While the driver correctly waited for the card to capture until the GOP was complete, afterwards the driver buffers were just flushed instead of waiting for the application to read all the pending data. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-23ivtv: fix VIDIOC_G_ENC_INDEX flag handlingHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Due to a documentation bug (the type mask is 3 bits long, not 2) the wrong frame types were filled in: the B and P frame types were swapped. This bug also hid a second bug: when a capture is stopped a last entry is written into the pgm index buffer with internal type 0, denoting the end of the program. This entry wasn't ignored, instead it was accidentally returned to the caller as a P frame. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-23ivtv: more ivtv-driver.h cleanups.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-23ivtv: reorganized and cleanup ivtv structHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-23ivtv: more cleanups, merged ivtv-audio.c and ivtv-video.c into ivtv-routing.cHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-23ivtv: header cleanupHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> - add guards - remove unused header includes - move card-specific stuff from ivtv-driver.h to ivtv-cards.h - move YUV-specific stuff from ivtv-driver.h to ivtv-yuv.h Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-22ivtv-fb: correct transparency bit reporting.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-22ivtv: log in status if framebuffer uses YUV instead of RGBHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
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-08-23From: Jean Delvare <khali@linux-fr.org>Mauro Carvalho Chehab
Subject: ivtv: Fix static structure initialization Date: Thu, 23 Aug 2007 19:32:26 +0200 Convert the initialization of ivtv_i2c_algo_template to C99-style. Otherwise a future change to struct i2c_algo_bit_data would break this code. Also declared that structure const - it's a template after all. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-08-21Cleanup: remove linux/moduleparam.h from drivers/media filesMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Since at least kernel 2.6.12-rc2, module.h includes moduleparm.h. This patch removes all occurences of moduleparm.h from drivers/media files. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-08-21Coding style fix drivers/media/video/zr36016.cMauro Carvalho Chehab
From: Michal Piotrowski <michal.k.k.piotrowski@gmail.com> Signed-off-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-08-21Coding style fix drivers/media/video/zr36050.cMauro Carvalho Chehab
From: Michal Piotrowski <michal.k.k.piotrowski@gmail.com> Signed-off-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-08-21Coding style fix drivers/media/video/zr36060.cMauro Carvalho Chehab
From: Michal Piotrowski <michal.k.k.piotrowski@gmail.com> Signed-off-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-08-21tuner: fix header file includes orderMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> kernel headers go above subsystem headers Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-08-20tuner: fix ifdef tags to match actual file nameMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> The file, tuner-driver.h was originally named tuner-hw.h, but we decided to rename it. At the time, I had forgotten to change the #ifdef __TUNER_HW_H__ to #ifdef __TUNER_DRIVER_H__ . This patch corrects that. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-08-20ivtv: prevent changing VBI format while capture is in progress.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Changing the VBI format requires a CX2341X_ENC_INITIALIZE_INPUT firmware call. This can only be done if no capture is in progress. So return -EBUSY if the encoder is busy. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-20ivtv: fix output mode processing: UDMA_YUV wasn't cleared.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> - Always clear when stopping the decoder - Clear if the filehandle that is being close was used for UDMA_YUV output. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-20saa7134: add DVB-T support for Avermedia Super 007Michael Krufky
From: Edgar Simo <bobbens@gmail.com> add DVB-T support for Avermedia Super 007 Analog television is untested. The device lacks input adapters for radio, svideo & composite -- seems to be a DVB-T ONLY device. Signed-off-by: Edgar Simo <bobbens@gmail.com> Acked-by: Hermann Pitton <hermann-pitton@arcor.de> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-08-20saa7134-dvb: add missing newlineMichael Krufky
From: Edgar Simo <bobbens@gmail.com> This is a simple whitespace cleanup. Signed-off-by: Edgar Simo <bobbens@gmail.com> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-08-20merge: 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-08-20merge: 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-19ivtv: add VIDIOC_OVERLAYHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Add VIDIOC_OVERLAY to enable/disable the OSD. Also add the OSD state to the log status report. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-19ivtv: fix IVTV_IOC_DMA_FRAME bug introduced by highmem bugfix.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> The return value of ivtv_udma_fill_sg_list() was changed by the highmem bugfix, but that return value was still used in ivtv-yuv.c. Revert to the old return value, but in addition return -1 in case of a memory allocation error. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-19ivtv: log stereo/bilingual audio modesHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-19ivtv: add support for highmem udmaHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> When trying to DMA userspace buffers to the cx23415 you need to check whether the page is in highmem. If this is the case, then bounce buffers have to be used to allow DMA. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-19ivtv-fb: remove unused header includes.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-19ivtv: move serialization to the fileops level.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Serialization is now done on the open/close/ioctl level and also when the read/write/poll start an encoder/decoder stream. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-19ivtv: improve debug messagesHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> - add FILE debug flag for open/close/read/write/poll. - show cmd for encoder/decoder command ioctl. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-19ivtv: specify some stream sizes in kB instead of MBHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Some streams (PCM, VBI decoding) do not need that much memory, so specify the allocated memory in kB instead of MB to limit memory usage. E.g. 1 MB is overkill for the VBI decoding stream, 64 kB is enough. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-19ivtv: setup TV output standard on init to prevent flickerHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> The TV output standard was set only on first use, which meant that the saa7127 was set to NTSC until then, leading to flickering on PAL systems. Since the saa7127 has no firmware it is OK to initialize it immediately. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-18cx88-alsa: Use pci_dev->revisionTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> The revision is part of the pci_dev struct, so there is no need to read it in. Stop storing the revision and latency in the chip struct, since they're never used after being printed out when the driver loads. linux/pci.h wasn't included. It was getting picked up something else, probably cx88.h, but this file uses struct pci_dev so it should include pci.h. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-08-18cx88-alsa: Hardware doesn't support mono audioTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> channels_min should be 2, not 1. The hardware only supports stereo. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-08-18cx88-alsa: Change order of interrupt enabling, fix spurious IRQsTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> Currently the driver turns on audio interrupts, then sets the audio interrupt mask to select which interrupts to get. One could received unwanted interrupts since the mask is set _after_ interrupts have already been turned on. Change the order of the operations, and clear any audio interrupt status bits that are already set for good measure. Before changing the SRAM FIFO parameters, make sure the FIFO isn't being used. This shouldn't happen with just the ALSA driver, as it should never try to turn on FIFO/RISC/DMA while they are already on. However, the V4L driver needs to turn the audio FIFO on for analog audio output to work (undocumented cx88 bug). The FIFO parameters are in an inconsistent state while they are updated, and this results in many FIFO sync error IRQs if the FIFO is in use while it's in this inconsistent state. Also create and use a bunch of symbolic constants for audio interrupt mask bits. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-08-18A previously compat patch changed whitespacesMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> kernel-sync: Since the compat patch aren't merged into mainstream, it is better to revert linespace at the development tree. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-08-18ivtv: fix udma yuv bugHans Verkuil
From: Ian Armstrong <ian@iarmst.demon.co.uk> Using udma yuv causes the driver becomes locked into that mode. This prevents use of the mpeg decoder & non-udma yuv output. This patch clears the operating mode when the device is closed. Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-08-18cx88-alsa: Call core irq handler when neededTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> When an irq handled by the cx88 core driver (currently IR and errors) occurs and the cx88-alsa irq handler is the first called, it will claim to have handled the irq but it doesn't call cx88_core_irq() to handle it. The means loading cx88-alsa can disable the IR remote. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-08-18cx88: Add symbolic names for the PCI interrupt bitsTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> Used for the PCI_INTMSK and PCI_INT_STAT registers. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-08-17cx88: Add parameter to control radio deemphasis time constantTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> FM radio transmission use a preemphasis/deemphasis scheme to reduce high-frequency noise. The cx88 audio decoder is supposedly set to no deemphasis by the current driver. However, the "no deemphasis" setting doesn't work. On my chip, cx23883, it produces the same result as the 75 us time constant. Maybe the default settings on the cx23881 are for 50 us? Since the deemphasis time constant varies by country, allow setting it via a module parameter. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-08-16compat: ALSA compat codeTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> Removed some ALSA compat code from bt87x and put it into compat.h, then use this code in cx88-alsa and saa7134-alsa to avoid lots and lots of #ifs. All the kernel version checks in cx88-alsa and saa7134 were off by one too, which is now fixed. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-08-17Reorder compat.h to the end of includes to avoid errorsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-08-17Turn an unnecessary mdelay() into msleep().Mauro Carvalho Chehab
From: Marcelo Tosatti <marcelo@kvack.org> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-08-17Get rid of an ill-behaved msleep in i2c writeMauro Carvalho Chehab
From: Jonathan Corbet <corbet@lwn.net> Configuring the OLPC camera requires something over 150 register writes. Unfortunately, querying the CAFE i2c controller too soon after a write causes the hardware to flake. The problem had been "solved" with an msleep() call, but, between the number of registers and how msleep() behaves, that resulted in a 3-second delay on camera initialization. Instead, we hand-code a wait for the completion interrupt which avoids reading the status registers. Signed-off-by: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>