| 062ae1d0 | 11-Mar-2026 |
Jacopo Mondi <jacopo.mondi@ideasonboard.com> |
media: mali-c55: Bypass Purple Fringe Correction
The Purple Fringe Correction module is enabled by default with a POR configuration which might not be correct for the lens/sensor combination in use.
media: mali-c55: Bypass Purple Fringe Correction
The Purple Fringe Correction module is enabled by default with a POR configuration which might not be correct for the lens/sensor combination in use.
If the Purple Fringe Correction module has to be used, it needs to be supported in the driver's uAPI and properly configured by userspace.
As the driver doesn't support it at the moment, bypass it by default.
Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
show more ...
|
| 762ec66e | 11-Mar-2026 |
Jacopo Mondi <jacopo.mondi@ideasonboard.com> |
media: mali-c55: Bypass the Iridix Tonemap engine
The Iridix Tonemap engine, if not bypassed, applies a digital gain in order to compensate under-exposed images.
This however breaks the exposure an
media: mali-c55: Bypass the Iridix Tonemap engine
The Iridix Tonemap engine, if not bypassed, applies a digital gain in order to compensate under-exposed images.
This however breaks the exposure and gain regulation performed on the sensor.
If the Iridix Tonemap has to be used, it need to be supported in the ISP uAPI and properly configured by userspace.
As the driver doesn't support it at the moment, bypass it by default.
Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
show more ...
|
| db7faf48 | 12-Feb-2026 |
Daniel Scally <dan.scally@ideasonboard.com> |
media: mali-c55: Fix Iridix bypass macros
The Mali C55 Iridix block has a digital gain function and tone mapping function, whose enablement is controlled by two different bits in the BYPASS_3 regist
media: mali-c55: Fix Iridix bypass macros
The Mali C55 Iridix block has a digital gain function and tone mapping function, whose enablement is controlled by two different bits in the BYPASS_3 register.
Unfortunately, the "Gain" and "Tonemap" bypass bit definitions are the wrong way around. Swap them.
Cc: stable@vger.kernel.org Fixes: d5f281f3dd29 ("media: mali-c55: Add Mali-C55 ISP driver") Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com> Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
show more ...
|
| 26ad493b | 19-Jan-2026 |
Jacopo Mondi <jacopo.mondi@ideasonboard.com> |
media: mali-c55: Fully reset the ISP configuration
The Mali C55 driver uses an auto-suspend delay of 2000 milli-seconds.
As the delay is quite large, it is certainly possible that two consecutive c
media: mali-c55: Fully reset the ISP configuration
The Mali C55 driver uses an auto-suspend delay of 2000 milli-seconds.
As the delay is quite large, it is certainly possible that two consecutive calls to enable_streams() do not go through a suspend of the peripheral, meaning we cannot rely on POW register values for the ISP configuration.
To prevent a streaming session to be initialized with settings from the previous one, reset the full ISP configuration to know state disabling or bypassing all the ISP blocks the driver supports.
Cc: stable@vger.kernel.org Fixes: d5f281f3dd29 ("media: mali-c55: Add Mali-C55 ISP driver") Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
show more ...
|
| d5c24b71 | 19-Jan-2026 |
Jacopo Mondi <jacopo.mondi@ideasonboard.com> |
media: mali-c55: Initialize the ISP in enable_streams()
The Mali C55 driver initializes the ISP in two points:
1) At probe time it disables ISP blocks by configuring them in bypass mode 2) At en
media: mali-c55: Initialize the ISP in enable_streams()
The Mali C55 driver initializes the ISP in two points:
1) At probe time it disables ISP blocks by configuring them in bypass mode 2) At enable_streams() it initializes the crop rectangles and the image processing pipeline using the current image format
However, as ISP blocks are configured by userspace, if their configuration is not reset, from the second enable_streams() call onwards the ISP configuration will depend on the previous streaming session configuration.
To re-initialize the ISP completely at enable_streams() time consolidate the ISP block bypass configuration and the image processing path configuration in a single function to be called at enabled_streams() time.
Cc: stable@vger.kernel.org Fixes: d5f281f3dd29 ("media: mali-c55: Add Mali-C55 ISP driver") Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
show more ...
|
| 2f1e8881 | 14-Nov-2025 |
Jacopo Mondi <jacopo.mondi@ideasonboard.com> |
media: mali-c55: Mark pm handlers as __maybe_unused
As the Mali-C55 driver is instrumented to work without depending on CONFIG_PM, mark the two pm_runtime handlers as __maybe_unused to suppress the
media: mali-c55: Mark pm handlers as __maybe_unused
As the Mali-C55 driver is instrumented to work without depending on CONFIG_PM, mark the two pm_runtime handlers as __maybe_unused to suppress the compiler warning when compiling without CONFIG_PM.
Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
show more ...
|
| 1435db44 | 14-Nov-2025 |
Jacopo Mondi <jacopo.mondi@ideasonboard.com> |
media: mali-c55: Assert ISP blocks size correctness
For each supported ISP block type the v4l2-isp framework expects one handler and one block type info.
Static assert that the array of handlers is
media: mali-c55: Assert ISP blocks size correctness
For each supported ISP block type the v4l2-isp framework expects one handler and one block type info.
Static assert that the array of handlers is of the same size of the array of block types info.
Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
show more ...
|
| 5d1f7403 | 11-Nov-2025 |
Daniel Scally <dan.scally@ideasonboard.com> |
media: platform: Add mali-c55 3a stats devnode
Add a new code file to govern the 3a statistics capture node.
On ISP_START, fill the stats buffer by reading out the metering space in the ISP's memor
media: platform: Add mali-c55 3a stats devnode
Add a new code file to govern the 3a statistics capture node.
On ISP_START, fill the stats buffer by reading out the metering space in the ISP's memory. This is done for the non-active config just as the dma transfer of the registers is. To acheive that, move the checking of the current config outside of mali_c55_swap_next_config() so we can use it for both functions.
Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Acked-by: Nayden Kanchev <nayden.kanchev@arm.com> Co-developed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org> [hverkuil: remove deprecated vb2_ops_wait_prepare/finish callbacks]
show more ...
|