diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2009-10-26 17:17:18 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2009-10-26 17:17:18 +0000 |
commit | 69a3298ab5f02f9334498d6dcacf359cbc998b76 (patch) | |
tree | 5ac720a4bdde993e7207159e35ae1f6f66773ed3 /target/linux/ramips/files/drivers | |
parent | 7c7f004875752eda1985f274205412b01b4db318 (diff) | |
download | upstream-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.c | 16 |
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; |