From: Jacek Anaszewski <jacek.anaszewski@gmail.com>
To: Pavel Machek <pavel@ucw.cz>, Dan Murphy <dmurphy@ti.com>
Cc: linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v20 03/17] leds: multicolor: Introduce a multicolor class definition
Date: Sun, 26 Apr 2020 18:24:17 +0200 [thread overview]
Message-ID: <a19ff014-32f1-eb18-ceb6-581503821fcc@gmail.com> (raw)
In-Reply-To: <20200425202306.GA23926@amd>
Hi all,
On 4/25/20 10:23 PM, Pavel Machek wrote:
> Hi!
>
[...]
>> + for (i = 0; i < mcled_cdev->num_colors; i++)
>> + mcled_cdev->multicolor_info[i].color_brightness = brightness *
>> + mcled_cdev->multicolor_info[i].color_led_intensity /
>> + led_cdev->max_brightness;
>
> It would be good to get this under ~80 characters. Perhaps shorter
> identifiers would help... shortening multicolor_ to mc_?
And color_led_intensity to led_intensity.
>
>> +static ssize_t multi_led_intensity_store(struct device *dev,
>> + struct device_attribute *intensity_attr,
>> + const char *buf, size_t size)
>> +{
>> + struct led_classdev *led_cdev = dev_get_drvdata(dev);
>> + struct led_classdev_mc *mcled_cdev = lcdev_to_mccdev(led_cdev);
>> + int nrchars, offset = 0;
>> + int intensity_value[LED_COLOR_ID_MAX];
>> + int i;
>> + ssize_t ret;
>> +
>> + mutex_lock(&led_cdev->led_access);
>> +
>> + for (i = 0; i < mcled_cdev->num_colors; i++) {
>> + ret = sscanf(buf + offset, "%i%n",
>> + &intensity_value[i], &nrchars);
>> + if (ret != 1) {
>> + dev_err(led_cdev->dev,
>
> dev_dbg, at most. It is user-triggerable.
>
>> + "Incorrect number of LEDs expected %i values intensity was not applied\n",
>> + mcled_cdev->num_colors);
>> + goto err_out;
>
> Should not we return -ERRNO to userspace on error?
>
>> + }
>> + offset += nrchars;
>> + }
>
> This checks for "not enough" intensities. Do we need check for "too
> many" intensities?
>
>> +static ssize_t multi_led_intensity_show(struct device *dev,
>> + struct device_attribute *intensity_attr,
>> + char *buf)
>> +{
>> + struct led_classdev *led_cdev = dev_get_drvdata(dev);
>> + struct led_classdev_mc *mcled_cdev = lcdev_to_mccdev(led_cdev);
>> + int len = 0;
>> + int i;
>> +
>> + for (i = 0; i < mcled_cdev->num_colors; i++)
>> + len += sprintf(buf + len, "%d ",
>> + mcled_cdev->multicolor_info[i].color_led_intensity);
>> +
>> + len += sprintf(buf + len, "%s", "\n");
>
> This will result in extra " " before end of line.
>
> Please don't use "%s", "\n" to add single character. "\n" would be enough.
>
>
>> + struct led_classdev *led_cdev = dev_get_drvdata(dev);
>> + struct led_classdev_mc *mcled_cdev = lcdev_to_mccdev(led_cdev);
>> + int len = 0;
>> + int index;
>> + int i;
>> +
>> + for (i = 0; i < mcled_cdev->num_colors; i++) {
>> + index = mcled_cdev->multicolor_info[i].color_index;
>> + len += sprintf(buf + len, "%s ", led_colors[index]);
>> + }
>> +
>> + len += sprintf(buf + len, "%s", "\n");
>
> Same here.
>
>> +int led_classdev_multicolor_register_ext(struct device *parent,
>> + struct led_classdev_mc *mcled_cdev,
>> + struct led_init_data *init_data)
>> +{
>> + struct led_classdev *led_cdev;
>> +
>> + if (!mcled_cdev)
>> + return -EINVAL;
>> +
>> + if (!mcled_cdev->num_colors)
>> + return -EINVAL;
>
> if (num_colors > max)... ?
>
>> +#ifndef __LINUX_MULTICOLOR_LEDS_H_INCLUDED
>> +#define __LINUX_MULTICOLOR_LEDS_H_INCLUDED
>
> Usual style is "_LINUX_MULTICOLOR_LEDS_H".
>
>> +#else
>> +
>> +static inline int led_classdev_multicolor_register_ext(struct device *parent,
>
> double space after "inline".
>
>> + struct led_classdev_mc *mcled_cdev,
>> + struct led_init_data *init_data)
>> +{
>> + return -EINVAL;
>> +}
>
> Do we need to include these stubs? I guess it is okay to have them,
> OTOH I'd expect drivers to depend on MULTICOLOR being available...
Single driver can support both monochrome and multicolor LED class,
which is chosen basing on DT. In this regard having no-ops for LED mc
class is justified since it is a superset of monochrome LED class.
--
Best regards,
Jacek Anaszewski
next prev parent reply other threads:[~2020-04-26 16:24 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-23 15:55 [PATCH v20 00/17] Multicolor Framework (array edition) Dan Murphy
2020-04-23 15:55 ` [PATCH v20 01/17] dt: bindings: Add multicolor class dt bindings documention Dan Murphy
2020-04-23 15:55 ` [PATCH v20 02/17] leds: Add multicolor ID to the color ID list Dan Murphy
2020-04-25 19:52 ` Pavel Machek
2020-04-27 17:12 ` Dan Murphy
2020-04-28 8:43 ` Pavel Machek
2020-04-28 12:02 ` Dan Murphy
2020-04-23 15:55 ` [PATCH v20 03/17] leds: multicolor: Introduce a multicolor class definition Dan Murphy
2020-04-25 19:53 ` Pavel Machek
2020-04-27 17:12 ` Dan Murphy
2020-04-25 20:23 ` Pavel Machek
2020-04-26 16:24 ` Jacek Anaszewski [this message]
2020-04-26 19:48 ` Pavel Machek
2020-04-27 19:33 ` Dan Murphy
2020-04-28 8:41 ` Pavel Machek
2020-04-26 16:46 ` Jacek Anaszewski
2020-04-23 15:55 ` [PATCH v20 04/17] dt: bindings: lp50xx: Introduce the lp50xx family of RGB drivers Dan Murphy
2020-04-25 20:24 ` Pavel Machek
2020-04-27 19:02 ` Dan Murphy
2020-04-23 15:55 ` [PATCH v20 05/17] leds: lp50xx: Add the LP50XX family of the RGB LED driver Dan Murphy
2020-04-23 15:55 ` [PATCH v20 06/17] dt: bindings: lp55xx: Be consistent in the document with LED acronym Dan Murphy
2020-04-23 15:55 ` [PATCH v20 07/17] dt: bindings: lp55xx: Update binding for Multicolor Framework Dan Murphy
2020-04-23 15:55 ` [PATCH v20 08/17] ARM: dts: n900: Add reg property to the LP5523 channel node Dan Murphy
2020-04-23 15:55 ` [PATCH v20 09/17] ARM: dts: imx6dl-yapp4: Add reg property to the lp5562 " Dan Murphy
2020-04-25 20:31 ` Pavel Machek
2020-04-23 15:55 ` [PATCH v20 10/17] ARM: dts: ste-href: Add reg property to the LP5521 channel nodes Dan Murphy
2020-04-27 19:06 ` Dan Murphy
2020-04-23 15:55 ` [PATCH v20 11/17] leds: lp55xx: Convert LED class registration to devm_* Dan Murphy
2020-04-23 15:55 ` [PATCH v20 12/17] leds: lp55xx: Add multicolor framework support to lp55xx Dan Murphy
2020-04-25 20:37 ` Pavel Machek
2020-04-26 16:07 ` Jacek Anaszewski
2020-04-27 18:17 ` Dan Murphy
2020-04-27 19:42 ` Jacek Anaszewski
2020-04-27 19:58 ` Dan Murphy
2020-04-23 15:55 ` [PATCH v20 13/17] leds: lp5523: Update the lp5523 code to add multicolor brightness function Dan Murphy
2020-04-25 20:38 ` Pavel Machek
2020-04-23 15:55 ` [PATCH v20 14/17] leds: lp5521: Add multicolor framework multicolor brightness support Dan Murphy
2020-04-25 20:39 ` Pavel Machek
2020-04-23 15:55 ` [PATCH v20 15/17] leds: lp55xx: Fix checkpatch file permissions issues Dan Murphy
2020-04-23 15:55 ` [PATCH v20 16/17] leds: lp5523: Fix checkpatch issues in the code Dan Murphy
2020-04-23 15:55 ` [PATCH v20 17/17] dt: bindings: Update lp55xx binding to recommended LED naming Dan Murphy
2020-04-25 20:48 ` [PATCH v20 00/17] Multicolor Framework (array edition) Pavel Machek
2020-04-27 17:18 ` Dan Murphy
2020-04-27 19:05 ` Dan Murphy
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=a19ff014-32f1-eb18-ceb6-581503821fcc@gmail.com \
--to=jacek.anaszewski@gmail.com \
--cc=dmurphy@ti.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=pavel@ucw.cz \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®