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;
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to