From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org, qemu-block@nongnu.org
Cc: John Snow <jsnow@redhat.com>
Subject: [Qemu-devel] [PATCH 06/16] ahci: modify ahci_port_write to use register numbers
Date: Fri, 25 May 2018 19:54:59 -0400 [thread overview]
Message-ID: <20180525235509.11282-7-jsnow@redhat.com> (raw)
In-Reply-To: <20180525235509.11282-1-jsnow@redhat.com>
Signed-off-by: John Snow <jsnow@redhat.com>
---
hw/ide/ahci.c | 32 +++++++++++++++++---------------
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index e9ca820d5e..1d93cd6806 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -282,30 +282,32 @@ static int ahci_cond_start_engines(AHCIDevice *ad)
static void ahci_port_write(AHCIState *s, int port, int offset, uint32_t val)
{
AHCIPortRegs *pr = &s->dev[port].port_regs;
+ enum AHCIPortReg regnum = offset / sizeof(uint32_t);
+ assert(regnum < (AHCI_PORT_ADDR_OFFSET_LEN / sizeof(uint32_t)));
trace_ahci_port_write(s, port, offset, val);
- switch (offset) {
- case PORT_LST_ADDR:
+ switch (regnum) {
+ case AHCI_PORT_REG_LST_ADDR:
pr->lst_addr = val;
break;
- case PORT_LST_ADDR_HI:
+ case AHCI_PORT_REG_LST_ADDR_HI:
pr->lst_addr_hi = val;
break;
- case PORT_FIS_ADDR:
+ case AHCI_PORT_REG_FIS_ADDR:
pr->fis_addr = val;
break;
- case PORT_FIS_ADDR_HI:
+ case AHCI_PORT_REG_FIS_ADDR_HI:
pr->fis_addr_hi = val;
break;
- case PORT_IRQ_STAT:
+ case AHCI_PORT_REG_IRQ_STAT:
pr->irq_stat &= ~val;
ahci_check_irq(s);
break;
- case PORT_IRQ_MASK:
+ case AHCI_PORT_REG_IRQ_MASK:
pr->irq_mask = val & 0xfdc000ff;
ahci_check_irq(s);
break;
- case PORT_CMD:
+ case AHCI_PORT_REG_CMD:
/* Block any Read-only fields from being set;
* including LIST_ON and FIS_ON.
* The spec requires to set ICC bits to zero after the ICC change
@@ -329,26 +331,26 @@ static void ahci_port_write(AHCIState *s, int port, int offset, uint32_t val)
check_cmd(s, port);
break;
- case PORT_TFDATA:
- case PORT_SIG:
- case PORT_SCR_STAT:
+ case AHCI_PORT_REG_TFDATA:
+ case AHCI_PORT_REG_SIG:
+ case AHCI_PORT_REG_SCR_STAT:
/* Read Only */
break;
- case PORT_SCR_CTL:
+ case AHCI_PORT_REG_SCR_CTL:
if (((pr->scr_ctl & AHCI_SCR_SCTL_DET) == 1) &&
((val & AHCI_SCR_SCTL_DET) == 0)) {
ahci_reset_port(s, port);
}
pr->scr_ctl = val;
break;
- case PORT_SCR_ERR:
+ case AHCI_PORT_REG_SCR_ERR:
pr->scr_err &= ~val;
break;
- case PORT_SCR_ACT:
+ case AHCI_PORT_REG_SCR_ACT:
/* RW1 */
pr->scr_act |= val;
break;
- case PORT_CMD_ISSUE:
+ case AHCI_PORT_REG_CMD_ISSUE:
pr->cmd_issue |= val;
check_cmd(s, port);
break;
--
2.14.3
next prev parent reply other threads:[~2018-05-25 23:55 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-25 23:54 [Qemu-devel] [PATCH 00/16] AHCI: tracing improvements John Snow
2018-05-25 23:54 ` [Qemu-devel] [PATCH 01/16] ahci: add port register enumeration John Snow
2018-05-25 23:54 ` [Qemu-devel] [PATCH 02/16] ahci: modify ahci_port_read to use register numbers John Snow
2018-05-25 23:54 ` [Qemu-devel] [PATCH 03/16] ahci: make port read traces more descriptive John Snow
2018-05-26 4:44 ` Philippe Mathieu-Daudé
2018-05-30 20:17 ` John Snow
2018-05-30 21:28 ` Philippe Mathieu-Daudé
2018-05-31 16:25 ` John Snow
2018-05-25 23:54 ` [Qemu-devel] [PATCH 04/16] ahci: fix spacing damage on ahci_port_write John Snow
2018-05-25 23:54 ` [Qemu-devel] [PATCH 05/16] ahci: combine identical clauses in port write John Snow
2018-05-25 23:54 ` John Snow [this message]
2018-05-25 23:55 ` [Qemu-devel] [PATCH 07/16] ahci: make port write traces more descriptive John Snow
2018-05-25 23:55 ` [Qemu-devel] [PATCH 08/16] ahci: delete old port register address definitions John Snow
2018-05-25 23:55 ` [Qemu-devel] [PATCH 09/16] ahci: add host register enumeration John Snow
2018-05-25 23:55 ` [Qemu-devel] [PATCH 10/16] ahci: fix host register max address John Snow
2018-05-25 23:55 ` [Qemu-devel] [PATCH 11/16] ahci: modify ahci_mem_read_32 to work on register numbers John Snow
2018-05-25 23:55 ` [Qemu-devel] [PATCH 12/16] ahci: make mem_read_32 traces more descriptive John Snow
2018-05-25 23:55 ` [Qemu-devel] [PATCH 13/16] ahci: fix spacing damage on ahci_mem_write John Snow
2018-05-25 23:55 ` [Qemu-devel] [PATCH 14/16] ahci: adjust ahci_mem_write to work on registers John Snow
2018-05-25 23:55 ` [Qemu-devel] [PATCH 15/16] ahci: delete old host register address definitions John Snow
2018-05-25 23:55 ` [Qemu-devel] [PATCH 16/16] ahci: make ahci_mem_write traces more descriptive John Snow
2018-05-26 0:11 ` [Qemu-devel] [PATCH 00/16] AHCI: tracing improvements no-reply
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=20180525235509.11282-7-jsnow@redhat.com \
--to=jsnow@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).