• Ajay Kumar's avatar
    drm/bridge: make bridge registration independent of drm flow · 3d3f8b1f
    Ajay Kumar authored
    Currently, third party bridge drivers(ptn3460) are dependent
    on the corresponding encoder driver init, since bridge driver
    needs a drm_device pointer to finish drm initializations.
    The encoder driver passes the drm_device pointer to the
    bridge driver. Because of this dependency, third party drivers
    like ptn3460 doesn't adhere to the driver model.
    
    In this patch, we reframe the bridge registration framework
    so that bridge initialization is split into 2 steps, and
    bridge registration happens independent of drm flow:
    --Step 1: gather all the bridge settings independent of drm and
    	  add the bridge onto a global list of bridges.
    --Step 2: when the encoder driver is probed, call drm_bridge_attach
    	  for the corresponding bridge so that the bridge receives
    	  drm_device pointer and continues with connector and other
    	  drm initializations.
    
    The old set of bridge helpers are removed, and a set of new helpers
    are added to accomplish the 2 step initialization.
    
    The bridge devices register themselves onto global list of bridges
    when they get probed by calling "drm_bridge_add".
    
    The parent encoder driver waits till the bridge is available
    in the lookup table(by calling "of_drm_find_bridge") and then
    continues with its initialization.
    
    The encoder driver should also call "drm_bridge_attach" to pass
    on the drm_device to the bridge object.
    
    drm_bridge_attach inturn calls "bridge->funcs->attach" so that
    bridge can continue with drm related initializations.
    Signed-off-by: default avatarAjay Kumar <ajaykumar.rs@samsung.com>
    Acked-by: default avatarInki Dae <inki.dae@samsung.com>
    Tested-by: default avatarRahul Sharma <rahul.sharma@samsung.com>
    Tested-by: default avatarJavier Martinez Canillas <javier.martinez@collabora.co.uk>
    Tested-by: default avatarGustavo Padovan <gustavo.padovan@collabora.co.uk>
    Tested-by: default avatarSjoerd Simons <sjoerd.simons@collabora.co.uk>
    Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
    3d3f8b1f
ptn3460.c 8.45 KB