ide: remove XFER_* masks from ide-timing.h
[safe/jmp/linux-2.6] / drivers / ide / pci / cmd640.c
index 812027d..cd1ba14 100644 (file)
@@ -347,12 +347,12 @@ static int __init secondary_port_responding(void)
 
        spin_lock_irqsave(&cmd640_lock, flags);
 
-       outb_p(0x0a, 0x170 + IDE_SELECT_OFFSET);        /* select drive0 */
+       outb_p(0x0a, 0x176);    /* select drive0 */
        udelay(100);
-       if ((inb_p(0x170 + IDE_SELECT_OFFSET) & 0x1f) != 0x0a) {
-               outb_p(0x1a, 0x170 + IDE_SELECT_OFFSET); /* select drive1 */
+       if ((inb_p(0x176) & 0x1f) != 0x0a) {
+               outb_p(0x1a, 0x176); /* select drive1 */
                udelay(100);
-               if ((inb_p(0x170 + IDE_SELECT_OFFSET) & 0x1f) != 0x1a) {
+               if ((inb_p(0x176) & 0x1f) != 0x1a) {
                        spin_unlock_irqrestore(&cmd640_lock, flags);
                        return 0; /* nothing responded */
                }
@@ -525,12 +525,10 @@ static void cmd640_set_mode(ide_drive_t *drive, unsigned int index,
        u8 setup_count, active_count, recovery_count, recovery_count2, cycle_count;
        int bus_speed;
 
-       if (cmd640_vlb && ide_vlb_clk)
-               bus_speed = ide_vlb_clk;
-       else if (!cmd640_vlb && ide_pci_clk)
-               bus_speed = ide_pci_clk;
+       if (cmd640_vlb)
+               bus_speed = ide_vlb_clk ? ide_vlb_clk : 50;
        else
-               bus_speed = system_bus_clock();
+               bus_speed = ide_pci_clk ? ide_pci_clk : 33;
 
        if (pio_mode > 5)
                pio_mode = 5;
@@ -747,9 +745,11 @@ static int __init cmd640x_init(void)
 
        ide_std_init_ports(&hw[0], 0x1f0, 0x3f6);
        hw[0].irq = 14;
+       hw[0].chipset = ide_cmd640;
 
        ide_std_init_ports(&hw[1], 0x170, 0x376);
        hw[1].irq = 15;
+       hw[1].chipset = ide_cmd640;
 
        printk(KERN_INFO "cmd640: buggy cmd640%c interface on %s, config=0x%02x"
                         "\n", 'a' + cmd640_chip_version - 1, bus_type, cfr);