diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-02-26 12:24:48 +0100 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2020-02-26 12:31:52 +0100 |
commit | 0fe37173ce0ec7ca23232a1a242059db73c0ff16 (patch) | |
tree | 45ca4a989dcdc14eb1a843d57f7ffd2e9afcc2d0 /drivers/gpu/drm/omapdrm/omap_connector.c | |
parent | drm/omap: dss: Make omap_dss_device_ops optional (diff) | |
download | linux-0fe37173ce0ec7ca23232a1a242059db73c0ff16.tar.xz linux-0fe37173ce0ec7ca23232a1a242059db73c0ff16.zip |
drm/omap: hdmi: Allocate EDID in the .read_edid() operation
Bring the omapdss-specific .read_edid() operation in sync with the
drm_bridge .get_edid() operation to ease code reuse.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Tested-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200226112514.12455-29-laurent.pinchart@ideasonboard.com
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_connector.c')
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_connector.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c index a24cec4b0bb9..c636ae228130 100644 --- a/drivers/gpu/drm/omapdrm/omap_connector.c +++ b/drivers/gpu/drm/omapdrm/omap_connector.c @@ -153,25 +153,19 @@ static void omap_connector_destroy(struct drm_connector *connector) kfree(omap_connector); } -#define MAX_EDID 512 - static int omap_connector_get_modes_edid(struct drm_connector *connector, struct omap_dss_device *dssdev) { enum drm_connector_status status; - void *edid; + struct edid *edid; int n; status = omap_connector_detect(connector, false); if (status != connector_status_connected) goto no_edid; - edid = kzalloc(MAX_EDID, GFP_KERNEL); - if (!edid) - goto no_edid; - - if (dssdev->ops->read_edid(dssdev, edid, MAX_EDID) <= 0 || - !drm_edid_is_valid(edid)) { + edid = dssdev->ops->read_edid(dssdev); + if (!edid || !drm_edid_is_valid(edid)) { kfree(edid); goto no_edid; } |