summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/imx
diff options
context:
space:
mode:
authorMaxime Ripard <mripard@kernel.org>2026-02-23 10:09:45 +0100
committerMaxime Ripard <mripard@kernel.org>2026-02-23 10:09:45 +0100
commitc17ee635fd3a482b2ad2bf5e269755c2eae5f25e (patch)
treee3f147462d8a9fd0cf2312c8cd3c5a94da15c3e4 /drivers/gpu/drm/imx
parent803ec1faf7c1823e6e3b1f2aaa81be18528c9436 (diff)
parent6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f (diff)
Merge drm/drm-fixes into drm-misc-fixes
7.0-rc1 was just released, let's merge it to kick the new release cycle. Signed-off-by: Maxime Ripard <mripard@kernel.org>
Diffstat (limited to 'drivers/gpu/drm/imx')
-rw-r--r--drivers/gpu/drm/imx/dc/dc-crtc.c12
-rw-r--r--drivers/gpu/drm/imx/dcss/dcss-plane.c2
-rw-r--r--drivers/gpu/drm/imx/ipuv3/dw_hdmi-imx.c7
-rw-r--r--drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c4
-rw-r--r--drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c4
-rw-r--r--drivers/gpu/drm/imx/ipuv3/parallel-display.c4
6 files changed, 15 insertions, 18 deletions
diff --git a/drivers/gpu/drm/imx/dc/dc-crtc.c b/drivers/gpu/drm/imx/dc/dc-crtc.c
index 31d3a982deaf..608c610662dc 100644
--- a/drivers/gpu/drm/imx/dc/dc-crtc.c
+++ b/drivers/gpu/drm/imx/dc/dc-crtc.c
@@ -300,7 +300,7 @@ dc_crtc_atomic_disable(struct drm_crtc *crtc, struct drm_atomic_state *state)
drm_atomic_get_new_crtc_state(state, crtc);
struct dc_drm_device *dc_drm = to_dc_drm_device(crtc->dev);
struct dc_crtc *dc_crtc = to_dc_crtc(crtc);
- int idx, ret;
+ int idx;
if (!drm_dev_enter(crtc->dev, &idx))
goto out;
@@ -313,16 +313,10 @@ dc_crtc_atomic_disable(struct drm_crtc *crtc, struct drm_atomic_state *state)
dc_fg_disable_clock(dc_crtc->fg);
/* request pixel engine power-off as plane is off too */
- ret = pm_runtime_put(dc_drm->pe->dev);
- if (ret)
- dc_crtc_err(crtc, "failed to put DC pixel engine RPM: %d\n",
- ret);
+ pm_runtime_put(dc_drm->pe->dev);
/* request display engine power-off when CRTC is disabled */
- ret = pm_runtime_put(dc_crtc->de->dev);
- if (ret < 0)
- dc_crtc_err(crtc, "failed to put DC display engine RPM: %d\n",
- ret);
+ pm_runtime_put(dc_crtc->de->dev);
drm_dev_exit(idx);
diff --git a/drivers/gpu/drm/imx/dcss/dcss-plane.c b/drivers/gpu/drm/imx/dcss/dcss-plane.c
index 0b99b407ac0a..c014ef70dfd1 100644
--- a/drivers/gpu/drm/imx/dcss/dcss-plane.c
+++ b/drivers/gpu/drm/imx/dcss/dcss-plane.c
@@ -381,7 +381,7 @@ struct dcss_plane *dcss_plane_init(struct drm_device *drm,
if (zpos > 2)
return ERR_PTR(-EINVAL);
- dcss_plane = kzalloc(sizeof(*dcss_plane), GFP_KERNEL);
+ dcss_plane = kzalloc_obj(*dcss_plane);
if (!dcss_plane) {
DRM_ERROR("failed to allocate plane\n");
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imx/ipuv3/dw_hdmi-imx.c b/drivers/gpu/drm/imx/ipuv3/dw_hdmi-imx.c
index 07e5f96202d4..398f3cce5532 100644
--- a/drivers/gpu/drm/imx/ipuv3/dw_hdmi-imx.c
+++ b/drivers/gpu/drm/imx/ipuv3/dw_hdmi-imx.c
@@ -241,7 +241,7 @@ static int dw_hdmi_imx_probe(struct platform_device *pdev)
if (IS_ERR(hdmi->hdmi))
return PTR_ERR(hdmi->hdmi);
- hdmi->bridge = of_drm_find_bridge(np);
+ hdmi->bridge = of_drm_find_and_get_bridge(np);
if (!hdmi->bridge) {
dev_err(hdmi->dev, "Unable to find bridge\n");
dw_hdmi_remove(hdmi->hdmi);
@@ -249,8 +249,10 @@ static int dw_hdmi_imx_probe(struct platform_device *pdev)
}
ret = component_add(&pdev->dev, &dw_hdmi_imx_ops);
- if (ret)
+ if (ret) {
+ drm_bridge_put(hdmi->bridge);
dw_hdmi_remove(hdmi->hdmi);
+ }
return ret;
}
@@ -260,6 +262,7 @@ static void dw_hdmi_imx_remove(struct platform_device *pdev)
struct imx_hdmi *hdmi = platform_get_drvdata(pdev);
component_del(&pdev->dev, &dw_hdmi_imx_ops);
+ drm_bridge_put(hdmi->bridge);
dw_hdmi_remove(hdmi->hdmi);
}
diff --git a/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c b/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
index cf7b02b2d52c..a18b9d1a68b6 100644
--- a/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
+++ b/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
@@ -117,7 +117,7 @@ static void imx_drm_crtc_reset(struct drm_crtc *crtc)
kfree(to_imx_crtc_state(crtc->state));
crtc->state = NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state);
if (state)
__drm_atomic_helper_crtc_reset(crtc, &state->base);
}
@@ -126,7 +126,7 @@ static struct drm_crtc_state *imx_drm_crtc_duplicate_state(struct drm_crtc *crtc
{
struct imx_crtc_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state);
if (!state)
return NULL;
diff --git a/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c b/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c
index db50eccea0ca..0ea70b8fd743 100644
--- a/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c
+++ b/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c
@@ -308,7 +308,7 @@ static void ipu_plane_state_reset(struct drm_plane *plane)
plane->state = NULL;
}
- ipu_state = kzalloc(sizeof(*ipu_state), GFP_KERNEL);
+ ipu_state = kzalloc_obj(*ipu_state);
if (ipu_state)
__drm_atomic_helper_plane_reset(plane, &ipu_state->base);
@@ -322,7 +322,7 @@ ipu_plane_duplicate_state(struct drm_plane *plane)
if (WARN_ON(!plane->state))
return NULL;
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state);
if (state)
__drm_atomic_helper_plane_duplicate_state(plane, &state->base);
diff --git a/drivers/gpu/drm/imx/ipuv3/parallel-display.c b/drivers/gpu/drm/imx/ipuv3/parallel-display.c
index 590120a33fa0..4ce772bc3cb3 100644
--- a/drivers/gpu/drm/imx/ipuv3/parallel-display.c
+++ b/drivers/gpu/drm/imx/ipuv3/parallel-display.c
@@ -66,7 +66,7 @@ imx_pd_bridge_atomic_get_output_bus_fmts(struct drm_bridge *bridge,
}
*num_output_fmts = 1;
- output_fmts = kmalloc(sizeof(*output_fmts), GFP_KERNEL);
+ output_fmts = kmalloc_obj(*output_fmts);
if (!output_fmts)
return NULL;
@@ -117,7 +117,7 @@ imx_pd_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
}
*num_input_fmts = 1;
- input_fmts = kmalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kmalloc_obj(*input_fmts);
if (!input_fmts)
return NULL;