All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@intel.com>
To: Marco Nenciarini <mnencia@kcore.it>
Cc: platform-driver-x86@vger.kernel.org, dan.scally@ideasonboard.com,
	sakari.ailus@linux.intel.com, hdegoede@redhat.com,
	andy@kernel.org
Subject: Re: [PATCH v2] platform/x86: int3472: Handle GPIO type 0x02 (strobe) as IR  flood LED
Date: Tue, 24 Mar 2026 14:56:05 +0200	[thread overview]
Message-ID: <acKJ5W12MFgZWPew@ashevche-desk.local> (raw)
In-Reply-To: <20260323213535.1410678-1-mnencia@kcore.it>

On Mon, Mar 23, 2026 at 10:35:35PM +0100, Marco Nenciarini wrote:
> GPIO type 0x02 (strobe) appears in ACPI tables on recent Intel
> Meteor Lake and Arrow Lake platforms (e.g. Dell Pro Max 14/16) for
> controlling an IR flood LED used by infrared camera sensors. The
> INT3472 discrete driver does not handle this type, logging "GPIO type
> 0x02 unknown; the sensor may not work" and potentially preventing the
> associated sensor slot from initializing cleanly.
> 
> Add support for GPIO type 0x02 by registering it as an LED through
> the existing LED framework, with the name "ir_flood_led" to
> distinguish it from the privacy LED (type 0x0d).
> 
> Rename skl_int3472_register_pled() and skl_int3472_unregister_pled()
> to skl_int3472_register_led() and skl_int3472_unregister_led(). The
> register function takes a name parameter and an optional LED lookup
> con_id. For the privacy LED, "privacy" is passed so sensor drivers
> can discover it via devm_led_get(). For the IR flood LED, NULL is
> passed to register only the LED classdev without a driver lookup,
> since no sensor driver currently consumes it.

This can be improved.

...

> +		case INT3472_GPIO_TYPE_STROBE:
> +			ret = skl_int3472_register_led(int3472, gpio,
> +						       "ir_flood_led",
> +						       NULL);
> +			if (ret)
> +				err_msg = "Failed to register LED\n";
> +
>  			break;
>  		case INT3472_GPIO_TYPE_PRIVACY_LED:
> -			ret = skl_int3472_register_pled(int3472, gpio);
> +			ret = skl_int3472_register_led(int3472, gpio,
> +						       "privacy_led",
> +						       "privacy");

Maybe pass the connection ID for a starter (separate prerequisite) and here add
a new LED and new parameter for the lookup instantiation?

>  			if (ret)
>  				err_msg = "Failed to register LED\n";

...

So, this one

> +int skl_int3472_register_led(struct int3472_discrete_device *int3472,
> +			    struct gpio_desc *gpio, const char *led_name,
> +			    const char *lookup_con_id)

Becomes first

int skl_int3472_register_led(struct int3472_discrete_device *int3472,
			    struct gpio_desc *gpio, const char *con_id)

followed by

int skl_int3472_register_led(struct int3472_discrete_device *int3472,
			    struct gpio_desc *gpio, const char *con_id,
			    bool add_lookup)


>  	/* Generate the name, replacing the ':' in the ACPI devname with '_' */
>  	snprintf(int3472->pled.name, sizeof(int3472->pled.name),
> -		 "%s::privacy_led", acpi_dev_name(int3472->sensor));
> +		 "%s::%s", acpi_dev_name(int3472->sensor), led_name);

This will be

		 "%s::%s_led", acpi_dev_name(int3472->sensor), con_id);

...

> -	int3472->pled.lookup.provider = int3472->pled.name;
> -	int3472->pled.lookup.dev_id = int3472->sensor_name;
> -	int3472->pled.lookup.con_id = "privacy";
> -	led_add_lookup(&int3472->pled.lookup);
> +	if (lookup_con_id) {
> +		int3472->pled.lookup.provider = int3472->pled.name;
> +		int3472->pled.lookup.dev_id = int3472->sensor_name;
> +		int3472->pled.lookup.con_id = lookup_con_id;
> +		led_add_lookup(&int3472->pled.lookup);
> +	}
>  
>  	return 0;

And this

	if (!add_lookup)
		return 0;

	int3472->pled.lookup.provider = int3472->pled.name;
	int3472->pled.lookup.dev_id = int3472->sensor_name;
	int3472->pled.lookup.con_id = con_id;
	led_add_lookup(&int3472->pled.lookup);

	return 0;

