summaryrefslogtreecommitdiff
path: root/linux/drivers/media/common/saa7146.h
diff options
context:
space:
mode:
authorMichael Hunold <devnull@localhost>2003-01-08 17:41:32 +0000
committerMichael Hunold <devnull@localhost>2003-01-08 17:41:32 +0000
commitd166085ef7eea32af71c4c20321f067a38bb394a (patch)
tree1cb9582a6374cdd92b69bd264d7fc7e1b1a43459 /linux/drivers/media/common/saa7146.h
parentc968f1b52110e481ca9e183729b3a6ad6a2d3aeb (diff)
downloadmediapointer-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.h23
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 */