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

 - New driver for Semi AR0521 sensor

 - rkisp1 CSI code was split into a separate file

 - sun6i has gained support for the A31 MIPI CSI-2 controller

 - sun8i has gained support for the A83T MIPI CSI-2 controller

 - vimc driver got support for virtual lens

 - HEVC uAPI has gained its final form and got added to public headers

 - hantro and cedrus got updates on H-265 support

 - stkwebcam was promoted from staging

 - atomisp staging driver got cleanups on its hmm and kmap related logic

 - ov5640 gained support for more modes and got some rework

 - imx7-media-csi staging driver got several improvements related to mc
   API support

 - uvcvideo now handles better power line control

 - mediatec vcodec gained support for new hardware and got some codec
   updates

 - Lots of other bug fixes, improvements and cleanups.

* tag 'media/v5.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (446 commits)
  media: hantro: Remove dedicated control documentation
  hantro: Remove incorrect HEVC SPS validation
  media: cedrus: hevc: Add check for invalid timestamp
  media: sunxi: sun6i_mipi_csi2.c/sun8i_a83t_mipi_csi2.c: clarify error handling
  media: uvcvideo: Fix invalid pointer in uvc_ctrl_init_ctrl()
  media: Documentation: mc-core: Fix typo
  media: videodev2.h.rst.exceptions: add missing exceptions
  media: vimc: wrong pointer is used with PTR_ERR
  media: rkisp1: debug: Add dump file in debugfs for MI main path registers
  media: rkisp1: Make the internal CSI-2 receiver optional
  media: rkisp1: Add infrastructure to support ISP features
  media: rkisp1: Support the ISP parallel input
  media: dt-bindings: media: rkisp1: Add port for parallel interface
  media: rkisp1: Use fwnode_graph_for_each_endpoint
  media: rkisp1: csi: Plumb the CSI RX subdev
  media: rkisp1: csi: Implement a V4L2 subdev for the CSI receiver
  media: rkisp1: isp: Disallow multiple active sources
  media: rkisp1: isp: Rename rkisp1_get_remote_source()
  media: rkisp1: isp: Constify various local variables
  media: rkisp1: isp: Fix whitespace issues
  ...
