Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751405AbdFFI5b (ORCPT ); Tue, 6 Jun 2017 04:57:31 -0400 Received: from mail.free-electrons.com ([62.4.15.54]:58766 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751303AbdFFI5a (ORCPT ); Tue, 6 Jun 2017 04:57:30 -0400 Date: Tue, 6 Jun 2017 10:57:17 +0200 From: Boris Brezillon To: Archit Taneja Cc: Eric Anholt , Andrzej Hajda , Laurent Pinchart , CK Hu , dri-devel@lists.freedesktop.org, Philipp Zabel , Yannick Fertre , Philippe Cornu , linux-kernel@vger.kernel.org, Daniel Vetter , Jani Nikula Subject: Re: [PATCH v2 7/7] drm/atmel-hlcdc: Replace the panel usage with drm_panel_bridge. Message-ID: <20170606105717.1ae5983a@bbrezillon> In-Reply-To: <57d82797-7639-63ae-cef4-720861301e6c@codeaurora.org> References: <20170511183128.25085-1-eric@anholt.net> <20170511183128.25085-7-eric@anholt.net> <57d82797-7639-63ae-cef4-720861301e6c@codeaurora.org> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2123 Lines: 73 Hi Archit, On Mon, 5 Jun 2017 21:06:20 +0530 Archit Taneja wrote: > Hi, > > When pushing to drm-misc-next, I got a minor merge conflict when dim tried > to rebuild drm-tip. > > The reason for the conflict was because the following commit was present > in drm-tip but not in drm-misc: > > https://cgit.freedesktop.org/drm-tip/commit/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c?id=6bee9b78a7a5ea257b24d93974538938c82b1169 > > I fixed the conflict such that drm-tip is rebuit successfully. I'd > however like if Eric and Boris could have a look at atmel_hlcdc_output.c > to check if things are okay. Where can I find the fix you made to fix this problem? [...] > > if (panel) { > > - output->connector.dpms = DRM_MODE_DPMS_OFF; > > - output->connector.polled = DRM_CONNECTOR_POLL_CONNECT; > > - drm_connector_helper_add(&output->connector, > > - &atmel_hlcdc_panel_connector_helper_funcs); > > - ret = drm_connector_init(dev, &output->connector, > > - &atmel_hlcdc_panel_connector_funcs, > > - DRM_MODE_CONNECTOR_Unknown); > > - if (ret) > > - goto err_encoder_cleanup; > > - > > - drm_mode_connector_attach_encoder(&output->connector, > > - &output->encoder); > > - > > - ret = drm_panel_attach(panel, &output->connector); > > - if (ret) { > > - drm_connector_cleanup(&output->connector); > > - goto err_encoder_cleanup; > > - } > > - > > - output->panel = panel; > > + bridge = drm_panel_bridge_add(panel, DRM_MODE_CONNECTOR_Unknown); > > + if (IS_ERR(bridge)) > > + return PTR_ERR(bridge); > > > > return 0; Just noticed that this is wrong. We should not return here, otherwise the panel bridge is never attached to the encoder. > > } > > > > if (bridge) { > > - ret = drm_bridge_attach(&output->encoder, bridge, NULL); > > + ret = drm_bridge_attach(encoder, bridge, NULL); > > if (!ret) > > return 0; > > + > > + if (panel) > > + drm_panel_bridge_remove(bridge); > > } > > > > -err_encoder_cleanup: > > - drm_encoder_cleanup(&output->encoder); > > + drm_encoder_cleanup(encoder); > > > > return ret; > > } > > >