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

 - New staging driver for Rockship ISPv1 unit

 - New staging driver for Rockchip MIPI Synopsys DPHY RX0

 - y2038 fixes at V4L2 API (backward-compatible)

 - A dvb core fix when receiving invalid EIT sections

 - Some clang-specific warnings got fixed

 - Added support for touch V4L2 interface at vivid

 - Several drivers were converted to use the new
   i2c_new_scanned_device() kAPI

 - Added sm1 support at meson's vdec driver

 - Several other driver cleanups, fixes and improvements

* tag 'media/v5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (207 commits)
  media: staging/intel-ipu3: remove TODO item about acronyms
  media: v4l2-fwnode: Print the node name while parsing endpoints
  media: Revert "media: staging/intel-ipu3: make imgu use fixed running mode"
  media: mt9v111: constify copied structure
  media: platform: VIDEO_MEDIATEK_JPEG can also depend on MTK_IOMMU
  media: uvcvideo: Add a quirk to force GEO GC6500 Camera bits-per-pixel value
  media: uvcvideo: Avoid cyclic entity chains due to malformed USB descriptors
  media: hantro: fix post-processing NULL pointer dereference
  media: rcar-vin: Use correct pixel format when aligning format
  media: MAINTAINERS: add entry for Rockchip ISP1 driver
  media: staging: rkisp1: add TODO file for staging
  media: staging: rkisp1: add document for rkisp1 meta buffer format
  media: staging: rkisp1: add output device for parameters
  media: staging: rkisp1: add capture device for statistics
  media: staging: rkisp1: add user space ABI definitions
  media: staging: rkisp1: add streaming paths
  media: staging: rkisp1: add Rockchip ISP1 base driver
  media: staging: phy-rockchip-dphy-rx0: add Rockchip MIPI Synopsys DPHY RX0 driver
  media: staging: dt-bindings: add Rockchip MIPI RX D-PHY RX0 yaml bindings
  media: staging: dt-bindings: add Rockchip ISP1 yaml bindings
  ...
parents 8fdd4019 1697d981
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -16,7 +16,15 @@ description: |-

properties:
  compatible:
    const: allwinner,sun7i-a20-csi0
    oneOf:
      - const: allwinner,sun4i-a10-csi1
      - const: allwinner,sun7i-a20-csi0
      - items:
        - const: allwinner,sun7i-a20-csi1
        - const: allwinner,sun4i-a10-csi1
      - items:
        - const: allwinner,sun8i-r40-csi0
        - const: allwinner,sun7i-a20-csi0

  reg:
    maxItems: 1
@@ -25,12 +33,16 @@ properties:
    maxItems: 1

  clocks:
    minItems: 2
    maxItems: 3
    items:
      - description: The CSI interface clock
      - description: The CSI ISP clock
      - description: The CSI DRAM clock

  clock-names:
    minItems: 2
    maxItems: 3
    items:
      - const: bus
      - const: isp
+141 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2019 BayLibre, SAS
%YAML 1.2
---
$id: "http://devicetree.org/schemas/media/amlogic,gx-vdec.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Amlogic Video Decoder

maintainers:
  - Neil Armstrong <narmstrong@baylibre.com>
  - Maxime Jourdan <mjourdan@baylibre.com>

description: |
  The video decoding IP lies within the DOS memory region,
  except for the hardware bitstream parser that makes use of an undocumented
  region.

  It makes use of the following blocks:
  - ESPARSER is a bitstream parser that outputs to a VIFIFO. Further VDEC blocks
    then feed from this VIFIFO.
  - VDEC_1 can decode MPEG-1, MPEG-2, MPEG-4 part 2, MJPEG, H.263, H.264, VC-1.
  - VDEC_HEVC can decode HEVC and VP9.

  Both VDEC_1 and VDEC_HEVC share the "vdec" IRQ and as such cannot run
  concurrently.

properties:
  compatible:
    oneOf:
      - items:
        - enum:
          - amlogic,gxbb-vdec # GXBB (S905)
          - amlogic,gxl-vdec # GXL (S905X, S905D)
          - amlogic,gxm-vdec # GXM (S912)
        - const: amlogic,gx-vdec
      - enum:
        - amlogic,g12a-vdec # G12A (S905X2, S905D2)
        - amlogic,sm1-vdec # SM1 (S905X3, S905D3)

  interrupts:
    minItems: 2

  interrupt-names:
    items:
      - const: vdec
      - const: esparser

  reg:
    minItems: 2

  reg-names:
    items:
      - const: dos
      - const: esparser

  resets:
    maxItems: 1

  reset-names:
    items:
      - const: esparser

  clocks:
    minItems: 4
    maxItems: 5

  clock-names:
    minItems: 4
    maxItems: 5
    items:
      - const: dos_parser
      - const: dos
      - const: vdec_1
      - const: vdec_hevc
      - const: vdec_hevcf

  amlogic,ao-sysctrl:
    description: should point to the AOBUS sysctrl node
    allOf:
      - $ref: /schemas/types.yaml#/definitions/phandle

  amlogic,canvas:
    description: should point to a canvas provider node
    allOf:
      - $ref: /schemas/types.yaml#/definitions/phandle

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - amlogic,gx-vdec

    then:
      properties:
        clock-names:
          maxItems: 4

  - if:
      properties:
        compatible:
          contains:
            enum:
              - amlogic,g12a-vdec
              - amlogic,sm1-vdec

    then:
      properties:
        clock-names:
          minItems: 5

