[PATCH AUTOSEL 6.15 71/80] imx8m-blk-ctrl: set ISI panic write hurry level
Sasha Levin
sashal at kernel.org
Sun Aug 3 17:27:38 PDT 2025
From: Krzysztof Hałasa <khalasa at piap.pl>
[ Upstream commit c01fba0b4869cada5403fffff416cd1675dba078 ]
Apparently, ISI needs cache settings similar to LCDIF.
Otherwise we get artefacts in the image.
Tested on i.MX8MP.
Signed-off-by: Krzysztof Hałasa <khalasa at piap.pl>
Link: https://lore.kernel.org/r/m3ldr69lsw.fsf@t19.piap.pl
Signed-off-by: Ulf Hansson <ulf.hansson at linaro.org>
Signed-off-by: Sasha Levin <sashal at kernel.org>
---
LLM Generated explanations, may be completely bogus:
Based on my analysis of the commit and the surrounding code:
**Backport Status: YES**
This commit should be backported to stable kernel trees for the
following reasons:
1. **Fixes a real user-visible bug**: The commit fixes image artifacts
in the ISI (Image Sensor Interface) on i.MX8MP. This is a functional
bug that affects users of camera/image capture functionality.
2. **Small and contained change**: The fix adds only 10 lines of code
that set ISI panic write hurry levels in the
`imx8mp_media_power_notifier` function. It's a minimal change
confined to the i.MX8MP media block controller.
3. **Follows established pattern**: The fix mirrors the existing LCDIF
panic read hurry level fix (commit 06a9a229b159) that was already
applied for display FIFO underflow issues. The ISI needs similar
cache settings to prevent artifacts.
4. **Hardware-specific fix**: The change only affects i.MX8MP hardware
and is guarded by the platform-specific power notifier function,
minimizing risk to other platforms.
5. **Clear problem and solution**: The commit message clearly states the
problem (image artifacts) and the solution (setting ISI panic write
hurry levels similar to LCDIF), making it a straightforward hardware
configuration fix.
6. **No architectural changes**: This is purely a hardware register
configuration change during power-on sequences, not introducing new
features or changing kernel architecture.
The fix addresses a hardware-specific issue where the ISI (Image Sensor
Interface) needs proper cache/priority settings to avoid image
artifacts, similar to how the LCDIF (display interface) needs such
settings to avoid display FIFO underflow. This is an important fix for
anyone using camera functionality on i.MX8MP platforms.
drivers/pmdomain/imx/imx8m-blk-ctrl.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/pmdomain/imx/imx8m-blk-ctrl.c b/drivers/pmdomain/imx/imx8m-blk-ctrl.c
index 912802b5215b..5c83e5599f1e 100644
--- a/drivers/pmdomain/imx/imx8m-blk-ctrl.c
+++ b/drivers/pmdomain/imx/imx8m-blk-ctrl.c
@@ -665,6 +665,11 @@ static const struct imx8m_blk_ctrl_data imx8mn_disp_blk_ctl_dev_data = {
#define LCDIF_1_RD_HURRY GENMASK(15, 13)
#define LCDIF_0_RD_HURRY GENMASK(12, 10)
+#define ISI_CACHE_CTRL 0x50
+#define ISI_V_WR_HURRY GENMASK(28, 26)
+#define ISI_U_WR_HURRY GENMASK(25, 23)
+#define ISI_Y_WR_HURRY GENMASK(22, 20)
+
static int imx8mp_media_power_notifier(struct notifier_block *nb,
unsigned long action, void *data)
{
@@ -694,6 +699,11 @@ static int imx8mp_media_power_notifier(struct notifier_block *nb,
regmap_set_bits(bc->regmap, LCDIF_ARCACHE_CTRL,
FIELD_PREP(LCDIF_1_RD_HURRY, 7) |
FIELD_PREP(LCDIF_0_RD_HURRY, 7));
+ /* Same here for ISI */
+ regmap_set_bits(bc->regmap, ISI_CACHE_CTRL,
+ FIELD_PREP(ISI_V_WR_HURRY, 7) |
+ FIELD_PREP(ISI_U_WR_HURRY, 7) |
+ FIELD_PREP(ISI_Y_WR_HURRY, 7));
}
return NOTIFY_OK;
--
2.39.5
More information about the linux-arm-kernel
mailing list