From bb8ca5651a09372f421de49daaf1a0c6d3147513 Mon Sep 17 00:00:00 2001 From: Ben Dooks Date: Tue, 5 Feb 2008 00:02:20 +0000 Subject: [PATCH] --- yaml --- r: 85615 b: refs/heads/master c: bb44fb70e069412c08e07f494b6b4e985f6331ac h: refs/heads/master i: 85613: 741643e8c32439f4ca468486d97951fb999696e0 85611: 38a4de0988f6eed6bff963012a06e35648e32581 85607: 028ee6ffa070f00e2c1a5ebdbe883ecc2ee9abb3 85599: c93adf336c03ab0d6f3a76b8b65ef6e97908a81e v: v3 --- [refs] | 2 +- trunk/drivers/net/dm9000.c | 15 +++++++++++++++ trunk/include/linux/dm9000.h | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index d27890dc5e34..4b2f4c898f7a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 073d3f46e5ccc49ede1d3487ed1e71d63d71b750 +refs/heads/master: bb44fb70e069412c08e07f494b6b4e985f6331ac diff --git a/trunk/drivers/net/dm9000.c b/trunk/drivers/net/dm9000.c index d0cd7f945fde..afd2cf509073 100644 --- a/trunk/drivers/net/dm9000.c +++ b/trunk/drivers/net/dm9000.c @@ -405,6 +405,9 @@ static int dm9000_get_eeprom(struct net_device *dev, if ((len & 1) != 0 || (offset & 1) != 0) return -EINVAL; + if (dm->flags & DM9000_PLATF_NO_EEPROM) + return -ENOENT; + ee->magic = DM_EEPROM_MAGIC; for (i = 0; i < len; i += 2) @@ -426,6 +429,9 @@ static int dm9000_set_eeprom(struct net_device *dev, if ((len & 1) != 0 || (offset & 1) != 0) return -EINVAL; + if (dm->flags & DM9000_PLATF_NO_EEPROM) + return -ENOENT; + if (ee->magic != DM_EEPROM_MAGIC) return -EINVAL; @@ -1100,6 +1106,12 @@ dm9000_read_eeprom(board_info_t *db, int offset, u8 *to) { unsigned long flags; + if (db->flags & DM9000_PLATF_NO_EEPROM) { + to[0] = 0xff; + to[1] = 0xff; + return; + } + mutex_lock(&db->addr_lock); spin_lock_irqsave(&db->lock, flags); @@ -1134,6 +1146,9 @@ dm9000_write_eeprom(board_info_t *db, int offset, u8 *data) { unsigned long flags; + if (db->flags & DM9000_PLATF_NO_EEPROM) + return; + mutex_lock(&db->addr_lock); spin_lock_irqsave(&db->lock, flags); diff --git a/trunk/include/linux/dm9000.h b/trunk/include/linux/dm9000.h index ea530fd1be74..a3750462f9e3 100644 --- a/trunk/include/linux/dm9000.h +++ b/trunk/include/linux/dm9000.h @@ -20,6 +20,7 @@ #define DM9000_PLATF_16BITONLY (0x0002) #define DM9000_PLATF_32BITONLY (0x0004) #define DM9000_PLATF_EXT_PHY (0x0008) +#define DM9000_PLATF_NO_EEPROM (0x0010) /* platfrom data for platfrom device structure's platfrom_data field */