summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab2016-02-09 16:46:05 +0100
committerMauro Carvalho Chehab2016-02-10 11:03:29 +0100
commit82e92f4cad6e0c42f8dbe7497b39dec7b3eb7b11 (patch)
tree65f62e0eaf98fb2649f8b72f760c0a6ccd7cc26d
parent[media] saa7134: add media controller support (diff)
downloadkernel-qcow2-linux-82e92f4cad6e0c42f8dbe7497b39dec7b3eb7b11.tar.gz
kernel-qcow2-linux-82e92f4cad6e0c42f8dbe7497b39dec7b3eb7b11.tar.xz
kernel-qcow2-linux-82e92f4cad6e0c42f8dbe7497b39dec7b3eb7b11.zip
[media] au0828: only create V4L2 graph if V4L2 is registered
It doesn't make sense to try to create the analog TV graph, if the device fails to register at V4L2, or if it doesn't have V4L2 support. Thanks to Shuah for pointing this issue. Reported-by: Shuah Khan <shuahkh@osg.samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
-rw-r--r--drivers/media/usb/au0828/au0828-core.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/drivers/media/usb/au0828/au0828-core.c b/drivers/media/usb/au0828/au0828-core.c
index df2bc3f732b6..0a8afbf181c9 100644
--- a/drivers/media/usb/au0828/au0828-core.c
+++ b/drivers/media/usb/au0828/au0828-core.c
@@ -419,8 +419,21 @@ static int au0828_usb_probe(struct usb_interface *interface,
#ifdef CONFIG_VIDEO_AU0828_V4L2
/* Analog TV */
- if (AUVI_INPUT(0).type != AU0828_VMUX_UNDEFINED)
- au0828_analog_register(dev, interface);
+ if (AUVI_INPUT(0).type != AU0828_VMUX_UNDEFINED) {
+ retval = au0828_analog_register(dev, interface);
+ if (retval) {
+ pr_err("%s() au0282_dev_register failed to register on V4L2\n",
+ __func__);
+ goto done;
+ }
+
+ retval = au0828_create_media_graph(dev);
+ if (retval) {
+ pr_err("%s() au0282_dev_register failed to create graph\n",
+ __func__);
+ goto done;
+ }
+ }
#endif
/* Digital TV */
@@ -443,13 +456,6 @@ static int au0828_usb_probe(struct usb_interface *interface,
mutex_unlock(&dev->lock);
- retval = au0828_create_media_graph(dev);
- if (retval) {
- pr_err("%s() au0282_dev_register failed to create graph\n",
- __func__);
- goto done;
- }
-
#ifdef CONFIG_MEDIA_CONTROLLER
retval = media_device_register(dev->media_dev);
#endif