Re: [PATCH V2] MIPS: move mips_{set,get}_machine_name() to a more generic place

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 13 April 2013 10:47, John Crispin <blogic@xxxxxxxxxxx> wrote:
> Previously this functionality was only available to users of the mips_machine
> api. Moving the code to prom.c allows us to also add a OF wrapper.
>
> Signed-off-by: John Crispin <blogic@xxxxxxxxxxx>
> ---

(snip)

> diff --git a/arch/mips/kernel/mips_machine.c b/arch/mips/kernel/mips_machine.c
> index 411a058..6dc5866 100644
> --- a/arch/mips/kernel/mips_machine.c
> +++ b/arch/mips/kernel/mips_machine.c
> @@ -13,7 +13,6 @@
>  #include <asm/mips_machine.h>
>
>  static struct mips_machine *mips_machine __initdata;
> -static char *mips_machine_name = "Unknown";
>
>  #define for_each_machine(mach) \
>         for ((mach) = (struct mips_machine *)&__mips_machines_start; \
> @@ -21,25 +20,6 @@ static char *mips_machine_name = "Unknown";
>              (unsigned long)(mach) < (unsigned long)&__mips_machines_end; \
>              (mach)++)
>
> -__init void mips_set_machine_name(const char *name)
> -{
> -       char *p;
> -
> -       if (name == NULL)
> -               return;
> -
> -       p = kstrdup(name, GFP_KERNEL);
> -       if (!p)
> -               pr_err("MIPS: no memory for machine_name\n");
> -
> -       mips_machine_name = p;
> -}
> -
> -char *mips_get_machine_name(void)
> -{
> -       return mips_machine_name;
> -}
> -
>  __init int mips_machtype_setup(char *id)
>  {
>         struct mips_machine *mach;
> @@ -79,7 +59,6 @@ __init void mips_machine_setup(void)
>                 return;
>
>         mips_set_machine_name(mips_machine->mach_name);
> -       pr_info("MIPS: machine is %s\n", mips_machine_name);

Why remove the printk and not just adapt it?

>
>         if (mips_machine->mach_setup)
>                 mips_machine->mach_setup();
> diff --git a/arch/mips/kernel/proc.c b/arch/mips/kernel/proc.c
> index 7a54f74..1dd137b 100644
> --- a/arch/mips/kernel/proc.c
> +++ b/arch/mips/kernel/proc.c
> @@ -12,7 +12,7 @@
>  #include <asm/cpu-features.h>
>  #include <asm/mipsregs.h>
>  #include <asm/processor.h>
> -#include <asm/mips_machine.h>
> +#include <asm/prom.h>
>
>  unsigned int vced_count, vcei_count;
>
> diff --git a/arch/mips/kernel/prom.c b/arch/mips/kernel/prom.c
> index 028f6f8..a5731c2 100644
> --- a/arch/mips/kernel/prom.c
> +++ b/arch/mips/kernel/prom.c
> @@ -23,6 +23,21 @@
>  #include <asm/page.h>
>  #include <asm/prom.h>
>
> +static char mips_machine_name[64] = "Unknown";
> +
> +__init void mips_set_machine_name(const char *name)
> +{
> +       if (name == NULL)
> +               return;
> +
> +       strncpy(mips_machine_name, name, sizeof(mips_machine_name));
> +}
> +
> +char *mips_get_machine_name(void)
> +{
> +       return mips_machine_name;
> +}
> +
>  int __init early_init_dt_scan_memory_arch(unsigned long node,
>                                           const char *uname, int depth,
>                                           void *data)
> @@ -50,6 +65,21 @@ void __init early_init_dt_setup_initrd_arch(unsigned long start,
>  }
>  #endif
>
> +int __init early_init_dt_scan_model(unsigned long node,
> +       const char *uname, int depth,
> +       void *data)

Indentation level is wrong.

> +{
> +       if (!depth) {
> +               char *model = of_get_flat_dt_prop(node, "model", NULL);

Missing empty line.

> +               if (model) {
> +                       mips_set_machine_name(model);
> +                       pr_info("MIPS: machine is %s\n",
> +                                       mips_get_machine_name());

Indentation level is wrong.

> +               }
> +       }
> +       return 0;
> +}
> +
>  void __init early_init_devtree(void *params)
>  {
>         /* Setup flat device-tree pointer */
> @@ -65,6 +95,9 @@ void __init early_init_devtree(void *params)
>         /* Scan memory nodes */
>         of_scan_flat_dt(early_init_dt_scan_root, NULL);
>         of_scan_flat_dt(early_init_dt_scan_memory_arch, NULL);
> +
> +       /* try to load the mips machine name */
> +       of_scan_flat_dt(early_init_dt_scan_model, NULL);
>  }
>
>  void __init __dt_setup_arch(struct boot_param_header *bph)
> --
> 1.7.10.4
>
>


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux