diff options
-rw-r--r-- | drivers/net/dm9000.c | 15 | ||||
-rw-r--r-- | include/linux/dm9000.h | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c index d0cd7f945fde..afd2cf509073 100644 --- a/drivers/net/dm9000.c +++ b/drivers/net/dm9000.c | |||
@@ -405,6 +405,9 @@ static int dm9000_get_eeprom(struct net_device *dev, | |||
405 | if ((len & 1) != 0 || (offset & 1) != 0) | 405 | if ((len & 1) != 0 || (offset & 1) != 0) |
406 | return -EINVAL; | 406 | return -EINVAL; |
407 | 407 | ||
408 | if (dm->flags & DM9000_PLATF_NO_EEPROM) | ||
409 | return -ENOENT; | ||
410 | |||
408 | ee->magic = DM_EEPROM_MAGIC; | 411 | ee->magic = DM_EEPROM_MAGIC; |
409 | 412 | ||
410 | for (i = 0; i < len; i += 2) | 413 | for (i = 0; i < len; i += 2) |
@@ -426,6 +429,9 @@ static int dm9000_set_eeprom(struct net_device *dev, | |||
426 | if ((len & 1) != 0 || (offset & 1) != 0) | 429 | if ((len & 1) != 0 || (offset & 1) != 0) |
427 | return -EINVAL; | 430 | return -EINVAL; |
428 | 431 | ||
432 | if (dm->flags & DM9000_PLATF_NO_EEPROM) | ||
433 | return -ENOENT; | ||
434 | |||
429 | if (ee->magic != DM_EEPROM_MAGIC) | 435 | if (ee->magic != DM_EEPROM_MAGIC) |
430 | return -EINVAL; | 436 | return -EINVAL; |
431 | 437 | ||
@@ -1100,6 +1106,12 @@ dm9000_read_eeprom(board_info_t *db, int offset, u8 *to) | |||
1100 | { | 1106 | { |
1101 | unsigned long flags; | 1107 | unsigned long flags; |
1102 | 1108 | ||
1109 | if (db->flags & DM9000_PLATF_NO_EEPROM) { | ||
1110 | to[0] = 0xff; | ||
1111 | to[1] = 0xff; | ||
1112 | return; | ||
1113 | } | ||
1114 | |||
1103 | mutex_lock(&db->addr_lock); | 1115 | mutex_lock(&db->addr_lock); |
1104 | 1116 | ||
1105 | spin_lock_irqsave(&db->lock, flags); | 1117 | spin_lock_irqsave(&db->lock, flags); |
@@ -1134,6 +1146,9 @@ dm9000_write_eeprom(board_info_t *db, int offset, u8 *data) | |||
1134 | { | 1146 | { |
1135 | unsigned long flags; | 1147 | unsigned long flags; |
1136 | 1148 | ||
1149 | if (db->flags & DM9000_PLATF_NO_EEPROM) | ||
1150 | return; | ||
1151 | |||
1137 | mutex_lock(&db->addr_lock); | 1152 | mutex_lock(&db->addr_lock); |
1138 | 1153 | ||
1139 | spin_lock_irqsave(&db->lock, flags); | 1154 | spin_lock_irqsave(&db->lock, flags); |
diff --git a/include/linux/dm9000.h b/include/linux/dm9000.h index ea530fd1be74..a3750462f9e3 100644 --- a/include/linux/dm9000.h +++ b/include/linux/dm9000.h | |||
@@ -20,6 +20,7 @@ | |||
20 | #define DM9000_PLATF_16BITONLY (0x0002) | 20 | #define DM9000_PLATF_16BITONLY (0x0002) |
21 | #define DM9000_PLATF_32BITONLY (0x0004) | 21 | #define DM9000_PLATF_32BITONLY (0x0004) |
22 | #define DM9000_PLATF_EXT_PHY (0x0008) | 22 | #define DM9000_PLATF_EXT_PHY (0x0008) |
23 | #define DM9000_PLATF_NO_EEPROM (0x0010) | ||
23 | 24 | ||
24 | /* platfrom data for platfrom device structure's platfrom_data field */ | 25 | /* platfrom data for platfrom device structure's platfrom_data field */ |
25 | 26 | ||