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

+23 -13
+2 -8
drivers/media/i2c/ov8858.c
··· 1850 1850 } 1851 1851 1852 1852 ret = v4l2_fwnode_endpoint_parse(endpoint, &vep); 1853 + fwnode_handle_put(endpoint); 1853 1854 if (ret) { 1854 1855 dev_err(dev, "Failed to parse endpoint: %d\n", ret); 1855 - fwnode_handle_put(endpoint); 1856 1856 return ret; 1857 1857 } 1858 1858 ··· 1864 1864 default: 1865 1865 dev_err(dev, "Unsupported number of data lanes %u\n", 1866 1866 ov8858->num_lanes); 1867 - fwnode_handle_put(endpoint); 1868 1867 return -EINVAL; 1869 1868 } 1870 - 1871 - ov8858->subdev.fwnode = endpoint; 1872 1869 1873 1870 return 0; 1874 1871 } ··· 1910 1913 1911 1914 ret = ov8858_init_ctrls(ov8858); 1912 1915 if (ret) 1913 - goto err_put_fwnode; 1916 + return ret; 1914 1917 1915 1918 sd = &ov8858->subdev; 1916 1919 sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS; ··· 1961 1964 media_entity_cleanup(&sd->entity); 1962 1965 err_free_handler: 1963 1966 v4l2_ctrl_handler_free(&ov8858->ctrl_handler); 1964 - err_put_fwnode: 1965 - fwnode_handle_put(ov8858->subdev.fwnode); 1966 1967 1967 1968 return ret; 1968 1969 } ··· 1973 1978 v4l2_async_unregister_subdev(sd); 1974 1979 media_entity_cleanup(&sd->entity); 1975 1980 v4l2_ctrl_handler_free(&ov8858->ctrl_handler); 1976 - fwnode_handle_put(ov8858->subdev.fwnode); 1977 1981 1978 1982 pm_runtime_disable(&client->dev); 1979 1983 if (!pm_runtime_status_suspended(&client->dev))
+3 -1
drivers/media/pci/intel/ipu-bridge.c
··· 107 107 for_each_acpi_dev_match(ivsc_adev, acpi_id->id, NULL, -1) 108 108 /* camera sensor depends on IVSC in DSDT if exist */ 109 109 for_each_acpi_consumer_dev(ivsc_adev, consumer) 110 - if (consumer->handle == handle) 110 + if (consumer->handle == handle) { 111 + acpi_dev_put(consumer); 111 112 return ivsc_adev; 113 + } 112 114 } 113 115 114 116 return NULL;
+11 -4
drivers/media/platform/xilinx/xilinx-vipp.c
··· 55 55 { 56 56 struct xvip_graph_entity *entity; 57 57 struct v4l2_async_connection *asd; 58 + struct list_head *lists[] = { 59 + &xdev->notifier.done_list, 60 + &xdev->notifier.waiting_list 61 + }; 62 + unsigned int i; 58 63 59 - list_for_each_entry(asd, &xdev->notifier.done_list, asc_entry) { 60 - entity = to_xvip_entity(asd); 61 - if (entity->asd.match.fwnode == fwnode) 62 - return entity; 64 + for (i = 0; i < ARRAY_SIZE(lists); i++) { 65 + list_for_each_entry(asd, lists[i], asc_entry) { 66 + entity = to_xvip_entity(asd); 67 + if (entity->asd.match.fwnode == fwnode) 68 + return entity; 69 + } 63 70 } 64 71 65 72 return NULL;
+7
drivers/media/v4l2-core/v4l2-subdev.c
··· 502 502 V4L2_SUBDEV_CLIENT_CAP_STREAMS; 503 503 int rval; 504 504 505 + /* 506 + * If the streams API is not enabled, remove V4L2_SUBDEV_CAP_STREAMS. 507 + * Remove this when the API is no longer experimental. 508 + */ 509 + if (!v4l2_subdev_enable_streams_api) 510 + streams_subdev = false; 511 + 505 512 switch (cmd) { 506 513 case VIDIOC_SUBDEV_QUERYCAP: { 507 514 struct v4l2_subdev_capability *cap = arg;