summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/boards/scb9328/scb9328.c1
-rw-r--r--drivers/net/dm9000.c3
-rw-r--r--include/dm9000.h1
3 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/boards/scb9328/scb9328.c b/arch/arm/boards/scb9328/scb9328.c
index e781393eae..3c04996254 100644
--- a/arch/arm/boards/scb9328/scb9328.c
+++ b/arch/arm/boards/scb9328/scb9328.c
@@ -55,6 +55,7 @@ static struct dm9000_platform_data dm9000_data = {
.iobase = 0x16000000,
.iodata = 0x16000004,
.buswidth = DM9000_WIDTH_16,
+ .srom = 1;
};
static struct device_d dm9000_dev = {
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
index 2062c6669c..ab0673569e 100644
--- a/drivers/net/dm9000.c
+++ b/drivers/net/dm9000.c
@@ -498,8 +498,9 @@ static int dm9000_probe(struct device_d *dev)
edev->send = dm9000_eth_send;
edev->recv = dm9000_eth_rx;
edev->halt = dm9000_eth_halt;
- edev->get_ethaddr = dm9000_get_ethaddr;
edev->set_ethaddr = dm9000_set_ethaddr;
+ if (pdata->srom)
+ edev->get_ethaddr = dm9000_get_ethaddr;
/* RESET device */
dm9000_reset(priv);
diff --git a/include/dm9000.h b/include/dm9000.h
index 3cc52356b2..b4a04b1e63 100644
--- a/include/dm9000.h
+++ b/include/dm9000.h
@@ -10,6 +10,7 @@ struct dm9000_platform_data {
unsigned long iobase;
unsigned long iodata;
int buswidth;
+ int srom;
};
#endif /* __DM9000_H__ */