struct clk *clk;
        int freq, ret;
 
-       clk = devm_clk_get(&spi->dev, NULL);
+       clk = devm_clk_get_optional(&spi->dev, NULL);
        if (IS_ERR(clk)) {
                dev_err(&spi->dev, "no CAN clock source defined\n");
                return PTR_ERR(clk);
        if (!net)
                return -ENOMEM;
 
-       if (!IS_ERR(clk)) {
-               ret = clk_prepare_enable(clk);
-               if (ret)
-                       goto out_free;
-       }
+       ret = clk_prepare_enable(clk);
+       if (ret)
+               goto out_free;
 
        net->netdev_ops = &hi3110_netdev_ops;
        net->flags |= IFF_ECHO;
        hi3110_power_enable(priv->power, 0);
 
  out_clk:
-       if (!IS_ERR(clk))
-               clk_disable_unprepare(clk);
+       clk_disable_unprepare(clk);
 
  out_free:
        free_candev(net);
 
        hi3110_power_enable(priv->power, 0);
 
-       if (!IS_ERR(priv->clk))
-               clk_disable_unprepare(priv->clk);
+       clk_disable_unprepare(priv->clk);
 
        free_candev(net);