required:
  - compatible
  - reg
  - reg-names
  - interrupts
  - interrupt-names
  - clocks
  - clock-names
  - resets
  - reset-names
  - amlogic,ao-sysctrl
  - amlogic,canvas

examples:
  - |
    vdec: video-decoder@c8820000 {
          compatible = "amlogic,gxl-vdec", "amlogic,gx-vdec";
          reg = <0xc8820000 0x10000>, <0xc110a580 0xe4>;
          reg-names = "dos", "esparser";
          interrupts = <44>, <32>;
          interrupt-names = "vdec", "esparser";
          clocks = <&clk_dos_parser> ,<&clk_dos>, <&clk_vdec_1>, <&clk_vdec_hevc>;
          clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc";
          resets = <&reset_parser>;
          reset-names = "esparser";
          amlogic,ao-sysctrl = <&sysctrl_AO>;
          amlogic,canvas = <&canvas>;
    };
+0 −72
Original line number Diff line number Diff line
Amlogic Video Decoder
================================

The video decoding IP lies within the DOS memory region,
except for the hardware bitstream parser that makes use of an undocumented
region.

It makes use of the following blocks:

- ESPARSER is a bitstream parser that outputs to a VIFIFO. Further VDEC blocks
then feed from this VIFIFO.
- VDEC_1 can decode MPEG-1, MPEG-2, MPEG-4 part 2, MJPEG, H.263, H.264, VC-1.
- VDEC_HEVC can decode HEVC and VP9.

Both VDEC_1 and VDEC_HEVC share the "vdec" IRQ and as such cannot run
concurrently.

Device Tree Bindings:
---------------------

VDEC: Video Decoder
--------------------------

Required properties:
- compatible: value should be different for each SoC family as :
	- GXBB (S905) : "amlogic,gxbb-vdec"
	- GXL (S905X, S905D) : "amlogic,gxl-vdec"
	- GXM (S912) : "amlogic,gxm-vdec"
	followed by the common "amlogic,gx-vdec"
- reg: base address and size of he following memory-mapped regions :
	- dos
	- esparser
- reg-names: should contain the names of the previous memory regions
- interrupts: should contain the following IRQs:
	- vdec
	- esparser
- interrupt-names: should contain the names of the previous interrupts
- amlogic,ao-sysctrl: should point to the AOBUS sysctrl node
- amlogic,canvas: should point to a canvas provider node
- clocks: should contain the following clocks :
	- dos_parser
	- dos
	- vdec_1
	- vdec_hevc
- clock-names: should contain the names of the previous clocks
- resets: should contain the parser reset
- reset-names: should be "esparser"

Example:

vdec: video-codec@c8820000 {
	compatible = "amlogic,gxbb-vdec", "amlogic,gx-vdec";
	reg = <0x0 0xc8820000 0x0 0x10000>,
	      <0x0 0xc110a580 0x0 0xe4>;
	reg-names = "dos", "esparser";

	interrupts = <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
		     <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>;
	interrupt-names = "vdec", "esparser";

	amlogic,ao-sysctrl = <&sysctrl_AO>;
	amlogic,canvas = <&canvas>;

	clocks = <&clkc CLKID_DOS_PARSER>,
		 <&clkc CLKID_DOS>,
		 <&clkc CLKID_VDEC_1>,
		 <&clkc CLKID_VDEC_HEVC>;
	clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc";

	resets = <&reset RESET_PARSER>;
	reset-names = "esparser";
};
+2 −1
Original line number Diff line number Diff line
Device-Tree bindings for hix5hd2 ir IP

Required properties:
	- compatible: Should contain "hisilicon,hix5hd2-ir".
	- compatible: Should contain "hisilicon,hix5hd2-ir", or:
		- "hisilicon,hi3796cv300-ir" for Hi3796CV300 IR device.
	- reg: Base physical address of the controller and length of memory
	  mapped region.
	- interrupts: interrupt-specifier for the sole interrupt generated by
+1 −3
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ on Gen3 and RZ/G2 platforms to a CSI-2 receiver.
   - "renesas,vin-r8a7743" for the R8A7743 device
   - "renesas,vin-r8a7744" for the R8A7744 device
   - "renesas,vin-r8a7745" for the R8A7745 device
   - "renesas,vin-r8a77470" for the R8A77470 device
   - "renesas,vin-r8a774a1" for the R8A774A1 device
   - "renesas,vin-r8a774b1" for the R8A774B1 device
   - "renesas,vin-r8a774c0" for the R8A774C0 device
@@ -41,9 +42,6 @@ on Gen3 and RZ/G2 platforms to a CSI-2 receiver.
 - interrupts: the interrupt for the device
 - clocks: Reference to the parent clock

Additionally, an alias named vinX will need to be created to specify
which video input device this is.

The per-board settings for Gen2 and RZ/G1 platforms:

- port - sub-node describing a single endpoint connected to the VIN
Loading