summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/cx88
AgeCommit message (Collapse)Author
2007-10-10cx88: Replace list_for_each+list_entry with list_for_each_entryTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-10-04videobuf: Remove references to old Kconfig option nameTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> CONFIG_VIDEO_BUF_DVB became CONFIG_VIDEOBUF_DVB. But in these cases, it makes more sense to use CONFIG_VIDEO_SAA7134_DVB or CONFIG_VIDEO_CX88_DVB_MODULE depending on the driver. The reference in cx23885.h should just be removed, as the code there needs to be included if DVB is on or off. I do not think you can even compile the cx23885 driver without DVB. It's clearly just leftover from when the file was obvious copied from the cx88 driver (which is not mentioned in the copyright BTW). Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-10-02Fix Kconfig dependencyMauro Carvalho Chehab
Thanks to Michael Krufky for pointing this to me. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-08-23Rename video-buf-dvb to videobuf-dvb to be consistent with the other patchesMauro Carvalho Chehab
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
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-10-01Fix bug #8689: Fixes IR stop/start during suspend/resumeMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> IR workqueue should be disabled during suspend. This avoids some troubles, like the one reported on bug #8689: "The Hauppauge HVR 1100 ir-remote control does not work after resume from suspend to ram or disk." This patch disables IR before suspending, re-enabling it after resume. Thanks to Peter Poklop <Peter.Poklop@gmx.at> for reporting it and helping with the fix. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-09-28compat: allow compililation with kernels with updated sound driversMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> A few distro kernels, like Mandriva 2.6.22.9-desktop-1mdv are starting to be shipped with the newer alsa drivers. This patch changes the compat code for older kernels in a way that it will be compatible also with those distro kernels. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-09-10compat: fix build for kernels < 2.6.19 (missing <sound/tlv.h>)Michael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> include/sound/tlv.h was first added in 2.6.19 Disable the TLV support for kernels prior to 2.6.19 Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-09-08merge: http://www.linuxtv.org/hg/~stoth/v4l-dvbMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-09-06cx88-alsa: Add TLV supportTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> Lets mixer apps display a dB range for the volume control. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-09-06cx88-alsa: Remove some unused fields in card state structTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> Not sure why they are there, but they don't do anything now. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-09-06cx88-alsa: Add mute controls, change control namesTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> Add two mute controls. One mutes everything, the other just mutes the analog pass-through output. Rename the existing volume control. The controls are now: Playback Volume Playback Switch Capture Switch These names might seem odd, but I believe they are more correct. The previous "Capture Volume" control didn't actually effect the volume of the captured audio. Instead it controls the volume of the analog pass-thought output. It appears that pass-through controls like this are usually considered to be in the playback direction, not capture. For example, "CAPTURE feedback Playback Volume" is the name used for a control that appears to have the same effect in the ca0106 driver. We only have one volume control, so we can omit the "CAPTURE feedback" part. If someone where to add PCM playback support to the driver, then this would be the volume control. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-09-06cx88-alsa: Make volume control stereoTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> Use the balance control to make the mono volume control stereo. Note that full range isn't supported. The balance control attenuates one channel by 0 to -63 dB, and the volume control provides additional attenuation to both channels by another 0 to -63 dB. So the channel with the most attenuation has a range of 0 to -126 dB, while the other channel only has a range of 0 to -63 dB. ALSA volume controls don't appear to support this concept. I just limited the range to 0 to -63 total. Once you get to -63 dB, you're already at silence, so additional attenuation is pretty much pointless anyway. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-09-06Avoid a NULL pointer dereference during mpeg_open()Steven Toth
From: Steven Toth <stoth@hauppauge.com> Bug: With a hardware encoder board installed as cx88[1] and a non-encoder boards installed as cx88[0], an OOPS is generated during cx8802_get_device() called from mpeg_open(). Signed-off-by: Steven Toth <stoth@hauppauge.com>
2007-09-06merge: http://linuxtv.org/hg/~mkrufky/fusionhdtvMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-08-24cx88: auto-load rtc and ir receiver i2c modules for FusionHDTV5 RT GoldMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> Auto-load ir-kbd-i2c for ir receiver support, and rtc-isl1208 for rtc support for the FusionHDTV5 RT Gold. Signed-off-by: Michael Krufky <mkrufky@linuxtv.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-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-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-15cx88: Clean up some ugly and inconsistent printk()sTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> Get rid of the "CORE" prefix from cx88 printks. It was only used a few times, and it makes it look like they're coming from the kernel core or something. Fix the message, "TV tuner 60 at 0x1fe, Radio tuner -1 at 0x1fe", by adding a "cx88[0]" prefix to be consistent, and to keep people who grep their dmesg output for cx88 from missing it. Get rid of the addresses, which are always wrong. The addresses are always set to -1, but because it's an unsigned 8-bit value, the left shift converts it to the nonsense address 0x1fe. In the cx8802 driver, some cut and pasted code prefixed lines with "CORE cx88[0]:", which has been changed to "cx88[0]/2:" like the other printks from the cx8802 driver. Also fix some ugly printks in the cx8802 driver that used __FUNCTION__ for KERN_INFO and KERN_ERR messages. The changed printks in cx88-mpeg.c also needed lots of whitespace and 80-column fixes. A bunch of misc changes in cx88-dvb.c and cx88-video.c to add message levels or a consistent "cx88[?]/2" or "cx88[?]/0" prefix. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-08-15cx88: Move card core creation from cx88-core.c to cx88-cards.cTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> A lot of code in cx88-cards.c was only used by cx88-core.c when the core state is first allocated and initialized. Moving that task to cx88-cards makes the driver simpler and the files more self contained. - Module parameters tuner, radio, card, and latency move to cx88-cards.c - cx88_boards is made static - cx88_subids is made static and const - cx88_bcount is eliminated - cx88_idcount is eliminated - cx88_card_list() is made static - cx88_card_setup_pre_i2c() is made static - cx88_card_setup() is made static - cx88_pci_quirks() is moved from cx88-core to cx88-cards The function argument "char *name" is made const too - get_ressources() is moved from cx88-core to cx88-cards, and renamed to cx88_get_resources() - The code to allocate and initialize the core state struct and the chip is moved out of cx88-core.c:cx88_get_core() and into a new function in cx88-cards.c, cx88_core_create(). This makes both functions simpler. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-08-15cx88: Copy board information into card stateTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> The cx88 driver state stored the ID of the board type in core->board. Every time the driver need to get some information about the board configuration, it uses the board number as an index into board configuration array. This patch changes it so that the board number is in core->boardnr, and core->board is a copy of the board configuration information. This allows access to board information without the extra indirection. e.g. cx88_boards[core->board].mpeg becomes core->board.mpeg. This has a number of advantages: - The code is simpler to write. - It compiles to be smaller and faster, without needing the extra array lookup to get at the board information. - The cx88_boards array no longer needs to be exported to all cx88 modules. - The boards array can be made const - It should be possible to avoid keeping the (large) cx88_boards array around after the module is loaded. - If module parameters or eeprom info override some board configuration setting, it's not necessary to modify the boards array, which would affect all boards of the same type. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-08-13cx88: Fix use of uninitialized variableTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> An error message for PCI resource allocation failure used the board type before it was set. Just get rid of the error message, as get_ressources() [sic] already prints one. Format that error message better, and add the pci function and subsystem information to better associate the error with what caused it. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-08-13cx88: Make card database more memory efficientTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> The vmux setting is only two bits, but was taking up a whole 32 in the input description struct. By changing it to a two-bit bitfield, it can fit in what was padding space before and drop the input size by 4 bytes, from 28 to 24. This drops the board description struct, which has 9 inputs, from 280 to 244 bytes. Total driver size decreases by 2108 bytes. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-07-31cx8800: Add register debug functions to radio device tooTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> Add the advanced debug functions to the radio videodev template. One could already use them from the video and vbi devices. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-07-31cx88: Wrong values used for HD-3000 radio modeTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> After some tedious work with a logic probe and a magnifying glass, I've determined that GPIO 7 is used to switch between the DTT7612's Sound 4.5 MHz IF output on pin 12 and the FM 10.7MHz If output on pin 11. GPIO 2 is used to switch the card's analog sound output from from the analog input connector to the CX23883's audio DACs. So, in radio mode GPIO2 = 1 and GPIO7 = 0. Add some comments about how the HD-3000's GPIOs are connected. Delete the vmux setting for the radio, as vmux doesn't apply to radio mode. Also delete the lines setting unused gpio words to zero; it's not necessary as 0 is the default value for uninitialized fields. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-07-23Clean up duplicate includes in drivers/media/Mauro Carvalho Chehab
From: Jesper Juhl <jesper.juhl@gmail.com> This patch cleans up duplicate includes in drivers/media/ Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-19backport kernel changeset 831441862956fffa17b9801db37e6ea1650b0f69Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> kernel-sync: Original patch description from the patch by Rafael J. Wysocki <rjw@sisk.pl>: Freezer: make kernel threads nonfreezable by default Currently, the freezer treats all tasks as freezable, except for the kernel threads that explicitly set the PF_NOFREEZE flag for themselves. This approach is problematic, since it requires every kernel thread to either set PF_NOFREEZE explicitly, or call try_to_freeze(), even if it doesn't care for the freezing of tasks at all. It seems better to only require the kernel threads that want to or need to be frozen to use some freezer-related code and to remove any freezer-related code from the other (nonfreezable) kernel threads, which is done in this patch. The patch causes all kernel threads to be nonfreezable by default (ie. to have PF_NOFREEZE set by default) and introduces the set_freezable() function that should be called by the freezable kernel threads in order to unset PF_NOFREEZE. It also makes all of the currently freezable kernel threads call set_freezable(), so it shouldn't cause any (intentional) change of behaviour to appear. Additionally, it updates documentation to describe the freezing of tasks more accurately. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-19Conexant 2388x: check for kthread_runMauro Carvalho Chehab
From: Cyrill Gorcunov <gorcunov@gmail.com> The patch adds checking of kthread_run return code and issues a message if it fails. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-17Use msecs_to_jiffies instead of HZ on bttv, cx88 and saa7134Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-02Fix v4l-dvb backward compatibilityMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Due to several internal API changes on kernel, kernel backward compatibility were lost. Basically, compat.h should be the last include for it to work properly. This patch basically reorders kernel headers to allow backward compat to work fine. Also: Some includes were added after some non-include macros, on old drivers. Better to keep all includes at the beginning of the files. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-05-21cx88-blackbird: fix vidioc_g_tuner never ending list of tunersMichael Krufky
From: Jelle Foks <jelle@foks.8m.com> v4l-info and other programs would loop indefinitely while querying the tuners for cx88-blackbird cards. The cause was that vidioc_g_tuner didn't return an error value for qctrl->id != 0, making the application think there is a never ending list of tuners... This patch adds the same index check as done in vidioc_g_tuner() in cx88-video. Signed-off-by: Jelle Foks <jelle@foks.8m.com> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-07-01cx88: i2c structure templates clean-upMichael Krufky
From: Jean Delvare <khali@linux-fr.org> Clean up the use of structure templates in cx88-i2c and cx88-vp3054-i2c. For one thing, a real template is supposed to be read-only. And in some cases it's more efficient to initialize the few fields we need individually. This clean-up shrinks cx88-i2c.o by 33% and cx88-vp3054-i2c.o by 49% (x86_64). Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-06-25cx88-input: cx88_ir_handle_key: convert nested if's to switch..caseMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> In the function, cx88_ir_handle_key: - convert nested if statement to a switch..case block Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-06-25cx88: add remote control support for Leadtek Winfast DTV1000Michael Krufky
From: Edgar Pisani <episani@onqweb.com.au> Signed-off-by: Edgar Pisani <episani@onqweb.com.au> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-06-25ir-kbd-i2c: add support for Hauppauge HVR1300 remoteMichael Krufky
From: Jan Frey <jfrey@gmx.de> - add support for the I2C based IR transceiver of the Hauppauge HVR-1300 - remove bad code from cx88-input.c Signed-off-by: Jan Frey <jfrey@gmx.de> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-06-22Fix excess of debug messages on cx88-mpegMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Closes the issue opened on Kernel bugzilla: http://bugzilla.kernel.org/show_bug.cgi?id=8383 There's no need to print timeout without debug turned on: Apr 27 23:02:14 video kernel: cx88[1]/2-mpeg: cx8802_timeout Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-06-20merge: http://linuxtv.org/hg/~mkrufky/dvb-pllMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-06-15cx88: remove two unused pointers from struct cx8802_devMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> The following two pointers in struct cx8802_dev are unused - remove them: void* fe_handle; int (*fe_release)(void *handle); Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-06-12dvb: Remove static dependencies on dvb-pllMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> This patch removes all static dependencies on the dvb-pll module. All exported dvb_pll_desc's have been UNexported, and the caller will reference the individual dvb_pll_desc by it's index in the pll_list array. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Patrick Boettcher <pb@linuxtv.org> Acked-by: Oliver Endriss <o.endriss@gmx.de> Acked-by: Manu Abraham <manu@linuxtv.org>
2007-05-30cx88: kill dev->fw_sizeMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> Now that cx88-blackbird is only accepting the official firmware image, we no longer have any need to store the size of the firmware inside the cx88 data structure. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-05-30Blackbird should accept only new cx2341x encoding firmwaresHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Remove temporary support for older 256 kB firmwares. ivtv, pvrusb2 and blackbird can now all handle the newer larger firmwares, so support for the older (buggier) firmware can be removed. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-05-23Input: drivers/media - switch to using input_dev->dev.parentMichael Krufky
From: Dmitry Torokhov <dtor at mail.ru> In preparation for struct class_device -> struct device input core conversion switch to using input_dev->dev.parent when specifying device position in sysfs tree. Signed-off-by: Dmitry Torokhov <dtor at mail.ru> Acked-by: Thierry Merle <thierry.merle@free.fr> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-05-22merge: http://linuxtv.org/hg/~mkrufky/cx88Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-05-21V4L: cx88 - switch to using msecs_to_jiffies()Mauro Carvalho Chehab
From: Dmitry Torokhov <dtor@insightbb.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>