Skip to content
This repository was archived by the owner on Nov 8, 2023. It is now read-only.

Commit abf2050

Browse files
committed
Merge tag 'media/v6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - New CEC driver: Extron DA HD 4K Plus - Lots of driver fixes, cleanups and improvements * tag 'media/v6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (179 commits) media: atomisp: Use clamp() in ia_css_eed1_8_vmem_encode() media: atomisp: Fix eed1_8 code assigning signed values to an unsigned variable media: atomisp: set lock before calling vb2_queue_init() media: atomisp: Improve binary finding debug logging media: atomisp: Drop dev_dbg() calls from hmm_[alloc|free]() media: atomisp: csi2-bridge: Add DMI quirk for t4ka3 on Xiaomi Mipad2 media: atomisp: add missing wait_prepare/finish ops media: atomisp: Remove unused declaration media: atomisp: use clamp() in compute_coring() media: atomisp: use clamp() in ia_css_eed1_8_encode() media: atomisp: Simplify ia_css_pipe_create_cas_scaler_desc_single_output() media: atomisp: Replace rarely used macro from math_support.h media: atomisp: Remove duplicated leftover, i.e. sh_css_dvs_info.h media: atomisp: bnr: fix trailing statement media: atomisp: move trailing */ to separate lines media: atomisp: move trailing statement to next line. media: atomisp: Fix trailing statement in ia_css_de.host.c media: atomisp: Fix spelling mistakes in atomisp.h media: atomisp: Fix spelling mistakes in atomisp_platform.h media: atomisp: Fix spelling mistake in csi_rx_public.h ...
2 parents 9ab27b0 + 81ee62e commit abf2050

File tree

297 files changed

+7385
-1364
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

297 files changed

+7385
-1364
lines changed

Documentation/admin-guide/media/cec.rst

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,14 @@ dongles):
4242
``persistent_config``: by default this is off, but when set to 1 the driver
4343
will store the current settings to the device's internal eeprom and restore
4444
it the next time the device is connected to the USB port.
45+
4546
- RainShadow Tech. Note: this driver does not support the persistent_config
4647
module option of the Pulse-Eight driver. The hardware supports it, but I
4748
have no plans to add this feature. But I accept patches :-)
4849

50+
- Extron DA HD 4K PLUS HDMI Distribution Amplifier. See
51+
:ref:`extron_da_hd_4k_plus` for more information.
52+
4953
Miscellaneous:
5054

5155
- vivid: emulates a CEC receiver and CEC transmitter.
@@ -378,3 +382,86 @@ it later using ``--analyze-pin``.
378382

379383
You can also use this as a full-fledged CEC device by configuring it
380384
using ``cec-ctl --tv -p0.0.0.0`` or ``cec-ctl --playback -p1.0.0.0``.
385+
386+
.. _extron_da_hd_4k_plus:
387+
388+
Extron DA HD 4K PLUS CEC Adapter driver
389+
=======================================
390+
391+
This driver is for the Extron DA HD 4K PLUS series of HDMI Distribution
392+
Amplifiers: https://www.extron.com/product/dahd4kplusseries
393+
394+
The 2, 4 and 6 port models are supported.
395+
396+
Firmware version 1.02.0001 or higher is required.
397+
398+
Note that older Extron hardware revisions have a problem with the CEC voltage,
399+
which may mean that CEC will not work. This is fixed in hardware revisions
400+
E34814 and up.
401+
402+
The CEC support has two modes: the first is a manual mode where userspace has
403+
to manually control CEC for the HDMI Input and all HDMI Outputs. While this gives
404+
full control, it is also complicated.
405+
406+
The second mode is an automatic mode, which is selected if the module option
407+
``vendor_id`` is set. In that case the driver controls CEC and CEC messages
408+
received in the input will be distributed to the outputs. It is still possible
409+
to use the /dev/cecX devices to talk to the connected devices directly, but it is
410+
the driver that configures everything and deals with things like Hotplug Detect
411+
changes.
412+
413+
The driver also takes care of the EDIDs: /dev/videoX devices are created to
414+
read the EDIDs and (for the HDMI Input port) to set the EDID.
415+
416+
By default userspace is responsible to set the EDID for the HDMI Input
417+
according to the EDIDs of the connected displays. But if the ``manufacturer_name``
418+
module option is set, then the driver will take care of setting the EDID
419+
of the HDMI Input based on the supported resolutions of the connected displays.
420+
Currently the driver only supports resolutions 1080p60 and 4kp60: if all connected
421+
displays support 4kp60, then it will advertise 4kp60 on the HDMI input, otherwise
422+
it will fall back to an EDID that just reports 1080p60.
423+
424+
The status of the Extron is reported in ``/sys/kernel/debug/cec/cecX/status``.
425+
426+
The extron-da-hd-4k-plus driver implements the following module options:
427+
428+
``debug``
429+
---------
430+
431+
If set to 1, then all serial port traffic is shown.
432+
433+
``vendor_id``
434+
-------------
435+
436+
The CEC Vendor ID to report to connected displays.
437+
438+
If set, then the driver will take care of distributing CEC messages received
439+
on the input to the HDMI outputs. This is done for the following CEC messages:
440+
441+
- <Standby>
442+
- <Image View On> and <Text View On>
443+
- <Give Device Power Status>
444+
- <Set System Audio Mode>
445+
- <Request Current Latency>
446+
447+
If not set, then userspace is responsible for this, and it will have to
448+
configure the CEC devices for HDMI Input and the HDMI Outputs manually.
449+
450+
``manufacturer_name``
451+
---------------------
452+
453+
A three character manufacturer name that is used in the EDID for the HDMI
454+
Input. If not set, then userspace is reponsible for configuring an EDID.
455+
If set, then the driver will update the EDID automatically based on the
456+
resolutions supported by the connected displays, and it will not be possible
457+
anymore to manually set the EDID for the HDMI Input.
458+
459+
``hpd_never_low``
460+
-----------------
461+
462+
If set, then the Hotplug Detect pin of the HDMI Input will always be high,
463+
even if nothing is connected to the HDMI Outputs. If not set (the default)
464+
then the Hotplug Detect pin of the HDMI input will go low if all the detected
465+
Hotplug Detect pins of the HDMI Outputs are also low.
466+
467+
This option may be changed dynamically.

