adm5120: merge 2.6.30+ specific patches
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18999 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
4925346839
commit
344ba6e886
|
@ -19,6 +19,7 @@
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
#include <linux/clk.h>
|
#include <linux/clk.h>
|
||||||
|
#include <linux/device.h>
|
||||||
|
|
||||||
#include <asm/mach-adm5120/adm5120_defs.h>
|
#include <asm/mach-adm5120/adm5120_defs.h>
|
||||||
|
|
||||||
|
@ -32,7 +33,9 @@ static struct clk uart_clk = {
|
||||||
|
|
||||||
struct clk *clk_get(struct device *dev, const char *id)
|
struct clk *clk_get(struct device *dev, const char *id)
|
||||||
{
|
{
|
||||||
if (!strcmp(id, "UARTCLK"))
|
char *name = dev_name(dev);
|
||||||
|
|
||||||
|
if (!strcmp(name, "apb:uart0") || !strcmp(name, "apb:uart1"))
|
||||||
return &uart_clk;
|
return &uart_clk;
|
||||||
|
|
||||||
return ERR_PTR(-ENOENT);
|
return ERR_PTR(-ENOENT);
|
||||||
|
|
|
@ -190,7 +190,7 @@ struct amba_pl010_data adm5120_uart0_data = {
|
||||||
|
|
||||||
struct amba_device adm5120_uart0_device = {
|
struct amba_device adm5120_uart0_device = {
|
||||||
.dev = {
|
.dev = {
|
||||||
.bus_id = "APB:UART0",
|
.init_name = "apb:uart0",
|
||||||
.platform_data = &adm5120_uart0_data,
|
.platform_data = &adm5120_uart0_data,
|
||||||
},
|
},
|
||||||
.res = {
|
.res = {
|
||||||
|
@ -208,7 +208,7 @@ struct amba_pl010_data adm5120_uart1_data = {
|
||||||
|
|
||||||
struct amba_device adm5120_uart1_device = {
|
struct amba_device adm5120_uart1_device = {
|
||||||
.dev = {
|
.dev = {
|
||||||
.bus_id = "APB:UART1",
|
.init_name = "apb:uart1",
|
||||||
.platform_data = &adm5120_uart1_data,
|
.platform_data = &adm5120_uart1_data,
|
||||||
},
|
},
|
||||||
.res = {
|
.res = {
|
||||||
|
|
|
@ -233,7 +233,7 @@ static int adm5120_flash_initinfo(struct adm5120_flash_info *info,
|
||||||
struct flash_desc *fdesc;
|
struct flash_desc *fdesc;
|
||||||
u32 t = 0;
|
u32 t = 0;
|
||||||
|
|
||||||
map->name = dev->dev.bus_id;
|
map->name = dev_name(&dev->dev);
|
||||||
|
|
||||||
if (dev->id > 1) {
|
if (dev->id > 1) {
|
||||||
MAP_ERR(map, "invalid flash id\n");
|
MAP_ERR(map, "invalid flash id\n");
|
||||||
|
|
|
@ -517,7 +517,7 @@ static int adm5120_if_poll(struct napi_struct *napi, int limit)
|
||||||
status = sw_int_status() & SWITCH_INTS_POLL;
|
status = sw_int_status() & SWITCH_INTS_POLL;
|
||||||
if ((done < limit) && (!status)) {
|
if ((done < limit) && (!status)) {
|
||||||
SW_DBG("disable polling mode for %s\n", dev->name);
|
SW_DBG("disable polling mode for %s\n", dev->name);
|
||||||
netif_rx_complete(dev, napi);
|
napi_complete(napi);
|
||||||
sw_int_unmask(SWITCH_INTS_POLL);
|
sw_int_unmask(SWITCH_INTS_POLL);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -548,7 +548,7 @@ static irqreturn_t adm5120_switch_irq(int irq, void *dev_id)
|
||||||
sw_dump_intr_mask("poll ints", status);
|
sw_dump_intr_mask("poll ints", status);
|
||||||
SW_DBG("enable polling mode for %s\n", dev->name);
|
SW_DBG("enable polling mode for %s\n", dev->name);
|
||||||
sw_int_mask(SWITCH_INTS_POLL);
|
sw_int_mask(SWITCH_INTS_POLL);
|
||||||
netif_rx_schedule(dev, &priv->napi);
|
napi_schedule(&priv->napi);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
sw_int_ack(status);
|
sw_int_ack(status);
|
||||||
|
@ -973,9 +973,12 @@ static void adm5120_if_set_multicast_list(struct net_device *dev)
|
||||||
|
|
||||||
static int adm5120_if_set_mac_address(struct net_device *dev, void *p)
|
static int adm5120_if_set_mac_address(struct net_device *dev, void *p)
|
||||||
{
|
{
|
||||||
struct sockaddr *addr = p;
|
int ret;
|
||||||
|
|
||||||
|
ret = eth_mac_addr(dev, p);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
|
|
||||||
adm5120_write_mac(dev);
|
adm5120_write_mac(dev);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1017,6 +1020,18 @@ static int adm5120_if_do_ioctl(struct net_device *dev, struct ifreq *rq,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const struct net_device_ops adm5120sw_netdev_ops = {
|
||||||
|
.ndo_open = adm5120_if_open,
|
||||||
|
.ndo_stop = adm5120_if_stop,
|
||||||
|
.ndo_start_xmit = adm5120_if_hard_start_xmit,
|
||||||
|
.ndo_set_multicast_list = adm5120_if_set_multicast_list,
|
||||||
|
.ndo_do_ioctl = adm5120_if_do_ioctl,
|
||||||
|
.ndo_tx_timeout = adm5120_if_tx_timeout,
|
||||||
|
.ndo_validate_addr = eth_validate_addr,
|
||||||
|
.ndo_change_mtu = eth_change_mtu,
|
||||||
|
.ndo_set_mac_address = adm5120_if_set_mac_address,
|
||||||
|
};
|
||||||
|
|
||||||
static struct net_device *adm5120_if_alloc(void)
|
static struct net_device *adm5120_if_alloc(void)
|
||||||
{
|
{
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
|
@ -1030,14 +1045,8 @@ static struct net_device *adm5120_if_alloc(void)
|
||||||
priv->dev = dev;
|
priv->dev = dev;
|
||||||
|
|
||||||
dev->irq = ADM5120_IRQ_SWITCH;
|
dev->irq = ADM5120_IRQ_SWITCH;
|
||||||
dev->open = adm5120_if_open;
|
dev->netdev_ops = &adm5120sw_netdev_ops;
|
||||||
dev->hard_start_xmit = adm5120_if_hard_start_xmit;
|
|
||||||
dev->stop = adm5120_if_stop;
|
|
||||||
dev->set_multicast_list = adm5120_if_set_multicast_list;
|
|
||||||
dev->do_ioctl = adm5120_if_do_ioctl;
|
|
||||||
dev->tx_timeout = adm5120_if_tx_timeout;
|
|
||||||
dev->watchdog_timeo = TX_TIMEOUT;
|
dev->watchdog_timeo = TX_TIMEOUT;
|
||||||
dev->set_mac_address = adm5120_if_set_mac_address;
|
|
||||||
|
|
||||||
#ifdef CONFIG_ADM5120_SWITCH_NAPI
|
#ifdef CONFIG_ADM5120_SWITCH_NAPI
|
||||||
netif_napi_add(dev, &priv->napi, adm5120_if_poll, 64);
|
netif_napi_add(dev, &priv->napi, adm5120_if_poll, 64);
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
--- a/arch/mips/adm5120/common/platform.c
|
|
||||||
+++ b/arch/mips/adm5120/common/platform.c
|
|
||||||
@@ -190,7 +190,7 @@ struct amba_pl010_data adm5120_uart0_dat
|
|
||||||
|
|
||||||
struct amba_device adm5120_uart0_device = {
|
|
||||||
.dev = {
|
|
||||||
- .bus_id = "APB:UART0",
|
|
||||||
+ .init_name = "apb:uart0",
|
|
||||||
.platform_data = &adm5120_uart0_data,
|
|
||||||
},
|
|
||||||
.res = {
|
|
||||||
@@ -208,7 +208,7 @@ struct amba_pl010_data adm5120_uart1_dat
|
|
||||||
|
|
||||||
struct amba_device adm5120_uart1_device = {
|
|
||||||
.dev = {
|
|
||||||
- .bus_id = "APB:UART1",
|
|
||||||
+ .init_name = "apb:uart1",
|
|
||||||
.platform_data = &adm5120_uart1_data,
|
|
||||||
},
|
|
||||||
.res = {
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- a/drivers/mtd/maps/adm5120-flash.c
|
|
||||||
+++ b/drivers/mtd/maps/adm5120-flash.c
|
|
||||||
@@ -233,7 +233,7 @@ static int adm5120_flash_initinfo(struct
|
|
||||||
struct flash_desc *fdesc;
|
|
||||||
u32 t = 0;
|
|
||||||
|
|
||||||
- map->name = dev->dev.bus_id;
|
|
||||||
+ map->name = dev_name(&dev->dev);
|
|
||||||
|
|
||||||
if (dev->id > 1) {
|
|
||||||
MAP_ERR(map, "invalid flash id\n");
|
|
|
@ -1,20 +0,0 @@
|
||||||
--- a/drivers/net/adm5120sw.c
|
|
||||||
+++ b/drivers/net/adm5120sw.c
|
|
||||||
@@ -517,7 +517,7 @@ static int adm5120_if_poll(struct napi_s
|
|
||||||
status = sw_int_status() & SWITCH_INTS_POLL;
|
|
||||||
if ((done < limit) && (!status)) {
|
|
||||||
SW_DBG("disable polling mode for %s\n", dev->name);
|
|
||||||
- netif_rx_complete(dev, napi);
|
|
||||||
+ napi_complete(napi);
|
|
||||||
sw_int_unmask(SWITCH_INTS_POLL);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -548,7 +548,7 @@ static irqreturn_t adm5120_switch_irq(in
|
|
||||||
sw_dump_intr_mask("poll ints", status);
|
|
||||||
SW_DBG("enable polling mode for %s\n", dev->name);
|
|
||||||
sw_int_mask(SWITCH_INTS_POLL);
|
|
||||||
- netif_rx_schedule(dev, &priv->napi);
|
|
||||||
+ napi_schedule(&priv->napi);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
sw_int_ack(status);
|
|
|
@ -1,21 +0,0 @@
|
||||||
--- a/arch/mips/adm5120/common/clock.c
|
|
||||||
+++ b/arch/mips/adm5120/common/clock.c
|
|
||||||
@@ -19,6 +19,7 @@
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/err.h>
|
|
||||||
#include <linux/clk.h>
|
|
||||||
+#include <linux/device.h>
|
|
||||||
|
|
||||||
#include <asm/mach-adm5120/adm5120_defs.h>
|
|
||||||
|
|
||||||
@@ -32,7 +33,9 @@ static struct clk uart_clk = {
|
|
||||||
|
|
||||||
struct clk *clk_get(struct device *dev, const char *id)
|
|
||||||
{
|
|
||||||
- if (!strcmp(id, "UARTCLK"))
|
|
||||||
+ char *name = dev_name(dev);
|
|
||||||
+
|
|
||||||
+ if (!strcmp(name, "apb:uart0") || !strcmp(name, "apb:uart1"))
|
|
||||||
return &uart_clk;
|
|
||||||
|
|
||||||
return ERR_PTR(-ENOENT);
|
|
|
@ -1,52 +0,0 @@
|
||||||
--- a/drivers/net/adm5120sw.c
|
|
||||||
+++ b/drivers/net/adm5120sw.c
|
|
||||||
@@ -973,9 +973,12 @@ static void adm5120_if_set_multicast_lis
|
|
||||||
|
|
||||||
static int adm5120_if_set_mac_address(struct net_device *dev, void *p)
|
|
||||||
{
|
|
||||||
- struct sockaddr *addr = p;
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ ret = eth_mac_addr(dev, p);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
|
|
||||||
- memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
|
|
||||||
adm5120_write_mac(dev);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -1017,6 +1020,18 @@ static int adm5120_if_do_ioctl(struct ne
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static const struct net_device_ops adm5120sw_netdev_ops = {
|
|
||||||
+ .ndo_open = adm5120_if_open,
|
|
||||||
+ .ndo_stop = adm5120_if_stop,
|
|
||||||
+ .ndo_start_xmit = adm5120_if_hard_start_xmit,
|
|
||||||
+ .ndo_set_multicast_list = adm5120_if_set_multicast_list,
|
|
||||||
+ .ndo_do_ioctl = adm5120_if_do_ioctl,
|
|
||||||
+ .ndo_tx_timeout = adm5120_if_tx_timeout,
|
|
||||||
+ .ndo_validate_addr = eth_validate_addr,
|
|
||||||
+ .ndo_change_mtu = eth_change_mtu,
|
|
||||||
+ .ndo_set_mac_address = adm5120_if_set_mac_address,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static struct net_device *adm5120_if_alloc(void)
|
|
||||||
{
|
|
||||||
struct net_device *dev;
|
|
||||||
@@ -1030,14 +1045,8 @@ static struct net_device *adm5120_if_all
|
|
||||||
priv->dev = dev;
|
|
||||||
|
|
||||||
dev->irq = ADM5120_IRQ_SWITCH;
|
|
||||||
- dev->open = adm5120_if_open;
|
|
||||||
- dev->hard_start_xmit = adm5120_if_hard_start_xmit;
|
|
||||||
- dev->stop = adm5120_if_stop;
|
|
||||||
- dev->set_multicast_list = adm5120_if_set_multicast_list;
|
|
||||||
- dev->do_ioctl = adm5120_if_do_ioctl;
|
|
||||||
- dev->tx_timeout = adm5120_if_tx_timeout;
|
|
||||||
+ dev->netdev_ops = &adm5120sw_netdev_ops;
|
|
||||||
dev->watchdog_timeo = TX_TIMEOUT;
|
|
||||||
- dev->set_mac_address = adm5120_if_set_mac_address;
|
|
||||||
|
|
||||||
#ifdef CONFIG_ADM5120_SWITCH_NAPI
|
|
||||||
netif_napi_add(dev, &priv->napi, adm5120_if_poll, 64);
|
|
|
@ -1,20 +0,0 @@
|
||||||
--- a/arch/mips/adm5120/common/platform.c
|
|
||||||
+++ b/arch/mips/adm5120/common/platform.c
|
|
||||||
@@ -190,7 +190,7 @@ struct amba_pl010_data adm5120_uart0_dat
|
|
||||||
|
|
||||||
struct amba_device adm5120_uart0_device = {
|
|
||||||
.dev = {
|
|
||||||
- .bus_id = "APB:UART0",
|
|
||||||
+ .init_name = "apb:uart0",
|
|
||||||
.platform_data = &adm5120_uart0_data,
|
|
||||||
},
|
|
||||||
.res = {
|
|
||||||
@@ -208,7 +208,7 @@ struct amba_pl010_data adm5120_uart1_dat
|
|
||||||
|
|
||||||
struct amba_device adm5120_uart1_device = {
|
|
||||||
.dev = {
|
|
||||||
- .bus_id = "APB:UART1",
|
|
||||||
+ .init_name = "apb:uart1",
|
|
||||||
.platform_data = &adm5120_uart1_data,
|
|
||||||
},
|
|
||||||
.res = {
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- a/drivers/mtd/maps/adm5120-flash.c
|
|
||||||
+++ b/drivers/mtd/maps/adm5120-flash.c
|
|
||||||
@@ -233,7 +233,7 @@ static int adm5120_flash_initinfo(struct
|
|
||||||
struct flash_desc *fdesc;
|
|
||||||
u32 t = 0;
|
|
||||||
|
|
||||||
- map->name = dev->dev.bus_id;
|
|
||||||
+ map->name = dev_name(&dev->dev);
|
|
||||||
|
|
||||||
if (dev->id > 1) {
|
|
||||||
MAP_ERR(map, "invalid flash id\n");
|
|
|
@ -1,20 +0,0 @@
|
||||||
--- a/drivers/net/adm5120sw.c
|
|
||||||
+++ b/drivers/net/adm5120sw.c
|
|
||||||
@@ -517,7 +517,7 @@ static int adm5120_if_poll(struct napi_s
|
|
||||||
status = sw_int_status() & SWITCH_INTS_POLL;
|
|
||||||
if ((done < limit) && (!status)) {
|
|
||||||
SW_DBG("disable polling mode for %s\n", dev->name);
|
|
||||||
- netif_rx_complete(dev, napi);
|
|
||||||
+ napi_complete(napi);
|
|
||||||
sw_int_unmask(SWITCH_INTS_POLL);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -548,7 +548,7 @@ static irqreturn_t adm5120_switch_irq(in
|
|
||||||
sw_dump_intr_mask("poll ints", status);
|
|
||||||
SW_DBG("enable polling mode for %s\n", dev->name);
|
|
||||||
sw_int_mask(SWITCH_INTS_POLL);
|
|
||||||
- netif_rx_schedule(dev, &priv->napi);
|
|
||||||
+ napi_schedule(&priv->napi);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
sw_int_ack(status);
|
|
|
@ -1,21 +0,0 @@
|
||||||
--- a/arch/mips/adm5120/common/clock.c
|
|
||||||
+++ b/arch/mips/adm5120/common/clock.c
|
|
||||||
@@ -19,6 +19,7 @@
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/err.h>
|
|
||||||
#include <linux/clk.h>
|
|
||||||
+#include <linux/device.h>
|
|
||||||
|
|
||||||
#include <asm/mach-adm5120/adm5120_defs.h>
|
|
||||||
|
|
||||||
@@ -32,7 +33,9 @@ static struct clk uart_clk = {
|
|
||||||
|
|
||||||
struct clk *clk_get(struct device *dev, const char *id)
|
|
||||||
{
|
|
||||||
- if (!strcmp(id, "UARTCLK"))
|
|
||||||
+ char *name = dev_name(dev);
|
|
||||||
+
|
|
||||||
+ if (!strcmp(name, "apb:uart0") || !strcmp(name, "apb:uart1"))
|
|
||||||
return &uart_clk;
|
|
||||||
|
|
||||||
return ERR_PTR(-ENOENT);
|
|
|
@ -1,52 +0,0 @@
|
||||||
--- a/drivers/net/adm5120sw.c
|
|
||||||
+++ b/drivers/net/adm5120sw.c
|
|
||||||
@@ -973,9 +973,12 @@ static void adm5120_if_set_multicast_lis
|
|
||||||
|
|
||||||
static int adm5120_if_set_mac_address(struct net_device *dev, void *p)
|
|
||||||
{
|
|
||||||
- struct sockaddr *addr = p;
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ ret = eth_mac_addr(dev, p);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
|
|
||||||
- memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
|
|
||||||
adm5120_write_mac(dev);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -1017,6 +1020,18 @@ static int adm5120_if_do_ioctl(struct ne
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static const struct net_device_ops adm5120sw_netdev_ops = {
|
|
||||||
+ .ndo_open = adm5120_if_open,
|
|
||||||
+ .ndo_stop = adm5120_if_stop,
|
|
||||||
+ .ndo_start_xmit = adm5120_if_hard_start_xmit,
|
|
||||||
+ .ndo_set_multicast_list = adm5120_if_set_multicast_list,
|
|
||||||
+ .ndo_do_ioctl = adm5120_if_do_ioctl,
|
|
||||||
+ .ndo_tx_timeout = adm5120_if_tx_timeout,
|
|
||||||
+ .ndo_validate_addr = eth_validate_addr,
|
|
||||||
+ .ndo_change_mtu = eth_change_mtu,
|
|
||||||
+ .ndo_set_mac_address = adm5120_if_set_mac_address,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static struct net_device *adm5120_if_alloc(void)
|
|
||||||
{
|
|
||||||
struct net_device *dev;
|
|
||||||
@@ -1030,14 +1045,8 @@ static struct net_device *adm5120_if_all
|
|
||||||
priv->dev = dev;
|
|
||||||
|
|
||||||
dev->irq = ADM5120_IRQ_SWITCH;
|
|
||||||
- dev->open = adm5120_if_open;
|
|
||||||
- dev->hard_start_xmit = adm5120_if_hard_start_xmit;
|
|
||||||
- dev->stop = adm5120_if_stop;
|
|
||||||
- dev->set_multicast_list = adm5120_if_set_multicast_list;
|
|
||||||
- dev->do_ioctl = adm5120_if_do_ioctl;
|
|
||||||
- dev->tx_timeout = adm5120_if_tx_timeout;
|
|
||||||
+ dev->netdev_ops = &adm5120sw_netdev_ops;
|
|
||||||
dev->watchdog_timeo = TX_TIMEOUT;
|
|
||||||
- dev->set_mac_address = adm5120_if_set_mac_address;
|
|
||||||
|
|
||||||
#ifdef CONFIG_ADM5120_SWITCH_NAPI
|
|
||||||
netif_napi_add(dev, &priv->napi, adm5120_if_poll, 64);
|
|
Loading…
Reference in New Issue