openwrt/target/linux/generic-2.6/patches-2.6.22/601-eeprom_93cx6_fixes.patch

32 lines
713 B
Diff

--- 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)