All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andres Salomon <dilinger@queued.net>
To: Jens Frederich <jfrederich@gmail.com>
Cc: gregkh@linuxfoundation.org, devel@driverdev.osuosl.org,
	linux-kernel@vger.kernel.org, cjb@laptop.org, dsd@laptop.org
Subject: Re: [PATCH] Staging: olpc_dcon: replace some magic numbers
Date: Sat, 3 Aug 2013 14:16:54 -0700	[thread overview]
Message-ID: <20130803141654.0f84baac@dev.queued.net> (raw)
In-Reply-To: <1375562675-7816-1-git-send-email-jfrederich@gmail.com>

Please Cc Daniel on these.  Cjb and myself are no longer at olpc. 



On Sat,  3 Aug 2013 22:44:35 +0200
Jens Frederich <jfrederich@gmail.com> wrote:

> This patch replace some magic numbers. I believe it makes
> the driver more readable.
> 
> The magic number 0x26 is the XO system embedded controller
> (EC) command 'DCON power enable/disable'.
> 
> Number 0x41, and 0x42 are special memory controller settings
> register.  The 0x41 initialize bit sequence 0x101 means:
> enable memory power down function and special SDRAM clock
> delay for synchronize SDRAM output and clock signal.
> 
> The 0x42 initialize squence 0x101 is wrong.  According to
> the specification Bit 8 is reserved, thus not in use.
> I removed it.
> 
> Signed-off-by: Jens Frederich <jfrederich@gmail.com>
> 
> diff --git a/drivers/staging/olpc_dcon/olpc_dcon.c
> b/drivers/staging/olpc_dcon/olpc_dcon.c index 7c460f2..5ca4fa4 100644
> --- a/drivers/staging/olpc_dcon/olpc_dcon.c
> +++ b/drivers/staging/olpc_dcon/olpc_dcon.c
> @@ -90,9 +90,10 @@ static int dcon_hw_init(struct dcon_priv *dcon,
> int is_init) 
>  	/* SDRAM setup/hold time */
>  	dcon_write(dcon, 0x3a, 0xc040);
> -	dcon_write(dcon, 0x41, 0x0000);
> -	dcon_write(dcon, 0x41, 0x0101);
> -	dcon_write(dcon, 0x42, 0x0101);
> +	dcon_write(dcon, DCON_REG_MEM_OPT_A, 0x0000);  /* clear
> option bits */
> +	dcon_write(dcon, DCON_REG_MEM_OPT_A,
> +				MEM_DLL_CLOCK_DELAY |
> MEM_POWER_DOWN);
> +	dcon_write(dcon, DCON_REG_MEM_OPT_B, MEM_SOFT_RESET);
>  
>  	/* Colour swizzle, AA, no passthrough, backlight */
>  	if (is_init) {
> @@ -126,7 +127,7 @@ static int dcon_bus_stabilize(struct dcon_priv
> *dcon, int is_powered_down) power_up:
>  	if (is_powered_down) {
>  		x = 1;
> -		x = olpc_ec_cmd(0x26, (unsigned char *)&x, 1, NULL,
> 0);
> +		x = olpc_ec_cmd(EC_DCON_POWER_MODE, (u8 *)&x, 1,
> NULL, 0); if (x) {
>  			pr_warn("unable to force dcon to power up:
> %d!\n", x); return x;
> @@ -144,7 +145,7 @@ power_up:
>  		pr_err("unable to stabilize dcon's smbus,
> reasserting power and praying.\n");
> BUG_ON(olpc_board_at_least(olpc_board(0xc2))); x = 0;
> -		olpc_ec_cmd(0x26, (unsigned char *)&x, 1, NULL, 0);
> +		olpc_ec_cmd(EC_DCON_POWER_MODE, (u8 *)&x, 1, NULL,
> 0); msleep(100);
>  		is_powered_down = 1;
>  		goto power_up;	/* argh, stupid hardware.. */
> @@ -208,7 +209,7 @@ static void dcon_sleep(struct dcon_priv *dcon,
> bool sleep) 
>  	if (sleep) {
>  		x = 0;
> -		x = olpc_ec_cmd(0x26, (unsigned char *)&x, 1, NULL,
> 0);
> +		x = olpc_ec_cmd(EC_DCON_POWER_MODE, (u8 *)&x, 1,
> NULL, 0); if (x)
>  			pr_warn("unable to force dcon to power down:
> %d!\n", x); else
> diff --git a/drivers/staging/olpc_dcon/olpc_dcon.h
> b/drivers/staging/olpc_dcon/olpc_dcon.h index 997bded..524ee49 100644
> --- a/drivers/staging/olpc_dcon/olpc_dcon.h
> +++ b/drivers/staging/olpc_dcon/olpc_dcon.h
> @@ -22,15 +22,24 @@
>  #define MODE_DEBUG	(1<<14)
>  #define MODE_SELFTEST	(1<<15)
>  
> -#define DCON_REG_HRES		2
> -#define DCON_REG_HTOTAL		3
> -#define DCON_REG_HSYNC_WIDTH	4
> -#define DCON_REG_VRES		5
> -#define DCON_REG_VTOTAL		6
> -#define DCON_REG_VSYNC_WIDTH	7
> -#define DCON_REG_TIMEOUT	8
> -#define DCON_REG_SCAN_INT	9
> -#define DCON_REG_BRIGHT		10
> +#define DCON_REG_HRES		0x2
> +#define DCON_REG_HTOTAL		0x3
> +#define DCON_REG_HSYNC_WIDTH	0x4
> +#define DCON_REG_VRES		0x5
> +#define DCON_REG_VTOTAL		0x6
> +#define DCON_REG_VSYNC_WIDTH	0x7
> +#define DCON_REG_TIMEOUT	0x8
> +#define DCON_REG_SCAN_INT	0x9
> +#define DCON_REG_BRIGHT		0x10
> +#define DCON_REG_MEM_OPT_A	0x41
> +#define DCON_REG_MEM_OPT_B	0x42
> +
> +/* Load Delay Locked Loop (DLL) settings for clock delay */
> +#define MEM_DLL_CLOCK_DELAY	(1<<0)
> +/* Memory controller power down function */
> +#define MEM_POWER_DOWN  	(1<<8)
> +/* Memory controller software reset */
> +#define MEM_SOFT_RESET		(1<<0)
>  
>  /* Status values */
>  
> diff --git a/include/linux/olpc-ec.h b/include/linux/olpc-ec.h
> index 5bb6e76..2925df3 100644
> --- a/include/linux/olpc-ec.h
> +++ b/include/linux/olpc-ec.h
> @@ -6,6 +6,7 @@
>  #define EC_WRITE_SCI_MASK		0x1b
>  #define EC_WAKE_UP_WLAN			0x24
>  #define EC_WLAN_LEAVE_RESET		0x25
> +#define EC_DCON_POWER_MODE		0x26
>  #define EC_READ_EB_MODE			0x2a
>  #define EC_SET_SCI_INHIBIT		0x32
>  #define EC_SET_SCI_INHIBIT_RELEASE	0x34

  reply	other threads:[~2013-08-03 21:16 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-03 20:44 [PATCH] Staging: olpc_dcon: replace some magic numbers Jens Frederich
2013-08-03 21:16 ` Andres Salomon [this message]
2013-08-03 21:32   ` Jens Frederich
2013-08-03 21:36   ` Jens Frederich
2013-08-03 21:38     ` Andres Salomon
2013-08-03 23:16       ` Dan Carpenter
     [not found]       ` <CALHpu36i5jWk0ex=pBsuomSU1b+72ru4JGQQ0bd8OQT5QcaMgQ@mail.gmail.com>
2013-08-04 14:00         ` Jens Frederich
2013-08-03 23:14 ` Dan Carpenter
2013-08-04 20:18   ` Jens Frederich

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=20130803141654.0f84baac@dev.queued.net \
    --to=dilinger@queued.net \
    --cc=cjb@laptop.org \
    --cc=devel@driverdev.osuosl.org \
    --cc=dsd@laptop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jfrederich@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.