Skip to content

Commit 2027b9c

Browse files
committed
Merge: Update kernel media to the upstream release 6.13
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-10/-/merge_requests/397 JIRA: https://issues.redhat.com/browse/RHEL-77309 JIRA: https://issues.redhat.com/browse/RHEL-81387 JIRA: https://issues.redhat.com/browse/RHEL-77180 CVE: CVE-2024-58004 Update media to the upstream 6.13. This update includes the IPU6 driver fixes and fixed the IPU6 driver crash on boot issue. Omitted-fix: d01e5a4 (media: test-drivers: drop vb2_ops_wait_prepare/finish) isn't supported in RHEL Omitted-fix: 3576f81 (staging: media: drop vb2_ops_wait_prepare/finish) isn't supported in RHEL Omitted-fix: d020ca1 (media: samples: v4l2-pci-skeleton.c: drop vb2_ops_wait_prepare/finish) isn't supported in RHEL The upstream commit <1d4a00028997> ( media: ipu6: use the IPU6 DMA mapping APIs to do mapping) replace the VIDEOBUF2_DMA_CONTIG with VIDEOBUF2_DMA_SG, so the CKI test reported videobuf2-dma-contig.ko not found error. Signed-off-by: Kate Hsuan <hpa@redhat.com> Approved-by: Mark Langsdorf <mlangsdo@redhat.com> Approved-by: Eric Chanudet <echanude@redhat.com> Approved-by: CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> Merged-by: Julio Faracco <jfaracco@redhat.com>
2 parents 320db00 + 8041e86 commit 2027b9c

File tree

220 files changed

+1093
-998
lines changed

Some content is hidden

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

220 files changed

+1093
-998
lines changed

Documentation/devicetree/bindings/media/video-interfaces.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,27 @@ properties:
210210
lane-polarities property is omitted, the value must be interpreted as 0
211211
(normal). This property is valid for serial busses only.
212212

213+
line-orders:
214+
$ref: /schemas/types.yaml#/definitions/uint32-array
215+
minItems: 1
216+
maxItems: 8
217+
items:
218+
enum:
219+
- 0 # ABC
220+
- 1 # ACB
221+
- 2 # BAC
222+
- 3 # BCA
223+
- 4 # CAB
224+
- 5 # CBA
225+
description:
226+
An array of line orders of the CSI-2 C-PHY data lanes. The order of the
227+
lanes are the same as in data-lanes property. Valid values are 0-5 as
228+
defined in the MIPI Discovery and Configuration (DisCo) Specification for
229+
Imaging. The length of the array must be the same length as the
230+
data-lanes property. If the line-orders property is omitted, the value
231+
shall be interpreted as 0 (ABC). This property is valid for CSI-2 C-PHY
232+
busses only.
233+
213234
strobe:
214235
$ref: /schemas/types.yaml#/definitions/uint32
215236
enum: [ 0, 1 ]

Documentation/driver-api/media/camera-sensor.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,10 @@ restart when the system is resumed. This requires coordination between the
8181
camera sensor and the rest of the camera pipeline. Bridge drivers are
8282
responsible for this coordination, and instruct camera sensors to stop and
8383
restart streaming by calling the appropriate subdev operations
84-
(``.s_stream()``, ``.enable_streams()`` or ``.disable_streams()``). Camera
85-
sensor drivers shall therefore **not** keep track of the streaming state to
86-
stop streaming in the PM suspend handler and restart it in the resume handler.
87-
Drivers should in general not implement the system PM handlers.
84+
(``.enable_streams()`` or ``.disable_streams()``). Camera sensor drivers shall
85+
therefore **not** keep track of the streaming state to stop streaming in the PM
86+
suspend handler and restart it in the resume handler. Drivers should in general
87+
not implement the system PM handlers.
8888

8989
Camera sensor drivers shall **not** implement the subdev ``.s_power()``
9090
operation, as it is deprecated. While this operation is implemented in some

Documentation/driver-api/media/drivers/ipu6.rst

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -98,21 +98,6 @@ The IPU6 driver exports its own DMA operations. The IPU6 driver will update the
9898
page table entries for each DMA operation and invalidate the MMU TLB after each
9999
unmap and free.
100100
101-
.. code-block:: none
102-
103-
const struct dma_map_ops ipu6_dma_ops = {
104-
.alloc = ipu6_dma_alloc,
105-
.free = ipu6_dma_free,
106-
.mmap = ipu6_dma_mmap,
107-
.map_sg = ipu6_dma_map_sg,
108-
.unmap_sg = ipu6_dma_unmap_sg,
109-
...
110-
};
111-
112-
.. Note:: IPU6 MMU works behind IOMMU so for each IPU6 DMA ops, driver will call
113-
generic PCI DMA ops to ask IOMMU to do the additional mapping if VT-d
114-
enabled.
115-
116101
Firmware file format
117102
====================
118103