Documentation/admin-guide/media/mgb4.rst

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,13 @@ Common FPDL3/GMSL output parameters
227227
open.*
228228

229229
**frame_rate** (RW):
230-
Output video frame rate in frames per second. The default frame rate is
231-
60Hz.
230+
Output video signal frame rate limit in frames per second. Due to
231+
the limited output pixel clock steps, the card can not always generate
232+
a frame rate perfectly matching the value required by the connected display.
233+
Using this parameter one can limit the frame rate by "crippling" the signal
234+
so that the lines are not equal (the porches of the last line differ) but
235+
the signal appears like having the exact frame rate to the connected display.
236+
The default frame rate limit is 60Hz.
232237

233238
**hsync_polarity** (RW):
234239
HSYNC signal polarity.
@@ -253,33 +258,33 @@ Common FPDL3/GMSL output parameters
253258
and there is a non-linear stepping between two consecutive allowed
254259
frequencies. The driver finds the nearest allowed frequency to the given
255260
value and sets it. When reading this property, you get the exact
256-
frequency set by the driver. The default frequency is 70000kHz.
261+
frequency set by the driver. The default frequency is 61150kHz.
257262

258263
*Note: This parameter can not be changed while the output v4l2 device is
259264
open.*
260265

261266
**hsync_width** (RW):
262-
Width of the HSYNC signal in pixels. The default value is 16.
267+
Width of the HSYNC signal in pixels. The default value is 40.
263268

264269
**vsync_width** (RW):
265-
Width of the VSYNC signal in video lines. The default value is 2.
270+
Width of the VSYNC signal in video lines. The default value is 20.
266271

267272
**hback_porch** (RW):
268273
Number of PCLK pulses between deassertion of the HSYNC signal and the first
269-
valid pixel in the video line (marked by DE=1). The default value is 32.
274+
valid pixel in the video line (marked by DE=1). The default value is 50.
270275

271276
**hfront_porch** (RW):
272277
Number of PCLK pulses between the end of the last valid pixel in the video
273278
line (marked by DE=1) and assertion of the HSYNC signal. The default value
274-
is 32.
279+
is 50.
275280

276281
**vback_porch** (RW):
277282
Number of video lines between deassertion of the VSYNC signal and the video
278-
line with the first valid pixel (marked by DE=1). The default value is 2.
283+
line with the first valid pixel (marked by DE=1). The default value is 31.
279284

280285
**vfront_porch** (RW):
281286
Number of video lines between the end of the last valid pixel line (marked
282-
by DE=1) and assertion of the VSYNC signal. The default value is 2.
287+
by DE=1) and assertion of the VSYNC signal. The default value is 30.
283288

