Commit f3efe15a authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

media: dvb: use signal types to discover pads

On tuner pads, multiple signals are present. Be sure to get
the right PAD by using them.
Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent caf276be
...@@ -621,7 +621,7 @@ int dvb_create_media_graph(struct dvb_adapter *adap, ...@@ -621,7 +621,7 @@ int dvb_create_media_graph(struct dvb_adapter *adap,
unsigned demux_pad = 0; unsigned demux_pad = 0;
unsigned dvr_pad = 0; unsigned dvr_pad = 0;
unsigned ntuner = 0, ndemod = 0; unsigned ntuner = 0, ndemod = 0;
int ret; int ret, pad_source, pad_sink;
static const char *connector_name = "Television"; static const char *connector_name = "Television";
if (!mdev) if (!mdev)
...@@ -681,7 +681,7 @@ int dvb_create_media_graph(struct dvb_adapter *adap, ...@@ -681,7 +681,7 @@ int dvb_create_media_graph(struct dvb_adapter *adap,
if (ret) if (ret)
return ret; return ret;
if (!ntuner) if (!ntuner) {
ret = media_create_pad_links(mdev, ret = media_create_pad_links(mdev,
MEDIA_ENT_F_CONN_RF, MEDIA_ENT_F_CONN_RF,
conn, 0, conn, 0,
...@@ -689,22 +689,31 @@ int dvb_create_media_graph(struct dvb_adapter *adap, ...@@ -689,22 +689,31 @@ int dvb_create_media_graph(struct dvb_adapter *adap,
demod, 0, demod, 0,
MEDIA_LNK_FL_ENABLED, MEDIA_LNK_FL_ENABLED,
false); false);
else } else {
pad_sink = media_get_pad_index(tuner, true,
PAD_SIGNAL_ANALOG);
if (pad_sink < 0)
return -EINVAL;
ret = media_create_pad_links(mdev, ret = media_create_pad_links(mdev,
MEDIA_ENT_F_CONN_RF, MEDIA_ENT_F_CONN_RF,
conn, 0, conn, 0,
MEDIA_ENT_F_TUNER, MEDIA_ENT_F_TUNER,
tuner, TUNER_PAD_RF_INPUT, tuner, pad_sink,
MEDIA_LNK_FL_ENABLED, MEDIA_LNK_FL_ENABLED,
false); false);
}
if (ret) if (ret)
return ret; return ret;
} }
if (ntuner && ndemod) { if (ntuner && ndemod) {
pad_source = media_get_pad_index(tuner, true,
PAD_SIGNAL_ANALOG);
if (pad_source)
return -EINVAL;
ret = media_create_pad_links(mdev, ret = media_create_pad_links(mdev,
MEDIA_ENT_F_TUNER, MEDIA_ENT_F_TUNER,
tuner, TUNER_PAD_OUTPUT, tuner, pad_source,
MEDIA_ENT_F_DTV_DEMOD, MEDIA_ENT_F_DTV_DEMOD,
demod, 0, MEDIA_LNK_FL_ENABLED, demod, 0, MEDIA_LNK_FL_ENABLED,
false); false);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment