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

From: Krzysztof Kozlowski
Date: Fri Oct 11 2024 - 12:06:26 EST


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.

>>
>
> 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

Best regards,
Krzysztof