diff options
| -rw-r--r-- | target/linux/ifxmips/files/drivers/net/ifxmips_mii0.c | 53 | ||||
| -rw-r--r-- | target/linux/ifxmips/patches/110-drivers.patch | 2 | 
2 files changed, 26 insertions, 29 deletions
| diff --git a/target/linux/ifxmips/files/drivers/net/ifxmips_mii0.c b/target/linux/ifxmips/files/drivers/net/ifxmips_mii0.c index 5764b449f..33cdc8386 100644 --- a/target/linux/ifxmips/files/drivers/net/ifxmips_mii0.c +++ b/target/linux/ifxmips/files/drivers/net/ifxmips_mii0.c @@ -49,7 +49,7 @@  #define DRVNAME		"ifxmips_mii0" -static struct net_device ifxmips_mii0_dev; +static struct net_device *ifxmips_mii0_dev;  static unsigned char u_boot_ethaddr[MAX_ADDR_LEN];  void @@ -233,12 +233,12 @@ dma_intr_handler (struct dma_device_info* dma_dev, int status)  	switch (status)  	{  	case RCV_INT: -		switch_hw_receive(&ifxmips_mii0_dev, dma_dev); +		switch_hw_receive(ifxmips_mii0_dev, dma_dev);  		break;  	case TX_BUF_FULL_INT:  		printk(KERN_INFO DRVNAME ": tx buffer full\n"); -		netif_stop_queue(&ifxmips_mii0_dev); +		netif_stop_queue(ifxmips_mii0_dev);  		for (i = 0; i < dma_dev->max_tx_chan_num; i++)  		{  			if ((dma_dev->tx_chan[i])->control==IFXMIPS_DMA_CH_ON) @@ -250,7 +250,7 @@ dma_intr_handler (struct dma_device_info* dma_dev, int status)  		for (i = 0; i < dma_dev->max_tx_chan_num; i++)  			dma_dev->tx_chan[i]->disable_irq(dma_dev->tx_chan[i]); -		netif_wake_queue(&ifxmips_mii0_dev); +		netif_wake_queue(ifxmips_mii0_dev);  		break;  	} @@ -312,10 +312,6 @@ switch_init (struct net_device *dev)  	dev->get_stats = ifxmips_get_stats;  	dev->tx_timeout = switch_tx_timeout;  	dev->watchdog_timeo = 10 * HZ; -	dev->priv = kmalloc(sizeof(struct switch_priv), GFP_KERNEL); - -	if (dev->priv == NULL) -		return -ENOMEM;  	memset(dev->priv, 0, sizeof(struct switch_priv));  	priv = dev->priv; @@ -394,15 +390,16 @@ ifxmips_mii_probe(struct platform_device *dev)  {  	int result = 0; -	ifxmips_mii0_dev.init = switch_init; +	ifxmips_mii0_dev = alloc_etherdev(sizeof(struct switch_priv)); + +	ifxmips_mii0_dev->init = switch_init; -	strcpy(ifxmips_mii0_dev.name, "eth%d"); -	SET_MODULE_OWNER(dev); +	strcpy(ifxmips_mii0_dev->name, "eth%d"); -	result = register_netdev(&ifxmips_mii0_dev); +	result = register_netdev(ifxmips_mii0_dev);  	if (result)  	{ -		printk(KERN_INFO DRVNAME ": error %i registering device \"%s\"\n", result, ifxmips_mii0_dev.name); +		printk(KERN_INFO DRVNAME ": error %i registering device \"%s\"\n", result, ifxmips_mii0_dev->name);  		goto out;  	} @@ -417,37 +414,37 @@ out:  static int  ifxmips_mii_remove(struct platform_device *dev)  { -	struct switch_priv *priv = (struct switch_priv*)ifxmips_mii0_dev.priv; +	struct switch_priv *priv = (struct switch_priv*)ifxmips_mii0_dev->priv;  	printk(KERN_INFO DRVNAME ": ifxmips_mii0 cleanup\n");  	dma_device_unregister(priv->dma_device);  	dma_device_release(priv->dma_device);  	kfree(priv->dma_device); -	kfree(ifxmips_mii0_dev.priv); -	unregister_netdev(&ifxmips_mii0_dev); +	kfree(ifxmips_mii0_dev->priv); +	unregister_netdev(ifxmips_mii0_dev);  	return 0;  } -static struct  -platform_driver ifxmips_mii_driver = {  -	.probe = ifxmips_mii_probe,  -	.remove = ifxmips_mii_remove,  -	.driver = {  -		.name = DRVNAME,  -		.owner = THIS_MODULE,  -	},  +static struct +platform_driver ifxmips_mii_driver = { +	.probe = ifxmips_mii_probe, +	.remove = ifxmips_mii_remove, +	.driver = { +		.name = DRVNAME, +		.owner = THIS_MODULE, +	},  };  int __init  ifxmips_mii_init(void)  { -	int ret = platform_driver_register(&ifxmips_mii_driver);  -	if (ret)  -		printk(KERN_INFO DRVNAME ": Error registering platfom driver!");  +	int ret = platform_driver_register(&ifxmips_mii_driver); +	if (ret) +		printk(KERN_INFO DRVNAME ": Error registering platfom driver!"); -	return ret;  +	return ret;  }  static void __exit diff --git a/target/linux/ifxmips/patches/110-drivers.patch b/target/linux/ifxmips/patches/110-drivers.patch index c52805dec..c3091be13 100644 --- a/target/linux/ifxmips/patches/110-drivers.patch +++ b/target/linux/ifxmips/patches/110-drivers.patch @@ -90,4 +90,4 @@ Index: linux-2.6.25.4/drivers/net/Makefile   obj-$(CONFIG_NETXEN_NIC) += netxen/   obj-$(CONFIG_NIU) += niu.o   obj-$(CONFIG_VIRTIO_NET) += virtio_net.o -+obj-$(CONFIG_IFXMIPS_MII0) += drivers/net/ifxmips_mii0.o ++obj-$(CONFIG_IFXMIPS_MII0) += ifxmips_mii0.o | 
