diff options
author | Christoph Hellwig <hch@lst.de> | 2016-07-16 09:16:43 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2016-07-18 20:55:38 -0400 |
commit | 37f92d77dc45d1fb74eff8501f26e72a3dcaa3cf (patch) | |
tree | 329727c34d87d22f1abfdd864ae8efce190fd340 | |
parent | d6e50e379eb1e7f2426eac61a1bbbf6e4cf68905 (diff) |
ata: define ATA_PROT_* in terms of ATA_PROT_FLAG_*
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>
-rw-r--r-- | drivers/ata/sata_dwc_460ex.c | 2 | ||||
-rw-r--r-- | include/linux/ata.h | 28 | ||||
-rw-r--r-- | include/linux/libata.h | 42 |
3 files changed, 23 insertions, 49 deletions
diff --git a/drivers/ata/sata_dwc_460ex.c b/drivers/ata/sata_dwc_460ex.c index fa1530a9dc03..b051c03fefc2 100644 --- a/drivers/ata/sata_dwc_460ex.c +++ b/drivers/ata/sata_dwc_460ex.c | |||
@@ -281,7 +281,7 @@ static void sata_dwc_dma_exit_old(struct sata_dwc_device *hsdev) | |||
281 | 281 | ||
282 | static const char *get_prot_descript(u8 protocol) | 282 | static const char *get_prot_descript(u8 protocol) |
283 | { | 283 | { |
284 | switch ((enum ata_tf_protocols)protocol) { | 284 | switch (protocol) { |
285 | case ATA_PROT_NODATA: | 285 | case ATA_PROT_NODATA: |
286 | return "ATA no data"; | 286 | return "ATA no data"; |
287 | case ATA_PROT_PIO: | 287 | case ATA_PROT_PIO: |
diff --git a/include/linux/ata.h b/include/linux/ata.h index 5b67ff407ec2..adbc812c009b 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
@@ -523,17 +523,23 @@ enum { | |||
523 | SERR_DEV_XCHG = (1 << 26), /* device exchanged */ | 523 | SERR_DEV_XCHG = (1 << 26), /* device exchanged */ |
524 | }; | 524 | }; |
525 | 525 | ||
526 | enum ata_tf_protocols { | 526 | enum ata_prot_flags { |
527 | /* ATA taskfile protocols */ | 527 | /* protocol flags */ |
528 | ATA_PROT_UNKNOWN, /* unknown/invalid */ | 528 | ATA_PROT_FLAG_PIO = (1 << 0), /* is PIO */ |
529 | ATA_PROT_NODATA, /* no data */ | 529 | ATA_PROT_FLAG_DMA = (1 << 1), /* is DMA */ |
530 | ATA_PROT_PIO, /* PIO data xfer */ | 530 | ATA_PROT_FLAG_NCQ = (1 << 2), /* is NCQ */ |
531 | ATA_PROT_DMA, /* DMA */ | 531 | ATA_PROT_FLAG_ATAPI = (1 << 3), /* is ATAPI */ |
532 | ATA_PROT_NCQ, /* NCQ */ | 532 | |
533 | ATA_PROT_NCQ_NODATA, /* NCQ no data */ | 533 | /* taskfile protocols */ |
534 | ATAPI_PROT_NODATA, /* packet command, no data */ | 534 | ATA_PROT_UNKNOWN = (u8)-1, |
535 | ATAPI_PROT_PIO, /* packet command, PIO data xfer*/ | 535 | ATA_PROT_NODATA = 0, |
536 | ATAPI_PROT_DMA, /* packet command with special DMA sauce */ | 536 | ATA_PROT_PIO = ATA_PROT_FLAG_PIO, |
537 | ATA_PROT_DMA = ATA_PROT_FLAG_DMA, | ||
538 | ATA_PROT_NCQ_NODATA = ATA_PROT_FLAG_NCQ, | ||
539 | ATA_PROT_NCQ = ATA_PROT_FLAG_DMA | ATA_PROT_FLAG_NCQ, | ||
540 | ATAPI_PROT_NODATA = ATA_PROT_FLAG_ATAPI, | ||
541 | ATAPI_PROT_PIO = ATA_PROT_FLAG_ATAPI | ATA_PROT_FLAG_PIO, | ||
542 | ATAPI_PROT_DMA = ATA_PROT_FLAG_ATAPI | ATA_PROT_FLAG_DMA, | ||
537 | }; | 543 | }; |
538 | 544 | ||
539 | enum ata_ioctls { | 545 | enum ata_ioctls { |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 5838fbf6acf7..e37d4f99f510 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -146,12 +146,6 @@ enum { | |||
146 | ATA_TFLAG_FUA = (1 << 5), /* enable FUA */ | 146 | ATA_TFLAG_FUA = (1 << 5), /* enable FUA */ |
147 | ATA_TFLAG_POLLING = (1 << 6), /* set nIEN to 1 and use polling */ | 147 | ATA_TFLAG_POLLING = (1 << 6), /* set nIEN to 1 and use polling */ |
148 | 148 | ||
149 | /* protocol flags */ | ||
150 | ATA_PROT_FLAG_PIO = (1 << 0), /* is PIO */ | ||
151 | ATA_PROT_FLAG_DMA = (1 << 1), /* is DMA */ | ||
152 | ATA_PROT_FLAG_NCQ = (1 << 2), /* is NCQ */ | ||
153 | ATA_PROT_FLAG_ATAPI = (1 << 3), /* is ATAPI */ | ||
154 | |||
155 | /* struct ata_device stuff */ | 149 | /* struct ata_device stuff */ |
156 | ATA_DFLAG_LBA = (1 << 0), /* device supports LBA */ | 150 | ATA_DFLAG_LBA = (1 << 0), /* device supports LBA */ |
157 | ATA_DFLAG_LBA48 = (1 << 1), /* device supports LBA48 */ | 151 | ATA_DFLAG_LBA48 = (1 << 1), /* device supports LBA48 */ |
@@ -1038,55 +1032,29 @@ extern const unsigned long sata_deb_timing_long[]; | |||
1038 | extern struct ata_port_operations ata_dummy_port_ops; | 1032 | extern struct ata_port_operations ata_dummy_port_ops; |
1039 | extern const struct ata_port_info ata_dummy_port_info; | 1033 | extern const struct ata_port_info ata_dummy_port_info; |
1040 | 1034 | ||
1041 | /* | ||
1042 | * protocol tests | ||
1043 | */ | ||
1044 | static inline unsigned int ata_prot_flags(u8 prot) | ||
1045 | { | ||
1046 | switch (prot) { | ||
1047 | case ATA_PROT_NODATA: | ||
1048 | return 0; | ||
1049 | case ATA_PROT_PIO: | ||
1050 | return ATA_PROT_FLAG_PIO; | ||
1051 | case ATA_PROT_DMA: | ||
1052 | return ATA_PROT_FLAG_DMA; | ||
1053 | case ATA_PROT_NCQ: | ||
1054 | return ATA_PROT_FLAG_DMA | ATA_PROT_FLAG_NCQ; | ||
1055 | case ATA_PROT_NCQ_NODATA: | ||
1056 | return ATA_PROT_FLAG_NCQ; | ||
1057 | case ATAPI_PROT_NODATA: | ||
1058 | return ATA_PROT_FLAG_ATAPI; | ||
1059 | case ATAPI_PROT_PIO: | ||
1060 | return ATA_PROT_FLAG_ATAPI | ATA_PROT_FLAG_PIO; | ||
1061 | case ATAPI_PROT_DMA: | ||
1062 | return ATA_PROT_FLAG_ATAPI | ATA_PROT_FLAG_DMA; | ||
1063 | } | ||
1064 | return 0; | ||
1065 | } | ||
1066 | |||
1067 | static inline bool ata_is_atapi(u8 prot) | 1035 | static inline bool ata_is_atapi(u8 prot) |
1068 | { | 1036 | { |
1069 | return ata_prot_flags(prot) & ATA_PROT_FLAG_ATAPI; | 1037 | return prot & ATA_PROT_FLAG_ATAPI; |
1070 | } | 1038 | } |
1071 | 1039 | ||
1072 | static inline bool ata_is_pio(u8 prot) | 1040 | static inline bool ata_is_pio(u8 prot) |
1073 | { | 1041 | { |
1074 | return ata_prot_flags(prot) & ATA_PROT_FLAG_PIO; | 1042 | return prot & ATA_PROT_FLAG_PIO; |
1075 | } | 1043 | } |
1076 | 1044 | ||
1077 | static inline bool ata_is_dma(u8 prot) | 1045 | static inline bool ata_is_dma(u8 prot) |
1078 | { | 1046 | { |
1079 | return ata_prot_flags(prot) & ATA_PROT_FLAG_DMA; | 1047 | return prot & ATA_PROT_FLAG_DMA; |
1080 | } | 1048 | } |
1081 | 1049 | ||
1082 | static inline bool ata_is_ncq(u8 prot) | 1050 | static inline bool ata_is_ncq(u8 prot) |
1083 | { | 1051 | { |
1084 | return ata_prot_flags(prot) & ATA_PROT_FLAG_NCQ; | 1052 | return prot & ATA_PROT_FLAG_NCQ; |
1085 | } | 1053 | } |
1086 | 1054 | ||
1087 | static inline bool ata_is_data(u8 prot) | 1055 | static inline bool ata_is_data(u8 prot) |
1088 | { | 1056 | { |
1089 | return ata_prot_flags(prot) & (ATA_PROT_FLAG_PIO | ATA_PROT_FLAG_DMA); | 1057 | return prot & (ATA_PROT_FLAG_PIO | ATA_PROT_FLAG_DMA); |
1090 | } | 1058 | } |
1091 | 1059 | ||
1092 | static inline int is_multi_taskfile(struct ata_taskfile *tf) | 1060 | static inline int is_multi_taskfile(struct ata_taskfile *tf) |