diff --git a/drivers/media/i2c/mt9m114.c b/drivers/media/i2c/mt9m114.c index 910eefa915c7..ba7b3e9857c5 100644 --- a/drivers/media/i2c/mt9m114.c +++ b/drivers/media/i2c/mt9m114.c @@ -2228,6 +2228,13 @@ static int mt9m114_power_on(struct mt9m114 *sensor) static void mt9m114_power_off(struct mt9m114 *sensor) { + unsigned int duration; + + gpiod_set_value(sensor->reset, 1); + /* Power off takes 10 clock cycles. Double it to be safe. */ + duration = DIV_ROUND_UP(2 * 10 * 1000000, clk_get_rate(sensor->clk)); + fsleep(duration); + clk_disable_unprepare(sensor->clk); regulator_bulk_disable(ARRAY_SIZE(sensor->supplies), sensor->supplies); }