aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/files/drivers
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2009-10-26 17:17:18 +0000
committerGabor Juhos <juhosg@openwrt.org>2009-10-26 17:17:18 +0000
commit69a3298ab5f02f9334498d6dcacf359cbc998b76 (patch)
tree5ac720a4bdde993e7207159e35ae1f6f66773ed3 /target/linux/ramips/files/drivers
parent7c7f004875752eda1985f274205412b01b4db318 (diff)
downloadupstream-69a3298ab5f02f9334498d6dcacf359cbc998b76.tar.gz
upstream-69a3298ab5f02f9334498d6dcacf359cbc998b76.tar.bz2
upstream-69a3298ab5f02f9334498d6dcacf359cbc998b76.zip
ramips: use resource to pass irq and base address to the ethernet driver
SVN-Revision: 18166
Diffstat (limited to 'target/linux/ramips/files/drivers')
-rw-r--r--target/linux/ramips/files/drivers/net/ramips.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/target/linux/ramips/files/drivers/net/ramips.c b/target/linux/ramips/files/drivers/net/ramips.c
index ae47230b7c..4975adc77b 100644
--- a/target/linux/ramips/files/drivers/net/ramips.c
+++ b/target/linux/ramips/files/drivers/net/ramips.c
@@ -338,6 +338,7 @@ ramips_eth_plat_probe(struct platform_device *plat)
{
struct raeth_priv *priv;
struct ramips_eth_platform_data *data = plat->dev.platform_data;
+ struct resource *res;
int err;
if (!data) {
@@ -345,7 +346,13 @@ ramips_eth_plat_probe(struct platform_device *plat)
return -EINVAL;
}
- ramips_fe_base = ioremap_nocache(data->base_addr, PAGE_SIZE);
+ res = platform_get_resource(plat, IORESOURCE_MEM, 0);
+ if (!res) {
+ dev_err(&plat->dev, "no memory resource found\n");
+ return -ENXIO;
+ }
+
+ ramips_fe_base = ioremap_nocache(res->start, res->end - res->start + 1);
if(!ramips_fe_base)
return -ENOMEM;
@@ -357,7 +364,12 @@ ramips_eth_plat_probe(struct platform_device *plat)
}
strcpy(ramips_dev->name, "eth%d");
- ramips_dev->irq = data->irq;
+ ramips_dev->irq = platform_get_irq(plat, 0);
+ if (ramips_dev->irq < 0) {
+ dev_err(&plat->dev, "no IRQ resource found\n");
+ err = -ENXIO;
+ goto err_free_dev;
+ }
ramips_dev->addr_len = ETH_ALEN;
ramips_dev->base_addr = (unsigned long)ramips_fe_base;
ramips_dev->init = ramips_eth_probe;