mbox series

[v6,0/6] DVFS for IO devices on sdm845 and sc7180

Message ID 1592222564-13556-1-git-send-email-rnayak@codeaurora.org (mailing list archive)
Headers show
Series DVFS for IO devices on sdm845 and sc7180 | expand

Message

Rajendra Nayak June 15, 2020, 12:02 p.m. UTC
Changes in v6:
1. rebased on 5.8-rc1, no functional change. 

Changes in v5:
1. Opp cleanup path fixed up across drivers

Changes in v4:
1. Fixed all review feedback on v3
2. Dropped the dts patches, will post as a seperate series once
driver changes are reviewed and merged.
The driver changes without DT updates to include OPP tables will
have zero functional change.
3. Dropped the mmc/sdhc patch, which is a standalone patch. will
repost if needed seperately.

Changes in v3:
1. Added better error handling for dev_pm_opp_of_add_table()
2. Some minor changes and fixes in 'PATCH 12/17' as compared to v2
3. Dropped the mmc patch picked up by Ulf [2]

Changes in v2:
1. Added error handling for dev_pm_opp_set_clkname()
and dev_pm_opp_of_add_table()
2. Used dev_pm_opp_put_clkname() in the cleanup path
3. Dropped the OPP patch pulled in by Viresh [1]
4. Dropped the UFS patches since they had some major rework
needed because of changes that were merged in the merge window
and I don't have a UFS device currently to validate the changes.

We have had support added in the OPP core for a while now to support
DVFS for IO devices, and this series uses that infrastructure to
add DVFS support for various IO devices in sdm845 and sc7180 SoCs.

[1] https://lkml.org/lkml/2020/4/14/98
[2] https://lore.kernel.org/patchwork/patch/1226381/

Rajendra Nayak (6):
  tty: serial: qcom_geni_serial: Use OPP API to set clk/perf state
  spi: spi-geni-qcom: Use OPP API to set clk/perf state
  drm/msm/dpu: Use OPP API to set clk/perf state
  drm/msm: dsi: Use OPP API to set clk/perf state
  media: venus: core: Add support for opp tables/perf voting
  spi: spi-qcom-qspi: Use OPP API to set clk/perf state

 drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c  |  3 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c        | 26 +++++++++++-
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h        |  4 ++
 drivers/gpu/drm/msm/dsi/dsi.h                  |  2 +
 drivers/gpu/drm/msm/dsi/dsi_cfg.c              |  4 +-
 drivers/gpu/drm/msm/dsi/dsi_host.c             | 58 ++++++++++++++++++++++++++
 drivers/media/platform/qcom/venus/core.c       | 43 ++++++++++++++++---
 drivers/media/platform/qcom/venus/core.h       |  5 +++
 drivers/media/platform/qcom/venus/pm_helpers.c | 54 ++++++++++++++++++++++--
 drivers/spi/spi-geni-qcom.c                    | 26 ++++++++++--
 drivers/spi/spi-qcom-qspi.c                    | 28 ++++++++++++-
 drivers/tty/serial/qcom_geni_serial.c          | 34 ++++++++++++---
 include/linux/qcom-geni-se.h                   |  4 ++
 13 files changed, 268 insertions(+), 23 deletions(-)

Comments

Matthias Kaehlcke June 17, 2020, 10:15 p.m. UTC | #1
What is the plan for landing these, it seems not all must/should
go through the QCOM tree.

My guesses:

tty: serial: qcom_geni_serial: Use OPP API to set clk/perf state
spi: spi-geni-qcom: Use OPP API to set clk/perf state
  QCOM tree due to shared dependency on change in include/linux/qcom-geni-se.h

drm/msm/dpu: Use OPP API to set clk/perf state
drm/msm: dsi: Use OPP API to set clk/perf state
  drm/msm tree

media: venus: core: Add support for opp tables/perf voting
  venus tree

spi: spi-qcom-qspi: Use OPP API to set clk/perf state
  SPI tree


