freebsd-skq/sys/dev/bktr/CHANGELOG.TXT

520 lines
27 KiB
Plaintext

/* $FreeBSD$ */
/*
* This is part of the Driver for Video Capture Cards (Frame grabbers)
* and TV Tuner cards using the Brooktree Bt848, Bt848A, Bt849A, Bt878, Bt879
* chipset.
* Copyright Roger Hardiman and Amancio Hasty.
*
* CHANGELOG : The Change History:
* These version numbers represent the authors own numbering.
* They are unrelated to Revision Control numbering of FreeBSD or
* any other system.
1.0 1/24/97 First Alpha release
1.1 2/20/97 Added video ioctl so we can do PCI To PCI
data transfers. This is for capturing data
directly to a vga frame buffer which has
a linear frame buffer. Minor code clean-up.
1.3 2/23/97 Fixed system lock-up reported by
Randall Hopper <rhh@ct.picker.com>. This
problem seems somehow to be exhibited only
in his system. I changed the setting of
INT_MASK for CAP_CONTINUOUS to be exactly
the same as CAP_SINGLE apparently setting
bit 23 cleared the system lock up.
version 1.1 of the driver has been reported
to work with STB's WinTv, Hauppage's Wincast/Tv
and last but not least with the Intel Smart
Video Recorder.
1.4 3/9/97 fsmp@freefall.org
Merged code to support tuners on STB and WinCast
cards.
Modifications to the contrast and chroma ioctls.
Textual cleanup.
1.5 3/15/97 fsmp@freefall.org
new bt848 specific versions of hue/bright/
contrast/satu/satv.
Amancio's patch to fix "screen freeze" problem.
1.6 3/19/97 fsmp@freefall.org
new table-driven frequency lookup.
removed disable_intr()/enable_intr() calls from i2c.
misc. cleanup.
1.7 3/19/97 fsmp@freefall.org
added audio support submitted by:
Michael Petry <petry@netwolf.NetMasters.com>
1.8 3/20/97 fsmp@freefall.org
extended audio support.
card auto-detection.
major cleanup, order of routines, declarations, etc.
1.9 3/22/97 fsmp@freefall.org
merged in Amancio's minor unit for tuner control
mods.
misc. cleanup, especially in the _intr routine.
made AUDIO_SUPPORT mainline code.
1.10 3/23/97 fsmp@freefall.org
added polled hardware i2c routines,
removed all existing software i2c routines.
created software i2cProbe() routine.
Randall Hopper's fixes of BT848_GHUE & BT848_GBRIG.
eeprom support.
1.11 3/24/97 fsmp@freefall.org
Louis Mamakos's new bt848 struct.
1.12 3/25/97 fsmp@freefall.org
japanese freq table from Naohiro Shichijo.
new table structs for tuner lookups.
major scrub for "magic numbers".
1.13 3/28/97 fsmp@freefall.org
1st PAL support.
MAGIC_[1-4] demarcates magic #s needing PAL work.
AFC code submitted by Richard Tobin
<richard@cogsci.ed.ac.uk>.
1.14 3/29/97 richard@cogsci.ed.ac.uk
PAL support: magic numbers moved into
format_params structure.
Revised AFC interface.
fixed DMA_PROG_ALLOC size misdefinition.
1.15 4/18/97 John-Mark Gurney <gurney_j@resnet.uoregon.edu>
Added [SR]RGBMASKs ioctl for byte swapping.
1.16 4/20/97 Randall Hopper <rhh@ct.picker.com>
Generalized RGBMASK ioctls for general pixel
format setting [SG]ACTPIXFMT, and added query API
to return driver-supported pix fmts GSUPPIXFMT.
1.17 4/21/97 hasty@rah.star-gate.com
Clipping support added.
1.18 4/23/97 Clean up after failed CAP_SINGLEs where bt
interrupt isn't delivered, and fixed fixing
CAP_SINGLEs that for ODD_ONLY fields.
1.19 9/8/97 improved yuv support , cleaned up weurope
channel table, incorporated cleanup work from
Luigi, fixed pci interface bug due to a
change in the pci interface which disables
interrupts from a PCI device by default,
Added Luigi's, ioctl's BT848_SLNOTCH,
BT848_GLNOTCH (set luma notch and get luma not)
1.20 10/5/97 Keith Sklower <sklower@CS.Berkeley.EDU> submitted
a patch to fix compilation of the BSDI's PCI
interface.
Hideyuki Suzuki <hideyuki@sat.t.u-tokyo.ac.jp>
Submitted a patch for Japanese cable channels
Joao Carlos Mendes Luis jonny@gta.ufrj.br
Submitted general ioctl to set video broadcast
formats (PAL, NTSC, etc..) previously we depended
on the Bt848 auto video detect feature.
1.21 10/24/97 Randall Hopper <rhh@ct.picker.com>
Fix temporal decimation, disable it when
doing CAP_SINGLEs, and in dual-field capture, don't
capture fields for different frames
1.22 11/08/97 Randall Hopper <rhh@ct.picker.com>
Fixes for packed 24bpp - FIFO alignment
1.23 11/17/97 Amancio <hasty@star-gate.com>
Added yuv support mpeg encoding
1.24 12/27/97 Jonathan Hanna <pangolin@rogers.wave.ca>
Patch to support Philips FR1236MK2 tuner
1.25 02/02/98 Takeshi Ohashi
<ohashi@atohasi.mickey.ai.kyutech.ac.jp> submitted
code to support bktr_read .
Flemming Jacobsen <fj@schizo.dk.tfs.com>
submitted code to support radio available with in
some bt848 based cards;additionally, wrote code to
correctly recognized his bt848 card.
Roger Hardiman <roger@cs.strath.ac.uk> submitted
various fixes to smooth out the microcode and made
all modes consistent.
1.26 Moved Luigi's I2CWR ioctl from the video_ioctl
section to the tuner_ioctl section
Changed Major device from 79 to 92 and reserved
our Major device number -- hasty@star-gate.com
1.27 Last batch of patches for radio support from
Flemming Jacobsen <fj@trw.nl>.
Added B849 PCI ID submitted by:
Tomi Vainio <tomppa@fidata.fi>
1.28 Frank Nobis <fn@Radio-do.de> added tuner support
for the German Phillips PAL tuner and
additional channels for german cable tv.
1.29 Roger Hardiman <roger@cs.strath.ac.uk>
Revised autodetection code to correctly handle both
old and new VideoLogic Captivator PCI cards.
Added tsleep of 2 seconds to initialistion code
for PAL users.Corrected clock selection code on
format change.
1.30 Bring back Frank Nobis <fn@Radio-do.de>'s opt_bktr.h
1.31 Randall Hopper <rhh@ct.picker.com>
submitted ioctl to clear the video buffer
prior to starting video capture
Amancio : clean up yuv12 so that it does not
affect rgb capture. Basically, fxtv after
capturing in yuv12 mode , switching to rgb
would cause the video capture to be too bright.
1.32 disable inverse gamma function for rgb and yuv
capture. fixed meteor brightness ioctl it now
converts the brightness value from unsigned to
signed.
1.33 added sysctl: hw.bt848.tuner, hw.bt848.reverse_mute,
hw.bt848.card
card takes a value from 0 to bt848_max_card
tuner takes a value from 0 to bt848_max_tuner
reverse_mute : 0 no effect, 1 reverse tuner
mute function some tuners are wired reversed :(
1.34 reverse mute function for ims turbo card
1.35 Roger Hardiman <roger@cs.strath.ac.uk>
options BROOKTREE_SYSTEM_DEFAULT=BROOKTREE_PAL
in the kernel config file makes the driver's
video_open() function select PAL rather than NTSC.
This fixed all the hangs on my Dual Crystal card
when using a PAL video signal. As a result, you
can lose the tsleep (of 2 seconds - now 0.25!!)
which I previously added. (Unless someone else
wanted the 0.25 second tsleep).
1.36 added bt848.format sysctl variable.
1 denotes NTSC , 0 denotes PAL
1.37 added support for Bt878 and improved Hauppauge's
bt848 tuner recognition
1.38 Further improvements on Hauppauge's rely on
eeprom[9] to determine the tuner type 8)
AVerMedia card type added <sos@freebsd.org>
1.39 08/05/98 Roger Hardiman <roger@cs.strath.ac.uk>
Updated Hauppauge detection code for Tuner ID 0x0a
for newer NTSC WinCastTV 404 with Bt878 chipset.
Tidied up PAL default in video_open()
Soren bumped version from 1.39 to 1.49 to sync
with FreeBSD CVS numbers.
1.49 10 August 1998 Roger Hardiman <roger@cs.strath.ac.uk>
Added Capture Area ioctl - BT848[SG]CAPAREA.
Normally the full 640x480 (768x576 PAL) image
is grabbed. This ioctl allows a smaller area
from anywhere within the video image to be
grabbed, eg a 400x300 image from (50,10).
See restrictions in BT848SCAPAREA.
1.50 31 August 1998 Roger Hardiman <roger@cs.strath.ac.uk>
Renamed BT848[SG]CAPAREA to BT848_[SG]CAPAREA.
Added PR kern/7177 for SECAM Video Highway Xtreme
with single crystal PLL configuration
submitted by Vsevolod Lobko <seva@alex-ua.com>.
In kernel configuration file add
options OVERRIDE_CARD=2
options OVERRIDE_TUNER=11
options BKTR_USE_PLL
1.51 31 August 1998 Roger Hardiman <roger@cs.strath.ac.uk>
Fixed bug in Miro Tuner detection. Missing Goto.
Removed Hauppauge EEPROM 0x10 detection as I think
0x10 should be a PAL tuner, not NTSC.
Reinstated some Tuner Guesswork code from 1.27
1.52 3 Sep 1998 Roger Hardiman <roger@cs.strath.ac.uk>
Submitted patch by Vsevolod Lobko <seva@alex-ua.com>
to correct SECAM B-Delay and add XUSSR channel set.
1.53 9 Sep 1998 Roger Hardiman <roger@cs.strath.ac.uk>
Changed METEORSINPUT for Hauppauge cards with bt878.
Submitted by Fred Templin <templin@erg.sri.com>
Also fixed video_open defines and 878 support.
1.54 18 Sep 1998 Roger Hardiman <roger@cs.strath.ac.uk>
Changed tuner code to autodetect tuner i2c address.
Addresses were incorrectly hardcoded.
1.55 21 Sep 1998 Roger Hardiman <roger@cs.strath.ac.uk>
Hauppauge Tech Support confirmed all Hauppauge 878
PAL/SECAM boards will use PLL mode.
Added to card probe. Thanks to Ken and Fred.
1.56 21 Jan 1999 Roger Hardiman <roger@cs.strath.ac.uk>
Added detection of Hauppauge IR remote control.
and MSP34xx Audio chip. Fixed i2c read error.
Hauppauge supplied details of new Tuner Types.
Danny Braniss <danny@cs.huji.ac.il> submitted Bt878
AVerMedia detection with PCI subsystem vendor id.
1.57 26 Jan 1999 Roger Hardiman <roger@cs.strath.ac.uk>
Support for MSP3410D / MSP3415D Stereo/Mono audio
using the audio format Auto Detection Mode.
Nicolas Souchu <nsouch@freebsd.org> ported the
msp_read/write/reset functions to smbus/iicbus.
METEOR_INPUT_DEV2 now selects a composite camera on
the SVIDEO port for Johan Larsson<gozer@ludd.luth.se>
For true SVIDEO, use METEOR_INPUT_DEV_SVIDEO
1.58 8 Feb 1999 Roger Hardiman <roger@cs.strath.ac.uk>
Added check to bktr_mmap from OpenBSD driver.
Improved MSP34xx reset for bt848 Hauppauge boards.
Added detection for Bt848a.
Vsevolod Lobko<seva@sevasoft.alex-ua.com> added
more XUSSR channels.
1.59 9 Feb 1999 Added ioctl REMOTE_GETKEY for Hauppauge Infra-Red
Remote Control. Submitted by Roger Hardiman.
Added ioctl TVTUNER_GETCHANSET and
BT848_GPIO_SET_EN,BT848_GPIO_SET_DATA (and GETs)
Submitted by Vsevolod Lobko <seva@alex-ua.com>
1.60 23 Feb 1999 Roger Hardiman <roger@freebsd.org>
Corrected Mute on Hauppauge Radio cards.
Autodetect MMAC Osprey by looking for "MMAC" in the EEPROM.
Added for Jan Schmidt <mmedia@rz.uni-greifswald.de>
Added ALPS Tuner Type from Hiroki Mori <mori@infocity.co.jp>
1.61 29 Apr 1999 Roger Hardiman <roger@freebsd.org>
Fix row=0/columns=0 bug. From Randal Hopper<aa8vb@ipass.net>
Add option to block the reset of the MSP34xx audio chip by
adding options BKTR_NO_MSP_RESET to the kernel config file.
This is useful if you run another operating system
first to initialise the audio chip, then do a soft reboot.
Added for Yuri Gindin <yuri@xpert.com>
1.62 29 Apr 1999 Added new cards: NEC PK-UG-X017 and I/O DATA GV-BCTV2/PCI
Added new tuner: ALPS_TSBH1 (plus FM Radio for ALPS_TSCH5)
Added support for BCTV audio mux.
All submitted by Hiroki Mori <mori@infocity.co.jp>
1.63 29 Apr 1999 Roger Hardiman <roger@freebsd.org>
Added initial code for VBI capture based on work by
Hiroki Mori <mori@infocity.co.jp> and reworked by myself.
This allows software decoding of teletext, intercast and
subtitles via /dev/vbi.
1.64 7 May 1999 Roger Hardiman <roger@freebsd.org>
Support LifeView FlyVideo 98 cards. Use EEPROM for card
autodetection. Use bttv's audio mux values.
Thanks to Paul Reece <paul@fastlane.net.au>,
Ivan Brawley <brawley@internode.com.au> and
Gilad Rom <rom_glsa@ein-hashofet.co.il>
Automatically locate the EEPROM i2c address and read the
subsystem_vendor_id from EEPROM and not the PCI registers.
Add NSMBUS checks around smbus/iicbus i2c bus code
making it easier to compile the driver under 2.2.x.
Add GPIO mask for the audio mux to each card type.
Add CARD_ZOLTRIX and CARD_KISS from mailing list searches.
1.65 18 May 1999 Roger Hardiman <roger@freebsd.org>
Change Intel GPIO mask to stop turning the Intel Camera off
Fixed tuner selection on Hauppauge card with tuner 0x0a
Replaced none tuner with no tuner for Theo de Raadt.
Ivan Brawley <brawley@internode.com.au> added
the Australian channel frequencies.
1.66 19 May 1999 Ivan Brawley <brawley@internode.com.au> added better
Australian channel frequencies.
1.67 23 May 1999 Roger Hardiman <roger@freebsd.org>
Added rgb_vbi_prog() to capture VBI data and video at the
same time. To capture VBI data, /dev/vbi must be opened
before starting video capture.
1.68 25 May 1999 Roger Hardiman <roger@freebsd.org>
Due to differences in PCI bus implementations from various
motherboard chipset manufactuers, the Bt878/Bt879 has 3
PCI bus compatibility modes. These are
NORMAL PCI 2.1 for proper PCI 2.1 compatible chipsets.
INTEL 430 FX for the Intel 430 FX chipset.
SIS VIA CHIPSET for certain SiS and VIA chipsets.
Older Intel and non-Intel chipsets may also benefit from
either 430_FX or SIS/VIA mode.
NORMAL PCI mode is enabled by default.
For INTEL 430 FX mode, add this to your kenel config:
options "BKTR_430_FX_MODE"
For SiS / VIA mode, add this to your kernel config:
options "BKTR_SIS_VIA_MODE"
Using quotes in these options is not needed in FreeBSD 4.x.
Note. Newer VIA chipsets should be fully PCI 2.1 compatible
and should work fine in the Default mode.
Also rename 849 to 849A, the correct name for the chip.
1.69 12 June 1999 Roger Hardiman <roger@freebsd.org>
Updates for FreeBSD 4.x device driver interface.
BSDI code removed. Will be restored later.
1.70 12 July 1999 Roger Hardiman <roger@freebsd.org>
Reorganise OS device dependant parts (based on a port to
linux by Brad Parker).
Make the driver compile on FreeBSD 2.2.x systems again.
Change number of VBI lines from 16 to 12 for NTSC formats.
Changes to probeCard() for better eeprom identification.
Added STB Bt878 card identification.
Add Hauppauge model identification to probeCard().
Added TDA9850 initialisation code taken from Linux bttv.
Juha.Nurmela@quicknet.inet.fi found/fixed bug in VBI_SLEEP.
Matt Brown <matt@dqc.org> added MSP3430G DBX initialisation.
1.71 30 Aug 1999 Roger Hardiman <roger@freebsd.org>
Small cleanup of OS dependant code. Remove NPCI usage.
Fix bug in AVerMedia detection.
Update VBI support for the AleVT Teletext package. Parts
from Juha Nurmela's driver <Juha.Nurmela@quicknet.inet.fi>
Add support for Hauppauge 627 and Temic 4006 submitted
by Maurice Castro <maurice@atum.castro.aus.net>
Tom Jansen <tom@unhooked.net> added BSDi support again.
1.72 31 Aug 1999 Juha Nurmela <Juha.Nurmela@quicknet.inet.fi>
Clear cap_ctl register when restarting the RISC program.
This fixes the freezes experienced when changing changes.
1.73 10 Sep 1999 Roger Hardiman <roger@freebsd.org>
Add Hauppauge tuner #6 for Brian Somers <brian@freebsd.org>
Add card type for Aimslabs Video Highway Xtreme for
Ladislav Kostal <kostal@pefstud.uniag.sk>
Added select() code (for VBI) for the 2.2.x driver
tested by Steve Richards <steve@richsoft.demon.co.uk>
1.74 17 Sep 1999 Roger Hardiman <roger@freebsd.org>
Fix bug where FM radio stations were offset after using FXTV
AVerMedia tuner type autodetection added for cards with
a configuration EEPROM (currently their Bt878 range)
Thanks to Frank at AVerMedia for providing the information.
Tested by David La Croix <dlacroix@cowpie.acm.vt.edu>
Tidy up some tuner code and Hauppauge detection code.
New NetBSD code from Bernd Ernesti<bernd@arresum.inka.de>
2.00 25 Sep 1999 Roger Hardiman <roger@freebsd.org>
Split the driver into separate tuner, card and audio sections.
Update tuner code for FM radio to use datasheet equations.
2.01 27 Sep 1999 Roger Hardiman <roger@freebsd.org>
Add Dynalink Magic TView for Craig <crh@outpost.co.nz>
Add Leadtek Winfast 2000 for Peter Wemm <peter@netplex.com.au>
There is no audio support on these 2 cards yet.
Tidy up a few tables with tabs and PLL selection code.
Restore Video Highway Xtreme PLL code.
2.02 4 Oct 1999 Peter Wemm <peter@netplex.com.au>
Updated Australian Channel Set.
Added Tuner and Mute values for LeadTek Winfast 2000 card
2.03 5 Oct 1999 Thomas Runge <runge@rostock.zgdv.de>
Found FM radio bug mute introduced in release 2.00
2.04 20 Oct 1999 Roger Hardiman <roger@freebsd.org>
Updated AVerMedia audio sources to support FM and Line In
sources properly. (Based on info supplied by AVerMedia)
Make PLL mode the default for Bt878 chips. This means PAL
Bt878 users no longer need the BKTR_USE_PLL kernel option.
Detect and auto-configure Dolby Surround Sound DPL3518A chip
on Hauppauge WinTV Theater. From Frank Nobis <fn@radio-do.de>
2.05 8 Nov 1999 Update tuner control codes for Philips SECAM. Submitted by
Cyrille Lefevre <clefevre@citeweb.net>
Updated clipping code, ready for Xv support in XFree86 4.0,
submitted by Thomas Mueller <tmueller@thmu.de>
Thomas also has information on a LynxOS port of this driver.
Phase out the rgb_prog RISC program and use rgb_vbi_prog as
the default. Now you no longer have to open /dev/vbi
before /dev/bktr. - Roger Hardiman <roger@freebsd.org>
2.06 7 Dec 1999 Fix bug which made the tuner fail on cards detected as
IMS Turbo. Found by Patrick Mackeown<pgm@NS4.HELP-DESK.CO.UK>
Put back some Hauppauge Tuner Types I deleted my mistake.
Backout the switch from rgb_prob to rgb_vbi_prog due to
problems with NTSC users.
2.07 24 Jan 2000 Update i2c code to build on FreeBSD 3.x and 4.x machines.
Added GPIO audio values for the Askey/Dynalink TV card
taken from postings on the V4L mailing list.
Update Australian Channel Set. Submitted by
John Birrell <jb@cimlogic.com.au>
Add new Channel Set for France. Submitted by
Daniel Dagneaux <dagneaux@lure.u-psud.fr>
2.08 6 Mar 2000 Reinstate rgb_vbi_prog as the default RISC program for
PAL video. This does not want to work for NTSC, which will
continue to use the rgb_prog RISC program.
Add support for cable channels above channel 100.
Submitted by Scott Presnell <srp@zgi.com>
New MSP3410/3415 setup code submitted by
Frank Nobis<fn@radio-do.de>. This is experimental and is
enabled by setting the sysctl, hw.bt848.slow_msp_audio to 1
before starting FXTV (or before opening /dev/bktrN)
2.09 20 Mar 2000 Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at> submitted
patches to include the NetBSD and OpenBSD support from driver
1.74 into the new 2.xx driver. NetBSD is tested. OpenBSD is
untested.
Also fixed coding error in bktr_audio.c spotted by Thomas.
Change xxx_ioctl functions to use ioctl_cmd_t for the cmd
parameter. Found by looking at OpenBSDs change logs.
Delete PROT_EXEC from OpenBSD (as per OpenBSD cvs logs).
2.10 4 Apr 2000 Convert to using bus_space() to access the Bt848/878 registers
rather than using a memory mapped structure. This makes the
driver portable to other architectures, like Alpha and PPC.
This was done by Thomas Klausner <wiz@netbsd.org> and
myself Roger Hardiman <roger@freebsd.org>
2.11 15 Apr 2000 Made changes so the driver compiles on FreeBSD/Alpha.
Stop printing MSP autodetect. Requested by
Chris D. Faulhaber <jedgar@fxp.org>
2.12 16 Apr 2000 Set adelay as an 8 bit value, noticed by
Thomas Klausner <wiz@netbsd.org>
Fix typo in the new interrupt code.
2.12 20 May 2000 Merge in NetBSD changes from Thomas Klausner <wiz@netbsd.org>
following the import of driver 2.12 into NetBSD
2.13 26 Jun 2000 Merge in more changes from Thomas Klausner <wiz@netbsd.org>
syncing this driver with the NetBSD source at 25th June.
2.14 28 Jun 2000 Add new Hauppauge Tuner Types, supplied by Hauppauge and
required for Josef Karthauser <joe@pavilion.net>
Change the structure of some of the #include files and
merge in more NetBSD changes.
2.15 10 Sep 2000 Add support for bktr_mem, a module to hold onto the bktr
drives's contiguous memory buffers even when it is unloaded
and reloaded.
Simplify the use of the optional SMBUS i2c code by using a new
#define called BKTR_USE_FREEBSD_SMBUS.
Poul-Henning Kamp <phk@freebsd.org> changed the DEVFS code.
Peter Wemm <peter@freebsd.org> fixed an SMBUS warning.
Alexander Langer <alex@cichlids.com> fixed some FreeBSD newbus
resource allocation problems (FreeBSD PR kern/18744).
2.16 19 Sep 2000 Merge in NetBSD changes from Thomas Klausner <wiz@netbsd.org>
2.17 19 Oct 2000 Alexander Langer <alex@big.endian.de> and
Daniel O'Connor <doconnor@gsoft.com.au>
both submitted fixes to devfs code.
Fix PHK's commit so we only include machine/clock.h in
FreeBSD 2.x, 3.x and 4.x systems
2.18 30 Oct 2000 Roger Hardiman - Add new ioctls to allow userland programs
fuller access to the I2C bus, BT848_MSP_READ BT848_MSP_WRITE
and BT848_MSP_RESET.
Add tuner type 0x2a. Remove 0x2c which was incorrect.
Christian Gusenbauer <Christian.Gusenbauer@netway.at> added
support for audio on Hauppauge cards without the audio mux.
The MSP is used for audio selection. (the 44xxx models)
[see https://svnweb.freebsd.org/base/head/sys/dev/bktr/
for newer change logs ]