[media] dvb_usb_v2: move 3 callbacks from the frontend to adapter
authorAntti Palosaari <crope@iki.fi>
Tue, 29 May 2012 23:30:05 +0000 (20:30 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 4 Aug 2012 10:56:24 +0000 (07:56 -0300)
Move .frontend_attach(), .tuner_attach() and .streaming_ctrl()
from the frontend to adapter.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/dvb-usb/dvb_usb.h
drivers/media/dvb/dvb-usb/dvb_usb_dvb.c

index ee6df79..6bab17b 100644 (file)
@@ -114,11 +114,6 @@ struct usb_data_stream_properties {
  * @stream: configuration of the USB streaming
  */
 struct dvb_usb_adapter_fe_properties {
-       int (*streaming_ctrl)  (struct dvb_usb_adapter *, int);
-
-       int (*frontend_attach) (struct dvb_usb_adapter *);
-       int (*tuner_attach)    (struct dvb_usb_adapter *);
-
        int size_of_priv;
 };
 
@@ -136,9 +131,12 @@ struct dvb_usb_adapter_properties {
        int (*pid_filter_ctrl) (struct dvb_usb_adapter *, int);
        int (*pid_filter) (struct dvb_usb_adapter *, int, u16, int);
 
-       int (*frontend_ctrl)   (struct dvb_frontend *, int);
+       int (*frontend_attach) (struct dvb_usb_adapter *);
+       int (*tuner_attach) (struct dvb_usb_adapter *);
+       int (*frontend_ctrl) (struct dvb_frontend *, int);
+       int (*streaming_ctrl) (struct dvb_usb_adapter *, int);
        int (*fe_ioctl_override) (struct dvb_frontend *,
-                                 unsigned int, void *, unsigned int);
+                       unsigned int, void *, unsigned int);
 
        int num_frontends;
        struct dvb_usb_adapter_fe_properties fe[MAX_NO_OF_FE_PER_ADAP];
index 980a1d3..9361598 100644 (file)
@@ -83,9 +83,8 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff)
                deb_ts("stop feeding\n");
                usb_urb_kill(&adap->stream);
 
-               if (adap->props.fe[adap->active_fe].streaming_ctrl != NULL) {
-                       ret = adap->props.fe[adap->active_fe].streaming_ctrl(
-                               adap, 0);
+               if (adap->props.streaming_ctrl != NULL) {
+                       ret = adap->props.streaming_ctrl(adap, 0);
                        if (ret < 0) {
                                err("error while stopping stream.");
                                return ret;
@@ -159,9 +158,8 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff)
                        }
                }
                deb_ts("start feeding\n");
-               if (adap->props.fe[adap->active_fe].streaming_ctrl != NULL) {
-                       ret = adap->props.fe[adap->active_fe].streaming_ctrl(
-                               adap, 1);
+               if (adap->props.streaming_ctrl != NULL) {
+                       ret = adap->props.streaming_ctrl(adap, 1);
                        if (ret < 0) {
                                err("error while enabling fifo.");
                                return ret;
@@ -319,7 +317,7 @@ int dvb_usb_adapter_frontend_init(struct dvb_usb_adapter *adap)
        /* register all given adapter frontends */
        for (i = 0; i < adap->props.num_frontends; i++) {
 
-               if (adap->props.fe[i].frontend_attach == NULL) {
+               if (adap->props.frontend_attach == NULL) {
                        err("strange: '%s' #%d,%d " \
                            "doesn't want to attach a frontend.",
                            adap->dev->name, adap->id, i);
@@ -327,7 +325,7 @@ int dvb_usb_adapter_frontend_init(struct dvb_usb_adapter *adap)
                        return 0;
                }
 
-               ret = adap->props.fe[i].frontend_attach(adap);
+               ret = adap->props.frontend_attach(adap);
                if (ret || adap->fe_adap[i].fe == NULL) {
                        /* only print error when there is no FE at all */
                        if (i == 0)
@@ -359,8 +357,8 @@ int dvb_usb_adapter_frontend_init(struct dvb_usb_adapter *adap)
                }
 
                /* only attach the tuner if the demod is there */
-               if (adap->props.fe[i].tuner_attach != NULL)
-                       adap->props.fe[i].tuner_attach(adap);
+               if (adap->props.tuner_attach != NULL)
+                       adap->props.tuner_attach(adap);
 
                adap->num_frontends_initialized++;
        }