From: Eugene Surovegin <ebs@ebshome.net>
To: David Hawkins <dwh@ovro.caltech.edu>
Cc: Stefan Roese <sr@denx.de>, linuxppc-embedded@ozlabs.org
Subject: Re: Yosemite/440EP is there a global interrupt enable mask?
Date: Wed, 25 Jan 2006 10:55:18 -0800 [thread overview]
Message-ID: <20060125185518.GB7425@gate.ebshome.net> (raw)
In-Reply-To: <43D7C3C6.8020709@ovro.caltech.edu>
On Wed, Jan 25, 2006 at 10:30:30AM -0800, David Hawkins wrote:
>
> Hi Stephan,
>
> > You seem to have used the wrong IRQ number though. Please see below.
> >
> > You are using the "External IRQ 8". This results in IRQ number 19 of the 2nd
> > interrupt controller of the 440ep. So please try (19+32) as the IRQ number
> > upon requesting the interrupt.
>
> Yep, that was it!
>
> Now while looking at some of the other drivers, I noticed the use
> of the following syntax:
>
> unsigned long flags;
> local_irq_save(flags);
>
> ... mfdcr, mtdcr, etc operations ...
>
> local_irq_restore(flags);
>
> which is treating the operations on the DCRs as a critical section.
>
> I should probably be doing the same when I enable the external IRQs
> and modify the GPIO registers.
You have to use locks if you access GPIO registers, because other bits
can be used by other device drivers, although there is no drivers in
the official tree which use GPIO (I have tons of them in my private
tree and I added global "gpio_lock" to serialize GPIO access).
DCRs are a little different, there are separate DCR for different
peripherals, so generally, you don't have to use locks, because those
DCR accesses are implicitly bound to particular device anyway and
device "owns" them.
--
Eugene
next prev parent reply other threads:[~2006-01-25 18:55 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-17 0:45 [Patch 3/3] Add Yellowstone Platform defconfig John Otken
2006-01-24 18:08 ` Yosemite/440EP why are readl()/ioread32() setup to read little-endian? David Hawkins
2006-01-24 19:07 ` Yosemite/440EP is there a global interrupt enable mask? David Hawkins
2006-01-25 10:28 ` Stefan Roese
2006-01-25 18:30 ` David Hawkins
2006-01-25 18:55 ` Eugene Surovegin [this message]
2006-01-25 19:46 ` David Hawkins
2006-01-25 20:13 ` Eugene Surovegin
2006-01-25 20:34 ` David Hawkins
2006-01-25 9:57 ` Yosemite/440EP why are readl()/ioread32() setup to read little-endian? Stefan Roese
2006-01-25 18:26 ` David Hawkins
2006-01-25 18:51 ` Eugene Surovegin
2006-01-25 19:36 ` David Hawkins
2006-01-25 19:48 ` Eugene Surovegin
2006-01-26 10:20 ` Stefan Roese
2006-01-27 0:10 ` David Hawkins
2006-01-27 23:29 ` David Hawkins
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=20060125185518.GB7425@gate.ebshome.net \
--to=ebs@ebshome.net \
--cc=dwh@ovro.caltech.edu \
--cc=linuxppc-embedded@ozlabs.org \
--cc=sr@denx.de \
/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;
as well as URLs for NNTP newsgroup(s).