Thread (50 messages) 50 messages, 7 authors, 2019-11-06

RE: [PATCH v2 07/10] PCI: layerscape: Modify the MSIX to the doorbell way

From: Gustavo Pimentel <hidden>
Date: 2019-11-06 09:40:35
Also in: linux-devicetree, linux-pci, linuxppc-dev, lkml

On Thu, Aug 29, 2019 at 6:13:18, Kishon Vijay Abraham I [off-list ref] 
wrote:

Hi, this email slip away from my attention...
Gustavo,

On 27/08/19 6:55 PM, Andrew Murray wrote:
quoted
On Sat, Aug 24, 2019 at 12:08:40AM +0000, Xiaowei Bao wrote:
quoted
quoted
-----Original Message-----
From: Andrew Murray <redacted>
Sent: 2019年8月23日 21:58
To: Xiaowei Bao <redacted>
Cc: bhelgaas@google.com; robh+dt@kernel.org; mark.rutland@arm.com;
shawnguo@kernel.org; Leo Li [off-list ref]; kishon@ti.com;
lorenzo.pieralisi@arm.co; arnd@arndb.de; gregkh@linuxfoundation.org; M.h.
Lian [off-list ref]; Mingkai Hu [off-list ref]; Roy
Zang [off-list ref]; jingoohan1@gmail.com;
gustavo.pimentel@synopsys.com; linux-pci@vger.kernel.org;
devicetree@vger.kernel.org; linux-kernel@vger.kernel.org;
linux-arm-kernel@lists.infradead.org; linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v2 07/10] PCI: layerscape: Modify the MSIX to the
doorbell way

On Thu, Aug 22, 2019 at 07:22:39PM +0800, Xiaowei Bao wrote:
quoted
The layerscape platform use the doorbell way to trigger MSIX interrupt
in EP mode.
I have no problems with this patch, however...

Are you able to add to this message a reason for why you are making this
change? Did dw_pcie_ep_raise_msix_irq not work when func_no != 0? Or did
it work yet dw_pcie_ep_raise_msix_irq_doorbell is more efficient?
The fact is that, this driver is verified in ls1046a platform of NXP before, and ls1046a don't
support MSIX feature, so I set the msix_capable of pci_epc_features struct is false,
but in other platform, e.g. ls1088a, it support the MSIX feature, I verified the MSIX
feature in ls1088a, it is not OK, so I changed to another way. Thanks.
Right, so the existing pci-layerscape-ep.c driver never supported MSIX yet it
erroneously had a switch case statement to call dw_pcie_ep_raise_msix_irq which
would never get used.

Now that we're adding a platform with MSIX support the existing
dw_pcie_ep_raise_msix_irq doesn't work (for this platform) so we are adding a
different method.
Gustavo, can you confirm dw_pcie_ep_raise_msix_irq() works for designware as it
didn't work for both me and Xiaowei?
When I implemented the dw_pcie_ep_raise_msix_irq(), the implementation 
was working quite fine on DesignWare solution. Otherwise, I wouldn't 
submit it to the kernel.
From what I have seen and if I recall well, Xiaowei implementation was 
done having PF's configurated on his solution, which is a configuration 
that I don't have in my solution, I believe this could be the missing 
piece that differs between our 2 implementations.

Since patch submission into the kernel related to msix feature on pcitest 
tool, I didn't touch or re-tested the msix feature by lack of time (other 
projects requires my full attention for now). However is on my roadmap to 
came back to add some other features on DesignWare eDMA driver and I can 
do at that time some tests to see if the 
dw_pcie_ep_raise_msix_irq_doorbell() is compatible or not with my 
solution. If so, I can do some patch to simplify and use the 
dw_pcie_ep_raise_msix_irq_doorbell() if it still works as expected like 
on dw_pcie_ep_raise_msix_irq(). Agree?

Gustavo
Thanks
Kishon

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help