diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-02-02 13:56:31 -0500 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-02-02 13:56:31 -0500 |
commit | c413b9b94d9a8e7548cc4b2e04b7df0439ce76fd (patch) | |
tree | 5d23110a0d1f87ad0c88fb1746194e532808eaab /drivers/ide/legacy/umc8672.c | |
parent | 1ebf74936b1fccb5b65940f99ccddd74ec4d1fef (diff) |
ide: add struct ide_port_info instances to legacy host drivers
* Remove 'struct pci_dev *dev' argument from ide_hwif_setup_dma().
* Un-static ide_hwif_setup_dma() and add CONFIG_BLK_DEV_IDEDMA_PCI=n version.
* Add 'const struct ide_port_info *d' argument to ide_device_add[_all]().
* Factor out generic ports init from ide_pci_setup_ports() to ide_init_port(),
move it to ide-probe.c and call it in in ide_device_add_all() instead of
ide_pci_setup_ports().
* Move ->mate setup to ide_device_add_all() from ide_port_init().
* Add IDE_HFLAG_NO_AUTOTUNE host flag for host drivers that don't enable
->autotune currently.
* Setup hwif->chipset in ide_init_port() but iff pi->chipset is set
(to not override setup done by ide_hwif_configure()).
* Add ETRAX host handling to ide_device_add_all().
* cmd640.c: set IDE_HFLAG_ABUSE_* also for CONFIG_BLK_DEV_CMD640_ENHANCED=n.
* pmac.c: make pmac_ide_setup_dma() return an error value and move DMA masks
setup to pmac_ide_setup_device().
* Add 'struct ide_port_info' instances to legacy host drivers, pass them to
ide_device_add() calls and then remove open-coded ports initialization.
Reviewed-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/legacy/umc8672.c')
-rw-r--r-- | drivers/ide/legacy/umc8672.c | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/drivers/ide/legacy/umc8672.c b/drivers/ide/legacy/umc8672.c index 26f38ce58776..5696ba026005 100644 --- a/drivers/ide/legacy/umc8672.c +++ b/drivers/ide/legacy/umc8672.c | |||
@@ -120,9 +120,14 @@ static void umc_set_pio_mode(ide_drive_t *drive, const u8 pio) | |||
120 | spin_unlock_irqrestore(&ide_lock, flags); | 120 | spin_unlock_irqrestore(&ide_lock, flags); |
121 | } | 121 | } |
122 | 122 | ||
123 | static const struct ide_port_info umc8672_port_info __initdata = { | ||
124 | .chipset = ide_umc8672, | ||
125 | .host_flags = IDE_HFLAG_NO_DMA | IDE_HFLAG_NO_AUTOTUNE, | ||
126 | .pio_mask = ATA_PIO4, | ||
127 | }; | ||
128 | |||
123 | static int __init umc8672_probe(void) | 129 | static int __init umc8672_probe(void) |
124 | { | 130 | { |
125 | ide_hwif_t *hwif, *mate; | ||
126 | unsigned long flags; | 131 | unsigned long flags; |
127 | static u8 idx[4] = { 0, 1, 0xff, 0xff }; | 132 | static u8 idx[4] = { 0, 1, 0xff, 0xff }; |
128 | 133 | ||
@@ -143,21 +148,10 @@ static int __init umc8672_probe(void) | |||
143 | umc_set_speeds (current_speeds); | 148 | umc_set_speeds (current_speeds); |
144 | local_irq_restore(flags); | 149 | local_irq_restore(flags); |
145 | 150 | ||
146 | hwif = &ide_hwifs[0]; | 151 | ide_hwifs[0].set_pio_mode = &umc_set_pio_mode; |
147 | mate = &ide_hwifs[1]; | 152 | ide_hwifs[1].set_pio_mode = &umc_set_pio_mode; |
148 | |||
149 | hwif->chipset = ide_umc8672; | ||
150 | hwif->pio_mask = ATA_PIO4; | ||
151 | hwif->set_pio_mode = &umc_set_pio_mode; | ||
152 | hwif->mate = mate; | ||
153 | |||
154 | mate->chipset = ide_umc8672; | ||
155 | mate->pio_mask = ATA_PIO4; | ||
156 | mate->set_pio_mode = &umc_set_pio_mode; | ||
157 | mate->mate = hwif; | ||
158 | mate->channel = 1; | ||
159 | 153 | ||
160 | ide_device_add(idx); | 154 | ide_device_add(idx, &umc8672_port_info); |
161 | 155 | ||
162 | return 0; | 156 | return 0; |
163 | } | 157 | } |