Skip to content

Commit a61e260

Browse files
committed
Merge tag 'media/v6.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - v4l2-core fix: V4L2_BUF_TYPE_VIDEO_OVERLAY is capture, not output - New driver: Amlogic C3 ISP - New sensor drivers: ST VD55G1 and VD56G3, OmniVision OV02C10 - amlogic: c3-mipi-csi2: Handle 64-bits division - a fix for 64-bits division at the amlogic c3-mipi-csi2 driver - Changes at atomisp to support mainline mt9m114 driver and remove deprecated GPIO APIs - various cleanups, fixes and enhancements * tag 'media/v6.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (314 commits) media: rkvdec: h264: Support High 10 and 4:2:2 profiles media: rkvdec: Add get_image_fmt ops media: rkvdec: Initialize the m2m context before the controls media: rkvdec: h264: Limit minimum profile to constrained baseline media: mediatek: jpeg: support 34bits media: verisilicon: Free post processor buffers on error media: platform: mtk-mdp3: Remove unused mdp_get_plat_device media: amlogic: c3-mipi-csi2: Handle 64-bits division media: uvcvideo: Use dev_err_probe for devm_gpiod_get_optional media: uvcvideo: Fix deferred probing error media: uvcvideo: Rollback non processed entities on error media: uvcvideo: Send control events for partial succeeds media: uvcvideo: Return the number of processed controls media: uvcvideo: Do not turn on the camera for some ioctls media: uvcvideo: Make power management granular media: uvcvideo: Increase/decrease the PM counter per IOCTL media: uvcvideo: Create uvc_pm_(get|put) functions media: uvcvideo: Keep streaming state in the file handle Documentation: media: Add documentation file c3-isp.rst Documentation: media: Add documentation file metafmt-c3-isp.rst ...
2 parents 3d413f0 + 5e1ff23 commit a61e260

File tree

320 files changed

+24149
-9062
lines changed

Some content is hidden

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

320 files changed

+24149
-9062
lines changed