Does this make sense or are there any dependencies I'm missing?

Thanks

Matthias

On Mon, Jun 15, 2020 at 05:32:38PM +0530, Rajendra Nayak wrote:
> Changes in v6:
> 1. rebased on 5.8-rc1, no functional change. 
> 
> Changes in v5:
> 1. Opp cleanup path fixed up across drivers
> 
> Changes in v4:
> 1. Fixed all review feedback on v3
> 2. Dropped the dts patches, will post as a seperate series once
> driver changes are reviewed and merged.
> The driver changes without DT updates to include OPP tables will
> have zero functional change.
> 3. Dropped the mmc/sdhc patch, which is a standalone patch. will
> repost if needed seperately.
> 
> Changes in v3:
> 1. Added better error handling for dev_pm_opp_of_add_table()
> 2. Some minor changes and fixes in 'PATCH 12/17' as compared to v2
> 3. Dropped the mmc patch picked up by Ulf [2]
> 
> Changes in v2:
> 1. Added error handling for dev_pm_opp_set_clkname()
> and dev_pm_opp_of_add_table()
> 2. Used dev_pm_opp_put_clkname() in the cleanup path
> 3. Dropped the OPP patch pulled in by Viresh [1]
> 4. Dropped the UFS patches since they had some major rework
> needed because of changes that were merged in the merge window
> and I don't have a UFS device currently to validate the changes.
> 
> We have had support added in the OPP core for a while now to support
> DVFS for IO devices, and this series uses that infrastructure to
> add DVFS support for various IO devices in sdm845 and sc7180 SoCs.
> 
> [1] https://lkml.org/lkml/2020/4/14/98
> [2] https://lore.kernel.org/patchwork/patch/1226381/
> 
> Rajendra Nayak (6):
>   tty: serial: qcom_geni_serial: Use OPP API to set clk/perf state
>   spi: spi-geni-qcom: Use OPP API to set clk/perf state
>   drm/msm/dpu: Use OPP API to set clk/perf state
>   drm/msm: dsi: Use OPP API to set clk/perf state
>   media: venus: core: Add support for opp tables/perf voting
>   spi: spi-qcom-qspi: Use OPP API to set clk/perf state
> 
>  drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c  |  3 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c        | 26 +++++++++++-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h        |  4 ++
>  drivers/gpu/drm/msm/dsi/dsi.h                  |  2 +
>  drivers/gpu/drm/msm/dsi/dsi_cfg.c              |  4 +-
>  drivers/gpu/drm/msm/dsi/dsi_host.c             | 58 ++++++++++++++++++++++++++
>  drivers/media/platform/qcom/venus/core.c       | 43 ++++++++++++++++---
>  drivers/media/platform/qcom/venus/core.h       |  5 +++
>  drivers/media/platform/qcom/venus/pm_helpers.c | 54 ++++++++++++++++++++++--
>  drivers/spi/spi-geni-qcom.c                    | 26 ++++++++++--
>  drivers/spi/spi-qcom-qspi.c                    | 28 ++++++++++++-
>  drivers/tty/serial/qcom_geni_serial.c          | 34 ++++++++++++---
>  include/linux/qcom-geni-se.h                   |  4 ++
>  13 files changed, 268 insertions(+), 23 deletions(-)
> 
> -- 
> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
> of Code Aurora Forum, hosted by The Linux Foundation
>
Rajendra Nayak June 18, 2020, 4:47 a.m. UTC | #2
Hey Matthias, thanks for summarizing this.

On 6/18/2020 3:45 AM, Matthias Kaehlcke wrote:
> What is the plan for landing these, it seems not all must/should
> go through the QCOM tree.
> 
> My guesses:
> 
> tty: serial: qcom_geni_serial: Use OPP API to set clk/perf state
> spi: spi-geni-qcom: Use OPP API to set clk/perf state
>    QCOM tree due to shared dependency on change in include/linux/qcom-geni-se.h

