public inbox for linux-sh@vger.kernel.org
 help / color / mirror / Atom feed
From: Kristoffer Ericson <kristoffer.ericson@gmail.com>
To: linux-sh@vger.kernel.org
Subject: Re: Requestirq() = freeze for touchscreendriver
Date: Fri, 08 Feb 2008 18:30:42 +0000	[thread overview]
Message-ID: <20080208193042.ecd33f8b.Kristoffer.ericson@gmail.com> (raw)
In-Reply-To: <20080207020600.1651cbf5.Kristoffer.ericson@gmail.com>

On Fri, 8 Feb 2008 11:57:07 +0900
"Magnus Damm" <magnus.damm@gmail.com> wrote:

> Hi Kristoffer,
> 
> On Feb 7, 2008 10:24 PM, Kristoffer Ericson
> <kristoffer.ericson@gmail.com> wrote:
> > Greetings,
> >
> > These patches are against vanilla 2.6.24, but should apply cleanly to linux-2.6 also. hp6xx_ts_input.patch creates platform_driver for the touchscreen, not much is kept from the old.
> >
> > The booting comes to "waiting to aquire IRQ" and then freezes. So it happens in one of these lines :
> >
> >         printk(KERN_INFO "ts: waiting to request IRQ\n");
> >         error = request_irq(HP680_TS_IRQ, hp680_ts_interrupt,
> >                         IRQF_DISABLED, "HP6XX Touchscreen Driver", pdev);
> 
> You need to track down exactly why the system is freezing. Some recommendations:
> 

I added some printk's into the interrupt and when I startup I end up with a massive loop of those
printk's. Atleast its not frozen :)

However, one would think that it should continue after awhile (with the boot process) but it
keeps looping. The standard interrupt handler should disable  -> enable the interrupt before and after interrupt is done?

> - Figure out how the device is hooked up to the processor. IRQn? IRLn? PINTn?

IRQ3 I believe

> - Verify that you are using the correct IRQ number by calculating it
> from the vector number.

IRQ4 has irq 36 and this is IRQ3 so it should have 35.
IRQ4 = vect(0x680) and IRQ3 = vect(0x660) so should be right.

> - Add a printk in the interrupt handler (hp680_ts_interrupt), see if
> you get any printouts.

massive endless printouts.

> - Is the interrupt shared with someone else? Disable that user and try again.

Only user.

> - Add/modify the irq demuxer in the machvec (.mv_irq_demux) to print
> out all irqs.

This IRQ should be handled by the standard mask_ack/enable/disable system and not by hd64461 ones.

> - Remove as many working devices as possible from your kernel and try again.
> - Check that the interrupt sensing is correct. Is it level triggered?
> Active high? Edge triggered?
> - Make sure the mask and priority bit fields are correct in the
> cpu-specific INTC tables.
> 
> Good luck!
> 

Thx!

> / magnus

  parent reply	other threads:[~2008-02-08 18:30 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-07  1:06 Requestirq() = freeze for touchscreendriver Kristoffer Ericson
2008-02-07  2:38 ` Paul Mundt
2008-02-07 13:24 ` Kristoffer Ericson
2008-02-08  2:57 ` Magnus Damm
2008-02-08 18:30 ` Kristoffer Ericson [this message]
2008-02-08 22:46 ` Kristoffer Ericson
2008-02-09  3:54 ` Paul Mundt

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=20080208193042.ecd33f8b.Kristoffer.ericson@gmail.com \
    --to=kristoffer.ericson@gmail.com \
    --cc=linux-sh@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox