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>
This commit is contained in:
Kapil Porwal 2022-11-26 19:10:57 +05:30 committed by Subrata Banik
parent 3fd1174e76
commit ddc52a6481
2 changed files with 25 additions and 0 deletions

View File

@ -1183,3 +1183,19 @@ void acpi_device_write_pci_dev(const struct device *dev)
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);
}

View File

@ -588,4 +588,13 @@ void acpi_dp_write(struct acpi_dp *table);
*/
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__ */