summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Stembridge <jstembridge@users.sourceforge.net>2003-11-16 17:18:09 +0000
committerJames Stembridge <jstembridge@users.sourceforge.net>2003-11-16 17:18:09 +0000
commit4e6502e7006b2461f8523deb5f0213873f8cb5e8 (patch)
treeb3aeb01e90ea42c070d69baa1bd13cd1854b1623
parent589a1b197b720d08ce0b6a34ab72b65dbf43c0fa (diff)
downloadxine-lib-4e6502e7006b2461f8523deb5f0213873f8cb5e8.tar.gz
xine-lib-4e6502e7006b2461f8523deb5f0213873f8cb5e8.tar.bz2
sync with vidix cvs
CVS patchset: 5755 CVS date: 2003/11/16 17:18:09
-rw-r--r--CREDITS2
-rw-r--r--src/video_out/libdha/kernelhelper/dhahelper.c176
-rw-r--r--src/video_out/libdha/kernelhelper/dhahelper.h28
-rw-r--r--src/video_out/libdha/libdha.h34
-rw-r--r--src/video_out/libdha/mmi.c10
-rw-r--r--src/video_out/libdha/mtrr.c71
-rw-r--r--src/video_out/libdha/oth/pci.db704
-rw-r--r--src/video_out/libdha/pci.c78
-rw-r--r--src/video_out/libdha/sysdep/AsmMacros_powerpc.h6
-rw-r--r--src/video_out/libdha/sysdep/pci_linux.c4
-rw-r--r--src/video_out/libdha/sysdep/pci_powerpc.c18
-rw-r--r--src/video_out/libdha/test.c5
-rw-r--r--src/video_out/vidix/drivers/mach64_vid.c13
-rw-r--r--src/video_out/vidix/drivers/mga_vid.c2
-rw-r--r--src/video_out/vidix/drivers/pm3_vid.c147
-rw-r--r--src/video_out/vidix/drivers/radeon_vid.c362
-rw-r--r--src/video_out/vidix/fourcc.h3
-rw-r--r--src/video_out/vidix/vidix.h9
-rw-r--r--src/video_out/vidix/vidixlib.c92
-rw-r--r--src/video_out/vidix/vidixlib.h27
20 files changed, 1060 insertions, 731 deletions
diff --git a/CREDITS b/CREDITS
index 440f6b585..44c7682e6 100644
--- a/CREDITS
+++ b/CREDITS
@@ -26,7 +26,7 @@ libvcd 0.7.19-cdio
nosefart 1.92 Mike Melanson
tvtime 0.9.8.4 Miguel Freitas
wine
-vidix MPlayerXP 0.1.10cvs James Stembridge
+vidix cvs (16/Nov/03) James Stembridge
-----------------------------------------------------------------------
diff --git a/src/video_out/libdha/kernelhelper/dhahelper.c b/src/video_out/libdha/kernelhelper/dhahelper.c
index b438364d0..4f41dd9dd 100644
--- a/src/video_out/libdha/kernelhelper/dhahelper.c
+++ b/src/video_out/libdha/kernelhelper/dhahelper.c
@@ -2,7 +2,7 @@
Direct Hardware Access kernel helper
(C) 2002 Alex Beregszaszi <alex@naxine.org>
- (C) 2002 Nick Kurshev <nickols_k@mail.ru>
+ (C) 2002-2003 Nick Kurshev <nickols_k@mail.ru>
Accessing hardware from userspace as USER (no root needed!)
@@ -90,13 +90,25 @@
#include <linux/fs.h>
#include <linux/unistd.h>
+#ifdef CONFIG_MTRR
+#include <asm/mtrr.h>
+#endif
#ifdef CONFIG_DEVFS_FS
#include <linux/devfs_fs_kernel.h>
#endif
#include "dhahelper.h"
-MODULE_AUTHOR("Alex Beregszaszi <alex@naxine.org> and Nick Kurshev <nickols_k@mail.ru>");
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+#define DEV_MINOR(d) minor(d)
+#define pte_offset(p,a) pte_offset_kernel(p,a)
+#define LockPage(p) SetPageLocked(p)
+#define UnlockPage(p) ClearPageLocked(p)
+#else
+#define DEV_MINOR(d) MINOR(d)
+#endif
+
+MODULE_AUTHOR("Alex Beregszaszi <alex@naxine.org>, Nick Kurshev <nickols_k@mail.ru>, Måns Rullgård <mru@users.sf.net>");
MODULE_DESCRIPTION("Provides userspace access to hardware");
#ifdef MODULE_LICENSE
MODULE_LICENSE("GPL");
@@ -118,10 +130,12 @@ static int dhahelper_open(struct inode *inode, struct file *file)
if (dhahelper_verbosity > 1)
printk(KERN_DEBUG "dhahelper: device opened\n");
- if (MINOR(inode->i_rdev) != 0)
+ if (DEV_MINOR(inode->i_rdev) != 0)
return -ENXIO;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0)
MOD_INC_USE_COUNT;
+#endif
return 0;
}
@@ -131,10 +145,12 @@ static int dhahelper_release(struct inode *inode, struct file *file)
if (dhahelper_verbosity > 1)
printk(KERN_DEBUG "dhahelper: device released\n");
- if (MINOR(inode->i_rdev) != 0)
+ if (DEV_MINOR(inode->i_rdev) != 0)
return -ENXIO;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0)
MOD_DEC_USE_COUNT;
+#endif
return 0;
}
@@ -735,6 +751,140 @@ static int dhahelper_cpu_flush(dhahelper_cpu_flush_t *arg)
return 0;
}
+static struct pci_dev *pdev = NULL;
+static int dhahelper_pci_find(dhahelper_pci_device_t *arg)
+{
+ dhahelper_pci_device_t this_dev;
+ pdev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, pdev);
+ if(pdev)
+ {
+ this_dev.bus = pdev->bus->number;
+ this_dev.card = PCI_SLOT(pdev->devfn);
+ this_dev.func = PCI_FUNC(pdev->devfn);
+ this_dev.vendor = pdev->vendor;
+ this_dev.device = pdev->device;
+ this_dev.base0 = pci_resource_start (pdev, 0);
+ this_dev.base1 = pci_resource_start (pdev, 1);
+ this_dev.base2 = pci_resource_start (pdev, 2);
+ pci_read_config_dword(pdev, pdev->rom_base_reg, (u32*)&this_dev.baserom);
+ this_dev.base3 = pci_resource_start (pdev, 3);
+ this_dev.base4 = pci_resource_start (pdev, 4);
+ this_dev.base5 = pci_resource_start (pdev, 5);
+ pci_read_config_byte(pdev, PCI_INTERRUPT_LINE, &this_dev.irq);
+ pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &this_dev.ipin);
+ pci_read_config_byte(pdev, PCI_MIN_GNT, &this_dev.gnt);
+ pci_read_config_byte(pdev, PCI_MAX_LAT, &this_dev.lat);
+ }
+ else memset(&this_dev,0,sizeof(dhahelper_pci_device_t));
+ if (copy_to_user(arg, &this_dev, sizeof(dhahelper_pci_device_t)))
+ {
+ if (dhahelper_verbosity > 0)
+ printk(KERN_ERR "dhahelper: failed copy to userspace\n");
+ return -EFAULT;
+ }
+ return pdev?0:-ENODATA;
+}
+
+static int dhahelper_pci_config(dhahelper_pci_config_t *arg)
+{
+ dhahelper_pci_config_t op;
+ struct pci_dev *pdev;
+ if (copy_from_user(&op, arg, sizeof(dhahelper_pci_config_t)))
+ {
+ if (dhahelper_verbosity > 0)
+ printk(KERN_ERR "dhahelper: failed copy from userspace\n");
+ return -EFAULT;
+ }
+ pdev = pci_find_slot(op.bus,PCI_DEVFN(op.dev,op.func));
+ if(!pdev)
+ {
+ if (dhahelper_verbosity > 0)
+ printk(KERN_ERR "dhahelper: can't identify device\n");
+ return -EFAULT;
+ }
+ switch(op.operation)
+ {
+ case PCI_OP_READ:
+ switch(op.size)
+ {
+ case 1:
+ pci_read_config_byte(pdev,op.cmd,(u8*)&op.ret);
+ break;
+ case 2:
+ pci_read_config_word(pdev,op.cmd,(u16*)&op.ret);
+ break;
+ case 4:
+ pci_read_config_dword(pdev,op.cmd,(u32*)&op.ret);
+ break;
+ default:
+ if (dhahelper_verbosity > 0)
+ printk(KERN_ERR "dhahelper: wrong size of pci operation: %u \n",op.size);
+ return -EFAULT;
+ }
+ case PCI_OP_WRITE:
+ switch(op.size)
+ {
+ case 1:
+ pci_write_config_byte(pdev,op.cmd,op.ret);
+ break;
+ case 2:
+ pci_write_config_word(pdev,op.cmd,op.ret);
+ break;
+ case 4:
+ pci_write_config_dword(pdev,op.cmd,op.ret);
+ break;
+ default:
+ if (dhahelper_verbosity > 0)
+ printk(KERN_ERR "dhahelper: wrong size of pci operation: %u \n",op.size);
+ return -EFAULT;
+ }
+ default:
+ if (dhahelper_verbosity > 0)
+ printk(KERN_ERR "dhahelper: unknown pci operation %i\n",op.operation);
+ return -EFAULT;
+ }
+ if (copy_to_user(arg, &op, sizeof(dhahelper_pci_device_t)))
+ {
+ if (dhahelper_verbosity > 0)
+ printk(KERN_ERR "dhahelper: failed copy to userspace\n");
+ return -EFAULT;
+ }
+ return 0;
+}
+
+static int dhahelper_mtrr(dhahelper_mtrr_t *arg)
+{
+#ifdef CONFIG_MTRR
+ dhahelper_mtrr_t op;
+ if (copy_from_user(&op, arg, sizeof(dhahelper_pci_config_t)))
+ {
+ if (dhahelper_verbosity > 0)
+ printk(KERN_ERR "dhahelper: failed copy from userspace\n");
+ return -EFAULT;
+ }
+ switch(op.operation)
+ {
+ case MTRR_OP_ADD:
+ op.privat = mtrr_add (op.start,op.size,op.type,1);
+ break;
+ case MTRR_OP_DEL:
+ mtrr_del(op.privat, op.start, op.size);
+ break;
+ default:
+ if (dhahelper_verbosity > 0)
+ printk(KERN_ERR "dhahelper: unknown mtrr operation %i\n",op.operation);
+ return -EFAULT;
+ }
+ if (copy_to_user(arg, &op, sizeof(dhahelper_mtrr_t)))
+ {
+ if (dhahelper_verbosity > 0)
+ printk(KERN_ERR "dhahelper: failed copy to userspace\n");
+ return -EFAULT;
+ }
+#endif
+ return 0;
+}
+
static int dhahelper_ioctl(struct inode *inode, struct file *file,
unsigned int cmd, unsigned long arg)
{
@@ -742,13 +892,15 @@ static int dhahelper_ioctl(struct inode *inode, struct file *file,
printk(KERN_DEBUG "dhahelper: ioctl(cmd=%x, arg=%lx)\n",
cmd, arg);
- if (MINOR(inode->i_rdev) != 0)
+ if (DEV_MINOR(inode->i_rdev) != 0)
return -ENXIO;
switch(cmd)
{
case DHAHELPER_GET_VERSION: return dhahelper_get_version((int *)arg);
case DHAHELPER_PORT: return dhahelper_port((dhahelper_port_t *)arg);
+ case DHAHELPER_MTRR: return dhahelper_mtrr((dhahelper_mtrr_t *)arg);
+ case DHAHELPER_PCI_CONFIG: return dhahelper_pci_config((dhahelper_pci_config_t *)arg);
case DHAHELPER_VIRT_TO_PHYS:return dhahelper_virt_to_phys((dhahelper_vmi_t *)arg);
case DHAHELPER_VIRT_TO_BUS: return dhahelper_virt_to_bus((dhahelper_vmi_t *)arg);
case DHAHELPER_ALLOC_PA:return dhahelper_alloc_pa((dhahelper_mem_t *)arg);
@@ -759,6 +911,7 @@ static int dhahelper_ioctl(struct inode *inode, struct file *file,
case DHAHELPER_ACK_IRQ: return dhahelper_ack_irq((dhahelper_irq_t *)arg);
case DHAHELPER_FREE_IRQ: return dhahelper_free_irq((dhahelper_irq_t *)arg);
case DHAHELPER_CPU_FLUSH: return dhahelper_cpu_flush((dhahelper_cpu_flush_t *)arg);
+ case DHAHELPER_PCI_FIND: return dhahelper_pci_find((dhahelper_pci_device_t *)arg);
default:
if (dhahelper_verbosity > 0)
printk(KERN_ERR "dhahelper: invalid ioctl (%x)\n", cmd);
@@ -927,6 +1080,7 @@ static inline int noncached_address(unsigned long addr)
static int dhahelper_mmap(struct file * file, struct vm_area_struct * vma)
{
unsigned long offset = vma->vm_pgoff << PAGE_SHIFT;
+ int err;
/*
* Accessing memory above the top the kernel knows about or
@@ -945,8 +1099,14 @@ static int dhahelper_mmap(struct file * file, struct vm_area_struct * vma)
if (offset >= __pa(high_memory) || (file->f_flags & O_SYNC))
vma->vm_flags |= VM_IO;
- if (remap_page_range(vma->vm_start, offset, vma->vm_end-vma->vm_start,
- vma->vm_page_prot))
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ err = remap_page_range(vma, vma->vm_start, offset,
+ vma->vm_end-vma->vm_start, vma->vm_page_prot);
+#else
+ err = remap_page_range(vma->vm_start, offset,
+ vma->vm_end-vma->vm_start, vma->vm_page_prot);
+#endif
+ if(err)
return -EAGAIN;
return 0;
}
@@ -1035,7 +1195,9 @@ static void __exit exit_dhahelper(void)
#endif
}
+#ifdef EXPORT_NO_SYMBOLS
EXPORT_NO_SYMBOLS;
+#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
module_init(init_dhahelper);
diff --git a/src/video_out/libdha/kernelhelper/dhahelper.h b/src/video_out/libdha/kernelhelper/dhahelper.h
index 4c12840f4..7db56abb5 100644
--- a/src/video_out/libdha/kernelhelper/dhahelper.h
+++ b/src/video_out/libdha/kernelhelper/dhahelper.h
@@ -2,6 +2,7 @@
Direct Hardware Access kernel helper
(C) 2002 Alex Beregszaszi <alex@naxine.org>
+ (C) 2002-2003 Nick Kurshev <nickols_k@mail.ru>
*/
#ifndef DHAHELPER_H
@@ -12,7 +13,7 @@
/* feel free to change */
#define DEFAULT_MAJOR 252 /* 240-254 LOCAL/EXPERIMENTAL USE */
-#define API_VERSION 0x21 /* 2.1*/
+#define API_VERSION 0x30 /* 3.0*/
typedef struct dhahelper_port_s
{
@@ -29,14 +30,15 @@ typedef struct dhahelper_mtrr_s
#define MTRR_OP_ADD 1
#define MTRR_OP_DEL 2
int operation;
- int start;
- int size;
+ long start;
+ long size;
int type;
+ int privat;
} dhahelper_mtrr_t;
-typedef struct dhahelper_pci_s
+typedef struct dhahelper_pci_config_s
{
-#define PCI_OP_READ 1
+#define PCI_OP_READ 0
#define PCI_OP_WRITE 1
int operation;
int bus;
@@ -44,8 +46,8 @@ typedef struct dhahelper_pci_s
int func;
int cmd;
int size;
- int ret;
-} dhahelper_pci_t;
+ long ret;
+} dhahelper_pci_config_t;
typedef struct dhahelper_vmi_s
{
@@ -75,10 +77,19 @@ typedef struct dhahelper_cpu_flush_s
unsigned long length;
}dhahelper_cpu_flush_t;
+typedef struct dhahelper_pci_device_s
+{
+ int bus,card,func; /* PCI/AGP bus:card:func */
+ unsigned short vendor,device; /* Card vendor+device ID */
+ unsigned long base0,base1,base2,baserom; /* Memory and I/O base addresses */
+ unsigned long base3,base4,base5; /* Memory and I/O base addresses */
+ unsigned char irq,ipin,gnt,lat; /* assigned IRQ parameters for this card */
+}dhahelper_pci_device_t;
+
#define DHAHELPER_GET_VERSION _IOW('D', 0, int)
#define DHAHELPER_PORT _IOWR('D', 1, dhahelper_port_t)
#define DHAHELPER_MTRR _IOWR('D', 2, dhahelper_mtrr_t)
-#define DHAHELPER_PCI _IOWR('D', 3, dhahelper_pci_t)
+#define DHAHELPER_PCI_CONFIG _IOWR('D', 3, dhahelper_pci_config_t)
#define DHAHELPER_VIRT_TO_PHYS _IOWR('D', 4, dhahelper_vmi_t)
#define DHAHELPER_VIRT_TO_BUS _IOWR('D', 5, dhahelper_vmi_t)
#define DHAHELPER_ALLOC_PA _IOWR('D', 6, dhahelper_mem_t)
@@ -89,5 +100,6 @@ typedef struct dhahelper_cpu_flush_s
#define DHAHELPER_ACK_IRQ _IOWR('D', 11, dhahelper_irq_t)
#define DHAHELPER_FREE_IRQ _IOWR('D', 12, dhahelper_irq_t)
#define DHAHELPER_CPU_FLUSH _IOWR('D', 13, dhahelper_cpu_flush_t)
+#define DHAHELPER_PCI_FIND _IOWR('D', 14, dhahelper_pci_device_t)
#endif /* DHAHELPER_H */
diff --git a/src/video_out/libdha/libdha.h b/src/video_out/libdha/libdha.h
index 9984574ca..e37cae515 100644
--- a/src/video_out/libdha/libdha.h
+++ b/src/video_out/libdha/libdha.h
@@ -35,8 +35,8 @@ typedef struct pciinfo_s
{
int bus,card,func; /* PCI/AGP bus:card:func */
unsigned short vendor,device; /* Card vendor+device ID */
- unsigned base0,base1,base2,baserom; /* Memory and I/O base addresses */
- unsigned base3,base4,base5; /* Memory and I/O base addresses */
+ unsigned long base0,base1,base2,baserom; /* Memory and I/O base addresses */
+ unsigned long base3,base4,base5; /* Memory and I/O base addresses */
unsigned char irq,ipin,gnt,lat; /* assigned IRQ parameters for this card */
// unsigned base0_limit, base1_limit, base2_limit, baserom_limit;
}pciinfo_t;
@@ -93,12 +93,36 @@ extern void bm_close( void );
extern int bm_virt_to_phys( void * virt_addr, unsigned long length,
unsigned long * parray );
/* Converts virtual memory addresses into bus address
- Works in the same way as bm_virt_to_phys. */
+ Works in the same way as bm_virt_to_phys.
+ WARNING: This function will be die after implementing
+ bm_alloc_pci_shmem() because we really can't pass
+ any memory address to card. Example: 64-bit linear address
+ can't be passed into 32-bit card. Even more - some old
+ cards can access 24-bit address space only */
extern int bm_virt_to_bus( void * virt_addr, unsigned long length,
unsigned long * barray );
-extern void * bm_alloc_pa( unsigned long length );
-extern void bm_free_pa( void * virt_addr, unsigned long length );
+ /* NOTE: bm_alloc_pci_shmem() and bm_free_pci_shmem()
+ are still not implemented!
+ arguments:
+ pciinfo_t - specifies pci card for which memory should be shared
+ bitness - can be 16,24,32,64 specifies addressing possibilities
+ of the card
+ length - specifies size of memory which should allocated
+ op - specifies direction as combination flags TO_CARD,FROM_CARD
+ Return value - should be tuned
+ we need to have something like this:
+ struct pci_shmem
+ {
+ void * handler;
+ void * virt_addr
+ void * array_of_bus_addr[];
+ unsigned long length;
+ }
+ NOTE2: After finalizing of these functions bm_virt_to_bus() will be die */
+extern void * bm_alloc_pci_shmem(pciinfo_t *, unsigned mem_bitness, unsigned long length,int op );
+extern void bm_free_pci_shmem(void * pci_shmem);
+
extern int bm_lock_mem( const void * addr, unsigned long length );
extern int bm_unlock_mem( const void * addr, unsigned long length );
diff --git a/src/video_out/libdha/mmi.c b/src/video_out/libdha/mmi.c
index ffdf8df15..d1cd3c8d1 100644
--- a/src/video_out/libdha/mmi.c
+++ b/src/video_out/libdha/mmi.c
@@ -58,8 +58,10 @@ int bm_virt_to_bus( void * virt_addr, unsigned long length, unsigned long * barr
return ENXIO;
}
-void * bm_alloc_pa( unsigned long length )
+void * bm_alloc_pci_shmem(pciinfo_t *pi, unsigned mem_bitness, unsigned long length,int op )
{
+ printf("libdha: Pure virtual function call - bm_alloc_pci_shmem()\n");
+#if 0
dhahelper_mem_t vmi;
vmi.length = length;
if(libdha_fd > 0)
@@ -68,10 +70,13 @@ void * bm_alloc_pa( unsigned long length )
return vmi.addr;
}
return 0;
+#endif
}
-void bm_free_pa( void * virt_addr, unsigned long length )
+void bm_free_pci_shmem(void * pci_shmem)
{
+ printf("libdha: Pure virtual function call - bm_free_pci_shmem()\n");
+#if 0
dhahelper_mem_t vmi;
vmi.addr = virt_addr;
vmi.length = length;
@@ -79,6 +84,7 @@ void bm_free_pa( void * virt_addr, unsigned long length )
{
ioctl(libdha_fd,DHAHELPER_FREE_PA,&vmi);
}
+#endif
}
int bm_lock_mem( const void *addr, unsigned long length )
diff --git a/src/video_out/libdha/mtrr.c b/src/video_out/libdha/mtrr.c
index 765562dd6..4878c2284 100644
--- a/src/video_out/libdha/mtrr.c
+++ b/src/video_out/libdha/mtrr.c
@@ -10,6 +10,10 @@
#include <stdio.h>
#include <string.h>
#include <errno.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include "kernelhelper/dhahelper.h"
#include "libdha.h"
#if defined (__i386__) && defined (__NetBSD__)
@@ -22,10 +26,43 @@
#endif
#endif
-#if defined( __i386__ )
int mtrr_set_type(unsigned base,unsigned size,int type)
{
-#ifdef linux
+ int dhahelper_fd;
+ dhahelper_fd = open("/dev/dhahelper",O_RDWR);
+ if(dhahelper_fd > 0)
+ {
+ int retval;
+ dhahelper_mtrr_t mtrrs;
+ mtrrs.operation = MTRR_OP_ADD;
+ mtrrs.start = base;
+ mtrrs.size = size;
+ mtrrs.type = type;
+ retval = ioctl(dhahelper_fd, DHAHELPER_ACK_IRQ, &mtrrs);
+ close(dhahelper_fd);
+ return retval;
+ }
+#if defined (__NetBSD__) && (__NetBSD_Version__) > 105240000
+ {
+ struct mtrr *mtrrp;
+ int n;
+
+ mtrrp = malloc(sizeof (struct mtrr));
+ mtrrp->base = base;
+ mtrrp->len = size;
+ mtrrp->type = type;
+ mtrrp->flags = MTRR_VALID | MTRR_PRIVATE;
+ n = 1;
+
+ if (i386_set_mtrr(mtrrp, &n) < 0) {
+ free(mtrrp);
+ return errno;
+ }
+ free(mtrrp);
+ return 0;
+ }
+#else
+ {
FILE * mtrr_fd;
char * stype;
switch(type)
@@ -48,37 +85,7 @@ int mtrr_set_type(unsigned base,unsigned size,int type)
fclose(mtrr_fd);
return wr_len == strlen(sout) ? 0 : EPERM;
}
- return ENOSYS;
-#elif defined (__NetBSD__)
-#if __NetBSD_Version__ > 105240000
- struct mtrr *mtrrp;
- int n;
-
- mtrrp = malloc(sizeof (struct mtrr));
- mtrrp->base = base;
- mtrrp->len = size;
- mtrrp->type = type;
- mtrrp->flags = MTRR_VALID | MTRR_PRIVATE;
- n = 1;
-
- if (i386_set_mtrr(mtrrp, &n) < 0) {
- free(mtrrp);
- return errno;
}
- free(mtrrp);
- return 0;
-#else
- /* NetBSD prior to 1.5Y doesn't have MTRR support */
- return ENOSYS;
-#endif
-#else
-#warning Please port MTRR stuff!!!
- return ENOSYS;
#endif
-}
-#else
-int mtrr_set_type(unsigned base,unsigned size,int type)
-{
return ENOSYS;
}
-#endif
diff --git a/src/video_out/libdha/oth/pci.db b/src/video_out/libdha/oth/pci.db
index 7bdac80c5..73ba5c7c2 100644
--- a/src/video_out/libdha/oth/pci.db
+++ b/src/video_out/libdha/oth/pci.db
@@ -2,7 +2,6 @@ v 0000 Gammagraphx, Inc. 0
v 001a Ascend Communications, Inc. 0
v 0033 Paradyne corp. 0
v 003d Lockheed Martin-Marietta Corp 0
-v 0059 Tiger Jet Network Inc. (Wrong ID) 0 Real TJN ID is e159, but they got it wrong several times --mj
v 0070 Hauppauge computer works Inc. 0
v 0100 Ncipher Corp Ltd 0
v 0675 Dynalink 0
@@ -139,14 +138,27 @@ d 10010016 PCI-MFB Analogue I/O board 0
d 10010017 PROTO-3 PCI Prototyping board 0
d 10019100 INI-9100/9100W SCSI Host 0
v 1002 ATI Technologies Inc 0
+d 10024136 Radeon RS100 [IGP320] 0
+d 10024137 Radeon RS200 [IGP330/340/350] 0
+d 10024144 Radeon RV300 [9500 AD] 0
+d 10024145 Radeon RV300 [9500 AE] 0
+d 10024146 Radeon RV300 [9500 AF] 0
+d 10024147 Radeon R300 [FireGL Z1/X1] 0
+d 10024148 Radeon R350 [No name AH] 0
+d 10024149 Radeon R350 [No name AI] 0
+d 1002414A Radeon R350 [No name AJ] 0
+d 1002414B Radeon R350 [FireGL AK] 0
+d 10024150 Radeon RV350 [9600 AP] 0
+d 10024152 Radeon RV350 [9600Pro AR] 0
d 10024158 68800AX [Mach32] 0
+d 10024237 Radeon RS250 [7000 IGP (A4+)] 0
d 10024242 Radeon R200 BB [Radeon All in Wonder 8500DV] 0
s 10024242100202aa Radeon 8500 AIW DV Edition 0
-d 10024336 Radeon Mobility U1 0
-d 10024337 Radeon IGP 340M 1 Compaq Evo N1020v
-d 10024337 Radeon IGP 340 1 Compaq Evo N1020v
+d 10024336 Radeon RS100 Mobility [IGP320M (U1)] 0
+d 10024337 Radeon RS200 Mobility [IGP330M/340M/350M (U2)] 0
d 10024354 215CT [Mach64 CT] 0
d 10024358 210888CX [Mach64 CX] 0
+d 10024437 Radeon RS250 Mobility [7000 IGP] 0
d 10024554 210888ET [Mach64 ET] 0
d 10024654 Mach64 VT 0
d 10024742 3D Rage Pro AGP 1X/2X 0
@@ -194,8 +206,7 @@ d 10024751 3D Rage Pro 215GQ 0
d 10024752 Rage XL 0
s 1002475210020008 Rage XL 0
s 1002475210024752 Rage XL 0
-s 1002475210028008 Rage XL 1
-s 10024752102800d1 PowerEdge 2550 0
+s 10024752102800d1 PowerEdge 2550 1
d 10024753 Rage XC 0
s 1002475310024753 Rage XC 0
d 10024754 3D Rage I/II 215GT [Mach64 GT] 0
@@ -213,18 +224,20 @@ d 10024759 3D Rage IIC 0
d 1002475a 3D Rage IIC AGP 0
s 1002475a10020087 Rage 3D IIC 0
s 1002475a1002475a Rage IIC AGP 0
-d 10024964 Radeon R250 Id [Radeon 9000] 0
-d 10024965 Radeon R250 Ie [Radeon 9000] 0
-d 10024966 Radeon R250 If [Radeon 9000] 0
-s 1002496610f10002 R250 If [Tachyon G9000 PRO] 0
-s 10024966148c2039 R250 If [Radeon 9000 Pro "Evil Commando"] 0
-s 1002496615099a00 R250 If [Radeon 9000 "AT009"] 0
-s 10024966174b7176 R250 If [Sapphire Radeon 9000 Pro] 0
-s 10024966174b7192 R250 If [Radeon 9000 "Atlantis"] 0
-s 1002496617af2005 R250 If [Excalibur Radeon 9000 Pro] 0
-s 1002496617af2006 R250 If [Excalibur Radeon 9000] 0
+d 10024964 Radeon RV250 Id [Radeon 9000] 0
+d 10024965 Radeon RV250 Ie [Radeon 9000] 0
+d 10024966 Radeon RV250 If [Radeon 9000] 0
+d 10024967 Radeon RV250 Ig [Radeon 9000] 0
+s 1002496610f10002 R250 If [Tachyon G9000 PRO] 1 ATI supplied info - http://mirror.ati.com/support/identify/graphicschart.html
+s 10024966148c2039 R250 If [Radeon 9000 Pro "Evil Commando"] 1 ATI supplied info - http://mirror.ati.com/support/identify/graphicschart.html
+s 1002496615099a00 R250 If [Radeon 9000 "AT009"] 1 ATI supplied info - http://mirror.ati.com/support/identify/graphicschart.html
+s 10024966174b7176 R250 If [Sapphire Radeon 9000 Pro] 1 ATI supplied info - http://mirror.ati.com/support/identify/graphicschart.html
+s 10024966174b7192 Radeon R250 If [Radeon 9000 "Atlantis"] 1 New "Powered by ATI" card - Manufactured by: Sapphire (www.sapphiretech.com)
+s 10024966174b7192 R250 If [Radeon 9000 "Atlantis"] 1 Update - tidied up entry above submitted by someone else
+s 1002496617af2005 R250 If [Excalibur Radeon 9000 Pro] 1 ATI supplied info - http://mirror.ati.com/support/identify/graphicschart.html
+s 1002496617af2006 R250 If [Excalibur Radeon 9000] 1 ATI supplied info - http://mirror.ati.com/support/identify/graphicschart.html
d 10024967 Radeon R250 Ig [Radeon 9000] 0
-d 1002496e Radeon R250 [Radeon 9000] (Secondary) 0
+d 1002496e Radeon R250 [Radeon 9000] (Secondary) 1
d 10024c42 3D Rage LT Pro AGP-133 0
s 10024c420e11b0e8 Rage 3D LT Pro 0
s 10024c420e11b10e 3D Rage LT Pro (Compaq Armada 1750) 0
@@ -243,9 +256,8 @@ s 10024c4910020040 Rage LT Pro 0
s 10024c4910020044 Rage LT Pro 0
s 10024c4910024c49 Rage LT Pro 0
d 10024c4d Rage Mobility P/M AGP 2x 0
-s 10024c4d0e11b111 Armada M700 1
s 10024c4d10020084 Xpert 98 AGP 2X (Mobility) 0
-s 10024c4d10140154 ThinkPad A20m 0
+s 10024c4d10140154 ThinkPad A20m 1
d 10024c4e Rage Mobility L AGP 2x 0
d 10024c50 3D Rage LT Pro 0
s 10024c5010024c50 Rage LT Pro 0
@@ -254,26 +266,30 @@ d 10024c52 Rage Mobility P/M 0
d 10024c53 Rage Mobility L 0
d 10024c54 264LT [Mach64 LT] 0
d 10024c57 Radeon Mobility M7 LW [Radeon Mobility 7500] 0
-s 10024c5710140517 ThinkPad T30 0
+s 10024c5710140517 ThinkPad T30 1
s 10024c57102800e6 Radeon Mobility M7 LW (Dell Inspiron 8100) 0
-s 10024c57144dc006 Radeon Mobility M7 LW in vpr Matrix 170B4 0
d 10024c58 Radeon Mobility M7 LX [Radeon Mobility FireGL 7800] 0
d 10024c59 Radeon Mobility M6 LY 0
s 10024c5910140235 ThinkPad A30p (2653-64G) 0
s 10024c5910140239 ThinkPad X22/X23/X24 0
s 10024c59104d80e7 VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP 0
d 10024c5a Radeon Mobility M6 LZ 0
-d 10024c64 Radeon R250 Ld [Radeon Mobility 9000] 0
-d 10024c65 Radeon R250 Le [Radeon Mobility 9000] 0
-d 10024c66 Radeon R250 Lf [Radeon Mobility 9000] 0
-d 10024c67 Radeon R250 Lg [Radeon Mobility 9000] 0
+d 10024c64 Radeon RV250 Ld [Radeon Mobility 9000] 0
+d 10024c65 Radeon RV250 Le [Radeon Mobility 9000] 0
+d 10024c66 Radeon RV250 Lf [Radeon Mobility 9000] 0
+d 10024c67 Radeon RV250 Lg [Radeon Mobility 9000] 0
d 10024d46 Rage Mobility M4 AGP 0
d 10024d4c Rage Mobility M4 AGP 0
-d 10024e44 Radeon R300 ND [Radeon 9700] 0
+d 10024e44 Radeon R300 ND [Radeon 9700Pro] 0
d 10024e45 Radeon R300 NE [Radeon 9700] 0
d 10024e46 Radeon R300 NF [Radeon 9700] 0
-d 10024e47 Radeon R300 NG [Radeon 9700] 0
-d 10024e64 Radeon R300 [Radeon 9700] (Secondary) 0
+d 10024e47 Radeon R300 NG [FireGL X1] 0
+d 10024e48 Radeon R350 NH [Radeon 9800] 0
+d 10024e49 Radeon R350 NI [Radeon 9800] 0
+d 10024e4A Radeon R350 NJ [Radeon 9800] 0
+d 10024e4B Radeon R350 NK [Radeon 9800] 0
+d 10024e50 Radeon RV350 NP [Mobility M10] 0
+d 10024e64 Radeon R300 [Radeon 9700] (Secondary) 1
d 10025041 Rage 128 PA/PRO 0
d 10025042 Rage 128 PB/PRO AGP 2x 0
d 10025043 Rage 128 PC/PRO AGP 4x 0
@@ -328,27 +344,29 @@ d 10025145 Radeon R100 QE 0
d 10025146 Radeon R100 QF 0
d 10025147 Radeon R100 QG 0
d 10025148 Radeon R200 QH [Radeon 8500] 0
-s 100251481002010a FireGL 8800 64Mb 0
-s 1002514810020152 FireGL 8800 128Mb 0
-s 1002514810020162 FireGL 8700 32Mb 0
-s 1002514810020172 FireGL 8700 64Mb 0
+s 1002514810020152 FireGL 8800 0
+s 1002514810020172 FireGL 8700 0
d 10025149 Radeon R200 QI 0
d 1002514a Radeon R200 QJ 0
d 1002514b Radeon R200 QK 0
d 1002514c Radeon R200 QL [Radeon 8500 LE] 0
+d 1002514d Radeon R200 QM 0
+d 1002514e Radeon R200 QN 0
+d 1002514f Radeon R200 QO 0
s 1002514c1002003a Radeon R200 QL [Radeon 8500 LE] 0
s 1002514c1002013a Radeon 8500 0
-s 1002514c148c2026 R200 QL [Radeon 8500 Evil Master II Multi Display Edition] 0
+s 1002514c148c2026 R200 QL [Radeon 8500 Evil Master II Multi Display Edition] 1
+s 1002514c148c2026 R200 QL [Radeon 8500 Evil Master II Multi Display Edition] 1 Oops, missed comment above http://mirror.ati.com/support/identify/graphicschart.html
s 1002514c174b7149 Radeon R200 QL [Sapphire Radeon 8500 LE] 0
d 10025157 Radeon RV200 QW [Radeon 7500] 0
s 100251571002013a Radeon 7500 0
-s 1002515714584000 RV200 QW [RADEON 7500 PRO MAYA AR] 0
-s 10025157148c2024 RV200 QW [Radeon 7500LE Dual Display] 0
-s 10025157148c2025 RV200 QW [Radeon 7500 Evil Master Multi Display Edition] 0
-s 10025157148c2036 RV200 QW [Radeon 7500 PCI Dual Display] 0
-s 10025157174b7147 RV200 QW [Sapphire Radeon 7500LE] 0
+s 1002515714584000 RV200 QW [RADEON 7500 PRO MAYA AR] 1 ATI supplied info - http://mirror.ati.com/support/identify/graphicschart.html
+s 10025157148c2024 RV200 QW [Radeon 7500LE Dual Display] 1 ATI supplied info - http://mirror.ati.com/support/identify/graphicschart.html
+s 10025157148c2025 RV200 QW [Radeon 7500 Evil Master Multi Display Edition] 1 ATI supplied info - http://mirror.ati.com/support/identify/graphicschart.html
+s 10025157148c2036 RV200 QW [Radeon 7500 PCI Dual Display] 1 ATI supplied info - http://mirror.ati.com/support/identify/graphicschart.html
+s 10025157174b7147 RV200 QW [Sapphire Radeon 7500LE] 1 ATI supplied info - http://mirror.ati.com/support/identify/graphicschart.html
s 10025157174b7161 Radeon RV200 QW [Radeon 7500 LE] 0
-s 1002515717af0202 RV200 QW [Excalibur Radeon 7500LE] 0
+s 1002515717af0202 RV200 QW [Excalibur Radeon 7500LE] 1 ATI supplied info - http://mirror.ati.com/support/identify/graphicschart.html
d 10025158 Radeon RV200 QX [Radeon 7500] 0
d 10025159 Radeon VE QY 0
s 100251591002000a Radeon 7000/Radeon VE 0
@@ -357,16 +375,18 @@ s 1002515910020038 Radeon 7000/Radeon VE 0
s 100251591002003a Radeon 7000/Radeon VE 0
s 10025159100200ba Radeon 7000/Radeon VE 0
s 100251591002013a Radeon 7000/Radeon VE 0
-s 1002515914584002 RV100 QY [RADEON 7000 PRO MAYA AV Series] 0
-s 10025159148c2003 RV100 QY [Radeon 7000 Multi-Display Edition] 0
-s 10025159148c2023 RV100 QY [Radeon 7000 Evil Master Multi-Display] 0
-s 10025159174b7112 RV100 QY [Sapphire Radeon VE 7000] 0
-s 1002515917870202 RV100 QY [Excalibur Radeon 7000] 0
+s 1002515914584002 RV100 QY [RADEON 7000 PRO MAYA AV Series] 1 ATI clone board - http://mirror.ati.com/support/identify/graphicschart.html
+s 10025159148c2003 RV100 QY [Radeon 7000 Multi-Display Edition] 1 ATI clone board - http://mirror.ati.com/support/identify/graphicschart.html
+s 10025159148c2023 RV100 QY [Radeon 7000 Evil Master Multi-Display] 1 ATI clone board - http://mirror.ati.com/support/identify/graphicschart.html
+s 10025159174b7112 Radeon 7000 64M TVO 0
+s 10025159174b7112 RV100 QY [Sapphire Radeon VE 7000] 1 ATI clone board - http://mirror.ati.com/support/identify/graphicschart.html
+s 1002515917870202 RV100 QY [Excalibur Radeon 7000] 1 ATI clone board - http://mirror.ati.com/support/identify/graphicschart.html
d 1002515a Radeon VE QZ 0
d 10025168 Radeon R200 Qh 0
d 10025169 Radeon R200 Qi 0
d 1002516a Radeon R200 Qj 0
d 1002516b Radeon R200 Qk 0
+d 1002516c Radeon R200 Ql 0
d 10025245 Rage 128 RE/SG 0
s 1002524510020008 Xpert 128 0
s 1002524510020028 Rage 128 AIW 0
@@ -416,6 +436,18 @@ d 10025654 264VT [Mach64 VT] 0
s 1002565410025654 Mach64VT Reference 0
d 10025655 264VT3 [Mach64 VT3] 0
d 10025656 264VT4 [Mach64 VT4] 0
+d 10025834 Radeon RS300 [9000 IGP A5] 0
+d 10025835 Radeon RS300 [Mobility 9000 IGP U3] 0
+d 10025836 Radeon RS300 5836 [9000] 0
+d 10025837 Radeon RS300 5837 [9000] 0
+d 10025960 Radeon RV280 [9200 5960] 0
+d 10025961 Radeon RV280 [9200 5961] 0
+d 10025962 Radeon RV280 [9200 5962] 0
+d 10025963 Radeon RV280 [9200 5963] 0
+d 10025968 Radeon RV280 [M9+ 5968] 0
+d 10025969 Radeon RV280 [M9+ 5969] 0
+d 1002596A Radeon RV280 [M9+ 596A] 0
+d 1002596B Radeon RV280 [M9+ 596B] 0
d 1002700f U1/A3 AGP Bridge [IGP 320M] 0
v 1003 ULSI Systems 0
d 10030201 US201 0
@@ -446,10 +478,10 @@ d 10040306 QSound ThunderBird PCI Audio Support Registers 0
s 1004030610040306 QSound ThunderBird PCI Audio Support Registers 0
s 10040306122d1208 DSP368 Audio Support Registers 0
s 1004030614835022 XWave Thunder 3D Audio Support Registers 0
-d 10040307 Thunderbird 0
-d 10040308 Thunderbird 0
+d 10040307 Thunderbird 1 http://pcsound.philips.com/_acoustic706.html
+d 10040308 Thunderbird 1 http://pcsound.philips.com/_acoustic706.html
d 10040702 VAS96011 [Golden Gate II] 0
-d 10040703 Tollgate 0
+d 10040703 Tollgate 1 PCI/ISA bridge
v 1005 Avance Logic Inc. [ALI] 0
d 10052064 ALG2032/2064 0
d 10052128 ALG2364A 0
@@ -527,8 +559,8 @@ s 101100191011500a DE500A Fast Ethernet 0
s 101100191011500b DE500B Fast Ethernet 0
s 1011001910140001 10/100 EtherJet Cardbus 0
s 1011001910250315 ALN315 Fast Ethernet 0
-s 101100191033800c PC-9821-CS01 100BASE-TX Interface Card 0
-s 101100191033800d PC-9821NR-B06 100BASE-TX Interface Card 0
+s 101100191033800c PC-9821-CS01 0
+s 101100191033800d PC-9821NR-B06 0
s 10110019108d0016 Rapidfire 2327 10/100 Ethernet 0
s 10110019108d0017 GoCard 2250 Ethernet 10/100 Cardbus 0
s 1011001910b82005 SMC8032DT Extreme Ethernet 10/100 0
@@ -552,7 +584,6 @@ s 1011001913740001 Cardbus Ethernet Card 10/100 0
s 1011001913740002 Cardbus Ethernet Card 10/100 0
s 1011001913740007 Cardbus Ethernet Card 10/100 0
s 1011001913740008 Cardbus Ethernet Card 10/100 0
-s 1011001913852100 Digital DS21143 Tulip [NETGEAR FA510] 1 Info based on 'tulip-diag -eee -m -a' by Donald Becker (scyld.com)
s 1011001913950001 10/100 Ethernet CardBus PC Card 0
s 1011001913d1ab01 EtherFast 10/100 Cardbus (PCMPC200) 0
s 1011001980860001 EtherExpress PRO/100 Mobile CardBus 32 0
@@ -612,8 +643,7 @@ d 10136001 CS 4610/11 [CrystalClear SoundFusion Audio Accelerator] 0
s 1013600110141010 CS4610 SoundFusion Audio Accelerator 0
d 10136003 CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator] 0
s 1013600310134280 Crystal SoundFusion PCI Audio Accelerator 0
-s 1013600316810050 Game Theater XP 0
-s 101360031681a011 Fortissimo III 7.1 0
+s 1013600316810050 Hercules Game Theater XP 0
d 10136004 CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator] 0
d 10136005 Crystal CS4281 PCI Audio 0
s 1013600510134281 Crystal CS4281 PCI Audio 0
@@ -675,11 +705,13 @@ s 1014009610140099 iSeries 2748 DASD IOA 0
d 101400a5 ATM Controller (1410a500) 0
d 101400a6 ATM 155MBPS MM Controller (1410a600) 0
d 101400b7 256-bit Graphics Rasterizer [Fire GL1] 0
+s 101400b7190200b8 Fire GL1 0
d 101400be ATM 622MBPS Controller (1410be00) 0
-d 101400dc Advanced Systems Management Adapter (ASMA) 0
+d 101400dc Remote Supervisor Adapter (RSA) 1 IBM's remote management adapter
+d 101400dc Advanced Systems Management Adapter (ASMA) 1 sorry, the previous entry I posted was a mistake, this ID is the ASMA not the RSA.
d 101400fc CPC710 Dual Bridge and Memory Controller (PCI-64) 0
d 10140105 CPC710 Dual Bridge and Memory Controller (PCI-32) 0
-d 1014010f Remote Supervisor Adapter (RSA) 0
+d 1014010f Remote Supervisor Adapter (RSA) 1 this is actually the RSA
d 10140142 Yotta Video Compositor Input 0
s 1014014210140143 Yotta Input Controller (ytin) 0
d 10140144 Yotta Video Compositor Output 0
@@ -694,7 +726,7 @@ s 101401bd1014020e ServeRAID-4Lx 0
s 101401bd1014022e ServeRAID-4H 0
s 101401bd10140258 ServeRAID-5i 0
s 101401bd10140259 ServeRAID-5i 0
-d 10140302 XA-32 chipset [Summit] 0
+d 10140302 XA-32 chipset [Summit] 1 the IBM Summit X-Architecuture chipset
d 1014ffff MPIC-2 interrupt controller 0
v 1015 LSI Logic Corp of Canada 0
v 1016 ICL Personal Systems 0
@@ -815,8 +847,8 @@ d 10238500 CyberBlade/i1 0
d 10238520 CyberBlade i1 0
s 102385200e11b16e CyberBlade i1 AGP 0
s 1023852010238520 CyberBlade i1 AGP 0
-d 10238620 CyberBlade/i1 0
-s 1023862010140502 ThinkPad T30 0
+d 10238620 CyberBlade/i1 1
+s 1023862010140502 ThinkPad T30 1
d 10238820 CyberBlade XPAi1 0
d 10239320 TGUI 9320 0
d 10239350 GUI Accelerator 0
@@ -928,9 +960,9 @@ d 10280006 PowerEdge Expandable RAID Controller 3/Di 0
d 10280007 Remote Assistant Card 3 0
d 10280008 PowerEdge Expandable RAID Controller 3/Di 0
d 1028000a PowerEdge Expandable RAID Controller 3 0
+s 1028000a10270121 PowerEdge Expandable RAID Controller 3/Di 0
s 1028000a10280106 PowerEdge Expandable RAID Controller 3/Di 0
s 1028000a1028011b PowerEdge Expandable RAID Controller 3/Di 0
-s 1028000a10280121 PowerEdge Expandable RAID Controller 3/Di 0
d 1028000c Embedded Systems Management Device 4 0
d 1028000e PowerEdge Expandable RAID Controller 0
d 1028000f PowerEdge Expandable RAID Controller 4/Di 0
@@ -943,7 +975,6 @@ d 102b0010 MGA-I [Impression?] 0 DJ: I've a suspicion that 0010 is a duplicate o
d 102b0518 MGA-II [Athena] 0
d 102b0519 MGA 2064W [Millennium] 0
d 102b051a MGA 1064SG [Mystique] 0
-s 102b051a102b0100 Mystique 1
s 102b051a102b1100 MGA-1084SG Mystique 0
s 102b051a102b1200 MGA-1084SG Mystique 0
s 102b051a1100102b MGA-1084SG Mystique 0
@@ -1038,10 +1069,11 @@ s 102b0525102b5f51 4Sight II 0
s 102b0525102b5f52 4Sight II 0
s 102b0525102b9010 Millennium G400 Dual Head 0
s 102b052514580400 GA-G400 0
-s 102b052517050001 Millennium G450 32MB SGRAM 0
-s 102b052517050002 Millennium G450 16MB SGRAM 0
-s 102b052517050003 Millennium G450 32MB 0
-s 102b052517050004 Millennium G450 16MB 0
+s 102b052517050001 Digital First Millennium G450 32MB SGRAM 0
+s 102b052517050002 Digital First Millennium G450 16MB SGRAM 0
+s 102b052517050003 Digital First Millennium G450 32MB 0
+s 102b052517050004 Digital First Millennium G450 16MB 0
+s 102b0525b16f0e11 MGA-G400 AGP 0
d 102b0527 MGA Parhelia AGP 0
s 102b0527102b0840 Parhelia 128Mb 0
d 102b0d10 MGA Ultima/Impression 0
@@ -1098,22 +1130,18 @@ d 10330002 PCI to VL98 Bridge 0
d 10330003 ATM Controller 0
d 10330004 R4000 PCI Bridge 0
d 10330005 PCI to 486-like bus Bridge 0
-d 10330006 PC-9800 Graphic Accelerator 0
+d 10330006 GUI Accelerator 0
d 10330007 PCI to UX-Bus Bridge 0
-d 10330008 PC-9800 Graphic Accelerator 0
-d 10330009 PCI to PC9800 Core-Graph Bridge 0
-d 10330016 PCI to VL Bridge 0
+d 10330008 GUI Accelerator 0
+d 10330009 GUI Accelerator for W98 0
d 1033001a [Nile II] 0
d 10330021 Vrc4373 [Nile I] 0
d 10330029 PowerVR PCX1 0
d 1033002a PowerVR 3D 0
-d 1033002c Star Alpha 2 0
-d 1033002d PCI to C-bus Bridge 0
d 10330035 USB 0
s 1033003511790001 USB 0
s 1033003512ee7000 Root Hub 0
s 1033003517990001 Root Hub 0
-d 1033003b PCI to C-bus Bridge 0
d 1033003e NAPCCARD Cardbus Controller 0
d 10330046 PowerVR PCX2 [midas] 0
d 1033005a Vrc5074 [Nile 4] 0
@@ -1184,7 +1212,6 @@ d 10395300 SiS540 PCI Display Adapter 0
d 10395401 486 PCI Chipset 0
d 10395511 5511/5512 0
d 10395513 5513 [IDE] 0
-s 1039551310190970 P6STP-FL motherboard 0
s 1039551310395513 SiS5513 EIDE Controller (A,B step) 0
d 10395517 5517 0
d 10395571 5571 0
@@ -1198,10 +1225,8 @@ d 10396204 Video decoder & MPEG interface 0
d 10396205 VGA Controller 0
d 10396236 6236 3D-AGP 0
d 10396300 SiS630 GUI Accelerator+3D 0
-s 1039630010190970 P6STP-FL motherboard 0
d 10396306 SiS530 3D PCI/AGP 0
s 1039630610396306 SiS530,620 GUI Accelerator+3D 0
-d 10396325 SiS740 IGUI Accelerator 1
d 10396326 86C326 5598/6326 0
s 1039632610396326 SiS6326 GUI Accelerator 0
s 1039632610920a50 SpeedStar A50 0
@@ -1211,11 +1236,9 @@ s 1039632610924920 SpeedStar A70 0
s 1039632615696326 SiS6326 GUI Accelerator 0
d 10397001 7001 0
s 1039700110397000 Onboard USB Controller 0
-d 10397002 SiS7002 USB 2.0 0
-s 1039700215097002 Onboard USB Controller 0
d 10397007 FireWire Controller 0
d 10397012 SiS7012 PCI Audio Accelerator 0
-d 10397013 Intel 537 [56k Winmodem] 0
+d 10397013 56k Winmodem (Smart Link HAMR5600 compatible) 0
d 10397016 SiS7016 10/100 Ethernet Adapter 0
s 1039701610397016 SiS7016 10/100 Ethernet Adapter 0
d 10397018 SiS PCI Audio Accelerator 0
@@ -1300,7 +1323,6 @@ d 10423010 Samurai_1 0
d 10423020 Samurai_IDE 0
v 1043 Asustek Computer, Inc. 0
d 10430675 ISDNLink P-IN100-ST-D 0
-d 10434021 Asus v7100 Combo Deluxe 1 NVidia GeForce2 MX + TV tuner
v 1044 Distributed Processing Technology 0
d 10441012 Domino RAID Engine 0
d 1044a400 SmartCache/Raid I-IV Controller 0
@@ -1375,7 +1397,7 @@ v 1049 Fountain Technologies, Inc. 0
v 104a SGS Thomson Microelectronics 0
d 104a0008 STG 2000X 0
d 104a0009 STG 1764X 0
-d 104a0010 STG4000 [3D Prophet Kyro Series] 0
+d 104a0010 STG4000 [3D Prophet Kyro Series] 1
d 104a0981 DEC-Tulip compatible 10/100 Ethernet 0
d 104a1746 STG 1764X 0
d 104a2774 DEC-Tulip compatible 10/100 Ethernet 0
@@ -1447,7 +1469,6 @@ d 104cac18 PCI1260 0
d 104cac19 PCI1221 0
d 104cac1a PCI1210 0
d 104cac1b PCI1450 0
-s 104cac1b0e11b113 Armada M700 1
d 104cac1c PCI1225 0
d 104cac1d PCI1251A 0
d 104cac1e PCI1211 0
@@ -1470,7 +1491,8 @@ s 104cac51e4bf1000 CP2-2-HIPHOP 0
d 104cac52 PCI1451 PC card Cardbus Controller 0
d 104cac53 PCI1421 PC card Cardbus Controller 0
d 104cac55 PCI1250 PC card Cardbus Controller 0
-s 104cac5510140512 ThinkPad T30 0
+s 104cac5510140512 ThinkPad T30 1
+s 104cac55104cac55 PCI-1520 CardBus Controller 1 Windoze XP on my ThinkPad T30 claims that it is 1520, not 1250.
d 104cac60 PCI2040 PCI to DSP Bridge Controller 0
d 104cfe00 FireWire Host Controller 0
d 104cfe03 12C01A FireWire Host Controller 0
@@ -1496,7 +1518,7 @@ s 1050084010500001 W89C840 Ethernet Adapter 0
s 1050084010500840 W89C840 Ethernet Adapter 0
d 10500940 W89C940 0
d 10505a5a W89C940F 0
-d 10506692 W6692 0
+d 10506692 W6692 1 ISDN Card
d 10509970 W9970CF 0
v 1051 Anigma, Inc. 0
v 1052 ?Young Micro Systems 0
@@ -1551,7 +1573,6 @@ s 105a0d30105a4d33 Ultra100 0
d 105a0d38 20263 0
s 105a0d38105a4d39 Fasttrak66 0
d 105a1275 20275 0
-d 105a3376 PDC20376 0
d 105a4d30 20267 0
s 105a4d30105a4d33 Ultra100 0
s 105a4d30105a4d39 Fasttrak100 0
@@ -1565,12 +1586,13 @@ d 105a4d68 20268 0
s 105a4d68105a4d68 Ultra100TX2 0
d 105a4d69 20269 0
d 105a5275 PDC20276 IDE 0
+d 105a5275 PDC20276 (MBFastTrack 133) 1 I can't obtain the sub device ID's. The correction is for the "secondary" name (the one between parentheses). Have great day !
s 105a5275105a0275 SuperTrak SX6000 IDE 0
d 105a5300 DC5300 0
d 105a6268 20268R 0
d 105a6269 PDC20271 0
-s 105a6269105a6269 FastTrak TX2/TX2000 0
-d 105a6621 PDC20621 [SX4000] 4 Channel IDE RAID Controller 0
+s 105a6269105a6269 Fasttrack tx2 0
+s 105a6269105a6269 FastTrak TX2/TX2000 1 Old entry has spelling mistake; besides, another product (TX2000) uses same chips, hence the same ID
d 105a7275 PDC20277 0
v 105b Foxconn International, Inc. 0
v 105c Wipro Infotech Limited 0
@@ -1910,7 +1932,6 @@ d 10950670 USB0670 0
s 1095067010950670 USB0670 0
d 10950673 USB0673 0
d 10950680 PCI0680 0
-d 10953112 Silicon Image SiI 3112 SATARaid Controller 1
v 1096 Alacron 0
v 1097 Appian Technology 0
v 1098 Quantum Designs (H.K.) Ltd 0
@@ -1931,7 +1952,6 @@ d 109e036c Bt879(??) Video Capture 0
s 109e036c13e90070 Win/TV (Video Section) 0
d 109e036e Bt878 Video Capture 0
s 109e036e007013eb WinTV/GO 0
-s 109e036e007013eb WinTV Series 1
s 109e036e0070ff01 Viewcast Osprey 200 0
s 109e036e11bd001c PCTV Sat (DBC receiver) 0
s 109e036e127a0001 Bt878 Mediastream Controller NTSC 0
@@ -1947,7 +1967,7 @@ s 109e036e14f10048 Bt878/832 Mediastream Controller 0
s 109e036e18511850 FlyVideo'98 - Video 0
s 109e036e18511851 FlyVideo II 0
s 109e036e18521852 FlyVideo'98 - Video (with FM Tuner) 0
-s 109e036ebd111200 PCTV pro (TV + FM stereo receiver) 0
+s 109e036ebd111200 PCTV pro (TV + FM stereo receiver) 1
d 109e036f Bt879 Video Capture 0
s 109e036f127a0044 Bt879 Video Capture NTSC 0
s 109e036f127a0122 Bt879 Video Capture PAL I 0
@@ -1984,7 +2004,6 @@ s 109e037018511851 FlyVideo'98 EZ - video 0
s 109e037018521852 FlyVideo'98 (with FM Tuner) 0
d 109e0878 Bt878 Audio Capture 0
s 109e0878007013eb WinTV/GO 0
-s 109e0878007013eb WinTV Series 1
s 109e08780070ff01 Viewcast Osprey 200 0
s 109e087810020001 TV-Wonder 0
s 109e087810020003 TV-Wonder/VE 0
@@ -2000,7 +2019,8 @@ s 109e087814f10001 Bt878 Video Capture (Audio Section) 0
s 109e087814f10002 Bt878 Video Capture (Audio Section) 0
s 109e087814f10003 Bt878 Video Capture (Audio Section) 0
s 109e087814f10048 Bt878 Video Capture (Audio Section) 0
-s 109e0878bd111200 PCTV pro (TV + FM stereo receiver, audio section) 0
+s 109e0878bd111200 PCTV pro (TV + FM stereo receiver) 1
+s 109e0878bd111200 PCTV pro (TV + FM stereo receiver, audio section) 1
d 109e0879 Bt879 Audio Capture 0
s 109e0879127a0044 Bt879 Video Capture (Audio Section) 0
s 109e0879127a0122 Bt879 Video Capture (Audio Section) 0
@@ -2042,8 +2062,7 @@ v 10a1 Juko Electronics Ind. Co. Ltd 0
v 10a2 Quantum Corporation 0
v 10a3 Everex Systems Inc 0
v 10a4 Globe Manufacturing Sales 0
-v 10a5 Smart Link Ltd. 0
-d 10a55449 SmartPCI561 modem 0
+v 10a5 Racal Interlan 0
v 10a6 Informtech Industrial Ltd. 0
v 10a7 Benchmarq Microelectronics 0
v 10a8 Sierra Semiconductor 0
@@ -2104,14 +2123,13 @@ d 10b51103 VScom 200 2 port serial adaptor 0
d 10b51146 VScom 010 1 port parallel adaptor 0
d 10b51147 VScom 020 2 port parallel adaptor 0
d 10b52724 Thales PCSM Security Card 0
+d 10b58845 RCIM Realtime Clock and Interrupts Module 1
d 10b59030 PCI <-> IOBus Bridge Hot Swap 0
s 10b5903015ed1002 MCCS 8-port Serial Hot Swap 0
s 10b5903015ed1003 MCCS 16-port Serial Hot Swap 0
d 10b59036 9036 0
d 10b59050 PCI <-> IOBus Bridge 0
-s 10b5905010b52036 SatPak GPS 0
s 10b5905010b52273 SH-ARC SoHard ARCnet card 0
-s 10b5905010b59050 MP9050 0
s 10b5905015220001 RockForce 4 Port V.90 Data/Fax/Voice Modem 0
s 10b5905015220002 RockForce 2 Port V.90 Data/Fax/Voice Modem 0
s 10b5905015220003 RockForce 6 Port V.90 Data/Fax/Voice Modem 0
@@ -2254,15 +2272,13 @@ d 10b79200 3c905C-TX/TX-M [Tornado] 0
s 10b7920010280095 Integrated 3C905C-TX Fast Etherlink for PC Management NIC 0
s 10b7920010b71000 3C905C-TX Fast Etherlink for PC Management NIC 0
s 10b7920010b77000 10/100 Mini PCI Ethernet Adapter 0
-d 10b79201 3C920B-EMB Integrated Fast Ethernet Controller 1
-d 10b79300 3CSOHO100B-TX [910-A01] 0
+d 10b79300 3CSOHO100B-TX [910-A01] 1 Designed for Windows-based networks. Is there driver for linux?
d 10b79800 3c980-TX [Fast Etherlink XL Server Adapter] 0
s 10b7980010b79800 3c980-TX Fast Etherlink XL Server Adapter 0
d 10b79805 3c980-TX 10/100baseTX NIC [Python-T] 0
s 10b7980510b71201 3c982-TXM 10/100baseTX Dual Port A [Hydra] 0
s 10b7980510b71202 3c982-TXM 10/100baseTX Dual Port B [Hydra] 0
s 10b7980510b79805 3c980 10/100baseTX NIC [Python-T] 0
-s 10b7980510f12462 Thunder K7 S2462 1
d 10b79900 3C990-TX [Typhoon] 0
d 10b79902 3CR990-TX-95 [Typhoon 56-bit] 0
d 10b79903 3CR990-TX-97 [Typhoon 168-bit] 0
@@ -2298,7 +2314,8 @@ d 10b81000 FDC 37c665 0
d 10b81001 FDC 37C922 0
d 10b8a011 83C170QF 0
d 10b8b106 SMC34C90 0
-v 10b9 ALi Corporation 0
+v 10b9 Acer Laboratories Inc. [ALi] 0
+v 10b9 ALi Corporation. [ALi] 1
d 10b90111 C-Media CMI8738/C3DX Audio Device (OEM) 0
s 10b9011110b90111 C-Media CMI8738/C3DX Audio Device (OEM) 0
d 10b91435 M1435 0
@@ -2320,7 +2337,7 @@ s 10b9153310b91533 ALI M1533 Aladdin IV ISA Bridge 0
d 10b91541 M1541 0
s 10b9154110b91541 ALI M1541 Aladdin V/V+ AGP System Controller 0
d 10b91543 M1543 0
-d 10b91563 M1563 HyperTransport South Bridge 0
+d 10b91563 M1563 South Bridge supporting HyperTransport(TM) Technology 1
d 10b91621 M1621 0
d 10b91631 ALI M1631 PCI North Bridge Aladdin Pro III 0
d 10b91632 M1632M Northbridge+Trident 0
@@ -2329,9 +2346,10 @@ d 10b91644 M1644/M1644T Northbridge+Trident 0
d 10b91646 M1646 Northbridge+Trident 0
d 10b91647 M1647 Northbridge [MAGiK 1 / MobileMAGiK 1] 0
d 10b91651 M1651/M1651T Northbridge [Aladdin-Pro 5/5M,Aladdin-Pro 5T/5TM] 0
-d 10b91671 M1671 Super P4 Northbridge [AGP4X,PCI and SDR/DDR] 0
-d 10b91681 M1681 P4 Northbridge [AGP8X,HyperTransport and SDR/DDR] 0
-d 10b91687 M1687 K8 Northbridge [AGP8X and HyperTransport] 0
+d 10b91671 M1671 Northbridge [Aladdin-P4] 0
+d 10b91671 M1671 Super P4 Northbridge [AGP4X,PCI and SDR/DDR] 1
+d 10b91681 M1681 P4 Northbridge [AGP8X,HyperTransport(TM) and SDR/DDR] 1
+d 10b91687 M1687 K8 Northbridge [AGP8X and HyperTransport(TM)] 1
d 10b93141 M3141 0
d 10b93143 M3143 0
d 10b93145 M3145 0
@@ -2352,15 +2370,15 @@ d 10b95237 USB 1.1 Controller 0
d 10b95239 USB 2.0 Controller 0
d 10b95243 M1541 PCI to AGP Controller 0
d 10b95247 PCI to AGP Controller 0
-d 10b95249 M5249 HTT to PCI Bridge 0
+d 10b95249 HTT to PCI Bridge 1
d 10b95251 M5251 P1394 OHCI 1.0 Controller 0
d 10b95253 M5253 P1394 OHCI 1.1 Controller 0
d 10b95261 M5261 Ethernet Controller 0
d 10b95451 M5451 PCI AC-Link Controller Audio Device 0
-s 10b9545110140506 ThinkPad R30 0
+s 10b9545110140506 ThinkPad R30 1
d 10b95453 M5453 PCI AC-Link Controller Modem Device 0
d 10b95455 M5455 PCI AC-Link Controller Audio Device 0
-d 10b95457 Intel 537 [M5457 AC-Link Modem] 0
+d 10b95457 M5457 AC-Link Modem Interface Controller 0
d 10b95459 SmartPCI561 56K Modem 0
d 10b95471 M5471 Memory Stick Controller 0
d 10b95473 M5473 SD-MMC Controller 0
@@ -2384,7 +2402,8 @@ v 10c5 Xerox Corporation 0
v 10c6 Rambus Inc. 0
v 10c7 Media Vision 0
v 10c8 Neomagic Corporation 0
-d 10c80001 NM2070 [MagicGraph 128] 0
+d 10c80001 NM2070 [MagicGraph NM2070] 0
+d 10c80001 NM2070 [MagicGraph 128] 1 Update - cleaning up the neomagic entries using XFree86 sources
d 10c80002 NM2090 [MagicGraph 128V] 0
d 10c80003 NM2093 [MagicGraph 128ZV] 0
d 10c80004 NM2160 [MagicGraph 128XD] 0
@@ -2406,14 +2425,18 @@ s 10c8000410f78309 MagicGraph 128XD 0
s 10c8000410f7830b MagicGraph 128XD 0
s 10c8000410f7830d MagicGraph 128XD 0
s 10c8000410f78312 MagicGraph 128XD 0
-d 10c80005 NM2200 [MagicGraph 256AV] 0
-s 10c80005101400dd ThinkPad 570 0
+d 10c80005 [MagicMedia 256AV] 0
+d 10c80005 NM2200 [MagicGraph 256AV] 1 Update - cleaning up the neomagic entries using XFree86 sources
+s 10c80005101400dd ThinkPad 570 1
d 10c80006 NM2360 [MagicMedia 256ZX] 0
d 10c80016 NM2380 [MagicMedia 256XL+] 0
s 10c8001610c80016 MagicMedia 256XL+ 0
-d 10c80025 NM2230 [MagicGraph 256AV+] 0
-d 10c80083 NM2093 [MagicGraph 128ZV+] 0
-d 10c88005 NM2200 [MagicMedia 256AV Audio] 0
+d 10c80025 [MagicMedia 256AV+] 0
+d 10c80025 NM2230 [MagicGraph 256AV+] 1 Update - cleaning up the neomagic entries using XFree86 sources
+d 10c80083 [MagicGraph 128ZV Plus] 0
+d 10c80083 NM2093 [MagicGraph 128ZV+] 1 Update - cleaning up the neomagic entries using XFree86 sources
+d 10c88005 [MagicMedia 256AV Audio] 0
+d 10c88005 NM2200 [MagicMedia 256AV Audio] 1 Update - cleaning up the neomagic entries using XFree86 sources
s 10c880050e11b0d1 MagicMedia 256AV Audio Device on Discovery 0
s 10c880050e11b126 MagicMedia 256AV Audio Device on Durango 0
s 10c88005101400dd MagicMedia 256AV Audio Device on BlackTip Thinkpad 0
@@ -2426,7 +2449,8 @@ s 10c8800510c88005 MagicMedia 256AV Audio Device on FireAnt 0
s 10c88005110a8005 MagicMedia 256AV Audio Device 0
s 10c8800514c00004 MagicMedia 256AV Audio Device 0
d 10c88006 NM2360 [MagicMedia 256ZX Audio] 0
-d 10c88016 NM2380 [MagicMedia 256XL+ Audio] 0
+d 10c88016 NM2360 [MagicMedia 256ZX Audio] 0
+d 10c88016 NM2380 [MagicMedia 256XL+ Audio] 1 Update - cleaning up the neomagic entries extrapolating from XFree86 sources
v 10c9 Dataexpert Corporation 0
v 10ca Fujitsu Microelectr., Inc. 0
v 10cb Omron Corporation 0
@@ -2529,8 +2553,6 @@ s 10de002c14af5008 Maxi Gamer Phoenix 2 0
d 10de002d RIVA TNT2 Model 64 0
s 10de002d10430200 AGP-V3800M 0
s 10de002d10430201 AGP-V3800M 0
-s 10de002d10480c3a Erazor III LT 0
-s 10de002d10de001e M64 AGP4x 1
s 10de002d11021023 CT6892 RIVA TNT2 Value 0
s 10de002d11021024 CT6932 RIVA TNT2 Value 32Mb 0
s 10de002d1102102c CT6931 RIVA TNT2 Value [Jumper] 0
@@ -2538,16 +2560,6 @@ s 10de002d14628808 MSI-8808 0
s 10de002d15541041 PixelView RIVA TNT2 M64 32MB 0
d 10de002e NV6 [Vanta] 0
d 10de002f NV6 [Vanta] 0
-d 10de0060 nForce2 ISA Bridge 1
-d 10de0065 nForce2 IDE 1
-d 10de0066 nForce2 Ethernet Controller 1
-d 10de0067 nForce2 USB Controller [OHCI] 1
-d 10de0067 nForce2 USB Controller 1
-d 10de0068 nForce2 USB Controller 1
-d 10de0068 nForce2 USB Controller [ECHI] 1
-d 10de006a nForce MultiMedia audio [Via VT82C686B] 0
-d 10de006b nForce MultiMedia audio [Via VT82C686B] 0
-d 10de006e nForce2 FireWire (IEEE 1394) Controller [OHCI] 1
d 10de00a0 NV5 [Riva TNT2] 0
s 10de00a014af5810 Maxi Gamer Xentor 0
d 10de0100 NV10 [GeForce 256 SDR] 0
@@ -2567,7 +2579,6 @@ d 10de0103 NV10 [Quadro] 0
d 10de0110 NV11 [GeForce2 MX] 0
s 10de011010434015 AGP-V7100 Pro 0
s 10de011010434031 V7100 Pro with TV output 0
-s 10de011014628817 MSI GeForce2 MX400 Pro32S [MS-8817] 1 http://www.msi.com.tw/program/products/vga/vga/pro_vga_detail.php?UID=173&MODEL=MS-8817
s 10de011014af7102 3D Prophet II MX 0
s 10de011014af7103 3D Prophet II MX Dual-Display 0
d 10de0111 NV11 [GeForce2 MX DDR] 0
@@ -2585,7 +2596,6 @@ d 10de0153 NV15 [Quadro2 Pro] 0
d 10de0170 NV17 [GeForce4 MX460] 0
d 10de0171 NV17 [GeForce4 MX440] 0
s 10de017114628661 G4MX440-VTP 0
-s 10de017114628730 MX440SES-T (MS-8873) 1
d 10de0172 NV17 [GeForce4 MX420] 0
d 10de0173 NV1x 0
d 10de0174 NV17 [GeForce4 440 Go] 0
@@ -2596,7 +2606,7 @@ d 10de0179 NV17 [GeForce4 440 Go 64M] 0
d 10de017a Quadro4 200/400NVS 0
d 10de017b Quadro4 550XGL 0
d 10de017c Quadro4 550 GoGL 0
-d 10de0181 NV18 [GeForce4 MX440 AGP 8x] 0
+d 10de0181 NV18 [GeForce4 MX440 AGP 8x] 1
d 10de01a0 NV15 [GeForce2 - nForce GPU] 0
d 10de01a4 nForce CPU bridge 0
d 10de01ab nForce 420 Memory Controller (DDR) 0
@@ -2608,10 +2618,7 @@ d 10de01b4 nForce PCI System Management 0
d 10de01b7 nForce AGP to PCI Bridge 0
d 10de01b8 nForce PCI-to-PCI bridge 0
d 10de01bc nForce IDE 0
-d 10de01c1 Intel 537 [nForce MC97 Modem] 0
-d 10de01c2 nForce USB Controller 0
-d 10de01c3 nForce Ethernet Controller 0
-d 10de01e8 nForce2 AGP AGP Host to PCI Bridge 1
+d 10de01c1 nForce MC97 Modem (Smart Link HAMR5600 compatible) 0
d 10de0200 NV20 [GeForce3] 0
s 10de02001043402f AGP-V8200 DDR 0
d 10de0201 NV20 [GeForce3 Ti200] 0
@@ -2622,8 +2629,8 @@ d 10de0203 NV20 [Quadro DCC] 0
d 10de0250 NV25 [GeForce4 Ti4600] 0
d 10de0251 NV25 [GeForce4 Ti4400] 0
d 10de0253 NV25 [GeForce4 Ti4200] 0
-s 10de0253107d2896 WinFast A250 LE TD (Dual VGA/TV-out/DVI) 0
-s 10de0253147b8f09 Siluro (Dual VGA/TV-out/DVI) 0
+s 10de0253107d2896 WinFast A250 LE TD (Dual VGA/TV-out/DVI) 1
+s 10de0253147b8f09 Abit Siluro (Dual VGA/TV-out/DVI) 1
d 10de0258 Quadro4 900XGL 0
d 10de0259 Quadro4 750XGL 0
d 10de025b Quadro4 700XGL 0
@@ -2652,7 +2659,6 @@ v 10e2 Aptix Corporation 0
v 10e3 Tundra Semiconductor Corp. 0
d 10e30000 CA91C042 [Universe] 0
d 10e30860 CA91C860 [QSpan] 0
-d 10e30862 CA91C862A [QSpan-II] 1 updated PCI 2.2 version of the QSpan
v 10e4 Tandem Computers 0
v 10e5 Micro Industries Corporation 0
v 10e6 Gainbery Computer Products Inc. 0
@@ -2704,7 +2710,6 @@ s 10ec813910ec8139 RT8139 0
s 10ec813911861300 DFE-538TX 0
s 10ec813911861320 SN5200 0
s 10ec813911868139 DRN-32TX 0
-s 10ec813911f68139 FN22-3(A) LinxPRO Ethernet Adapter 0
s 10ec813912592500 AT-2500TX 0
s 10ec813912592503 AT-2500TX/ACPI 0
s 10ec81391429d010 ND010 0
@@ -2723,7 +2728,10 @@ d 10ec8169 RTL-8169 0
d 10ec8197 SmartLAN56 56K Modem 0
v 10ed Ascii Corporation 0
d 10ed7310 V7310 0
-v 10ee Xilinx Corporation 0
+v 10ee Xilinx, Inc. 0
+v 10ee Xilinx Corporation 1 This Vendor-Id and several it's Device-Ids appear in a larger database at http://www.yourvote.com/pci/ which you may want to ref
+v 10ee Xilinx Corporation 1 This Vendor-Id and several it's Device-Ids appear in a larger database at http://www.yourvote.com/pci/ which you may want to ref
+v 10ee Xilinx Corporation 1 This Vendor-Id and several it's Device-Ids appear in a larger database at http://www.yourvote.com/pci/ which you may want to ref
d 10ee3fc0 RME Digi96 0
d 10ee3fc1 RME Digi96/8 0
d 10ee3fc2 RME Digi96/8 Pro 0
@@ -2746,10 +2754,8 @@ v 10f9 PC Direct 0
v 10fa Truevision 0
d 10fa000c TARGA 1000 0
v 10fb Thesys Gesellschaft für Mikroelektronik mbH 0
-d 10fb186f TH 6255 0
v 10fc I-O Data Device, Inc. 0
d 10fc0003 Cardbus IDE Controller 0 What's in the cardbus end of a Sony ACR-A01 card, comes with newer Vaio CD-RW drives
-d 10fc0005 Cardbus SCSI CBSC II 0
v 10fd Soyo Computer, Inc 0
v 10fe Fast Multimedia AG 0
v 10ff NCube 0
@@ -2779,16 +2785,17 @@ s 1102000211028051 CT4850 SBLive! Value 0
s 1102000211028061 SBLive! Player 5.1 0
d 11020004 SB Audigy 0
s 1102000411020051 SB0090 Audigy Player 0
-s 1102000411020053 SB0090 Audigy Player/OEM 0
-d 11020006 [SB Live! Value] EMU10k1X 0
+s 1102000411020053 SB0090 Audigy Player/OEM 1
+d 11020006 [SB Live! Value] EMU10K1X audio controller 1 OEM card in new Dell system
d 11024001 SB Audigy FireWire Port 0
-s 1102400111020010 SB Audigy FireWire Port 0
+s 1102400111020010 SB Audigy FireWire Port 1
d 11027002 SB Live! MIDI/Game Port 0
s 1102700211020020 Gameport Joystick 0
d 11027003 SB Audigy MIDI/Game port 0
-s 1102700311020040 SB Audigy MIDI/Game Port 0
-d 11027004 [SB Live! Value] Input device controller 0
-d 11028064 SB0100 SBLive! 5.1 OEM 1 none
+d 11027003 SB Audigy MIDI/Game Port 1
+s 1102700311020040 SB Audigy MIDI/Gameport 0
+s 1102700311020040 SB Audigy MIDI/Game Port 1
+d 11027004 [SB Live! Value] Input device controller 1 OEM card in new Dell system
d 11028938 ES1371 0
v 1103 Triones Technologies, Inc. 0
d 11030003 HPT343 0
@@ -2815,10 +2822,10 @@ d 11060391 VT8371 [KX133] 0
d 11060501 VT8501 [Apollo MVP4] 0
d 11060505 VT82C505 0
d 11060561 VT82C561 0
-d 11060571 VT82C586/B/686A/B PIPC Bus Master IDE 0
-s 1106057110438052 VT8233A Bus Master ATA100/66/33 IDE 0
+d 11060571 VT82C586B PIPC Bus Master IDE 0
+d 11060571 VT82C586/B/686A/B PIPC Bus Master IDE 1
+s 1106057110438052 VT8233A Bus Master ATA100/66/33 IDE 1
s 1106057111060571 VT8235 Bus Master ATA133/100/66/33 IDE 0
-s 1106057114585002 GA-7VAX Mainboard 0
d 11060576 VT82C576 3V [Apollo Master] 0
d 11060585 VT82C585VP [Apollo VP1/VPX] 0
d 11060586 VT82C586/A/B PCI-to-ISA [Apollo VP] 0
@@ -2849,6 +2856,7 @@ d 11061571 VT82C416MV 0
d 11061595 VT82C595/97 [Apollo VP2/97] 0
d 11063038 USB 0
s 1106303809251234 USB Controller 0
+s 1106303812340925 MVP3 USB Controller 0
d 11063040 VT82C586B ACPI 0
d 11063043 VT86C100A [Rhine] 0
s 1106304310bd0000 VT86C100A Fast Ethernet Adapter 0
@@ -2868,24 +2876,25 @@ s 1106305814587600 Onboard Audio 0
s 1106305814623091 MS-6309 Onboard Audio 0
s 1106305815dd7609 Onboard Audio 0
d 11063059 VT8233 AC97 Audio Controller 0
-s 110630591458a002 GA-7VAX Onboard Audio (Realtek ALC650) 0
d 11063065 VT6102 [Rhine-II] 0
s 1106306511060102 VT6102 [Rhine II] Embeded Ethernet Controller on VT8235 0
+s 1106306511063065 Embedded ethernet on VIA Eden 0
s 1106306511861400 DFE-530TX rev A 0
s 1106306511861401 DFE-530TX rev B 0
-d 11063068 Intel 537 [AC97 Modem] 0
+d 11063068 AC97 Modem Controller 0
d 11063074 VT8233 PCI to ISA Bridge 0
-s 1106307410438052 VT8233A 0
+s 1106307410438052 VT8233A 1
d 11063091 VT8633 [Apollo Pro266] 0
-d 11063099 VT8366/A/7 [Apollo KT266/A/333] 0
-s 1106309910438064 A7V266-E Mainboard 0
-s 110630991043807f A7V333 Mainboard 0
+d 11063099 VT8367 [KT266] 0
+d 11063099 VT8366/A/7 [Apollo KT266/A/333] 1
+s 1106309910438064 A7V266-E 0
+s 1106309910438064 A7V266-E Mainboard 1
+s 110630991043807f A7V333 0
+s 110630991043807f A7V333 Mainboard 1
d 11063101 VT8653 Host Bridge 0
d 11063102 VT8662 Host Bridge 0
d 11063103 VT8615 Host Bridge 0
d 11063104 USB 2.0 0
-s 1106310414585004 GA-7VAX Mainboard 0
-d 11063106 VT6105 [Rhine-III] 0
d 11063109 VT8233C PCI to ISA Bridge 0
d 11063112 VT8361 [KLE133] Host Bridge 0
d 11063116 VT8375 [KM266] Host Bridge 0
@@ -2894,11 +2903,10 @@ d 11063133 VT3133 Host Bridge 0
d 11063147 VT8233A ISA Bridge 0
d 11063148 P4M266 Host Bridge 0
d 11063156 P/KN266 Host Bridge 0
-d 11063168 VT8374 P4X400 Host Controller/AGP Bridge 0
-d 11063177 VT8235 ISA Bridge 0
-s 1106317714585001 GA-7VAX Mainboard 0
-d 11063189 VT8377 [KT400 AGP] Host Bridge 0
-s 1106318914585000 GA-7VAX Mainboard 0
+d 11063168 VT8374 P4X400 Host Controller/AGP Bridge 1 PCI devices found: \n Bus 0, device 0, function 0: \n Host bridge: PCI device 1106:3168 (VIA Technologies, Inc.) (rev 3).
+d 11063177 VT8233A ISA Bridge 0
+d 11063177 VT8235 ISA Bridge 1 The kernel patch available in http://www.uwsg.iu.edu/hypermail/linux/kernel/0208.2/0581.html declares this ID to be VT8235 and n
+d 11063189 VT8377 [KT400] Host Bridge 0
d 11065030 VT82C596 ACPI [Apollo PRO] 0
d 11066100 VT85C100A [Rhine II] 0
d 11068231 VT8231 [PCI-to-ISA Bridge] 0
@@ -2914,12 +2922,13 @@ d 11068605 VT8605 [PM133 AGP] 0
d 11068691 VT82C691 [Apollo Pro] 0
d 11068693 VT82C693 [Apollo Pro Plus] PCI Bridge 0
d 1106b091 VT8633 [Apollo Pro266 AGP] 0
-d 1106b099 VT8366/A/7 [Apollo KT266/A/333 AGP] 0
+d 1106b099 VT8367 [KT333 AGP] 0
+d 1106b099 VT8366/A/7 [Apollo KT266/A/333 AGP] 1
d 1106b101 VT8653 AGP Bridge 0
d 1106b102 VT8362 AGP Bridge 0
d 1106b103 VT8615 AGP Bridge 0
d 1106b112 VT8361 [KLE133] AGP Bridge 0
-d 1106b168 VT8235 PCI Bridge 0
+d 1106b168 VT8235 0
v 1107 Stratus Computers 0
d 11070576 VIA VT82C570MV [Apollo] (Wrong vendor ID!) 0
v 1108 Proteon, Inc. 0
@@ -2950,7 +2959,8 @@ v 1110 Powerhouse Systems 0
d 11106037 Firepower Powerized SMP I/O ASIC 0
d 11106073 Firepower Powerized SMP I/O ASIC 0
v 1111 Santa Cruz Operation 0
-v 1112 Osicom Technologies Inc 0 Also claimed to be RNS or Rockwell International, current PCISIG records list Osicom
+v 1112 Osicom Technologies Inc 1 see http://www.pcisig.com/membership/vid_search/by_vendor_id/?vendor_id=1112&type=h for proof
+v 1112 RNS - Div. of Meret Communications Inc 0 DJ: Some people say that 0x1112 is Rockwell International
d 11122200 FDDI Adapter 0
d 11122300 Fast Ethernet Adapter 0
d 11122340 4 Port Fast Ethernet Adapter 0
@@ -2960,7 +2970,6 @@ d 11131211 SMC2-1211TX 0
s 11131211103c1207 EN-1207D Fast Ethernet Adapter 0
s 1113121111131211 EN-1207D Fast Ethernet Adapter 0
d 11131216 EN-1216 Ethernet Adapter 0
-s 11131216111a1020 SpeedStream 1020 PCI 10/100 Ethernet Adaptor [EN-1207F-TX ?] 0
d 11131217 EN-1217 Ethernet Adapter 0
d 11135105 10Mbps Network card 0
d 11139211 EN-1207D Fast Ethernet Adapter 0
@@ -3103,9 +3112,7 @@ v 1130 Computervision 0
v 1131 Philips Semiconductors 0
d 11313400 SmartPCI56(UCB1500) 56K Modem 0
d 11317130 SAA7130 Video Broadcast Decoder 0
-d 11317133 SAA7133 1 PCI audio and video broadcast decoder
d 11317134 SAA7134 0 PCI audio and video broadcast decoder (http://www.semiconductors.philips.com/pip/saa7134hl)
-d 11317135 SAA7135 1 PCI audio and video broadcast decoder
d 11317145 SAA7145 0
d 11317146 SAA7146 0
s 11317146114b2003 DVRaptor Video Edit/Capture Card 0
@@ -3134,7 +3141,7 @@ d 1133e004 DIVA 20_U 0
s 1133e0041133e004 DIVA 2.0 U 0
d 1133e005 DIVA LOW 0
s 1133e0051133e005 DIVA 2.01 S/T 0
-d 1133e00b DIVA 2.02 0
+d 1133e00b Eicon Diva 2.02 1 New version of Eicon Diva card class 280
d 1133e010 DIVA Server BRI-2M 0
s 1133e0101133e010 DIVA Server BRI-2M 0
d 1133e012 DIVA Server BRI-8M 0
@@ -3183,12 +3190,6 @@ v 1143 NetPower, Inc 0
v 1144 Cincinnati Milacron 0
d 11440001 Noservo controller 0
v 1145 Workbit Corporation 0
-d 11458007 NinjaSCSI-32 Workbit 0
-d 1145f007 NinjaSCSI-32 KME 0
-d 1145f010 NinjaSCSI-32 Workbit 0
-d 1145f012 NinjaSCSI-32 Logitec 0
-d 1145f013 NinjaSCSI-32 Logitec 0
-d 1145f015 NinjaSCSI-32 Melco 0
v 1146 Force Computers 0
v 1147 Interface Corp 0
v 1148 Syskonnect (Schneider & Koch) 0
@@ -3218,14 +3219,6 @@ s 1148430011489843 SK-9843 (1000Base-SX single link) 0
s 1148430011489844 SK-9844 (1000Base-SX dual link) 0
s 1148430011489861 SK-9861 (1000Base-SX VF45 single link) 0
s 1148430011489862 SK-9862 (1000Base-SX VF45 dual link) 0
-d 11484320 SK-98xx Gigabit Ethernet Server Adapter 1 SK-98xx V2 Gigabit Ethernet Server Adapter
-s 1148432011485021 SK-9821 V2.0 Gigabit Ethernet 10/100/1000Base-T Adapter 1 SK-9821 V2.0 Gigabit Ethernet 10/100/1000Base-T Adapter
-s 1148432011485041 SK-9841 V2.0 Gigabit Ethernet 1000Base-LX Adapter 1
-s 1148432011485043 SK-9843 V2.0 Gigabit Ethernet 1000Base-SX Adapter 1
-s 1148432011485051 SK-9851 V2.0 Gigabit Ethernet 1000Base-SX Adapter 1
-s 1148432011485061 SK-9861 V2.0 Gigabit Ethernet 1000Base-SX Adapter 1
-s 1148432011485071 SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter 1
-s 1148432011489521 SK-9521 10/100/1000Base-T Adapter 1 SK-9521 10/100/1000Base-T Adapter
d 11484400 Gigabit Ethernet 0
v 1149 Win System Corporation 0
v 114a VMIC 0
@@ -3352,17 +3345,12 @@ d 11660013 CNB20-HE Host Bridge 0
d 11660014 CNB20-HE Host Bridge 0
d 11660015 CMIC-GC Host Bridge 0
d 11660016 CMIC-GC Host Bridge 0
-d 11660017 GCNB-LE Host Bridge 0
+d 11660017 CMIC-SL 0
d 11660200 OSB4 South Bridge 0
d 11660201 CSB5 South Bridge 0
-d 11660203 CSB6 South Bridge 0
d 11660211 OSB4 IDE Controller 0
d 11660212 CSB5 IDE Controller 0
-d 11660213 CSB6 RAID/IDE Controller 0
-d 11660220 OSB4/CSB5 OHCI USB Controller 0
-d 11660221 CSB6 OHCI USB Controller 0
-d 11660225 GCLE Host Bridge 0
-d 11660227 GCLE-2 Host Bridge 0
+d 11660220 OSB4/CSB5 USB Controller 0
v 1167 Mutoh Industries Inc 0
v 1168 Thine Electronics Inc 0
v 1169 Centre for Development of Advanced Computing 0
@@ -3412,9 +3400,7 @@ v 1180 Ricoh Co Ltd 0
d 11800465 RL5c465 0
d 11800466 RL5c466 0
d 11800475 RL5c475 0
-s 11800475144dc006 vpr Matrix 170B4 CardBus bridge 0
d 11800476 RL5c476 II 0
-s 1180047610140185 ThinkPad A/T/X Series 0
s 11800476104d80df Vaio PCG-FX403 0
s 11800476104d80e7 VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP 0
d 11800477 RL5c477 0
@@ -3423,9 +3409,7 @@ s 1180047810140184 ThinkPad A30p (2653-64G) 0
d 11800522 R5C522 IEEE 1394 Controller 0
s 11800522101401cf ThinkPad A30p (2653-64G) 0
d 11800551 R5C551 IEEE 1394 Controller 0
-s 11800551144dc006 vpr Matrix 170B4 0
d 11800552 R5C552 IEEE 1394 Controller 0
-s 1180055210140511 ThinkPad A/T/X Series 0
v 1181 Telmatics International 0
v 1183 Fujikura Ltd 0
v 1184 Forks Inc 0
@@ -3560,6 +3544,7 @@ v 11bf Astrodesign, Inc. 0
v 11c0 Hewlett Packard 0
v 11c1 Lucent Microelectronics 0
d 11c10440 56k WinModem 0
+s 11c1044000010440 LT WinModem 56k Data+Fax+Voice+Dsvd 0
s 11c1044010338015 LT WinModem 56k Data+Fax+Voice+Dsvd 0
s 11c1044010338047 LT WinModem 56k Data+Fax+Voice+Dsvd 0
s 11c104401033804f LT WinModem 56k Data+Fax+Voice+Dsvd 0
@@ -3601,6 +3586,7 @@ s 11c10441144f110d Lucent Win Modem 0
s 11c1044114680441 Presario 56k V.90 DF Modem 0
s 11c1044116680440 Lucent Win Modem 0
d 11c10442 56k WinModem 0
+s 11c1044200010440 LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd 0
s 11c1044211c10440 LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd 0
s 11c1044211c10442 LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd 0
s 11c1044213e00412 LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd 0
@@ -3613,7 +3599,6 @@ s 11c1044216680440 LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd 0
d 11c10443 LT WinModem 0
d 11c10444 LT WinModem 0
d 11c10445 LT WinModem 0
-s 11c1044580862203 Intel PRO/100+ MiniPCI (Ambit U98.003.C.00 combo ?) 1
d 11c10446 LT WinModem 0
d 11c10447 LT WinModem 0
d 11c10448 WinModem 56k 0
@@ -3642,7 +3627,7 @@ d 11c1044d LT WinModem 0
d 11c1044e LT WinModem 0
d 11c1044f V90 WildWire Modem 0
d 11c10450 LT WinModem 0
-s 11c10450144f4005 Magnia SG20 0
+s 11c10450144f4005 Toshiba Magnia SG20 1
d 11c10451 LT WinModem 0
d 11c10452 LT WinModem 0
d 11c10453 LT WinModem 0
@@ -3653,7 +3638,7 @@ d 11c10457 LT WinModem 0
d 11c10458 LT WinModem 0
d 11c10459 LT WinModem 0
d 11c1045a LT WinModem 0
-d 11c1045c LT WinModem 0
+d 11c1045c LT WinModem 1
d 11c10461 V90 WildWire Modem 0
d 11c10462 V90 WildWire Modem 0
d 11c10480 Venus Modem (V90, 56KFlex) 0
@@ -3662,7 +3647,7 @@ d 11c15802 USS-312 USB Controller 0
d 11c15811 FW323 0
s 11c15811dead0800 FireWire Host Bus Adapter 0
v 11c2 Sand Microelectronics 0
-v 11c3 NEC Corporation 0
+v 11c3 NEC Corp 0
v 11c4 Document Technologies, Inc 0
v 11c5 Shiva Corporation 0
v 11c6 Dainippon Screen Mfg. Co. Ltd 0
@@ -3824,6 +3809,7 @@ d 12176925 OZ6922 Cardbus Controller 0
d 12176933 OZ6933 Cardbus Controller 0
s 1217693310251016 Travelmate 612 TX 0
d 12176972 OZ6912 Cardbus Controller 0
+s 1217697234127856 Toshiba Magnia SG20 1
v 1218 Hybricon Corp. 0
v 1219 First Virtual Corporation 0
v 121a 3Dfx Interactive, Inc. 0
@@ -3845,6 +3831,7 @@ s 121a0003121a0004 Voodoo Banshee 0
s 121a0003139c0016 Raven 0
s 121a0003139c0017 Raven 0
s 121a000314af0002 Maxi Gamer Phoenix 0
+s 121a000330303030 Skywell Magic TwinPower 0
d 121a0004 Voodoo Banshee [Velocity 100] 0
d 121a0005 Voodoo 3 0
s 121a0005121a0004 Voodoo3 AGP 0
@@ -3936,10 +3923,9 @@ s 123f888813280001 Cinemaster C 3.0 DVD Decoder 0
v 1240 Marathon Technologies Corp. 0
v 1241 DSC Communications 0
v 1242 JNI Corporation 0 Formerly Jaycor Networks, Inc.
-d 12421560 JNIC-1560 PCI-X Fibre Channel Controller 0
-s 1242156012426562 FCX2-6562 Dual Channel PCI-X Fibre Channel Adapter 0
-s 124215601242656a FCX-6562 PCI-X Fibre Channel Adapter 0
d 12424643 FCI-1063 Fibre Channel Adapter 0
+d 12426562 FCX2-6562 Dual Channel PCI-X Fibre Channel Adapter 0
+d 1242656a FCX-6562 PCI-X Fibre Channel Adapter 0
v 1243 Delphax 0
v 1244 AVM Audiovisuelles MKTG & Computer System GmbH 0
d 12440700 B1 ISDN 0
@@ -3956,7 +3942,7 @@ v 1248 Central Data Corporation 0
v 1249 Samsung Electronics Co., Ltd. 0
v 124a AEG Electrocom GmbH 0
v 124b SBS/Greenspring Modular I/O 0
-d 124b0040 PCI-40A or cPCI-200 Quad IndustryPack carrier 0
+d 124b0040 PCI-40A Quad IndustryPack Carrier or cPCI-200 Four Slot IndustryPack carrier 0
s 124b0040124b9080 PCI9080 Bridge 0
v 124c Solitron Technologies, Inc. 0
v 124d Stallion Technologies, Inc. 0
@@ -3999,8 +3985,8 @@ s 125d196810338051 ES1968 Maestro-2 Audiodrive 0
d 125d1969 ES1969 Solo-1 Audiodrive 0
s 125d196910140166 ES1969 SOLO-1 AudioDrive on IBM Aptiva Mainboard 0
s 125d1969125d8888 Solo-1 Audio Adapter 0
+s 125d1969525fc888 ES1969 SOLO-1 AudioDrive (+ES1938) 0
d 125d1978 ES1978 Maestro 2E 0
-s 125d19780e11b112 Armada M700 1
s 125d19781033803c ES1978 Maestro-2E Audiodrive 0
s 125d197810338058 ES1978 Maestro-2E Audiodrive 0
s 125d197810924000 Monster Sound MX400 0
@@ -4032,9 +4018,8 @@ v 125f Concurrent Technologies, Inc. 0
v 1260 Harris Semiconductor 0
d 12603873 Prism 2.5 Wavelan chipset 0
s 1260387311863501 DWL-520 Wireless PCI Adapter 0
-s 1260387316680414 HWP01170-01 802.11b PCI Wireless Adapter 0
-s 1260387317373874 WMP11 Wireless 802.11b PCI Adapter 0
-s 1260387380862513 Wireless 802.11b MiniPCI Adapter 0
+s 1260387317373874 WMP11 Wireless 802.11b PCI Adaptor 0
+s 1260387380862513 Wireless 802.11b MiniPCI Adapter 1
d 12608130 HMP8130 NTSC/PAL Video Decoder 0
d 12608131 HMP8131 NTSC/PAL Video Decoder 0
v 1261 Matsushita-Kotobuki Electronics Industries, Ltd. 0
@@ -4125,6 +4110,7 @@ s 1274137180865352 ES1371, ES1373 AudioPCI On Motherboard SunRiver 0
s 1274137180865643 ES1371, ES1373 AudioPCI On Motherboard Vancouver 0
s 1274137180865753 ES1371, ES1373 AudioPCI On Motherboard WS440BX 0
d 12745000 ES1370 [AudioPCI] 0
+s 1274500049424c4c Creative Sound Blaster AudioPCI128 0
d 12745880 5880 AudioPCI 0
s 1274588012742000 Creative Sound Blaster AudioPCI128 0
s 1274588012742003 Creative SoundBlaster AudioPCI 128 0
@@ -4569,8 +4555,6 @@ v 1317 Linksys 0
d 13170981 Fast Ethernet 10/100 0
d 13170985 Network Everywhere Fast Ethernet 10/100 model NC100 0
d 13171985 Fast Ethernet 10/100 0
-s 1317198510390300 1
-s 131719851385511a ADMtek AL985 Centaur-C [NETGEAR FA511] 1 Info based on 'tulip-dag -eee' by D. Becker (scyld.com)
v 1318 Packet Engines Inc. 0
d 13180911 PCI Ethernet Adapter 0
v 1319 Fortemedia, Inc 0
@@ -4688,19 +4672,19 @@ v 1359 Prisa Networks 0
v 135a Brain Boxes 0
v 135b Giganet Inc 0
v 135c Quatech Inc 0
-d 135c0010 QSC-100 0
-d 135c0020 DSC-100 0
-d 135c0030 DSC-200/300 0
-d 135c0040 QSC-200/300 0
-d 135c0050 ESC-100D 0
-d 135c0060 ESC-100M 0
+d 135c0010 QSC-100 1
+d 135c0020 DSC-100 1
+d 135c0030 DSC-200/300 1
+d 135c0040 QSC-200/300 1
+d 135c0050 ESC-100D 1
+d 135c0060 ESC-100M 1
d 135c00f0 MPAC-100 Syncronous Serial Card (Zilog 85230) 0
-d 135c0170 QSCLP-100 0
-d 135c0180 DSCLP-100 0
-d 135c0190 SSCLP-100 0
-d 135c01a0 QSCLP-200/300 0
-d 135c01b0 DSCLP-200/300 0
-d 135c01c0 SSCLP-200/300 0
+d 135c0170 QSCLP-100 1
+d 135c0180 DSCLP-100 1
+d 135c0190 SSCLP-100 1
+d 135c01a0 QSCLP-200/300 1
+d 135c01b0 DSCLP-200/300 1
+d 135c01c0 SSCLP-200/300 1
v 135d ABB Network Partner AB 0
v 135e Sealevel Systems Inc 0
d 135e7101 Single Port RS-232/422/485/530 0
@@ -4800,10 +4784,6 @@ d 13a30005 7751 Security Processor 0
d 13a30006 6500 Public Key Processor 0
d 13a30007 7811 Security Processor 0
d 13a30012 7951 Security Processor 0
-d 13a30014 78XX Security Processor 0
-d 13a30016 8065 Security Processor 0
-d 13a30017 8165 Security Processor 0
-d 13a30018 8154 Security Processor 0
v 13a4 Rascom Inc 0
v 13a5 Audio Digital Imaging Inc 0
v 13a6 Videonics Inc 0
@@ -4855,7 +4835,7 @@ v 13ce Cocom A/S 0
v 13cf Studio Audio & Video Ltd 0
v 13d0 Techsan Electronics Co Ltd 0
v 13d1 Abocom Systems Inc 0
-d 13d1ab02 ADMtek Centaur-C rev 17 [D-Link DFE-680TX] CardBus Fast Ethernet Adapter 0
+d 13d1ab02 ADMtek Centaur-C rev 17 [D-Link DFE-680TX] CardBus Fast Ethernet Adapter 1
d 13d1ab06 RTL8139 [FE2000VX] CardBus Fast Ethernet Attached Port Adapter 0
v 13d2 Shark Multimedia Inc 0
v 13d3 IMC Networks 0
@@ -4903,7 +4883,6 @@ s 13f6010013f6ffff CMI8338/C3DX PCI Audio Device 0
d 13f60101 CM8338B 0
s 13f6010113f60101 CMI8338-031 PCI Audio Device 0
d 13f60111 CM8738 0
-s 13f6011110190970 P6STP-FL motherboard 0
s 13f6011110438077 CMI8738 6-channel audio controller 0
s 13f60111104380e2 CMI8738 6ch-MX 0
s 13f6011113f60111 CMI8738/C3DX PCI Audio Device 0
@@ -4953,7 +4932,6 @@ v 1410 Midas lab Inc 0
v 1411 Ikos Systems Inc 0
v 1412 IC Ensemble Inc 0
d 14121712 ICE1712 [Envy24] 0
-d 14121724 ICE1724 [Envy24HT] 0
v 1413 Addonics 0
v 1414 Microsoft Corporation 0
v 1415 Oxford Semiconductor Ltd 0
@@ -5052,7 +5030,6 @@ d 145f0001 NextMove PCI 0
v 1460 DYNARC INC 0
v 1461 Avermedia Technologies Inc 0
v 1462 Micro-star International Co Ltd 0
-v 1462 Micro-Star International Co., Ltd. 1
v 1463 Fast Corporation 0
v 1464 Interactive Circuits & Systems Ltd 0
v 1465 GN NETTEST Telecom DIV. 0
@@ -5149,7 +5126,7 @@ d 14b90340 PC4800 0
d 14b90350 PC4800 0
d 14b94500 PC4500 0
d 14b94800 PC4800 0
-d 14b9a504 Cisco Aironet Wireless 802.11b 0
+d 14b9a504 Cisco Aironet Wireless 802.11b 1 This is the name used by IBM in their Thinkpad T30 doc. It is a wireless ethernet card.
v 14ba INTERNIX Inc. 0
v 14bb SEMTECH Corporation 0
v 14bc Globespan Semiconductor Inc. 0
@@ -5222,41 +5199,40 @@ v 14e2 INFOLIBRIA 0
v 14e3 AMTELCO 0
v 14e4 Broadcom Corporation 0
d 14e41644 NetXtreme BCM5700 Gigabit Ethernet 0
-s 14e4164410140277 Broadcom Vigil B5700 1000Base-T 0
+s 14e4164410140277 Broadcom Vigil B5700 1000BaseTX 0
s 14e41644102800d1 Broadcom BCM5700 0
s 14e4164410280106 Broadcom BCM5700 0
-s 14e4164410280109 Broadcom BCM5700 1000Base-T 0
+s 14e4164410280109 Broadcom BCM5700 1000BaseTX 0
s 14e416441028010a Broadcom BCM5700 1000BaseTX 0
-s 14e4164410b71000 3C996-T 1000Base-T 0
-s 14e4164410b71001 3C996B-T 1000Base-T 0
-s 14e4164410b71002 3C996C-T 1000Base-T 0
-s 14e4164410b71003 3C997-T 1000Base-T Dual Port 0
-s 14e4164410b71004 3C996-SX 1000Base-SX 0
-s 14e4164410b71005 3C997-SX 1000Base-SX Dual Port 0
+s 14e4164410b71000 3C996-T 1000BaseTX 0
+s 14e4164410b71001 3C996B-T 1000BaseTX 0
+s 14e4164410b71002 3C996C-T 1000BaseTX 0
+s 14e4164410b71003 3C997-T 1000BaseTX Dual Port 0
+s 14e4164410b71004 3C996-SX 1000BaseSX 0
+s 14e4164410b71005 3C997-SX 1000BaseSX Dual Port 0
s 14e4164410b71008 3C942 Gigabit LOM (31X31) 0
-s 14e4164414e40002 NetXtreme 1000Base-SX 0
-s 14e4164414e40003 NetXtreme 1000Base-SX 0
-s 14e4164414e40004 NetXtreme 1000Base-T 0
+s 14e4164414e40002 NetXtreme 1000BaseSX 0
+s 14e4164414e40003 NetXtreme 1000BaseSX 0
+s 14e4164414e40004 NetXtreme 1000BaseTX 0
s 14e4164414e41028 NetXtreme 1000BaseTX 0
-s 14e4164414e41644 BCM5700 1000Base-T 0
+s 14e4164414e41644 BCM5700 1000BaseTX 0
d 14e41645 NetXtreme BCM5701 Gigabit Ethernet 0
s 14e416450e11007c NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T) 0
s 14e416450e11007d NC6770 Gigabit Server Adapter (PCI-X, 1000-SX) 0
s 14e416450e110085 NC7780 Gigabit Server Adapter (embedded, WOL) 0
s 14e416450e110099 NC7780 Gigabit Server Adapter (embedded, WOL) 0
s 14e416450e11009a NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T) 0
-s 14e416450e1100c1 NC6770 Gigabit Server Adapter (PCI-X, 1000-SX) 0
-s 14e4164510280121 Broadcom BCM5701 1000Base-T 0
-s 14e4164510b71004 3C996-SX 1000Base-SX 0
-s 14e4164510b71006 3C996B-T 1000Base-T 0
-s 14e4164510b71007 3C1000-T 1000Base-T 0
-s 14e4164510b71008 3C940-BR01 1000Base-T 0
-s 14e4164514e40001 BCM5701 1000Base-T 0
-s 14e4164514e40005 BCM5701 1000Base-T 0
-s 14e4164514e40006 BCM5701 1000Base-T 0
-s 14e4164514e40007 BCM5701 1000Base-SX 0
-s 14e4164514e40008 BCM5701 1000Base-T 0
-s 14e4164514e48008 BCM5701 1000Base-T 0
+s 14e4164510280121 Broadcom BCM5701 1000BaseTX 0
+s 14e4164510b71004 3C996-SX 1000BaseSX 0
+s 14e4164510b71006 3C996B-T 1000BaseTX 0
+s 14e4164510b71007 3C1000-T 1000BaseTX 0
+s 14e4164510b71008 3C940-BR01 1000BaseTX 0
+s 14e4164514e40001 BCM5701 1000BaseTX 0
+s 14e4164514e40005 BCM5701 1000BaseTX 0
+s 14e4164514e40006 BCM5701 1000BaseTX 0
+s 14e4164514e40007 BCM5701 1000BaseSX 0
+s 14e4164514e40008 BCM5701 1000BaseTX 0
+s 14e4164514e48008 BCM5701 1000BaseTX 0
d 14e41646 NetXtreme BCM5702 Gigabit Ethernet 0
s 14e416460e1100bb NC7760 1000BaseTX 0
s 14e4164610280126 Broadcom BCM5702 1000BaseTX 0
@@ -5269,48 +5245,19 @@ s 14e4164714e4000a BCM5703 1000BaseSX 0
s 14e4164714e4000b BCM5703 1000BaseTX 0
s 14e4164714e48009 BCM5703 1000BaseTX 0
s 14e4164714e4800a BCM5703 1000BaseTX 0
-d 14e41648 NetXtreme BCM5704 Gigabit Ethernet 0
-s 14e416480e1100cf NC7772 Gigabit Server Adapter (PCI-X, 10,100,1000-T) 0
-s 14e416480e1100d0 NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T) 0
-s 14e416480e1100d1 NC7783 Gigabit Server Adapter (PCI-X, 10,100,1000-T) 0
-s 14e4164810b72000 3C998-T Dual Port 10/100/1000 PCI-X 0
-s 14e4164810b73000 3C999-T Quad Port 10/100/1000 PCI-X 0
-s 14e4164811661648 NetXtreme CIOB-E 1000Base-T 0
+d 14e41648 "Broadcom Corporation|BCM5704 1000BaseTX" 1
d 14e4164d NetXtreme BCM5702FE Gigabit Ethernet 0
-d 14e41653 NetXtreme BCM5705 Gigabit Ethernet 0
-d 14e4165d NetXtreme BCM5705M Gigabit Ethernet 0
-d 14e41696 NetXtreme BCM5782 Gigabit Ethernet 0
-s 14e4169614e4000d NetXtreme BCM5782 1000Base-T 0
-d 14e416a6 NetXtreme BCM5702 Gigabit Ethernet 0
-s 14e416a60e1100bb NC7760 Gigabit Server Adapter (PCI-X, 10/100/1000-T) 0
-s 14e416a610280126 BCM5702 1000Base-T 0
-s 14e416a614e4000c BCM5702 1000Base-T 0
-s 14e416a614e48009 BCM5702 1000Base-T 0
-d 14e416a7 NetXtreme BCM5703 Gigabit Ethernet 0
-s 14e416a70e1100ca NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T) 0
-s 14e416a70e1100cb NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T) 0
-s 14e416a714e40009 NetXtreme BCM5703 1000Base-T 0
-s 14e416a714e4000a NetXtreme BCM5703 1000Base-SX 0
-s 14e416a714e4000b NetXtreme BCM5703 1000Base-T 0
-s 14e416a714e4800a NetXtreme BCM5703 1000Base-T 0
-d 14e416a8 NetXtreme BCM5704S Gigabit Ethernet 0
-s 14e416a810b72001 3C998-SX Dual Port 1000-SX PCI-X 0
-d 14e416c6 NetXtreme BCM5702 Gigabit Ethernet 0
-s 14e416c610b71100 3C1000B-T 10/100/1000 PCI 0
-s 14e416c614e4000c BCM5702 1000Base-T 0
-s 14e416c614e48009 BCM5702 1000Base-T 0
-d 14e416c7 NetXtreme BCM5703 Gigabit Ethernet 0
-s 14e416c714e40009 NetXtreme BCM5703 1000Base-T 0
-s 14e416c714e4000a NetXtreme BCM5703 1000Base-SX 0
-d 14e44210 BCM4210 iLine10 HomePNA 2.0 0
-d 14e44211 BCM4211 iLine10 HomePNA 2.0 + V.90 56k modem 0
-d 14e44212 BCM4212 v.90 56k modem 0
-d 14e44301 BCM4301 802.11b 0
-d 14e44401 BCM4401 100Base-T 0
-d 14e44402 BCM4402 Integrated 10/100BaseT 0
-d 14e44410 BCM4413 iLine32 HomePNA 2.0 0
-d 14e44411 BCM4413 V.90 56k modem 0
-d 14e44412 BCM4413 10/100BaseT 0
+d 14e416a6 NetXtreme BCM5702X Gigabit Ethernet 0
+d 14e416a7 NetXtreme BCM5703X Gigabit Ethernet 0
+d 14e416a8 Broadcom Corporation|BCM5704 1000BaseSX 1
+d 14e44210 BCM4210 iLine10 HomePNA 2.0 1
+d 14e44211 BCM4211 iLine10 HomePNA 2.0 + V.90 56k modem 1
+d 14e44212 BCM v.90 56k modem 0
+d 14e44212 BCM4212 v.90 56k modem 1
+d 14e44402 BCM4402 Integrated 10/100BaseT 1
+d 14e44410 BCM4413 iLine32 HomePNA 2.0 1
+d 14e44411 BCM4413 V.90 56k modem 1
+d 14e44412 BCM4413 10/100BaseT 1
d 14e45820 BCM5820 Crypto Accelerator 0
d 14e45821 BCM5821 Crypto Accelerator 0
v 14e5 Pixelfusion Ltd 0
@@ -5531,10 +5478,6 @@ s 1522010015220500 RockForceQUATRO+ 4 Port V.92/V.44 Data/Fax/Voice Modem 0
s 1522010015220600 RockForce+ 2 Port V.90 Data/Fax/Voice Modem 0
v 1523 MUSIC Semiconductors 0
v 1524 ENE Technology Inc 0
-d 15241211 CB1211 Cardbus Controller 0
-d 15241225 CB1225 Cardbus Controller 0
-d 15241410 CB1410 Cardbus Controller 0
-d 15241420 CB1420 Cardbus Controller 0
v 1525 IMPACT Technologies 0
v 1526 ISS, Inc 0
v 1527 SOLECTRON 0
@@ -5565,8 +5508,7 @@ v 1540 PROVIDEO MULTIMEDIA Co Ltd 0
v 1541 MACHONE Communications 0
v 1542 VIVID Technology Inc 0
v 1543 SILICON Laboratories 0
-d 15433052 Intel 537 [Winmodem] 0
-d 15434c22 Si3036 MC'97 DAA 0
+d 15434c22 Si3036 1 MC'97 DAA
v 1544 DCM DATA Systems 0
v 1545 VISIONTEK 0
v 1546 IOI Technology Corp 0
@@ -5700,7 +5642,9 @@ v 15aa Moreton Bay 0
v 15ab Bluesteel Networks Inc 0
v 15ac North Atlantic Instruments 0
v 15ad VMWare Inc 0
+d 15ad0405 Unknown? 1
d 15ad0710 Virtual SVGA 0
+d 15ad0720 Virtual SVGA? 1
v 15ae Amersham Pharmacia Biotech 0
v 15b0 Zoltrix International Ltd 0
v 15b1 Source Technology Inc 0
@@ -5730,6 +5674,7 @@ v 15c6 Technical University of Budapest 0
v 15c7 Tateyama System Laboratory Co Ltd 0
d 15c70349 Tateyama C-PCI PLC/NC card Rev.01A 0
v 15c8 Penta Media Co Ltd 0
+d 15c89050 PentaNet 1 Satellite DVB Card
v 15c9 Serome Technology Inc 0
v 15ca Bitboys OY 0
v 15cb AG Electronics Ltd 0
@@ -5805,27 +5750,22 @@ d 16291003 Format synchronizer v3.0 0
d 16292002 Fast Universal Data Output 0
v 1638 Standard Microsystems Corp [SMC] 0
d 16381100 SMC2602W EZConnect / Addtron AWA-100 0
-v 163c Smart Link Ltd. 0
-d 163c5449 SmartPCI561 Modem 0
v 1657 Brocade Communications Systems, Inc. 0
-v 165a Epix Inc 0
-d 165ac100 PIXCI(R) CL1 Camera Link Video Capture Board [custom QL5232] 0
-d 165ad200 PIXCI(R) D2X Digital Video Capture Board [custom QL5232] 0
-d 165ad300 PIXCI(R) D3X Digital Video Capture Board [custom QL5232] 0
+v 165a Epix Inc. 1
+d 165ac100 PIXCI(R) CL1 PCI Camera Link Video Capture Board 1 Custom chip made for this board, based on QuickLogic QL5232
+d 165ad200 PIXCI(R) D2X PCI Digital Video Capture Board 1 Custom chip made for this board, based on QuickLogic QL5232
+d 165ad300 PIXCI(R) D3X PCI Digital Video Capture Board 1 Custom chip made for this board, based on QuickLogic QL5232
v 165d Hsing Tech. Enterprise Co., Ltd. 0
v 1661 Worldspace Corp. 0
-v 1668 Actiontec Electronics Inc 0
-v 1681 Hercules 0
+v 1668 Action Tec Electronics Inc 0
+v 168c Action Tec Electronics Inc 1 subtype: '0007 802.11a WLAN Controller (AR5k chipset)'
v 16ab Global Sun Technology Inc 0
-d 16ab1102 PCMCIA-to-PCI Wireless Network Bridge 0
-v 16be Creatix Polymedia GmbH 0
+d 16ab1102 PCMCIA-to-PCI Wireless Network Bridge 1 PLX chipset
v 16ec U.S. Robotics 0
d 16ec3685 Wireless Access PCI Adapter Model 022415 0
v 16f6 VideoTele.com, Inc. 0
-v 1705 Digital First, Inc. 0
v 170b NetOctave Inc 0
v 170c YottaYotta Inc. 0
-v 172a Accelerated Encryption 0
v 1737 Linksys 0
v 173b Altima (nee Broadcom) 0
d 173b03e8 AC1000 Gigabit Ethernet 0
@@ -5834,7 +5774,8 @@ v 1743 Peppercon AG 0
d 17438139 ROL/F-100 Fast Ethernet Adapter with ROL 0
v 174b PC Partner Limited 0
v 175e Sanera Systems, Inc. 0
-v 1787 Hightech Information System Ltd. 0
+v 1787 Sapphire Technology Ltd. 1 http://mirror.ati.com/support/identify/graphicschart.html
+v 1787 Hightech Information System Ltd. 1 Oops, I goofed on the Sapphire entry above.. this one is correct
v 1796 Research Centre Juelich 0 also used by Struck Innovative Systeme for joint developments
d 17960001 SIS1100 [Gigabit link] 0
d 17960002 HOTlink 0
@@ -5842,15 +5783,10 @@ d 17960003 Counter Timer 0
d 17960004 CAMAC Controller 0
d 17960005 PROFIBUS 0
d 17960006 AMCC HOTlink 0
-v 1799 Belkin 0
-v 17af Hightech Information System Ltd. 0
+v 1799 Belkin 1
+v 17af Hightech Information System Ltd. 1 ATI supplied info - http://mirror.ati.com/support/identify/graphicschart.html
v 1813 Ambient Technologies Inc 0
-d 18134000 HaM controllerless modem 0
-s 1813400016be0001 V9x HAM Data Fax Modem 0
-d 18134100 HaM plus Data Fax Modem 0
-s 1813410016be0002 V9x HAM 1394 0
-v 1851 Microtune, Inc. 0
-v 1852 Anritsu Corp. 0
+d 18134000 HaM controllerless modem 1
v 1a08 Sierra semiconductor 0
d 1a080000 SC15064 0
v 1b13 Jaton Corp 0
@@ -5863,10 +5799,7 @@ d 1de10391 TRM-S1040 0
d 1de12020 DC-390 0
d 1de1690c 690c 0
d 1de1dc29 DC290 0
-v 2000 Smart Link Ltd. 0
v 2001 Temporal Research Ltd 0
-v 2003 Smart Link Ltd. 0
-v 2004 Smart Link Ltd. 0
v 21c3 21st Century Computer Corp. 0
v 2348 Racore 0
d 23482010 8142 100VG/AnyLAN 0
@@ -5886,6 +5819,7 @@ s 3388801233888012 VXPro II Chipset PCI to ISA Bridge 0
d 33888013 VXPro II IDE 0
s 3388801333888013 VXPro II Chipset EIDE Controller 0
v 3411 Quantum Designs (H.K.) Inc 0
+v 3412 Unknown 1 Toshiba Magnia SG20 has a 3412:7856 as a subsystem of 1217:6972
v 3513 ARCOM Control Systems Ltd 0
v 38ef 4Links 0
v 3d3d 3DLabs 0
@@ -5910,7 +5844,6 @@ s 3d3d00093d3d0127 Permedia3 Create! 0
d 3d3d000a GLINT R3 0
s 3d3d000a3d3d0121 Oxygen VX1 0
d 3d3d000c GLINT R3 [Oxygen VX1] 0
-s 3d3d000c3d3d0144 Oxygen VX1-4X AGP [Permedia 4] 0
d 3d3d0100 Permedia II 2D+3D 0
d 3d3d1004 Permedia 0
d 3d3d3d04 Permedia 0
@@ -5983,7 +5916,6 @@ v 5136 S S Technologies 0
v 5143 Qualcomm Inc 0
v 5145 Ensoniq (Old) 0
d 51453031 Concert AudioPCI 0
-v 5168 Animation Technologies Inc. 1 http://www.lifeview.com.tw/
v 5301 Alliance Semiconductor Corp. 0
d 53010001 ProMotion aT3D 0
v 5333 S3 Inc. 0
@@ -6092,7 +6024,7 @@ d 53338c03 ViRGE/MX+MV 0
d 53338c10 86C270-294 Savage/MX-MV 0
d 53338c11 82C270-294 Savage/MX 0
d 53338c12 86C270-294 Savage/IX-MV 0
-s 53338c121014017f ThinkPad T20 0
+s 53338c121014017f ThinkPad T20 1
d 53338c13 86C270-294 Savage/IX 0
d 53338c22 SuperSavage MX/128 0
d 53338c24 SuperSavage MX/64 0
@@ -6105,13 +6037,8 @@ d 53338c2e SuperSavage IX/C SDR 0
s 53338c2e101401fc ThinkPad T23 (2647-4MG) 0
d 53338c2f SuperSavage IX/C DDR 0
d 53338d01 VT8603 [ProSavage PN133] AGP4X VGA Controller (Twister) 0 Integrated in VIA ProSavage PN133 North Bridge
-d 53338d01 86C380 [ProSavageDDR K4M266] 1 Update: Ignore previous submission, hit the jackpot on S3's site. The VTxxx numbers are all wrong.
-d 53338d01 VT8603 [ProSavage PN133 (Twister)] 1 Update: remove overly extraneous and redundant info
d 53338d02 VT8636A [ProSavage KN133] AGP4X VGA Controller (TwisterK) 0
-d 53338d02 VT8636A [ProSavage KN133 (Twister)] 1 Update: remove overly extraneous and redundant info
-d 53338d03 VT8751 [ProSavageDDR P4M266] 1 Update: 0x8d04 is actually 0x8d03 from XFree86 savage driver source
d 53338d04 VT8751 [ProSavageDDR P4M266] VGA Controller 0
-d 53338d04 [ProSavageDDR K4M266] 1 Update: 0x8d04 is the AMD "K" variant of 8d03, don't have complete info yet, will update in future
d 53339102 86C410 Savage 2000 0
s 5333910210925932 Viper II Z200 0
s 5333910210925934 Viper II Z200 0
@@ -6205,14 +6132,14 @@ d 80861015 82540EM Gigabit Ethernet Controller (LOM) 0
d 80861029 82559 Ethernet Controller 0
d 80861030 82559 InBusiness 10/100 0
d 80861031 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller 0
-s 8086103110140209 ThinkPad A/T/X Series 0
+s 8086103110140209 ThinkPad A30p (2653-64G) 0
+s 8086103110140209 ThinkPad A30p/T30 1
s 80861031104d80e7 Vaio PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP 0
s 80861031107b5350 EtherExpress PRO/100 VE 0
s 8086103111790001 EtherExpress PRO/100 VE 0
s 80861031144dc000 EtherExpress PRO/100 VE 0
s 80861031144dc001 EtherExpress PRO/100 VE 0
s 80861031144dc003 EtherExpress PRO/100 VE 0
-s 80861031144dc006 vpr Matrix 170B4 0
d 80861032 82801CAM (ICH3) PRO/100 VE Ethernet Controller 0
d 80861033 82801CAM (ICH3) PRO/100 VM (LOM) Ethernet Controller 0
d 80861034 82801CAM (ICH3) PRO/100 VM Ethernet Controller 0
@@ -6222,16 +6149,12 @@ d 80861037 82801CAM (ICH3) Chipset Ethernet Controller 0
d 80861038 82801CAM (ICH3) PRO/100 VM (KM) Ethernet Controller 0
d 80861039 82801BD PRO/100 VE (LOM) Ethernet Controller 0
d 8086103a 82801BD PRO/100 VE (CNR) Ethernet Controller 0
-s 8086103a80861039 PRO/100 VE Network Connection 1
d 8086103b 82801BD PRO/100 VM (LOM) Ethernet Controller 0
d 8086103c 82801BD PRO/100 VM (CNR) Ethernet Controller 0
d 8086103d 82801BD PRO/100 VE (MOB) Ethernet Controller 0
d 8086103e 82801BD PRO/100 VM (MOB) Ethernet Controller 0
-d 80861040 536EP Data Fax Modem 0
-s 8086104016be1040 V.9X DSP Data Fax Modem 0
d 80861059 82551QM Ethernet Controller 0
d 80861130 82815 815 Chipset Host Bridge and Memory Controller Hub 0
-s 8086113010251016 Travelmate 612 TX 0
s 8086113010438027 TUSL2-C Mainboard 0
s 80861130104d80df Vaio PCG-FX403 0
d 80861131 82815 815 Chipset AGP Bridge 0
@@ -6281,16 +6204,16 @@ s 80861229101401f1 10/100 Ethernet Server Adapter 0
s 80861229101401f2 10/100 Ethernet Server Adapter 0
s 8086122910140207 Ethernet Pro/100 S 0
s 8086122910140232 10/100 Dual Port Server Adapter 0
-s 808612291014023a ThinkPad R30 0
+s 808612291014023a ThinkPad R30 1
s 808612291014105c Netfinity 10/100 0
-s 8086122910142205 ThinkPad A22p 0
+s 8086122910142205 ThinkPad A22p 1
s 808612291014305c 10/100 EtherJet Management Adapter 0
s 808612291014405c 10/100 EtherJet Adapter with Alert on LAN 0
s 808612291014505c 10/100 EtherJet Secure Management Adapter 0
s 808612291014605c 10/100 EtherJet Secure Management Adapter 0
s 808612291014705c 10/100 Netfinity 10/100 Ethernet Security Adapter 0
s 808612291014805c 10/100 Netfinity 10/100 Ethernet Security Adapter 0
-s 808612291028009b PowerEdge 2550 0
+s 808612291028009b PowerEdge 2550 1
s 8086122910338000 PC-9821X-B06 0
s 8086122910338016 PK-UG-X006 0
s 808612291033801f PK-UG-X006 0
@@ -6421,7 +6344,6 @@ s 8086136180861361 82806AA PCI64 Hub Controller (HRes) 0
s 8086136180868000 82806AA PCI64 Hub Controller (HRes) 0
d 80861460 82870P2 P64H2 Hub PCI Bridge 0
d 80861461 82870P2 P64H2 I/OxAPIC 0
-s 8086146115d93480 P4DP6 1
d 80861462 82870P2 P64H2 Hot Plug Controller 0
d 80861960 80960RP [i960RP Microprocessor] 0
s 80861960101e0431 MegaRAID 431 RAID Controller 0
@@ -6473,27 +6395,21 @@ d 80862426 82801AB AC'97 Modem 0
d 80862428 82801AB PCI Bridge 0
d 80862440 82801BA ISA Bridge (LPC) 0
d 80862442 82801BA/BAM USB (Hub #1) 0
-s 80862442101401c6 Netvista A40/A40p 1
s 80862442104d80df Vaio PCG-FX403 0
s 80862442147b0507 TH7II-RAID 0
d 80862443 82801BA/BAM SMBus 0
-s 80862443101401c6 Netvista A40/A40p 1
-s 8086244310251016 Travelmate 612 TX 0
+d 80862443 1
s 8086244310438027 TUSL2-C Mainboard 0
s 80862443104d80df Vaio PCG-FX403 0
s 80862443147b0507 TH7II-RAID 0
d 80862444 82801BA/BAM USB (Hub #2) 0
-s 8086244410251016 Travelmate 612 TX 0
s 80862444104d80df Vaio PCG-FX403 0
s 80862444147b0507 TH7II-RAID 0
d 80862445 82801BA/BAM AC'97 Audio 0
-s 80862445101401c6 Netvista A40/A40p 1
-s 8086244510251016 Travelmate 612 TX 0
s 80862445104d80df Vaio PCG-FX403 0
s 8086244514623370 STAC9721 AC 0
s 80862445147b0507 TH7II-RAID 0
-d 80862446 Intel 537 [82801BA/BAM AC'97 Modem] 0
-s 8086244610251016 Travelmate 612 TX 0
+d 80862446 82801BA/BAM AC'97 Modem 0
s 80862446104d80df Vaio PCG-FX403 0
d 80862448 82801BAM/CAM PCI Bridge 0
d 80862449 82801BA/BAM/CA/CAM Ethernet Controller 0
@@ -6527,7 +6443,6 @@ d 8086244a 82801BAM IDE U100 0
s 8086244a10251016 Travelmate 612TX 0
s 8086244a104d80df Vaio PCG-FX403 0
d 8086244b 82801BA IDE U100 0
-s 8086244b101401c6 Netvista A40/A40p 1
s 8086244b10438027 TUSL2-C Mainboard 0
s 8086244b147b0507 TH7II-RAID 0
d 8086244c 82801BAM ISA Bridge (LPC) 0
@@ -6541,63 +6456,47 @@ d 8086245d 82801E Ethernet Controller 1 0
d 8086245e 82801E PCI Bridge 0
d 80862480 82801CA ISA Bridge (LPC) 0
d 80862482 82801CA/CAM USB (Hub #1) 0
-s 8086248210140220 ThinkPad A/T/X Series 0
+s 8086248210140220 ThinkPad T23 (2647-4MG) or A30p (2653-64G) 0
+s 8086248210140220 ThinkPad T23/A30p/T30 1
s 80862482104d80e7 VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP 0
-s 8086248215d93480 P4DP6 1
-s 8086248280861958 vpr Matrix 170B4 0
d 80862483 82801CA/CAM SMBus 0
-s 8086248310140220 ThinkPad A/T/X Series 0
+s 8086248310140220 ThinkPad T23 (2647-4MG) or A30p (2653-64G) 0
+s 8086248310140220 ThinkPad T23/A30p/T30 1
s 80862483104d80e7 VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP 0
-s 8086248315d93480 P4DP6 1
-s 8086248380861958 vpr Matrix 170B4 0
d 80862484 82801CA/CAM USB (Hub #2) 0
-s 8086248410140220 ThinkPad A/T/X Series 0
+s 8086248410140220 ThinkPad T23 (2647-4MG) or A30p (2653-64G) 0
+s 8086248410140220 ThinkPad T23/A30p/T30 1
s 80862484104d80e7 VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP 0
-s 8086248415d93480 P4DP6 1
-s 8086248480861958 vpr Matrix 170B4 0
d 80862485 82801CA/CAM AC'97 Audio 0
s 8086248510140222 ThinkPad T23 (2647-4MG) or A30p (2653-64G) 0
-s 8086248510140508 ThinkPad T30 0
-s 808624851014051c ThinkPad A/T/X Series 0
+s 8086248510140508 ThinkPad T30 1
s 80862485104d80e7 VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP 0
-s 80862485144dc006 vpr Matrix 170B4 0
d 80862486 82801CA/CAM AC'97 Modem 0
-s 8086248610140223 ThinkPad A/T/X Series 0
+s 8086248610140223 ThinkPad A30p (2653-64G) 0
s 8086248610140503 ThinkPad R31 2656BBG 0
-s 808624861014051a ThinkPad A/T/X Series 0
+s 808624861014051a ThinkPad T30 1
s 80862486104d80e7 VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP 0
s 80862486134d4c21 Dell Inspiron 2100 internal modem 0
-s 80862486144d2115 vpr Matrix 170B4 internal modem 0
-s 8086248614f15421 MD56ORD V.92 MDC Modem 0
+s 8086248614f15421 Actiontec MD56ORD V.92 MDC Modem 1 Dell Inspiron 4100 internal modem
d 80862487 82801CA/CAM USB (Hub #3) 0
-s 8086248710140220 ThinkPad A/T/X Series 0
+s 8086248710140220 ThinkPad T23 (2647-4MG) or A30p (2653-64G) 0
+s 8086248710140220 ThinkPad T23/A30p/T30 1
s 80862487104d80e7 VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP 0
-s 8086248715d93480 P4DP6 1
-s 8086248780861958 vpr Matrix 170B4 0
d 8086248a 82801CAM IDE U100 0
-s 8086248a10140220 ThinkPad A/T/X Series 0
+s 8086248a10140220 ThinkPad T23 (2647-4MG) or A30p (2653-64G) 0
+s 8086248a10140220 ThinkPad T23/A30p/T30 1
s 8086248a104d80e7 VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP 0
-s 8086248a80861958 vpr Matrix 170B4 0
d 8086248b 82801CA IDE U100 0
-s 8086248b15d93480 P4DP6 1
d 8086248c 82801CAM ISA Bridge (LPC) 0
d 808624c0 82801DB ISA Bridge (LPC) 0
-s 808624c014625800 845PE Max (MS-6580) 1
d 808624c2 82801DB USB (Hub #1) 0
-s 808624c214625800 845PE Max (MS-6580) 1
d 808624c3 82801DB SMBus 0
-s 808624c314625800 845PE Max (MS-6580) 1
d 808624c4 82801DB USB (Hub #2) 0
-s 808624c414625800 845PE Max (MS-6580) 1
d 808624c5 82801DB AC'97 Audio 0
-s 808624c514625800 845PE Max (MS-6580) 1
d 808624c6 82801DB AC'97 Modem 0
d 808624c7 82801DB USB (Hub #3) 0
-s 808624c714625800 845PE Max (MS-6580) 1
d 808624cb 82801DB ICH4 IDE 0
-s 808624cb14625800 845PE Max (MS-6580) 1
d 808624cd 82801DB USB EHCI Controller 0
-s 808624cd14623981 845PE Max (MS-6580) Onboard USB EHCI Controller 1
d 80862500 82820 820 (Camino) Chipset Host Bridge (MCH) 0
s 8086250010280095 Precision Workstation 220 Chipset 0
s 808625001043801c P3C-2000 system chipset 0
@@ -6614,9 +6513,7 @@ d 80862532 82850 850 (Tehama) Chipset AGP Bridge 0
d 80862533 82860 860 (Wombat) Chipset AGP Bridge 0
d 80862534 82860 860 (Wombat) Chipset PCI Bridge 0
d 80862540 e7500 [Plumas] DRAM Controller 0
-s 8086254015d93480 P4DP6 1
d 80862541 e7500 [Plumas] DRAM Controller Error Reporting 0
-s 8086254115d93480 P4DP6 1
d 80862543 e7500 [Plumas] HI_B Virtual PCI Bridge (F0) 0
d 80862544 e7500 [Plumas] HI_B Virtual PCI Bridge (F1) 0
d 80862545 e7500 [Plumas] HI_C Virtual PCI Bridge (F0) 0
@@ -6624,16 +6521,14 @@ d 80862546 e7500 [Plumas] HI_C Virtual PCI Bridge (F1) 0
d 80862547 e7500 [Plumas] HI_D Virtual PCI Bridge (F0) 0
d 80862548 e7500 [Plumas] HI_D Virtual PCI Bridge (F1) 0
d 80862560 82845G/GL [Brookdale-G] Chipset Host Bridge 0
-s 8086256014625800 845PE Max (MS-6580) 1
d 80862561 82845G/GL [Brookdale-G] Chipset AGP Bridge 0
d 80862562 82845G/GL [Brookdale-G] Chipset Integrated Graphics Device 0
d 80863092 Integrated RAID 0
d 80863575 82830 830 Chipset Host Bridge 0
-s 808635751014021d ThinkPad A/T/X Series 0
+s 808635751014021d ThinkPad T23 (2647-4MG) or A30p (2653-64G) 0
s 80863575104d80e7 VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP 0
d 80863576 82830 830 Chipset AGP Bridge 0
d 80863577 82830 CGC [Chipset Graphics Controller] 0
-s 8086357710140513 ThinkPad A/T/X Series 0
d 80863578 82830 830 Chipset Host Bridge 0
d 80865200 EtherExpress PRO/100 Intelligent Server 0
d 80865201 EtherExpress PRO/100 Intelligent Server 0
@@ -6661,7 +6556,6 @@ d 80867180 440LX/EX - 82443LX/EX Host bridge 0
d 80867181 440LX/EX - 82443LX/EX AGP bridge 0
d 80867190 440BX/ZX/DX - 82443BX/ZX/DX Host bridge 0
s 808671900e110500 Armada 1750 Laptop System Chipset 0
-s 808671900e11b110 Armada M700 1
s 8086719011790001 Toshiba Tecra 8100 Laptop System Chipset 0
d 80867191 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge 0
d 80867192 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) 0
@@ -6857,18 +6751,15 @@ d 90050081 AIC-7892B U160/m 0
s 90050081900562a1 19160 Ultra160 SCSI Controller 0
d 90050083 AIC-7892D U160/m 0
d 9005008f AIC-7892P U160/m 0
-s 9005008f15d99005 Onboard SCSI Host Adapter 1
d 900500c0 AHA-3960D / AIC-7899A U160/m 0
s 900500c00e11f620 Compaq 64-Bit/66MHz Dual Channel Wide Ultra3 SCSI Adapter 0
s 900500c09005f620 AHA-3960D U160/m 0
d 900500c1 AIC-7899B U160/m 0
d 900500c3 AIC-7899D U160/m 0
d 900500c5 RAID subsystem HBA 0
-s 900500c5102800c5 PowerEdge 2550 0
+s 900500c5102800c5 PowerEdge 2550 1
d 900500cf AIC-7899P U160/m 0
-s 900500cf102800d1 PowerEdge 2550 0
-s 900500cf10f12462 Thunder K7 S2462 1
-s 900500cf15d99005 Onboard SCSI Host Adapter 1
+s 900500cf102800d1 PowerEdge 2550 1
d 90050250 ServeRAID Controller 0
s 9005025010140279 ServeRAID-xx 0
s 900502501014028c ServeRAID-xx 0
@@ -6912,7 +6803,7 @@ v a727 3Com Corporation 0
v aa42 Scitex Digital Video 0
v ac1e Digital Receiver Technology Inc 0
v b1b3 Shiva Europe Limited 0
-v bd11 Pinnacle Systems, Inc. (Wrong ID) 0 Pinnacle should be 11bd, but they got it wrong several times --mj
+v bd11 Pinnacle Systems 1 11bd is probably wrong
v c001 TSI Telsys 0
v c0a9 Micron/Crucial Technology 0
v c0de Motorola 0
@@ -6922,7 +6813,7 @@ v cafe Chrysalis-ITS 0
v cccc Catapult Communications 0
v cddd Tyzx, Inc. 0
d cddd0101 DeepSea 1 High Speed Stereo Vision Frame Grabber 0
-d cddd0200 DeepSea 2 High Speed Stereo Vision Frame Grabber 0
+d cddd0200 DeepSea 2 High Speed Stereo Vision Frame Grabber 1
v d4d4 Dy4 Systems Inc 0
d d4d40601 PCI Mezzanine Card 0
v d531 I+ME ACTIA GmbH 0
@@ -6931,16 +6822,19 @@ v dead Indigita Corporation 0
v e000 Winbond 0
d e000e000 W89C940 0
v e159 Tiger Jet Network Inc. 0
-d e1590001 Intel 537 0
+d e1590001 Model 300 128k 0
s e159000100590001 128k ISDN-S/T Adapter 0
s e159000100590003 128k ISDN-U Adapter 0
d e1590002 Tiger100APC ISDN chipset 0
v e4bf EKF Elektronik GmbH 0
v ea01 Eagle Technology 0
-v ea60 RME 0 The main chip of all these devices is by Xilinx -> It could also be a Xilinx ID.
-d ea609896 Digi32 0
-d ea609897 Digi32 Pro 0
-d ea609898 Digi32/8 0
+v ea60 RME 1 The main chip of all these devices is by Xilinx -> It could also be a Xilinx ID.
+d ea609896 Digi32 1
+d ea609896 RME Digi32 1
+d ea609897 RME Digi32 Pro 1
+d ea609897 Digi32 Pro 1
+d ea609898 Digi32/8 1
+d ea609898 RME Digi32/8 1
v eabb Aashima Technology B.V. 0
v eace Endace Measurement Systems, Ltd 0
d eace3100 DAG 3.10 OC-3/OC-12 0
@@ -6956,28 +6850,22 @@ d eace4220 DAG 4.2 OC-48 0
d eace422e DAG 4.2E Dual Gigabit Ethernet 0
v ec80 Belkin Corporation 0
d ec80ec00 F5D6000 0
-v ecc0 Echo Digital Audio Corporation 0
-d ecc00050 Gina24_301 0
-d ecc00051 Gina24_361 0
-d ecc00060 Layla24 0
-d ecc00070 Mona_301_80 0
-d ecc00071 Mona_301_66 0
-d ecc00072 Mona_361 0
-d ecc00080 Mia 0
+v ecc0 Echo Corporation 0
v edd8 ARK Logic Inc 0
d edd8a091 1000PV [Stingray] 0
d edd8a099 2000PV [Stingray] 0
d edd8a0a1 2000MT 0
d edd8a0a9 2000MI 0
v f1d0 AJA Video 0
-d f1d0cafe KONA SD SMPTE 259M I/O 0 All boards I have seen have this ID not efac, though all docs say efac...
+d f1d0cafe KONA SD SMPTE 259M I/O 1 All boards I have seen have this ID not efac, though all docs say efac...
d f1d0efac KONA SD SMPTE 259M I/O 0
d f1d0facd KONA HD SMPTE 292M I/O 0
v fa57 Fast Search & Transfer ASA 0
v febd Ultraview Corp. 0
-v feda Broadcom Inc (nee Epigram) 0
-d fedaa0fa BCM4210 iLine10 HomePNA 2.0 0
-d fedaa10e BCM4230 iLine10 HomePNA 2.0 0
+v feda Epigram Inc 0
+v feda Epigram Inc (Broadcom Inc) 1
+d fedaa0fa BCM4210 iLine10 HomePNA 2.0 1
+d fedaa10e BCM4230 iLine10 HomePNA 2.0 1
v fffe VMWare Inc 0
d fffe0710 Virtual SVGA 0
v ffff Illegal Vendor ID 0
diff --git a/src/video_out/libdha/pci.c b/src/video_out/libdha/pci.c
index b6281283a..1cc70b7aa 100644
--- a/src/video_out/libdha/pci.c
+++ b/src/video_out/libdha/pci.c
@@ -55,6 +55,11 @@
#include <errno.h>
#include <string.h>
#include <stdio.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include "kernelhelper/dhahelper.h"
+
#ifdef __unix__
#include <unistd.h>
#endif
@@ -507,7 +512,7 @@ static void identify_card(struct pci_config_reg *pcr)
}
/*main(int argc, char *argv[])*/
-int pci_scan(pciinfo_t *pci_list,unsigned *num_pci)
+static int __pci_scan(pciinfo_t *pci_list,unsigned *num_pci)
{
unsigned int idx;
struct pci_config_reg pcr;
@@ -704,11 +709,64 @@ int pci_scan(pciinfo_t *pci_list,unsigned *num_pci)
#endif
#endif
+int pci_scan(pciinfo_t *pci_list,unsigned *num_pci)
+{
+ int libdha_fd;
+ if ( (libdha_fd = open("/dev/dhahelper",O_RDWR)) < 0)
+ {
+ return __pci_scan(pci_list,num_pci);
+ }
+ else
+ {
+ dhahelper_pci_device_t pci_dev;
+ unsigned idx;
+ idx = 0;
+ while(ioctl(libdha_fd, DHAHELPER_PCI_FIND, &pci_dev)==0)
+ {
+ pci_list[idx].bus = pci_dev.bus;
+ pci_list[idx].card = pci_dev.card;
+ pci_list[idx].func = pci_dev.func;
+ pci_list[idx].vendor = pci_dev.vendor;
+ pci_list[idx].device = pci_dev.device;
+ pci_list[idx].base0 = pci_dev.base0?pci_dev.base0:0xFFFFFFFF;
+ pci_list[idx].base1 = pci_dev.base1?pci_dev.base1:0xFFFFFFFF;
+ pci_list[idx].base2 = pci_dev.base2?pci_dev.base2:0xFFFFFFFF;
+ pci_list[idx].baserom = pci_dev.baserom?pci_dev.baserom:0x000C0000;
+ pci_list[idx].base3 = pci_dev.base3?pci_dev.base3:0xFFFFFFFF;
+ pci_list[idx].base4 = pci_dev.base4?pci_dev.base4:0xFFFFFFFF;
+ pci_list[idx].base5 = pci_dev.base5?pci_dev.base5:0xFFFFFFFF;
+ pci_list[idx].irq = pci_dev.irq;
+ pci_list[idx].ipin = pci_dev.ipin;
+ pci_list[idx].gnt = pci_dev.gnt;
+ pci_list[idx].lat = pci_dev.lat;
+ idx++;
+ }
+ *num_pci=idx;
+ close(libdha_fd);
+ }
+ return 0;
+}
+
int pci_config_read(unsigned char bus, unsigned char dev, unsigned char func,
unsigned char cmd, int len, unsigned long *val)
{
int ret;
-
+ int dhahelper_fd;
+ if ( (dhahelper_fd = open("/dev/dhahelper",O_RDWR)) > 0)
+ {
+ int retval;
+ dhahelper_pci_config_t pcic;
+ pcic.operation = PCI_OP_READ;
+ pcic.bus = bus;
+ pcic.dev = dev;
+ pcic.func = func;
+ pcic.cmd = cmd;
+ pcic.size = len;
+ retval = ioctl(dhahelper_fd, DHAHELPER_PCI_CONFIG, &pcic);
+ close(dhahelper_fd);
+ *val = pcic.ret;
+ return retval;
+ }
ret = enable_app_io();
if (ret != 0)
return(ret);
@@ -737,6 +795,22 @@ int pci_config_write(unsigned char bus, unsigned char dev, unsigned char func,
{
int ret;
+ int dhahelper_fd;
+ if ( (dhahelper_fd = open("/dev/dhahelper",O_RDWR)) > 0)
+ {
+ int retval;
+ dhahelper_pci_config_t pcic;
+ pcic.operation = PCI_OP_WRITE;
+ pcic.bus = bus;
+ pcic.dev = dev;
+ pcic.func = func;
+ pcic.cmd = cmd;
+ pcic.size = len;
+ pcic.ret = val;
+ retval = ioctl(dhahelper_fd, DHAHELPER_PCI_CONFIG, &pcic);
+ close(dhahelper_fd);
+ return retval;
+ }
ret = enable_app_io();
if (ret != 0)
return ret;
diff --git a/src/video_out/libdha/sysdep/AsmMacros_powerpc.h b/src/video_out/libdha/sysdep/AsmMacros_powerpc.h
index cf678c9b8..2169c96b4 100644
--- a/src/video_out/libdha/sysdep/AsmMacros_powerpc.h
+++ b/src/video_out/libdha/sysdep/AsmMacros_powerpc.h
@@ -56,7 +56,11 @@ static __inline__ unsigned long inl(short port)
#define intr_enable()
#else
-#include "sysdep/AsmMacros_generic.h"
+ #ifdef linux
+ /*nothing*/
+ #else
+ #include "sysdep/AsmMacros_generic.h"
+ #endif
#endif
#endif
diff --git a/src/video_out/libdha/sysdep/pci_linux.c b/src/video_out/libdha/sysdep/pci_linux.c
index 6c0d6b42a..1d2116da6 100644
--- a/src/video_out/libdha/sysdep/pci_linux.c
+++ b/src/video_out/libdha/sysdep/pci_linux.c
@@ -20,6 +20,10 @@ int dhahelper_initialized = 0;
int dhahelper_fd = 0;
#endif
+#if defined(__sparc__) || defined(__powerpc__)
+#define iopl(x) (0)
+#endif
+
static __inline__ int enable_os_io(void)
{
#ifdef CONFIG_DHAHELPER
diff --git a/src/video_out/libdha/sysdep/pci_powerpc.c b/src/video_out/libdha/sysdep/pci_powerpc.c
index b2914d551..667b4db37 100644
--- a/src/video_out/libdha/sysdep/pci_powerpc.c
+++ b/src/video_out/libdha/sysdep/pci_powerpc.c
@@ -5,7 +5,6 @@
*/
static int pci_config_type( void ) { return 1; }
-
#ifdef linux
#include <fcntl.h>
#include <sys/io.h>
@@ -139,11 +138,8 @@ static void pci_config_write_long(
val = bswap_32(val);
sprintf(path,"/proc/bus/pci/%02d/%02x.0", bus, dev);
fd = open(path,O_RDONLY|O_SYNC);
- if (fd == -1) {
- retval=0;
- }
- else pwrite(fd, &val, 4, cmd);
if (fd > 0) {
+ pwrite(fd, &val, 4, cmd);
close(fd);
}
}
@@ -160,14 +156,10 @@ static void pci_config_write_word(
val = bswap_16(val);
sprintf(path,"/proc/bus/pci/%02d/%02x.0", bus, dev);
fd = open(path,O_RDONLY|O_SYNC);
- if (fd == -1) {
- retval=0;
- }
- else pwrite(fd, &val, 2, cmd);
if (fd > 0) {
+ pwrite(fd, &val, 2, cmd);
close(fd);
}
- return retval;
}
static void pci_config_write_byte(
@@ -181,14 +173,10 @@ static void pci_config_write_byte(
int fd;
sprintf(path,"/proc/bus/pci/%02d/%02x.0", bus, dev);
fd = open(path,O_RDONLY|O_SYNC);
- if (fd == -1) {
- retval=0;
- }
- else pwrite(fd, &retval, 1, cmd);
if (fd > 0) {
+ pwrite(fd, &val, 1, cmd);
close(fd);
}
- return retval;
}
#else
static long pci_config_read_long(
diff --git a/src/video_out/libdha/test.c b/src/video_out/libdha/test.c
index 6026927ba..857e739c6 100644
--- a/src/video_out/libdha/test.c
+++ b/src/video_out/libdha/test.c
@@ -3,6 +3,7 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
+#include <inttypes.h> /* for __WORDSIZE */
int main( void )
{
@@ -19,7 +20,11 @@ int main( void )
{
printf(" Bus:card:func vend:dev base0 :base1 :base2 :baserom :irq:pin:gnt:lat\n");
for(i=0;i<num_pci;i++)
+#if __WORDSIZE > 32
+ printf("%04X:%04X:%04X %04X:%04X %16X:%16X:%16X:%16X:%02X :%02X :%02X :%02X\n"
+#else
printf("%04X:%04X:%04X %04X:%04X %08X:%08X:%08X:%08X:%02X :%02X :%02X :%02X\n"
+#endif
,lst[i].bus,lst[i].card,lst[i].func
,lst[i].vendor,lst[i].device
,lst[i].base0,lst[i].base1,lst[i].base2,lst[i].baserom
diff --git a/src/video_out/vidix/drivers/mach64_vid.c b/src/video_out/vidix/drivers/mach64_vid.c
index 746af5865..0f965234f 100644
--- a/src/video_out/vidix/drivers/mach64_vid.c
+++ b/src/video_out/vidix/drivers/mach64_vid.c
@@ -523,6 +523,7 @@ typedef struct saved_regs_s
uint32_t overlay_graphics_key_clr;
uint32_t overlay_graphics_key_msk;
uint32_t overlay_key_cntl;
+ uint32_t bus_cntl;
}saved_regs_t;
static saved_regs_t savreg;
@@ -534,6 +535,7 @@ static void save_regs( void )
savreg.overlay_graphics_key_clr = INREG(OVERLAY_GRAPHICS_KEY_CLR);
savreg.overlay_graphics_key_msk = INREG(OVERLAY_GRAPHICS_KEY_MSK);
savreg.overlay_key_cntl = INREG(OVERLAY_KEY_CNTL);
+ savreg.bus_cntl = INREG(BUS_CNTL);
}
static void restore_regs( void )
@@ -544,15 +546,16 @@ static void restore_regs( void )
OUTREG(OVERLAY_GRAPHICS_KEY_CLR,savreg.overlay_graphics_key_clr);
OUTREG(OVERLAY_GRAPHICS_KEY_MSK,savreg.overlay_graphics_key_msk);
OUTREG(OVERLAY_KEY_CNTL,savreg.overlay_key_cntl);
+ OUTREG(BUS_CNTL,savreg.bus_cntl|BUS_MASTER_DIS);
}
-static int forced_irq=UINT_MAX;
+static int forced_irq=INT_MAX;
static int can_use_irq=0;
static int irq_installed=0;
static void init_irq(void)
{
irq_installed=1;
- if(forced_irq != UINT_MAX) pci_info.irq=forced_irq;
+ if(forced_irq != INT_MAX) pci_info.irq=forced_irq;
if(hwirq_install(pci_info.bus,pci_info.card,pci_info.func,
2,CRTC_INT_CNTL,CRTC_BUSMASTER_EOL_INT) == 0)
{
@@ -976,6 +979,8 @@ for(i=0; i<32; i++){
tmp = config->offset.u;
config->offset.u = config->offset.v;
config->offset.v = tmp;
+ src_offset_u=config->offset.u;
+ src_offset_v=config->offset.v;
}
}
else if(besr.fourcc == IMGFMT_YVU9)
@@ -1326,7 +1331,7 @@ static int mach64_transfer_frame( unsigned long ba_dma_desc,int sync_mode )
{
uint32_t crtc_int;
mach64_wait_for_idle();
- mach64_fifo_wait(10);
+ mach64_fifo_wait(4);
OUTREG(BUS_CNTL,(INREG(BUS_CNTL)|BUS_EXT_REG_EN)&(~BUS_MASTER_DIS));
crtc_int = INREG(CRTC_INT_CNTL);
if(sync_mode && can_use_irq) OUTREG(CRTC_INT_CNTL,crtc_int|CRTC_BUSMASTER_EOL_INT|CRTC_BUSMASTER_EOL_INT_EN);
@@ -1351,6 +1356,8 @@ int VIDIX_NAME(vixQueryDMAStatus)( void )
{
int bm_off;
unsigned crtc_int_cntl;
+ mach64_wait_for_idle();
+ mach64_fifo_wait(2);
crtc_int_cntl = INREG(CRTC_INT_CNTL);
bm_off = crtc_int_cntl & CRTC_BUSMASTER_EOL_INT;
// if(bm_off) OUTREG(CRTC_INT_CNTL,crtc_int_cntl | CRTC_BUSMASTER_EOL_INT);
diff --git a/src/video_out/vidix/drivers/mga_vid.c b/src/video_out/vidix/drivers/mga_vid.c
index 43eab455a..6e28ae4ce 100644
--- a/src/video_out/vidix/drivers/mga_vid.c
+++ b/src/video_out/vidix/drivers/mga_vid.c
@@ -1361,7 +1361,7 @@ int VIDIX_NAME(vixInit)(const char *args)
}
}
- if (mga_verbose > 1) printf(MGA_MSG" hardware addresses: mmio: 0x%x, framebuffer: 0x%x\n",
+ if (mga_verbose > 1) printf(MGA_MSG" hardware addresses: mmio: 0x%lx, framebuffer: 0x%lx\n",
pci_info.base1, pci_info.base0);
mga_mmio_base = map_phys_mem(pci_info.base1,0x4000);
diff --git a/src/video_out/vidix/drivers/pm3_vid.c b/src/video_out/vidix/drivers/pm3_vid.c
index 20b35a14a..375e28b9c 100644
--- a/src/video_out/vidix/drivers/pm3_vid.c
+++ b/src/video_out/vidix/drivers/pm3_vid.c
@@ -1,7 +1,7 @@
/**
Driver for 3DLabs GLINT R3 and Permedia3 chips.
- Copyright (C) 2002 Måns Rullgård
+ Copyright (C) 2002, 2003 Måns Rullgård
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -58,6 +58,8 @@ static int pm3_vidmem = PM3_VIDMEM;
static int pm3_blank = 0;
static int pm3_dma = 0;
+static int pm3_ckey_red, pm3_ckey_green, pm3_ckey_blue;
+
static u_int page_size;
static vidix_capability_t pm3_cap =
@@ -145,43 +147,57 @@ int VIDIX_NAME(vixProbe)(int verbose, int force)
int VIDIX_NAME(vixInit)(const char *args)
{
- char *ac = strdup(args), *s, *opt;
+ if(args != NULL){
+ char *ac = strdup(args), *s, *opt;
- opt = strtok_r(ac, ",", &s);
- while(opt){
- char *a = strchr(opt, '=');
+ opt = strtok_r(ac, ",", &s);
+ while(opt){
+ char *a = strchr(opt, '=');
- if(a)
- *a++ = 0;
- if(!strcmp(opt, "mem")){
if(a)
- pm3_vidmem = strtol(a, NULL, 0);
- } else if(!strcmp(opt, "blank")){
- pm3_blank = a? strtol(a, NULL, 0): 1;
+ *a++ = 0;
+ if(!strcmp(opt, "mem")){
+ if(a)
+ pm3_vidmem = strtol(a, NULL, 0);
+ } else if(!strcmp(opt, "blank")){
+ pm3_blank = a? strtol(a, NULL, 0): 1;
+ }
+
+ opt = strtok_r(NULL, ",", &s);
}
- opt = strtok_r(NULL, ",", &s);
+ free(ac);
}
- free(ac);
-
pm3_reg_base = map_phys_mem(pci_info.base0, 0x20000);
pm3_mem = map_phys_mem(pci_info.base1, 0x2000000);
if(bm_open() == 0){
- printf(PM3_MSG" Using DMA.\n");
- pm3_cap.flags |= FLAG_DMA;
+ fprintf(stderr, PM3_MSG" DMA available.\n");
+ pm3_cap.flags |= FLAG_DMA | FLAG_SYNC_DMA;
page_size = sysconf(_SC_PAGESIZE);
hwirq_install(pci_info.bus, pci_info.card, pci_info.func,
0, PM3IntFlags, -1);
+ WRITE_REG(PM3IntEnable, (1 << 7));
pm3_dma = 1;
}
+ RAMDAC_GET_REG(PM3RD_VideoOverlayKeyR, pm3_ckey_red);
+ RAMDAC_GET_REG(PM3RD_VideoOverlayKeyG, pm3_ckey_green);
+ RAMDAC_GET_REG(PM3RD_VideoOverlayKeyB, pm3_ckey_blue);
+
return 0;
}
void VIDIX_NAME(vixDestroy)(void)
{
+ if(pm3_dma)
+ WRITE_REG(PM3IntEnable, 0);
+
+ RAMDAC_SET_REG(PM3RD_VideoOverlayKeyR, pm3_ckey_red);
+ RAMDAC_SET_REG(PM3RD_VideoOverlayKeyG, pm3_ckey_green);
+ RAMDAC_SET_REG(PM3RD_VideoOverlayKeyB, pm3_ckey_blue);
+
unmap_phys_mem(pm3_reg_base, 0x20000);
unmap_phys_mem(pm3_mem, 0x2000000);
hwirq_uninstall(pci_info.bus, pci_info.card, pci_info.func);
@@ -222,7 +238,8 @@ int VIDIX_NAME(vixQueryFourcc)(vidix_fourcc_t *to)
}
static int frames[VID_PLAY_MAXFRAMES], vid_base;
-static long overlay_mode, overlay_control, video_control, int_enable;
+static int overlay_mode, overlay_control, video_control, int_enable;
+static int rdoverlay_mode;
static int src_w, drw_w;
static int src_h, drw_h;
static int drw_x, drw_y;
@@ -289,6 +306,7 @@ pm3_setup_overlay(vidix_playback_t *info)
compute_scale_factor(&sw, &drw_w, &shrink, &zoom);
+ WAIT_FIFO(9);
WRITE_REG(PM3VideoOverlayBase0, vid_base >> 1);
WRITE_REG(PM3VideoOverlayStride, PM3VideoOverlayStride_STRIDE(src_w));
WRITE_REG(PM3VideoOverlayWidth, PM3VideoOverlayWidth_WIDTH(sw));
@@ -326,10 +344,6 @@ pm3_setup_overlay(vidix_playback_t *info)
RAMDAC_SET_REG(PM3RD_VideoOverlayYEndHigh,
((drw_y+drw_h) & 0xf00)>>8);
- RAMDAC_SET_REG(PM3RD_VideoOverlayKeyR, 0xff);
- RAMDAC_SET_REG(PM3RD_VideoOverlayKeyG, 0x00);
- RAMDAC_SET_REG(PM3RD_VideoOverlayKeyB, 0xff);
-
overlay_mode =
1 << 5 |
format |
@@ -339,11 +353,37 @@ pm3_setup_overlay(vidix_playback_t *info)
overlay_control =
PM3RD_VideoOverlayControl_KEY_COLOR |
- PM3RD_VideoOverlayControl_MODE_ALWAYS |
PM3RD_VideoOverlayControl_DIRECTCOLOR_ENABLED;
}
-int VIDIX_NAME(vixConfigPlayback)(vidix_playback_t *info)
+extern int
+VIDIX_NAME(vixSetGrKeys)(const vidix_grkey_t *key)
+{
+ if(key->ckey.op == CKEY_TRUE){
+ RAMDAC_SET_REG(PM3RD_VideoOverlayKeyR, key->ckey.red);
+ RAMDAC_SET_REG(PM3RD_VideoOverlayKeyG, key->ckey.green);
+ RAMDAC_SET_REG(PM3RD_VideoOverlayKeyB, key->ckey.blue);
+ rdoverlay_mode = PM3RD_VideoOverlayControl_MODE_MAINKEY;
+ } else {
+ rdoverlay_mode = PM3RD_VideoOverlayControl_MODE_ALWAYS;
+ }
+ RAMDAC_SET_REG(PM3RD_VideoOverlayControl,
+ overlay_control | rdoverlay_mode);
+
+ return 0;
+}
+
+extern int
+VIDIX_NAME(vixGetGrKeys)(vidix_grkey_t *key)
+{
+ RAMDAC_GET_REG(PM3RD_VideoOverlayKeyR, key->ckey.red);
+ RAMDAC_GET_REG(PM3RD_VideoOverlayKeyG, key->ckey.green);
+ RAMDAC_GET_REG(PM3RD_VideoOverlayKeyB, key->ckey.blue);
+ return 0;
+}
+
+extern int
+VIDIX_NAME(vixConfigPlayback)(vidix_playback_t *info)
{
unsigned int i;
u_int frame_size;
@@ -403,10 +443,10 @@ int VIDIX_NAME(vixPlaybackOn)(void)
WRITE_REG(PM3VideoOverlayMode,
overlay_mode | PM3VideoOverlayMode_ENABLE);
+ overlay_control |= PM3RD_VideoOverlayControl_ENABLE;
RAMDAC_SET_REG(PM3RD_VideoOverlayControl,
- overlay_control | PM3RD_VideoOverlayControl_ENABLE);
- WRITE_REG(PM3VideoOverlayUpdate,
- PM3VideoOverlayUpdate_ENABLE);
+ overlay_control | rdoverlay_mode);
+ WRITE_REG(PM3VideoOverlayUpdate, PM3VideoOverlayUpdate_ENABLE);
if(pm3_blank)
WRITE_REG(PM3VideoControl,
@@ -418,20 +458,15 @@ int VIDIX_NAME(vixPlaybackOn)(void)
int VIDIX_NAME(vixPlaybackOff)(void)
{
+ overlay_control &= ~PM3RD_VideoOverlayControl_ENABLE;
RAMDAC_SET_REG(PM3RD_VideoOverlayControl,
PM3RD_VideoOverlayControl_DISABLE);
WRITE_REG(PM3VideoOverlayMode,
PM3VideoOverlayMode_DISABLE);
- RAMDAC_SET_REG(PM3RD_VideoOverlayKeyR, 0x01);
- RAMDAC_SET_REG(PM3RD_VideoOverlayKeyG, 0x01);
- RAMDAC_SET_REG(PM3RD_VideoOverlayKeyB, 0xfe);
-
if(video_control)
- WRITE_REG(PM3VideoControl, video_control);
-
- if(pm3_dma)
- WRITE_REG(PM3IntEnable, 0);
+ WRITE_REG(PM3VideoControl,
+ video_control & ~PM3VideoControl_DISPLAY_ENABLE);
return 0;
}
@@ -457,11 +492,10 @@ struct pm3_bydma_frame {
};
static struct pm3_bydma_frame *
-pm3_setup_bydma(vidix_dma_t *dma)
+pm3_setup_bydma(vidix_dma_t *dma, struct pm3_bydma_frame *bdf)
{
u_int size = dma->size;
u_int pages = (size + page_size-1) / page_size;
- struct pm3_bydma_frame *bdf;
long baddr[pages];
u_int i;
uint32_t dest;
@@ -469,8 +503,13 @@ pm3_setup_bydma(vidix_dma_t *dma)
if(bm_virt_to_bus(dma->src, dma->size, baddr))
return NULL;
- bdf = malloc(sizeof(*bdf));
- bdf->cmds = valloc(pages * sizeof(struct pm3_bydma_cmd));
+ if(!bdf){
+ bdf = malloc(sizeof(*bdf));
+ bdf->cmds = valloc(pages * sizeof(struct pm3_bydma_cmd));
+ if(dma->flags & BM_DMA_FIXED_BUFFS){
+ mlock(bdf->cmds, page_size);
+ }
+ }
dest = vid_base + dma->dest_offset;
for(i = 0; i < pages; i++, dest += page_size, size -= page_size){
@@ -496,27 +535,19 @@ VIDIX_NAME(vixPlaybackCopyFrame)(vidix_dma_t *dma)
{
u_int frame = dma->idx;
struct pm3_bydma_frame *bdf;
+ static int s = 0;
- if(dma->internal[frame]){
- bdf = dma->internal[frame];
- } else {
- if(!(bdf = pm3_setup_bydma(dma))){
- return -1;
- } else if(dma->flags & BM_DMA_FIXED_BUFFS){
- if(mlock(bdf->cmds, page_size) == 0){
- dma->internal[frame] = bdf;
- } else {
- printf(PM3_MSG" Can't lock page @ %p\n", bdf->cmds);
- }
- }
- }
+ bdf = dma->internal[frame];
+ if(!bdf || !(dma->flags & BM_DMA_FIXED_BUFFS))
+ bdf = pm3_setup_bydma(dma, bdf);
+ if(!bdf)
+ return -1;
+
+ if(!dma->internal[frame])
+ dma->internal[frame] = bdf;
if(dma->flags & BM_DMA_SYNC){
- WRITE_REG(PM3IntEnable, (1 << 7));
- while(READ_REG(PM3ByDMAReadMode) & PM3ByDMAReadMode_Active){
- hwirq_wait(pci_info.irq);
- }
- WRITE_REG(PM3IntEnable, 0);
+ hwirq_wait(pci_info.irq);
}
WAIT_FIFO(3);
@@ -530,6 +561,10 @@ VIDIX_NAME(vixPlaybackCopyFrame)(vidix_dma_t *dma)
PM3ByDMAReadMode_Burst(7) |
PM3ByDMAReadMode_Align);
+ if(dma->flags & BM_DMA_BLOCK){
+ hwirq_wait(pci_info.irq);
+ }
+
return 0;
}
diff --git a/src/video_out/vidix/drivers/radeon_vid.c b/src/video_out/vidix/drivers/radeon_vid.c
index 528f513e2..d53e1acf7 100644
--- a/src/video_out/vidix/drivers/radeon_vid.c
+++ b/src/video_out/vidix/drivers/radeon_vid.c
@@ -26,7 +26,7 @@
#define X_ADJUST 0
#else
#define RADEON_MSG "radeon_vid:"
-#define X_ADJUST (is_shift_required ? 8 : 0)
+#define X_ADJUST (((besr.chip_flags&R_OVL_SHIFT)==R_OVL_SHIFT)?8:0)
#ifndef RADEON
#define RADEON
#endif
@@ -60,9 +60,6 @@ typedef struct
#define VERBOSE_LEVEL 0
static int __verbose = 0;
-#ifndef RAGE128
-static int is_shift_required=0;
-#endif
typedef struct bes_registers_s
{
/* base address of yuv framebuffer */
@@ -117,7 +114,7 @@ typedef struct bes_registers_s
int deinterlace_on;
uint32_t deinterlace_pattern;
-
+ unsigned chip_flags;
} bes_registers_t;
typedef struct video_registers_s
@@ -128,9 +125,6 @@ typedef struct video_registers_s
}video_registers_t;
static bes_registers_t besr;
-#ifndef RAGE128
-static int RadeonFamily=100;
-#endif
#define DECLARE_VREG(name) { #name, name, 0 }
static video_registers_t vregs[] =
{
@@ -263,6 +257,163 @@ static video_registers_t vregs[] =
#endif
};
+#define R_FAMILY 0x000000FF
+#define R_100 0x00000001
+#define R_120 0x00000002
+#define R_150 0x00000003
+#define R_200 0x00000004
+#define R_250 0x00000005
+#define R_280 0x00000006
+#define R_300 0x00000007
+#define R_350 0x00000008
+#define R_OVL_SHIFT 0x00000100
+#define R_INTEGRATED 0x00000200
+
+typedef struct ati_card_ids_s
+{
+ unsigned short id;
+ unsigned flags;
+}ati_card_ids_t;
+
+static const ati_card_ids_t ati_card_ids[] =
+{
+#ifdef RAGE128
+ /*
+ This driver should be compatible with Rage128 (pro) chips.
+ (include adaptive deinterlacing!!!).
+ Moreover: the same logic can be used with Mach64 chips.
+ (I mean: mach64xx, 3d rage, 3d rage IIc, 3D rage pro, 3d rage mobility).
+ but they are incompatible by i/o ports. So if enthusiasts will want
+ then they can redefine OUTREG and INREG macros and redefine OV0_*
+ constants. Also it seems that mach64 chips supports only: YUY2, YV12, UYVY
+ fourccs (422 and 420 formats only).
+ */
+/* Rage128 Pro GL */
+ { DEVICE_ATI_RAGE_128_PA_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PB_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PC_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PD_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PE_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PF_PRO, 0 },
+/* Rage128 Pro VR */
+ { DEVICE_ATI_RAGE_128_PG_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PH_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PI_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PJ_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PK_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PL_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PM_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PN_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PO_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PP_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PQ_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PR_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PS_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PT_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PU_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PV_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PW_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PX_PRO, 0 },
+/* Rage128 GL */
+ { DEVICE_ATI_RAGE_128_RE_SG, 0 },
+ { DEVICE_ATI_RAGE_128_RF_SG, 0 },
+ { DEVICE_ATI_RAGE_128_RG, 0 },
+ { DEVICE_ATI_RAGE_128_RK_VR, 0 },
+ { DEVICE_ATI_RAGE_128_RL_VR, 0 },
+ { DEVICE_ATI_RAGE_128_SE_4X, 0 },
+ { DEVICE_ATI_RAGE_128_SF_4X, 0 },
+ { DEVICE_ATI_RAGE_128_SG_4X, 0 },
+ { DEVICE_ATI_RAGE_128_SH, 0 },
+ { DEVICE_ATI_RAGE_128_SK_4X, 0 },
+ { DEVICE_ATI_RAGE_128_SL_4X, 0 },
+ { DEVICE_ATI_RAGE_128_SM_4X, 0 },
+ { DEVICE_ATI_RAGE_128_4X, 0 },
+ { DEVICE_ATI_RAGE_128_PRO, 0 },
+ { DEVICE_ATI_RAGE_128_PRO2, 0 },
+ { DEVICE_ATI_RAGE_128_PRO3, 0 },
+/* these seem to be based on rage 128 instead of mach64 */
+ { DEVICE_ATI_RAGE_MOBILITY_M3, 0 },
+ { DEVICE_ATI_RAGE_MOBILITY_M32, 0 },
+#else
+/* Radeon1 (indeed: Rage 256 Pro ;) */
+ { DEVICE_ATI_RADEON_R100_QD, R_100|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_R100_QE, R_100|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_R100_QF, R_100|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_R100_QG, R_100|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_RS100_IGP320, R_150|R_OVL_SHIFT|R_INTEGRATED },
+ { DEVICE_ATI_RADEON_RS100_MOBILITY, R_150|R_OVL_SHIFT|R_INTEGRATED },
+ { DEVICE_ATI_RADEON_VE_QY, R_120|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_VE_QZ, R_120|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_MOBILITY_M7, R_150|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_MOBILITY_M72, R_150|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_MOBILITY_M6, R_120|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_MOBILITY_M62, R_120|R_OVL_SHIFT },
+/* Radeon2 (indeed: Rage 512 Pro ;) */
+ { DEVICE_ATI_RADEON_R200_BB, R_200 },
+ { DEVICE_ATI_RADEON_R200_QH, R_200 },
+ { DEVICE_ATI_RADEON_R200_QI, R_200 },
+ { DEVICE_ATI_RADEON_R200_QJ, R_200 },
+ { DEVICE_ATI_RADEON_R200_QK, R_200 },
+ { DEVICE_ATI_RADEON_R200_QL, R_200 },
+ { DEVICE_ATI_RADEON_R200_QM, R_200 },
+ { DEVICE_ATI_RADEON_R200_QN, R_200 },
+ { DEVICE_ATI_RADEON_R200_QO, R_200 },
+ { DEVICE_ATI_RADEON_R200_QH2, R_200 },
+ { DEVICE_ATI_RADEON_R200_QI2, R_200 },
+ { DEVICE_ATI_RADEON_R200_QJ2, R_200 },
+ { DEVICE_ATI_RADEON_R200_QK2, R_200 },
+ { DEVICE_ATI_RADEON_R200_QL2, R_200 },
+ { DEVICE_ATI_RADEON_RV200_QW, R_150|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_RV200_QX, R_150|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_RS200_IGP330_340_350,R_200|R_INTEGRATED },
+ { DEVICE_ATI_RADEON_RS200_MOBILITY, R_200|R_INTEGRATED },
+ { DEVICE_ATI_RADEON_R250_IG, R_250|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_RS250_7000, R_250|R_OVL_SHIFT|R_INTEGRATED },
+ { DEVICE_ATI_RADEON_RS250_MOBILITY, R_250|R_OVL_SHIFT|R_INTEGRATED },
+ { DEVICE_ATI_RADEON_RV250_ID, R_250|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_RV250_IE, R_250|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_RV250_IF, R_250|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_RV250_IG, R_250|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_RV250_LD, R_250|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_RV250_LE, R_250|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_RV250_LF, R_250|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_RV250_LG, R_250|R_OVL_SHIFT },
+ { DEVICE_ATI_RADEON_RV280_9200, R_280 },
+ { DEVICE_ATI_RADEON_RV280_92002, R_280 },
+ { DEVICE_ATI_RADEON_RV280_92003, R_280 },
+ { DEVICE_ATI_RADEON_RV280_92004, R_280 },
+ { DEVICE_ATI_RADEON_RV280_M9, R_280 },
+ { DEVICE_ATI_RADEON_RV280_M92, R_280 },
+ { DEVICE_ATI_RADEON_RV280_M93, R_280 },
+ { DEVICE_ATI_RADEON_RV280_M94, R_280 },
+/* Radeon3 (indeed: Rage 1024 Pro ;) */
+ { DEVICE_ATI_RADEON_R300, R_300 },
+ { DEVICE_ATI_RADEON_R300_ND, R_300 },
+ { DEVICE_ATI_RADEON_R300_NE, R_300 },
+ { DEVICE_ATI_RADEON_R300_NF, R_300 },
+ { DEVICE_ATI_RADEON_R300_NG, R_300 },
+ { DEVICE_ATI_RADEON_RV300_9500, R_300 },
+ { DEVICE_ATI_RADEON_RV300_95002, R_300 },
+ { DEVICE_ATI_RADEON_RV300_95003, R_300 },
+ { DEVICE_ATI_RADEON_RS300_9000, R_300|R_INTEGRATED },
+ { DEVICE_ATI_RADEON_RS300_MOBILITY, R_300|R_INTEGRATED },
+ { DEVICE_ATI_RADEON_RS300_5836, R_300|R_INTEGRATED },
+ { DEVICE_ATI_RADEON_RS300_5837, R_300|R_INTEGRATED },
+ { DEVICE_ATI_RADEON_R350, R_350 },
+ { DEVICE_ATI_RADEON_R3502, R_350 },
+ { DEVICE_ATI_RADEON_R3503, R_350 },
+ { DEVICE_ATI_RADEON_R3504, R_350 },
+ { DEVICE_ATI_RADEON_R350_NH, R_350 },
+ { DEVICE_ATI_RADEON_R350_NI, R_350 },
+ { DEVICE_ATI_RADEON_R350_NJ, R_350 },
+ { DEVICE_ATI_RADEON_R350_NK, R_350 },
+ { DEVICE_ATI_RADEON_RV350_9600, R_350 },
+ { DEVICE_ATI_RADEON_RV350_9600PRO, R_350 },
+ { DEVICE_ATI_RADEON_RV350_NP, R_350 }
+#endif
+};
+
+
static void * radeon_mmio_base = 0;
static void * radeon_mem_base = 0;
static int32_t radeon_overlay_off = 0;
@@ -765,7 +916,9 @@ GAMMA_SETTINGS r100_def_gamma[6] =
static void make_default_gamma_correction( void )
{
size_t i;
- if(RadeonFamily == 100){
+ if((besr.chip_flags & R_100)==R_100||
+ (besr.chip_flags & R_120)==R_120||
+ (besr.chip_flags & R_150)==R_150){
OUTREG(OV0_LIN_TRANS_A, 0x12A00000);
OUTREG(OV0_LIN_TRANS_B, 0x199018FE);
OUTREG(OV0_LIN_TRANS_C, 0x12A0F9B0);
@@ -818,110 +971,13 @@ static void radeon_vid_make_default(void)
unsigned VIDIX_NAME(vixGetVersion)( void ) { return VIDIX_VERSION; }
-static unsigned short ati_card_ids[] =
-{
-#ifdef RAGE128
- /*
- This driver should be compatible with Rage128 (pro) chips.
- (include adaptive deinterlacing!!!).
- Moreover: the same logic can be used with Mach64 chips.
- (I mean: mach64xx, 3d rage, 3d rage IIc, 3D rage pro, 3d rage mobility).
- but they are incompatible by i/o ports. So if enthusiasts will want
- then they can redefine OUTREG and INREG macros and redefine OV0_*
- constants. Also it seems that mach64 chips supports only: YUY2, YV12, UYVY
- fourccs (422 and 420 formats only).
- */
-/* Rage128 Pro GL */
- DEVICE_ATI_RAGE_128_PA_PRO,
- DEVICE_ATI_RAGE_128_PB_PRO,
- DEVICE_ATI_RAGE_128_PC_PRO,
- DEVICE_ATI_RAGE_128_PD_PRO,
- DEVICE_ATI_RAGE_128_PE_PRO,
- DEVICE_ATI_RAGE_128_PF_PRO,
-/* Rage128 Pro VR */
- DEVICE_ATI_RAGE_128_PG_PRO,
- DEVICE_ATI_RAGE_128_PH_PRO,
- DEVICE_ATI_RAGE_128_PI_PRO,
- DEVICE_ATI_RAGE_128_PJ_PRO,
- DEVICE_ATI_RAGE_128_PK_PRO,
- DEVICE_ATI_RAGE_128_PL_PRO,
- DEVICE_ATI_RAGE_128_PM_PRO,
- DEVICE_ATI_RAGE_128_PN_PRO,
- DEVICE_ATI_RAGE_128_PO_PRO,
- DEVICE_ATI_RAGE_128_PP_PRO,
- DEVICE_ATI_RAGE_128_PQ_PRO,
- DEVICE_ATI_RAGE_128_PR_PRO,
- DEVICE_ATI_RAGE_128_PS_PRO,
- DEVICE_ATI_RAGE_128_PT_PRO,
- DEVICE_ATI_RAGE_128_PU_PRO,
- DEVICE_ATI_RAGE_128_PV_PRO,
- DEVICE_ATI_RAGE_128_PW_PRO,
- DEVICE_ATI_RAGE_128_PX_PRO,
-/* Rage128 GL */
- DEVICE_ATI_RAGE_128_RE_SG,
- DEVICE_ATI_RAGE_128_RF_SG,
- DEVICE_ATI_RAGE_128_RG,
- DEVICE_ATI_RAGE_128_RK_VR,
- DEVICE_ATI_RAGE_128_RL_VR,
- DEVICE_ATI_RAGE_128_SE_4X,
- DEVICE_ATI_RAGE_128_SF_4X,
- DEVICE_ATI_RAGE_128_SG_4X,
- DEVICE_ATI_RAGE_128_SH,
- DEVICE_ATI_RAGE_128_SK_4X,
- DEVICE_ATI_RAGE_128_SL_4X,
- DEVICE_ATI_RAGE_128_SM_4X,
- DEVICE_ATI_RAGE_128_4X,
- DEVICE_ATI_RAGE_128_PRO,
- DEVICE_ATI_RAGE_128_PRO2,
- DEVICE_ATI_RAGE_128_PRO3,
-/* these seem to be based on rage 128 instead of mach64 */
- DEVICE_ATI_RAGE_MOBILITY_M3,
- DEVICE_ATI_RAGE_MOBILITY_M32
-#else
-/* Radeons (indeed: Rage 256 Pro ;) */
- DEVICE_ATI_RADEON_R100_QD,
- DEVICE_ATI_RADEON_R100_QE,
- DEVICE_ATI_RADEON_R100_QF,
- DEVICE_ATI_RADEON_R100_QG,
- DEVICE_ATI_RADEON_VE_QY,
- DEVICE_ATI_RADEON_VE_QZ,
- DEVICE_ATI_RADEON_MOBILITY_M7,
- DEVICE_ATI_RADEON_MOBILITY_M72,
- DEVICE_ATI_RADEON_MOBILITY_M6,
- DEVICE_ATI_RADEON_MOBILITY_M62,
- DEVICE_ATI_RADEON_R200_BB,
- DEVICE_ATI_RADEON_R200_QH,
- DEVICE_ATI_RADEON_R200_QI,
- DEVICE_ATI_RADEON_R200_QJ,
- DEVICE_ATI_RADEON_R200_QK,
- DEVICE_ATI_RADEON_R200_QL,
- DEVICE_ATI_RADEON_R200_QH2,
- DEVICE_ATI_RADEON_R200_QI2,
- DEVICE_ATI_RADEON_R200_QJ2,
- DEVICE_ATI_RADEON_R200_QK2,
- DEVICE_ATI_RADEON_RV200_QW,
- DEVICE_ATI_RADEON_RV200_QX,
- DEVICE_ATI_RADEON_R250_ID,
- DEVICE_ATI_RADEON_R250_IE,
- DEVICE_ATI_RADEON_R250_IF,
- DEVICE_ATI_RADEON_R250_IG,
- DEVICE_ATI_RADEON_R250_LD,
- DEVICE_ATI_RADEON_R250_LE,
- DEVICE_ATI_RADEON_R250_LF,
- DEVICE_ATI_RADEON_R250_LG,
- DEVICE_ATI_RADEON_R300_ND,
- DEVICE_ATI_RADEON_R300_NE,
- DEVICE_ATI_RADEON_R300_NF,
- DEVICE_ATI_RADEON_R300_NG
-#endif
-};
static int find_chip(unsigned chip_id)
{
unsigned i;
for(i = 0;i < sizeof(ati_card_ids)/sizeof(unsigned short);i++)
{
- if(chip_id == ati_card_ids[i]) return i;
+ if(chip_id == ati_card_ids[i].id) return i;
}
return -1;
}
@@ -977,72 +1033,7 @@ int VIDIX_NAME(vixProbe)( int verbose,int force )
dname = pci_device_name(VENDOR_ATI,lst[i].device);
dname = dname ? dname : "Unknown chip";
printf(RADEON_MSG" Found chip: %s\n",dname);
-#ifndef RAGE128
- if(idx != -1)
- {
- switch(ati_card_ids[idx]) {
- /* Original radeon */
- case DEVICE_ATI_RADEON_R100_QD:
- case DEVICE_ATI_RADEON_R100_QE:
- case DEVICE_ATI_RADEON_R100_QF:
- case DEVICE_ATI_RADEON_R100_QG:
- RadeonFamily = 100;
- break;
-
- /* Radeon VE / Radeon Mobility */
- case DEVICE_ATI_RADEON_VE_QY:
- case DEVICE_ATI_RADEON_VE_QZ:
- case DEVICE_ATI_RADEON_MOBILITY_M6:
- case DEVICE_ATI_RADEON_MOBILITY_M62:
- RadeonFamily = 120;
- break;
-
- /* Radeon 7500 / Radeon Mobility 7500 */
- case DEVICE_ATI_RADEON_RV200_QW:
- case DEVICE_ATI_RADEON_RV200_QX:
- case DEVICE_ATI_RADEON_MOBILITY_M7:
- case DEVICE_ATI_RADEON_MOBILITY_M72:
- RadeonFamily = 150;
- break;
-
- /* Radeon 8500 */
- case DEVICE_ATI_RADEON_R200_BB:
- case DEVICE_ATI_RADEON_R200_QH:
- case DEVICE_ATI_RADEON_R200_QI:
- case DEVICE_ATI_RADEON_R200_QJ:
- case DEVICE_ATI_RADEON_R200_QK:
- case DEVICE_ATI_RADEON_R200_QL:
- case DEVICE_ATI_RADEON_R200_QH2:
- case DEVICE_ATI_RADEON_R200_QI2:
- case DEVICE_ATI_RADEON_R200_QJ2:
- case DEVICE_ATI_RADEON_R200_QK2:
- RadeonFamily = 200;
- break;
-
- /* Radeon 9000 */
- case DEVICE_ATI_RADEON_R250_ID:
- case DEVICE_ATI_RADEON_R250_IE:
- case DEVICE_ATI_RADEON_R250_IF:
- case DEVICE_ATI_RADEON_R250_IG:
- case DEVICE_ATI_RADEON_R250_LD:
- case DEVICE_ATI_RADEON_R250_LE:
- case DEVICE_ATI_RADEON_R250_LF:
- case DEVICE_ATI_RADEON_R250_LG:
- RadeonFamily = 250;
- break;
-
- /* Radeon 9700 */
- case DEVICE_ATI_RADEON_R300_ND:
- case DEVICE_ATI_RADEON_R300_NE:
- case DEVICE_ATI_RADEON_R300_NF:
- case DEVICE_ATI_RADEON_R300_NG:
- RadeonFamily = 300;
- break;
- default:
- break;
- }
- }
-#endif
+ memset(&besr,0,sizeof(bes_registers_t));
if(force > PROBE_NORMAL)
{
printf(RADEON_MSG" Driver was forced. Was found %sknown chip\n",idx == -1 ? "un" : "");
@@ -1052,7 +1043,9 @@ int VIDIX_NAME(vixProbe)( int verbose,int force )
#else
printf(RADEON_MSG" Assuming it as Radeon1\n");
#endif
+ besr.chip_flags=R_100|R_OVL_SHIFT;
}
+ if(idx != -1) besr.chip_flags=ati_card_ids[idx].flags;
def_cap.device_id = lst[i].device;
err = 0;
memcpy(&pci_info,&lst[i],sizeof(pciinfo_t));
@@ -1206,7 +1199,6 @@ int VIDIX_NAME(vixInit)( const char *args )
}
#endif
if((radeon_mem_base = map_phys_mem(pci_info.base0,radeon_ram_size))==(void *)-1) return ENOMEM;
- memset(&besr,0,sizeof(bes_registers_t));
radeon_vid_make_default();
printf(RADEON_MSG" Video memory = %uMb\n",radeon_ram_size/0x100000);
err = mtrr_set_type(pci_info.base0,radeon_ram_size,MTRR_TYPE_WRCOMB);
@@ -1214,19 +1206,8 @@ int VIDIX_NAME(vixInit)( const char *args )
#ifndef RAGE128
{
memset(&rinfo,0,sizeof(rinfo_t));
- if(RadeonFamily > 100) rinfo.hasCRTC2 = 1;
+ if((besr.chip_flags&R_100) != R_100) rinfo.hasCRTC2 = 1;
- switch(RadeonFamily)
- {
- case 100:
- case 120:
- case 150:
- case 250:
- is_shift_required=1;
- break;
- default:
- break;
- }
radeon_get_moninfo(&rinfo);
if(rinfo.hasCRTC2) {
printf(RADEON_MSG" DVI port has %s monitor connected\n",GET_MON_NAME(rinfo.dviDispType));
@@ -2713,6 +2694,11 @@ static int radeon_vid_init_video( vidix_playback_t *config )
if(radeon_is_interlace()) interlace_factor = 2;
else interlace_factor = 1;
/* TODO: must be checked in doublescan mode!!! */
+ if((besr.chip_flags&R_INTEGRATED)==R_INTEGRATED)
+ {
+ /* Force the overlay clock on for integrated chips */
+ OUTPLL(VCLK_ECP_CNTL, (INPLL(VCLK_ECP_CNTL) | (1<<18)));
+ }
horz_repl_factor = 1 << (uint32_t)((INPLL(VCLK_ECP_CNTL) & 0x300) >> 8);
H_scale_ratio = (double)ceil(((double)dest_w+1)/horz_repl_factor)/src_w;
V_scale_ratio = (double)(dest_h+1)/src_h;
@@ -3244,8 +3230,8 @@ static void set_gr_key( void )
besr.graphics_key_msk=(1<<dbpp)-1;
besr.ckey_cntl = VIDEO_KEY_FN_TRUE|GRAPHIC_KEY_FN_NE|CMP_MIX_AND;
#else
- besr.graphics_key_msk=(0xFF<<24)|besr.graphics_key_clr;
- besr.ckey_cntl = VIDEO_KEY_FN_FALSE|GRAPHIC_KEY_FN_EQ|CMP_MIX_OR;
+ besr.graphics_key_msk=besr.graphics_key_clr;
+ besr.ckey_cntl = VIDEO_KEY_FN_TRUE|CMP_MIX_AND|GRAPHIC_KEY_FN_EQ;
#endif
}
else
diff --git a/src/video_out/vidix/fourcc.h b/src/video_out/vidix/fourcc.h
index 0c540f5da..891f0b6ff 100644
--- a/src/video_out/vidix/fourcc.h
+++ b/src/video_out/vidix/fourcc.h
@@ -60,6 +60,9 @@
#define IMGFMT_CLJR vid_fourcc('C','L','J','R') /* 7.9 YUV 4:1:1 */
#define IMGFMT_YUVP vid_fourcc('Y','U','V','P') /* 24 Y0U0Y1V0 */
#define IMGFMT_UYVP vid_fourcc('U','Y','V','P') /* 24 U0Y0V0Y1 */
+#define IMGFMT_411P vid_fourcc('4','1','1','P') /* 12 alias of Y41B */
+#define IMGFMT_422P vid_fourcc('4','2','2','P') /* 16 alias of Y42B */
+#define IMGFMT_444P vid_fourcc('4','4','4','P') /* 24 alias of Y44B */
/* Vendor-specific formats */
#define IMGFMT_WNVA vid_fourcc('W','N','V','A') /* Winnov hw compress */
diff --git a/src/video_out/vidix/vidix.h b/src/video_out/vidix/vidix.h
index 6e1104bb2..bcf6b4ae0 100644
--- a/src/video_out/vidix/vidix.h
+++ b/src/video_out/vidix/vidix.h
@@ -58,6 +58,10 @@ typedef struct vidix_capability_s
#define FLAG_NONE 0x00000000 /* No flags defined */
#define FLAG_DMA 0x00000001 /* Card can use DMA */
#define FLAG_EQ_DMA 0x00000002 /* Card can use DMA only if src pitch == dest pitch */
+#define FLAG_SYNC_DMA 0x00000004 /* Possible to wait for DMA
+ * to finish. See
+ * BM_DMA_SYNC and
+ * BM_DMA_BLOCK below */
#define FLAG_UPSCALER 0x00000010 /* Card supports hw upscaling */
#define FLAG_DOWNSCALER 0x00000020 /* Card supports hw downscaling */
#define FLAG_SUBPIC 0x00001000 /* Card supports DVD subpictures */
@@ -108,7 +112,7 @@ extern int vixQueryFourcc(vidix_fourcc_t *);
typedef struct vidix_yuv_s
{
- unsigned y,u,v;
+ unsigned y,u,v,a;
}vidix_yuv_t;
typedef struct vidix_rect_s
@@ -251,8 +255,9 @@ typedef struct vidix_dma_s
unsigned dest_offset; /* app -> driver. Destinition offset within of video memory */
unsigned size; /* app -> driver. Size of transaction */
#define BM_DMA_ASYNC 0
-#define BM_DMA_SYNC 1 /* means: wait dma transfer completion */
+#define BM_DMA_SYNC 1 /* await previous dma transfer completion */
#define BM_DMA_FIXED_BUFFS 2 /* app -> driver: app uses buffers which are fixed in memory */
+#define BM_DMA_BLOCK 4 /* block until the transfer is complete */
unsigned flags; /* app -> driver */
unsigned idx; /* app -> driver: idx of src buffer */
void * internal[VID_PLAY_MAXFRAMES]; /* for internal use by driver */
diff --git a/src/video_out/vidix/vidixlib.c b/src/video_out/vidix/vidixlib.c
index e43a68088..a513c9811 100644
--- a/src/video_out/vidix/vidixlib.c
+++ b/src/video_out/vidix/vidixlib.c
@@ -386,3 +386,95 @@ int vdlSetOemEffect(VDL_HANDLE handle, const vidix_oem_fx_t * f)
{
return t_vdl(handle)->set_fx ? t_vdl(handle)->set_fx(f) : ENOSYS;
}
+
+/* ABI related extensions */
+vidix_capability_t * vdlAllocCapabilityS( void )
+{
+ vidix_capability_t *retval;
+ retval=malloc(sizeof(vidix_capability_t));
+ if(retval) memset(retval,0,sizeof(vidix_capability_t));
+ return retval;
+}
+
+vidix_fourcc_t * vdlAllocFourccS( void )
+{
+ vidix_fourcc_t *retval;
+ retval=malloc(sizeof(vidix_fourcc_t));
+ if(retval) memset(retval,0,sizeof(vidix_fourcc_t));
+ return retval;
+}
+
+vidix_yuv_t * vdlAllocYUVS( void )
+{
+ vidix_yuv_t *retval;
+ retval=malloc(sizeof(vidix_yuv_t));
+ if(retval) memset(retval,0,sizeof(vidix_yuv_t));
+ return retval;
+}
+
+vidix_rect_t * vdlAllocRectS( void )
+{
+ vidix_rect_t *retval;
+ retval=malloc(sizeof(vidix_rect_t));
+ if(retval) memset(retval,0,sizeof(vidix_rect_t));
+ return retval;
+}
+
+vidix_playback_t * vdlAllocPlaybackS( void )
+{
+ vidix_playback_t *retval;
+ retval=malloc(sizeof(vidix_playback_t));
+ if(retval) memset(retval,0,sizeof(vidix_playback_t));
+ return retval;
+}
+
+vidix_grkey_t * vdlAllocGrKeyS( void )
+{
+ vidix_grkey_t *retval;
+ retval=malloc(sizeof(vidix_grkey_t));
+ if(retval) memset(retval,0,sizeof(vidix_grkey_t));
+ return retval;
+}
+
+vidix_video_eq_t * vdlAllocVideoEqS( void )
+{
+ vidix_video_eq_t *retval;
+ retval=malloc(sizeof(vidix_video_eq_t));
+ if(retval) memset(retval,0,sizeof(vidix_video_eq_t));
+ return retval;
+}
+
+vidix_deinterlace_t * vdlAllocDeinterlaceS( void )
+{
+ vidix_deinterlace_t *retval;
+ retval=malloc(sizeof(vidix_deinterlace_t));
+ if(retval) memset(retval,0,sizeof(vidix_deinterlace_t));
+ return retval;
+}
+
+vidix_dma_t * vdlAllocDmaS( void )
+{
+ vidix_dma_t *retval;
+ retval=malloc(sizeof(vidix_dma_t));
+ if(retval) memset(retval,0,sizeof(vidix_dma_t));
+ return retval;
+}
+
+vidix_oem_fx_t * vdlAllocOemFxS( void )
+{
+ vidix_oem_fx_t *retval;
+ retval=malloc(sizeof(vidix_oem_fx_t));
+ if(retval) memset(retval,0,sizeof(vidix_oem_fx_t));
+ return retval;
+}
+
+void vdlFreeCapabilityS(vidix_capability_t * _this) { free(_this); }
+void vdlFreeFourccS( vidix_fourcc_t * _this ) { free(_this); }
+void vdlFreePlaybackS( vidix_playback_t * _this ) { free(_this); }
+void vdlFreeYUVS( vidix_yuv_t * _this) { free(_this); }
+void vdlFreeRectS( vidix_rect_t * _this) { free(_this); }
+void vdlFreeGrKeyS( vidix_grkey_t * _this) { free(_this); }
+void vdlFreeVideoEqS( vidix_video_eq_t * _this) { free(_this); }
+void vdlFreeDeinterlaceS( vidix_deinterlace_t * _this) { free(_this); }
+void vdlFreeDmaS( vidix_dma_t * _this) { free(_this); }
+void vdlFreeOemFxS( vidix_oem_fx_t * _this) { free(_this); }
diff --git a/src/video_out/vidix/vidixlib.h b/src/video_out/vidix/vidixlib.h
index 9c4325e9b..ebc3dd309 100644
--- a/src/video_out/vidix/vidixlib.h
+++ b/src/video_out/vidix/vidixlib.h
@@ -94,6 +94,33 @@ extern int vdlPlaybackCopyFrame(VDL_HANDLE, vidix_dma_t * );
/* Returns 0 if DMA is available else errno (EBUSY) */
extern int vdlQueryDMAStatus( VDL_HANDLE );
+/*
+ ABI related extensions.
+ Note: you should use this functions if you are using shared version
+ of vidix.
+*/
+extern vidix_capability_t * vdlAllocCapabilityS( void );
+extern vidix_fourcc_t * vdlAllocFourccS( void );
+extern vidix_playback_t * vdlAllocPlaybackS( void );
+extern vidix_yuv_t * vdlAllocYUVS( void );
+extern vidix_rect_t * vdlAllocRectS( void );
+extern vidix_grkey_t * vdlAllocGrKeyS( void );
+extern vidix_video_eq_t * vdlAllocVideoEqS( void );
+extern vidix_deinterlace_t * vdlAllocDeinterlaceS( void );
+extern vidix_dma_t * vdlAllocDmaS( void );
+extern vidix_oem_fx_t * vdlAllocOemFxS( void );
+
+extern void vdlFreeCapabilityS(vidix_capability_t * );
+extern void vdlFreeFourccS( vidix_fourcc_t * );
+extern void vdlFreePlaybackS( vidix_playback_t * );
+extern void vdlFreeYUVS( vidix_yuv_t * );
+extern void vdlFreeRectS( vidix_rect_t * );
+extern void vdlFreeGrKeyS( vidix_grkey_t * );
+extern void vdlFreeVideoEqS( vidix_video_eq_t * );
+extern void vdlFreeDeinterlaceS( vidix_deinterlace_t * );
+extern void vdlFreeDmaS( vidix_dma_t * );
+extern void vdlFreeOemFxS( vidix_oem_fx_t * );
+
#ifdef __cplusplus
}
#endif