Re: [PATCH 1/2] libata: add ledtrig support

From: Daniel Golle
Date: Fri Sep 21 2018 - 02:31:43 EST


Hi Pavel,

On Fri, Sep 21, 2018 at 12:04:49AM +0200, Pavel Machek wrote:
> Hi!
>
> > > > +#ifdef CONFIG_ATA_LEDS
> > > > + /* register LED triggers for all ports */
> > > > + for (i = 0; i < host->n_ports; i++) {
> > > > + if (unlikely(!host->ports[i]->ledtrig))
> > > > + continue;
> > > > +
> > > > + snprintf(host->ports[i]->ledtrig_name,
> > > > + sizeof(host->ports[i]->ledtrig_name), "ata%u",
> > > > + host->ports[i]->print_id);
> > >
> > > > + host->ports[i]->ledtrig->name = host->ports[i]->ledtrig_name;
> > > > +
> > > > + if (led_trigger_register(host->ports[i]->ledtrig)) {
> > > > + kfree(host->ports[i]->ledtrig);
> > > > + host->ports[i]->ledtrig = NULL;
> > > > + }
> > > > + }
> > > > +#endif
> > >
> > > No, we don't want you to register multiple triggers. We want one
> > > trigger, than has parameter "which port to watch". (Number of triggers
> > > is limited as by sysfs limitations).
> >
> > Back then I implemented it that way to be able to define the
> > default trigger for each LED in device tree and "trigger-sources"
> > didn't exist yet (it was introduced for USB ports and isn't yet used
> > for anything other than that)
>
> I see why you did it... BUt I believe we still want single trigger solution...
>
> > However, the problem till today is also that ATA ports are often not
> > individual device-tree objects we can refer to, see for example
> > marvell,armada-370-sata which appears as one opaque controller. Ie.
> > all SATA drivers have to be converted to expose individual ports on
> > device-tree before the trigger-sources approach can be applied...
>
> Yep, well... something to do in SATA then.
>
> Perhaps this should also have an option for single LED for _any_ SATA activity,
> and 90% devices will be happy with that?

The whole reason for not using one of the existing disk-activity
triggers was to address individual SATA ports to individual LEDs of NAS
devices (in my case Shuttle KD20)...