Commit eb7cca1f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull media updates from Mauro Carvalho Chehab:

 - DVB budget legacy API was finally documented. It took only 20+ years
   to get some documentation about it...

 - hantro driver has gained support for STM32MP25 VDEC/VENC

 - rkisp1 has gained support for i.MX8MP

 - atomisp got rid of two items from its todo list. Still 5 items
   pending for moving it out of staging

 - lots of driver fixes, cleanups and improvements

* tag 'media/v6.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (252 commits)
  media: rcar-isp: Disallow unbind of devices
  media: usbtv: Remove useless locks in usbtv_video_free()
  media: mediatek: vcodec: avoid -Wcast-function-type-strict warning
  media: ttpci: fix two memleaks in budget_av_attach
  media: go7007: fix a memleak in go7007_load_encoder
  media: dvb-frontends: avoid stack overflow warnings with clang
  media: pvrusb2: fix uaf in pvr2_context_set_notify
  media: usb: s2255: Refactor s2255_get_fx2fw
  media: ti: j721e-csi2rx: Convert to platform remove callback returning void
  media: stm32-dcmipp: Convert to platform remove callback returning void
  media: nxp: imx8-isi: Convert to platform remove callback returning void
  media: nuvoton: Convert to platform remove callback returning void
  media: chips-media: wave5: Convert to platform remove callback returning void
  media: chips-media: wave5: Remove unnecessary semicolons
  media: i2c: imx290: Fix IMX920 typo
  media: platform: replace of_graph_get_next_endpoint()
  media: i2c: replace of_graph_get_next_endpoint()
  media: ivsc: csi: Make use of sub-device state
  media: ivsc: csi: Swap SINK and SOURCE pads
  media: ipu-bridge: Serialise calls to IPU bridge init
  ...
parents c442a423 b14257ab
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -49,6 +49,10 @@ Module parameters
  visl_dprintk_frame_start, visl_dprintk_nframes, but controls the dumping of
  buffer data through debugfs instead.

- tpg_verbose: Write extra information on each output frame to ease debugging
  the API. When set to true, the output frames are not stable for a given input
  as some information like pointers or queue status will be added to them.

What is the default use case for this driver?
---------------------------------------------

@@ -57,8 +61,12 @@ This assumes that a working client is run against visl and that the ftrace and
OUTPUT buffer data is subsequently used to debug a work-in-progress
implementation.

Information on reference frames, their timestamps, the status of the OUTPUT and
CAPTURE queues and more can be read directly from the CAPTURE buffers.
Even though no video decoding is actually done, the output frames can be used
against a reference for a given input, except if tpg_verbose is set to true.

Depending on the tpg_verbose parameter value, information on reference frames,
their timestamps, the status of the OUTPUT and CAPTURE queues and more can be
read directly from the CAPTURE buffers.

Supported codecs
----------------
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ all configurable using the following module options:
- node_types:

	which devices should each driver instance create. An array of
	hexadecimal values, one for each instance. The default is 0x1d3d.
	hexadecimal values, one for each instance. The default is 0xe1d3d.
	Each value is a bitmask with the following meaning:

		- bit 0: Video Capture node
+1 −1
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ properties:

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/$defs/port-base
        $ref: /schemas/graph.yaml#/properties/port
        description: Analog input port

        properties:
+31 −6
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ description: |
properties:
  compatible:
    enum:
      - fsl,imx8mp-isp
      - rockchip,px30-cif-isp
      - rockchip,rk3399-cif-isp

@@ -36,9 +37,9 @@ properties:
    minItems: 3
    items:
      # isp0 and isp1
      - description: ISP clock
      - description: ISP AXI clock
      - description: ISP AHB clock
      - description: ISP clock (for imx8mp, clk)
      - description: ISP AXI clock (for imx8mp, m_hclk)
      - description: ISP AHB clock (for imx8mp, hclk)
      # only for isp1
      - description: ISP Pixel clock

@@ -52,6 +53,13 @@ properties:
      # only for isp1
      - const: pclk

  fsl,blk-ctrl:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    maxItems: 1
    description:
      A phandle to the media block control for the ISP, followed by a cell
      containing the index of the gasket.

  iommus:
    maxItems: 1

@@ -113,9 +121,6 @@ required:
  - interrupts
  - clocks
  - clock-names
  - iommus
  - phys
  - phy-names
  - power-domains
  - ports

@@ -143,6 +148,26 @@ allOf:
      required:
        - interrupt-names

  - if:
      properties:
        compatible:
          contains:
            const: fsl,imx8mp-isp
    then:
      properties:
        iommus: false
        phys: false
        phy-names: false
      required:
        - fsl,blk-ctrl
    else:
      properties:
        fsl,blk-ctrl: false
      required:
        - iommus
        - phys
        - phy-names

additionalProperties: false

examples:
+49 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/st,stm32mp25-video-codec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: STMicroelectronics STM32MP25 VDEC video decoder & VENC video encoder

maintainers:
  - Hugues Fruchet <hugues.fruchet@foss.st.com>

description:
  The STMicroelectronics STM32MP25 SOCs embeds a VDEC video hardware
  decoder peripheral based on Verisilicon VC8000NanoD IP (former Hantro G1)
  and a VENC video hardware encoder peripheral based on Verisilicon
  VC8000NanoE IP (former Hantro H1).

properties:
  compatible:
    enum:
      - st,stm32mp25-vdec
      - st,stm32mp25-venc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts
  - clocks

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    video-codec@580d0000 {
        compatible = "st,stm32mp25-vdec";
        reg = <0x580d0000 0x3c8>;
        interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&ck_icn_p_vdec>;
    };
Loading