parents 80dc7593 485ade76
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -5,9 +5,13 @@ digraph board {
	n00000001 [label="{{} | Sensor A\n/dev/v4l-subdev0 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
	n00000001:port0 -> n00000005:port0 [style=bold]
	n00000001:port0 -> n0000000b [style=bold]
	n00000001 -> n00000002
	n00000002 [label="{{} | Lens A\n/dev/v4l-subdev5 | {<port0>}}", shape=Mrecord, style=filled, fillcolor=green]
	n00000003 [label="{{} | Sensor B\n/dev/v4l-subdev1 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
	n00000003:port0 -> n00000008:port0 [style=bold]
	n00000003:port0 -> n0000000f [style=bold]
	n00000003 -> n00000004
	n00000004 [label="{{} | Lens B\n/dev/v4l-subdev6 | {<port0>}}", shape=Mrecord, style=filled, fillcolor=green]
	n00000005 [label="{{<port0> 0} | Debayer A\n/dev/v4l-subdev2 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
	n00000005:port1 -> n00000015:port0
	n00000008 [label="{{<port0> 0} | Debayer B\n/dev/v4l-subdev3 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
+19 −0
Original line number Diff line number Diff line
@@ -53,6 +53,25 @@ vimc-sensor:

	* 1 Pad source

vimc-lens:
	Ancillary lens for a sensor. Supports auto focus control. Linked to
	a vimc-sensor using an ancillary link. The lens supports FOCUS_ABSOLUTE
	control.

.. code-block:: bash

	media-ctl -p
	...
	- entity 28: Lens A (0 pad, 0 link)
			type V4L2 subdev subtype Lens flags 0
			device node name /dev/v4l-subdev6
	- entity 29: Lens B (0 pad, 0 link)
			type V4L2 subdev subtype Lens flags 0
			device node name /dev/v4l-subdev7
	v4l2-ctl -d /dev/v4l-subdev7 -C focus_absolute
	focus_absolute: 0


vimc-debayer:
	Transforms images in bayer format into a non-bayer format.
	Exposes:
+14 −0
Original line number Diff line number Diff line
@@ -714,6 +714,20 @@ The Test Pattern Controls are all specific to video capture.

	does the same for the EAV (End of Active Video) code.

- Insert Video Guard Band

	adds 4 columns of pixels with the HDMI Video Guard Band code at the
	left hand side of the image. This only works with 3 or 4 byte RGB pixel
	formats. The RGB pixel value 0xab/0x55/0xab turns out to be equivalent
	to the HDMI Video Guard Band code that precedes each active video line
	(see section 5.2.2.1 in the HDMI 1.3 Specification). To test if a video
	receiver has correct HDMI Video Guard Band processing, enable this
	control and then move the image to the left hand side of the screen.
	That will result in video lines that start with multiple pixels that
	have the same value as the Video Guard Band that precedes them.
	Receivers that will just keep skipping Video Guard Band values will
	now fail and either loose sync or these video lines will shift.


Capture Feature Selection Controls
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+44 −14
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ properties:

  port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    description: Parallel input port, connect to a parallel sensor

    properties:
      endpoint:
@@ -59,7 +60,24 @@ properties:
        required:
          - bus-width

    additionalProperties: false
    unevaluatedProperties: false

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: "#/properties/port"

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: MIPI CSI-2 bridge input port

    anyOf:
      - required:
          - port@0
      - required:
          - port@1

required:
  - compatible
@@ -69,6 +87,12 @@ required:
  - clock-names
  - resets

oneOf:
  - required:
      - ports
  - required:
      - port

additionalProperties: false

examples:
@@ -89,7 +113,12 @@ examples:
                      "ram";
        resets = <&ccu RST_BUS_CSI>;

        port {
        ports {
            #address-cells = <1>;
            #size-cells = <0>;

            port@0 {
                reg = <0>;
                /* Parallel bus endpoint */
                csi1_ep: endpoint {
                    remote-endpoint = <&adv7611_ep>;
@@ -105,5 +134,6 @@ examples:
                };
            };
        };
    };

...
+137 −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/allwinner,sun6i-a31-mipi-csi2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A31 MIPI CSI-2 Device Tree Bindings

maintainers:
  - Paul Kocialkowski <paul.kocialkowski@bootlin.com>

properties:
  compatible:
    oneOf:
      - const: allwinner,sun6i-a31-mipi-csi2
      - items:
          - const: allwinner,sun8i-v3s-mipi-csi2
          - const: allwinner,sun6i-a31-mipi-csi2

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: Bus Clock
      - description: Module Clock

  clock-names:
    items:
      - const: bus
      - const: mod

  phys:
    maxItems: 1
    description: MIPI D-PHY

  phy-names:
    items:
      - const: dphy

  resets:
    maxItems: 1

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/$defs/port-base
        description: Input port, connect to a MIPI CSI-2 sensor

        properties:
          reg:
            const: 0

          endpoint:
            $ref: video-interfaces.yaml#
            unevaluatedProperties: false

            properties:
              data-lanes:
                minItems: 1
                maxItems: 4

            required:
              - data-lanes

        unevaluatedProperties: false

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: Output port, connect to a CSI controller

    required:
      - port@0
      - port@1

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - phys
  - phy-names
  - resets
  - ports

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/sun8i-v3s-ccu.h>
    #include <dt-bindings/reset/sun8i-v3s-ccu.h>

    mipi_csi2: csi@1cb1000 {
        compatible = "allwinner,sun8i-v3s-mipi-csi2",
                     "allwinner,sun6i-a31-mipi-csi2";
        reg = <0x01cb1000 0x1000>;
        interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&ccu CLK_BUS_CSI>,
                 <&ccu CLK_CSI1_SCLK>;
        clock-names = "bus", "mod";
        resets = <&ccu RST_BUS_CSI>;

        phys = <&dphy>;
        phy-names = "dphy";

        ports {
            #address-cells = <1>;
            #size-cells = <0>;

            mipi_csi2_in: port@0 {
                reg = <0>;

                mipi_csi2_in_ov5648: endpoint {
                    data-lanes = <1 2 3 4>;

                    remote-endpoint = <&ov5648_out_mipi_csi2>;
                };
            };

            mipi_csi2_out: port@1 {
                reg = <1>;

                mipi_csi2_out_csi0: endpoint {
                    remote-endpoint = <&csi0_in_mipi_csi2>;
                };
            };
        };
    };

...
Loading