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>
This commit is contained in:
parent
b40382e95c
commit
6a567bac48
@ -502,3 +502,11 @@
|
||||
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 3 Oct 2000 Alexander Langer <alex@big.endian.de> and
|
||||
someone else
|
||||
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
|
||||
|
||||
|
@ -52,6 +52,11 @@
|
||||
#include <sys/vnode.h>
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
|
||||
#if (__FreeBSD_version < 500000)
|
||||
#include <machine/clock.h> /* for DELAY */
|
||||
#endif
|
||||
|
||||
#include <pci/pcivar.h>
|
||||
|
||||
#if (__FreeBSD_version >=300000)
|
||||
|
@ -54,6 +54,11 @@
|
||||
#include <sys/vnode.h>
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
|
||||
#if (__FreeBSD_version < 500000)
|
||||
#include <machine/clock.h> /* for DELAY */
|
||||
#endif
|
||||
|
||||
#include <pci/pcivar.h>
|
||||
|
||||
#if (__FreeBSD_version >=300000)
|
||||
@ -80,6 +85,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
|
||||
@ -139,7 +150,7 @@ static const struct CARDTYPE cards[] = {
|
||||
0 }, /* GPIO mask */
|
||||
|
||||
{ CARD_MIRO, /* the card id */
|
||||
"Miro TV", /* the 'name' */
|
||||
"Pinnacle/Miro TV", /* the 'name' */
|
||||
NULL, /* the tuner */
|
||||
0, /* the tuner i2c address */
|
||||
0, /* dbx unknown */
|
||||
@ -354,7 +365,7 @@ writeEEProm( bktr_ptr_t bktr, int offset, int count, u_char *data )
|
||||
|
||||
/*
|
||||
* Read the contents of the configuration EEPROM on the card.
|
||||
* (This is not fitted to all makes of card. All Hauppuage cards have them
|
||||
* (This is not fitted to all makes of card. All Hauppauge cards have them
|
||||
* and so do newer Bt878 based cards.
|
||||
*/
|
||||
int
|
||||
@ -517,13 +528,18 @@ static int locate_eeprom_address( bktr_ptr_t bktr) {
|
||||
* configuration EEPROM used on Bt878/879 cards. They should match the
|
||||
* number assigned to the company by the PCI Special Interest Group
|
||||
*/
|
||||
#define VENDOR_AVER_MEDIA 0x1461
|
||||
#define VENDOR_HAUPPAUGE 0x0070
|
||||
#define VENDOR_FLYVIDEO 0x1851
|
||||
#define VENDOR_FLYVIDEO_2 0x1852
|
||||
#define VENDOR_STB 0x10B4
|
||||
#define VENDOR_ASKEY_COMP 0x144F
|
||||
#define VENDOR_LEADTEK 0x6606
|
||||
#ifndef __NetBSD__
|
||||
#define PCI_VENDOR_HAUPPAUGE 0x0070
|
||||
#define PCI_VENDOR_AVERMEDIA 0x1461
|
||||
#define PCI_VENDOR_STB 0x10B4
|
||||
#define PCI_VENDOR_ASKEY 0x144F
|
||||
#endif
|
||||
/* Following not confirmed with http://members.hyperlink.net.au/~chart,
|
||||
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
|
||||
@ -609,49 +625,56 @@ probeCard( bktr_ptr_t bktr, int verbose, int unit )
|
||||
printf("%s: subsystem 0x%04x 0x%04x\n", bktr_name(bktr),
|
||||
subsystem_vendor_id, subsystem_id);
|
||||
|
||||
if (subsystem_vendor_id == VENDOR_AVER_MEDIA) {
|
||||
if (subsystem_vendor_id == PCI_VENDOR_AVERMEDIA) {
|
||||
bktr->card = cards[ (card = CARD_AVER_MEDIA) ];
|
||||
bktr->card.eepromAddr = eeprom_i2c_address;
|
||||
bktr->card.eepromSize = (u_char)(256 / EEPROMBLOCKSIZE);
|
||||
goto checkTuner;
|
||||
}
|
||||
|
||||
if (subsystem_vendor_id == VENDOR_HAUPPAUGE) {
|
||||
if (subsystem_vendor_id == PCI_VENDOR_HAUPPAUGE) {
|
||||
bktr->card = cards[ (card = CARD_HAUPPAUGE) ];
|
||||
bktr->card.eepromAddr = eeprom_i2c_address;
|
||||
bktr->card.eepromSize = (u_char)(256 / EEPROMBLOCKSIZE);
|
||||
goto checkTuner;
|
||||
}
|
||||
|
||||
if ((subsystem_vendor_id == VENDOR_FLYVIDEO)
|
||||
|| (subsystem_vendor_id == VENDOR_FLYVIDEO_2) ) {
|
||||
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);
|
||||
goto checkTuner;
|
||||
}
|
||||
|
||||
if (subsystem_vendor_id == VENDOR_STB) {
|
||||
if (subsystem_vendor_id == PCI_VENDOR_STB) {
|
||||
bktr->card = cards[ (card = CARD_STB) ];
|
||||
bktr->card.eepromAddr = eeprom_i2c_address;
|
||||
bktr->card.eepromSize = (u_char)(256 / EEPROMBLOCKSIZE);
|
||||
goto checkTuner;
|
||||
}
|
||||
|
||||
if (subsystem_vendor_id == VENDOR_ASKEY_COMP) {
|
||||
if (subsystem_vendor_id == PCI_VENDOR_ASKEY) {
|
||||
bktr->card = cards[ (card = CARD_ASKEY_DYNALINK_MAGIC_TVIEW) ];
|
||||
bktr->card.eepromAddr = eeprom_i2c_address;
|
||||
bktr->card.eepromSize = (u_char)(256 / EEPROMBLOCKSIZE);
|
||||
goto checkTuner;
|
||||
}
|
||||
|
||||
if (subsystem_vendor_id == VENDOR_LEADTEK) {
|
||||
if (subsystem_vendor_id == PCI_VENDOR_LEADTEK_ALT) {
|
||||
bktr->card = cards[ (card = CARD_LEADTEK) ];
|
||||
bktr->card.eepromAddr = eeprom_i2c_address;
|
||||
bktr->card.eepromSize = (u_char)(256 / EEPROMBLOCKSIZE);
|
||||
goto checkTuner;
|
||||
}
|
||||
|
||||
if (subsystem_vendor_id == PCI_VENDOR_PINNACLE_ALT) {
|
||||
bktr->card = cards[ (card = CARD_MIRO) ];
|
||||
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 */
|
||||
printf("%s: Warning - card vendor 0x%04x (model 0x%04x) unknown.\n",
|
||||
|
@ -128,6 +128,10 @@
|
||||
#include <sys/bus.h> /* used by smbus and newbus */
|
||||
#endif
|
||||
|
||||
#if (__FreeBSD_version < 500000)
|
||||
#include <machine/clock.h> /* for DELAY */
|
||||
#endif
|
||||
|
||||
#include <pci/pcivar.h>
|
||||
|
||||
#if (__FreeBSD_version >=300000)
|
||||
@ -564,20 +568,25 @@ bktr_store_address(unit, BKTR_MEM_BUF, buf);
|
||||
|
||||
/* using the pci device id and revision id */
|
||||
/* and determine the card type */
|
||||
switch (pci_id) {
|
||||
case BROOKTREE_848_PCI_ID:
|
||||
if (rev == 0x12) bktr->id = BROOKTREE_848A;
|
||||
else bktr->id = BROOKTREE_848;
|
||||
break;
|
||||
case BROOKTREE_849_PCI_ID:
|
||||
bktr->id = BROOKTREE_849A;
|
||||
break;
|
||||
case BROOKTREE_878_PCI_ID:
|
||||
bktr->id = BROOKTREE_878;
|
||||
break;
|
||||
case BROOKTREE_879_PCI_ID:
|
||||
bktr->id = BROOKTREE_879;
|
||||
break;
|
||||
if (PCI_VENDOR(pci_id) == PCI_VENDOR_BROOKTREE)
|
||||
{
|
||||
switch (PCI_PRODUCT(pci_id)) {
|
||||
case PCI_PRODUCT_BROOKTREE_BT848:
|
||||
if (rev == 0x12)
|
||||
bktr->id = BROOKTREE_848A;
|
||||
else
|
||||
bktr->id = BROOKTREE_848;
|
||||
break;
|
||||
case PCI_PRODUCT_BROOKTREE_BT849:
|
||||
bktr->id = BROOKTREE_849A;
|
||||
break;
|
||||
case PCI_PRODUCT_BROOKTREE_BT878:
|
||||
bktr->id = BROOKTREE_878;
|
||||
break;
|
||||
case PCI_PRODUCT_BROOKTREE_BT879:
|
||||
bktr->id = BROOKTREE_879;
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
bktr->clr_on_start = FALSE;
|
||||
|
@ -43,6 +43,9 @@
|
||||
#include <sys/uio.h>
|
||||
#include <sys/select.h>
|
||||
|
||||
#if (__FreeBSD_version < 500000)
|
||||
#include <machine/clock.h> /* for DELAY */
|
||||
#endif
|
||||
|
||||
#if (__FreeBSD_version >=300000)
|
||||
#include <machine/bus_memio.h> /* for bus space */
|
||||
|
@ -94,6 +94,9 @@
|
||||
#include <machine/resource.h> /* used by newbus */
|
||||
#endif
|
||||
|
||||
#if (__FreeBSD_version < 500000)
|
||||
#include <machine/clock.h> /* for DELAY */
|
||||
#endif
|
||||
|
||||
#include <pci/pcivar.h>
|
||||
#include <pci/pcireg.h>
|
||||
@ -246,8 +249,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
|
||||
|
||||
|
||||
/*
|
||||
@ -259,20 +264,25 @@ bktr_probe( device_t dev )
|
||||
unsigned int type = pci_get_devid(dev);
|
||||
unsigned int rev = pci_get_revid(dev);
|
||||
|
||||
switch (type) {
|
||||
case BROOKTREE_848_PCI_ID:
|
||||
if (rev == 0x12) device_set_desc(dev, "BrookTree 848A");
|
||||
else device_set_desc(dev, "BrookTree 848");
|
||||
return 0;
|
||||
case BROOKTREE_849_PCI_ID:
|
||||
device_set_desc(dev, "BrookTree 849A");
|
||||
return 0;
|
||||
case BROOKTREE_878_PCI_ID:
|
||||
device_set_desc(dev, "BrookTree 878");
|
||||
return 0;
|
||||
case BROOKTREE_879_PCI_ID:
|
||||
device_set_desc(dev, "BrookTree 879");
|
||||
return 0;
|
||||
if (PCI_VENDOR(type) == PCI_VENDOR_BROOKTREE)
|
||||
{
|
||||
switch (PCI_PRODUCT(type)) {
|
||||
case PCI_PRODUCT_BROOKTREE_BT848:
|
||||
if (rev == 0x12)
|
||||
device_set_desc(dev, "BrookTree 848A");
|
||||
else
|
||||
device_set_desc(dev, "BrookTree 848");
|
||||
return 0;
|
||||
case PCI_PRODUCT_BROOKTREE_BT849:
|
||||
device_set_desc(dev, "BrookTree 849A");
|
||||
return 0;
|
||||
case PCI_PRODUCT_BROOKTREE_BT878:
|
||||
device_set_desc(dev, "BrookTree 878");
|
||||
return 0;
|
||||
case PCI_PRODUCT_BROOKTREE_BT879:
|
||||
device_set_desc(dev, "BrookTree 879");
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
return ENXIO;
|
||||
@ -418,9 +428,24 @@ 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;
|
||||
|
||||
@ -445,7 +470,23 @@ bktr_detach( device_t dev )
|
||||
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.
|
||||
@ -829,17 +870,20 @@ static const char*
|
||||
bktr_probe( pcici_t tag, pcidi_t type )
|
||||
{
|
||||
unsigned int rev = pci_conf_read( tag, PCIR_REVID) & 0x000000ff;
|
||||
|
||||
switch (type) {
|
||||
case BROOKTREE_848_PCI_ID:
|
||||
if (rev == 0x12) return("BrookTree 848A");
|
||||
else return("BrookTree 848");
|
||||
case BROOKTREE_849_PCI_ID:
|
||||
return("BrookTree 849A");
|
||||
case BROOKTREE_878_PCI_ID:
|
||||
return("BrookTree 878");
|
||||
case BROOKTREE_879_PCI_ID:
|
||||
return("BrookTree 879");
|
||||
|
||||
if (PCI_VENDOR(type) == PCI_VENDOR_BROOKTREE)
|
||||
{
|
||||
switch (PCI_PRODUCT(type)) {
|
||||
case PCI_PRODUCT_BROOKTREE_BT848:
|
||||
if (rev == 0x12) return("BrookTree 848A");
|
||||
else return("BrookTree 848");
|
||||
case PCI_PRODUCT_BROOKTREE_BT849:
|
||||
return("BrookTree 849A");
|
||||
case PCI_PRODUCT_BROOKTREE_BT878:
|
||||
return("BrookTree 878");
|
||||
case PCI_PRODUCT_BROOKTREE_BT879:
|
||||
return("BrookTree 879");
|
||||
}
|
||||
};
|
||||
|
||||
return ((char *)0);
|
||||
|
@ -62,6 +62,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
|
||||
@ -92,10 +96,25 @@
|
||||
/*
|
||||
* Definitions for the Brooktree 848/878 video capture to pci interface.
|
||||
*/
|
||||
#define BROOKTREE_848_PCI_ID 0x0350109E
|
||||
#define BROOKTREE_849_PCI_ID 0x0351109E
|
||||
#define BROOKTREE_878_PCI_ID 0x036E109E
|
||||
#define BROOKTREE_879_PCI_ID 0x036F109E
|
||||
#ifndef __NetBSD__
|
||||
#define PCI_VENDOR_SHIFT 0
|
||||
#define PCI_VENDOR_MASK 0xffff
|
||||
#define PCI_VENDOR(id) \
|
||||
(((id) >> PCI_VENDOR_SHIFT) & PCI_VENDOR_MASK)
|
||||
|
||||
#define PCI_PRODUCT_SHIFT 16
|
||||
#define PCI_PRODUCT_MASK 0xffff
|
||||
#define PCI_PRODUCT(id) \
|
||||
(((id) >> PCI_PRODUCT_SHIFT) & PCI_PRODUCT_MASK)
|
||||
|
||||
/* 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 */
|
||||
#endif
|
||||
|
||||
#define BROOKTREE_848 1
|
||||
#define BROOKTREE_848A 2
|
||||
@ -470,13 +489,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.
|
||||
*/
|
||||
@ -532,6 +544,12 @@ struct bktr_softc {
|
||||
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 */
|
||||
@ -544,12 +562,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 */
|
||||
@ -564,8 +595,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 */
|
||||
|
@ -56,6 +56,10 @@
|
||||
#ifdef __FreeBSD__
|
||||
#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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user