diff options
Diffstat (limited to 'drivers/media/dvb/dvb-usb/dvb-usb-dvb.c')
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb-usb-dvb.c | 17 |
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 | |||
125 | err_dmx_dev: | 127 | err_dmx_dev: |
126 | dvb_dmx_release(&d->demux); | 128 | dvb_dmx_release(&d->demux); |
127 | err_dmx: | 129 | err_dmx: |
128 | dvb_unregister_adapter(&d->dvb_adap); | 130 | dvb_unregister_adapter(&d->dvb_adap); |
129 | err: | 131 | err: |
130 | return ret; | 132 | return ret; |
131 | success: | ||
132 | d->state |= DVB_USB_STATE_DVB; | ||
133 | return 0; | ||
134 | } | 133 | } |
135 | 134 | ||
136 | int dvb_usb_dvb_exit(struct dvb_usb_device *d) | 135 | int 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 | } |