[PATCH v5 4/4] arm64: dts: qcom: sc8280xp-x13s: enable camera privacy indicator

Aleksandrs Vinarskis posted 4 patches 3 weeks, 1 day ago
[PATCH v5 4/4] arm64: dts: qcom: sc8280xp-x13s: enable camera privacy indicator
Posted by Aleksandrs Vinarskis 3 weeks, 1 day ago
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
Re: [PATCH v5 4/4] arm64: dts: qcom: sc8280xp-x13s: enable camera privacy indicator
Posted by Steev Klimaszewski 3 weeks, 1 day ago
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)
Re: [PATCH v5 4/4] arm64: dts: qcom: sc8280xp-x13s: enable camera privacy indicator
Posted by Steev Klimaszewski 3 weeks, 1 day ago
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>
Re: [PATCH v5 4/4] arm64: dts: qcom: sc8280xp-x13s: enable camera privacy indicator
Posted by Konrad Dybcio 3 weeks, 1 day ago
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