media: v4l2-common: get rid of struct v4l2_discrete_probe
authorMauro Carvalho Chehab <mchehab@s-opensource.com>
Fri, 22 Sep 2017 13:49:27 +0000 (09:49 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Mon, 18 Dec 2017 14:14:57 +0000 (09:14 -0500)
This struct is there just two store two arguments of
v4l2_find_nearest_format(). The other two arguments are passed
as parameter.

IMHO, there isn't much sense on doing that, and that will just
add one more struct to document ;)

So, let's get rid of the struct, passing the parameters directly.

Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/platform/vivid/vivid-vid-cap.c
drivers/media/v4l2-core/v4l2-common.c
include/media/v4l2-common.h

index 0141945..0fbbcde 100644 (file)
@@ -93,11 +93,6 @@ static const struct v4l2_fract webcam_intervals[VIVID_WEBCAM_IVALS] = {
        {  1, 60 },
 };
 
-static const struct v4l2_discrete_probe webcam_probe = {
-       webcam_sizes,
-       VIVID_WEBCAM_SIZES
-};
-
 static int vid_cap_queue_setup(struct vb2_queue *vq,
                       unsigned *nbuffers, unsigned *nplanes,
                       unsigned sizes[], struct device *alloc_devs[])
@@ -578,7 +573,9 @@ int vivid_try_fmt_vid_cap(struct file *file, void *priv,
        mp->field = vivid_field_cap(dev, mp->field);
        if (vivid_is_webcam(dev)) {
                const struct v4l2_frmsize_discrete *sz =
-                       v4l2_find_nearest_format(&webcam_probe, mp->width, mp->height);
+                       v4l2_find_nearest_format(webcam_sizes,
+                                                VIVID_WEBCAM_SIZES,
+                                                mp->width, mp->height);
 
                w = sz->width;
                h = sz->height;
index a5ea1f5..35f20e7 100644 (file)
@@ -371,18 +371,19 @@ void v4l_bound_align_image(u32 *w, unsigned int wmin, unsigned int wmax,
 }
 EXPORT_SYMBOL_GPL(v4l_bound_align_image);
 
-const struct v4l2_frmsize_discrete *v4l2_find_nearest_format(
-               const struct v4l2_discrete_probe *probe,
-               s32 width, s32 height)
+const struct v4l2_frmsize_discrete *
+v4l2_find_nearest_format(const struct v4l2_frmsize_discrete *sizes,
+                         size_t num_sizes,
+                         s32 width, s32 height)
 {
        int i;
        u32 error, min_error = UINT_MAX;
        const struct v4l2_frmsize_discrete *size, *best = NULL;
 
-       if (!probe)
-               return best;
+       if (!sizes)
+               return NULL;
 
-       for (i = 0, size = probe->sizes; i < probe->num_sizes; i++, size++) {
+       for (i = 0, size = sizes; i < num_sizes; i++, size++) {
                error = abs(size->width - width) + abs(size->height - height);
                if (error < min_error) {
                        min_error = error;
index 7dbecbe..835164f 100644 (file)
@@ -249,14 +249,10 @@ void v4l_bound_align_image(unsigned int *w, unsigned int wmin,
                           unsigned int hmax, unsigned int halign,
                           unsigned int salign);
 
-struct v4l2_discrete_probe {
-       const struct v4l2_frmsize_discrete      *sizes;
-       int                                     num_sizes;
-};
-
-const struct v4l2_frmsize_discrete *v4l2_find_nearest_format(
-               const struct v4l2_discrete_probe *probe,
-               s32 width, s32 height);
+const struct v4l2_frmsize_discrete *
+v4l2_find_nearest_format(const struct v4l2_frmsize_discrete *sizes,
+                         const size_t num_sizes,
+                         s32 width, s32 height);
 
 void v4l2_get_timestamp(struct timeval *tv);