Commit b905a2a1 authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab
Browse files

[media] dvb_usb_v2: merge get_ts_config() to get_usb_stream_config()



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: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent ec0dd2f2
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -599,7 +599,7 @@ static int af9015_read_config(struct dvb_usb_device *d)
	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 = {
+5 −5
Original line number Diff line number Diff line
@@ -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;
+16 −21
Original line number Diff line number Diff line
@@ -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__);