diff options
author | Patrick Boettcher <devnull@localhost> | 2005-04-15 12:06:09 +0000 |
---|---|---|
committer | Patrick Boettcher <devnull@localhost> | 2005-04-15 12:06:09 +0000 |
commit | b5833bcf1184221ce9ff84d4787d77ce1cbacafa (patch) | |
tree | b1242864168df16859484a231e6bdcee64f0d82d | |
parent | 717a1066fcaa19eecb124fa58510e02dee4b4456 (diff) | |
download | mediapointer-dvb-s2-b5833bcf1184221ce9ff84d4787d77ce1cbacafa.tar.gz mediapointer-dvb-s2-b5833bcf1184221ce9ff84d4787d77ce1cbacafa.tar.bz2 |
Corrected the THIS_MODULE handling for the flexcop-stuff and dvb-usb which lead to oopses because of misorganized module dependencies.
-rw-r--r-- | linux/drivers/media/dvb/b2c2/flexcop-common.h | 2 | ||||
-rw-r--r-- | linux/drivers/media/dvb/b2c2/flexcop-pci.c | 5 | ||||
-rw-r--r-- | linux/drivers/media/dvb/b2c2/flexcop-usb.c | 1 | ||||
-rw-r--r-- | linux/drivers/media/dvb/b2c2/flexcop.c | 2 | ||||
-rw-r--r-- | linux/drivers/media/dvb/dvb-usb/dtt200u.c | 3 | ||||
-rw-r--r-- | linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c | 2 | ||||
-rw-r--r-- | linux/drivers/media/dvb/dvb-usb/dvb-usb-init.c | 3 | ||||
-rw-r--r-- | linux/drivers/media/dvb/dvb-usb/dvb-usb.h | 4 | ||||
-rw-r--r-- | linux/drivers/media/dvb/dvb-usb/vp7045.c | 2 |
9 files changed, 15 insertions, 9 deletions
diff --git a/linux/drivers/media/dvb/b2c2/flexcop-common.h b/linux/drivers/media/dvb/b2c2/flexcop-common.h index 79e8581b4..773d15803 100644 --- a/linux/drivers/media/dvb/b2c2/flexcop-common.h +++ b/linux/drivers/media/dvb/b2c2/flexcop-common.h @@ -75,6 +75,8 @@ struct flexcop_device { struct i2c_adapter i2c_adap; struct semaphore i2c_sem; + struct module *owner; + /* options and status */ int extra_feedcount; int feedcount; diff --git a/linux/drivers/media/dvb/b2c2/flexcop-pci.c b/linux/drivers/media/dvb/b2c2/flexcop-pci.c index 64e1ff86a..210d2fcef 100644 --- a/linux/drivers/media/dvb/b2c2/flexcop-pci.c +++ b/linux/drivers/media/dvb/b2c2/flexcop-pci.c @@ -114,7 +114,7 @@ static irqreturn_t flexcop_pci_irq(int irq, void *dev_id, struct pt_regs *regs) dma_addr_t cur_addr = fc->read_ibi_reg(fc,dma1_008).dma_0x8.dma_cur_addr << 2; u32 cur_pos = cur_addr - fc_pci->dma[0].dma_addr0; - + deb_irq("irq: %08x cur_addr: %08x: cur_pos: %08x, last_cur_pos: %08x ", v.raw,cur_addr,cur_pos,fc_pci->last_dma1_cur_pos); @@ -304,11 +304,12 @@ static int flexcop_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e info("will use the HW PID filter."); else info("will pass the complete TS to the demuxer."); - + fc->pid_filtering = enable_pid_filtering; fc->bus_type = FC_PCI; fc->dev = &pdev->dev; + fc->owner = THIS_MODULE; /* bus specific part */ fc_pci->pdev = pdev; diff --git a/linux/drivers/media/dvb/b2c2/flexcop-usb.c b/linux/drivers/media/dvb/b2c2/flexcop-usb.c index 9d05be88c..6ab4a96d7 100644 --- a/linux/drivers/media/dvb/b2c2/flexcop-usb.c +++ b/linux/drivers/media/dvb/b2c2/flexcop-usb.c @@ -498,6 +498,7 @@ static int flexcop_usb_probe(struct usb_interface *intf, fc->bus_type = FC_USB; fc->dev = &udev->dev; + fc->owner = THIS_MODULE; /* bus specific part */ fc_usb->udev = udev; diff --git a/linux/drivers/media/dvb/b2c2/flexcop.c b/linux/drivers/media/dvb/b2c2/flexcop.c index ad5908750..df55e4c8e 100644 --- a/linux/drivers/media/dvb/b2c2/flexcop.c +++ b/linux/drivers/media/dvb/b2c2/flexcop.c @@ -67,7 +67,7 @@ static int flexcop_dvb_stop_feed(struct dvb_demux_feed *dvbdmxfeed) static int flexcop_dvb_init(struct flexcop_device *fc) { int ret; - if ((ret = dvb_register_adapter(&fc->dvb_adapter,"FlexCop Digital TV device",THIS_MODULE)) < 0) { + if ((ret = dvb_register_adapter(&fc->dvb_adapter,"FlexCop Digital TV device",fc->owner)) < 0) { err("error registering DVB adapter"); return ret; } diff --git a/linux/drivers/media/dvb/dvb-usb/dtt200u.c b/linux/drivers/media/dvb/dvb-usb/dtt200u.c index 3b5785380..8827ddb40 100644 --- a/linux/drivers/media/dvb/dvb-usb/dtt200u.c +++ b/linux/drivers/media/dvb/dvb-usb/dtt200u.c @@ -94,13 +94,12 @@ static struct dvb_usb_properties dtt200u_properties; static int dtt200u_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) { - return dvb_usb_device_init(intf,&dtt200u_properties); + return dvb_usb_device_init(intf,&dtt200u_properties,THIS_MODULE); } static struct usb_device_id dtt200u_usb_table [] = { { USB_DEVICE(USB_VID_AVERMEDIA_UNK, USB_PID_DTT200U_COLD) }, { USB_DEVICE(USB_VID_AVERMEDIA_UNK, USB_PID_DTT200U_WARM) }, - { USB_DEVICE(USB_VID_CYPRESS, USB_PID_ULTIMA_TVBOX_USB2_FX_COLD) }, { 0 }, }; MODULE_DEVICE_TABLE(usb, dtt200u_usb_table); diff --git a/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c b/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c index 643aeb3d2..600317cf0 100644 --- a/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c +++ b/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c @@ -81,7 +81,7 @@ int dvb_usb_dvb_init(struct dvb_usb_device *d) int ret; if ((ret = dvb_register_adapter(&d->dvb_adap, d->desc->name, - THIS_MODULE)) < 0) { + d->owner)) < 0) { deb_info("dvb_register_adapter failed: error %d", ret); goto err; } diff --git a/linux/drivers/media/dvb/dvb-usb/dvb-usb-init.c b/linux/drivers/media/dvb/dvb-usb/dvb-usb-init.c index d4cea6e30..5c80bad4e 100644 --- a/linux/drivers/media/dvb/dvb-usb/dvb-usb-init.c +++ b/linux/drivers/media/dvb/dvb-usb/dvb-usb-init.c @@ -110,7 +110,7 @@ static struct dvb_usb_device_description * dvb_usb_find_device(struct usb_device /* * USB */ -int dvb_usb_device_init(struct usb_interface *intf, struct dvb_usb_properties *props) +int dvb_usb_device_init(struct usb_interface *intf, struct dvb_usb_properties *props, struct module *owner) { struct usb_device *udev = interface_to_usbdev(intf); struct dvb_usb_device *d = NULL; @@ -139,6 +139,7 @@ int dvb_usb_device_init(struct usb_interface *intf, struct dvb_usb_properties *p d->udev = udev; memcpy(&d->props,props,sizeof(struct dvb_usb_properties)); d->desc = desc; + d->owner = owner; /* store parameters to structures */ /* d->rc_query_interval = rc_query_interval; diff --git a/linux/drivers/media/dvb/dvb-usb/dvb-usb.h b/linux/drivers/media/dvb/dvb-usb/dvb-usb.h index 89cc0c5a0..7d493c5c0 100644 --- a/linux/drivers/media/dvb/dvb-usb/dvb-usb.h +++ b/linux/drivers/media/dvb/dvb-usb/dvb-usb.h @@ -174,10 +174,12 @@ struct dvb_usb_device { u32 last_event; int last_state; + struct module *owner; + void *priv; }; -extern int dvb_usb_device_init(struct usb_interface *, struct dvb_usb_properties *); +extern int dvb_usb_device_init(struct usb_interface *, struct dvb_usb_properties *, struct module *); extern void dvb_usb_device_exit(struct usb_interface *); /* the generic read/write method for device control */ diff --git a/linux/drivers/media/dvb/dvb-usb/vp7045.c b/linux/drivers/media/dvb/dvb-usb/vp7045.c index bcb1dd397..20ddac696 100644 --- a/linux/drivers/media/dvb/dvb-usb/vp7045.c +++ b/linux/drivers/media/dvb/dvb-usb/vp7045.c @@ -186,7 +186,7 @@ static struct dvb_usb_properties vp7045_properties; static int vp7045_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) { - return dvb_usb_device_init(intf,&vp7045_properties); + return dvb_usb_device_init(intf,&vp7045_properties,THIS_MODULE); } static struct usb_device_id vp7045_usb_table [] = { |