On 24/05/31 11:38AM, Lee Jones wrote: > On Mon, 06 May 2024, Joseph Strauss wrote: > > > Add multicolor support to the BlinkM driver, making it easier to control > > from userspace. The BlinkM LED is a programmable RGB LED. The driver > > currently supports only the regular LED sysfs class, resulting in the > > creation of three distinct classes, one for red, green, and blue. The > > user then has to input three values into the three seperate brightness > > files within those classes. The multicolor LED framework makes the > > device easier to control with the multi_intensity file: the user can > > input three values at once to form a color, while still controlling the > > lightness with the brightness file. > > > > The main struct blinkm_led has changed slightly. The struct led_classdev > > for the regular sysfs classes remain. The blinkm_probe function checks > > CONFIG_LEDS_BLINKM_MULTICOLOR to decide whether to load the seperate > > sysfs classes or the single multicolor one, but never both. The > > blinkm_set_mc_brightness() function had to be added to calculate the > > three color components and then set the fields of the blinkm_data > > structure accordingly. > > > > Signed-off-by: Joseph Strauss <jstrauss@xxxxxxxxxxx> > > --- > > Changes in v2: > > - Replaced instances of the constant 3 with NUM_LEDS, where applicable > > - Fixed formatting errors > > - Replaced loop inside of blinkm_set_mc_brightness() with equivalent > > statements > > - Changed id of multicolor class from 4 to 3 > > - Replaced call to devm_kmalloc_array() with devm_kcalloc() > > Changes in v3: > > - Add CONFIG_LEDS_BLINKM_MULTICOLOR to check whether to use multicolor > > funcitonality > > - Extend well-known-leds.txt to include standard names for RGB and indicator > > LEDS > > - Change name of Blinkm sysfs class according to well-known-leds.txt > > - Simplify struct blinkm_led and struct blinkm_data > > - Remove magic numbers > > - Fix formatting errors > > - Remove unrelated changes > > Changes in v4: > > - Fix indentation > > - Add default case to switch statement > > Changes in v5: > > - Fix warnings related to snprintf on s390 architecture, reported by > > 0-DAY CI Kernel Test Service > > Changes in v6: > > - Refactored struct blinkm_led to use a union > > - Refactored blinkm_probe() > > - Clarified documentation > > Changes in v7: > > - Fix formatting and spelling errors > > > > Documentation/leds/leds-blinkm.rst | 31 +++- > > Documentation/leds/well-known-leds.txt | 8 + > > drivers/leds/Kconfig | 8 + > > drivers/leds/leds-blinkm.c | 224 +++++++++++++++++-------- > > 4 files changed, 199 insertions(+), 72 deletions(-) > > Applying patch(es) > Applying: Add multicolor support to BlinkM LED driver > Using index info to reconstruct a base tree... > M Documentation/leds/well-known-leds.txt > M drivers/leds/Kconfig > M drivers/leds/leds-blinkm.c > Checking patch Documentation/leds/leds-blinkm.rst... > Checking patch Documentation/leds/well-known-leds.txt... > Checking patch drivers/leds/Kconfig... > Checking patch drivers/leds/leds-blinkm.c... > Applied patch Documentation/leds/leds-blinkm.rst cleanly. > Applied patch Documentation/leds/well-known-leds.txt cleanly. > Applied patch drivers/leds/Kconfig cleanly. > Applied patch drivers/leds/leds-blinkm.c cleanly. > Falling back to patching base and 3-way merge... > error: Your local changes to the following files would be overwritten by merge: > Documentation/leds/leds-blinkm.rst > Documentation/leds/well-known-leds.txt > drivers/leds/Kconfig > drivers/leds/leds-blinkm.c > Please commit your changes or stash them before you merge. > Aborting > error: Failed to merge in the changes. > Patch failed at 0001 Add multicolor support to BlinkM LED driver > > -- > Lee Jones [李琼斯] Hi, I am having trouble recreating this issue. Maybe I am misunderstanding the maintainer workflow. I am working on the for-next branch of pavel/linux-leds.git. When I apply my generated patch file on a freshly cloned repository with `git am`, I don't get any errors. Any help is appreciated. Joe Strauss