Maxime Ripard
00bf0b174b
drm/bridge: samsung-dsim: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-30-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:32 +02:00
Maxime Ripard
3fb8e50d97
drm/bridge: parade-ps8640: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Acked-by: Douglas Anderson <dianders@chromium.org >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-29-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:31 +02:00
Maxime Ripard
73082d55cd
drm/bridge: panel: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-28-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:31 +02:00
Maxime Ripard
ec5efb1d79
drm/bridge: nwl-dsi: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-27-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:30 +02:00
Maxime Ripard
61d8bc9976
drm/bridge: lvds-codec: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-26-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:30 +02:00
Maxime Ripard
d846b73355
drm/bridge: lontium-lt9611: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-25-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:29 +02:00
Maxime Ripard
0aa231ab6f
drm/bridge: lontium-lt9211: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-24-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:28 +02:00
Maxime Ripard
c9116e043b
drm/bridge: ite-it66121: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-23-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:28 +02:00
Maxime Ripard
e8cdb0472b
drm/bridge: ite-it6505: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-22-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:27 +02:00
Maxime Ripard
19d03f866b
drm/bridge: ite-it6263: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Liu Ying <victor.liu@nxp.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-21-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:27 +02:00
Maxime Ripard
61ce300f25
drm/bridge: inno-hdmi: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-20-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:26 +02:00
Maxime Ripard
cd5dc64f71
drm/bridge: imx8qxp-pxl2dpi: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Liu Ying <victor.liu@nxp.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-19-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:26 +02:00
Maxime Ripard
28e0880593
drm/bridge: imx8qxp-pixel-link: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Liu Ying <victor.liu@nxp.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-18-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:25 +02:00
Maxime Ripard
af2b86891d
drm/bridge: imx8qxp-pixel-combiner: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Liu Ying <victor.liu@nxp.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-17-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:25 +02:00
Maxime Ripard
54288acbc4
drm/bridge: imx8qxp-ldb: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Liu Ying <victor.liu@nxp.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-16-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:24 +02:00
Maxime Ripard
42f7c9697a
drm/bridge: imx8qm-ldb: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Liu Ying <victor.liu@nxp.com >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-15-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:23 +02:00
Maxime Ripard
6a5f65fd4b
drm/bridge: imx8mp-hdmi-pvi: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Liu Ying <victor.liu@nxp.com >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-14-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:23 +02:00
Maxime Ripard
66311c1576
drm/bridge: fsl-ldb: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-13-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:22 +02:00
Maxime Ripard
7fadc70e22
drm/bridge: display-connector: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-12-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:22 +02:00
Maxime Ripard
24e2c110f8
drm/bridge: chipone-icn6211: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-11-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:21 +02:00
Maxime Ripard
67f71617cb
drm/bridge: anx7625: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-10-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:21 +02:00
Maxime Ripard
b1715243bc
drm/bridge: analogix_dp: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-9-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:20 +02:00
Maxime Ripard
891d2fd684
drm/bridge: adv7511: Switch to atomic_create_state
...
The drm_bridge_funcs.atomic_reset callback and its
drm_atomic_helper_bridge_reset() helper are deprecated.
Switch to the atomic_create_state callback and its
drm_atomic_helper_bridge_create_state() counterpart.
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-8-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:19 +02:00
Maxime Ripard
20df722d6b
drm/atomic-state-helper: Add drm_atomic_helper_bridge_create_state()
...
The drm_atomic_helper_bridge_reset() helper is deprecated in favour
of the new atomic_create_state callback.
Add drm_atomic_helper_bridge_create_state() as the counterpart helper
for this new callback, and make drm_atomic_helper_bridge_reset() call
this new helper.
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-7-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:19 +02:00
Maxime Ripard
376542696c
drm/bridge: Add new atomic_create_state callback
...
Commit 47b5ac7daa ("drm/atomic: Add new atomic_create_state callback
to drm_private_obj") introduced a new pattern for allocating drm object
states: atomic_create_state, a dedicated hook that allocates and
initializes a pristine state without any side effect.
The bridge atomic_reset callback is already fallible and in practice
only allocates and initializes state without touching hardware.
However, the reset name does not make this contract clear: callers
and implementers cannot tell from the name alone whether the hardware
will be affected or when the hook is safe to call.
Add an atomic_create_state callback to drm_bridge_funcs to make the
contract explicit: allocate a pristine state, initialize it, no side
effects. The core calls it when available, falling back to
atomic_reset otherwise.
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-6-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:18 +02:00
Maxime Ripard
16710bcb96
drm/atomic-state-helper: Drop memset from __drm_atomic_helper_bridge_state_init()
...
__drm_atomic_helper_bridge_state_init() is always called on a freshly
kzalloc-ed state, so the memset is redundant.
Drop it and document the expectation that the state is already zeroed.
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-5-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:18 +02:00
Maxime Ripard
c8a25a2d85
drm/atomic-state-helper: Reorder __drm_atomic_helper_bridge_state_init() arguments
...
The convention for state init helpers is to pass the state pointer
as the first argument and the object pointer second.
__drm_atomic_helper_bridge_state_init() has them in the opposite
order. Swap the arguments to follow the convention, and update the
cdns-mhdp8546 caller.
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-4-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:17 +02:00
Maxime Ripard
e723909e9d
drm/atomic-state-helper: Rename __drm_atomic_helper_bridge_reset()
...
__drm_atomic_helper_bridge_reset() is used to initialize a
newly allocated drm_bridge_state, and is being typically called by the
drm_bridge_funcs.atomic_reset implementation.
Since we want to consolidate DRM objects state allocation around the
atomic_create_state callback that will only allocate and initialize a
new drm_bridge_state instance, we will need to call
__drm_atomic_helper_bridge_reset() from both the atomic_reset and
atomic_create_state hooks.
To avoid any confusion, we can thus rename
__drm_atomic_helper_bridge_reset() to
__drm_atomic_helper_bridge_state_init().
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-3-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:17 +02:00
Maxime Ripard
30ac1d4034
drm/bridge: cdns-mhdp8546: Return an error pointer on allocation failure
...
The drm_bridge_funcs.atomic_reset documentation states that the hook
must return either a valid drm_bridge_state object or an ERR_PTR().
The cdns_mhdp_bridge_atomic_reset() callback returns NULL when the
allocation of its state fails, violating this contract.
Return ERR_PTR(-ENOMEM) instead.
Fixes: fb43aa0acd ("drm: bridge: Add support for Cadence MHDP8546 DPI/DP bridge")
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-2-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:16 +02:00
Maxime Ripard
79ac5c68f1
drm/bridge: cdns-dsi: Return an error pointer on allocation failure
...
The drm_bridge_funcs.atomic_reset documentation states that the hook
must return either a valid drm_bridge_state object or an ERR_PTR().
The cdns_dsi_bridge_atomic_reset() callback returns NULL when the
allocation of its state fails, violating this contract.
Return ERR_PTR(-ENOMEM) instead.
Fixes: a53d987756 ("drm/bridge: cdns-dsi: Move DSI mode check to _atomic_check()")
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com > # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-1-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2026-06-22 11:24:07 +02:00
Tvrtko Ursulin
a80d12eafa
drm/nouveau: Simplify nouveau_cli_work
...
Lets simplify and make clearer the fence lock cycling workaround in
nouveau_cli_work().
The reason for the workaround is that the worker processes the list of
pending work items (and so fence callbacks) opportunisticaly, while
dma_fence_is_signaled() returns true as soon as a the fence is signaled.
It is therefore not allowed for the opportunistic processing to free the
work item, since the fence callback processing can still be in the process
of dereferencing work->cb.
This wasn't very clear in the code so clarify it with a nice comment.
In the process we replace the somewhat interleaved and not very readable
nouveau_cli_work_ready() helper with a direct dma_fence_is_signaled, which
is even faster since it removes the lock cycling from the unsignaled fence
path.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com >
Cc: Philipp Stanner <phasta@kernel.org >
Cc: Lyude Paul <lyude@redhat.com >
Cc: Danilo Krummrich <dakr@kernel.org >
Cc: nouveau@lists.freedesktop.org
Link: https://patch.msgid.link/20260615092607.80917-1-tvrtko.ursulin@igalia.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org >
2026-06-21 16:44:54 +02:00
Dave Airlie
d008141ed4
nouveau/vmm: fix another SPT/LPT race
...
We've had an unknown Turing issue for a while with page faults since
large pages and compression.
I've got a patch series that syncs all our L2 handling with ogkm and it
made this fault happen more.
After writing a bunch of debugging patches, I spotted an invalid LPT
entry where there should have been a valid one.
A 64K MAP succeeds on a range, but a subsequent SPT put drops SPT refs
across multiple ranges,
We shouldn't assume all ranges where SPTEs go away will have the same
sparse/invalid/valid state, just iterate over each instead and do the
right thing.
Cc: stable@vger.kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com >
Fixes: d19512f5ab ("nouveau/vmm: start tracking if the LPT PTE is valid. (v6)")
Link: https://patch.msgid.link/20260615044737.3419585-1-airlied@gmail.com
[ Properly format commit message. - Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org >
2026-06-21 16:05:36 +02:00
Dave Airlie
5e17160d41
nouveau/gem: reserve the bo in the info ioctl around the vma lookup
...
In the non-uvmm path, there could be a race between the info lookup
finding the vma, and the gem close path closing the vma leading
to a use-after-free.
Spotted with the help of Opus 4.6.
Signed-off-by: Dave Airlie <airlied@redhat.com >
Fixes: e758a31119 ("drm/nouveau: fixup gem_info ioctl to return client-specific bo virtual")
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260612020658.3176270-1-airlied@gmail.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org >
2026-06-21 15:42:11 +02:00
Icenowy Zheng
98b46e693b
drm/panel: himax-hx83121a: add backlight regulator support
...
The backlight, when managed by the panel controller, could be powered by
an external regulator, and shutting down the regulator could power off
the backlight.
Add support for such a regulator. It's powered off when the backlight is
0 (either by setting brightness to 0 or setting bl_power), and powered
on when the backlight should be operating.
Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn >
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org >
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org >
Link: https://patch.msgid.link/20260608162622.403713-3-zhengxingda@iscas.ac.cn
2026-06-18 15:53:23 +02:00
Icenowy Zheng
ae8dbbe895
drm/panel: himax-hx83121a: pass the panel pointer when creating BL
...
As backlight powering on/off support will be added, more fields of the
panel context will be accessed in the backlight update function.
Pass the whole panel struct instead of the DSI device when creating the
backlight device.
Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn >
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org >
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org >
Link: https://patch.msgid.link/20260608162622.403713-2-zhengxingda@iscas.ac.cn
2026-06-18 15:53:23 +02:00
Icenowy Zheng
b817a59c2a
dt-bindings: display: panel: himax,hx83121a: add optional bl supply
...
When the backlight is managed by the panel controller IC, an external
power rail might be powering the backlight.
Add an optional `bl-supply` property to describe such power rail, thus
allow disabling the backlight.
Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn >
Acked-by: Conor Dooley <conor.dooley@microchip.com >
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org >
Link: https://patch.msgid.link/20260608162622.403713-1-zhengxingda@iscas.ac.cn
2026-06-18 15:53:23 +02:00
Igor Reznichenko
99e9aca83b
drm/panel: Add Ilitek ILI9488 controller driver
...
Add support for Ilitek ILI9488 DSI controller which is used in
FocusLCDs E35GH-I-MW800-CB 320x480 MIPI DSI panel. The mode timing
was adjusted after STM32MP157 testing. The previous 14.256 MHz mode
worked on AM62P, but was awkward for STM32 DSI/LTDC clock synthesis.
Signed-off-by: Igor Reznichenko <igor@reznichenko.net >
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org >
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org >
Link: https://patch.msgid.link/20260617143245.372182-3-igor@reznichenko.net
2026-06-18 15:53:23 +02:00
Igor Reznichenko
532701ad6e
dt-bindings: display: panel: Add Ilitek ILI9488 panel controller
...
Add binding for the Ilitek ILI9488 panel controller which is found on
the FocusLCDs E35GH-I-MW800-CB MIPI DSI panel. Add "focuslcds" to
vendor-prefixes.yaml as it's a brandname and a website
(https://focuslcds.com/ ) for Focus Display Solutions, Inc.
Reviewed-by: Conor Dooley <conor.dooley@microchip.com >
Signed-off-by: Igor Reznichenko <igor@reznichenko.net >
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org >
Link: https://patch.msgid.link/20260617143245.372182-2-igor@reznichenko.net
2026-06-18 15:53:23 +02:00
Teguh Sobirin
f747473a83
drm/panel: Add panel driver for Chipone ICNA35XX based panels
...
This adds support for the ICNA3512 and ICNA3520 DDICs used in both the
AYN Odin 2 Portal and Ayaneo Pocket DS top panel respectively and for
for both the AYN Odin 3 and the AYN Thor top panel respectively.
These all have unique compatibles because the panels themselves are
likely unique hardware with only the ddic's and thus api and driver
handling shared.
Signed-off-by: Teguh Sobirin <teguh@sobir.in >
Co-developed-by: Aaron Kling <webgeek1234@gmail.com >
Signed-off-by: Aaron Kling <webgeek1234@gmail.com >
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org >
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org >
Link: https://patch.msgid.link/20260607-icna35xx-v4-2-64de514add34@gmail.com
2026-06-18 15:53:23 +02:00
Aaron Kling
392313ce84
dt-bindings: display: panel: Add Chipone ICNA3512 OLED driver bindings
...
The Chipone ICNA3512 and ICNA3520 DDICs are high refresh, low power
MIPI-DSI drivers for OLED panels. The icna3512 is used by the Ayn Odin 2
Portal and the Ayaneo Pocket DS top panel while the icna3520 is used by
the Ayn Thor top panel and the Ayn Odin 3.
These ddic's are generally compatible, but some MIPI vendor commands
differ between them, so they are not fully fallback compatible.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com >
Signed-off-by: Aaron Kling <webgeek1234@gmail.com >
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org >
Link: https://patch.msgid.link/20260607-icna35xx-v4-1-64de514add34@gmail.com
2026-06-18 15:53:23 +02:00
Xilin Wu
fc917a533d
dt-bindings: vendor-prefixes: Add AYN Technologies
...
Add an entry for AYN Technologies (https://www.ayntec.com/ )
Signed-off-by: Xilin Wu <wuxilin123@gmail.com >
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com >
Signed-off-by: Aaron Kling <webgeek1234@gmail.com >
Link: https://patch.msgid.link/20260503-ayn-qcs8550-v8-1-d733f5e57446@gmail.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org >
2026-06-18 15:53:12 +02:00
Chris Morgan
a81b4fe69e
drm/panel: anbernic-td4310: Add RG Vita Pro panel
...
The panel used by Anbernic in the RG Vita-Pro is a DSI panel based
on the TD4310 controller IC. It measures approximately 5.5 inches
diagonally and is 1080x1920 in resolution.
Signed-off-by: Chris Morgan <macromorgan@hotmail.com >
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org >
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org >
Link: https://patch.msgid.link/20260610144407.438846-5-macroalpha82@gmail.com
2026-06-18 15:47:13 +02:00
Chris Morgan
0fd6ead827
dt-bindings: display: panel: Add Anbernic TD4310 panel
...
The panel used by Anbernic in the RG Vita-Pro is a DSI panel based
on the TD4310 controller IC. It measures approximately 5.5 inches
diagonally and is 1080x1920 in resolution.
Signed-off-by: Chris Morgan <macromorgan@hotmail.com >
Reviewed-by: Conor Dooley <conor.dooley@microchip.com >
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org >
Link: https://patch.msgid.link/20260610144407.438846-4-macroalpha82@gmail.com
2026-06-18 15:47:12 +02:00
Haikun Zhou
b9e2d5cdaa
drm/panel-edp: Support NV140FHM-N5B and TM156VDXP25
...
The NV140FHM-N5B needs 200ms delays from the backlight on to valid
data, 100ms delays from backlight off to valid data. The TM156VDXP25
needs 100ms delays from the backlight off to valid data.
NV140FHM-N5B raw edid:
00 ff ff ff ff ff ff 00 09 e5 98 0d 00 00 00 00
10 23 01 04 a5 1f 11 78 01 c8 d5 95 5d 59 94 29
23 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 94 37 80 a0 70 38 3c 40 30 20
36 00 35 ae 10 00 00 1a 76 2c 80 a0 70 38 3c 40
30 20 36 00 35 ae 10 00 00 1a 00 00 00 fd 00 28
3c 44 44 0e 01 0a 20 20 20 20 20 20 00 00 00 fc
00 4e 56 31 34 30 46 48 4d 2d 4e 35 42 0a 01 87
70 20 79 02 00 81 00 15 74 1a 00 00 03 01 28 3c
00 00 53 ff 53 ff 3c 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 f9 90
TM156VDXP25 raw edid:
00 ff ff ff ff ff ff 00 51 a1 39 21 00 00 00 00
0d 24 01 04 a5 22 13 78 03 6e 95 99 5b 58 8d 28
21 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 af 2b 80 a0 70 38 28 40 30 20
36 00 58 c2 10 00 00 1a 00 00 00 fd 00 28 3c 43
43 0e 01 0a 20 20 20 20 20 20 00 00 00 fe 00 3d
4c 20 20 20 20 20 20 20 20 20 20 ff 00 00 00 fc
00 54 4d 31 35 36 56 44 58 50 32 35 0a 20 01 ef
70 20 79 02 00 21 00 1d 72 0d 90 07 80 07 38 04
80 95 69 5b 8d 95 8d 87 42 21 02 35 54 b0 5c b0
5c 00 42 12 78 22 00 14 ff 21 02 85 7f 07 9f 00
2f 00 1f 00 37 04 27 00 02 00 05 00 2b 00 0c 27
00 28 3b 00 00 27 00 28 3b 00 00 2e 00 06 00 42
b0 5c b0 5c 81 00 1e 72 1a 00 00 03 01 28 3c 00
00 53 ff 53 ff 3c 00 00 00 00 e3 05 04 00 e6 06
00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 90
Signed-off-by: Haikun Zhou <zhouhaikun5@huaqin.corp-partner.google.com >
[dianders: minor fixups when applying]
Reviewed-by: Douglas Anderson <dianders@chromium.org >
Signed-off-by: Douglas Anderson <dianders@chromium.org >
Link: https://patch.msgid.link/20260617101101.3474684-1-zhouhaikun5@huaqin.corp-partner.google.com
2026-06-17 13:50:14 -07:00
Matthew Brost
941ac10529
drm/ttm: Drop tt->restore after successful restore
...
ttm_pool_restore_and_alloc() can successfully complete the restore
process via ttm_pool_restore_commit(), but tt->restore is not dropped
afterward. As a result, subsequent backup/restore flows observe what
appears to be a completed restore, while in reality shmem handles are
still installed in tt->pages, leading to the stack trace below.
Fix this by freeing and dropping tt->restore in
ttm_pool_restore_and_alloc() upon successful completion of the restore.
20545 [ 309.784531] RIP: 0010:sg_alloc_append_table_from_pages+0x38c/0x490
20547 [ 309.809570] RSP: 0018:ffffc9000623b838 EFLAGS: 00010206
20548 [ 309.814827] RAX: 0000000000001000 RBX: ffff88816e42a160 RCX: 0000000000000000
20549 [ 309.821986] RDX: 0000000000002000 RSI: 0000000000000003 RDI: 0000000000001000
20550 [ 309.829147] RBP: ffff88816e42a168 R08: 0000000000000002 R09: 000000007ffff000
20551 [ 309.836310] R10: ffffc9000623b928 R11: 0000000000000000 R12: 000000007ffff000
20552 [ 309.843471] R13: ffff88815ba5a100 R14: 0000000000000000 R15: 0000000000000001
20553 [ 309.850634] FS: 00007f9ff305e700(0000) GS:ffff888276c94000(0000) knlGS:0000000000000000
20554 [ 309.858749] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
20555 [ 309.864519] CR2: 00007f9fca701000 CR3: 00000001565e2005 CR4: 0000000008f70ef0
20556 [ 309.871678] PKRU: 55555558
20557 [ 309.874403] Call Trace:
20558 [ 309.876866] <TASK>
20559 [ 309.878988] sg_alloc_table_from_pages_segment+0x60/0x100
20560 [ 309.884415] ? ttm_resource_manager_usage+0x36/0x60 [ttm]
20561 [ 309.889845] ? xe_tt_map_sg+0x7d/0xd0 [xe]
20562 [ 309.894045] xe_tt_map_sg+0x7d/0xd0 [xe]
20563 [ 309.898037] xe_bo_move+0x927/0xaa0 [xe]
20564 [ 309.902029] ttm_bo_handle_move_mem+0xba/0x170 [ttm]
20565 [ 309.907022] ttm_bo_validate+0xbe/0x190 [ttm]
20566 [ 309.911405] xe_bo_validate+0x9a/0x120 [xe]
20567 [ 309.915663] xe_gpuvm_validate+0xd9/0x140 [xe]
20568 [ 309.920206] drm_gpuvm_validate+0x2f0/0x5b0 [drm_gpuvm]
20569 [ 309.925459] ? drm_exec_lock_obj+0x63/0x210 [drm_exec]
20570 [ 309.930627] xe_vm_validate_rebind+0x46/0xb0 [xe]
20571 [ 309.935428] xe_exec_fn+0x20/0x40 [xe]
20572 [ 309.939249] drm_gpuvm_exec_lock+0x78/0xc0 [drm_gpuvm]
20573 [ 309.944410] xe_validation_exec_lock+0x5a/0xa0 [xe]
20574 [ 309.949385] xe_exec_ioctl+0x806/0xc30 [xe]
20575 [ 309.953639] ? ttwu_queue_wakelist+0xd9/0xf0
20576 [ 309.957935] ? __pfx_xe_exec_fn+0x10/0x10 [xe]
20577 [ 309.962449] ? __wake_up_common+0x73/0xa0
20578 [ 309.966482] ? __pfx_xe_exec_ioctl+0x10/0x10 [xe]
20579 [ 309.971263] drm_ioctl_kernel+0xa3/0x100
20580 [ 309.975209] drm_ioctl+0x213/0x440
20581 [ 309.978637] ? __pfx_xe_exec_ioctl+0x10/0x10 [xe]
20582 [ 309.983415] xe_drm_ioctl+0x67/0xd0 [xe]
20583 [ 309.987408] __x64_sys_ioctl+0x7f/0xd0
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com >
Cc: Christian Koenig <christian.koenig@amd.com >
Cc: Huang Rui <ray.huang@amd.com >
Cc: Matthew Auld <matthew.auld@intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: Maxime Ripard <mripard@kernel.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: David Airlie <airlied@gmail.com >
Cc: Simona Vetter <simona@ffwll.ch >
Cc: dri-devel@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org
Fixes: b63d715b80 ("drm/ttm/pool, drm/ttm/tt: Provide a helper to shrink pages")
Signed-off-by: Matthew Brost <matthew.brost@intel.com >
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com >
Link: https://patch.msgid.link/20260617015531.1164189-1-matthew.brost@intel.com
2026-06-17 11:27:18 -07:00
Matthew Brost
dd8dde5745
drm/ttm/pool: Try harder for beneficial orders
...
When a driver specifies a beneficial order, TTM should make a reasonable
effort to allocate pages at that order.
Use __GFP_RETRY_MAYFAIL instead of __GFP_NORETRY when allocating at the
beneficial order. This allows reclaim to try harder before falling back to
smaller orders, at the cost of longer allocation setup time.
That tradeoff is acceptable for beneficial-order allocations: higher-order
backing pages can improve TLB hit rates and reduce the number of TLB
invalidations needed when moving memory.
Cc: Christian Koenig <christian.koenig@amd.com >
Cc: Huang Rui <ray.huang@amd.com >
Cc: Matthew Auld <matthew.auld@intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: Maxime Ripard <mripard@kernel.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: David Airlie <airlied@gmail.com >
Cc: Simona Vetter <simona@ffwll.ch >
Cc: dri-devel@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com >
Signed-off-by: Matthew Brost <matthew.brost@intel.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Link: https://patch.msgid.link/20260617022248.1165101-1-matthew.brost@intel.com
2026-06-17 06:36:00 -07:00
Eric Engestrom
2bfa2e7f19
drm/doc: update tree setup instructions
...
Recommend forking drm/kernel instead of uploading a distinct copy,
as this allows GitLab to internally track that these are the same
git objects.
Signed-off-by: Eric Engestrom <eric@engestrom.ch >
Reviewed-by: Vignesh Raman <vignesh.raman@collabora.com >
Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com >
Link: https://patch.msgid.link/20260219135645.261192-1-eric@engestrom.ch
2026-06-17 15:51:10 +05:30
Karol Wachowski
799c8f0b9f
accel/ivpu: Drop IRQF_ONESHOT to allow IPC IRQ threading on PREEMPT_RT
...
The IPC RX hardirq handler matches consumers under a spinlock and
allocates rx_msg buffers. On PREEMPT_RT these spinlocks become sleeping
locks and the allocation may sleep, neither of which is allowed in true
hardirq context, resulting in "sleeping function called from invalid
context" splats.
IRQF_ONESHOT makes genirq keep the primary handler in hardirq even when
forced threading is enabled, so on PREEMPT_RT the handler cannot be
threaded. Drop the flag so the primary handler is threaded on PREEMPT_RT
and the IPC RX path runs in a context where sleeping is allowed. On the
MSI interrupt chip (IRQCHIP_ONESHOT_SAFE) the flag was stripped anyway,
so non-RT behaviour is unchanged.
Fixes: 85c9cc2d25 ("accel/ivpu: Use threaded IRQ for IPC callback processing")
Cc: Andrzej Kacprowski <andrzej.kacprowski@linux.intel.com >
Cc: Karol Wachowski <karol.wachowski@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Andrzej Kacprowski <andrzej.kacprowski@linux.intel.com >
Signed-off-by: Karol Wachowski <karol.wachowski@linux.intel.com >
Link: https://patch.msgid.link/20260617092031.3016582-1-karol.wachowski@linux.intel.com
2026-06-17 11:34:40 +02:00
Uwe Kleine-König (The Capable Hub)
01d1004449
drm: Consistently define pci_device_ids using named initializers
...
The .driver_data member of the various struct pci_device_id arrays were
initialized by list expressions. This isn't easily readable if you're
not into PCI. Using the PCI_DEVICE macro and named initializers is more
explicit and thus easier to parse. Also skip explicit assignments of 0
(which the compiler then takes care of).
This change doesn't introduce changes to the compiled pci_device_id
arrays. Tested on x86 and arm64.
v2:
- gma500: fix coding style in cast
Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com >
Reviewed-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Link: https://patch.msgid.link/20260504150537.2136760-2-u.kleine-koenig@baylibre.com
2026-06-17 11:07:01 +02:00
Sudarshan Shetty
4af021a977
drm: bridge: ti-sn65dsi83: Remove NO_HFP and NO_HBP mode flags for LVDS stability
...
The current DSI mode configuration disables horizontal front porch
(HFP) and back porch (HBP) transmission using
MIPI_DSI_MODE_VIDEO_NO_HFP and MIPI_DSI_MODE_VIDEO_NO_HBP.
However, the SN65DSI83/84 bridge relies on receiving full horizontal
timing information over DSI in order to correctly reconstruct the
LVDS output timings. When HFP and HBP are not transmitted, the bridge
cannot recreate the required timing parameters, resulting in unstable
or missing display output on some panels.
The SN65DSI84 datasheet also describes transmission of complete
horizontal timing information as part of the DSI video stream.
Remove MIPI_DSI_MODE_VIDEO_NO_HFP and MIPI_DSI_MODE_VIDEO_NO_HBP
so that HFP and HBP timing information is transmitted to the bridge.
Reference:
SN65DSI84 Datasheet, Section 7.4.7 (page 20):
https://www.ti.com/lit/ds/symlink/sn65dsi84.pdf
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com >
Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com >
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
Link: https://patch.msgid.link/20260527085736.920390-2-tessolveupstream@gmail.com
[Luca: cleaned up datasheet URL]
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com >
2026-06-16 22:48:38 +02:00