aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/arm/icside.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/arm/icside.c')
-rw-r--r--drivers/ide/arm/icside.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/ide/arm/icside.c b/drivers/ide/arm/icside.c
index 52f58c885783..850fe9342a1f 100644
--- a/drivers/ide/arm/icside.c
+++ b/drivers/ide/arm/icside.c
@@ -442,8 +442,8 @@ icside_register_v5(struct icside_state *state, struct expansion_card *ec)
442{ 442{
443 ide_hwif_t *hwif; 443 ide_hwif_t *hwif;
444 void __iomem *base; 444 void __iomem *base;
445 hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };
445 u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; 446 u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };
446 hw_regs_t hw;
447 447
448 base = ecardm_iomap(ec, ECARD_RES_MEMC, 0, 0); 448 base = ecardm_iomap(ec, ECARD_RES_MEMC, 0, 0);
449 if (!base) 449 if (!base)
@@ -467,7 +467,6 @@ icside_register_v5(struct icside_state *state, struct expansion_card *ec)
467 if (!hwif) 467 if (!hwif)
468 return -ENODEV; 468 return -ENODEV;
469 469
470 ide_init_port_hw(hwif, &hw);
471 default_hwif_mmiops(hwif); 470 default_hwif_mmiops(hwif);
472 471
473 state->hwif[0] = hwif; 472 state->hwif[0] = hwif;
@@ -476,7 +475,7 @@ icside_register_v5(struct icside_state *state, struct expansion_card *ec)
476 475
477 idx[0] = hwif->index; 476 idx[0] = hwif->index;
478 477
479 ide_device_add(idx, NULL); 478 ide_device_add(idx, NULL, hws);
480 479
481 return 0; 480 return 0;
482} 481}
@@ -497,9 +496,9 @@ icside_register_v6(struct icside_state *state, struct expansion_card *ec)
497 void __iomem *ioc_base, *easi_base; 496 void __iomem *ioc_base, *easi_base;
498 unsigned int sel = 0; 497 unsigned int sel = 0;
499 int ret; 498 int ret;
499 hw_regs_t hw[2], *hws[] = { &hw[0], NULL, NULL, NULL };
500 u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; 500 u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };
501 struct ide_port_info d = icside_v6_port_info; 501 struct ide_port_info d = icside_v6_port_info;
502 hw_regs_t hw[2];
503 502
504 ioc_base = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0); 503 ioc_base = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0);
505 if (!ioc_base) { 504 if (!ioc_base) {
@@ -545,16 +544,16 @@ icside_register_v6(struct icside_state *state, struct expansion_card *ec)
545 if (hwif == NULL) 544 if (hwif == NULL)
546 return -ENODEV; 545 return -ENODEV;
547 546
548 ide_init_port_hw(hwif, &hw[0]); 547 hwif->chipset = ide_acorn;
549 default_hwif_mmiops(hwif); 548 default_hwif_mmiops(hwif);
550 549
551 idx[0] = hwif->index; 550 idx[0] = hwif->index;
552 551
553 mate = ide_find_port(); 552 mate = ide_find_port();
554 if (mate) { 553 if (mate) {
555 ide_init_port_hw(mate, &hw[1]);
556 default_hwif_mmiops(mate); 554 default_hwif_mmiops(mate);
557 555
556 hws[1] = &hw[1];
558 idx[1] = mate->index; 557 idx[1] = mate->index;
559 } 558 }
560 559
@@ -569,7 +568,7 @@ icside_register_v6(struct icside_state *state, struct expansion_card *ec)
569 d.dma_ops = NULL; 568 d.dma_ops = NULL;
570 } 569 }
571 570
572 ide_device_add(idx, &d); 571 ide_device_add(idx, &d, hws);
573 572
574 return 0; 573 return 0;
575 574