]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Merge tag 'media/v7.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 19 Jun 2026 00:21:54 +0000 (17:21 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 19 Jun 2026 00:21:54 +0000 (17:21 -0700)
Pull media updates from Mauro Carvalho Chehab:

 - v4l2:
     - core: fix subdev sensor ownership
     - subdev: Allow accessing routes with STREAMS client capability
     - ctrls: Add validation for HEVC active reference counts and
       background detection control
     - common: Add YUV24 format info and has_alpha helper

 - vb2: Change vb2_read() and vb2_write() return types to ssize_t

 - i2c: cvs: Add driver of Intel Computer Vision Sensing Controller(CVS)

 - atmel-isc: remove deprecated driver

 - cec: Add CEC Latency Indication Protocol (LIP) support

 - imon: Add iMON VFD HID OEM v1.2 key mappings

 - AVMatrix: new HWS capture driver

 - isp4: new AMD capture driver

 - qcom:
     - iris: Add hierarchical coding, B-frame, and Long-Term Reference
       support for encoder
     - camss: Add SM6350 platform support
     - venus: Add SM6115 platform support

 - chips-media: wave5: Add support for Packed YUV422, CBP profile, and
   background detection

 - csi2rx: Add multistream support and 32 dma chans

 - Several cleanups and fixes

* tag 'media/v7.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (394 commits)
  media: v4l2-fwnode: Fix subdev owner overwritten in v4l2_async_register_subdev_sensor()
  media: qcom: iris: vdec: allow GEN2 decoding into 10bit format
  media: qcom: iris: vdec: update find_format to handle 8bit and 10bit formats
  media: qcom: iris: vdec: update size and stride calculations for 10bit formats
  media: qcom: iris: gen2: add support for 10bit decoding
  media: qcom: iris: add QC10C & P010 buffer size calculations
  media: qcom: iris: add helpers for 8bit and 10bit formats
  media: qcom: iris: Fix FPS calculation and VPP FW overhead
  media: qcom: camss: vfe-340: Support for PIX client
  media: qcom: camss: vfe-340: Proper client handling
  media: qcom: camss: csid-340: Enable PIX interface routing
  media: qcom: camss: csid-340: Add port-to-interface mapping
  media: qcom: camss: csid-340: Switch to generic CSID_CFG/CTRL registers
  media: iris: Initialize HFI ops after firmware load in core init
  media: iris: drop struct iris_fmt
  media: iris: Add platform data for X1P42100
  media: iris: Add hardware power on/off ops for X1P42100
  media: iris: optimize COMV buffer allocation for VPU3x and VPU4x
  media: iris: add FPS calculation and VPP FW overhead in frequency formula
  media: qcom: iris: Simplify COMV size calculation
  ...

17 files changed:
1  2 
MAINTAINERS
drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c
drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
drivers/media/platform/qcom/iris/Kconfig
drivers/media/platform/qcom/iris/iris_buffer.c
drivers/media/platform/qcom/iris/iris_core.c
drivers/media/platform/qcom/iris/iris_hfi_common.c
drivers/media/platform/qcom/iris/iris_vdec.c
drivers/media/platform/qcom/iris/iris_venc.c
drivers/media/platform/qcom/iris/iris_vidc.c
drivers/media/platform/qcom/iris/iris_vpu2.c
drivers/media/platform/qcom/iris/iris_vpu_common.c
drivers/media/platform/qcom/iris/iris_vpu_common.h
drivers/media/platform/renesas/vsp1/vsp1_brx.c
drivers/media/platform/renesas/vsp1/vsp1_entity.c
drivers/media/platform/synopsys/hdmirx/snps_hdmirx.c
drivers/media/usb/msi2500/msi2500.c

diff --cc MAINTAINERS
Simple merge
index 5498f48362d15c5ce659436e3ff7fc0be015e42b,39b06de6c3e6e2dbd96c2ef62c791d796580e708..af78a1775937b02fef960fdc357b9338fa63afdf
@@@ -3,8 -3,9 +3,9 @@@ config VIDEO_QCOM_IRI
          depends on VIDEO_DEV
          depends on ARCH_QCOM || COMPILE_TEST
          select V4L2_MEM2MEM_DEV
 -        select QCOM_MDT_LOADER if ARCH_QCOM
 +        select QCOM_MDT_LOADER
          select QCOM_SCM
+         select QCOM_UBWC_CONFIG
          select VIDEOBUF2_DMA_CONTIG
          help
            This is a V4L2 driver for Qualcomm iris video accelerator
