From: Marc Zyngier <maz@kernel.org>
To: Rui Salvaterra <rsalvaterra@gmail.com>
Cc: tglx@linutronix.de, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
Date: Thu, 07 Oct 2021 15:42:06 +0100 [thread overview]
Message-ID: <875yu8rj5t.wl-maz@kernel.org> (raw)
In-Reply-To: <CALjTZvZZf25tqoQWM_HsBb84JgKpMKAxqfhUdpD_e5M-Bc_yzA@mail.gmail.com>
On Thu, 07 Oct 2021 14:11:51 +0100,
Rui Salvaterra <rsalvaterra@gmail.com> wrote:
>
> Hi again, Marc,
>
> On Thu, 7 Oct 2021 at 13:15, Marc Zyngier <maz@kernel.org> wrote:
> >
> > 'Believe' is not a word I'd use. I know for a fact that all HW,
> > whether it is present, past or future is only a pile of hacks.
> >
> > Given that your report tends to indicate that we fail to enable the
> > interrupt for this device, this would be a possibility.
>
> Heh. Guess what? The AHCI controller is lying throught its teeth. Your
> hack fixes boot for me. Everything seems to be working, even with such
> a big hammer.
Right. Let's see if we can be less brutal and only quirk the AHCI
device (patch below, completely untested). I'm a bit concerned that
all the devices in this system seem to report 'Maskable-'...
M.
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 0099a00af361..2f9ec7210991 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -479,6 +479,9 @@ msi_setup_entry(struct pci_dev *dev, int nvec, struct irq_affinity *affd)
goto out;
pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
+ /* Lies, damned lies, and MSIs */
+ if (dev->dev_flags & PCI_DEV_FLAGS_HAS_MSI_MASKING)
+ control |= PCI_MSI_FLAGS_MASKBIT;
entry->msi_attrib.is_msix = 0;
entry->msi_attrib.is_64 = !!(control & PCI_MSI_FLAGS_64BIT);
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 4537d1ea14fd..dc7741431bf3 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -5795,3 +5795,9 @@ static void apex_pci_fixup_class(struct pci_dev *pdev)
}
DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
PCI_CLASS_NOT_DEFINED, 8, apex_pci_fixup_class);
+
+static void nvidia_ion_ahci_fixup(struct pci_dev *pdev)
+{
+ pdev->dev_flags |= PCI_MSI_FLAGS_MASKBIT;
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);
diff --git a/include/linux/pci.h b/include/linux/pci.h
index cd8aa6fce204..152a4d74f87f 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -233,6 +233,8 @@ enum pci_dev_flags {
PCI_DEV_FLAGS_NO_FLR_RESET = (__force pci_dev_flags_t) (1 << 10),
/* Don't use Relaxed Ordering for TLPs directed at this device */
PCI_DEV_FLAGS_NO_RELAXED_ORDERING = (__force pci_dev_flags_t) (1 << 11),
+ /* Device does honor MSI masking despite saying otherwise */
+ PCI_DEV_FLAGS_HAS_MSI_MASKING = (__force pci_dev_flags_t) (1 << 12),
};
enum pci_irq_reroute_variant {
--
Without deviation from the norm, progress is not possible.
next prev parent reply other threads:[~2021-10-07 14:42 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-06 8:50 [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79) Rui Salvaterra
2021-10-06 11:00 ` Marc Zyngier
2021-10-06 11:06 ` Rui Salvaterra
2021-10-07 8:52 ` Marc Zyngier
2021-10-07 12:03 ` Rui Salvaterra
2021-10-07 12:15 ` Marc Zyngier
2021-10-07 13:11 ` Rui Salvaterra
2021-10-07 14:42 ` Marc Zyngier [this message]
2021-10-07 14:50 ` Rui Salvaterra
2021-10-07 15:03 ` Marc Zyngier
2021-10-07 16:13 ` Rui Salvaterra
2021-10-06 11:44 ` Rui Salvaterra
2021-10-06 11:48 ` Rui Salvaterra
2021-10-11 18:47 ` Josef Johansson
2021-10-11 19:34 ` Josef Johansson
2021-10-12 5:37 ` Josef Johansson
2021-10-12 13:07 ` Jason Andryuk
2021-10-12 13:33 ` Josef Johansson
2021-10-12 15:17 ` Josef Johansson
2021-10-12 11:34 ` Marc Zyngier
2021-10-12 12:33 ` Josef Johansson
2021-10-31 22:51 ` Rui Salvaterra
2021-11-01 11:21 ` Marc Zyngier
2021-11-01 11:36 ` Rui Salvaterra
2021-11-11 8:57 ` [tip: irq/urgent] PCI: Add MSI masking quirk for Nvidia ION AHCI tip-bot2 for Marc Zyngier
[not found] <1374495046.4164334.1635737050153@localhost>
2021-11-01 11:06 ` [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79) Rui Salvaterra
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=875yu8rj5t.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=rsalvaterra@gmail.com \
--cc=tglx@linutronix.de \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.