Commit 37f92d77 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Tejun Heo

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: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent d6e50e37
...@@ -281,7 +281,7 @@ static void sata_dwc_dma_exit_old(struct sata_dwc_device *hsdev) ...@@ -281,7 +281,7 @@ static void sata_dwc_dma_exit_old(struct sata_dwc_device *hsdev)
static const char *get_prot_descript(u8 protocol) static const char *get_prot_descript(u8 protocol)
{ {
switch ((enum ata_tf_protocols)protocol) { switch (protocol) {
case ATA_PROT_NODATA: case ATA_PROT_NODATA:
return "ATA no data"; return "ATA no data";
case ATA_PROT_PIO: case ATA_PROT_PIO:
......
...@@ -523,17 +523,23 @@ enum { ...@@ -523,17 +523,23 @@ enum {
SERR_DEV_XCHG = (1 << 26), /* device exchanged */ SERR_DEV_XCHG = (1 << 26), /* device exchanged */
}; };
enum ata_tf_protocols { enum ata_prot_flags {
/* ATA taskfile protocols */ /* protocol flags */
ATA_PROT_UNKNOWN, /* unknown/invalid */ ATA_PROT_FLAG_PIO = (1 << 0), /* is PIO */
ATA_PROT_NODATA, /* no data */ ATA_PROT_FLAG_DMA = (1 << 1), /* is DMA */
ATA_PROT_PIO, /* PIO data xfer */ ATA_PROT_FLAG_NCQ = (1 << 2), /* is NCQ */
ATA_PROT_DMA, /* DMA */ ATA_PROT_FLAG_ATAPI = (1 << 3), /* is ATAPI */
ATA_PROT_NCQ, /* NCQ */
ATA_PROT_NCQ_NODATA, /* NCQ no data */ /* taskfile protocols */
ATAPI_PROT_NODATA, /* packet command, no data */ ATA_PROT_UNKNOWN = (u8)-1,
ATAPI_PROT_PIO, /* packet command, PIO data xfer*/ ATA_PROT_NODATA = 0,
ATAPI_PROT_DMA, /* packet command with special DMA sauce */ 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 { enum ata_ioctls {
......
...@@ -146,12 +146,6 @@ enum { ...@@ -146,12 +146,6 @@ enum {
ATA_TFLAG_FUA = (1 << 5), /* enable FUA */ ATA_TFLAG_FUA = (1 << 5), /* enable FUA */
ATA_TFLAG_POLLING = (1 << 6), /* set nIEN to 1 and use polling */ 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 */ /* struct ata_device stuff */
ATA_DFLAG_LBA = (1 << 0), /* device supports LBA */ ATA_DFLAG_LBA = (1 << 0), /* device supports LBA */
ATA_DFLAG_LBA48 = (1 << 1), /* device supports LBA48 */ ATA_DFLAG_LBA48 = (1 << 1), /* device supports LBA48 */
...@@ -1038,55 +1032,29 @@ extern const unsigned long sata_deb_timing_long[]; ...@@ -1038,55 +1032,29 @@ extern const unsigned long sata_deb_timing_long[];
extern struct ata_port_operations ata_dummy_port_ops; extern struct ata_port_operations ata_dummy_port_ops;
extern const struct ata_port_info ata_dummy_port_info; 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) 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) 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) 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) 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) 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) static inline int is_multi_taskfile(struct ata_taskfile *tf)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment