Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1e2b980fdfb6189baa779ba7de93f7dba70aa3fd
Commit:     1e2b980fdfb6189baa779ba7de93f7dba70aa3fd
Parent:     a5f8f3b6c91b07ee9aa2445a92a1d6c00a71a3cd
Author:     Ralf Baechle <[EMAIL PROTECTED]>
AuthorDate: Sun Mar 18 23:21:22 2007 +0000
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Sat Apr 28 11:01:01 2007 -0400

    MIPSnet: Modernize use platform_device API.
    
    Signed-off-by: Ralf Baechle <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 arch/mips/mips-boards/sim/Makefile       |    3 +-
 arch/mips/mips-boards/sim/sim_platform.c |   35 +++++++++++++++++++
 drivers/net/Kconfig                      |    4 +-
 drivers/net/mipsnet.c                    |   53 +----------------------------
 4 files changed, 41 insertions(+), 54 deletions(-)

diff --git a/arch/mips/mips-boards/sim/Makefile 
b/arch/mips/mips-boards/sim/Makefile
index 6aeebc9..dc0bfda 100644
--- a/arch/mips/mips-boards/sim/Makefile
+++ b/arch/mips/mips-boards/sim/Makefile
@@ -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
diff --git a/arch/mips/mips-boards/sim/sim_platform.c 
b/arch/mips/mips-boards/sim/sim_platform.c
new file mode 100644
index 0000000..53210a8
--- /dev/null
+++ b/arch/mips/mips-boards/sim/sim_platform.c
@@ -0,0 +1,35 @@
+/*
+ * 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 ([EMAIL PROTECTED])
+ */
+#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);
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 3e9b370..ee920ad 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -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.
diff --git a/drivers/net/mipsnet.c b/drivers/net/mipsnet.c
index 403f63a..638a279 100644
--- a/drivers/net/mipsnet.c
+++ b/drivers/net/mipsnet.c
@@ -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;
 }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to