aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/arm
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-04-27 13:13:06 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-27 13:13:06 -0400
commitfba5c1af5c4fd6645fe62ea84ccde0981282cf66 (patch)
tree834022eb683e0badd5a1e5eb5957f74c0e69ebb4 /drivers/ide/arm
parentf222eba0f9d98376d363b51fcc2361fb56929844 (diff)
parent077e3bdb9ec34d7cb5751b5be81a4a0f6f0eb5dc (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (49 commits) ide-tape: remove tape->merge_stage ide-tape: mv tape->merge_stage_size tape->merge_bh_size ide-tape: mv idetape_empty_write_pipeline ide_tape_flush_merge_buffer ide-tape: mv idetape_discard_read_pipeline ide_tape_discard_merge_buffer ide-tape: make __idetape_discard_read_pipeline() of type void ide: remove now unused ide_pci_create_host_proc() ide: remove /proc/ide/ali ide-tape: improve buffer pages freeing strategy ide-tape: mv tape->pages_per_stage tape->pages_per_buffer ide-tape: mv tape->stage_size tape->buffer_size ide-tape: improve buffer allocation strategy ide: add struct ide_io_ports (take 3) ide: make ide_unregister() take 'ide_hwif_t *' as an argument (take 2) ide: sanitize ide_unregister() usage mpc8xx-ide: use ide_find_port() ide: add "noacpi" / "acpigtf" / "acpionboot" parameters gayle: add "doubler" parameter ide: add "cdrom=" and "chs=" parameters ide: add "nodma|noflush|noprobe|nowerr=" parameters ide: remove obsoleted "hdx=autotune" kernel parameter ...
Diffstat (limited to 'drivers/ide/arm')
-rw-r--r--drivers/ide/arm/bast-ide.c12
-rw-r--r--drivers/ide/arm/icside.c13
-rw-r--r--drivers/ide/arm/palm_bk3710.c12
-rw-r--r--drivers/ide/arm/rapide.c8
4 files changed, 18 insertions, 27 deletions
diff --git a/drivers/ide/arm/bast-ide.c b/drivers/ide/arm/bast-ide.c
index d158f579bde2..713cef20622e 100644
--- a/drivers/ide/arm/bast-ide.c
+++ b/drivers/ide/arm/bast-ide.c
@@ -35,12 +35,12 @@ static int __init bastide_register(unsigned int base, unsigned int aux, int irq)
35 base += BAST_IDE_CS; 35 base += BAST_IDE_CS;
36 aux += BAST_IDE_CS; 36 aux += BAST_IDE_CS;
37 37
38 for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) { 38 for (i = 0; i <= 7; i++) {
39 hw.io_ports[i] = (unsigned long)base; 39 hw.io_ports_array[i] = (unsigned long)base;
40 base += 0x20; 40 base += 0x20;
41 } 41 }
42 42
43 hw.io_ports[IDE_CONTROL_OFFSET] = aux + (6 * 0x20); 43 hw.io_ports.ctl_addr = aux + (6 * 0x20);
44 hw.irq = irq; 44 hw.irq = irq;
45 45
46 hwif = ide_find_port(); 46 hwif = ide_find_port();
@@ -49,11 +49,7 @@ static int __init bastide_register(unsigned int base, unsigned int aux, int irq)
49 49
50 i = hwif->index; 50 i = hwif->index;
51 51
52 if (hwif->present) 52 ide_init_port_data(hwif, i);
53 ide_unregister(i);
54 else
55 ide_init_port_data(hwif, i);
56
57 ide_init_port_hw(hwif, &hw); 53 ide_init_port_hw(hwif, &hw);
58 hwif->port_ops = NULL; 54 hwif->port_ops = NULL;
59 55
diff --git a/drivers/ide/arm/icside.c b/drivers/ide/arm/icside.c
index 7d642f44e35b..124445c20921 100644
--- a/drivers/ide/arm/icside.c
+++ b/drivers/ide/arm/icside.c
@@ -426,11 +426,12 @@ icside_setup(void __iomem *base, struct cardinfo *info, struct expansion_card *e
426 */ 426 */
427 default_hwif_mmiops(hwif); 427 default_hwif_mmiops(hwif);
428 428
429 for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) { 429 for (i = 0; i <= 7; i++) {
430 hwif->io_ports[i] = port; 430 hwif->io_ports_array[i] = port;
431 port += 1 << info->stepping; 431 port += 1 << info->stepping;
432 } 432 }
433 hwif->io_ports[IDE_CONTROL_OFFSET] = (unsigned long)base + info->ctrloffset; 433 hwif->io_ports.ctl_addr =
434 (unsigned long)base + info->ctrloffset;
434 hwif->irq = ec->irq; 435 hwif->irq = ec->irq;
435 hwif->chipset = ide_acorn; 436 hwif->chipset = ide_acorn;
436 hwif->gendev.parent = &ec->dev; 437 hwif->gendev.parent = &ec->dev;
@@ -480,8 +481,7 @@ static const struct ide_port_info icside_v6_port_info __initdata = {
480 .init_dma = icside_dma_off_init, 481 .init_dma = icside_dma_off_init,
481 .port_ops = &icside_v6_no_dma_port_ops, 482 .port_ops = &icside_v6_no_dma_port_ops,
482 .dma_ops = &icside_v6_dma_ops, 483 .dma_ops = &icside_v6_dma_ops,
483 .host_flags = IDE_HFLAG_SERIALIZE | 484 .host_flags = IDE_HFLAG_SERIALIZE,
484 IDE_HFLAG_NO_AUTOTUNE,
485 .mwdma_mask = ATA_MWDMA2, 485 .mwdma_mask = ATA_MWDMA2,
486 .swdma_mask = ATA_SWDMA2, 486 .swdma_mask = ATA_SWDMA2,
487}; 487};
@@ -547,14 +547,13 @@ icside_register_v6(struct icside_state *state, struct expansion_card *ec)
547 hwif->config_data = (unsigned long)ioc_base; 547 hwif->config_data = (unsigned long)ioc_base;
548 hwif->select_data = sel; 548 hwif->select_data = sel;
549 549
550 mate->maskproc = icside_maskproc;
551 mate->hwif_data = state; 550 mate->hwif_data = state;
552 mate->config_data = (unsigned long)ioc_base; 551 mate->config_data = (unsigned long)ioc_base;
553 mate->select_data = sel | 1; 552 mate->select_data = sel | 1;
554 553
555 if (ec->dma != NO_DMA && !request_dma(ec->dma, hwif->name)) { 554 if (ec->dma != NO_DMA && !request_dma(ec->dma, hwif->name)) {
556 d.init_dma = icside_dma_init; 555 d.init_dma = icside_dma_init;
557 d.port_ops = &icside_v6_dma_port_ops; 556 d.port_ops = &icside_v6_port_ops;
558 d.dma_ops = NULL; 557 d.dma_ops = NULL;
559 } 558 }
560 559
diff --git a/drivers/ide/arm/palm_bk3710.c b/drivers/ide/arm/palm_bk3710.c
index 8fa34e26443a..aaf32541622d 100644
--- a/drivers/ide/arm/palm_bk3710.c
+++ b/drivers/ide/arm/palm_bk3710.c
@@ -321,7 +321,7 @@ static int __devinit palm_bk3710_init_dma(ide_hwif_t *hwif,
321 const struct ide_port_info *d) 321 const struct ide_port_info *d)
322{ 322{
323 unsigned long base = 323 unsigned long base =
324 hwif->io_ports[IDE_DATA_OFFSET] - IDE_PALM_ATA_PRI_REG_OFFSET; 324 hwif->io_ports.data_addr - IDE_PALM_ATA_PRI_REG_OFFSET;
325 325
326 printk(KERN_INFO " %s: MMIO-DMA\n", hwif->name); 326 printk(KERN_INFO " %s: MMIO-DMA\n", hwif->name);
327 327
@@ -386,8 +386,8 @@ static int __devinit palm_bk3710_probe(struct platform_device *pdev)
386 386
387 pribase = mem->start + IDE_PALM_ATA_PRI_REG_OFFSET; 387 pribase = mem->start + IDE_PALM_ATA_PRI_REG_OFFSET;
388 for (i = 0; i < IDE_NR_PORTS - 2; i++) 388 for (i = 0; i < IDE_NR_PORTS - 2; i++)
389 hw.io_ports[i] = pribase + i; 389 hw.io_ports_array[i] = pribase + i;
390 hw.io_ports[IDE_CONTROL_OFFSET] = mem->start + 390 hw.io_ports.ctl_addr = mem->start +
391 IDE_PALM_ATA_PRI_CTL_OFFSET; 391 IDE_PALM_ATA_PRI_CTL_OFFSET;
392 hw.irq = irq->start; 392 hw.irq = irq->start;
393 hw.chipset = ide_palm3710; 393 hw.chipset = ide_palm3710;
@@ -398,11 +398,7 @@ static int __devinit palm_bk3710_probe(struct platform_device *pdev)
398 398
399 i = hwif->index; 399 i = hwif->index;
400 400
401 if (hwif->present) 401 ide_init_port_data(hwif, i);
402 ide_unregister(i);
403 else
404 ide_init_port_data(hwif, i);
405
406 ide_init_port_hw(hwif, &hw); 402 ide_init_port_hw(hwif, &hw);
407 403
408 hwif->mmio = 1; 404 hwif->mmio = 1;
diff --git a/drivers/ide/arm/rapide.c b/drivers/ide/arm/rapide.c
index c0581bd98d0d..babc1a5e128d 100644
--- a/drivers/ide/arm/rapide.c
+++ b/drivers/ide/arm/rapide.c
@@ -17,11 +17,11 @@ static void rapide_setup_ports(hw_regs_t *hw, void __iomem *base,
17 unsigned long port = (unsigned long)base; 17 unsigned long port = (unsigned long)base;
18 int i; 18 int i;
19 19
20 for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) { 20 for (i = 0; i <= 7; i++) {
21 hw->io_ports[i] = port; 21 hw->io_ports_array[i] = port;
22 port += sz; 22 port += sz;
23 } 23 }
24 hw->io_ports[IDE_CONTROL_OFFSET] = (unsigned long)ctrl; 24 hw->io_ports.ctl_addr = (unsigned long)ctrl;
25 hw->irq = irq; 25 hw->irq = irq;
26} 26}
27 27
@@ -75,7 +75,7 @@ static void __devexit rapide_remove(struct expansion_card *ec)
75 75
76 ecard_set_drvdata(ec, NULL); 76 ecard_set_drvdata(ec, NULL);
77 77
78 ide_unregister(hwif->index); 78 ide_unregister(hwif);
79 79
80 ecard_release_resources(ec); 80 ecard_release_resources(ec);
81} 81}