soc/intel/apollolake: use P2SB function to generate DMAR HPET

Change-Id: I68f63c79d04cb2cddb92c9f6385459723f8858bd
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/47532
Reviewed-by: Christian Walter <christian.walter@9elements.com>
Reviewed-by: Marc Jones <marc@marcjonesconsulting.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/soc/intel/apollolake/acpi.c b/src/soc/intel/apollolake/acpi.c
index ee1a543..8609c7c 100644
--- a/src/soc/intel/apollolake/acpi.c
+++ b/src/soc/intel/apollolake/acpi.c
@@ -194,7 +194,7 @@
 		p2sb_unhide();
 		struct device *p2sb_dev = pcidev_path_on_root(PCH_DEVFN_P2SB);
 		uint16_t ibdf = pci_read_config16(p2sb_dev, PCH_P2SB_IBDF);
-		uint16_t hbdf = pci_read_config16(p2sb_dev, PCH_P2SB_HBDF);
+		union p2sb_bdf hbdf = p2sb_get_hpet_bdf();
 		p2sb_hide();
 
 		current += acpi_create_dmar_drhd(current,
@@ -202,7 +202,7 @@
 		current += acpi_create_dmar_ds_ioapic(current,
 				2, ibdf >> 8, PCI_SLOT(ibdf), PCI_FUNC(ibdf));
 		current += acpi_create_dmar_ds_msi_hpet(current,
-				0, hbdf >> 8, PCI_SLOT(hbdf), PCI_FUNC(hbdf));
+				0, hbdf.bus, hbdf.dev, hbdf.fn);
 		acpi_dmar_drhd_fixup(tmp, current);
 	}