Message ID | 20230120114524.408368-1-hdegoede@redhat.com |
---|---|
Headers | show |
Series | leds: lookup-table support + int3472/media privacy LED support | expand |
On Fri, 20 Jan 2023, Hans de Goede wrote: > Hi All, > > Here is version 5 of my series to adjust the INT3472 code's handling of > the privacy LED on x86 laptops with MIPI camera(s) so that it will also > work on devices which have a privacy-LED GPIO but not a clk-enable GPIO > (so that we cannot just tie the LED state to the clk-enable state). > > Changes in v5: > - Rename lookup-table names to match those from the gpio and reset lookups: > s/led_name/provider/ > s/consumer_dev_name/dev_id/ > s/consumer_function/con_id/ > - Add static inline wrappers for the v4l2_async debugfs init/exit funcs, > to fix build errors when CONFIG_V4L2_ASYNC is not enabled > > Changes in v4: > - Rename new __led_get() helper to led_module_get() > - Drop of/devicetree support from "led-class: Add generic [devm_]led_get()" > - Add RFC patch to re-add of/devicetree support to show that the new > led_get() can easily be extended with dt support when the need for this > arises (proof-of-concept dt code, not intended for merging) > - New patch to built async and fwnode code into videodev.ko, > to avoid issues with some of the new LED code getting builtin vs > other parts possibly being in a module > - Move the led_get() call to v4l2_async_register_subdev_sensor() > - Move the led_disable_sysfs() call to be done at led_get() time > - Address some other minor review comments > > Changes in v3: > - Due to popular request by multiple people this new version now models > the privacy LED as a LED class device. This requires being able to > "tie" the LED class device to a specific camera sensor (some devices > have multiple sensors + privacy-LEDs). > > Patches 1-5 are LED subsystem patches for this. 1 is a bug fix, 2-4 add > the new [devm_]led_get() functions. Patch 5 is the RFC patch adding dt > support to led_get() and is not intended for merging. > > Patch 6 + 7 add generic privacy-LED support to the v4l2-core/v4l2-subdev.c > code automatically enabling the privacy-LED when s_stream(subdev, 1) > is called. So that we don't need to add privacy-LED code to all the > camera sensor drivers separately (as requested by Sakari). > > Patches 8-11 are patches to the platform specific INT3472 code to register > privacy-LED class devices + lookup table entries for privacy-LEDs described > in the special INT3472 ACPI nodes found on x86 devices with MIPI cameras. > > Assuming at least the LED maintainers are happy with the approach suggested > here, the first step to merging this would be to merge patches 1-4 and then > provide an immutable branch with those to merge for the other subsystems > since the other changes depend on these. LEDs pull request to follow.
Hi, On 1/27/23 12:08, Lee Jones wrote: > On Fri, 20 Jan 2023, Hans de Goede wrote: > >> Hi All, >> >> Here is version 5 of my series to adjust the INT3472 code's handling of >> the privacy LED on x86 laptops with MIPI camera(s) so that it will also >> work on devices which have a privacy-LED GPIO but not a clk-enable GPIO >> (so that we cannot just tie the LED state to the clk-enable state). >> >> Changes in v5: >> - Rename lookup-table names to match those from the gpio and reset lookups: >> s/led_name/provider/ >> s/consumer_dev_name/dev_id/ >> s/consumer_function/con_id/ >> - Add static inline wrappers for the v4l2_async debugfs init/exit funcs, >> to fix build errors when CONFIG_V4L2_ASYNC is not enabled >> >> Changes in v4: >> - Rename new __led_get() helper to led_module_get() >> - Drop of/devicetree support from "led-class: Add generic [devm_]led_get()" >> - Add RFC patch to re-add of/devicetree support to show that the new >> led_get() can easily be extended with dt support when the need for this >> arises (proof-of-concept dt code, not intended for merging) >> - New patch to built async and fwnode code into videodev.ko, >> to avoid issues with some of the new LED code getting builtin vs >> other parts possibly being in a module >> - Move the led_get() call to v4l2_async_register_subdev_sensor() >> - Move the led_disable_sysfs() call to be done at led_get() time >> - Address some other minor review comments >> >> Changes in v3: >> - Due to popular request by multiple people this new version now models >> the privacy LED as a LED class device. This requires being able to >> "tie" the LED class device to a specific camera sensor (some devices >> have multiple sensors + privacy-LEDs). >> >> Patches 1-5 are LED subsystem patches for this. 1 is a bug fix, 2-4 add >> the new [devm_]led_get() functions. Patch 5 is the RFC patch adding dt >> support to led_get() and is not intended for merging. >> >> Patch 6 + 7 add generic privacy-LED support to the v4l2-core/v4l2-subdev.c >> code automatically enabling the privacy-LED when s_stream(subdev, 1) >> is called. So that we don't need to add privacy-LED code to all the >> camera sensor drivers separately (as requested by Sakari). >> >> Patches 8-11 are patches to the platform specific INT3472 code to register >> privacy-LED class devices + lookup table entries for privacy-LEDs described >> in the special INT3472 ACPI nodes found on x86 devices with MIPI cameras. >> >> Assuming at least the LED maintainers are happy with the approach suggested >> here, the first step to merging this would be to merge patches 1-4 and then >> provide an immutable branch with those to merge for the other subsystems >> since the other changes depend on these. > > LEDs pull request to follow. Great, thank you! Regards, Hans
Enjoy! The following changes since commit 1b929c02afd37871d5afb9d498426f83432e71c2: Linux 6.2-rc1 (2022-12-25 13:41:39 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds.git ib-leds-led_get-6.3 for you to fetch changes up to abc3100fcba6827444ef4bdb17065ac3b6619dff: leds: led-class: Add generic [devm_]led_get() (2023-01-27 11:07:11 +0000) ---------------------------------------------------------------- Hans de Goede (4): leds: led-class: Add missing put_device() to led_put() leds: led-class: Add led_module_get() helper leds: led-class: Add __devm_led_get() helper leds: led-class: Add generic [devm_]led_get() drivers/leds/led-class.c | 138 ++++++++++++++++++++++++++++++++++++++++------- include/linux/leds.h | 21 ++++++++ 2 files changed, 139 insertions(+), 20 deletions(-)