diff mbox series

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

Message ID 20241011104142.1181773-4-quic_qianyu@quicinc.com (mailing list archive)
State Not Applicable, archived
Headers show
Series Add support for PCIe3 on x1e80100 | expand

Commit Message

Qiang Yu Oct. 11, 2024, 10:41 a.m. UTC
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.

Though adding a new interrupt will break the ABI, it is required to
accurately describe the hardware.

Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
---
 .../devicetree/bindings/pci/qcom,pcie-x1e80100.yaml    | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

Comments

Krzysztof Kozlowski Oct. 11, 2024, 2:33 p.m. UTC | #1
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.

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

NAK.

Best regards,
Krzysztof
Krzysztof Kozlowski Oct. 11, 2024, 2:36 p.m. UTC | #2
On 11/10/2024 16:33, Krzysztof Kozlowski 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.
> 
> Sorry, if your driver changes the ABI for this poor reason.
> 
> NAK.
> 

Plus you did not test DTS, not fixed existing users.

That's v6, so we assume you already know how to test it and do the
testing before posting new versions.

Best regards,
Krzysztof
Manivannan Sadhasivam Oct. 11, 2024, 3:42 p.m. UTC | #3
On October 11, 2024 8:03:58 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> 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? 

- Mani

>NAK.
>
>Best regards,
>Krzysztof
>

மணிவண்ணன் சதாசிவம்
Krzysztof Kozlowski Oct. 11, 2024, 3:44 p.m. UTC | #4
On 11/10/2024 17:42, Manivannan Sadhasivam wrote:
> 
> 
> On October 11, 2024 8:03:58 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> 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. Above explanation is good, but
still feels like improvement and device could work without global clock.

Best regards,
Krzysztof
Manivannan Sadhasivam Oct. 11, 2024, 3:51 p.m. UTC | #5
On October 11, 2024 9:14:31 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>On 11/10/2024 17:42, Manivannan Sadhasivam wrote:
>> 
>> 
>> On October 11, 2024 8:03:58 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> 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.
>

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.

- Mani

மணிவண்ணன் சதாசிவம்
Krzysztof Kozlowski Oct. 11, 2024, 4:06 p.m. UTC | #6
On 11/10/2024 17:51, Manivannan Sadhasivam wrote:
> 
> 
> On October 11, 2024 9:14:31 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>> On 11/10/2024 17:42, Manivannan Sadhasivam wrote:
>>>
>>>
>>> On October 11, 2024 8:03:58 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> 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
Qiang Yu Oct. 14, 2024, 7:50 a.m. UTC | #7
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@kernel.org> wrote:
>>> On 11/10/2024 17:42, Manivannan Sadhasivam wrote:
>>>>
>>>> On October 11, 2024 8:03:58 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> 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
>
Krzysztof Kozlowski Oct. 14, 2024, 8:25 a.m. UTC | #8
On 14/10/2024 09:50, Qiang Yu wrote:
> 
> 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@kernel.org> wrote:
>>>> On 11/10/2024 17:42, Manivannan Sadhasivam wrote:
>>>>>
>>>>> On October 11, 2024 8:03:58 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> 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

Describe real effects. You got comments about ABI impact before, right?
So if you remove this, how previous feedback is addressed?


> I know in which case ABI will be broken by adding an interrupt in bingdings
> and what ABI will be broken?

Users of ABI stop working.

Best regards,
Krzysztof
Manivannan Sadhasivam Oct. 14, 2024, 9:02 a.m. UTC | #9
On Fri, Oct 11, 2024 at 06:06:02PM +0200, 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@kernel.org> wrote:
> >> On 11/10/2024 17:42, Manivannan Sadhasivam wrote:
> >>>
> >>>
> >>> On October 11, 2024 8:03:58 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> 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 increases the 'minItems' to 9 from 8, how come it is not an ABI break?

- Mani
Krzysztof Kozlowski Oct. 14, 2024, 9:26 a.m. UTC | #10
On 14/10/2024 11:02, Manivannan Sadhasivam wrote:
> On Fri, Oct 11, 2024 at 06:06:02PM +0200, 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@kernel.org> wrote:
>>>> On 11/10/2024 17:42, Manivannan Sadhasivam wrote:
>>>>>
>>>>>
>>>>> On October 11, 2024 8:03:58 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> 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 increases the 'minItems' to 9 from 8, how come it is not an ABI break?

Interface changed but all known users are still working, right? "Break"
means something does not work, something is affected. I might be missing
here something, of course, but I simply do not see any affected user here.

