diff --git a/drivers/media/i2c/sc031gs.c b/drivers/media/i2c/sc031gs.c index bd6f9eeb7bc7..854c2a0f9ee7 100644 --- a/drivers/media/i2c/sc031gs.c +++ b/drivers/media/i2c/sc031gs.c @@ -999,8 +999,8 @@ static void sc031gs_modify_fps_info(struct sc031gs *sc031gs) { const struct sc031gs_mode *mode = sc031gs->cur_mode; - sc031gs->cur_fps.denominator = mode->max_fps.denominator * sc031gs->cur_vts / - mode->vts_def; + sc031gs->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc031gs->cur_vts; } static int sc031gs_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc035gs.c b/drivers/media/i2c/sc035gs.c index 5814e3f69bda..0001f37d65f8 100644 --- a/drivers/media/i2c/sc035gs.c +++ b/drivers/media/i2c/sc035gs.c @@ -983,8 +983,8 @@ static void sc035gs_modify_fps_info(struct sc035gs *sc035gs) { const struct sc035gs_mode *mode = sc035gs->cur_mode; - sc035gs->cur_fps.denominator = mode->max_fps.denominator * sc035gs->cur_vts / - mode->vts_def; + sc035gs->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc035gs->cur_vts; } static int sc035gs_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc132gs.c b/drivers/media/i2c/sc132gs.c index ae2f3177be7f..dd6b63e28db2 100644 --- a/drivers/media/i2c/sc132gs.c +++ b/drivers/media/i2c/sc132gs.c @@ -1098,8 +1098,8 @@ static void sc132gs_modify_fps_info(struct sc132gs *sc132gs) { const struct sc132gs_mode *mode = sc132gs->cur_mode; - sc132gs->cur_fps.denominator = mode->max_fps.denominator * sc132gs->cur_vts / - mode->vts_def; + sc132gs->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc132gs->cur_vts; } static int sc132gs_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc210iot.c b/drivers/media/i2c/sc210iot.c index ba1d93534558..d5a2f6777395 100644 --- a/drivers/media/i2c/sc210iot.c +++ b/drivers/media/i2c/sc210iot.c @@ -369,8 +369,8 @@ static void sc210iot_modify_fps_info(struct sc210iot *sc210iot) { const struct sc210iot_mode *mode = sc210iot->cur_mode; - sc210iot->cur_fps.denominator = mode->max_fps.denominator * sc210iot->cur_vts / - mode->vts_def; + sc210iot->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc210iot->cur_vts; } static int sc210iot_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc2232.c b/drivers/media/i2c/sc2232.c index 30294828f872..0278d2f31b55 100644 --- a/drivers/media/i2c/sc2232.c +++ b/drivers/media/i2c/sc2232.c @@ -1161,8 +1161,8 @@ static void sc2232_modify_fps_info(struct sc2232 *sc2232) { const struct sc2232_mode *mode = sc2232->cur_mode; - sc2232->cur_fps.denominator = mode->max_fps.denominator * sc2232->cur_vts / - mode->vts_def; + sc2232->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc2232->cur_vts; } static int sc2232_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc2239.c b/drivers/media/i2c/sc2239.c index c23cee7dd18a..ddc3a90a073e 100644 --- a/drivers/media/i2c/sc2239.c +++ b/drivers/media/i2c/sc2239.c @@ -927,8 +927,8 @@ static void sc2239_modify_fps_info(struct sc2239 *sc2239) { const struct sc2239_mode *mode = sc2239->cur_mode; - sc2239->cur_fps.denominator = mode->max_fps.denominator * sc2239->cur_vts / - mode->vts_def; + sc2239->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc2239->cur_vts; } static int sc2239_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc230ai.c b/drivers/media/i2c/sc230ai.c index 9e76ce5b4db7..e7975c80fa85 100644 --- a/drivers/media/i2c/sc230ai.c +++ b/drivers/media/i2c/sc230ai.c @@ -1385,8 +1385,8 @@ static void sc230ai_modify_fps_info(struct sc230ai *sc230ai) { const struct sc230ai_mode *mode = sc230ai->cur_mode; - sc230ai->cur_fps.denominator = mode->max_fps.denominator * sc230ai->cur_vts / - mode->vts_def; + sc230ai->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc230ai->cur_vts; } static int sc230ai_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc2310.c b/drivers/media/i2c/sc2310.c index 54fad6c12fe7..ac76a27afc83 100644 --- a/drivers/media/i2c/sc2310.c +++ b/drivers/media/i2c/sc2310.c @@ -1574,8 +1574,8 @@ static void sc2310_modify_fps_info(struct sc2310 *sc2310) { const struct sc2310_mode *mode = sc2310->cur_mode; - sc2310->cur_fps.denominator = mode->max_fps.denominator * sc2310->cur_vts / - mode->vts_def; + sc2310->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc2310->cur_vts; } static int sc2310_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc301iot.c b/drivers/media/i2c/sc301iot.c index 4d81b30aa3ba..ff0fa6520284 100644 --- a/drivers/media/i2c/sc301iot.c +++ b/drivers/media/i2c/sc301iot.c @@ -1869,8 +1869,8 @@ static void SC301IOT_modify_fps_info(struct SC301IOT *SC301IOT) { const struct SC301IOT_mode *mode = SC301IOT->cur_mode; - SC301IOT->cur_fps.denominator = mode->max_fps.denominator * SC301IOT->cur_vts / - mode->vts_def; + SC301IOT->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + SC301IOT->cur_vts; } static int SC301IOT_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc3336.c b/drivers/media/i2c/sc3336.c index 690d56cb3ae6..431a0384bebf 100644 --- a/drivers/media/i2c/sc3336.c +++ b/drivers/media/i2c/sc3336.c @@ -1314,8 +1314,8 @@ static void sc3336_modify_fps_info(struct sc3336 *sc3336) { const struct sc3336_mode *mode = sc3336->cur_mode; - sc3336->cur_fps.denominator = mode->max_fps.denominator * sc3336->cur_vts / - mode->vts_def; + sc3336->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc3336->cur_vts; } static int sc3336_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc3338.c b/drivers/media/i2c/sc3338.c index b63e4bcbfaea..ff451cd696a2 100644 --- a/drivers/media/i2c/sc3338.c +++ b/drivers/media/i2c/sc3338.c @@ -1133,8 +1133,8 @@ static void sc3338_modify_fps_info(struct sc3338 *sc3338) { const struct sc3338_mode *mode = sc3338->cur_mode; - sc3338->cur_fps.denominator = mode->max_fps.denominator * sc3338->cur_vts / - mode->vts_def; + sc3338->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc3338->cur_vts; } static int sc3338_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc401ai.c b/drivers/media/i2c/sc401ai.c index 42e43eb39f5a..450fbd8baaf0 100644 --- a/drivers/media/i2c/sc401ai.c +++ b/drivers/media/i2c/sc401ai.c @@ -1267,8 +1267,8 @@ static void sc401ai_modify_fps_info(struct sc401ai *sc401ai) { const struct sc401ai_mode *mode = sc401ai->cur_mode; - sc401ai->cur_fps.denominator = mode->max_fps.denominator * sc401ai->cur_vts / - mode->vts_def; + sc401ai->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc401ai->cur_vts; } static int sc401ai_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc4210.c b/drivers/media/i2c/sc4210.c index 787c1383517f..5f8958f1ad87 100644 --- a/drivers/media/i2c/sc4210.c +++ b/drivers/media/i2c/sc4210.c @@ -2325,8 +2325,8 @@ static void sc4210_modify_fps_info(struct sc4210 *sc4210) { const struct sc4210_mode *mode = sc4210->cur_mode; - sc4210->cur_fps.denominator = mode->max_fps.denominator * sc4210->cur_vts / - mode->vts_def; + sc4210->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc4210->cur_vts; } static int sc4210_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc4238.c b/drivers/media/i2c/sc4238.c index 3ca0a61d461f..8750d5a43427 100644 --- a/drivers/media/i2c/sc4238.c +++ b/drivers/media/i2c/sc4238.c @@ -2410,8 +2410,8 @@ static void sc4238_modify_fps_info(struct sc4238 *sc4238) { const struct sc4238_mode *mode = sc4238->cur_mode; - sc4238->cur_fps.denominator = mode->max_fps.denominator * sc4238->cur_vts / - mode->vts_def; + sc4238->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc4238->cur_vts; } static int sc4238_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc430cs.c b/drivers/media/i2c/sc430cs.c index 1783fd37926f..5900da6887fa 100644 --- a/drivers/media/i2c/sc430cs.c +++ b/drivers/media/i2c/sc430cs.c @@ -1138,8 +1138,8 @@ static void sc430cs_modify_fps_info(struct sc430cs *sc430cs) { const struct sc430cs_mode *mode = sc430cs->cur_mode; - sc430cs->cur_fps.denominator = mode->max_fps.denominator * sc430cs->cur_vts / - mode->vts_def; + sc430cs->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc430cs->cur_vts; } static int sc430cs_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc4336.c b/drivers/media/i2c/sc4336.c index abbfeb37e385..2fdf63b86f0c 100644 --- a/drivers/media/i2c/sc4336.c +++ b/drivers/media/i2c/sc4336.c @@ -1104,8 +1104,8 @@ static void sc4336_modify_fps_info(struct sc4336 *sc4336) { const struct sc4336_mode *mode = sc4336->cur_mode; - sc4336->cur_fps.denominator = mode->max_fps.denominator * sc4336->cur_vts / - mode->vts_def; + sc4336->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc4336->cur_vts; } static int sc4336_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc500ai.c b/drivers/media/i2c/sc500ai.c index 7797885804a0..00456f9b3b41 100644 --- a/drivers/media/i2c/sc500ai.c +++ b/drivers/media/i2c/sc500ai.c @@ -1396,8 +1396,8 @@ static void sc500ai_modify_fps_info(struct sc500ai *sc500ai) { const struct sc500ai_mode *mode = sc500ai->cur_mode; - sc500ai->cur_fps.denominator = mode->max_fps.denominator * sc500ai->cur_vts / - mode->vts_def; + sc500ai->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc500ai->cur_vts; } static int sc500ai_set_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/i2c/sc530ai.c b/drivers/media/i2c/sc530ai.c index b8d818cbe30d..b582ed65dd37 100644 --- a/drivers/media/i2c/sc530ai.c +++ b/drivers/media/i2c/sc530ai.c @@ -950,9 +950,10 @@ static int sc530ai_g_frame_interval(struct v4l2_subdev *sd, struct sc530ai *sc530ai = to_sc530ai(sd); const struct sc530ai_mode *mode = sc530ai->cur_mode; - mutex_lock(&sc530ai->mutex); - fi->interval = mode->max_fps; - mutex_unlock(&sc530ai->mutex); + if (sc530ai->streaming) + fi->interval = sc530ai->cur_fps; + else + fi->interval = mode->max_fps; return 0; } @@ -1635,8 +1636,8 @@ static void sc530ai_modify_fps_info(struct sc530ai *sc5330ai) { const struct sc530ai_mode *mode = sc5330ai->cur_mode; - sc5330ai->cur_fps.denominator = mode->max_fps.denominator * sc5330ai->cur_vts / - mode->vts_def; + sc5330ai->cur_fps.denominator = mode->max_fps.denominator * mode->vts_def / + sc5330ai->cur_vts; } static int sc530ai_set_ctrl(struct v4l2_ctrl *ctrl)