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 - 2025 Red Hat, Inc.