.mailmap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,7 @@ Mayuresh Janorkar <[email protected]>
511511
512512
513513
Michael Buesch <[email protected]>
514+
514515
515516
Michel Dänzer <[email protected]>
516517
Michel Lespinasse <[email protected]>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
digraph board {
2+
rankdir=TB
3+
n00000001 [label="{{<port0> 0 | <port1> 1} | c3-isp-core\n/dev/v4l-subdev0 | {<port2> 2 | <port3> 3 | <port4> 4 | <port5> 5}}", shape=Mrecord, style=filled, fillcolor=green]
4+
n00000001:port3 -> n00000008:port0
5+
n00000001:port4 -> n0000000b:port0
6+
n00000001:port5 -> n0000000e:port0
7+
n00000001:port2 -> n00000027
8+
n00000008 [label="{{<port0> 0} | c3-isp-resizer0\n/dev/v4l-subdev1 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
9+
n00000008:port1 -> n00000016 [style=bold]
10+
n0000000b [label="{{<port0> 0} | c3-isp-resizer1\n/dev/v4l-subdev2 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
11+
n0000000b:port1 -> n0000001a [style=bold]
12+
n0000000e [label="{{<port0> 0} | c3-isp-resizer2\n/dev/v4l-subdev3 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
13+
n0000000e:port1 -> n00000023 [style=bold]
14+
n00000011 [label="{{<port0> 0} | c3-mipi-adapter\n/dev/v4l-subdev4 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
15+
n00000011:port1 -> n00000001:port0 [style=bold]
16+
n00000016 [label="c3-isp-cap0\n/dev/video0", shape=box, style=filled, fillcolor=yellow]
17+
n0000001a [label="c3-isp-cap1\n/dev/video1", shape=box, style=filled, fillcolor=yellow]
18+
n0000001e [label="{{<port0> 0} | c3-mipi-csi2\n/dev/v4l-subdev5 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
19+
n0000001e:port1 -> n00000011:port0 [style=bold]
20+
n00000023 [label="c3-isp-cap2\n/dev/video2", shape=box, style=filled, fillcolor=yellow]
21+
n00000027 [label="c3-isp-stats\n/dev/video3", shape=box, style=filled, fillcolor=yellow]
22+
n0000002b [label="c3-isp-params\n/dev/video4", shape=box, style=filled, fillcolor=yellow]
23+
n0000002b -> n00000001:port1
24+
n0000003f [label="{{} | imx290 2-001a\n/dev/v4l-subdev6 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
25+
n0000003f:port0 -> n0000001e:port0 [style=bold]
26+
}
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
.. SPDX-License-Identifier: (GPL-2.0-only OR MIT)
2+
3+
.. include:: <isonum.txt>
4+
5+
=================================================
6+
Amlogic C3 Image Signal Processing (C3ISP) driver
7+
=================================================
8+
9+
Introduction
10+
============
11+
12+
This file documents the Amlogic C3ISP driver located under
13+
drivers/media/platform/amlogic/c3/isp.
14+
15+
The current version of the driver supports the C3ISP found on
16+
Amlogic C308L processor.
17+
18+
The driver implements V4L2, Media controller and V4L2 subdev interfaces.
19+
Camera sensor using V4L2 subdev interface in the kernel is supported.
20+
21+
The driver has been tested on AW419-C308L-Socket platform.
22+
23+
Amlogic C3 ISP
24+
==============
25+
26+
The Camera hardware found on C308L processors and supported by
27+
the driver consists of:
28+
29+
- 1 MIPI-CSI-2 module: handles the physical layer of the MIPI CSI-2 receiver and
30+
receives data from the connected camera sensor.
31+
- 1 MIPI-ADAPTER module: organizes MIPI data to meet ISP input requirements and
32+
send MIPI data to ISP.
33+
- 1 ISP (Image Signal Processing) module: contains a pipeline of image processing
34+
hardware blocks. The ISP pipeline contains three resizers at the end each of
35+
them connected to a DMA interface which writes the output data to memory.
36+
37+
A high-level functional view of the C3 ISP is presented below.::
38+
39+
+----------+ +-------+
40+
| Resizer |--->| WRMIF |
41+
+---------+ +------------+ +--------------+ +-------+ |----------+ +-------+
42+
| Sensor |--->| MIPI CSI-2 |--->| MIPI ADAPTER |--->| ISP |---|----------+ +-------+
43+
+---------+ +------------+ +--------------+ +-------+ | Resizer |--->| WRMIF |
44+
+----------+ +-------+
45+
|----------+ +-------+
46+
| Resizer |--->| WRMIF |
47+
+----------+ +-------+
48+
49+
Driver architecture and design
50+
==============================
51+
52+
With the goal to model the hardware links between the modules and to expose a
53+
clean, logical and usable interface, the driver registers the following V4L2
54+
sub-devices:
55+
56+
- 1 `c3-mipi-csi2` sub-device - the MIPI CSI-2 receiver
57+
- 1 `c3-mipi-adapter` sub-device - the MIPI adapter
58+
- 1 `c3-isp-core` sub-device - the ISP core
59+
- 3 `c3-isp-resizer` sub-devices - the ISP resizers
60+
61+
The `c3-isp-core` sub-device is linked to 2 video device nodes for statistics
62+
capture and parameters programming:
63+
64+
- the `c3-isp-stats` capture video device node for statistics capture
65+
- the `c3-isp-params` output video device for parameters programming
66+
67+
Each `c3-isp-resizer` sub-device is linked to a capture video device node where
68+
frames are captured from:
69+
70+
- `c3-isp-resizer0` is linked to the `c3-isp-cap0` capture video device
71+
- `c3-isp-resizer1` is linked to the `c3-isp-cap1` capture video device
72+
- `c3-isp-resizer2` is linked to the `c3-isp-cap2` capture video device
73+
74+
The media controller pipeline graph is as follows (with connected a
75+
IMX290 camera sensor):
76+
77+
.. _isp_topology_graph:
78+
79+
.. kernel-figure:: c3-isp.dot
80+
:alt: c3-isp.dot
81+
:align: center
82+
83+
Media pipeline topology
84+
85+
Implementation
86+
==============
87+
88+
Runtime configuration of the ISP hardware is performed on the `c3-isp-params`
89+
video device node using the :ref:`V4L2_META_FMT_C3ISP_PARAMS
90+
<v4l2-meta-fmt-c3isp-params>` as data format. The buffer structure is defined by
91+
:c:type:`c3_isp_params_cfg`.
92+
93+
Statistics are captured from the `c3-isp-stats` video device node using the
94+
:ref:`V4L2_META_FMT_C3ISP_STATS <v4l2-meta-fmt-c3isp-stats>` data format.
95+
96+
The final picture size and format is configured using the V4L2 video
97+
capture interface on the `c3-isp-cap[0, 2]` video device nodes.
98+
99+
The Amlogic C3 ISP is supported by `libcamera <https://libcamera.org>`_ with a
100+
dedicated pipeline handler and algorithms that perform run-time image correction
101+
and enhancement.

Documentation/admin-guide/media/mgb4.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
11
.. SPDX-License-Identifier: GPL-2.0
22
3+
.. include:: <isonum.txt>
4+
35
The mgb4 driver
46
===============
57

8+
Copyright |copy| 2023 - 2025 Digiteq Automotive
9+
author: Martin Tůma <[email protected]>
10+
11+
This is a v4l2 device driver for the Digiteq Automotive FrameGrabber 4, a PCIe
12+
card capable of capturing and generating FPD-Link III and GMSL2/3 video streams
13+
as used in the automotive industry.
14+
615
sysfs interface
716
---------------
817

Documentation/admin-guide/media/pci-cardlist.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ saa7134 Philips SAA7134
8686
saa7164 NXP SAA7164
8787
smipcie SMI PCIe DVBSky cards
8888
solo6x10 Bluecherry / Softlogic 6x10 capture cards (MPEG-4/H.264)
89-
sta2x11_vip STA2X11 VIP Video For Linux
9089
tw5864 Techwell TW5864 video/audio grabber and encoder
9190
tw686x Intersil/Techwell TW686x
9291
tw68 Techwell tw68x Video For Linux

Documentation/admin-guide/media/v4l-drivers.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Video4Linux (V4L) driver-specific documentation
1010
:maxdepth: 2
1111

1212
bttv
13+
c3-isp
1314
cafe_ccic
1415
cx88
1516
fimc
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/media/amlogic,c3-isp.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Amlogic C3 Image Signal Processing Unit
8+
9+
maintainers:
10+
- Keke Li <[email protected]>
11+
12+
description:
13+
Amlogic ISP is the RAW image processing module
14+
and supports three channels image output.
15+
16+
properties:
17+
compatible:
18+
enum:
19+
- amlogic,c3-isp
20+
21+
reg:
22+
maxItems: 1
23+
24+
reg-names:
25+
items:
26+
- const: isp
27+
28+
power-domains:
29+
maxItems: 1
30+
31+
clocks:
32+
maxItems: 2
33+
34+
clock-names:
35+
items:
36+
- const: vapb
37+
- const: isp0
38+
39+
interrupts:
40+
maxItems: 1
41+
42+
port:
43+
$ref: /schemas/graph.yaml#/properties/port
44+
description: input port node.
45+
46+
required:
47+
- compatible
48+
- reg
49+
- reg-names
50+
- power-domains
51+
- clocks
52+
- clock-names
53+
- interrupts
54+
- port
55+
56+
additionalProperties: false
57+
58+
examples:
59+
- |
60+
#include <dt-bindings/interrupt-controller/arm-gic.h>
61+
#include <dt-bindings/clock/amlogic,c3-peripherals-clkc.h>
62+
#include <dt-bindings/power/amlogic,c3-pwrc.h>
63+
64+
soc {
65+
#address-cells = <2>;
66+
#size-cells = <2>;
67+
68+
isp: isp@ff000000 {
69+
compatible = "amlogic,c3-isp";
70+
reg = <0x0 0xff000000 0x0 0xf000>;
71+
reg-names = "isp";
72+
power-domains = <&pwrc PWRC_C3_ISP_TOP_ID>;
73+
clocks = <&clkc_periphs CLKID_VAPB>,
74+
<&clkc_periphs CLKID_ISP0>;
75+
clock-names = "vapb", "isp0";
76+
assigned-clocks = <&clkc_periphs CLKID_VAPB>,
77+
<&clkc_periphs CLKID_ISP0>;
78+
assigned-clock-rates = <0>, <400000000>;
79+
interrupts = <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>;
80+
81+
port {
82+
c3_isp_in: endpoint {
83+
remote-endpoint = <&c3_adap_out>;
84+
};
85+
};
86+
};
87+
};
88+
...
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/media/amlogic,c3-mipi-adapter.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Amlogic C3 MIPI adapter receiver
8+
9+
maintainers:
10+
- Keke Li <[email protected]>
11+
12+
description:
13+
MIPI adapter is used to convert the MIPI CSI-2 data
14+
into an ISP supported data format.
15+
16+
properties:
17+
compatible:
18+
enum:
19+
- amlogic,c3-mipi-adapter
20+
21+
reg:
22+
maxItems: 3
23+
24+
reg-names:
25+
items:
26+
- const: top
27+
- const: fd
28+
- const: rd
29+
30+
power-domains:
31+
maxItems: 1
32+
33+
clocks:
34+
maxItems: 2
35+
36+
clock-names:
37+
items:
38+
- const: vapb
39+
- const: isp0
40+
41+
ports:
42+
$ref: /schemas/graph.yaml#/properties/ports
43+
44+
properties:
45+
port@0:
46+
$ref: /schemas/graph.yaml#/properties/port
47+
description: input port node.
48+
49+
port@1:
50+
$ref: /schemas/graph.yaml#/properties/port
51+
description: output port node.
52+
53+
required:
54+
- port@0
55+
- port@1
56+
57+
required:
58+
- compatible
59+
- reg
60+
- reg-names
61+
- power-domains
62+
- clocks
63+
- clock-names
64+
- ports
65+
66+
additionalProperties: false
67+
68+
examples:
69+
- |
70+
#include <dt-bindings/clock/amlogic,c3-peripherals-clkc.h>
71+
#include <dt-bindings/power/amlogic,c3-pwrc.h>
72+
73+
soc {
74+
#address-cells = <2>;
75+
#size-cells = <2>;
76+
77+
adap: adap@ff010000 {
78+
compatible = "amlogic,c3-mipi-adapter";
79+
reg = <0x0 0xff010000 0x0 0x100>,
80+
<0x0 0xff01b000 0x0 0x100>,
81+
<0x0 0xff01d000 0x0 0x200>;
82+
reg-names = "top", "fd", "rd";
83+
power-domains = <&pwrc PWRC_C3_ISP_TOP_ID>;
84+
clocks = <&clkc_periphs CLKID_VAPB>,
85+
<&clkc_periphs CLKID_ISP0>;
86+
clock-names = "vapb", "isp0";
87+
assigned-clocks = <&clkc_periphs CLKID_VAPB>,
88+
<&clkc_periphs CLKID_ISP0>;
89+
assigned-clock-rates = <0>, <400000000>;
90+
91+
ports {
92+
#address-cells = <1>;
93+
#size-cells = <0>;
94+
95+
port@0 {
96+
reg = <0>;
97+
c3_adap_in: endpoint {
98+
remote-endpoint = <&c3_mipi_csi_out>;
99+
};
100+
};
101+
102+
port@1 {
103+
reg = <1>;
104+
c3_adap_out: endpoint {
105+
remote-endpoint = <&c3_isp_in>;
106+
};
107+
};
108+
};
109+
};
110+
};
111+
...

0 commit comments

Comments
 (0)