From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko =?ISO-8859-1?Q?St=FCbner?= Subject: Re: [PATCH v8 4/8] drm/rockchip: dw-mipi-dsi: Fix error handling path Date: Thu, 01 Mar 2018 16:50:18 +0100 Message-ID: <13219770.NOTAg9tncx@diego> References: <20180110162348.22765-1-thierry.escande@collabora.com> <20180110162348.22765-5-thierry.escande@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180110162348.22765-5-thierry.escande@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Thierry Escande , Neil Armstrong , Jeffy Chen , linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, Rob Herring , Laurent Pinchart , enric.balletbo@collabora.com, Daniel Vetter List-Id: linux-rockchip.vger.kernel.org SGkgSmVmZnksIFRoaWVycnksIEVucmljLAoKQW0gTWl0dHdvY2gsIDEwLiBKYW51YXIgMjAxOCwg MTc6MjM6NDQgQ0VUIHNjaHJpZWIgVGhpZXJyeSBFc2NhbmRlOgo+IEZyb206IEplZmZ5IENoZW4g PGplZmZ5LmNoZW5Acm9jay1jaGlwcy5jb20+Cj4gCj4gQWRkIG1pc3NpbmcgcG1fcnVudGltZV9k aXNhYmxlKCkgaW4gYmluZCgpJ3MgZXJyb3IgaGFuZGxpbmcgcGF0aC4KPiAKPiBBbHNvIGNsZWFu dXAgZW5jb2RlciAmIGNvbm5lY3RvciBpbiB1bmJpbmQoKS4KCkNhbiB5b3UgcGxlYXNlIHNwbGl0 IGFsbCB0aGVzZSBzdXJwcmlzZSAiQWxzbyIgc2VjdGlvbnMgaW50byBzZXBhcmF0ZQpwYXRjaGVz PwoKSXQgbG9va3MgbGlrZSB0aGlzIGlzIHRydWUgZm9yIGFsbCBmb2xsb3dpbmcgcGF0Y2ggdG8g c29tZSBkZWdyZWUgYW5kCnRoZSBpbm5vLWhkbWkgcGF0Y2ggZXZlbiBoYXMgYSB1bmJpbmQgcmVv cmRlcmluZy1jaGFuZ2Ugd2l0aG91dAptZW50aW9uaW5nIGl0IGluIHRoZSBjb21taXQgbWVzc2Fn ZS4KCgpUaGFua3MKSGVpa28KCj4gRml4ZXM6IDgwYTlhMDU5ZDRlNCAoImRybS9yb2NrY2hpcC9k c2k6IGFkZCBkdy1taXBpIHBvd2VyIGRvbWFpbiBzdXBwb3J0IikKPiBTaWduZWQtb2ZmLWJ5OiBK ZWZmeSBDaGVuIDxqZWZmeS5jaGVuQHJvY2stY2hpcHMuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFRo aWVycnkgRXNjYW5kZSA8dGhpZXJyeS5lc2NhbmRlQGNvbGxhYm9yYS5jb20+Cj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jIHwgMjEgKysrKysrKysrKysrKy0t LS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygt KQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2ku Ywo+IGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMgaW5kZXggYjFmZTA2 MzkyMjdlLi43OGU2Yjc5MTliZjcKPiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvZHctbWlwaS1kc2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1t aXBpLWRzaS5jCj4gQEAgLTEyODIsNyArMTI4Miw3IEBAIHN0YXRpYyBpbnQgZHdfbWlwaV9kc2lf YmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdAo+IGRldmljZSAqbWFzdGVyLCByZXQgPSBk d19taXBpX2RzaV9yZWdpc3Rlcihkcm0sIGRzaSk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJRFJNX0RF Vl9FUlJPUihkZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgbWlwaV9kc2k6ICVkXG4iLCByZXQpOwo+ IC0JCWdvdG8gZXJyX3BsbHJlZjsKPiArCQlnb3RvIGVycl9kaXNhYmxlX3BsbHJlZjsKPiAgCX0K PiAKPiAgCWRzaS0+ZHNpX2hvc3Qub3BzID0gJmR3X21pcGlfZHNpX2hvc3Rfb3BzOwo+IEBAIC0x MjkwLDI0ICsxMjkwLDI1IEBAIHN0YXRpYyBpbnQgZHdfbWlwaV9kc2lfYmluZChzdHJ1Y3QgZGV2 aWNlICpkZXYsCj4gc3RydWN0IGRldmljZSAqbWFzdGVyLCByZXQgPSBtaXBpX2RzaV9ob3N0X3Jl Z2lzdGVyKCZkc2ktPmRzaV9ob3N0KTsKPiAgCWlmIChyZXQpIHsKPiAgCQlEUk1fREVWX0VSUk9S KGRldiwgIkZhaWxlZCB0byByZWdpc3RlciBNSVBJIGhvc3Q6ICVkXG4iLCByZXQpOwo+IC0JCWdv dG8gZXJyX2NsZWFudXA7Cj4gKwkJZ290byBlcnJfZGlzYWJsZV9wbV9ydW50aW1lOwo+ICAJfQo+ IAo+ICAJaWYgKCFkc2ktPnBhbmVsKSB7Cj4gIAkJcmV0ID0gLUVQUk9CRV9ERUZFUjsKPiAtCQln b3RvIGVycl9taXBpX2RzaV9ob3N0Owo+ICsJCWdvdG8gZXJyX3VucmVnX21pcGlfZHNpX2hvc3Q7 Cj4gIAl9Cj4gCj4gIAlkZXZfc2V0X2RydmRhdGEoZGV2LCBkc2kpOwo+ICAJcG1fcnVudGltZV9l bmFibGUoZGV2KTsKPiAgCXJldHVybiAwOwo+IAo+IC1lcnJfbWlwaV9kc2lfaG9zdDoKPiArZXJy X3VucmVnX21pcGlfZHNpX2hvc3Q6Cj4gIAltaXBpX2RzaV9ob3N0X3VucmVnaXN0ZXIoJmRzaS0+ ZHNpX2hvc3QpOwo+IC1lcnJfY2xlYW51cDoKPiAtCWRybV9lbmNvZGVyX2NsZWFudXAoJmRzaS0+ ZW5jb2Rlcik7Cj4gLQlkcm1fY29ubmVjdG9yX2NsZWFudXAoJmRzaS0+Y29ubmVjdG9yKTsKPiAt ZXJyX3BsbHJlZjoKPiArZXJyX2Rpc2FibGVfcG1fcnVudGltZToKPiArCXBtX3J1bnRpbWVfZGlz YWJsZShkZXYpOwo+ICsJZHNpLT5jb25uZWN0b3IuZnVuY3MtPmRlc3Ryb3koJmRzaS0+Y29ubmVj dG9yKTsKPiArCWRzaS0+ZW5jb2Rlci5mdW5jcy0+ZGVzdHJveSgmZHNpLT5lbmNvZGVyKTsKPiAr ZXJyX2Rpc2FibGVfcGxscmVmOgo+ICAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRzaS0+cGxscmVm X2Nsayk7Cj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gQEAgLTEzMTksNiArMTMyMCwxMCBAQCBzdGF0 aWMgdm9pZCBkd19taXBpX2RzaV91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2LAo+IHN0cnVjdCBk ZXZpY2UgKm1hc3RlciwKPiAKPiAgCW1pcGlfZHNpX2hvc3RfdW5yZWdpc3RlcigmZHNpLT5kc2lf aG9zdCk7Cj4gIAlwbV9ydW50aW1lX2Rpc2FibGUoZGV2KTsKPiArCj4gKwlkc2ktPmNvbm5lY3Rv ci5mdW5jcy0+ZGVzdHJveSgmZHNpLT5jb25uZWN0b3IpOwo+ICsJZHNpLT5lbmNvZGVyLmZ1bmNz LT5kZXN0cm95KCZkc2ktPmVuY29kZXIpOwo+ICsKPiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShk c2ktPnBsbHJlZl9jbGspOwo+ICB9CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1032706AbeCAPu3 (ORCPT ); Thu, 1 Mar 2018 10:50:29 -0500 Received: from gloria.sntech.de ([95.129.55.99]:49232 "EHLO gloria.sntech.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1031899AbeCAPu2 (ORCPT ); Thu, 1 Mar 2018 10:50:28 -0500 From: Heiko =?ISO-8859-1?Q?St=FCbner?= To: dri-devel@lists.freedesktop.org Cc: Thierry Escande , Rob Herring , Archit Taneja , Daniel Vetter , Neil Armstrong , Laurent Pinchart , Sandy Huang , linux-rockchip@lists.infradead.org, Jeffy Chen , linux-kernel@vger.kernel.org, enric.balletbo@collabora.com Subject: Re: [PATCH v8 4/8] drm/rockchip: dw-mipi-dsi: Fix error handling path Date: Thu, 01 Mar 2018 16:50:18 +0100 Message-ID: <13219770.NOTAg9tncx@diego> In-Reply-To: <20180110162348.22765-5-thierry.escande@collabora.com> References: <20180110162348.22765-1-thierry.escande@collabora.com> <20180110162348.22765-5-thierry.escande@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 Jeffy, Thierry, Enric, Am Mittwoch, 10. Januar 2018, 17:23:44 CET schrieb Thierry Escande: > From: Jeffy Chen > > Add missing pm_runtime_disable() in bind()'s error handling path. > > Also cleanup encoder & connector in unbind(). Can you please split all these surprise "Also" sections into separate patches? It looks like this is true for all following patch to some degree and the inno-hdmi patch even has a unbind reordering-change without mentioning it in the commit message. Thanks Heiko > Fixes: 80a9a059d4e4 ("drm/rockchip/dsi: add dw-mipi power domain support") > Signed-off-by: Jeffy Chen > Signed-off-by: Thierry Escande > --- > drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 21 +++++++++++++-------- > 1 file changed, 13 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c index b1fe0639227e..78e6b7919bf7 > 100644 > --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > @@ -1282,7 +1282,7 @@ static int dw_mipi_dsi_bind(struct device *dev, struct > device *master, ret = dw_mipi_dsi_register(drm, dsi); > if (ret) { > DRM_DEV_ERROR(dev, "Failed to register mipi_dsi: %d\n", ret); > - goto err_pllref; > + goto err_disable_pllref; > } > > dsi->dsi_host.ops = &dw_mipi_dsi_host_ops; > @@ -1290,24 +1290,25 @@ static int dw_mipi_dsi_bind(struct device *dev, > struct device *master, ret = mipi_dsi_host_register(&dsi->dsi_host); > if (ret) { > DRM_DEV_ERROR(dev, "Failed to register MIPI host: %d\n", ret); > - goto err_cleanup; > + goto err_disable_pm_runtime; > } > > if (!dsi->panel) { > ret = -EPROBE_DEFER; > - goto err_mipi_dsi_host; > + goto err_unreg_mipi_dsi_host; > } > > dev_set_drvdata(dev, dsi); > pm_runtime_enable(dev); > return 0; > > -err_mipi_dsi_host: > +err_unreg_mipi_dsi_host: > mipi_dsi_host_unregister(&dsi->dsi_host); > -err_cleanup: > - drm_encoder_cleanup(&dsi->encoder); > - drm_connector_cleanup(&dsi->connector); > -err_pllref: > +err_disable_pm_runtime: > + pm_runtime_disable(dev); > + dsi->connector.funcs->destroy(&dsi->connector); > + dsi->encoder.funcs->destroy(&dsi->encoder); > +err_disable_pllref: > clk_disable_unprepare(dsi->pllref_clk); > return ret; > } > @@ -1319,6 +1320,10 @@ static void dw_mipi_dsi_unbind(struct device *dev, > struct device *master, > > mipi_dsi_host_unregister(&dsi->dsi_host); > pm_runtime_disable(dev); > + > + dsi->connector.funcs->destroy(&dsi->connector); > + dsi->encoder.funcs->destroy(&dsi->encoder); > + > clk_disable_unprepare(dsi->pllref_clk); > }