aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2008-03-24 23:22:49 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-04-17 15:44:17 -0400
commit68d1d07b510bb57a504588adc2bd2758adea0965 (patch)
tree94e8788a8ca40017b33044329f98bbe6552cc526
parent6bd99b4e0998571808fc1f09d5162348f21ff8c1 (diff)
libata: implement and use SHT initializers
libata lets low level drivers build scsi_host_template and register it to the SCSI layer. This allows low level drivers high level of flexibility but also burdens them with lots of boilerplate entries. This patch implements SHT initializers which can be used to initialize all the boilerplate entries in a sht. Three variants of them are implemented - BASE, BMDMA and NCQ - for different types of drivers. Note that entries can be overriden by putting individual initializers after the helper macro. All sht tables are identical before and after this patch. Signed-off-by: Tejun Heo <htejun@gmail.com>
-rw-r--r--drivers/ata/ahci.c15
-rw-r--r--drivers/ata/ata_generic.c16
-rw-r--r--drivers/ata/ata_piix.c16
-rw-r--r--drivers/ata/pata_acpi.c17
-rw-r--r--drivers/ata/pata_ali.c16
-rw-r--r--drivers/ata/pata_amd.c16
-rw-r--r--drivers/ata/pata_artop.c16
-rw-r--r--drivers/ata/pata_at32.c16
-rw-r--r--drivers/ata/pata_atiixp.c15
-rw-r--r--drivers/ata/pata_bf54x.c14
-rw-r--r--drivers/ata/pata_cmd640.c16
-rw-r--r--drivers/ata/pata_cmd64x.c16
-rw-r--r--drivers/ata/pata_cs5520.c15
-rw-r--r--drivers/ata/pata_cs5530.c17
-rw-r--r--drivers/ata/pata_cs5535.c16
-rw-r--r--drivers/ata/pata_cs5536.c16
-rw-r--r--drivers/ata/pata_cypress.c16
-rw-r--r--drivers/ata/pata_efar.c16
-rw-r--r--drivers/ata/pata_hpt366.c16
-rw-r--r--drivers/ata/pata_hpt37x.c16
-rw-r--r--drivers/ata/pata_hpt3x2n.c16
-rw-r--r--drivers/ata/pata_hpt3x3.c16
-rw-r--r--drivers/ata/pata_icside.c14
-rw-r--r--drivers/ata/pata_isapnp.c16
-rw-r--r--drivers/ata/pata_it8213.c16
-rw-r--r--drivers/ata/pata_it821x.c16
-rw-r--r--drivers/ata/pata_ixp4xx_cf.c16
-rw-r--r--drivers/ata/pata_jmicron.c17
-rw-r--r--drivers/ata/pata_legacy.c16
-rw-r--r--drivers/ata/pata_marvell.c17
-rw-r--r--drivers/ata/pata_mpc52xx.c16
-rw-r--r--drivers/ata/pata_mpiix.c16
-rw-r--r--drivers/ata/pata_netcell.c17
-rw-r--r--drivers/ata/pata_ninja32.c16
-rw-r--r--drivers/ata/pata_ns87410.c16
-rw-r--r--drivers/ata/pata_ns87415.c16
-rw-r--r--drivers/ata/pata_oldpiix.c16
-rw-r--r--drivers/ata/pata_opti.c16
-rw-r--r--drivers/ata/pata_optidma.c16
-rw-r--r--drivers/ata/pata_pcmcia.c16
-rw-r--r--drivers/ata/pata_pdc2027x.c16
-rw-r--r--drivers/ata/pata_pdc202xx_old.c16
-rw-r--r--drivers/ata/pata_platform.c16
-rw-r--r--drivers/ata/pata_qdi.c16
-rw-r--r--drivers/ata/pata_radisys.c16
-rw-r--r--drivers/ata/pata_rb500_cf.c17
-rw-r--r--drivers/ata/pata_rz1000.c16
-rw-r--r--drivers/ata/pata_sc1200.c17
-rw-r--r--drivers/ata/pata_scc.c16
-rw-r--r--drivers/ata/pata_serverworks.c16
-rw-r--r--drivers/ata/pata_sil680.c16
-rw-r--r--drivers/ata/pata_sis.c16
-rw-r--r--drivers/ata/pata_sl82c105.c16
-rw-r--r--drivers/ata/pata_triflex.c16
-rw-r--r--drivers/ata/pata_via.c16
-rw-r--r--drivers/ata/pata_winbond.c16
-rw-r--r--drivers/ata/pdc_adma.c14
-rw-r--r--drivers/ata/sata_fsl.c14
-rw-r--r--drivers/ata/sata_inic162x.c16
-rw-r--r--drivers/ata/sata_mv.c28
-rw-r--r--drivers/ata/sata_nv.c42
-rw-r--r--drivers/ata/sata_promise.c14
-rw-r--r--drivers/ata/sata_qstor.c14
-rw-r--r--drivers/ata/sata_sil.c16
-rw-r--r--drivers/ata/sata_sil24.c14
-rw-r--r--drivers/ata/sata_sis.c16
-rw-r--r--drivers/ata/sata_svw.c16
-rw-r--r--drivers/ata/sata_sx4.c14
-rw-r--r--drivers/ata/sata_uli.c16
-rw-r--r--drivers/ata/sata_via.c16
-rw-r--r--drivers/ata/sata_vsc.c16
-rw-r--r--include/linux/libata.h57
72 files changed, 133 insertions, 1086 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index c6ea44a7f2a9..8862595cb2cf 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -62,7 +62,6 @@ enum {
62 AHCI_MAX_PORTS = 32, 62 AHCI_MAX_PORTS = 32,
63 AHCI_MAX_SG = 168, /* hardware max is 64K */ 63 AHCI_MAX_SG = 168, /* hardware max is 64K */
64 AHCI_DMA_BOUNDARY = 0xffffffff, 64 AHCI_DMA_BOUNDARY = 0xffffffff,
65 AHCI_USE_CLUSTERING = 1,
66 AHCI_MAX_CMDS = 32, 65 AHCI_MAX_CMDS = 32,
67 AHCI_CMD_SZ = 32, 66 AHCI_CMD_SZ = 32,
68 AHCI_CMD_SLOT_SZ = AHCI_MAX_CMDS * AHCI_CMD_SZ, 67 AHCI_CMD_SLOT_SZ = AHCI_MAX_CMDS * AHCI_CMD_SZ,
@@ -274,22 +273,10 @@ static struct class_device_attribute *ahci_shost_attrs[] = {
274}; 273};
275 274
276static struct scsi_host_template ahci_sht = { 275static struct scsi_host_template ahci_sht = {
277 .module = THIS_MODULE, 276 ATA_NCQ_SHT(DRV_NAME),
278 .name = DRV_NAME,
279 .ioctl = ata_scsi_ioctl,
280 .queuecommand = ata_scsi_queuecmd,
281 .change_queue_depth = ata_scsi_change_queue_depth,
282 .can_queue = AHCI_MAX_CMDS - 1, 277 .can_queue = AHCI_MAX_CMDS - 1,
283 .this_id = ATA_SHT_THIS_ID,
284 .sg_tablesize = AHCI_MAX_SG, 278 .sg_tablesize = AHCI_MAX_SG,
285 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
286 .emulated = ATA_SHT_EMULATED,
287 .use_clustering = AHCI_USE_CLUSTERING,
288 .proc_name = DRV_NAME,
289 .dma_boundary = AHCI_DMA_BOUNDARY, 279 .dma_boundary = AHCI_DMA_BOUNDARY,
290 .slave_configure = ata_scsi_slave_config,
291 .slave_destroy = ata_scsi_slave_destroy,
292 .bios_param = ata_std_bios_param,
293 .shost_attrs = ahci_shost_attrs, 280 .shost_attrs = ahci_shost_attrs,
294}; 281};
295 282
diff --git a/drivers/ata/ata_generic.c b/drivers/ata/ata_generic.c
index db4c3cb78fda..5c64ce134c6c 100644
--- a/drivers/ata/ata_generic.c
+++ b/drivers/ata/ata_generic.c
@@ -95,21 +95,7 @@ static int generic_set_mode(struct ata_link *link, struct ata_device **unused)
95} 95}
96 96
97static struct scsi_host_template generic_sht = { 97static struct scsi_host_template generic_sht = {
98 .module = THIS_MODULE, 98 ATA_BMDMA_SHT(DRV_NAME),
99 .name = DRV_NAME,
100 .ioctl = ata_scsi_ioctl,
101 .queuecommand = ata_scsi_queuecmd,
102 .can_queue = ATA_DEF_QUEUE,
103 .this_id = ATA_SHT_THIS_ID,
104 .sg_tablesize = LIBATA_MAX_PRD,
105 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
106 .emulated = ATA_SHT_EMULATED,
107 .use_clustering = ATA_SHT_USE_CLUSTERING,
108 .proc_name = DRV_NAME,
109 .dma_boundary = ATA_DMA_BOUNDARY,
110 .slave_configure = ata_scsi_slave_config,
111 .slave_destroy = ata_scsi_slave_destroy,
112 .bios_param = ata_std_bios_param,
113}; 99};
114 100
115static struct ata_port_operations generic_port_ops = { 101static struct ata_port_operations generic_port_ops = {
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index 067760a16889..9f887b2c92df 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -291,21 +291,7 @@ static struct pci_driver piix_pci_driver = {
291}; 291};
292 292
293static struct scsi_host_template piix_sht = { 293static struct scsi_host_template piix_sht = {
294 .module = THIS_MODULE, 294 ATA_BMDMA_SHT(DRV_NAME),
295 .name = DRV_NAME,
296 .ioctl = ata_scsi_ioctl,
297 .queuecommand = ata_scsi_queuecmd,
298 .can_queue = ATA_DEF_QUEUE,
299 .this_id = ATA_SHT_THIS_ID,
300 .sg_tablesize = LIBATA_MAX_PRD,
301 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
302 .emulated = ATA_SHT_EMULATED,
303 .use_clustering = ATA_SHT_USE_CLUSTERING,
304 .proc_name = DRV_NAME,
305 .dma_boundary = ATA_DMA_BOUNDARY,
306 .slave_configure = ata_scsi_slave_config,
307 .slave_destroy = ata_scsi_slave_destroy,
308 .bios_param = ata_std_bios_param,
309}; 295};
310 296
311static const struct ata_port_operations piix_pata_ops = { 297static const struct ata_port_operations piix_pata_ops = {
diff --git a/drivers/ata/pata_acpi.c b/drivers/ata/pata_acpi.c
index bdc3b9d7395c..187545c0898a 100644
--- a/drivers/ata/pata_acpi.c
+++ b/drivers/ata/pata_acpi.c
@@ -232,22 +232,7 @@ static int pacpi_port_start(struct ata_port *ap)
232} 232}
233 233
234static struct scsi_host_template pacpi_sht = { 234static struct scsi_host_template pacpi_sht = {
235 .module = THIS_MODULE, 235 ATA_BMDMA_SHT(DRV_NAME),
236 .name = DRV_NAME,
237 .ioctl = ata_scsi_ioctl,
238 .queuecommand = ata_scsi_queuecmd,
239 .can_queue = ATA_DEF_QUEUE,
240 .this_id = ATA_SHT_THIS_ID,
241 .sg_tablesize = LIBATA_MAX_PRD,
242 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
243 .emulated = ATA_SHT_EMULATED,
244 .use_clustering = ATA_SHT_USE_CLUSTERING,
245 .proc_name = DRV_NAME,
246 .dma_boundary = ATA_DMA_BOUNDARY,
247 .slave_configure = ata_scsi_slave_config,
248 .slave_destroy = ata_scsi_slave_destroy,
249 /* Use standard CHS mapping rules */
250 .bios_param = ata_std_bios_param,
251}; 236};
252 237
253static const struct ata_port_operations pacpi_ops = { 238static const struct ata_port_operations pacpi_ops = {
diff --git a/drivers/ata/pata_ali.c b/drivers/ata/pata_ali.c
index 84b748aef386..f3d6d9b345ba 100644
--- a/drivers/ata/pata_ali.c
+++ b/drivers/ata/pata_ali.c
@@ -339,21 +339,7 @@ static int ali_check_atapi_dma(struct ata_queued_cmd *qc)
339} 339}
340 340
341static struct scsi_host_template ali_sht = { 341static struct scsi_host_template ali_sht = {
342 .module = THIS_MODULE, 342 ATA_BMDMA_SHT(DRV_NAME),
343 .name = DRV_NAME,
344 .ioctl = ata_scsi_ioctl,
345 .queuecommand = ata_scsi_queuecmd,
346 .can_queue = ATA_DEF_QUEUE,
347 .this_id = ATA_SHT_THIS_ID,
348 .sg_tablesize = LIBATA_MAX_PRD,
349 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
350 .emulated = ATA_SHT_EMULATED,
351 .use_clustering = ATA_SHT_USE_CLUSTERING,
352 .proc_name = DRV_NAME,
353 .dma_boundary = ATA_DMA_BOUNDARY,
354 .slave_configure = ata_scsi_slave_config,
355 .slave_destroy = ata_scsi_slave_destroy,
356 .bios_param = ata_std_bios_param,
357}; 343};
358 344
359/* 345/*
diff --git a/drivers/ata/pata_amd.c b/drivers/ata/pata_amd.c
index 5e1bc13a756b..90d786dfbec3 100644
--- a/drivers/ata/pata_amd.c
+++ b/drivers/ata/pata_amd.c
@@ -353,21 +353,7 @@ static void nv_host_stop(struct ata_host *host)
353} 353}
354 354
355static struct scsi_host_template amd_sht = { 355static struct scsi_host_template amd_sht = {
356 .module = THIS_MODULE, 356 ATA_BMDMA_SHT(DRV_NAME),
357 .name = DRV_NAME,
358 .ioctl = ata_scsi_ioctl,
359 .queuecommand = ata_scsi_queuecmd,
360 .can_queue = ATA_DEF_QUEUE,
361 .this_id = ATA_SHT_THIS_ID,
362 .sg_tablesize = LIBATA_MAX_PRD,
363 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
364 .emulated = ATA_SHT_EMULATED,
365 .use_clustering = ATA_SHT_USE_CLUSTERING,
366 .proc_name = DRV_NAME,
367 .dma_boundary = ATA_DMA_BOUNDARY,
368 .slave_configure = ata_scsi_slave_config,
369 .slave_destroy = ata_scsi_slave_destroy,
370 .bios_param = ata_std_bios_param,
371}; 357};
372 358
373static struct ata_port_operations amd33_port_ops = { 359static struct ata_port_operations amd33_port_ops = {
diff --git a/drivers/ata/pata_artop.c b/drivers/ata/pata_artop.c
index a238c7bd0bba..7bfb7e8bdca2 100644
--- a/drivers/ata/pata_artop.c
+++ b/drivers/ata/pata_artop.c
@@ -314,21 +314,7 @@ static void artop6260_set_dmamode (struct ata_port *ap, struct ata_device *adev)
314} 314}
315 315
316static struct scsi_host_template artop_sht = { 316static struct scsi_host_template artop_sht = {
317 .module = THIS_MODULE, 317 ATA_BMDMA_SHT(DRV_NAME),
318 .name = DRV_NAME,
319 .ioctl = ata_scsi_ioctl,
320 .queuecommand = ata_scsi_queuecmd,
321 .can_queue = ATA_DEF_QUEUE,
322 .this_id = ATA_SHT_THIS_ID,
323 .sg_tablesize = LIBATA_MAX_PRD,
324 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
325 .emulated = ATA_SHT_EMULATED,
326 .use_clustering = ATA_SHT_USE_CLUSTERING,
327 .proc_name = DRV_NAME,
328 .dma_boundary = ATA_DMA_BOUNDARY,
329 .slave_configure = ata_scsi_slave_config,
330 .slave_destroy = ata_scsi_slave_destroy,
331 .bios_param = ata_std_bios_param,
332}; 318};
333 319
334static const struct ata_port_operations artop6210_ops = { 320static const struct ata_port_operations artop6210_ops = {
diff --git a/drivers/ata/pata_at32.c b/drivers/ata/pata_at32.c
index 27c959f35c2c..d7b7b7fde362 100644
--- a/drivers/ata/pata_at32.c
+++ b/drivers/ata/pata_at32.c
@@ -167,21 +167,7 @@ static void pata_at32_set_piomode(struct ata_port *ap, struct ata_device *adev)
167} 167}
168 168
169static struct scsi_host_template at32_sht = { 169static struct scsi_host_template at32_sht = {
170 .module = THIS_MODULE, 170 ATA_PIO_SHT(DRV_NAME),
171 .name = DRV_NAME,
172 .ioctl = ata_scsi_ioctl,
173 .queuecommand = ata_scsi_queuecmd,
174 .can_queue = ATA_DEF_QUEUE,
175 .this_id = ATA_SHT_THIS_ID,
176 .sg_tablesize = LIBATA_MAX_PRD,
177 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
178 .emulated = ATA_SHT_EMULATED,
179 .use_clustering = ATA_SHT_USE_CLUSTERING,
180 .proc_name = DRV_NAME,
181 .dma_boundary = ATA_DMA_BOUNDARY,
182 .slave_configure = ata_scsi_slave_config,
183 .slave_destroy = ata_scsi_slave_destroy,
184 .bios_param = ata_std_bios_param,
185}; 171};
186 172
187static struct ata_port_operations at32_port_ops = { 173static struct ata_port_operations at32_port_ops = {
diff --git a/drivers/ata/pata_atiixp.c b/drivers/ata/pata_atiixp.c
index 408bdc1a9776..645c47271ff5 100644
--- a/drivers/ata/pata_atiixp.c
+++ b/drivers/ata/pata_atiixp.c
@@ -221,21 +221,8 @@ static void atiixp_bmdma_stop(struct ata_queued_cmd *qc)
221} 221}
222 222
223static struct scsi_host_template atiixp_sht = { 223static struct scsi_host_template atiixp_sht = {
224 .module = THIS_MODULE, 224 ATA_BMDMA_SHT(DRV_NAME),
225 .name = DRV_NAME,
226 .ioctl = ata_scsi_ioctl,
227 .queuecommand = ata_scsi_queuecmd,
228 .can_queue = ATA_DEF_QUEUE,
229 .this_id = ATA_SHT_THIS_ID,
230 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 225 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
231 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
232 .emulated = ATA_SHT_EMULATED,
233 .use_clustering = ATA_SHT_USE_CLUSTERING,
234 .proc_name = DRV_NAME,
235 .dma_boundary = ATA_DMA_BOUNDARY,
236 .slave_configure = ata_scsi_slave_config,
237 .slave_destroy = ata_scsi_slave_destroy,
238 .bios_param = ata_std_bios_param,
239}; 226};
240 227
241static struct ata_port_operations atiixp_port_ops = { 228static struct ata_port_operations atiixp_port_ops = {
diff --git a/drivers/ata/pata_bf54x.c b/drivers/ata/pata_bf54x.c
index 146c202d5834..6c75fcac3cf4 100644
--- a/drivers/ata/pata_bf54x.c
+++ b/drivers/ata/pata_bf54x.c
@@ -1357,21 +1357,9 @@ static int bfin_port_start(struct ata_port *ap)
1357} 1357}
1358 1358
1359static struct scsi_host_template bfin_sht = { 1359static struct scsi_host_template bfin_sht = {
1360 .module = THIS_MODULE, 1360 ATA_BASE_SHT(DRV_NAME),
1361 .name = DRV_NAME,
1362 .ioctl = ata_scsi_ioctl,
1363 .queuecommand = ata_scsi_queuecmd,
1364 .can_queue = ATA_DEF_QUEUE,
1365 .this_id = ATA_SHT_THIS_ID,
1366 .sg_tablesize = SG_NONE, 1361 .sg_tablesize = SG_NONE,
1367 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
1368 .emulated = ATA_SHT_EMULATED,
1369 .use_clustering = ATA_SHT_USE_CLUSTERING,
1370 .proc_name = DRV_NAME,
1371 .dma_boundary = ATA_DMA_BOUNDARY, 1362 .dma_boundary = ATA_DMA_BOUNDARY,
1372 .slave_configure = ata_scsi_slave_config,
1373 .slave_destroy = ata_scsi_slave_destroy,
1374 .bios_param = ata_std_bios_param,
1375}; 1363};
1376 1364
1377static const struct ata_port_operations bfin_pata_ops = { 1365static const struct ata_port_operations bfin_pata_ops = {
diff --git a/drivers/ata/pata_cmd640.c b/drivers/ata/pata_cmd640.c
index 0ef1d1ded1f8..26562b814400 100644
--- a/drivers/ata/pata_cmd640.c
+++ b/drivers/ata/pata_cmd640.c
@@ -166,21 +166,7 @@ static int cmd640_port_start(struct ata_port *ap)
166} 166}
167 167
168static struct scsi_host_template cmd640_sht = { 168static struct scsi_host_template cmd640_sht = {
169 .module = THIS_MODULE, 169 ATA_BMDMA_SHT(DRV_NAME),
170 .name = DRV_NAME,
171 .ioctl = ata_scsi_ioctl,
172 .queuecommand = ata_scsi_queuecmd,
173 .can_queue = ATA_DEF_QUEUE,
174 .this_id = ATA_SHT_THIS_ID,
175 .sg_tablesize = LIBATA_MAX_PRD,
176 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
177 .emulated = ATA_SHT_EMULATED,
178 .use_clustering = ATA_SHT_USE_CLUSTERING,
179 .proc_name = DRV_NAME,
180 .dma_boundary = ATA_DMA_BOUNDARY,
181 .slave_configure = ata_scsi_slave_config,
182 .slave_destroy = ata_scsi_slave_destroy,
183 .bios_param = ata_std_bios_param,
184}; 170};
185 171
186static struct ata_port_operations cmd640_port_ops = { 172static struct ata_port_operations cmd640_port_ops = {
diff --git a/drivers/ata/pata_cmd64x.c b/drivers/ata/pata_cmd64x.c
index e8c1262341ee..6aea05cc0940 100644
--- a/drivers/ata/pata_cmd64x.c
+++ b/drivers/ata/pata_cmd64x.c
@@ -266,21 +266,7 @@ static void cmd646r1_bmdma_stop(struct ata_queued_cmd *qc)
266} 266}
267 267
268static struct scsi_host_template cmd64x_sht = { 268static struct scsi_host_template cmd64x_sht = {
269 .module = THIS_MODULE, 269 ATA_BMDMA_SHT(DRV_NAME),
270 .name = DRV_NAME,
271 .ioctl = ata_scsi_ioctl,
272 .queuecommand = ata_scsi_queuecmd,
273 .can_queue = ATA_DEF_QUEUE,
274 .this_id = ATA_SHT_THIS_ID,
275 .sg_tablesize = LIBATA_MAX_PRD,
276 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
277 .emulated = ATA_SHT_EMULATED,
278 .use_clustering = ATA_SHT_USE_CLUSTERING,
279 .proc_name = DRV_NAME,
280 .dma_boundary = ATA_DMA_BOUNDARY,
281 .slave_configure = ata_scsi_slave_config,
282 .slave_destroy = ata_scsi_slave_destroy,
283 .bios_param = ata_std_bios_param,
284}; 270};
285 271
286static struct ata_port_operations cmd64x_port_ops = { 272static struct ata_port_operations cmd64x_port_ops = {
diff --git a/drivers/ata/pata_cs5520.c b/drivers/ata/pata_cs5520.c
index 44ad2c9d488f..7e643099a444 100644
--- a/drivers/ata/pata_cs5520.c
+++ b/drivers/ata/pata_cs5520.c
@@ -140,21 +140,8 @@ static void cs5520_set_piomode(struct ata_port *ap, struct ata_device *adev)
140} 140}
141 141
142static struct scsi_host_template cs5520_sht = { 142static struct scsi_host_template cs5520_sht = {
143 .module = THIS_MODULE, 143 ATA_BMDMA_SHT(DRV_NAME),
144 .name = DRV_NAME,
145 .ioctl = ata_scsi_ioctl,
146 .queuecommand = ata_scsi_queuecmd,
147 .can_queue = ATA_DEF_QUEUE,
148 .this_id = ATA_SHT_THIS_ID,
149 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 144 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
150 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
151 .emulated = ATA_SHT_EMULATED,
152 .use_clustering = ATA_SHT_USE_CLUSTERING,
153 .proc_name = DRV_NAME,
154 .dma_boundary = ATA_DMA_BOUNDARY,
155 .slave_configure = ata_scsi_slave_config,
156 .slave_destroy = ata_scsi_slave_destroy,
157 .bios_param = ata_std_bios_param,
158}; 145};
159 146
160static struct ata_port_operations cs5520_port_ops = { 147static struct ata_port_operations cs5520_port_ops = {
diff --git a/drivers/ata/pata_cs5530.c b/drivers/ata/pata_cs5530.c
index f876aeddf1a1..0bb03dabcf18 100644
--- a/drivers/ata/pata_cs5530.c
+++ b/drivers/ata/pata_cs5530.c
@@ -161,21 +161,8 @@ static unsigned int cs5530_qc_issue_prot(struct ata_queued_cmd *qc)
161} 161}
162 162
163static struct scsi_host_template cs5530_sht = { 163static struct scsi_host_template cs5530_sht = {
164 .module = THIS_MODULE, 164 ATA_BMDMA_SHT(DRV_NAME),
165 .name = DRV_NAME, 165 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
166 .ioctl = ata_scsi_ioctl,
167 .queuecommand = ata_scsi_queuecmd,
168 .can_queue = ATA_DEF_QUEUE,
169 .this_id = ATA_SHT_THIS_ID,
170 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
171 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
172 .emulated = ATA_SHT_EMULATED,
173 .use_clustering = ATA_SHT_USE_CLUSTERING,
174 .proc_name = DRV_NAME,
175 .dma_boundary = ATA_DMA_BOUNDARY,
176 .slave_configure = ata_scsi_slave_config,
177 .slave_destroy = ata_scsi_slave_destroy,
178 .bios_param = ata_std_bios_param,
179}; 166};
180 167
181static struct ata_port_operations cs5530_port_ops = { 168static struct ata_port_operations cs5530_port_ops = {
diff --git a/drivers/ata/pata_cs5535.c b/drivers/ata/pata_cs5535.c
index 01324530d052..48a18349c1d8 100644
--- a/drivers/ata/pata_cs5535.c
+++ b/drivers/ata/pata_cs5535.c
@@ -158,21 +158,7 @@ static void cs5535_set_dmamode(struct ata_port *ap, struct ata_device *adev)
158} 158}
159 159
160static struct scsi_host_template cs5535_sht = { 160static struct scsi_host_template cs5535_sht = {
161 .module = THIS_MODULE, 161 ATA_BMDMA_SHT(DRV_NAME),
162 .name = DRV_NAME,
163 .ioctl = ata_scsi_ioctl,
164 .queuecommand = ata_scsi_queuecmd,
165 .can_queue = ATA_DEF_QUEUE,
166 .this_id = ATA_SHT_THIS_ID,
167 .sg_tablesize = LIBATA_MAX_PRD,
168 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
169 .emulated = ATA_SHT_EMULATED,
170 .use_clustering = ATA_SHT_USE_CLUSTERING,
171 .proc_name = DRV_NAME,
172 .dma_boundary = ATA_DMA_BOUNDARY,
173 .slave_configure = ata_scsi_slave_config,
174 .slave_destroy = ata_scsi_slave_destroy,
175 .bios_param = ata_std_bios_param,
176}; 162};
177 163
178static struct ata_port_operations cs5535_port_ops = { 164static struct ata_port_operations cs5535_port_ops = {
diff --git a/drivers/ata/pata_cs5536.c b/drivers/ata/pata_cs5536.c
index 391aa888f8fd..f02d9107ef3b 100644
--- a/drivers/ata/pata_cs5536.c
+++ b/drivers/ata/pata_cs5536.c
@@ -221,21 +221,7 @@ static void cs5536_set_dmamode(struct ata_port *ap, struct ata_device *adev)
221} 221}
222 222
223static struct scsi_host_template cs5536_sht = { 223static struct scsi_host_template cs5536_sht = {
224 .module = THIS_MODULE, 224 ATA_BMDMA_SHT(DRV_NAME),
225 .name = DRV_NAME,
226 .ioctl = ata_scsi_ioctl,
227 .queuecommand = ata_scsi_queuecmd,
228 .can_queue = ATA_DEF_QUEUE,
229 .this_id = ATA_SHT_THIS_ID,
230 .sg_tablesize = LIBATA_MAX_PRD,
231 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
232 .emulated = ATA_SHT_EMULATED,
233 .use_clustering = ATA_SHT_USE_CLUSTERING,
234 .proc_name = DRV_NAME,
235 .dma_boundary = ATA_DMA_BOUNDARY,
236 .slave_configure = ata_scsi_slave_config,
237 .slave_destroy = ata_scsi_slave_destroy,
238 .bios_param = ata_std_bios_param,
239}; 225};
240 226
241static struct ata_port_operations cs5536_port_ops = { 227static struct ata_port_operations cs5536_port_ops = {
diff --git a/drivers/ata/pata_cypress.c b/drivers/ata/pata_cypress.c
index fc5f9c4e5d87..07fa1ab36315 100644
--- a/drivers/ata/pata_cypress.c
+++ b/drivers/ata/pata_cypress.c
@@ -110,21 +110,7 @@ static void cy82c693_set_dmamode(struct ata_port *ap, struct ata_device *adev)
110} 110}
111 111
112static struct scsi_host_template cy82c693_sht = { 112static struct scsi_host_template cy82c693_sht = {
113 .module = THIS_MODULE, 113 ATA_BMDMA_SHT(DRV_NAME),
114 .name = DRV_NAME,
115 .ioctl = ata_scsi_ioctl,
116 .queuecommand = ata_scsi_queuecmd,
117 .can_queue = ATA_DEF_QUEUE,
118 .this_id = ATA_SHT_THIS_ID,
119 .sg_tablesize = LIBATA_MAX_PRD,
120 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
121 .emulated = ATA_SHT_EMULATED,
122 .use_clustering = ATA_SHT_USE_CLUSTERING,
123 .proc_name = DRV_NAME,
124 .dma_boundary = ATA_DMA_BOUNDARY,
125 .slave_configure = ata_scsi_slave_config,
126 .slave_destroy = ata_scsi_slave_destroy,
127 .bios_param = ata_std_bios_param,
128}; 114};
129 115
130static struct ata_port_operations cy82c693_port_ops = { 116static struct ata_port_operations cy82c693_port_ops = {
diff --git a/drivers/ata/pata_efar.c b/drivers/ata/pata_efar.c
index dc33220fe5b2..8700d9dcd8c9 100644
--- a/drivers/ata/pata_efar.c
+++ b/drivers/ata/pata_efar.c
@@ -233,21 +233,7 @@ static void efar_set_dmamode (struct ata_port *ap, struct ata_device *adev)
233} 233}
234 234
235static struct scsi_host_template efar_sht = { 235static struct scsi_host_template efar_sht = {
236 .module = THIS_MODULE, 236 ATA_BMDMA_SHT(DRV_NAME),
237 .name = DRV_NAME,
238 .ioctl = ata_scsi_ioctl,
239 .queuecommand = ata_scsi_queuecmd,
240 .can_queue = ATA_DEF_QUEUE,
241 .this_id = ATA_SHT_THIS_ID,
242 .sg_tablesize = LIBATA_MAX_PRD,
243 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
244 .emulated = ATA_SHT_EMULATED,
245 .use_clustering = ATA_SHT_USE_CLUSTERING,
246 .proc_name = DRV_NAME,
247 .dma_boundary = ATA_DMA_BOUNDARY,
248 .slave_configure = ata_scsi_slave_config,
249 .slave_destroy = ata_scsi_slave_destroy,
250 .bios_param = ata_std_bios_param,
251}; 237};
252 238
253static const struct ata_port_operations efar_ops = { 239static const struct ata_port_operations efar_ops = {
diff --git a/drivers/ata/pata_hpt366.c b/drivers/ata/pata_hpt366.c
index a82089048f58..a30028de41c0 100644
--- a/drivers/ata/pata_hpt366.c
+++ b/drivers/ata/pata_hpt366.c
@@ -290,21 +290,7 @@ static void hpt366_set_dmamode(struct ata_port *ap, struct ata_device *adev)
290} 290}
291 291
292static struct scsi_host_template hpt36x_sht = { 292static struct scsi_host_template hpt36x_sht = {
293 .module = THIS_MODULE, 293 ATA_BMDMA_SHT(DRV_NAME),
294 .name = DRV_NAME,
295 .ioctl = ata_scsi_ioctl,
296 .queuecommand = ata_scsi_queuecmd,
297 .can_queue = ATA_DEF_QUEUE,
298 .this_id = ATA_SHT_THIS_ID,
299 .sg_tablesize = LIBATA_MAX_PRD,
300 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
301 .emulated = ATA_SHT_EMULATED,
302 .use_clustering = ATA_SHT_USE_CLUSTERING,
303 .proc_name = DRV_NAME,
304 .dma_boundary = ATA_DMA_BOUNDARY,
305 .slave_configure = ata_scsi_slave_config,
306 .slave_destroy = ata_scsi_slave_destroy,
307 .bios_param = ata_std_bios_param,
308}; 294};
309 295
310/* 296/*
diff --git a/drivers/ata/pata_hpt37x.c b/drivers/ata/pata_hpt37x.c
index 2ddcd07a7518..7d6fac43e2f9 100644
--- a/drivers/ata/pata_hpt37x.c
+++ b/drivers/ata/pata_hpt37x.c
@@ -619,21 +619,7 @@ static void hpt37x_bmdma_stop(struct ata_queued_cmd *qc)
619 619
620 620
621static struct scsi_host_template hpt37x_sht = { 621static struct scsi_host_template hpt37x_sht = {
622 .module = THIS_MODULE, 622 ATA_BMDMA_SHT(DRV_NAME),
623 .name = DRV_NAME,
624 .ioctl = ata_scsi_ioctl,
625 .queuecommand = ata_scsi_queuecmd,
626 .can_queue = ATA_DEF_QUEUE,
627 .this_id = ATA_SHT_THIS_ID,
628 .sg_tablesize = LIBATA_MAX_PRD,
629 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
630 .emulated = ATA_SHT_EMULATED,
631 .use_clustering = ATA_SHT_USE_CLUSTERING,
632 .proc_name = DRV_NAME,
633 .dma_boundary = ATA_DMA_BOUNDARY,
634 .slave_configure = ata_scsi_slave_config,
635 .slave_destroy = ata_scsi_slave_destroy,
636 .bios_param = ata_std_bios_param,
637}; 623};
638 624
639/* 625/*
diff --git a/drivers/ata/pata_hpt3x2n.c b/drivers/ata/pata_hpt3x2n.c
index 3a517cb9bd3e..aa380c46b168 100644
--- a/drivers/ata/pata_hpt3x2n.c
+++ b/drivers/ata/pata_hpt3x2n.c
@@ -339,21 +339,7 @@ static unsigned int hpt3x2n_qc_issue_prot(struct ata_queued_cmd *qc)
339} 339}
340 340
341static struct scsi_host_template hpt3x2n_sht = { 341static struct scsi_host_template hpt3x2n_sht = {
342 .module = THIS_MODULE, 342 ATA_BMDMA_SHT(DRV_NAME),
343 .name = DRV_NAME,
344 .ioctl = ata_scsi_ioctl,
345 .queuecommand = ata_scsi_queuecmd,
346 .can_queue = ATA_DEF_QUEUE,
347 .this_id = ATA_SHT_THIS_ID,
348 .sg_tablesize = LIBATA_MAX_PRD,
349 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
350 .emulated = ATA_SHT_EMULATED,
351 .use_clustering = ATA_SHT_USE_CLUSTERING,
352 .proc_name = DRV_NAME,
353 .dma_boundary = ATA_DMA_BOUNDARY,
354 .slave_configure = ata_scsi_slave_config,
355 .slave_destroy = ata_scsi_slave_destroy,
356 .bios_param = ata_std_bios_param,
357}; 343};
358 344
359/* 345/*
diff --git a/drivers/ata/pata_hpt3x3.c b/drivers/ata/pata_hpt3x3.c
index c09f95a4a0d1..9837ab0181e8 100644
--- a/drivers/ata/pata_hpt3x3.c
+++ b/drivers/ata/pata_hpt3x3.c
@@ -102,21 +102,7 @@ static int hpt3x3_atapi_dma(struct ata_queued_cmd *qc)
102} 102}
103 103
104static struct scsi_host_template hpt3x3_sht = { 104static struct scsi_host_template hpt3x3_sht = {
105 .module = THIS_MODULE, 105 ATA_BMDMA_SHT(DRV_NAME),
106 .name = DRV_NAME,
107 .ioctl = ata_scsi_ioctl,
108 .queuecommand = ata_scsi_queuecmd,
109 .can_queue = ATA_DEF_QUEUE,
110 .this_id = ATA_SHT_THIS_ID,
111 .sg_tablesize = LIBATA_MAX_PRD,
112 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
113 .emulated = ATA_SHT_EMULATED,
114 .use_clustering = ATA_SHT_USE_CLUSTERING,
115 .proc_name = DRV_NAME,
116 .dma_boundary = ATA_DMA_BOUNDARY,
117 .slave_configure = ata_scsi_slave_config,
118 .slave_destroy = ata_scsi_slave_destroy,
119 .bios_param = ata_std_bios_param,
120}; 106};
121 107
122static struct ata_port_operations hpt3x3_port_ops = { 108static struct ata_port_operations hpt3x3_port_ops = {
diff --git a/drivers/ata/pata_icside.c b/drivers/ata/pata_icside.c
index e1230cae7ff1..88a1c7ae0a4d 100644
--- a/drivers/ata/pata_icside.c
+++ b/drivers/ata/pata_icside.c
@@ -305,21 +305,9 @@ static int icside_dma_init(struct pata_icside_info *info)
305 305
306 306
307static struct scsi_host_template pata_icside_sht = { 307static struct scsi_host_template pata_icside_sht = {
308 .module = THIS_MODULE, 308 ATA_BASE_SHT(DRV_NAME),
309 .name = DRV_NAME,
310 .ioctl = ata_scsi_ioctl,
311 .queuecommand = ata_scsi_queuecmd,
312 .can_queue = ATA_DEF_QUEUE,
313 .this_id = ATA_SHT_THIS_ID,
314 .sg_tablesize = PATA_ICSIDE_MAX_SG, 309 .sg_tablesize = PATA_ICSIDE_MAX_SG,
315 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
316 .emulated = ATA_SHT_EMULATED,
317 .use_clustering = ATA_SHT_USE_CLUSTERING,
318 .proc_name = DRV_NAME,
319 .dma_boundary = ~0, /* no dma boundaries */ 310 .dma_boundary = ~0, /* no dma boundaries */
320 .slave_configure = ata_scsi_slave_config,
321 .slave_destroy = ata_scsi_slave_destroy,
322 .bios_param = ata_std_bios_param,
323}; 311};
324 312
325static void pata_icside_postreset(struct ata_link *link, unsigned int *classes) 313static void pata_icside_postreset(struct ata_link *link, unsigned int *classes)
diff --git a/drivers/ata/pata_isapnp.c b/drivers/ata/pata_isapnp.c
index ef561de0c24d..91ca4d50db04 100644
--- a/drivers/ata/pata_isapnp.c
+++ b/drivers/ata/pata_isapnp.c
@@ -20,21 +20,7 @@
20#define DRV_VERSION "0.2.2" 20#define DRV_VERSION "0.2.2"
21 21
22static struct scsi_host_template isapnp_sht = { 22static struct scsi_host_template isapnp_sht = {
23 .module = THIS_MODULE, 23 ATA_PIO_SHT(DRV_NAME),
24 .name = DRV_NAME,
25 .ioctl = ata_scsi_ioctl,
26 .queuecommand = ata_scsi_queuecmd,
27 .can_queue = ATA_DEF_QUEUE,
28 .this_id = ATA_SHT_THIS_ID,
29 .sg_tablesize = LIBATA_MAX_PRD,
30 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
31 .emulated = ATA_SHT_EMULATED,
32 .use_clustering = ATA_SHT_USE_CLUSTERING,
33 .proc_name = DRV_NAME,
34 .dma_boundary = ATA_DMA_BOUNDARY,
35 .slave_configure = ata_scsi_slave_config,
36 .slave_destroy = ata_scsi_slave_destroy,
37 .bios_param = ata_std_bios_param,
38}; 24};
39 25
40static struct ata_port_operations isapnp_port_ops = { 26static struct ata_port_operations isapnp_port_ops = {
diff --git a/drivers/ata/pata_it8213.c b/drivers/ata/pata_it8213.c
index 25c49c2e1519..678a05b304d8 100644
--- a/drivers/ata/pata_it8213.c
+++ b/drivers/ata/pata_it8213.c
@@ -243,21 +243,7 @@ static void it8213_set_dmamode (struct ata_port *ap, struct ata_device *adev)
243} 243}
244 244
245static struct scsi_host_template it8213_sht = { 245static struct scsi_host_template it8213_sht = {
246 .module = THIS_MODULE, 246 ATA_BMDMA_SHT(DRV_NAME),
247 .name = DRV_NAME,
248 .ioctl = ata_scsi_ioctl,
249 .queuecommand = ata_scsi_queuecmd,
250 .can_queue = ATA_DEF_QUEUE,
251 .this_id = ATA_SHT_THIS_ID,
252 .sg_tablesize = LIBATA_MAX_PRD,
253 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
254 .emulated = ATA_SHT_EMULATED,
255 .use_clustering = ATA_SHT_USE_CLUSTERING,
256 .proc_name = DRV_NAME,
257 .dma_boundary = ATA_DMA_BOUNDARY,
258 .slave_configure = ata_scsi_slave_config,
259 .slave_destroy = ata_scsi_slave_destroy,
260 .bios_param = ata_std_bios_param,
261}; 247};
262 248
263static const struct ata_port_operations it8213_ops = { 249static const struct ata_port_operations it8213_ops = {
diff --git a/drivers/ata/pata_it821x.c b/drivers/ata/pata_it821x.c
index 6bdbb7140dfa..7d969c911731 100644
--- a/drivers/ata/pata_it821x.c
+++ b/drivers/ata/pata_it821x.c
@@ -632,21 +632,7 @@ static int it821x_port_start(struct ata_port *ap)
632} 632}
633 633
634static struct scsi_host_template it821x_sht = { 634static struct scsi_host_template it821x_sht = {
635 .module = THIS_MODULE, 635 ATA_BMDMA_SHT(DRV_NAME),
636 .name = DRV_NAME,
637 .ioctl = ata_scsi_ioctl,
638 .queuecommand = ata_scsi_queuecmd,
639 .can_queue = ATA_DEF_QUEUE,
640 .this_id = ATA_SHT_THIS_ID,
641 .sg_tablesize = LIBATA_MAX_PRD,
642 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
643 .emulated = ATA_SHT_EMULATED,
644 .use_clustering = ATA_SHT_USE_CLUSTERING,
645 .proc_name = DRV_NAME,
646 .dma_boundary = ATA_DMA_BOUNDARY,
647 .slave_configure = ata_scsi_slave_config,
648 .slave_destroy = ata_scsi_slave_destroy,
649 .bios_param = ata_std_bios_param,
650}; 636};
651 637
652static struct ata_port_operations it821x_smart_port_ops = { 638static struct ata_port_operations it821x_smart_port_ops = {
diff --git a/drivers/ata/pata_ixp4xx_cf.c b/drivers/ata/pata_ixp4xx_cf.c
index 6eb8cc9a3f12..b7e8e825a869 100644
--- a/drivers/ata/pata_ixp4xx_cf.c
+++ b/drivers/ata/pata_ixp4xx_cf.c
@@ -88,21 +88,7 @@ static unsigned int ixp4xx_mmio_data_xfer(struct ata_device *dev,
88} 88}
89 89
90static struct scsi_host_template ixp4xx_sht = { 90static struct scsi_host_template ixp4xx_sht = {
91 .module = THIS_MODULE, 91 ATA_PIO_SHT(DRV_NAME),
92 .name = DRV_NAME,
93 .ioctl = ata_scsi_ioctl,
94 .queuecommand = ata_scsi_queuecmd,
95 .can_queue = ATA_DEF_QUEUE,
96 .this_id = ATA_SHT_THIS_ID,
97 .sg_tablesize = LIBATA_MAX_PRD,
98 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
99 .emulated = ATA_SHT_EMULATED,
100 .use_clustering = ATA_SHT_USE_CLUSTERING,
101 .proc_name = DRV_NAME,
102 .dma_boundary = ATA_DMA_BOUNDARY,
103 .slave_configure = ata_scsi_slave_config,
104 .slave_destroy = ata_scsi_slave_destroy,
105 .bios_param = ata_std_bios_param,
106}; 92};
107 93
108static struct ata_port_operations ixp4xx_port_ops = { 94static struct ata_port_operations ixp4xx_port_ops = {
diff --git a/drivers/ata/pata_jmicron.c b/drivers/ata/pata_jmicron.c
index 7d36fa85435a..69781af7b1bb 100644
--- a/drivers/ata/pata_jmicron.c
+++ b/drivers/ata/pata_jmicron.c
@@ -122,22 +122,7 @@ static void jmicron_error_handler(struct ata_port *ap)
122/* No PIO or DMA methods needed for this device */ 122/* No PIO or DMA methods needed for this device */
123 123
124static struct scsi_host_template jmicron_sht = { 124static struct scsi_host_template jmicron_sht = {
125 .module = THIS_MODULE, 125 ATA_BMDMA_SHT(DRV_NAME),
126 .name = DRV_NAME,
127 .ioctl = ata_scsi_ioctl,
128 .queuecommand = ata_scsi_queuecmd,
129 .can_queue = ATA_DEF_QUEUE,
130 .this_id = ATA_SHT_THIS_ID,
131 .sg_tablesize = LIBATA_MAX_PRD,
132 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
133 .emulated = ATA_SHT_EMULATED,
134 .use_clustering = ATA_SHT_USE_CLUSTERING,
135 .proc_name = DRV_NAME,
136 .dma_boundary = ATA_DMA_BOUNDARY,
137 .slave_configure = ata_scsi_slave_config,
138 .slave_destroy = ata_scsi_slave_destroy,
139 /* Use standard CHS mapping rules */
140 .bios_param = ata_std_bios_param,
141}; 126};
142 127
143static const struct ata_port_operations jmicron_ops = { 128static const struct ata_port_operations jmicron_ops = {
diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c
index 6ac02f7d5289..5329b954c5f2 100644
--- a/drivers/ata/pata_legacy.c
+++ b/drivers/ata/pata_legacy.c
@@ -208,21 +208,7 @@ static int legacy_set_mode(struct ata_link *link, struct ata_device **unused)
208} 208}
209 209
210static struct scsi_host_template legacy_sht = { 210static struct scsi_host_template legacy_sht = {
211 .module = THIS_MODULE, 211 ATA_PIO_SHT(DRV_NAME),
212 .name = DRV_NAME,
213 .ioctl = ata_scsi_ioctl,
214 .queuecommand = ata_scsi_queuecmd,
215 .can_queue = ATA_DEF_QUEUE,
216 .this_id = ATA_SHT_THIS_ID,
217 .sg_tablesize = LIBATA_MAX_PRD,
218 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
219 .emulated = ATA_SHT_EMULATED,
220 .use_clustering = ATA_SHT_USE_CLUSTERING,
221 .proc_name = DRV_NAME,
222 .dma_boundary = ATA_DMA_BOUNDARY,
223 .slave_configure = ata_scsi_slave_config,
224 .slave_destroy = ata_scsi_slave_destroy,
225 .bios_param = ata_std_bios_param,
226}; 212};
227 213
228/* 214/*
diff --git a/drivers/ata/pata_marvell.c b/drivers/ata/pata_marvell.c
index c4ee9b45301f..9de6e429d0d1 100644
--- a/drivers/ata/pata_marvell.c
+++ b/drivers/ata/pata_marvell.c
@@ -92,22 +92,7 @@ static void marvell_error_handler(struct ata_port *ap)
92/* No PIO or DMA methods needed for this device */ 92/* No PIO or DMA methods needed for this device */
93 93
94static struct scsi_host_template marvell_sht = { 94static struct scsi_host_template marvell_sht = {
95 .module = THIS_MODULE, 95 ATA_BMDMA_SHT(DRV_NAME),
96 .name = DRV_NAME,
97 .ioctl = ata_scsi_ioctl,
98 .queuecommand = ata_scsi_queuecmd,
99 .can_queue = ATA_DEF_QUEUE,
100 .this_id = ATA_SHT_THIS_ID,
101 .sg_tablesize = LIBATA_MAX_PRD,
102 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
103 .emulated = ATA_SHT_EMULATED,
104 .use_clustering = ATA_SHT_USE_CLUSTERING,
105 .proc_name = DRV_NAME,
106 .dma_boundary = ATA_DMA_BOUNDARY,
107 .slave_configure = ata_scsi_slave_config,
108 .slave_destroy = ata_scsi_slave_destroy,
109 /* Use standard CHS mapping rules */
110 .bios_param = ata_std_bios_param,
111}; 96};
112 97
113static const struct ata_port_operations marvell_ops = { 98static const struct ata_port_operations marvell_ops = {
diff --git a/drivers/ata/pata_mpc52xx.c b/drivers/ata/pata_mpc52xx.c
index fefe71dbed1a..4117b618a9d9 100644
--- a/drivers/ata/pata_mpc52xx.c
+++ b/drivers/ata/pata_mpc52xx.c
@@ -265,21 +265,7 @@ mpc52xx_ata_error_handler(struct ata_port *ap)
265 265
266 266
267static struct scsi_host_template mpc52xx_ata_sht = { 267static struct scsi_host_template mpc52xx_ata_sht = {
268 .module = THIS_MODULE, 268 ATA_PIO_SHT(DRV_NAME),
269 .name = DRV_NAME,
270 .ioctl = ata_scsi_ioctl,
271 .queuecommand = ata_scsi_queuecmd,
272 .can_queue = ATA_DEF_QUEUE,
273 .this_id = ATA_SHT_THIS_ID,
274 .sg_tablesize = LIBATA_MAX_PRD,
275 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
276 .emulated = ATA_SHT_EMULATED,
277 .use_clustering = ATA_SHT_USE_CLUSTERING,
278 .proc_name = DRV_NAME,
279 .dma_boundary = ATA_DMA_BOUNDARY,
280 .slave_configure = ata_scsi_slave_config,
281 .slave_destroy = ata_scsi_slave_destroy,
282 .bios_param = ata_std_bios_param,
283}; 269};
284 270
285static struct ata_port_operations mpc52xx_ata_port_ops = { 271static struct ata_port_operations mpc52xx_ata_port_ops = {
diff --git a/drivers/ata/pata_mpiix.c b/drivers/ata/pata_mpiix.c
index ced6372749b3..e8e6837110b4 100644
--- a/drivers/ata/pata_mpiix.c
+++ b/drivers/ata/pata_mpiix.c
@@ -151,21 +151,7 @@ static unsigned int mpiix_qc_issue_prot(struct ata_queued_cmd *qc)
151} 151}
152 152
153static struct scsi_host_template mpiix_sht = { 153static struct scsi_host_template mpiix_sht = {
154 .module = THIS_MODULE, 154 ATA_PIO_SHT(DRV_NAME),
155 .name = DRV_NAME,
156 .ioctl = ata_scsi_ioctl,
157 .queuecommand = ata_scsi_queuecmd,
158 .can_queue = ATA_DEF_QUEUE,
159 .this_id = ATA_SHT_THIS_ID,
160 .sg_tablesize = LIBATA_MAX_PRD,
161 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
162 .emulated = ATA_SHT_EMULATED,
163 .use_clustering = ATA_SHT_USE_CLUSTERING,
164 .proc_name = DRV_NAME,
165 .dma_boundary = ATA_DMA_BOUNDARY,
166 .slave_configure = ata_scsi_slave_config,
167 .slave_destroy = ata_scsi_slave_destroy,
168 .bios_param = ata_std_bios_param,
169}; 155};
170 156
171static struct ata_port_operations mpiix_port_ops = { 157static struct ata_port_operations mpiix_port_ops = {
diff --git a/drivers/ata/pata_netcell.c b/drivers/ata/pata_netcell.c
index 9fd1a84c01d3..11f200a2a156 100644
--- a/drivers/ata/pata_netcell.c
+++ b/drivers/ata/pata_netcell.c
@@ -21,22 +21,7 @@
21/* No PIO or DMA methods needed for this device */ 21/* No PIO or DMA methods needed for this device */
22 22
23static struct scsi_host_template netcell_sht = { 23static struct scsi_host_template netcell_sht = {
24 .module = THIS_MODULE, 24 ATA_BMDMA_SHT(DRV_NAME),
25 .name = DRV_NAME,
26 .ioctl = ata_scsi_ioctl,
27 .queuecommand = ata_scsi_queuecmd,
28 .can_queue = ATA_DEF_QUEUE,
29 .this_id = ATA_SHT_THIS_ID,
30 .sg_tablesize = LIBATA_MAX_PRD,
31 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
32 .emulated = ATA_SHT_EMULATED,
33 .use_clustering = ATA_SHT_USE_CLUSTERING,
34 .proc_name = DRV_NAME,
35 .dma_boundary = ATA_DMA_BOUNDARY,
36 .slave_configure = ata_scsi_slave_config,
37 .slave_destroy = ata_scsi_slave_destroy,
38 /* Use standard CHS mapping rules */
39 .bios_param = ata_std_bios_param,
40}; 25};
41 26
42static const struct ata_port_operations netcell_ops = { 27static const struct ata_port_operations netcell_ops = {
diff --git a/drivers/ata/pata_ninja32.c b/drivers/ata/pata_ninja32.c
index 15dd649f89ee..ce3b07cab8bc 100644
--- a/drivers/ata/pata_ninja32.c
+++ b/drivers/ata/pata_ninja32.c
@@ -79,21 +79,7 @@ static void ninja32_dev_select(struct ata_port *ap, unsigned int device)
79} 79}
80 80
81static struct scsi_host_template ninja32_sht = { 81static struct scsi_host_template ninja32_sht = {
82 .module = THIS_MODULE, 82 ATA_BMDMA_SHT(DRV_NAME),
83 .name = DRV_NAME,
84 .ioctl = ata_scsi_ioctl,
85 .queuecommand = ata_scsi_queuecmd,
86 .can_queue = ATA_DEF_QUEUE,
87 .this_id = ATA_SHT_THIS_ID,
88 .sg_tablesize = LIBATA_MAX_PRD,
89 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
90 .emulated = ATA_SHT_EMULATED,
91 .use_clustering = ATA_SHT_USE_CLUSTERING,
92 .proc_name = DRV_NAME,
93 .dma_boundary = ATA_DMA_BOUNDARY,
94 .slave_configure = ata_scsi_slave_config,
95 .slave_destroy = ata_scsi_slave_destroy,
96 .bios_param = ata_std_bios_param,
97}; 83};
98 84
99static struct ata_port_operations ninja32_port_ops = { 85static struct ata_port_operations ninja32_port_ops = {
diff --git a/drivers/ata/pata_ns87410.c b/drivers/ata/pata_ns87410.c
index d182bdf31ee1..d2f85f107d15 100644
--- a/drivers/ata/pata_ns87410.c
+++ b/drivers/ata/pata_ns87410.c
@@ -144,21 +144,7 @@ static unsigned int ns87410_qc_issue_prot(struct ata_queued_cmd *qc)
144} 144}
145 145
146static struct scsi_host_template ns87410_sht = { 146static struct scsi_host_template ns87410_sht = {
147 .module = THIS_MODULE, 147 ATA_PIO_SHT(DRV_NAME),
148 .name = DRV_NAME,
149 .ioctl = ata_scsi_ioctl,
150 .queuecommand = ata_scsi_queuecmd,
151 .can_queue = ATA_DEF_QUEUE,
152 .this_id = ATA_SHT_THIS_ID,
153 .sg_tablesize = LIBATA_MAX_PRD,
154 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
155 .emulated = ATA_SHT_EMULATED,
156 .use_clustering = ATA_SHT_USE_CLUSTERING,
157 .proc_name = DRV_NAME,
158 .dma_boundary = ATA_DMA_BOUNDARY,
159 .slave_configure = ata_scsi_slave_config,
160 .slave_destroy = ata_scsi_slave_destroy,
161 .bios_param = ata_std_bios_param,
162}; 148};
163 149
164static struct ata_port_operations ns87410_port_ops = { 150static struct ata_port_operations ns87410_port_ops = {
diff --git a/drivers/ata/pata_ns87415.c b/drivers/ata/pata_ns87415.c
index 93eb958cb0c9..78d634423cbf 100644
--- a/drivers/ata/pata_ns87415.c
+++ b/drivers/ata/pata_ns87415.c
@@ -366,21 +366,7 @@ static const struct ata_port_operations ns87415_pata_ops = {
366}; 366};
367 367
368static struct scsi_host_template ns87415_sht = { 368static struct scsi_host_template ns87415_sht = {
369 .module = THIS_MODULE, 369 ATA_BMDMA_SHT(DRV_NAME),
370 .name = DRV_NAME,
371 .ioctl = ata_scsi_ioctl,
372 .queuecommand = ata_scsi_queuecmd,
373 .can_queue = ATA_DEF_QUEUE,
374 .this_id = ATA_SHT_THIS_ID,
375 .sg_tablesize = LIBATA_MAX_PRD,
376 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
377 .emulated = ATA_SHT_EMULATED,
378 .use_clustering = ATA_SHT_USE_CLUSTERING,
379 .proc_name = DRV_NAME,
380 .dma_boundary = ATA_DMA_BOUNDARY,
381 .slave_configure = ata_scsi_slave_config,
382 .slave_destroy = ata_scsi_slave_destroy,
383 .bios_param = ata_std_bios_param,
384}; 370};
385 371
386 372
diff --git a/drivers/ata/pata_oldpiix.c b/drivers/ata/pata_oldpiix.c
index 44da09ace52c..45f9b3eb5b45 100644
--- a/drivers/ata/pata_oldpiix.c
+++ b/drivers/ata/pata_oldpiix.c
@@ -220,21 +220,7 @@ static unsigned int oldpiix_qc_issue_prot(struct ata_queued_cmd *qc)
220 220
221 221
222static struct scsi_host_template oldpiix_sht = { 222static struct scsi_host_template oldpiix_sht = {
223 .module = THIS_MODULE, 223 ATA_BMDMA_SHT(DRV_NAME),
224 .name = DRV_NAME,
225 .ioctl = ata_scsi_ioctl,
226 .queuecommand = ata_scsi_queuecmd,
227 .can_queue = ATA_DEF_QUEUE,
228 .this_id = ATA_SHT_THIS_ID,
229 .sg_tablesize = LIBATA_MAX_PRD,
230 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
231 .emulated = ATA_SHT_EMULATED,
232 .use_clustering = ATA_SHT_USE_CLUSTERING,
233 .proc_name = DRV_NAME,
234 .dma_boundary = ATA_DMA_BOUNDARY,
235 .slave_configure = ata_scsi_slave_config,
236 .slave_destroy = ata_scsi_slave_destroy,
237 .bios_param = ata_std_bios_param,
238}; 224};
239 225
240static const struct ata_port_operations oldpiix_pata_ops = { 226static const struct ata_port_operations oldpiix_pata_ops = {
diff --git a/drivers/ata/pata_opti.c b/drivers/ata/pata_opti.c
index 1e865f138d1c..1deacfa0be07 100644
--- a/drivers/ata/pata_opti.c
+++ b/drivers/ata/pata_opti.c
@@ -165,21 +165,7 @@ static void opti_set_piomode(struct ata_port *ap, struct ata_device *adev)
165} 165}
166 166
167static struct scsi_host_template opti_sht = { 167static struct scsi_host_template opti_sht = {
168 .module = THIS_MODULE, 168 ATA_PIO_SHT(DRV_NAME),
169 .name = DRV_NAME,
170 .ioctl = ata_scsi_ioctl,
171 .queuecommand = ata_scsi_queuecmd,
172 .can_queue = ATA_DEF_QUEUE,
173 .this_id = ATA_SHT_THIS_ID,
174 .sg_tablesize = LIBATA_MAX_PRD,
175 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
176 .emulated = ATA_SHT_EMULATED,
177 .use_clustering = ATA_SHT_USE_CLUSTERING,
178 .proc_name = DRV_NAME,
179 .dma_boundary = ATA_DMA_BOUNDARY,
180 .slave_configure = ata_scsi_slave_config,
181 .slave_destroy = ata_scsi_slave_destroy,
182 .bios_param = ata_std_bios_param,
183}; 169};
184 170
185static struct ata_port_operations opti_port_ops = { 171static struct ata_port_operations opti_port_ops = {
diff --git a/drivers/ata/pata_optidma.c b/drivers/ata/pata_optidma.c
index 3f9d03599f23..7495758a86fe 100644
--- a/drivers/ata/pata_optidma.c
+++ b/drivers/ata/pata_optidma.c
@@ -350,21 +350,7 @@ static int optidma_set_mode(struct ata_link *link, struct ata_device **r_failed)
350} 350}
351 351
352static struct scsi_host_template optidma_sht = { 352static struct scsi_host_template optidma_sht = {
353 .module = THIS_MODULE, 353 ATA_BMDMA_SHT(DRV_NAME),
354 .name = DRV_NAME,
355 .ioctl = ata_scsi_ioctl,
356 .queuecommand = ata_scsi_queuecmd,
357 .can_queue = ATA_DEF_QUEUE,
358 .this_id = ATA_SHT_THIS_ID,
359 .sg_tablesize = LIBATA_MAX_PRD,
360 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
361 .emulated = ATA_SHT_EMULATED,
362 .use_clustering = ATA_SHT_USE_CLUSTERING,
363 .proc_name = DRV_NAME,
364 .dma_boundary = ATA_DMA_BOUNDARY,
365 .slave_configure = ata_scsi_slave_config,
366 .slave_destroy = ata_scsi_slave_destroy,
367 .bios_param = ata_std_bios_param,
368}; 354};
369 355
370static struct ata_port_operations optidma_port_ops = { 356static struct ata_port_operations optidma_port_ops = {
diff --git a/drivers/ata/pata_pcmcia.c b/drivers/ata/pata_pcmcia.c
index 9881a9e004a4..c05b36c94d51 100644
--- a/drivers/ata/pata_pcmcia.c
+++ b/drivers/ata/pata_pcmcia.c
@@ -128,21 +128,7 @@ static unsigned int ata_data_xfer_8bit(struct ata_device *dev,
128 128
129 129
130static struct scsi_host_template pcmcia_sht = { 130static struct scsi_host_template pcmcia_sht = {
131 .module = THIS_MODULE, 131 ATA_PIO_SHT(DRV_NAME),
132 .name = DRV_NAME,
133 .ioctl = ata_scsi_ioctl,
134 .queuecommand = ata_scsi_queuecmd,
135 .can_queue = ATA_DEF_QUEUE,
136 .this_id = ATA_SHT_THIS_ID,
137 .sg_tablesize = LIBATA_MAX_PRD,
138 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
139 .emulated = ATA_SHT_EMULATED,
140 .use_clustering = ATA_SHT_USE_CLUSTERING,
141 .proc_name = DRV_NAME,
142 .dma_boundary = ATA_DMA_BOUNDARY,
143 .slave_configure = ata_scsi_slave_config,
144 .slave_destroy = ata_scsi_slave_destroy,
145 .bios_param = ata_std_bios_param,
146}; 132};
147 133
148static struct ata_port_operations pcmcia_port_ops = { 134static struct ata_port_operations pcmcia_port_ops = {
diff --git a/drivers/ata/pata_pdc2027x.c b/drivers/ata/pata_pdc2027x.c
index 511c89b9bae8..229d9acd934a 100644
--- a/drivers/ata/pata_pdc2027x.c
+++ b/drivers/ata/pata_pdc2027x.c
@@ -129,21 +129,7 @@ static struct pci_driver pdc2027x_pci_driver = {
129}; 129};
130 130
131static struct scsi_host_template pdc2027x_sht = { 131static struct scsi_host_template pdc2027x_sht = {
132 .module = THIS_MODULE, 132 ATA_BMDMA_SHT(DRV_NAME),
133 .name = DRV_NAME,
134 .ioctl = ata_scsi_ioctl,
135 .queuecommand = ata_scsi_queuecmd,
136 .can_queue = ATA_DEF_QUEUE,
137 .this_id = ATA_SHT_THIS_ID,
138 .sg_tablesize = LIBATA_MAX_PRD,
139 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
140 .emulated = ATA_SHT_EMULATED,
141 .use_clustering = ATA_SHT_USE_CLUSTERING,
142 .proc_name = DRV_NAME,
143 .dma_boundary = ATA_DMA_BOUNDARY,
144 .slave_configure = ata_scsi_slave_config,
145 .slave_destroy = ata_scsi_slave_destroy,
146 .bios_param = ata_std_bios_param,
147}; 133};
148 134
149static struct ata_port_operations pdc2027x_pata100_ops = { 135static struct ata_port_operations pdc2027x_pata100_ops = {
diff --git a/drivers/ata/pata_pdc202xx_old.c b/drivers/ata/pata_pdc202xx_old.c
index 3ed866723e0c..564ee0798ec1 100644
--- a/drivers/ata/pata_pdc202xx_old.c
+++ b/drivers/ata/pata_pdc202xx_old.c
@@ -262,21 +262,7 @@ static int pdc2026x_check_atapi_dma(struct ata_queued_cmd *qc)
262} 262}
263 263
264static struct scsi_host_template pdc202xx_sht = { 264static struct scsi_host_template pdc202xx_sht = {
265 .module = THIS_MODULE, 265 ATA_BMDMA_SHT(DRV_NAME),
266 .name = DRV_NAME,
267 .ioctl = ata_scsi_ioctl,
268 .queuecommand = ata_scsi_queuecmd,
269 .can_queue = ATA_DEF_QUEUE,
270 .this_id = ATA_SHT_THIS_ID,
271 .sg_tablesize = LIBATA_MAX_PRD,
272 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
273 .emulated = ATA_SHT_EMULATED,
274 .use_clustering = ATA_SHT_USE_CLUSTERING,
275 .proc_name = DRV_NAME,
276 .dma_boundary = ATA_DMA_BOUNDARY,
277 .slave_configure = ata_scsi_slave_config,
278 .slave_destroy = ata_scsi_slave_destroy,
279 .bios_param = ata_std_bios_param,
280}; 266};
281 267
282static struct ata_port_operations pdc2024x_port_ops = { 268static struct ata_port_operations pdc2024x_port_ops = {
diff --git a/drivers/ata/pata_platform.c b/drivers/ata/pata_platform.c
index 602f5562d6fb..cd2d03a4591a 100644
--- a/drivers/ata/pata_platform.c
+++ b/drivers/ata/pata_platform.c
@@ -47,21 +47,7 @@ static int pata_platform_set_mode(struct ata_link *link, struct ata_device **unu
47} 47}
48 48
49static struct scsi_host_template pata_platform_sht = { 49static struct scsi_host_template pata_platform_sht = {
50 .module = THIS_MODULE, 50 ATA_PIO_SHT(DRV_NAME),
51 .name = DRV_NAME,
52 .ioctl = ata_scsi_ioctl,
53 .queuecommand = ata_scsi_queuecmd,
54 .can_queue = ATA_DEF_QUEUE,
55 .this_id = ATA_SHT_THIS_ID,
56 .sg_tablesize = LIBATA_MAX_PRD,
57 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
58 .emulated = ATA_SHT_EMULATED,
59 .use_clustering = ATA_SHT_USE_CLUSTERING,
60 .proc_name = DRV_NAME,
61 .dma_boundary = ATA_DMA_BOUNDARY,
62 .slave_configure = ata_scsi_slave_config,
63 .slave_destroy = ata_scsi_slave_destroy,
64 .bios_param = ata_std_bios_param,
65}; 51};
66 52
67static struct ata_port_operations pata_platform_port_ops = { 53static struct ata_port_operations pata_platform_port_ops = {
diff --git a/drivers/ata/pata_qdi.c b/drivers/ata/pata_qdi.c
index 60238d5748a7..ccb8682300b8 100644
--- a/drivers/ata/pata_qdi.c
+++ b/drivers/ata/pata_qdi.c
@@ -154,21 +154,7 @@ static unsigned int qdi_data_xfer(struct ata_device *dev, unsigned char *buf,
154} 154}
155 155
156static struct scsi_host_template qdi_sht = { 156static struct scsi_host_template qdi_sht = {
157 .module = THIS_MODULE, 157 ATA_PIO_SHT(DRV_NAME),
158 .name = DRV_NAME,
159 .ioctl = ata_scsi_ioctl,
160 .queuecommand = ata_scsi_queuecmd,
161 .can_queue = ATA_DEF_QUEUE,
162 .this_id = ATA_SHT_THIS_ID,
163 .sg_tablesize = LIBATA_MAX_PRD,
164 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
165 .emulated = ATA_SHT_EMULATED,
166 .use_clustering = ATA_SHT_USE_CLUSTERING,
167 .proc_name = DRV_NAME,
168 .dma_boundary = ATA_DMA_BOUNDARY,
169 .slave_configure = ata_scsi_slave_config,
170 .slave_destroy = ata_scsi_slave_destroy,
171 .bios_param = ata_std_bios_param,
172}; 158};
173 159
174static struct ata_port_operations qdi6500_port_ops = { 160static struct ata_port_operations qdi6500_port_ops = {
diff --git a/drivers/ata/pata_radisys.c b/drivers/ata/pata_radisys.c
index 8109b08fc024..3981bf84d093 100644
--- a/drivers/ata/pata_radisys.c
+++ b/drivers/ata/pata_radisys.c
@@ -185,21 +185,7 @@ static unsigned int radisys_qc_issue_prot(struct ata_queued_cmd *qc)
185 185
186 186
187static struct scsi_host_template radisys_sht = { 187static struct scsi_host_template radisys_sht = {
188 .module = THIS_MODULE, 188 ATA_BMDMA_SHT(DRV_NAME),
189 .name = DRV_NAME,
190 .ioctl = ata_scsi_ioctl,
191 .queuecommand = ata_scsi_queuecmd,
192 .can_queue = ATA_DEF_QUEUE,
193 .this_id = ATA_SHT_THIS_ID,
194 .sg_tablesize = LIBATA_MAX_PRD,
195 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
196 .emulated = ATA_SHT_EMULATED,
197 .use_clustering = ATA_SHT_USE_CLUSTERING,
198 .proc_name = DRV_NAME,
199 .dma_boundary = ATA_DMA_BOUNDARY,
200 .slave_configure = ata_scsi_slave_config,
201 .slave_destroy = ata_scsi_slave_destroy,
202 .bios_param = ata_std_bios_param,
203}; 189};
204 190
205static const struct ata_port_operations radisys_pata_ops = { 191static const struct ata_port_operations radisys_pata_ops = {
diff --git a/drivers/ata/pata_rb500_cf.c b/drivers/ata/pata_rb500_cf.c
index 22cb9e1a02f5..4543c980342c 100644
--- a/drivers/ata/pata_rb500_cf.c
+++ b/drivers/ata/pata_rb500_cf.c
@@ -142,22 +142,7 @@ static struct ata_port_operations rb500_pata_port_ops = {
142/* ------------------------------------------------------------------------ */ 142/* ------------------------------------------------------------------------ */
143 143
144static struct scsi_host_template rb500_pata_sht = { 144static struct scsi_host_template rb500_pata_sht = {
145 .module = THIS_MODULE, 145 ATA_PIO_SHT(DRV_NAME),
146 .name = DRV_NAME,
147 .ioctl = ata_scsi_ioctl,
148 .queuecommand = ata_scsi_queuecmd,
149 .slave_configure = ata_scsi_slave_config,
150 .slave_destroy = ata_scsi_slave_destroy,
151 .bios_param = ata_std_bios_param,
152 .proc_name = DRV_NAME,
153
154 .can_queue = ATA_DEF_QUEUE,
155 .this_id = ATA_SHT_THIS_ID,
156 .sg_tablesize = LIBATA_MAX_PRD,
157 .dma_boundary = ATA_DMA_BOUNDARY,
158 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
159 .emulated = ATA_SHT_EMULATED,
160 .use_clustering = ATA_SHT_USE_CLUSTERING,
161}; 146};
162 147
163/* ------------------------------------------------------------------------ */ 148/* ------------------------------------------------------------------------ */
diff --git a/drivers/ata/pata_rz1000.c b/drivers/ata/pata_rz1000.c
index 75b252111106..80909a607d36 100644
--- a/drivers/ata/pata_rz1000.c
+++ b/drivers/ata/pata_rz1000.c
@@ -53,21 +53,7 @@ static int rz1000_set_mode(struct ata_link *link, struct ata_device **unused)
53 53
54 54
55static struct scsi_host_template rz1000_sht = { 55static struct scsi_host_template rz1000_sht = {
56 .module = THIS_MODULE, 56 ATA_PIO_SHT(DRV_NAME),
57 .name = DRV_NAME,
58 .ioctl = ata_scsi_ioctl,
59 .queuecommand = ata_scsi_queuecmd,
60 .can_queue = ATA_DEF_QUEUE,
61 .this_id = ATA_SHT_THIS_ID,
62 .sg_tablesize = LIBATA_MAX_PRD,
63 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
64 .emulated = ATA_SHT_EMULATED,
65 .use_clustering = ATA_SHT_USE_CLUSTERING,
66 .proc_name = DRV_NAME,
67 .dma_boundary = ATA_DMA_BOUNDARY,
68 .slave_configure = ata_scsi_slave_config,
69 .slave_destroy = ata_scsi_slave_destroy,
70 .bios_param = ata_std_bios_param,
71}; 57};
72 58
73static struct ata_port_operations rz1000_port_ops = { 59static struct ata_port_operations rz1000_port_ops = {
diff --git a/drivers/ata/pata_sc1200.c b/drivers/ata/pata_sc1200.c
index 725a8586cd6e..38ce6e12ee3d 100644
--- a/drivers/ata/pata_sc1200.c
+++ b/drivers/ata/pata_sc1200.c
@@ -179,21 +179,8 @@ static unsigned int sc1200_qc_issue_prot(struct ata_queued_cmd *qc)
179} 179}
180 180
181static struct scsi_host_template sc1200_sht = { 181static struct scsi_host_template sc1200_sht = {
182 .module = THIS_MODULE, 182 ATA_BMDMA_SHT(DRV_NAME),
183 .name = DRV_NAME, 183 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
184 .ioctl = ata_scsi_ioctl,
185 .queuecommand = ata_scsi_queuecmd,
186 .can_queue = ATA_DEF_QUEUE,
187 .this_id = ATA_SHT_THIS_ID,
188 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
189 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
190 .emulated = ATA_SHT_EMULATED,
191 .use_clustering = ATA_SHT_USE_CLUSTERING,
192 .proc_name = DRV_NAME,
193 .dma_boundary = ATA_DMA_BOUNDARY,
194 .slave_configure = ata_scsi_slave_config,
195 .slave_destroy = ata_scsi_slave_destroy,
196 .bios_param = ata_std_bios_param,
197}; 184};
198 185
199static struct ata_port_operations sc1200_port_ops = { 186static struct ata_port_operations sc1200_port_ops = {
diff --git a/drivers/ata/pata_scc.c b/drivers/ata/pata_scc.c
index 6c016deeaed8..1833e9ef522e 100644
--- a/drivers/ata/pata_scc.c
+++ b/drivers/ata/pata_scc.c
@@ -968,21 +968,7 @@ static void scc_port_stop (struct ata_port *ap)
968} 968}
969 969
970static struct scsi_host_template scc_sht = { 970static struct scsi_host_template scc_sht = {
971 .module = THIS_MODULE, 971 ATA_BMDMA_SHT(DRV_NAME),
972 .name = DRV_NAME,
973 .ioctl = ata_scsi_ioctl,
974 .queuecommand = ata_scsi_queuecmd,
975 .can_queue = ATA_DEF_QUEUE,
976 .this_id = ATA_SHT_THIS_ID,
977 .sg_tablesize = LIBATA_MAX_PRD,
978 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
979 .emulated = ATA_SHT_EMULATED,
980 .use_clustering = ATA_SHT_USE_CLUSTERING,
981 .proc_name = DRV_NAME,
982 .dma_boundary = ATA_DMA_BOUNDARY,
983 .slave_configure = ata_scsi_slave_config,
984 .slave_destroy = ata_scsi_slave_destroy,
985 .bios_param = ata_std_bios_param,
986}; 972};
987 973
988static const struct ata_port_operations scc_pata_ops = { 974static const struct ata_port_operations scc_pata_ops = {
diff --git a/drivers/ata/pata_serverworks.c b/drivers/ata/pata_serverworks.c
index 6702df37cfed..318a36988900 100644
--- a/drivers/ata/pata_serverworks.c
+++ b/drivers/ata/pata_serverworks.c
@@ -298,21 +298,7 @@ static void serverworks_set_dmamode(struct ata_port *ap, struct ata_device *adev
298} 298}
299 299
300static struct scsi_host_template serverworks_sht = { 300static struct scsi_host_template serverworks_sht = {
301 .module = THIS_MODULE, 301 ATA_BMDMA_SHT(DRV_NAME),
302 .name = DRV_NAME,
303 .ioctl = ata_scsi_ioctl,
304 .queuecommand = ata_scsi_queuecmd,
305 .can_queue = ATA_DEF_QUEUE,
306 .this_id = ATA_SHT_THIS_ID,
307 .sg_tablesize = LIBATA_MAX_PRD,
308 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
309 .emulated = ATA_SHT_EMULATED,
310 .use_clustering = ATA_SHT_USE_CLUSTERING,
311 .proc_name = DRV_NAME,
312 .dma_boundary = ATA_DMA_BOUNDARY,
313 .slave_configure = ata_scsi_slave_config,
314 .slave_destroy = ata_scsi_slave_destroy,
315 .bios_param = ata_std_bios_param,
316}; 302};
317 303
318static struct ata_port_operations serverworks_osb4_port_ops = { 304static struct ata_port_operations serverworks_osb4_port_ops = {
diff --git a/drivers/ata/pata_sil680.c b/drivers/ata/pata_sil680.c
index f4dc09718cab..7812815a34c3 100644
--- a/drivers/ata/pata_sil680.c
+++ b/drivers/ata/pata_sil680.c
@@ -192,21 +192,7 @@ static void sil680_set_dmamode(struct ata_port *ap, struct ata_device *adev)
192} 192}
193 193
194static struct scsi_host_template sil680_sht = { 194static struct scsi_host_template sil680_sht = {
195 .module = THIS_MODULE, 195 ATA_BMDMA_SHT(DRV_NAME),
196 .name = DRV_NAME,
197 .ioctl = ata_scsi_ioctl,
198 .queuecommand = ata_scsi_queuecmd,
199 .can_queue = ATA_DEF_QUEUE,
200 .this_id = ATA_SHT_THIS_ID,
201 .sg_tablesize = LIBATA_MAX_PRD,
202 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
203 .emulated = ATA_SHT_EMULATED,
204 .use_clustering = ATA_SHT_USE_CLUSTERING,
205 .proc_name = DRV_NAME,
206 .dma_boundary = ATA_DMA_BOUNDARY,
207 .slave_configure = ata_scsi_slave_config,
208 .slave_destroy = ata_scsi_slave_destroy,
209 .bios_param = ata_std_bios_param,
210}; 196};
211 197
212static struct ata_port_operations sil680_port_ops = { 198static struct ata_port_operations sil680_port_ops = {
diff --git a/drivers/ata/pata_sis.c b/drivers/ata/pata_sis.c
index abda90f51247..dcd8457a8377 100644
--- a/drivers/ata/pata_sis.c
+++ b/drivers/ata/pata_sis.c
@@ -514,21 +514,7 @@ static void sis_133_set_dmamode (struct ata_port *ap, struct ata_device *adev)
514} 514}
515 515
516static struct scsi_host_template sis_sht = { 516static struct scsi_host_template sis_sht = {
517 .module = THIS_MODULE, 517 ATA_BMDMA_SHT(DRV_NAME),
518 .name = DRV_NAME,
519 .ioctl = ata_scsi_ioctl,
520 .queuecommand = ata_scsi_queuecmd,
521 .can_queue = ATA_DEF_QUEUE,
522 .this_id = ATA_SHT_THIS_ID,
523 .sg_tablesize = LIBATA_MAX_PRD,
524 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
525 .emulated = ATA_SHT_EMULATED,
526 .use_clustering = ATA_SHT_USE_CLUSTERING,
527 .proc_name = DRV_NAME,
528 .dma_boundary = ATA_DMA_BOUNDARY,
529 .slave_configure = ata_scsi_slave_config,
530 .slave_destroy = ata_scsi_slave_destroy,
531 .bios_param = ata_std_bios_param,
532}; 518};
533 519
534static const struct ata_port_operations sis_133_ops = { 520static const struct ata_port_operations sis_133_ops = {
diff --git a/drivers/ata/pata_sl82c105.c b/drivers/ata/pata_sl82c105.c
index 6c37181341ea..ece366bced0c 100644
--- a/drivers/ata/pata_sl82c105.c
+++ b/drivers/ata/pata_sl82c105.c
@@ -235,21 +235,7 @@ static int sl82c105_qc_defer(struct ata_queued_cmd *qc)
235} 235}
236 236
237static struct scsi_host_template sl82c105_sht = { 237static struct scsi_host_template sl82c105_sht = {
238 .module = THIS_MODULE, 238 ATA_BMDMA_SHT(DRV_NAME),
239 .name = DRV_NAME,
240 .ioctl = ata_scsi_ioctl,
241 .queuecommand = ata_scsi_queuecmd,
242 .can_queue = ATA_DEF_QUEUE,
243 .this_id = ATA_SHT_THIS_ID,
244 .sg_tablesize = LIBATA_MAX_PRD,
245 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
246 .emulated = ATA_SHT_EMULATED,
247 .use_clustering = ATA_SHT_USE_CLUSTERING,
248 .proc_name = DRV_NAME,
249 .dma_boundary = ATA_DMA_BOUNDARY,
250 .slave_configure = ata_scsi_slave_config,
251 .slave_destroy = ata_scsi_slave_destroy,
252 .bios_param = ata_std_bios_param,
253}; 239};
254 240
255static struct ata_port_operations sl82c105_port_ops = { 241static struct ata_port_operations sl82c105_port_ops = {
diff --git a/drivers/ata/pata_triflex.c b/drivers/ata/pata_triflex.c
index 403eafcffe12..510569957d10 100644
--- a/drivers/ata/pata_triflex.c
+++ b/drivers/ata/pata_triflex.c
@@ -180,21 +180,7 @@ static void triflex_bmdma_stop(struct ata_queued_cmd *qc)
180} 180}
181 181
182static struct scsi_host_template triflex_sht = { 182static struct scsi_host_template triflex_sht = {
183 .module = THIS_MODULE, 183 ATA_BMDMA_SHT(DRV_NAME),
184 .name = DRV_NAME,
185 .ioctl = ata_scsi_ioctl,
186 .queuecommand = ata_scsi_queuecmd,
187 .can_queue = ATA_DEF_QUEUE,
188 .this_id = ATA_SHT_THIS_ID,
189 .sg_tablesize = LIBATA_MAX_PRD,
190 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
191 .emulated = ATA_SHT_EMULATED,
192 .use_clustering = ATA_SHT_USE_CLUSTERING,
193 .proc_name = DRV_NAME,
194 .dma_boundary = ATA_DMA_BOUNDARY,
195 .slave_configure = ata_scsi_slave_config,
196 .slave_destroy = ata_scsi_slave_destroy,
197 .bios_param = ata_std_bios_param,
198}; 184};
199 185
200static struct ata_port_operations triflex_port_ops = { 186static struct ata_port_operations triflex_port_ops = {
diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c
index 24430f70f00e..a7bc860e1310 100644
--- a/drivers/ata/pata_via.c
+++ b/drivers/ata/pata_via.c
@@ -335,21 +335,7 @@ static void via_set_dmamode(struct ata_port *ap, struct ata_device *adev)
335} 335}
336 336
337static struct scsi_host_template via_sht = { 337static struct scsi_host_template via_sht = {
338 .module = THIS_MODULE, 338 ATA_BMDMA_SHT(DRV_NAME),
339 .name = DRV_NAME,
340 .ioctl = ata_scsi_ioctl,
341 .queuecommand = ata_scsi_queuecmd,
342 .can_queue = ATA_DEF_QUEUE,
343 .this_id = ATA_SHT_THIS_ID,
344 .sg_tablesize = LIBATA_MAX_PRD,
345 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
346 .emulated = ATA_SHT_EMULATED,
347 .use_clustering = ATA_SHT_USE_CLUSTERING,
348 .proc_name = DRV_NAME,
349 .dma_boundary = ATA_DMA_BOUNDARY,
350 .slave_configure = ata_scsi_slave_config,
351 .slave_destroy = ata_scsi_slave_destroy,
352 .bios_param = ata_std_bios_param,
353}; 339};
354 340
355static struct ata_port_operations via_port_ops = { 341static struct ata_port_operations via_port_ops = {
diff --git a/drivers/ata/pata_winbond.c b/drivers/ata/pata_winbond.c
index 5318248782bb..9bafae9d5fe0 100644
--- a/drivers/ata/pata_winbond.c
+++ b/drivers/ata/pata_winbond.c
@@ -122,21 +122,7 @@ static unsigned int winbond_data_xfer(struct ata_device *dev,
122} 122}
123 123
124static struct scsi_host_template winbond_sht = { 124static struct scsi_host_template winbond_sht = {
125 .module = THIS_MODULE, 125 ATA_PIO_SHT(DRV_NAME),
126 .name = DRV_NAME,
127 .ioctl = ata_scsi_ioctl,
128 .queuecommand = ata_scsi_queuecmd,
129 .can_queue = ATA_DEF_QUEUE,
130 .this_id = ATA_SHT_THIS_ID,
131 .sg_tablesize = LIBATA_MAX_PRD,
132 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
133 .emulated = ATA_SHT_EMULATED,
134 .use_clustering = ATA_SHT_USE_CLUSTERING,
135 .proc_name = DRV_NAME,
136 .dma_boundary = ATA_DMA_BOUNDARY,
137 .slave_configure = ata_scsi_slave_config,
138 .slave_destroy = ata_scsi_slave_destroy,
139 .bios_param = ata_std_bios_param,
140}; 126};
141 127
142static struct ata_port_operations winbond_port_ops = { 128static struct ata_port_operations winbond_port_ops = {
diff --git a/drivers/ata/pdc_adma.c b/drivers/ata/pdc_adma.c
index bc2d12a2da30..fdf62de57cfc 100644
--- a/drivers/ata/pdc_adma.c
+++ b/drivers/ata/pdc_adma.c
@@ -143,21 +143,9 @@ static void adma_thaw(struct ata_port *ap);
143static void adma_error_handler(struct ata_port *ap); 143static void adma_error_handler(struct ata_port *ap);
144 144
145static struct scsi_host_template adma_ata_sht = { 145static struct scsi_host_template adma_ata_sht = {
146 .module = THIS_MODULE, 146 ATA_BASE_SHT(DRV_NAME),
147 .name = DRV_NAME,
148 .ioctl = ata_scsi_ioctl,
149 .queuecommand = ata_scsi_queuecmd,
150 .slave_configure = ata_scsi_slave_config,
151 .slave_destroy = ata_scsi_slave_destroy,
152 .bios_param = ata_std_bios_param,
153 .proc_name = DRV_NAME,
154 .can_queue = ATA_DEF_QUEUE,
155 .this_id = ATA_SHT_THIS_ID,
156 .sg_tablesize = LIBATA_MAX_PRD, 147 .sg_tablesize = LIBATA_MAX_PRD,
157 .dma_boundary = ADMA_DMA_BOUNDARY, 148 .dma_boundary = ADMA_DMA_BOUNDARY,
158 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
159 .use_clustering = ENABLE_CLUSTERING,
160 .emulated = ATA_SHT_EMULATED,
161}; 149};
162 150
163static const struct ata_port_operations adma_ata_ops = { 151static const struct ata_port_operations adma_ata_ops = {
diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c
index 8389ecac62cd..f50381b4ba06 100644
--- a/drivers/ata/sata_fsl.c
+++ b/drivers/ata/sata_fsl.c
@@ -1191,22 +1191,10 @@ static int sata_fsl_init_controller(struct ata_host *host)
1191 * scsi mid-layer and libata interface structures 1191 * scsi mid-layer and libata interface structures
1192 */ 1192 */
1193static struct scsi_host_template sata_fsl_sht = { 1193static struct scsi_host_template sata_fsl_sht = {
1194 .module = THIS_MODULE, 1194 ATA_NCQ_SHT("sata_fsl"),
1195 .name = "sata_fsl",
1196 .ioctl = ata_scsi_ioctl,
1197 .queuecommand = ata_scsi_queuecmd,
1198 .change_queue_depth = ata_scsi_change_queue_depth,
1199 .can_queue = SATA_FSL_QUEUE_DEPTH, 1195 .can_queue = SATA_FSL_QUEUE_DEPTH,
1200 .this_id = ATA_SHT_THIS_ID,
1201 .sg_tablesize = SATA_FSL_MAX_PRD_USABLE, 1196 .sg_tablesize = SATA_FSL_MAX_PRD_USABLE,
1202 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
1203 .emulated = ATA_SHT_EMULATED,
1204 .use_clustering = ATA_SHT_USE_CLUSTERING,
1205 .proc_name = "sata_fsl",
1206 .dma_boundary = ATA_DMA_BOUNDARY, 1197 .dma_boundary = ATA_DMA_BOUNDARY,
1207 .slave_configure = ata_scsi_slave_config,
1208 .slave_destroy = ata_scsi_slave_destroy,
1209 .bios_param = ata_std_bios_param,
1210}; 1198};
1211 1199
1212static const struct ata_port_operations sata_fsl_ops = { 1200static const struct ata_port_operations sata_fsl_ops = {
diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c
index 74f14369dc8d..bb853df865da 100644
--- a/drivers/ata/sata_inic162x.c
+++ b/drivers/ata/sata_inic162x.c
@@ -109,21 +109,7 @@ struct inic_port_priv {
109}; 109};
110 110
111static struct scsi_host_template inic_sht = { 111static struct scsi_host_template inic_sht = {
112 .module = THIS_MODULE, 112 ATA_BMDMA_SHT(DRV_NAME),
113 .name = DRV_NAME,
114 .ioctl = ata_scsi_ioctl,
115 .queuecommand = ata_scsi_queuecmd,
116 .can_queue = ATA_DEF_QUEUE,
117 .this_id = ATA_SHT_THIS_ID,
118 .sg_tablesize = LIBATA_MAX_PRD,
119 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
120 .emulated = ATA_SHT_EMULATED,
121 .use_clustering = ATA_SHT_USE_CLUSTERING,
122 .proc_name = DRV_NAME,
123 .dma_boundary = ATA_DMA_BOUNDARY,
124 .slave_configure = ata_scsi_slave_config,
125 .slave_destroy = ata_scsi_slave_destroy,
126 .bios_param = ata_std_bios_param,
127}; 113};
128 114
129static const int scr_map[] = { 115static const int scr_map[] = {
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index 4685bce745bb..52d41edadb72 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -514,40 +514,16 @@ static int __mv_stop_dma(struct ata_port *ap);
514 * PRDs for 64K boundaries in mv_fill_sg(). 514 * PRDs for 64K boundaries in mv_fill_sg().
515 */ 515 */
516static struct scsi_host_template mv5_sht = { 516static struct scsi_host_template mv5_sht = {
517 .module = THIS_MODULE, 517 ATA_BASE_SHT(DRV_NAME),
518 .name = DRV_NAME,
519 .ioctl = ata_scsi_ioctl,
520 .queuecommand = ata_scsi_queuecmd,
521 .can_queue = ATA_DEF_QUEUE,
522 .this_id = ATA_SHT_THIS_ID,
523 .sg_tablesize = MV_MAX_SG_CT / 2, 518 .sg_tablesize = MV_MAX_SG_CT / 2,
524 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
525 .emulated = ATA_SHT_EMULATED,
526 .use_clustering = 1,
527 .proc_name = DRV_NAME,
528 .dma_boundary = MV_DMA_BOUNDARY, 519 .dma_boundary = MV_DMA_BOUNDARY,
529 .slave_configure = ata_scsi_slave_config,
530 .slave_destroy = ata_scsi_slave_destroy,
531 .bios_param = ata_std_bios_param,
532}; 520};
533 521
534static struct scsi_host_template mv6_sht = { 522static struct scsi_host_template mv6_sht = {
535 .module = THIS_MODULE, 523 ATA_NCQ_SHT(DRV_NAME),
536 .name = DRV_NAME,
537 .ioctl = ata_scsi_ioctl,
538 .queuecommand = ata_scsi_queuecmd,
539 .change_queue_depth = ata_scsi_change_queue_depth,
540 .can_queue = MV_MAX_Q_DEPTH - 1, 524 .can_queue = MV_MAX_Q_DEPTH - 1,
541 .this_id = ATA_SHT_THIS_ID,
542 .sg_tablesize = MV_MAX_SG_CT / 2, 525 .sg_tablesize = MV_MAX_SG_CT / 2,
543 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
544 .emulated = ATA_SHT_EMULATED,
545 .use_clustering = 1,
546 .proc_name = DRV_NAME,
547 .dma_boundary = MV_DMA_BOUNDARY, 526 .dma_boundary = MV_DMA_BOUNDARY,
548 .slave_configure = ata_scsi_slave_config,
549 .slave_destroy = ata_scsi_slave_destroy,
550 .bios_param = ata_std_bios_param,
551}; 527};
552 528
553static const struct ata_port_operations mv5_ops = { 529static const struct ata_port_operations mv5_ops = {
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c
index bd5b6c35ee5d..9e2b4cef48f2 100644
--- a/drivers/ata/sata_nv.c
+++ b/drivers/ata/sata_nv.c
@@ -385,59 +385,23 @@ static struct pci_driver nv_pci_driver = {
385}; 385};
386 386
387static struct scsi_host_template nv_sht = { 387static struct scsi_host_template nv_sht = {
388 .module = THIS_MODULE, 388 ATA_BMDMA_SHT(DRV_NAME),
389 .name = DRV_NAME,
390 .ioctl = ata_scsi_ioctl,
391 .queuecommand = ata_scsi_queuecmd,
392 .can_queue = ATA_DEF_QUEUE,
393 .this_id = ATA_SHT_THIS_ID,
394 .sg_tablesize = LIBATA_MAX_PRD,
395 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
396 .emulated = ATA_SHT_EMULATED,
397 .use_clustering = ATA_SHT_USE_CLUSTERING,
398 .proc_name = DRV_NAME,
399 .dma_boundary = ATA_DMA_BOUNDARY,
400 .slave_configure = ata_scsi_slave_config,
401 .slave_destroy = ata_scsi_slave_destroy,
402 .bios_param = ata_std_bios_param,
403}; 389};
404 390
405static struct scsi_host_template nv_adma_sht = { 391static struct scsi_host_template nv_adma_sht = {
406 .module = THIS_MODULE, 392 ATA_NCQ_SHT(DRV_NAME),
407 .name = DRV_NAME,
408 .ioctl = ata_scsi_ioctl,
409 .queuecommand = ata_scsi_queuecmd,
410 .change_queue_depth = ata_scsi_change_queue_depth,
411 .can_queue = NV_ADMA_MAX_CPBS, 393 .can_queue = NV_ADMA_MAX_CPBS,
412 .this_id = ATA_SHT_THIS_ID,
413 .sg_tablesize = NV_ADMA_SGTBL_TOTAL_LEN, 394 .sg_tablesize = NV_ADMA_SGTBL_TOTAL_LEN,
414 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
415 .emulated = ATA_SHT_EMULATED,
416 .use_clustering = ATA_SHT_USE_CLUSTERING,
417 .proc_name = DRV_NAME,
418 .dma_boundary = NV_ADMA_DMA_BOUNDARY, 395 .dma_boundary = NV_ADMA_DMA_BOUNDARY,
419 .slave_configure = nv_adma_slave_config, 396 .slave_configure = nv_adma_slave_config,
420 .slave_destroy = ata_scsi_slave_destroy,
421 .bios_param = ata_std_bios_param,
422}; 397};
423 398
424static struct scsi_host_template nv_swncq_sht = { 399static struct scsi_host_template nv_swncq_sht = {
425 .module = THIS_MODULE, 400 ATA_NCQ_SHT(DRV_NAME),
426 .name = DRV_NAME,
427 .ioctl = ata_scsi_ioctl,
428 .queuecommand = ata_scsi_queuecmd,
429 .change_queue_depth = ata_scsi_change_queue_depth,
430 .can_queue = ATA_MAX_QUEUE, 401 .can_queue = ATA_MAX_QUEUE,
431 .this_id = ATA_SHT_THIS_ID,
432 .sg_tablesize = LIBATA_MAX_PRD, 402 .sg_tablesize = LIBATA_MAX_PRD,
433 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
434 .emulated = ATA_SHT_EMULATED,
435 .use_clustering = ATA_SHT_USE_CLUSTERING,
436 .proc_name = DRV_NAME,
437 .dma_boundary = ATA_DMA_BOUNDARY, 403 .dma_boundary = ATA_DMA_BOUNDARY,
438 .slave_configure = nv_swncq_slave_config, 404 .slave_configure = nv_swncq_slave_config,
439 .slave_destroy = ata_scsi_slave_destroy,
440 .bios_param = ata_std_bios_param,
441}; 405};
442 406
443static const struct ata_port_operations nv_generic_ops = { 407static const struct ata_port_operations nv_generic_ops = {
diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c
index 11c1afea2db2..37c32ab3b23b 100644
--- a/drivers/ata/sata_promise.c
+++ b/drivers/ata/sata_promise.c
@@ -155,21 +155,9 @@ static int pdc_pata_cable_detect(struct ata_port *ap);
155static int pdc_sata_cable_detect(struct ata_port *ap); 155static int pdc_sata_cable_detect(struct ata_port *ap);
156 156
157static struct scsi_host_template pdc_ata_sht = { 157static struct scsi_host_template pdc_ata_sht = {
158 .module = THIS_MODULE, 158 ATA_BASE_SHT(DRV_NAME),
159 .name = DRV_NAME,
160 .ioctl = ata_scsi_ioctl,
161 .queuecommand = ata_scsi_queuecmd,
162 .can_queue = ATA_DEF_QUEUE,
163 .this_id = ATA_SHT_THIS_ID,
164 .sg_tablesize = PDC_MAX_PRD, 159 .sg_tablesize = PDC_MAX_PRD,
165 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
166 .emulated = ATA_SHT_EMULATED,
167 .use_clustering = ATA_SHT_USE_CLUSTERING,
168 .proc_name = DRV_NAME,
169 .dma_boundary = ATA_DMA_BOUNDARY, 160 .dma_boundary = ATA_DMA_BOUNDARY,
170 .slave_configure = ata_scsi_slave_config,
171 .slave_destroy = ata_scsi_slave_destroy,
172 .bios_param = ata_std_bios_param,
173}; 161};
174 162
175static const struct ata_port_operations pdc_sata_ops = { 163static const struct ata_port_operations pdc_sata_ops = {
diff --git a/drivers/ata/sata_qstor.c b/drivers/ata/sata_qstor.c
index 3c8e97f251f9..2566d0926aab 100644
--- a/drivers/ata/sata_qstor.c
+++ b/drivers/ata/sata_qstor.c
@@ -126,21 +126,9 @@ static void qs_thaw(struct ata_port *ap);
126static void qs_error_handler(struct ata_port *ap); 126static void qs_error_handler(struct ata_port *ap);
127 127
128static struct scsi_host_template qs_ata_sht = { 128static struct scsi_host_template qs_ata_sht = {
129 .module = THIS_MODULE, 129 ATA_BASE_SHT(DRV_NAME),
130 .name = DRV_NAME,
131 .ioctl = ata_scsi_ioctl,
132 .queuecommand = ata_scsi_queuecmd,
133 .can_queue = ATA_DEF_QUEUE,
134 .this_id = ATA_SHT_THIS_ID,
135 .sg_tablesize = QS_MAX_PRD, 130 .sg_tablesize = QS_MAX_PRD,
136 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
137 .emulated = ATA_SHT_EMULATED,
138 .use_clustering = ENABLE_CLUSTERING,
139 .proc_name = DRV_NAME,
140 .dma_boundary = QS_DMA_BOUNDARY, 131 .dma_boundary = QS_DMA_BOUNDARY,
141 .slave_configure = ata_scsi_slave_config,
142 .slave_destroy = ata_scsi_slave_destroy,
143 .bios_param = ata_std_bios_param,
144}; 132};
145 133
146static const struct ata_port_operations qs_ata_ops = { 134static const struct ata_port_operations qs_ata_ops = {
diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c
index 53f0bae3be43..738c1a8ae3b6 100644
--- a/drivers/ata/sata_sil.c
+++ b/drivers/ata/sata_sil.c
@@ -167,21 +167,7 @@ static struct pci_driver sil_pci_driver = {
167}; 167};
168 168
169static struct scsi_host_template sil_sht = { 169static struct scsi_host_template sil_sht = {
170 .module = THIS_MODULE, 170 ATA_BMDMA_SHT(DRV_NAME),
171 .name = DRV_NAME,
172 .ioctl = ata_scsi_ioctl,
173 .queuecommand = ata_scsi_queuecmd,
174 .can_queue = ATA_DEF_QUEUE,
175 .this_id = ATA_SHT_THIS_ID,
176 .sg_tablesize = LIBATA_MAX_PRD,
177 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
178 .emulated = ATA_SHT_EMULATED,
179 .use_clustering = ATA_SHT_USE_CLUSTERING,
180 .proc_name = DRV_NAME,
181 .dma_boundary = ATA_DMA_BOUNDARY,
182 .slave_configure = ata_scsi_slave_config,
183 .slave_destroy = ata_scsi_slave_destroy,
184 .bios_param = ata_std_bios_param,
185}; 171};
186 172
187static const struct ata_port_operations sil_ops = { 173static const struct ata_port_operations sil_ops = {
diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c
index b85464d51f68..7fa63950d81a 100644
--- a/drivers/ata/sata_sil24.c
+++ b/drivers/ata/sata_sil24.c
@@ -384,22 +384,10 @@ static struct pci_driver sil24_pci_driver = {
384}; 384};
385 385
386static struct scsi_host_template sil24_sht = { 386static struct scsi_host_template sil24_sht = {
387 .module = THIS_MODULE, 387 ATA_NCQ_SHT(DRV_NAME),
388 .name = DRV_NAME,
389 .ioctl = ata_scsi_ioctl,
390 .queuecommand = ata_scsi_queuecmd,
391 .change_queue_depth = ata_scsi_change_queue_depth,
392 .can_queue = SIL24_MAX_CMDS, 388 .can_queue = SIL24_MAX_CMDS,
393 .this_id = ATA_SHT_THIS_ID,
394 .sg_tablesize = SIL24_MAX_SGE, 389 .sg_tablesize = SIL24_MAX_SGE,
395 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
396 .emulated = ATA_SHT_EMULATED,
397 .use_clustering = ATA_SHT_USE_CLUSTERING,
398 .proc_name = DRV_NAME,
399 .dma_boundary = ATA_DMA_BOUNDARY, 390 .dma_boundary = ATA_DMA_BOUNDARY,
400 .slave_configure = ata_scsi_slave_config,
401 .slave_destroy = ata_scsi_slave_destroy,
402 .bios_param = ata_std_bios_param,
403}; 391};
404 392
405static const struct ata_port_operations sil24_ops = { 393static const struct ata_port_operations sil24_ops = {
diff --git a/drivers/ata/sata_sis.c b/drivers/ata/sata_sis.c
index a8adef9786b7..4becb7fde5e7 100644
--- a/drivers/ata/sata_sis.c
+++ b/drivers/ata/sata_sis.c
@@ -86,21 +86,7 @@ static struct pci_driver sis_pci_driver = {
86}; 86};
87 87
88static struct scsi_host_template sis_sht = { 88static struct scsi_host_template sis_sht = {
89 .module = THIS_MODULE, 89 ATA_BMDMA_SHT(DRV_NAME),
90 .name = DRV_NAME,
91 .ioctl = ata_scsi_ioctl,
92 .queuecommand = ata_scsi_queuecmd,
93 .can_queue = ATA_DEF_QUEUE,
94 .this_id = ATA_SHT_THIS_ID,
95 .sg_tablesize = LIBATA_MAX_PRD,
96 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
97 .emulated = ATA_SHT_EMULATED,
98 .use_clustering = ATA_SHT_USE_CLUSTERING,
99 .proc_name = DRV_NAME,
100 .dma_boundary = ATA_DMA_BOUNDARY,
101 .slave_configure = ata_scsi_slave_config,
102 .slave_destroy = ata_scsi_slave_destroy,
103 .bios_param = ata_std_bios_param,
104}; 90};
105 91
106static const struct ata_port_operations sis_ops = { 92static const struct ata_port_operations sis_ops = {
diff --git a/drivers/ata/sata_svw.c b/drivers/ata/sata_svw.c
index aa690142fa90..c8768396e006 100644
--- a/drivers/ata/sata_svw.c
+++ b/drivers/ata/sata_svw.c
@@ -327,24 +327,10 @@ static int k2_sata_proc_info(struct Scsi_Host *shost, char *page, char **start,
327 327
328 328
329static struct scsi_host_template k2_sata_sht = { 329static struct scsi_host_template k2_sata_sht = {
330 .module = THIS_MODULE, 330 ATA_BMDMA_SHT(DRV_NAME),
331 .name = DRV_NAME,
332 .ioctl = ata_scsi_ioctl,
333 .queuecommand = ata_scsi_queuecmd,
334 .can_queue = ATA_DEF_QUEUE,
335 .this_id = ATA_SHT_THIS_ID,
336 .sg_tablesize = LIBATA_MAX_PRD,
337 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
338 .emulated = ATA_SHT_EMULATED,
339 .use_clustering = ATA_SHT_USE_CLUSTERING,
340 .proc_name = DRV_NAME,
341 .dma_boundary = ATA_DMA_BOUNDARY,
342 .slave_configure = ata_scsi_slave_config,
343 .slave_destroy = ata_scsi_slave_destroy,
344#ifdef CONFIG_PPC_OF 331#ifdef CONFIG_PPC_OF
345 .proc_info = k2_sata_proc_info, 332 .proc_info = k2_sata_proc_info,
346#endif 333#endif
347 .bios_param = ata_std_bios_param,
348}; 334};
349 335
350 336
diff --git a/drivers/ata/sata_sx4.c b/drivers/ata/sata_sx4.c
index e3d56bc6726d..1802f92180e4 100644
--- a/drivers/ata/sata_sx4.c
+++ b/drivers/ata/sata_sx4.c
@@ -236,21 +236,9 @@ static unsigned int pdc20621_qc_issue_prot(struct ata_queued_cmd *qc);
236 236
237 237
238static struct scsi_host_template pdc_sata_sht = { 238static struct scsi_host_template pdc_sata_sht = {
239 .module = THIS_MODULE, 239 ATA_BASE_SHT(DRV_NAME),
240 .name = DRV_NAME,
241 .ioctl = ata_scsi_ioctl,
242 .queuecommand = ata_scsi_queuecmd,
243 .can_queue = ATA_DEF_QUEUE,
244 .this_id = ATA_SHT_THIS_ID,
245 .sg_tablesize = LIBATA_MAX_PRD, 240 .sg_tablesize = LIBATA_MAX_PRD,
246 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
247 .emulated = ATA_SHT_EMULATED,
248 .use_clustering = ATA_SHT_USE_CLUSTERING,
249 .proc_name = DRV_NAME,
250 .dma_boundary = ATA_DMA_BOUNDARY, 241 .dma_boundary = ATA_DMA_BOUNDARY,
251 .slave_configure = ata_scsi_slave_config,
252 .slave_destroy = ata_scsi_slave_destroy,
253 .bios_param = ata_std_bios_param,
254}; 242};
255 243
256static const struct ata_port_operations pdc_20621_ops = { 244static const struct ata_port_operations pdc_20621_ops = {
diff --git a/drivers/ata/sata_uli.c b/drivers/ata/sata_uli.c
index f7fc0450478b..764d7064fa59 100644
--- a/drivers/ata/sata_uli.c
+++ b/drivers/ata/sata_uli.c
@@ -76,21 +76,7 @@ static struct pci_driver uli_pci_driver = {
76}; 76};
77 77
78static struct scsi_host_template uli_sht = { 78static struct scsi_host_template uli_sht = {
79 .module = THIS_MODULE, 79 ATA_BMDMA_SHT(DRV_NAME),
80 .name = DRV_NAME,
81 .ioctl = ata_scsi_ioctl,
82 .queuecommand = ata_scsi_queuecmd,
83 .can_queue = ATA_DEF_QUEUE,
84 .this_id = ATA_SHT_THIS_ID,
85 .sg_tablesize = LIBATA_MAX_PRD,
86 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
87 .emulated = ATA_SHT_EMULATED,
88 .use_clustering = ATA_SHT_USE_CLUSTERING,
89 .proc_name = DRV_NAME,
90 .dma_boundary = ATA_DMA_BOUNDARY,
91 .slave_configure = ata_scsi_slave_config,
92 .slave_destroy = ata_scsi_slave_destroy,
93 .bios_param = ata_std_bios_param,
94}; 80};
95 81
96static const struct ata_port_operations uli_ops = { 82static const struct ata_port_operations uli_ops = {
diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c
index f66ffd7da54e..9be877cb7f57 100644
--- a/drivers/ata/sata_via.c
+++ b/drivers/ata/sata_via.c
@@ -100,21 +100,7 @@ static struct pci_driver svia_pci_driver = {
100}; 100};
101 101
102static struct scsi_host_template svia_sht = { 102static struct scsi_host_template svia_sht = {
103 .module = THIS_MODULE, 103 ATA_BMDMA_SHT(DRV_NAME),
104 .name = DRV_NAME,
105 .ioctl = ata_scsi_ioctl,
106 .queuecommand = ata_scsi_queuecmd,
107 .can_queue = ATA_DEF_QUEUE,
108 .this_id = ATA_SHT_THIS_ID,
109 .sg_tablesize = LIBATA_MAX_PRD,
110 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
111 .emulated = ATA_SHT_EMULATED,
112 .use_clustering = ATA_SHT_USE_CLUSTERING,
113 .proc_name = DRV_NAME,
114 .dma_boundary = ATA_DMA_BOUNDARY,
115 .slave_configure = ata_scsi_slave_config,
116 .slave_destroy = ata_scsi_slave_destroy,
117 .bios_param = ata_std_bios_param,
118}; 104};
119 105
120static const struct ata_port_operations vt6420_sata_ops = { 106static const struct ata_port_operations vt6420_sata_ops = {
diff --git a/drivers/ata/sata_vsc.c b/drivers/ata/sata_vsc.c
index 099a2ba4cd4f..fd6855f0bf48 100644
--- a/drivers/ata/sata_vsc.c
+++ b/drivers/ata/sata_vsc.c
@@ -300,21 +300,7 @@ out:
300 300
301 301
302static struct scsi_host_template vsc_sata_sht = { 302static struct scsi_host_template vsc_sata_sht = {
303 .module = THIS_MODULE, 303 ATA_BMDMA_SHT(DRV_NAME),
304 .name = DRV_NAME,
305 .ioctl = ata_scsi_ioctl,
306 .queuecommand = ata_scsi_queuecmd,
307 .can_queue = ATA_DEF_QUEUE,
308 .this_id = ATA_SHT_THIS_ID,
309 .sg_tablesize = LIBATA_MAX_PRD,
310 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
311 .emulated = ATA_SHT_EMULATED,
312 .use_clustering = ATA_SHT_USE_CLUSTERING,
313 .proc_name = DRV_NAME,
314 .dma_boundary = ATA_DMA_BOUNDARY,
315 .slave_configure = ata_scsi_slave_config,
316 .slave_destroy = ata_scsi_slave_destroy,
317 .bios_param = ata_std_bios_param,
318}; 304};
319 305
320 306
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...) \