Re: [RFC 2/4] PCI: generic: Add support for ARM64 and MSI(x)

From: Suravee Suthikulanit
Date: Fri Jan 02 2015 - 13:18:31 EST


On 1/2/2015 5:55 AM, Lorenzo Pieralisi wrote:
Hi Suravee,

On Mon, Dec 29, 2014 at 07:32:44PM +0000, Suravee Suthikulpanit wrote:
>Hi,
>
>I am not sure if this thread is still alive. I'm trying to see what I
>can do to help clean up/convert to make the PCI GHC also works for arm64
>w/ zero or minimal ifdefs.
>
>Please let me know if someone is already working on this. I noticed that
>Lorenzo's patches has already been in 3.19-rc1, and in Bjorn's
>pci/domain branch. Otherwise, I'll try to continue the work based on the
>sample patch from Arnd here.
If I am not mistaken, the only bit missing to remove pci_sys_data (and so
having a generic host controller driver that works on ARM32/64) is generic
MSI management.

Lorenzo,

Do you mean to remove pci_sys_data from pci-host-generic.c or removing it completely? I assume the former case.

So, looking at the current code in the pci-host-generic.c, my understanding is that the:
*gen_pci = pci_bus->sysdata->private_data
will be changed to:
*gen_pci = pci_bus->sysdata

Then, we can simply just call pci_scan_root_bus() directly since we no longer need to declare hw_pci for calling pci_common_init_dev().

I know for certain Marc is working on it, and the solution is WIP,
I think we should prevent adding more churn to pci_sys_data, since
I managed to remove most of the dependencies (domain, mem_offset).

Thanks for cleaning up the domain and mem_offset.

I saw Marc's irq/msi_domain patch series (http://git.kernel.org/cgit/linux/kernel/git/maz/arm-platforms.git/log/?h=irq/msi_domain).

My understanding is that deals with associating the newly introduced msi_domain to each device, which replaces the need for pci_bus->msi and hw_pci->msi_ctrl when configure with CONFIG_PCI_MSI_IRQ_DOMAIN (not sure if this would be the plan for all arm32). For ARM32, if not define CONFIG_PCI_MSI_IRQ_DOMAIN, it would still fall back to using the [pci_sys_data|hw_pci]->msi_ctrl.

However, I noticed that the hw_pci->msi_controller is not even used for the pci-host-generic. So, this should not be blocking the work to free pci-host-generic from pci_sys_data and hw_pci, as the MSI stuff can go in separately. Am I missing something?

So to sum it up, to have a generic host controller driver for ARM32/64
we just need to work out how to handle the MSI data, patches will be
on the lists shortly to handle that, please review.

Thanks,
Lorenzo


Thanks for the update and the summary. I'll help review/test the MSI patch once posted.

Thanks,

Suravee

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/