On Mon, Dec 20, 2021 at 12:29:18PM -0800, Rajat Jain wrote:
Hello,
On Mon, Dec 20, 2021 at 11:50 AM Dmitry Torokhov dmitry.torokhov@gmail.com wrote:
On Fri, Dec 17, 2021 at 12:28:50PM -0800, Rajat Jain wrote:
Add a static entry in the x86 table, to detect and wait for privacy-screen on some ChromeOS platforms.
Please note that this means that if CONFIG_CHROMEOS_PRIVACY_SCREEN is enabled, and if "GOOG0010" device is found in ACPI, then the i915 probe shall return EPROBE_DEFER until a platform driver actually registers the privacy-screen: https://hansdegoede.livejournal.com/25948.html
Signed-off-by: Rajat Jain rajatja@google.com
v2: * Use #if instead of #elif * Reorder the patches in the series. * Rebased on drm-tip
drivers/gpu/drm/drm_privacy_screen_x86.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+)
diff --git a/drivers/gpu/drm/drm_privacy_screen_x86.c b/drivers/gpu/drm/drm_privacy_screen_x86.c index a2cafb294ca6..0c5699ad70a3 100644 --- a/drivers/gpu/drm/drm_privacy_screen_x86.c +++ b/drivers/gpu/drm/drm_privacy_screen_x86.c @@ -47,6 +47,18 @@ static bool __init detect_thinkpad_privacy_screen(void) } #endif
+#if IS_ENABLED(CONFIG_CHROMEOS_PRIVACY_SCREEN) +static bool __init detect_chromeos_privacy_screen(void)
Does marking this __init work in case there is a deferral?
Yes, I have verified that for Chromeos case, it is a deferral.
Can it happen that privacy screen is a module and so will get loaded only after we discarded __init sections.
Perhaps. But I do not think that is a problem. All the functions and data in this file are in __init sections, and this entry is here to ensure that the drm probe will wait for the privacy screen driver (whenever it is loaded).
Ah, OK, we are not leaking detect() pointers outside this module.
That is the reason, ideally we would want to somehow restrict the privacy screen to be built into the kernel so as to minimize the delay if any.
I understand, but we can not code to the config we expect to use on Chrome OS, we need to make sure we cover all possibilities.
Thanks.