[PATCH v4 04/11] drm/bridge: Make the bridge chain a double-linked list
Sam Ravnborg
sam at ravnborg.org
Tue Dec 24 11:31:11 UTC 2019
Hi Boris.
> Just a reminder of my 2 proposals:
>
> 1/ implement the bridge_ops->pre_enable/post_disable() hooks so you can
> split your enable/disable logic in 2 parts and make sure things are
> ready when the panel/next bridge tries to send DSI commands
> 2/ move everything that's needed to send DSI commands out of the
> ->enable() path (maybe in runtime PM resume/suspend hooks) so you
> can call that in the DSI transfer path too
>
> As pointed out by Laurent, #1 doesn't work because some panel drivers
> send DSI commands in their ->prepare() hook, and ->pre_enable() methods
> are called in reverse order, meaning that the DRM panel bridge driver
> would try to issue DSI commands before the DSI host controllers is ready
> to send them. I still thing #2 is a good option.
Jitao Shi suggested to extend panels so we had a sequence of:
prepare_power() <= new callback,
here one should NOT be allowed to send
DSI commands
prepare()
enable()
#
# panel is now ready to show your favourite christmas movie
#
disable()
unprepare()
unprepare_power() <= new callback
Would this help implement what you suggest above?
Relevant panels would then have to be updated - but this
is doable.
Sam
More information about the dri-devel
mailing list