Subject: [PATCH v2 0/8] Add Keystone PCIe controller driver

From: [email-masked] (Murali Karicheri)
Date: Tue, 24 Jun 2014 12:21:47 -0400

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<[email-masked]>
> To: Murali Karicheri<[email-masked]>
>
> 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
>>
>
>