summaryrefslogtreecommitdiffstats
path: root/target/linux/adm5120-2.6/files/drivers/net
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-07-11 13:00:27 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-07-11 13:00:27 +0000
commit015aed13171ff6201459286e15fc5e0686a46907 (patch)
treea898a3d4793d5b1ece23dce2f4d5ded01d0e5697 /target/linux/adm5120-2.6/files/drivers/net
parentee0d3e3aaf9c2d586c2147109d30f8b1328ba6ac (diff)
[adm5120] refactor kernel code (part 1), mark it as broken now
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7916 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/adm5120-2.6/files/drivers/net')
-rw-r--r--target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c28
1 files changed, 11 insertions, 17 deletions
diff --git a/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c b/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c
index dfc030ea1..6c311bfde 100644
--- a/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c
+++ b/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c
@@ -40,9 +40,9 @@ static unsigned char vlan_matrix[SW_DEVS] = {
0x41, 0x42, 0x44, 0x48, 0x50, 0x60
};
-/* default settings - unlimited TX and RX on all ports, default shaper mode */
+/* default settings - unlimited TX and RX on all ports, default shaper mode */
static unsigned char bw_matrix[SW_DEVS] = {
- 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0
};
static int adm5120_nrdevs;
@@ -373,17 +373,17 @@ static int adm5120_do_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
break;
case SIOCGETBW:
err = copy_to_user(rq->ifr_data, bw_matrix, sizeof(bw_matrix));
- if (err)
- return -EFAULT;
- break;
+ if (err)
+ return -EFAULT;
+ break;
case SIOCSETBW:
- if (!capable(CAP_NET_ADMIN))
+ if (!capable(CAP_NET_ADMIN))
return -EPERM;
err = copy_from_user(bw_matrix, rq->ifr_data, sizeof(bw_matrix));
- if (err)
+ if (err)
return -EFAULT;
adm5120_set_bw(bw_matrix);
- break;
+ break;
default:
return -EOPNOTSUPP;
}
@@ -428,9 +428,7 @@ static int __init adm5120_sw_init(void)
if (err)
goto out;
- adm5120_nrdevs = adm5120_board.iface_num;
- if (adm5120_nrdevs > 5 && !adm5120_has_gmii())
- adm5120_nrdevs = 5;
+ adm5120_nrdevs = adm5120_eth_num_ports;
adm5120_set_reg(ADM5120_CPUP_CONF,
ADM5120_DISCCPUPORT | ADM5120_CRC_PADDING |
@@ -483,12 +481,8 @@ static int __init adm5120_sw_init(void)
dev->tx_timeout = adm5120_tx_timeout;
dev->watchdog_timeo = ETH_TX_TIMEOUT;
dev->set_mac_address = adm5120_sw_set_mac_address;
- /* HACK alert!!! In the original admtek driver it is asumed
- that you can read the MAC addressess from flash, but edimax
- decided to leave that space intentionally blank...
- */
- memcpy(dev->dev_addr, "\x00\x50\xfc\x11\x22\x01", 6);
- dev->dev_addr[5] += i;
+
+ memcpy(dev->dev_addr, adm5120_eth_macs[i], 6);
adm5120_write_mac(dev);
if ((err = register_netdev(dev))) {