diff options
Diffstat (limited to 'drivers/ide/cmd640.c')
-rw-r--r-- | drivers/ide/cmd640.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/ide/cmd640.c b/drivers/ide/cmd640.c index 8890276fef7f..1683ed5c7329 100644 --- a/drivers/ide/cmd640.c +++ b/drivers/ide/cmd640.c | |||
@@ -708,7 +708,7 @@ static int __init cmd640x_init(void) | |||
708 | int second_port_cmd640 = 0, rc; | 708 | int second_port_cmd640 = 0, rc; |
709 | const char *bus_type, *port2; | 709 | const char *bus_type, *port2; |
710 | u8 b, cfr; | 710 | u8 b, cfr; |
711 | hw_regs_t hw[2], *hws[] = { NULL, NULL, NULL, NULL }; | 711 | struct ide_hw hw[2], *hws[2]; |
712 | 712 | ||
713 | if (cmd640_vlb && probe_for_cmd640_vlb()) { | 713 | if (cmd640_vlb && probe_for_cmd640_vlb()) { |
714 | bus_type = "VLB"; | 714 | bus_type = "VLB"; |
@@ -762,11 +762,9 @@ static int __init cmd640x_init(void) | |||
762 | 762 | ||
763 | ide_std_init_ports(&hw[0], 0x1f0, 0x3f6); | 763 | ide_std_init_ports(&hw[0], 0x1f0, 0x3f6); |
764 | hw[0].irq = 14; | 764 | hw[0].irq = 14; |
765 | hw[0].chipset = ide_cmd640; | ||
766 | 765 | ||
767 | ide_std_init_ports(&hw[1], 0x170, 0x376); | 766 | ide_std_init_ports(&hw[1], 0x170, 0x376); |
768 | hw[1].irq = 15; | 767 | hw[1].irq = 15; |
769 | hw[1].chipset = ide_cmd640; | ||
770 | 768 | ||
771 | printk(KERN_INFO "cmd640: buggy cmd640%c interface on %s, config=0x%02x" | 769 | printk(KERN_INFO "cmd640: buggy cmd640%c interface on %s, config=0x%02x" |
772 | "\n", 'a' + cmd640_chip_version - 1, bus_type, cfr); | 770 | "\n", 'a' + cmd640_chip_version - 1, bus_type, cfr); |
@@ -824,7 +822,8 @@ static int __init cmd640x_init(void) | |||
824 | cmd640_dump_regs(); | 822 | cmd640_dump_regs(); |
825 | #endif | 823 | #endif |
826 | 824 | ||
827 | return ide_host_add(&cmd640_port_info, hws, NULL); | 825 | return ide_host_add(&cmd640_port_info, hws, second_port_cmd640 ? 2 : 1, |
826 | NULL); | ||
828 | } | 827 | } |
829 | 828 | ||
830 | module_param_named(probe_vlb, cmd640_vlb, bool, 0); | 829 | module_param_named(probe_vlb, cmd640_vlb, bool, 0); |