ata: define ATA_PROT_* in terms of ATA_PROT_FLAG_*
authorChristoph Hellwig <hch@lst.de>
Sat, 16 Jul 2016 13:16:43 +0000 (22:16 +0900)
committerTejun Heo <tj@kernel.org>
Tue, 19 Jul 2016 00:55:38 +0000 (20:55 -0400)
This avoid the need to always translate between the two in ata_prot_flags
and generally cleans up the taskfile protocol usage.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Tejun Heo <tj@kernel.org>
drivers/ata/sata_dwc_460ex.c
include/linux/ata.h
include/linux/libata.h

index fa1530a..b051c03 100644 (file)
@@ -281,7 +281,7 @@ static void sata_dwc_dma_exit_old(struct sata_dwc_device *hsdev)
 
 static const char *get_prot_descript(u8 protocol)
 {
-       switch ((enum ata_tf_protocols)protocol) {
+       switch (protocol) {
        case ATA_PROT_NODATA:
                return "ATA no data";
        case ATA_PROT_PIO:
index 5b67ff4..adbc812 100644 (file)
@@ -523,17 +523,23 @@ enum {
        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 {
index 5838fbf..e37d4f9 100644 (file)
@@ -146,12 +146,6 @@ enum {
        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 */
@@ -1038,55 +1032,29 @@ extern const unsigned long sata_deb_timing_long[];
 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)