aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/dvb/dvb-usb/dvb-usb-dvb.c')
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-dvb.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c b/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c
index 6fa92100248b..ec631708c394 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c
@@ -82,7 +82,7 @@ int dvb_usb_dvb_init(struct dvb_usb_device *d)
82 int ret; 82 int ret;
83 83
84 if ((ret = dvb_register_adapter(&d->dvb_adap, d->desc->name, 84 if ((ret = dvb_register_adapter(&d->dvb_adap, d->desc->name,
85 d->owner)) < 0) { 85 d->owner, &d->udev->dev)) < 0) {
86 deb_info("dvb_register_adapter failed: error %d", ret); 86 deb_info("dvb_register_adapter failed: error %d", ret);
87 goto err; 87 goto err;
88 } 88 }
@@ -121,16 +121,15 @@ int dvb_usb_dvb_init(struct dvb_usb_device *d)
121 121
122 dvb_net_init(&d->dvb_adap, &d->dvb_net, &d->demux.dmx); 122 dvb_net_init(&d->dvb_adap, &d->dvb_net, &d->demux.dmx);
123 123
124 goto success; 124 d->state |= DVB_USB_STATE_DVB;
125 return 0;
126
125err_dmx_dev: 127err_dmx_dev:
126 dvb_dmx_release(&d->demux); 128 dvb_dmx_release(&d->demux);
127err_dmx: 129err_dmx:
128 dvb_unregister_adapter(&d->dvb_adap); 130 dvb_unregister_adapter(&d->dvb_adap);
129err: 131err:
130 return ret; 132 return ret;
131success:
132 d->state |= DVB_USB_STATE_DVB;
133 return 0;
134} 133}
135 134
136int dvb_usb_dvb_exit(struct dvb_usb_device *d) 135int dvb_usb_dvb_exit(struct dvb_usb_device *d)
@@ -184,13 +183,13 @@ int dvb_usb_fe_init(struct dvb_usb_device* d)
184 183
185 /* re-assign sleep and wakeup functions */ 184 /* re-assign sleep and wakeup functions */
186 if (d->fe != NULL) { 185 if (d->fe != NULL) {
187 d->fe_init = d->fe->ops->init; d->fe->ops->init = dvb_usb_fe_wakeup; 186 d->fe_init = d->fe->ops.init; d->fe->ops.init = dvb_usb_fe_wakeup;
188 d->fe_sleep = d->fe->ops->sleep; d->fe->ops->sleep = dvb_usb_fe_sleep; 187 d->fe_sleep = d->fe->ops.sleep; d->fe->ops.sleep = dvb_usb_fe_sleep;
189 188
190 if (dvb_register_frontend(&d->dvb_adap, d->fe)) { 189 if (dvb_register_frontend(&d->dvb_adap, d->fe)) {
191 err("Frontend registration failed."); 190 err("Frontend registration failed.");
192 if (d->fe->ops->release) 191 if (d->fe->ops.release)
193 d->fe->ops->release(d->fe); 192 d->fe->ops.release(d->fe);
194 d->fe = NULL; 193 d->fe = NULL;
195 return -ENODEV; 194 return -ENODEV;
196 } 195 }