aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb
diff options
context:
space:
mode:
authorAntti Palosaari <crope@iki.fi>2012-06-18 19:09:07 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-08-04 06:56:36 -0400
commitec0dd2f20cb46c3c1fb8a746983c1fe395fd4af3 (patch)
treee284d75d0423a77cfe6300ae54830fd5b2676a7b /drivers/media/dvb/dvb-usb
parent2731d4ed77e3a58cd44584e3741c8f3e30956e9b (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.h4
-rw-r--r--drivers/media/dvb/dvb-usb/dvb_usb_dvb.c53
-rw-r--r--drivers/media/dvb/dvb-usb/dvb_usb_init.c1
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 */
299struct dvb_usb_adapter { 300struct 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)
52static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff) 52static 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)
186int dvb_usbv2_adapter_dvb_init(struct dvb_usb_adapter *adap) 186int 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:
338int dvb_usbv2_adapter_frontend_init(struct dvb_usb_adapter *adap) 340int 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