That's correct, Bjorn/Andy, can these be pulled in now for 5.9?
They have acks from Greg for serial and Mark for the spi patch.
  
> drm/msm/dpu: Use OPP API to set clk/perf state
> drm/msm: dsi: Use OPP API to set clk/perf state
>    drm/msm tree

Correct, the dsi patch is still not reviewed by Rob, so once that's done,
I am guessing Rob would pull both of these.

> 
> media: venus: core: Add support for opp tables/perf voting
>    venus tree

correct, this is pending review/ack from Stan.

> 
> spi: spi-qcom-qspi: Use OPP API to set clk/perf state
>    SPI tree

Right, Mark has this acked, I am guessing he will pull this in at
some point.

thanks,
Rajendra

> 
> 
> Does this make sense or are there any dependencies I'm missing?
> 
> Thanks
> 
> Matthias
> 
> On Mon, Jun 15, 2020 at 05:32:38PM +0530, Rajendra Nayak wrote:
>> Changes in v6:
>> 1. rebased on 5.8-rc1, no functional change.
>>
>> Changes in v5:
>> 1. Opp cleanup path fixed up across drivers
>>
>> Changes in v4:
>> 1. Fixed all review feedback on v3
>> 2. Dropped the dts patches, will post as a seperate series once
>> driver changes are reviewed and merged.
>> The driver changes without DT updates to include OPP tables will
>> have zero functional change.
>> 3. Dropped the mmc/sdhc patch, which is a standalone patch. will
>> repost if needed seperately.
>>
>> Changes in v3:
>> 1. Added better error handling for dev_pm_opp_of_add_table()
>> 2. Some minor changes and fixes in 'PATCH 12/17' as compared to v2
>> 3. Dropped the mmc patch picked up by Ulf [2]
>>
>> Changes in v2:
>> 1. Added error handling for dev_pm_opp_set_clkname()
>> and dev_pm_opp_of_add_table()
>> 2. Used dev_pm_opp_put_clkname() in the cleanup path
>> 3. Dropped the OPP patch pulled in by Viresh [1]
>> 4. Dropped the UFS patches since they had some major rework
>> needed because of changes that were merged in the merge window
>> and I don't have a UFS device currently to validate the changes.
>>
>> We have had support added in the OPP core for a while now to support
>> DVFS for IO devices, and this series uses that infrastructure to
>> add DVFS support for various IO devices in sdm845 and sc7180 SoCs.
>>
>> [1] https://lkml.org/lkml/2020/4/14/98
>> [2] https://lore.kernel.org/patchwork/patch/1226381/
>>
>> Rajendra Nayak (6):
>>    tty: serial: qcom_geni_serial: Use OPP API to set clk/perf state
>>    spi: spi-geni-qcom: Use OPP API to set clk/perf state
>>    drm/msm/dpu: Use OPP API to set clk/perf state
>>    drm/msm: dsi: Use OPP API to set clk/perf state
>>    media: venus: core: Add support for opp tables/perf voting
>>    spi: spi-qcom-qspi: Use OPP API to set clk/perf state
>>
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c  |  3 +-
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c        | 26 +++++++++++-
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h        |  4 ++
>>   drivers/gpu/drm/msm/dsi/dsi.h                  |  2 +
>>   drivers/gpu/drm/msm/dsi/dsi_cfg.c              |  4 +-
>>   drivers/gpu/drm/msm/dsi/dsi_host.c             | 58 ++++++++++++++++++++++++++
>>   drivers/media/platform/qcom/venus/core.c       | 43 ++++++++++++++++---
>>   drivers/media/platform/qcom/venus/core.h       |  5 +++
>>   drivers/media/platform/qcom/venus/pm_helpers.c | 54 ++++++++++++++++++++++--
>>   drivers/spi/spi-geni-qcom.c                    | 26 ++++++++++--
>>   drivers/spi/spi-qcom-qspi.c                    | 28 ++++++++++++-
>>   drivers/tty/serial/qcom_geni_serial.c          | 34 ++++++++++++---
>>   include/linux/qcom-geni-se.h                   |  4 ++
>>   13 files changed, 268 insertions(+), 23 deletions(-)
>>
>> -- 
>> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
>> of Code Aurora Forum, hosted by The Linux Foundation
>>
Stanimir Varbanov June 18, 2020, 8:20 a.m. UTC | #3
Hi Rajendra,