Documentation/driver-api/media/tx-rx.rst

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,14 @@ Link frequency
4949
The :ref:`V4L2_CID_LINK_FREQ <v4l2-cid-link-freq>` control is used to tell the
5050
receiver the frequency of the bus (i.e. it is not the same as the symbol rate).
5151

52-
``.s_stream()`` callback
53-
^^^^^^^^^^^^^^^^^^^^^^^^
52+
``.enable_streams()`` and ``.disable_streams()`` callbacks
53+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5454

55-
The struct struct v4l2_subdev_video_ops->s_stream() callback is used by the
56-
receiver driver to control the transmitter driver's streaming state.
55+
The struct v4l2_subdev_pad_ops->enable_streams() and struct
56+
v4l2_subdev_pad_ops->disable_streams() callbacks are used by the receiver driver
57+
to control the transmitter driver's streaming state. These callbacks may not be
58+
called directly, but by using ``v4l2_subdev_enable_streams()`` and
59+
``v4l2_subdev_disable_streams()``.
5760

5861

5962
CSI-2 transmitter drivers
@@ -127,7 +130,7 @@ Stopping the transmitter
127130
^^^^^^^^^^^^^^^^^^^^^^^^
128131

129132
A transmitter stops sending the stream of images as a result of
130-
calling the ``.s_stream()`` callback. Some transmitters may stop the
133+
calling the ``.disable_streams()`` callback. Some transmitters may stop the
131134
stream at a frame boundary whereas others stop immediately,
132135
effectively leaving the current frame unfinished. The receiver driver
133136
should not make assumptions either way, but function properly in both
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2+
3+
.. _V4L2-PIX-FMT-Y16I:
4+
5+
**************************
6+
V4L2_PIX_FMT_Y16I ('Y16I')
7+
**************************
8+
9+
Interleaved grey-scale image, e.g. from a stereo-pair
10+
11+
12+
Description
13+
===========
14+
15+
This is a grey-scale image with a depth of 16 bits per pixel, but with pixels
16+
from 2 sources interleaved and unpacked. Each pixel is stored in a 16-bit word
17+
in the little-endian order. The first pixel is from the left source.
18+
19+
**Pixel unpacked representation.**
20+
Left/Right pixels 16-bit unpacked - 16-bit for each interleaved pixel.
21+
22+
.. flat-table::
23+
:header-rows: 0
24+
:stub-columns: 0
25+
26+
* - Y'\ :sub:`0L[7:0]`
27+
- Y'\ :sub:`0L[15:8]`
28+
- Y'\ :sub:`0R[7:0]`
29+
- Y'\ :sub:`0R[15:8]`
30+
31+
**Byte Order.**
32+
Each cell is one byte.
33+
34+
.. flat-table::
35+
:header-rows: 0
36+
:stub-columns: 0
37+
38+
* - start + 0:
39+
- Y'\ :sub:`00Llow`
40+
- Y'\ :sub:`00Lhigh`
41+
- Y'\ :sub:`00Rlow`
42+
- Y'\ :sub:`00Rhigh`
43+
- Y'\ :sub:`01Llow`
44+
- Y'\ :sub:`01Lhigh`
45+
- Y'\ :sub:`01Rlow`
46+
- Y'\ :sub:`01Rhigh`
47+
* - start + 8:
48+
- Y'\ :sub:`10Llow`
49+
- Y'\ :sub:`10Lhigh`
50+
- Y'\ :sub:`10Rlow`
51+
- Y'\ :sub:`10Rhigh`
52+
- Y'\ :sub:`11Llow`
53+
- Y'\ :sub:`11Lhigh`
54+
- Y'\ :sub:`11Rlow`
55+
- Y'\ :sub:`11Rhigh`
56+
* - start + 16:
57+
- Y'\ :sub:`20Llow`
58+
- Y'\ :sub:`20Lhigh`
59+
- Y'\ :sub:`20Rlow`
60+
- Y'\ :sub:`20Rhigh`
61+
- Y'\ :sub:`21Llow`
62+
- Y'\ :sub:`21Lhigh`
63+
- Y'\ :sub:`21Rlow`
64+
- Y'\ :sub:`21Rhigh`
65+
* - start + 24:
66+
- Y'\ :sub:`30Llow`
67+
- Y'\ :sub:`30Lhigh`
68+
- Y'\ :sub:`30Rlow`
69+
- Y'\ :sub:`30Rhigh`
70+
- Y'\ :sub:`31Llow`
71+
- Y'\ :sub:`31Lhigh`
72+
- Y'\ :sub:`31Rlow`
73+
- Y'\ :sub:`31Rhigh`

