mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 23:23:03 +00:00
media fixes for v6.6-rc5
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE+QmuaPwR3wnBdVwACF8+vY7k4RUFAmUhBYMACgkQCF8+vY7k 4RURZhAAiPg8BDMYMH9W7XKZxetU5K3LMp0LwYyPdQUXyNgEDikT6//U3GJOHAdR jcyWTkVYNJ7JFv1uwKJscIBq+YGijimGPktGqUKY6YsFlYzT52k21OKi2YvInqxd E4kJH9v9Lxr5K26icfKIyEwqDC6eTcG8clckmfXZPxmcdhQXFYFXxW+tJjqtpBnO 0DWNJRlnQ+P4jX3y3yuuSJALVY7qKT6DQRz5SeIRKiRvRrlhrH4FCiFZ6XwFPbX/ ZXQf7IoJqylNA6FmpEc0W4yhUo4oFZKA1N0s7QOfmvBiyxSRXHFs9j6BppzWAYJc 8CoVM8aci9FTmnLjCB7tknUr2Pl9dVDirLVTjgFMLhFcSbtNPGD+ywwM7lvT87NZ n5jCL6x2/dMJYv/qHmxNyRTXtr2tw3vccL69ZdDnv5bZ/L1uAn7ZIytEFEMrTnuz MMzawQeKqzLhN/zf+JCZBeeo+6zVpG3BuHW5HeDDUNVyb3Kq1F1ykypnaP8H5euy LLczGx/JqHZzW/v2x1DY0vpvhM+z4c55KcoK2InI8h2p/UiAyHQc+7oB5tFltUWm ME2M3tQZ+EczNDTAYLxYMRUemhW5KaqpRlOWoX+34QyAIonOcX4F1Fr2HBalCoSk WroDxdbU+UgHrDfK49HngZrH9jmsRImGEEVOgGeI2NWa9Y3qgaM= =tmgl -----END PGP SIGNATURE----- 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()
This commit is contained in:
commit
b036cda9d5
@ -1,11 +1,19 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
config IPU_BRIDGE
|
||||
tristate
|
||||
depends on I2C && ACPI
|
||||
help
|
||||
This is a helper module for the IPU bridge, which can be
|
||||
used by ipu3 and other drivers. In order to handle module
|
||||
dependencies, this is selected by each driver that needs it.
|
||||
|
||||
source "drivers/media/pci/intel/ipu3/Kconfig"
|
||||
source "drivers/media/pci/intel/ivsc/Kconfig"
|
||||
|
||||
config IPU_BRIDGE
|
||||
tristate "Intel IPU Bridge"
|
||||
depends on I2C && ACPI
|
||||
help
|
||||
The IPU bridge is a helper library for Intel IPU drivers to
|
||||
function on systems shipped with Windows.
|
||||
|
||||
Currently used by the ipu3-cio2 and atomisp drivers.
|
||||
|
||||
Supported systems include:
|
||||
|
||||
- Microsoft Surface models (except Surface Pro 3)
|
||||
- The Lenovo Miix line (for example the 510, 520, 710 and 720)
|
||||
- Dell 7285
|
||||
|
@ -2,13 +2,13 @@
|
||||
config VIDEO_IPU3_CIO2
|
||||
tristate "Intel ipu3-cio2 driver"
|
||||
depends on VIDEO_DEV && PCI
|
||||
depends on IPU_BRIDGE || !IPU_BRIDGE
|
||||
depends on ACPI || COMPILE_TEST
|
||||
depends on X86
|
||||
select MEDIA_CONTROLLER
|
||||
select VIDEO_V4L2_SUBDEV_API
|
||||
select V4L2_FWNODE
|
||||
select VIDEOBUF2_DMA_SG
|
||||
select IPU_BRIDGE if CIO2_BRIDGE
|
||||
|
||||
help
|
||||
This is the Intel IPU3 CIO2 CSI-2 receiver unit, found in Intel
|
||||
@ -18,22 +18,3 @@ config VIDEO_IPU3_CIO2
|
||||
Say Y or M here if you have a Skylake/Kaby Lake SoC with MIPI CSI-2
|
||||
connected camera.
|
||||
The module will be called ipu3-cio2.
|
||||
|
||||
config CIO2_BRIDGE
|
||||
bool "IPU3 CIO2 Sensors Bridge"
|
||||
depends on VIDEO_IPU3_CIO2 && ACPI
|
||||
depends on I2C
|
||||
help
|
||||
This extension provides an API for the ipu3-cio2 driver to create
|
||||
connections to cameras that are hidden in the SSDB buffer in ACPI.
|
||||
It can be used to enable support for cameras in detachable / hybrid
|
||||
devices that ship with Windows.
|
||||
|
||||
Say Y here if your device is a detachable / hybrid laptop that comes
|
||||
with Windows installed by the OEM, for example:
|
||||
|
||||
- Microsoft Surface models (except Surface Pro 3)
|
||||
- The Lenovo Miix line (for example the 510, 520, 710 and 720)
|
||||
- Dell 7285
|
||||
|
||||
If in doubt, say N here.
|
||||
|
@ -6,7 +6,7 @@ config INTEL_VSC
|
||||
depends on INTEL_MEI && ACPI && VIDEO_DEV
|
||||
select MEDIA_CONTROLLER
|
||||
select VIDEO_V4L2_SUBDEV_API
|
||||
select V4L2_ASYNC
|
||||
select V4L2_FWNODE
|
||||
help
|
||||
This adds support for Intel Visual Sensing Controller (IVSC).
|
||||
|
||||
|
@ -2398,7 +2398,7 @@ static int pxa_camera_probe(struct platform_device *pdev)
|
||||
PXA_CAM_DRV_NAME, pcdev);
|
||||
if (err) {
|
||||
dev_err(&pdev->dev, "Camera interrupt register failed\n");
|
||||
goto exit_v4l2_device_unregister;
|
||||
goto exit_deactivate;
|
||||
}
|
||||
|
||||
pcdev->notifier.ops = &pxa_camera_sensor_ops;
|
||||
|
@ -138,7 +138,8 @@ int vpu_enc_init(struct venc_vpu_inst *vpu)
|
||||
vpu->ctx->vpu_inst = vpu;
|
||||
|
||||
status = mtk_vcodec_fw_ipi_register(vpu->ctx->dev->fw_handler, vpu->id,
|
||||
vpu_enc_ipi_handler, "venc", NULL);
|
||||
vpu_enc_ipi_handler, "venc",
|
||||
vpu->ctx->dev);
|
||||
|
||||
if (status) {
|
||||
mtk_venc_err(vpu->ctx, "vpu_ipi_register fail %d", status);
|
||||
|
@ -12,12 +12,12 @@ menuconfig INTEL_ATOMISP
|
||||
config VIDEO_ATOMISP
|
||||
tristate "Intel Atom Image Signal Processor Driver"
|
||||
depends on VIDEO_DEV && INTEL_ATOMISP
|
||||
depends on IPU_BRIDGE
|
||||
depends on MEDIA_PCI_SUPPORT
|
||||
depends on PMIC_OPREGION
|
||||
depends on I2C
|
||||
select V4L2_FWNODE
|
||||
select IOSF_MBI
|
||||
select IPU_BRIDGE
|
||||
select VIDEOBUF2_VMALLOC
|
||||
select VIDEO_V4L2_SUBDEV_API
|
||||
help
|
||||
|
@ -1455,17 +1455,18 @@ static int __maybe_unused vi_runtime_suspend(struct device *dev)
|
||||
}
|
||||
|
||||
/*
|
||||
* Graph Management
|
||||
* Find the entity matching a given fwnode in an v4l2_async_notifier list
|
||||
*/
|
||||
static struct tegra_vi_graph_entity *
|
||||
tegra_vi_graph_find_entity(struct tegra_vi_channel *chan,
|
||||
tegra_vi_graph_find_entity(struct list_head *list,
|
||||
const struct fwnode_handle *fwnode)
|
||||
{
|
||||
struct tegra_vi_graph_entity *entity;
|
||||
struct v4l2_async_connection *asd;
|
||||
|
||||
list_for_each_entry(asd, &chan->notifier.done_list, asc_entry) {
|
||||
list_for_each_entry(asd, list, asc_entry) {
|
||||
entity = to_tegra_vi_graph_entity(asd);
|
||||
|
||||
if (entity->asd.match.fwnode == fwnode)
|
||||
return entity;
|
||||
}
|
||||
@ -1532,7 +1533,8 @@ static int tegra_vi_graph_build(struct tegra_vi_channel *chan,
|
||||
}
|
||||
|
||||
/* find the remote entity from notifier list */
|
||||
ent = tegra_vi_graph_find_entity(chan, link.remote_node);
|
||||
ent = tegra_vi_graph_find_entity(&chan->notifier.done_list,
|
||||
link.remote_node);
|
||||
if (!ent) {
|
||||
dev_err(vi->dev, "no entity found for %pOF\n",
|
||||
to_of_node(link.remote_node));
|
||||
@ -1664,7 +1666,8 @@ static int tegra_vi_graph_notify_bound(struct v4l2_async_notifier *notifier,
|
||||
* Locate the entity corresponding to the bound subdev and store the
|
||||
* subdev pointer.
|
||||
*/
|
||||
entity = tegra_vi_graph_find_entity(chan, subdev->fwnode);
|
||||
entity = tegra_vi_graph_find_entity(&chan->notifier.waiting_list,
|
||||
subdev->fwnode);
|
||||
if (!entity) {
|
||||
dev_err(vi->dev, "no entity for subdev %s\n", subdev->name);
|
||||
return -EINVAL;
|
||||
@ -1713,7 +1716,8 @@ static int tegra_vi_graph_parse_one(struct tegra_vi_channel *chan,
|
||||
|
||||
/* skip entities that are already processed */
|
||||
if (device_match_fwnode(vi->dev, remote) ||
|
||||
tegra_vi_graph_find_entity(chan, remote)) {
|
||||
tegra_vi_graph_find_entity(&chan->notifier.waiting_list,
|
||||
remote)) {
|
||||
fwnode_handle_put(remote);
|
||||
continue;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user