Subrata Banik has submitted this change. ( https://review.coreboot.org/c/coreboot/+/70022 )
(
6 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. )Change subject: acpi: Create a common method to add DmaProperty ......................................................................
acpi: Create a common method to add DmaProperty
Create a common method to add DmaProperty.
BUG=b:259716145 TEST=Verified SSDT on google/osiris.
Signed-off-by: Kapil Porwal kapilporwal@google.com Change-Id: I75b3f22ad29f90f3c3b251bd0d70bae9d75f71fe Reviewed-on: https://review.coreboot.org/c/coreboot/+/70022 Reviewed-by: Subrata Banik subratabanik@google.com Tested-by: build bot (Jenkins) no-reply@coreboot.org --- M src/acpi/device.c M src/include/acpi/acpi_device.h 2 files changed, 43 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Subrata Banik: Looks good to me, approved
diff --git a/src/acpi/device.c b/src/acpi/device.c index 2b085b6..b732b8f 100644 --- a/src/acpi/device.c +++ b/src/acpi/device.c @@ -1183,3 +1183,19 @@ acpigen_pop_len(); /* Device */ acpigen_pop_len(); /* Scope */ } + +/* ID for the DmaProperty _DSD */ +#define ACPI_DSD_DMA_PROPERTY_UUID "70D24161-6DD5-4C9E-8070-705531292865" + +/* _DSD with DmaProperty */ +void acpi_device_add_dma_property(struct acpi_dp *dsd) +{ + struct acpi_dp *prev_dsd = dsd, *pkg; + if (prev_dsd == NULL) + dsd = acpi_dp_new_table("_DSD"); + pkg = acpi_dp_new_table(ACPI_DSD_DMA_PROPERTY_UUID); + acpi_dp_add_integer(pkg, "DmaProperty", 1); + acpi_dp_add_package(dsd, pkg); + if (prev_dsd == NULL) + acpi_dp_write(dsd); +} diff --git a/src/include/acpi/acpi_device.h b/src/include/acpi/acpi_device.h index 71809eb..1493cb4 100644 --- a/src/include/acpi/acpi_device.h +++ b/src/include/acpi/acpi_device.h @@ -588,4 +588,13 @@ */ void acpi_device_write_pci_dev(const struct device *dev);
+/* + * Helper function to add DmaProperty to _DSD in the current scope. + * + * dsd - Pointer to a _DSD object. + * Append to existing _DSD object if not NULL. + * Create new _DSD object and flush it if NULL. + */ +void acpi_device_add_dma_property(struct acpi_dp *dsd); + #endif /* __ACPI_ACPI_DEVICE_H__ */