Skip to content

Commit

Permalink
DM9000: Add platform flag for no attached EEPROM
Browse files Browse the repository at this point in the history
Allow the platform data to specify to the DM9000 driver
that there is no posibility of an attached EEPROM on the
device, so default all reads to 0xff and ignore any
write operations.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
  • Loading branch information
Ben Dooks authored and Jeff Garzik committed Feb 11, 2008
1 parent 073d3f4 commit bb44fb7
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
15 changes: 15 additions & 0 deletions drivers/net/dm9000.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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;

Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down
1 change: 1 addition & 0 deletions include/linux/dm9000.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */

Expand Down

0 comments on commit bb44fb7

Please sign in to comment.