Linux 5.16 Introducing Ability For A Driver To Probe Hardware While Powered Off

Written by Michael Larabel in Hardware on 11 November 2021 at 03:00 AM EST. 17 Comments
HARDWARE
Last week saw the main set of ACPI and power management changes for Linux 5.16 while merged on Wednesday were a secondary set of updates. Notable on the ACPI side are some changes in preparing for allowing Linux drivers to "probe" hardware while being powered off.

This Intel-contributed change to the Linux kernel is about allowing certain devices to be probed by a kernel module without changing their power states / being powered up. It's a bit of a corner case with normally not being able to properly probe the hardware and load the driver without the component being initialized and ensuring it can successfully light up and work. This won't magically work for all drivers/hardware but depends upon necessary ACPI support being advertised.

Intel's motivation for allowing a driver to probe a device powered off is actually around laptop web cameras... With some web cameras, powering up the web camera will (obviously) result in the camera's privacy LED lighting up too. For security reasons, the camera privacy LED is not normally controllable by the operating system software. But to avoid interrupting the user's experience and thinking Linux or something may be spying on them when the system is booting, there is this desire to probe a device while powered off. The privacy LED lighting in the current behavior normally is very brief but this would eliminate the need to turn on the camera while loading the kernel driver.

But on the downside, if there are hardware issues that won't be known until trying to use the driver/camera. With the initial Intel patches their changes targeted the imx319 and at24 drivers while other Linux kernel drivers moving forward may find use for this functionality if having the necessary ACPI capability.

The code is going in through the ACPI tree as it introduces the "_DSC" object for the power management object indicating the deepest D-State a device can be in for evaluating its configuration objects. Devices supporting this _DSC ACPI object can let the kernel know it can remain in a D3cold state or similar during the driver probe process and to not fully power it on. The ACPI spec proposal was made earlier this year here.

The ACPI update allowing this _DSC support for probing without changing of power states can be found via this pull request.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week