Re: [PATCH 3/3] i2c: i2c-qcom-geni: Add support for 'assigned-performance-states'

Rajendra Nayak
2021-01-18T05:37:48Z

On 1/15/2021 8:13 PM, Bjorn Andersson wrote:
> On Thu 24 Dec 05:12 CST 2020, Roja Rani Yarubandi wrote:
>
>> @@ -629,6 +658,16 @@ static int __maybe_unused geni_i2c_runtime_suspend(struct device *dev)
>> struct geni_i2c_dev *gi2c = dev_get_drvdata(dev);
>>
>> disable_irq(gi2c->irq);
>> +
>> + /* Drop the assigned performance state */
>> + if (gi2c->assigned_pstate) {
>> + ret = dev_pm_genpd_set_performance_state(dev, 0);
>> + if (ret) {
>> + dev_err(dev, "Failed to set performance state\n");
>> + return ret;
>> + }
>> + }
>> +
>
> Ulf, Viresh, I think we discussed this at the time of introducing the
> performance states.
>
> The client's state does not affect if its performance_state should
> be included in the calculation of the aggregated performance_state, so
> each driver that needs to keep some minimum performance state needs to
> have these two snippets.
>
> Would it not make sense to on enable/disable re-evaluate the
> performance_state and potentially reconfigure the hardware
> automatically?

I agree, this will be repeated across multiple drivers which would
need some minimal vote while they are active, handling this during
genpd enable/disable in genpd core makes sense.

>
> Regards,
> Bjorn
>
>> ret = geni_se_resources_off(&gi2c->se);
>> if (ret) {
>> enable_irq(gi2c->irq);
>> @@ -654,6 +693,16 @@ static int __maybe_unused geni_i2c_runtime_resume(struct device *dev)
>> if (ret)
>> return ret;
>>
>> + /* Set the assigned performance state */
>> + if (gi2c->assigned_pstate) {
>> + ret = dev_pm_genpd_set_performance_state(dev,
>> + gi2c->assigned_pstate);
>> + if (ret) {
>> + dev_err(dev, "Failed to set performance state\n");
>> + return ret;
>> + }
>> + }
>> +
>> enable_irq(gi2c->irq);
>> gi2c->suspended = 0;
>> return 0;
>> --
>> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
>> of Code Aurora Forum, hosted by The Linux Foundation
>>

--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation