On 9/24/26 2:51 PM, Stefan Eichenberger wrote:

Hello Stefan,

On Wed, Sep 23, 2026 at 03:30:44PM +0200, Marek Vasut wrote:
On 9/22/26 10:42 PM, Stefan Eichenberger wrote:

Hello Stefan,

+       rc = clk_get_by_name(dev, "ref", &clk);
+       if (rc)
+               rc = clk_get_by_name(dev, "ref_clk", &clk);
+       /*
+        * Only fall back to the parent node's clocks if the parent is a
+        * dwc3 glue wrapper. When the generic node is a top level node,
+        * the parent is not the glue device but a bus or the root device,
+        * and its clocks are unrelated to the controller.
+        */
+       if (rc && dev->parent && strstr(dev->parent->driver->name, "dwc3")) {

Could dev->parent->driver be NULL ?


It should never be NULL. This could only happen when we define it in the
root node but then it should never bind. However, I guess it's better to
be safe and check for NULL anyways in case something is really wrong. I
will add the check in the next version.

+               rc = clk_get_by_name(dev->parent, "ref", &clk);
+               if (rc)
+                       rc = clk_get_by_name(dev->parent, "ref_clk", &clk);
+       }
+       if (!rc) {
+               priv->ref_clk = clk;
+
+               rc = clk_enable(&priv->ref_clk);
+               if (rc && rc != -ENOSYS)
+                       dev_warn(dev, "failed to enable ref clock: %d\n", rc);

Shouldn't the driver fail to probe if clock cannot be enabled ?

Yes that makes sense, I will change that in the next version.

Thank you!

--
Best regards,
Marek Vasut

Reply via email to