summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/em28xx/em28xx.h
AgeCommit message (Collapse)Author
2008-04-17em28xx-dvb: videobuf callbacks are waiting for em28xx_fhMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Thanks to Devin Heitmueller <devin.heitmueller@gmail.com> for pointing this issue. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-17em28xx: several fixes on gpio programmingMauro Carvalho Chehab
From: Devin Heitmueller <devin.heitmueller@gmail.com> em28xx-cards.c: - Fix reversed val/rst values in both analog_gpio and digital_gpio vectors - Fix crash that would was occurring during every analog startup while looping over gpio_ctl - Remove what appears to be a redundant setting of gpio_ctl->val - Don't use OREN538 demodulation for the HVR-950 (prevents ATSC scanning from working) em28xx-dvb.c: - Tuner should be in digital mode when issuing the reset - Add copyright - Change struct definition (corresponds to fix in em28xx-cards.c for gpio_ctl looping) Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-17em28xx: share the same xc3028 setup for analog and digital modesMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Thanks to Devin Heitmueller <devin.heitmueller@gmail.com> and Aidan Thornton" <makosoft@googlemail.com> for pointing some errors with the previous scenario. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-17Improve generic support for setting gpio valuesMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> em28xx based devices with xc3028 may require some specific gpio values. This patch adds a generic handling for such values. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-17em28xx: add a module to handle dvbMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> This patch adds em28xx-dvb. This driver is highly based on cx88-dvb and saa7134-dvb. This code currently loads and unloads successfully. However, some changes are needed to properly support the mpeg streams and to setup em28xx to work on DVB mode. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-13em28xx: Some cleanupsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Removes some fields from data structs. There are some fields that are just caching some calculus for buffer size. The calculus were moved to the places it were needed and the now unused fields were removed. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-13em28xx: fix buffer underrun handlingMauro Carvalho Chehab
This patch fixes three related issues and a fourth trivial one: - Use buffers even if no-one's currently waiting for them (fixes underrun issues); - Don't return incomplete/mangled frames at the start of streaming and in the case of buffer underruns; - Fix an issue which could cause the driver to write to a buffer that's been freed after videobuf_queue_cancel is called (exposed by the previous two fixes - for some reason, ignoring buffers that weren't being waited on worked around the issue); - Fix a bug which could cause only one field to be filled in the first buffer (or first few buffers) after streaming is started. Signed-Off-By: Aidan Thornton <makosoft@googlemail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-13em28xx: Some fixes to display logicMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-13em28xx: remove timeoutMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> It seems that we don't need a timeout for em28xx. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-13em28xx: Some fixes to videobufMauro Carvalho Chehab
From: Aidan Thornton <makosoft@googlemail.com> It fixes a couple of minor bugs, comments out a bogus BUG_ON, sets fh->type correctly, uses dev->width and dev->height for now, and adds a missing spinlock init (nasty - caused a system lockup). It also adds some debug code which probably isn't all that useful. I haven't tested this version of the patch yet, though, so I'm not sure what you can expect if you try it. Signed-off-by: Aidan Thornton <makosoft@googlemail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-13em28xx: convert to use videobuf-vmallocMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> The usage of videobuf-vmalloc allows to cleanup em28xx logic. Also, it reduced its size by about 5.42% on i386 arch (and about 7.5% on x86_64): 39113 4876 40 44029 abfd old/em28xx.ko 36731 4868 40 41639 a2a7 /home/v4l/master/v4l/em28xx.ko Also, the preliminary tests, made on a single core 1.5 MHz Centrino showed that CPU usage reduced from 42%-75% to 28%-33% (reports from "top") command. A test with time command presented an even better result: This is the performance tests I did, running code_example to get 1,000 frames @29.995 Hz (about 35 seconds of stream), tested on a i386 machine, running at 1,5GHz: The old driver: $ time -f "%E: %Us User time, %Ss Kernel time, %P CPU used" ./capture_example 0:34.21: 8.22s User time, 25.16s Kernel time, 97% CPU used The videobuf-based driver: $ time -f "%E: %Us User time, %Ss Kernel time, %P CPU used" ./capture_example 0:35.36: 0.01s User time, 0.05s Kernel time, 0% CPU used Conclusion: The time consumption to receive the stream where reduced from about 33.38 seconds to 0.05 seconds. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-02-08Allow more than one em28xx boardMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> em28xx driver is capable of handling more than one usb device. However, isoc transfers require a large amount of data to be transfered. Before this patch, just one em28xx board were enough to allocate more than 50% URBs: T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 8 B: Alloc=480/800 us (60%), #Int= 0, #Iso= 2 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 So, only one board could use an USB host at the same time. After the patch, it is possible to use more than one em28xx at the same time, on the same usb host, if the image size is slower or equal to 345600, since those images will require about 30% of the URBs: T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 8 B: Alloc=232/800 us (29%), #Int= 0, #Iso= 2 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 So, in thesis, after the patch, it would be possible to use up to 3 boards by each usb host, if the devices are generating small images. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-02-06em28xx-alsa: Add a missing mutexMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-28 em28xx/: make 2 functions staticMauro Carvalho Chehab
From: Adrian Bunk <bunk@kernel.org> This patch makes the following needlessly global functions static: - em28xx-core.c:em28xx_write_reg_bits() - em28xx-video.c:em28xx_vdev_init() Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-24em28xx: remove has_tunerMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> has_tuner flag doesn't make much sense, since tuner_type=TUNER_ABSENT means the same thing. Having two ways to say that a tuner is not present is not nice, since it may lead to bad setups. In fact, with the previous code, if a device were using has_tuner=0, but the user forces a tuner, with modprobe option tuner=type, the modprobe option won't work. Also, tveeprom returns TUNER_ABSENT, when tuner is unknown or absent. So, with the previous logic, in this case, the driver should set has_tuner=0, or has_tuner=1 otherwise. Instead of adding several additional tests and setups, better just to remove .has_tuner. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-13Move all board specific configuration to em28xx-cards.cMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> This cleanup moves the board-specific configurations to em28xx-cards.c. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-05Add Radio support for em28xxMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-05Properly implement 12MHz I2S supportMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-05Add code for autoloading em28xx-alsa, if neededMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Older em28xx devices does implement standard Audio Class. However, on newer devices, this were replaced by a Vendor Class. This patch autodetects that an em28xx lacks Audio Class and auto-loads em28xx-alsa, for the devices that implements only a Vendor Class. For devices with Audio Class, snd-usb-audio module will provide an ALSA interface. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-05Integrates em28xx-audio.c into em28xx kernel moduleMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Also fixes the remaining CodingStyle issues that Lindent didn't fix. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-05HVR950 requires additional settings for audio to properly workMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Thanks to Markus Rechberger <mrechberger@gmail.com> for retriving those commands. Also, MTS firmware is required for audio to work on HVR950. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-05Improve audio setup handlingMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> It is possible to select audio inputs via em28xx or via ac97 functions. This patch allows configuring a board to use either one way. It also do some cleanups at audio setup configurations. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-22Convert MTS to bitfieldMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Xc2028.3028 has two type of firmwares: audio-standard specific ones and baseband MTS firmwares. MTS firmwares provide stereo decoding for 6 MHz BTSC/EIAJ and for monoaural audio decoding on 8 MHz firmwares. It seems that the option to use MTS or a standard-specific audio decoding depends on the way xc2028/3028 is connected. Instead of wasting 32 (or 64 bits) to signalize if the driver needs to use MTS firmware, this patch converts it to a bitfield that can be shared with other proprieties of xc2028/3028. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-20Use MTS firmware for the HVR-900Mauro Carvalho Chehab
From: Aidan Thornton <makosoft@googlemail.com> The HVR-900 requires the MTS version of the xc3028 firmware in order to get any sound. The below patch selects this firmware variant on HVR-900 cards, as well as splitting the HVR-950 into its own entry (since I don't know if it uses the MTS variant and it will have to be split off eventually anyway). Signed-off-by: Aidan Thornton <makosoft@googlemail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-11Cleanup at tv norm selectionMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> With the conversion to the vidio_ioctl2, tvnorms array is not required anymore. Also, removed some code from V4L1 time (VIDEO_MODE_foo), specied at the non-used video_decoder.h. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-11Remove some dead code and make drive fully V4L2 compatibleMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> There were some vestiges of an old V4L1 I2C driver that were called by em28xx. This patch removes this dead code, and replaces videodev.h to videodev2.h Now, this driver doesn't require V4L1 anymore. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-11Fix read() methodMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Backport read() fixes from Markus Reichberger. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-11Fix em28xx read stream lockingMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> On some situations, closing an streaming application and re-opening were returning -EBUSY. Uses the same locking schema also present on cx88. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-10Fix em28xx to allow multiple openMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Allows shared access support for em28xx. Just one userspace application is allowed to get stream. The other(s) application(s) can change V4L2 controls, set video standards, etc. This patch were splited from Markus Rechberger's tree and backported to 2.6.17 by Pádraig Brady. The original patch were ported to the latest em28xx version and had CodingStyle corrected to solve the issues pointed by scripts/checkpatch.pl. Thanks to Pádraig Brady <P@draigBrady.com> for pointing this. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-04em28xx: autodetect Cinergy 200 USB and VGear PocketTVMauro Carvalho Chehab
From: Sascha Sommer <saschasommer@freenet.de> Adds autodetection support for the Cinergy200 USB and the VGear PocketTV. Whenever a usb device with generic empia em2800 usb ids is detected the device gets scanned for connected i2c devices. If the device list matches an em2800 device in the device list the model id gets changed accordingly. Signed-off-by: Sascha Sommer <saschasommer@freenet.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-03 em28xx: add support for vgear pockettvMauro Carvalho Chehab
From: Sascha Sommer <saschasommer@freenet.de> attached patch adds support for the vgear pockettv. It seems to require a write to another register for audio to work. I checked my old cinergydrv and we did the same register write there. I therefore enabled it for all em2800 based devices. Signed-off-by: Sascha Sommer <saschasommer@freenet.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-03em28xx: fix locking to allow accesses from 2 different threads at the same timeMauro Carvalho Chehab
From: Sascha Sommer <saschasommer@freenet.de> The attached patch modifies the em28xx driver so that there can be ioctls from multiple different threads. This is necessary for capture apps like MPlayer that use different threads for capturing and channel tuning. Now the locking is only done for the ioctls that change properties of the device or access the i2c bus. It also removes some locks that look unnecessary: In em28xx_init_dev: the videodevice is not registered yet so nothing can access the hardware meanwhile, the device struct is not assigned to the interface yet so no race with disconnect is possible In em28xx_release_resources: it gets only called when dev->lock is already held Signed-off-by: Sascha Sommer <saschasommer@freenet.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-03Add entry for Pixelview Prolink PlayTV USB 2.0Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-03Add a hint for boards without unique USB IDMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> This patch adds a function to allow trying to detect boards that shares the generic IDs. The current detection method is based at eeprom checksum. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-04-28Em28xx/: possible cleanupsMauro Carvalho Chehab
From: Adrian Bunk <bunk@stusta.de> This patch contains the following possible cleanups: - make the following needlessly global functions static: - em28xx-core.c: em28xx_accumulator_set() - em28xx-core.c: em28xx_capture_area_set() - em28xx-core.c: em28xx_scaler_set() - em28xx-core.c: em28xx_isocIrq() - remove the following unused EXPORT_SYMBOL's: - em28xx-cards.c: em28xx_boards - em28xx-cards.c: em28xx_bcount - em28xx-cards.c: em28xx_id_table Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-04-03Change all emails to the currently used one.Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-02-07Adding support for Terratec Prodigy XSMarkus Rechberger
From: Markus Rechberger <mrechberger@gmail.com> Adding support for Terratec Prodigy XS Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
2006-02-06sem2mutex: drivers/media/, #2Mauro Carvalho Chehab
Semaphore to mutex conversion. The conversion was generated via scripts, and the result was validated automatically via a script as well. Kernel-sync from patch 3318b Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-01-31added terratec hybrid xs and kworld 2800rf supportmrechberger
From: Markus Rechberger <mrechberger@gmail.com> added terratec hybrid xs product/vendorid added gpio audio initialization for kworld pvr 2800rf Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
2006-01-22Hauppauge HVR 900 Composite supportMarkus Rechberger
From: Markus Rechberger <mrechberger@gmail.com> Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
2006-01-21Several fixes to prepare for VBIMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> - Copyright changes were applied to wrong module. Fixing. - Fixed VBI compilation. - Included capacity to specify vbi and video number. - Added a better control for using more than one em28xx device. - VIDIOC_G_FMT now calls a function. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-01-02Fix incorrect filename reference in top commentsMichael Krufky
Signed-off-by: Michael Krufky <mkrufky@m1k.net>
2006-01-01ioctls cleanups.Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@brturbo.com.br> - Now, all internal ioctls are at v4l2-common.h - removed unused ioctl at saa6752hs.h - all debug ioctl code moved to v4l2-common.c - removed duplicated stuff from other cards Signed-off-by: Michael Krufky <mkrufky@m1k.net> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-12-26Fixed API to set I2S speed controlMauro Carvalho Chehab
- Created a new ioctl to control I2S speed. Old calls to an inadequate V4L2 API replaced. Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-12-18Fix compilation failure with gcc 2.95.3.Mauro Carvalho Chehab
Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-12-17Reverted latest two patchesMauro Carvalho Chehab
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-12-17Fix compilation failure with gcc 2.95.3 and corrected set video stdMauro Carvalho Chehab
From:: Jean Delvare <khali@linux-fr.org> - Fix compilation failure with gcc 2.95.3. - Corrected a bug at video std check at cx25840 module Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-11-06- Fixed autodetection of max size by if alternate settingMauro Carvalho Chehab
- Fixed some debug messages Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-10-30 - Renamed common structures to em28xxMauro Carvalho Chehab
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2005-10-26- Added Pinnacle Dazzle DVC 90Mauro Carvalho Chehab
Thanks-to: Stefan Kristiansson <stefan@langante.mine.nu> Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>