Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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()

+31 -37
+15 -7
drivers/media/pci/intel/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 - config IPU_BRIDGE 3 - tristate 4 - depends on I2C && ACPI 5 - 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. 9 2 10 3 source "drivers/media/pci/intel/ipu3/Kconfig" 11 4 source "drivers/media/pci/intel/ivsc/Kconfig" 5 + 6 + config IPU_BRIDGE 7 + tristate "Intel IPU Bridge" 8 + depends on I2C && ACPI 9 + help 10 + The IPU bridge is a helper library for Intel IPU drivers to 11 + function on systems shipped with Windows. 12 + 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
+1 -20
drivers/media/pci/intel/ipu3/Kconfig
··· 2 2 config VIDEO_IPU3_CIO2 3 3 tristate "Intel ipu3-cio2 driver" 4 4 depends on VIDEO_DEV && PCI 5 + depends on IPU_BRIDGE || !IPU_BRIDGE 5 6 depends on ACPI || COMPILE_TEST 6 7 depends on X86 7 8 select MEDIA_CONTROLLER 8 9 select VIDEO_V4L2_SUBDEV_API 9 10 select V4L2_FWNODE 10 11 select VIDEOBUF2_DMA_SG 11 - select IPU_BRIDGE if CIO2_BRIDGE 12 12 13 13 help 14 14 This is the Intel IPU3 CIO2 CSI-2 receiver unit, found in Intel ··· 18 18 Say Y or M here if you have a Skylake/Kaby Lake SoC with MIPI CSI-2 19 19 connected camera. 20 20 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.
+1 -1
drivers/media/pci/intel/ivsc/Kconfig
··· 6 6 depends on INTEL_MEI && ACPI && VIDEO_DEV 7 7 select MEDIA_CONTROLLER 8 8 select VIDEO_V4L2_SUBDEV_API 9 - select V4L2_ASYNC 9 + select V4L2_FWNODE 10 10 help 11 11 This adds support for Intel Visual Sensing Controller (IVSC). 12 12
+1 -1
drivers/media/platform/intel/pxa_camera.c
··· 2398 2398 PXA_CAM_DRV_NAME, pcdev); 2399 2399 if (err) { 2400 2400 dev_err(&pdev->dev, "Camera interrupt register failed\n"); 2401 - goto exit_v4l2_device_unregister; 2401 + goto exit_deactivate; 2402 2402 } 2403 2403 2404 2404 pcdev->notifier.ops = &pxa_camera_sensor_ops;
+2 -1
drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c
··· 138 138 vpu->ctx->vpu_inst = vpu; 139 139 140 140 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); 142 143 143 144 if (status) { 144 145 mtk_venc_err(vpu->ctx, "vpu_ipi_register fail %d", status);
+1 -1
drivers/staging/media/atomisp/Kconfig
··· 12 12 config VIDEO_ATOMISP 13 13 tristate "Intel Atom Image Signal Processor Driver" 14 14 depends on VIDEO_DEV && INTEL_ATOMISP 15 + depends on IPU_BRIDGE 15 16 depends on MEDIA_PCI_SUPPORT 16 17 depends on PMIC_OPREGION 17 18 depends on I2C 18 19 select V4L2_FWNODE 19 20 select IOSF_MBI 20 - select IPU_BRIDGE 21 21 select VIDEOBUF2_VMALLOC 22 22 select VIDEO_V4L2_SUBDEV_API 23 23 help
+10 -6
drivers/staging/media/tegra-video/vi.c
··· 1455 1455 } 1456 1456 1457 1457 /* 1458 - * Graph Management 1458 + * Find the entity matching a given fwnode in an v4l2_async_notifier list 1459 1459 */ 1460 1460 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, 1462 1462 const struct fwnode_handle *fwnode) 1463 1463 { 1464 1464 struct tegra_vi_graph_entity *entity; 1465 1465 struct v4l2_async_connection *asd; 1466 1466 1467 - list_for_each_entry(asd, &chan->notifier.done_list, asc_entry) { 1467 + list_for_each_entry(asd, list, asc_entry) { 1468 1468 entity = to_tegra_vi_graph_entity(asd); 1469 + 1469 1470 if (entity->asd.match.fwnode == fwnode) 1470 1471 return entity; 1471 1472 } ··· 1533 1532 } 1534 1533 1535 1534 /* find the remote entity from notifier list */ 1536 - ent = tegra_vi_graph_find_entity(chan, link.remote_node); 1535 + ent = tegra_vi_graph_find_entity(&chan->notifier.done_list, 1536 + link.remote_node); 1537 1537 if (!ent) { 1538 1538 dev_err(vi->dev, "no entity found for %pOF\n", 1539 1539 to_of_node(link.remote_node)); ··· 1666 1664 * Locate the entity corresponding to the bound subdev and store the 1667 1665 * subdev pointer. 1668 1666 */ 1669 - entity = tegra_vi_graph_find_entity(chan, subdev->fwnode); 1667 + entity = tegra_vi_graph_find_entity(&chan->notifier.waiting_list, 1668 + subdev->fwnode); 1670 1669 if (!entity) { 1671 1670 dev_err(vi->dev, "no entity for subdev %s\n", subdev->name); 1672 1671 return -EINVAL; ··· 1716 1713 1717 1714 /* skip entities that are already processed */ 1718 1715 if (device_match_fwnode(vi->dev, remote) || 1719 - tegra_vi_graph_find_entity(chan, remote)) { 1716 + tegra_vi_graph_find_entity(&chan->notifier.waiting_list, 1717 + remote)) { 1720 1718 fwnode_handle_put(remote); 1721 1719 continue; 1722 1720 }