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=-2.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=no 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 0B399C5B57F for ; Sun, 30 Jun 2019 21:15:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C63FD208E3 for ; Sun, 30 Jun 2019 21:15:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="ldGx5vNt" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727007AbfF3VPn (ORCPT ); Sun, 30 Jun 2019 17:15:43 -0400 Received: from perceval.ideasonboard.com ([213.167.242.64]:50072 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726811AbfF3VPm (ORCPT ); Sun, 30 Jun 2019 17:15:42 -0400 Received: from pendragon.ideasonboard.com (dfj612yhrgyx302h3jwwy-3.rev.dnainternet.fi [IPv6:2001:14ba:21f5:5b00:ce28:277f:58d7:3ca4]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id BA314255; Sun, 30 Jun 2019 23:15:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1561929339; bh=ovOJRUKGuB0B+RSWGOmJMUYTVzj7mL2ayN8AUFBIu2U=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ldGx5vNtc4yCQQ3gLtoRrO/n97/UY5ZnZY0gcotp7JbPSLEKnMpadMMqg4DOCCtFl ewsfEDLY2skIB00hNAYBILOQA1protB2QAXohQvEfNBr1sLNZA2J1B6FWeGmcFBEjM sFLPtc7yAgk3wIcQfJKSdood9wFvscQcwYcx8eCk= Date: Mon, 1 Jul 2019 00:15:20 +0300 From: Laurent Pinchart To: Rob Clark Cc: dri-devel , linux-arm-msm , freedreno , aarch64-laptops@lists.linaro.org, Rob Clark , Ard Biesheuvel , Catalin Marinas , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Ingo Molnar , Julien Thierry , "open list:EXTENSIBLE FIRMWARE INTERFACE (EFI)" , open list , Lukas Wunner , Steve Capper , Will Deacon Subject: Re: [PATCH 0/4] drm+dt+efi: support devices with multiple possible panels Message-ID: <20190630211520.GI7043@pendragon.ideasonboard.com> References: <20190630203614.5290-1-robdclark@gmail.com> <20190630204723.GH7043@pendragon.ideasonboard.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Hi Rob, On Sun, Jun 30, 2019 at 02:05:21PM -0700, Rob Clark wrote: > On Sun, Jun 30, 2019 at 1:47 PM Laurent Pinchart wrote: > > On Sun, Jun 30, 2019 at 01:36:04PM -0700, Rob Clark wrote: > > > From: Rob Clark > > > > > > Now that we can deal gracefully with bootloader (firmware) initialized > > > display on aarch64 laptops[1], the next step is to deal with the fact > > > that the same model of laptop can have one of multiple different panels. > > > (For the yoga c630 that I have, I know of at least two possible panels, > > > there might be a third.) > > > > I have to ask the obvious question: why doesn't the boot loader just > > pass a correct DT to Linux ? There's no point in passing a list of > > panels that are not there, this seems quite a big hack to me. A proper > > boot loader should construct the DT based on hardware detection. > > Hi Laurent, > > Actually the bootloader on these devices is passing *no* dt (they boot > ACPI, we are loading dtb from grub currently) Ah, the broken promises of ACPI on ARM64. I wonder how long it will take before a public acknowledgement that it was a bad idea. Bad ideas happen and can be forgiven, but stubborness in claiming it was the right decision is another story. (Not that you can be blamed for this of course :-)) > I think normally a device built w/ dt in mind would populate > /chosen/panel-id directly (rather than the way it is currently > populated based on reading an efi variable prior to ExitBootServices). > But that is considerably easier ask than having it re-write of_graph > bindings. Either way, we aren't in control of the bootloader on these > devices, If you can't control the initial boot loader, then I see two options, none of which you will like I'm afraid. - As you pass the DT to Linux from grub, there's your intermediate boot loader where you can construct a valid DT. - If the ACPI cult needs to be venerated, then drivers should be converted to support ACPI without the need for DT. A possible a middleground could be a platform driver (in drivers/firmware/efi/ ? in drivers/platform/ ?) that will patch the DT to instantiate the right panel based on the information retrieved from the boot loader. We will need something similar for the Intel IPU3 camera driver, as Intel decided to come up with two different ACPI "bindings", one for Windows and one for Chrome OS, leaving Windows machine impossible to handle from a kernel driver due to required information being hardcoded in Windows drivers shipped by Intel. This is thus an option that may (unfortunately) need to become more widespread for ACPI-based systems. > so it is a matter of coming up with something that works on actual hw > that we don't like rather than idealized hw that we don't have ;-) That doesn't however justify not going for the best solution we can achieve. What do you like best in the above ? :-) -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 0/4] drm+dt+efi: support devices with multiple possible panels Date: Mon, 1 Jul 2019 00:15:20 +0300 Message-ID: <20190630211520.GI7043@pendragon.ideasonboard.com> References: <20190630203614.5290-1-robdclark@gmail.com> <20190630204723.GH7043@pendragon.ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rob Clark Cc: Rob Clark , aarch64-laptops@lists.linaro.org, "open list:EXTENSIBLE FIRMWARE INTERFACE (EFI)" , Will Deacon , Ard Biesheuvel , linux-arm-msm , Julien Thierry , open list , dri-devel , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Catalin Marinas , freedreno , Ingo Molnar , Steve Capper List-Id: devicetree@vger.kernel.org SGkgUm9iLAoKT24gU3VuLCBKdW4gMzAsIDIwMTkgYXQgMDI6MDU6MjFQTSAtMDcwMCwgUm9iIENs YXJrIHdyb3RlOgo+IE9uIFN1biwgSnVuIDMwLCAyMDE5IGF0IDE6NDcgUE0gTGF1cmVudCBQaW5j aGFydCB3cm90ZToKPiA+IE9uIFN1biwgSnVuIDMwLCAyMDE5IGF0IDAxOjM2OjA0UE0gLTA3MDAs IFJvYiBDbGFyayB3cm90ZToKPiA+ID4gRnJvbTogUm9iIENsYXJrIDxyb2JkY2xhcmtAY2hyb21p dW0ub3JnPgo+ID4gPgo+ID4gPiBOb3cgdGhhdCB3ZSBjYW4gZGVhbCBncmFjZWZ1bGx5IHdpdGgg Ym9vdGxvYWRlciAoZmlybXdhcmUpIGluaXRpYWxpemVkCj4gPiA+IGRpc3BsYXkgb24gYWFyY2g2 NCBsYXB0b3BzWzFdLCB0aGUgbmV4dCBzdGVwIGlzIHRvIGRlYWwgd2l0aCB0aGUgZmFjdAo+ID4g PiB0aGF0IHRoZSBzYW1lIG1vZGVsIG9mIGxhcHRvcCBjYW4gaGF2ZSBvbmUgb2YgbXVsdGlwbGUg ZGlmZmVyZW50IHBhbmVscy4KPiA+ID4gKEZvciB0aGUgeW9nYSBjNjMwIHRoYXQgSSBoYXZlLCBJ IGtub3cgb2YgYXQgbGVhc3QgdHdvIHBvc3NpYmxlIHBhbmVscywKPiA+ID4gdGhlcmUgbWlnaHQg YmUgYSB0aGlyZC4pCj4gPgo+ID4gSSBoYXZlIHRvIGFzayB0aGUgb2J2aW91cyBxdWVzdGlvbjog d2h5IGRvZXNuJ3QgdGhlIGJvb3QgbG9hZGVyIGp1c3QKPiA+IHBhc3MgYSBjb3JyZWN0IERUIHRv IExpbnV4ID8gVGhlcmUncyBubyBwb2ludCBpbiBwYXNzaW5nIGEgbGlzdCBvZgo+ID4gcGFuZWxz IHRoYXQgYXJlIG5vdCB0aGVyZSwgdGhpcyBzZWVtcyBxdWl0ZSBhIGJpZyBoYWNrIHRvIG1lLiBB IHByb3Blcgo+ID4gYm9vdCBsb2FkZXIgc2hvdWxkIGNvbnN0cnVjdCB0aGUgRFQgYmFzZWQgb24g aGFyZHdhcmUgZGV0ZWN0aW9uLgo+IAo+IEhpIExhdXJlbnQsCj4gCj4gQWN0dWFsbHkgdGhlIGJv b3Rsb2FkZXIgb24gdGhlc2UgZGV2aWNlcyBpcyBwYXNzaW5nICpubyogZHQgKHRoZXkgYm9vdAo+ IEFDUEksIHdlIGFyZSBsb2FkaW5nIGR0YiBmcm9tIGdydWIgY3VycmVudGx5KQoKQWgsIHRoZSBi cm9rZW4gcHJvbWlzZXMgb2YgQUNQSSBvbiBBUk02NC4gSSB3b25kZXIgaG93IGxvbmcgaXQgd2ls bCB0YWtlCmJlZm9yZSBhIHB1YmxpYyBhY2tub3dsZWRnZW1lbnQgdGhhdCBpdCB3YXMgYSBiYWQg aWRlYS4gQmFkIGlkZWFzIGhhcHBlbgphbmQgY2FuIGJlIGZvcmdpdmVuLCBidXQgc3R1YmJvcm5l c3MgaW4gY2xhaW1pbmcgaXQgd2FzIHRoZSByaWdodApkZWNpc2lvbiBpcyBhbm90aGVyIHN0b3J5 LgoKKE5vdCB0aGF0IHlvdSBjYW4gYmUgYmxhbWVkIGZvciB0aGlzIG9mIGNvdXJzZSA6LSkpCgo+ IEkgdGhpbmsgbm9ybWFsbHkgYSBkZXZpY2UgYnVpbHQgdy8gZHQgaW4gbWluZCB3b3VsZCBwb3B1 bGF0ZQo+IC9jaG9zZW4vcGFuZWwtaWQgZGlyZWN0bHkgKHJhdGhlciB0aGFuIHRoZSB3YXkgaXQg aXMgY3VycmVudGx5Cj4gcG9wdWxhdGVkIGJhc2VkIG9uIHJlYWRpbmcgYW4gZWZpIHZhcmlhYmxl IHByaW9yIHRvIEV4aXRCb290U2VydmljZXMpLgo+IEJ1dCB0aGF0IGlzIGNvbnNpZGVyYWJseSBl YXNpZXIgYXNrIHRoYW4gaGF2aW5nIGl0IHJlLXdyaXRlIG9mX2dyYXBoCj4gYmluZGluZ3MuIEVp dGhlciB3YXksIHdlIGFyZW4ndCBpbiBjb250cm9sIG9mIHRoZSBib290bG9hZGVyIG9uIHRoZXNl Cj4gZGV2aWNlcywKCklmIHlvdSBjYW4ndCBjb250cm9sIHRoZSBpbml0aWFsIGJvb3QgbG9hZGVy LCB0aGVuIEkgc2VlIHR3byBvcHRpb25zLApub25lIG9mIHdoaWNoIHlvdSB3aWxsIGxpa2UgSSdt IGFmcmFpZC4KCi0gQXMgeW91IHBhc3MgdGhlIERUIHRvIExpbnV4IGZyb20gZ3J1YiwgdGhlcmUn cyB5b3VyIGludGVybWVkaWF0ZSBib290CiAgbG9hZGVyIHdoZXJlIHlvdSBjYW4gY29uc3RydWN0 IGEgdmFsaWQgRFQuCgotIElmIHRoZSBBQ1BJIGN1bHQgbmVlZHMgdG8gYmUgdmVuZXJhdGVkLCB0 aGVuIGRyaXZlcnMgc2hvdWxkIGJlCiAgY29udmVydGVkIHRvIHN1cHBvcnQgQUNQSSB3aXRob3V0 IHRoZSBuZWVkIGZvciBEVC4KCkEgcG9zc2libGUgYSBtaWRkbGVncm91bmQgY291bGQgYmUgYSBw bGF0Zm9ybSBkcml2ZXIgKGluCmRyaXZlcnMvZmlybXdhcmUvZWZpLyA/IGluIGRyaXZlcnMvcGxh dGZvcm0vID8pIHRoYXQgd2lsbCBwYXRjaCB0aGUgRFQKdG8gaW5zdGFudGlhdGUgdGhlIHJpZ2h0 IHBhbmVsIGJhc2VkIG9uIHRoZSBpbmZvcm1hdGlvbiByZXRyaWV2ZWQgZnJvbQp0aGUgYm9vdCBs b2FkZXIuIFdlIHdpbGwgbmVlZCBzb21ldGhpbmcgc2ltaWxhciBmb3IgdGhlIEludGVsIElQVTMK Y2FtZXJhIGRyaXZlciwgYXMgSW50ZWwgZGVjaWRlZCB0byBjb21lIHVwIHdpdGggdHdvIGRpZmZl cmVudCBBQ1BJCiJiaW5kaW5ncyIsIG9uZSBmb3IgV2luZG93cyBhbmQgb25lIGZvciBDaHJvbWUg T1MsIGxlYXZpbmcgV2luZG93cwptYWNoaW5lIGltcG9zc2libGUgdG8gaGFuZGxlIGZyb20gYSBr ZXJuZWwgZHJpdmVyIGR1ZSB0byByZXF1aXJlZAppbmZvcm1hdGlvbiBiZWluZyBoYXJkY29kZWQg aW4gV2luZG93cyBkcml2ZXJzIHNoaXBwZWQgYnkgSW50ZWwuIFRoaXMgaXMKdGh1cyBhbiBvcHRp b24gdGhhdCBtYXkgKHVuZm9ydHVuYXRlbHkpIG5lZWQgdG8gYmVjb21lIG1vcmUgd2lkZXNwcmVh ZApmb3IgQUNQSS1iYXNlZCBzeXN0ZW1zLgoKPiBzbyBpdCBpcyBhIG1hdHRlciBvZiBjb21pbmcg dXAgd2l0aCBzb21ldGhpbmcgdGhhdCB3b3JrcyBvbiBhY3R1YWwgaHcKPiB0aGF0IHdlIGRvbid0 IGxpa2UgcmF0aGVyIHRoYW4gaWRlYWxpemVkIGh3IHRoYXQgd2UgZG9uJ3QgaGF2ZSA7LSkKClRo YXQgZG9lc24ndCBob3dldmVyIGp1c3RpZnkgbm90IGdvaW5nIGZvciB0aGUgYmVzdCBzb2x1dGlv biB3ZSBjYW4KYWNoaWV2ZS4gV2hhdCBkbyB5b3UgbGlrZSBiZXN0IGluIHRoZSBhYm92ZSA/IDot KQoKLS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNoYXJ0Cl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==