summaryrefslogtreecommitdiffstats
path: root/target/linux/generic-2.6/patches-2.6.22/601-eeprom_93cx6_fixes.patch
blob: 4642a1c7a128abc2aa87bf2cbefa63bd4616b466 (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
32
33
Index: linux-2.6.22.19/drivers/misc/eeprom_93cx6.c
===================================================================
--- linux-2.6.22.19.orig/drivers/misc/eeprom_93cx6.c
+++ linux-2.6.22.19/drivers/misc/eeprom_93cx6.c
@@ -39,14 +39,26 @@ static inline void eeprom_93cx6_pulse_hi
 {
 	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)