All of lore.kernel.org
 help / color / mirror / Atom feed
From: ChiYuan Huang <u0084500@gmail.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: ChiaEn Wu <peterwu.pub@gmail.com>,
	Lee Jones <lee.jones@linaro.org>,
	Daniel Thompson <daniel.thompson@linaro.org>,
	Jingoo Han <jingoohan1@gmail.com>, Pavel Machek <pavel@ucw.cz>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Sebastian Reichel <sre@kernel.org>,
	Chunfeng Yun <chunfeng.yun@mediatek.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Guenter Roeck <linux@roeck-us.net>,
	"Krogerus, Heikki" <heikki.krogerus@linux.intel.com>,
	Helge Deller <deller@gmx.de>, ChiaEn Wu <chiaen_wu@richtek.com>,
	Alice Chen <alice_chen@richtek.com>,
	cy_huang <cy_huang@richtek.com>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Linux LED Subsystem <linux-leds@vger.kernel.org>,
	devicetree <devicetree@vger.kernel.org>,
	linux-arm Mailing List <linux-arm-kernel@lists.infradead.org>,
	"moderated list:ARM/Mediatek SoC support" 
	<linux-mediatek@lists.infradead.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux PM <linux-pm@vger.kernel.org>,
	USB <linux-usb@vger.kernel.org>,
	linux-iio <linux-iio@vger.kernel.org>,
	"open list:FRAMEBUFFER LAYER" <linux-fbdev@vger.kernel.org>,
	szuni chen <szunichen@gmail.com>
Subject: Re: [PATCH v5 11/13] leds: mt6370: Add MediaTek MT6370 current sink type LED Indicator support
Date: Thu, 21 Jul 2022 17:31:29 +0800	[thread overview]
Message-ID: <CADiBU39=kJXLuBd=3reeEVCaAhvkZXASsFYtsi6oEYJjc79dhA@mail.gmail.com> (raw)
In-Reply-To: <CADiBU3_rtVXFX3qdSoc=F-zs9CYiNRmNPOa3RffRJD1Qc5N-bA@mail.gmail.com>

