On Thu, Jun 8, 2017 at 8:48 AM, Tim Harvey <tharvey@xxxxxxxxxxxxx> wrote: > On Thu, May 11, 2017 at 7:08 AM, Tim Harvey <tharvey@xxxxxxxxxxxxx> wrote: >> On Thu, May 11, 2017 at 1:16 AM, Lucas Stach <l.stach@xxxxxxxxxxxxxx> wrote: >>> Hi Tim, >>> >>> Am Mittwoch, den 10.05.2017, 14:44 -0700 schrieb Tim Harvey: >>>> On Thu, Apr 27, 2017 at 8:32 AM, Tim Harvey <tharvey@xxxxxxxxxxxxx> wrote: >>>> > On Thu, Apr 27, 2017 at 1:43 AM, Lucas Stach <l.stach@xxxxxxxxxxxxxx> wrote: >>>> >> Am Mittwoch, den 26.04.2017, 14:11 -0700 schrieb Tim Harvey: >>>> >>> On Wed, Apr 26, 2017 at 11:15 AM, Lucas Stach <l.stach@xxxxxxxxxxxxxx> wrote: >>>> >>> > The DWC host does not support legacy PCI IRQs and MSIs at the same time, >>>> >>> > so we need to fall back to using only legacy IRQs if there is a chance >>>> >>> > that multiple devices with differing MSI capabilities are connected to >>>> >>> > the host. The only configuration where MSIs can be safely used is when >>>> >>> > the device below the host bridge is not a bridge, i.e. the only device >>>> >>> > connected to this host. >>>> >>> > >>>> >>> > By disallowing MSI allocation when multiple devices might be attached >>>> >>> > we get those configurations in a working state. The only configurations >>>> >>> > that depend on MSIs being available, that I am aware of, are some >>>> >>> > embedded devices with a PCIe attached FPGA, that is incapable of >>>> >>> > generating PCI legacy IRQs. Those are kept working by allowing MSIs >>>> >>> > when only a single device is attached to the host. >>>> >>> > >>>> >>> > Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx> >>>> >>> > --- >>> [...] >>>> Lucas, >>>> >>>> Are you not able to repeat my findings? >>> >>> Yes, I see what's going on. >>> >>>> Since Linux 4.8 IMX PCIe is completely broken for PCIe devices that do >>>> not support MSI interrupts (and there are a whole lot of 802.11n >>>> radios that fall into this category) as you can no longer disable MSI >>>> because the IMX PCIe driver depends on it. >>>> >>>> It seems like your patch is the right approach but something must >>>> still be getting set that causes the legacy interrupts to not fire. >>> >>> The issue here are the port-services, which are using MSI when >>> available, which might conflict with the device requirements, even if >>> only a single device is attached. >>> >>> Probably we need to disable MSI on all systems, unless we know that we >>> absolutely need them (EP devices, which don't support legacy IRQs). I'll >>> send a patch to do this, but other issues have been higher priority >>> again. >>> >>> Regards, >>> Lucas >>> >> >> Lucas, >> >> Thanks, this fix is something that's beyond my experience or I would >> be glad to do it. The PCIe driver has been changing very rapidly in >> recent kernel versions and there is no single patch that can be >> reverted to 'fix' this long-standing issue. I'm really surprised >> others haven't chimed in with reports of it being broken as its been >> an issue since 4.8. >> >> Is it worth removing the 'depends on PCI_MSI_IRQ_DOMAIN' from >> PCIE_DW_HOST and PCI_IMX6 and defaulting MSI off until your proposed >> fix is ready and working? That is precisely what I have to do on 4.8+ >> kernels to get them working for our IMX6 users using ath9k radios >> (making distro's like Ubuntu a problem as they run a fairly standard >> 4.8 kernel). >> >> Tim > > Lucas, > > Any cycles to put together another attempt to allow legacy IRQ's on IMX6? > Lucas, Any update on this? We still have broken legacy PCI interrupts on IMX6 on mainline. Regards, Tim