summaryrefslogtreecommitdiffstats
path: root/target/linux/generic-2.6/patches-2.6.22/601-eeprom_93cx6_fixes.patch
blob: 71c169fa1dffa8a92ea241dc64fe10272052f58e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--- a/drivers/misc/eeprom_93cx6.c
+++ b/drivers/misc/eeprom_93cx6.c
@@ -39,14 +39,26 @@
 {
 	eeprom->reg_data_clock = 1;
 	eeprom->register_write(eeprom);
-	udelay(1);
+
+	/*
+	 * Add a short delay for the pulse to work.
+	 * According to the specifications the "maximum minimum"
+	 * time should be 450ns.
+	 */
+	ndelay(450);
 }
 
 static inline void eeprom_93cx6_pulse_low(struct eeprom_93cx6 *eeprom)
 {
 	eeprom->reg_data_clock = 0;
 	eeprom->register_write(eeprom);
-	udelay(1);
+
+	/*
+	 * Add a short delay for the pulse to work.
+	 * According to the specifications the "maximum minimum"
+	 * time should be 450ns.
+	 */
+	ndelay(450);
 }
 
 static void eeprom_93cx6_startup(struct eeprom_93cx6 *eeprom)