struct v4l2_subdev *subdev;
 
        subdev = tegra_channel_get_remote_source_subdev(chan);
-       if (!v4l2_subdev_has_op(subdev, video, g_dv_timings))
+       if (!v4l2_subdev_has_op(subdev, pad, g_dv_timings))
                return -ENOTTY;
 
        return v4l2_device_call_until_err(chan->video.v4l2_dev, 0,
-                                         video, g_dv_timings, timings);
+                                         pad, g_dv_timings, 0, timings);
 }
 
 static int tegra_channel_s_dv_timings(struct file *file, void *fh,
        int ret;
 
        subdev = tegra_channel_get_remote_source_subdev(chan);
-       if (!v4l2_subdev_has_op(subdev, video, s_dv_timings))
+       if (!v4l2_subdev_has_op(subdev, pad, s_dv_timings))
                return -ENOTTY;
 
        ret = tegra_channel_g_dv_timings(file, fh, &curr_timings);
                return -EBUSY;
 
        ret = v4l2_device_call_until_err(chan->video.v4l2_dev, 0,
-                                        video, s_dv_timings, timings);
+                                        pad, s_dv_timings, 0, timings);
        if (ret)
                return ret;
 
        struct v4l2_subdev *subdev;
 
        subdev = tegra_channel_get_remote_source_subdev(chan);
-       if (!v4l2_subdev_has_op(subdev, video, query_dv_timings))
+       if (!v4l2_subdev_has_op(subdev, pad, query_dv_timings))
                return -ENOTTY;
 
        return v4l2_device_call_until_err(chan->video.v4l2_dev, 0,
-                                         video, query_dv_timings, timings);
+                                         pad, query_dv_timings, 0, timings);
 }
 
 static int tegra_channel_enum_dv_timings(struct file *file, void *fh,