Re: [PATCH v7 1/6] base: power: runtime: Export pm_runtime_get/put_suppliers

From: Robin Murphy
Date: Tue Feb 13 2018 - 07:00:49 EST


On 13/02/18 07:44, Tomasz Figa wrote:
Hi Vivek,

On Wed, Feb 7, 2018 at 7:31 PM, Vivek Gautam
<vivek.gautam@xxxxxxxxxxxxxx> wrote:
The device link allows the pm framework to tie the supplier and
consumer. So, whenever the consumer is powered-on the supplier
is powered-on first.

There are however cases in which the consumer wants to power-on
the supplier, but not itself.
E.g., A Graphics or multimedia driver wants to power-on the SMMU
to unmap a buffer and finish the TLB operations without powering
on itself.

This sounds strange to me. If the SMMU is powered down, wouldn't the
TLB lose its contents as well (and so no flushing needed)?

Depends on implementation details - if runtime PM is actually implemented via external clock gating (in the absence of fine-grained power domains), then "suspended" TLBs might both retain state and not receive invalidation requests, which is really the worst case.

Other than that, what kind of hardware operations would be needed
besides just updating the page tables from the CPU?

Domain attach/detach also require updating SMMU hardware state (and possibly TLB maintenance), but don't logically require the master device itself to be active at the time.

Robin.