ChiYuan Huang <u0084500@gmail.com> 於 2022年7月20日 週三 下午5:48寫道:
>
> ChiYuan Huang <u0084500@gmail.com> 於 2022年7月20日 週三 下午5:45寫道:
> >
> > On Fri, Jul 15, 2022 at 08:29:42PM +0200, Andy Shevchenko wrote:
> > > On Fri, Jul 15, 2022 at 1:29 PM ChiaEn Wu <peterwu.pub@gmail.com> wrote:
> > > >
> > > > From: ChiYuan Huang <cy_huang@richtek.com>
> > > >
> > > > The MediaTek MT6370 is a highly-integrated smart power management IC,
> > > > which includes a single cell Li-Ion/Li-Polymer switching battery
> > > > charger, a USB Type-C & Power Delivery (PD) controller, dual
> > > > Flash LED current sources, a RGB LED driver, a backlight WLED driver,
> > > > a display bias driver and a general LDO for portable devices.
> > > >
> > > > In MediaTek MT6370, there are four channel current-sink RGB LEDs that
> > > > support hardware pattern for constant current, PWM, and breath mode.
> > > > Isink4 channel can also be used as a CHG_VIN power good indicator.
> > >
> > > ...
> > >
> > > > +         This driver can also be built as a module. If so the module
> > >
> > > so, the
> > >
> > > > +         will be called "leds-mt6370.ko".
> > >
> > > No ".ko".
> > >
> > > Why did you ignore these comments? Please go and fix _everywhere_ in
> > > your series.
> > > It's basically the rule of thumb, if the reviewer gives a comment
> > > against an occurrence of something, go through entire series and check
> > > if there are other places like commented one and address them all.
> > >
> > > ...
> > >
> > > > + * Author: Alice Chen <alice_chen@richtek.com>
> > >
> > > Strange, the commit message doesn't have a corresponding SoB, why?
> > >
> > Yes, there're two authors Alice and me.
> > I'll correct it in next.
> > > ...
> > >
> > > > +#define MT6370_PWM_DUTY                                31
> > > > +#define MT6372_PMW_DUTY                                255
> > >
> > > Looks like these are limits by hardware?
> > > Check with the datasheet if (BIT(x) - 1) makes more sense here.
> > >
> > > ...
> > >
> > > > +       switch (led_no) {
> > > > +       case MT6370_LED_ISNK1:
> > > > +               sel_field = F_LED1_DUTY;
> > > > +               break;
> > > > +       case MT6370_LED_ISNK2:
> > > > +               sel_field = F_LED2_DUTY;
> > > > +               break;
> > > > +       case MT6370_LED_ISNK3:
> > > > +               sel_field = F_LED3_DUTY;
> > > > +               break;
> > > > +       default:
> > > > +               sel_field = F_LED4_DUTY;
> > >
> > > Missed break;
> > >
> > > > +       }
> > >
> > > ...
> > >
> > > > +       switch (led_no) {
> > > > +       case MT6370_LED_ISNK1:
> > > > +               sel_field = F_LED1_FREQ;
> > > > +               break;
> > > > +       case MT6370_LED_ISNK2:
> > > > +               sel_field = F_LED2_FREQ;
> > > > +               break;
> > > > +       case MT6370_LED_ISNK3:
> > > > +               sel_field = F_LED3_FREQ;
> > > > +               break;
> > > > +       default:
> > > > +               sel_field = F_LED4_FREQ;
> > >
> > > Ditto.
> > >
> > > > +       }
> > >
> > > ...
> > >
> > > > +       switch (led_no) {
> > > > +       case MT6370_LED_ISNK1:
> > > > +       case MT6370_LED_ISNK2:
> > > > +       case MT6370_LED_ISNK3:
> > > > +               *base = MT6370_REG_RGB1_TR + led_no * 3;
> > > > +               break;
> > > > +       default:
> > > > +               *base = MT6370_REG_RGB_CHRIND_TR;
> > >
> > > Ditto.
> > > It seems you dropped them for all switch-cases. It's not goot, please
> > > restore them back.
> > >
> > > > +       }
> > >
> > > ...
> > >
> > > > +       u8 val[P_MAX_PATTERNS / 2] = {0};
> > >
> > > { } should suffice
> > >
> > >
> > In the above range selector, we use the 'logic or' to generate the
> typo, it's 'below'.
> > pattern values.
> >
Ah, found in c11 standard 6.7.9 item 21
It is the same as 'static storage duration'.
I will follow your comment to revise it.
Thanks.
> > If to change it from '{0} to '{ }', is it correct?
> > > > +       /*
> > > > +        * Pattern list
> > > > +        * tr1: byte 0, b'[7: 4]
> > > > +        * tr2: byte 0, b'[3: 0]
> > > > +        * tf1: byte 1, b'[7: 4]
> > > > +        * tf2: byte 1, b'[3: 0]
> > > > +        * ton: byte 2, b'[7: 4]
> > > > +        * toff: byte 2, b'[3: 0]
> > > > +        */
> > > > +       for (i = 0; i < P_MAX_PATTERNS; i++) {
> > > > +               curr = pattern + i;
> > > > +
> > > > +               sel_range = i == P_LED_TOFF ? R_LED_TOFF : R_LED_TRFON;
> > > > +
> > > > +               linear_range_get_selector_within(priv->ranges + sel_range,
> > > > +                                                curr->delta_t, &sel);
> > > > +
> > > > +               val[i / 2] |= sel << (4 * ((i + 1) % 2));
> > > > +       }
> > > > +
> > > > +       memcpy(pattern_val, val, 3);
> > > > +       return 0;
> > > > +}
> > >
> > > ...
> > >
> > > > +out:
> > >
> > > out_unlock:
> > >
> > > > +       mutex_unlock(&priv->lock);
> > > > +
> > > > +       return ret;
> > >
> > > ...
> > >
> > > > +out:
> > >
> > > Ditto. And so on.
> > >
> > > > +       mutex_unlock(&priv->lock);
> > > > +
> > > > +       return ret;
> > >
> > > ...
> > >
> > > > +               sub_led = devm_kzalloc(priv->dev,
> > > > +                                      sizeof(*sub_led) * MC_CHANNEL_NUM,
> > > > +                                      GFP_KERNEL);
> > >
> > > NIH devm_kcalloc(). Also check if you really need zeroed data.
> > >
> > Ok, and after the check, I also need to add one line to set the intensity to 0.
> > > > +               if (!sub_led)
> > > > +                       return -ENOMEM;
> > >
> > > ...
> > >
> > > > +                       ret = fwnode_property_read_u32(child, "color", &color);
> > > > +                       if (ret) {
> > > > +                               dev_err(priv->dev,
> > > > +                                       "led %d, no color specified\n",
> > > > +                                       led->index);
> > > > +                               return ret;
> > >
> > > return dev_err_probe(...) ; ?
> > >
> > > Ditto for many places in your entire series.
> > >
> > > > +                       }
> > >
> > > ...
> > >
> > > > +       priv = devm_kzalloc(&pdev->dev,
> > > > +                           struct_size(priv, leds, count), GFP_KERNEL);
> > >
> > > At least one parameter can be placed on the previous line.
> > >
> > > > +       if (!priv)
> > > > +               return -ENOMEM;
> > >
> > > --
> > > With Best Regards,
> > > Andy Shevchenko

