svn commit: r367261 - in head/sys: cam dev/ahci dev/siis

Alexander Motin mav at FreeBSD.org
Mon Nov 2 01:01:42 UTC 2020


Author: mav
Date: Mon Nov  2 01:01:41 2020
New Revision: 367261
URL: https://svnweb.freebsd.org/changeset/base/367261

Log:
  Add icc (Isochronous Command Completion) ccb_ataio field.
  
  MFC after:	1 week

Modified:
  head/sys/cam/cam_ccb.h
  head/sys/dev/ahci/ahci.c
  head/sys/dev/siis/siis.c

Modified: head/sys/cam/cam_ccb.h
==============================================================================
--- head/sys/cam/cam_ccb.h	Mon Nov  2 00:45:40 2020	(r367260)
+++ head/sys/cam/cam_ccb.h	Mon Nov  2 01:01:41 2020	(r367261)
@@ -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;
 };

Modified: head/sys/dev/ahci/ahci.c
==============================================================================
--- head/sys/dev/ahci/ahci.c	Mon Nov  2 00:45:40 2020	(r367260)
+++ head/sys/dev/ahci/ahci.c	Mon Nov  2 01:01:41 2020	(r367261)
@@ -2584,15 +2584,17 @@ ahci_setup_fis(struct ahci_channel *ch, struct ahci_cm
 			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);
 }

Modified: head/sys/dev/siis/siis.c
==============================================================================
--- head/sys/dev/siis/siis.c	Mon Nov  2 00:45:40 2020	(r367260)
+++ head/sys/dev/siis/siis.c	Mon Nov  2 01:01:41 2020	(r367261)
@@ -1729,6 +1729,8 @@ siis_setup_fis(device_t dev, struct siis_cmd *ctp, uni
 			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;


More information about the svn-src-head mailing list