diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-27 10:13:06 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-27 10:13:06 -0700 |
commit | fba5c1af5c4fd6645fe62ea84ccde0981282cf66 (patch) | |
tree | 834022eb683e0badd5a1e5eb5957f74c0e69ebb4 /drivers/ide/pci/siimage.c | |
parent | f222eba0f9d98376d363b51fcc2361fb56929844 (diff) | |
parent | 077e3bdb9ec34d7cb5751b5be81a4a0f6f0eb5dc (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/pci/siimage.c')
-rw-r--r-- | drivers/ide/pci/siimage.c | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/drivers/ide/pci/siimage.c b/drivers/ide/pci/siimage.c index 1fffea3211b..c2040a017f4 100644 --- a/drivers/ide/pci/siimage.c +++ b/drivers/ide/pci/siimage.c @@ -622,9 +622,10 @@ static void __devinit init_mmio_iops_siimage(ide_hwif_t *hwif) struct pci_dev *dev = to_pci_dev(hwif->dev); void *addr = pci_get_drvdata(dev); u8 ch = hwif->channel; - hw_regs_t hw; unsigned long base; + struct ide_io_ports *io_ports = &hwif->io_ports; + /* * Fill in the basic HWIF bits */ @@ -638,7 +639,7 @@ static void __devinit init_mmio_iops_siimage(ide_hwif_t *hwif) * based I/O */ - memset(&hw, 0, sizeof(hw_regs_t)); + memset(io_ports, 0, sizeof(*io_ports)); base = (unsigned long)addr; if (ch) @@ -651,17 +652,15 @@ static void __devinit init_mmio_iops_siimage(ide_hwif_t *hwif) * so we can't currently use it sanely since we want to * use LBA48 mode. */ - hw.io_ports[IDE_DATA_OFFSET] = base; - hw.io_ports[IDE_ERROR_OFFSET] = base + 1; - hw.io_ports[IDE_NSECTOR_OFFSET] = base + 2; - hw.io_ports[IDE_SECTOR_OFFSET] = base + 3; - hw.io_ports[IDE_LCYL_OFFSET] = base + 4; - hw.io_ports[IDE_HCYL_OFFSET] = base + 5; - hw.io_ports[IDE_SELECT_OFFSET] = base + 6; - hw.io_ports[IDE_STATUS_OFFSET] = base + 7; - hw.io_ports[IDE_CONTROL_OFFSET] = base + 10; - - hw.io_ports[IDE_IRQ_OFFSET] = 0; + io_ports->data_addr = base; + io_ports->error_addr = base + 1; + io_ports->nsect_addr = base + 2; + io_ports->lbal_addr = base + 3; + io_ports->lbam_addr = base + 4; + io_ports->lbah_addr = base + 5; + io_ports->device_addr = base + 6; + io_ports->status_addr = base + 7; + io_ports->ctl_addr = base + 10; if (pdev_is_sata(dev)) { base = (unsigned long)addr; @@ -672,8 +671,6 @@ static void __devinit init_mmio_iops_siimage(ide_hwif_t *hwif) hwif->sata_scr[SATA_CONTROL_OFFSET] = base + 0x100; } - memcpy(hwif->io_ports, hw.io_ports, sizeof(hwif->io_ports)); - hwif->irq = dev->irq; hwif->dma_base = (unsigned long)addr + (ch ? 0x08 : 0x00); |