svn commit: r367974 - in stable/12/sys/dev: ahci mvs siis
Alexander Motin
mav at FreeBSD.org
Tue Nov 24 00:30:48 UTC 2020
Author: mav
Date: Tue Nov 24 00:30:47 2020
New Revision: 367974
URL: https://svnweb.freebsd.org/changeset/base/367974
Log:
MFC r366922, r367915, r367916:
Pass lower 3 bits of sector_count for FPDMA commands.
When this code was written those bits were N/A, but now the lowest bit
is Rebuild Assist Recovery Control (RARC).
Modified:
stable/12/sys/dev/ahci/ahci.c
stable/12/sys/dev/mvs/mvs.c
stable/12/sys/dev/siis/siis.c
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/dev/ahci/ahci.c
==============================================================================
--- stable/12/sys/dev/ahci/ahci.c Tue Nov 24 00:27:21 2020 (r367973)
+++ stable/12/sys/dev/ahci/ahci.c Tue Nov 24 00:30:47 2020 (r367974)
@@ -2579,10 +2579,10 @@ ahci_setup_fis(struct ahci_channel *ch, struct ahci_cm
fis[9] = ccb->ataio.cmd.lba_mid_exp;
fis[10] = ccb->ataio.cmd.lba_high_exp;
fis[11] = ccb->ataio.cmd.features_exp;
+ fis[12] = ccb->ataio.cmd.sector_count;
if (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA) {
- fis[12] = tag << 3;
- } else {
- fis[12] = ccb->ataio.cmd.sector_count;
+ fis[12] &= 0x07;
+ fis[12] |= tag << 3;
}
fis[13] = ccb->ataio.cmd.sector_count_exp;
if (ccb->ataio.ata_flags & ATA_FLAG_ICC)
Modified: stable/12/sys/dev/mvs/mvs.c
==============================================================================
--- stable/12/sys/dev/mvs/mvs.c Tue Nov 24 00:27:21 2020 (r367973)
+++ stable/12/sys/dev/mvs/mvs.c Tue Nov 24 00:30:47 2020 (r367974)
@@ -1495,7 +1495,8 @@ mvs_execute_transaction(struct mvs_slot *slot)
crqb->cmd[i++] = ccb->ataio.cmd.features;
crqb->cmd[i++] = 0x11;
if (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA) {
- crqb->cmd[i++] = slot->tag << 3;
+ crqb->cmd[i++] = (slot->tag << 3) |
+ (ccb->ataio.cmd.sector_count & 0x07);
crqb->cmd[i++] = 0x12;
} else {
crqb->cmd[i++] = ccb->ataio.cmd.sector_count_exp;
Modified: stable/12/sys/dev/siis/siis.c
==============================================================================
--- stable/12/sys/dev/siis/siis.c Tue Nov 24 00:27:21 2020 (r367973)
+++ stable/12/sys/dev/siis/siis.c Tue Nov 24 00:30:47 2020 (r367974)
@@ -1722,13 +1722,12 @@ siis_setup_fis(device_t dev, struct siis_cmd *ctp, uni
fis[9] = ccb->ataio.cmd.lba_mid_exp;
fis[10] = ccb->ataio.cmd.lba_high_exp;
fis[11] = ccb->ataio.cmd.features_exp;
+ fis[12] = ccb->ataio.cmd.sector_count;
if (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA) {
- fis[12] = tag << 3;
- fis[13] = 0;
- } else {
- fis[12] = ccb->ataio.cmd.sector_count;
- fis[13] = ccb->ataio.cmd.sector_count_exp;
+ fis[12] &= 0x07;
+ 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;
More information about the svn-src-stable
mailing list