[media] dvbdev: Don't create indirect links
authorMauro Carvalho Chehab <mchehab@osg.samsung.com>
Sun, 6 Sep 2015 16:38:23 +0000 (13:38 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Mon, 11 Jan 2016 14:19:02 +0000 (12:19 -0200)
Indirect links are those whose interface indirectly controls
other functions.

There are two interfaces that have indirect controls at the DVB
side:
- the network interface, which also controls the demux;
- the DVR interface which also controls the demux.

One could argue that the frontend control to the tuner is indirect.
Well, that's debatable. There's no way to create subdev interfaces
for tuner and demod, as those devices are tightly coupled. So, it
was decided that just one interface is the best to control both
entities, and there's no plan (or easy way) to decouple both. So,
the DVB frontend interface should link to both entities.

Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/dvb-core/dvbdev.c

index d51a328bdcf98cadd75f002f160a6a9862ff41e8..cc52c24bff7252c83739789f01cd2901e61e42b5 100644 (file)
@@ -637,7 +637,7 @@ int dvb_create_media_graph(struct dvb_adapter *adap)
                }
        }
 
-       /* Create indirect interface links for FE->tuner, DVR->demux and CA->ca */
+       /* Create interface links for FE->tuner, DVR->demux and CA->ca */
        media_device_for_each_intf(intf, mdev) {
                if (intf->type == MEDIA_INTF_T_DVB_CA && ca) {
                        link = media_create_intf_link(ca, intf,
@@ -652,13 +652,19 @@ int dvb_create_media_graph(struct dvb_adapter *adap)
                        if (!link)
                                return -ENOMEM;
                }
-
+#if 0
+               /*
+                * Indirect link - let's not create yet, as we don't know how
+                *                 to handle indirect links, nor if this will
+                *                 actually be needed.
+                */
                if (intf->type == MEDIA_INTF_T_DVB_DVR && demux) {
                        link = media_create_intf_link(demux, intf,
                                                      MEDIA_LNK_FL_ENABLED);
                        if (!link)
                                return -ENOMEM;
                }
+#endif
                if (intf->type == MEDIA_INTF_T_DVB_DVR) {
                        ret = dvb_create_io_intf_links(adap, intf, DVR_TSOUT);
                        if (ret)
This page took 0.047145 seconds and 5 git commands to generate.