diff options
author | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2009-10-26 17:17:18 +0000 |
---|---|---|
committer | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2009-10-26 17:17:18 +0000 |
commit | 487693fb19d72a34ac198cd61f26ad123c6c1f30 (patch) | |
tree | 417c55684df564520fe71cb43e23920a4f50c7c5 /target/linux/ramips/files/drivers | |
parent | 90e4aa23860529f06083d0013f662f27ae006660 (diff) |
ramips: use resource to pass irq and base address to the ethernet driver
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18166 3c298f89-4303-0410-b956-a3cf2f4a3e73
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 ae47230b7..4975adc77 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; |