The v4l2_fh associated with an open file handle is now guaranteed
to be available in file->private_data, initialised by v4l2_fh_add().

Access the v4l2_fh, and from there the driver-specific structure,
from the file * in all ioctl handlers.

Signed-off-by: Jacopo Mondi <jacopo.mo...@ideasonboard.com>
---
 drivers/media/usb/hdpvr/hdpvr-video.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/drivers/media/usb/hdpvr/hdpvr-video.c 
b/drivers/media/usb/hdpvr/hdpvr-video.c
index 
6c6e467f85549e86598e73d29352a84de7df2f4d..8a5c2c5227ebe6f64bf44fff50dd4918f4f5394e
 100644
--- a/drivers/media/usb/hdpvr/hdpvr-video.c
+++ b/drivers/media/usb/hdpvr/hdpvr-video.c
@@ -52,6 +52,11 @@ struct hdpvr_fh {
        bool legacy_mode;
 };
 
+static inline struct hdpvr_fh *file_to_hdpvr_fh(struct file *file)
+{
+       return container_of(file_to_v4l2_fh(file), struct hdpvr_fh, fh);
+}
+
 static uint list_size(struct list_head *list)
 {
        struct list_head *tmp;
@@ -589,7 +594,7 @@ static int vidioc_s_std(struct file *file, void *_fh,
                        v4l2_std_id std)
 {
        struct hdpvr_device *dev = video_drvdata(file);
-       struct hdpvr_fh *fh = _fh;
+       struct hdpvr_fh *fh = file_to_hdpvr_fh(file);
        u8 std_type = 1;
 
        if (!fh->legacy_mode && dev->options.video_input == HDPVR_COMPONENT)
@@ -609,7 +614,8 @@ static int vidioc_g_std(struct file *file, void *_fh,
                        v4l2_std_id *std)
 {
        struct hdpvr_device *dev = video_drvdata(file);
-       struct hdpvr_fh *fh = _fh;
+       struct hdpvr_fh *fh = file_to_hdpvr_fh(file);
+
 
        if (!fh->legacy_mode && dev->options.video_input == HDPVR_COMPONENT)
                return -ENODATA;
@@ -620,8 +626,8 @@ static int vidioc_g_std(struct file *file, void *_fh,
 static int vidioc_querystd(struct file *file, void *_fh, v4l2_std_id *a)
 {
        struct hdpvr_device *dev = video_drvdata(file);
+       struct hdpvr_fh *fh = file_to_hdpvr_fh(file);
        struct hdpvr_video_info vid_info;
-       struct hdpvr_fh *fh = _fh;
        int ret;
 
        *a = V4L2_STD_UNKNOWN;
@@ -640,7 +646,7 @@ static int vidioc_s_dv_timings(struct file *file, void *_fh,
                                    struct v4l2_dv_timings *timings)
 {
        struct hdpvr_device *dev = video_drvdata(file);
-       struct hdpvr_fh *fh = _fh;
+       struct hdpvr_fh *fh = file_to_hdpvr_fh(file);
        int i;
 
        fh->legacy_mode = false;
@@ -663,7 +669,7 @@ static int vidioc_g_dv_timings(struct file *file, void *_fh,
                                    struct v4l2_dv_timings *timings)
 {
        struct hdpvr_device *dev = video_drvdata(file);
-       struct hdpvr_fh *fh = _fh;
+       struct hdpvr_fh *fh = file_to_hdpvr_fh(file);
 
        fh->legacy_mode = false;
        if (dev->options.video_input)
@@ -676,7 +682,7 @@ static int vidioc_query_dv_timings(struct file *file, void 
*_fh,
                                    struct v4l2_dv_timings *timings)
 {
        struct hdpvr_device *dev = video_drvdata(file);
-       struct hdpvr_fh *fh = _fh;
+       struct hdpvr_fh *fh = file_to_hdpvr_fh(file);
        struct hdpvr_video_info vid_info;
        bool interlaced;
        int ret = 0;
@@ -718,7 +724,7 @@ static int vidioc_enum_dv_timings(struct file *file, void 
*_fh,
                                    struct v4l2_enum_dv_timings *timings)
 {
        struct hdpvr_device *dev = video_drvdata(file);
-       struct hdpvr_fh *fh = _fh;
+       struct hdpvr_fh *fh = file_to_hdpvr_fh(file);
 
        fh->legacy_mode = false;
        memset(timings->reserved, 0, sizeof(timings->reserved));
@@ -734,7 +740,7 @@ static int vidioc_dv_timings_cap(struct file *file, void 
*_fh,
                                    struct v4l2_dv_timings_cap *cap)
 {
        struct hdpvr_device *dev = video_drvdata(file);
-       struct hdpvr_fh *fh = _fh;
+       struct hdpvr_fh *fh = file_to_hdpvr_fh(file);
 
        fh->legacy_mode = false;
        if (dev->options.video_input)
@@ -994,7 +1000,7 @@ static int vidioc_g_fmt_vid_cap(struct file *file, void 
*_fh,
                                struct v4l2_format *f)
 {
        struct hdpvr_device *dev = video_drvdata(file);
-       struct hdpvr_fh *fh = _fh;
+       struct hdpvr_fh *fh = file_to_hdpvr_fh(file);
        int ret;
 
        /*

-- 
2.49.0



_______________________________________________
Mjpeg-users mailing list
Mjpeg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mjpeg-users

Reply via email to