All of lore.kernel.org
 help / color / mirror / Atom feed
From: Niklas Cassel <cassel@kernel.org>
To: Hajo Noerenberg <hajo-linux-ide@noerenberg.de>
Cc: Damien Le Moal <dlemoal@kernel.org>,
	linux-ide@vger.kernel.org, Pali Rohar <pali@kernel.org>,
	stable@vger.kernel.org, risc4all@yahoo.com,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3] ata: ahci: work around lost interrupts on Marvell 88SE61xx
Date: Mon, 7 Sep 2026 11:45:12 +0200	[thread overview]
Message-ID: <ap6HqG5ZwCxfb8OJ@ryzen> (raw)
In-Reply-To: <1fed10ef-4a5d-4c49-bf23-34c4c30c5884@noerenberg.de>

Hello Hajo,

On Sat, Sep 05, 2026 at 02:30:14PM +0200, Hajo Noerenberg wrote:
> On 04.09.2026 at 16:45 Niklas Cassel wrote:
> > On Mon, Aug 31, 2026 at 04:27:24PM +0200, Niklas Cassel wrote:
> >> On Mon, 31 Aug 2026 14:43:03 +0200, Hajo Noerenberg wrote:
> >>> ahci_single_level_irq_intr() services the ports first and clears the
> >>> global HOST_IRQ_STAT afterwards, as recommended by AHCI 1.1 section
> >>> 10.6.2.  The Marvell 88SE6111/6121/6145 family stops reporting interrupts
> >>> for a port when HOST_IRQ_STAT is cleared while PxIS still holds bits:
> >>> PxIS keeps its content, HOST_IRQ_STAT reads back as 0, the port is never
> >>> looked at again, and the command in flight only ends in a timeout.
> >>>
> >>> [...]
> >>
> >> Applied to libata/linux.git (for-7.4), thanks!
> >>
> >> [1/1] ata: ahci: work around lost interrupts on Marvell 88SE61xx
> >>       https://git.kernel.org/libata/linux/c/22f2ba34
> > 
> > Decided to send this for 7.3-rc2 instead:
> > https://lore.kernel.org/linux-ide/20260904144228.1473602-1-cassel@kernel.org/T/#u
> > 
> Niklas,
> 
> thanks for moving it to 7.3-rc2.
> 
> I spent a lot of time on this bug, mostly because I did not know what I was
> looking for.  Now that it has a name, searching for it actually works - and
> out of idle curiosity I went looking a moment ago, only to find that FreeBSD
> has been carrying the same workaround for years.
> 
> In FreeBSD's sys/dev/ahci/ahci_pci.c all four chips of the family are tagged
> AHCI_Q_EDGEIS:
> 
>   {0x611111ab, ... "Marvell 88SE6111", ... AHCI_Q_1CH | AHCI_Q_EDGEIS},
>   {0x612111ab, ... "Marvell 88SE6121", ... AHCI_Q_2CH | AHCI_Q_EDGEIS | ...},
>   {0x614111ab, ... "Marvell 88SE6141", ... AHCI_Q_4CH | AHCI_Q_EDGEIS | ...},
>   {0x614511ab, ... "Marvell 88SE6145", ... AHCI_Q_4CH | AHCI_Q_EDGEIS | ...},

Thank you for the information.

If Marvell (or anyone in the community) cares about these controllers,
patches are more than welcome.


Kind regards,
Niklas

      reply	other threads:[~2026-09-07  9:45 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-31 12:43 [PATCH v3] ata: ahci: work around lost interrupts on Marvell 88SE61xx Hajo Noerenberg
2026-08-31 14:27 ` Niklas Cassel
2026-09-04 14:45   ` Niklas Cassel
2026-09-05 12:30     ` Hajo Noerenberg
2026-09-07  9:45       ` Niklas Cassel [this message]

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=ap6HqG5ZwCxfb8OJ@ryzen \
    --to=cassel@kernel.org \
    --cc=dlemoal@kernel.org \
    --cc=hajo-linux-ide@noerenberg.de \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pali@kernel.org \
    --cc=risc4all@yahoo.com \
    --cc=stable@vger.kernel.org \
    /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.