ahci: replace SATA FIS type magic numbers with constants
SATA 3.0 "10.3.1 FIS Type values" defines the constants used to differentiate between FIS types. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-id: 1415874281-7371-3-git-send-email-stefanha@redhat.com Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
192cf55cc0
commit
17fcb74af9
@ -580,7 +580,7 @@ static void ahci_write_fis_sdb(AHCIState *s, int port, uint32_t finished)
|
||||
sdb_fis = (SDBFIS *)&ad->res_fis[RES_FIS_SDBFIS];
|
||||
ide_state = &ad->port.ifs[0];
|
||||
|
||||
sdb_fis->type = 0xA1;
|
||||
sdb_fis->type = SATA_FIS_TYPE_SDB;
|
||||
/* Interrupt pending & Notification bit */
|
||||
sdb_fis->flags = (ad->hba->control_regs.irqstatus ? (1 << 6) : 0);
|
||||
sdb_fis->status = ide_state->status & 0x77;
|
||||
@ -631,7 +631,7 @@ static void ahci_write_fis_pio(AHCIDevice *ad, uint16_t len)
|
||||
|
||||
pio_fis = &ad->res_fis[RES_FIS_PSFIS];
|
||||
|
||||
pio_fis[0] = 0x5f;
|
||||
pio_fis[0] = SATA_FIS_TYPE_PIO_SETUP;
|
||||
pio_fis[1] = (ad->hba->control_regs.irqstatus ? (1 << 6) : 0);
|
||||
pio_fis[2] = s->status;
|
||||
pio_fis[3] = s->error;
|
||||
@ -690,7 +690,7 @@ static void ahci_write_fis_d2h(AHCIDevice *ad, uint8_t *cmd_fis)
|
||||
|
||||
d2h_fis = &ad->res_fis[RES_FIS_RFIS];
|
||||
|
||||
d2h_fis[0] = 0x34;
|
||||
d2h_fis[0] = SATA_FIS_TYPE_REGISTER_D2H;
|
||||
d2h_fis[1] = (ad->hba->control_regs.irqstatus ? (1 << 6) : 0);
|
||||
d2h_fis[2] = s->status;
|
||||
d2h_fis[3] = s->error;
|
||||
|
@ -156,7 +156,10 @@
|
||||
#define AHCI_SCR_SCTL_DET 0xf
|
||||
|
||||
#define SATA_FIS_TYPE_REGISTER_H2D 0x27
|
||||
#define SATA_FIS_REG_H2D_UPDATE_COMMAND_REGISTER 0x80
|
||||
#define SATA_FIS_REG_H2D_UPDATE_COMMAND_REGISTER 0x80
|
||||
#define SATA_FIS_TYPE_REGISTER_D2H 0x34
|
||||
#define SATA_FIS_TYPE_PIO_SETUP 0x5f
|
||||
#define SATA_FIS_TYPE_SDB 0xA1
|
||||
|
||||
#define AHCI_CMD_HDR_CMD_FIS_LEN 0x1f
|
||||
#define AHCI_CMD_HDR_PRDT_LEN 16
|
||||
|
Loading…
Reference in New Issue
Block a user