284289
FPDL3 specific input parameters
285290
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Documentation/admin-guide/media/rkisp1.rst

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,18 @@ to be applied to the hardware during a video stream, allowing userspace
114114
to dynamically modify values such as black level, cross talk corrections
115115
and others.
116116

117-
The buffer format is defined by struct :c:type:`rkisp1_params_cfg`, and
118-
userspace should set
117+
The ISP driver supports two different parameters configuration methods, the
118+
`fixed parameters format` or the `extensible parameters format`.
119+
120+
When using the `fixed parameters` method the buffer format is defined by struct
121+
:c:type:`rkisp1_params_cfg`, and userspace should set
119122
:ref:`V4L2_META_FMT_RK_ISP1_PARAMS <v4l2-meta-fmt-rk-isp1-params>` as the
120123
dataformat.
121124

125+
When using the `extensible parameters` method the buffer format is defined by
126+
struct :c:type:`rkisp1_ext_params_cfg`, and userspace should set
127+
:ref:`V4L2_META_FMT_RK_ISP1_EXT_PARAMS <v4l2-meta-fmt-rk-isp1-ext-params>` as
128+
the dataformat.
122129

123130
Capturing Video Frames Example
124131
==============================

Documentation/admin-guide/media/vivid.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1343,7 +1343,7 @@ Some Future Improvements
13431343
Just as a reminder and in no particular order:
13441344

13451345
- Add a virtual alsa driver to test audio
1346-
- Add virtual sub-devices and media controller support
1346+
- Add virtual sub-devices
13471347
- Some support for testing compressed video
13481348
- Add support to loop raw VBI output to raw VBI input
13491349
- Add support to loop teletext sliced VBI output to VBI input
@@ -1358,4 +1358,4 @@ Just as a reminder and in no particular order:
13581358
- Make a thread for the RDS generation, that would help in particular for the
13591359
"Controls" RDS Rx I/O Mode as the read-only RDS controls could be updated
13601360
in real-time.
1361-
- Changing the EDID should cause hotplug detect emulation to happen.
1361+
- Changing the EDID doesn't wait 100 ms before setting the HPD signal.

Documentation/devicetree/bindings/media/amlogic,gx-vdec.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ properties:
3131
- items:
3232
- enum:
3333
- amlogic,gxbb-vdec # GXBB (S905)
34-
- amlogic,gxl-vdec # GXL (S905X, S905D)
34+
- amlogic,gxl-vdec # GXL (S905D, S905W, S905X, S905Y)
35+
- amlogic,gxlx-vdec # GXLX (S905L)
3536
- amlogic,gxm-vdec # GXM (S912)
3637
- const: amlogic,gx-vdec
3738
- enum:
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
# Copyright (c) 2023-2024 Linaro Ltd.
3+
%YAML 1.2
4+
---
5+
$id: http://devicetree.org/schemas/media/i2c/ovti,og01a1b.yaml#
6+
$schema: http://devicetree.org/meta-schemas/core.yaml#
7+
8+
title: OmniVision OG01A1B Image Sensor
9+
10+
maintainers:
11+
- Vladimir Zapolskiy <[email protected]>
12+
13+
description:
14+
The OmniVision OG01A1B is black and white CMOS 1.3 Megapixel (1280x1024)
15+
image sensor controlled over an I2C-compatible SCCB bus.
16+
The sensor transmits images on a MIPI CSI-2 output interface with one or
17+
two data lanes.
18+
19+
allOf:
20+
- $ref: /schemas/media/video-interface-devices.yaml#
21+
22+
properties:
23+
compatible:
24+
const: ovti,og01a1b
25+
26+
reg:
27+
maxItems: 1
28+
29+
clocks:
30+
maxItems: 1
31+
32+
reset-gpios:
33+
description: Active low GPIO connected to XSHUTDOWN pad of the sensor.
34+
maxItems: 1
35+
36+
strobe-gpios:
37+
description: Input GPIO connected to strobe pad of the sensor.
38+
maxItems: 1
39+
40+
avdd-supply:
41+
description: Analogue circuit voltage supply.
42+
43+
dovdd-supply:
44+
description: I/O circuit voltage supply.
45+
46+
dvdd-supply:
47+
description: Digital circuit voltage supply.
48+
49+
port:
50+
$ref: /schemas/graph.yaml#/$defs/port-base
51+
additionalProperties: false
52+
description:
53+
Output port node, single endpoint describing the CSI-2 transmitter.
54+
55+
properties:
56+
endpoint:
57+
$ref: /schemas/media/video-interfaces.yaml#
58+
unevaluatedProperties: false
59+
60+
properties:
61+
data-lanes:
62+
minItems: 1
63+
maxItems: 2
64+
items:
65+
enum: [1, 2]
66+
67+
link-frequencies: true
68+
69+
required:
70+
- data-lanes
71+
- link-frequencies
72+
73+
required:
74+
- compatible
75+
- reg
76+
- clocks
77+
- port
78+
79+
unevaluatedProperties: false
80+
81+
examples:
82+
- |
83+
#include <dt-bindings/gpio/gpio.h>
84+
85+
i2c {
86+
#address-cells = <1>;
87+
#size-cells = <0>;
88+
89+
sensor@60 {
90+
compatible = "ovti,og01a1b";
91+
reg = <0x60>;
92+
clocks = <&clk 0>;
93+
reset-gpios = <&gpio 117 GPIO_ACTIVE_LOW>;
94+
avdd-supply = <&vreg_3v3>;
95+
dovdd-supply = <&vreg_1p8>;
96+
dvdd-supply = <&vreg_1p2>;
97+
98+
port {
99+
og01a1b_ep: endpoint {
100+
remote-endpoint = <&csiphy_ep>;
101+
data-lanes = <1 2>;
102+
link-frequencies = /bits/ 64 <500000000>;
103+
};
104+
};
105+
};
106+
};
107+
...

