Skip to content

Commit b036cda

Browse files
committed
Merge tag 'media/v6.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media fixes from Mauro Carvalho Chehab: - two Kconfig build fixes under randconfig - pxa_camera: Fix an error handling path - mediatek: vcodec: Fix a NULL-access pointer - tegra-video: fix an infinite recursion regression * tag 'media/v6.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: media: mediatek: vcodec: Fix encoder access NULL pointer staging: media: tegra-video: fix infinite recursion regression media: pci: intel: ivsc: select V4L2_FWNODE media: ipu-bridge: Fix Kconfig dependencies media: pxa_camera: Fix an error handling path in pxa_camera_probe()
2 parents 5e5558f + 1146bec commit b036cda

File tree

7 files changed

+30
-36
lines changed

7 files changed

+30
-36
lines changed

drivers/media/pci/intel/Kconfig

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
11
# SPDX-License-Identifier: GPL-2.0-only
2+
3+
source "drivers/media/pci/intel/ipu3/Kconfig"
4+
source "drivers/media/pci/intel/ivsc/Kconfig"
5+
26
config IPU_BRIDGE
3-
tristate
7+
tristate "Intel IPU Bridge"
48
depends on I2C && ACPI
59
help
6-
This is a helper module for the IPU bridge, which can be
7-
used by ipu3 and other drivers. In order to handle module
8-
dependencies, this is selected by each driver that needs it.
10+
The IPU bridge is a helper library for Intel IPU drivers to
11+
function on systems shipped with Windows.
912

10-
source "drivers/media/pci/intel/ipu3/Kconfig"
11-
source "drivers/media/pci/intel/ivsc/Kconfig"
13+
Currently used by the ipu3-cio2 and atomisp drivers.
14+
15+
Supported systems include:
16+
17+
- Microsoft Surface models (except Surface Pro 3)
18+
- The Lenovo Miix line (for example the 510, 520, 710 and 720)
19+
- Dell 7285

drivers/media/pci/intel/ipu3/Kconfig

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
config VIDEO_IPU3_CIO2
33
tristate "Intel ipu3-cio2 driver"
44
depends on VIDEO_DEV && PCI
5+
depends on IPU_BRIDGE || !IPU_BRIDGE
56
depends on ACPI || COMPILE_TEST
67
depends on X86
78
select MEDIA_CONTROLLER
89
select VIDEO_V4L2_SUBDEV_API
910
select V4L2_FWNODE
1011
select VIDEOBUF2_DMA_SG
11-
select IPU_BRIDGE if CIO2_BRIDGE
1212

1313
help
1414
This is the Intel IPU3 CIO2 CSI-2 receiver unit, found in Intel
@@ -18,22 +18,3 @@ config VIDEO_IPU3_CIO2
1818
Say Y or M here if you have a Skylake/Kaby Lake SoC with MIPI CSI-2
1919
connected camera.
2020
The module will be called ipu3-cio2.
21-
22-
config CIO2_BRIDGE
23-
bool "IPU3 CIO2 Sensors Bridge"
24-
depends on VIDEO_IPU3_CIO2 && ACPI
25-
depends on I2C
26-
help
27-
This extension provides an API for the ipu3-cio2 driver to create
28-
connections to cameras that are hidden in the SSDB buffer in ACPI.
29-
It can be used to enable support for cameras in detachable / hybrid
30-
devices that ship with Windows.
31-
32-
Say Y here if your device is a detachable / hybrid laptop that comes
33-
with Windows installed by the OEM, for example:
34-
35-
- Microsoft Surface models (except Surface Pro 3)
36-
- The Lenovo Miix line (for example the 510, 520, 710 and 720)
37-
- Dell 7285
38-
39-
If in doubt, say N here.

drivers/media/pci/intel/ivsc/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ config INTEL_VSC
66
depends on INTEL_MEI && ACPI && VIDEO_DEV
77
select MEDIA_CONTROLLER
88
select VIDEO_V4L2_SUBDEV_API
9-
select V4L2_ASYNC
9+
select V4L2_FWNODE
1010
help
1111
This adds support for Intel Visual Sensing Controller (IVSC).
1212

