]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/media/i2c/ov7740.c
media: ov7740: fix runtime pm initialization
[linux.git] / drivers / media / i2c / ov7740.c
index 177688afd9a66f4120075d60f4888668b578ee8e..8835b831cdc09cee920bec42bb7e801126c69b09 100644 (file)
@@ -1101,6 +1101,9 @@ static int ov7740_probe(struct i2c_client *client,
        if (ret)
                return ret;
 
+       pm_runtime_set_active(&client->dev);
+       pm_runtime_enable(&client->dev);
+
        ret = ov7740_detect(ov7740);
        if (ret)
                goto error_detect;
@@ -1123,8 +1126,6 @@ static int ov7740_probe(struct i2c_client *client,
        if (ret)
                goto error_async_register;
 
-       pm_runtime_set_active(&client->dev);
-       pm_runtime_enable(&client->dev);
        pm_runtime_idle(&client->dev);
 
        return 0;
@@ -1134,6 +1135,8 @@ static int ov7740_probe(struct i2c_client *client,
 error_init_controls:
        ov7740_free_controls(ov7740);
 error_detect:
+       pm_runtime_disable(&client->dev);
+       pm_runtime_set_suspended(&client->dev);
        ov7740_set_power(ov7740, 0);
        media_entity_cleanup(&ov7740->subdev.entity);