Re: [PATCH v2 5/9] serial: qcom-geni: Use geni_se_set_rate() for source clock configuration

From: Praveen Talari

Date: Wed Oct 14 2026 - 23:59:05 EST


Hi Mukesh

On 08-10-2026 13:05, Mukesh Savaliya wrote:


On 8/27/2026 11:29 PM, Praveen Talari wrote:

[...]> @@ -2039,15 +2041,19 @@ static void qcom_geni_serial_remove(struct platform_device *pdev)
  static int __maybe_unused qcom_geni_serial_runtime_suspend(struct device *dev)
  {
      struct qcom_geni_serial_port *port = dev_get_drvdata(dev);
+    int ret;
  -    return port->dev_data->power_off ?
-           port->dev_data->power_off(&port->se) : 0;
+    ret = port->dev_data->power_off ?
+          port->dev_data->power_off(&port->se) : 0;
+    if (ret)
+        return ret;
+
+    return geni_se_set_rate(&port->se, 0);
Is there any register access happening as part of this geni_se_set_rate() ? i was searching but could not see after seeing set_rate() callback removed.>   }

No, there is no SE register access as part of geni_se_set_rate(), nor is there SE register access immediately after it.

Thanks,

Praveen Talari

    static int __maybe_unused qcom_geni_serial_runtime_resume(struct device *dev)
  {
      struct qcom_geni_serial_port *port = dev_get_drvdata(dev);
-    struct uart_port *uport = &port->uport;
      int ret;
        if (port->dev_data->power_on) {
@@ -2056,8 +2062,8 @@ static int __maybe_unused qcom_geni_serial_runtime_resume(struct device *dev)
              return ret;
      }
  -    if (port->se.has_opp && port->clk_rate)
-        return dev_pm_opp_set_rate(uport->dev, port->clk_rate);
+    if (port->clk_rate)
+        return geni_se_set_rate(&port->se, port->clk_rate);
        return 0;
  }
[...]