| From 1067cf87533833fe297ee3c4f3aca74d76f9be58 Mon Sep 17 00:00:00 2001 |
| From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Date: Tue, 17 Jan 2017 10:28:54 +0200 |
| Subject: [PATCH 239/255] drm: bridge: dw-hdmi: Embed drm_bridge in struct |
| dw_hdmi |
| |
| The drm_bridge instance is always needed, there's no point in allocating |
| it separately. |
| |
| Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Reviewed-by: Jose Abreu <joabreu@synopsys.com> |
| Signed-off-by: Archit Taneja <architt@codeaurora.org> |
| Link: http://patchwork.freedesktop.org/patch/msgid/20170117082910.27023-5-laurent.pinchart+renesas@ideasonboard.com |
| (cherry picked from commit 70c963ec4f15a13197524611875168f23acc4a97) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/gpu/drm/bridge/dw-hdmi.c | 13 +++---------- |
| 1 file changed, 3 insertions(+), 10 deletions(-) |
| |
| --- a/drivers/gpu/drm/bridge/dw-hdmi.c |
| +++ b/drivers/gpu/drm/bridge/dw-hdmi.c |
| @@ -116,7 +116,7 @@ struct dw_hdmi_i2c { |
| struct dw_hdmi { |
| struct drm_connector connector; |
| struct drm_encoder *encoder; |
| - struct drm_bridge *bridge; |
| + struct drm_bridge bridge; |
| |
| struct platform_device *audio; |
| enum dw_hdmi_devtype dev_type; |
| @@ -1806,7 +1806,7 @@ static irqreturn_t dw_hdmi_irq(int irq, |
| if (intr_stat & HDMI_IH_PHY_STAT0_HPD) { |
| dev_dbg(hdmi->dev, "EVENT=%s\n", |
| phy_int_pol & HDMI_PHY_HPD ? "plugin" : "plugout"); |
| - drm_helper_hpd_irq_event(hdmi->bridge->dev); |
| + drm_helper_hpd_irq_event(hdmi->bridge.dev); |
| } |
| |
| hdmi_writeb(hdmi, intr_stat, HDMI_IH_PHY_STAT0); |
| @@ -1819,16 +1819,9 @@ static irqreturn_t dw_hdmi_irq(int irq, |
| static int dw_hdmi_register(struct drm_device *drm, struct dw_hdmi *hdmi) |
| { |
| struct drm_encoder *encoder = hdmi->encoder; |
| - struct drm_bridge *bridge; |
| + struct drm_bridge *bridge = &hdmi->bridge; |
| int ret; |
| |
| - bridge = devm_kzalloc(drm->dev, sizeof(*bridge), GFP_KERNEL); |
| - if (!bridge) { |
| - DRM_ERROR("Failed to allocate drm bridge\n"); |
| - return -ENOMEM; |
| - } |
| - |
| - hdmi->bridge = bridge; |
| bridge->driver_private = hdmi; |
| bridge->funcs = &dw_hdmi_bridge_funcs; |
| ret = drm_bridge_attach(encoder, bridge, NULL); |