]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/media/i2c/smiapp/smiapp-core.c
[media] smiapp: Always initialise the sensor in probe
[karo-tx-linux.git] / drivers / media / i2c / smiapp / smiapp-core.c
index 9873b3d764dbf0746a749bbe7acaf49cc3c7edf5..8a58c641bc477800c1c2133184856e9fa508f791 100644 (file)
@@ -2530,8 +2530,9 @@ static int smiapp_register_subdev(struct smiapp_sensor *sensor,
        return 0;
 }
 
-static int smiapp_register_subdevs(struct smiapp_sensor *sensor)
+static int smiapp_registered(struct v4l2_subdev *subdev)
 {
+       struct smiapp_sensor *sensor = to_smiapp_sensor(subdev);
        int rval;
 
        if (sensor->scaler) {
@@ -2819,25 +2820,6 @@ out_power_off:
        return rval;
 }
 
-static int smiapp_registered(struct v4l2_subdev *subdev)
-{
-       struct smiapp_sensor *sensor = to_smiapp_sensor(subdev);
-       struct i2c_client *client = v4l2_get_subdevdata(subdev);
-       int rval;
-
-       if (!client->dev.of_node) {
-               rval = smiapp_init(sensor);
-               if (rval)
-                       return rval;
-       }
-
-       rval = smiapp_register_subdevs(sensor);
-       if (rval)
-               smiapp_cleanup(sensor);
-
-       return rval;
-}
-
 static int smiapp_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
 {
        struct smiapp_subdev *ssd = to_smiapp_subdev(sd);
@@ -3079,11 +3061,9 @@ static int smiapp_probe(struct i2c_client *client,
        sensor->src->sensor = sensor;
        sensor->src->pads[0].flags = MEDIA_PAD_FL_SOURCE;
 
-       if (client->dev.of_node) {
-               rval = smiapp_init(sensor);
-               if (rval)
-                       goto out_media_entity_cleanup;
-       }
+       rval = smiapp_init(sensor);
+       if (rval)
+               goto out_media_entity_cleanup;
 
        rval = media_entity_pads_init(&sensor->src->sd.entity, 2,
                                 sensor->src->pads);