Merge branch 'i2c/for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
[linux-drm-fsl-dcu.git] / drivers / i2c / busses / i2c-uniphier-f.c
index e8d03bcfe3e0a408491d771ff6cdbf33ff2f52d1..f3e5ff8522f0af6ef77af252f3269114fe4b803e 100644 (file)
@@ -466,6 +466,11 @@ static int uniphier_fi2c_clk_init(struct device *dev,
        if (of_property_read_u32(np, "clock-frequency", &bus_speed))
                bus_speed = UNIPHIER_FI2C_DEFAULT_SPEED;
 
+       if (!bus_speed) {
+               dev_err(dev, "clock-freqyency should not be zero\n");
+               return -EINVAL;
+       }
+
        if (bus_speed > UNIPHIER_FI2C_MAX_SPEED)
                bus_speed = UNIPHIER_FI2C_MAX_SPEED;
 
@@ -481,6 +486,10 @@ static int uniphier_fi2c_clk_init(struct device *dev,
                return ret;
 
        clk_rate = clk_get_rate(priv->clk);
+       if (!clk_rate) {
+               dev_err(dev, "input clock rate should not be zero\n");
+               return -EINVAL;
+       }
 
        uniphier_fi2c_reset(priv);
 
@@ -531,7 +540,7 @@ static int uniphier_fi2c_probe(struct platform_device *pdev)
 
        ret = uniphier_fi2c_clk_init(dev, priv);
        if (ret)
-               return ret;
+               goto err;
 
        ret = devm_request_irq(dev, irq, uniphier_fi2c_interrupt, 0,
                               pdev->name, priv);