mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-06 05:02:31 +00:00
media fixes for v6.6-rc6
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE+QmuaPwR3wnBdVwACF8+vY7k4RUFAmUpJFAACgkQCF8+vY7k 4RUvMQ//WB2m8lI3JBxlqDE+Bj2BfMCPQSVQEInbaZ05imrlbPg0O3lkBL+qMTRc 5sfEXgh8IEumuv0S+R7QfRHdO+Cr7yaRU4uz+FHn12/61xI/+GakviRvQF5Y2TjZ hwpPiLCJRfoVrZBapfc5RmeE/Dq49E6vo0y+IicU16rAQJGfvSGqOVf4Sg7lV4lG uZl87Lacn/3xK79TZDQBJ+5+um0cKemQe0aq6H0mJjyDI3MHsll7ydqIphidQCjt 886E1sdHsdivnOfEHkJz05r9IM3ccoIUxLuZouGfR16TePAlCksEMpRe8mAE+Uml 30KXpfI3PdjLKM9Y5S9YbAYlSYvtOGgKWjIoKHLuIdrGL3EOjvI6v3MOz2dZh90m m3R5ppAduxugi7mVnwjBCkNlLodMNWxuzyvd8s+aUEgBewugtlLTU8FFwQwIZkxR bP5xjp0sYWtCl3FZc2/ekp9OsYof/+I2UdeTYdi+i9aEgDVC5KnZsHT3m/M8kr8Q odQWkivPFfQ3sN9Dz/Q35wZlssR121NNTAbFs55Hx99i4c9eS5gstlqM3TQrMF1Y SVnpHLY+mOBKbsiH7ZWgZIsqIq662oLOw6aoiWzHLGcPEY8FwEzur7ggGOgSPPWp 0Q+ccous5/Vrtr8/SSuZ4iIZZvAqftmUCjevq0b6RHGIm5rW8CA= =8d/O -----END PGP SIGNATURE----- Merge tag 'media/v6.6-5' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media fixes from Mauro Carvalho Chehab: - a core fix: Don't report V4L2_SUBDEV_CAP_STREAMS when API is disabled - ipu-bridge: Add a missing acpi_dev_put() - ov8858: fix driver for probe to work after 6.6-rc1 - xilinx-vipp: fix async notifier logic * tag 'media/v6.6-5' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: media: i2c: ov8858: Don't set fwnode in the driver media: ipu-bridge: Add missing acpi_dev_put() in ipu_bridge_get_ivsc_acpi_dev() media: xilinx-vipp: Look for entities also in waiting_list media: subdev: Don't report V4L2_SUBDEV_CAP_STREAMS when the streams API is disabled
This commit is contained in:
commit
7c367d8ead
@ -1850,9 +1850,9 @@ static int ov8858_parse_of(struct ov8858 *ov8858)
|
||||
}
|
||||
|
||||
ret = v4l2_fwnode_endpoint_parse(endpoint, &vep);
|
||||
fwnode_handle_put(endpoint);
|
||||
if (ret) {
|
||||
dev_err(dev, "Failed to parse endpoint: %d\n", ret);
|
||||
fwnode_handle_put(endpoint);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1864,12 +1864,9 @@ static int ov8858_parse_of(struct ov8858 *ov8858)
|
||||
default:
|
||||
dev_err(dev, "Unsupported number of data lanes %u\n",
|
||||
ov8858->num_lanes);
|
||||
fwnode_handle_put(endpoint);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ov8858->subdev.fwnode = endpoint;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1913,7 +1910,7 @@ static int ov8858_probe(struct i2c_client *client)
|
||||
|
||||
ret = ov8858_init_ctrls(ov8858);
|
||||
if (ret)
|
||||
goto err_put_fwnode;
|
||||
return ret;
|
||||
|
||||
sd = &ov8858->subdev;
|
||||
sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS;
|
||||
@ -1964,8 +1961,6 @@ static int ov8858_probe(struct i2c_client *client)
|
||||
media_entity_cleanup(&sd->entity);
|
||||
err_free_handler:
|
||||
v4l2_ctrl_handler_free(&ov8858->ctrl_handler);
|
||||
err_put_fwnode:
|
||||
fwnode_handle_put(ov8858->subdev.fwnode);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -1978,7 +1973,6 @@ static void ov8858_remove(struct i2c_client *client)
|
||||
v4l2_async_unregister_subdev(sd);
|
||||
media_entity_cleanup(&sd->entity);
|
||||
v4l2_ctrl_handler_free(&ov8858->ctrl_handler);
|
||||
fwnode_handle_put(ov8858->subdev.fwnode);
|
||||
|
||||
pm_runtime_disable(&client->dev);
|
||||
if (!pm_runtime_status_suspended(&client->dev))
|
||||
|
@ -107,8 +107,10 @@ static struct acpi_device *ipu_bridge_get_ivsc_acpi_dev(struct acpi_device *adev
|
||||
for_each_acpi_dev_match(ivsc_adev, acpi_id->id, NULL, -1)
|
||||
/* camera sensor depends on IVSC in DSDT if exist */
|
||||
for_each_acpi_consumer_dev(ivsc_adev, consumer)
|
||||
if (consumer->handle == handle)
|
||||
if (consumer->handle == handle) {
|
||||
acpi_dev_put(consumer);
|
||||
return ivsc_adev;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
@ -55,11 +55,18 @@ xvip_graph_find_entity(struct xvip_composite_device *xdev,
|
||||
{
|
||||
struct xvip_graph_entity *entity;
|
||||
struct v4l2_async_connection *asd;
|
||||
struct list_head *lists[] = {
|
||||
&xdev->notifier.done_list,
|
||||
&xdev->notifier.waiting_list
|
||||
};
|
||||
unsigned int i;
|
||||
|
||||
list_for_each_entry(asd, &xdev->notifier.done_list, asc_entry) {
|
||||
entity = to_xvip_entity(asd);
|
||||
if (entity->asd.match.fwnode == fwnode)
|
||||
return entity;
|
||||
for (i = 0; i < ARRAY_SIZE(lists); i++) {
|
||||
list_for_each_entry(asd, lists[i], asc_entry) {
|
||||
entity = to_xvip_entity(asd);
|
||||
if (entity->asd.match.fwnode == fwnode)
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
@ -502,6 +502,13 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
|
||||
V4L2_SUBDEV_CLIENT_CAP_STREAMS;
|
||||
int rval;
|
||||
|
||||
/*
|
||||
* If the streams API is not enabled, remove V4L2_SUBDEV_CAP_STREAMS.
|
||||
* Remove this when the API is no longer experimental.
|
||||
*/
|
||||
if (!v4l2_subdev_enable_streams_api)
|
||||
streams_subdev = false;
|
||||
|
||||
switch (cmd) {
|
||||
case VIDIOC_SUBDEV_QUERYCAP: {
|
||||
struct v4l2_subdev_capability *cap = arg;
|
||||
|
Loading…
Reference in New Issue
Block a user