On Thu, Jun 19, 2025 at 02:29:33PM -0500, Timothy Pearson wrote: > To be perfectly frank the existing code quality in this driver > (and the associated EEH driver) is not the best, and it's been > a frustrating experience trying to hack it into semi-stable > operation. > > I would vastly prefer to rewrite / integrate into the pciehp driver, > and we have plans to do so, but that will take an unacceptable amount > of time vs. trying to fix up the existing driver as a stopgap. > > As you mentioned, pciehp already has this fix, so we just have to > deal with the duplicated code until we (Raptor) figures out how to > merge PowerNV support into pciehp.
I don't know how much PCIe hotplug on PowerNV differs from native, spec-compliant PCIe hotplug. If the differences are vast (and I get the feeling they might be if I read terms like "PHB" and "EEH unfreeze", which sound completely foreign to me), it might be easier to refactor pnv_php.c and copy patterns or code from pciehp, than to integrate the functionality from pnv_php.c into pciehp. pciehp does carry some historic baggage of its own (such as poll mode), which you may not want to deal with on PowerNV. One thing I don't quite understand is, it sounds like you've attached a PCIe switch to a Root Port and the hotplug ports are on the PCIe switch. Aren't those hotplug ports just bog-standard ones that can be driven by pciehp? My expectation would have been that a PowerNV-specific hotplug driver would only be necessary for hotplug-capable Root Ports. Thanks, Lukas