Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Manuel Lauss <mano@roarinelk.homelinux.net>
Cc: Linux-MIPS <linux-mips@linux-mips.org>
Subject: Re: [PATCH 3/3] Alchemy: common reset code is evalboard code.
Date: Sat, 08 Nov 2008 02:11:42 +0300	[thread overview]
Message-ID: <4914CB2E.1020100@ru.mvista.com> (raw)
In-Reply-To: <9bf5c9c78b0e2bada64f8f337d9397efb8781ac1.1226083170.git.mano@roarinelk.homelinux.net>

Hello.

Manuel Lauss wrote:

> Move common/reset.c contents to evalboard code where it belongs.
>   

   I'm not sure it belongs there...

> Add reboot hook initialization to mtx-1 and xxs1500 boards.
>
> Signed-off-by: Manuel Lauss <mano@roarinelk.homelinux.net>

   That's all good but doesn't look equivalent to the old code...

> diff --git a/arch/mips/alchemy/common/setup.c b/arch/mips/alchemy/common/setup.c
> index 1ac6b06..cfb531e 100644
> --- a/arch/mips/alchemy/common/setup.c
> +++ b/arch/mips/alchemy/common/setup.c
> @@ -28,25 +28,14 @@
>  #include <linux/init.h>
>  #include <linux/ioport.h>
>  #include <linux/module.h>
> -#include <linux/pm.h>
> -
> -#include <asm/mipsregs.h>
> -#include <asm/reboot.h>
> -#include <asm/time.h>
> -
>  #include <au1000.h>
> -#include <prom.h>
>  
>  extern void __init board_setup(void);
> -extern void au1000_restart(char *);
> -extern void au1000_halt(void);
> -extern void au1000_power_off(void);
>  extern void set_cpuspec(void);
>  
>  void __init plat_mem_setup(void)
>  {
>  	struct	cpu_spec *sp;
> -	char *argptr;
>  	unsigned long prid, cpufreq, bclk;
>  
>  	set_cpuspec();
> @@ -79,34 +68,6 @@ void __init plat_mem_setup(void)
>  		/* Clear to obtain best system bus performance */
>  		clear_c0_config(1 << 19); /* Clear Config[OD] */
>  
> -	argptr = prom_getcmdline();
> -
> -#ifdef CONFIG_SERIAL_8250_CONSOLE
> -	argptr = strstr(argptr, "console=");
> -	if (argptr == NULL) {
> -		argptr = prom_getcmdline();
> -		strcat(argptr, " console=ttyS0,115200");
> -	}
> -#endif
> -
> -#ifdef CONFIG_FB_AU1100
> -	argptr = strstr(argptr, "video=");
> -	if (argptr == NULL) {
> -		argptr = prom_getcmdline();
> -		/* default panel */
> -		/*strcat(argptr, " video=au1100fb:panel:Sharp_320x240_16");*/
> -	}
> -#endif
> -
> -#if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000)
> -	/* au1000 does not support vra, au1500 and au1100 do */
> -	strcat(argptr, " au1000_audio=vra");
> -	argptr = prom_getcmdline();
> -#endif
> -	_machine_restart = au1000_restart;
> -	_machine_halt = au1000_halt;
> -	pm_power_off = au1000_power_off;
> -
>  	/* IO/MEM resources. */
>  	set_io_port_base(0);
>  	ioport_resource.start = IOPORT_RESOURCE_START;
>   

   How is this change related to the patch's purpose?

> diff --git a/arch/mips/alchemy/evalboards/common.c b/arch/mips/alchemy/evalboards/common.c
> index d112fcf..7c78d54 100644
> --- a/arch/mips/alchemy/evalboards/common.c
> +++ b/arch/mips/alchemy/evalboards/common.c
>   
[...]
> +static void evalboard_halt(void)
> +{
> +#if defined(CONFIG_MIPS_PB1550) || defined(CONFIG_MIPS_DB1550)
> +	/* Power off system */
> +	printk(KERN_NOTICE "\n** Powering off...\n");
> +	au_writew(au_readw(0xAF00001C) | (3 << 14), 0xAF00001C);
> +	au_sync();
> +	while (1)
> +		; /* should not get here */
> +#else
> +	printk(KERN_NOTICE "\n** You can safely turn off the power\n");
> +#ifdef CONFIG_MIPS_MIRAGE
> +	au_writel((1 << 26) | (1 << 10), GPIO2_OUTPUT);
> +#endif
> +#ifdef CONFIG_MIPS_DB1200
> +	au_writew(au_readw(0xB980001C) | (1 << 14), 0xB980001C);
> +#endif
> +#ifdef CONFIG_PM
> +	au_sleep();
> +
> +	/* Should not get here */
> +	printk(KERN_ERR "Unable to put CPU in sleep mode\n");
> +	while (1)
> +		;
> +#else
> +	while (1)
> +		__asm__(".set\tmips3\n\t"
> +			"wait\n\t"
> +			".set\tmips0");
> +#endif
> +#endif /* defined(CONFIG_MIPS_PB1550) || defined(CONFIG_MIPS_DB1550) */
> +}
>   

   So you moved this code only to leave the board specific #ifdef'ery 
where it was? ;-)

