From: Lee Jones <lee@kernel.org>
To: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: ChiaEn Wu <chiaen_wu@richtek.com>,
pavel@ucw.cz, matthias.bgg@gmail.com,
linux-kernel@vger.kernel.org, linux-leds@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, peterwu.pub@gmail.com,
cy_huang@richtek.com
Subject: Re: [PATCH] leds: mt6360: Fix the second LED can not enable torch mode by V4L2
Date: Thu, 11 Apr 2024 07:55:11 +0100 [thread overview]
Message-ID: <20240411065511.GB6194@google.com> (raw)
In-Reply-To: <c98ea7c9-6c9b-466d-bc49-ec76874ac6da@collabora.com>
On Tue, 09 Apr 2024, AngeloGioacchino Del Regno wrote:
Not sure why, but this mail was sent unthreaded from the original.
> Il 09/04/24 12:21, ChiaEn Wu ha scritto:
> > V4L2 will disable strobe mode of the LED device when enable torch mode,
> > but this logic will conflict with the "priv->fled_torch_used"
> > in "mt6360_strobe_set()". So after enabling torch mode of the first
> > LED, the second LED will not be able to enable torch mode correctly.
> >
> > Therefore, at the beginning of "mt6360_strobe_set()", check whether the
> > state of the upcoming change and the current LED device state are the
> > same, so as to avoid the above problem.
> >
> > Signed-off-by: ChiaEn Wu <chiaen_wu@richtek.com>
> > ---
> > drivers/leds/flash/leds-mt6360.c | 12 +++++++++++-
> > 1 file changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/leds/flash/leds-mt6360.c b/drivers/leds/flash/leds-mt6360.c
> > index a90de82f4568..1b75b4d36834 100644
> > --- a/drivers/leds/flash/leds-mt6360.c
> > +++ b/drivers/leds/flash/leds-mt6360.c
> > @@ -241,10 +241,20 @@ static int mt6360_strobe_set(struct led_classdev_flash *fl_cdev, bool state)
> > u32 enable_mask = MT6360_STROBEN_MASK | MT6360_FLCSEN_MASK(led->led_no);
> > u32 val = state ? MT6360_FLCSEN_MASK(led->led_no) : 0;
> > u32 prev = priv->fled_strobe_used, curr;
> > - int ret;
> > + int ret = 0;
>
> I prefer that you leave ret uninitialized here, and...
What's the reason for this?
> > mutex_lock(&priv->lock);
> > + /*
> > + * If the state of the upcoming change is the same as the current LED
> > + * device state, then skip the subsequent code to avoid conflict
> > + * with the flow of turning on LED torch mode in V4L2.
> > + */
> > + if (state == !!(BIT(led->led_no) & prev)) {
> > + dev_info(lcdev->dev, "No change in strobe state [0x%x]\n", prev);
>
> ...that you do here, instead
>
> ret = 0;
> goto unlock;
>
> With that addressed,
>
> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collaobra.com>
>
>
--
Lee Jones [李琼斯]
WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee@kernel.org>
To: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: ChiaEn Wu <chiaen_wu@richtek.com>,
pavel@ucw.cz, matthias.bgg@gmail.com,
linux-kernel@vger.kernel.org, linux-leds@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, peterwu.pub@gmail.com,
cy_huang@richtek.com
Subject: Re: [PATCH] leds: mt6360: Fix the second LED can not enable torch mode by V4L2
Date: Thu, 11 Apr 2024 07:55:11 +0100 [thread overview]
Message-ID: <20240411065511.GB6194@google.com> (raw)
In-Reply-To: <c98ea7c9-6c9b-466d-bc49-ec76874ac6da@collabora.com>
On Tue, 09 Apr 2024, AngeloGioacchino Del Regno wrote:
Not sure why, but this mail was sent unthreaded from the original.
> Il 09/04/24 12:21, ChiaEn Wu ha scritto:
> > V4L2 will disable strobe mode of the LED device when enable torch mode,
> > but this logic will conflict with the "priv->fled_torch_used"
> > in "mt6360_strobe_set()". So after enabling torch mode of the first
> > LED, the second LED will not be able to enable torch mode correctly.
> >
> > Therefore, at the beginning of "mt6360_strobe_set()", check whether the
> > state of the upcoming change and the current LED device state are the
> > same, so as to avoid the above problem.
> >
> > Signed-off-by: ChiaEn Wu <chiaen_wu@richtek.com>
> > ---
> > drivers/leds/flash/leds-mt6360.c | 12 +++++++++++-
> > 1 file changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/leds/flash/leds-mt6360.c b/drivers/leds/flash/leds-mt6360.c
> > index a90de82f4568..1b75b4d36834 100644
> > --- a/drivers/leds/flash/leds-mt6360.c
> > +++ b/drivers/leds/flash/leds-mt6360.c
> > @@ -241,10 +241,20 @@ static int mt6360_strobe_set(struct led_classdev_flash *fl_cdev, bool state)
> > u32 enable_mask = MT6360_STROBEN_MASK | MT6360_FLCSEN_MASK(led->led_no);
> > u32 val = state ? MT6360_FLCSEN_MASK(led->led_no) : 0;
> > u32 prev = priv->fled_strobe_used, curr;
> > - int ret;
> > + int ret = 0;
>
> I prefer that you leave ret uninitialized here, and...
What's the reason for this?
> > mutex_lock(&priv->lock);
> > + /*
> > + * If the state of the upcoming change is the same as the current LED
> > + * device state, then skip the subsequent code to avoid conflict
> > + * with the flow of turning on LED torch mode in V4L2.
> > + */
> > + if (state == !!(BIT(led->led_no) & prev)) {
> > + dev_info(lcdev->dev, "No change in strobe state [0x%x]\n", prev);
>
> ...that you do here, instead
>
> ret = 0;
> goto unlock;
>
> With that addressed,
>
> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collaobra.com>
>
>
--
Lee Jones [李琼斯]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2024-04-11 6:55 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-09 10:21 [PATCH] leds: mt6360: Fix the second LED can not enable torch mode by V4L2 ChiaEn Wu
2024-04-09 10:21 ` ChiaEn Wu
2024-04-09 11:45 ` AngeloGioacchino Del Regno
2024-04-09 11:45 ` AngeloGioacchino Del Regno
2024-04-11 6:55 ` Lee Jones [this message]
2024-04-11 6:55 ` Lee Jones
-- strict thread matches above, loose matches on Subject: below --
2024-04-09 10:21 ChiaEn Wu
2024-04-09 10:21 ChiaEn Wu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240411065511.GB6194@google.com \
--to=lee@kernel.org \
--cc=angelogioacchino.delregno@collabora.com \
--cc=chiaen_wu@richtek.com \
--cc=cy_huang@richtek.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=pavel@ucw.cz \
--cc=peterwu.pub@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.