Best regards,
Krzysztof
Manivannan Sadhasivam Oct. 14, 2024, 9:41 a.m. UTC | #11
On October 14, 2024 2:56:58 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>On 14/10/2024 11:02, Manivannan Sadhasivam wrote:
>> On Fri, Oct 11, 2024 at 06:06:02PM +0200, 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@kernel.org> wrote:
>>>>> On 11/10/2024 17:42, Manivannan Sadhasivam wrote:
>>>>>>
>>>>>>
>>>>>> On October 11, 2024 8:03:58 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> 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 increases the 'minItems' to 9 from 8, how come it is not an ABI break?
>
>Interface changed but all known users are still working, right? "Break"
>means something does not work, something is affected. 

Hmm. I thought you were referring to the DTS warnings (for old DTS) that come out of these changes. But for kernel ABI, yes there is no breakage.

Sorry for the confusion.

- Mani

> I might be missing
>here something, of course, but I simply do not see any affected user here.
>
>Best regards,
>Krzysztof
>
>

மணிவண்ணன் சதாசிவம்
Qiang Yu Oct. 14, 2024, 1:09 p.m. UTC | #12
On 10/14/2024 5:41 PM, Manivannan Sadhasivam wrote:
>
> On October 14, 2024 2:56:58 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>> On 14/10/2024 11:02, Manivannan Sadhasivam wrote:
>>> On Fri, Oct 11, 2024 at 06:06:02PM +0200, 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@kernel.org> wrote:
>>>>>> On 11/10/2024 17:42, Manivannan Sadhasivam wrote:
>>>>>>>
>>>>>>> On October 11, 2024 8:03:58 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> 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 increases the 'minItems' to 9 from 8, how come it is not an ABI break?
>> Interface changed but all known users are still working, right? "Break"
>> means something does not work, something is affected.
> Hmm. I thought you were referring to the DTS warnings (for old DTS) that come out of these changes. But for kernel ABI, yes there is no breakage.
I really see dts warning after dtbs checking and since global irq is to
improve user experience and device could still work without it, will
keep the 'minItems' as 8 and set 'maxItems' as 9.

Thanks
Qiang
>
> Sorry for the confusion.
>
> - Mani
>
>> I might be missing
>> here something, of course, but I simply do not see any affected user here.
>>
>> Best regards,
>> Krzysztof
>>
>>
> மணிவண்ணன் சதாசிவம்
Qiang Yu Oct. 14, 2024, 1:09 p.m. UTC | #13
On 10/14/2024 4:25 PM, Krzysztof Kozlowski wrote:
> On 14/10/2024 09:50, Qiang Yu wrote:
>> 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@kernel.org> wrote:
>>>>> On 11/10/2024 17:42, Manivannan Sadhasivam wrote:
>>>>>> On October 11, 2024 8:03:58 PM GMT+05:30, Krzysztof Kozlowski <krzk@kernel.org> 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
> Describe real effects. You got comments about ABI impact before, right?
> So if you remove this, how previous feedback is addressed?
Global interrupt is parsed as optional in driver, so there is
no ABI break, will write this in commit message.

Thanks
Qiang
>
>
>> I know in which case ABI will be broken by adding an interrupt in bingdings
>> and what ABI will be broken?
> Users of ABI stop working.
>
> Best regards,
> Krzysztof
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-x1e80100.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie-x1e80100.yaml
index a9db0a231563..2c0e01fc0ab8 100644
--- a/Documentation/devicetree/bindings/pci/qcom,pcie-x1e80100.yaml
+++ b/Documentation/devicetree/bindings/pci/qcom,pcie-x1e80100.yaml
@@ -46,8 +46,8 @@  properties:
       - const: cnoc_sf_axi # Config NoC PCIe1 AXI clock
 
   interrupts:
-    minItems: 8
-    maxItems: 8
+    minItems: 9
+    maxItems: 9
 
   interrupt-names:
     items:
@@ -59,6 +59,7 @@  properties:
       - const: msi5
       - const: msi6
       - const: msi7
+      - const: global
 
   resets:
     minItems: 1
@@ -130,9 +131,10 @@  examples:
                          <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
                          <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
                          <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
+                         <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
             interrupt-names = "msi0", "msi1", "msi2", "msi3",
-                              "msi4", "msi5", "msi6", "msi7";
+                              "msi4", "msi5", "msi6", "msi7", "global";
             #interrupt-cells = <1>;
             interrupt-map-mask = <0 0 0 0x7>;
             interrupt-map = <0 0 0 1 &intc 0 0 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */