diff --git a/drivers/media/i2c/ar1335_common.c b/drivers/media/i2c/ar1335_common.c index ff4eadff..a355c4d9 100644 --- a/drivers/media/i2c/ar1335_common.c +++ b/drivers/media/i2c/ar1335_common.c @@ -248,7 +248,7 @@ static int cam_power_get(struct cam *priv) const char *mclk_name; const char *parentclk_name; struct clk *parent; - int err = 0; + int err = 0, ret = 0; struct camera_common_power_rail *pw = priv ? &priv->power : NULL; struct camera_common_pdata *pdata = priv ? priv->pdata : NULL; @@ -272,8 +272,13 @@ static int cam_power_get(struct cam *priv) dev_err(&priv->i2c_client->dev, "unable to get parent clcok %s", parentclk_name); - else - clk_set_parent(pw->mclk, parent); + else { + ret = clk_set_parent(pw->mclk, parent); + if (ret < 0) + dev_dbg(&priv->i2c_client->dev, + "%s unable to set parent clock %d\n", + __func__, ret); + } } } diff --git a/drivers/media/i2c/lt6911uxc.c b/drivers/media/i2c/lt6911uxc.c index 7ac7abbc..3bd41987 100644 --- a/drivers/media/i2c/lt6911uxc.c +++ b/drivers/media/i2c/lt6911uxc.c @@ -132,7 +132,7 @@ static int lt6911uxc_power_get(struct tegracam_device *tc_dev) struct camera_common_power_rail *pw = s_data->power; struct camera_common_pdata *pdata = s_data->pdata; struct clk *parent; - int err = 0; + int err = 0, ret = 0; if (!pdata) { dev_err(dev, "pdata missing\n"); @@ -153,8 +153,13 @@ static int lt6911uxc_power_get(struct tegracam_device *tc_dev) if (IS_ERR(parent)) { dev_err(dev, "unable to get parent clock %s", pdata->parentclk_name); - } else - clk_set_parent(pw->mclk, parent); + } else { + ret = clk_set_parent(pw->mclk, parent); + if (ret < 0) + dev_dbg(dev, + "%s unable to set parent clock %d\n", + __func__, ret); + } } } @@ -508,8 +513,16 @@ static void lt6911uxc_remove(struct i2c_client *client) #endif { struct camera_common_data *s_data = to_camera_common_data(&client->dev); - struct lt6911uxc *priv = (struct lt6911uxc *)s_data->priv; + struct lt6911uxc *priv; + if (!s_data) +#if (KERNEL_VERSION(6, 1, 0) > LINUX_VERSION_CODE) + return -EINVAL; +#else + return; +#endif + + priv = (struct lt6911uxc *)s_data->priv; tegracam_v4l2subdev_unregister(priv->tc_dev); tegracam_device_unregister(priv->tc_dev);