Add icc (Isochronous Command Completion) ccb_ataio field.

MFC after:	1 week
This commit is contained in:
Alexander Motin 2020-11-02 01:01:41 +00:00
parent a257740767
commit 06c888ecb9
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=367261
3 changed files with 12 additions and 6 deletions

View File

@ -786,6 +786,8 @@ struct ccb_ataio {
u_int32_t resid; /* Transfer residual length: 2's comp */
u_int8_t ata_flags; /* Flags for the rest of the buffer */
#define ATA_FLAG_AUX 0x1
#define ATA_FLAG_ICC 0x2
uint8_t icc; /* Isochronous Command Completion */
uint32_t aux;
uint32_t unused;
};

View File

@ -2584,16 +2584,18 @@ ahci_setup_fis(struct ahci_channel *ch, struct ahci_cmd_tab *ctp, union ccb *ccb
fis[12] |= tag << 3;
}
fis[13] = ccb->ataio.cmd.sector_count_exp;
if (ccb->ataio.ata_flags & ATA_FLAG_ICC)
fis[14] = ccb->ataio.icc;
fis[15] = ATA_A_4BIT;
if (ccb->ataio.ata_flags & ATA_FLAG_AUX) {
fis[16] = ccb->ataio.aux & 0xff;
fis[17] = (ccb->ataio.aux >> 8) & 0xff;
fis[18] = (ccb->ataio.aux >> 16) & 0xff;
fis[19] = (ccb->ataio.aux >> 24) & 0xff;
}
} else {
fis[15] = ccb->ataio.cmd.control;
}
if (ccb->ataio.ata_flags & ATA_FLAG_AUX) {
fis[16] = ccb->ataio.aux & 0xff;
fis[17] = (ccb->ataio.aux >> 8) & 0xff;
fis[18] = (ccb->ataio.aux >> 16) & 0xff;
fis[19] = (ccb->ataio.aux >> 24) & 0xff;
}
return (20);
}

View File

@ -1729,6 +1729,8 @@ siis_setup_fis(device_t dev, struct siis_cmd *ctp, union ccb *ccb, int tag)
fis[12] |= tag << 3;
}
fis[13] = ccb->ataio.cmd.sector_count_exp;
if (ccb->ataio.ata_flags & ATA_FLAG_ICC)
fis[14] = ccb->ataio.icc;
fis[15] = ATA_A_4BIT;
if (ccb->ataio.ata_flags & ATA_FLAG_AUX) {
fis[16] = ccb->ataio.aux & 0xff;