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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 8C82EC433DB for ; Mon, 15 Feb 2021 11:33:11 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 120D564D5D for ; Mon, 15 Feb 2021 11:33:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 120D564D5D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8B6FE6E0DD; Mon, 15 Feb 2021 11:33:10 +0000 (UTC) Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id AB7526E0DD for ; Mon, 15 Feb 2021 11:33:09 +0000 (UTC) Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 8E421743; Mon, 15 Feb 2021 12:33:07 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1613388787; bh=BSgf0lC6W+ct3DtqLQSUhG6tO3u7JlCBUaYD+QzMLM0=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=EgmmopHf3kv7TTNawif/+EmlpdCSDo47+mb7iaF061ccajG0OBzJWsU4PdRxuWaOf +9pQNVksrZh4rGKm/H7yo83wluOvxiHwGhDVm9DCdn8JfOvCBpTe20OgvDz4r10YSA NsMjd/tXZmAeh14fMAkEW9j0V8I82GJb5dkuAMuw= Date: Mon, 15 Feb 2021 13:32:41 +0200 From: Laurent Pinchart To: Heiko =?utf-8?Q?St=C3=BCbner?= Subject: Re: [PATCH] drm/bridge: dw-mipi-dsi: Move drm_bridge_add into probe Message-ID: References: <20210203091306.140518-1-jagan@amarulasolutions.com> <1660529.M3retTD8dW@diego> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1660529.M3retTD8dW@diego> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Neil Armstrong , Sam Ravnborg , Jonas Karlman , Sandy Huang , dri-devel@lists.freedesktop.org, Philippe Cornu , Yannick Fertre , Andrzej Hajda , Jagan Teki , Benjamin Gaignard , Vincent Abriou , linux-amarula@amarulasolutions.com, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgSGVpa28sCgpPbiBXZWQsIEZlYiAwMywgMjAyMSBhdCAwMTowNTo0M1BNICswMTAwLCBIZWlr byBTdMO8Ym5lciB3cm90ZToKPiBBbSBNaXR0d29jaCwgMy4gRmVicnVhciAyMDIxLCAxMDoxMzow NiBDRVQgc2NocmllYiBKYWdhbiBUZWtpOgo+ID4gVXN1YWwgSTJDIGNvbmZpZ3VyZWQgRFNJIGJy aWRnZSBkcml2ZXJzIGhhdmUgZHJtX2JyaWRnZV9hZGQKPiA+IGluIHByb2JlIGFuZCBtaXBpX2Rz aV9hdHRhY2ggaW4gYnJpZGdlIGF0dGFjaCBmdW5jdGlvbnMuCj4gPiAKPiA+IFdpdGgsIHRoaXMg YXBwcm9hY2ggdGhlIGRybSBwaXBlbGluZSBpcyB1bmFibGUgdG8gZmluZCB0aGUKPiA+IGRzaSBi cmlkZ2UgaW4gc3RtIGRybSBkcml2ZXJzIHNpbmNlIHRoZSBkdy1taXBpLWRzaSBicmlkZ2UgaXMK PiA+IGFkZGluZyBkcm0gYnJpZGdlIGR1cmluZyBicmlkZ2UgYXR0YWNoIG9wZXJhdGlvbnMgaW5z dGVhZCBvZgo+ID4gdGhlIHByb2JlLgo+IAo+IFNob3VsZG4ndCB0aGUgU1RNIGRybSBkcml2ZXIg bm90IHNpbXBseSBkZWZlciBpZiBpdCdzIG1pc3NpbmcKPiBhIGJyaWRnZSB0aGF0IGlzIHJlZmVy ZW5jZWQgaW4gdGhlIGRldmljZXRyZWUgb3Igc29tZXdoZXJlPwo+IAo+ID4gVGhpcyBzcGVjaWZp YyBpc3N1ZSBtYXkgbm90IGVuY291bnRlciBmb3Igcm9ja2NoaXAgZHJtIGRzaQo+ID4gZHJpdmVy cywgc2luY2Ugcm9ja2NoaXAgZHJtIHVzZXMgY29tcG9uZW50IGJpbmRpbmcgb3BlcmF0aW9ucywK PiA+IHVubGlrZSBzdG0gZHJtIGRyaXZlcnMuCj4gPiAKPiA+IFNvLCBwb3NzaWJsZSBzb2x1dGlv bnMgYXJlCj4gPiAxLiBNb3ZlIGRybV9icmlkZ2VfYWRkIGludG8gdGhlIGR3LW1pcGktZHNpIHBy b2JlLgo+ID4gMi4gQWRkIG1pcGlfZHNpX2F0dGFjaCBpbiB0aGUgYnJpZGdlIGRyaXZlcnMgcHJv YmUuCj4gPiAzLiBBZGQgY29tcG9uZW50IGJpbmRpbmcgb3BlcmF0aW9ucyBmb3Igc3RtIGRybSBk cml2ZXJzLgo+IAo+IHBlcnNvbmFsbHkgSSdkIGxpa2UgbnVtYmVyICgzKSBhIGxvdCA7LSkgLgoK V2UgaGF2ZSBkaWZmZXJlbnQgb3BpbmlvbnMgb24gdGhpcyB0b3BpYyA6LSkgVGhlIGNvbXBvbmVu dCBmcmFtZXdvcmsKYWRkcyBhIGxheWVyIG9mIGNvbXBsZXhpdHkgdGhhdCBjYW4gYmUgYXZvaWRl ZCB3aXRoIHByb2JlIGRlZmVycmFsIGluCm1vc3QgY2FzZXMuIFRoZSBtYWluIHJlYXNvbiB3aHkg cHJvYmUgZGVmZXJyYWwgaXNuJ3QgYWx3YXlzIGVub3VnaCBpcwpjaXJjdWxhciBkZXBlbmRlbmNp ZXMsIHdoaWNoIHVubGVzcyBJJ20gbWlzdGFrZW4gaXNuJ3QgYW4gaXNzdWUgaGVyZS4KCj4gV2l0 aCB5b3VyIGFwcHJvYWNoLCBhdCBsZWFzdCB0aGUgY29tcG9uZW50LWJhc2VkIHZhcmlhbnRzIHdv dWxkCj4gZW5kIHVwIHdpdGggbXVsdGlwbGUgcHJvYmUgY3ljbGVzLCBnZXR0aW5nIGNsb2NrcyBl dGMgdW50aWwgYXQgc29tZSBwb2ludAo+IHRoZSBwYW5lbCBoYXMgcHJvYmVkLCB3aGVyZSBpbiB0 aGUgY3VycmVudCB3YXkgb2YgdGhpbmdzLCB0aGUgcHJvYmUgaXMKPiBkb25lIG9uY2UgYW5kIHdl IGNvbnRpbnVlIGJyaW5ndXAgb25jZSB0aGUgcGFuZWwgaGFzIHByb2JlZCBhbmQgY2FsbGVkCj4g ZHNpLWF0dGFjaCB0byBzaWduYWwgaXQgaXMgcHJlc2VudC4KPiAKPiBXaGljaCB3YXMgYWN0dWFs bHkgd2hhdCBBbmRyemVqIHdpc2hlZCBmb3IsIHdoZW4gSSBtb3ZlZCB0aGUgUm9ja2NoaXAKPiBk c2kgdG8gdGhlIGNvbW1vbiBkcml2ZXIuCj4gCj4gT3IgYXQgbGVhc3QgbWFrZSBpdCBjb25maWd1 cmFibGUgdmlhIGEgcGFyYW0gdG8gdGhlIGNvbW1vbiBkdy1kc2kgcHJvYmUKPiBmdW5jdGlvbi4g RXNwZWNpYWxseSBhcyBJIGFsc28gbmVlZCB0aGUgZHNpIGJyaWRnZS1sZXNzIHdoZW4gdXNlZCBh cyBhCj4gc2ltcGxlIG1lYW5zIGZvciB0aGUgY29uZmlndXJpbmcgdGhlIGludGVybmFsIGRwaHkg dG8gcngtbW9kZSwgc2VlIFswXQo+IAo+IEhlaWtvCj4gCj4gWzBdIGh0dHBzOi8vbG9yZS5rZXJu ZWwub3JnL2RyaS1kZXZlbC8yMDIxMDIwMjE0NTYzMi4xMjYzMTM2LTEtaGVpa29Ac250ZWNoLmRl Lwo+IAo+ID4gT3B0aW9uIDEgaXMgYSByZWxhdGl2ZWx5IHBvc3NpYmxlIHNvbHV0aW9uIGFzIG1v c3Qgb2YgdGhlCj4gPiBtYWlubGluZSBkcm0gZHNpIHdpdGggYnJpZGdlIGRyaXZlcnMgaGF2ZSBh IHNpbWlsYXIgYXBwcm9hY2gKPiA+IHRvIHRoZWlyIGRzaSBob3N0IHZzIGJyaWRnZSByZWdpc3Ry YXRpb24uCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IEphZ2FuIFRla2kgPGphZ2FuQGFtYXJ1bGFz b2x1dGlvbnMuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5 cy9kdy1taXBpLWRzaS5jIHwgMzUgKysrKysrKysrLS0tLS0tLS0tLQo+ID4gIDEgZmlsZSBjaGFu Z2VkLCAxNyBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctbWlwaS1kc2kuYyBiL2RyaXZl cnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctbWlwaS1kc2kuYwo+ID4gaW5kZXggNmIyNjhm OTQ0NWIzLi44YTUzNTA0MWYwNzEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL3N5bm9wc3lzL2R3LW1pcGktZHNpLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlk Z2Uvc3lub3BzeXMvZHctbWlwaS1kc2kuYwo+ID4gQEAgLTMxNCw4ICszMTQsNiBAQCBzdGF0aWMg aW50IGR3X21pcGlfZHNpX2hvc3RfYXR0YWNoKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LAo+ ID4gIHsKPiA+ICAJc3RydWN0IGR3X21pcGlfZHNpICpkc2kgPSBob3N0X3RvX2RzaShob3N0KTsK PiA+ICAJY29uc3Qgc3RydWN0IGR3X21pcGlfZHNpX3BsYXRfZGF0YSAqcGRhdGEgPSBkc2ktPnBs YXRfZGF0YTsKPiA+IC0Jc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZTsKPiA+IC0Jc3RydWN0IGRy bV9wYW5lbCAqcGFuZWw7Cj4gPiAgCWludCByZXQ7Cj4gPiAgCj4gPiAgCWlmIChkZXZpY2UtPmxh bmVzID4gZHNpLT5wbGF0X2RhdGEtPm1heF9kYXRhX2xhbmVzKSB7Cj4gPiBAQCAtMzI5LDIyICsz MjcsNiBAQCBzdGF0aWMgaW50IGR3X21pcGlfZHNpX2hvc3RfYXR0YWNoKHN0cnVjdCBtaXBpX2Rz aV9ob3N0ICpob3N0LAo+ID4gIAlkc2ktPmZvcm1hdCA9IGRldmljZS0+Zm9ybWF0Owo+ID4gIAlk c2ktPm1vZGVfZmxhZ3MgPSBkZXZpY2UtPm1vZGVfZmxhZ3M7Cj4gPiAgCj4gPiAtCXJldCA9IGRy bV9vZl9maW5kX3BhbmVsX29yX2JyaWRnZShob3N0LT5kZXYtPm9mX25vZGUsIDEsIDAsCj4gPiAt CQkJCQkgICZwYW5lbCwgJmJyaWRnZSk7Cj4gPiAtCWlmIChyZXQpCj4gPiAtCQlyZXR1cm4gcmV0 Owo+ID4gLQo+ID4gLQlpZiAocGFuZWwpIHsKPiA+IC0JCWJyaWRnZSA9IGRybV9wYW5lbF9icmlk Z2VfYWRkX3R5cGVkKHBhbmVsLAo+ID4gLQkJCQkJCSAgICBEUk1fTU9ERV9DT05ORUNUT1JfRFNJ KTsKPiA+IC0JCWlmIChJU19FUlIoYnJpZGdlKSkKPiA+IC0JCQlyZXR1cm4gUFRSX0VSUihicmlk Z2UpOwo+ID4gLQl9Cj4gPiAtCj4gPiAtCWRzaS0+cGFuZWxfYnJpZGdlID0gYnJpZGdlOwo+ID4g LQo+ID4gLQlkcm1fYnJpZGdlX2FkZCgmZHNpLT5icmlkZ2UpOwo+ID4gLQo+ID4gIAlpZiAocGRh dGEtPmhvc3Rfb3BzICYmIHBkYXRhLT5ob3N0X29wcy0+YXR0YWNoKSB7Cj4gPiAgCQlyZXQgPSBw ZGF0YS0+aG9zdF9vcHMtPmF0dGFjaChwZGF0YS0+cHJpdl9kYXRhLCBkZXZpY2UpOwo+ID4gIAkJ aWYgKHJldCA8IDApCj4gPiBAQCAtMTEwNSw2ICsxMDg3LDggQEAgX19kd19taXBpX2RzaV9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ID4gIAlzdHJ1Y3QgZGV2aWNlICpkZXYg PSAmcGRldi0+ZGV2Owo+ID4gIAlzdHJ1Y3QgcmVzZXRfY29udHJvbCAqYXBiX3JzdDsKPiA+ICAJ c3RydWN0IGR3X21pcGlfZHNpICpkc2k7Cj4gPiArCXN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2U7 Cj4gPiArCXN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsOwo+ID4gIAlpbnQgcmV0Owo+ID4gIAo+ID4g IAlkc2kgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmRzaSksIEdGUF9LRVJORUwpOwo+ID4g QEAgLTExNjcsNiArMTE1MSwyMCBAQCBfX2R3X21pcGlfZHNpX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYsCj4gPiAgCWR3X21pcGlfZHNpX2RlYnVnZnNfaW5pdChkc2kpOwo+ID4g IAlwbV9ydW50aW1lX2VuYWJsZShkZXYpOwo+ID4gIAo+ID4gKwlyZXQgPSBkcm1fb2ZfZmluZF9w YW5lbF9vcl9icmlkZ2UoZGV2LT5vZl9ub2RlLCAxLCAwLAo+ID4gKwkJCQkJICAmcGFuZWwsICZi cmlkZ2UpOwo+ID4gKwlpZiAocmV0KQo+ID4gKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiA+ICsK PiA+ICsJaWYgKHBhbmVsKSB7Cj4gPiArCQlicmlkZ2UgPSBkcm1fcGFuZWxfYnJpZGdlX2FkZF90 eXBlZChwYW5lbCwKPiA+ICsJCQkJCQkgICAgRFJNX01PREVfQ09OTkVDVE9SX0RTSSk7Cj4gPiAr CQlpZiAoSVNfRVJSKGJyaWRnZSkpCj4gPiArCQkJcmV0dXJuIEVSUl9QVFIoLUVOT0RFVik7Cj4g PiArCX0KPiA+ICsKPiA+ICsJZHNpLT5wYW5lbF9icmlkZ2UgPSBicmlkZ2U7Cj4gPiArCj4gPiAg CWRzaS0+ZHNpX2hvc3Qub3BzID0gJmR3X21pcGlfZHNpX2hvc3Rfb3BzOwo+ID4gIAlkc2ktPmRz aV9ob3N0LmRldiA9IGRldjsKPiA+ICAJcmV0ID0gbWlwaV9kc2lfaG9zdF9yZWdpc3RlcigmZHNp LT5kc2lfaG9zdCk7Cj4gPiBAQCAtMTE4MSw2ICsxMTc5LDcgQEAgX19kd19taXBpX2RzaV9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ID4gICNpZmRlZiBDT05GSUdfT0YKPiA+ ICAJZHNpLT5icmlkZ2Uub2Zfbm9kZSA9IHBkZXYtPmRldi5vZl9ub2RlOwo+ID4gICNlbmRpZgo+ ID4gKwlkcm1fYnJpZGdlX2FkZCgmZHNpLT5icmlkZ2UpOwo+ID4gIAo+ID4gIAlyZXR1cm4gZHNp Owo+ID4gIH0KCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK 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=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 F0A34C433E0 for ; Mon, 15 Feb 2021 11:34:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9EFBF64DDA for ; Mon, 15 Feb 2021 11:34:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230005AbhBOLdz (ORCPT ); Mon, 15 Feb 2021 06:33:55 -0500 Received: from perceval.ideasonboard.com ([213.167.242.64]:49044 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229870AbhBOLdv (ORCPT ); Mon, 15 Feb 2021 06:33:51 -0500 Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 8E421743; Mon, 15 Feb 2021 12:33:07 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1613388787; bh=BSgf0lC6W+ct3DtqLQSUhG6tO3u7JlCBUaYD+QzMLM0=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=EgmmopHf3kv7TTNawif/+EmlpdCSDo47+mb7iaF061ccajG0OBzJWsU4PdRxuWaOf +9pQNVksrZh4rGKm/H7yo83wluOvxiHwGhDVm9DCdn8JfOvCBpTe20OgvDz4r10YSA NsMjd/tXZmAeh14fMAkEW9j0V8I82GJb5dkuAMuw= Date: Mon, 15 Feb 2021 13:32:41 +0200 From: Laurent Pinchart To: Heiko =?utf-8?Q?St=C3=BCbner?= Cc: Andrzej Hajda , Neil Armstrong , Sandy Huang , Yannick Fertre , Philippe Cornu , Benjamin Gaignard , Vincent Abriou , Jagan Teki , Jonas Karlman , Jernej Skrabec , Sam Ravnborg , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-amarula@amarulasolutions.com Subject: Re: [PATCH] drm/bridge: dw-mipi-dsi: Move drm_bridge_add into probe Message-ID: References: <20210203091306.140518-1-jagan@amarulasolutions.com> <1660529.M3retTD8dW@diego> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1660529.M3retTD8dW@diego> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Heiko, On Wed, Feb 03, 2021 at 01:05:43PM +0100, Heiko Stübner wrote: > Am Mittwoch, 3. Februar 2021, 10:13:06 CET schrieb Jagan Teki: > > Usual I2C configured DSI bridge drivers have drm_bridge_add > > in probe and mipi_dsi_attach in bridge attach functions. > > > > With, this approach the drm pipeline is unable to find the > > dsi bridge in stm drm drivers since the dw-mipi-dsi bridge is > > adding drm bridge during bridge attach operations instead of > > the probe. > > Shouldn't the STM drm driver not simply defer if it's missing > a bridge that is referenced in the devicetree or somewhere? > > > This specific issue may not encounter for rockchip drm dsi > > drivers, since rockchip drm uses component binding operations, > > unlike stm drm drivers. > > > > So, possible solutions are > > 1. Move drm_bridge_add into the dw-mipi-dsi probe. > > 2. Add mipi_dsi_attach in the bridge drivers probe. > > 3. Add component binding operations for stm drm drivers. > > personally I'd like number (3) a lot ;-) . We have different opinions on this topic :-) The component framework adds a layer of complexity that can be avoided with probe deferral in most cases. The main reason why probe deferral isn't always enough is circular dependencies, which unless I'm mistaken isn't an issue here. > With your approach, at least the component-based variants would > end up with multiple probe cycles, getting clocks etc until at some point > the panel has probed, where in the current way of things, the probe is > done once and we continue bringup once the panel has probed and called > dsi-attach to signal it is present. > > Which was actually what Andrzej wished for, when I moved the Rockchip > dsi to the common driver. > > Or at least make it configurable via a param to the common dw-dsi probe > function. Especially as I also need the dsi bridge-less when used as a > simple means for the configuring the internal dphy to rx-mode, see [0] > > Heiko > > [0] https://lore.kernel.org/dri-devel/20210202145632.1263136-1-heiko@sntech.de/ > > > Option 1 is a relatively possible solution as most of the > > mainline drm dsi with bridge drivers have a similar approach > > to their dsi host vs bridge registration. > > > > Signed-off-by: Jagan Teki > > --- > > drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 35 +++++++++---------- > > 1 file changed, 17 insertions(+), 18 deletions(-) > > > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c > > index 6b268f9445b3..8a535041f071 100644 > > --- a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c > > +++ b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c > > @@ -314,8 +314,6 @@ static int dw_mipi_dsi_host_attach(struct mipi_dsi_host *host, > > { > > struct dw_mipi_dsi *dsi = host_to_dsi(host); > > const struct dw_mipi_dsi_plat_data *pdata = dsi->plat_data; > > - struct drm_bridge *bridge; > > - struct drm_panel *panel; > > int ret; > > > > if (device->lanes > dsi->plat_data->max_data_lanes) { > > @@ -329,22 +327,6 @@ static int dw_mipi_dsi_host_attach(struct mipi_dsi_host *host, > > dsi->format = device->format; > > dsi->mode_flags = device->mode_flags; > > > > - ret = drm_of_find_panel_or_bridge(host->dev->of_node, 1, 0, > > - &panel, &bridge); > > - if (ret) > > - return ret; > > - > > - if (panel) { > > - bridge = drm_panel_bridge_add_typed(panel, > > - DRM_MODE_CONNECTOR_DSI); > > - if (IS_ERR(bridge)) > > - return PTR_ERR(bridge); > > - } > > - > > - dsi->panel_bridge = bridge; > > - > > - drm_bridge_add(&dsi->bridge); > > - > > if (pdata->host_ops && pdata->host_ops->attach) { > > ret = pdata->host_ops->attach(pdata->priv_data, device); > > if (ret < 0) > > @@ -1105,6 +1087,8 @@ __dw_mipi_dsi_probe(struct platform_device *pdev, > > struct device *dev = &pdev->dev; > > struct reset_control *apb_rst; > > struct dw_mipi_dsi *dsi; > > + struct drm_bridge *bridge; > > + struct drm_panel *panel; > > int ret; > > > > dsi = devm_kzalloc(dev, sizeof(*dsi), GFP_KERNEL); > > @@ -1167,6 +1151,20 @@ __dw_mipi_dsi_probe(struct platform_device *pdev, > > dw_mipi_dsi_debugfs_init(dsi); > > pm_runtime_enable(dev); > > > > + ret = drm_of_find_panel_or_bridge(dev->of_node, 1, 0, > > + &panel, &bridge); > > + if (ret) > > + return ERR_PTR(ret); > > + > > + if (panel) { > > + bridge = drm_panel_bridge_add_typed(panel, > > + DRM_MODE_CONNECTOR_DSI); > > + if (IS_ERR(bridge)) > > + return ERR_PTR(-ENODEV); > > + } > > + > > + dsi->panel_bridge = bridge; > > + > > dsi->dsi_host.ops = &dw_mipi_dsi_host_ops; > > dsi->dsi_host.dev = dev; > > ret = mipi_dsi_host_register(&dsi->dsi_host); > > @@ -1181,6 +1179,7 @@ __dw_mipi_dsi_probe(struct platform_device *pdev, > > #ifdef CONFIG_OF > > dsi->bridge.of_node = pdev->dev.of_node; > > #endif > > + drm_bridge_add(&dsi->bridge); > > > > return dsi; > > } -- Regards, Laurent Pinchart