|
@@ -332,6 +332,17 @@ static int em28xx_i2c_eeprom(struct em28xx *dev, unsigned char *eedata, int len)
|
|
|
struct em28xx_eeprom *em_eeprom = (void *)eedata;
|
|
|
int i, err, size = len, block;
|
|
|
|
|
|
+ if (dev->chip_id == CHIP_ID_EM2874) {
|
|
|
+ /* Empia switched to a 16-bit addressable eeprom in newer
|
|
|
+ devices. While we could certainly write a routine to read
|
|
|
+ the eeprom, there is nothing of use in there that cannot be
|
|
|
+ accessed through registers, and there is the risk that we
|
|
|
+ could corrupt the eeprom (since a 16-bit read call is
|
|
|
+ interpreted as a write call by 8-bit eeproms).
|
|
|
+ */
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
dev->i2c_client.addr = 0xa0 >> 1;
|
|
|
|
|
|
/* Check if board has eeprom */
|