Message ID | 2e77a279dd0e4cb7721766fafed79ed19a38cb7c.1440902901.git.mchehab@osg.samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 08/30/2015 05:06 AM, Mauro Carvalho Chehab wrote: > Some interfaces indirectly control multiple entities. > Add support for those. > > Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> > > diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c > index 6bf61d42c017..14d32cdcdd47 100644 > --- a/drivers/media/dvb-core/dvbdev.c > +++ b/drivers/media/dvb-core/dvbdev.c > @@ -441,6 +441,7 @@ void dvb_create_media_graph(struct dvb_adapter *adap) > struct media_device *mdev = adap->mdev; > struct media_entity *entity, *tuner = NULL, *fe = NULL; > struct media_entity *demux = NULL, *dvr = NULL, *ca = NULL; > + struct media_interface *intf; > > if (!mdev) > return; > @@ -476,6 +477,18 @@ void dvb_create_media_graph(struct dvb_adapter *adap) > > if (demux && ca) > media_create_pad_link(demux, 1, ca, 0, MEDIA_LNK_FL_ENABLED); > + > + /* Create indirect interface links for FE->tuner, DVR->demux and CA->ca */ > + list_for_each_entry(intf, &mdev->interfaces, list) { > + if (intf->type == MEDIA_INTF_T_DVB_CA && ca) > + media_create_intf_link(ca, intf, 0); > + if (intf->type == MEDIA_INTF_T_DVB_FE && tuner) > + media_create_intf_link(tuner, intf, 0); > + if (intf->type == MEDIA_INTF_T_DVB_DVR && demux) > + media_create_intf_link(demux, intf, 0); > + } > + > + Spurious newlines. After removing you can add my: Acked-by: Hans Verkuil <hans.verkuil@cisco.com> > } > EXPORT_SYMBOL_GPL(dvb_create_media_graph); > #endif > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c index 6bf61d42c017..14d32cdcdd47 100644 --- a/drivers/media/dvb-core/dvbdev.c +++ b/drivers/media/dvb-core/dvbdev.c @@ -441,6 +441,7 @@ void dvb_create_media_graph(struct dvb_adapter *adap) struct media_device *mdev = adap->mdev; struct media_entity *entity, *tuner = NULL, *fe = NULL; struct media_entity *demux = NULL, *dvr = NULL, *ca = NULL; + struct media_interface *intf; if (!mdev) return; @@ -476,6 +477,18 @@ void dvb_create_media_graph(struct dvb_adapter *adap) if (demux && ca) media_create_pad_link(demux, 1, ca, 0, MEDIA_LNK_FL_ENABLED); + + /* Create indirect interface links for FE->tuner, DVR->demux and CA->ca */ + list_for_each_entry(intf, &mdev->interfaces, list) { + if (intf->type == MEDIA_INTF_T_DVB_CA && ca) + media_create_intf_link(ca, intf, 0); + if (intf->type == MEDIA_INTF_T_DVB_FE && tuner) + media_create_intf_link(tuner, intf, 0); + if (intf->type == MEDIA_INTF_T_DVB_DVR && demux) + media_create_intf_link(demux, intf, 0); + } + + } EXPORT_SYMBOL_GPL(dvb_create_media_graph); #endif
Some interfaces indirectly control multiple entities. Add support for those. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>