On 6/18/20 7:47 AM, Rajendra Nayak wrote:
> Hey Matthias, thanks for summarizing this.
> 
> On 6/18/2020 3:45 AM, Matthias Kaehlcke wrote:
>> What is the plan for landing these, it seems not all must/should
>> go through the QCOM tree.
>>
>> My guesses:
>>
>> tty: serial: qcom_geni_serial: Use OPP API to set clk/perf state
>> spi: spi-geni-qcom: Use OPP API to set clk/perf state
>>    QCOM tree due to shared dependency on change in
>> include/linux/qcom-geni-se.h
> 
> That's correct, Bjorn/Andy, can these be pulled in now for 5.9?
> They have acks from Greg for serial and Mark for the spi patch.
>  
>> drm/msm/dpu: Use OPP API to set clk/perf state
>> drm/msm: dsi: Use OPP API to set clk/perf state
>>    drm/msm tree
> 
> Correct, the dsi patch is still not reviewed by Rob, so once that's done,
> I am guessing Rob would pull both of these.
> 
>>
>> media: venus: core: Add support for opp tables/perf voting
>>    venus tree
> 
> correct, this is pending review/ack from Stan.

I tested the changes in the driver, and they looks fine. But when
applied the corresponding change in the DT node I see this message when
the streaming is stopping:

qcom_rpmh TCS Busy, retrying RPMH message send: addr=0x30000

I tested on v5.7 (linaro-integration). Should I be worried ?
Rajendra Nayak June 18, 2020, 12:11 p.m. UTC | #4
Hey Stan,
  
> On 6/18/20 7:47 AM, Rajendra Nayak wrote:
>> Hey Matthias, thanks for summarizing this.
>>
>> On 6/18/2020 3:45 AM, Matthias Kaehlcke wrote:
>>> What is the plan for landing these, it seems not all must/should
>>> go through the QCOM tree.
>>>
>>> My guesses:
>>>
>>> tty: serial: qcom_geni_serial: Use OPP API to set clk/perf state
>>> spi: spi-geni-qcom: Use OPP API to set clk/perf state
>>>     QCOM tree due to shared dependency on change in
>>> include/linux/qcom-geni-se.h
>>
>> That's correct, Bjorn/Andy, can these be pulled in now for 5.9?
>> They have acks from Greg for serial and Mark for the spi patch.
>>   
>>> drm/msm/dpu: Use OPP API to set clk/perf state
>>> drm/msm: dsi: Use OPP API to set clk/perf state
>>>     drm/msm tree
>>
>> Correct, the dsi patch is still not reviewed by Rob, so once that's done,
>> I am guessing Rob would pull both of these.
>>
>>>
>>> media: venus: core: Add support for opp tables/perf voting
>>>     venus tree
>>
>> correct, this is pending review/ack from Stan.
> 
> I tested the changes in the driver, and they looks fine. But when
> applied the corresponding change in the DT node I see this message when
> the streaming is stopping:
> 
> qcom_rpmh TCS Busy, retrying RPMH message send: addr=0x30000
> 
> I tested on v5.7 (linaro-integration). Should I be worried ?

Is this seen on sdm845 or sc7180, or both?

