Messages in this thread | | | Date | Tue, 24 Jun 2014 12:21:47 -0400 | From | Murali Karicheri <> | Subject | Re: Re: [PATCH v2 0/8] Add Keystone PCIe controller driver |
| |
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<pratyush.anand@st.com> > To: Murali Karicheri<m-karicheri2@ti.com> > > On Sat, Jun 21, 2014 at 05:17:07AM +0800, Murali Karicheri wrote: >> >> 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: >>> Hello Murali, >>> >> > > [...] > >> *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 well > > pp->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
>> >>> -- 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 > Pratyush >> >> Murali >>> Pls let us know for any issue or have different opinion. >>> >>> Regards >>> Mohit >>> >>> >>> >>> >>>> -- >>>> 1.7.9.5 >> > >
| |