Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp9619388ybi; Wed, 24 Jul 2019 07:11:20 -0700 (PDT) X-Google-Smtp-Source: APXvYqy5OkD5FJMfClJIu11JS/NouPEQZAE0EM3/VsQLpFG69WVSvNfvdMbTq3BfopyZD3nTqNkD X-Received: by 2002:a63:3dcd:: with SMTP id k196mr34543719pga.283.1563977480020; Wed, 24 Jul 2019 07:11:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563977480; cv=none; d=google.com; s=arc-20160816; b=EJR+XgsVde6rsTBz5xV7kQLM+0PBLH27cCOjTTnvQotbmdxcgCLfBENhk+jmrb1g5K 0d+B+zojhY0kc8nRGfQRILBvz9oXKNn5wmqfu09YJIwabN99CQeScbWUBNaa35YWLb5Y wR+3ByQVXLJCIzlaVYJ5Hi+4pcvdkE1C/RGkYzutpV+YPAqxsp1GdRnjikFHiCWV1Ub0 acDeRD2AJukjmVvLnwfKb4uft1iBCkwbpv3dL6Wt3/azfkVMjNuPWaamCVx9XMgWySaY JrI8ArMJeaA268v5cZbVcoPCJlB2Yy70iyn1ib86PLC8V6yyKLb6k4AqPuA59VJApSKq /JYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=Y/B0ZZf3hQfKBfNa7vbl1ilKX0j3s5LF3r7B4jpV/kg=; b=uCvuTs7sWeO+tvkpmcTL8ck9oxFg6Tu1v8q4rkr8H7M5eBcD6rC7QMjbr87mr3F2fa tYznIYfxZkNfKSYuBTY5oLr8wfStOqZJPEfN1HaucBsEU5dS97QwewQgtwrAoKdaXyK7 tEOOIGgWbA1TuuhJJbZe8+VvVzHiXHKimSwyNiO5EE0lwUuvwGWEm3yreqxAncDaxW1C 8rmkCfkT1OYMwNp2ZEPBZaHusgulv1dUwHzUTtXRfirb7/RBLPWL4/sLA0Tg4A22ZO7K Bn6AoHfkXkXh9qWxcrunKCXrz9LKGxmdwRxIBVyvfFqj3nP9eGB5pr+gXNhuq2KG29EB j3uw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j71si13448343pge.50.2019.07.24.07.11.03; Wed, 24 Jul 2019 07:11:19 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728244AbfGXN6w (ORCPT + 99 others); Wed, 24 Jul 2019 09:58:52 -0400 Received: from relay12.mail.gandi.net ([217.70.178.232]:38223 "EHLO relay12.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727806AbfGXN6v (ORCPT ); Wed, 24 Jul 2019 09:58:51 -0400 Received: from localhost (lfbn-1-17395-211.w86-250.abo.wanadoo.fr [86.250.200.211]) (Authenticated sender: maxime.ripard@bootlin.com) by relay12.mail.gandi.net (Postfix) with ESMTPSA id C4C96200004; Wed, 24 Jul 2019 13:58:46 +0000 (UTC) Date: Wed, 24 Jul 2019 15:58:46 +0200 From: Maxime Ripard To: Vasily Khoruzhick Cc: Andrzej Hajda , Torsten Duwe , Harald Geyer , Chen-Yu Tsai , Rob Herring , Mark Rutland , Thierry Reding , David Airlie , Daniel Vetter , Laurent Pinchart , Icenowy Zheng , Sean Paul , Greg Kroah-Hartman , Thomas Gleixner , dri-devel , devicetree , arm-linux , linux-kernel Subject: Re: [PATCH v2 7/7] arm64: dts: allwinner: a64: enable ANX6345 bridge on Teres-I Message-ID: <20190724135846.7mnuau4aih4zqm6a@flea> References: <20190612152022.c3cfhp4cauhzhfyr@flea> <20190701095842.fvganvycce2cy7jn@flea> <20190709085532.cdqv7whuesrjs64c@flea> <20190710114042.ybgavnxb4hgqrtor@flea> <20190712201543.krhsfjepd3cqndla@flea> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="ga3sbptupgkf2nsb" Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20180716 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --ga3sbptupgkf2nsb Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Mon, Jul 15, 2019 at 05:28:53PM -0700, Vasily Khoruzhick wrote: > On Fri, Jul 12, 2019 at 1:15 PM Maxime Ripard wrote: > > > > On Wed, Jul 10, 2019 at 03:11:04PM -0700, Vasily Khoruzhick wrote: > > > On Wed, Jul 10, 2019 at 4:40 AM Maxime Ripard wrote: > > > > > > > There's another issue: if we introduce edp-connector we'll have to > > > > > > > specify power up delays somewhere (in dts? or in platform driver?), so > > > > > > > edp-connector doesn't really solve the issue of multiple panels with > > > > > > > same motherboard. > > > > > > > > > > > > And that's what that compatible is about :) > > > > > > > > > > Sorry, I fail to see how it would be different from using existing > > > > > panels infrastructure and different panels compatibles. I think Rob's > > > > > idea was to introduce generic edp-connector. > > > > > > > > Again, there's no such thing as a generic edp-connector. The spec > > > > doesn't define anything related to the power sequence for example. > > > > > > > > > If we can't make it generic then let's use panel infrastructure. > > > > > > > > Which uses a device specific compatible. Really, I'm not sure what > > > > your objection and / or argument is here. > > > > > > > > In addition, when that was brought up in the discussion, you rejected > > > > it because it was inconvenient: > > > > https://patchwork.freedesktop.org/patch/283012/?series=56163&rev=1#comment_535206 > > > > > > It is inconvenient, but I don't understand how having board-specific > > > connectors fixes it. > > > > How it would not fix it? > > I think I got your idea, but yet I think it's not the best solution. > > Do I understand correctly that you're proposing to introduce > board-specific edp-connector driver that will be aware of worst case > power up delays and will control backlight and power? > > Then why not to add another board-specific panel (e.g. > "pine64,pinebook-panel") to simple-panel.c that does the same? That would be fine for me too. Thierry was against it though IIRC, and I don't recall why exactly. > > You'll have one connector, without the need to describe each and every > > panel in the device tree and rely on the EDID instead, and you'll have > > the option to power up the regulator you need. > > > > I really don't understand what's the issue here, so let's take a step > > back. What are is the issue , what are your requirements, and how > > would you like that to be described ? > > We have a device (Pinebook) that uses the same board with multiple edp > panels. So far there're pinebooks with 3 different panels: 11" with > 768p panel, 11" with 1080p panel, 14" with 768p panel. > > Currently there's no way to describe all pinebooks with a single dts. > There's a simple workaround though -- we can just specify a panel with > worst power up delays in dts and it'll work since anx6345 driver > ignores panel modes anyway and uses EDID. > > Originally I proposed to extend simple-panel driver to support generic > edp-panel but it was rejected. I still believe that it's the best > solution assuming we can specify delays in dts, since panels list is > specific to particular device and it probably can't be reused, i.e. > there's no good reason to move it into C code. > > Rob Herring proposed to introduce edp-connector. While I still believe > that it's not accurate description of hardware since it'll have to > have backlight node (backlight is actually panel property) I was OK > with this approach assuming we can store delays in dts. > > Later it evolved into board-specific edp-connector. I think you got that wrong. As far as I'm concerned, the plan was to have two compatibles: the board-specific one, and the generic one. Something like compatible = "pine64,pinebook-edp-connector", "edp-connector"; or whatever. > So far I don't understand why everyone is trying to avoid introducing > edp-panel driver that can read delays from dts. Basically, I don't > understand what's the magic behind simple-panel.c and why new panels > should be added there rather than described in dts. [1] Doesn't > explain that. So others might have different viewpoints here as well, but the major downside I see in putting those kind of values in the device tree is that at some point, someone will get it wrong, and chances are that even for the same panel, everyone will use a slightly different set of timings. And once it's wrong, then it's a mess to fix. You have to track down every DT using it, make sure it's corrected, and then every user will have to change their DT in their system. Whereas if you have just a compatible and those timings in the kernel, then the only thing required is a kernel update, which should be a pretty standard operation. Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com --ga3sbptupgkf2nsb Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQRcEzekXsqa64kGDp7j7w1vZxhRxQUCXThkFgAKCRDj7w1vZxhR xdmDAP9yBWH/KYH8hNsfJpjtSxRuDZg1xa/Ai5yq/48P70rBqQEAxJBFYLdvAn8g WJBWvY6ToqNpGVah2fBV3mDR/Au2/wc= =7SCN -----END PGP SIGNATURE----- --ga3sbptupgkf2nsb--