[media] dvb_usb_v2: merge get_ts_config() to get_usb_stream_config()
authorAntti Palosaari <crope@iki.fi>
Tue, 19 Jun 2012 01:54:16 +0000 (22:54 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 4 Aug 2012 10:56:36 +0000 (07:56 -0300)
Piggypag TS type callback to USB stream callback and change
callback name slightly to fit better.
Both of those are rather rare callback and has a relation. Transport
Stream, TS, is input stream and USB stream is output stream of
DVB USB bridge.

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

index 0f87eafae2d2832fe673b1e1b710f4087b587c33..101b399e76a121ac3daa90fa195b0cbac3f58637 100644 (file)
@@ -599,7 +599,7 @@ error:
        return ret;
 }
 
-static int af9015_get_usb_stream_config(struct dvb_frontend *fe,
+static int af9015_get_stream_config(struct dvb_frontend *fe, u8 *ts_type,
                struct usb_data_stream_properties *stream)
 {
        deb_info("%s: adap=%d\n", __func__, fe_to_adap(fe)->id);
@@ -1304,7 +1304,7 @@ static struct dvb_usb_device_properties af9015_props = {
        .tuner_attach = af9015_tuner_attach,
        .init = af9015_init,
        .get_rc_config = af9015_get_rc_config,
-       .get_usb_stream_config = af9015_get_usb_stream_config,
+       .get_stream_config = af9015_get_stream_config,
 
        .get_adapter_count = af9015_get_adapter_count,
        .adapter = {
index 6b6b7dab8ae4b6abdf41766178c33be3bb81eda5..3a54fc3da702cf7522d2609e2c9497282efe7528 100644 (file)
@@ -124,8 +124,6 @@ struct dvb_usb_adapter_properties {
 #define DVB_USB_ADAP_HAS_PID_FILTER               0x01
 #define DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF 0x02
 #define DVB_USB_ADAP_NEED_PID_FILTERING           0x04
-#define DVB_USB_ADAP_RECEIVES_204_BYTE_TS         0x08
-#define DVB_USB_ADAP_RECEIVES_RAW_PAYLOAD         0x10
        int caps;
        int size_of_priv;
 
@@ -228,9 +226,11 @@ struct dvb_usb_device_properties {
        int (*init) (struct dvb_usb_device *);
        void (*disconnect) (struct dvb_usb_device *);
        int (*get_rc_config) (struct dvb_usb_device *, struct dvb_usb_rc *);
-       int (*get_usb_stream_config) (struct dvb_frontend *,
+#define DVB_USB_FE_TS_TYPE_188        0
+#define DVB_USB_FE_TS_TYPE_204        1
+#define DVB_USB_FE_TS_TYPE_RAW        2
+       int (*get_stream_config) (struct dvb_frontend *,  u8 *,
                        struct usb_data_stream_properties *);
-       int (*get_ts_config) (struct dvb_frontend *, unsigned int *);
 
        struct i2c_algorithm *i2c_algo;
 
@@ -301,7 +301,7 @@ struct dvb_usb_adapter {
        const struct dvb_usb_adapter_properties *props;
        struct usb_data_stream stream;
        u8  id;
-
+       u8 ts_type;
        int pid_filtering;
        int feedcount;
        int max_feed_count;
index 27139a2c8d4a659db5d7599a7601750e4deae8a2..f87319c788c0a6191dc5dd54fa148a2d13987f87 100644 (file)
@@ -100,37 +100,32 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff)
         */
        if (adap->feedcount == onoff && adap->feedcount > 0) {
                struct usb_data_stream_properties stream_props;
-               unsigned int ts_props;
                mutex_lock(&adap->sync_mutex);
 
-               /* resolve TS configuration */
-               if (d->props->get_ts_config) {
-                       ret = d->props->get_ts_config(adap->fe[adap->active_fe],
-                                       &ts_props);
+               /* resolve input and output streaming paramters */
+               if (d->props->get_stream_config) {
+                       memcpy(&stream_props, &adap->props->stream,
+                               sizeof(struct usb_data_stream_properties));
+                       ret = d->props->get_stream_config(
+                                       adap->fe[adap->active_fe],
+                                       &adap->ts_type, &stream_props);
                        if (ret < 0)
                                goto err_mutex_unlock;
                } else {
-                       ts_props = 0; /* normal 188 payload only TS */
+                       stream_props = adap->props->stream;
                }
 
-               if (ts_props & DVB_USB_ADAP_RECEIVES_204_BYTE_TS)
+               switch (adap->ts_type) {
+               case DVB_USB_FE_TS_TYPE_204:
                        adap->stream.complete = dvb_usb_data_complete_204;
-               else if (ts_props & DVB_USB_ADAP_RECEIVES_RAW_PAYLOAD)
+                       break;
+               case DVB_USB_FE_TS_TYPE_RAW:
                        adap->stream.complete = dvb_usb_data_complete_raw;
-               else
+                       break;
+               case DVB_USB_FE_TS_TYPE_188:
+               default:
                        adap->stream.complete = dvb_usb_data_complete;
-
-               /* resolve USB stream configuration */
-               if (d->props->get_usb_stream_config) {
-                       memcpy(&stream_props, &adap->props->stream,
-                               sizeof(struct usb_data_stream_properties));
-                       ret = d->props->get_usb_stream_config(
-                                       adap->fe[adap->active_fe],
-                                       &stream_props);
-                       if (ret < 0)
-                               goto err_mutex_unlock;
-               } else {
-                       stream_props = adap->props->stream;
+                       break;
                }
 
                pr_debug("%s: submitting all URBs\n", __func__);