> +
> +void __init evalboard_common_init(void)
> +{
> +	char *argptr;
> +
> +	argptr = prom_getcmdline();
> +
> +#ifdef CONFIG_SERIAL_8250_CONSOLE
> +	argptr = strstr(argptr, "console=");
> +	if (argptr == NULL) {
> +		argptr = prom_getcmdline();
> +		strcat(argptr, " console=ttyS0,115200");
> +	}
> +#endif
> +
> +#ifdef CONFIG_FB_AU1100
> +	argptr = strstr(argptr, "video=");
> +	if (argptr == NULL) {
> +		argptr = prom_getcmdline();
> +		/* default panel */
> +		/*strcat(argptr, " video=au1100fb:panel:Sharp_320x240_16");*/
> +	}
> +#endif
> +
> +#if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000)
> +	/* au1000 does not support vra, au1500 and au1100 do */
> +	strcat(argptr, " au1000_audio=vra");
> +	argptr = prom_getcmdline();
> +#endif
>   

   This probably needs to be in another patch...

> +	_machine_restart = evalboard_restart;
>   

   I'm not sure that the name fits well since there's nothing board 
specific in this particular function, just SoC specific...

> diff --git a/arch/mips/alchemy/mtx-1/board_setup.c b/arch/mips/alchemy/mtx-1/board_setup.c
> index 2e26465..4712ce4 100644
> --- a/arch/mips/alchemy/mtx-1/board_setup.c
> +++ b/arch/mips/alchemy/mtx-1/board_setup.c
> @@ -122,6 +123,8 @@ void __init board_setup(void)
>  
>  	board_pci_idsel = mtx1_pci_idsel;
>  
> +	_machine_restart = board_reset;
>   

   Hey, that bypasses the restart code that was executed before this 
patch...

WBR, Sergei

  reply	other threads:[~2008-11-07 23:11 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-07 18:41 [PATCH 0/3] Alchemy: consolidate board code Manuel Lauss
     [not found] ` <cover.1226083170.git.mano@roarinelk.homelinux.net>
2008-11-07 18:41   ` [PATCH 1/3] Alchemy: merge small board files into single files Manuel Lauss
2008-11-07 18:41   ` [PATCH 2/3] Alchemy: Move evalboard code to common directory Manuel Lauss
2008-11-07 18:41   ` [PATCH 3/3] Alchemy: common reset code is evalboard code Manuel Lauss
2008-11-07 23:11     ` Sergei Shtylyov [this message]
2008-11-08  5:54       ` Manuel Lauss
2008-11-07 22:48 ` [PATCH 0/3] Alchemy: consolidate board code Sergei Shtylyov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4914CB2E.1020100@ru.mvista.com \
    --to=sshtylyov@ru.mvista.com \
    --cc=linux-mips@linux-mips.org \
    --cc=mano@roarinelk.homelinux.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox