diff options
Diffstat (limited to 'board/chromebook/elm/patches/linux/0002-drm-bridge-ps8640-Get-the-EDID-from-eDP-control.patch')
-rw-r--r-- | board/chromebook/elm/patches/linux/0002-drm-bridge-ps8640-Get-the-EDID-from-eDP-control.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/board/chromebook/elm/patches/linux/0002-drm-bridge-ps8640-Get-the-EDID-from-eDP-control.patch b/board/chromebook/elm/patches/linux/0002-drm-bridge-ps8640-Get-the-EDID-from-eDP-control.patch new file mode 100644 index 0000000000..5f7517c7b9 --- /dev/null +++ b/board/chromebook/elm/patches/linux/0002-drm-bridge-ps8640-Get-the-EDID-from-eDP-control.patch @@ -0,0 +1,50 @@ +From cc0f2fea61fb34ca84e4812a615e0035d812aa8b Mon Sep 17 00:00:00 2001 +From: Enric Balletbo i Serra <enric.balletbo@collabora.com> +Date: Wed, 26 Aug 2020 10:15:23 +0200 +Subject: [PATCH 2/5] drm/bridge: ps8640: Get the EDID from eDP control + +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.pinchart@ideasonboard.com> +Acked-by: Sam Ravnborg <sam@ravnborg.org> +Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> +--- + 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.25.1 + |