OSDN Git Service

media: uvcvideo: Use DIV_ROUND_CLOSEST directly to make it readable
authorzhong jiang <zhongjiang@huawei.com>
Wed, 9 Oct 2019 14:55:24 +0000 (16:55 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 27 Nov 2020 09:19:29 +0000 (10:19 +0100)
The kernel.h macro DIV_ROUND_CLOSEST performs the computation (x + d/2)/d
but is perhaps more readable.

Signed-off-by: zhong jiang <zhongjiang@huawei.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/usb/uvc/uvc_ctrl.c

index f479d89..011e694 100644 (file)
@@ -1608,8 +1608,8 @@ int uvc_ctrl_set(struct uvc_fh *handle,
                if (step == 0)
                        step = 1;
 
-               xctrl->value = min + ((u32)(xctrl->value - min) + step / 2)
-                            / step * step;
+               xctrl->value = min + DIV_ROUND_CLOSEST((u32)(xctrl->value - min),
+                                                       step) * step;
                if (mapping->data_type == UVC_CTRL_DATA_TYPE_SIGNED)
                        xctrl->value = clamp(xctrl->value, min, max);
                else