Received: by 10.223.185.116 with SMTP id b49csp1551130wrg; Wed, 21 Feb 2018 22:08:12 -0800 (PST) X-Google-Smtp-Source: AH8x224ZAJu1WwjLSxV87UWnhITrpiMCaR062bW6v4JZXt5zK88IVOulUO2PVOeWlVO0YGC/O0gc X-Received: by 2002:a17:902:bd04:: with SMTP id p4-v6mr5433548pls.253.1519279691949; Wed, 21 Feb 2018 22:08:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519279691; cv=none; d=google.com; s=arc-20160816; b=l9PkYOTH8mJoAj7eW0rAoES66Ba3eDTqVCRF90eYewnUwTUJdtP+izHegiWhhc2rfA LFm0ZXamnbaKytrai6Qiw0s1M7IhitjGPbl1G2NxvkG/DP9P+As7/ppIHh6UWh/7c0Pd auvarH/zDFQf7OKVFfErEY4YoqYwztN09DW0g6zPmKAFDti2LvP1OSmw5FlzqiVzobzz /8GlphtN0lKJWScD6xeoK5Ssvw1JfZID0rk8c8G10nHbuKR9ISDAmeFKqCl+a+3zVRgY aXghdX158X1KaEvLIO9vAqihAVxFseCKhCCaKYOQ8BUR9VOxKcluEk/1SxivUk+EjhyO vwHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=SUG63oEDTOi6i/MgVSqrBRovy5uVVOuGxXq8psm5wmY=; b=kvH2CFvaIy6crezbwqRPTNt6GMuIIgnjQPYRdLDn6XE0kIwZT35DqpUGA2KSuSgvjB 02zmNgQYtfN8ey0wsdxzUSzdN7MBrbxYAHa92QkIXsH9Epw3aYIqeUl8uNlYqhGBaVhB +DQrV7tiXU4QKbo1sghsQGhe0iDq699I76LLhcgWq9w6+yhaq0FZYTwkFrckafe52NBU 2IZngDd7CatN8mpAGCExwMxgs58S8/f2+s03I/QNKlqD1pUG+c1eIhTAUCQX2znBihVF sTu/GQO5+9PbOfF/Hvu5NOfEEdl04Gw24wuPAlxhXzgl2k36BKqBGSK/RezUmOA/2Hei 2LOw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=RU0ImnYW; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s16-v6si1751495plp.358.2018.02.21.22.07.57; Wed, 21 Feb 2018 22:08:11 -0800 (PST) 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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=RU0ImnYW; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752478AbeBVGHU (ORCPT + 99 others); Thu, 22 Feb 2018 01:07:20 -0500 Received: from mail-io0-f169.google.com ([209.85.223.169]:46188 "EHLO mail-io0-f169.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750725AbeBVGHS (ORCPT ); Thu, 22 Feb 2018 01:07:18 -0500 Received: by mail-io0-f169.google.com with SMTP id p78so4747185iod.13; Wed, 21 Feb 2018 22:07:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=SUG63oEDTOi6i/MgVSqrBRovy5uVVOuGxXq8psm5wmY=; b=RU0ImnYW4+gEsbNVMn/YS47pQlFmFyrWqdMJK1/NBhxJiWkWadUP9KH7L/QnbkS32l vAMmdR2xqyRlZlUtyu5QjzOgESBLn3HxB6lV4WczDVYIQ2xu4Ty3uzy3wfPPp0rytLYK y/zciCSrpQKJVo3kQoVeeDpSF43gEKWCi+SAtQHv5Qr0JSBWj7+Lmm71tz92fqeihc5/ 8Jjwj1oksF3P7QRTHscu5d5R0X98gjtUQ6BRQ56kyx5BDg3o8mRFEHawQk71VX0tjway 5d2e0YJULvpkvexTet1rkUlNqCXviFya/t8V1h0ZG6DdxuqhHzY1bqoiLVSoM0Ny8rcT KOTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=SUG63oEDTOi6i/MgVSqrBRovy5uVVOuGxXq8psm5wmY=; b=LItovo/FrW30pk22JlexaysbaUxdcLRFavOgFaFbQjhx94MQkzYb5riVKra5HBDKJP IqWmilgAqDmXFpLQxGaJwSBa5Whn10S+r6W+H7VyRtC+4CoJVqFgtO6DJRWA1HI1Y12t RXRdzvPzt92rr+2o9hDnA8lK7IUkjqmRTZxBQmIVI/jNN9d/2tfDDnST1AIwJmGjkncH tLkYZpnzS92Xz6wEHbk6TRhPyvHz4QuLLFK3NclA1deGESVOU+w2cSqbCg5ZAWTtGjjr u8xguehukGRP44WQ2ERxhlTHFtM2VWgfNI14m1x96DETCwFP31QYFEIflXj3LPUHKBb8 Ww1w== X-Gm-Message-State: APf1xPAVx/tA/p1B29pczbXupSU4SAI4+mlbocgIn1OosbGuRyH8W+CV ibPumS2x7CmaqyH5QRXVtcQ= X-Received: by 10.107.158.12 with SMTP id h12mr7445405ioe.54.1519279637413; Wed, 21 Feb 2018 22:07:17 -0800 (PST) Received: from [192.168.1.70] (c-73-93-215-6.hsd1.ca.comcast.net. [73.93.215.6]) by smtp.gmail.com with ESMTPSA id 78sm21319982ith.34.2018.02.21.22.07.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 21 Feb 2018 22:07:16 -0800 (PST) Subject: Re: [PATCH v4 00/16] R-Car DU: Convert LVDS code to bridge driver To: Laurent Pinchart , dri-devel@lists.freedesktop.org Cc: linux-renesas-soc@vger.kernel.org, Rob Herring , Matt Porter , Koen Kooi , Guenter Roeck , Marek Vasut , Wolfram Sang , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org, Pantelis Antoniou References: <20180220231046.32638-1-laurent.pinchart+renesas@ideasonboard.com> From: Frank Rowand Message-ID: Date: Wed, 21 Feb 2018 22:07:14 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180220231046.32638-1-laurent.pinchart+renesas@ideasonboard.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/20/18 15:10, Laurent Pinchart wrote: > Hello, > > This patch series addresses a design mistake that dates back from the initial > DU support. Support for the LVDS encoders, which are IP cores separate from > the DU, was bundled in the DU driver. Worse, both the DU and LVDS were > described through a single DT node. > > To fix the, patches 01/16 and 02/16 define new DT bindings for the LVDS > encoders, and deprecate their description inside the DU bindings. To retain > backward compatibility with existing DT, patches 03/16 to 08/16 then patch the > device tree at runtime to convert the legacy bindings to the new ones. > > With the DT side addressed, patch 09/16 converts the LVDS support code to a > separate bridge driver. Patches 11/16 to 16/16 then update all the device tree > sources to the new DU and LVDS encoders bindings. > > I decided to go for live DT patching in patch 08/16 because implementing > support for both the legacy and new bindings in the driver would have been > very intrusive, and prevented further cleanups. This version relies more > heavily on overlays to avoid touching the internals of the OF core compared to > v2, even if manual fixes to the device tree are still needed. > > Compared to v3, this series uses the OF changeset API to update properties > instead of accessing the internals of the property structure. This removes the > local implementation of functions to look up nodes by path and update > properties. In order to do this, I pulled in Pantelis' patch series titled > "[PATCH v2 0/5] of: dynamic: Changesets helpers & fixes" at Rob's request, and > rebased it while taking two small review comments into account. Wait a minute! Why are you putting a patch set to modify core devicetree in the middle of a driver series. Please pull it out to a separate series. I'll try to look at the patches, as they are in this series, sometime tomorrow. I have a vague memory of unresolved issues from the last time they were proposed. Thanks, Frank > > Rob, I'd like this series to be merged in v4.17. As the changeset helpers are > now a dependency, I'd need you to merge them early (ideally on top of > v4.16-rc1) and provide a stable branch, or get your ack to merge them through > Dave's tree if they don't conflict with what you have and will queue for > v4.17. > > This version also drops the small fix to the Porter board device tree that has > been queued for v4.17 already. > > Compared to v2, the biggest change is in patch 03/16. Following Rob's and > Frank's reviews it was clear that modifying the unflattened DT structure of > the overlay before applying it wasn't popular. I have thus decided to use one > overlay source per SoC to move as much of the DT changes to the overlay as > possible, and only perform manual modifications (that are still needed as some > of the information is board-specific) on the system DT after applying the > overlay. As a result the overlay is parsed and applied without being modified. > > Compared to v1, this series update the r8a7792 and r8a7794 device tree sources > and incorporate review feedback as described by the changelogs of individual > patches. > > > Laurent Pinchart (11): > dt-bindings: display: renesas: Add R-Car LVDS encoder DT bindings > dt-bindings: display: renesas: Deprecate LVDS support in the DU > bindings > drm: rcar-du: Fix legacy DT to create LVDS encoder nodes > drm: rcar-du: Convert LVDS encoder code to bridge driver > ARM: dts: r8a7790: Convert to new LVDS DT bindings > ARM: dts: r8a7791: Convert to new LVDS DT bindings > ARM: dts: r8a7792: Convert to new DU DT bindings > ARM: dts: r8a7793: Convert to new LVDS DT bindings > ARM: dts: r8a7794: Convert to new DU DT bindings > arm64: dts: renesas: r8a7795: Convert to new LVDS DT bindings > arm64: dts: renesas: r8a7796: Convert to new LVDS DT bindings > > Pantelis Antoniou (5): > of: dynamic: Add __of_node_dupv() > of: changesets: Introduce changeset helper methods > of: changeset: Add of_changeset_node_move method > of: unittest: changeset helpers > i2c: demux: Use changeset helpers for clarity > > .../bindings/display/bridge/renesas,lvds.txt | 56 +++ > .../devicetree/bindings/display/renesas,du.txt | 31 +- > MAINTAINERS | 1 + > arch/arm/boot/dts/r8a7790-lager.dts | 22 +- > arch/arm/boot/dts/r8a7790.dtsi | 64 ++- > arch/arm/boot/dts/r8a7791-koelsch.dts | 10 +- > arch/arm/boot/dts/r8a7791-porter.dts | 16 +- > arch/arm/boot/dts/r8a7791.dtsi | 36 +- > arch/arm/boot/dts/r8a7792.dtsi | 1 - > arch/arm/boot/dts/r8a7793-gose.dts | 10 +- > arch/arm/boot/dts/r8a7793.dtsi | 37 +- > arch/arm/boot/dts/r8a7794.dtsi | 1 - > .../boot/dts/renesas/r8a7795-es1-salvator-x.dts | 3 +- > arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | 3 +- > arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 3 +- > .../arm64/boot/dts/renesas/r8a7795-salvator-xs.dts | 3 +- > arch/arm64/boot/dts/renesas/r8a7795.dtsi | 36 +- > arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts | 3 +- > arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | 3 +- > arch/arm64/boot/dts/renesas/r8a7796.dtsi | 36 +- > drivers/gpu/drm/rcar-du/Kconfig | 6 +- > drivers/gpu/drm/rcar-du/Makefile | 10 +- > drivers/gpu/drm/rcar-du/rcar_du_drv.c | 21 +- > drivers/gpu/drm/rcar-du/rcar_du_drv.h | 5 - > drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 175 +------ > drivers/gpu/drm/rcar-du/rcar_du_encoder.h | 12 - > drivers/gpu/drm/rcar-du/rcar_du_kms.c | 14 +- > drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c | 93 ---- > drivers/gpu/drm/rcar-du/rcar_du_lvdscon.h | 24 - > drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.c | 238 ---------- > drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.h | 64 --- > drivers/gpu/drm/rcar-du/rcar_du_of.c | 307 ++++++++++++ > drivers/gpu/drm/rcar-du/rcar_du_of.h | 20 + > .../gpu/drm/rcar-du/rcar_du_of_lvds_r8a7790.dts | 81 ++++ > .../gpu/drm/rcar-du/rcar_du_of_lvds_r8a7791.dts | 55 +++ > .../gpu/drm/rcar-du/rcar_du_of_lvds_r8a7793.dts | 55 +++ > .../gpu/drm/rcar-du/rcar_du_of_lvds_r8a7795.dts | 55 +++ > .../gpu/drm/rcar-du/rcar_du_of_lvds_r8a7796.dts | 55 +++ > drivers/gpu/drm/rcar-du/rcar_lvds.c | 524 +++++++++++++++++++++ > drivers/i2c/muxes/i2c-demux-pinctrl.c | 12 +- > drivers/of/dynamic.c | 317 ++++++++++++- > drivers/of/unittest.c | 54 +++ > include/linux/of.h | 337 +++++++++++++ > 43 files changed, 2199 insertions(+), 710 deletions(-) > create mode 100644 Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt > delete mode 100644 drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c > delete mode 100644 drivers/gpu/drm/rcar-du/rcar_du_lvdscon.h > delete mode 100644 drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.c > delete mode 100644 drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.h > create mode 100644 drivers/gpu/drm/rcar-du/rcar_du_of.c > create mode 100644 drivers/gpu/drm/rcar-du/rcar_du_of.h > create mode 100644 drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7790.dts > create mode 100644 drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7791.dts > create mode 100644 drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7793.dts > create mode 100644 drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7795.dts > create mode 100644 drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7796.dts > create mode 100644 drivers/gpu/drm/rcar-du/rcar_lvds.c >