Hi Lee,
On 6/17/24 16:39, Bastien Curutchet wrote:
+static int pca9532_update_hw_blink(struct pca9532_led *led,
+ unsigned long delay_on, unsigned long delay_off)
+{
+ struct pca9532_data *data = i2c_get_clientdata(led->client);
+ unsigned int psc;
+ int i;
+
+ /* Look for others LEDs that already use PWM1 */
+ for (i = 0; i < data->chip_info->num_leds; i++) {
+ struct pca9532_led *other = &data->leds[i];
+
+ if (other == led)
+ continue;
+
+ if (other->state == PCA9532_PWM1) {
+ if (other->ldev.blink_delay_on != delay_on ||
+ other->ldev.blink_delay_off != delay_off) {
+ dev_err(&led->client->dev,
+ "HW can handle only one blink configuration at a time\n");
I'm having some second thoughts about this dev_err().
It was dev_dbg() in V1, but based on your suggestion, I changed it to
dev_err() because an error was returned after.
I've worked more with this patch since it got applied, these error
messages appear frequently, though they don’t seem to be 'real' errors
to me as the software callback is used afterwards and the LED blinks at
the expected period.
Don't you think a dev_dbg() would be more appropriate in this case ? Or
perhaps a comment instead of a message ?
+ return -EINVAL;
+ }
+ }
+ }
+
+ psc = ((delay_on + delay_off) * PCA9532_PWM_PERIOD_DIV - 1) / 1000;
+ if (psc > U8_MAX) {
+ dev_err(&led->client->dev, "Blink period too long to be handled by hardware\n");
Same comments for this dev_err()
+ return -EINVAL;
+ }
Best regards,
Bastien