From: dalon.zhang Date: Fri, 17 Jul 2015 07:12:06 +0000 (+0800) Subject: uvc: support the query of iommu_enabled X-Git-Tag: firefly_0821_release~3890 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=809bc041c8a6b9f89fde7ee2905c08dd8451ca55;p=firefly-linux-kernel-4.4.55.git uvc: support the query of iommu_enabled --- diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c index b2dc32623a71..196198fe873f 100644 --- a/drivers/media/usb/uvc/uvc_v4l2.c +++ b/drivers/media/usb/uvc/uvc_v4l2.c @@ -28,7 +28,7 @@ #include #include #include - +#include #include "uvcvideo.h" /* ------------------------------------------------------------------------ @@ -558,6 +558,8 @@ static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg) case VIDIOC_QUERYCAP: { struct v4l2_capability *cap = arg; + struct device_node *vpu_node; + int vpu_iommu_enabled = 0; memset(cap, 0, sizeof *cap); strlcpy(cap->driver, "uvcvideo", sizeof cap->driver); @@ -573,6 +575,13 @@ static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg) else cap->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING; + vpu_node = of_find_node_by_name(NULL, "vpu_service"); + if(vpu_node){ + ret = of_property_read_u32(vpu_node, "iommu_enabled", &vpu_iommu_enabled); + }else{ + printk("get vpu_node failed,vpu_iommu_enabled == 0 !!!!!!\n"); + } + cap->reserved[0] = vpu_iommu_enabled; break; }