Commit Graph

45 Commits

Author SHA1 Message Date
Don Lewis
da6f8233bc Use a mutex to synchronize the driver top and bottom halves instead of
using critcal_enter() and critical_exit() to attempt to replace spl*()
calls.  The critical section was calling selrecord(), which locks an
MTX_DEF mutex, which is not legal in a critical section.

Tested by: Stefan Ehmann <shoesoft@gmx.net> and "make universe"
Approved by: re (scottl)
2003-12-01 19:03:50 +00:00
Alexander Langer
30e27d9623 Add a overhaul of the soundchip initialization for the MSP34xx chipsets
found only many tv-cards.

We currently use more ore less evil hacks (slow_msp_audio sysctl) to
configure the various variants of these chips in order to have
stereo autodetection work.  Nevertheless, this doesn't always work
even though it _should_, according to the specs.
This is, for example, the case for some popular Hauppauge models sold
sold in Germany.

However, the Linux driver always worked for me and others.  Looking at
the sourcecode you will find that the linux-driver uses a very much
enhanced approach to program the various msp34xx chipset variants,
which is also found in the specs for these chips.

This is a port of the Linux MSP34xx code, written by Gerd Knorr
<kraxel@bytesex.org>, who agreed to re-release his code under a
BSD license for this port.

A new config option "BKTR_NEW_MSP34XX_DRIVER" is added, which is required
to enable the new driver.  Otherwise the old code is used.

The msp34xx.c file is diff-reduced to the linux-driver to make later
modifications easier, thus it doesn't follow style(9) in most cases.

Approved by:	roger (committing this, no time to test/review),
		keichii (code review)
2003-08-12 09:45:34 +00:00
Nicolas Souchu
ea4122d2bf Fix bktr and pcf compilation with LINT 2002-03-25 21:22:35 +00:00
Nicolas Souchu
c17d43407f Major rework of the iicbus/smbus framework:
- VIA chipset SMBus controllers added
	- alpm driver updated
	- Support for dynamic modules added
	- bktr FreeBSD smbus updated but not tested
	- cleanup
2002-03-23 15:49:15 +00:00
Roger Hardiman
51c5172097 Upgrade to driver 2.18
Support for new Hauppauge Model 44xxx WinTV Cards
(the ones with no audio mux)

Submitted by:	Christian Gusenbauer <Christian.Gusenbauer@netway.at>
2000-10-31 13:09:56 +00:00
Roger Hardiman
97e1cf9c1b Update to driver 2.17
Fixes bugs in devfs when unloading and reloading
Syncs with NetBSD changes

Submitted by:	Alexander Langer <alex@big.endian.de>
Submitted by:	Thomas Klausner <wiz@netbsd.org>
Submitted by:	Daniel O'Connor" <doconnor@gsoft.com.au>
2000-10-19 07:33:28 +00:00
Roger Hardiman
dd11af6637 Update to driver 2.15.
Main change is the addition of the bktr_mem module.

This holds onto the bktr driver's contiguously allocated memory
when the bktr driver is unloaded and reloaded.

This has to be done because it is virtually impossible to get
contiguous memory once a system is running.

Also tidied up the use of SMBUS, added a new Hauppauge tuner type (0x2c)
and a new Flyvideo vendor ID.
2000-09-10 14:34:08 +00:00
Roger Hardiman
dae49011e7 Fix newbus resource allocations
PR:		kern/18744
Submitted by:	Alexander Langer <alex@cichlids.com>
2000-08-24 14:17:06 +00:00
Roger Hardiman
4dcedbebe2 Update to driver 2.13.
This merges in changes from NetBSD which ensure bktr0
(actually bktr%d) is printed at the start of any output lines.

Submitted by:	Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>
2000-06-26 09:41:32 +00:00
Roger Hardiman
24cf43ae21 Upgrade the bktr driver from 2.07 to 2.10.
- The driver now uses bus_space() and runs on NetBSD 1.4.2
   Submitted by Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>

 - Remove startup quirks for video and vbi capture for PAL users.
   PAL TV users can now run FXTV and Alevt in any order.

 - Add support for cable channels >100
   Submitted by Scott Presnell <srp@zgi.com>

 - New MSP3410/3415 setup code added. This is experimental.
   Please set the sysctl hw.bt848.slow_msp_audio to 1 for this.
   Submitted by Frank Nobis<fn@radio-do.de>
2000-04-04 16:54:13 +00:00
Roger Hardiman
56597309fa Update to driver release 2.04
Update AverMedia GPIO values
Submitted by:	AverMedia

Add support for WinTV Theater Dolby Surround Sound DPL3518A chip
Submitted by:	Frank Nobis <fn@radio-do.de>

Make PLL mode the default for Bt878s. You no longer need options BKTR_USE_PLL
1999-10-28 13:58:17 +00:00
Roger Hardiman
96476a9986 Split the Bt848 driver into seperate files for
audio, tuner, card make, os dependent code and core bt848/i2c code.

