From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 1/2] drm/bridge: Refactor out the panel wrapper from the lvds-encoder bridge. Date: Wed, 03 May 2017 12:36:06 +0300 Message-ID: <2556350.BYUa4rMt48@avalon> References: <20170427163601.7313-1-eric@anholt.net> <20170503093217.shqduwoq7j6ag4jc@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [IPv6:2001:4b98:dc2:45:216:3eff:febb:480d]) by gabe.freedesktop.org (Postfix) with ESMTPS id B416489179 for ; Wed, 3 May 2017 09:34:49 +0000 (UTC) In-Reply-To: <20170503093217.shqduwoq7j6ag4jc@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Yannick Fertre , Thierry Reding List-Id: dri-devel@lists.freedesktop.org SGkgRGFuaWVsLAoKT24gV2VkbmVzZGF5IDAzIE1heSAyMDE3IDExOjMyOjE3IERhbmllbCBWZXR0 ZXIgd3JvdGU6Cj4gT24gV2VkLCBNYXkgMDMsIDIwMTcgYXQgMDI6NTM6MDBQTSArMDUzMCwgQXJj aGl0IFRhbmVqYSB3cm90ZToKPiA+ICtwYW5lbC9icmlkZ2UgcmV2aWV3ZXJzLgo+ID4gCj4gPiBU aGlzIGRvZXMgbWFrZSB0aGluZ3MgbXVjaCBjbGVhbmVyLCBidXQgaXQgc2VlbXMgYSBiaXQgc3Ry YW5nZSB0byBjcmVhdGUKPiA+IGEgZHJtX2JyaWRnZSB3aGVuIHRoZXJlIGlzbid0IHJlYWxseSBh IEhXIGJyaWRnZSBpbiB0aGUgZGlzcGxheSBjaGFpbgo+ID4gKGkuZSwgd2hlbiB0aGUgRFNJIGVu Y29kZXIgaXMgZGlyZWN0bHkgY29ubmVjdGVkIHRvIGEgRFNJIHBhbmVsKS4KPiA+IAo+ID4gVGhl cmUgYXJlIGttcyBkcml2ZXJzIHRoYXQgdXNlIGRybV9wYW5lbCwgYnV0IGRvbid0IGhhdmUgc2lt cGxlIHN0dWIKPiA+IGNvbm5lY3RvcnMgdGhhdCB3cmFwIGFyb3VuZCBhIGRybV9wYW5lbC4gVGhl eSBoYXZlIG1vcmUgY29tcGxpY2F0ZWQKPiA+IGNvbm5lY3RvciBvcHMsIGFuZCBtYXkgY2FsbCBk cm1fcGFuZWxfcHJlcGFyZSgpIGFuZCByZWxhdGVkIGZ1bmN0aW9ucyBhCj4gPiBiaXQgZGlmZmVy ZW50bHkuIFdlIHdvbid0IGJlIGFibGUgdG8gdXNlIGRybV9wYW5lbF9icmlkZ2UgZm9yIHRob3Nl Cj4gPiBkcml2ZXJzLgo+ID4gCj4gPiBGb3IgbXNtLCB3ZSBjaGVjayB3aGV0aGVyIHRoZSBEU0kg ZW5jb2RlciBpcyBjb25uZWN0ZWQgZGlyZWN0bHkgdG8gYSBwYW5lbAo+ID4gb3IgYW4gZXh0ZXJu YWwgYnJpZGdlLiBJZiBpdCdzIGNvbm5lY3RlZCB0byBhbiBleHRlcm5hbCBicmlkZ2UsIHdlIHNr aXAKPiA+IHRoZSBjcmVhdGlvbiBvZiB0aGUgc3R1YiBjb25uZWN0b3IsIGFuZCByZWx5IG9uIHRo ZSBleHRlcm5hbCBicmlkZ2UgZHJpdmVyCj4gPiB0byBjcmVhdGUgdGhlIGNvbm5lY3RvcjoKPiA+ IAo+ID4gaHR0cDovL2x4ci5mcmVlLWVsZWN0cm9ucy5jb20vc291cmNlL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZHNpL2RzaS5jI0wyMjcKPiA+IAo+ID4gVGhlIG1zbSBzb2x1dGlvbiBpc24ndCB2ZXJ5 IG5lYXQsIGJ1dCBpdCBhdm9pZHMgdGhlIG5lZWQgdG8gY3JlYXRlIGFub3RoZXIKPiA+IGJyaWRn ZSB0byBnbHVlIHRoaW5ncyB0b2dldGhlci4KPiAKPiBTaW5jZSBJIHN1Z2dlc3RlZCB0aGlzLCB5 ZXMgSSBsaWtlIGl0LiBBbmQgSSB0aGluayBqdXN0IHVuY29uZGl0aW9uYWxseQo+IGNyZWF0aW5n IHRoZSBwYW5lbCBicmlkZ2UgaXMgcHJvYmFibHkgZXZlbiBzaW1wbGVyLCBhZnRlciBhbGwgYnJp ZGdlcyBhcmUKPiBzdXBwb3NlZCB0byBiZSBjaGFpbmFibGUuIEkgZ3Vlc3MgdGhlcmUncyBhbHdh eXMgZ29pbmcgdG8gYmUgZHJpdmVycyB3aGVyZQo+IHdlIG5lZWQgc3BlY2lhbCBoYW5kbGluZywg YnV0IEknbSBraW5kYSBob3BpbmcgdGhhdCBmb3IgbW9zdCBjYXNlcyBzaW1wbHkKPiBwbHVnZ2lu ZyBpbiBhIHBhbmVsIGJyaWRnZSBpcyBhbGwgdGhhdCdzIG5lZWQgdG8gZ2x1ZSBkcm1fcGFuZWwg c3VwcG9ydAo+IGludG8gYSBkcml2ZXIuIFRoZSBzaW1wbGUgcGlwZSBoZWxwZXJzIGRvIHN1cHBv cnQgYnJpZGdlcywgYW5kIHBhcnQgb2YgdGhlCj4gZ29hbCB0aGVyZSB2ZXJ5IG11Y2ggd2FzIHRv IG1ha2UgaXQgZWFzeSB0byBnbHVlIGluIHBhbmVsIGRyaXZlcnMuCgpBcyBJJ3ZlIGp1c3QgZXhw bGFpbmVkIGluIGFub3RoZXIgcmVwbHksIEkgZG9uJ3Qgc2VlIHRoZSBwb2ludCBpbiBkb2luZyB0 aGlzIAp3aGVuIHdlIGNhbiBpbnN0ZWFkIHJlZmFjdG9yIHRoZSBicmlkZ2UgYW5kIHBhbmVsIG9w ZXJhdGlvbnMgdG8gZXhwb3NlIGEgCmNvbW1vbiBiYXNlIG9iamVjdCB0aGF0IHdpbGwgdGhlbiBi ZSBlYXN5IHRvIGhhbmRsZSBpbiBjb3JlIGNvZGUuIFRoaXMgaXNuJ3QgCmp1c3QgZm9yIHBhbmVs cywgYXMgY29ubmVjdG9ycyBzaG91bGQgaGF2ZSBEVCBub2RlcywgaXQgbWFrZXMgc2Vuc2UgdG8g Cmluc3RhbnRpYXRlIGFuIG9iamVjdCBmb3IgdGhlbSB0aGF0IGNhbiBiZSBoYW5kbGVkIGJ5IHRo ZSBEUk0gY29yZSwgd2l0aG91dCAKaGF2aW5nIHRvIHB1c2ggY29ubmVjdG9yIGhhbmRsaW5nIGlu IGFsbCBicmlkZ2UgZHJpdmVycy4KCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752762AbdECJe5 (ORCPT ); Wed, 3 May 2017 05:34:57 -0400 Received: from galahad.ideasonboard.com ([185.26.127.97]:48198 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752242AbdECJet (ORCPT ); Wed, 3 May 2017 05:34:49 -0400 From: Laurent Pinchart To: Daniel Vetter Cc: Archit Taneja , Eric Anholt , dri-devel@lists.freedesktop.org, Yannick Fertre , Thierry Reding , linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/2] drm/bridge: Refactor out the panel wrapper from the lvds-encoder bridge. Date: Wed, 03 May 2017 12:36:06 +0300 Message-ID: <2556350.BYUa4rMt48@avalon> User-Agent: KMail/4.14.10 (Linux/4.9.16-gentoo; KDE/4.14.29; x86_64; ; ) In-Reply-To: <20170503093217.shqduwoq7j6ag4jc@phenom.ffwll.local> References: <20170427163601.7313-1-eric@anholt.net> <20170503093217.shqduwoq7j6ag4jc@phenom.ffwll.local> 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 Daniel, On Wednesday 03 May 2017 11:32:17 Daniel Vetter wrote: > On Wed, May 03, 2017 at 02:53:00PM +0530, Archit Taneja wrote: > > +panel/bridge reviewers. > > > > This does make things much cleaner, but it seems a bit strange to create > > a drm_bridge when there isn't really a HW bridge in the display chain > > (i.e, when the DSI encoder is directly connected to a DSI panel). > > > > There are kms drivers that use drm_panel, but don't have simple stub > > connectors that wrap around a drm_panel. They have more complicated > > connector ops, and may call drm_panel_prepare() and related functions a > > bit differently. We won't be able to use drm_panel_bridge for those > > drivers. > > > > For msm, we check whether the DSI encoder is connected directly to a panel > > or an external bridge. If it's connected to an external bridge, we skip > > the creation of the stub connector, and rely on the external bridge driver > > to create the connector: > > > > http://lxr.free-electrons.com/source/drivers/gpu/drm/msm/dsi/dsi.c#L227 > > > > The msm solution isn't very neat, but it avoids the need to create another > > bridge to glue things together. > > Since I suggested this, yes I like it. And I think just unconditionally > creating the panel bridge is probably even simpler, after all bridges are > supposed to be chainable. I guess there's always going to be drivers where > we need special handling, but I'm kinda hoping that for most cases simply > plugging in a panel bridge is all that's need to glue drm_panel support > into a driver. The simple pipe helpers do support bridges, and part of the > goal there very much was to make it easy to glue in panel drivers. As I've just explained in another reply, I don't see the point in doing this when we can instead refactor the bridge and panel operations to expose a common base object that will then be easy to handle in core code. This isn't just for panels, as connectors should have DT nodes, it makes sense to instantiate an object for them that can be handled by the DRM core, without having to push connector handling in all bridge drivers. -- Regards, Laurent Pinchart