Thread (1 message) 1 message, 1 author, 2014-09-15

Re: [PATCH 1/6] iommu/arm-smmu: add support for specifying clocks

From: Mitchel Humpherys <hidden>
Date: 2014-09-15 18:38:14
Also in: linux-arm-kernel, linux-iommu

On Wed, Sep 10 2014 at 12:09:06 PM, Mitchel Humpherys [off-list ref] wrote:
On Wed, Sep 10 2014 at 11:27:39 AM, Will Deacon [off-list ref] wrote:
quoted
On Wed, Sep 10, 2014 at 02:29:42AM +0100, Mitchel Humpherys wrote:
quoted
On Tue, Aug 26 2014 at 07:27:58 AM, Will Deacon [off-list ref] wrote:
quoted
On Tue, Aug 19, 2014 at 08:03:09PM +0100, Olav Haugan wrote:
quoted
Clients of the SMMU driver are required to vote for clocks and power
when they know they need to use the SMMU. However, the clock and power
needed to be on for the SMMU to service bus masters aren't necessarily
the same as the ones needed to read/write registers...See below.
The case I'm thinking of is where a device masters through the IOMMU, but
doesn't make use of any translations. In this case, its transactions will
bypass the SMMU and I want to ensure that continues to happen, regardless of
the power state of the SMMU.
Then I assume the driver for such a device wouldn't be attaching to (or
detaching from) the IOMMU, so we won't be touching it at all either
way. Or am I missing something?
As long as its only the register file that gets powered down, then there's
no issue. However, that's making assumptions about what these clocks are
controlling. Is there a way for the driver to know which aspects of the
device are controlled by which clock?
Yes, folks should only be putting "config" clocks here. In our system,
at least, the clocks for configuring the SMMU are different than those
for using it. Maybe I should make a note about what "kinds" of clocks
can be specified here in the bindings (i.e. only those that can be
safely disabled while still allowing translations to occur)?
Let me amend this statement slightly.  Folks should be putting all
clocks necessary to program SMMU registers here.  On our system, this
actually does include the "core" clocks in addition to the "config"
clocks.  Clients won't vote for "config" clocks since they have no
business programming SMMU registers, so those will get shut down when we
remove our vote for them.  Clients *should* hold their votes for "core"
clocks for as long as they want to use the SMMU.  Also, for the bypass
case, clients should be voting for clocks and power for the SMMU
themselves.

In light of all this I guess there isn't really anything to say in the
DT bindings.


-Mitch

-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help