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

Reply via email to