From: Mauro Carvalho Chehab Date: Fri, 22 Sep 2017 13:49:27 +0000 (-0400) Subject: media: v4l2-common: get rid of struct v4l2_discrete_probe X-Git-Tag: v4.19~1636^2~200 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0545629e50af60e7afad9d6023a546aed1081a8e;p=platform%2Fkernel%2Flinux-rpi.git media: v4l2-common: get rid of struct v4l2_discrete_probe 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 Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/platform/vivid/vivid-vid-cap.c b/drivers/media/platform/vivid/vivid-vid-cap.c index 0141945..0fbbcde 100644 --- a/drivers/media/platform/vivid/vivid-vid-cap.c +++ b/drivers/media/platform/vivid/vivid-vid-cap.c @@ -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; diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-core/v4l2-common.c index a5ea1f5..35f20e7 100644 --- a/drivers/media/v4l2-core/v4l2-common.c +++ b/drivers/media/v4l2-core/v4l2-common.c @@ -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; diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h index 7dbecbe..835164f 100644 --- a/include/media/v4l2-common.h +++ b/include/media/v4l2-common.h @@ -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);