[backfire] backport r26906
[openwrt/svn-archive/archive.git] / target / linux / generic-2.6 / patches-2.6.32 / 020-mips_multi_machine_support.patch
index 894a16b7853b7d261913b36dc07758d829865327..dd9bb57c3d0a3766e6f72e8848a6d2195e7e40da 100644 (file)
@@ -1,6 +1,6 @@
 --- /dev/null
-+++ b/include/asm-mips/mips_machine.h
-@@ -0,0 +1,46 @@
++++ b/arch/mips/include/asm/mips_machine.h
+@@ -0,0 +1,47 @@
 +/*
 + *  Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
 + *
@@ -25,6 +25,7 @@
 +
 +void mips_machine_register(struct mips_machine *) __init;
 +void mips_machine_setup(unsigned long machtype) __init;
++void mips_machine_set_name(char *name) __init;
 +
 +extern char *mips_machine_name;
 +
@@ -49,7 +50,7 @@
 +
 --- /dev/null
 +++ b/arch/mips/kernel/mips_machine.c
-@@ -0,0 +1,70 @@
+@@ -0,0 +1,74 @@
 +/*
 + *  Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
 + *
 +      list_add_tail(&mach->list, &mips_machines);
 +}
 +
++void __init mips_machine_set_name(char *name)
++{
++      unsigned int len;
++      char *p;
++
++      if (name == NULL)
++              return;
++
++      len = strlen(name);
++      p = kmalloc(len + 1, GFP_KERNEL);
++      if (p) {
++              strncpy(p, name, len);
++              p[len] = '\0';
++              mips_machine_name = p;
++      } else {
++              printk(KERN_WARNING "MIPS: no memory for machine_name\n");
++      }
++}
++
 +void __init mips_machine_setup(unsigned long machtype)
 +{
 +      struct mips_machine *mach;
 +              return;
 +      }
 +
-+      if (mach->mach_name) {
-+              char *name;
-+              unsigned int len;
-+
-+              len = strlen(mach->mach_name);
-+              name = kmalloc(len + 1, GFP_KERNEL);
-+              if (name) {
-+                      strncpy(name, mach->mach_name,len);
-+                      name[len] = '\0';
-+                      mips_machine_name = name;
-+              } else {
-+                      printk(KERN_WARNING "MIPS: no memory for machine_name\n");
-+              }
-+      }
-+
++      mips_machine_set_name(mach->mach_name);
 +      printk(KERN_INFO "MIPS: machine is %s\n", mips_machine_name);
 +
 +      if (mach->mach_setup)
 +              mach->mach_setup();
 +}
-+
 --- a/arch/mips/kernel/Makefile
 +++ b/arch/mips/kernel/Makefile
 @@ -87,6 +87,7 @@ obj-$(CONFIG_GPIO_TXX9)              += gpio_txx9.o