Leverage newly introduced 'leds' and 'led-names' properties to pass
indicator's phandle and function to v4l2 subnode. The latter supports
privacy led since couple of years ago under 'privacy-led' designation.
Unlike initially proposed trigger-source based approach, this solution
cannot be easily bypassed from userspace, thus reducing privacy
concerns.
Signed-off-by: Aleksandrs Vinarskis <alex@vinarskis.com>
---
arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
index 637430719e6d7d3c0eeb4abf2b80eea1f8289530..3b3f7137689a6fa292ffe4fec8c1d1f20ee525bc 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
+++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
@@ -83,14 +83,11 @@ leds {
pinctrl-names = "default";
pinctrl-0 = <&cam_indicator_en>;
- led-camera-indicator {
- label = "white:camera-indicator";
+ privacy_led: privacy-led {
function = LED_FUNCTION_INDICATOR;
color = <LED_COLOR_ID_WHITE>;
gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>;
- linux,default-trigger = "none";
default-state = "off";
- /* Reuse as a panic indicator until we get a "camera on" trigger */
panic-indicator;
};
};
@@ -685,6 +682,9 @@ camera@10 {
pinctrl-names = "default";
pinctrl-0 = <&cam_rgb_default>;
+ leds = <&privacy_led>;
+ led-names = "privacy";
+
clocks = <&camcc CAMCC_MCLK3_CLK>;
orientation = <0>; /* Front facing */
--
2.48.1
Hi Aleksandrs,
On Wed, Sep 10, 2025 at 7:01 AM Aleksandrs Vinarskis <alex@vinarskis.com> wrote:
>
> Leverage newly introduced 'leds' and 'led-names' properties to pass
> indicator's phandle and function to v4l2 subnode. The latter supports
> privacy led since couple of years ago under 'privacy-led' designation.
> Unlike initially proposed trigger-source based approach, this solution
> cannot be easily bypassed from userspace, thus reducing privacy
> concerns.
>
> Signed-off-by: Aleksandrs Vinarskis <alex@vinarskis.com>
> ---
> arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> index 637430719e6d7d3c0eeb4abf2b80eea1f8289530..3b3f7137689a6fa292ffe4fec8c1d1f20ee525bc 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> @@ -83,14 +83,11 @@ leds {
> pinctrl-names = "default";
> pinctrl-0 = <&cam_indicator_en>;
>
> - led-camera-indicator {
> - label = "white:camera-indicator";
> + privacy_led: privacy-led {
Should this now be privacy_led: privacy { ?
> function = LED_FUNCTION_INDICATOR;
> color = <LED_COLOR_ID_WHITE>;
> gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>;
> - linux,default-trigger = "none";
> default-state = "off";
> - /* Reuse as a panic indicator until we get a "camera on" trigger */
> panic-indicator;
> };
> };
> @@ -685,6 +682,9 @@ camera@10 {
> pinctrl-names = "default";
> pinctrl-0 = <&cam_rgb_default>;
>
> + leds = <&privacy_led>;
> + led-names = "privacy";
> +
> clocks = <&camcc CAMCC_MCLK3_CLK>;
>
> orientation = <0>; /* Front facing */
>
> --
> 2.48.1
>
v5 does not turn the led on here on my X13s whereas v3 did (and v4 was
not tested)
Hi Aleksandrs,
On Wed, Sep 10, 2025 at 12:04 PM Steev Klimaszewski <threeway@gmail.com> wrote:
>
> Hi Aleksandrs,
>
> On Wed, Sep 10, 2025 at 7:01 AM Aleksandrs Vinarskis <alex@vinarskis.com> wrote:
> >
> > Leverage newly introduced 'leds' and 'led-names' properties to pass
> > indicator's phandle and function to v4l2 subnode. The latter supports
> > privacy led since couple of years ago under 'privacy-led' designation.
> > Unlike initially proposed trigger-source based approach, this solution
> > cannot be easily bypassed from userspace, thus reducing privacy
> > concerns.
> >
> > Signed-off-by: Aleksandrs Vinarskis <alex@vinarskis.com>
> > ---
> > arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> > index 637430719e6d7d3c0eeb4abf2b80eea1f8289530..3b3f7137689a6fa292ffe4fec8c1d1f20ee525bc 100644
> > --- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> > +++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> > @@ -83,14 +83,11 @@ leds {
> > pinctrl-names = "default";
> > pinctrl-0 = <&cam_indicator_en>;
> >
> > - led-camera-indicator {
> > - label = "white:camera-indicator";
> > + privacy_led: privacy-led {
>
> Should this now be privacy_led: privacy { ?
>
> > function = LED_FUNCTION_INDICATOR;
> > color = <LED_COLOR_ID_WHITE>;
> > gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>;
> > - linux,default-trigger = "none";
> > default-state = "off";
> > - /* Reuse as a panic indicator until we get a "camera on" trigger */
> > panic-indicator;
> > };
> > };
> > @@ -685,6 +682,9 @@ camera@10 {
> > pinctrl-names = "default";
> > pinctrl-0 = <&cam_rgb_default>;
> >
> > + leds = <&privacy_led>;
> > + led-names = "privacy";
> > +
> > clocks = <&camcc CAMCC_MCLK3_CLK>;
> >
> > orientation = <0>; /* Front facing */
> >
> > --
> > 2.48.1
> >
>
> v5 does not turn the led on here on my X13s whereas v3 did (and v4 was
> not tested)
From IRC conversations, the issue was not having
https://lore.kernel.org/all/20250910104702.7470-1-hansg@kernel.org
applied - with this prerequisite, v5 works here
Tested-by: Steev Klimaszewski <threeway@gmail.com>
On 9/10/25 2:01 PM, Aleksandrs Vinarskis wrote: > Leverage newly introduced 'leds' and 'led-names' properties to pass > indicator's phandle and function to v4l2 subnode. The latter supports > privacy led since couple of years ago under 'privacy-led' designation. > Unlike initially proposed trigger-source based approach, this solution > cannot be easily bypassed from userspace, thus reducing privacy > concerns. > > Signed-off-by: Aleksandrs Vinarskis <alex@vinarskis.com> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Konrad
© 2016 - 2026 Red Hat, Inc.