drivers/media/platform/intel/pxa_camera.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2398,7 +2398,7 @@ static int pxa_camera_probe(struct platform_device *pdev)
23982398
PXA_CAM_DRV_NAME, pcdev);
23992399
if (err) {
24002400
dev_err(&pdev->dev, "Camera interrupt register failed\n");
2401-
goto exit_v4l2_device_unregister;
2401+
goto exit_deactivate;
24022402
}
24032403

24042404
pcdev->notifier.ops = &pxa_camera_sensor_ops;

drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,8 @@ int vpu_enc_init(struct venc_vpu_inst *vpu)
138138
vpu->ctx->vpu_inst = vpu;
139139

140140
status = mtk_vcodec_fw_ipi_register(vpu->ctx->dev->fw_handler, vpu->id,
141-
vpu_enc_ipi_handler, "venc", NULL);
141+
vpu_enc_ipi_handler, "venc",
142+
vpu->ctx->dev);
142143

143144
if (status) {
144145
mtk_venc_err(vpu->ctx, "vpu_ipi_register fail %d", status);

drivers/staging/media/atomisp/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ menuconfig INTEL_ATOMISP
1212
config VIDEO_ATOMISP
1313
tristate "Intel Atom Image Signal Processor Driver"
1414
depends on VIDEO_DEV && INTEL_ATOMISP
15+
depends on IPU_BRIDGE
1516
depends on MEDIA_PCI_SUPPORT
1617
depends on PMIC_OPREGION
1718
depends on I2C
1819
select V4L2_FWNODE
1920
select IOSF_MBI
20-
select IPU_BRIDGE
2121
select VIDEOBUF2_VMALLOC
2222
select VIDEO_V4L2_SUBDEV_API
2323
help

drivers/staging/media/tegra-video/vi.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1455,17 +1455,18 @@ static int __maybe_unused vi_runtime_suspend(struct device *dev)
14551455
}
14561456

14571457
/*
1458-
* Graph Management
1458+
* Find the entity matching a given fwnode in an v4l2_async_notifier list
14591459
*/
14601460
static struct tegra_vi_graph_entity *
1461-
tegra_vi_graph_find_entity(struct tegra_vi_channel *chan,
1461+
tegra_vi_graph_find_entity(struct list_head *list,
14621462
const struct fwnode_handle *fwnode)
14631463
{
14641464
struct tegra_vi_graph_entity *entity;
14651465
struct v4l2_async_connection *asd;
14661466

1467-
list_for_each_entry(asd, &chan->notifier.done_list, asc_entry) {
1467+
list_for_each_entry(asd, list, asc_entry) {
14681468
entity = to_tegra_vi_graph_entity(asd);
1469+
14691470
if (entity->asd.match.fwnode == fwnode)
14701471
return entity;
14711472
}
@@ -1532,7 +1533,8 @@ static int tegra_vi_graph_build(struct tegra_vi_channel *chan,
15321533
}
15331534

15341535
/* find the remote entity from notifier list */
1535-
ent = tegra_vi_graph_find_entity(chan, link.remote_node);
1536+
ent = tegra_vi_graph_find_entity(&chan->notifier.done_list,
1537+
link.remote_node);
15361538
if (!ent) {
15371539
dev_err(vi->dev, "no entity found for %pOF\n",
15381540
to_of_node(link.remote_node));
@@ -1664,7 +1666,8 @@ static int tegra_vi_graph_notify_bound(struct v4l2_async_notifier *notifier,
16641666
* Locate the entity corresponding to the bound subdev and store the
16651667
* subdev pointer.
16661668
*/
1667-
entity = tegra_vi_graph_find_entity(chan, subdev->fwnode);
1669+
entity = tegra_vi_graph_find_entity(&chan->notifier.waiting_list,
1670+
subdev->fwnode);
16681671
if (!entity) {
16691672
dev_err(vi->dev, "no entity for subdev %s\n", subdev->name);
16701673
return -EINVAL;
@@ -1713,7 +1716,8 @@ static int tegra_vi_graph_parse_one(struct tegra_vi_channel *chan,
17131716

17141717
/* skip entities that are already processed */
17151718
if (device_match_fwnode(vi->dev, remote) ||
1716-
tegra_vi_graph_find_entity(chan, remote)) {
1719+
tegra_vi_graph_find_entity(&chan->notifier.waiting_list,
1720+
remote)) {
17171721
fwnode_handle_put(remote);
17181722
continue;
17191723
}

0 commit comments

Comments
 (0)