From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8EF12C43441 for ; Tue, 20 Nov 2018 04:05:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 31E0520831 for ; Tue, 20 Nov 2018 04:05:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 31E0520831 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-clk-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730281AbeKTOcW (ORCPT ); Tue, 20 Nov 2018 09:32:22 -0500 Received: from mailgw01.mediatek.com ([210.61.82.183]:18886 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727880AbeKTOcW (ORCPT ); Tue, 20 Nov 2018 09:32:22 -0500 X-UUID: 4d8dd9fe956c43518796be80f9bd28a2-20181120 X-UUID: 4d8dd9fe956c43518796be80f9bd28a2-20181120 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw01.mediatek.com (envelope-from ) (mhqrelay.mediatek.com ESMTP with TLS) with ESMTP id 1444458154; Tue, 20 Nov 2018 12:05:14 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs08n1.mediatek.inc (172.21.101.55) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 20 Nov 2018 12:05:00 +0800 Received: from [172.21.77.4] (172.21.77.4) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Tue, 20 Nov 2018 12:05:00 +0800 Message-ID: <1542686700.9073.15.camel@mtksdaap41> Subject: Re: [PATCH v5 05/12] drm: mediatek: Omit warning on probe defers From: CK Hu To: Matthias Brugger CC: , , , , , , , , , , , , , , , , , , , Matthias Brugger Date: Tue, 20 Nov 2018 12:05:00 +0800 In-Reply-To: <0a02edf9-78da-dde9-4b69-38c4719b711b@gmail.com> References: <20181116125449.23581-1-matthias.bgg@kernel.org> <20181116125449.23581-6-matthias.bgg@kernel.org> <1542605939.32082.12.camel@mtksdaap41> <0a02edf9-78da-dde9-4b69-38c4719b711b@gmail.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-MTK: N Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org Hi, Matthias: On Mon, 2018-11-19 at 10:26 +0100, Matthias Brugger wrote: > > On 19/11/2018 06:38, CK Hu wrote: > > Hi, Matthias: > > > > On Fri, 2018-11-16 at 13:54 +0100, matthias.bgg@kernel.org wrote: > >> From: Matthias Brugger > >> > >> It can happen that the mmsys clock drivers aren't probed before the > >> platform driver gets invoked. The platform driver used to print a warning > >> that the driver failed to get the clocks. Omit this error on > >> the defered probe path. > > > > This patch looks good to me, but you have not modified the sub driver in > > HDMI path. We could let HDMI path print the warning and someone send > > another patch later, or you modify for HDMI path in this patch. > > Sure, I'll add this in v6. After inspecting the code, I think we will need to > also check for not initialized clocks in mtk_mdp_comp_init, as the driver for > now does not even check if the clocks are present. What do you think? Yes, we do really need to consider mdp driver because mmsys clock include mdp clock. You remind me that mmsys control 4 major function: drm routing, drm clock, mdp routing, and mdp clock. Your design let the mmsys device as drm device (control drm routing) and create a sub device as clock device (control drm clock, mdp clock). If one day mdp device (may need control drm routing) need to control the register of mdp routing, would mdp device be a sub device? Or we need not to consider this because it need not to access mmsys register now? Regards, CK > > I'll address the coding style issue you metioned below as well. > > Regards, > Matthias > > >> > >> Signed-off-by: Matthias Brugger > >> --- > >> drivers/gpu/drm/mediatek/mtk_disp_color.c | 4 +++- > >> drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 4 +++- > >> drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 4 +++- > >> drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 3 ++- > >> drivers/gpu/drm/mediatek/mtk_dsi.c | 6 ++++-- > >> 5 files changed, 15 insertions(+), 6 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_color.c b/drivers/gpu/drm/mediatek/mtk_disp_color.c > >> index f609b62b8be6..1ea3178d4c18 100644 > >> --- a/drivers/gpu/drm/mediatek/mtk_disp_color.c > >> +++ b/drivers/gpu/drm/mediatek/mtk_disp_color.c > >> @@ -126,7 +126,9 @@ static int mtk_disp_color_probe(struct platform_device *pdev) > >> ret = mtk_ddp_comp_init(dev, dev->of_node, &priv->ddp_comp, comp_id, > >> &mtk_disp_color_funcs); > >> if (ret) { > >> - dev_err(dev, "Failed to initialize component: %d\n", ret); > >> + if (ret != -EPROBE_DEFER) > >> + dev_err(dev, "Failed to initialize component: %d\n", > >> + ret); > > > > I would like one more blank line here. > > > >> return ret; > >> } > >> > >> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > >> index 28d191192945..5ebbcaa4e70e 100644 > >> --- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > >> +++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > >> @@ -293,7 +293,9 @@ static int mtk_disp_ovl_probe(struct platform_device *pdev) > >> ret = mtk_ddp_comp_init(dev, dev->of_node, &priv->ddp_comp, comp_id, > >> &mtk_disp_ovl_funcs); > >> if (ret) { > >> - dev_err(dev, "Failed to initialize component: %d\n", ret); > >> + if (ret != -EPROBE_DEFER) > >> + dev_err(dev, "Failed to initialize component: %d\n", > >> + ret); > > > > I would like to align to the right of '('. > > > > Regards, > > CK > > > >> return ret; > >> } > >> > >> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c > >> index b0a5cffe345a..59a08ed5fea5 100644 > >> --- a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c > >> +++ b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c > >> @@ -295,7 +295,9 @@ static int mtk_disp_rdma_probe(struct platform_device *pdev) > >> ret = mtk_ddp_comp_init(dev, dev->of_node, &priv->ddp_comp, comp_id, > >> &mtk_disp_rdma_funcs); > >> if (ret) { > >> - dev_err(dev, "Failed to initialize component: %d\n", ret); > >> + if (ret != -EPROBE_DEFER) > >> + dev_err(dev, "Failed to initialize component: %d\n", > >> + ret); > >> return ret; > >> } > >> > >> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c > >> index b06cd9d4b525..b76a2d071a97 100644 > >> --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c > >> +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c > >> @@ -566,7 +566,8 @@ static int mtk_ddp_probe(struct platform_device *pdev) > >> > >> ddp->clk = devm_clk_get(dev, NULL); > >> if (IS_ERR(ddp->clk)) { > >> - dev_err(dev, "Failed to get clock\n"); > >> + if (PTR_ERR(ddp->clk) != -EPROBE_DEFER) > >> + dev_err(dev, "Failed to get clock\n"); > >> return PTR_ERR(ddp->clk); > >> } > >> > >> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c > >> index 90109a0d6fff..cc6de75636c3 100644 > >> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c > >> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c > >> @@ -1103,14 +1103,16 @@ static int mtk_dsi_probe(struct platform_device *pdev) > >> dsi->engine_clk = devm_clk_get(dev, "engine"); > >> if (IS_ERR(dsi->engine_clk)) { > >> ret = PTR_ERR(dsi->engine_clk); > >> - dev_err(dev, "Failed to get engine clock: %d\n", ret); > >> + if (ret != -EPROBE_DEFER) > >> + dev_err(dev, "Failed to get engine clock: %d\n", ret); > >> return ret; > >> } > >> > >> dsi->digital_clk = devm_clk_get(dev, "digital"); > >> if (IS_ERR(dsi->digital_clk)) { > >> ret = PTR_ERR(dsi->digital_clk); > >> - dev_err(dev, "Failed to get digital clock: %d\n", ret); > >> + if (ret != -EPROBE_DEFER) > >> + dev_err(dev, "Failed to get digital clock: %d\n", ret); > >> return ret; > >> } > >> > > > > From mboxrd@z Thu Jan 1 00:00:00 1970 From: CK Hu Subject: Re: [PATCH v5 05/12] drm: mediatek: Omit warning on probe defers Date: Tue, 20 Nov 2018 12:05:00 +0800 Message-ID: <1542686700.9073.15.camel@mtksdaap41> References: <20181116125449.23581-1-matthias.bgg@kernel.org> <20181116125449.23581-6-matthias.bgg@kernel.org> <1542605939.32082.12.camel@mtksdaap41> <0a02edf9-78da-dde9-4b69-38c4719b711b@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <0a02edf9-78da-dde9-4b69-38c4719b711b@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Matthias Brugger Cc: mark.rutland@arm.com, devicetree@vger.kernel.org, sean.wang@kernel.org, Matthias Brugger , airlied@linux.ie, mturquette@baylibre.com, sean.wang@mediatek.com, sboyd@codeaurora.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, wens@csie.org, robh+dt@kernel.org, rdunlap@infradead.org, laurent.pinchart@ideasonboard.com, matthias.bgg@kernel.org, ulrich.hecht+renesas@gmail.com, linux-mediatek@lists.infradead.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org List-Id: linux-mediatek@lists.infradead.org SGksIE1hdHRoaWFzOgoKT24gTW9uLCAyMDE4LTExLTE5IGF0IDEwOjI2ICswMTAwLCBNYXR0aGlh cyBCcnVnZ2VyIHdyb3RlOgo+IAo+IE9uIDE5LzExLzIwMTggMDY6MzgsIENLIEh1IHdyb3RlOgo+ ID4gSGksIE1hdHRoaWFzOgo+ID4gCj4gPiBPbiBGcmksIDIwMTgtMTEtMTYgYXQgMTM6NTQgKzAx MDAsIG1hdHRoaWFzLmJnZ0BrZXJuZWwub3JnIHdyb3RlOgo+ID4+IEZyb206IE1hdHRoaWFzIEJy dWdnZXIgPG1icnVnZ2VyQHN1c2UuY29tPgo+ID4+Cj4gPj4gSXQgY2FuIGhhcHBlbiB0aGF0IHRo ZSBtbXN5cyBjbG9jayBkcml2ZXJzIGFyZW4ndCBwcm9iZWQgYmVmb3JlIHRoZQo+ID4+IHBsYXRm b3JtIGRyaXZlciBnZXRzIGludm9rZWQuIFRoZSBwbGF0Zm9ybSBkcml2ZXIgdXNlZCB0byBwcmlu dCBhIHdhcm5pbmcKPiA+PiB0aGF0IHRoZSBkcml2ZXIgZmFpbGVkIHRvIGdldCB0aGUgY2xvY2tz LiBPbWl0IHRoaXMgZXJyb3Igb24KPiA+PiB0aGUgZGVmZXJlZCBwcm9iZSBwYXRoLgo+ID4gCj4g PiBUaGlzIHBhdGNoIGxvb2tzIGdvb2QgdG8gbWUsIGJ1dCB5b3UgaGF2ZSBub3QgbW9kaWZpZWQg dGhlIHN1YiBkcml2ZXIgaW4KPiA+IEhETUkgcGF0aC4gV2UgY291bGQgbGV0IEhETUkgcGF0aCBw cmludCB0aGUgd2FybmluZyBhbmQgc29tZW9uZSBzZW5kCj4gPiBhbm90aGVyIHBhdGNoIGxhdGVy LCBvciB5b3UgbW9kaWZ5IGZvciBIRE1JIHBhdGggaW4gdGhpcyBwYXRjaC4KPiAKPiBTdXJlLCBJ J2xsIGFkZCB0aGlzIGluIHY2LiBBZnRlciBpbnNwZWN0aW5nIHRoZSBjb2RlLCBJIHRoaW5rIHdl IHdpbGwgbmVlZCB0bwo+IGFsc28gY2hlY2sgZm9yIG5vdCBpbml0aWFsaXplZCBjbG9ja3MgaW4g bXRrX21kcF9jb21wX2luaXQsIGFzIHRoZSBkcml2ZXIgZm9yCj4gbm93IGRvZXMgbm90IGV2ZW4g Y2hlY2sgaWYgdGhlIGNsb2NrcyBhcmUgcHJlc2VudC4gV2hhdCBkbyB5b3UgdGhpbms/CgpZZXMs IHdlIGRvIHJlYWxseSBuZWVkIHRvIGNvbnNpZGVyIG1kcCBkcml2ZXIgYmVjYXVzZSBtbXN5cyBj bG9jawppbmNsdWRlIG1kcCBjbG9jay4gWW91IHJlbWluZCBtZSB0aGF0IG1tc3lzIGNvbnRyb2wg NCBtYWpvciBmdW5jdGlvbjoKZHJtIHJvdXRpbmcsIGRybSBjbG9jaywgbWRwIHJvdXRpbmcsIGFu ZCBtZHAgY2xvY2suIFlvdXIgZGVzaWduIGxldCB0aGUKbW1zeXMgZGV2aWNlIGFzIGRybSBkZXZp Y2UgKGNvbnRyb2wgZHJtIHJvdXRpbmcpIGFuZCBjcmVhdGUgYSBzdWIgZGV2aWNlCmFzIGNsb2Nr IGRldmljZSAoY29udHJvbCBkcm0gY2xvY2ssIG1kcCBjbG9jaykuIElmIG9uZSBkYXkgbWRwIGRl dmljZQoobWF5IG5lZWQgY29udHJvbCBkcm0gcm91dGluZykgbmVlZCB0byBjb250cm9sIHRoZSBy ZWdpc3RlciBvZiBtZHAKcm91dGluZywgd291bGQgbWRwIGRldmljZSBiZSBhIHN1YiBkZXZpY2U/ IE9yIHdlIG5lZWQgbm90IHRvIGNvbnNpZGVyCnRoaXMgYmVjYXVzZSBpdCBuZWVkIG5vdCB0byBh Y2Nlc3MgbW1zeXMgcmVnaXN0ZXIgbm93PwoKUmVnYXJkcywKQ0sKCj4gCj4gSSdsbCBhZGRyZXNz IHRoZSBjb2Rpbmcgc3R5bGUgaXNzdWUgeW91IG1ldGlvbmVkIGJlbG93IGFzIHdlbGwuCj4gCj4g UmVnYXJkcywKPiBNYXR0aGlhcwo+IAo+ID4+Cj4gPj4gU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMg QnJ1Z2dlciA8bWJydWdnZXJAc3VzZS5jb20+Cj4gPj4gLS0tCj4gPj4gIGRyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZGlzcF9jb2xvci5jIHwgNCArKystCj4gPj4gIGRyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZGlzcF9vdmwuYyAgIHwgNCArKystCj4gPj4gIGRyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZGlzcF9yZG1hLmMgIHwgNCArKystCj4gPj4gIGRyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2RkcC5jICAgIHwgMyArKy0KPiA+PiAgZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kc2kuYyAgICAgICAgfCA2ICsrKystLQo+ID4+ICA1IGZpbGVzIGNoYW5n ZWQsIDE1IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4gPj4KPiA+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX2NvbG9yLmMgYi9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfY29sb3IuYwo+ID4+IGluZGV4IGY2MDliNjJiOGJlNi4u MWVhMzE3OGQ0YzE4IDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZGlzcF9jb2xvci5jCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k aXNwX2NvbG9yLmMKPiA+PiBAQCAtMTI2LDcgKzEyNiw5IEBAIHN0YXRpYyBpbnQgbXRrX2Rpc3Bf Y29sb3JfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiA+PiAgCXJldCA9IG10 a19kZHBfY29tcF9pbml0KGRldiwgZGV2LT5vZl9ub2RlLCAmcHJpdi0+ZGRwX2NvbXAsIGNvbXBf aWQsCj4gPj4gIAkJCQkmbXRrX2Rpc3BfY29sb3JfZnVuY3MpOwo+ID4+ICAJaWYgKHJldCkgewo+ ID4+IC0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGluaXRpYWxpemUgY29tcG9uZW50OiAlZFxu IiwgcmV0KTsKPiA+PiArCQlpZiAocmV0ICE9IC1FUFJPQkVfREVGRVIpCj4gPj4gKwkJCWRldl9l cnIoZGV2LCAiRmFpbGVkIHRvIGluaXRpYWxpemUgY29tcG9uZW50OiAlZFxuIiwKPiA+PiArCQkJ CQlyZXQpOwo+ID4gCj4gPiBJIHdvdWxkIGxpa2Ugb25lIG1vcmUgYmxhbmsgbGluZSBoZXJlLgo+ ID4gCj4gPj4gIAkJcmV0dXJuIHJldDsKPiA+PiAgCX0KPiA+PiAgCj4gPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9vdmwuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZGlzcF9vdmwuYwo+ID4+IGluZGV4IDI4ZDE5MTE5Mjk0NS4uNWViYmNh YTRlNzBlIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlz cF9vdmwuYwo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9vdmwu Ywo+ID4+IEBAIC0yOTMsNyArMjkzLDkgQEAgc3RhdGljIGludCBtdGtfZGlzcF9vdmxfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiA+PiAgCXJldCA9IG10a19kZHBfY29tcF9p bml0KGRldiwgZGV2LT5vZl9ub2RlLCAmcHJpdi0+ZGRwX2NvbXAsIGNvbXBfaWQsCj4gPj4gIAkJ CQkmbXRrX2Rpc3Bfb3ZsX2Z1bmNzKTsKPiA+PiAgCWlmIChyZXQpIHsKPiA+PiAtCQlkZXZfZXJy KGRldiwgIkZhaWxlZCB0byBpbml0aWFsaXplIGNvbXBvbmVudDogJWRcbiIsIHJldCk7Cj4gPj4g KwkJaWYgKHJldCAhPSAtRVBST0JFX0RFRkVSKQo+ID4+ICsJCQlkZXZfZXJyKGRldiwgIkZhaWxl ZCB0byBpbml0aWFsaXplIGNvbXBvbmVudDogJWRcbiIsCj4gPj4gKwkJCQkJcmV0KTsKPiA+IAo+ ID4gSSB3b3VsZCBsaWtlIHRvIGFsaWduIHRvIHRoZSByaWdodCBvZiAnKCcuCj4gPiAKPiA+IFJl Z2FyZHMsCj4gPiBDSwo+ID4gCj4gPj4gIAkJcmV0dXJuIHJldDsKPiA+PiAgCX0KPiA+PiAgCj4g Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9yZG1hLmMg Yi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfcmRtYS5jCj4gPj4gaW5kZXggYjBh NWNmZmUzNDVhLi41OWEwOGVkNWZlYTUgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kaXNwX3JkbWEuYwo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZGlzcF9yZG1hLmMKPiA+PiBAQCAtMjk1LDcgKzI5NSw5IEBAIHN0YXRpYyBpbnQg bXRrX2Rpc3BfcmRtYV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4+ICAJ cmV0ID0gbXRrX2RkcF9jb21wX2luaXQoZGV2LCBkZXYtPm9mX25vZGUsICZwcml2LT5kZHBfY29t cCwgY29tcF9pZCwKPiA+PiAgCQkJCSZtdGtfZGlzcF9yZG1hX2Z1bmNzKTsKPiA+PiAgCWlmIChy ZXQpIHsKPiA+PiAtCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBpbml0aWFsaXplIGNvbXBvbmVu dDogJWRcbiIsIHJldCk7Cj4gPj4gKwkJaWYgKHJldCAhPSAtRVBST0JFX0RFRkVSKQo+ID4+ICsJ CQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBpbml0aWFsaXplIGNvbXBvbmVudDogJWRcbiIsCj4g Pj4gKwkJCQkJcmV0KTsKPiA+PiAgCQlyZXR1cm4gcmV0Owo+ID4+ICAJfQo+ID4+ICAKPiA+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmMgYi9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuYwo+ID4+IGluZGV4IGIwNmNkOWQ0YjUy NS4uYjc2YTJkMDcxYTk3IDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9tdGtfZHJtX2RkcC5jCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k cm1fZGRwLmMKPiA+PiBAQCAtNTY2LDcgKzU2Niw4IEBAIHN0YXRpYyBpbnQgbXRrX2RkcF9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4+ICAKPiA+PiAgCWRkcC0+Y2xrID0g ZGV2bV9jbGtfZ2V0KGRldiwgTlVMTCk7Cj4gPj4gIAlpZiAoSVNfRVJSKGRkcC0+Y2xrKSkgewo+ ID4+IC0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBjbG9ja1xuIik7Cj4gPj4gKwkJaWYg KFBUUl9FUlIoZGRwLT5jbGspICE9IC1FUFJPQkVfREVGRVIpCj4gPj4gKwkJCWRldl9lcnIoZGV2 LCAiRmFpbGVkIHRvIGdldCBjbG9ja1xuIik7Cj4gPj4gIAkJcmV0dXJuIFBUUl9FUlIoZGRwLT5j bGspOwo+ID4+ICAJfQo+ID4+ICAKPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMKPiA+ PiBpbmRleCA5MDEwOWEwZDZmZmYuLmNjNmRlNzU2MzZjMyAxMDA2NDQKPiA+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kc2kuYwo+ID4+IEBAIC0xMTAzLDE0ICsxMTAzLDE2IEBAIHN0YXRpYyBp bnQgbXRrX2RzaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4+ICAJZHNp LT5lbmdpbmVfY2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgImVuZ2luZSIpOwo+ID4+ICAJaWYgKElT X0VSUihkc2ktPmVuZ2luZV9jbGspKSB7Cj4gPj4gIAkJcmV0ID0gUFRSX0VSUihkc2ktPmVuZ2lu ZV9jbGspOwo+ID4+IC0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBlbmdpbmUgY2xvY2s6 ICVkXG4iLCByZXQpOwo+ID4+ICsJCWlmIChyZXQgIT0gLUVQUk9CRV9ERUZFUikKPiA+PiArCQkJ ZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0IGVuZ2luZSBjbG9jazogJWRcbiIsIHJldCk7Cj4g Pj4gIAkJcmV0dXJuIHJldDsKPiA+PiAgCX0KPiA+PiAgCj4gPj4gIAlkc2ktPmRpZ2l0YWxfY2xr ID0gZGV2bV9jbGtfZ2V0KGRldiwgImRpZ2l0YWwiKTsKPiA+PiAgCWlmIChJU19FUlIoZHNpLT5k aWdpdGFsX2NsaykpIHsKPiA+PiAgCQlyZXQgPSBQVFJfRVJSKGRzaS0+ZGlnaXRhbF9jbGspOwo+ ID4+IC0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBkaWdpdGFsIGNsb2NrOiAlZFxuIiwg cmV0KTsKPiA+PiArCQlpZiAocmV0ICE9IC1FUFJPQkVfREVGRVIpCj4gPj4gKwkJCWRldl9lcnIo ZGV2LCAiRmFpbGVkIHRvIGdldCBkaWdpdGFsIGNsb2NrOiAlZFxuIiwgcmV0KTsKPiA+PiAgCQly ZXR1cm4gcmV0Owo+ID4+ICAJfQo+ID4+ICAKPiA+IAo+ID4gCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: ck.hu@mediatek.com (CK Hu) Date: Tue, 20 Nov 2018 12:05:00 +0800 Subject: [PATCH v5 05/12] drm: mediatek: Omit warning on probe defers In-Reply-To: <0a02edf9-78da-dde9-4b69-38c4719b711b@gmail.com> References: <20181116125449.23581-1-matthias.bgg@kernel.org> <20181116125449.23581-6-matthias.bgg@kernel.org> <1542605939.32082.12.camel@mtksdaap41> <0a02edf9-78da-dde9-4b69-38c4719b711b@gmail.com> Message-ID: <1542686700.9073.15.camel@mtksdaap41> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi, Matthias: On Mon, 2018-11-19 at 10:26 +0100, Matthias Brugger wrote: > > On 19/11/2018 06:38, CK Hu wrote: > > Hi, Matthias: > > > > On Fri, 2018-11-16 at 13:54 +0100, matthias.bgg at kernel.org wrote: > >> From: Matthias Brugger > >> > >> It can happen that the mmsys clock drivers aren't probed before the > >> platform driver gets invoked. The platform driver used to print a warning > >> that the driver failed to get the clocks. Omit this error on > >> the defered probe path. > > > > This patch looks good to me, but you have not modified the sub driver in > > HDMI path. We could let HDMI path print the warning and someone send > > another patch later, or you modify for HDMI path in this patch. > > Sure, I'll add this in v6. After inspecting the code, I think we will need to > also check for not initialized clocks in mtk_mdp_comp_init, as the driver for > now does not even check if the clocks are present. What do you think? Yes, we do really need to consider mdp driver because mmsys clock include mdp clock. You remind me that mmsys control 4 major function: drm routing, drm clock, mdp routing, and mdp clock. Your design let the mmsys device as drm device (control drm routing) and create a sub device as clock device (control drm clock, mdp clock). If one day mdp device (may need control drm routing) need to control the register of mdp routing, would mdp device be a sub device? Or we need not to consider this because it need not to access mmsys register now? Regards, CK > > I'll address the coding style issue you metioned below as well. > > Regards, > Matthias > > >> > >> Signed-off-by: Matthias Brugger > >> --- > >> drivers/gpu/drm/mediatek/mtk_disp_color.c | 4 +++- > >> drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 4 +++- > >> drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 4 +++- > >> drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 3 ++- > >> drivers/gpu/drm/mediatek/mtk_dsi.c | 6 ++++-- > >> 5 files changed, 15 insertions(+), 6 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_color.c b/drivers/gpu/drm/mediatek/mtk_disp_color.c > >> index f609b62b8be6..1ea3178d4c18 100644 > >> --- a/drivers/gpu/drm/mediatek/mtk_disp_color.c > >> +++ b/drivers/gpu/drm/mediatek/mtk_disp_color.c > >> @@ -126,7 +126,9 @@ static int mtk_disp_color_probe(struct platform_device *pdev) > >> ret = mtk_ddp_comp_init(dev, dev->of_node, &priv->ddp_comp, comp_id, > >> &mtk_disp_color_funcs); > >> if (ret) { > >> - dev_err(dev, "Failed to initialize component: %d\n", ret); > >> + if (ret != -EPROBE_DEFER) > >> + dev_err(dev, "Failed to initialize component: %d\n", > >> + ret); > > > > I would like one more blank line here. > > > >> return ret; > >> } > >> > >> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > >> index 28d191192945..5ebbcaa4e70e 100644 > >> --- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > >> +++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > >> @@ -293,7 +293,9 @@ static int mtk_disp_ovl_probe(struct platform_device *pdev) > >> ret = mtk_ddp_comp_init(dev, dev->of_node, &priv->ddp_comp, comp_id, > >> &mtk_disp_ovl_funcs); > >> if (ret) { > >> - dev_err(dev, "Failed to initialize component: %d\n", ret); > >> + if (ret != -EPROBE_DEFER) > >> + dev_err(dev, "Failed to initialize component: %d\n", > >> + ret); > > > > I would like to align to the right of '('. > > > > Regards, > > CK > > > >> return ret; > >> } > >> > >> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c > >> index b0a5cffe345a..59a08ed5fea5 100644 > >> --- a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c > >> +++ b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c > >> @@ -295,7 +295,9 @@ static int mtk_disp_rdma_probe(struct platform_device *pdev) > >> ret = mtk_ddp_comp_init(dev, dev->of_node, &priv->ddp_comp, comp_id, > >> &mtk_disp_rdma_funcs); > >> if (ret) { > >> - dev_err(dev, "Failed to initialize component: %d\n", ret); > >> + if (ret != -EPROBE_DEFER) > >> + dev_err(dev, "Failed to initialize component: %d\n", > >> + ret); > >> return ret; > >> } > >> > >> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c > >> index b06cd9d4b525..b76a2d071a97 100644 > >> --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c > >> +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c > >> @@ -566,7 +566,8 @@ static int mtk_ddp_probe(struct platform_device *pdev) > >> > >> ddp->clk = devm_clk_get(dev, NULL); > >> if (IS_ERR(ddp->clk)) { > >> - dev_err(dev, "Failed to get clock\n"); > >> + if (PTR_ERR(ddp->clk) != -EPROBE_DEFER) > >> + dev_err(dev, "Failed to get clock\n"); > >> return PTR_ERR(ddp->clk); > >> } > >> > >> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c > >> index 90109a0d6fff..cc6de75636c3 100644 > >> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c > >> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c > >> @@ -1103,14 +1103,16 @@ static int mtk_dsi_probe(struct platform_device *pdev) > >> dsi->engine_clk = devm_clk_get(dev, "engine"); > >> if (IS_ERR(dsi->engine_clk)) { > >> ret = PTR_ERR(dsi->engine_clk); > >> - dev_err(dev, "Failed to get engine clock: %d\n", ret); > >> + if (ret != -EPROBE_DEFER) > >> + dev_err(dev, "Failed to get engine clock: %d\n", ret); > >> return ret; > >> } > >> > >> dsi->digital_clk = devm_clk_get(dev, "digital"); > >> if (IS_ERR(dsi->digital_clk)) { > >> ret = PTR_ERR(dsi->digital_clk); > >> - dev_err(dev, "Failed to get digital clock: %d\n", ret); > >> + if (ret != -EPROBE_DEFER) > >> + dev_err(dev, "Failed to get digital clock: %d\n", ret); > >> return ret; > >> } > >> > > > >