aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/libata.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/libata.h')
-rw-r--r--include/linux/libata.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 639298af583e..eccc38e17568 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -1071,6 +1071,63 @@ extern void ata_do_eh(struct ata_port *ap, ata_prereset_fn_t prereset,
1071 ata_postreset_fn_t postreset); 1071 ata_postreset_fn_t postreset);
1072 1072
1073/* 1073/*
1074 * Base operations to inherit from and initializers for sht
1075 *
1076 * Operations
1077 *
1078 * base : Common to all libata drivers.
1079 * sata : SATA controllers w/ native interface.
1080 * pmp : SATA controllers w/ PMP support.
1081 * sff : SFF ATA controllers w/o BMDMA support.
1082 * bmdma : SFF ATA controllers w/ BMDMA support.
1083 *
1084 * sht initializers
1085 *
1086 * BASE : Common to all libata drivers. The user must set
1087 * sg_tablesize and dma_boundary.
1088 * PIO : SFF ATA controllers w/ only PIO support.
1089 * BMDMA : SFF ATA controllers w/ BMDMA support. sg_tablesize and
1090 * dma_boundary are set to BMDMA limits.
1091 * NCQ : SATA controllers supporting NCQ. The user must set
1092 * sg_tablesize, dma_boundary and can_queue.
1093 */
1094extern const struct ata_port_operations ata_base_port_ops;
1095extern const struct ata_port_operations sata_port_ops;
1096extern const struct ata_port_operations sata_pmp_port_ops;
1097extern const struct ata_port_operations ata_sff_port_ops;
1098extern const struct ata_port_operations ata_bmdma_port_ops;
1099
1100#define ATA_BASE_SHT(drv_name) \
1101 .module = THIS_MODULE, \
1102 .name = drv_name, \
1103 .ioctl = ata_scsi_ioctl, \
1104 .queuecommand = ata_scsi_queuecmd, \
1105 .can_queue = ATA_DEF_QUEUE, \
1106 .this_id = ATA_SHT_THIS_ID, \
1107 .cmd_per_lun = ATA_SHT_CMD_PER_LUN, \
1108 .emulated = ATA_SHT_EMULATED, \
1109 .use_clustering = ATA_SHT_USE_CLUSTERING, \
1110 .proc_name = drv_name, \
1111 .slave_configure = ata_scsi_slave_config, \
1112 .slave_destroy = ata_scsi_slave_destroy, \
1113 .bios_param = ata_std_bios_param
1114
1115/* PIO only, sg_tablesize and dma_boundary limits can be removed */
1116#define ATA_PIO_SHT(drv_name) \
1117 ATA_BASE_SHT(drv_name), \
1118 .sg_tablesize = LIBATA_MAX_PRD, \
1119 .dma_boundary = ATA_DMA_BOUNDARY
1120
1121#define ATA_BMDMA_SHT(drv_name) \
1122 ATA_BASE_SHT(drv_name), \
1123 .sg_tablesize = LIBATA_MAX_PRD, \
1124 .dma_boundary = ATA_DMA_BOUNDARY
1125
1126#define ATA_NCQ_SHT(drv_name) \
1127 ATA_BASE_SHT(drv_name), \
1128 .change_queue_depth = ata_scsi_change_queue_depth
1129
1130/*
1074 * printk helpers 1131 * printk helpers
1075 */ 1132 */
1076#define ata_port_printk(ap, lv, fmt, args...) \ 1133#define ata_port_printk(ap, lv, fmt, args...) \