aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/sl82c105.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/pci/sl82c105.c')
-rw-r--r--drivers/ide/pci/sl82c105.c27
1 files changed, 9 insertions, 18 deletions
diff --git a/drivers/ide/pci/sl82c105.c b/drivers/ide/pci/sl82c105.c
index c2127cbdecd3..635d607bc0cf 100644
--- a/drivers/ide/pci/sl82c105.c
+++ b/drivers/ide/pci/sl82c105.c
@@ -282,34 +282,25 @@ static unsigned int __devinit init_chipset_sl82c105(struct pci_dev *dev, const c
282 return dev->irq; 282 return dev->irq;
283} 283}
284 284
285/*
286 * Initialise IDE channel
287 */
288static void __devinit init_hwif_sl82c105(ide_hwif_t *hwif)
289{
290 DBG(("init_hwif_sl82c105(hwif: ide%d)\n", hwif->index));
291
292 if (!hwif->dma_base)
293 return;
294
295 hwif->dma_lost_irq = &sl82c105_dma_lost_irq;
296 hwif->dma_start = &sl82c105_dma_start;
297 hwif->ide_dma_end = &sl82c105_dma_end;
298 hwif->dma_timeout = &sl82c105_dma_timeout;
299}
300
301static const struct ide_port_ops sl82c105_port_ops = { 285static const struct ide_port_ops sl82c105_port_ops = {
302 .set_pio_mode = sl82c105_set_pio_mode, 286 .set_pio_mode = sl82c105_set_pio_mode,
303 .set_dma_mode = sl82c105_set_dma_mode, 287 .set_dma_mode = sl82c105_set_dma_mode,
304 .resetproc = sl82c105_resetproc, 288 .resetproc = sl82c105_resetproc,
305}; 289};
306 290
291static struct ide_dma_ops sl82c105_dma_ops = {
292 .dma_start = sl82c105_dma_start,
293 .dma_end = sl82c105_dma_end,
294 .dma_lost_irq = sl82c105_dma_lost_irq,
295 .dma_timeout = sl82c105_dma_timeout,
296};
297
307static const struct ide_port_info sl82c105_chipset __devinitdata = { 298static const struct ide_port_info sl82c105_chipset __devinitdata = {
308 .name = "W82C105", 299 .name = "W82C105",
309 .init_chipset = init_chipset_sl82c105, 300 .init_chipset = init_chipset_sl82c105,
310 .init_hwif = init_hwif_sl82c105,
311 .enablebits = {{0x40,0x01,0x01}, {0x40,0x10,0x10}}, 301 .enablebits = {{0x40,0x01,0x01}, {0x40,0x10,0x10}},
312 .port_ops = &sl82c105_port_ops, 302 .port_ops = &sl82c105_port_ops,
303 .dma_ops = &sl82c105_dma_ops,
313 .host_flags = IDE_HFLAG_IO_32BIT | 304 .host_flags = IDE_HFLAG_IO_32BIT |
314 IDE_HFLAG_UNMASK_IRQS | 305 IDE_HFLAG_UNMASK_IRQS |
315/* FIXME: check for Compatibility mode in generic IDE PCI code */ 306/* FIXME: check for Compatibility mode in generic IDE PCI code */
@@ -334,7 +325,7 @@ static int __devinit sl82c105_init_one(struct pci_dev *dev, const struct pci_dev
334 */ 325 */
335 printk(KERN_INFO "W82C105_IDE: Winbond W83C553 bridge " 326 printk(KERN_INFO "W82C105_IDE: Winbond W83C553 bridge "
336 "revision %d, BM-DMA disabled\n", rev); 327 "revision %d, BM-DMA disabled\n", rev);
337 d.init_hwif = NULL; 328 d.dma_ops = NULL;
338 d.mwdma_mask = 0; 329 d.mwdma_mask = 0;
339 d.host_flags &= ~IDE_HFLAG_SERIALIZE_DMA; 330 d.host_flags &= ~IDE_HFLAG_SERIALIZE_DMA;
340 } 331 }