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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2376AC25B79 for ; Wed, 22 May 2024 07:33:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=+q4xbSAUO2YaiTJ+7xcu90tOV7ophcg6hEYxS7l2i94=; b=X3URzjmCC/q4UI J6/7JajXuLMDMg79ZpfsM1BXNREKoMQ9S2tkJHryK2ToNrA6DDrwHyrl4GBQxKCYZMzxqmnSrwB7L w/8XlvAm+McrD6WUfdTvUYR2yrpciMP/rKP8NY+CT8uDITrI2a4fPvaWFK7YxrXMjNvTTvb3d4hyg hjvES+ff5OtTJU+ttUfJMg7Se7aXqCgpZWqjlTLbeuzBr9tqXRPlPG4GSd6uUafkJ9VSx6CSNs1pS zuZ7+uHypHsPa6TLeGbaM07QGfQwyKjcVbaK4RHEWdihknFtEe/acCG6zxlTTEPUbf6GHk78EtGKM qkrs1EKdwKVynjjZ4SRg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s9gTG-00000002EoK-3uvD; Wed, 22 May 2024 07:33:10 +0000 Received: from perceval.ideasonboard.com ([213.167.242.64]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s9gTD-00000002Emi-1XyI for linux-arm-kernel@lists.infradead.org; Wed, 22 May 2024 07:33:09 +0000 Received: from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi [81.175.209.231]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 05152581; Wed, 22 May 2024 09:32:51 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1716363171; bh=/CP+fbgEX5XFpkxvApNtr2U9BrvlM+4DperW6OziTxQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=FG7iqI6d6LiRahUeHDB38CN5sHl/Q3UAaiplBz/Pit6ghjpZHChzof2jV2Rh/Jf7v FENvCM2RsExg7/C1GxV5pxbvo+wJKsLPOtoGdMPXkdk+/3IUH0axyxIvZRG1bs8HMJ KY92D21Kq9loYMC8EazNLkHHhchWDzEmMZN71Y54= Date: Wed, 22 May 2024 10:32:53 +0300 From: Laurent Pinchart To: Keith Zhao Cc: Alex Bee , "andrzej.hajda@intel.com" , "neil.armstrong@linaro.org" , "rfoss@kernel.org" , "jonas@kwiboo.se" , "jernej.skrabec@gmail.com" , "maarten.lankhorst@linux.intel.com" , "mripard@kernel.org" , "tzimmermann@suse.de" , "airlied@gmail.com" , "daniel@ffwll.ch" , "robh@kernel.org" , "krzk+dt@kernel.org" , "conor+dt@kernel.org" , "hjc@rock-chips.com" , "heiko@sntech.de" , "andy.yan@rock-chips.com" , Xingyu Wu , "p.zabel@pengutronix.de" , Jack Zhu , Shengyang Chen , "dri-devel@lists.freedesktop.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH v4 02/10] drm/bridge: add common api for inno hdmi Message-ID: <20240522073253.GF8863@pendragon.ideasonboard.com> References: <20240521105817.3301-1-keith.zhao@starfivetech.com> <20240521105817.3301-3-keith.zhao@starfivetech.com> <58ddfc8f-1995-4f41-9d63-35a00c6f92b9@gmail.com> <20240521154206.GA1935@pendragon.ideasonboard.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240522_003307_975069_FF257667 X-CRM114-Status: GOOD ( 30.43 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgS2VpdGgsCgpPbiBXZWQsIE1heSAyMiwgMjAyNCBhdCAwNTo1ODowMEFNICswMDAwLCBLZWl0 aCBaaGFvIHdyb3RlOgo+IEhpIEFsZXgsIExhdXJlbnQ6Cj4gCj4gSSB3YW50IHRvIG1ha2UgYXMg ZmV3IGNoYW5nZXMgYXMgcG9zc2libGUgb24gdGhlIGN1cnJlbnQgYmFzaXMsIGFuZCBhZGQgYnJp ZGdlX2Z1biwgCj4gCj4gT24gMjAyNOW5tDXmnIgyMeaXpSAyMzo0MiwgTGF1cmVudCBQaW5jaGFy dCB3cm90ZToKPiA+IE9uIFR1ZSwgTWF5IDIxLCAyMDI0IGF0IDA1OjM2OjQzUE0gKzAyMDAsIEFs ZXggQmVlIHdyb3RlOgo+ID4gPiBIaSBLZWl0aCwKPiA+ID4KPiA+ID4gdGhhbmtzIGEgbG90IGZv ciB3b3JraW5nIG9uIHRoaXMuIFNlZSBzb21lIGdlbmVyYWwgcmVtYXJrcyBiZWxvdwo+ID4gPgo+ ID4gPiBBbSAyMS4wNS4yNCB1bSAxMjo1OCBzY2hyaWViIGtlaXRoOgo+ID4gPiA+IEFkZCBJTk5P IGNvbW1vbiBhcGkgc28gdGhhdCBpdCBjYW4gYmUgdXNlZCBieSB2ZW5kb3IgZHJpdmVycyB3aGlj aAo+ID4gPiA+IGltcGxlbWVudCB2ZW5kb3Igc3BlY2lmaWMgZXh0ZW5zaW9ucyB0byBJbm5vc2ls aWNvbiBIRE1JLgo+ID4gPiA+Cj4gPiA+ID4gU2lnbmVkLW9mZi1ieToga2VpdGggPGtlaXRoLnpo YW9Ac3RhcmZpdmV0ZWNoLmNvbT4KPiA+ID4gPiAtLS0KPiA+ID4gPiAgIE1BSU5UQUlORVJTICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCj4gPiA+ID4gICBkcml2ZXJz L2dwdS9kcm0vYnJpZGdlL0tjb25maWcgICAgICAgICAgICAgICAgfCAgIDIgKwo+ID4gPiA+ICAg ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgICAxICsKPiA+ ID4gPiAgIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW5ub3NpbGljb24vS2NvbmZpZyAgICB8ICAg NiArCj4gPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lubm9zaWxpY29uL01ha2VmaWxl ICAgfCAgIDIgKwo+ID4gPiA+ICAgLi4uL2dwdS9kcm0vYnJpZGdlL2lubm9zaWxpY29uL2lubm8t aGRtaS5jICAgIHwgNTg3ICsrKysrKysrKysrKysrKysrKwo+ID4gPiA+ICAgLi4uL2dwdS9kcm0v YnJpZGdlL2lubm9zaWxpY29uL2lubm8taGRtaS5oICAgIHwgIDk3ICsrKwo+ID4gPiA+ICAgaW5j bHVkZS9kcm0vYnJpZGdlL2lubm9faGRtaS5oICAgICAgICAgICAgICAgIHwgIDY5ICsrCj4gPiA+ ID4gICA4IGZpbGVzIGNoYW5nZWQsIDc2NiBpbnNlcnRpb25zKCspCj4gPiA+ID4gICBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9pbm5vc2lsaWNvbi9LY29uZmlnCj4g PiA+ID4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9pbm5vc2ls aWNvbi9NYWtlZmlsZQo+ID4gPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvaW5ub3NpbGljb24vaW5uby1oZG1pLmMKPiA+ID4gPiAgIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lubm9zaWxpY29uL2lubm8taGRtaS5oCj4gPiA+ ID4gICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kcm0vYnJpZGdlL2lubm9faGRtaS5oCj4g PiA+ID4KPiA+ID4gLi4uLgo+ID4gPgo+ID4gPiA+ICsJZHJtX2VuY29kZXJfaGVscGVyX2FkZChl bmNvZGVyLCBwZGF0YS0+aGVscGVyX3ByaXZhdGUpOwo+ID4gPiA+ICsKPiA+ID4gPiArCWhkbWkt PmNvbm5lY3Rvci5wb2xsZWQgPSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEOwo+ID4gPiA+ICsKPiA+ ID4gPiArCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmaGRtaS0+Y29ubmVjdG9yLAo+ID4gPiA+ ICsJCQkJICZpbm5vX2hkbWlfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Cj4gPiA+ID4gKwo+ID4g PiA+ICsJZHJtbV9jb25uZWN0b3JfaW5pdChkcm0sICZoZG1pLT5jb25uZWN0b3IsCj4gPiA+ID4g KwkJCSAgICAmaW5ub19oZG1pX2Nvbm5lY3Rvcl9mdW5jcywKPiA+ID4gPiArCQkJICAgIERSTV9N T0RFX0NPTk5FQ1RPUl9IRE1JQSwKPiA+ID4gPiArCQkJICAgIGhkbWktPmRkYyk7Cj4gPiA+ID4g Kwo+ID4gPgo+ID4gPiBJIHJlYWxseSBkb24ndCB3YW50IHRvIGFudGljaXBhdGUgYnJpZGdlIG1h aW50YWluZXIncyBmZWVkYmFjaywgYnV0Cj4gPiA+IG5ldyBicmlkZ2UgZHJpdmVycyBtdXN0IG5v dCBjb250YWluIGNvbm5lY3RvciBjcmVhdGlvbi4gVGhhdCBtdXN0Cj4gPiA+IGhhcHBlbiBzb21l d2hlcmUgZWxzZS4KPiA+IAo+ID4gWW91J3JlIGFic29sdXRlbHkgcmlnaHQgOi0pIENvbm5lY3Rv ciBjcmVhdGlvbiBzaG91bGQgYmUgaGFuZGxlZCBieSB0aGUKPiA+IGRybV9icmlkZ2VfY29ubmVj dG9yIGhlbHBlci4gVGhlIEhETUkgYnJpZGdlIGRyaXZlciBzaG91bGQgZm9jdXMgb24gdGhlCj4g PiBIRE1JIGJyaWRnZSBpdHNlbGYuCj4gCj4gc3RhdGljIGludCBpbm5vX2JyaWRnZV9hdHRhY2go c3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiAJCQkJIGVudW0gZHJtX2JyaWRnZV9hdHRhY2hf ZmxhZ3MgZmxhZ3MpCj4gewo+IAlzdHJ1Y3QgaW5ub19oZG1pICpoZG1pID0gYnJpZGdlX3RvX2lu bm8oYnJpZGdlKTsKPiAKPiAJaWYgKGZsYWdzICYgRFJNX0JSSURHRV9BVFRBQ0hfTk9fQ09OTkVD VE9SKSB7Cj4gCQlEUk1fRVJST1IoIkZpeCBicmlkZ2UgZHJpdmVyIHRvIG1ha2UgY29ubmVjdG9y IG9wdGlvbmFsISIpOwo+IAkJcmV0dXJuIC1FSU5WQUw7Cj4gCX0KClRoaXMga2luZCBvZiBjb2Rl IHdhcyBhZGRlZCB0byBleGlzdGluZyBicmlkZ2UgZHJpdmVycyB3aGVuIHdlCnRyYW5zaXRpb25l ZCB0byB0aGUgbmV3IG1vZGVsIHdoZXJlIGJyaWRnZXMgZG9uJ3QgY3JlYXRlIHRoZSBjb25uZWN0 b3JzLApiZWNhdXNlIHdlIGNvdWxkbid0IGZpeCBhbGwgdGhlIGV4aXN0aW5nIGJyaWRnZXMgaW4g b25lIGdvLiBOZXcgYnJpZGdlcwptdXN0IGRvIHRoZSBvcHBvc2l0ZS4gU2VlIGlteDhxeHAtcGl4 ZWwtbGluay5jIGZvciBpbnN0YW5jZSwgaXQgaGFzIHRoaXMKY29kZSBpbnN0ZWFkIGluIGl0cyBh dHRhY2ggZnVuY3Rpb246CgoJaWYgKCEoZmxhZ3MgJiBEUk1fQlJJREdFX0FUVEFDSF9OT19DT05O RUNUT1IpKSB7CgkJRFJNX0RFVl9FUlJPUihwbC0+ZGV2LAoJCQkgICAgICAiZG8gbm90IHN1cHBv cnQgY3JlYXRpbmcgYSBkcm1fY29ubmVjdG9yXG4iKTsKCQlyZXR1cm4gLUVJTlZBTDsKCX0KCihJ IHdvdWxkIHBlcnNvbmFsbHkgZHJvcCB0aGUgRFJNX0RFVl9FUlJPUiBtZXNzYWdlKQoKPiAJaGRt aS0+Y29ubmVjdG9yLnBvbGxlZCA9IERSTV9DT05ORUNUT1JfUE9MTF9IUEQ7Cj4gCj4gCWRybV9j b25uZWN0b3JfaGVscGVyX2FkZCgmaGRtaS0+Y29ubmVjdG9yLAo+IAkJCQkgJmlubm9faGRtaV9j b25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKPiAKPiAJZHJtbV9jb25uZWN0b3JfaW5pdChkcm0sICZo ZG1pLT5jb25uZWN0b3IsCj4gCQkJICAgICZpbm5vX2hkbWlfY29ubmVjdG9yX2Z1bmNzLAo+IAkJ CSAgICBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUEsCj4gCQkJICAgIGhkbWktPmRkYyk7Cj4gCj4g CWRybV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoJmhkbWktPmNvbm5lY3RvciwgZW5jb2Rlcik7 Cj4gfQo+IAo+IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyBpbm5vX2JyaWRn ZV9hdHRhY2ggPSB7Cj4gCS5hdHRhY2ggPSBpbm5vX2JyaWRnZV9hdHRhY2gsCj4gfTsKPiAKPiBD b25uZWN0b3IgY3JlYXRpb24gaXMgaGFuZGxlZCBieSB0aGUgZHJtX2JyaWRnZV9mdW5jcyAtPmF0 dGFjaC4KPiBJcyBpdCBvaz8KCk5vLCB0aGUgY29ubmVjdG9yIHNob3VsZCBiZSBjcmVhdGVkIGJ5 IHRoZSBkaXNwbGF5IGNvbnRyb2xsZXIgZHJpdmVyIGJ5CmNhbGxpbmcgZHJtX2JyaWdlX2Nvbm5l Y3Rvcl9pbml0KCkuIEl0IHNob3VsZCBub3QgYmUgY3JlYXRlZCBieSB0aGUKYnJpZGdlIGRyaXZl ci4gVGhlIGJyaWRnZSBkcml2ZXIgc2hvdWxkIHByb3ZpZGUgdGhlIGJyaWRnZSBmdW5jdGlvbnMK KGRybV9icmlkZ2VfZnVuY3MpLCBidXQgbm90IGNyZWF0ZSBhbnkgY29ubmVjdG9yLgoKPiA+ID4g QWxzbyBJJ20gbmVpdGhlciBzZWVpbmcgYW55IGRybV9icmlnZSBzdHJ1Y3Qgbm9yIGRybV9icmlk Z2VfZnVuY3MsCj4gPiA+IHdoaWNoIGFyZSBib3RoIGVzc2VudGlhbCBmb3IgYSBicmlkZ2UgZHJp dmVyLiBJIGRvbid0IHRoaW5rIG1vdmluZyBhCj4gPiA+IHBhcnQgb2YgYSBkcml2ZXIgdG8gLi4u L2RybS9icmlkZ2UvIG1ha2VzIGl0IGEgYnJpZGdlIGRyaXZlci4KPiA+ID4KPiA+ID4gPiArCWRy bV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoJmhkbWktPmNvbm5lY3RvciwgZW5jb2Rlcik7Cj4g PiA+ID4gKwo+ID4gPiA+ICsJcmV0dXJuIDA7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+IC4u Li4KPiA+ID4KCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydAoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5n IGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4042819470; Wed, 22 May 2024 07:33:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716363188; cv=none; b=RRP0AlbTqRjU8kl9DCpmYcL5eGyNLSczo9BAciLSGZ2oYwtWmTyUVLURqUyn/7hu6fMg/yiwmtedwblqhXet5xlDxKLXoQvnPMvn5wiZ5/UgBtBvA5UOkZGrFytO/DAU6zls1TkUQmlDMTsj0maz8zHOi20qavhh6bmCi/9mDjg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716363188; c=relaxed/simple; bh=/CP+fbgEX5XFpkxvApNtr2U9BrvlM+4DperW6OziTxQ=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=WfkTSYvyN8BZHbhhQ1z4oKk7OywSlbGF25PFA5+u3cQk/VI22fWaI0XkrIG+e2WX2RCsCleQ339QbZ+k0WA0DWlgdmtiUVPNdQ7WNWM+GwnJwMR3uHC5kqXX+3zLyyHGF5a03M9t4Eo1Oz/ZdNF1adVHgY+s7N4ZyRwPShGMtUM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=FG7iqI6d; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="FG7iqI6d" Received: from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi [81.175.209.231]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 05152581; Wed, 22 May 2024 09:32:51 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1716363171; bh=/CP+fbgEX5XFpkxvApNtr2U9BrvlM+4DperW6OziTxQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=FG7iqI6d6LiRahUeHDB38CN5sHl/Q3UAaiplBz/Pit6ghjpZHChzof2jV2Rh/Jf7v FENvCM2RsExg7/C1GxV5pxbvo+wJKsLPOtoGdMPXkdk+/3IUH0axyxIvZRG1bs8HMJ KY92D21Kq9loYMC8EazNLkHHhchWDzEmMZN71Y54= Date: Wed, 22 May 2024 10:32:53 +0300 From: Laurent Pinchart To: Keith Zhao Cc: Alex Bee , "andrzej.hajda@intel.com" , "neil.armstrong@linaro.org" , "rfoss@kernel.org" , "jonas@kwiboo.se" , "jernej.skrabec@gmail.com" , "maarten.lankhorst@linux.intel.com" , "mripard@kernel.org" , "tzimmermann@suse.de" , "airlied@gmail.com" , "daniel@ffwll.ch" , "robh@kernel.org" , "krzk+dt@kernel.org" , "conor+dt@kernel.org" , "hjc@rock-chips.com" , "heiko@sntech.de" , "andy.yan@rock-chips.com" , Xingyu Wu , "p.zabel@pengutronix.de" , Jack Zhu , Shengyang Chen , "dri-devel@lists.freedesktop.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH v4 02/10] drm/bridge: add common api for inno hdmi Message-ID: <20240522073253.GF8863@pendragon.ideasonboard.com> References: <20240521105817.3301-1-keith.zhao@starfivetech.com> <20240521105817.3301-3-keith.zhao@starfivetech.com> <58ddfc8f-1995-4f41-9d63-35a00c6f92b9@gmail.com> <20240521154206.GA1935@pendragon.ideasonboard.com> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Hi Keith, On Wed, May 22, 2024 at 05:58:00AM +0000, Keith Zhao wrote: > Hi Alex, Laurent: > > I want to make as few changes as possible on the current basis, and add bridge_fun, > > On 2024年5月21日 23:42, Laurent Pinchart wrote: > > On Tue, May 21, 2024 at 05:36:43PM +0200, Alex Bee wrote: > > > Hi Keith, > > > > > > thanks a lot for working on this. See some general remarks below > > > > > > Am 21.05.24 um 12:58 schrieb keith: > > > > Add INNO common api so that it can be used by vendor drivers which > > > > implement vendor specific extensions to Innosilicon HDMI. > > > > > > > > Signed-off-by: keith > > > > --- > > > > MAINTAINERS | 2 + > > > > drivers/gpu/drm/bridge/Kconfig | 2 + > > > > drivers/gpu/drm/bridge/Makefile | 1 + > > > > drivers/gpu/drm/bridge/innosilicon/Kconfig | 6 + > > > > drivers/gpu/drm/bridge/innosilicon/Makefile | 2 + > > > > .../gpu/drm/bridge/innosilicon/inno-hdmi.c | 587 ++++++++++++++++++ > > > > .../gpu/drm/bridge/innosilicon/inno-hdmi.h | 97 +++ > > > > include/drm/bridge/inno_hdmi.h | 69 ++ > > > > 8 files changed, 766 insertions(+) > > > > create mode 100644 drivers/gpu/drm/bridge/innosilicon/Kconfig > > > > create mode 100644 drivers/gpu/drm/bridge/innosilicon/Makefile > > > > create mode 100644 drivers/gpu/drm/bridge/innosilicon/inno-hdmi.c > > > > create mode 100644 drivers/gpu/drm/bridge/innosilicon/inno-hdmi.h > > > > create mode 100644 include/drm/bridge/inno_hdmi.h > > > > > > > .... > > > > > > > + drm_encoder_helper_add(encoder, pdata->helper_private); > > > > + > > > > + hdmi->connector.polled = DRM_CONNECTOR_POLL_HPD; > > > > + > > > > + drm_connector_helper_add(&hdmi->connector, > > > > + &inno_hdmi_connector_helper_funcs); > > > > + > > > > + drmm_connector_init(drm, &hdmi->connector, > > > > + &inno_hdmi_connector_funcs, > > > > + DRM_MODE_CONNECTOR_HDMIA, > > > > + hdmi->ddc); > > > > + > > > > > > I really don't want to anticipate bridge maintainer's feedback, but > > > new bridge drivers must not contain connector creation. That must > > > happen somewhere else. > > > > You're absolutely right :-) Connector creation should be handled by the > > drm_bridge_connector helper. The HDMI bridge driver should focus on the > > HDMI bridge itself. > > static int inno_bridge_attach(struct drm_bridge *bridge, > enum drm_bridge_attach_flags flags) > { > struct inno_hdmi *hdmi = bridge_to_inno(bridge); > > if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) { > DRM_ERROR("Fix bridge driver to make connector optional!"); > return -EINVAL; > } This kind of code was added to existing bridge drivers when we transitioned to the new model where bridges don't create the connectors, because we couldn't fix all the existing bridges in one go. New bridges must do the opposite. See imx8qxp-pixel-link.c for instance, it has this code instead in its attach function: if (!(flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)) { DRM_DEV_ERROR(pl->dev, "do not support creating a drm_connector\n"); return -EINVAL; } (I would personally drop the DRM_DEV_ERROR message) > hdmi->connector.polled = DRM_CONNECTOR_POLL_HPD; > > drm_connector_helper_add(&hdmi->connector, > &inno_hdmi_connector_helper_funcs); > > drmm_connector_init(drm, &hdmi->connector, > &inno_hdmi_connector_funcs, > DRM_MODE_CONNECTOR_HDMIA, > hdmi->ddc); > > drm_connector_attach_encoder(&hdmi->connector, encoder); > } > > static const struct drm_bridge_funcs inno_bridge_attach = { > .attach = inno_bridge_attach, > }; > > Connector creation is handled by the drm_bridge_funcs ->attach. > Is it ok? No, the connector should be created by the display controller driver by calling drm_brige_connector_init(). It should not be created by the bridge driver. The bridge driver should provide the bridge functions (drm_bridge_funcs), but not create any connector. > > > Also I'm neither seeing any drm_brige struct nor drm_bridge_funcs, > > > which are both essential for a bridge driver. I don't think moving a > > > part of a driver to .../drm/bridge/ makes it a bridge driver. > > > > > > > + drm_connector_attach_encoder(&hdmi->connector, encoder); > > > > + > > > > + return 0; > > > > +} > > > > + > > > .... > > > -- Regards, Laurent Pinchart