[PATCH] i.MX6 PCIe: Fix imx6_pcie_deassert_core_reset() polarity

Tim Harvey tharvey at gateworks.com
Thu Mar 31 09:19:31 PDT 2016


On Wed, Mar 30, 2016 at 1:10 AM, Krzysztof Hałasa <khalasa at piap.pl> wrote:
> Lucas Stach <l.stach at pengutronix.de> writes:
>
>>> TW6869: PCI 0000:04:00.0, IRQ 336, MMIO 0x1100000
>>> TW686x 0000:04:00.0: enabling device (0140 -> 0142)
>>>
>> I don't see whee the device even tries to use MSI IRQs. Even if the
>> infrastructure is enabled it opts to use legacy INTA.
>
> It only tries to use normal IRQ.
>
>> There is no upstream driver for this chip, so I don't know where to look
>> to find out if the driver tries to enable MSI.
>
> It's been posted on linux-media list... I added pci_enable_msi() to this
> driver and it didn't help.
>
>> Is what you are saying that if you enable MSI support in the kernel, it
>> breaks legacy IRQs?
>
> Precisely.
>
> However, MSI doesn't seem to work either. Could be a problem specific to
> this TW6869 card.
>
> Ventana GW5410 has 5 mPCIe slots, and (with MSI enabled in the system)
> those IRQs (non-MSI) don't work in any slot:
>
> 304: 0 0 0 0  PCI-MSI   0 Edge   PCIe PME, aerdrv
> 336: 0 0 0 0      GPC 123 Level  TW8689 in J7 slot
> 337: 0 0 0 0      GPC 122 Level  TW8689 in J8, J10, J11
> 338: 0 0 0 0      GPC 121 Level  TW8689 in J6)
>
> If I enable MSI on this card (adding pci_enable_msi()):
> 313: 0 0 0 0  PCI-MSI   9 Edge   TW6869 in J7 slot
>
> The only way I can get it to work is by disabling MSI (system wide).

Krzysztof,

I have found that MSI does work on IMX6 through a bridge (as on the
GW5410) and not, for devices/drivers that support MSI, but it does
break devices/drivers that use legacy irqs as we've discussed.

The MSI capable devices/drivers I've been able to show working with
MSI enabled are:
 - Marvell sky2 GigE (present on GW53xx and GW54xx both through a PEX switch)
 - Ath10k 802.11n radio miniPCIe socket (tested on GW51xx with no
switch and GW53xx with switch).

So perhaps there is something else going on with the tw8689
device/driver that is causing it to not work with MSI. We have an
avc8000 miniPCIe with tw8689 here and can test if you send me your
patches that enable tw8689 with msi.

Regardless of MSI working in our tests we still disable it because of
it breaking legacy irqs and for performance reasons.

Regards,

Tim



More information about the linux-arm-kernel mailing list