thanks,
Rajendra  -- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
Stanimir Varbanov June 18, 2020, 12:25 p.m. UTC | #5
On 6/18/20 3:11 PM, Rajendra Nayak wrote:
> 
> Hey Stan,
>  
>> On 6/18/20 7:47 AM, Rajendra Nayak wrote:
>>> Hey Matthias, thanks for summarizing this.
>>>
>>> On 6/18/2020 3:45 AM, Matthias Kaehlcke wrote:
>>>> What is the plan for landing these, it seems not all must/should
>>>> go through the QCOM tree.
>>>>
>>>> My guesses:
>>>>
>>>> tty: serial: qcom_geni_serial: Use OPP API to set clk/perf state
>>>> spi: spi-geni-qcom: Use OPP API to set clk/perf state
>>>>     QCOM tree due to shared dependency on change in
>>>> include/linux/qcom-geni-se.h
>>>
>>> That's correct, Bjorn/Andy, can these be pulled in now for 5.9?
>>> They have acks from Greg for serial and Mark for the spi patch.
>>>  
>>>> drm/msm/dpu: Use OPP API to set clk/perf state
>>>> drm/msm: dsi: Use OPP API to set clk/perf state
>>>>     drm/msm tree
>>>
>>> Correct, the dsi patch is still not reviewed by Rob, so once that's
>>> done,
>>> I am guessing Rob would pull both of these.
>>>
>>>>
>>>> media: venus: core: Add support for opp tables/perf voting
>>>>     venus tree
>>>
>>> correct, this is pending review/ack from Stan.
>>
>> I tested the changes in the driver, and they looks fine. But when
>> applied the corresponding change in the DT node I see this message when
>> the streaming is stopping:
>>
>> qcom_rpmh TCS Busy, retrying RPMH message send: addr=0x30000
>>
>> I tested on v5.7 (linaro-integration). Should I be worried ?
> 
> Is this seen on sdm845 or sc7180, or both?

Seen on sdm845, I don't have sc7180 to test.

I can try it on 5.8-rc1 integration-linux-qcomlt if you think there
might be a fix in rpmh.
Rajendra Nayak July 1, 2020, 11:28 a.m. UTC | #6
Hey Stan,

>>
>> Hey Stan,
>>   
>>> On 6/18/20 7:47 AM, Rajendra Nayak wrote:
>>>> Hey Matthias, thanks for summarizing this.
>>>>
>>>> On 6/18/2020 3:45 AM, Matthias Kaehlcke wrote:
>>>>> What is the plan for landing these, it seems not all must/should
>>>>> go through the QCOM tree.
>>>>>
>>>>> My guesses:
>>>>>
>>>>> tty: serial: qcom_geni_serial: Use OPP API to set clk/perf state
>>>>> spi: spi-geni-qcom: Use OPP API to set clk/perf state
>>>>>      QCOM tree due to shared dependency on change in
>>>>> include/linux/qcom-geni-se.h
>>>>
>>>> That's correct, Bjorn/Andy, can these be pulled in now for 5.9?
>>>> They have acks from Greg for serial and Mark for the spi patch.
>>>>   
>>>>> drm/msm/dpu: Use OPP API to set clk/perf state
>>>>> drm/msm: dsi: Use OPP API to set clk/perf state
>>>>>      drm/msm tree
>>>>
>>>> Correct, the dsi patch is still not reviewed by Rob, so once that's
>>>> done,
>>>> I am guessing Rob would pull both of these.
>>>>
>>>>>
>>>>> media: venus: core: Add support for opp tables/perf voting
>>>>>      venus tree
>>>>
>>>> correct, this is pending review/ack from Stan.
>>>
>>> I tested the changes in the driver, and they looks fine. But when
>>> applied the corresponding change in the DT node I see this message when
>>> the streaming is stopping:
>>>
>>> qcom_rpmh TCS Busy, retrying RPMH message send: addr=0x30000
>>>
>>> I tested on v5.7 (linaro-integration). Should I be worried ?

I had a look at this message and also spoke to Maulik, and it seems
like its fairly harmless. It just suggests we had to wait a while to
get a TCS, and then retry, So nothing to worry about.

thanks,
Rajendra