Message ID | 1443445641-9529-13-git-send-email-j.anaszewski@samsung.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers |
Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from <linux-media-owner@vger.kernel.org>) id 1ZgYAX-0005gf-B4; Mon, 28 Sep 2015 15:08:37 +0200 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.76/mailfrontend-6) with esmtp id 1ZgYAU-0006sY-5e; Mon, 28 Sep 2015 15:08:36 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933866AbbI1NIH (ORCPT <rfc822;mkrufky@linuxtv.org> + 1 other); Mon, 28 Sep 2015 09:08:07 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:54500 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933854AbbI1NIE (ORCPT <rfc822;linux-media@vger.kernel.org>); Mon, 28 Sep 2015 09:08:04 -0400 Received: from epcpsbgm2new.samsung.com (epcpsbgm2 [203.254.230.27]) by mailout4.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NVE00N2B1SWMP90@mailout4.samsung.com>; Mon, 28 Sep 2015 22:08:03 +0900 (KST) X-AuditID: cbfee61b-f79d56d0000048c5-08-56093bb2ae98 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm2new.samsung.com (EPCPMTA) with SMTP id D4.86.18629.2BB39065; Mon, 28 Sep 2015 22:08:03 +0900 (KST) Received: from AMDC2362.DIGITAL.local ([106.120.53.23]) by mmp2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0NVE005PU1SC7X00@mmp2.samsung.com>; Mon, 28 Sep 2015 22:08:02 +0900 (KST) From: Jacek Anaszewski <j.anaszewski@samsung.com> To: linux-leds@vger.kernel.org Cc: linux-kernel@vger.kernel.org, sakari.ailus@linux.intel.com, andrew@lunn.ch, rpurdie@rpsys.net, Jacek Anaszewski <j.anaszewski@samsung.com>, Pavel Machek <pavel@ucw.cz>, linux-media@vger.kernel.org Subject: [PATCH v2 12/12] media: flash: use led_set_brightness_sync for torch brightness Date: Mon, 28 Sep 2015 15:07:21 +0200 Message-id: <1443445641-9529-13-git-send-email-j.anaszewski@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1443445641-9529-1-git-send-email-j.anaszewski@samsung.com> References: <1443445641-9529-1-git-send-email-j.anaszewski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprLLMWRmVeSWpSXmKPExsVy+t9jQd3N1pxhBrP+s1icv3uI2aL36nNG i8u75rBZbH2zjtGiZ8NWVou7p46yWeze9ZTV4tOWb0wOHB7zTgZ67Nzxmcljz/wfrB59W1Yx eqxY/Z3d4/MmuQC2KC6blNSczLLUIn27BK6M5fP9Czr4Kp5Mm8PawPiHu4uRk0NCwESi79sh dghbTOLCvfVsXYxcHEICsxglHk9tZoVwfjJKzJv2gAWkik3AUOLni9dMXYwcHCICchI7z1SC hJkFzjBKvP+rAGILC0RJbNx8jhnEZhFQlfg9+yWYzSvgITFj4wtGkFYJAQWJOZNsQMKcQOH1 37uZQGwhAXeJh7vPs01g5F3AyLCKUSK1ILmgOCk91ygvtVyvODG3uDQvXS85P3cTIzjQnknv YDy8y/0QowAHoxIP7wdNjjAh1sSy4srcQ4wSHMxKIrxOopxhQrwpiZVVqUX58UWlOanFhxil OViUxHlvHGIIExJITyxJzU5NLUgtgskycXBKNTBu8khflF1kXaUw/3LuSqkF2lp8YhoPW5f4 XeE+UzXLaWZ191/BFOGG6ovaPpfneyb6VIjPfOk4R6zix4T360ykimXvWaybdMouXjTg2y3X iessotbFCx68JTu5xlT3wZM1yqVNJ9JF1n9wMpqfZepQtPUL7/WjEru4ZfuzDwb92/zHXtTv d7sSS3FGoqEWc1FxIgAkOMRxMAIAAA== Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: <linux-media.vger.kernel.org> X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 6.0.0.2142326, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2015.9.28.130015 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' MULTIPLE_RCPTS 0.1, HTML_00_01 0.05, HTML_00_10 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1900_1999 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, NO_URI_HTTPS 0, REFERENCES 0, SINGLE_URI_IN_BODY 0, URI_ENDS_IN_HTML 0, __ANY_URI 0, __CP_URI_IN_BODY 0, __FRAUD_BADTHINGS 0, __HAS_FROM 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __IN_REP_TO 0, __MIME_TEXT_ONLY 0, __MULTIPLE_RCPTS_CC_X2 0, __REFERENCES 0, __SANE_MSGID 0, __SINGLE_URI_TEXT 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_IN_BODY 0, __URI_NO_WWW 0, __URI_NS ' |
Commit Message
Jacek Anaszewski
Sept. 28, 2015, 1:07 p.m. UTC
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.
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(-)
Comments
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...? 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);
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); >
On Tue 2015-09-29 09:26:27, Jacek Anaszewski wrote: > 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. Ok, flash firing a tiny bit later is probably not huge problem. I guess it is best to leave the patches as is. Best regards, Pavel
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);