[media] smiapp: Clean up smiapp_init_controls()
[deliverable/linux.git] / drivers / media / i2c / smiapp / smiapp-core.c
index d0a55fbc081cbcdbc82a4edb931b7f63f718a3f0..8361070f523ff6e161f67e862ab30bf5e98315ee 100644 (file)
@@ -527,6 +527,7 @@ static int smiapp_init_controls(struct smiapp_sensor *sensor)
        rval = v4l2_ctrl_handler_init(&sensor->pixel_array->ctrl_handler, 12);
        if (rval)
                return rval;
+
        sensor->pixel_array->ctrl_handler.lock = &sensor->mutex;
 
        sensor->analog_gain = v4l2_ctrl_new_std(
@@ -585,8 +586,7 @@ static int smiapp_init_controls(struct smiapp_sensor *sensor)
                dev_err(&client->dev,
                        "pixel array controls initialization failed (%d)\n",
                        sensor->pixel_array->ctrl_handler.error);
-               rval = sensor->pixel_array->ctrl_handler.error;
-               goto error;
+               return sensor->pixel_array->ctrl_handler.error;
        }
 
        sensor->pixel_array->sd.ctrl_handler =
@@ -596,7 +596,8 @@ static int smiapp_init_controls(struct smiapp_sensor *sensor)
 
        rval = v4l2_ctrl_handler_init(&sensor->src->ctrl_handler, 0);
        if (rval)
-               goto error;
+               return rval;
+
        sensor->src->ctrl_handler.lock = &sensor->mutex;
 
        for (max = 0; sensor->platform_data->op_sys_clock[max + 1]; max++);
@@ -614,20 +615,12 @@ static int smiapp_init_controls(struct smiapp_sensor *sensor)
                dev_err(&client->dev,
                        "src controls initialization failed (%d)\n",
                        sensor->src->ctrl_handler.error);
-               rval = sensor->src->ctrl_handler.error;
-               goto error;
+               return sensor->src->ctrl_handler.error;
        }
 
-       sensor->src->sd.ctrl_handler =
-               &sensor->src->ctrl_handler;
+       sensor->src->sd.ctrl_handler = &sensor->src->ctrl_handler;
 
        return 0;
-
-error:
-       v4l2_ctrl_handler_free(&sensor->pixel_array->ctrl_handler);
-       v4l2_ctrl_handler_free(&sensor->src->ctrl_handler);
-
-       return rval;
 }
 
 static void smiapp_free_controls(struct smiapp_sensor *sensor)
This page took 0.025547 seconds and 5 git commands to generate.