diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2015-07-21 10:04:32 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2015-07-21 10:04:32 +0100 |
commit | a1bc040dabc12039944e22d9529f20d6132400dd (patch) | |
tree | 68b04651bfb3077e08bc60b0b2fe1dc36412fa33 /hw/ide/ahci.c | |
parent | bd03a38fdf85fb1d4f0c9f59bbc154b516f66360 (diff) | |
parent | 47c719964a8240c99d4b7a2b4695ae026c619b83 (diff) | |
download | qemu-a1bc040dabc12039944e22d9529f20d6132400dd.zip qemu-a1bc040dabc12039944e22d9529f20d6132400dd.tar.gz qemu-a1bc040dabc12039944e22d9529f20d6132400dd.tar.bz2 |
Merge remote-tracking branch 'remotes/jnsnow/tags/ide-pull-request' into staging
# gpg: Signature made Mon Jul 20 19:27:04 2015 BST using RSA key ID AAFC390E
# gpg: Good signature from "John Snow (John Huston) <jsnow@redhat.com>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg: It is not certain that the signature belongs to the owner.
# Primary key fingerprint: FAEB 9711 A12C F475 812F 18F2 88A9 064D 1835 61EB
# Subkey fingerprint: F9B7 ABDB BCAC DF95 BE76 CBD0 7DEF 8106 AAFC 390E
* remotes/jnsnow/tags/ide-pull-request:
tests: Fix broken targets check-report-qtest-*
ahci: Force ICC bits in PxCMD to zero
qtest/ide: add another short PRDT test flavor
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/ide/ahci.c')
-rw-r--r-- | hw/ide/ahci.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index bb6a92f..48749c1 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -279,8 +279,13 @@ static void ahci_port_write(AHCIState *s, int port, int offset, uint32_t val) break; case PORT_CMD: /* Block any Read-only fields from being set; - * including LIST_ON and FIS_ON. */ - pr->cmd = (pr->cmd & PORT_CMD_RO_MASK) | (val & ~PORT_CMD_RO_MASK); + * including LIST_ON and FIS_ON. + * The spec requires to set ICC bits to zero after the ICC change + * is done. We don't support ICC state changes, therefore always + * force the ICC bits to zero. + */ + pr->cmd = (pr->cmd & PORT_CMD_RO_MASK) | + (val & ~(PORT_CMD_RO_MASK|PORT_CMD_ICC_MASK)); /* Check FIS RX and CLB engines, allow transition to false: */ ahci_cond_start_engines(&s->dev[port], true); |