WARNING: multiple messages have this Message-ID (diff)
From: ChiYuan Huang <u0084500@gmail.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: "open list:FRAMEBUFFER LAYER" <linux-fbdev@vger.kernel.org>,
	"Krogerus, Heikki" <heikki.krogerus@linux.intel.com>,
	Pavel Machek <pavel@ucw.cz>, Alice Chen <alice_chen@richtek.com>,
	linux-iio <linux-iio@vger.kernel.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	cy_huang <cy_huang@richtek.com>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Lee Jones <lee.jones@linaro.org>,
	Linux LED Subsystem <linux-leds@vger.kernel.org>,
	Daniel Thompson <daniel.thompson@linaro.org>,
	Helge Deller <deller@gmx.de>, Rob Herring <robh+dt@kernel.org>,
	Chunfeng Yun <chunfeng.yun@mediatek.com>,
	Guenter Roeck <linux@roeck-us.net>,
	devicetree <devicetree@vger.kernel.org>,
	Linux PM <linux-pm@vger.kernel.org>,
	szuni chen <szunichen@gmail.com>, Mark Brown <broonie@kernel.org>,
	"moderated list:ARM/Mediatek SoC support"
	<linux-mediatek@lists.infradead.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	ChiaEn Wu <peterwu.pub@gmail.com>,
	linux-arm Mailing List <linux-arm-kernel@lists.infradead.org>,
	Jingoo Han <jingoohan1@gmail.com>,
	USB <linux-usb@vger.kernel.org>,
	Sebastian Reichel <sre@kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	ChiaEn Wu <chiaen_wu@richtek.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jonathan Cameron <jic23@kernel.org>
Subject: Re: [PATCH v5 11/13] leds: mt6370: Add MediaTek MT6370 current sink type LED Indicator support
Date: Thu, 21 Jul 2022 17:31:29 +0800	[thread overview]
Message-ID: <CADiBU39=kJXLuBd=3reeEVCaAhvkZXASsFYtsi6oEYJjc79dhA@mail.gmail.com> (raw)
In-Reply-To: <CADiBU3_rtVXFX3qdSoc=F-zs9CYiNRmNPOa3RffRJD1Qc5N-bA@mail.gmail.com>

