FWIW, given the low-level nature of these functions, it may be worth using wrappers like the following:
void pci_config_writel(u16 bdf, u32 addr, u32 val) { if (!MODESEGMENT && mmconfig) pci_mmconfig_writel(bdf, addr, val); else pci_ioconfig_writel(bdf, addr, val); }
New pci_mmconfig_* + pci_ioconfig_* functions don't look useful to me, given that they end up being one-liners. Making the !MODESEGMENT && mmconfig condition more visible looks useful to me though, I'll try than in v2 ...
cheers, Gerd