[media] smiapp: Split calculating PLL with sensor's limits from updating it
authorSakari Ailus <sakari.ailus@linux.intel.com>
Tue, 16 Sep 2014 19:19:37 +0000 (16:19 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 28 Oct 2014 15:40:41 +0000 (13:40 -0200)
The first one is handy for just trying out a PLL configuration without a
need to apply it.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/i2c/smiapp/smiapp-core.c

index 861312e1a48a5c5401ad4968acf104bb7e3edbb1..4d3dc25eb4a80b54c3cce4fe3656110e36ad6f58 100644 (file)
@@ -240,7 +240,8 @@ static int smiapp_pll_configure(struct smiapp_sensor *sensor)
                sensor, SMIAPP_REG_U16_OP_SYS_CLK_DIV, pll->op.sys_clk_div);
 }
 
-static int smiapp_pll_update(struct smiapp_sensor *sensor)
+static int smiapp_pll_try(struct smiapp_sensor *sensor,
+                         struct smiapp_pll *pll)
 {
        struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd);
        struct smiapp_pll_limits lim = {
@@ -274,6 +275,12 @@ static int smiapp_pll_update(struct smiapp_sensor *sensor)
                .min_line_length_pck_bin = sensor->limits[SMIAPP_LIMIT_MIN_LINE_LENGTH_PCK_BIN],
                .min_line_length_pck = sensor->limits[SMIAPP_LIMIT_MIN_LINE_LENGTH_PCK],
        };
+
+       return smiapp_pll_calculate(&client->dev, &lim, pll);
+}
+
+static int smiapp_pll_update(struct smiapp_sensor *sensor)
+{
        struct smiapp_pll *pll = &sensor->pll;
        int rval;
 
@@ -284,7 +291,7 @@ static int smiapp_pll_update(struct smiapp_sensor *sensor)
        pll->scale_m = sensor->scale_m;
        pll->bits_per_pixel = sensor->csi_format->compressed;
 
-       rval = smiapp_pll_calculate(&client->dev, &lim, pll);
+       rval = smiapp_pll_try(sensor, pll);
        if (rval < 0)
                return rval;