ChiYuan Huang <u0084500@gmail.com> 於 2022年7月20日 週三 下午5:48寫道:
>
> ChiYuan Huang <u0084500@gmail.com> 於 2022年7月20日 週三 下午5:45寫道:
> >
> > On Fri, Jul 15, 2022 at 08:29:42PM +0200, Andy Shevchenko wrote:
> > > On Fri, Jul 15, 2022 at 1:29 PM ChiaEn Wu <peterwu.pub@gmail.com> wrote:
> > > >
> > > > From: ChiYuan Huang <cy_huang@richtek.com>
> > > >
> > > > The MediaTek MT6370 is a highly-integrated smart power management IC,
> > > > which includes a single cell Li-Ion/Li-Polymer switching battery
> > > > charger, a USB Type-C & Power Delivery (PD) controller, dual
> > > > Flash LED current sources, a RGB LED driver, a backlight WLED driver,
> > > > a display bias driver and a general LDO for portable devices.
> > > >
> > > > In MediaTek MT6370, there are four channel current-sink RGB LEDs that
> > > > support hardware pattern for constant current, PWM, and breath mode.
> > > > Isink4 channel can also be used as a CHG_VIN power good indicator.
> > >
> > > ...
> > >
> > > > +         This driver can also be built as a module. If so the module
> > >
> > > so, the
> > >
> > > > +         will be called "leds-mt6370.ko".
> > >
> > > No ".ko".
> > >
> > > Why did you ignore these comments? Please go and fix _everywhere_ in
> > > your series.
> > > It's basically the rule of thumb, if the reviewer gives a comment
> > > against an occurrence of something, go through entire series and check
> > > if there are other places like commented one and address them all.
> > >
> > > ...
> > >
> > > > + * Author: Alice Chen <alice_chen@richtek.com>
> > >
> > > Strange, the commit message doesn't have a corresponding SoB, why?
> > >
> > Yes, there're two authors Alice and me.
> > I'll correct it in next.
> > > ...
> > >
> > > > +#define MT6370_PWM_DUTY                                31
> > > > +#define MT6372_PMW_DUTY                                255
> > >
> > > Looks like these are limits by hardware?
> > > Check with the datasheet if (BIT(x) - 1) makes more sense here.
> > >
> > > ...
> > >
> > > > +       switch (led_no) {
> > > > +       case MT6370_LED_ISNK1:
> > > > +               sel_field = F_LED1_DUTY;
> > > > +               break;
> > > > +       case MT6370_LED_ISNK2:
> > > > +               sel_field = F_LED2_DUTY;
> > > > +               break;
> > > > +       case MT6370_LED_ISNK3:
> > > > +               sel_field = F_LED3_DUTY;
> > > > +               break;
> > > > +       default:
> > > > +               sel_field = F_LED4_DUTY;
> > >
> > > Missed break;
> > >
> > > > +       }
> > >
> > > ...
> > >
> > > > +       switch (led_no) {
> > > > +       case MT6370_LED_ISNK1:
> > > > +               sel_field = F_LED1_FREQ;
> > > > +               break;
> > > > +       case MT6370_LED_ISNK2:
> > > > +               sel_field = F_LED2_FREQ;
> > > > +               break;
> > > > +       case MT6370_LED_ISNK3:
> > > > +               sel_field = F_LED3_FREQ;
> > > > +               break;
> > > > +       default:
> > > > +               sel_field = F_LED4_FREQ;
> > >
> > > Ditto.
> > >
> > > > +       }
> > >
> > > ...
> > >
> > > > +       switch (led_no) {
> > > > +       case MT6370_LED_ISNK1:
> > > > +       case MT6370_LED_ISNK2:
> > > > +       case MT6370_LED_ISNK3:
> > > > +               *base = MT6370_REG_RGB1_TR + led_no * 3;
> > > > +               break;
> > > > +       default:
> > > > +               *base = MT6370_REG_RGB_CHRIND_TR;
> > >
> > > Ditto.
> > > It seems you dropped them for all switch-cases. It's not goot, please
> > > restore them back.
> > >
> > > > +       }
> > >
> > > ...
> > >
> > > > +       u8 val[P_MAX_PATTERNS / 2] = {0};
> > >
> > > { } should suffice
> > >
> > >
> > In the above range selector, we use the 'logic or' to generate the
> typo, it's 'below'.
> > pattern values.
> >
Ah, found in c11 standard 6.7.9 item 21
It is the same as 'static storage duration'.
I will follow your comment to revise it.
Thanks.
> > If to change it from '{0} to '{ }', is it correct?
> > > > +       /*
> > > > +        * Pattern list
> > > > +        * tr1: byte 0, b'[7: 4]
> > > > +        * tr2: byte 0, b'[3: 0]
> > > > +        * tf1: byte 1, b'[7: 4]
> > > > +        * tf2: byte 1, b'[3: 0]
> > > > +        * ton: byte 2, b'[7: 4]
> > > > +        * toff: byte 2, b'[3: 0]
> > > > +        */
> > > > +       for (i = 0; i < P_MAX_PATTERNS; i++) {
> > > > +               curr = pattern + i;
> > > > +
> > > > +               sel_range = i == P_LED_TOFF ? R_LED_TOFF : R_LED_TRFON;
> > > > +
> > > > +               linear_range_get_selector_within(priv->ranges + sel_range,
> > > > +                                                curr->delta_t, &sel);
> > > > +
> > > > +               val[i / 2] |= sel << (4 * ((i + 1) % 2));
> > > > +       }
> > > > +
> > > > +       memcpy(pattern_val, val, 3);
> > > > +       return 0;
> > > > +}
> > >
> > > ...
> > >
> > > > +out:
> > >
> > > out_unlock:
> > >
> > > > +       mutex_unlock(&priv->lock);
> > > > +
> > > > +       return ret;
> > >
> > > ...
> > >
> > > > +out:
> > >
> > > Ditto. And so on.
> > >
> > > > +       mutex_unlock(&priv->lock);
> > > > +
> > > > +       return ret;
> > >
> > > ...
> > >
> > > > +               sub_led = devm_kzalloc(priv->dev,
> > > > +                                      sizeof(*sub_led) * MC_CHANNEL_NUM,
> > > > +                                      GFP_KERNEL);
> > >
> > > NIH devm_kcalloc(). Also check if you really need zeroed data.
> > >
> > Ok, and after the check, I also need to add one line to set the intensity to 0.
> > > > +               if (!sub_led)
> > > > +                       return -ENOMEM;
> > >
> > > ...
> > >
> > > > +                       ret = fwnode_property_read_u32(child, "color", &color);
> > > > +                       if (ret) {
> > > > +                               dev_err(priv->dev,
> > > > +                                       "led %d, no color specified\n",
> > > > +                                       led->index);
> > > > +                               return ret;
> > >
> > > return dev_err_probe(...) ; ?
> > >
> > > Ditto for many places in your entire series.
> > >
> > > > +                       }
> > >
> > > ...
> > >
> > > > +       priv = devm_kzalloc(&pdev->dev,
> > > > +                           struct_size(priv, leds, count), GFP_KERNEL);
> > >
> > > At least one parameter can be placed on the previous line.
> > >
> > > > +       if (!priv)
> > > > +               return -ENOMEM;
> > >
> > > --
> > > With Best Regards,
> > > Andy Shevchenko

