summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2025-05-09media: synopsys: hdmirx: Count dropped framesNicolas Dufresne1-4/+4
The sequence number communicate the lost frames to userspace. For this reason, it must be incremented even when a frame is skipped. This allows userspace such as GStreamer to report the loss. Fixes: 7b59b132ad439 ("media: platform: synopsys: Add support for HDMI input driver") Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-09media: synopsys: hdmirx: Renamed frame_idx to sequenceNicolas Dufresne1-5/+5
This variable is used to fill the v4l2_buffer.sequence, let's name it the exact same way to reduce confusion. No functional changes. Fixes: 7b59b132ad439 ("media: platform: synopsys: Add support for HDMI input driver") Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-09media: v4l: subdev: Fix coverity issue: Logically dead codeChris Green1-2/+1
The conditional (type == V4L2_TUNER_RADIO) always evaluates true due to the earlier check for (type != V4L2_TUNER_RADIO) (line 2826) CID: 1226742 Signed-off-by: Chris Green <chris.e.green@hotmail.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-09media: v4l2-dev: fix error handling in __video_register_device()Ma Ke1-7/+7
Once device_register() failed, we should call put_device() to decrement reference count for cleanup. Or it could cause memory leak. And move callback function v4l2_device_release() and v4l2_device_get() before put_device(). As comment of device_register() says, 'NOTE: _Never_ directly free @dev after calling this function, even if it returned an error! Always use put_device() to give up the reference initialized in this function instead.' Found by code review. Cc: stable@vger.kernel.org Fixes: dc93a70cc7f9 ("V4L/DVB (9973): v4l2-dev: use the release callback from device instead of cdev") Signed-off-by: Ma Ke <make24@iscas.ac.cn> Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06dt-bindings: media: convert imx.txt to yaml formatFrank Li4-54/+181
Convert binding doc imx.txt to yaml format. Create two yaml files: fsl,imx6-mipi-csi2.yaml and fsl,imx-capture-subsystem.yaml. Additional changes: - add example for fsl,imx6-mipi-csi2 - add irq err1 and err2 description - update MAINTAINERS Signed-off-by: Frank Li <Frank.Li@nxp.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> [hverkuil: drop empty line at the end of the yaml files]
2025-05-06media: dt-bindings: sony,imx290: Update usage exampleNiklas Söderlund1-1/+1
Since commit 98e0500eadb7 ("media: i2c: imx290: Add configurable link frequency and pixel rate") the driver expects two specific link-frequency settings 2-lane (445500000, 297000000) and 4-lane (222750000, 148500000) operation. The driver fails to probe without these exact settings. Update the example in the bindings to match this to make it easier for users to incorporate this sensor in their device tree descriptions without having to read the driver sources when the driver fails to probe. Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: intel/ipu6: Change deprecated lock commentStanislaw Gruszka1-4/+1
pre_streamon_queued is no longer used. The lock now is protecting active and incoming lists. Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: intel/ipu6: Remove line_alignStanislaw Gruszka3-6/+1
isys->line_align value is only used in one place and we can just use the proper value directly there. Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: intel/ipu6: Remove pin_ready function pointerStanislaw Gruszka4-14/+6
We can call ipu6_isys_queue_buf_ready() directly. The only current usage is pin_ready pointer is to check if pin was prepared before IPU6_FW_ISYS_RESP_TYPE_PIN_DATA_READY interrupt, we can use queue pointer for that purpose. Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: i2c: imx335: Fix frame size enumerationKieran Bingham1-1/+2
In commit cfa49ff0558a ("media: i2c: imx335: Support 2592x1940 10-bit mode") the IMX335 driver was extended to support multiple output bitdepth modes. This incorrectly extended the frame size enumeration to check against the supported mbus_codes array instead of the supported mode/frame array. This has the unwanted side effect of reporting the currently supported frame size 2592x1944 three times. Fix the check accordingly to report a frame size for each supported size, which is presently only a single entry. Fixes: cfa49ff0558a ("media: i2c: imx335: Support 2592x1940 10-bit mode") Cc: stable@vger.kernel.org Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: i2c: ds90ub960: Fix uninitialized variable in ↵Dan Carpenter1-1/+1
ub960_rxport_bc_ser_config() The "ret" variable is not initialized on success. Set it to zero. Fixes: e2a3b695bc5f ("media: i2c: ds90ub960: Configure serializer using back-channel") Cc: stable@vger.kernel.org Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> Reviewed-by: Jai Luthra <jai.luthra@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: i2c: ds90ub960: Fix uninitialized variable in ↵Dan Carpenter1-1/+1
ub960_serializer_temp_ramp() The "ret" variable is not initialized on the success path. Fixes: a05744749600 ("media: i2c: ds90ub9xx: Set serializer temperature ramp") Cc: stable@vger.kernel.org Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> Reviewed-by: Jai Luthra <jai.luthra@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: i2c: imx334: uninitialized variable in imx334_update_exp_gain()Dan Carpenter1-1/+2
The "ret" variable is not initialized on the success path. Set it to zero. Fixes: 7b19b0fc8ac8 ("media: i2c: imx334: Convert to CCI register access helpers") Cc: stable@vger.kernel.org Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: ov08x40: Select mode based on mipi lane countJason Chen1-12/+43
Use the v4l2_find_nearest_size_conditional() helper to figure out which drive-supported lane can be used on a given system. Also avoid exposing duplicate frame sizes to userspace when multiple modes share the same resolution but differ in lane count. Signed-off-by: Jason Chen <jason.z.chen@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: ov08x40: Use v4l2_link_freq_to_bitmap helperJason Chen1-20/+10
Use the v4l2_link_freq_to_bitmap() helper to figure out which driver-supported link frequencies can be used on a given system. Signed-off-by: Jason Chen <jason.z.chen@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> [hverkuil: drop unused variable 'max']
2025-05-06media: ov08x40: Add shared global register listJason Chen1-0/+416
This follows the previous cleanup commit where duplicate entries were removed from each mode's register list. Signed-off-by: Jason Chen <jason.z.chen@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: ov08x40: Remove common register settings from resolution-specific tableJason Chen1-802/+0
Prepare for refactoring register table by removing register entries that are common across all modes from resolution-specific table These will be moved into a shared common register array in the next commit. Signed-off-by: Jason Chen <jason.z.chen@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: ov08x40: Add support for 2/4 lanes at 1500 MbpsJason Chen1-0/+441
Add register settings for 1500Mbps to support both 2-lane and 4-lane configurations Signed-off-by: Jason Chen <jason.z.chen@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: ov08x40: Separate the lane configuration and PLL settingsJason Chen1-44/+12
To prepare upcoming support of multiple sensor modes, this change separates the lane configuration and PLL settings from the original mode-specific settings. Signed-off-by: Jason Chen <jason.z.chen@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: common: Add v4l2_find_nearest_size_conditional()Sakari Ailus2-17/+59
v4l2_find_nearest_size() returns a mode from sensor driver's mode list that is a best match width and height wise for the sensor. Some drivers have different set of available modes depending on the number of lanes. While this could be handled within a driver by providing different lists of modes, provide a helper v4l2_find_nearest_size_conditional() to ignore modes that aren't available. Also use size_t for the array index and remove extra commas while at it. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: i2c: ov13b10: Support 2 lane modeHao Yao1-22/+118
1. Fix pixel rate calculation to consider different lane number 2. Add 2104x1560 60fps 2 data lanes register setting 3. Support 2 lane in check_hwcfg 4. Select correct mode considering lane number used Signed-off-by: Bingbu Cao <bingbu.cao@intel.com> Signed-off-by: Hao Yao <hao.yao@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: i2c: ov13b10: Improve code readabilityHao Yao1-8/+4
Use mode instead of ov13b->cur_mode in set_pad_format. Signed-off-by: Bingbu Cao <bingbu.cao@intel.com> Signed-off-by: Hao Yao <hao.yao@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> [hverkuil: fix typo: redability -> readability]
2025-05-06media: i2c: ov13b10: Fix h_blank calculationHao Yao1-10/+14
Pixel per line (PPL) is calculated as pixel_rate / (VTS * FPS), which is not decided by MIPI CSI-2 link frequency. PPL can vary while link frequency keeps the same. If PPL is wrong, the h_blank = PPL - width is also wrong then FPS control is inaccurate. This patch fix h_blank by: 1. Move PPL from link_freq_config to ov13b10_mode 2. Add PPL value for different modes 3. Use PPL from mode to calculate h_blank Signed-off-by: Bingbu Cao <bingbu.cao@intel.com> Signed-off-by: Hao Yao <hao.yao@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06MAINTAINERS: adjust file entry in OMNIVISION OV7670 SENSOR DRIVERLukas Bulwahn1-1/+1
Commit 59b24c0047a2 ("media: dt-bindings: media: i2c: align filenames format with standard") renames the files in Documentation/devicetree/bindings/media/i2c/, but misses to adjust the file entry in OMNIVISION OV7670 SENSOR DRIVER. Adjust the file entry after this renaming. Signed-off-by: Lukas Bulwahn <lukas.bulwahn@redhat.com> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Reviewed-by: David Heidelberg <david@ixit.cz> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: i2c: rdacm2x: Make use of device propertiesAndy Shevchenko2-8/+6
Convert the module to be property provider agnostic and allow it to be used on non-OF platforms. Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: raspberrypi: rp1-cfe: Remove (explicitly) unused headerAndy Shevchenko1-1/+0
The fwnode.h is not supposed to be used by the drivers as it has the definitions for the core parts for different device property provider implementations. Drop it. Note, that fwnode API for drivers is provided in property.h which is included here. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: i2c: ds90ub9x3: Remove (explicitly) unused headerAndy Shevchenko2-2/+0
The fwnode.h is not supposed to be used by the drivers as it has the definitions for the core parts for different device property provider implementations. Drop it. Note, that fwnode API for drivers is provided in property.h which is included here. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: i2c: max9671x: Remove (explicitly) unused headerAndy Shevchenko2-2/+2
The fwnode.h is not supposed to be used by the drivers as it has the definitions for the core parts for different device property provider implementations. Drop it. Note, that fwnode API for drivers is provided in property.h which is included here. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Julien Massot <julien.massot@collabora.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: ccs-pll: Print a debug message when VT tree calculation failsLaurent Pinchart1-2/+2
When the VT tree calculation fails to find a valid pre-divider, the ccs_pll_calculate_vt_tree() function returns an error silently, and the caller doesn't print any message either. This makes debugging PLL calculation issues more difficult. Add a debug message to report the issue, and amend the corresponding message for the OP tree to mention "OP". Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: ov8856: suppress probe deferral errorsJohan Hovold1-6/+3
Probe deferral should not be logged as an error: ov8856 24-0010: failed to get HW configuration: -517 Use dev_err_probe() for the clock lookup and drop the (mostly) redundant dev_err() from sensor probe() to suppress it. Note that errors during regulator lookup is already correctly logged using dev_err_probe(). Fixes: 0c2c7a1e0d69 ("media: ov8856: Add devicetree support") Cc: stable@vger.kernel.org Signed-off-by: Johan Hovold <johan+linaro@kernel.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: ov5675: suppress probe deferral errorsJohan Hovold1-4/+1
Probe deferral should not be logged as an error: ov5675 24-0010: failed to get HW configuration: -517 Drop the (mostly) redundant dev_err() from sensor probe() to suppress it. Note that errors during clock and regulator lookup are already correctly logged using dev_err_probe(). Fixes: 49d9ad719e89 ("media: ov5675: add device-tree support and support runtime PM") Cc: stable@vger.kernel.org Signed-off-by: Johan Hovold <johan+linaro@kernel.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: i2c: change lt6911uxe irq_gpio name to "hpd"Dongcheng Yan1-2/+2
Lt6911uxe is used in IPU6 / x86 platform, worked with an out-of-tree int3472 patch and upstream intel/ipu6 before. It is only used on ACPI platforms till now and there are no devicetree bindings for this driver. The upstream int3472 driver uses "hpd" instead of "readystat" now. this patch updates the irq_gpio name to "hpd" accordingly, so that mere users can now use the upstream version directly without relying on out-of-tree int3472 pin support. The new name "hpd" (Hotplug Detect) aligns with common naming conventions used in other drivers(like adv7604) and documentation. Fixes: e49563c3be09d4 ("media: i2c: add lt6911uxe hdmi bridge driver") Cc: stable@vger.kernel.org Signed-off-by: Dongcheng Yan <dongcheng.yan@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: dt-bindings: sony,imx415: update maintainer e-mail addressMichael Riesch2-2/+2
I recently left WolfVision but would like to continue to maintain the Sony IMX415 image sensor driver. Update my e-mail address. Signed-off-by: Michael Riesch <michael.riesch@collabora.com> Acked-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: mailmap: add entry for Michael RieschMichael Riesch1-0/+1
After five interesting years, I left WolfVision and started to work for Collabora. Add a corresponding mailmap entry. Signed-off-by: Michael Riesch <michael.riesch@collabora.com> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: intel/ipu6: Remove unused ipu6_isys_csi2_pdataStanislaw Gruszka1-2/+0
The pointer to ipu6_isys_csi2_pdata is not used. Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: imx335: Use correct register width for HNUMUmang Jain1-1/+1
CCI_REG_HNUM should be using CCI_REG16_LE() instead of CCI_REG8() as HNUM spans from 0x302e[0:7] to 0x302f[0:3]. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Fixes: 8f0926dba799 ("media: imx335: Use V4L2 CCI for accessing sensor registers") Cc: stable@vger.kernel.org Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: imx335: Add MAINTAINER entryKieran Bingham1-1/+2
In commit 5b0e91fd477d ("media: imx335: Orphan the driver"), the IMX335 driver was marked as an orphan. I have several of these sensors, tested on Raspberry Pi and NXP systems, and the full datasheet. Add myself as a maintainer for the IMX335. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: i2c: Add driver for ST VD55G1 camera sensorBenjamin Mugnier4-0/+1979
The VD55G1 is a monochrome global shutter camera with a 804x704 maximum resolution with RAW8 and RAW10 bytes per pixel. The driver supports : - Auto exposure from the sensor, or manual exposure mode - HDR subtraction mode, allowing edge detection and background removal - Auto exposure cold start, using configuration values from last stream to start the next one - LED GPIOs for illumination - Most standard camera sensor features (hblank, vblank, test patterns, again, dgain, hflip, vflip, auto exposure bias, etc.) Add driver source code to MAINTAINERS file. Signed-off-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: dt-bindings: Add ST VD55G1 camera sensorBenjamin Mugnier2-0/+140
Also update MAINTAINERS file accordingly. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: i2c: Add driver for ST VD56G3 camera sensorSylvain Petinot4-0/+1600
Add V4L2 sub-device driver for STMicroelectronics VD56G3 camera sensor. This is a 1.5 M pixel global shutter image sensor with an active array size of 1124 x 1364 (portrait orientation). The driver supports Mono (VD56G3) and Color (VD66GY) variants. Signed-off-by: Sylvain Petinot <sylvain.petinot@foss.st.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: dt-bindings: Add ST VD56G3 camera sensorSylvain Petinot2-0/+146
Add devicetree bindings Documentation for ST VD56G3 & ST VD66GY camera sensors. Update MAINTAINERS file. Signed-off-by: Sylvain Petinot <sylvain.petinot@foss.st.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: i2c: Add Omnivision OV02C10 sensor driverHeimir Thor Sverrisson4-0/+1032
Add a new driver for the Omnivision OV02C10 camera sensor. This is based on the out of tree driver by Hao Yao <hao.yao@intel.com> from: https://github.com/intel/ipu6-drivers/blob/master/drivers/media/i2c/ov02c10.c This has been tested on a Dell XPS 9440 together with the IPU6 isys CSI driver and the libcamera software ISP code. Tested-by: Ingvar Hagelund <ingvar@redpill-linpro.com> # Dell XPS 9340 Tested-by: Heimir Thor Sverrisson <heimir.sverrisson@gmail.com> # Dell XPS 9440 Signed-off-by: Heimir Thor Sverrisson <heimir.sverrisson@gmail.com> Co-developed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Co-developed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Tested-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> # Dell XPS 9340 Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-05-06media: dt-bindings: Add OmniVision OV02C10Bryan O'Donoghue1-4/+43
Extend the ov02e10 bindings yaml to describe the ov02c10 sensor which has the same bindings with a different compat string and different i2c address only. Other differences in sensor capabilities exist but are not expressed in devicetree. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> [hverkuil: fix typos: 0V02C10 -> OV02C10] [hverkuil: fix type: Ominivision -> OmniVision]
2025-05-05media: atomisp: Remove atomisp-mt9m114 driverHans de Goede4-3393/+0
The "media: atomisp: Add support for sensors with a separate ISP v4l2_subdev" combined with some pending drivers/media/i2c/mt9m114.c changes makes the atomisp work nicely with the standard V4L2 mt9m114.c driver, avoiding the need for the atomisp specific atomisp-mt9m114 driver. The normal driver actually works better since the atomisp-mt9m114 driver does not have working exposure control, leading to a much too dark image. Remove the no longer necessary atomisp-mt9m114 driver. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Andy Shevchenko <andy@kernel.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2025-05-05media: atomisp: Add support for sensors with a separate ISP v4l2_subdevHans de Goede4-11/+65
Some sensors have an ISP inside the sensor which the sensor driver models as a separate v4l2-subdev, like the mt9m114 sensor-driver does. Since the atomisp driver emulates a standard /dev/video# v4l2-device without requiring the application to be aware of media-controller centric /dev/video# devices this requires some special handling in the driver. Add support for this setup to the atomisp driver. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Andy Shevchenko <andy@kernel.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2025-05-05media: atomisp: Avoid deadlock with sensor subdevs with state_lock setHans de Goede1-2/+9
When a (sensor) v4l2_subdev has its state_lock member set to non NULL, then all v4l2_subdev_state-s for the sensor share the same lock. atomisp_init_sensor() calls v4l2_subdev_lock_and_get_active_state() and then later on also tries to lock a separate v4l2_subdev_state used for try calls (rather then changing the active state), while still holding the active state lock. Since this try v4l2_subdev_state shares a lock with the active state this results in a deadlock. Skip locking try_sd_state when sensor->state_lock is set to avoid this. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Andy Shevchenko <andy@kernel.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2025-05-05media: atomisp: Rename camera to sensorHans de Goede6-45/+46
The camera v4l2_subdev pointer in struct atomisp_input_subdev points to an image sensor, rename camera to sensor to make this more clear. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Andy Shevchenko <andy@kernel.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2025-05-05media: atomisp: Remove compat ioctl32 header fileHardevsinh Palaniya2-248/+0
The atomisp_compat_ioctl32() function was deleted in commit b4c650f1af68 ("media: atomisp: remove compat_ioctl32 code"), so this header file is no longer needed. Additionally, the definition of atomisp_compat_ioctl32() in atomisp_ioctl.h is unused as well. Delete the declaration from the header. Signed-off-by: Hardevsinh Palaniya <hardevsinh.palaniya@siliconsignals.io> Reviewed-by: Andy Shevchenko <andy@kernel.org> Link: https://lore.kernel.org/r/20250421052804.11721-1-hardevsinh.palaniya@siliconsignals.io Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2025-05-05media: atomisp: gmin: Fix indentation to use TAB instead of spacesThomas Andreatta1-2/+2
Fix indentation to use TAB instead of spaces. Signed-off-by: Thomas Andreatta <thomasandreatta2000@gmail.com> Link: https://lore.kernel.org/r/20250426193033.483124-1-thomas.andreatta2000@gmail.com Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2025-05-05media: atomisp: gmin: Remove duplicate NULL testAbraham Samuel Adekunle1-1/+1
When a value has been tested for NULL in an expression, a second NULL test on the same value in another expression is unnecessary when the value has not been assigned NULL. Remove unnecessary duplicate NULL tests on the same value that has previously been NULL tested. Found by Coccinelle. Signed-off-by: Abraham Samuel Adekunle <abrahamadekunle50@gmail.com> Link: https://lore.kernel.org/r/26990d4a9d4419f9d4155a40595bc213acb671a0.1743685415.git.abrahamadekunle50@gmail.com Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>