-- 
With Best Regards,
Andy Shevchenko



  reply	other threads:[~2026-03-24 12:56 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-20  9:32 [PATCH] platform/x86: int3472: Add GPIO type 0x02 (strobe) mapping Marco Nenciarini
2026-03-23 21:35 ` [PATCH v2] platform/x86: int3472: Handle GPIO type 0x02 (strobe) as IR flood LED Marco Nenciarini
2026-03-24 12:56   ` Andy Shevchenko [this message]
2026-03-24 13:00     ` Andy Shevchenko
2026-03-24 13:02     ` Andy Shevchenko
2026-03-25 22:38 ` [PATCH v3 0/2] platform/x86: int3472: Add support for strobe LED (GPIO type 0x02) Marco Nenciarini
2026-03-25 22:38   ` [PATCH v3 1/2] platform/x86: int3472: Rename pled to led in LED registration code Marco Nenciarini
2026-03-25 22:38   ` [PATCH v3 2/2] platform/x86: int3472: Add support for GPIO type 0x02 (strobe LED) Marco Nenciarini
2026-03-26 10:46     ` Ilpo Järvinen
2026-03-26 10:51       ` Andy Shevchenko
2026-03-26 10:55     ` Andy Shevchenko
2026-03-26 10:57       ` Andy Shevchenko
2026-03-26 11:05         ` Andy Shevchenko
2026-03-27  9:07 ` [PATCH v4 0/4] platform/x86: int3472: Add support for strobe LED (GPIO type 0x02) Marco Nenciarini
2026-03-27  9:07   ` [PATCH v4 1/4] platform/x86: int3472: Rename pled to led in LED registration code Marco Nenciarini
2026-03-27 10:08     ` Andy Shevchenko
2026-03-27 10:35       ` Andy Shevchenko
2026-03-27  9:07   ` [PATCH v4 2/4] platform/x86: int3472: Use local variable for LED struct access Marco Nenciarini
2026-03-27 10:15     ` Andy Shevchenko
2026-03-27  9:07   ` [PATCH v4 3/4] platform/x86: int3472: Introduce LED type enum and multi-LED support Marco Nenciarini
2026-03-27 10:30     ` Andy Shevchenko
2026-03-27  9:07   ` [PATCH v4 4/4] platform/x86: int3472: Add support for GPIO type 0x02 (strobe LED) Marco Nenciarini
2026-03-27 10:34     ` Andy Shevchenko
2026-03-27 10:37   ` [PATCH v4 0/4] platform/x86: int3472: Add support for strobe LED (GPIO type 0x02) Andy Shevchenko
2026-03-27 18:10 ` [PATCH v5 0/4] platform/x86: int3472: Add support for GPIO type 0x02 (strobe) Marco Nenciarini
2026-03-27 18:10   ` [PATCH v5 1/4] platform/x86: int3472: Use local variable for LED struct access Marco Nenciarini
2026-03-30  9:23     ` Andy Shevchenko
2026-03-27 18:10   ` [PATCH v5 2/4] platform/x86: int3472: Rename pled to led in LED registration code Marco Nenciarini
2026-03-27 18:10   ` [PATCH v5 3/4] platform/x86: int3472: Parameterize LED name in registration Marco Nenciarini
2026-03-30  9:26     ` Andy Shevchenko
2026-03-27 18:10   ` [PATCH v5 4/4] platform/x86: int3472: Add support for GPIO type 0x02 (strobe) Marco Nenciarini
2026-03-30  9:35     ` Andy Shevchenko
2026-03-30  9:36   ` [PATCH v5 0/4] " Andy Shevchenko
2026-03-30 13:23   ` johannes.goede
2026-03-30 14:55     ` Marco Nenciarini
2026-03-30 15:12       ` johannes.goede
2026-03-30 20:21         ` Sakari Ailus
2026-03-31  7:10           ` Marco Nenciarini
2026-03-31 10:15           ` johannes.goede
2026-03-31 21:28             ` Sakari Ailus
2026-04-01 13:38               ` johannes.goede
2026-04-01 17:13                 ` Marco Nenciarini
2026-04-01 18:47                   ` johannes.goede
2026-03-31  7:52 ` [PATCH v6 0/4] platform/x86: int3472: Add support for GPIO type 0x02 (IR flood LED) Marco Nenciarini
2026-03-31  7:52   ` [PATCH v6 1/4] platform/x86: int3472: Use local variable for LED struct access Marco Nenciarini
2026-03-31 10:16     ` Andy Shevchenko
2026-03-31  7:52   ` [PATCH v6 2/4] platform/x86: int3472: Rename pled to led in LED registration code Marco Nenciarini
2026-03-31 10:17     ` Andy Shevchenko
2026-03-31  7:52   ` [PATCH v6 3/4] platform/x86: int3472: Parameterize LED con_id in registration Marco Nenciarini
2026-03-31 10:20     ` Andy Shevchenko
2026-03-31  7:52   ` [PATCH v6 4/4] platform/x86: int3472: Add support for GPIO type 0x02 (IR flood LED) Marco Nenciarini
2026-03-31 10:36     ` Hans de Goede
2026-03-31 10:55       ` Andy Shevchenko
2026-04-01 13:36         ` Hans de Goede
2026-04-01 13:56           ` Andy Shevchenko
2026-03-31 10:48     ` Andy Shevchenko
2026-03-31 10:25   ` [PATCH v6 0/4] " Andy Shevchenko

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=acKJ5W12MFgZWPew@ashevche-desk.local \
    --to=andriy.shevchenko@intel.com \
    --cc=andy@kernel.org \
    --cc=dan.scally@ideasonboard.com \
    --cc=hdegoede@redhat.com \
    --cc=mnencia@kcore.it \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=sakari.ailus@linux.intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.