From mboxrd@z Thu Jan 1 00:00:00 1970 From: arnd@arndb.de (Arnd Bergmann) Date: Mon, 12 Jan 2015 20:44:50 +0100 Subject: [PATCH 1/4] PCI: X-Gene: Add the APM X-Gene v1 PCIe MSI/MSIX termination driver In-Reply-To: References: <22570652.F088Afk9OX@wuerfel> Message-ID: <1678162.2PJ2o1jRen@wuerfel> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Monday 12 January 2015 10:53:14 Duc Dang wrote: > On Tue, Jan 6, 2015 at 11:33 AM, Arnd Bergmann wrote: > > On Tuesday 06 January 2015 08:15:41 Duc Dang wrote: > >> X-Gene v1 SOC supports total 2688 MSI/MSIX vectors coalesced into > >> 16 HW IRQ lines. > >> > >> Signed-off-by: Tanmay Inamdar > >> Signed-off-by: Duc Dang > >> > > > > I might be a little behind the latest development, but why is this > > not a struct msi_controller? > > X-Gene V1 have a separate MSI block to handle MSI/MSIX and is shared > among 5 PCIe ports. > So in this driver for this MSI block, we implement X-Gene v1 sepcific > arch_teardown_msi_irqs, > arch_setup_msi_irqs and not using msi_controller struct. I see. > Please let me know if this approach needs to be changed to follow > other implementations of MSI > drivers in latest kernel. Yes, your approach does not work on distro kernels which will always enable multiple targets. You cannot override generic weak functions from a device driver. Arnd