Merge 2.17 changes to trunk.

This commit is contained in:
wiz 2000-10-28 14:31:57 +00:00
parent 9732164f76
commit 134608261c
6 changed files with 199 additions and 107 deletions

View File

@ -1,6 +1,6 @@
/* $NetBSD: bktr_audio.c,v 1.6 2000/07/01 01:39:00 wiz Exp $ */
/* $NetBSD: bktr_audio.c,v 1.7 2000/10/28 14:31:57 wiz Exp $ */
/* FreeBSD: src/sys/dev/bktr/bktr_audio.c,v 1.5 2000/06/26 09:41:31 roger Exp */
/* FreeBSD: src/sys/dev/bktr/bktr_audio.c,v 1.6 2000/10/15 14:18:06 phk Exp */
/*
* This is part of the Driver for Video Capture Cards (Frame grabbers)
* and TV Tuner cards using the Brooktree Bt848, Bt848A, Bt849A, Bt878, Bt879
@ -54,7 +54,11 @@
#include <sys/vnode.h>
#ifdef __FreeBSD__
#include <machine/clock.h> /* for DELAY */
#if (__FreeBSD_version < 500000)
#include <machine/clock.h> /* for DELAY */
#endif
#include <pci/pcivar.h>
#if (__FreeBSD_version >=300000)

View File

@ -1,6 +1,6 @@
/* $NetBSD: bktr_card.c,v 1.7 2000/09/03 02:01:32 wiz Exp $ */
/* $NetBSD: bktr_card.c,v 1.8 2000/10/28 14:31:58 wiz Exp $ */
/* FreeBSD: src/sys/dev/bktr/bktr_card.c,v 1.12 2000/06/28 15:09:12 roger Exp */
/* FreeBSD: src/sys/dev/bktr/bktr_card.c,v 1.14 2000/10/15 14:18:06 phk Exp */
/*
* This is part of the Driver for Video Capture Cards (Frame grabbers)
@ -56,7 +56,11 @@
#include <sys/vnode.h>
#ifdef __FreeBSD__
#include <machine/clock.h> /* for DELAY */
#if (__FreeBSD_version < 500000)
#include <machine/clock.h> /* for DELAY */
#endif
#include <pci/pcivar.h>
#if (__FreeBSD_version >=300000)
@ -83,6 +87,12 @@
#include <dev/bktr/bktr_audio.h>
#endif
/* Include the PCI Vendor definitions */
#ifdef __NetBSD__
#include <dev/pci/pcidevs.h>
#include <dev/pci/pcireg.h>
#endif
/* Various defines */
#define HAUP_REMOTE_INT_WADDR 0x30
#define HAUP_REMOTE_INT_RADDR 0x31
@ -530,6 +540,7 @@ static int locate_eeprom_address( bktr_ptr_t bktr) {
so not added to NetBSD's pcidevs */
#define PCI_VENDOR_LEADTEK_ALT 0x6606
#define PCI_VENDOR_FLYVIDEO 0x1851
#define PCI_VENDOR_FLYVIDEO_2 0x1852
#define PCI_VENDOR_PINNACLE_ALT 0xBD11
void
@ -629,7 +640,8 @@ probeCard( bktr_ptr_t bktr, int verbose, int unit )
goto checkTuner;
}
if (subsystem_vendor_id == PCI_VENDOR_FLYVIDEO) {
if ((subsystem_vendor_id == PCI_VENDOR_FLYVIDEO)
|| (subsystem_vendor_id == PCI_VENDOR_FLYVIDEO_2) ) {
bktr->card = cards[ (card = CARD_FLYVIDEO) ];
bktr->card.eepromAddr = eeprom_i2c_address;
bktr->card.eepromSize = (u_char)(256 / EEPROMBLOCKSIZE);
@ -662,7 +674,7 @@ probeCard( bktr_ptr_t bktr, int verbose, int unit )
bktr->card.eepromAddr = eeprom_i2c_address;
bktr->card.eepromSize = (u_char)(256 / EEPROMBLOCKSIZE);
goto checkTuner;
}
}
/* Vendor is unknown. We will use the standard probe code */
/* which may not give best results */
@ -885,7 +897,7 @@ checkTuner:
0x29 Temic 4006FN5 BG/I/DK
0x2a Temic 4009FR5 BG FM
0x2b Temic 4046FM5 B/G, I, D/K, L/L'
0x2c Temic 4009FN5 B/G, I, D/K, FM (no demod)
0x2c Temic 4009FN5 B/G, I, D/K, FM (no demod) PHILIPS_PALI
0x2d Philips TD1536D_FH_44 MN/ATSCDigital DUAL INPUT
*/
@ -939,6 +951,7 @@ checkTuner:
case 0xb:
case 0x1d:
case 0x23:
case 0x2c:
select_tuner( bktr, PHILIPS_PALI );
goto checkDBX;

