]> git.ipfire.org Git - thirdparty/qemu.git/commit
hw/ide/ahci: PxSACT and PxCI is cleared when PxCMD.ST is cleared
authorNiklas Cassel <niklas.cassel@wdc.com>
Fri, 9 Jun 2023 14:08:41 +0000 (16:08 +0200)
committerMichael Tokarev <mjt@tls.msk.ru>
Thu, 21 Sep 2023 16:35:19 +0000 (19:35 +0300)
commit4fbd5a5202c01c8897fc45cbef255a8a0fa4f74e
treee70f6ac818a6f0a17f0fd17b023d6e083f0ee758
parent16cc9594d23d73d4f93614d8e7db931fe3b12f34
hw/ide/ahci: PxSACT and PxCI is cleared when PxCMD.ST is cleared

According to AHCI 1.3.1 definition of PxSACT:
This field is cleared when PxCMD.ST is written from a '1' to a '0' by
software. This field is not cleared by a COMRESET or a software reset.

According to AHCI 1.3.1 definition of PxCI:
This field is also cleared when PxCMD.ST is written from a '1' to a '0'
by software.

Clearing PxCMD.ST is part of the error recovery procedure, see
AHCI 1.3.1, section "6.2 Error Recovery".

If we don't clear PxCI on error recovery, the previous command will
incorrectly still be marked as pending after error recovery.

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20230609140844.202795-6-nks@flawful.org
Signed-off-by: John Snow <jsnow@redhat.com>
(cherry picked from commit d73b84d0b664e60fffb66f46e84d0db4a8e1c713)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
hw/ide/ahci.c