diff options
author | Michael Hunold <devnull@localhost> | 2003-01-08 17:41:32 +0000 |
---|---|---|
committer | Michael Hunold <devnull@localhost> | 2003-01-08 17:41:32 +0000 |
commit | d166085ef7eea32af71c4c20321f067a38bb394a (patch) | |
tree | 1cb9582a6374cdd92b69bd264d7fc7e1b1a43459 /linux/drivers/media/common/saa7146.h | |
parent | c968f1b52110e481ca9e183729b3a6ad6a2d3aeb (diff) | |
download | mediapointer-dvb-s2-d166085ef7eea32af71c4c20321f067a38bb394a.tar.gz mediapointer-dvb-s2-d166085ef7eea32af71c4c20321f067a38bb394a.tar.bz2 |
Removed the whole "device<=>extension" matching crap, the pci subsystem
can do this much better. We now simply register one pci driver for
every extension and are done with it -- if a device actually exists, the
pci subsystem calls us back. That's it.
Warning: this triggers a bug in the 2.5.x module subsystem -- you should
*not* use the driver.av7110 script and modprobe the driver. You can
a) build your kernel staticall
b) insert the modules one by one with *insmod*
I already filed a bug report to lkml.
Fixed a bug in Kconfig which prevented the saa7146 modules from being build.
Diffstat (limited to 'linux/drivers/media/common/saa7146.h')
-rw-r--r-- | linux/drivers/media/common/saa7146.h | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/linux/drivers/media/common/saa7146.h b/linux/drivers/media/common/saa7146.h index 39ecdda33..2b1329f89 100644 --- a/linux/drivers/media/common/saa7146.h +++ b/linux/drivers/media/common/saa7146.h @@ -54,13 +54,6 @@ struct saa7146_dev; struct saa7146_extension; struct saa7146_vv; -struct saa7146_sub_info { - unsigned int subvendor; - unsigned int subdevice; - char **name; - int type; -}; - /* saa7146 page table */ struct saa7146_pgtable { unsigned int size; @@ -70,6 +63,11 @@ struct saa7146_pgtable { unsigned long offset; }; +struct saa7146_pci_extension_data { + struct saa7146_extension *ext; + void *ext_priv; /* most likely a name string */ +}; + struct saa7146_extension { char name[32]; /* name of the device */ @@ -78,21 +76,20 @@ struct saa7146_extension struct saa7146_ext_vv *ext_vv_data; - struct list_head item; - /* pairs of subvendor and subdevice ids for supported devices, last entry 0xffff, 0xfff */ - struct saa7146_sub_info *devices; struct module *module; - + struct pci_driver driver; + struct pci_device_id *pci_tbl; + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,51) void (*inc_use)(struct saa7146_dev*); void (*dec_use)(struct saa7146_dev*); #endif /* extension functions */ - int (*probe)(struct saa7146_dev*, unsigned int subvendor, unsigned int subdevice); - int (*attach)(struct saa7146_dev *, struct saa7146_sub_info *); + int (*probe)(struct saa7146_dev *); + int (*attach)(struct saa7146_dev *, struct saa7146_pci_extension_data *); int (*detach)(struct saa7146_dev*); u32 irq_mask; /* mask to indicate, which irq-events are handled by the extension */ |