kernel: bump 5.15 to 5.15.100
[openwrt/openwrt.git] / target / linux / bcm27xx / patches-5.15 / 950-0602-media-imx219-Advertise-embedded-data-node-on-media-p.patch
index 79487b60cfbac43eb8d147507ac81a639b63579c..9e6778858896f6bba8e2dc0f5473cef3931b6b9f 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
 
 --- a/drivers/media/i2c/imx219.c
 +++ b/drivers/media/i2c/imx219.c
-@@ -118,6 +118,16 @@
+@@ -124,6 +124,16 @@
  #define IMX219_PIXEL_ARRAY_WIDTH      3280U
  #define IMX219_PIXEL_ARRAY_HEIGHT     2464U
  
@@ -39,7 +39,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
  struct imx219_reg {
        u16 address;
        u8 val;
-@@ -538,7 +548,7 @@ static const struct imx219_mode supporte
+@@ -448,7 +458,7 @@ static const struct imx219_mode supporte
  
  struct imx219 {
        struct v4l2_subdev sd;
@@ -48,7 +48,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
  
        struct v4l2_mbus_framefmt fmt;
  
-@@ -688,18 +698,26 @@ static void imx219_set_default_format(st
+@@ -598,18 +608,26 @@ static void imx219_set_default_format(st
  static int imx219_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
  {
        struct imx219 *imx219 = to_imx219(sd);
@@ -83,7 +83,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
  
        /* Initialize try_crop rectangle. */
        try_crop = v4l2_subdev_get_try_crop(sd, fh->state, 0);
-@@ -808,12 +826,21 @@ static int imx219_enum_mbus_code(struct
+@@ -718,12 +736,21 @@ static int imx219_enum_mbus_code(struct
  {
        struct imx219 *imx219 = to_imx219(sd);
  
@@ -109,7 +109,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
  
        return 0;
  }
-@@ -823,21 +850,30 @@ static int imx219_enum_frame_size(struct
+@@ -733,21 +760,30 @@ static int imx219_enum_frame_size(struct
                                  struct v4l2_subdev_frame_size_enum *fse)
  {
        struct imx219 *imx219 = to_imx219(sd);
@@ -151,7 +151,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
  
        return 0;
  }
-@@ -852,9 +888,9 @@ static void imx219_reset_colorspace(stru
+@@ -762,9 +798,9 @@ static void imx219_reset_colorspace(stru
        fmt->xfer_func = V4L2_MAP_XFER_FUNC_DEFAULT(fmt->colorspace);
  }
  
@@ -164,7 +164,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
  {
        fmt->format.width = mode->width;
        fmt->format.height = mode->height;
-@@ -862,21 +898,39 @@ static void imx219_update_pad_format(str
+@@ -772,21 +808,39 @@ static void imx219_update_pad_format(str
        imx219_reset_colorspace(&fmt->format);
  }
  
@@ -208,7 +208,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
        }
  
        return 0;
-@@ -906,51 +960,74 @@ static int imx219_set_pad_format(struct
+@@ -816,51 +870,74 @@ static int imx219_set_pad_format(struct
        int exposure_max, exposure_def, hblank;
        unsigned int i;
  
@@ -326,7 +326,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
        }
  
        mutex_unlock(&imx219->mutex);
-@@ -1037,9 +1114,11 @@ static int imx219_start_streaming(struct
+@@ -976,9 +1053,11 @@ static int imx219_start_streaming(struct
        const struct imx219_reg_list *reg_list;
        int ret;
  
@@ -338,9 +338,9 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
                return ret;
 +      }
  
-       /* Apply default values of current mode */
-       reg_list = &imx219->mode->reg_list;
-@@ -1133,21 +1212,22 @@ err_unlock:
+       /* Send all registers that are common to all modes */
+       ret = imx219_write_regs(imx219, imx219_common_regs, ARRAY_SIZE(imx219_common_regs));
+@@ -1086,21 +1165,22 @@ err_unlock:
  /* Power/clock management functions */
  static int imx219_power_on(struct device *dev)
  {
@@ -366,7 +366,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
                        __func__);
                goto reg_off;
        }
-@@ -1166,7 +1246,8 @@ reg_off:
+@@ -1119,7 +1199,8 @@ reg_off:
  
  static int imx219_power_off(struct device *dev)
  {
@@ -376,7 +376,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
        struct imx219 *imx219 = to_imx219(sd);
  
        gpiod_set_value_cansleep(imx219->reset_gpio, 0);
-@@ -1178,7 +1259,8 @@ static int imx219_power_off(struct devic
+@@ -1131,7 +1212,8 @@ static int imx219_power_off(struct devic
  
  static int __maybe_unused imx219_suspend(struct device *dev)
  {
@@ -386,7 +386,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
        struct imx219 *imx219 = to_imx219(sd);
  
        if (imx219->streaming)
-@@ -1189,7 +1271,8 @@ static int __maybe_unused imx219_suspend
+@@ -1142,7 +1224,8 @@ static int __maybe_unused imx219_suspend
  
  static int __maybe_unused imx219_resume(struct device *dev)
  {
@@ -396,7 +396,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
        struct imx219 *imx219 = to_imx219(sd);
        int ret;
  
-@@ -1525,13 +1608,14 @@ static int imx219_probe(struct i2c_clien
+@@ -1478,13 +1561,14 @@ static int imx219_probe(struct i2c_clien
                            V4L2_SUBDEV_FL_HAS_EVENTS;
        imx219->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;