#include <linux/module.h>
#include <linux/err.h>
#include <linux/clk.h>
+#include <linux/device.h>
#include <asm/mach-adm5120/adm5120_defs.h>
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);
struct amba_device adm5120_uart0_device = {
.dev = {
- .bus_id = "APB:UART0",
+ .init_name = "apb:uart0",
.platform_data = &adm5120_uart0_data,
},
.res = {
struct amba_device adm5120_uart1_device = {
.dev = {
- .bus_id = "APB:UART1",
+ .init_name = "apb:uart1",
.platform_data = &adm5120_uart1_data,
},
.res = {
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");
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;
}
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);
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;
}
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;
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);
+++ /dev/null
---- 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 = {
+++ /dev/null
---- 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");
+++ /dev/null
---- 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);
+++ /dev/null
---- 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);
+++ /dev/null
---- 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);
+++ /dev/null
---- 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 = {
+++ /dev/null
---- 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");
+++ /dev/null
---- 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);
+++ /dev/null
---- 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);
+++ /dev/null
---- 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);