public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: David Brownell <david-b@pacbell.net>
Cc: Felipe Balbi <me@felipebalbi.com>,
	"Aguirre Rodriguez, Sergio Alberto" <saaguirre@ti.com>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>
Subject: Re: [PATCH] twl4030: Fix pwrirq by making sure the module is responding (Re: kernel oops for 3430sdp)
Date: Wed, 8 Oct 2008 21:38:09 +0300	[thread overview]
Message-ID: <20081008183808.GA31385@atomide.com> (raw)
In-Reply-To: <200810081105.17689.david-b@pacbell.net>

* David Brownell <david-b@pacbell.net> [081008 21:33]:
> On Wednesday 08 October 2008, Tony Lindgren wrote:
> > I suspect that twl is not yet initialized for pwrirq handling at this
> > point. At least this patch seems to help, 
> 
> Did you verify that the value you read isn't 0xff?  Or does the
> issue seem to be the mere attempt to read a register?

Yeah, it seems to be 0 first, then 0xf0, then 0xf7, then 0xff. It seems
that at 0xf0 it still does not work. Values from memory, but something
like that anyways.

> I have a hard time seeing the root cause be anything other than
> problems in i2c-omap, since the timeouts appear at various other
> places too.

Well at least one twl bug was happening when the source clock was
initialized incorrectly.. And that only happened with one of the twl
modules.

> > no idea on what registers 
> > we should check though.. Anybody got ideas on what needs to be checked
> > for pwrirq?
> 
> Well, there does seem to be an issue where the "pending IRQ" mechanism
> can leave a PWRIRQ.PWRON interrupt pending sometimes.  If you see a
> bunch of alarming-but-harmless boot messages like 
> 
>   TWL4030 module irq 373 is disabled but can't be masked!
> 
> before pwrirq registers, that seems to be the issue.  A debug hack I
> applied (appended) reported that the mask (IMR) was 0xff but the IRQ
> was still being raised ... when pwrirq registered itself, the stream
> of those messages stopped.  (Or, when this hack dumped the status and
> thus kicked in clear-on-read ...)

Hmm, maybe there's some status register for each modules that should be
checked?

Tony

> 
> - Dave
> 
> 
> =============================
> ---
>  drivers/mfd/twl4030-core.c |   40 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 40 insertions(+)
> 
> --- a/drivers/mfd/twl4030-core.c
> +++ b/drivers/mfd/twl4030-core.c
> @@ -574,6 +574,36 @@ static int twl4030_irq_thread(void *data
>  			continue;
>  		}
>  
> +		/* power irq before handler registered? */
> +		if ((pih_isr & BIT(5)) && irq_desc[twl4030_irq_base + 5].depth) {
> +			u8 buf[8];
> +			int status;
> +			int retries = 3;
> +
> +			while (retries--) {
> +				status = twl4030_i2c_read(TWL4030_MODULE_INT,
> +						buf, 0, sizeof buf);
> +				if (status == 0) {
> +					pr_crit("... PWR: "
> +						"%02x.%02x/%02x.%02x "
> +						"%02x; "
> +						"%02x.%02x, "
> +						"%02x "
> +						"\n",
> +						/* {ISR,IMR}{1,2} */
> +						buf[0], buf[1], buf[2], buf[3],
> +						/* SIH */
> +						buf[4],
> +						/* EDR */
> +						buf[5], buf[6],
> +						/* CTRL */
> +						buf[7]);
> +				} else
> +					pr_crit("... read PWR --> %d\n",
> +						status);
> +			}
> +		}
> +
>  		/* these handlers deal with the relevant SIH irq status */
>  		local_irq_disable();
>  		for (module_irq = twl4030_irq_base;
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2008-10-08 18:38 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-07 18:07 kernel oops for 3430sdp Aguirre Rodriguez, Sergio Alberto
2008-10-07 18:28 ` David Brownell
2008-10-07 19:29   ` Aguirre Rodriguez, Sergio Alberto
2008-10-07 20:09   ` Felipe Balbi
2008-10-08 14:55     ` [PATCH] twl4030: Fix pwrirq by making sure the module is responding (Re: kernel oops for 3430sdp) Tony Lindgren
2008-10-08 18:05       ` David Brownell
2008-10-08 18:38         ` Tony Lindgren [this message]
2008-10-08 19:19           ` David Brownell
2008-10-08 19:36           ` David Brownell
2008-10-08 21:36             ` [PATCH 2.6.27-rc9-omap] i2c-omap: timeouts begone David Brownell
2008-10-08 21:54               ` Felipe Balbi
2008-10-08 22:35                 ` Woodruff, Richard
2008-10-10 11:36                   ` Paul Walmsley
2008-10-08 23:38                 ` Woodruff, Richard
2008-10-09  1:09                   ` David Brownell

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=20081008183808.GA31385@atomide.com \
    --to=tony@atomide.com \
    --cc=david-b@pacbell.net \
    --cc=linux-omap@vger.kernel.org \
    --cc=me@felipebalbi.com \
    --cc=saaguirre@ti.com \
    /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