From: grant.likely@secretlab.ca (Grant Likely)
To: linux-arm-kernel@lists.infradead.org
Subject: Handling device shared SFR on dt platform
Date: Tue, 03 Apr 2012 10:04:54 -0600 [thread overview]
Message-ID: <20120403160454.BDFF23E0598@localhost> (raw)
In-Reply-To: <4F736A4A.6050302@gmail.com>
On Wed, 28 Mar 2012 21:45:14 +0200, Sylwester Nawrocki <snjw23@gmail.com> wrote:
> Hello Grant,
>
> On 03/24/2012 08:32 PM, Grant Likely wrote:
> >
> > Generally, this is handled by having a third node for the shared
> > register block and both device nodes holding a phandle to it.
> >
> > No, there isn't any common infrastructure for implementing this, but
> > it isn't very much code.
>
> Thank you, that sounds good. I'm just wondering how to handle the shared
> resource access synchronisation. There is an IORESOURCE_MUXED resource type
> flag which could be used to prevent drivers from stomping on each others
> feet when accessing the shared register, if I understand the software muxed
> resource semantics correctly. That is, using something like
> request_muxed_(mem_)region()/release_mem_region() for the shared register
> protection.
>
> What concerns me, is an overhead from region request/ioremap(?)/release, just
> to access a single 32-bit register. I'm going to see if those accesses could
> be moved to only device driver's probe() and remove() callbacks and what might
> be the resulting power consumption increase from that, if any.
Personally, I'd just create a shared function used by both drivers to
access the register and protect it with a spinlock. That way the
region only needs to be mapped once, and the overhead is as low as
possible.
g.
WARNING: multiple messages have this Message-ID (diff)
From: Grant Likely <grant.likely@secretlab.ca>
To: Sylwester Nawrocki <snjw23@gmail.com>
Cc: devicetree-discuss@lists.ozlabs.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: Handling device shared SFR on dt platform
Date: Tue, 03 Apr 2012 10:04:54 -0600 [thread overview]
Message-ID: <20120403160454.BDFF23E0598@localhost> (raw)
In-Reply-To: <4F736A4A.6050302@gmail.com>
On Wed, 28 Mar 2012 21:45:14 +0200, Sylwester Nawrocki <snjw23@gmail.com> wrote:
> Hello Grant,
>
> On 03/24/2012 08:32 PM, Grant Likely wrote:
> >
> > Generally, this is handled by having a third node for the shared
> > register block and both device nodes holding a phandle to it.
> >
> > No, there isn't any common infrastructure for implementing this, but
> > it isn't very much code.
>
> Thank you, that sounds good. I'm just wondering how to handle the shared
> resource access synchronisation. There is an IORESOURCE_MUXED resource type
> flag which could be used to prevent drivers from stomping on each others
> feet when accessing the shared register, if I understand the software muxed
> resource semantics correctly. That is, using something like
> request_muxed_(mem_)region()/release_mem_region() for the shared register
> protection.
>
> What concerns me, is an overhead from region request/ioremap(?)/release, just
> to access a single 32-bit register. I'm going to see if those accesses could
> be moved to only device driver's probe() and remove() callbacks and what might
> be the resulting power consumption increase from that, if any.
Personally, I'd just create a shared function used by both drivers to
access the register and protect it with a spinlock. That way the
region only needs to be mapped once, and the overhead is as low as
possible.
g.
next prev parent reply other threads:[~2012-04-03 16:04 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-21 22:38 Handling device shared SFR on dt platform Sylwester Nawrocki
2012-03-21 22:38 ` Sylwester Nawrocki
2012-03-24 19:32 ` Grant Likely
2012-03-24 19:32 ` Grant Likely
2012-03-28 19:45 ` Sylwester Nawrocki
2012-03-28 19:45 ` Sylwester Nawrocki
2012-04-03 16:04 ` Grant Likely [this message]
2012-04-03 16:04 ` Grant Likely
2012-04-04 20:35 ` Sylwester Nawrocki
2012-04-04 20:35 ` Sylwester Nawrocki
2012-04-07 1:41 ` Grant Likely
2012-04-07 1:41 ` Grant Likely
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=20120403160454.BDFF23E0598@localhost \
--to=grant.likely@secretlab.ca \
--cc=linux-arm-kernel@lists.infradead.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.