Re: Re: [PATCH v2 0/8] Add Keystone PCIe controller driver
From: Murali Karicheri <hidden>
Date: 2014-06-24 16:23:10
Also in:
linux-arm-kernel, linux-pci, lkml
Mohit, On 06/23/2014 12:49 PM, Santosh Shilimkar wrote:
-------- Original Message -------- Subject: Re: [PATCH v2 0/8] Add Keystone PCIe controller driver Date: Mon, 23 Jun 2014 10:43:46 +0530 From: Pratyush Anand<redacted> To: Murali Karicheri<redacted> On Sat, Jun 21, 2014 at 05:17:07AM +0800, Murali Karicheri wrote:quoted
Sorry, my previous response was in html and not sure it has made to the list. I did get an error as well. So resending my response. On 6/18/2014 6:14 AM, Mohit KUMAR DCG wrote:quoted
Hello Murali,[...]quoted
*pos = pos0;@@ -349,7 +353,10 @@ static int dw_msi_setup_irq(struct msi_chip *chip,struct pci_dev *pdev, */ desc->msi_attrib.multiple = msgvec; -msg.address_lo = virt_to_phys((void *)pp->msi_data); +if (pp->ops->get_msi_data) +msg.address_lo = pp->ops->get_msi_data(pp); +else +msg.address_lo = virt_to_phys((void *)pp->msi_data); msg.address_hi = 0x0; msg.data = pos; What about this code? This requires get_msi_data() as wellpp->msi_data is set in dw_pcie_msi_init, which is a global function called from vendor specific code. You can have your own keystone_pcie_msi_init and then you do not need above changes.
My Apologies for the email format as I lost the original email and had to respond using a forwarded email. If you look at my original patch, keystone driver was not calling dw_pcie_msi_init(). However the issue is msi_chip of DW core is re-used as most of the code is platform independent. However code that sends write_msi_msg() can be re-used on keystone by adding this get_msi_data() API as the only difference IMO is the address EP writes to raise an MSI IRQ event. I don't see any reason why the entire code needs to be duplicated on Keystone. BTW, currently I have not tested the MSI IRQ and tested my driver only with Legacy IRQ. I plan to test this before sending my v3 of the patch. Murali
quoted
quoted
-- 3rd to use pp->ops->msi_set/clear if defined.Why not API enhancement and refactor the code in a single patch?Yes, can be. You can send changes in 2 or 3 patches as you wish, but I believe that should be able to solve problem in best way. Regards Pratyushquoted
Muraliquoted
Pls let us know for any issue or have different opinion. Regards Mohitquoted
-- 1.7.9.5