WARNING: multiple messages have this Message-ID (diff)
From: ChiYuan Huang <u0084500@gmail.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: ChiaEn Wu <peterwu.pub@gmail.com>,
	Lee Jones <lee.jones@linaro.org>,
	 Daniel Thompson <daniel.thompson@linaro.org>,
	Jingoo Han <jingoohan1@gmail.com>,  Pavel Machek <pavel@ucw.cz>,
	Rob Herring <robh+dt@kernel.org>,
	 Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	 Matthias Brugger <matthias.bgg@gmail.com>,
	Sebastian Reichel <sre@kernel.org>,
	 Chunfeng Yun <chunfeng.yun@mediatek.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	 Jonathan Cameron <jic23@kernel.org>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Liam Girdwood <lgirdwood@gmail.com>,
	 Mark Brown <broonie@kernel.org>,
	Guenter Roeck <linux@roeck-us.net>,
	 "Krogerus, Heikki" <heikki.krogerus@linux.intel.com>,
	Helge Deller <deller@gmx.de>,  ChiaEn Wu <chiaen_wu@richtek.com>,
	Alice Chen <alice_chen@richtek.com>,
	 cy_huang <cy_huang@richtek.com>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	 Linux LED Subsystem <linux-leds@vger.kernel.org>,
	devicetree <devicetree@vger.kernel.org>,
	 linux-arm Mailing List <linux-arm-kernel@lists.infradead.org>,
	 "moderated list:ARM/Mediatek SoC support"
	<linux-mediatek@lists.infradead.org>,
	 Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux PM <linux-pm@vger.kernel.org>,
	 USB <linux-usb@vger.kernel.org>,
	linux-iio <linux-iio@vger.kernel.org>,
	 "open list:FRAMEBUFFER LAYER" <linux-fbdev@vger.kernel.org>,
	szuni chen <szunichen@gmail.com>
Subject: Re: [PATCH v5 11/13] leds: mt6370: Add MediaTek MT6370 current sink type LED Indicator support
Date: Thu, 21 Jul 2022 17:31:29 +0800	[thread overview]
Message-ID: <CADiBU39=kJXLuBd=3reeEVCaAhvkZXASsFYtsi6oEYJjc79dhA@mail.gmail.com> (raw)
In-Reply-To: <CADiBU3_rtVXFX3qdSoc=F-zs9CYiNRmNPOa3RffRJD1Qc5N-bA@mail.gmail.com>

