The PS8640 DSI-to-eDP bridge can retrieve the EDID, so implement the
.get_edid callback and set the flag to indicate the core to use it.

Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
Acked-by: Sam Ravnborg <s...@ravnborg.org>
Signed-off-by: Enric Balletbo i Serra <enric.balle...@collabora.com>
---

Changes in v2:
- Included the patch `drm/bridge: ps8640: Get the EDID from eDP control`

 drivers/gpu/drm/bridge/parade-ps8640.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c 
b/drivers/gpu/drm/bridge/parade-ps8640.c
index 4b099196afeb..13755d278db6 100644
--- a/drivers/gpu/drm/bridge/parade-ps8640.c
+++ b/drivers/gpu/drm/bridge/parade-ps8640.c
@@ -242,8 +242,18 @@ static int ps8640_bridge_attach(struct drm_bridge *bridge,
        return ret;
 }
 
+static struct edid *ps8640_bridge_get_edid(struct drm_bridge *bridge,
+                                          struct drm_connector *connector)
+{
+       struct ps8640 *ps_bridge = bridge_to_ps8640(bridge);
+
+       return drm_get_edid(connector,
+                           ps_bridge->page[PAGE0_DP_CNTL]->adapter);
+}
+
 static const struct drm_bridge_funcs ps8640_bridge_funcs = {
        .attach = ps8640_bridge_attach,
+       .get_edid = ps8640_bridge_get_edid,
        .post_disable = ps8640_post_disable,
        .pre_enable = ps8640_pre_enable,
 };
@@ -294,6 +304,8 @@ static int ps8640_probe(struct i2c_client *client)
 
        ps_bridge->bridge.funcs = &ps8640_bridge_funcs;
        ps_bridge->bridge.of_node = dev->of_node;
+       ps_bridge->bridge.ops = DRM_BRIDGE_OP_EDID;
+       ps_bridge->bridge.type = DRM_MODE_CONNECTOR_eDP;
 
        ps_bridge->page[PAGE0_DP_CNTL] = client;
 
-- 
2.28.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to