Re: [PATCH] PCI: dwc: fall back to legacy IRQs when multiple devices are attached

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux