> -----Original Message----- > From: Andrew Murray <andrew.murray@xxxxxxx> > Sent: 2019年8月27日 21:25 > To: Xiaowei Bao <xiaowei.bao@xxxxxxx> > Cc: bhelgaas@xxxxxxxxxx; robh+dt@xxxxxxxxxx; mark.rutland@xxxxxxx; > shawnguo@xxxxxxxxxx; Leo Li <leoyang.li@xxxxxxx>; kishon@xxxxxx; > lorenzo.pieralisi@xxxxxx; arnd@xxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx; M.h. > Lian <minghuan.lian@xxxxxxx>; Mingkai Hu <mingkai.hu@xxxxxxx>; Roy > Zang <roy.zang@xxxxxxx>; jingoohan1@xxxxxxxxx; > gustavo.pimentel@xxxxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx; > devicetree@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linuxppc-dev@xxxxxxxxxxxxxxxx > Subject: Re: [PATCH v2 07/10] PCI: layerscape: Modify the MSIX to the > doorbell way > > On Sat, Aug 24, 2019 at 12:08:40AM +0000, Xiaowei Bao wrote: > > > > > > > -----Original Message----- > > > From: Andrew Murray <andrew.murray@xxxxxxx> > > > Sent: 2019年8月23日 21:58 > > > To: Xiaowei Bao <xiaowei.bao@xxxxxxx> > > > Cc: bhelgaas@xxxxxxxxxx; robh+dt@xxxxxxxxxx; mark.rutland@xxxxxxx; > > > shawnguo@xxxxxxxxxx; Leo Li <leoyang.li@xxxxxxx>; kishon@xxxxxx; > > > lorenzo.pieralisi@xxxxxx; arnd@xxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx; > M.h. > > > Lian <minghuan.lian@xxxxxxx>; Mingkai Hu <mingkai.hu@xxxxxxx>; Roy > > > Zang <roy.zang@xxxxxxx>; jingoohan1@xxxxxxxxx; > > > gustavo.pimentel@xxxxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx; > > > devicetree@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > > > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linuxppc-dev@xxxxxxxxxxxxxxxx > > > 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: > > > > 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. > > Given that dw_pcie_ep_raise_msix_irq is used by pcie-designware-plat.c we > can assume this function at least works for it's use case. > > Please update the commit message - It would be helpful to suggest that > dw_pcie_ep_raise_msix_irq was never called in the exisitng driver because > msix_capable was always set to false. Agree, this is much clearer, I will modify the commit message in the next version patch, thanks a lot. > > Thanks, > > Andrew Murray > > > > > > > > > Thanks, > > > > > > Andrew Murray > > > > > > > Signed-off-by: Xiaowei Bao <xiaowei.bao@xxxxxxx> > > > > --- > > > > v2: > > > > - No change. > > > > > > > > drivers/pci/controller/dwc/pci-layerscape-ep.c | 3 ++- > > > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > > > > > diff --git a/drivers/pci/controller/dwc/pci-layerscape-ep.c > > > > b/drivers/pci/controller/dwc/pci-layerscape-ep.c > > > > index 8461f62..7ca5fe8 100644 > > > > --- a/drivers/pci/controller/dwc/pci-layerscape-ep.c > > > > +++ b/drivers/pci/controller/dwc/pci-layerscape-ep.c > > > > @@ -74,7 +74,8 @@ static int ls_pcie_ep_raise_irq(struct > > > > dw_pcie_ep *ep, > > > u8 func_no, > > > > case PCI_EPC_IRQ_MSI: > > > > return dw_pcie_ep_raise_msi_irq(ep, func_no, interrupt_num); > > > > case PCI_EPC_IRQ_MSIX: > > > > - return dw_pcie_ep_raise_msix_irq(ep, func_no, > interrupt_num); > > > > + return dw_pcie_ep_raise_msix_irq_doorbell(ep, func_no, > > > > + interrupt_num); > > > > default: > > > > dev_err(pci->dev, "UNKNOWN IRQ type\n"); > > > > return -EINVAL; > > > > -- > > > > 2.9.5 > > > >