aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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...) \