summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKapil Porwal <kapilporwal@google.com>2022-11-28 11:03:38 +0530
committerSubrata Banik <subratabanik@google.com>2022-11-29 19:49:36 +0000
commitd7eacd75aeaf648c9fe844f5928b7091f5e23d15 (patch)
tree32d1c17ef90fa99661818680916da9c67a542e02
parent0b20a174db2cdb11ca9e6f193d645d5dd0bd5c3b (diff)
soc/intel/cmn/block/pcie/rtd3: Add support for ACPI DmaProperty
BUG=b:259716145 TEST=Verified SSDT on google/rex. Signed-off-by: Kapil Porwal <kapilporwal@google.com> Change-Id: I921b06e8d35ddac0bc8175b13a33c84515b282a4 Reviewed-on: https://review.coreboot.org/c/coreboot/+/70028 Reviewed-by: Subrata Banik <subratabanik@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/soc/intel/common/block/pcie/rtd3/chip.h4
-rw-r--r--src/soc/intel/common/block/pcie/rtd3/rtd3.c5
2 files changed, 9 insertions, 0 deletions
diff --git a/src/soc/intel/common/block/pcie/rtd3/chip.h b/src/soc/intel/common/block/pcie/rtd3/chip.h
index 8b62406558..ff22adcf49 100644
--- a/src/soc/intel/common/block/pcie/rtd3/chip.h
+++ b/src/soc/intel/common/block/pcie/rtd3/chip.h
@@ -40,6 +40,10 @@ struct soc_intel_common_block_pcie_rtd3_config {
*/
int srcclk_pin;
+ /* When set to true, this will add a _DSD which contains a single
+ property, `DmaProperty`, set to 1, under the ACPI Device. */
+ bool add_acpi_dma_property;
+
/*
* Add device property indicating the device provides an external PCI port
* for the OS to apply security restrictions.
diff --git a/src/soc/intel/common/block/pcie/rtd3/rtd3.c b/src/soc/intel/common/block/pcie/rtd3/rtd3.c
index 85ee24fbb5..2c60eff069 100644
--- a/src/soc/intel/common/block/pcie/rtd3/rtd3.c
+++ b/src/soc/intel/common/block/pcie/rtd3/rtd3.c
@@ -484,6 +484,11 @@ static void pcie_rtd3_acpi_fill_ssdt(const struct device *dev)
acpi_dp_add_integer(pkg, PCIE_EXTERNAL_PORT_PROPERTY, 1);
acpi_dp_add_package(dsd, pkg);
}
+
+ /* Indicate to the OS if the device has DMA property. */
+ if (config->add_acpi_dma_property)
+ acpi_device_add_dma_property(dsd);
+
acpi_dp_write(dsd);
/*