From: Ansuel Smith <ansuelsmth@gmail.com>
To: Andrew Lunn <andrew@lunn.ch>,
Vivien Didelot <vivien.didelot@gmail.com>,
Florian Fainelli <f.fainelli@gmail.com>,
Vladimir Oltean <olteanv@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Rob Herring <robh+dt@kernel.org>,
Jonathan Corbet <corbet@lwn.net>, Pavel Machek <pavel@ucw.cz>,
Ansuel Smith <ansuelsmth@gmail.com>,
John Crispin <john@phrozen.org>,
netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
linux-leds@vger.kernel.org
Subject: [RFC PATCH 3/6] leds: add function to configure offload leds
Date: Sun, 7 Nov 2021 18:57:15 +0100 [thread overview]
Message-ID: <20211107175718.9151-4-ansuelsmth@gmail.com> (raw)
In-Reply-To: <20211107175718.9151-1-ansuelsmth@gmail.com>
Add configure_offload helper to configure how the LED should work in
offload mode. The function require to support the particular trigger and
will use the passed offload_flags to elaborate the data and apply the
correct configuration. This function will then be used by the offload
trigger to request and update offload configuration.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
Documentation/leds/leds-class.rst | 12 ++++++++++++
include/linux/leds.h | 16 ++++++++++++++++
2 files changed, 28 insertions(+)
diff --git a/Documentation/leds/leds-class.rst b/Documentation/leds/leds-class.rst
index ab50b58d6a21..af84cce09068 100644
--- a/Documentation/leds/leds-class.rst
+++ b/Documentation/leds/leds-class.rst
@@ -191,6 +191,18 @@ If the second argument (enable) to the trigger_offload() method is false, any
active HW offloading must be deactivated. In this case errors are not permitted
in the trigger_offload() method.
+The offload trigger will use the function configure_offload() provided by the driver
+that will configure the offloaded mode for the LED.
+This function pass as the first argument (offload_flags) a u32 flag, it's in the LED
+driver interest how to elaborate this flags and to declare support for a particular
+offload trigger.
+The second argument (cmd) of the configure_offload() method can be used to do various
+operation for the specific trigger. We currently support ENABLE, DISABLE and READ to
+enable, disable and read the state of the offload trigger for the LED driver.
+If the driver return -ENOTSUPP on configure_offload, the trigger activation will
+fail as the driver doesn't support that specific offload trigger or don't know
+how to handle the provided flags.
+
LEDs can declare the supported offload trigger using linux,supported-offload-triggers
binding in the dts. This is just an array of string that will be used by any
offload trigger to check the supported triggers and configure the LED offload mode
diff --git a/include/linux/leds.h b/include/linux/leds.h
index ff1f903f8079..eb06d812bc24 100644
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
@@ -67,6 +67,14 @@ struct led_hw_trigger_type {
int dummy;
};
+#ifdef CONFIG_LEDS_OFFLOAD_TRIGGERS
+enum offload_trigger_cmd {
+ TRIGGER_ENABLE,
+ TRIGGER_DISABLE,
+ TRIGGER_READ
+};
+#endif
+
struct led_classdev {
const char *name;
unsigned int brightness;
@@ -163,6 +171,14 @@ struct led_classdev {
/* some LEDs may be able to offload some SW triggers to HW */
int (*trigger_offload)(struct led_classdev *led_cdev,
bool enable);
+ /* Function to configure how the LEDs should work in offload mode.
+ * The function require to support the trigger and will use the
+ * passed flags to elaborate the trigger requested and apply the
+ * correct configuration.
+ */
+ int (*configure_offload)(struct led_classdev *led_cdev,
+ u32 offload_flags,
+ enum offload_trigger_cmd cmd);
#endif
#endif
--
2.32.0
next prev parent reply other threads:[~2021-11-07 17:58 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-07 17:57 [RFC PATCH 0/6] Adds support for PHY LEDs with offload triggers Ansuel Smith
2021-11-07 17:57 ` [RFC PATCH 1/6] leds: trigger: add API for HW offloading of triggers Ansuel Smith
2021-11-07 22:52 ` Randy Dunlap
2021-11-07 22:59 ` Ansuel Smith
2021-11-07 17:57 ` [RFC PATCH 2/6] leds: permit to declare supported offload triggers Ansuel Smith
2021-11-07 22:06 ` Marek Behún
2021-11-07 22:32 ` Ansuel Smith
2021-11-08 13:48 ` Andrew Lunn
2021-11-07 17:57 ` Ansuel Smith [this message]
2021-11-07 22:45 ` [RFC PATCH 3/6] leds: add function to configure offload leds Randy Dunlap
2021-11-07 17:57 ` [RFC PATCH 4/6] leds: trigger: add offload-phy-activity trigger Ansuel Smith
2021-11-07 22:10 ` Marek Behún
2021-11-07 22:43 ` Ansuel Smith
2021-11-08 10:00 ` Marek Behún
2021-11-07 22:42 ` Randy Dunlap
2021-11-07 22:46 ` Ansuel Smith
2021-11-07 17:57 ` [RFC PATCH 5/6] net: dsa: qca8k: add LEDs support Ansuel Smith
2021-11-07 22:39 ` Randy Dunlap
2021-11-07 17:57 ` [RFC PATCH 6/6] dt-bindings: net: dsa: qca8k: add LEDs definition example Ansuel Smith
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=20211107175718.9151-4-ansuelsmth@gmail.com \
--to=ansuelsmth@gmail.com \
--cc=andrew@lunn.ch \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=f.fainelli@gmail.com \
--cc=john@phrozen.org \
--cc=kuba@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pavel@ucw.cz \
--cc=robh+dt@kernel.org \
--cc=vivien.didelot@gmail.com \
/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;
as well as URLs for NNTP newsgroup(s).