Messages in this thread | | | Date | Tue, 29 Sep 2015 09:26:27 +0200 | From | Jacek Anaszewski <> | Subject | Re: [PATCH v2 12/12] media: flash: use led_set_brightness_sync for torch brightness |
| |
Hi Pavel,
Thanks for the review.
On 09/28/2015 10:37 PM, Pavel Machek wrote: > On Mon 2015-09-28 15:07:21, Jacek Anaszewski wrote: >> LED subsystem shifted responsibility for choosing between SYNC or ASYNC >> way of setting brightness from drivers to the caller. Adapt the wrapper >> to those changes. > > Umm. Maybe right patch, but wrong position in the queue, no? > > If I understand changelog correctly, LED flashes will be subtly broken > before this patch is applied. > > I guess this patch should be moved sooner so everything works at each > position in bisect...?
Moving it wouldn't improve anything. It would have to be merged with patch 7/12 [1]. However, as you mentioned, LED flashes before this patch will be broken only subtly, i.e. torch brightness will be set from a work queue task and not synchronously. It would be barely noticeable. Nonetheless, I can merge the patches in the next version of the patch set.
[1] https://lkml.org/lkml/2015/9/28/322
> Best regards, > Pavel > >> Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com> >> Cc: Sakari Ailus <sakari.ailus@linux.intel.com> >> Cc: Pavel Machek <pavel@ucw.cz> >> Cc: linux-media@vger.kernel.org >> --- >> drivers/media/v4l2-core/v4l2-flash-led-class.c | 8 ++++---- >> 1 file changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/media/v4l2-core/v4l2-flash-led-class.c b/drivers/media/v4l2-core/v4l2-flash-led-class.c >> index 5bdfb8d..5d67335 100644 >> --- a/drivers/media/v4l2-core/v4l2-flash-led-class.c >> +++ b/drivers/media/v4l2-core/v4l2-flash-led-class.c >> @@ -107,10 +107,10 @@ static void v4l2_flash_set_led_brightness(struct v4l2_flash *v4l2_flash, >> if (ctrls[LED_MODE]->val != V4L2_FLASH_LED_MODE_TORCH) >> return; >> >> - led_set_brightness(&v4l2_flash->fled_cdev->led_cdev, >> + led_set_brightness_sync(&v4l2_flash->fled_cdev->led_cdev, >> brightness); >> } else { >> - led_set_brightness(&v4l2_flash->iled_cdev->led_cdev, >> + led_set_brightness_sync(&v4l2_flash->iled_cdev->led_cdev, >> brightness); >> } >> } >> @@ -206,11 +206,11 @@ static int v4l2_flash_s_ctrl(struct v4l2_ctrl *c) >> case V4L2_CID_FLASH_LED_MODE: >> switch (c->val) { >> case V4L2_FLASH_LED_MODE_NONE: >> - led_set_brightness(led_cdev, LED_OFF); >> + led_set_brightness_sync(led_cdev, LED_OFF); >> return led_set_flash_strobe(fled_cdev, false); >> case V4L2_FLASH_LED_MODE_FLASH: >> /* Turn the torch LED off */ >> - led_set_brightness(led_cdev, LED_OFF); >> + led_set_brightness_sync(led_cdev, LED_OFF); >> if (ctrls[STROBE_SOURCE]) { >> external_strobe = (ctrls[STROBE_SOURCE]->val == >> V4L2_FLASH_STROBE_SOURCE_EXTERNAL); >
-- Best Regards, Jacek Anaszewski
| |