瀏覽代碼

qd65xx: fix setup of QD6580 Control register

Control register of QD6580 should be setup before probing for devices.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz 17 年之前
父節點
當前提交
788d669736
共有 1 個文件被更改,包括 2 次插入4 次删除
  1. 2 4
      drivers/ide/legacy/qd65xx.c

+ 2 - 4
drivers/ide/legacy/qd65xx.c

@@ -444,6 +444,8 @@ static int __init qd_probe(int base)
 		printk(KERN_DEBUG "qd6580: config=%#x, control=%#x, ID3=%u\n",
 		printk(KERN_DEBUG "qd6580: config=%#x, control=%#x, ID3=%u\n",
 			config, control, QD_ID3);
 			config, control, QD_ID3);
 
 
+		outb(QD_DEF_CONTR, QD_CONTROL_PORT);
+
 		if (control & QD_CONTR_SEC_DISABLED) {
 		if (control & QD_CONTR_SEC_DISABLED) {
 			/* secondary disabled */
 			/* secondary disabled */
 
 
@@ -460,8 +462,6 @@ static int __init qd_probe(int base)
 
 
 			ide_device_add(idx, &qd65xx_port_info);
 			ide_device_add(idx, &qd65xx_port_info);
 
 
-			outb(QD_DEF_CONTR, QD_CONTROL_PORT);
-
 			return 1;
 			return 1;
 		} else {
 		} else {
 			ide_hwif_t *mate;
 			ide_hwif_t *mate;
@@ -487,8 +487,6 @@ static int __init qd_probe(int base)
 
 
 			ide_device_add(idx, &qd65xx_port_info);
 			ide_device_add(idx, &qd65xx_port_info);
 
 
-			outb(QD_DEF_CONTR, QD_CONTROL_PORT);
-
 			return 0; /* no other qd65xx possible */
 			return 0; /* no other qd65xx possible */
 		}
 		}
 	}
 	}