aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
authorAkira Iguchi <akira2.iguchi@toshiba.co.jp>2007-01-26 02:27:58 -0500
committerJeff Garzik <jeff@garzik.org>2007-02-09 17:39:38 -0500
commit246ce3b675843e0369643cceb4faeb6cf6d19a30 (patch)
treeb904fe7561e5eacd260d3f175a8f0c3b257598f2 /drivers/ata
parent836250069fc0eeebe8b6aed772281535cc6e34f9 (diff)
libata: add another IRQ calls (libata drivers)
This patch is against each libata driver. Two IRQ calls are added in ata_port_operations. - irq_on() is used to enable interrupts. - irq_ack() is used to acknowledge a device interrupt. In most drivers, ata_irq_on() and ata_irq_ack() are used for irq_on and irq_ack respectively. In some drivers (ex: ahci, sata_sil24) which cannot use them as is, ata_dummy_irq_on() and ata_dummy_irq_ack() are used. Signed-off-by: Kou Ishizaki <kou.ishizaki@toshiba.co.jp> Signed-off-by: Akira Iguchi <akira2.iguchi@toshiba.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/ahci.c4
-rw-r--r--drivers/ata/ata_generic.c2
-rw-r--r--drivers/ata/ata_piix.c6
-rw-r--r--drivers/ata/pata_ali.c8
-rw-r--r--drivers/ata/pata_amd.c12
-rw-r--r--drivers/ata/pata_artop.c4
-rw-r--r--drivers/ata/pata_atiixp.c2
-rw-r--r--drivers/ata/pata_cmd64x.c6
-rw-r--r--drivers/ata/pata_cs5520.c2
-rw-r--r--drivers/ata/pata_cs5530.c2
-rw-r--r--drivers/ata/pata_cs5535.c2
-rw-r--r--drivers/ata/pata_cypress.c2
-rw-r--r--drivers/ata/pata_efar.c2
-rw-r--r--drivers/ata/pata_hpt366.c2
-rw-r--r--drivers/ata/pata_hpt37x.c8
-rw-r--r--drivers/ata/pata_hpt3x2n.c2
-rw-r--r--drivers/ata/pata_hpt3x3.c2
-rw-r--r--drivers/ata/pata_isapnp.c2
-rw-r--r--drivers/ata/pata_it8213.c2
-rw-r--r--drivers/ata/pata_it821x.c4
-rw-r--r--drivers/ata/pata_ixp4xx_cf.c2
-rw-r--r--drivers/ata/pata_jmicron.c2
-rw-r--r--drivers/ata/pata_legacy.c14
-rw-r--r--drivers/ata/pata_marvell.c2
-rw-r--r--drivers/ata/pata_mpc52xx.c2
-rw-r--r--drivers/ata/pata_mpiix.c2
-rw-r--r--drivers/ata/pata_netcell.c2
-rw-r--r--drivers/ata/pata_ns87410.c2
-rw-r--r--drivers/ata/pata_oldpiix.c2
-rw-r--r--drivers/ata/pata_opti.c2
-rw-r--r--drivers/ata/pata_optidma.c4
-rw-r--r--drivers/ata/pata_pcmcia.c2
-rw-r--r--drivers/ata/pata_pdc2027x.c4
-rw-r--r--drivers/ata/pata_pdc202xx_old.c4
-rw-r--r--drivers/ata/pata_platform.c2
-rw-r--r--drivers/ata/pata_qdi.c4
-rw-r--r--drivers/ata/pata_radisys.c2
-rw-r--r--drivers/ata/pata_rz1000.c2
-rw-r--r--drivers/ata/pata_sc1200.c2
-rw-r--r--drivers/ata/pata_serverworks.c4
-rw-r--r--drivers/ata/pata_sil680.c2
-rw-r--r--drivers/ata/pata_sis.c10
-rw-r--r--drivers/ata/pata_sl82c105.c2
-rw-r--r--drivers/ata/pata_triflex.c2
-rw-r--r--drivers/ata/pata_via.c4
-rw-r--r--drivers/ata/pata_winbond.c2
-rw-r--r--drivers/ata/pdc_adma.c2
-rw-r--r--drivers/ata/sata_inic162x.c2
-rw-r--r--drivers/ata/sata_mv.c6
-rw-r--r--drivers/ata/sata_nv.c8
-rw-r--r--drivers/ata/sata_promise.c6
-rw-r--r--drivers/ata/sata_qstor.c2
-rw-r--r--drivers/ata/sata_sil.c2
-rw-r--r--drivers/ata/sata_sil24.c2
-rw-r--r--drivers/ata/sata_sis.c2
-rw-r--r--drivers/ata/sata_svw.c2
-rw-r--r--drivers/ata/sata_sx4.c2
-rw-r--r--drivers/ata/sata_uli.c2
-rw-r--r--drivers/ata/sata_via.c6
-rw-r--r--drivers/ata/sata_vsc.c2
60 files changed, 206 insertions, 0 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 6d664849cc09..92cdb0c5171f 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -260,6 +260,8 @@ static const struct ata_port_operations ahci_ops = {
260 260
261 .irq_handler = ahci_interrupt, 261 .irq_handler = ahci_interrupt,
262 .irq_clear = ahci_irq_clear, 262 .irq_clear = ahci_irq_clear,
263 .irq_on = ata_dummy_irq_on,
264 .irq_ack = ata_dummy_irq_ack,
263 265
264 .scr_read = ahci_scr_read, 266 .scr_read = ahci_scr_read,
265 .scr_write = ahci_scr_write, 267 .scr_write = ahci_scr_write,
@@ -291,6 +293,8 @@ static const struct ata_port_operations ahci_vt8251_ops = {
291 293
292 .irq_handler = ahci_interrupt, 294 .irq_handler = ahci_interrupt,
293 .irq_clear = ahci_irq_clear, 295 .irq_clear = ahci_irq_clear,
296 .irq_on = ata_dummy_irq_on,
297 .irq_ack = ata_dummy_irq_ack,
294 298
295 .scr_read = ahci_scr_read, 299 .scr_read = ahci_scr_read,
296 .scr_write = ahci_scr_write, 300 .scr_write = ahci_scr_write,
diff --git a/drivers/ata/ata_generic.c b/drivers/ata/ata_generic.c
index c79887f31841..be66ea08da55 100644
--- a/drivers/ata/ata_generic.c
+++ b/drivers/ata/ata_generic.c
@@ -150,6 +150,8 @@ static struct ata_port_operations generic_port_ops = {
150 150
151 .irq_handler = ata_interrupt, 151 .irq_handler = ata_interrupt,
152 .irq_clear = ata_bmdma_irq_clear, 152 .irq_clear = ata_bmdma_irq_clear,
153 .irq_on = ata_irq_on,
154 .irq_ack = ata_irq_ack,
153 155
154 .port_start = ata_port_start, 156 .port_start = ata_port_start,
155}; 157};
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index 37fe6c2b8ca2..c528d42ee106 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -308,6 +308,8 @@ static const struct ata_port_operations piix_pata_ops = {
308 308
309 .irq_handler = ata_interrupt, 309 .irq_handler = ata_interrupt,
310 .irq_clear = ata_bmdma_irq_clear, 310 .irq_clear = ata_bmdma_irq_clear,
311 .irq_on = ata_irq_on,
312 .irq_ack = ata_irq_ack,
311 313
312 .port_start = ata_port_start, 314 .port_start = ata_port_start,
313}; 315};
@@ -339,6 +341,8 @@ static const struct ata_port_operations ich_pata_ops = {
339 341
340 .irq_handler = ata_interrupt, 342 .irq_handler = ata_interrupt,
341 .irq_clear = ata_bmdma_irq_clear, 343 .irq_clear = ata_bmdma_irq_clear,
344 .irq_on = ata_irq_on,
345 .irq_ack = ata_irq_ack,
342 346
343 .port_start = ata_port_start, 347 .port_start = ata_port_start,
344}; 348};
@@ -367,6 +371,8 @@ static const struct ata_port_operations piix_sata_ops = {
367 371
368 .irq_handler = ata_interrupt, 372 .irq_handler = ata_interrupt,
369 .irq_clear = ata_bmdma_irq_clear, 373 .irq_clear = ata_bmdma_irq_clear,
374 .irq_on = ata_irq_on,
375 .irq_ack = ata_irq_ack,
370 376
371 .port_start = ata_port_start, 377 .port_start = ata_port_start,
372}; 378};
diff --git a/drivers/ata/pata_ali.c b/drivers/ata/pata_ali.c
index dffa1f539fc9..ab44d18850f6 100644
--- a/drivers/ata/pata_ali.c
+++ b/drivers/ata/pata_ali.c
@@ -374,6 +374,8 @@ static struct ata_port_operations ali_early_port_ops = {
374 374
375 .irq_handler = ata_interrupt, 375 .irq_handler = ata_interrupt,
376 .irq_clear = ata_bmdma_irq_clear, 376 .irq_clear = ata_bmdma_irq_clear,
377 .irq_on = ata_irq_on,
378 .irq_ack = ata_irq_ack,
377 379
378 .port_start = ata_port_start, 380 .port_start = ata_port_start,
379}; 381};
@@ -413,6 +415,8 @@ static struct ata_port_operations ali_20_port_ops = {
413 415
414 .irq_handler = ata_interrupt, 416 .irq_handler = ata_interrupt,
415 .irq_clear = ata_bmdma_irq_clear, 417 .irq_clear = ata_bmdma_irq_clear,
418 .irq_on = ata_irq_on,
419 .irq_ack = ata_irq_ack,
416 420
417 .port_start = ata_port_start, 421 .port_start = ata_port_start,
418}; 422};
@@ -449,6 +453,8 @@ static struct ata_port_operations ali_c2_port_ops = {
449 453
450 .irq_handler = ata_interrupt, 454 .irq_handler = ata_interrupt,
451 .irq_clear = ata_bmdma_irq_clear, 455 .irq_clear = ata_bmdma_irq_clear,
456 .irq_on = ata_irq_on,
457 .irq_ack = ata_irq_ack,
452 458
453 .port_start = ata_port_start, 459 .port_start = ata_port_start,
454}; 460};
@@ -484,6 +490,8 @@ static struct ata_port_operations ali_c5_port_ops = {
484 490
485 .irq_handler = ata_interrupt, 491 .irq_handler = ata_interrupt,
486 .irq_clear = ata_bmdma_irq_clear, 492 .irq_clear = ata_bmdma_irq_clear,
493 .irq_on = ata_irq_on,
494 .irq_ack = ata_irq_ack,
487 495
488 .port_start = ata_port_start, 496 .port_start = ata_port_start,
489}; 497};
diff --git a/drivers/ata/pata_amd.c b/drivers/ata/pata_amd.c
index ed0e4f6fc715..619e44b04032 100644
--- a/drivers/ata/pata_amd.c
+++ b/drivers/ata/pata_amd.c
@@ -366,6 +366,8 @@ static struct ata_port_operations amd33_port_ops = {
366 366
367 .irq_handler = ata_interrupt, 367 .irq_handler = ata_interrupt,
368 .irq_clear = ata_bmdma_irq_clear, 368 .irq_clear = ata_bmdma_irq_clear,
369 .irq_on = ata_irq_on,
370 .irq_ack = ata_irq_ack,
369 371
370 .port_start = ata_port_start, 372 .port_start = ata_port_start,
371}; 373};
@@ -398,6 +400,8 @@ static struct ata_port_operations amd66_port_ops = {
398 400
399 .irq_handler = ata_interrupt, 401 .irq_handler = ata_interrupt,
400 .irq_clear = ata_bmdma_irq_clear, 402 .irq_clear = ata_bmdma_irq_clear,
403 .irq_on = ata_irq_on,
404 .irq_ack = ata_irq_ack,
401 405
402 .port_start = ata_port_start, 406 .port_start = ata_port_start,
403}; 407};
@@ -430,6 +434,8 @@ static struct ata_port_operations amd100_port_ops = {
430 434
431 .irq_handler = ata_interrupt, 435 .irq_handler = ata_interrupt,
432 .irq_clear = ata_bmdma_irq_clear, 436 .irq_clear = ata_bmdma_irq_clear,
437 .irq_on = ata_irq_on,
438 .irq_ack = ata_irq_ack,
433 439
434 .port_start = ata_port_start, 440 .port_start = ata_port_start,
435}; 441};
@@ -462,6 +468,8 @@ static struct ata_port_operations amd133_port_ops = {
462 468
463 .irq_handler = ata_interrupt, 469 .irq_handler = ata_interrupt,
464 .irq_clear = ata_bmdma_irq_clear, 470 .irq_clear = ata_bmdma_irq_clear,
471 .irq_on = ata_irq_on,
472 .irq_ack = ata_irq_ack,
465 473
466 .port_start = ata_port_start, 474 .port_start = ata_port_start,
467}; 475};
@@ -494,6 +502,8 @@ static struct ata_port_operations nv100_port_ops = {
494 502
495 .irq_handler = ata_interrupt, 503 .irq_handler = ata_interrupt,
496 .irq_clear = ata_bmdma_irq_clear, 504 .irq_clear = ata_bmdma_irq_clear,
505 .irq_on = ata_irq_on,
506 .irq_ack = ata_irq_ack,
497 507
498 .port_start = ata_port_start, 508 .port_start = ata_port_start,
499}; 509};
@@ -526,6 +536,8 @@ static struct ata_port_operations nv133_port_ops = {
526 536
527 .irq_handler = ata_interrupt, 537 .irq_handler = ata_interrupt,
528 .irq_clear = ata_bmdma_irq_clear, 538 .irq_clear = ata_bmdma_irq_clear,
539 .irq_on = ata_irq_on,
540 .irq_ack = ata_irq_ack,
529 541
530 .port_start = ata_port_start, 542 .port_start = ata_port_start,
531}; 543};
diff --git a/drivers/ata/pata_artop.c b/drivers/ata/pata_artop.c
index ace5a98dd59d..21c30282717c 100644
--- a/drivers/ata/pata_artop.c
+++ b/drivers/ata/pata_artop.c
@@ -345,6 +345,8 @@ static const struct ata_port_operations artop6210_ops = {
345 345
346 .irq_handler = ata_interrupt, 346 .irq_handler = ata_interrupt,
347 .irq_clear = ata_bmdma_irq_clear, 347 .irq_clear = ata_bmdma_irq_clear,
348 .irq_on = ata_irq_on,
349 .irq_ack = ata_irq_ack,
348 350
349 .port_start = ata_port_start, 351 .port_start = ata_port_start,
350}; 352};
@@ -375,6 +377,8 @@ static const struct ata_port_operations artop6260_ops = {
375 377
376 .irq_handler = ata_interrupt, 378 .irq_handler = ata_interrupt,
377 .irq_clear = ata_bmdma_irq_clear, 379 .irq_clear = ata_bmdma_irq_clear,
380 .irq_on = ata_irq_on,
381 .irq_ack = ata_irq_ack,
378 382
379 .port_start = ata_port_start, 383 .port_start = ata_port_start,
380}; 384};
diff --git a/drivers/ata/pata_atiixp.c b/drivers/ata/pata_atiixp.c
index f89ef7b15999..c3eb40c91c80 100644
--- a/drivers/ata/pata_atiixp.c
+++ b/drivers/ata/pata_atiixp.c
@@ -256,6 +256,8 @@ static struct ata_port_operations atiixp_port_ops = {
256 256
257 .irq_handler = ata_interrupt, 257 .irq_handler = ata_interrupt,
258 .irq_clear = ata_bmdma_irq_clear, 258 .irq_clear = ata_bmdma_irq_clear,
259 .irq_on = ata_irq_on,
260 .irq_ack = ata_irq_ack,
259 261
260 .port_start = ata_port_start, 262 .port_start = ata_port_start,
261}; 263};
diff --git a/drivers/ata/pata_cmd64x.c b/drivers/ata/pata_cmd64x.c
index 3a75978c1aee..da098282b5f6 100644
--- a/drivers/ata/pata_cmd64x.c
+++ b/drivers/ata/pata_cmd64x.c
@@ -317,6 +317,8 @@ static struct ata_port_operations cmd64x_port_ops = {
317 317
318 .irq_handler = ata_interrupt, 318 .irq_handler = ata_interrupt,
319 .irq_clear = ata_bmdma_irq_clear, 319 .irq_clear = ata_bmdma_irq_clear,
320 .irq_on = ata_irq_on,
321 .irq_ack = ata_irq_ack,
320 322
321 .port_start = ata_port_start, 323 .port_start = ata_port_start,
322}; 324};
@@ -349,6 +351,8 @@ static struct ata_port_operations cmd646r1_port_ops = {
349 351
350 .irq_handler = ata_interrupt, 352 .irq_handler = ata_interrupt,
351 .irq_clear = ata_bmdma_irq_clear, 353 .irq_clear = ata_bmdma_irq_clear,
354 .irq_on = ata_irq_on,
355 .irq_ack = ata_irq_ack,
352 356
353 .port_start = ata_port_start, 357 .port_start = ata_port_start,
354}; 358};
@@ -381,6 +385,8 @@ static struct ata_port_operations cmd648_port_ops = {
381 385
382 .irq_handler = ata_interrupt, 386 .irq_handler = ata_interrupt,
383 .irq_clear = ata_bmdma_irq_clear, 387 .irq_clear = ata_bmdma_irq_clear,
388 .irq_on = ata_irq_on,
389 .irq_ack = ata_irq_ack,
384 390
385 .port_start = ata_port_start, 391 .port_start = ata_port_start,
386}; 392};
diff --git a/drivers/ata/pata_cs5520.c b/drivers/ata/pata_cs5520.c
index 801a00efa3ee..1ce8fcfd7826 100644
--- a/drivers/ata/pata_cs5520.c
+++ b/drivers/ata/pata_cs5520.c
@@ -197,6 +197,8 @@ static struct ata_port_operations cs5520_port_ops = {
197 197
198 .irq_handler = ata_interrupt, 198 .irq_handler = ata_interrupt,
199 .irq_clear = ata_bmdma_irq_clear, 199 .irq_clear = ata_bmdma_irq_clear,
200 .irq_on = ata_irq_on,
201 .irq_ack = ata_irq_ack,
200 202
201 .port_start = ata_port_start, 203 .port_start = ata_port_start,
202}; 204};
diff --git a/drivers/ata/pata_cs5530.c b/drivers/ata/pata_cs5530.c
index b9fd5388b476..3d7b7d87ec6f 100644
--- a/drivers/ata/pata_cs5530.c
+++ b/drivers/ata/pata_cs5530.c
@@ -221,6 +221,8 @@ static struct ata_port_operations cs5530_port_ops = {
221 221
222 .irq_handler = ata_interrupt, 222 .irq_handler = ata_interrupt,
223 .irq_clear = ata_bmdma_irq_clear, 223 .irq_clear = ata_bmdma_irq_clear,
224 .irq_on = ata_irq_on,
225 .irq_ack = ata_irq_ack,
224 226
225 .port_start = ata_port_start, 227 .port_start = ata_port_start,
226}; 228};
diff --git a/drivers/ata/pata_cs5535.c b/drivers/ata/pata_cs5535.c
index 500f863cb987..17bc693cc514 100644
--- a/drivers/ata/pata_cs5535.c
+++ b/drivers/ata/pata_cs5535.c
@@ -218,6 +218,8 @@ static struct ata_port_operations cs5535_port_ops = {
218 218
219 .irq_handler = ata_interrupt, 219 .irq_handler = ata_interrupt,
220 .irq_clear = ata_bmdma_irq_clear, 220 .irq_clear = ata_bmdma_irq_clear,
221 .irq_on = ata_irq_on,
222 .irq_ack = ata_irq_ack,
221 223
222 .port_start = ata_port_start, 224 .port_start = ata_port_start,
223}; 225};
diff --git a/drivers/ata/pata_cypress.c b/drivers/ata/pata_cypress.c
index 4ca103d668ed..63f48f08763d 100644
--- a/drivers/ata/pata_cypress.c
+++ b/drivers/ata/pata_cypress.c
@@ -169,6 +169,8 @@ static struct ata_port_operations cy82c693_port_ops = {
169 169
170 .irq_handler = ata_interrupt, 170 .irq_handler = ata_interrupt,
171 .irq_clear = ata_bmdma_irq_clear, 171 .irq_clear = ata_bmdma_irq_clear,
172 .irq_on = ata_irq_on,
173 .irq_ack = ata_irq_ack,
172 174
173 .port_start = ata_port_start, 175 .port_start = ata_port_start,
174}; 176};
diff --git a/drivers/ata/pata_efar.c b/drivers/ata/pata_efar.c
index a112dac98dd9..c19b6a8a7dc6 100644
--- a/drivers/ata/pata_efar.c
+++ b/drivers/ata/pata_efar.c
@@ -265,6 +265,8 @@ static const struct ata_port_operations efar_ops = {
265 265
266 .irq_handler = ata_interrupt, 266 .irq_handler = ata_interrupt,
267 .irq_clear = ata_bmdma_irq_clear, 267 .irq_clear = ata_bmdma_irq_clear,
268 .irq_on = ata_irq_on,
269 .irq_ack = ata_irq_ack,
268 270
269 .port_start = ata_port_start, 271 .port_start = ata_port_start,
270}; 272};
diff --git a/drivers/ata/pata_hpt366.c b/drivers/ata/pata_hpt366.c
index 819d7a392781..27d724b5eea2 100644
--- a/drivers/ata/pata_hpt366.c
+++ b/drivers/ata/pata_hpt366.c
@@ -365,6 +365,8 @@ static struct ata_port_operations hpt366_port_ops = {
365 365
366 .irq_handler = ata_interrupt, 366 .irq_handler = ata_interrupt,
367 .irq_clear = ata_bmdma_irq_clear, 367 .irq_clear = ata_bmdma_irq_clear,
368 .irq_on = ata_irq_on,
369 .irq_ack = ata_irq_ack,
368 370
369 .port_start = ata_port_start, 371 .port_start = ata_port_start,
370}; 372};
diff --git a/drivers/ata/pata_hpt37x.c b/drivers/ata/pata_hpt37x.c
index c6d8774df0de..4ffc392052c0 100644
--- a/drivers/ata/pata_hpt37x.c
+++ b/drivers/ata/pata_hpt37x.c
@@ -800,6 +800,8 @@ static struct ata_port_operations hpt370_port_ops = {
800 800
801 .irq_handler = ata_interrupt, 801 .irq_handler = ata_interrupt,
802 .irq_clear = ata_bmdma_irq_clear, 802 .irq_clear = ata_bmdma_irq_clear,
803 .irq_on = ata_irq_on,
804 .irq_ack = ata_irq_ack,
803 805
804 .port_start = ata_port_start, 806 .port_start = ata_port_start,
805}; 807};
@@ -837,6 +839,8 @@ static struct ata_port_operations hpt370a_port_ops = {
837 839
838 .irq_handler = ata_interrupt, 840 .irq_handler = ata_interrupt,
839 .irq_clear = ata_bmdma_irq_clear, 841 .irq_clear = ata_bmdma_irq_clear,
842 .irq_on = ata_irq_on,
843 .irq_ack = ata_irq_ack,
840 844
841 .port_start = ata_port_start, 845 .port_start = ata_port_start,
842}; 846};
@@ -875,6 +879,8 @@ static struct ata_port_operations hpt372_port_ops = {
875 879
876 .irq_handler = ata_interrupt, 880 .irq_handler = ata_interrupt,
877 .irq_clear = ata_bmdma_irq_clear, 881 .irq_clear = ata_bmdma_irq_clear,
882 .irq_on = ata_irq_on,
883 .irq_ack = ata_irq_ack,
878 884
879 .port_start = ata_port_start, 885 .port_start = ata_port_start,
880}; 886};
@@ -913,6 +919,8 @@ static struct ata_port_operations hpt374_port_ops = {
913 919
914 .irq_handler = ata_interrupt, 920 .irq_handler = ata_interrupt,
915 .irq_clear = ata_bmdma_irq_clear, 921 .irq_clear = ata_bmdma_irq_clear,
922 .irq_on = ata_irq_on,
923 .irq_ack = ata_irq_ack,
916 924
917 .port_start = ata_port_start, 925 .port_start = ata_port_start,
918}; 926};
diff --git a/drivers/ata/pata_hpt3x2n.c b/drivers/ata/pata_hpt3x2n.c
index b56dc4a7185b..65f2e180e7fa 100644
--- a/drivers/ata/pata_hpt3x2n.c
+++ b/drivers/ata/pata_hpt3x2n.c
@@ -377,6 +377,8 @@ static struct ata_port_operations hpt3x2n_port_ops = {
377 377
378 .irq_handler = ata_interrupt, 378 .irq_handler = ata_interrupt,
379 .irq_clear = ata_bmdma_irq_clear, 379 .irq_clear = ata_bmdma_irq_clear,
380 .irq_on = ata_irq_on,
381 .irq_ack = ata_irq_ack,
380 382
381 .port_start = ata_port_start, 383 .port_start = ata_port_start,
382}; 384};
diff --git a/drivers/ata/pata_hpt3x3.c b/drivers/ata/pata_hpt3x3.c
index 46fc417856cc..483ce7c12c9a 100644
--- a/drivers/ata/pata_hpt3x3.c
+++ b/drivers/ata/pata_hpt3x3.c
@@ -152,6 +152,8 @@ static struct ata_port_operations hpt3x3_port_ops = {
152 152
153 .irq_handler = ata_interrupt, 153 .irq_handler = ata_interrupt,
154 .irq_clear = ata_bmdma_irq_clear, 154 .irq_clear = ata_bmdma_irq_clear,
155 .irq_on = ata_irq_on,
156 .irq_ack = ata_irq_ack,
155 157
156 .port_start = ata_port_start, 158 .port_start = ata_port_start,
157}; 159};
diff --git a/drivers/ata/pata_isapnp.c b/drivers/ata/pata_isapnp.c
index 4d9ab268cf28..1bf5ec18b2e3 100644
--- a/drivers/ata/pata_isapnp.c
+++ b/drivers/ata/pata_isapnp.c
@@ -57,6 +57,8 @@ static struct ata_port_operations isapnp_port_ops = {
57 57
58 .irq_handler = ata_interrupt, 58 .irq_handler = ata_interrupt,
59 .irq_clear = ata_bmdma_irq_clear, 59 .irq_clear = ata_bmdma_irq_clear,
60 .irq_on = ata_irq_on,
61 .irq_ack = ata_irq_ack,
60 62
61 .port_start = ata_port_start, 63 .port_start = ata_port_start,
62}; 64};
diff --git a/drivers/ata/pata_it8213.c b/drivers/ata/pata_it8213.c
index ec128316903d..7eac869dfcd3 100644
--- a/drivers/ata/pata_it8213.c
+++ b/drivers/ata/pata_it8213.c
@@ -277,6 +277,8 @@ static const struct ata_port_operations it8213_ops = {
277 277
278 .irq_handler = ata_interrupt, 278 .irq_handler = ata_interrupt,
279 .irq_clear = ata_bmdma_irq_clear, 279 .irq_clear = ata_bmdma_irq_clear,
280 .irq_on = ata_irq_on,
281 .irq_ack = ata_irq_ack,
280 282
281 .port_start = ata_port_start, 283 .port_start = ata_port_start,
282}; 284};
diff --git a/drivers/ata/pata_it821x.c b/drivers/ata/pata_it821x.c
index e8a6e7d73b72..73394c75be42 100644
--- a/drivers/ata/pata_it821x.c
+++ b/drivers/ata/pata_it821x.c
@@ -678,6 +678,8 @@ static struct ata_port_operations it821x_smart_port_ops = {
678 678
679 .irq_handler = ata_interrupt, 679 .irq_handler = ata_interrupt,
680 .irq_clear = ata_bmdma_irq_clear, 680 .irq_clear = ata_bmdma_irq_clear,
681 .irq_on = ata_irq_on,
682 .irq_ack = ata_irq_ack,
681 683
682 .port_start = it821x_port_start, 684 .port_start = it821x_port_start,
683}; 685};
@@ -712,6 +714,8 @@ static struct ata_port_operations it821x_passthru_port_ops = {
712 714
713 .irq_clear = ata_bmdma_irq_clear, 715 .irq_clear = ata_bmdma_irq_clear,
714 .irq_handler = ata_interrupt, 716 .irq_handler = ata_interrupt,
717 .irq_on = ata_irq_on,
718 .irq_ack = ata_irq_ack,
715 719
716 .port_start = it821x_port_start, 720 .port_start = it821x_port_start,
717}; 721};
diff --git a/drivers/ata/pata_ixp4xx_cf.c b/drivers/ata/pata_ixp4xx_cf.c
index d9ee1837b7ff..3222ac7b945d 100644
--- a/drivers/ata/pata_ixp4xx_cf.c
+++ b/drivers/ata/pata_ixp4xx_cf.c
@@ -131,6 +131,8 @@ static struct ata_port_operations ixp4xx_port_ops = {
131 131
132 .irq_handler = ata_interrupt, 132 .irq_handler = ata_interrupt,
133 .irq_clear = ixp4xx_irq_clear, 133 .irq_clear = ixp4xx_irq_clear,
134 .irq_on = ata_irq_on,
135 .irq_ack = ata_irq_ack,
134 136
135 .port_start = ata_port_start, 137 .port_start = ata_port_start,
136 138
diff --git a/drivers/ata/pata_jmicron.c b/drivers/ata/pata_jmicron.c
index 26365c107818..7a635dd326f8 100644
--- a/drivers/ata/pata_jmicron.c
+++ b/drivers/ata/pata_jmicron.c
@@ -166,6 +166,8 @@ static const struct ata_port_operations jmicron_ops = {
166 /* IRQ-related hooks */ 166 /* IRQ-related hooks */
167 .irq_handler = ata_interrupt, 167 .irq_handler = ata_interrupt,
168 .irq_clear = ata_bmdma_irq_clear, 168 .irq_clear = ata_bmdma_irq_clear,
169 .irq_on = ata_irq_on,
170 .irq_ack = ata_irq_ack,
169 171
170 /* Generic PATA PCI ATA helpers */ 172 /* Generic PATA PCI ATA helpers */
171 .port_start = ata_port_start, 173 .port_start = ata_port_start,
diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c
index 78b5f7136e1e..4223e10de6a0 100644
--- a/drivers/ata/pata_legacy.c
+++ b/drivers/ata/pata_legacy.c
@@ -168,6 +168,8 @@ static struct ata_port_operations simple_port_ops = {
168 168
169 .irq_handler = ata_interrupt, 169 .irq_handler = ata_interrupt,
170 .irq_clear = ata_bmdma_irq_clear, 170 .irq_clear = ata_bmdma_irq_clear,
171 .irq_on = ata_irq_on,
172 .irq_ack = ata_irq_ack,
171 173
172 .port_start = ata_port_start, 174 .port_start = ata_port_start,
173}; 175};
@@ -191,6 +193,8 @@ static struct ata_port_operations legacy_port_ops = {
191 193
192 .irq_handler = ata_interrupt, 194 .irq_handler = ata_interrupt,
193 .irq_clear = ata_bmdma_irq_clear, 195 .irq_clear = ata_bmdma_irq_clear,
196 .irq_on = ata_irq_on,
197 .irq_ack = ata_irq_ack,
194 198
195 .port_start = ata_port_start, 199 .port_start = ata_port_start,
196}; 200};
@@ -301,6 +305,8 @@ static struct ata_port_operations pdc20230_port_ops = {
301 305
302 .irq_handler = ata_interrupt, 306 .irq_handler = ata_interrupt,
303 .irq_clear = ata_bmdma_irq_clear, 307 .irq_clear = ata_bmdma_irq_clear,
308 .irq_on = ata_irq_on,
309 .irq_ack = ata_irq_ack,
304 310
305 .port_start = ata_port_start, 311 .port_start = ata_port_start,
306}; 312};
@@ -351,6 +357,8 @@ static struct ata_port_operations ht6560a_port_ops = {
351 357
352 .irq_handler = ata_interrupt, 358 .irq_handler = ata_interrupt,
353 .irq_clear = ata_bmdma_irq_clear, 359 .irq_clear = ata_bmdma_irq_clear,
360 .irq_on = ata_irq_on,
361 .irq_ack = ata_irq_ack,
354 362
355 .port_start = ata_port_start, 363 .port_start = ata_port_start,
356}; 364};
@@ -412,6 +420,8 @@ static struct ata_port_operations ht6560b_port_ops = {
412 420
413 .irq_handler = ata_interrupt, 421 .irq_handler = ata_interrupt,
414 .irq_clear = ata_bmdma_irq_clear, 422 .irq_clear = ata_bmdma_irq_clear,
423 .irq_on = ata_irq_on,
424 .irq_ack = ata_irq_ack,
415 425
416 .port_start = ata_port_start, 426 .port_start = ata_port_start,
417}; 427};
@@ -528,6 +538,8 @@ static struct ata_port_operations opti82c611a_port_ops = {
528 538
529 .irq_handler = ata_interrupt, 539 .irq_handler = ata_interrupt,
530 .irq_clear = ata_bmdma_irq_clear, 540 .irq_clear = ata_bmdma_irq_clear,
541 .irq_on = ata_irq_on,
542 .irq_ack = ata_irq_ack,
531 543
532 .port_start = ata_port_start, 544 .port_start = ata_port_start,
533}; 545};
@@ -656,6 +668,8 @@ static struct ata_port_operations opti82c46x_port_ops = {
656 668
657 .irq_handler = ata_interrupt, 669 .irq_handler = ata_interrupt,
658 .irq_clear = ata_bmdma_irq_clear, 670 .irq_clear = ata_bmdma_irq_clear,
671 .irq_on = ata_irq_on,
672 .irq_ack = ata_irq_ack,
659 673
660 .port_start = ata_port_start, 674 .port_start = ata_port_start,
661}; 675};
diff --git a/drivers/ata/pata_marvell.c b/drivers/ata/pata_marvell.c
index 586cbb750c99..13a70ac6f1dc 100644
--- a/drivers/ata/pata_marvell.c
+++ b/drivers/ata/pata_marvell.c
@@ -134,6 +134,8 @@ static const struct ata_port_operations marvell_ops = {
134 /* Timeout handling */ 134 /* Timeout handling */
135 .irq_handler = ata_interrupt, 135 .irq_handler = ata_interrupt,
136 .irq_clear = ata_bmdma_irq_clear, 136 .irq_clear = ata_bmdma_irq_clear,
137 .irq_on = ata_irq_on,
138 .irq_ack = ata_irq_ack,
137 139
138 /* Generic PATA PCI ATA helpers */ 140 /* Generic PATA PCI ATA helpers */
139 .port_start = ata_port_start, 141 .port_start = ata_port_start,
diff --git a/drivers/ata/pata_mpc52xx.c b/drivers/ata/pata_mpc52xx.c
index 8a9d80c3628e..d7378df44970 100644
--- a/drivers/ata/pata_mpc52xx.c
+++ b/drivers/ata/pata_mpc52xx.c
@@ -298,6 +298,8 @@ static struct ata_port_operations mpc52xx_ata_port_ops = {
298 .data_xfer = ata_data_xfer, 298 .data_xfer = ata_data_xfer,
299 .irq_handler = ata_interrupt, 299 .irq_handler = ata_interrupt,
300 .irq_clear = ata_bmdma_irq_clear, 300 .irq_clear = ata_bmdma_irq_clear,
301 .irq_on = ata_irq_on,
302 .irq_ack = ata_irq_ack,
301 .port_start = ata_port_start, 303 .port_start = ata_port_start,
302}; 304};
303 305
diff --git a/drivers/ata/pata_mpiix.c b/drivers/ata/pata_mpiix.c
index 9837faf0f620..976663d1fb22 100644
--- a/drivers/ata/pata_mpiix.c
+++ b/drivers/ata/pata_mpiix.c
@@ -192,6 +192,8 @@ static struct ata_port_operations mpiix_port_ops = {
192 192
193 .irq_handler = ata_interrupt, 193 .irq_handler = ata_interrupt,
194 .irq_clear = ata_bmdma_irq_clear, 194 .irq_clear = ata_bmdma_irq_clear,
195 .irq_on = ata_irq_on,
196 .irq_ack = ata_irq_ack,
195 197
196 .port_start = ata_port_start, 198 .port_start = ata_port_start,
197}; 199};
diff --git a/drivers/ata/pata_netcell.c b/drivers/ata/pata_netcell.c
index 23365a0ff9b0..e8393e19be47 100644
--- a/drivers/ata/pata_netcell.c
+++ b/drivers/ata/pata_netcell.c
@@ -94,6 +94,8 @@ static const struct ata_port_operations netcell_ops = {
94 /* IRQ-related hooks */ 94 /* IRQ-related hooks */
95 .irq_handler = ata_interrupt, 95 .irq_handler = ata_interrupt,
96 .irq_clear = ata_bmdma_irq_clear, 96 .irq_clear = ata_bmdma_irq_clear,
97 .irq_on = ata_irq_on,
98 .irq_ack = ata_irq_ack,
97 99
98 /* Generic PATA PCI ATA helpers */ 100 /* Generic PATA PCI ATA helpers */
99 .port_start = ata_port_start, 101 .port_start = ata_port_start,
diff --git a/drivers/ata/pata_ns87410.c b/drivers/ata/pata_ns87410.c
index 95c4e0b3f2d4..3d1fa487c486 100644
--- a/drivers/ata/pata_ns87410.c
+++ b/drivers/ata/pata_ns87410.c
@@ -183,6 +183,8 @@ static struct ata_port_operations ns87410_port_ops = {
183 183
184 .irq_handler = ata_interrupt, 184 .irq_handler = ata_interrupt,
185 .irq_clear = ata_bmdma_irq_clear, 185 .irq_clear = ata_bmdma_irq_clear,
186 .irq_on = ata_irq_on,
187 .irq_ack = ata_irq_ack,
186 188
187 .port_start = ata_port_start, 189 .port_start = ata_port_start,
188}; 190};
diff --git a/drivers/ata/pata_oldpiix.c b/drivers/ata/pata_oldpiix.c
index 95d570a30a2f..b76d2b466614 100644
--- a/drivers/ata/pata_oldpiix.c
+++ b/drivers/ata/pata_oldpiix.c
@@ -263,6 +263,8 @@ static const struct ata_port_operations oldpiix_pata_ops = {
263 263
264 .irq_handler = ata_interrupt, 264 .irq_handler = ata_interrupt,
265 .irq_clear = ata_bmdma_irq_clear, 265 .irq_clear = ata_bmdma_irq_clear,
266 .irq_on = ata_irq_on,
267 .irq_ack = ata_irq_ack,
266 268
267 .port_start = ata_port_start, 269 .port_start = ata_port_start,
268}; 270};
diff --git a/drivers/ata/pata_opti.c b/drivers/ata/pata_opti.c
index e76302631597..da1aa148b37d 100644
--- a/drivers/ata/pata_opti.c
+++ b/drivers/ata/pata_opti.c
@@ -209,6 +209,8 @@ static struct ata_port_operations opti_port_ops = {
209 209
210 .irq_handler = ata_interrupt, 210 .irq_handler = ata_interrupt,
211 .irq_clear = ata_bmdma_irq_clear, 211 .irq_clear = ata_bmdma_irq_clear,
212 .irq_on = ata_irq_on,
213 .irq_ack = ata_irq_ack,
212 214
213 .port_start = ata_port_start, 215 .port_start = ata_port_start,
214}; 216};
diff --git a/drivers/ata/pata_optidma.c b/drivers/ata/pata_optidma.c
index 067fca1fa8a1..d80b36e209cc 100644
--- a/drivers/ata/pata_optidma.c
+++ b/drivers/ata/pata_optidma.c
@@ -393,6 +393,8 @@ static struct ata_port_operations optidma_port_ops = {
393 393
394 .irq_handler = ata_interrupt, 394 .irq_handler = ata_interrupt,
395 .irq_clear = ata_bmdma_irq_clear, 395 .irq_clear = ata_bmdma_irq_clear,
396 .irq_on = ata_irq_on,
397 .irq_ack = ata_irq_ack,
396 398
397 .port_start = ata_port_start, 399 .port_start = ata_port_start,
398}; 400};
@@ -426,6 +428,8 @@ static struct ata_port_operations optiplus_port_ops = {
426 428
427 .irq_handler = ata_interrupt, 429 .irq_handler = ata_interrupt,
428 .irq_clear = ata_bmdma_irq_clear, 430 .irq_clear = ata_bmdma_irq_clear,
431 .irq_on = ata_irq_on,
432 .irq_ack = ata_irq_ack,
429 433
430 .port_start = ata_port_start, 434 .port_start = ata_port_start,
431}; 435};
diff --git a/drivers/ata/pata_pcmcia.c b/drivers/ata/pata_pcmcia.c
index 1830e9166943..acfc09f9abd9 100644
--- a/drivers/ata/pata_pcmcia.c
+++ b/drivers/ata/pata_pcmcia.c
@@ -92,6 +92,8 @@ static struct ata_port_operations pcmcia_port_ops = {
92 92
93 .irq_handler = ata_interrupt, 93 .irq_handler = ata_interrupt,
94 .irq_clear = ata_bmdma_irq_clear, 94 .irq_clear = ata_bmdma_irq_clear,
95 .irq_on = ata_irq_on,
96 .irq_ack = ata_irq_ack,
95 97
96 .port_start = ata_port_start, 98 .port_start = ata_port_start,
97}; 99};
diff --git a/drivers/ata/pata_pdc2027x.c b/drivers/ata/pata_pdc2027x.c
index 2ff91bbbab06..ffa7f47fbb20 100644
--- a/drivers/ata/pata_pdc2027x.c
+++ b/drivers/ata/pata_pdc2027x.c
@@ -169,6 +169,8 @@ static struct ata_port_operations pdc2027x_pata100_ops = {
169 169
170 .irq_handler = ata_interrupt, 170 .irq_handler = ata_interrupt,
171 .irq_clear = ata_bmdma_irq_clear, 171 .irq_clear = ata_bmdma_irq_clear,
172 .irq_on = ata_irq_on,
173 .irq_ack = ata_irq_ack,
172 174
173 .port_start = ata_port_start, 175 .port_start = ata_port_start,
174}; 176};
@@ -201,6 +203,8 @@ static struct ata_port_operations pdc2027x_pata133_ops = {
201 203
202 .irq_handler = ata_interrupt, 204 .irq_handler = ata_interrupt,
203 .irq_clear = ata_bmdma_irq_clear, 205 .irq_clear = ata_bmdma_irq_clear,
206 .irq_on = ata_irq_on,
207 .irq_ack = ata_irq_ack,
204 208
205 .port_start = ata_port_start, 209 .port_start = ata_port_start,
206}; 210};
diff --git a/drivers/ata/pata_pdc202xx_old.c b/drivers/ata/pata_pdc202xx_old.c
index 7e194d81c1b6..6dd63413a523 100644
--- a/drivers/ata/pata_pdc202xx_old.c
+++ b/drivers/ata/pata_pdc202xx_old.c
@@ -298,6 +298,8 @@ static struct ata_port_operations pdc2024x_port_ops = {
298 298
299 .irq_handler = ata_interrupt, 299 .irq_handler = ata_interrupt,
300 .irq_clear = ata_bmdma_irq_clear, 300 .irq_clear = ata_bmdma_irq_clear,
301 .irq_on = ata_irq_on,
302 .irq_ack = ata_irq_ack,
301 303
302 .port_start = ata_port_start, 304 .port_start = ata_port_start,
303}; 305};
@@ -330,6 +332,8 @@ static struct ata_port_operations pdc2026x_port_ops = {
330 332
331 .irq_handler = ata_interrupt, 333 .irq_handler = ata_interrupt,
332 .irq_clear = ata_bmdma_irq_clear, 334 .irq_clear = ata_bmdma_irq_clear,
335 .irq_on = ata_irq_on,
336 .irq_ack = ata_irq_ack,
333 337
334 .port_start = ata_port_start, 338 .port_start = ata_port_start,
335}; 339};
diff --git a/drivers/ata/pata_platform.c b/drivers/ata/pata_platform.c
index b35fc29f4db5..479a326114e0 100644
--- a/drivers/ata/pata_platform.c
+++ b/drivers/ata/pata_platform.c
@@ -87,6 +87,8 @@ static struct ata_port_operations pata_platform_port_ops = {
87 87
88 .irq_handler = ata_interrupt, 88 .irq_handler = ata_interrupt,
89 .irq_clear = ata_bmdma_irq_clear, 89 .irq_clear = ata_bmdma_irq_clear,
90 .irq_on = ata_irq_on,
91 .irq_ack = ata_irq_ack,
90 92
91 .port_start = ata_port_start, 93 .port_start = ata_port_start,
92}; 94};
diff --git a/drivers/ata/pata_qdi.c b/drivers/ata/pata_qdi.c
index 5b86effa0bbd..1b3b4ed8eb19 100644
--- a/drivers/ata/pata_qdi.c
+++ b/drivers/ata/pata_qdi.c
@@ -191,6 +191,8 @@ static struct ata_port_operations qdi6500_port_ops = {
191 191
192 .irq_handler = ata_interrupt, 192 .irq_handler = ata_interrupt,
193 .irq_clear = ata_bmdma_irq_clear, 193 .irq_clear = ata_bmdma_irq_clear,
194 .irq_on = ata_irq_on,
195 .irq_ack = ata_irq_ack,
194 196
195 .port_start = ata_port_start, 197 .port_start = ata_port_start,
196}; 198};
@@ -217,6 +219,8 @@ static struct ata_port_operations qdi6580_port_ops = {
217 219
218 .irq_handler = ata_interrupt, 220 .irq_handler = ata_interrupt,
219 .irq_clear = ata_bmdma_irq_clear, 221 .irq_clear = ata_bmdma_irq_clear,
222 .irq_on = ata_irq_on,
223 .irq_ack = ata_irq_ack,
220 224
221 .port_start = ata_port_start, 225 .port_start = ata_port_start,
222}; 226};
diff --git a/drivers/ata/pata_radisys.c b/drivers/ata/pata_radisys.c
index a391bd2fa8fe..0d1e571ef633 100644
--- a/drivers/ata/pata_radisys.c
+++ b/drivers/ata/pata_radisys.c
@@ -259,6 +259,8 @@ static const struct ata_port_operations radisys_pata_ops = {
259 259
260 .irq_handler = ata_interrupt, 260 .irq_handler = ata_interrupt,
261 .irq_clear = ata_bmdma_irq_clear, 261 .irq_clear = ata_bmdma_irq_clear,
262 .irq_on = ata_irq_on,
263 .irq_ack = ata_irq_ack,
262 264
263 .port_start = ata_port_start, 265 .port_start = ata_port_start,
264}; 266};
diff --git a/drivers/ata/pata_rz1000.c b/drivers/ata/pata_rz1000.c
index 4a4d2e5be09b..71a2bac09e0d 100644
--- a/drivers/ata/pata_rz1000.c
+++ b/drivers/ata/pata_rz1000.c
@@ -124,6 +124,8 @@ static struct ata_port_operations rz1000_port_ops = {
124 124
125 .irq_handler = ata_interrupt, 125 .irq_handler = ata_interrupt,
126 .irq_clear = ata_bmdma_irq_clear, 126 .irq_clear = ata_bmdma_irq_clear,
127 .irq_on = ata_irq_on,
128 .irq_ack = ata_irq_ack,
127 129
128 .port_start = ata_port_start, 130 .port_start = ata_port_start,
129}; 131};
diff --git a/drivers/ata/pata_sc1200.c b/drivers/ata/pata_sc1200.c
index 8d3e7c57b22c..58e42fbd14f9 100644
--- a/drivers/ata/pata_sc1200.c
+++ b/drivers/ata/pata_sc1200.c
@@ -224,6 +224,8 @@ static struct ata_port_operations sc1200_port_ops = {
224 224
225 .irq_handler = ata_interrupt, 225 .irq_handler = ata_interrupt,
226 .irq_clear = ata_bmdma_irq_clear, 226 .irq_clear = ata_bmdma_irq_clear,
227 .irq_on = ata_irq_on,
228 .irq_ack = ata_irq_ack,
227 229
228 .port_start = ata_port_start, 230 .port_start = ata_port_start,
229}; 231};
diff --git a/drivers/ata/pata_serverworks.c b/drivers/ata/pata_serverworks.c
index c41a1d3b5b7d..ad5b43fef3d1 100644
--- a/drivers/ata/pata_serverworks.c
+++ b/drivers/ata/pata_serverworks.c
@@ -352,6 +352,8 @@ static struct ata_port_operations serverworks_osb4_port_ops = {
352 352
353 .irq_handler = ata_interrupt, 353 .irq_handler = ata_interrupt,
354 .irq_clear = ata_bmdma_irq_clear, 354 .irq_clear = ata_bmdma_irq_clear,
355 .irq_on = ata_irq_on,
356 .irq_ack = ata_irq_ack,
355 357
356 .port_start = ata_port_start, 358 .port_start = ata_port_start,
357}; 359};
@@ -385,6 +387,8 @@ static struct ata_port_operations serverworks_csb_port_ops = {
385 387
386 .irq_handler = ata_interrupt, 388 .irq_handler = ata_interrupt,
387 .irq_clear = ata_bmdma_irq_clear, 389 .irq_clear = ata_bmdma_irq_clear,
390 .irq_on = ata_irq_on,
391 .irq_ack = ata_irq_ack,
388 392
389 .port_start = ata_port_start, 393 .port_start = ata_port_start,
390}; 394};
diff --git a/drivers/ata/pata_sil680.c b/drivers/ata/pata_sil680.c
index 992e22537023..ed79fabe025c 100644
--- a/drivers/ata/pata_sil680.c
+++ b/drivers/ata/pata_sil680.c
@@ -256,6 +256,8 @@ static struct ata_port_operations sil680_port_ops = {
256 256
257 .irq_handler = ata_interrupt, 257 .irq_handler = ata_interrupt,
258 .irq_clear = ata_bmdma_irq_clear, 258 .irq_clear = ata_bmdma_irq_clear,
259 .irq_on = ata_irq_on,
260 .irq_ack = ata_irq_ack,
259 261
260 .port_start = ata_port_start, 262 .port_start = ata_port_start,
261}; 263};
diff --git a/drivers/ata/pata_sis.c b/drivers/ata/pata_sis.c
index c82d75b96f60..560103d55b2e 100644
--- a/drivers/ata/pata_sis.c
+++ b/drivers/ata/pata_sis.c
@@ -607,6 +607,8 @@ static const struct ata_port_operations sis_133_ops = {
607 607
608 .irq_handler = ata_interrupt, 608 .irq_handler = ata_interrupt,
609 .irq_clear = ata_bmdma_irq_clear, 609 .irq_clear = ata_bmdma_irq_clear,
610 .irq_on = ata_irq_on,
611 .irq_ack = ata_irq_ack,
610 612
611 .port_start = ata_port_start, 613 .port_start = ata_port_start,
612}; 614};
@@ -638,6 +640,8 @@ static const struct ata_port_operations sis_133_early_ops = {
638 640
639 .irq_handler = ata_interrupt, 641 .irq_handler = ata_interrupt,
640 .irq_clear = ata_bmdma_irq_clear, 642 .irq_clear = ata_bmdma_irq_clear,
643 .irq_on = ata_irq_on,
644 .irq_ack = ata_irq_ack,
641 645
642 .port_start = ata_port_start, 646 .port_start = ata_port_start,
643}; 647};
@@ -670,6 +674,8 @@ static const struct ata_port_operations sis_100_ops = {
670 674
671 .irq_handler = ata_interrupt, 675 .irq_handler = ata_interrupt,
672 .irq_clear = ata_bmdma_irq_clear, 676 .irq_clear = ata_bmdma_irq_clear,
677 .irq_on = ata_irq_on,
678 .irq_ack = ata_irq_ack,
673 679
674 .port_start = ata_port_start, 680 .port_start = ata_port_start,
675}; 681};
@@ -701,6 +707,8 @@ static const struct ata_port_operations sis_66_ops = {
701 707
702 .irq_handler = ata_interrupt, 708 .irq_handler = ata_interrupt,
703 .irq_clear = ata_bmdma_irq_clear, 709 .irq_clear = ata_bmdma_irq_clear,
710 .irq_on = ata_irq_on,
711 .irq_ack = ata_irq_ack,
704 712
705 .port_start = ata_port_start, 713 .port_start = ata_port_start,
706}; 714};
@@ -732,6 +740,8 @@ static const struct ata_port_operations sis_old_ops = {
732 740
733 .irq_handler = ata_interrupt, 741 .irq_handler = ata_interrupt,
734 .irq_clear = ata_bmdma_irq_clear, 742 .irq_clear = ata_bmdma_irq_clear,
743 .irq_on = ata_irq_on,
744 .irq_ack = ata_irq_ack,
735 745
736 .port_start = ata_port_start, 746 .port_start = ata_port_start,
737}; 747};
diff --git a/drivers/ata/pata_sl82c105.c b/drivers/ata/pata_sl82c105.c
index c7770f8df8d3..a40345674378 100644
--- a/drivers/ata/pata_sl82c105.c
+++ b/drivers/ata/pata_sl82c105.c
@@ -266,6 +266,8 @@ static struct ata_port_operations sl82c105_port_ops = {
266 266
267 .irq_handler = ata_interrupt, 267 .irq_handler = ata_interrupt,
268 .irq_clear = ata_bmdma_irq_clear, 268 .irq_clear = ata_bmdma_irq_clear,
269 .irq_on = ata_irq_on,
270 .irq_ack = ata_irq_ack,
269 271
270 .port_start = ata_port_start, 272 .port_start = ata_port_start,
271}; 273};
diff --git a/drivers/ata/pata_triflex.c b/drivers/ata/pata_triflex.c
index 60f2eea3c838..453ab90b721e 100644
--- a/drivers/ata/pata_triflex.c
+++ b/drivers/ata/pata_triflex.c
@@ -225,6 +225,8 @@ static struct ata_port_operations triflex_port_ops = {
225 225
226 .irq_handler = ata_interrupt, 226 .irq_handler = ata_interrupt,
227 .irq_clear = ata_bmdma_irq_clear, 227 .irq_clear = ata_bmdma_irq_clear,
228 .irq_on = ata_irq_on,
229 .irq_ack = ata_irq_ack,
228 230
229 .port_start = ata_port_start, 231 .port_start = ata_port_start,
230}; 232};
diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c
index 236276d6ef3b..220fcd6c5492 100644
--- a/drivers/ata/pata_via.c
+++ b/drivers/ata/pata_via.c
@@ -338,6 +338,8 @@ static struct ata_port_operations via_port_ops = {
338 338
339 .irq_handler = ata_interrupt, 339 .irq_handler = ata_interrupt,
340 .irq_clear = ata_bmdma_irq_clear, 340 .irq_clear = ata_bmdma_irq_clear,
341 .irq_on = ata_irq_on,
342 .irq_ack = ata_irq_ack,
341 343
342 .port_start = ata_port_start, 344 .port_start = ata_port_start,
343}; 345};
@@ -371,6 +373,8 @@ static struct ata_port_operations via_port_ops_noirq = {
371 373
372 .irq_handler = ata_interrupt, 374 .irq_handler = ata_interrupt,
373 .irq_clear = ata_bmdma_irq_clear, 375 .irq_clear = ata_bmdma_irq_clear,
376 .irq_on = ata_irq_on,
377 .irq_ack = ata_irq_ack,
374 378
375 .port_start = ata_port_start, 379 .port_start = ata_port_start,
376}; 380};
diff --git a/drivers/ata/pata_winbond.c b/drivers/ata/pata_winbond.c
index d24488bf5644..0888b4f19f4c 100644
--- a/drivers/ata/pata_winbond.c
+++ b/drivers/ata/pata_winbond.c
@@ -160,6 +160,8 @@ static struct ata_port_operations winbond_port_ops = {
160 160
161 .irq_handler = ata_interrupt, 161 .irq_handler = ata_interrupt,
162 .irq_clear = ata_bmdma_irq_clear, 162 .irq_clear = ata_bmdma_irq_clear,
163 .irq_on = ata_irq_on,
164 .irq_ack = ata_irq_ack,
163 165
164 .port_start = ata_port_start, 166 .port_start = ata_port_start,
165}; 167};
diff --git a/drivers/ata/pdc_adma.c b/drivers/ata/pdc_adma.c
index 71e17df83f48..b4ed8ce553e6 100644
--- a/drivers/ata/pdc_adma.c
+++ b/drivers/ata/pdc_adma.c
@@ -175,6 +175,8 @@ static const struct ata_port_operations adma_ata_ops = {
175 .data_xfer = ata_data_xfer, 175 .data_xfer = ata_data_xfer,
176 .irq_handler = adma_intr, 176 .irq_handler = adma_intr,
177 .irq_clear = adma_irq_clear, 177 .irq_clear = adma_irq_clear,
178 .irq_on = ata_irq_on,
179 .irq_ack = ata_irq_ack,
178 .port_start = adma_port_start, 180 .port_start = adma_port_start,
179 .port_stop = adma_port_stop, 181 .port_stop = adma_port_stop,
180 .host_stop = adma_host_stop, 182 .host_stop = adma_host_stop,
diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c
index b2a6f77b38d6..170a10ad478f 100644
--- a/drivers/ata/sata_inic162x.c
+++ b/drivers/ata/sata_inic162x.c
@@ -563,6 +563,8 @@ static struct ata_port_operations inic_port_ops = {
563 563
564 .irq_handler = inic_interrupt, 564 .irq_handler = inic_interrupt,
565 .irq_clear = inic_irq_clear, 565 .irq_clear = inic_irq_clear,
566 .irq_on = ata_irq_on,
567 .irq_ack = ata_irq_ack,
566 568
567 .qc_prep = ata_qc_prep, 569 .qc_prep = ata_qc_prep,
568 .qc_issue = inic_qc_issue, 570 .qc_issue = inic_qc_issue,
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index 7c578c275db0..769eca52442c 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -410,6 +410,8 @@ static const struct ata_port_operations mv5_ops = {
410 410
411 .irq_handler = mv_interrupt, 411 .irq_handler = mv_interrupt,
412 .irq_clear = mv_irq_clear, 412 .irq_clear = mv_irq_clear,
413 .irq_on = ata_irq_on,
414 .irq_ack = ata_irq_ack,
413 415
414 .scr_read = mv5_scr_read, 416 .scr_read = mv5_scr_read,
415 .scr_write = mv5_scr_write, 417 .scr_write = mv5_scr_write,
@@ -437,6 +439,8 @@ static const struct ata_port_operations mv6_ops = {
437 439
438 .irq_handler = mv_interrupt, 440 .irq_handler = mv_interrupt,
439 .irq_clear = mv_irq_clear, 441 .irq_clear = mv_irq_clear,
442 .irq_on = ata_irq_on,
443 .irq_ack = ata_irq_ack,
440 444
441 .scr_read = mv_scr_read, 445 .scr_read = mv_scr_read,
442 .scr_write = mv_scr_write, 446 .scr_write = mv_scr_write,
@@ -464,6 +468,8 @@ static const struct ata_port_operations mv_iie_ops = {
464 468
465 .irq_handler = mv_interrupt, 469 .irq_handler = mv_interrupt,
466 .irq_clear = mv_irq_clear, 470 .irq_clear = mv_irq_clear,
471 .irq_on = ata_irq_on,
472 .irq_ack = ata_irq_ack,
467 473
468 .scr_read = mv_scr_read, 474 .scr_read = mv_scr_read,
469 .scr_write = mv_scr_write, 475 .scr_write = mv_scr_write,
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c
index b9ef6f5f4024..77e47b74ae96 100644
--- a/drivers/ata/sata_nv.c
+++ b/drivers/ata/sata_nv.c
@@ -362,6 +362,8 @@ static const struct ata_port_operations nv_generic_ops = {
362 .data_xfer = ata_data_xfer, 362 .data_xfer = ata_data_xfer,
363 .irq_handler = nv_generic_interrupt, 363 .irq_handler = nv_generic_interrupt,
364 .irq_clear = ata_bmdma_irq_clear, 364 .irq_clear = ata_bmdma_irq_clear,
365 .irq_on = ata_irq_on,
366 .irq_ack = ata_irq_ack,
365 .scr_read = nv_scr_read, 367 .scr_read = nv_scr_read,
366 .scr_write = nv_scr_write, 368 .scr_write = nv_scr_write,
367 .port_start = ata_port_start, 369 .port_start = ata_port_start,
@@ -387,6 +389,8 @@ static const struct ata_port_operations nv_nf2_ops = {
387 .data_xfer = ata_data_xfer, 389 .data_xfer = ata_data_xfer,
388 .irq_handler = nv_nf2_interrupt, 390 .irq_handler = nv_nf2_interrupt,
389 .irq_clear = ata_bmdma_irq_clear, 391 .irq_clear = ata_bmdma_irq_clear,
392 .irq_on = ata_irq_on,
393 .irq_ack = ata_irq_ack,
390 .scr_read = nv_scr_read, 394 .scr_read = nv_scr_read,
391 .scr_write = nv_scr_write, 395 .scr_write = nv_scr_write,
392 .port_start = ata_port_start, 396 .port_start = ata_port_start,
@@ -412,6 +416,8 @@ static const struct ata_port_operations nv_ck804_ops = {
412 .data_xfer = ata_data_xfer, 416 .data_xfer = ata_data_xfer,
413 .irq_handler = nv_ck804_interrupt, 417 .irq_handler = nv_ck804_interrupt,
414 .irq_clear = ata_bmdma_irq_clear, 418 .irq_clear = ata_bmdma_irq_clear,
419 .irq_on = ata_irq_on,
420 .irq_ack = ata_irq_ack,
415 .scr_read = nv_scr_read, 421 .scr_read = nv_scr_read,
416 .scr_write = nv_scr_write, 422 .scr_write = nv_scr_write,
417 .port_start = ata_port_start, 423 .port_start = ata_port_start,
@@ -439,6 +445,8 @@ static const struct ata_port_operations nv_adma_ops = {
439 .data_xfer = ata_data_xfer, 445 .data_xfer = ata_data_xfer,
440 .irq_handler = nv_adma_interrupt, 446 .irq_handler = nv_adma_interrupt,
441 .irq_clear = nv_adma_irq_clear, 447 .irq_clear = nv_adma_irq_clear,
448 .irq_on = ata_irq_on,
449 .irq_ack = ata_irq_ack,
442 .scr_read = nv_scr_read, 450 .scr_read = nv_scr_read,
443 .scr_write = nv_scr_write, 451 .scr_write = nv_scr_write,
444 .port_start = nv_adma_port_start, 452 .port_start = nv_adma_port_start,
diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c
index 4fb47cad8229..3be4cc338d7b 100644
--- a/drivers/ata/sata_promise.c
+++ b/drivers/ata/sata_promise.c
@@ -172,6 +172,8 @@ static const struct ata_port_operations pdc_sata_ops = {
172 .data_xfer = ata_data_xfer, 172 .data_xfer = ata_data_xfer,
173 .irq_handler = pdc_interrupt, 173 .irq_handler = pdc_interrupt,
174 .irq_clear = pdc_irq_clear, 174 .irq_clear = pdc_irq_clear,
175 .irq_on = ata_irq_on,
176 .irq_ack = ata_irq_ack,
175 177
176 .scr_read = pdc_sata_scr_read, 178 .scr_read = pdc_sata_scr_read,
177 .scr_write = pdc_sata_scr_write, 179 .scr_write = pdc_sata_scr_write,
@@ -197,6 +199,8 @@ static const struct ata_port_operations pdc_old_sata_ops = {
197 .data_xfer = ata_data_xfer, 199 .data_xfer = ata_data_xfer,
198 .irq_handler = pdc_interrupt, 200 .irq_handler = pdc_interrupt,
199 .irq_clear = pdc_irq_clear, 201 .irq_clear = pdc_irq_clear,
202 .irq_on = ata_irq_on,
203 .irq_ack = ata_irq_ack,
200 204
201 .scr_read = pdc_sata_scr_read, 205 .scr_read = pdc_sata_scr_read,
202 .scr_write = pdc_sata_scr_write, 206 .scr_write = pdc_sata_scr_write,
@@ -220,6 +224,8 @@ static const struct ata_port_operations pdc_pata_ops = {
220 .eng_timeout = pdc_eng_timeout, 224 .eng_timeout = pdc_eng_timeout,
221 .irq_handler = pdc_interrupt, 225 .irq_handler = pdc_interrupt,
222 .irq_clear = pdc_irq_clear, 226 .irq_clear = pdc_irq_clear,
227 .irq_on = ata_irq_on,
228 .irq_ack = ata_irq_ack,
223 229
224 .port_start = pdc_port_start, 230 .port_start = pdc_port_start,
225}; 231};
diff --git a/drivers/ata/sata_qstor.c b/drivers/ata/sata_qstor.c
index cd579b180274..bfa35ede6551 100644
--- a/drivers/ata/sata_qstor.c
+++ b/drivers/ata/sata_qstor.c
@@ -161,6 +161,8 @@ static const struct ata_port_operations qs_ata_ops = {
161 .eng_timeout = qs_eng_timeout, 161 .eng_timeout = qs_eng_timeout,
162 .irq_handler = qs_intr, 162 .irq_handler = qs_intr,
163 .irq_clear = qs_irq_clear, 163 .irq_clear = qs_irq_clear,
164 .irq_on = ata_irq_on,
165 .irq_ack = ata_irq_ack,
164 .scr_read = qs_scr_read, 166 .scr_read = qs_scr_read,
165 .scr_write = qs_scr_write, 167 .scr_write = qs_scr_write,
166 .port_start = qs_port_start, 168 .port_start = qs_port_start,
diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c
index 4a25093b2dda..dca3d3749f06 100644
--- a/drivers/ata/sata_sil.c
+++ b/drivers/ata/sata_sil.c
@@ -209,6 +209,8 @@ static const struct ata_port_operations sil_ops = {
209 .post_internal_cmd = ata_bmdma_post_internal_cmd, 209 .post_internal_cmd = ata_bmdma_post_internal_cmd,
210 .irq_handler = sil_interrupt, 210 .irq_handler = sil_interrupt,
211 .irq_clear = ata_bmdma_irq_clear, 211 .irq_clear = ata_bmdma_irq_clear,
212 .irq_on = ata_irq_on,
213 .irq_ack = ata_irq_ack,
212 .scr_read = sil_scr_read, 214 .scr_read = sil_scr_read,
213 .scr_write = sil_scr_write, 215 .scr_write = sil_scr_write,
214 .port_start = ata_port_start, 216 .port_start = ata_port_start,
diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c
index 9dcf11e2c7b3..e65e8d55da3e 100644
--- a/drivers/ata/sata_sil24.c
+++ b/drivers/ata/sata_sil24.c
@@ -400,6 +400,8 @@ static const struct ata_port_operations sil24_ops = {
400 400
401 .irq_handler = sil24_interrupt, 401 .irq_handler = sil24_interrupt,
402 .irq_clear = sil24_irq_clear, 402 .irq_clear = sil24_irq_clear,
403 .irq_on = ata_dummy_irq_on,
404 .irq_ack = ata_dummy_irq_ack,
403 405
404 .scr_read = sil24_scr_read, 406 .scr_read = sil24_scr_read,
405 .scr_write = sil24_scr_write, 407 .scr_write = sil24_scr_write,
diff --git a/drivers/ata/sata_sis.c b/drivers/ata/sata_sis.c
index eee2097c10c0..49c9e2bd706f 100644
--- a/drivers/ata/sata_sis.c
+++ b/drivers/ata/sata_sis.c
@@ -124,6 +124,8 @@ static const struct ata_port_operations sis_ops = {
124 .post_internal_cmd = ata_bmdma_post_internal_cmd, 124 .post_internal_cmd = ata_bmdma_post_internal_cmd,
125 .irq_handler = ata_interrupt, 125 .irq_handler = ata_interrupt,
126 .irq_clear = ata_bmdma_irq_clear, 126 .irq_clear = ata_bmdma_irq_clear,
127 .irq_on = ata_irq_on,
128 .irq_ack = ata_irq_ack,
127 .scr_read = sis_scr_read, 129 .scr_read = sis_scr_read,
128 .scr_write = sis_scr_write, 130 .scr_write = sis_scr_write,
129 .port_start = ata_port_start, 131 .port_start = ata_port_start,
diff --git a/drivers/ata/sata_svw.c b/drivers/ata/sata_svw.c
index 5ce4f593687d..4e4289994204 100644
--- a/drivers/ata/sata_svw.c
+++ b/drivers/ata/sata_svw.c
@@ -356,6 +356,8 @@ static const struct ata_port_operations k2_sata_ops = {
356 .post_internal_cmd = ata_bmdma_post_internal_cmd, 356 .post_internal_cmd = ata_bmdma_post_internal_cmd,
357 .irq_handler = ata_interrupt, 357 .irq_handler = ata_interrupt,
358 .irq_clear = ata_bmdma_irq_clear, 358 .irq_clear = ata_bmdma_irq_clear,
359 .irq_on = ata_irq_on,
360 .irq_ack = ata_irq_ack,
359 .scr_read = k2_sata_scr_read, 361 .scr_read = k2_sata_scr_read,
360 .scr_write = k2_sata_scr_write, 362 .scr_write = k2_sata_scr_write,
361 .port_start = ata_port_start, 363 .port_start = ata_port_start,
diff --git a/drivers/ata/sata_sx4.c b/drivers/ata/sata_sx4.c
index f83038cf1b35..06e87a377382 100644
--- a/drivers/ata/sata_sx4.c
+++ b/drivers/ata/sata_sx4.c
@@ -207,6 +207,8 @@ static const struct ata_port_operations pdc_20621_ops = {
207 .eng_timeout = pdc_eng_timeout, 207 .eng_timeout = pdc_eng_timeout,
208 .irq_handler = pdc20621_interrupt, 208 .irq_handler = pdc20621_interrupt,
209 .irq_clear = pdc20621_irq_clear, 209 .irq_clear = pdc20621_irq_clear,
210 .irq_on = ata_irq_on,
211 .irq_ack = ata_irq_ack,
210 .port_start = pdc_port_start, 212 .port_start = pdc_port_start,
211}; 213};
212 214
diff --git a/drivers/ata/sata_uli.c b/drivers/ata/sata_uli.c
index 77de7cbbe1ae..80131eec68f4 100644
--- a/drivers/ata/sata_uli.c
+++ b/drivers/ata/sata_uli.c
@@ -117,6 +117,8 @@ static const struct ata_port_operations uli_ops = {
117 117
118 .irq_handler = ata_interrupt, 118 .irq_handler = ata_interrupt,
119 .irq_clear = ata_bmdma_irq_clear, 119 .irq_clear = ata_bmdma_irq_clear,
120 .irq_on = ata_irq_on,
121 .irq_ack = ata_irq_ack,
120 122
121 .scr_read = uli_scr_read, 123 .scr_read = uli_scr_read,
122 .scr_write = uli_scr_write, 124 .scr_write = uli_scr_write,
diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c
index 6b558195a76f..baca6d79bb0b 100644
--- a/drivers/ata/sata_via.c
+++ b/drivers/ata/sata_via.c
@@ -143,6 +143,8 @@ static const struct ata_port_operations vt6420_sata_ops = {
143 143
144 .irq_handler = ata_interrupt, 144 .irq_handler = ata_interrupt,
145 .irq_clear = ata_bmdma_irq_clear, 145 .irq_clear = ata_bmdma_irq_clear,
146 .irq_on = ata_irq_on,
147 .irq_ack = ata_irq_ack,
146 148
147 .port_start = ata_port_start, 149 .port_start = ata_port_start,
148}; 150};
@@ -175,6 +177,8 @@ static const struct ata_port_operations vt6421_pata_ops = {
175 177
176 .irq_handler = ata_interrupt, 178 .irq_handler = ata_interrupt,
177 .irq_clear = ata_bmdma_irq_clear, 179 .irq_clear = ata_bmdma_irq_clear,
180 .irq_on = ata_irq_on,
181 .irq_ack = ata_irq_ack,
178 182
179 .port_start = vt6421_port_start, 183 .port_start = vt6421_port_start,
180}; 184};
@@ -204,6 +208,8 @@ static const struct ata_port_operations vt6421_sata_ops = {
204 208
205 .irq_handler = ata_interrupt, 209 .irq_handler = ata_interrupt,
206 .irq_clear = ata_bmdma_irq_clear, 210 .irq_clear = ata_bmdma_irq_clear,
211 .irq_on = ata_irq_on,
212 .irq_ack = ata_irq_ack,
207 213
208 .scr_read = svia_scr_read, 214 .scr_read = svia_scr_read,
209 .scr_write = svia_scr_write, 215 .scr_write = svia_scr_write,
diff --git a/drivers/ata/sata_vsc.c b/drivers/ata/sata_vsc.c
index 7596e9ace50b..3d9daf231115 100644
--- a/drivers/ata/sata_vsc.c
+++ b/drivers/ata/sata_vsc.c
@@ -310,6 +310,8 @@ static const struct ata_port_operations vsc_sata_ops = {
310 .post_internal_cmd = ata_bmdma_post_internal_cmd, 310 .post_internal_cmd = ata_bmdma_post_internal_cmd,
311 .irq_handler = vsc_sata_interrupt, 311 .irq_handler = vsc_sata_interrupt,
312 .irq_clear = ata_bmdma_irq_clear, 312 .irq_clear = ata_bmdma_irq_clear,
313 .irq_on = ata_irq_on,
314 .irq_ack = ata_irq_ack,
313 .scr_read = vsc_sata_scr_read, 315 .scr_read = vsc_sata_scr_read,
314 .scr_write = vsc_sata_scr_write, 316 .scr_write = vsc_sata_scr_write,
315 .port_start = ata_port_start, 317 .port_start = ata_port_start,