Documentation/devicetree/bindings/media/i2c/sony,imx335.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ additionalProperties: false
7575

7676
examples:
7777
- |
78+
#include <dt-bindings/gpio/gpio.h>
79+
7880
i2c {
7981
#address-cells = <1>;
8082
#size-cells = <0>;
@@ -92,6 +94,8 @@ examples:
9294
ovdd-supply = <&camera_vddo_1v8>;
9395
dvdd-supply = <&camera_vddd_1v2>;
9496
97+
reset-gpios = <&gpio 50 GPIO_ACTIVE_LOW>;
98+
9599
port {
96100
imx335: endpoint {
97101
remote-endpoint = <&cam>;

Documentation/devicetree/bindings/media/qcom,sc7280-venus.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ properties:
4343
- const: vcodec_bus
4444

4545
iommus:
46+
minItems: 1
4647
maxItems: 2
4748

4849
interconnects:

Documentation/devicetree/bindings/media/renesas,fcp.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ properties:
2727
- renesas,fcpf # FCP for FDP
2828
- items:
2929
- enum:
30+
- renesas,r9a07g043u-fcpvd # RZ/G2UL
3031
- renesas,r9a07g044-fcpvd # RZ/G2{L,LC}
3132
- renesas,r9a07g054-fcpvd # RZ/V2L
3233
- const: renesas,fcpv # Generic FCP for VSP fallback
@@ -62,6 +63,7 @@ allOf:
6263
compatible:
6364
contains:
6465
enum:
66+
- renesas,r9a07g043u-fcpvd
6567
- renesas,r9a07g044-fcpvd
6668
- renesas,r9a07g054-fcpvd
6769
then:

Documentation/devicetree/bindings/media/renesas,vin.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,12 @@ properties:
5252
- renesas,vin-r8a77980 # R-Car V3H
5353
- renesas,vin-r8a77990 # R-Car E3
5454
- renesas,vin-r8a77995 # R-Car D3
55+
- items:
56+
- enum:
5557
- renesas,vin-r8a779a0 # R-Car V3U
5658
- renesas,vin-r8a779g0 # R-Car V4H
59+
- renesas,vin-r8a779h0 # R-Car V4M
60+
- const: renesas,rcar-gen4-vin # Generic R-Car Gen4
5761

5862
reg:
5963
maxItems: 1

Documentation/devicetree/bindings/media/renesas,vsp1.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ properties:
2323
- renesas,vsp2 # R-Car Gen3 and RZ/G2
2424
- items:
2525
- enum:
26+
- renesas,r9a07g043u-vsp2 # RZ/G2UL
2627
- renesas,r9a07g054-vsp2 # RZ/V2L
2728
- const: renesas,r9a07g044-vsp2 # RZ/G2L fallback
2829

Documentation/devicetree/bindings/media/rockchip,rk3568-vepu.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ properties:
1717
compatible:
1818
enum:
1919
- rockchip,rk3568-vepu
20+
- rockchip,rk3588-vepu121
2021

2122
reg:
2223
maxItems: 1

0 commit comments

Comments
 (0)