[+cc Lee, linux-leds for comment on using the LED subsystem as described in patch 2/3; would be nice to have a reviewed-by or ack for this. Thread at https://lore.kernel.org/r/20240814122900.13525-4-mariusz.tkaczyk@xxxxxxxxxxxxxxx] On Wed, Aug 14, 2024 at 02:28:57PM +0200, Mariusz Tkaczyk wrote: > Patchset is named as PCIe Enclosure LED Management because it adds two > features: > - Native PCIe Enclosure Management (NPEM) > - PCIe SSD Status LED Management (DSM) > > Both are pattern oriented standards, they tell which "indication" > should blink. It doesn't control physical LED or pattern visualization. > > Overall, driver is simple but it was not simple to fit it into interfaces > we have in kernel (We considered leds and enclosure interfaces). It reuses > leds interface, this approach seems to be the best because: > - leds are actively maintained, no new interface added. > - leds do not require any extensions, enclosure needs to be adjusted first. > > There are trade-offs: > - "brightness" is the name of sysfs file to control led. It is not > natural to use brightness to set patterns, that is why multiple led > devices are created (one per indication); > - Update of one led may affect other leds, led triggers may not work > as expected. v1 at https://lore.kernel.org/r/20240215142345.6073-1-mariusz.tkaczyk@xxxxxxxxxxxxxxx > Changes from v1: > - Renamed "pattern" to indication. > - DSM support added. > - fixed nits reported by Bjorn. v2 at https://lore.kernel.org/r/20240528131940.16924-1-mariusz.tkaczyk@xxxxxxxxxxxxxxx > Changes from v2: > - Introduce lazy loading to allow DELL _DSM quirks to work, reported by > Stuart. > - leds class initcall moved up in Makefile, proposed by Dan. > - fix other nits reported by Dan and Iipo. v3 at https://lore.kernel.org/r/20240705125436.26057-1-mariusz.tkaczyk@xxxxxxxxxxxxxxx > Changes from v3: > - Remove unnecessary packed attr. > - Fix doc issue reported by lkp. > - Fix read_poll_timeout() error handling reported by Iipo. > - Minor fixes reported by Christoph. v4 at https://lore.kernel.org/r/20240711083009.5580-1-mariusz.tkaczyk@xxxxxxxxxxxxxxx > Changes from v4: > - Use 0 / 1 instead of LED_OFF/LED_ON, suggested by Marek. > - Documentation added, suggested by Bjorn. v5 at https://lore.kernel.org/r/20240813113024.17938-1-mariusz.tkaczyk@xxxxxxxxxxxxxxx > Change from v5: > - Remove unnecessary _packed, reported by Christoph. > - Changed "led" to "LED" and other typos suggested by Randy. > > Suggested-by: Lukas Wunner <lukas@xxxxxxxxx> > Reviewed-by: Christoph Hellwig <hch@xxxxxx> > Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx> > Tested-by: Stuart Hayes <stuart.w.hayes@xxxxxxxxx> Evidently you intend these tags to be applied to each patch, but b4 doesn't distribute tags from the cover letter across each individual patch. You included Christoph's Reviewed-by directly in patches 1 and 2, but not Ilpo's. I didn't dig through the previous postings to verify all this. > Cc: Arnd Bergmann <arnd@xxxxxxxx> > Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > Cc: Dan Williams <dan.j.williams@xxxxxxxxx> > Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Cc: Ilpo Jarvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx> > Cc: Lukas Wunner <lukas@xxxxxxxxx> > Cc: Keith Busch <kbusch@xxxxxxxxxx> > Cc: Marek Behun <marek.behun@xxxxxx> > Cc: Pavel Machek <pavel@xxxxxx> > Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> > Cc: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > Cc: Stuart Hayes <stuart.w.hayes@xxxxxxxxx> > Link: https://lore.kernel.org/linux-pci/20240813113024.17938-1-mariusz.tkaczyk@xxxxxxxxxxxxxxx > > Mariusz Tkaczyk (3): > leds: Init leds class earlier > PCI/NPEM: Add Native PCIe Enclosure Management support > PCI/NPEM: Add _DSM PCIe SSD status LED management > > Documentation/ABI/testing/sysfs-bus-pci | 72 +++ > drivers/Makefile | 4 +- > drivers/pci/Kconfig | 9 + > drivers/pci/Makefile | 1 + > drivers/pci/npem.c | 590 ++++++++++++++++++++++++ > drivers/pci/pci.h | 8 + > drivers/pci/probe.c | 2 + > drivers/pci/remove.c | 2 + > include/linux/pci.h | 3 + > include/uapi/linux/pci_regs.h | 35 ++ > 10 files changed, 725 insertions(+), 1 deletion(-) > create mode 100644 drivers/pci/npem.c > > -- > 2.35.3 >