summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/cx88/cx88-blackbird.c
AgeCommit message (Collapse)Author
2007-12-17Fix CodingStyle troubles caused by the previous cx88 commitsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-13cx88-blackbird: don't mute audio when stopping the codecMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> We should not mute the audio input when we stop the codec, because it will interfere with the live uncompressed stream. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Reviewed-by: Jelle Foks <jelle@foks.8m.com>
2007-05-21cx88-blackbird: remove unnecessary encoder unmuteMichael Krufky
From: Jelle Foks <jelle@foks.8m.com> Remove the unnecessary BLACKBIRD_UNMUTE calls to the mpeg encoder in cx88-blackbird.c The encoder is never muted, hence unmuting should then only be necessary once after hardware initialization. I tested this from warm boots and cold boots (with long power down time to ensure the sram in the chip is emptied), and found that after the firmware upload the encoder is apparently not muted, making the unmutes unnecessary. Signed-off-by: Jelle Foks <jelle@foks.8m.com> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-05-21cx88-blackbird: remove unnecessary msleep()'sMichael Krufky
From: Jelle Foks <jelle@foks.8m.com> Remove the unnecessary msleep()'s in cx88-blackbird.c Signed-off-by: Jelle Foks <jelle@foks.8m.com> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-05-21cx88-blackbird: audio improvementsMichael Krufky
From: Jelle Foks <jelle@foks.8m.com> This patch should fix the 'muted audio' and 'raspy audio' problem for mpeg2 streams out of cx88-blackbird devices. Especially mythtv users would find that the audio would often sound bad (aliased, or 'raspy'), mainly related to channel changes, many (all?) other users would find that there was no audio at all in the mpeg data from the encoder chip, unless the audio was manually unmuted. The patch includes the following modifications: Don't actually start the mpeg2 encoder until the device is read from by the application. Wait until the audio is stable for at least 400ms before starting the mpeg encoder. Mute/Unmute the audio when starting/stopping the mpeg encoder. Stop the mpeg encoder when changing parameters and when changing tuner frequency. Add a variable 'mpeg_active' to struct cx8802_dev to allow tracking of whether or not the mpeg2 encoder is active. Load the firmware on cx88-blackbird driver load. Signed-off-by: Jelle Foks <jelle@foks.8m.com> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-11-13V4L: Convert videobuf drivers to videobuf_stopBrandon Philips
Drivers were using cookie cutter code for stopping the read/stream. Use the new videobuf_stop function which is lock safe. Signed-off-by: Brandon Philips <bphilips@suse.de>
2007-10-11Remove obsolete VIDIOC_S/G_MPEGCOMP ioctlsHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Remove the obsolete VIDIOC_G_MPEGCOMP and VIDIOC_S_MPEGCOMP ioctls from the V4L2 API as per the removal schedule (October 2007). Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
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-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-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-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-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-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-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-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-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-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.
2006-11-18Fix cx88-blackbird null pointerMauro Carvalho Chehab
From: Jelle Foks <jelle@foks.8m.com> Allows 'debug=1' for cx88-blackbird module (dev needs to be valid for dprintk). Fixes a null-pointer dereference when using debug=1. Signed-off-by: Jelle Foks <jelle@foks.8m.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-09-28merge: http://www.linuxtv.org/hg/~stoth/hvr1300-finalMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-09-28use NULL instead of 0 for ptrsMauro Carvalho Chehab
From: Randy Dunlap <rdunlap@xenotime.net> Use NULL instead of 0 for pointer value, eliminate sparse warnings. Signed-off-by: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-09-27Dynamic cx88 mpeg port management for HVR1300 MPEG2/DVB-T support. Steven Toth
From: Steven Toth <stoth@hauppauge.com> A series of patches to change the cx88 framework to allow the PCI mpeg port to be shared dynamically between different types of drivers or applications. This patch changes the cx88-dvb and cx88-blackbird drivers to become 'sub drivers' of a higher single cx88-mpeg driver. The cx88-mpeg driver is a superset of the previous cx88-mpeg/blackbird drivers and now owns the IRQ. cx88-dvb/blackbird now become mini drivers, registering themselves with cx88-mpeg through a standard interface with callbacks. Sub drivers request access to hardware via the cx88-mpeg driver. In turn the cx88-mpeg driver determines whether the hardware is busy and accepts or refuses the request, grant access using callbacks into the sub drivers. The net effect is that you are no longer able to tamper with the mpeg port from multiple different applications at the same time, potentially breaking a live mpeg2 hardware encoding or dvb stream. The mechanism extends to enable multiple dvb frontends to be registered and share the single resource. Signed-off-by: Steven Toth <stoth@hauppauge.com>
2006-09-25cx88: rename mpeg capability flags from CX88_BOARD_FOO to CX88_MPEG_FOOMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> The flags for mpeg capabilities are sub-optimally named as CX88_BOARD_DVB and CX88_BOARD_BLACKBIRD, which creates some confusion. This patch renames the above to CX88_MPEG_DVB and CX88_MPEG_BLACKBIRD. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> CC: Steven Toth <stoth@hauppauge.com> Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2006-09-25Changed cx88_board .dvb and .register to an enum.Steven Toth
From: Steven Toth <stoth@hauppauge.com> Some basic cleanup in preperation for a future patch where the cx88-mpeg functions have to deal with the port being used by multiple frontends in (mpeg2 hw encoder and dvb demod). Signed-off-by: Steven Toth <stoth@hauppauge.com>
2006-09-16cx88-ivtv was broken in changeset ca7f328178caMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> Restore the following hooks: - cx88-blackbird.c: cx88_ioctl_hook() - cx88-blackbird.c: cx88_ioctl_translator() Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-08-12CONFIG_PM=n slim: drivers/media/video/*Mauro Carvalho Chehab
From: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-07-19[PATCH] release_firmware() fixesMauro Carvalho Chehab
From: Magnus Damm <magnus@valinux.co.jp> Use release_firmware() to free requested resources. According to Documentation/firmware_class/README the request_firmware() call should be followed by a release_firmware(). Some drivers do not however free the firmware previously allocated with request_firmware(). This patch tries to fix this by making sure that release_firmware() is used as expected. kernel-sync: backport from kernel to v4l/dvb tree Signed-off-by: Magnus Damm <magnus@valinux.co.jp> Acked-by: Marcel Holtmann <marcel@holtmann.org> Cc: Mauro Carvalho Chehab <mchehab@infradead.org> Cc: "John W. Linville" <linville@tuxdriver.com> Cc: Greg KH <greg@kroah.com> 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-06-26cx88-blackbird: implement VIDIOC_QUERYCTRL and VIDIOC_QUERYMENUMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> This patch implements the newer v4l2 control features to make the standard user controls and mpeg encoder controls of cx88-blackbird video encoder boards available to userspace. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-06-26Pass an explicit log prefix to cx2341x_log_statusHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> A card number is not unique enough. Instead, let the caller specify the prefix of the status messages. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2006-06-25cx88-blackbird: implement VIDIOC_LOG_STATUSMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> implemented VIDIOC_LOG_STATUS in the cx88-blackbird driver to show the status of i2c clients and the cx23416 mpeg encoder. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-06-24cx88: cleanupsMichael Krufky
From: Adrian Bunk <bunk@stusta.de> remove the following unused hooks: - cx88-blackbird.c: cx88_ioctl_hook() - cx88-blackbird.c: cx88_ioctl_translator() make the following needlessly global functions static: - cx88-tvaudio.c: cx88_detect_nicam() remove the following unused EXPORT_SYMBOL's: - cx88-cards.c: cx88_bcount - cx88-cards.c: cx88_subids - cx88-cards.c: cx88_idcount - cx88-cards.c: cx88_card_list - cx88-cards.c: cx88_card_setup - cx88-core.c: cx88_start_audio_dma - cx88-core.c: cx88_stop_audio_dma - cx88-i2c.c: cx88_i2c_init Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-06-22cx88-blackbird: always set encoder height based on tvnorm->idMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> Removed the switch..case block in blackbird_probe for setting encoder height based on video standard. All blackbird devices can rely on tvnorm->id to retrieve this information from the cx2388x video decoder - tuner_formats should not be used to determine the encoding video standard. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-06-21CX2341X port was always set to 'memory', but 'streaming' is also possibleHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> ivtv uses the memory (DMA) interface with the CX2341X, while pvrusb2 and cx88-blackbird use the streaming interface. This setting is now selectable by the driver. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2006-06-18Put old MPEGCOMP API under #if __KERNEL__ and issue warnings when used.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2006-06-18Port cx88-blackbird to the new MPEG API.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2006-05-04cx88-blackbird: use encoder firmware filename defined in cx2341x.hMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> Since the filename of the cx23416 encoder firmware image is defined in cx2341x.h, we don't need to explicitly define it in cx88-blackbird.c anymore. This changeset removes BLACKBIRD_FIRM_ENC_FILENAME, replacing all occurrances with CX2341X_FIRM_ENC_FILENAME. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-04-30cx88-blackbird: pause the encoder during frequency changeMichael Krufky
From: Valentin Zagura <puthre@gmail.com> Added code to cx88-blackbird.c to treat the VIDIOC_S_FREQUENCY ioctl to stop mpeg stream before changing the frequency and restart it after. It seems that the mpeg stream needs to be paused while changing the channel frequency, otherwise the mpeg encoder enters into a bad state, producing artifacts. Signed-off-by: Valentin Zagura <puthre@gmail.com> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-04-28merge: from ~mkrufky/blackbird.fwMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-04-20cx88-blackbird: clean up the buffers when closing the MPEG streamMichael Krufky
From: Valentin Zagura <puthre@gmail.com> This patch cleans up the buffer queue when the MPEG stream is closed, preventing the message, 'cx8802_timeout' Signed-off-by: Valentin Zagura <puthre@gmail.com> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-04-17KWorld HardwareMpegTV XPert: set encoder video standard based on tvnormMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> The KWorld HardwareMpegTV XPert uses a multistandard tuner, tda8290 + tda8275. Without checking the video standard in blackbird_probe, the encoder defaults to PAL, even if the incoming video stream is NTSC. This patch checks the video standard set by the cx2388x decoder, and sets the encoding height and frame accordingly. This patch is designed to only affect the KWorld HardwareMpegTV XPert. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-04-17cx88-blackbird: revert video standard detection patchMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> This patch reverts changeset 328131dbb141 This patch was wrong... a better solution will come shortly. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-04-14cx88-blackbird: use standard filename for cx23416 encoder firmwareMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> cx88-blackbird uses the same encoder firmware for the cx23416 chip that is used by ivtv and pvrusb2. This patch alters the driver to expect the cx23416 encoder firmware to be located in the file, "v4l-cx2341x-enc.fw", instead of using "blackbird-fw-enc.bin" Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>