On Thu, Nov 06, 2014 at 12:35:48PM +0100, Andrzej Hajda wrote:
Exynos DSI driver uses DSI bus attach/detach callbacks to implement panel hotplug mechanism. The patch moves panel attachment code from .detect callback to DSI bus callbacks. It makes the code simpler and more straightforward. The patch removes also redundant and lock unprotected dpms_off call from unbind code.
Signed-off-by: Andrzej Hajda a.hajda@samsung.com
Hi,
This patch simplifies drm part of hotplug mechanism in dsi attach/detach callbacks. It also fixes minor bug with unprotected dpms_off call, which is unneccesary anyway.
But the main reason I have looked at this code again is to show that we do not need zombie panels, we can kill panels properly if we have hot plug/unplug callbacks. And it is quite simple: we just need to take mode_config.mutex locks to synchronize dsi callbacks with drm, nothing more. It works nicely because of two things:
- panel callbacks are called always under this lock,
- callbacks are installed after drmdev creation and deinstalled before drmdev destroy -
this way we assure drmdev is always present in callbacks.
Again, something like what you propose is going to work only for DSI devices. What we need is a solution that works for all other types of panels, too. This is even more important when we consider bridges because they are less likely to be on a DSI bus.
Thierry