media: v4l2-subdev: add subdev-wide state struct
[linux-2.6-microblaze.git] / drivers / staging / media / atomisp / pci / atomisp_csi2.c
index 060b876..56456e5 100644 (file)
 static struct v4l2_mbus_framefmt *__csi2_get_format(struct
        atomisp_mipi_csi2_device
        * csi2,
-       struct
-       v4l2_subdev_pad_config *cfg,
+       struct v4l2_subdev_state *sd_state,
        enum
        v4l2_subdev_format_whence
        which, unsigned int pad) {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&csi2->subdev, cfg, pad);
+               return v4l2_subdev_get_try_format(&csi2->subdev, sd_state,
+                                                 pad);
        else
                return &csi2->formats[pad];
 }
@@ -44,7 +44,7 @@ static struct v4l2_mbus_framefmt *__csi2_get_format(struct
  * return -EINVAL or zero on success
 */
 static int csi2_enum_mbus_code(struct v4l2_subdev *sd,
-                              struct v4l2_subdev_pad_config *cfg,
+                              struct v4l2_subdev_state *sd_state,
                               struct v4l2_subdev_mbus_code_enum *code)
 {
        const struct atomisp_in_fmt_conv *ic = atomisp_in_fmt_conv;
@@ -70,13 +70,13 @@ static int csi2_enum_mbus_code(struct v4l2_subdev *sd,
  * return -EINVAL or zero on success
 */
 static int csi2_get_format(struct v4l2_subdev *sd,
-                          struct v4l2_subdev_pad_config *cfg,
+                          struct v4l2_subdev_state *sd_state,
                           struct v4l2_subdev_format *fmt)
 {
        struct atomisp_mipi_csi2_device *csi2 = v4l2_get_subdevdata(sd);
        struct v4l2_mbus_framefmt *format;
 
-       format = __csi2_get_format(csi2, cfg, fmt->which, fmt->pad);
+       format = __csi2_get_format(csi2, sd_state, fmt->which, fmt->pad);
 
        fmt->format = *format;
 
@@ -84,12 +84,14 @@ static int csi2_get_format(struct v4l2_subdev *sd,
 }
 
 int atomisp_csi2_set_ffmt(struct v4l2_subdev *sd,
-                         struct v4l2_subdev_pad_config *cfg,
+                         struct v4l2_subdev_state *sd_state,
                          unsigned int which, uint16_t pad,
                          struct v4l2_mbus_framefmt *ffmt)
 {
        struct atomisp_mipi_csi2_device *csi2 = v4l2_get_subdevdata(sd);
-       struct v4l2_mbus_framefmt *actual_ffmt = __csi2_get_format(csi2, cfg, which, pad);
+       struct v4l2_mbus_framefmt *actual_ffmt = __csi2_get_format(csi2,
+                                                                  sd_state,
+                                                                  which, pad);
 
        if (pad == CSI2_PAD_SINK) {
                const struct atomisp_in_fmt_conv *ic;
@@ -110,12 +112,14 @@ int atomisp_csi2_set_ffmt(struct v4l2_subdev *sd,
 
                tmp_ffmt = *ffmt = *actual_ffmt;
 
-               return atomisp_csi2_set_ffmt(sd, cfg, which, CSI2_PAD_SOURCE,
+               return atomisp_csi2_set_ffmt(sd, sd_state, which,
+                                            CSI2_PAD_SOURCE,
                                             &tmp_ffmt);
        }
 
        /* FIXME: DPCM decompression */
-       *actual_ffmt = *ffmt = *__csi2_get_format(csi2, cfg, which, CSI2_PAD_SINK);
+       *actual_ffmt = *ffmt = *__csi2_get_format(csi2, sd_state, which,
+                                                 CSI2_PAD_SINK);
 
        return 0;
 }
@@ -129,10 +133,10 @@ int atomisp_csi2_set_ffmt(struct v4l2_subdev *sd,
  * return -EINVAL or zero on success
 */
 static int csi2_set_format(struct v4l2_subdev *sd,
-                          struct v4l2_subdev_pad_config *cfg,
+                          struct v4l2_subdev_state *sd_state,
                           struct v4l2_subdev_format *fmt)
 {
-       return atomisp_csi2_set_ffmt(sd, cfg, fmt->which, fmt->pad,
+       return atomisp_csi2_set_ffmt(sd, sd_state, fmt->which, fmt->pad,
                                     &fmt->format);
 }