summaryrefslogtreecommitdiff
path: root/linux/drivers/media/common/saa7146_video.c
AgeCommit message (Collapse)Author
2004-04-28- fix some ppc be endianess issues, overlay works fine, grabbing does not ↵Michael Hunold
work reliably yet, though
2004-03-19- copy & paste error: don't check for streaming capture twice, check for ↵Michael Hunold
overlay video in one case
2004-03-16- fix two debug messages (mixed up streaming capture and overlay)Michael Hunold
- restrict S_FBUF ioctl to CAP_SYS_ADMIN or CAP_SYS_RAWIO - don't refuse setting S_FBUF when overlay is active (changes become visible with the next update)
2004-03-15- code review of what's actually needed to be protected by a spinlock and by ↵Michael Hunold
the device lock - this fixes the "in_atomic():1, irqs_disabled():1" warnings in the syslog
2004-03-12With the addition of the ressource management, an overlay couldn't beMichael Hunold
interrupted by a streaming capture any more. So: - revamp video_begin()/video_end(), saa7146_start_preview()/saa7146_stop_preview - clean up a lot of mess around the usage of these functions - allow overlay to be suspended by streaming capture again, if ressources are available
2004-03-11- minor debug output cleanup in the resource handling functionsMichael Hunold
- deny activation of streaming capture if overlay is active, apps must disable overlay first - fix resource handling for overlay - don't try to stop streaming capture when it's not running
2004-02-26[PATCH] C99 initializers for drivers/media/common/saa7146_video.c by Art HaasMichael Hunold
2004-02-02- don't free resources while spinlock is held (might sleep)Michael Hunold
2004-02-02- release resources for video overlay properly, don't rely on VIDIOC_OVERLAY(0)Michael Hunold
2004-01-26- don't try to disable video overlay if it wasn't enabled beforeMichael Hunold
(bug catched by new resource management)
2004-01-26- make sure to disable clipping before capturing, otherwise capturing mayMichael Hunold
not work - make sure to disable the right video dma at capture stop
2004-01-14- bit masks are evil: disable the right video dma upon device close, otherwiseMichael Hunold
severe memory damage can occur...
2004-01-06fix build with 2.6.1-rc1-mm2 (VIDIOC_S_CTRL_OLD / VIDIOC_OVERLAY_OLD)Johannes Stezenbach
2004-01-05- fix compiler warningMichael Hunold
- fix problems caused by changes in ioctl definitions
2004-01-04- some small indentation fixes in saa7146_hlp.cMichael Hunold
- deny usage of planar formats for video overlay - more intelligent checks in VIDIOC_STREAMON and VIDIOC_STREAMOFF - fix read() capture while overlay is running
2004-01-03saa7146 driver improvements, only affects Video4Linux stuff:Michael Hunold
- add resource management functions - lock various stuff against each other, mostly vbi capture vs. planar capture formats, which use the same video dma - remove old commented out code - add new "flag" variable to saa7146_formats struct, store the information if a capture format is planar or packed - check for return codes at various places
2003-12-21- don't disable the capture engine via video_end() before video-buf hasMichael Hunold
cleared the various capture queue and has shut down capturing (Thanks Gerd for explaining the pitfalls here!)
2003-12-15- fix compilationMichael Hunold
- more video/vbi open/release fixes
2003-12-15- fix a bunch of race conditions and locking bugs in video and vbiMichael Hunold
capture code on device closure - change minimal picture size to 48x32 just like other drivers
2003-11-20- make saa7146_pgtable_build_single() deliver a return code, make someMichael Hunold
sanity checks of the arguments (if a bad pagetable is created, unpredictable thinks can happen. trust me... ;-) - follow this change for the several uses
2003-11-20- remove unnecessary "capture memory in framebuffer" special functionsMichael Hunold
which were commented out anyway - fix one typo
2003-10-09- backfeed patches from 2.6.0-test7, which have not gone through our cvs:Michael Hunold
- janitorial fixes (mostly return code handling) - spelling fixes in Kconfig files - line breaks to re-formatting
2003-09-29fix VIDIOC_S_FBUF for v4l1 backward compatility with xfree86 / v4l_drvJohannes Stezenbach
2003-08-26Fix bytesperline-calculation forMichael Hunold
V4L2_FIELD_ALTERNATE vs. V4L2_FIELD_INTERLACED captures
2003-08-11- follow latest changes in video-bufMichael Hunold
- fix pgtable_build_single, it should work for all kinds of buffers (system memory (kernel/user) and gfx-memory) - add/change some debug messages
2003-07-31Improvements regarding streaming capture to gfx card memory.Michael Hunold
2003-07-17[V4L] - fix static build for hexium_gemini and hexium_orion drivers (Thanks ↵Michael Hunold
to Adrian Bunk <bunk@fs.tum.de> for reporting this) [V4L] - set debug verbosity to 0 for hexium_gemini and hexium_orion drivers [V4L] - make hexium_gemini and hexium_orion drivers depdend on i2c module [V4L] - make saa7146 module depend on hexium_gemini and hexium_orion drivers [V4L] - let the saa7146 i2c bus report itself as I2C_ADAP_CLASS_TV_ANALOG
2003-07-07Make the "ext_vv_data" informations a per-device information insteadMichael Hunold
of a per-extension information. This is needed for the DVB-C cards, which seem to have swapped field order and need to propagate some video4linux specific stuff for the analog module to work.
2003-07-01Holger:Michael Hunold
Kannst Du das bitte ändern und die EXPORT_SYMBOL*()-Gesichten in ein saa7146_ksyms.c oder wie auch immer kapseln? "saa7146_core.c" has all dependencies for the "saa7146_core.o" module (saa7146_core.c and saa7146_i2c.c) The dependencies for the "saa7146_vv.o" module have been moved from the source files to "saa7146_vv_ksyms.c", the Makefiles habe been changed accordingly. Ok?
2003-07-01- capturing alternating fields to different buffers works nowMichael Hunold
2003-07-01- fix a capture problem (fields got lost accidentaly, fields belongingMichael Hunold
to different frames were sometimes mixed) - first try to get alternating field capture running - add/change some debug messages
2003-06-27Don't complain when an app tries to turn *off* overlay, butMichael Hunold
there are no overlay informations.
2003-06-26- fix usage of "v4l2_common_std()" from v4l2-common.c in saa7146_video.cMichael Hunold
- change saa7146_vv.h the way described earlier - follow these changes in budget-av and hexium driver
2003-06-18When I submitted the last patchset for the 2.5 kernel series,Michael Hunold
Alan Cox reformatted the code to follow his coding style when he fixed the merge bugs. This patch now introduces these coding style changes, so that we don't wipe out his changes with the next patchset.
2003-06-03Here comes the "dvb-c analog module hack"Michael Hunold
- if the analog module is detected, the saa7113 is initialized and some more v4l2 ioctls are available. you can use "xawtv" now to switch between "dvb" and "analog" input. when you are one the "analog" input, you can tune in analog channels with the cursor keys via v4l2. currently, this is a big hack -- tuning is not mutually exclusive, so "szap" and v4l2 tuning can interfere with each other. the demodulator address is hardcoded to 0x09. Other changes: - changed the saa7146 ioctl parameters, give out the data of the current device open "fh" (=> "file handle"), not the pointer to the device structure "dev". It is "dev = fh->dev". Some stuff does not work: - analog audio does not work. does the msp3400 need to be reprogrammed? - one field is "missing", so the picture is very bad and capturing does not work neither. this needs to be investigated by looking at the programming the windows driver uses for the saa7146
2003-05-28I removed all "analog" drivers from the main CVS repository and moved themMichael Hunold
to a separate "analog-2.4" directory. Main reasons: - the drivers don't have anything to do with dvb 8-) - the drivers are already in the kernel (besides the "Hexium" driver) and don't change that much any more - the analog drivers rely on the i2c subsystem, which was heavily modified between 2.4 and 2.5. When making a new DVB patchset I have to work around these differences every time, which is very annoying
2003-04-22- removed the compatibility crap around KBUILD_MODNAME from all drivers,Michael Hunold
use KBUILD_BASENAME for 2.4 instead ­ some changes to the i2c core to make it work with both 2.4 and late 2.5 kernels (not done yet -- only interesting for analog drivers) - add MODULE_DEVICE_TABLE to all drivers, so that pci "hotplug" can detect the devices automatically. Alan Cox says, that we should use this to load the firmware (not done yet) - fix the long standing "insmod/rmmod with multiple budget cards" bug -- it was a double kfree() call...
2003-03-28A whole bunch of small changes all over the place:Michael Hunold
makelinks: adjust the script for the upcoming kernel patches driver.mxb: prevent the tuner module from probing unnecessary i2c addresses getlinks: put symlinks for the header files to the right place(TM) videodev.c: add a verbose error message just for the case that a user has compiled the v4l module into the kernel media/Kconfig: the dpc driver does not the tuner module saa7146_hlp.c: honour the swapped field order for av7110 based cards in capture mode, too saa7146_video.c: add some verbose messages for the v4l2 controls mxb.c: hopefully fix the detection and initialization of the sound arena module
2003-03-20Small changes all over the place:Michael Hunold
- sync Kconfig and Makefiles with 2.5.65 - fix various things in saa7146 because of latest v4l changes in 2.5.65 - makelinks: removed the compat module from the 2.5.x build process - makelinks: removed the linkage of ttusb and bt8xx -- enable this again for the next patches, when ttusb is more stable and the bt8xx related patches have been applied by Gerd Knorr - dvb: removed the compat module from the 2.5.x build process, added #ifdefs around the inclusion of compat.h. this was necessary because having compat code in the newest 2.5.x kernel is awkward. - dvb: move around of dvb_usercopy again. because I removed the compat module from the 2.5.x build process, dvb_usercopy had to be moved to another file - dvb: change MOD_*_USE_COUNT to module_get/module_put in various files, but I'm not sure if I did this right. please review these changes. - dvb: removed the crc32 code from dvb_demux.c, because it's in compat.c, too. - dvb: removed some cruft from dvd_i2c.c, which is present in compat.h - all files: apply small fixes to reflect the new location of some header files
2003-03-20This is the beginning of some modifications to get the newMichael Hunold
"dvb-kernel" tree into shape for direct inclusion into the 2.5.x kernel.
2003-03-06Removed some debug messages, verified that it works with "mp1e" andMichael Hunold
"nvrec"... (red/blue were swapped)
2003-03-06Added some planar yuv modes to the saa7146 driver core:Michael Hunold
- V4L2_PIX_FMT_YUV422P: YUV 4:2:2 planar (Y-Cb-Cr) - V4L2_PIX_FMT_YVU420: YVU 4:2:0 planar (Y-Cb-Cr) - V4L2_PIX_FMT_YUV420: YUV 4:2:0 planar (Y-Cb-Cr) Planar modes don't suffer from the saa7146 byte swap bug, so we can deliver the formats needed by various video encoders, like "mp1e" or "nvrec". Added some notes to the TODO file.
2003-01-09Fixes for 2.5.55 all over the place:Michael Hunold
- removed the patches, they are not needed any more. you can now use a vanilla 2.5.55 kernel - created a new backport for video-buf and videodev from the 2.5.55 sources - necessary fixes to the saa7146 driver due to changes in 2.5.55 - the core budget functions are now provided by a module called "budget-core.o". (otherwise static compilation is not possible...) - removed #ifdef MODULE crap from all files Misc. - "xawtv" (using xv extension) resulted in wrong colors. the problem is within "xawtv". Gerd Knorr told me, that it'll be fixed in the next release. I tested this version with 2.4.20, 2.5.55 (modules) and 2.5.55 (static).
2003-01-07- Fixed all initializers to C99, expect av7110.cMichael Hunold
- removed unused variables - other code clenaups - corrected H_PIXELS_PAL to 720 (not used for DVB-cards)
2003-01-06Fixed the "gray bar on the left side of the video window afterMichael Hunold
startup" bug.
2003-01-05Fixed a saa7146 driver flaw: after a read() call is satisfied,Michael Hunold
a previoulsy running overlay window should be re-enabled.
2002-12-30Next chunk of big splitup / cleanup:Michael Hunold
(tested on 2.4.18 and 2.5.53 -- the budget driver is untested, Holger will test it the next week) saa7146: - completely separated the saa7146 driver into a core-driver (saa7146.o) and a video/vbi part (saa7146_vv.o). this allows you to build the budget driver without av7110 and videodev bloat (see below) The following thinks have been approved by Holger Waechtler: av7110 (now ttpci): - for 2.5.x: removed the av7110 directory and put everything into ttpci. - removed all budget card support from this driver - compile and build fixes for the saa7146 changes ttpci-budget (new): - for 2.5.x: created a new ttpci-budget directory, added a new driver for the budget cards mxb: - compile and build fixes for the saa7146 changes Changed the build and compile files for both 2.5.x and build-2.4 of course...
2002-12-29Major cleanup: the goal is to get rid of the budget card <=> saa7146.o <=> ↵Michael Hunold
videodev.o dependency, so we can later split up the av7110 driver into a av7110 and budget card driver. I tested this on 2.4.18-3 (original RedHat 7.3 kernel) and 2.5.53. Changes in detail: saa7146: - fixed the unitialised timer warnings - split saa7146.o into saa7146.o and saa7146_vv.o: all videodev (ie. v4l) related stuff is now encapsulated in saa7146_vv.o. the extension (ie. mxb or dvb-ttpci) now has to make sure to register the v4l devices via helper functions provided by saa7146_vv mxb: - changes to make the driver compile with the new saa7146 and saa7146_vv parts - fix the vbi bypass issue for MXBs with saa7146, rev. 1 card av7110: - changes to make the driver compile with the new saa7146 and saa7146_vv parts - some changes related to the upcoming av7110 <=> budget splitup, but they are commented out - changed the saa7146 PAL values to experimental values that look good to me, but kept the old values as a comment. where are the original values from? there is a big black border on most channels on the left side which annoyed me... - changed from video/generic_usercopy() to dvb_usercopy() and put this into the source code, not into compat.c - moved the crc_32* stuff from compat.c to the source file where it is used - now compat.[ch] was removed completely, all references were deleted from all other files. other: - updated the README and TODO files - changed "makelinks" to remove alps_bsru6 stuff from kernel when making the symlinks - fixed the build files in "build-2.4" - fixed all other files needed for 2.5.x kernel build
2002-12-23For some unobvious reason, analog cards (ie. the MXB) and digital cardsMichael Hunold
(ie. the av7110) handle the odd/even fields differently. I added a new field to the extension, which holds special flags of the extension and the device. I declared the MXB way of handling fields as "normal", so the av7110 extension sets SAA7146_EXT_SWAP_ODD_EVEN here. @Holger: I added some superfluous "struct saa7146_dev *dev" variables back to some functions. These cause ugly warnings at compile time, I admit, but they are necessary if you want to use the debug macros to trace a saa7146 register for example. Please leave them in for now -- I need this when I switch between old-DVB / old-MXB <=> new-DVB / new-MXB drivers and try to hack out the differences.
2002-12-20More compile fixes to allow a flawless static build, changed theMichael Hunold
READMEs accordingly, compile fixes for the mxb driver.