mbox series

[v5,0/7] Add RSC power domain support

Message ID 1582108810-21263-1-git-send-email-mkshah@codeaurora.org
Headers show
Series Add RSC power domain support | expand

Message

Maulik Shah Feb. 19, 2020, 10:40 a.m. UTC
Changes in v5:
- Add Rob's Acked by on dt-bindings change
- Drop firmware psci change
- Update cpuidle stats in dtsi to follow PC mode
- Include change to update dirty flag when data is updated from [4]
- Add change to invoke rpmh_flush when caches are dirty

Changes in v4:
- Add change to allow hierarchical topology in PC mode
- Drop hierarchical domain idle states converter from v3
- Address Merge sc7180 dtsi change to add low power modes

Changes in v3:
- Address Rob's comment on dt property value
- Address Stephen's comments on rpmh-rsc driver change
- Include sc7180 cpuidle low power mode changes from [1]
- Include hierarchical domain idle states converter change from [2]

Changes in v2:
- Add Stephen's Reviewed-By to the first three patches
- Addressed Stephen's comments on fourth patch
- Include changes to connect rpmh domain to cpuidle and genpds

Resource State Coordinator (RSC) is responsible for powering off/lowering
the requirements from CPU subsystem for the associated hardware like buses,
clocks, and regulators when all CPUs and cluster is powered down.

RSC power domain uses last-man activities provided by genpd framework based
on Ulf Hansoon's patch series[3], when the cluster of CPUs enter deepest
idle states. As a part of domain poweroff, RSC can lower resource state
requirements by flushing the cached sleep and wake state votes for various
resources.

[1] https://patchwork.kernel.org/patch/11218965
[2] https://patchwork.kernel.org/patch/10941671
[3] https://patchwork.kernel.org/project/linux-arm-msm/list/?series=222355
[4] https://patchwork.kernel.org/project/linux-arm-msm/list/?series=236503

Maulik Shah (7):
  drivers: qcom: rpmh: fix macro to accept NULL argument
  drivers: qcom: rpmh: remove rpmh_flush export
  dt-bindings: soc: qcom: Add RSC power domain specifier
  drivers: qcom: rpmh-rsc: Add RSC power domain support
  arm64: dts: qcom: sc7180: Add cpuidle low power states
  soc: qcom: rpmh: Update dirty flag only when data changes
  soc: qcom: rpmh: Invoke rpmh_flush for dirty caches

 .../devicetree/bindings/soc/qcom/rpmh-rsc.txt      |  9 +++
 arch/arm64/boot/dts/qcom/sc7180.dtsi               | 78 +++++++++++++++++++++
 drivers/soc/qcom/rpmh-internal.h                   |  3 +
 drivers/soc/qcom/rpmh-rsc.c                        | 81 ++++++++++++++++++++++
 drivers/soc/qcom/rpmh.c                            | 49 ++++++++-----
 include/soc/qcom/rpmh.h                            |  5 --
 6 files changed, 203 insertions(+), 22 deletions(-)

Comments

Maulik Shah Feb. 21, 2020, 9:32 a.m. UTC | #1
On 2/21/2020 1:01 AM, Matthias Kaehlcke wrote:
> Hi Maulik,
>
> this patch and '[v5,2/7] drivers: qcom: rpmh: remove rpmh_flush
> export' already landed in the QCOM tree (in the branch 'drivers-for-5.7'):
>
> d5e205079c34a drivers: qcom: rpmh: remove rpmh_flush export
> aff9cc0847a58 drivers: qcom: rpmh: fix macro to accept NULL argument
>
> Please rebase your working tree and stop sending these.
>
> Thanks
>
> Matthias

Hi Matthias

Rebased and updated in v6.

Thanks,

Maulik

>
> On Wed, Feb 19, 2020 at 04:10:04PM +0530, Maulik Shah wrote:
>> Device argument matches with dev variable declared in RPMH message.
>> Compiler reports error when the argument is NULL since the argument
>> matches the name of the property. Rename dev argument to device to
>> fix this.
>>
>> Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
>> Reviewed-by: Stephen Boyd <swboyd@chromium.org>
>> ---
>>   drivers/soc/qcom/rpmh.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c
>> index 035091f..3a4579d 100644
>> --- a/drivers/soc/qcom/rpmh.c
>> +++ b/drivers/soc/qcom/rpmh.c
>> @@ -23,7 +23,7 @@
>>   
>>   #define RPMH_TIMEOUT_MS			msecs_to_jiffies(10000)
>>   
>> -#define DEFINE_RPMH_MSG_ONSTACK(dev, s, q, name)	\
>> +#define DEFINE_RPMH_MSG_ONSTACK(device, s, q, name)	\
>>   	struct rpmh_request name = {			\
>>   		.msg = {				\
>>   			.state = s,			\
>> @@ -33,7 +33,7 @@
>>   		},					\
>>   		.cmd = { { 0 } },			\
>>   		.completion = q,			\
>> -		.dev = dev,				\
>> +		.dev = device,				\
>>   		.needs_free = false,				\
>>   	}
>>   
>> -- 
>> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
>> of Code Aurora Forum, hosted by The Linux Foundation