From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v9 5/5] drm/bridge/synopsys: dw-hdmi: Add missing bridge detach Date: Fri, 02 Mar 2018 23:49:06 +0200 Message-ID: <2714218.VptbnhJPkd@avalon> References: <20180302175757.28192-1-enric.balletbo@collabora.com> <20180302175757.28192-6-enric.balletbo@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180302175757.28192-6-enric.balletbo@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Enric Balletbo i Serra Cc: Jose Abreu , Jernej Skrabec , Jeffy Chen , linux-rockchip@lists.infradead.org, David Airlie , Neil Armstrong , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Hans Verkuil , Russell King , kernel@collabora.com, linux-arm-kernel@lists.infradead.org List-Id: linux-rockchip.vger.kernel.org SGkgRW5yaWMsCgpUaGFuayB5b3UgZm9yIHRoZSBwYXRjaC4KCk9uIEZyaWRheSwgMiBNYXJjaCAy MDE4IDE5OjU3OjU3IEVFVCBFbnJpYyBCYWxsZXRibyBpIFNlcnJhIHdyb3RlOgo+IEZyb206IEpl ZmZ5IENoZW4gPGplZmZ5LmNoZW5Acm9jay1jaGlwcy5jb20+Cj4gCj4gV2UgaW5pdGVkIGNvbm5l Y3RvciBpbiBhdHRhY2goKSwgc28gbmVlZCBhIGRldGFjaCgpIHRvIGNsZWFudXAuCgpEbyB3ZSA/ IFRoZSBkdy1oZG1pIGRyaXZlciBhbHJlYWR5IHNldHMgZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKCkg YXMgdGhlIApjb25uZWN0b3IgLmRlc3Ryb3koKSBoYW5kbGVyLCBhbmQgdGhlIC5kZXN0cm95KCkg b3BlcmF0aW9uIGlzIGNhbGxlZCBieSB0aGUgCkRSTSBjb3JlLiBOb25lIG9mIHRoZSBvdGhlciBi cmlkZ2UgZHJpdmVycyBjYWxsIGRybV9jb25uZWN0b3JfY2xlYW51cCgpIApkaXJlY3RseS4KCj4g U2lnbmVkLW9mZi1ieTogSmVmZnkgQ2hlbiA8amVmZnkuY2hlbkByb2NrLWNoaXBzLmNvbT4KPiBT aWduZWQtb2ZmLWJ5OiBUaGllcnJ5IEVzY2FuZGUgPHRoaWVycnkuZXNjYW5kZUBjb2xsYWJvcmEu Y29tPgo+IFNpZ25lZC1vZmYtYnk6IEVucmljIEJhbGxldGJvIGkgU2VycmEgPGVucmljLmJhbGxl dGJvQGNvbGxhYm9yYS5jb20+Cj4gLS0tCj4gCj4gQ2hhbmdlcyBpbiB2OTogTm9uZQo+IAo+ICBk cml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYyB8IDggKysrKysrKysKPiAg MSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMgaW5kZXgKPiBmOTgwMjM5OWNjMGQuLjU2MjY5MjJmOTVm OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWku Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jCj4gQEAg LTE5ODUsNiArMTk4NSwxMyBAQCBzdGF0aWMgaW50IGR3X2hkbWlfYnJpZGdlX2F0dGFjaChzdHJ1 Y3QgZHJtX2JyaWRnZQo+ICpicmlkZ2UpIHJldHVybiAwOwo+ICB9Cj4gCj4gK3N0YXRpYyB2b2lk IGR3X2hkbWlfYnJpZGdlX2RldGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICt7Cj4g KwlzdHJ1Y3QgZHdfaGRtaSAqaGRtaSA9IGJyaWRnZS0+ZHJpdmVyX3ByaXZhdGU7Cj4gKwo+ICsJ ZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKCZoZG1pLT5jb25uZWN0b3IpOwo+ICt9Cj4gKwo+ICBzdGF0 aWMgZW51bSBkcm1fbW9kZV9zdGF0dXMKPiAgZHdfaGRtaV9icmlkZ2VfbW9kZV92YWxpZChzdHJ1 Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICAJCQkgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICptb2RlKQo+IEBAIC0yMDQxLDYgKzIwNDgsNyBAQCBzdGF0aWMgdm9pZCBkd19oZG1pX2Jy aWRnZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UKPiAqYnJpZGdlKQo+IAo+ICBzdGF0aWMgY29u c3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3MgZHdfaGRtaV9icmlkZ2VfZnVuY3MgPSB7Cj4gIAku YXR0YWNoID0gZHdfaGRtaV9icmlkZ2VfYXR0YWNoLAo+ICsJLmRldGFjaCA9IGR3X2hkbWlfYnJp ZGdlX2RldGFjaCwKPiAgCS5lbmFibGUgPSBkd19oZG1pX2JyaWRnZV9lbmFibGUsCj4gIAkuZGlz YWJsZSA9IGR3X2hkbWlfYnJpZGdlX2Rpc2FibGUsCj4gIAkubW9kZV9zZXQgPSBkd19oZG1pX2Jy aWRnZV9tb2RlX3NldCwKCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: laurent.pinchart@ideasonboard.com (Laurent Pinchart) Date: Fri, 02 Mar 2018 23:49:06 +0200 Subject: [PATCH v9 5/5] drm/bridge/synopsys: dw-hdmi: Add missing bridge detach In-Reply-To: <20180302175757.28192-6-enric.balletbo@collabora.com> References: <20180302175757.28192-1-enric.balletbo@collabora.com> <20180302175757.28192-6-enric.balletbo@collabora.com> Message-ID: <2714218.VptbnhJPkd@avalon> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Enric, Thank you for the patch. On Friday, 2 March 2018 19:57:57 EET Enric Balletbo i Serra wrote: > From: Jeffy Chen > > We inited connector in attach(), so need a detach() to cleanup. Do we ? The dw-hdmi driver already sets drm_connector_cleanup() as the connector .destroy() handler, and the .destroy() operation is called by the DRM core. None of the other bridge drivers call drm_connector_cleanup() directly. > Signed-off-by: Jeffy Chen > Signed-off-by: Thierry Escande > Signed-off-by: Enric Balletbo i Serra > --- > > Changes in v9: None > > drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index > f9802399cc0d..5626922f95f9 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > @@ -1985,6 +1985,13 @@ static int dw_hdmi_bridge_attach(struct drm_bridge > *bridge) return 0; > } > > +static void dw_hdmi_bridge_detach(struct drm_bridge *bridge) > +{ > + struct dw_hdmi *hdmi = bridge->driver_private; > + > + drm_connector_cleanup(&hdmi->connector); > +} > + > static enum drm_mode_status > dw_hdmi_bridge_mode_valid(struct drm_bridge *bridge, > const struct drm_display_mode *mode) > @@ -2041,6 +2048,7 @@ static void dw_hdmi_bridge_enable(struct drm_bridge > *bridge) > > static const struct drm_bridge_funcs dw_hdmi_bridge_funcs = { > .attach = dw_hdmi_bridge_attach, > + .detach = dw_hdmi_bridge_detach, > .enable = dw_hdmi_bridge_enable, > .disable = dw_hdmi_bridge_disable, > .mode_set = dw_hdmi_bridge_mode_set, -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932145AbeCBVsS (ORCPT ); Fri, 2 Mar 2018 16:48:18 -0500 Received: from galahad.ideasonboard.com ([185.26.127.97]:60099 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750775AbeCBVsR (ORCPT ); Fri, 2 Mar 2018 16:48:17 -0500 From: Laurent Pinchart To: Enric Balletbo i Serra Cc: Sandy Huang , Heiko =?ISO-8859-1?Q?St=FCbner?= , Andrzej Hajda , linux-rockchip@lists.infradead.org, Archit Taneja , linux-kernel@vger.kernel.org, Russell King , Neil Armstrong , dri-devel@lists.freedesktop.org, Jose Abreu , Hans Verkuil , Jernej Skrabec , linux-arm-kernel@lists.infradead.org, David Airlie , Jeffy Chen , kernel@collabora.com Subject: Re: [PATCH v9 5/5] drm/bridge/synopsys: dw-hdmi: Add missing bridge detach Date: Fri, 02 Mar 2018 23:49:06 +0200 Message-ID: <2714218.VptbnhJPkd@avalon> Organization: Ideas on Board Oy In-Reply-To: <20180302175757.28192-6-enric.balletbo@collabora.com> References: <20180302175757.28192-1-enric.balletbo@collabora.com> <20180302175757.28192-6-enric.balletbo@collabora.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Enric, Thank you for the patch. On Friday, 2 March 2018 19:57:57 EET Enric Balletbo i Serra wrote: > From: Jeffy Chen > > We inited connector in attach(), so need a detach() to cleanup. Do we ? The dw-hdmi driver already sets drm_connector_cleanup() as the connector .destroy() handler, and the .destroy() operation is called by the DRM core. None of the other bridge drivers call drm_connector_cleanup() directly. > Signed-off-by: Jeffy Chen > Signed-off-by: Thierry Escande > Signed-off-by: Enric Balletbo i Serra > --- > > Changes in v9: None > > drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index > f9802399cc0d..5626922f95f9 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > @@ -1985,6 +1985,13 @@ static int dw_hdmi_bridge_attach(struct drm_bridge > *bridge) return 0; > } > > +static void dw_hdmi_bridge_detach(struct drm_bridge *bridge) > +{ > + struct dw_hdmi *hdmi = bridge->driver_private; > + > + drm_connector_cleanup(&hdmi->connector); > +} > + > static enum drm_mode_status > dw_hdmi_bridge_mode_valid(struct drm_bridge *bridge, > const struct drm_display_mode *mode) > @@ -2041,6 +2048,7 @@ static void dw_hdmi_bridge_enable(struct drm_bridge > *bridge) > > static const struct drm_bridge_funcs dw_hdmi_bridge_funcs = { > .attach = dw_hdmi_bridge_attach, > + .detach = dw_hdmi_bridge_detach, > .enable = dw_hdmi_bridge_enable, > .disable = dw_hdmi_bridge_disable, > .mode_set = dw_hdmi_bridge_mode_set, -- Regards, Laurent Pinchart