Re: [PATCH v6 3/8] dt-bindings: PCI: qcom,pcie-x1e80100: Add 'global' interrupt

From: Qiang Yu
Date: Mon Oct 14 2024 - 03:51:34 EST



On 10/12/2024 12:06 AM, Krzysztof Kozlowski wrote:
On 11/10/2024 17:51, Manivannan Sadhasivam wrote:

On October 11, 2024 9:14:31 PM GMT+05:30, Krzysztof Kozlowski <krzk@xxxxxxxxxx> wrote:
On 11/10/2024 17:42, Manivannan Sadhasivam wrote:

On October 11, 2024 8:03:58 PM GMT+05:30, Krzysztof Kozlowski <krzk@xxxxxxxxxx> wrote:
On Fri, Oct 11, 2024 at 03:41:37AM -0700, Qiang Yu wrote:
Document 'global' SPI interrupt along with the existing MSI interrupts so
that QCOM PCIe RC driver can make use of it to get events such as PCIe
link specific events, safety events, etc.
Describe the hardware, not what the driver will do.

Though adding a new interrupt will break the ABI, it is required to
accurately describe the hardware.
That's poor reason. Hardware was described and missing optional piece
(because according to your description above everything was working
fine) is not needed to break ABI.

Hardware was described but not completely. 'global' IRQ let's the controller driver to handle PCIe link specific events like Link up, Link down etc... They improve user experience like the driver can use those interrupts to start bus enumeration on its own. So breaking the ABI for good in this case.

Sorry, if your driver changes the ABI for this poor reason.

Is the above reasoning sufficient?
I tried to look for corresponding driver change, but could not, so maybe
there is no ABI break in the first place.
Here it is:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4581403f67929d02c197cb187c4e1e811c9e762a

Above explanation is good, but
still feels like improvement and device could work without global clock.
So there is no ABI break in the first place... Commit is misleading.
OK, will remove the description about ABI break in commit message. But may
I know in which case ABI will be broken by adding an interrupt in bingdings
and what ABI will be broken?

It is certainly an improvement but provides a nice user experience as the devices will be enumerated when they get plugged into the slot (like hotplug). Otherwise, users have to rescan the bus every time they plug a device. Also when the device gets removed, driver could retrain the link if link went to a bad state. Otherwise, link will remain in the broken state requiring users to unload/load the driver again.
OK

Thanks Mani for your detailed explaination. Can I reword commit message
like this:

Qcom PCIe RC controllers are capable of generating 'global' SPI interrupt
to the host CPU. This interrupt can be used by the device driver to handle
PCIe link specific events such as Link up and Link down, which give the
driver a chance to start bus enumeration on its own when link is up and
initiate link training if link went to a bad state. This provides a nice
user experience.

Hence, document it in the binding along with the existing MSI interrupts.

Thanks,
Qiang

Best regards,
Krzysztof