acpi: Add acpigen_write_PRT* helpers for generating _PRT entries
Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Change-Id: Ia666bd0e5db40d7873532dc22bc89be9854b903a Reviewed-on: https://review.coreboot.org/c/coreboot/+/51107 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
This commit is contained in:
@@ -24,3 +24,34 @@ void acpigen_write_ADR_pci_device(const struct device *dev)
|
|||||||
assert(dev->path.type == DEVICE_PATH_PCI);
|
assert(dev->path.type == DEVICE_PATH_PCI);
|
||||||
acpigen_write_ADR_pci_devfn(dev->path.pci.devfn);
|
acpigen_write_ADR_pci_devfn(dev->path.pci.devfn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void acpigen_write_PRT_GSI_entry(unsigned int pci_dev, unsigned int acpi_pin, unsigned int gsi)
|
||||||
|
{
|
||||||
|
acpigen_write_package(4);
|
||||||
|
acpigen_write_dword((pci_dev << 16) | 0xffff);
|
||||||
|
acpigen_write_byte(acpi_pin);
|
||||||
|
|
||||||
|
/* Source */
|
||||||
|
acpigen_write_byte(0);
|
||||||
|
|
||||||
|
/* Source Index */
|
||||||
|
acpigen_write_dword(gsi);
|
||||||
|
|
||||||
|
acpigen_pop_len(); /* Package */
|
||||||
|
}
|
||||||
|
|
||||||
|
void acpigen_write_PRT_source_entry(unsigned int pci_dev, unsigned int acpi_pin,
|
||||||
|
const char *source_path, unsigned int index)
|
||||||
|
{
|
||||||
|
acpigen_write_package(4);
|
||||||
|
acpigen_write_dword((pci_dev << 16) | 0xffff);
|
||||||
|
acpigen_write_byte(acpi_pin);
|
||||||
|
|
||||||
|
/* Source */
|
||||||
|
acpigen_emit_namestring(source_path);
|
||||||
|
|
||||||
|
/* Source Index */
|
||||||
|
acpigen_write_dword(index);
|
||||||
|
|
||||||
|
acpigen_pop_len(); /* Package */
|
||||||
|
}
|
||||||
|
@@ -10,4 +10,8 @@
|
|||||||
void acpigen_write_ADR_pci_devfn(pci_devfn_t devfn);
|
void acpigen_write_ADR_pci_devfn(pci_devfn_t devfn);
|
||||||
void acpigen_write_ADR_pci_device(const struct device *dev);
|
void acpigen_write_ADR_pci_device(const struct device *dev);
|
||||||
|
|
||||||
|
void acpigen_write_PRT_GSI_entry(unsigned int pci_dev, unsigned int acpi_pin, unsigned int gsi);
|
||||||
|
void acpigen_write_PRT_source_entry(unsigned int pci_dev, unsigned int acpi_pin,
|
||||||
|
const char *source_path, unsigned int index);
|
||||||
|
|
||||||
#endif /* ACPIGEN_PCI_H */
|
#endif /* ACPIGEN_PCI_H */
|
||||||
|
Reference in New Issue
Block a user