[media] add media controller support to videobuf2-dvb
Allow devices to pass an optional argument to register the DVB driver at the media controller. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
de39078779
commit
2773b0e9ba
|
@ -2301,7 +2301,8 @@ static int dvb_register(struct cx23885_tsport *port)
|
|||
|
||||
/* register everything */
|
||||
ret = vb2_dvb_register_bus(&port->frontends, THIS_MODULE, port,
|
||||
&dev->pci->dev, adapter_nr, mfe_shared);
|
||||
&dev->pci->dev, NULL,
|
||||
adapter_nr, mfe_shared);
|
||||
if (ret)
|
||||
goto frontend_detach;
|
||||
|
||||
|
|
|
@ -1642,7 +1642,8 @@ static int dvb_register(struct cx8802_dev *dev)
|
|||
|
||||
/* register everything */
|
||||
res = vb2_dvb_register_bus(&dev->frontends, THIS_MODULE, dev,
|
||||
&dev->pci->dev, adapter_nr, mfe_shared);
|
||||
&dev->pci->dev, NULL, adapter_nr,
|
||||
mfe_shared);
|
||||
if (res)
|
||||
goto frontend_detach;
|
||||
return res;
|
||||
|
|
|
@ -462,8 +462,8 @@ static int netup_unidvb_dvb_init(struct netup_unidvb_dev *ndev,
|
|||
}
|
||||
|
||||
if (vb2_dvb_register_bus(&ndev->frontends[num],
|
||||
THIS_MODULE, NULL,
|
||||
&ndev->pci_dev->dev, adapter_nr, 1)) {
|
||||
THIS_MODULE, NULL,
|
||||
&ndev->pci_dev->dev, NULL, adapter_nr, 1)) {
|
||||
dev_dbg(&ndev->pci_dev->dev,
|
||||
"%s(): unable to register DVB bus %d\n",
|
||||
__func__, num);
|
||||
|
|
|
@ -1884,7 +1884,7 @@ static int dvb_init(struct saa7134_dev *dev)
|
|||
|
||||
/* register everything else */
|
||||
ret = vb2_dvb_register_bus(&dev->frontends, THIS_MODULE, dev,
|
||||
&dev->pci->dev, adapter_nr, 0);
|
||||
&dev->pci->dev, NULL, adapter_nr, 0);
|
||||
|
||||
/* this sequence is necessary to make the tda1004x load its firmware
|
||||
* and to enter analog mode of hybrid boards
|
||||
|
|
|
@ -77,6 +77,7 @@ static int vb2_dvb_register_adapter(struct vb2_dvb_frontends *fe,
|
|||
struct module *module,
|
||||
void *adapter_priv,
|
||||
struct device *device,
|
||||
struct media_device *mdev,
|
||||
char *adapter_name,
|
||||
short *adapter_nr,
|
||||
int mfe_shared)
|
||||
|
@ -94,7 +95,10 @@ static int vb2_dvb_register_adapter(struct vb2_dvb_frontends *fe,
|
|||
}
|
||||
fe->adapter.priv = adapter_priv;
|
||||
fe->adapter.mfe_shared = mfe_shared;
|
||||
|
||||
#ifdef CONFIG_MEDIA_CONTROLLER_DVB
|
||||
if (mdev)
|
||||
fe->adapter.mdev = mdev;
|
||||
#endif
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -193,6 +197,7 @@ int vb2_dvb_register_bus(struct vb2_dvb_frontends *f,
|
|||
struct module *module,
|
||||
void *adapter_priv,
|
||||
struct device *device,
|
||||
struct media_device *mdev,
|
||||
short *adapter_nr,
|
||||
int mfe_shared)
|
||||
{
|
||||
|
@ -207,7 +212,7 @@ int vb2_dvb_register_bus(struct vb2_dvb_frontends *f,
|
|||
}
|
||||
|
||||
/* Bring up the adapter */
|
||||
res = vb2_dvb_register_adapter(f, module, adapter_priv, device,
|
||||
res = vb2_dvb_register_adapter(f, module, adapter_priv, device, mdev,
|
||||
fe->dvb.name, adapter_nr, mfe_shared);
|
||||
if (res < 0) {
|
||||
pr_warn("vb2_dvb_register_adapter failed (errno = %d)\n", res);
|
||||
|
@ -224,7 +229,11 @@ int vb2_dvb_register_bus(struct vb2_dvb_frontends *f,
|
|||
fe->dvb.name, res);
|
||||
goto err;
|
||||
}
|
||||
res = dvb_create_media_graph(&f->adapter, false);
|
||||
if (res < 0)
|
||||
goto err;
|
||||
}
|
||||
|
||||
mutex_unlock(&f->lock);
|
||||
return 0;
|
||||
|
||||
|
|
|
@ -8,6 +8,10 @@
|
|||
#include <dvb_frontend.h>
|
||||
|
||||
#include <media/videobuf2-v4l2.h>
|
||||
|
||||
/* We don't actually need to include media-device.h here */
|
||||
struct media_device;
|
||||
|
||||
/*
|
||||
* TODO: This header file should be replaced with videobuf2-core.h
|
||||
* Currently, vb2_thread is not a stuff of videobuf2-core,
|
||||
|
@ -50,6 +54,7 @@ int vb2_dvb_register_bus(struct vb2_dvb_frontends *f,
|
|||
struct module *module,
|
||||
void *adapter_priv,
|
||||
struct device *device,
|
||||
struct media_device *mdev,
|
||||
short *adapter_nr,
|
||||
int mfe_shared);
|
||||
|
||||
|
|
Loading…
Reference in New Issue