diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-04-26 16:25:14 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-04-26 16:25:14 -0400 |
commit | ac95beedf8bc97b24f9540d4da9952f07221c023 (patch) | |
tree | c29837142c8083b6fcaf1767abcb0a4533676cd1 /drivers/ide/pci/sgiioc4.c | |
parent | 4a27214d7be31e122db4102166f49ec15958e8e9 (diff) |
ide: add struct ide_port_ops (take 2)
* Move hooks for port/host specific methods from ide_hwif_t to
'struct ide_port_ops'.
* Add 'const struct ide_port_ops *port_ops' to 'struct ide_port_info'
and ide_hwif_t.
* Update host drivers and core code accordingly.
While at it:
* Rename ata66_*() cable detect functions to *_cable_detect() to match
the standard naming. (Suggested by Sergei Shtylyov)
v2:
* Fix build for bast-ide. (Noticed by Andrew Morton)
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/pci/sgiioc4.c')
-rw-r--r-- | drivers/ide/pci/sgiioc4.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/ide/pci/sgiioc4.c b/drivers/ide/pci/sgiioc4.c index 6bd9523cf642..22ac0f70c423 100644 --- a/drivers/ide/pci/sgiioc4.c +++ b/drivers/ide/pci/sgiioc4.c | |||
@@ -552,16 +552,6 @@ static void __devinit | |||
552 | ide_init_sgiioc4(ide_hwif_t * hwif) | 552 | ide_init_sgiioc4(ide_hwif_t * hwif) |
553 | { | 553 | { |
554 | hwif->mmio = 1; | 554 | hwif->mmio = 1; |
555 | hwif->set_pio_mode = NULL; /* Sets timing for PIO mode */ | ||
556 | hwif->set_dma_mode = &sgiioc4_set_dma_mode; | ||
557 | hwif->selectproc = NULL;/* Use the default routine to select drive */ | ||
558 | hwif->reset_poll = NULL;/* No HBA specific reset_poll needed */ | ||
559 | hwif->pre_reset = NULL; /* No HBA specific pre_set needed */ | ||
560 | hwif->resetproc = &sgiioc4_resetproc;/* Reset DMA engine, | ||
561 | clear interrupts */ | ||
562 | hwif->maskproc = &sgiioc4_maskproc; /* Mask on/off NIEN register */ | ||
563 | hwif->quirkproc = NULL; | ||
564 | |||
565 | hwif->INB = &sgiioc4_INB; | 555 | hwif->INB = &sgiioc4_INB; |
566 | 556 | ||
567 | if (hwif->dma_base == 0) | 557 | if (hwif->dma_base == 0) |
@@ -576,8 +566,17 @@ ide_init_sgiioc4(ide_hwif_t * hwif) | |||
576 | hwif->dma_timeout = &ide_dma_timeout; | 566 | hwif->dma_timeout = &ide_dma_timeout; |
577 | } | 567 | } |
578 | 568 | ||
569 | static const struct ide_port_ops sgiioc4_port_ops = { | ||
570 | .set_dma_mode = sgiioc4_set_dma_mode, | ||
571 | /* reset DMA engine, clear IRQs */ | ||
572 | .resetproc = sgiioc4_resetproc, | ||
573 | /* mask on/off NIEN register */ | ||
574 | .maskproc = sgiioc4_maskproc, | ||
575 | }; | ||
576 | |||
579 | static const struct ide_port_info sgiioc4_port_info __devinitdata = { | 577 | static const struct ide_port_info sgiioc4_port_info __devinitdata = { |
580 | .chipset = ide_pci, | 578 | .chipset = ide_pci, |
579 | .port_ops = &sgiioc4_port_ops, | ||
581 | .host_flags = IDE_HFLAG_NO_DMA | /* no SFF-style DMA */ | 580 | .host_flags = IDE_HFLAG_NO_DMA | /* no SFF-style DMA */ |
582 | IDE_HFLAG_NO_AUTOTUNE, | 581 | IDE_HFLAG_NO_AUTOTUNE, |
583 | .mwdma_mask = ATA_MWDMA2_ONLY, | 582 | .mwdma_mask = ATA_MWDMA2_ONLY, |