]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ide/ppc/mpc8xx.c
cmd64x: don't clear the other channel's interrupt
[linux-2.6-omap-h63xx.git] / drivers / ide / ppc / mpc8xx.c
index 8859fe2f5ac2ec6e0a5f1d17c00c8eddac9997d9..5f0da35ab5ad0a3ef977ab67c8145c0733f47245 100644 (file)
@@ -32,7 +32,6 @@
 #include <asm/mpc8xx.h>
 #include <asm/mmu.h>
 #include <asm/processor.h>
-#include <asm/residual.h>
 #include <asm/io.h>
 #include <asm/pgtable.h>
 #include <asm/ide.h>
@@ -46,7 +45,7 @@ static void print_funcid (int func);
 static int check_ide_device (unsigned long base);
 
 static void ide_interrupt_ack (void *dev);
-static void m8xx_ide_tuneproc(ide_drive_t *drive, u8 pio);
+static void m8xx_ide_set_pio_mode(ide_drive_t *drive, const u8 pio);
 
 typedef        struct ide_ioport_desc {
        unsigned long   base_off;               /* Offset to PCMCIA memory      */
@@ -315,11 +314,10 @@ m8xx_ide_init_hwif_ports(hw_regs_t *hw, unsigned long data_port,
 #endif /* CONFIG_IDE_8xx_PCCARD */
        }
 
-       /* register routine to tune PIO mode */
        ide_hwifs[data_port].pio_mask = ATA_PIO4;
-       ide_hwifs[data_port].tuneproc = m8xx_ide_tuneproc;
+       ide_hwifs[data_port].set_pio_mode = m8xx_ide_set_pio_mode;
+       ide_hwifs[data_port].ack_intr = (ide_ack_intr_t *)ide_interrupt_ack;
 
-       hw->ack_intr = (ide_ack_intr_t *) ide_interrupt_ack;
        /* Enable Harddisk Interrupt,
         * and make it edge sensitive
         */
@@ -402,11 +400,10 @@ void m8xx_ide_init_hwif_ports (hw_regs_t *hw,
                *irq = ioport_dsc[data_port].irq;
        }
 
-       /* register routine to tune PIO mode */
        ide_hwifs[data_port].pio_mask = ATA_PIO4;
-       ide_hwifs[data_port].tuneproc = m8xx_ide_tuneproc;
+       ide_hwifs[data_port].set_pio_mode = m8xx_ide_set_pio_mode;
+       ide_hwifs[data_port].ack_intr = (ide_ack_intr_t *)ide_interrupt_ack;
 
-       hw->ack_intr = (ide_ack_intr_t *) ide_interrupt_ack;
        /* Enable Harddisk Interrupt,
         * and make it edge sensitive
         */
@@ -428,24 +425,13 @@ void m8xx_ide_init_hwif_ports (hw_regs_t *hw,
 #define PCMCIA_SL(t) ((t==32) ? 0 : ((t & 0x1F)<<7)) /* Strobe Length  */
 #endif
 
-
 /* Calculate PIO timings */
-static void
-m8xx_ide_tuneproc(ide_drive_t *drive, u8 pio)
+static void m8xx_ide_set_pio_mode(ide_drive_t *drive, const u8 pio)
 {
 #if defined(CONFIG_IDE_8xx_PCCARD) || defined(CONFIG_IDE_8xx_DIRECT)
        volatile pcmconf8xx_t   *pcmp;
        ulong timing, mask, reg;
-#endif
-
-       pio = ide_get_best_pio_mode(drive, pio, 4);
 
-#if 1
-       printk("%s[%d] %s: best PIO mode: %d\n",
-               __FILE__,__LINE__,__FUNCTION__, pio);
-#endif
-
-#if defined(CONFIG_IDE_8xx_PCCARD) || defined(CONFIG_IDE_8xx_DIRECT)
        pcmp = (pcmconf8xx_t *)(&(((immap_t *)IMAP_ADDR)->im_pcmcia));
 
        mask = ~(PCMCIA_SHT(0xFF) | PCMCIA_SST(0xFF) | PCMCIA_SL(0xFF));