Also, rewrite tuner code for FM Radio to make the code cleaner.
1999-09-26 22:06:20 +00:00
Roger Hardiman
1ea586719f Sync with driver release 1.74 1999-09-17 17:06:36 +00:00
Roger Hardiman
2dd2ab9fc8 Oops. I undid the $Id: -> $FreBSD: change.
Put it back to $FreeBSD:
1999-08-31 10:32:42 +00:00
Roger Hardiman
2271cf26df Update to driver release 1.71
New Features:
Greatly improved VBI capture support. (mainly for the AleVT port)
Supports select() on /dev/vbi
Improved RISC program for RGB+VBI capture to capture both evenodd
VBI data even when only capturing even only (or odd only) video
Based on code from Juha Nurmela <Juha.Nurmela@quicknet.inet.fi>

Support for Hauppauge 627 and Temic 4006
Submitted by: Maurice Castro <maurice@atum.castro.aus.net>

Bug Fix:
Fix bug in AverMedia card detection.
1999-08-31 10:29:42 +00:00
Peter Wemm
c3aac50f28 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
Roger Hardiman
4efbc31757 Bug fixes
Change number of VBI lines from 16 to 12 for NTSC formats.
 Juha.Nurmela@quicknet.inet.fi found/fixed bug in VBI_SLEEP.

New features
 MSP3430G DBX initialisation from Matt Brown <matt@dqc.org>
 STB Bt878 card identification.
 Hauppauge Model Number identification.
 Changes to probeCard() for better eeprom identification.
 Experimental TDA9850 initialisation code, from Linux bttv.

Cross Platform Changes
 The driver has been reorgainsed based ideas from Brad Parker's port to Linux
 to seperate OS Dependant and Independant sections.
 I have backends for FreeBSD 2.2.x/3.x and 4.x newbus, BSDI, OpenBSD and NetBSD.

This commit has FreeBSD 2.2.8/2.2-stable/3.x and FreeBSD 4.x newbus backends.

Some code submitted by: Juha.Nurmela@quicknet.inet.fi
                        Matt Brown <matt@dqc.org>
                        Brad Parker <brad@parker.boston.ma.us>

Some code obtained from:        Linux bttv driver
1999-07-12 15:51:50 +00:00
Roger Hardiman
5a2f31f0fb Updated to use the new 4.x newbus API
Also removed the BSDI support (for now)
This allows the driver to be loaded/unloaded as a KLD
and loaded in the boot loader phase whithout making a custom kernel.
1999-06-12 14:54:56 +00:00
Roger Hardiman
8fa3a2e7ed Rename 849 to 849A (the correct name for the IC) 1999-05-25 12:44:40 +00:00
Roger Hardiman
af36b88b1b Update card type to support GPIO mask
Add NSMBUS checks around smbus/iicbus i2c bus code.
1999-05-10 10:08:50 +00:00
Roger Hardiman
26da6e9453 Add support for VBI capture from /dev/vbi.
This will allow software teletext/intercast/subtitles decoding
while watching a TV station.

Based on code from Hiroki Mori <mori@infocity.co.jp> but reworked by
myself.
1999-04-29 10:01:28 +00:00
Roger Hardiman
08d8a5b841 Added detection for bt848a chips 1999-02-08 11:55:30 +00:00
Roger Hardiman
d3697a3ac3 Submitted by: Roger Hardiman <roger@cs.strath.ac.uk>
Updated to support Hauppauge IR Remote Control
1999-01-23 11:28:16 +00:00
Nicolas Souchu
fbd78b40dd Brooktree driver ported to the new I2C framework. See iicbus(4) for more info. 1998-10-31 11:26:38 +00:00
Søren Schmidt
dd32a6ad67 Hauppauge Tech Support confirmed all Hauppauge 878 PAL/SECAM boards
will use PLL mode.  Added to card probe. Thanks to Ken and Fred.

Submitted by:   Roger Hardiman <roger@cs.strath.ac.uk>
1998-09-30 20:58:09 +00:00
Søren Schmidt
ff2c4726bc Changed tuner code to autodetect tuner i2c address.
Addresses were incorrectly hardcoded.

Submitted by:   Roger Hardiman <roger@cs.strath.ac.uk>
1998-09-30 20:43:25 +00:00
Søren Schmidt
d32ef285bc Changed METEORSINPUT for Hauppauge cards with bt878.
Also fixed video_open defines and 878 support.

Submitted by: Fred Templin <templin@erg.sri.com>
1998-09-10 08:01:10 +00:00
Søren Schmidt
58dde31aeb 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

Submitted by: Roger Hardiman <roger@cs.strath.ac.uk>
1998-08-31 18:35:06 +00:00
Søren Schmidt
5d0c8abac1 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.