View File

@ -1,6 +1,6 @@
/* $NetBSD: bktr_core.c,v 1.11 2000/09/06 19:01:45 thorpej Exp $ */
/* $NetBSD: bktr_core.c,v 1.12 2000/10/28 14:31:58 wiz Exp $ */
/* FreeBSD: src/sys/dev/bktr/bktr_core.c,v 1.109 2000/06/28 15:09:12 roger Exp */
/* FreeBSD: src/sys/dev/bktr/bktr_core.c,v 1.112 2000/10/15 14:18:06 phk Exp */
/*
* This is part of the Driver for Video Capture Cards (Frame grabbers)
@ -100,7 +100,6 @@
#ifdef __FreeBSD__
#include "bktr.h"
#include "opt_devfs.h"
#endif /* __FreeBSD__ */
#if ( \
@ -131,7 +130,10 @@
#include <sys/bus.h> /* used by smbus and newbus */
#endif
#include <machine/clock.h> /* for DELAY */
#if (__FreeBSD_version < 500000)
#include <machine/clock.h> /* for DELAY */
#endif
#include <pci/pcivar.h>
#if (__FreeBSD_version >=300000)
@ -148,8 +150,11 @@
#include <dev/bktr/bktr_audio.h>
#include <dev/bktr/bktr_os.h>
#include <dev/bktr/bktr_core.h>
#if defined(BKTR_FREEBSD_MODULE)
#include <dev/bktr/bktr_mem.h>
#endif
#if (NSMBUS > 0)
#if defined(BKTR_USE_FREEBSD_SMBUS)
#include <dev/bktr/bktr_i2c.h>
#include <dev/smbus/smbconf.h>
#include <dev/iicbus/iiconf.h>
@ -445,7 +450,7 @@ static void remote_read(bktr_ptr_t bktr, struct bktr_remote *remote);
static int common_ioctl( bktr_ptr_t bktr, ioctl_cmd_t cmd, caddr_t arg );
#if ((!defined(__FreeBSD__)) || (NSMBUS == 0) )
#if !defined(BKTR_USE_FREEBSD_SMBUS)
/*
* i2c primitives for low level control of i2c bus. Added for MSP34xx control
*/
@ -463,7 +468,8 @@ static int i2c_read_byte( bktr_ptr_t bktr, unsigned char *data, int last );
void
common_bktr_attach( bktr_ptr_t bktr, int unit, u_long pci_id, u_int rev )
{
vm_offset_t buf;
vm_offset_t buf = 0;
int need_to_allocate_memory = 1;
/***************************************/
/* *** OS Specific memory routines *** */
@ -489,21 +495,48 @@ common_bktr_attach( bktr_ptr_t bktr, int unit, u_long pci_id, u_int rev )
#endif
#if defined(__FreeBSD__) || defined(__bsdi__)
/* allocate space for dma program */
bktr->dma_prog = get_bktr_mem(unit, DMA_PROG_ALLOC);
bktr->odd_dma_prog = get_bktr_mem(unit, DMA_PROG_ALLOC);
/* allocte space for the VBI buffer */
bktr->vbidata = get_bktr_mem(unit, VBI_DATA_SIZE);
bktr->vbibuffer = get_bktr_mem(unit, VBI_BUFFER_SIZE);
/* allocate space for pixel buffer */
if ( BROOKTREE_ALLOC )
buf = get_bktr_mem(unit, BROOKTREE_ALLOC);
else
buf = 0;
/* If this is a module, check if there is any currently saved contiguous memory */
#if defined(BKTR_FREEBSD_MODULE)
if (bktr_has_stored_addresses(unit) == 1) {
/* recover the addresses */
bktr->dma_prog = bktr_retrieve_address(unit, BKTR_MEM_DMA_PROG);
bktr->odd_dma_prog = bktr_retrieve_address(unit, BKTR_MEM_ODD_DMA_PROG);
bktr->vbidata = bktr_retrieve_address(unit, BKTR_MEM_VBIDATA);
bktr->vbibuffer = bktr_retrieve_address(unit, BKTR_MEM_VBIBUFFER);
buf = bktr_retrieve_address(unit, BKTR_MEM_BUF);
need_to_allocate_memory = 0;
}
#endif
if (need_to_allocate_memory == 1) {
/* allocate space for dma program */
bktr->dma_prog = get_bktr_mem(unit, DMA_PROG_ALLOC);
bktr->odd_dma_prog = get_bktr_mem(unit, DMA_PROG_ALLOC);
/* allocte space for the VBI buffer */
bktr->vbidata = get_bktr_mem(unit, VBI_DATA_SIZE);
bktr->vbibuffer = get_bktr_mem(unit, VBI_BUFFER_SIZE);
/* allocate space for pixel buffer */
if ( BROOKTREE_ALLOC )
buf = get_bktr_mem(unit, BROOKTREE_ALLOC);
else
buf = 0;
}
#endif /* FreeBSD or BSDi */
/* If this is a module, save the current contiguous memory */
#if defined(BKTR_FREEBSD_MODULE)
bktr_store_address(unit, BKTR_MEM_DMA_PROG, bktr->dma_prog);
bktr_store_address(unit, BKTR_MEM_ODD_DMA_PROG, bktr->odd_dma_prog);
bktr_store_address(unit, BKTR_MEM_VBIDATA, bktr->vbidata);
bktr_store_address(unit, BKTR_MEM_VBIBUFFER, bktr->vbibuffer);
bktr_store_address(unit, BKTR_MEM_BUF, buf);
#endif
if ( bootverbose ) {
printf("%s: buffer size %d, addr 0x%lx\n",
bktr_name(bktr), BROOKTREE_ALLOC,
@ -3717,7 +3750,7 @@ static int oformat_meteor_to_bt( u_long format )
BT848_DATA_CTL_I2CSDA)
/* Select between old i2c code and new iicbus / smbus code */
#if (defined(__FreeBSD__) && (NSMBUS > 0))
#if defined(BKTR_USE_FREEBSD_SMBUS)
/*
* The hardware interface is actually SMB commands
@ -3863,7 +3896,7 @@ static void remote_read(bktr_ptr_t bktr, struct bktr_remote *remote) {
return;
}
#else /* defined(__FreeBSD__) && (NSMBUS > 0) */
#else /* defined(BKTR_USE_FREEBSD_SMBUS) */
/*
* Program the i2c bus directly
@ -4119,7 +4152,7 @@ static void remote_read(bktr_ptr_t bktr, struct bktr_remote *remote) {
return;
}
#endif /* defined(__FreeBSD__) && (NSMBUS > 0) */
#endif /* defined(BKTR_USE_FREEBSD_SMBUS) */
#if defined( I2C_SOFTWARE_PROBE )

View File

@ -1,6 +1,6 @@
/* $NetBSD: bktr_os.c,v 1.12 2000/09/03 02:01:32 wiz Exp $ */
/* $NetBSD: bktr_os.c,v 1.13 2000/10/28 14:31:58 wiz Exp $ */
/* FreeBSD: src/sys/dev/bktr/bktr_os.c,v 1.10 2000/06/28 15:09:12 roger Exp */
/* FreeBSD: src/sys/dev/bktr/bktr_os.c,v 1.18 2000/10/15 14:18:06 phk Exp */
/*
* This is part of the Driver for Video Capture Cards (Frame grabbers)
@ -52,7 +52,6 @@
#ifdef __FreeBSD__
#include "bktr.h"
#include "opt_devfs.h"
#endif /* __FreeBSD__ */
#include "opt_bktr.h" /* include any kernel config options */
@ -82,12 +81,6 @@
#include <vm/pmap.h>
#include <vm/vm_extern.h>
#if (__FreeBSD_version < 400000)
#ifdef DEVFS
#include <sys/devfsext.h>
#endif /* DEVFS */
#endif
#if (__FreeBSD_version >=400000) || (NSMBUS > 0)
#include <sys/bus.h> /* used by smbus and newbus */
#endif
@ -103,15 +96,13 @@
#include <machine/resource.h> /* used by newbus */
#endif
#if (__FreeBSD_version < 500000)
#include <machine/clock.h> /* for DELAY */
#endif
#include <machine/clock.h> /* for DELAY */
#include <pci/pcivar.h>
#include <pci/pcireg.h>
#if (NSMBUS > 0)
#include <dev/bktr/bktr_i2c.h>
#endif
#include <sys/sysctl.h>
int bt848_card = -1;
int bt848_tuner = -1;
@ -196,6 +187,9 @@ int bktr_debug = 0;
#include <dev/bktr/bktr_audio.h>
#include <dev/bktr/bktr_core.h>
#include <dev/bktr/bktr_os.h>
#if defined(BKTR_USE_FREEBSD_SMBUS)
#include <dev/bktr/bktr_i2c.h>
#endif
#endif
@ -256,6 +250,10 @@ static struct cdevsw bktr_cdevsw = {
};
DRIVER_MODULE(bktr, pci, bktr_driver, bktr_devclass, 0, 0);
#if (__FreeBSD_version > 410000)
MODULE_DEPEND(bktr, bktr_mem, 1,1,1);
MODULE_VERSION(bktr, 1);
#endif
/*
@ -285,7 +283,7 @@ bktr_probe( device_t dev )
case PCI_PRODUCT_BROOKTREE_BT879:
device_set_desc(dev, "BrookTree 879");
return 0;
}
}
};
return ENXIO;
@ -304,7 +302,6 @@ bktr_attach( device_t dev )
unsigned int rev;
unsigned int unit;
int error = 0;
int rid;
#ifdef BROOKTREE_IRQ
u_long old_irq, new_irq;
#endif
@ -326,9 +323,10 @@ bktr_attach( device_t dev )
/*
* Map control/status registers.
*/
rid = PCIR_MAPS;
bktr->res_mem = bus_alloc_resource(dev, SYS_RES_MEMORY, &rid,
0, ~0, 1, RF_ACTIVE);
bktr->mem_rid = PCIR_MAPS;
bktr->res_mem = bus_alloc_resource(dev, SYS_RES_MEMORY, &bktr->mem_rid,
0, ~0, 1, RF_ACTIVE);
if (!bktr->res_mem) {
device_printf(dev, "could not map memory\n");
@ -357,9 +355,9 @@ bktr_attach( device_t dev )
/*
* Allocate our interrupt.
*/
rid = 0;
bktr->res_irq = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, 0, ~0, 1,
RF_SHAREABLE | RF_ACTIVE);
bktr->irq_rid = 0;
bktr->res_irq = bus_alloc_resource(dev, SYS_RES_IRQ, &bktr->irq_rid,
0, ~0, 1, RF_SHAREABLE | RF_ACTIVE);
if (bktr->res_irq == NULL) {
device_printf(dev, "could not map interrupt\n");
error = ENXIO;
@ -394,7 +392,7 @@ bktr_attach( device_t dev )
/* XXX call bt848_i2c dependent attach() routine */
#if (NSMBUS > 0)
#if defined(BKTR_USE_FREEBSD_SMBUS)
if (bt848_i2c_attach(unit, bktr, &bktr->i2c_sc))
printf("bktr%d: i2c_attach: can't attach\n", unit);
#endif
@ -431,13 +429,32 @@ bktr_attach( device_t dev )
/* call the common attach code */
common_bktr_attach( bktr, unit, fun, rev );
make_dev(&bktr_cdevsw, unit, 0, 0, 0444, "bktr%d", unit);
make_dev(&bktr_cdevsw, unit+16, 0, 0, 0444, "tuner%d", unit);
make_dev(&bktr_cdevsw, unit+32, 0, 0, 0444, "vbi%d", unit);
/* make the device entries */
bktr->bktrdev = make_dev(&bktr_cdevsw, unit,
0, 0, 0444, "bktr%d", unit);
bktr->tunerdev= make_dev(&bktr_cdevsw, unit+16,
0, 0, 0444, "tuner%d", unit);
bktr->vbidev = make_dev(&bktr_cdevsw, unit+32,
0, 0, 0444, "vbi%d" , unit);
/* if this is unit 0 (/dev/bktr0, /dev/tuner0, /dev/vbi0) then make */
/* alias entries to /dev/bktr /dev/tuner and /dev/vbi */
#if (__FreeBSD_version >=500000)
if (unit == 0) {
bktr->bktrdev_alias = make_dev_alias(bktr->bktrdev, "bktr");
bktr->tunerdev_alias= make_dev_alias(bktr->tunerdev, "tuner");
bktr->vbidev_alias = make_dev_alias(bktr->vbidev, "vbi");
}
#endif
return 0;
fail:
if (bktr->res_irq)
bus_release_resource(dev, SYS_RES_IRQ, bktr->irq_rid, bktr->res_irq);
if (bktr->res_mem)
bus_release_resource(dev, SYS_RES_IRQ, bktr->mem_rid, bktr->res_mem);
return error;
}
@ -448,21 +465,41 @@ fail:
static int
bktr_detach( device_t dev )
{
unsigned int unit;
struct bktr_softc *bktr = device_get_softc(dev);
unit = device_get_unit(dev);
/* Disable the brooktree device */
OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
OUTW(bktr, BKTR_GPIO_DMA_CTL, FIFO_RISC_DISABLED);
/* FIXME - Free memory for RISC programs, grab buffer, vbi buffers */
/* Note: We do not free memory for RISC programs, grab buffer, vbi buffers */
/* The memory is retained by the bktr_mem module so we can unload and */
/* then reload the main bktr driver module */
/* Unregister the /dev/bktrN, tunerN and vbiN devices */
destroy_dev(bktr->vbidev);
destroy_dev(bktr->tunerdev);
destroy_dev(bktr->bktrdev);
/* If this is unit 0, then destroy the alias entries too */
#if (__FreeBSD_version >=500000)
if (unit == 0) {
destroy_dev(bktr->vbidev_alias);
destroy_dev(bktr->tunerdev_alias);
destroy_dev(bktr->bktrdev_alias);
}
#endif
/*
* Deallocate resources.
*/
bus_teardown_intr(dev, bktr->res_irq, bktr->res_ih);
bus_release_resource(dev, SYS_RES_IRQ, 0, bktr->res_irq);
bus_release_resource(dev, SYS_RES_MEMORY, PCIR_MAPS, bktr->res_mem);
bus_release_resource(dev, SYS_RES_IRQ, bktr->irq_rid, bktr->res_irq);
bus_release_resource(dev, SYS_RES_MEMORY, bktr->mem_rid, bktr->res_mem);
return 0;
}
@ -838,7 +875,7 @@ static const char*
bktr_probe( pcici_t tag, pcidi_t type )
{
unsigned int rev = pci_conf_read( tag, PCIR_REVID) & 0x000000ff;
if (PCI_VENDOR(type) == PCI_VENDOR_BROOKTREE)
{
switch (PCI_PRODUCT(type)) {
@ -944,7 +981,7 @@ bktr_attach( pcici_t tag, int unit )
/* XXX call bt848_i2c dependent attach() routine */
#if (NSMBUS > 0)
#if defined(BKTR_USE_FREEBSD_SMBUS)
if (bt848_i2c_attach(unit, bktr, &bktr->i2c_sc))
printf("bktr%d: i2c_attach: can't attach\n", unit);
#endif
@ -981,14 +1018,6 @@ bktr_attach( pcici_t tag, int unit )
/* call the common attach code */
common_bktr_attach( bktr, unit, fun, rev );
#ifdef DEVFS
/* XXX This just throw away the token, which should probably be fixed when
DEVFS is finally made really operational. */
devfs_add_devswf(&bktr_cdevsw, unit, DV_CHR, 0, 0, 0444, "bktr%d", unit);
devfs_add_devswf(&bktr_cdevsw, unit+16, DV_CHR, 0, 0, 0444, "tuner%d", unit);
devfs_add_devswf(&bktr_cdevsw, unit+32, DV_CHR, 0, 0, 0444, "vbi%d", unit);
#endif /* DEVFS */
}

View File

@ -1,7 +1,7 @@
/* $NetBSD: bktr_reg.h,v 1.7 2000/09/24 12:37:04 jdolecek Exp $ */
/* $NetBSD: bktr_reg.h,v 1.8 2000/10/28 14:31:58 wiz Exp $ */
/*
* FreeBSD: src/sys/dev/bktr/bktr_reg.h,v 1.38 2000/06/26 09:41:32 roger Exp
* FreeBSD: src/sys/dev/bktr/bktr_reg.h,v 1.40 2000/09/10 14:34:08 roger Exp
*
* Copyright (c) 1999 Roger Hardiman
* Copyright (c) 1998 Amancio Hasty
@ -38,13 +38,13 @@
#ifdef __FreeBSD__
# if (__FreeBSD_version >= 310000)
# include <sys/bus.h>
# include "smbus.h"
# else
# define NSMBUS 0 /* FreeBSD before 3.1 does not have SMBUS */
# endif
#else
# define NSMBUS 0 /* Non FreeBSD systems do not have SMBUS */
# if (NSMBUS > 0)
# define BKTR_USE_FREEBSD_SMBUS
# endif
#endif
#ifdef __NetBSD__
@ -60,6 +60,10 @@
*
*/
#if defined(__FreeBSD__) || defined(__OpenBSD__)
#if defined(BROOKTREE_ALLOC_PAGES)
#define BKTR_ALLOC_PAGES BROOKTREE_ALLOC_PAGES
#endif
#if defined(BROOKTREE_SYSTEM_DEFAULT)
#define BKTR_SYSTEM_DEFAULT BROOKTREE_SYSTEM_DEFAULT
#endif
@ -90,10 +94,7 @@
/*
* Definitions for the Brooktree 848/878 video capture to pci interface.
*/
#ifdef __NetBSD__
#include <dev/pci/pcidevs.h>
#include <dev/pci/pcireg.h>
#else
#ifndef __NetBSD__
#define PCI_VENDOR_SHIFT 0
#define PCI_VENDOR_MASK 0xffff
#define PCI_VENDOR(id) \
@ -104,16 +105,13 @@
#define PCI_PRODUCT(id) \
(((id) >> PCI_PRODUCT_SHIFT) & PCI_PRODUCT_MASK)
#define PCI_VENDOR_BROOKTREE 0x109e /* Brooktree */
/* PCI vendor ID */
#define PCI_VENDOR_BROOKTREE 0x109e /* Brooktree */
/* Brooktree products */
#define PCI_PRODUCT_BROOKTREE_BT848 0x0350 /* Bt848 Video
Capture */
#define PCI_PRODUCT_BROOKTREE_BT849 0x0351 /* Bt849 Video
Capture */
#define PCI_PRODUCT_BROOKTREE_BT878 0x036e /* Bt878 Video
Capture */
#define PCI_PRODUCT_BROOKTREE_BT879 0x036f /* Bt879 Video
Capture */
#define PCI_PRODUCT_BROOKTREE_BT848 0x0350 /* Bt848 Video Capture */
#define PCI_PRODUCT_BROOKTREE_BT849 0x0351 /* Bt849 Video Capture */
#define PCI_PRODUCT_BROOKTREE_BT878 0x036e /* Bt878 Video Capture */
#define PCI_PRODUCT_BROOKTREE_BT879 0x036f /* Bt879 Video Capture */
#endif
#define BROOKTREE_848 1
@ -455,7 +453,7 @@ struct format_params {
int vbi_num_lines, vbi_num_samples;
};
#if ((defined(__FreeBSD__)) && (NSMBUS > 0))
#if defined(BKTR_USE_FREEBSD_SMBUS)
struct bktr_i2c_softc {
device_t iicbus;
device_t smbus;
@ -489,13 +487,6 @@ struct bktr_i2c_softc {
typedef struct bktr_clip bktr_clip_t;
/*
* NetBSD >= 1.3H uses vaddr_t instead of vm_offset_t
*/
#if defined(__NetBSD__) && __NetBSD_Version__ >= 103080000
typedef void * vm_offset_t;
#endif
/*
* BrookTree 848 info structure, one per bt848 card installed.
*/
@ -546,9 +537,17 @@ struct bktr_softc {
pcici_t tag; /* 2.x PCI tag, for doing PCI commands */
#endif
#if (__FreeBSD_version >= 400000)
int mem_rid; /* 4.x resource id */
struct resource *res_mem; /* 4.x resource descriptor for registers */
int irq_rid; /* 4.x resource id */
struct resource *res_irq; /* 4.x resource descriptor for interrupt */
void *res_ih; /* 4.x newbus interrupt handler cookie */
dev_t bktrdev; /* 4.x device entry for /dev/bktrN */
dev_t tunerdev; /* 4.x device entry for /dev/tunerN */
dev_t vbidev; /* 4.x device entry for /dev/vbiN */
dev_t bktrdev_alias; /* alias /dev/bktr to /dev/bktr0 */
dev_t tunerdev_alias; /* alias /dev/tuner to /dev/tuner0 */
dev_t vbidev_alias; /* alias /dev/vbi to /dev/vbi0 */
#endif
#if (__FreeBSD_version >= 310000)
bus_space_tag_t memt; /* Bus space register access functions */
@ -561,12 +560,25 @@ struct bktr_softc {
char bktr_xname[7]; /* device name and unit number */
#endif
/* the following definitions are common over all platforms */
vm_offset_t bigbuf; /* buffer that holds the captured image */
int alloc_pages; /* number of pages in bigbuf */
vm_offset_t vbidata; /* RISC program puts VBI data from the current frame here */
vm_offset_t vbibuffer; /* Circular buffer holding VBI data for the user */
/* The following definitions are for the contiguous memory */
#ifdef __NetBSD__
vaddr_t bigbuf; /* buffer that holds the captured image */
vaddr_t vbidata; /* RISC program puts VBI data from the current frame here */
vaddr_t vbibuffer; /* Circular buffer holding VBI data for the user */
vaddr_t dma_prog; /* RISC prog for single and/or even field capture*/
vaddr_t odd_dma_prog; /* RISC program for Odd field capture */
#else
vm_offset_t bigbuf; /* buffer that holds the captured image */
vm_offset_t vbidata; /* RISC program puts VBI data from the current frame here */
vm_offset_t vbibuffer; /* Circular buffer holding VBI data for the user */
vm_offset_t dma_prog; /* RISC prog for single and/or even field capture*/
vm_offset_t odd_dma_prog;/* RISC program for Odd field capture */
#endif
/* the following definitions are common over all platforms */
int alloc_pages; /* number of pages in bigbuf */
int vbiinsert; /* Position for next write into circular buffer */
int vbistart; /* Position of last read from circular buffer */
int vbisize; /* Number of bytes in the circular buffer */
@ -581,8 +593,6 @@ struct bktr_softc {
#define METEOR_SIG_MODE_MASK 0xffff0000
#define METEOR_SIG_FIELD_MODE 0x00010000
#define METEOR_SIG_FRAME_MODE 0x00000000
vm_offset_t dma_prog;
vm_offset_t odd_dma_prog;
char dma_prog_loaded;
struct meteor_mem *mem; /* used to control sync. multi-frame output */
u_long synch_wait; /* wait for free buffer before continuing */

View File

@ -1,6 +1,6 @@
/* $NetBSD: bktr_tuner.c,v 1.5 2000/07/01 01:39:02 wiz Exp $ */
/* $NetBSD: bktr_tuner.c,v 1.6 2000/10/28 14:31:58 wiz Exp $ */
/* FreeBSD: src/sys/dev/bktr/bktr_tuner.c,v 1.7 2000/06/26 09:41:32 roger Exp */
/* FreeBSD: src/sys/dev/bktr/bktr_tuner.c,v 1.8 2000/10/15 14:18:06 phk Exp */
/*
* This is part of the Driver for Video Capture Cards (Frame grabbers)
@ -56,9 +56,12 @@
#endif
#ifdef __FreeBSD__
#include <machine/clock.h> /* for DELAY */
#include <pci/pcivar.h>
#if (__FreeBSD_version < 500000)
#include <machine/clock.h> /* for DELAY */
#endif
#if (__FreeBSD_version >=300000)
#include <machine/bus_memio.h> /* for bus space */
#include <machine/bus.h>