1. 18 Nov, 2022 25 commits
    • Eugen Hristev's avatar
      media: microchip: microchip-isc: move media_pipeline_* to (un)prepare cb · 05255605
      Eugen Hristev authored
      Move the media_pipeline_start/stop calls from start/stop streaming to
      the new prepare_streaming and unprepare_streaming callbacks.
      Signed-off-by: default avatarEugen Hristev <eugen.hristev@microchip.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      05255605
    • Eugen Hristev's avatar
      media: microchip: microchip-isc: implement media controller · 86ff588c
      Eugen Hristev authored
      As a top MC video driver, the microchip-isc should not propagate the format
      to the subdevice, it should rather check at start_streaming() time if the
      subdev is properly configured with a compatible format.
      Removed the whole format finding logic, and reworked the format
      verification at start_streaming time, such that the ISC will return an
      error if the subdevice is not properly configured.
      To achieve this, media_pipeline_start is called and a link_validate
      callback is created to check the formats.
      With this being done, the module parameter 'sensor_preferred' makes no
      sense anymore. The ISC should not decide which format the sensor is using.
      The ISC should only cope with the situation and inform userspace if the
      streaming is possible in the current configuration.
      The redesign of the format propagation has also risen the question of the
      enumfmt callback. If enumfmt is called with an mbus_code, the enumfmt
      handler should only return the formats that are supported for this
      mbus_code. Otherwise, the enumfmt will report all the formats that the ISC
      could output.
      With this rework, the dynamic list of user formats is removed. It makes no
      more sense to identify at complete time which formats the sensor could
      emit, and add those into a separate dynamic list.
      The ISC will start with a simple preconfigured default format, and at
      link validate time, decide whether it can use the format that is
      configured on the sink or not.
      From now on, the driver also advertises the IO_MC capability.
      Signed-off-by: default avatarEugen Hristev <eugen.hristev@microchip.com>
      Reviewed-by: default avatarJacopo Mondi <jacopo@jmondi.org>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      86ff588c
    • Eugen Hristev's avatar
      media: microchip: microchip-isc: prepare for media controller support · de32105c
      Eugen Hristev authored
      Prepare the support for media-controller.
      This means that the capabilities of the driver have changed and now it's
      capable of media controller operations.
      The driver will register its media device, and add the video entity to this
      media device. The subdevices are registered to the same media device.
      The ISC will have a base entity which is auto-detected as
      microchip_isc_base.
      It will also register a subdevice that allows cropping of the incoming
      frame to the maximum frame size supported by the ISC.
      The ISC will create a link between the subdevice that is asynchronously
      registered and the microchip_isc_scaler entity.
      Then, the microchip_isc_scaler and microchip_isc_base are connected
      through another link.
      This patch does not change the previous capability of the driver, the
      fact that the format is still being propagated from the top video node
      down to the sensor.
      Signed-off-by: default avatarEugen Hristev <eugen.hristev@microchip.com>
      Reviewed-by: default avatarJacopo Mondi <jacopo@jmondi.org>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      de32105c
    • Eugen Hristev's avatar
      media: microchip: add ISC driver as Microchip ISC · a5517d53
      Eugen Hristev authored
      The Atmel ISC driver will be moved to staging to support old users that
      are not using the media controller paradigm.
      The ISC driver was converted to media controller in the public patch
      series:
      
      https://lore.kernel.org/lkml/20220503095127.48710-1-eugen.hristev@microchip.com/T/#m2c320fa8153c01379a1c35b1d90a00903949513a
      
      However the conversion cannot be done directly as it would affect existing
      users by breaking the old way of configuration for sama5d2 platforms.
      
      After discussions with the media maintainers, the decision is to move
      Atmel ISC to staging as-is, to keep the Kconfig symbols and the users
      to the driver in staging. Thus, all the existing users of the non
      media-controller paradigm will continue to be happy and use the old config
      way.
      
      The converted driver would support both sama5d2 and sama7g5 platforms with
      media controller paradigm, but it requires userspace configuration of the
      pipeline for all the pipeline modules.
      
      In a simple configuration sensor ==> isc , the old isc driver used to call
      subdev s_fmt and control the sensor directly.
      This was achieved by having a lot of code inside the driver that was
      querying the subdev at probe time and made a list of formats which are
      usable.
      Basically the user had nothing to configure, as the isc would handle
      everything at the top level. This was an easy way to capture, but also came
      with the drawback of lack of flexibility.
      In a more complicated pipeline
       sensor ==> controller 1 ==> controller 2 ==> isc
      this would not be achievable, as controller 1 and controller 2 might be
      media-controller configurable, and will not propagate the formats down to
      the sensor.
      The new driver Microchip ISC would solve all these problems and exposes pads
      entities and links to userspace.
      For the ease of tracking, the patches that convert to media controller come
      on top of this patch that simply readds the driver to the new location under
      the new Kconfig symbols.
      
      To differentiate between the old driver and the new driver, I have renamed
      the new driver to Microchip ISC, renaming the Kconfig symbols as well, and
      all the mentions inside the driver.
      The only thing that remains common is the file
      include/linux/atmel-isc-media.h which is the ABI for the v4l2 custom
      controls that the ISC exposes.
      This file is used by both driver, so I kept it as-is.
      To further avoid confusion all files have been renamed and all functions
      named isc_* as well.
      The exported symbols have been renamed with added microchip_ prefix, to
      avoid symbol duplication with the old driver, and to avoid confusion.
      Other than that, I have fixed small checkpatch issues when readding the
      driver.
      Signed-off-by: default avatarEugen Hristev <eugen.hristev@microchip.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      a5517d53
    • Eugen Hristev's avatar
      media: atmel: move microchip_csi2dc to dedicated microchip platform · 5c018562
      Eugen Hristev authored
      The Atmel ISC will be moved to staging thus the atmel platform will only
      have the ISI driver.
      The new media-controller converted ISC driver will be placed inside a
      dedicated microchip platform directory.
      It is then natural to have the microchip-csi2dc moved to this new platform
      directory.
      The next step is to add the Microchip ISC driver to the new platform
      directory and reside together with the Microchip CSI2DC driver.
      Signed-off-by: default avatarEugen Hristev <eugen.hristev@microchip.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      5c018562
    • Hans Verkuil's avatar
      vb2/au0828: move the v4l_vb2q_enable_media_source to the au0828 driver · c4a7df49
      Hans Verkuil authored
      With the new prepare_streaming op it is possible to move the ugly
      v4l_vb2q_enable_media_source() call in vb2_core_streamon to the
      driver. It was called incorrectly in vb2 as well: it was only
      called if sufficient buffers were queued at STREAMON time, but not
      if more buffers were queued later. This was not an issue with the
      au0828 driver since it never set min_buffers_needed.
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      c4a7df49
    • Hans Verkuil's avatar
      vb2: add (un)prepare_streaming queue ops · 36c6f1fb
      Hans Verkuil authored
      When userspace called VIDIOC_STREAMON, then you want to claim any streaming
      resources needed and validate the video pipeline. Waiting for
      start_streaming to be called is too late, since that can be postponed
      until the required minimum of buffers is queued.
      
      So add a prepare_streaming op (optional) that can be used for that
      purpose, and a matching unprepare_streaming op (optional) that can
      release any claimed resources. The unprepare_streaming op is called
      when VIDIOC_STREAMOFF is called and q->streaming is 1, or when the
      filehandle is closed while q->streaming is 1.
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      36c6f1fb
    • Hans Verkuil's avatar
      media: admin-guide: cec.rst · 73937efb
      Hans Verkuil authored
      Document administration details about CEC devices. This was formerly
      documented in a cec-status.txt I kept on my website, but this really
      belongs here as an admin guide.
      
      Updated the original cec-status.txt, and converted it to .rst.
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      73937efb
    • Ian Cowan's avatar
      staging: media: sunxi: cedrus: make vb2_ops struct definition const · 74b20039
      Ian Cowan authored
      This cleans up a checkstyle warning where the vb2_ops struct definitions
      should be const.
      Signed-off-by: default avatarIan Cowan <ian@linux.cowan.aero>
      Reviewed-by: default avatarSamuel Holland <samuel@sholland.org>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      74b20039
    • Yuan Can's avatar
      media: amphion: Fix error handling in vpu_driver_init() · a95cc6d1
      Yuan Can authored
      A problem about modprobe amphion-vpu failed is triggered with the
      following log given:
      
       [ 2208.634841] Error: Driver 'amphion-vpu' is already registered, aborting...
       modprobe: ERROR: could not insert 'amphion_vpu': Device or resource busy
      
      The reason is that vpu_driver_init() returns vpu_core_driver_init()
      directly without checking its return value, if vpu_core_driver_init()
      failed, it returns without unregister amphion_vpu_driver, resulting the
      amphion-vpu can never be installed later.
      A simple call graph is shown as below:
      
       vpu_driver_init()
         platform_driver_register() # register amphion_vpu_driver
         vpu_core_driver_init()
           platform_driver_register()
             driver_register()
               bus_add_driver()
                 dev = kzalloc(...) # OOM happened
         # return without unregister amphion_vpu_driver
      
      Fix by unregister amphion_vpu_driver when vpu_core_driver_init() returns
      error.
      
      Fixes: b50a64fc ("media: amphion: add amphion vpu device driver")
      Signed-off-by: default avatarYuan Can <yuancan@huawei.com>
      Reviewed-by: default avatarming_qian <ming.qian@nxp.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      a95cc6d1
    • Yuan Can's avatar
      media: platform: exynos4-is: Fix error handling in fimc_md_init() · b434422c
      Yuan Can authored
      A problem about modprobe s5p_fimc failed is triggered with the
      following log given:
      
       [  272.075275] Error: Driver 'exynos4-fimc' is already registered, aborting...
       modprobe: ERROR: could not insert 's5p_fimc': Device or resource busy
      
      The reason is that fimc_md_init() returns platform_driver_register()
      directly without checking its return value, if platform_driver_register()
      failed, it returns without unregister fimc_driver, resulting the
      s5p_fimc can never be installed later.
      A simple call graph is shown as below:
      
       fimc_md_init()
         fimc_register_driver() # register fimc_driver
         platform_driver_register()
           platform_driver_register()
             driver_register()
               bus_add_driver()
                 dev = kzalloc(...) # OOM happened
         # return without unregister fimc_driver
      
      Fix by unregister fimc_driver when platform_driver_register() returns
      error.
      
      Fixes: d3953223 ("[media] s5p-fimc: Add the media device driver")
      Signed-off-by: default avatarYuan Can <yuancan@huawei.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      b434422c
    • Yang Yingliang's avatar
      media: mtk-jpegdec: add missing destroy_workqueue() · 9b358183
      Yang Yingliang authored
      destroy_workqueue() needs be called to when driver is
      unloading, fix it by using devm_add_action_or_reset()
      to make workqueuedevice-managed.
      
      Fixes: dedc2150 ("media: mtk-jpegdec: add jpeg decode worker interface")
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      9b358183
    • Jammy Huang's avatar
      media: aspeed: Use v4l2_dbg to replace v4l2_warn to avoid log spam · 246f4226
      Jammy Huang authored
      If the host is powered off, there will be many warning log. To avoid the
      log spam in this condition, replace v4l2_warn with v4l2_dbg.
      Signed-off-by: default avatarJammy Huang <jammy_huang@aspeedtech.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      246f4226
    • Yang Yingliang's avatar
      media: solo6x10: fix possible memory leak in solo_sysfs_init() · 7f5866dd
      Yang Yingliang authored
      If device_register() returns error in solo_sysfs_init(), the
      name allocated by dev_set_name() need be freed. As comment of
      device_register() says, it should use put_device() to give up
      the reference in the error path. So fix this by calling
      put_device(), then the name can be freed in kobject_cleanup().
      
      Fixes: dcae5dac ("[media] solo6x10: sync to latest code from Bluecherry's git repo")
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      7f5866dd
    • Jernej Skrabec's avatar
      media: cedrus: Relax HEVC SPS restrictions · 458c13ae
      Jernej Skrabec authored
      Testing reference video TSUNEQBD_A_MAIN10_Technicolor_2 has show that
      Cedrus is capable of decoding frames with different chroma and luma bit
      depths.
      
      Relax restrictions so only highest depth is checked.
      Signed-off-by: default avatarJernej Skrabec <jernej.skrabec@gmail.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      458c13ae
    • Jernej Skrabec's avatar
      media: cedrus: h265: Support decoding 10-bit frames · 9fde8e9f
      Jernej Skrabec authored
      10-bit frames needs extra buffer space when 8-bit capture format is
      used. Use previously prepared infrastructure to adjust buffer size.
      Signed-off-by: default avatarJernej Skrabec <jernej.skrabec@gmail.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      9fde8e9f
    • Jernej Skrabec's avatar
      media: cedrus: Adjust buffer size based on codec · 4ac19b53
      Jernej Skrabec authored
      In some cases decoding engine needs extra space in capture buffers. This
      is the case for decoding 10-bit HEVC frames into 8-bit capture format.
      This commit only adds infrastructure for such cases.
      Signed-off-by: default avatarJernej Skrabec <jernej.skrabec@gmail.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      4ac19b53
    • Aakarsh Jain's avatar
      media: s5p-mfc: Optimisation of code to remove error message · ab0bfa90
      Aakarsh Jain authored
      Already error number provision is present for block failing, while
      requesting for DMA consistent memory allocation.
      So removing error message line from the block as recommended
      by scripts/checkpatch.pl.
      Signed-off-by: default avatarAakarsh Jain <aakarsh.jain@samsung.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      ab0bfa90
    • Aakarsh Jain's avatar
      media: s5p-mfc:fix usage of Block comment alignment · 1f755f2c
      Aakarsh Jain authored
      Fix usage of block comment alignment in drivers/media/platform/samsung/
      s5p-mfc/s5p_mfc.c as recommended by scripts/checkpatch.pl.
      Signed-off-by: default avatarAakarsh Jain <aakarsh.jain@samsung.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      1f755f2c
    • Aakarsh Jain's avatar
      media: s5p-mfc: fix usage of symbolic permissions to octal · e6c55184
      Aakarsh Jain authored
      Change symbolic permissions to octal equivalent as recommended
      by scripts/checkpatch.pl in drivers/media/platform/samsung/
      s5p-mfc/s5p_mfc.c.
      Signed-off-by: default avatarAakarsh Jain <aakarsh.jain@samsung.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      e6c55184
    • Chen Zhongjin's avatar
      media: vidtv: Fix use-after-free in vidtv_bridge_dvb_init() · ba8d9405
      Chen Zhongjin authored
      KASAN reports a use-after-free:
      BUG: KASAN: use-after-free in dvb_dmxdev_release+0x4d5/0x5d0 [dvb_core]
      Call Trace:
       ...
       dvb_dmxdev_release+0x4d5/0x5d0 [dvb_core]
       vidtv_bridge_probe+0x7bf/0xa40 [dvb_vidtv_bridge]
       platform_probe+0xb6/0x170
       ...
      Allocated by task 1238:
       ...
       dvb_register_device+0x1a7/0xa70 [dvb_core]
       dvb_dmxdev_init+0x2af/0x4a0 [dvb_core]
       vidtv_bridge_probe+0x766/0xa40 [dvb_vidtv_bridge]
       ...
      Freed by task 1238:
       dvb_register_device+0x6d2/0xa70 [dvb_core]
       dvb_dmxdev_init+0x2af/0x4a0 [dvb_core]
       vidtv_bridge_probe+0x766/0xa40 [dvb_vidtv_bridge]
       ...
      
      It is because the error handling in vidtv_bridge_dvb_init() is wrong.
      
      First, vidtv_bridge_dmx(dev)_init() will clean themselves when fail, but
      goto fail_dmx(_dev): calls release functions again, which causes
      use-after-free.
      
      Also, in fail_fe, fail_tuner_probe and fail_demod_probe, j = i will cause
      out-of-bound when i finished its loop (i == NUM_FE). And the loop
      releasing is wrong, although now NUM_FE is 1 so it won't cause problem.
      
      Fix this by correctly releasing everything.
      
      Fixes: f90cf607 ("media: vidtv: add a bridge driver")
      Signed-off-by: default avatarChen Zhongjin <chenzhongjin@huawei.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      ba8d9405
    • Deepak R Varma's avatar
      staging: media: meson: vdec: use min() for comparison and assignment · 8465cdb1
      Deepak R Varma authored
      Use of standard min() helper macro is preferred over using ternary
      operator for logical evaluation and value assignment. This issue is
      identified by coccicheck using the minmax.cocci file.
      Signed-off-by: default avatarDeepak R Varma <drv@mailo.com>
      Reviewed-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      8465cdb1
    • Daniel Almeida's avatar
      media: visl: add virtual stateless decoder driver · 04e27f79
      Daniel Almeida authored
      A virtual stateless device for stateless uAPI development purposes.
      
      This tool's objective is to help the development and testing of
      userspace applications that use the V4L2 stateless API to decode media.
      
      A userspace implementation can use visl to run a decoding loop even when
      no hardware is available or when the kernel uAPI for the codec has not
      been upstreamed yet. This can reveal bugs at an early stage.
      
      This driver can also trace the contents of the V4L2 controls submitted
      to it.  It can also dump the contents of the vb2 buffers through a
      debugfs interface. This is in many ways similar to the tracing
      infrastructure available for other popular encode/decode APIs out there
      and can help develop a userspace application by using another (working)
      one as a reference.
      
      Note that no actual decoding of video frames is performed by visl. The
      V4L2 test pattern generator is used to write various debug information
      to the capture buffers instead.
      Signed-off-by: default avatarDaniel Almeida <daniel.almeida@collabora.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      04e27f79
    • Ming Qian's avatar
      media: amphion: apply vb2_queue_error instead of setting manually · 9d175a81
      Ming Qian authored
      vb2_queue_error is help to set the error of vb2_queue,
      don't need to set it manually
      
      Fixes: 3cd08451 ("media: amphion: add vpu v4l2 m2m support")
      Signed-off-by: default avatarMing Qian <ming.qian@nxp.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      9d175a81
    • Ming Qian's avatar
      media: amphion: add lock around vdec_g_fmt · 8480dd5f
      Ming Qian authored
      the capture format may be changed when
      sequence header is parsed,
      it may be read and write in the same time,
      add lock around vdec_g_fmt to synchronize it
      
      Fixes: 6de8d628 ("media: amphion: add v4l2 m2m vpu decoder stateful driver")
      Signed-off-by: default avatarMing Qian <ming.qian@nxp.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      8480dd5f
  2. 15 Nov, 2022 2 commits
    • Mauro Carvalho Chehab's avatar
      Merge tag 'br-v6.2e' of git://linuxtv.org/hverkuil/media_tree into media_stage · a7bab6f8
      Mauro Carvalho Chehab authored
      Tag branch
      
      * tag 'br-v6.2e' of git://linuxtv.org/hverkuil/media_tree: (29 commits)
        media: davinci/vpbe: Fix a typo ("defualt_mode")
        media: sun6i-csi: Remove unnecessary print function dev_err()
        media: Documentation: Drop deprecated bytesused == 0
        media: platform: exynos4-is: fix return value check in fimc_md_probe()
        media: dvb-core: remove variable n, turn for-loop to while-loop
        media: vivid: fix compose size exceed boundary
        media: rkisp1: make const arrays ae_wnd_num and hist_wnd_num static
        media: dvb-core: Fix UAF due to refcount races at releasing
        media: rkvdec: Add required padding
        media: aspeed: Extend debug message
        media: aspeed: Support aspeed mode to reduce compressed data
        media: Documentation: aspeed-video: Add user documentation for the aspeed-video driver
        media: v4l2-ctrls: Reserve controls for ASPEED
        media: v4l: Add definition for the Aspeed JPEG format
        staging: media: tegra-video: fix device_node use after free
        staging: media: tegra-video: fix chan->mipi value on error
        media: cedrus: initialize controls a bit later
        media: cedrus: prefer untiled capture format
        media: cedrus: Remove cedrus_codec enum
        media: cedrus: set codec ops immediately
        ...
      a7bab6f8
    • Mauro Carvalho Chehab's avatar
      Merge tag 'tag-venus-for-v6.2' of git://linuxtv.org/svarbanov/media_tree into media_stage · 997149b8
      Mauro Carvalho Chehab authored
      Venus updates for v6.2
      
      * tag 'tag-venus-for-v6.2' of git://linuxtv.org/svarbanov/media_tree:
        venus: pm_helpers: Fix error check in vcodec_domains_get()
        venus: firmware: Correct assertion of reset bit on remote processor
        venus: firmware: Correct non-pix start and end addresses
        venus: firmware: Correct reset bit
        MAINTAINERS: Change email for Venus driver
        MAINTAINERS: Add Vikash as VENUS video driver co-maintainer
      997149b8
  3. 08 Nov, 2022 7 commits
    • Mauro Carvalho Chehab's avatar
      Merge git://linuxtv.org/sailus/media_tree into media_stage · 1e284ea9
      Mauro Carvalho Chehab authored
      * git://linuxtv.org/sailus/media_tree: (47 commits)
        media: i2c: ov4689: code cleanup
        media: ov9650: Drop platform data code path
        media: ov7670: Drop unused include
        media: ov2640: Drop legacy includes
        media: tc358746: add Toshiba TC358746 Parallel to CSI-2 bridge driver
        media: dt-bindings: add bindings for Toshiba TC358746
        phy: dphy: add support to calculate the timing based on hs_clk_rate
        phy: dphy: refactor get_default_config
        v4l: subdev: Warn if disabling streaming failed, return success
        dw9768: Enable low-power probe on ACPI
        media: i2c: imx290: Replace GAIN control with ANALOGUE_GAIN
        media: i2c: imx290: Add crop selection targets support
        media: i2c: imx290: Factor out format retrieval to separate function
        media: i2c: imx290: Move registers with fixed value to init array
        media: i2c: imx290: Create controls for fwnode properties
        media: i2c: imx290: Implement HBLANK and VBLANK controls
        media: i2c: imx290: Split control initialization to separate function
        media: i2c: imx290: Fix max gain value
        media: i2c: imx290: Add exposure time control
        media: i2c: imx290: Define more register macros
        ...
      1e284ea9
    • Mauro Carvalho Chehab's avatar
      Merge tag 'br-v6.2b' of git://linuxtv.org/hverkuil/media_tree into media_stage · dbc1fdcb
      Mauro Carvalho Chehab authored
      Tag branch
      
      * tag 'br-v6.2b' of git://linuxtv.org/hverkuil/media_tree: (24 commits)
        media: imx-jpeg: Lock on ioctl encoder/decoder stop cmd
        media: imx-jpeg: Support contiguous and non contiguous format
        media: imx-jpeg: Implement g_selection and s_selection
        mtk-jpegdec: add stop cmd interface for jpgdec
        media: mtk-jpegdec: refactor jpegdec func interface
        media: mtk-jpegdec: add output pic reorder interface
        media: mtk-jpegdec: add jpeg decode worker interface
        media: mtk-jpegdec: add jpegdec timeout func interface
        media: mtk-jpegdec: support jpegdec multi-hardware
        media: mtk-jpegdec: export jpeg decoder functions
        dt-bindings: mediatek: Add mediatek,mt8195-jpgdec compatible
        mtk-jpegenc: add stop cmd interface for jpgenc
        mtk-jpegenc: add output pic reorder interface
        mtk-jpegenc: add jpeg encode worker interface
        mtk-jpegenc: add jpegenc timeout func interface
        mtk-jpegenc: support jpegenc multi-hardware
        mtk-jpegenc: export jpeg encoder functions
        dt-bindings: mediatek: Add mediatek, mt8195-jpgenc compatible
        media: imx-jpeg: Disable useless interrupt to avoid kernel panic
        media: imx-jpeg: Don't clear stop state in handling dynamic resolution change
        ...
      dbc1fdcb
    • Dafna Hirschfeld's avatar
      media: vimc: Update device configuration in the documentation · e0eee57e
      Dafna Hirschfeld authored
      Current configuration in the document is outdated and doesn't work. Update
      it to match the configuration described in the following commit:
      
      commit 9b4a9b31 ("media: vimc: Enable set resolution at the scaler src pad")
      
      Fixed commit description:
      Shuah Khan <skhan@linuxfoundation.org>
      Signed-off-by: default avatarDafna Hirschfeld <dafna@fastmail.com>
      Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
      e0eee57e
    • Vladimir Zapolskiy's avatar
      media: camss: Split power domain management · 46cc0317
      Vladimir Zapolskiy authored
      There are three cases of power domain management on supported platforms:
      1) CAMSS on MSM8916, where a single VFE power domain is operated outside
         of the camss device driver,
      2) CAMSS on MSM8996 and SDM630/SDM660, where two VFE power domains are
         managed separately by the camss device driver, the power domains are
         linked and unlinked on demand by their functions vfe_pm_domain_on()
         and vfe_pm_domain_off() respectively,
      3) CAMSS on SDM845 and SM8250 platforms, and there are two VFE power
         domains and their parent power domain TITAN_TOP, the latter one
         shall be turned on prior to turning on any of VFE power domains.
      
      Due to a previously missing link between TITAN_TOP and VFEx power domains
      in the latter case, which is now fixed by [1], it was decided always to
      turn on all found VFE power domains and TITAN_TOP power domain, even if
      just one particular VFE is needed to be enabled or none of VFE power
      domains are required, for instance the latter case is when vfe_lite is in
      use. This misusage becomes more incovenient and clumsy, if next generations
      are to be supported, for instance CAMSS on SM8450 has three VFE power
      domains.
      
      The change splits the power management support for platforms with TITAN_TOP
      parent power domain, and, since 'power-domain-names' property is not
      present in camss device tree nodes, the assumption is that the first
      N power domains from the 'power-domains' list correspond to VFE power
      domains, and, if the number of power domains is greater than number of
      non-lite VFEs, then the last power domain from the list is the TITAN_TOP
      power domain.
      Signed-off-by: default avatarVladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
      Reviewed-by: default avatarRobert Foss <robert.foss@linaro.org>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
      46cc0317
    • Vladimir Zapolskiy's avatar
      media: camss: Collect information about a number of lite VFEs · be11096d
      Vladimir Zapolskiy authored
      VFE lite IPs are found on CAMSS with TITAN_TOP power domains, and in
      some aspects these types of VFEs are different, in particular there
      is no need to enable VFE power domains to operate over VFE lite IPs.
      Signed-off-by: default avatarVladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
      Reviewed-by: default avatarRobert Foss <robert.foss@linaro.org>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
      be11096d
    • Vladimir Zapolskiy's avatar
      media: camss: Do not attach an already attached power domain on MSM8916 platform · 3d658980
      Vladimir Zapolskiy authored
      The change to dynamically allocated power domains neglected a case of
      CAMSS on MSM8916 platform, where a single VFE power domain is neither
      attached, linked or managed in runtime in any way explicitly.
      
      This is a special case and it shall be kept as is, because the power
      domain management is done outside of the driver, and it's very different
      in comparison to all other platforms supported by CAMSS.
      
      Fixes: 6b1814e2 ("media: camss: Allocate power domain resources dynamically")
      Signed-off-by: default avatarVladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
      Reviewed-by: default avatarRobert Foss <robert.foss@linaro.org>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
      3d658980
    • Vladimir Zapolskiy's avatar
      media: camss: Clean up received buffers on failed start of streaming · c8f35823
      Vladimir Zapolskiy authored
      It is required to return the received buffers, if streaming can not be
      started. For instance media_pipeline_start() may fail with EPIPE, if
      a link validation between entities is not passed, and in such a case
      a user gets a kernel warning:
      
        WARNING: CPU: 1 PID: 520 at drivers/media/common/videobuf2/videobuf2-core.c:1592 vb2_start_streaming+0xec/0x160
        <snip>
        Call trace:
         vb2_start_streaming+0xec/0x160
         vb2_core_streamon+0x9c/0x1a0
         vb2_ioctl_streamon+0x68/0xbc
         v4l_streamon+0x30/0x3c
         __video_do_ioctl+0x184/0x3e0
         video_usercopy+0x37c/0x7b0
         video_ioctl2+0x24/0x40
         v4l2_ioctl+0x4c/0x70
      
      The fix is to correct the error path in video_start_streaming() of camss.
      
      Fixes: 0ac2586c ("media: camss: Add files which handle the video device nodes")
      Signed-off-by: default avatarVladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
      Reviewed-by: default avatarRobert Foss <robert.foss@linaro.org>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
      c8f35823
  4. 06 Nov, 2022 6 commits
    • Linus Torvalds's avatar
      Linux 6.1-rc4 · f0c4d9fc
      Linus Torvalds authored
      f0c4d9fc
    • Linus Torvalds's avatar
      Merge tag 'cxl-fixes-for-6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · 16c7a368
      Linus Torvalds authored
      Pull cxl fixes from Dan Williams:
       "Several fixes for CXL region creation crashes, leaks and failures.
      
        This is mainly fallout from the original implementation of dynamic CXL
        region creation (instantiate new physical memory pools) that arrived
        in v6.0-rc1.
      
        Given the theme of "failures in the presence of pass-through decoders"
        this also includes new regression test infrastructure for that case.
      
        Summary:
      
         - Fix region creation crash with pass-through decoders
      
         - Fix region creation crash when no decoder allocation fails
      
         - Fix region creation crash when scanning regions to enforce the
           increasing physical address order constraint that CXL mandates
      
         - Fix a memory leak for cxl_pmem_region objects, track 1:N instead of
           1:1 memory-device-to-region associations.
      
         - Fix a memory leak for cxl_region objects when regions with active
           targets are deleted
      
         - Fix assignment of NUMA nodes to CXL regions by CFMWS (CXL Window)
           emulated proximity domains.
      
         - Fix region creation failure for switch attached devices downstream
           of a single-port host-bridge
      
         - Fix false positive memory leak of cxl_region objects by recycling
           recently used region ids rather than freeing them
      
         - Add regression test infrastructure for a pass-through decoder
           configuration
      
         - Fix some mailbox payload handling corner cases"
      
      * tag 'cxl-fixes-for-6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl:
        cxl/region: Recycle region ids
        cxl/region: Fix 'distance' calculation with passthrough ports
        tools/testing/cxl: Add a single-port host-bridge regression config
        tools/testing/cxl: Fix some error exits
        cxl/pmem: Fix cxl_pmem_region and cxl_memdev leak
        cxl/region: Fix cxl_region leak, cleanup targets at region delete
        cxl/region: Fix region HPA ordering validation
        cxl/pmem: Use size_add() against integer overflow
        cxl/region: Fix decoder allocation crash
        ACPI: NUMA: Add CXL CFMWS 'nodes' to the possible nodes set
        cxl/pmem: Fix failure to account for 8 byte header for writes to the device LSA.
        cxl/region: Fix null pointer dereference due to pass through decoder commit
        cxl/mbox: Add a check on input payload size
      16c7a368
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.1-rc4' of... · aa529949
      Linus Torvalds authored
      Merge tag 'hwmon-for-v6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
       "Fix two regressions:
      
         - Commit 54cc3dbf ("hwmon: (pmbus) Add regulator supply into
           macro") resulted in regulator undercount when disabling regulators.
           Revert it.
      
         - The thermal subsystem rework caused the scmi driver to no longer
           register with the thermal subsystem because index values no longer
           match. To fix the problem, the scmi driver now directly registers
           with the thermal subsystem, no longer through the hwmon core"
      
      * tag 'hwmon-for-v6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        Revert "hwmon: (pmbus) Add regulator supply into macro"
        hwmon: (scmi) Register explicitly with Thermal Framework
      aa529949
    • Linus Torvalds's avatar
      Merge tag 'perf_urgent_for_v6.1_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 727ea09e
      Linus Torvalds authored
      Pull perf fixes from Borislav Petkov:
      
       - Add Cooper Lake's stepping to the PEBS guest/host events isolation
         fixed microcode revisions checking quirk
      
       - Update Icelake and Sapphire Rapids events constraints
      
       - Use the standard energy unit for Sapphire Rapids in RAPL
      
       - Fix the hw_breakpoint test to fail more graciously on !SMP configs
      
      * tag 'perf_urgent_for_v6.1_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel: Add Cooper Lake stepping to isolation_ucodes[]
        perf/x86/intel: Fix pebs event constraints for SPR
        perf/x86/intel: Fix pebs event constraints for ICL
        perf/x86/rapl: Use standard Energy Unit for SPR Dram RAPL domain
        perf/hw_breakpoint: test: Skip the test if dependencies unmet
      727ea09e
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v6.1_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f6f52047
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
      
       - Add new Intel CPU models
      
       - Enforce that TDX guests are successfully loaded only on TDX hardware
         where virtualization exception (#VE) delivery on kernel memory is
         disabled because handling those in all possible cases is "essentially
         impossible"
      
       - Add the proper include to the syscall wrappers so that BTF can see
         the real pt_regs definition and not only the forward declaration
      
      * tag 'x86_urgent_for_v6.1_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu: Add several Intel server CPU model numbers
        x86/tdx: Panic on bad configs that #VE on "private" memory access
        x86/tdx: Prepare for using "INFO" call for a second purpose
        x86/syscall: Include asm/ptrace.h in syscall_wrapper header
      f6f52047
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v6.1-2' of... · 35697d81
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v6.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - Use POSIX-compatible grep options
      
       - Document git-related tips for reproducible builds
      
       - Fix a typo in the modpost rule
      
       - Suppress SIGPIPE error message from gcc-ar and llvm-ar
      
       - Fix segmentation fault in the menuconfig search
      
      * tag 'kbuild-fixes-v6.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kconfig: fix segmentation fault in menuconfig search
        kbuild: fix SIGPIPE error message for AR=gcc-ar and AR=llvm-ar
        kbuild: fix typo in modpost
        Documentation: kbuild: Add description of git for reproducible builds
        kbuild: use POSIX-compatible grep option
      35697d81