Index: linux-2.6.22.18/drivers/misc/eeprom_93cx6.c =================================================================== --- linux-2.6.22.18.orig/drivers/misc/eeprom_93cx6.c +++ linux-2.6.22.18/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)