Documentation/userspace-api/media/v4l/vidioc-enum-fmt.rst

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,17 @@ the ``mbus_code`` field is handled differently:
8585
* - __u32
8686
- ``index``
8787
- Number of the format in the enumeration, set by the application.
88-
This is in no way related to the ``pixelformat`` field.
88+
This is in no way related to the ``pixelformat`` field.
89+
When the index is ORed with ``V4L2_FMTDESC_FLAG_ENUM_ALL`` the
90+
driver clears the flag and enumerates all the possible formats,
91+
ignoring any limitations from the current configuration. Drivers
92+
which do not support this flag always return an ``EINVAL``
93+
error code without clearing this flag.
94+
Formats enumerated when using ``V4L2_FMTDESC_FLAG_ENUM_ALL`` flag
95+
shouldn't be used when calling :c:func:`VIDIOC_ENUM_FRAMESIZES`
96+
or :c:func:`VIDIOC_ENUM_FRAMEINTERVALS`.
97+
``V4L2_FMTDESC_FLAG_ENUM_ALL`` should only be used by drivers that
98+
can return different format list depending on this flag.
8999
* - __u32
90100
- ``type``
91101
- Type of the data stream, set by the application. Only these types
@@ -234,6 +244,12 @@ the ``mbus_code`` field is handled differently:
234244
valid. The buffer consists of ``height`` lines, each having ``width``
235245
Data Units of data and the offset (in bytes) between the beginning of
236246
each two consecutive lines is ``bytesperline``.
247+
* - ``V4L2_FMTDESC_FLAG_ENUM_ALL``
248+
- 0x80000000
249+
- When the applications ORs ``index`` with ``V4L2_FMTDESC_FLAG_ENUM_ALL`` flag
250+
the driver enumerates all the possible pixel formats without taking care
251+
of any already set configuration. Drivers which do not support this flag,
252+
always return ``EINVAL`` without clearing this flag.
237253

238254
Return Value
239255
============

Documentation/userspace-api/media/v4l/yuv-formats.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,5 +269,6 @@ image.
269269
pixfmt-yuv-luma
270270
pixfmt-y8i
271271
pixfmt-y12i
272+
pixfmt-y16i
272273
pixfmt-uv8
273274
pixfmt-m420

Documentation/userspace-api/media/videodev2.h.rst.exceptions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ replace define V4L2_FMT_FLAG_CSC_YCBCR_ENC fmtdesc-flags
217217
replace define V4L2_FMT_FLAG_CSC_HSV_ENC fmtdesc-flags
218218
replace define V4L2_FMT_FLAG_CSC_QUANTIZATION fmtdesc-flags
219219
replace define V4L2_FMT_FLAG_META_LINE_BASED fmtdesc-flags
220+
replace define V4L2_FMTDESC_FLAG_ENUM_ALL fmtdesc-flags
220221

221222
# V4L2 timecode types
222223
replace define V4L2_TC_TYPE_24FPS timecode-type

drivers/acpi/mipi-disco-img.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -624,8 +624,7 @@ static void init_crs_csi2_swnodes(struct crs_csi2 *csi2)
624624
if (!fwnode_property_present(adev_fwnode, "rotation")) {
625625
struct acpi_pld_info *pld;
626626

627-
status = acpi_get_physical_device_location(handle, &pld);
628-
if (ACPI_SUCCESS(status)) {
627+
if (acpi_get_physical_device_location(handle, &pld)) {
629628
swnodes->dev_props[NEXT_PROPERTY(prop_index, DEV_ROTATION)] =
630629
PROPERTY_ENTRY_U32("rotation",
631630
pld->rotation * 45U);

drivers/acpi/scan.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -723,10 +723,8 @@ int acpi_tie_acpi_dev(struct acpi_device *adev)
723723
static void acpi_store_pld_crc(struct acpi_device *adev)
724724
{
725725
struct acpi_pld_info *pld;
726-
acpi_status status;
727726

728-
status = acpi_get_physical_device_location(adev->handle, &pld);
729-
if (ACPI_FAILURE(status))
727+
if (!acpi_get_physical_device_location(adev->handle, &pld))
730728
return;
731729

732730
adev->pld_crc = crc32(~0, pld, sizeof(*pld));

0 commit comments

Comments
 (0)