southbridge/intel/common: Improve ACPI _PRT method generation

Add a scope parameter for `intel_write_pci0_PRT()` so that it could be
reused for multiple domains.

Change-Id: I867a0c74e633ddfe63d29870f9fd50ca883c2e78
Signed-off-by: Yuchi Chen <yuchi.chen@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85013
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
This commit is contained in:
Yuchi Chen 2024-11-06 09:05:20 +08:00 committed by Lean Sheng Tan
commit 1a22344d58
4 changed files with 7 additions and 10 deletions

View file

@ -397,7 +397,7 @@ bool generate_pin_irq_map(void)
entry = entry->next;
}
intel_write_pci0_PRT(pin_irq_map, map_count, &pirq_map);
intel_write_pci_PRT("\\_SB.PCI0", pin_irq_map, map_count, &pirq_map);
free(pin_irq_map);
return true;

View file

@ -43,12 +43,10 @@ static void gen_pic_route(const struct slot_pin_irq_map *pin_irq_map,
}
}
void intel_write_pci0_PRT(const struct slot_pin_irq_map *pin_irq_map,
unsigned int map_count,
const struct pic_pirq_map *pirq_map)
void intel_write_pci_PRT(const char *scope, const struct slot_pin_irq_map *pin_irq_map,
unsigned int map_count, const struct pic_pirq_map *pirq_map)
{
/* \_SB.PCI0._PRT */
acpigen_write_scope("\\_SB.PCI0");
acpigen_write_scope(scope);
acpigen_write_method("_PRT", 0);
acpigen_write_if();
acpigen_emit_namestring("PICM");

View file

@ -84,9 +84,8 @@ struct pic_pirq_map {
* slot/pin combination, and optionally providing paths to LNKx devices that can
* provide IRQs in PIC mode.
*/
void intel_write_pci0_PRT(const struct slot_pin_irq_map *pin_irq_map,
unsigned int map_count,
const struct pic_pirq_map *pirq_map);
void intel_write_pci_PRT(const char *scope, const struct slot_pin_irq_map *pin_irq_map,
unsigned int map_count, const struct pic_pirq_map *pirq_map);
bool is_slot_pin_assigned(const struct slot_pin_irq_map *pin_irq_map,
unsigned int map_count, unsigned int slot,

View file

@ -90,7 +90,7 @@ void intel_acpi_gen_def_acpi_pirq(const struct device *lpc)
map_count++;
}
intel_write_pci0_PRT(pin_irq_map, map_count, &pirq_map);
intel_write_pci_PRT("\\_SB.PCI0", pin_irq_map, map_count, &pirq_map);
free(pin_irq_map);
}