The Atmel ECC driver contains a check for the I2C bus clock
frequency, so as to check that the I2C adapter in use
satisfies the device specs.

If the device is connected to a device tree node that does not
contain a clock frequency setting, such as an I2C mux or gate,
this blocks the probe. Make the probe continue with a warning
if no clock frequency can be found, assuming it is safe.

Signed-off-by: Linus Walleij <linus.wall...@linaro.org>
---
ChangeLog v1->v2:
- Instead of silently ignoring the missing clock frequency,
  issue a warning and continue.
---
 drivers/crypto/atmel-ecc.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c
index e66f18a0ddd0..33773920e4bf 100644
--- a/drivers/crypto/atmel-ecc.c
+++ b/drivers/crypto/atmel-ecc.c
@@ -659,12 +659,9 @@ static int atmel_ecc_probe(struct i2c_client *client,
 
        ret = of_property_read_u32(client->adapter->dev.of_node,
                                   "clock-frequency", &bus_clk_rate);
-       if (ret) {
-               dev_err(dev, "of: failed to read clock-frequency property\n");
-               return ret;
-       }
-
-       if (bus_clk_rate > 1000000L) {
+       if (ret)
+               dev_warn(dev, "i2c host missing clock frequency information\n");
+       else if (bus_clk_rate > 1000000L) {
                dev_err(dev, "%d exceeds maximum supported clock frequency 
(1MHz)\n",
                        bus_clk_rate);
                return -EINVAL;
-- 
2.17.0

Reply via email to