index dbaac01eb15a0e622e85635fddd29c1f7fc18662,a1823ded46e876a99af296f1f526e7221b36e1d9..52bf56e517f91e98569ee02986183971266e1c76
@@@ -75,10 -74,8 +74,12 @@@ int iris_core_init(struct iris_core *co
        if (ret)
                goto error_unload_fw;
  
 +      ret = iris_vpu_switch_to_hwmode(core);
 +      if (ret)
 +              goto error_unload_fw;
 +
+       core->iris_firmware_data->init_hfi_ops(core);
        ret = iris_hfi_core_init(core);
        if (ret)
                goto error_unload_fw;
index 99d544e2af4f98f6d3ffd97c2fadeec49fe4aca5,a8d6354bee28fe23adc3739664a5d14cdcd603da..9e228b70420e4fefc302c5aaaffa5822b6111ac9
@@@ -61,23 -62,24 +62,18 @@@ int iris_vdec_inst_init(struct iris_ins
        return iris_ctrls_init(inst);
  }
  
- static const struct iris_fmt iris_vdec_formats_cap[] = {
-       [IRIS_FMT_NV12] = {
-               .pixfmt = V4L2_PIX_FMT_NV12,
-               .type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE,
-       },
-       [IRIS_FMT_QC08C] = {
-               .pixfmt = V4L2_PIX_FMT_QC08C,
-               .type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE,
-       },
 -void iris_vdec_inst_deinit(struct iris_inst *inst)
 -{
 -      kfree(inst->fmt_dst);
 -      kfree(inst->fmt_src);
 -}
 -
+ static const u32 iris_vdec_formats_cap[] = {
+       [IRIS_FMT_NV12] = V4L2_PIX_FMT_NV12,
+       [IRIS_FMT_QC08C] = V4L2_PIX_FMT_QC08C,
+       [IRIS_FMT_TP10] =  V4L2_PIX_FMT_P010,
+       [IRIS_FMT_QC10C] =  V4L2_PIX_FMT_QC10C,
  };
  
- static const struct iris_fmt *
- find_format(struct iris_inst *inst, u32 pixfmt, u32 type)
+ static bool check_format(struct iris_inst *inst, u32 pixfmt, u32 type)
  {
-       const struct iris_fmt *fmt = NULL;
-       unsigned int size = 0;
-       unsigned int i;
+       unsigned int size, i;
+       const u32 *fmt;
        switch (type) {
        case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE:
                fmt = inst->core->iris_platform_data->inst_iris_fmts;
index 4d886769d958b95e024e92078231d0dfc38fc2e0,2398992d05960554a547e30f7a6eecf611aa0ead..a945992f63aa8a0c40b8d6bc473d0bc90270e6cd
@@@ -79,34 -79,27 +79,21 @@@ int iris_venc_inst_init(struct iris_ins
        return iris_ctrls_init(inst);
  }
  
- static const struct iris_fmt iris_venc_formats_cap[] = {
-       [IRIS_FMT_H264] = {
-               .pixfmt = V4L2_PIX_FMT_H264,
-               .type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE,
-       },
-       [IRIS_FMT_HEVC] = {
-               .pixfmt = V4L2_PIX_FMT_HEVC,
-               .type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE,
-       },
 -void iris_venc_inst_deinit(struct iris_inst *inst)
 -{
 -      kfree(inst->fmt_dst);
 -      kfree(inst->fmt_src);
 -}
 -
+ static const u32 iris_venc_formats_cap[] = {
+       [IRIS_FMT_H264] = V4L2_PIX_FMT_H264,
+       [IRIS_FMT_HEVC] = V4L2_PIX_FMT_HEVC,
  };
  
- static const struct iris_fmt iris_venc_formats_out[] = {
-       [IRIS_FMT_NV12] = {
-               .pixfmt = V4L2_PIX_FMT_NV12,
-               .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
-       },
-       [IRIS_FMT_QC08C] = {
-               .pixfmt = V4L2_PIX_FMT_QC08C,
-               .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
-       },
+ static const u32 iris_venc_formats_out[] = {
+       [IRIS_FMT_NV12] = V4L2_PIX_FMT_NV12,
+       [IRIS_FMT_QC08C] = V4L2_PIX_FMT_QC08C,
  };
  
- static const struct iris_fmt *
- find_format(struct iris_inst *inst, u32 pixfmt, u32 type)
+ static bool check_format(struct iris_inst *inst, u32 pixfmt, u32 type)
  {
-       const struct iris_fmt *fmt = NULL;
-       unsigned int size = 0;
-       unsigned int i;
+       unsigned int size, i;
+       const u32 *fmt;
        switch (type) {
        case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE:
                fmt = iris_venc_formats_out;
index 69e6126dc4d95ed9e5fccf596205e84ec0bfc82d,37dbfe433a085de0fade1794e026468291757605..ab41da1f47c820f059621e795e54fc7c7ff7c776
@@@ -292,8 -293,20 +293,14 @@@ int iris_vpu_power_on_hw(struct iris_co
        if (ret && ret != -ENOENT)
                goto err_disable_hw_clock;
  
 -      ret = dev_pm_genpd_set_hwmode(core->pmdomain_tbl->pd_devs[IRIS_HW_POWER_DOMAIN], true);
 -      if (ret)
 -              goto err_disable_bse_hw_clock;
 -
+       ret = iris_prepare_enable_clock(core, IRIS_BSE_HW_CLK);
+       if (ret && ret != -ENOENT)
+               goto err_disable_hw_ahb_clock;
        return 0;
  
 -err_disable_bse_hw_clock:
 -      iris_disable_unprepare_clock(core, IRIS_BSE_HW_CLK);
+ err_disable_hw_ahb_clock:
+       iris_disable_unprepare_clock(core, IRIS_HW_AHB_CLK);
  err_disable_hw_clock:
        iris_disable_unprepare_clock(core, IRIS_HW_CLK);
  err_disable_power:
index 9d93cb8b8e82b799090a398a5372e563282c9815,d150a92b26179f079c7ec3a221af93e5015e185c..325be30836d7e98036a22beec3f8579e590050a7
@@@ -164,11 -164,12 +161,9 @@@ static int brx_set_format(struct v4l2_s
                        format = v4l2_subdev_state_get_format(state, i);
                        format->code = fmt->format.code;
                }
 -
 -              format = v4l2_subdev_state_get_format(state, i);
 -              *format = fmt->format;
        }
  
- done:
-       mutex_unlock(&brx->entity.lock);
-       return ret;
+       return 0;
  }
  
  static int brx_get_selection(struct v4l2_subdev *subdev,
Simple merge