ChiYuan Huang <u0084500@gmail.com> 於 2022年7月20日 週三 下午5:48寫道:
>
> ChiYuan Huang <u0084500@gmail.com> 於 2022年7月20日 週三 下午5:45寫道:
> >
> > On Fri, Jul 15, 2022 at 08:29:42PM +0200, Andy Shevchenko wrote:
> > > On Fri, Jul 15, 2022 at 1:29 PM ChiaEn Wu <peterwu.pub@gmail.com> wrote:
> > > >
> > > > From: ChiYuan Huang <cy_huang@richtek.com>
> > > >
> > > > The MediaTek MT6370 is a highly-integrated smart power management IC,
> > > > which includes a single cell Li-Ion/Li-Polymer switching battery
> > > > charger, a USB Type-C & Power Delivery (PD) controller, dual
> > > > Flash LED current sources, a RGB LED driver, a backlight WLED driver,
> > > > a display bias driver and a general LDO for portable devices.
> > > >
> > > > In MediaTek MT6370, there are four channel current-sink RGB LEDs that
> > > > support hardware pattern for constant current, PWM, and breath mode.
> > > > Isink4 channel can also be used as a CHG_VIN power good indicator.
> > >
> > > ...
> > >
> > > > +         This driver can also be built as a module. If so the module
> > >
> > > so, the
> > >
> > > > +         will be called "leds-mt6370.ko".
> > >
> > > No ".ko".
> > >
> > > Why did you ignore these comments? Please go and fix _everywhere_ in
> > > your series.
> > > It's basically the rule of thumb, if the reviewer gives a comment
> > > against an occurrence of something, go through entire series and check
> > > if there are other places like commented one and address them all.
> > >
> > > ...
> > >
> > > > + * Author: Alice Chen <alice_chen@richtek.com>
> > >
> > > Strange, the commit message doesn't have a corresponding SoB, why?
> > >
> > Yes, there're two authors Alice and me.
> > I'll correct it in next.
> > > ...
> > >
> > > > +#define MT6370_PWM_DUTY                                31
> > > > +#define MT6372_PMW_DUTY                                255
> > >
> > > Looks like these are limits by hardware?
> > > Check with the datasheet if (BIT(x) - 1) makes more sense here.
> > >
> > > ...
> > >
> > > > +       switch (led_no) {
> > > > +       case MT6370_LED_ISNK1:
> > > > +               sel_field = F_LED1_DUTY;
> > > > +               break;
> > > > +       case MT6370_LED_ISNK2:
> > > > +               sel_field = F_LED2_DUTY;
> > > > +               break;
> > > > +       case MT6370_LED_ISNK3:
> > > > +               sel_field = F_LED3_DUTY;
> > > > +               break;
> > > > +       default:
> > > > +               sel_field = F_LED4_DUTY;
> > >
> > > Missed break;
> > >
> > > > +       }
> > >
> > > ...
> > >
> > > > +       switch (led_no) {
> > > > +       case MT6370_LED_ISNK1:
> > > > +               sel_field = F_LED1_FREQ;
> > > > +               break;
> > > > +       case MT6370_LED_ISNK2:
> > > > +               sel_field = F_LED2_FREQ;
> > > > +               break;
> > > > +       case MT6370_LED_ISNK3:
> > > > +               sel_field = F_LED3_FREQ;
> > > > +               break;
> > > > +       default:
> > > > +               sel_field = F_LED4_FREQ;
> > >
> > > Ditto.
> > >
> > > > +       }
> > >
> > > ...
> > >
> > > > +       switch (led_no) {
> > > > +       case MT6370_LED_ISNK1:
> > > > +       case MT6370_LED_ISNK2:
> > > > +       case MT6370_LED_ISNK3:
> > > > +               *base = MT6370_REG_RGB1_TR + led_no * 3;
> > > > +               break;
> > > > +       default:
> > > > +               *base = MT6370_REG_RGB_CHRIND_TR;
> > >
> > > Ditto.
> > > It seems you dropped them for all switch-cases. It's not goot, please
> > > restore them back.
> > >
> > > > +       }
> > >
> > > ...
> > >
> > > > +       u8 val[P_MAX_PATTERNS / 2] = {0};
> > >
> > > { } should suffice
> > >
> > >
> > In the above range selector, we use the 'logic or' to generate the
> typo, it's 'below'.
> > pattern values.
> >
Ah, found in c11 standard 6.7.9 item 21
It is the same as 'static storage duration'.
I will follow your comment to revise it.
Thanks.
> > If to change it from '{0} to '{ }', is it correct?
> > > > +       /*
> > > > +        * Pattern list
> > > > +        * tr1: byte 0, b'[7: 4]
> > > > +        * tr2: byte 0, b'[3: 0]
> > > > +        * tf1: byte 1, b'[7: 4]
> > > > +        * tf2: byte 1, b'[3: 0]
> > > > +        * ton: byte 2, b'[7: 4]
> > > > +        * toff: byte 2, b'[3: 0]
> > > > +        */
> > > > +       for (i = 0; i < P_MAX_PATTERNS; i++) {
> > > > +               curr = pattern + i;
> > > > +
> > > > +               sel_range = i == P_LED_TOFF ? R_LED_TOFF : R_LED_TRFON;
> > > > +
> > > > +               linear_range_get_selector_within(priv->ranges + sel_range,
> > > > +                                                curr->delta_t, &sel);
> > > > +
> > > > +               val[i / 2] |= sel << (4 * ((i + 1) % 2));
> > > > +       }
> > > > +
> > > > +       memcpy(pattern_val, val, 3);
> > > > +       return 0;
> > > > +}
> > >
> > > ...
> > >
> > > > +out:
> > >
> > > out_unlock:
> > >
> > > > +       mutex_unlock(&priv->lock);
> > > > +
> > > > +       return ret;
> > >
> > > ...
> > >
> > > > +out:
> > >
> > > Ditto. And so on.
> > >
> > > > +       mutex_unlock(&priv->lock);
> > > > +
> > > > +       return ret;
> > >
> > > ...
> > >
> > > > +               sub_led = devm_kzalloc(priv->dev,
> > > > +                                      sizeof(*sub_led) * MC_CHANNEL_NUM,
> > > > +                                      GFP_KERNEL);
> > >
> > > NIH devm_kcalloc(). Also check if you really need zeroed data.
> > >
> > Ok, and after the check, I also need to add one line to set the intensity to 0.
> > > > +               if (!sub_led)
> > > > +                       return -ENOMEM;
> > >
> > > ...
> > >
> > > > +                       ret = fwnode_property_read_u32(child, "color", &color);
> > > > +                       if (ret) {
> > > > +                               dev_err(priv->dev,
> > > > +                                       "led %d, no color specified\n",
> > > > +                                       led->index);
> > > > +                               return ret;
> > >
> > > return dev_err_probe(...) ; ?
> > >
> > > Ditto for many places in your entire series.
> > >
> > > > +                       }
> > >
> > > ...
> > >
> > > > +       priv = devm_kzalloc(&pdev->dev,
> > > > +                           struct_size(priv, leds, count), GFP_KERNEL);
> > >
> > > At least one parameter can be placed on the previous line.
> > >
> > > > +       if (!priv)
> > > > +               return -ENOMEM;
> > >
> > > --
> > > With Best Regards,
> > > Andy Shevchenko

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-07-21  9:31 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-15 11:25 [PATCH v5 00/13] Add MediaTek MT6370 PMIC support ChiaEn Wu
2022-07-15 11:25 ` ChiaEn Wu
2022-07-15 11:25 ` ChiaEn Wu
2022-07-15 11:25 ` [PATCH v5 01/13] dt-bindings: usb: Add MediaTek MT6370 TCPC ChiaEn Wu
2022-07-15 11:25   ` ChiaEn Wu
2022-07-15 11:25   ` ChiaEn Wu
2022-07-15 11:25 ` [PATCH v5 02/13] dt-bindings: power: supply: Add MediaTek MT6370 Charger ChiaEn Wu
2022-07-15 11:25   ` ChiaEn Wu
2022-07-15 11:25   ` ChiaEn Wu
2022-07-15 11:25 ` [PATCH v5 03/13] dt-bindings: leds: mt6370: Add MediaTek MT6370 current sink type LED indicator ChiaEn Wu
2022-07-15 11:25   ` ChiaEn Wu
2022-07-15 11:25   ` ChiaEn Wu
2022-07-15 11:25 ` [PATCH v5 04/13] dt-bindings: leds: Add MediaTek MT6370 flashlight ChiaEn Wu
2022-07-15 11:25   ` ChiaEn Wu
2022-07-15 11:25   ` ChiaEn Wu
2022-07-15 11:25 ` [PATCH v5 05/13] dt-bindings: backlight: Add MediaTek MT6370 backlight ChiaEn Wu
2022-07-15 11:25   ` ChiaEn Wu
2022-07-15 11:25   ` ChiaEn Wu
2022-07-15 11:26 ` [PATCH v5 06/13] dt-bindings: mfd: Add MediaTek MT6370 ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 13:42   ` Rob Herring
2022-07-15 13:42     ` Rob Herring
2022-07-15 13:42     ` Rob Herring
2022-07-15 11:26 ` [PATCH v5 07/13] mfd: mt6370: Add MediaTek MT6370 support ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 13:02   ` Andy Shevchenko
2022-07-15 13:02     ` Andy Shevchenko
2022-07-15 13:02     ` Andy Shevchenko
2022-07-15 11:26 ` [PATCH v5 08/13] usb: typec: tcpci_mt6370: Add MediaTek MT6370 tcpci driver ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 12:38   ` AngeloGioacchino Del Regno
2022-07-15 12:38     ` AngeloGioacchino Del Regno
2022-07-15 12:38     ` AngeloGioacchino Del Regno
2022-07-15 13:10   ` Andy Shevchenko
2022-07-15 13:10     ` Andy Shevchenko
2022-07-15 13:10     ` Andy Shevchenko
2022-07-18  8:08     ` ChiYuan Huang
2022-07-18  8:08       ` ChiYuan Huang
2022-07-18  8:08       ` ChiYuan Huang
2022-07-18 11:38       ` Andy Shevchenko
2022-07-18 11:38         ` Andy Shevchenko
2022-07-18 11:38         ` Andy Shevchenko
2022-07-18 13:56         ` ChiYuan Huang
2022-07-18 13:56           ` ChiYuan Huang
2022-07-18 13:56           ` ChiYuan Huang
2022-07-15 11:26 ` [PATCH v5 09/13] iio: adc: mt6370: Add MediaTek MT6370 support ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 12:38   ` AngeloGioacchino Del Regno
2022-07-15 12:38     ` AngeloGioacchino Del Regno
2022-07-15 12:38     ` AngeloGioacchino Del Regno
2022-07-15 13:18   ` Andy Shevchenko
2022-07-15 13:18     ` Andy Shevchenko
2022-07-15 13:18     ` Andy Shevchenko
2022-07-15 11:26 ` [PATCH v5 10/13] power: supply: mt6370: Add MediaTek MT6370 charger driver ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 16:51   ` Andy Shevchenko
2022-07-15 16:51     ` Andy Shevchenko
2022-07-15 16:51     ` Andy Shevchenko
2022-07-16 21:37   ` Sebastian Reichel
2022-07-16 21:37     ` Sebastian Reichel
2022-07-16 21:37     ` Sebastian Reichel
2022-07-15 11:26 ` [PATCH v5 11/13] leds: mt6370: Add MediaTek MT6370 current sink type LED Indicator support ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 12:38   ` AngeloGioacchino Del Regno
2022-07-15 12:38     ` AngeloGioacchino Del Regno
2022-07-15 12:38     ` AngeloGioacchino Del Regno
2022-07-15 13:05     ` Andy Shevchenko
2022-07-15 13:05       ` Andy Shevchenko
2022-07-15 13:05       ` Andy Shevchenko
2022-07-15 18:29   ` Andy Shevchenko
2022-07-15 18:29     ` Andy Shevchenko
2022-07-15 18:29     ` Andy Shevchenko
2022-07-20  9:45     ` ChiYuan Huang
2022-07-20  9:45       ` ChiYuan Huang
2022-07-20  9:45       ` ChiYuan Huang
2022-07-20  9:48       ` ChiYuan Huang
2022-07-20  9:48         ` ChiYuan Huang
2022-07-20  9:48         ` ChiYuan Huang
2022-07-21  9:31         ` ChiYuan Huang [this message]
2022-07-21  9:31           ` ChiYuan Huang
2022-07-21  9:31           ` ChiYuan Huang
2022-07-17  8:46   ` Pavel Machek
2022-07-17  8:46     ` Pavel Machek
2022-07-17  8:46     ` Pavel Machek
2022-07-21 10:09     ` ChiYuan Huang
2022-07-21 10:09       ` ChiYuan Huang
2022-07-21 10:09       ` ChiYuan Huang
2022-07-15 11:26 ` [PATCH v5 12/13] leds: flashlight: mt6370: Add MediaTek MT6370 flashlight support ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 18:13   ` Andy Shevchenko
2022-07-15 18:13     ` Andy Shevchenko
2022-07-15 18:13     ` Andy Shevchenko
2022-07-15 11:26 ` [PATCH v5 13/13] video: backlight: mt6370: Add MediaTek MT6370 support ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 11:26   ` ChiaEn Wu
2022-07-15 12:38   ` AngeloGioacchino Del Regno
2022-07-15 12:38     ` AngeloGioacchino Del Regno
2022-07-15 12:38     ` AngeloGioacchino Del Regno
2022-07-15 16:29     ` Daniel Thompson
2022-07-15 16:29       ` Daniel Thompson
2022-07-15 16:29       ` Daniel Thompson
2022-07-18  8:27       ` AngeloGioacchino Del Regno
2022-07-18  8:27         ` AngeloGioacchino Del Regno
2022-07-18  8:27         ` AngeloGioacchino Del Regno
2022-07-18 11:17         ` ChiaEn Wu
2022-07-18 11:17           ` ChiaEn Wu
2022-07-18 11:17           ` 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='CADiBU39=kJXLuBd=3reeEVCaAhvkZXASsFYtsi6oEYJjc79dhA@mail.gmail.com' \
    --to=u0084500@gmail.com \
    --cc=alice_chen@richtek.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=broonie@kernel.org \
    --cc=chiaen_wu@richtek.com \
    --cc=chunfeng.yun@mediatek.com \
    --cc=cy_huang@richtek.com \
    --cc=daniel.thompson@linaro.org \
    --cc=deller@gmx.de \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=jic23@kernel.org \
    --cc=jingoohan1@gmail.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=lars@metafoo.de \
    --cc=lee.jones@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=matthias.bgg@gmail.com \
    --cc=pavel@ucw.cz \
    --cc=peterwu.pub@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=sre@kernel.org \
    --cc=szunichen@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.