@@ -30,6 +30,7 @@
#include <drm/drm_crtc_helper.h>
#include <drm/drm_panel.h>
#include <drm/bridge/ptn3460.h>
+#include <drm/bridge/panel_binder.h>
#include "exynos_drm_drv.h"
#include "exynos_dp_core.h"
@@ -992,7 +993,7 @@ static int exynos_drm_attach_lcd_bridge(struct exynos_dp_device *dp,
struct drm_encoder *encoder)
{
struct bridge_init bridge;
- struct drm_bridge *bridge_chain = NULL;
+ struct drm_bridge *bridge_chain = NULL, *next = NULL;
bool connector_created = false;
if (find_bridge("nxp,ptn3460", &bridge)) {
@@ -1000,6 +1001,15 @@ static int exynos_drm_attach_lcd_bridge(struct exynos_dp_device *dp,
bridge.node);
}
+ if (bridge_chain && dp->edp_panel) {
+ next = panel_binder_init(dp->drm_dev, encoder, bridge.client,
+ bridge.node, dp->edp_panel, DRM_MODE_CONNECTOR_LVDS,
+ DRM_CONNECTOR_POLL_HPD);
+ if (next)
+ connector_created = true;
+ drm_bridge_add_to_chain(bridge_chain, next);
+ }
+
return connector_created;
}
exynos_dp supports a simple bridge chain with ptn3460 bridge and an LVDS panel attached to it. This patch creates the bridge chain with ptn3460 as the head of the list and panel_binder being the tail. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> --- drivers/gpu/drm/exynos/exynos_dp_core.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)