[PATCH] drm/omap: sdi: fix bridge enable/disable
Aaro Koskinen
aaro.koskinen at iki.fi
Sat Nov 28 17:45:28 UTC 2020
Hi,
On Fri, Nov 27, 2020 at 10:52:41AM +0200, Tomi Valkeinen wrote:
> When the SDI output was converted to DRM bridge, the atomic versions of
> enable and disable funcs were used. This was not intended, as that would
> require implementing other atomic funcs too. This leads to:
>
> WARNING: CPU: 0 PID: 18 at drivers/gpu/drm/drm_bridge.c:708 drm_atomic_helper_commit_modeset_enables+0x134/0x268
>
> and display not working.
>
> Fix this by using the legacy enable/disable funcs.
>
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
> Reported-by: Aaro Koskinen <aaro.koskinen at iki.fi>
> Fixes: 8bef8a6d5da81b909a190822b96805a47348146f ("drm/omap: sdi: Register a drm_bridge")
> Cc: stable at vger.kernel.org # v5.7+
> Tested-by: Ivaylo Dimitrov <ivo.g.dimitrov.75 at gmail.com>
Tested-by: Aaro Koskinen <aaro.koskinen at iki.fi>
Thanks,
A.
> ---
> drivers/gpu/drm/omapdrm/dss/sdi.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/sdi.c b/drivers/gpu/drm/omapdrm/dss/sdi.c
> index 033fd30074b0..282e4c837cd9 100644
> --- a/drivers/gpu/drm/omapdrm/dss/sdi.c
> +++ b/drivers/gpu/drm/omapdrm/dss/sdi.c
> @@ -195,8 +195,7 @@ static void sdi_bridge_mode_set(struct drm_bridge *bridge,
> sdi->pixelclock = adjusted_mode->clock * 1000;
> }
>
> -static void sdi_bridge_enable(struct drm_bridge *bridge,
> - struct drm_bridge_state *bridge_state)
> +static void sdi_bridge_enable(struct drm_bridge *bridge)
> {
> struct sdi_device *sdi = drm_bridge_to_sdi(bridge);
> struct dispc_clock_info dispc_cinfo;
> @@ -259,8 +258,7 @@ static void sdi_bridge_enable(struct drm_bridge *bridge,
> regulator_disable(sdi->vdds_sdi_reg);
> }
>
> -static void sdi_bridge_disable(struct drm_bridge *bridge,
> - struct drm_bridge_state *bridge_state)
> +static void sdi_bridge_disable(struct drm_bridge *bridge)
> {
> struct sdi_device *sdi = drm_bridge_to_sdi(bridge);
>
> @@ -278,8 +276,8 @@ static const struct drm_bridge_funcs sdi_bridge_funcs = {
> .mode_valid = sdi_bridge_mode_valid,
> .mode_fixup = sdi_bridge_mode_fixup,
> .mode_set = sdi_bridge_mode_set,
> - .atomic_enable = sdi_bridge_enable,
> - .atomic_disable = sdi_bridge_disable,
> + .enable = sdi_bridge_enable,
> + .disable = sdi_bridge_disable,
> };
>
> static void sdi_bridge_init(struct sdi_device *sdi)
> --
> Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
> Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
>
More information about the dri-devel
mailing list