SERR_DEV_XCHG           = (1 << 26), /* device exchanged */
 };
 
-enum ata_tf_protocols {
-       /* ATA taskfile protocols */
-       ATA_PROT_UNKNOWN,       /* unknown/invalid */
-       ATA_PROT_NODATA,        /* no data */
-       ATA_PROT_PIO,           /* PIO data xfer */
-       ATA_PROT_DMA,           /* DMA */
-       ATA_PROT_NCQ,           /* NCQ */
-       ATA_PROT_NCQ_NODATA,    /* NCQ no data */
-       ATAPI_PROT_NODATA,      /* packet command, no data */
-       ATAPI_PROT_PIO,         /* packet command, PIO data xfer*/
-       ATAPI_PROT_DMA,         /* packet command with special DMA sauce */
+enum ata_prot_flags {
+       /* protocol flags */
+       ATA_PROT_FLAG_PIO       = (1 << 0), /* is PIO */
+       ATA_PROT_FLAG_DMA       = (1 << 1), /* is DMA */
+       ATA_PROT_FLAG_NCQ       = (1 << 2), /* is NCQ */
+       ATA_PROT_FLAG_ATAPI     = (1 << 3), /* is ATAPI */
+
+       /* taskfile protocols */
+       ATA_PROT_UNKNOWN        = (u8)-1,
+       ATA_PROT_NODATA         = 0,
+       ATA_PROT_PIO            = ATA_PROT_FLAG_PIO,
+       ATA_PROT_DMA            = ATA_PROT_FLAG_DMA,
+       ATA_PROT_NCQ_NODATA     = ATA_PROT_FLAG_NCQ,
+       ATA_PROT_NCQ            = ATA_PROT_FLAG_DMA | ATA_PROT_FLAG_NCQ,
+       ATAPI_PROT_NODATA       = ATA_PROT_FLAG_ATAPI,
+       ATAPI_PROT_PIO          = ATA_PROT_FLAG_ATAPI | ATA_PROT_FLAG_PIO,
+       ATAPI_PROT_DMA          = ATA_PROT_FLAG_ATAPI | ATA_PROT_FLAG_DMA,
 };
 
 enum ata_ioctls {
 
        ATA_TFLAG_FUA           = (1 << 5), /* enable FUA */
        ATA_TFLAG_POLLING       = (1 << 6), /* set nIEN to 1 and use polling */
 
-       /* protocol flags */
-       ATA_PROT_FLAG_PIO       = (1 << 0), /* is PIO */
-       ATA_PROT_FLAG_DMA       = (1 << 1), /* is DMA */
-       ATA_PROT_FLAG_NCQ       = (1 << 2), /* is NCQ */
-       ATA_PROT_FLAG_ATAPI     = (1 << 3), /* is ATAPI */
-
        /* struct ata_device stuff */
        ATA_DFLAG_LBA           = (1 << 0), /* device supports LBA */
        ATA_DFLAG_LBA48         = (1 << 1), /* device supports LBA48 */
 extern struct ata_port_operations ata_dummy_port_ops;
 extern const struct ata_port_info ata_dummy_port_info;
 
-/*
- * protocol tests
- */
-static inline unsigned int ata_prot_flags(u8 prot)
-{
-       switch (prot) {
-       case ATA_PROT_NODATA:
-               return 0;
-       case ATA_PROT_PIO:
-               return ATA_PROT_FLAG_PIO;
-       case ATA_PROT_DMA:
-               return ATA_PROT_FLAG_DMA;
-       case ATA_PROT_NCQ:
-               return ATA_PROT_FLAG_DMA | ATA_PROT_FLAG_NCQ;
-       case ATA_PROT_NCQ_NODATA:
-               return ATA_PROT_FLAG_NCQ;
-       case ATAPI_PROT_NODATA:
-               return ATA_PROT_FLAG_ATAPI;
-       case ATAPI_PROT_PIO:
-               return ATA_PROT_FLAG_ATAPI | ATA_PROT_FLAG_PIO;
-       case ATAPI_PROT_DMA:
-               return ATA_PROT_FLAG_ATAPI | ATA_PROT_FLAG_DMA;
-       }
-       return 0;
-}
-
 static inline bool ata_is_atapi(u8 prot)
 {
-       return ata_prot_flags(prot) & ATA_PROT_FLAG_ATAPI;
+       return prot & ATA_PROT_FLAG_ATAPI;
 }
 
 static inline bool ata_is_pio(u8 prot)
 {
-       return ata_prot_flags(prot) & ATA_PROT_FLAG_PIO;
+       return prot & ATA_PROT_FLAG_PIO;
 }
 
 static inline bool ata_is_dma(u8 prot)
 {
-       return ata_prot_flags(prot) & ATA_PROT_FLAG_DMA;
+       return prot & ATA_PROT_FLAG_DMA;
 }
 
 static inline bool ata_is_ncq(u8 prot)
 {
-       return ata_prot_flags(prot) & ATA_PROT_FLAG_NCQ;
+       return prot & ATA_PROT_FLAG_NCQ;
 }
 
 static inline bool ata_is_data(u8 prot)
 {
-       return ata_prot_flags(prot) & (ATA_PROT_FLAG_PIO | ATA_PROT_FLAG_DMA);
+       return prot & (ATA_PROT_FLAG_PIO | ATA_PROT_FLAG_DMA);
 }
 
 static inline int is_multi_taskfile(struct ata_taskfile *tf)