Просмотр исходного кода

adm5120: merge 2.6.30+ specific patches

SVN-Revision: 18999
Gabor Juhos 16 лет назад
Родитель
Сommit
9240fe972d

+ 4 - 1
target/linux/adm5120/files/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);

+ 2 - 2
target/linux/adm5120/files/arch/mips/adm5120/common/platform.c

@@ -190,7 +190,7 @@ struct amba_pl010_data adm5120_uart0_data = {
 
 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_data = {
 
 struct amba_device adm5120_uart1_device = {
 	.dev		= {
-		.bus_id	= "APB:UART1",
+		.init_name = "apb:uart1",
 		.platform_data = &adm5120_uart1_data,
 	},
 	.res		= {

+ 1 - 1
target/linux/adm5120/files/drivers/mtd/maps/adm5120-flash.c

@@ -233,7 +233,7 @@ static int adm5120_flash_initinfo(struct adm5120_flash_info *info,
 	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");

+ 20 - 11
target/linux/adm5120/files/drivers/net/adm5120sw.c

@@ -517,7 +517,7 @@ static int adm5120_if_poll(struct napi_struct *napi, int limit)
 	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(int irq, void *dev_id)
 		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);
@@ -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)
 {
-	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 net_device *dev, struct ifreq *rq,
 	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_alloc(void)
 	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);

+ 0 - 20
target/linux/adm5120/patches-2.6.30/800-adm5120-remove-amba-bus-id.patch

@@ -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		= {

+ 0 - 11
target/linux/adm5120/patches-2.6.30/801-adm5120-flash-remove-bus-id.patch

@@ -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");

+ 0 - 20
target/linux/adm5120/patches-2.6.30/802-adm5120-switch-remove-redundant-napi-functions.patch

@@ -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);

+ 0 - 21
target/linux/adm5120/patches-2.6.30/803-adm5120-fix-clock-for-amba-uart.patch

@@ -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);

+ 0 - 52
target/linux/adm5120/patches-2.6.30/810-adm5120sw-netdev_ops.patch

@@ -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);

+ 0 - 20
target/linux/adm5120/patches-2.6.31/800-adm5120-remove-amba-bus-id.patch

@@ -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		= {

+ 0 - 11
target/linux/adm5120/patches-2.6.31/801-adm5120-flash-remove-bus-id.patch

@@ -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");

+ 0 - 20
target/linux/adm5120/patches-2.6.31/802-adm5120-switch-remove-redundant-napi-functions.patch

@@ -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);

+ 0 - 21
target/linux/adm5120/patches-2.6.31/803-adm5120-fix-clock-for-amba-uart.patch

@@ -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);

+ 0 - 52
target/linux/adm5120/patches-2.6.31/810-adm5120sw-netdev_ops.patch

@@ -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);