All of lore.kernel.org
 help / color / mirror / Atom feed
From: tharvey@gateworks.com (Tim Harvey)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] ARM: imx_v6_v7_defconfig: enable PCI_MSI
Date: Thu, 30 Mar 2017 16:42:30 -0700	[thread overview]
Message-ID: <CAJ+vNU1-M3qSODKHMf872kfOsH0g9xFgKNEgKqiJu6A8z-ChxA@mail.gmail.com> (raw)
In-Reply-To: <1460708469.22710.4.camel@pengutronix.de>

On Fri, Apr 15, 2016 at 1:21 AM, Lucas Stach <l.stach@pengutronix.de> wrote:
> Am Donnerstag, den 14.04.2016, 08:13 -0700 schrieb Tim Harvey:
>> On Mon, Nov 30, 2015 at 9:00 AM, Lucas Stach <l.stach@pengutronix.de> wrote:
>> > This has been stable on i.MX6 for a good while now and there is no
>> > reason to keep it disabled, as it allows to allocate non-shared
>> > IRQs if several PCIe devices are connected to a single host.
>> >
>> > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
>> > ---
>> >  arch/arm/configs/imx_v6_v7_defconfig | 1 +
>> >  1 file changed, 1 insertion(+)
>> >
>> > diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig
>> > index 4187f69f6630..e2ce60d00e8a 100644
>> > --- a/arch/arm/configs/imx_v6_v7_defconfig
>> > +++ b/arch/arm/configs/imx_v6_v7_defconfig
>> > @@ -45,6 +45,7 @@ CONFIG_SOC_IMX7D=y
>> >  CONFIG_SOC_LS1021A=y
>> >  CONFIG_SOC_VF610=y
>> >  CONFIG_PCI=y
>> > +CONFIG_PCI_MSI=y
>> >  CONFIG_PCI_IMX6=y
>> >  CONFIG_SMP=y
>> >  CONFIG_PREEMPT_VOLUNTARY=y
>> > --
>> > 2.6.2
>> >
>> >
>> > _______________________________________________
>> > linux-arm-kernel mailing list
>> > linux-arm-kernel at lists.infradead.org
>> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>>
>> Lucas,
>>
>> Any thoughts on why enabling MSI on IMX6 breaks legacy interrupts?
>>
>> Again, many PCI devices/drivers don't support MSI and thus enabling
>> MSI as this patch does makes this config break many PCI devices on
>> IMX6.
>>
>> I have found that MSI does indeed work on the IMX6 for cards/drivers
>> that use MSI, but for those that don't the legacy interrupts never
>> fire regardless of going through a bridge or directly hanging off the
>> IMX6. I assume you can confirm this on your boards/devices as well?
>>
> No, this seems to be an errata in the DW PCIe core. The manual states
> that legacy IRQs and MSIs can't be used together, but I thought this
> only applies to the EP part of the core.
>
> We can probably fix the simple configuration by not enabling MSI support
> until someone actually requests to set up an MSI IRQ, so both IRQ types
> work when only one EP is connected.
> I don't have any idea yet how to fix setups with a PCIe switch where
> some connected EPs might like to use MSIs while some others can't use
> them.
>
> Regards,
> Lucas
>

Lucas,

I feel a bit dumb here for forgetting about this issue and letting it
drop, but I've just spent a day debugging an issue with the ath9k
wireless driver only to realize it was that the ath9k card and/or
driver doesn't support MSI interrupts and thus no longer work on
mainline kernels that have MSI enabled. To be honest I'm not sure how
many PCIe devices out there can't support MSI because of hardware
limitations vs drivers that simply have not implemented it.

To make matters worse 3ee803641e76bea76ec730c80dcc64739a9919ff makes
it such that you can't disable MSI on the IMX6.

Is there some fix you can think of to make the IMX6 PCIe host
controller raise an interrupt for cards/drivers that use legacy irq's?
If not, then we need to allow MSI to be disabled for IMX6 and default
it to disabled for compatibility.

Regards,

Tim

  reply	other threads:[~2017-03-30 23:42 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-30 17:00 [PATCH 1/2] ARM: imx6: remove config space from PCIe controller ranges property Lucas Stach
2015-11-30 17:00 ` [PATCH 2/2] ARM: imx_v6_v7_defconfig: enable PCI_MSI Lucas Stach
2015-12-02  8:03   ` Shawn Guo
2016-04-14 15:13   ` Tim Harvey
2016-04-15  8:21     ` Lucas Stach
2017-03-30 23:42       ` Tim Harvey [this message]
2017-03-31 16:05         ` Tim Harvey
2017-03-31 16:05           ` Tim Harvey
2017-04-04 20:54           ` Jingoo Han
2017-04-04 20:54             ` Jingoo Han
2017-04-05 12:07             ` Joao Pinto
2017-04-05 12:07               ` Joao Pinto
2017-04-05 12:16               ` Lucas Stach
2017-04-05 12:16                 ` Lucas Stach
2017-04-11 16:05                 ` Tim Harvey
2017-04-11 16:05                   ` Tim Harvey
2017-04-26 11:50                   ` Lucas Stach
2017-04-26 11:50                     ` Lucas Stach
2015-12-02  8:01 ` [PATCH 1/2] ARM: imx6: remove config space from PCIe controller ranges property Shawn Guo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAJ+vNU1-M3qSODKHMf872kfOsH0g9xFgKNEgKqiJu6A8z-ChxA@mail.gmail.com \
    --to=tharvey@gateworks.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --subject='Re: [PATCH 2/2] ARM: imx_v6_v7_defconfig: enable PCI_MSI' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.