From b81b7a2014f860b5335c6df229f91c1cc5a679d8 Mon Sep 17 00:00:00 2001 From: Sean Rhodes Date: Tue, 15 Apr 2025 20:02:13 +0100 Subject: [PATCH] soc/intel/cnvi: Add HotPlugSupportInD3 Property Add a DSD with the HotPlugSupportInD3, as when it RTD3, the device will appear as not-present. This will cause Windows to constantly try to enable it, causing an endless loop of the device becoming visible. Test=build and boot `starlabs/starlite_adl`, check CNVi is always visible in device manager. Change-Id: I598ab173074522e9d5af002782c5d3ec7691a815 Signed-off-by: Sean Rhodes Reviewed-on: https://review.coreboot.org/c/coreboot/+/87325 Reviewed-by: Matt DeVillier Tested-by: build bot (Jenkins) --- src/drivers/wifi/generic/acpi.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/drivers/wifi/generic/acpi.c b/src/drivers/wifi/generic/acpi.c index 8cab106d36..e64ff01a59 100644 --- a/src/drivers/wifi/generic/acpi.c +++ b/src/drivers/wifi/generic/acpi.c @@ -1051,9 +1051,18 @@ static void wifi_ssdt_write_properties(const struct device *dev, const char *sco /* Wake capabilities */ acpigen_write_PRW(config->wake, ACPI_S3); - /* Add _DSD for DmaProperty property. */ - if (config->add_acpi_dma_property) - acpi_device_add_dma_property(NULL); + if ((config->add_acpi_dma_property) || (config->cnvi_enable_gpio.pin_count)) { + struct acpi_dp *dsd = acpi_dp_new_table("_DSD"); + + /* Add _DSD for DmaProperty property. */ + if (config->add_acpi_dma_property) + acpi_device_add_dma_property(dsd); + + if (config->cnvi_enable_gpio.pin_count) + acpi_device_add_hotplug_support_in_d3(dsd); + + acpi_dp_write(dsd); + } } /* Fill regulatory domain structure */