mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
Merge tag 'media/v6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - Lots of improvement at atomisp driver, which is starting to look in good shape - Mediatek vcodec driver has gained support for av1 and hevc stateless codecs - New sensor driver: ov01a10 - verisilicon driver has gained AV1 entropy helpers - tegra-video has gained support for Tegra20 parallel input - dvb core has gained an extra property to better support DVB-S2X - as usual, lots of cleanups, fixes and improvements on media drivers * tag 'media/v6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (253 commits) media: wl128x: fix a clang warning media: dvb: mb86a20s: get rid of a clang-15 warning media: cec: i2c: ch7322: also select REGMAP media: add HAS_IOPORT dependencies media: tc358746: select CONFIG_GENERIC_PHY media: mediatek: vcodec: Add dbgfs help function media: mediatek: vcodec: Add encode to support dbgfs media: mediatek: vcodec: Change dbgfs interface to support encode media: mediatek: vcodec: Get each instance format type media: mediatek: vcodec: Get each context resolution information media: mediatek: vcodec: Add a debugfs file to get different useful information media: mediatek: vcodec: Add debug params to control different log level media: mediatek: vcodec: Add debugfs interface to get debug information media: mediatek: vcodec: support stateless AV1 decoder media: verisilicon: Conditionally ignore native formats media: verisilicon: Enable AV1 decoder on rk3588 media: verisilicon: Add film grain feature to AV1 driver media: verisilicon: Add Rockchip AV1 decoder media: verisilicon: Add AV1 entropy helpers media: verisilicon: Compute motion vectors size for AV1 frames ...
This commit is contained in:
@@ -10,8 +10,8 @@ Introduction
|
||||
============
|
||||
|
||||
This file documents the driver for the Rockchip ISP1 that is part of RK3288
|
||||
and RK3399 SoCs. The driver is located under drivers/staging/media/rkisp1
|
||||
and uses the Media-Controller API.
|
||||
and RK3399 SoCs. The driver is located under drivers/media/platform/rockchip/
|
||||
rkisp1 and uses the Media-Controller API.
|
||||
|
||||
Revisions
|
||||
=========
|
||||
|
||||
@@ -73,6 +73,18 @@ properties:
|
||||
avdd-dsi-csi-supply:
|
||||
description: DSI/CSI power supply. Must supply 1.2 V.
|
||||
|
||||
vip:
|
||||
$ref: /schemas/display/tegra/nvidia,tegra20-vip.yaml
|
||||
|
||||
ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
|
||||
properties:
|
||||
port@0:
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
description:
|
||||
Input from the VIP (parallel input capture) module
|
||||
|
||||
patternProperties:
|
||||
"^csi@[0-9a-f]+$":
|
||||
type: object
|
||||
@@ -108,6 +120,22 @@ examples:
|
||||
#include <dt-bindings/clock/tegra20-car.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
camera@48 {
|
||||
compatible = "aptina,mt9v111";
|
||||
reg = <0x48>;
|
||||
clocks = <&camera_clk>;
|
||||
|
||||
port {
|
||||
mt9v111_out: endpoint {
|
||||
remote-endpoint = <&vi_vip_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
vi@54080000 {
|
||||
compatible = "nvidia,tegra20-vi";
|
||||
reg = <0x54080000 0x00040000>;
|
||||
@@ -115,6 +143,37 @@ examples:
|
||||
clocks = <&tegra_car TEGRA20_CLK_VI>;
|
||||
resets = <&tegra_car 100>;
|
||||
reset-names = "vi";
|
||||
|
||||
vip {
|
||||
compatible = "nvidia,tegra20-vip";
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
vi_vip_in: endpoint {
|
||||
remote-endpoint = <&mt9v111_out>;
|
||||
};
|
||||
};
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
vi_vip_out: endpoint {
|
||||
remote-endpoint = <&vi_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
vi_in: endpoint {
|
||||
remote-endpoint = <&vi_vip_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
- |
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/display/tegra/nvidia,tegra20-vip.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: NVIDIA Tegra VIP (parallel video capture) controller
|
||||
|
||||
maintainers:
|
||||
- Luca Ceresoli <luca.ceresoli@bootlin.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- nvidia,tegra20-vip
|
||||
|
||||
ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
|
||||
properties:
|
||||
port@0:
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
description:
|
||||
Port receiving the video stream from the sensor
|
||||
|
||||
port@1:
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
description:
|
||||
Port sending the video stream to the VI
|
||||
|
||||
required:
|
||||
- port@0
|
||||
- port@1
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- ports
|
||||
|
||||
# see nvidia,tegra20-vi.yaml for an example
|
||||
@@ -65,9 +65,14 @@ properties:
|
||||
|
||||
properties:
|
||||
data-lanes: true
|
||||
bus-type:
|
||||
enum:
|
||||
- 1 # MEDIA_BUS_TYPE_CSI2_CPHY
|
||||
- 4 # MEDIA_BUS_TYPE_CSI2_DPHY
|
||||
|
||||
required:
|
||||
- data-lanes
|
||||
- bus-type
|
||||
|
||||
required:
|
||||
- port@4
|
||||
@@ -82,6 +87,7 @@ additionalProperties: false
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/media/video-interfaces.h>
|
||||
|
||||
i2c@e6508000 {
|
||||
#address-cells = <1>;
|
||||
@@ -101,6 +107,7 @@ examples:
|
||||
port@4 {
|
||||
reg = <4>;
|
||||
max96712_out0: endpoint {
|
||||
bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
|
||||
clock-lanes = <0>;
|
||||
data-lanes = <1 2 3 4>;
|
||||
remote-endpoint = <&csi40_in>;
|
||||
|
||||
@@ -155,7 +155,7 @@ examples:
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/clock/qcom,gcc-msm8916.h>
|
||||
|
||||
camss: camss@1b00000 {
|
||||
camss: camss@1b0ac00 {
|
||||
compatible = "qcom,msm8916-camss";
|
||||
|
||||
clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
|
||||
|
||||
@@ -221,7 +221,7 @@ examples:
|
||||
#include <dt-bindings/clock/qcom,gcc-msm8996.h>
|
||||
#include <dt-bindings/clock/qcom,mmcc-msm8996.h>
|
||||
|
||||
camss: camss@a00000 {
|
||||
camss: camss@a34000 {
|
||||
compatible = "qcom,msm8996-camss";
|
||||
|
||||
clocks = <&mmcc CAMSS_TOP_AHB_CLK>,
|
||||
|
||||
@@ -227,7 +227,7 @@ examples:
|
||||
#include <dt-bindings/clock/qcom,gcc-sdm660.h>
|
||||
#include <dt-bindings/clock/qcom,mmcc-sdm660.h>
|
||||
|
||||
camss: camss@ca00000 {
|
||||
camss: camss@ca00020 {
|
||||
compatible = "qcom,sdm660-camss";
|
||||
|
||||
clocks = <&mmcc CAMSS_AHB_CLK>,
|
||||
|
||||
@@ -219,7 +219,7 @@ examples:
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
camss: camss@a00000 {
|
||||
camss: camss@acb3000 {
|
||||
compatible = "qcom,sdm845-camss";
|
||||
|
||||
clocks = <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
|
||||
|
||||
@@ -24,6 +24,7 @@ properties:
|
||||
- rockchip,rk3399-vpu
|
||||
- rockchip,px30-vpu
|
||||
- rockchip,rk3568-vpu
|
||||
- rockchip,rk3588-av1-vpu
|
||||
- items:
|
||||
- const: rockchip,rk3188-vpu
|
||||
- const: rockchip,rk3066-vpu
|
||||
|
||||
@@ -151,3 +151,25 @@ used to obtain device's power state after the power state transition:
|
||||
The function returns a non-zero value if it succeeded getting the power count or
|
||||
runtime PM was disabled, in either of which cases the driver may proceed to
|
||||
access the device.
|
||||
|
||||
Rotation, orientation and flipping
|
||||
----------------------------------
|
||||
|
||||
Some systems have the camera sensor mounted upside down compared to its natural
|
||||
mounting rotation. In such cases, drivers shall expose the information to
|
||||
userspace with the :ref:`V4L2_CID_CAMERA_SENSOR_ROTATION
|
||||
<v4l2-camera-sensor-rotation>` control.
|
||||
|
||||
Sensor drivers shall also report the sensor's mounting orientation with the
|
||||
:ref:`V4L2_CID_CAMERA_SENSOR_ORIENTATION <v4l2-camera-sensor-orientation>`.
|
||||
|
||||
Use ``v4l2_fwnode_device_parse()`` to obtain rotation and orientation
|
||||
information from system firmware and ``v4l2_ctrl_new_fwnode_properties()`` to
|
||||
register the appropriate controls.
|
||||
|
||||
Sensor drivers that have any vertical or horizontal flips embedded in the
|
||||
register programming sequences shall initialize the V4L2_CID_HFLIP and
|
||||
V4L2_CID_VFLIP controls with the values programmed by the register sequences.
|
||||
The default values of these controls shall be 0 (disabled). Especially these
|
||||
controls shall not be inverted, independently of the sensor's mounting
|
||||
rotation.
|
||||
|
||||
@@ -142,6 +142,10 @@ ignore symbol FEC_26_45
|
||||
ignore symbol FEC_28_45
|
||||
ignore symbol FEC_32_45
|
||||
ignore symbol FEC_77_90
|
||||
ignore symbol FEC_11_45
|
||||
ignore symbol FEC_4_15
|
||||
ignore symbol FEC_14_45
|
||||
ignore symbol FEC_7_15
|
||||
|
||||
ignore symbol TRANSMISSION_MODE_AUTO
|
||||
ignore symbol TRANSMISSION_MODE_1K
|
||||
|
||||
@@ -427,3 +427,12 @@ VP9
|
||||
:title: VP9 Bitstream & Decoding Process Specification
|
||||
|
||||
:author: Adrian Grange (Google), Peter de Rivaz (Argon Design), Jonathan Hunt (Argon Design)
|
||||
|
||||
.. _av1:
|
||||
|
||||
AV1
|
||||
===
|
||||
|
||||
:title: AV1 Bitstream & Decoding Process Specification
|
||||
|
||||
:author: Peter de Rivaz, Argon Design Ltd, Jack Haughton, Argon Design Ltd
|
||||
|
||||
@@ -506,6 +506,8 @@ enum v4l2_scene_mode -
|
||||
value down. A value of zero stops the motion if one is in progress
|
||||
and has no effect otherwise.
|
||||
|
||||
.. _v4l2-camera-sensor-orientation:
|
||||
|
||||
``V4L2_CID_CAMERA_ORIENTATION (menu)``
|
||||
This read-only control describes the camera orientation by reporting its
|
||||
mounting position on the device where the camera is installed. The control
|
||||
@@ -536,6 +538,7 @@ enum v4l2_scene_mode -
|
||||
- The camera is not directly attached to the device and is freely movable.
|
||||
|
||||
|
||||
.. _v4l2-camera-sensor-rotation:
|
||||
|
||||
``V4L2_CID_CAMERA_SENSOR_ROTATION (integer)``
|
||||
This read-only control describes the rotation correction in degrees in the
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -12,10 +12,10 @@ These formats are used for the :ref:`metadata` interface only.
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
pixfmt-meta-d4xx
|
||||
pixfmt-meta-intel-ipu3
|
||||
pixfmt-meta-rkisp1
|
||||
pixfmt-meta-uvc
|
||||
pixfmt-meta-vsp1-hgo
|
||||
pixfmt-meta-vsp1-hgt
|
||||
pixfmt-meta-vivid
|
||||
metafmt-d4xx
|
||||
metafmt-intel-ipu3
|
||||
metafmt-rkisp1
|
||||
metafmt-uvc
|
||||
metafmt-vsp1-hgo
|
||||
metafmt-vsp1-hgt
|
||||
metafmt-vivid
|
||||
|
||||
@@ -12,7 +12,7 @@ Intel D4xx UVC Cameras Metadata
|
||||
Description
|
||||
===========
|
||||
|
||||
Intel D4xx (D435 and other) cameras include per-frame metadata in their UVC
|
||||
Intel D4xx (D435, D455 and others) cameras include per-frame metadata in their UVC
|
||||
payload headers, following the Microsoft(R) UVC extension proposal [1_]. That
|
||||
means, that the private D4XX metadata, following the standard UVC header, is
|
||||
organised in blocks. D4XX cameras implement several standard block types,
|
||||
@@ -26,6 +26,8 @@ V4L2_META_FMT_UVC with the only difference, that it also includes proprietary
|
||||
payload header data. D4xx cameras use bulk transfers and only send one payload
|
||||
per frame, therefore their headers cannot be larger than 255 bytes.
|
||||
|
||||
This document implements Intel Configuration version 3 [9_].
|
||||
|
||||
Below are proprietary Microsoft style metadata types, used by D4xx cameras,
|
||||
where all fields are in little endian order:
|
||||
|
||||
@@ -43,10 +45,10 @@ where all fields are in little endian order:
|
||||
* - __u32 ID
|
||||
- 0x80000000
|
||||
* - __u32 Size
|
||||
- Size in bytes (currently 56)
|
||||
- Size in bytes, include ID (all protocol versions: 60)
|
||||
* - __u32 Version
|
||||
- Version of this structure. The documentation herein corresponds to
|
||||
version xxx. The version number will be incremented when new fields are
|
||||
- Version of this structure. The documentation herein covers versions 1,
|
||||
2 and 3. The version number will be incremented when new fields are
|
||||
added.
|
||||
* - __u32 Flags
|
||||
- A bitmask of flags: see [2_] below
|
||||
@@ -72,13 +74,17 @@ where all fields are in little endian order:
|
||||
- Bottom border of the AE Region of Interest
|
||||
* - __u32 Preset
|
||||
- Preset selector value, default: 0, unless changed by the user
|
||||
* - __u32 Laser mode
|
||||
- 0: off, 1: on
|
||||
* - __u8 Emitter mode (v3 only) (__u32 Laser mode for v1) [8_]
|
||||
- 0: off, 1: on, same as __u32 Laser mode for v1
|
||||
* - __u8 RFU byte (v3 only)
|
||||
- Spare byte for future use
|
||||
* - __u16 LED Power (v3 only)
|
||||
- Led power value 0-360 (F416 SKU)
|
||||
* - :cspan:`1` *Capture Timing*
|
||||
* - __u32 ID
|
||||
- 0x80000001
|
||||
* - __u32 Size
|
||||
- Size in bytes (currently 40)
|
||||
- Size in bytes, include ID (all protocol versions: 40)
|
||||
* - __u32 Version
|
||||
- Version of this structure. The documentation herein corresponds to
|
||||
version xxx. The version number will be incremented when new fields are
|
||||
@@ -101,7 +107,7 @@ where all fields are in little endian order:
|
||||
* - __u32 ID
|
||||
- 0x80000002
|
||||
* - __u32 Size
|
||||
- Size in bytes (currently 40)
|
||||
- Size in bytes, include ID (v1:36, v3:40)
|
||||
* - __u32 Version
|
||||
- Version of this structure. The documentation herein corresponds to
|
||||
version xxx. The version number will be incremented when new fields are
|
||||
@@ -124,6 +130,14 @@ where all fields are in little endian order:
|
||||
- Requested frame rate per second
|
||||
* - __u16 Trigger
|
||||
- Byte 0: bit 0: depth and RGB are synchronised, bit 1: external trigger
|
||||
* - __u16 Calibration count (v3 only)
|
||||
- Calibration counter, see [4_] below
|
||||
* - __u8 GPIO input data (v3 only)
|
||||
- GPIO readout, see [4_] below (Supported from FW 5.12.7.0)
|
||||
* - __u32 Sub-preset info (v3 only)
|
||||
- Sub-preset choice information, see [4_] below
|
||||
* - __u8 reserved (v3 only)
|
||||
- RFU byte.
|
||||
|
||||
.. _1:
|
||||
|
||||
@@ -140,6 +154,8 @@ where all fields are in little endian order:
|
||||
0x00000010 Exposure priority
|
||||
0x00000020 AE ROI
|
||||
0x00000040 Preset
|
||||
0x00000080 Emitter mode
|
||||
0x00000100 LED Power
|
||||
|
||||
.. _3:
|
||||
|
||||
@@ -165,6 +181,8 @@ where all fields are in little endian order:
|
||||
0x00000040 Framerate
|
||||
0x00000080 Trigger
|
||||
0x00000100 Cal count
|
||||
0x00000200 GPIO Input Data
|
||||
0x00000400 Sub-preset Info
|
||||
|
||||
.. _5:
|
||||
|
||||
@@ -211,3 +229,24 @@ Left sensor: ::
|
||||
Fish Eye sensor: ::
|
||||
|
||||
1 RAW8
|
||||
|
||||
.. _8:
|
||||
|
||||
[8] The "Laser mode" has been replaced in version 3 by three different fields.
|
||||
"Laser" has been renamed to "Emitter" as there are multiple technologies for
|
||||
camera projectors. As we have another field for "Laser Power" we introduced
|
||||
"LED Power" for extra emitter.
|
||||
|
||||
The "Laser mode" __u32 fiels has been split into: ::
|
||||
1 __u8 Emitter mode
|
||||
2 __u8 RFU byte
|
||||
3 __u16 LED Power
|
||||
|
||||
This is a change between versions 1 and 3. All versions 1, 2 and 3 are backward
|
||||
compatible with the same data format and they are supported. See [2_] for which
|
||||
attributes are valid.
|
||||
|
||||
.. _9:
|
||||
|
||||
[9] LibRealSense SDK metadata source:
|
||||
https://github.com/IntelRealSense/librealsense/blob/master/src/metadata.h
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user