Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1e2b980f authored by Ralf Baechle's avatar Ralf Baechle Committed by Jeff Garzik
Browse files

MIPSnet: Modernize use platform_device API.



Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent a5f8f3b6
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -17,7 +17,8 @@
# 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
#

obj-y := sim_setup.o sim_mem.o sim_time.o sim_int.o sim_cmdline.o
obj-y := sim_platform.o sim_setup.o sim_mem.o sim_time.o sim_int.o \
	 sim_cmdline.o

obj-$(CONFIG_EARLY_PRINTK) += sim_console.o
obj-$(CONFIG_SMP) += sim_smp.o
+35 −0
Original line number Diff line number Diff line
/*
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 *
 * Copyright (C) 2007 by Ralf Baechle (ralf@linux-mips.org)
 */
#include <linux/init.h>
#include <linux/if_ether.h>
#include <linux/kernel.h>
#include <linux/platform_device.h>

static char mipsnet_string[] = "mipsnet";

static struct platform_device eth1_device = {
	.name		= mipsnet_string,
	.id		= 0,
};

/*
 * Create a platform device for the GPI port that receives the
 * image data from the embedded camera.
 */
static int __init mipsnet_devinit(void)
{
	int err;

	err = platform_device_register(&eth1_device);
	if (err)
		printk(KERN_ERR "%s: registration failed\n", mipsnet_string);

	return err;
}

device_initcall(mipsnet_devinit);
+2 −2
Original line number Diff line number Diff line
@@ -486,8 +486,8 @@ config SGI_IOC3_ETH_HW_TX_CSUM
	  enables offloading for checksums on transmit.  If unsure, say Y.

config MIPS_SIM_NET
	tristate "MIPS simulator Network device (EXPERIMENTAL)"
	depends on MIPS_SIM && EXPERIMENTAL
	tristate "MIPS simulator Network device"
	depends on NET_ETHERNET && MIPS_SIM
	help
	  The MIPSNET device is a simple Ethernet network device which is
	  emulated by the MIPS Simulator.
+2 −51
Original line number Diff line number Diff line
@@ -26,8 +26,6 @@ struct mipsnet_priv {
	struct net_device_stats stats;
};

static struct platform_device *mips_plat_dev;

static char mipsnet_string[] = "mipsnet";

/*
@@ -297,64 +295,17 @@ static struct device_driver mipsnet_driver = {
	.remove	= __devexit_p(mipsnet_device_remove),
};

static void mipsnet_platform_release(struct device *device)
{
	struct platform_device *pldev;

	/* free device */
	pldev = to_platform_device(device);
	kfree(pldev);
}

static int __init mipsnet_init_module(void)
{
	struct platform_device *pldev;
	int err;

	printk(KERN_INFO "MIPSNet Ethernet driver. Version: %s. "
	       "(c)2005 MIPS Technologies, Inc.\n", MIPSNET_VERSION);

	if (driver_register(&mipsnet_driver)) {
	err = driver_register(&mipsnet_driver);
	if (err)
		printk(KERN_ERR "Driver registration failed\n");
		err = -ENODEV;
		goto out;
	}

        if (!(pldev = kmalloc (sizeof (*pldev), GFP_KERNEL))) {
		err = -ENOMEM;
		goto out_unregister_driver;
	}

	memset (pldev, 0, sizeof (*pldev));
	pldev->name		= mipsnet_string;
	pldev->id		= 0;
	pldev->dev.release	= mipsnet_platform_release;

	if (platform_device_register(pldev)) {
		err = -ENODEV;
		goto out_free_pldev;
	}

        if (!pldev->dev.driver) {
		/*
		 * The driver was not bound to this device, there was
                 * no hardware at this address. Unregister it, as the
		 * release fuction will take care of freeing the
		 * allocated structure
		 */
		platform_device_unregister (pldev);
	}

	mips_plat_dev		= pldev;

	return 0;

out_free_pldev:
	kfree(pldev);

out_unregister_driver:
	driver_unregister(&mipsnet_driver);
out:
	return err;
}