Submitted by: Roger Hardiman <roger@cs.strath.ac.uk>
1998-08-31 18:31:36 +00:00
Amancio Hasty
63ca8cabf9 Improved Hauppauge's tuner detection and bt878 support
Amancio
1998-07-13 02:16:34 +00:00
Amancio Hasty
c1224bb717 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 :(
1998-05-16 07:07:10 +00:00
Amancio Hasty
f7c015e72e Reviewed by: Amancio
Submitted by:	Frank Nobis  <fn@Radio-do.de>

Mods to view german cable tv and minor fix to correctly identify bt849.
1998-04-05 20:57:46 +00:00
Amancio Hasty
d7ef1f6051 Radio support for bt848 cards from Flemming Jacobsen <fj@trw.nl>
Amancio
1998-02-26 08:19:14 +00:00
Eivind Eklund
287591d703 Re-add my DEVFS changes after they were stomped on. This time, I throw away
the DEVFS tokens (as they weren't used anywhere anyway).
1998-02-04 03:16:25 +00:00
Amancio Hasty
2b1973e8ad Bugs/Enhancements:
1. Takeshi Ohashi <ohashi@atohasi.mickey.ai.kyutech.ac.jp> submitted
   code to support bktr_read . /usr/src/share/examples/rgb24.c now works 8)

2. 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.
3. Roger Hardiman <roger@cs.strath.ac.uk> submitted various fixes to smooth
   out the microcode and made all modes consistent.

4. Added supported for yuv12 so we know can capture raw streams and feed it
   to mpeg_encoder . The upshot is that we can now mpeg encode more and save
   nearly 100 percent of the disk requirements previously for programs such
   as fxtv first save the raw video image to disk then converted to a
   format suitable for mpeg_encode.
1998-02-02 13:09:12 +00:00
Eivind Eklund
2166d84372 Attempt at making this use DEVFS properly. (Now it should at least work.) 1998-01-31 05:23:49 +00:00
Eivind Eklund
30d0ea994e Improve PAL support and fix mux selector values.
This make the Miro PCTV work for me, including audio, and should
hopefully fix the other audio problems some people have been having.

Reviewed by:	ahasty & Luigi Rizzo (freebsd-multimedia)
1997-10-30 18:20:26 +00:00
Mark Murray
d32591560a Latest round of patches from the author.
This driver includes the following patches submitted by:

1.0 Hideyuki Suzuki <hideyuki@sat.t.u-tokyo.ac.jp>
Japanese Cable support

2.0 Keith Sklower <sklower@CS.Berkeley.EDU>
Minor update to the BSDI section so it compiles cleanly on BSDI

3.0 Joao Carlos Mendes Luis <jonny@coppe.ufrj.br>
ioctl interface to select video format , NTSC, PAL, etc...
1997-10-07 06:30:01 +00:00
Mark Murray
51c63b7d63 Amancio's latest in the Brooktree driver.
This fixes the european frequency set, separates this further from the
Meteor driver and fixes bugs.
1997-09-09 06:32:32 +00:00
Steve Passe
044768d848 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.

Submitted by:   individuals in above log messages.
1997-05-01 00:16:31 +00:00
Steve Passe
938401213d PAL support: magic numbers moved into format_params structure.
Revised AFC interface.
Fixed DMA_PROG_ALLOC size misdefinition.

Submitted by:	richard@cogsci.ed.ac.uk (Richard Tobin)
1997-04-02 01:48:39 +00:00
Steve Passe
2fab5f6edd "Louis A. Mamakos" <louie@TransSys.COM> new bt848 struct
Randall Hopper <rhh@ct.picker.com> GHUE/GBRIGHT bug
Louis Mamakos made a new bt848 struct, including massive changes to the entire
body of code, substituting array offsets with struct members.

Randall Hopper aadded fixes of BT848_GHUE & BT848_GBRIG.

I (fsmp):
  added polled hardware i2c routines,
  removed all existing software i2c routines.
  added  eeprom support.
1997-03-25 04:18:24 +00:00
Steve Passe
e75839864d Submitted by: Michael Petry <petry@netwolf.NetMasters.com>
Michael submitted code to activate the audio muxes.

fsmp:
 extended those changes for different boards.
 auto-detection of board types.
 auto-detection of tuner types.
 auto-detection of stereo option.
1997-03-21 17:33:03 +00:00
Steve Passe
55566fdc2f Submitted by: Amancio Hasty <hasty@rah.star-gate.com>
addition of bt848 specific ioctl()s for hue/bright/contrast/satu/satv.

patches by Amancio Hasty to fix "screen freeze" problem.
1997-03-16 07:37:23 +00:00
Mark Murray
51e053d6cc Initial import of the Brooktree PCI-TV drivers. I have not tested
these, they may not even compile. I am importing them on behalf
of the submitters.
Submitted by:	amancio, smp
1997-03-10 06:38:26 +00:00