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]

 



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



[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