diff options
author | Antti Palosaari <crope@iki.fi> | 2012-06-18 19:09:07 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-08-04 06:56:36 -0400 |
commit | ec0dd2f20cb46c3c1fb8a746983c1fe395fd4af3 (patch) | |
tree | e284d75d0423a77cfe6300ae54830fd5b2676a7b /drivers/media/dvb/dvb-usb | |
parent | 2731d4ed77e3a58cd44584e3741c8f3e30956e9b (diff) |
[media] dvb_usb_v2: use container_of() for adapter to device
We dont need that pointer as we can use container_of() macro thus
remove it.
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/dvb-usb')
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb_usb.h | 4 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb_usb_dvb.c | 53 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb_usb_init.c | 1 |
3 files changed, 30 insertions, 28 deletions
diff --git a/drivers/media/dvb/dvb-usb/dvb_usb.h b/drivers/media/dvb/dvb-usb/dvb_usb.h index 933d69004ab7..6b6b7dab8ae4 100644 --- a/drivers/media/dvb/dvb-usb/dvb_usb.h +++ b/drivers/media/dvb/dvb-usb/dvb_usb.h | |||
@@ -23,7 +23,8 @@ | |||
23 | #include "dvb-usb-ids.h" | 23 | #include "dvb-usb-ids.h" |
24 | 24 | ||
25 | /* helper macros for every DVB USB driver use */ | 25 | /* helper macros for every DVB USB driver use */ |
26 | #define adap_to_d(adap) ((adap)->dev) | 26 | #define adap_to_d(adap) (container_of(adap, struct dvb_usb_device, \ |
27 | adapter[adap->id])) | ||
27 | #define adap_to_priv(adap) (adap_to_d(adap)->priv) | 28 | #define adap_to_priv(adap) (adap_to_d(adap)->priv) |
28 | #define fe_to_adap(fe) ((struct dvb_usb_adapter *) ((fe)->dvb->priv)) | 29 | #define fe_to_adap(fe) ((struct dvb_usb_adapter *) ((fe)->dvb->priv)) |
29 | #define fe_to_d(fe) (adap_to_d(fe_to_adap(fe))) | 30 | #define fe_to_d(fe) (adap_to_d(fe_to_adap(fe))) |
@@ -297,7 +298,6 @@ struct usb_data_stream { | |||
297 | * @stream: the usb data stream. | 298 | * @stream: the usb data stream. |
298 | */ | 299 | */ |
299 | struct dvb_usb_adapter { | 300 | struct dvb_usb_adapter { |
300 | struct dvb_usb_device *dev; | ||
301 | const struct dvb_usb_adapter_properties *props; | 301 | const struct dvb_usb_adapter_properties *props; |
302 | struct usb_data_stream stream; | 302 | struct usb_data_stream stream; |
303 | u8 id; | 303 | u8 id; |
diff --git a/drivers/media/dvb/dvb-usb/dvb_usb_dvb.c b/drivers/media/dvb/dvb-usb/dvb_usb_dvb.c index 9e1bf03e03b3..27139a2c8d4a 100644 --- a/drivers/media/dvb/dvb-usb/dvb_usb_dvb.c +++ b/drivers/media/dvb/dvb-usb/dvb_usb_dvb.c | |||
@@ -33,7 +33,7 @@ int dvb_usbv2_adapter_stream_init(struct dvb_usb_adapter *adap) | |||
33 | { | 33 | { |
34 | pr_debug("%s: adap=%d\n", __func__, adap->id); | 34 | pr_debug("%s: adap=%d\n", __func__, adap->id); |
35 | 35 | ||
36 | adap->stream.udev = adap->dev->udev; | 36 | adap->stream.udev = adap_to_d(adap)->udev; |
37 | adap->stream.user_priv = adap; | 37 | adap->stream.user_priv = adap; |
38 | adap->stream.complete = dvb_usb_data_complete; | 38 | adap->stream.complete = dvb_usb_data_complete; |
39 | 39 | ||
@@ -52,6 +52,7 @@ int dvb_usbv2_adapter_stream_exit(struct dvb_usb_adapter *adap) | |||
52 | static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff) | 52 | static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff) |
53 | { | 53 | { |
54 | struct dvb_usb_adapter *adap = dvbdmxfeed->demux->priv; | 54 | struct dvb_usb_adapter *adap = dvbdmxfeed->demux->priv; |
55 | struct dvb_usb_device *d = adap_to_d(adap); | ||
55 | int newfeedcount, ret; | 56 | int newfeedcount, ret; |
56 | 57 | ||
57 | if (adap == NULL) { | 58 | if (adap == NULL) { |
@@ -69,8 +70,8 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff) | |||
69 | pr_debug("%s: stop feeding\n", __func__); | 70 | pr_debug("%s: stop feeding\n", __func__); |
70 | usb_urb_killv2(&adap->stream); | 71 | usb_urb_killv2(&adap->stream); |
71 | 72 | ||
72 | if (adap->dev->props->streaming_ctrl != NULL) { | 73 | if (d->props->streaming_ctrl != NULL) { |
73 | ret = adap->dev->props->streaming_ctrl(adap, 0); | 74 | ret = d->props->streaming_ctrl(adap, 0); |
74 | if (ret < 0) { | 75 | if (ret < 0) { |
75 | pr_err("%s: error while stopping stream\n", | 76 | pr_err("%s: error while stopping stream\n", |
76 | KBUILD_MODNAME); | 77 | KBUILD_MODNAME); |
@@ -103,9 +104,8 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff) | |||
103 | mutex_lock(&adap->sync_mutex); | 104 | mutex_lock(&adap->sync_mutex); |
104 | 105 | ||
105 | /* resolve TS configuration */ | 106 | /* resolve TS configuration */ |
106 | if (adap->dev->props->get_ts_config) { | 107 | if (d->props->get_ts_config) { |
107 | ret = adap->dev->props->get_ts_config( | 108 | ret = d->props->get_ts_config(adap->fe[adap->active_fe], |
108 | adap->fe[adap->active_fe], | ||
109 | &ts_props); | 109 | &ts_props); |
110 | if (ret < 0) | 110 | if (ret < 0) |
111 | goto err_mutex_unlock; | 111 | goto err_mutex_unlock; |
@@ -121,10 +121,10 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff) | |||
121 | adap->stream.complete = dvb_usb_data_complete; | 121 | adap->stream.complete = dvb_usb_data_complete; |
122 | 122 | ||
123 | /* resolve USB stream configuration */ | 123 | /* resolve USB stream configuration */ |
124 | if (adap->dev->props->get_usb_stream_config) { | 124 | if (d->props->get_usb_stream_config) { |
125 | memcpy(&stream_props, &adap->props->stream, | 125 | memcpy(&stream_props, &adap->props->stream, |
126 | sizeof(struct usb_data_stream_properties)); | 126 | sizeof(struct usb_data_stream_properties)); |
127 | ret = adap->dev->props->get_usb_stream_config( | 127 | ret = d->props->get_usb_stream_config( |
128 | adap->fe[adap->active_fe], | 128 | adap->fe[adap->active_fe], |
129 | &stream_props); | 129 | &stream_props); |
130 | if (ret < 0) | 130 | if (ret < 0) |
@@ -150,8 +150,8 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff) | |||
150 | } | 150 | } |
151 | } | 151 | } |
152 | pr_debug("%s: start feeding\n", __func__); | 152 | pr_debug("%s: start feeding\n", __func__); |
153 | if (adap->dev->props->streaming_ctrl != NULL) { | 153 | if (d->props->streaming_ctrl != NULL) { |
154 | ret = adap->dev->props->streaming_ctrl(adap, 1); | 154 | ret = d->props->streaming_ctrl(adap, 1); |
155 | if (ret < 0) { | 155 | if (ret < 0) { |
156 | pr_err("%s: error while enabling fifo\n", | 156 | pr_err("%s: error while enabling fifo\n", |
157 | KBUILD_MODNAME); | 157 | KBUILD_MODNAME); |
@@ -186,11 +186,11 @@ static int dvb_usb_stop_feed(struct dvb_demux_feed *dvbdmxfeed) | |||
186 | int dvb_usbv2_adapter_dvb_init(struct dvb_usb_adapter *adap) | 186 | int dvb_usbv2_adapter_dvb_init(struct dvb_usb_adapter *adap) |
187 | { | 187 | { |
188 | int ret; | 188 | int ret; |
189 | struct dvb_usb_device *d = adap_to_d(adap); | ||
189 | pr_debug("%s: adap=%d\n", __func__, adap->id); | 190 | pr_debug("%s: adap=%d\n", __func__, adap->id); |
190 | 191 | ||
191 | ret = dvb_register_adapter(&adap->dvb_adap, adap->dev->name, | 192 | ret = dvb_register_adapter(&adap->dvb_adap, d->name, d->props->owner, |
192 | adap->dev->props->owner, &adap->dev->udev->dev, | 193 | &d->udev->dev, d->props->adapter_nr); |
193 | adap->dev->props->adapter_nr); | ||
194 | if (ret < 0) { | 194 | if (ret < 0) { |
195 | pr_debug("%s: dvb_register_adapter() failed=%d\n", __func__, | 195 | pr_debug("%s: dvb_register_adapter() failed=%d\n", __func__, |
196 | ret); | 196 | ret); |
@@ -199,8 +199,8 @@ int dvb_usbv2_adapter_dvb_init(struct dvb_usb_adapter *adap) | |||
199 | 199 | ||
200 | adap->dvb_adap.priv = adap; | 200 | adap->dvb_adap.priv = adap; |
201 | 201 | ||
202 | if (adap->dev->props->read_mac_address) { | 202 | if (d->props->read_mac_address) { |
203 | ret = adap->dev->props->read_mac_address(adap, | 203 | ret = d->props->read_mac_address(adap, |
204 | adap->dvb_adap.proposed_mac); | 204 | adap->dvb_adap.proposed_mac); |
205 | if (ret < 0) | 205 | if (ret < 0) |
206 | goto err_dmx; | 206 | goto err_dmx; |
@@ -273,15 +273,16 @@ static int dvb_usb_fe_wakeup(struct dvb_frontend *fe) | |||
273 | { | 273 | { |
274 | int ret; | 274 | int ret; |
275 | struct dvb_usb_adapter *adap = fe->dvb->priv; | 275 | struct dvb_usb_adapter *adap = fe->dvb->priv; |
276 | struct dvb_usb_device *d = adap_to_d(adap); | ||
276 | mutex_lock(&adap->sync_mutex); | 277 | mutex_lock(&adap->sync_mutex); |
277 | pr_debug("%s: adap=%d fe=%d\n", __func__, adap->id, fe->id); | 278 | pr_debug("%s: adap=%d fe=%d\n", __func__, adap->id, fe->id); |
278 | 279 | ||
279 | ret = dvb_usbv2_device_power_ctrl(adap->dev, 1); | 280 | ret = dvb_usbv2_device_power_ctrl(d, 1); |
280 | if (ret < 0) | 281 | if (ret < 0) |
281 | goto err; | 282 | goto err; |
282 | 283 | ||
283 | if (adap->dev->props->frontend_ctrl) { | 284 | if (d->props->frontend_ctrl) { |
284 | ret = adap->dev->props->frontend_ctrl(fe, 1); | 285 | ret = d->props->frontend_ctrl(fe, 1); |
285 | if (ret < 0) | 286 | if (ret < 0) |
286 | goto err; | 287 | goto err; |
287 | } | 288 | } |
@@ -306,6 +307,7 @@ static int dvb_usb_fe_sleep(struct dvb_frontend *fe) | |||
306 | { | 307 | { |
307 | int ret; | 308 | int ret; |
308 | struct dvb_usb_adapter *adap = fe->dvb->priv; | 309 | struct dvb_usb_adapter *adap = fe->dvb->priv; |
310 | struct dvb_usb_device *d = adap_to_d(adap); | ||
309 | mutex_lock(&adap->sync_mutex); | 311 | mutex_lock(&adap->sync_mutex); |
310 | pr_debug("%s: adap=%d fe=%d\n", __func__, adap->id, fe->id); | 312 | pr_debug("%s: adap=%d fe=%d\n", __func__, adap->id, fe->id); |
311 | 313 | ||
@@ -315,13 +317,13 @@ static int dvb_usb_fe_sleep(struct dvb_frontend *fe) | |||
315 | goto err; | 317 | goto err; |
316 | } | 318 | } |
317 | 319 | ||
318 | if (adap->dev->props->frontend_ctrl) { | 320 | if (d->props->frontend_ctrl) { |
319 | ret = adap->dev->props->frontend_ctrl(fe, 0); | 321 | ret = d->props->frontend_ctrl(fe, 0); |
320 | if (ret < 0) | 322 | if (ret < 0) |
321 | goto err; | 323 | goto err; |
322 | } | 324 | } |
323 | 325 | ||
324 | ret = dvb_usbv2_device_power_ctrl(adap->dev, 0); | 326 | ret = dvb_usbv2_device_power_ctrl(d, 0); |
325 | if (ret < 0) | 327 | if (ret < 0) |
326 | goto err; | 328 | goto err; |
327 | 329 | ||
@@ -338,13 +340,14 @@ err: | |||
338 | int dvb_usbv2_adapter_frontend_init(struct dvb_usb_adapter *adap) | 340 | int dvb_usbv2_adapter_frontend_init(struct dvb_usb_adapter *adap) |
339 | { | 341 | { |
340 | int ret, i, count_registered = 0; | 342 | int ret, i, count_registered = 0; |
343 | struct dvb_usb_device *d = adap_to_d(adap); | ||
341 | pr_debug("%s: adap=%d\n", __func__, adap->id); | 344 | pr_debug("%s: adap=%d\n", __func__, adap->id); |
342 | 345 | ||
343 | memset(adap->fe, 0, sizeof(adap->fe)); | 346 | memset(adap->fe, 0, sizeof(adap->fe)); |
344 | adap->active_fe = -1; | 347 | adap->active_fe = -1; |
345 | 348 | ||
346 | if (adap->dev->props->frontend_attach) { | 349 | if (d->props->frontend_attach) { |
347 | ret = adap->dev->props->frontend_attach(adap); | 350 | ret = d->props->frontend_attach(adap); |
348 | if (ret < 0) { | 351 | if (ret < 0) { |
349 | pr_debug("%s: frontend_attach() failed=%d\n", __func__, | 352 | pr_debug("%s: frontend_attach() failed=%d\n", __func__, |
350 | ret); | 353 | ret); |
@@ -375,8 +378,8 @@ int dvb_usbv2_adapter_frontend_init(struct dvb_usb_adapter *adap) | |||
375 | count_registered++; | 378 | count_registered++; |
376 | } | 379 | } |
377 | 380 | ||
378 | if (adap->dev->props->tuner_attach) { | 381 | if (d->props->tuner_attach) { |
379 | ret = adap->dev->props->tuner_attach(adap); | 382 | ret = d->props->tuner_attach(adap); |
380 | if (ret < 0) { | 383 | if (ret < 0) { |
381 | pr_debug("%s: tuner_attach() failed=%d\n", __func__, | 384 | pr_debug("%s: tuner_attach() failed=%d\n", __func__, |
382 | ret); | 385 | ret); |
diff --git a/drivers/media/dvb/dvb-usb/dvb_usb_init.c b/drivers/media/dvb/dvb-usb/dvb_usb_init.c index e393fb557398..2624daa94b4f 100644 --- a/drivers/media/dvb/dvb-usb/dvb_usb_init.c +++ b/drivers/media/dvb/dvb-usb/dvb_usb_init.c | |||
@@ -226,7 +226,6 @@ static int dvb_usbv2_adapter_init(struct dvb_usb_device *d) | |||
226 | 226 | ||
227 | for (i = 0; i < adapter_count; i++) { | 227 | for (i = 0; i < adapter_count; i++) { |
228 | adap = &d->adapter[i]; | 228 | adap = &d->adapter[i]; |
229 | adap->dev = d; | ||
230 | adap->id = i; | 229 | adap->id = i; |
231 | adap->props = &d->props->adapter[i]; | 230 | adap->props = &d->props->adapter[i]; |
232 | 231 | ||