From patchwork Wed Jan 15 11:45:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jyri Sarha X-Patchwork-Id: 205698 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=-8.9 required=3.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable 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 B4387C33CB1 for ; Wed, 15 Jan 2020 11:45:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 870CA2073A for ; Wed, 15 Jan 2020 11:45:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b="W0A109m5" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730014AbgAOLp4 (ORCPT ); Wed, 15 Jan 2020 06:45:56 -0500 Received: from fllv0016.ext.ti.com ([198.47.19.142]:41238 "EHLO fllv0016.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729841AbgAOLp4 (ORCPT ); Wed, 15 Jan 2020 06:45:56 -0500 Received: from lelv0266.itg.ti.com ([10.180.67.225]) by fllv0016.ext.ti.com (8.15.2/8.15.2) with ESMTP id 00FBjg7D066960; Wed, 15 Jan 2020 05:45:42 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1579088742; bh=13oyTm9XE7BCVUgGlKne8T8FVS+EKsvyqwV0GjffdNQ=; h=From:To:CC:Subject:Date; b=W0A109m5DqI3m4idzLpKOKOBzvAW0O6knjxMwZtODVwBd6H46pzQia1bmfHK3p5OP LiyvYb0EJoWaC3Yf2E42QAdm375CKEGRgjzWB2mm8vlRceBDe6iuUAuqQY80bguVdf 4zWe9oMALEPVUgxmiKwML3ozrCT2Frp1kKCkM190= Received: from DLEE109.ent.ti.com (dlee109.ent.ti.com [157.170.170.41]) by lelv0266.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 00FBjg2A008951 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 15 Jan 2020 05:45:42 -0600 Received: from DLEE115.ent.ti.com (157.170.170.26) by DLEE109.ent.ti.com (157.170.170.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1847.3; Wed, 15 Jan 2020 05:45:42 -0600 Received: from fllv0040.itg.ti.com (10.64.41.20) by DLEE115.ent.ti.com (157.170.170.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1847.3 via Frontend Transport; Wed, 15 Jan 2020 05:45:42 -0600 Received: from jadmar.ti.com (ileax41-snat.itg.ti.com [10.172.224.153]) by fllv0040.itg.ti.com (8.15.2/8.15.2) with ESMTP id 00FBjdgR054185; Wed, 15 Jan 2020 05:45:40 -0600 From: Jyri Sarha To: , CC: , , , , , , , , Subject: [PATCH v6 0/5] drm/tidss: New driver for TI Keystone platform Display SubSystem Date: Wed, 15 Jan 2020 13:45:34 +0200 Message-ID: X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Changes since v5: - Add Add Reviewed-by: from Rob Herring and Benoit Parrot to binding patches - Color property changes and fixes to the driver implementation patch - Check CTM and gamma support from dispc_features when creating crtc - Implement CTM support for k2g and fix k3 CTM implementation - Remove gamma property persistence and always write color properties in a new modeset Changes since v4: - itemize named resource property descriptions in dt binding - fix wp to wb in the ti,j721e-dss reg property description - remove fifo underflow irq handling, it is not an error and it should be used for debug purposes only - memory tuning, prefetch plane fifo up to high-threshold value to minimize possibility of underflows. Changes since v3: - Add descriptions some yaml binding properites - Remove redundant minItems directives from yaml bindings - Remove ports node from ti,k2g-dss yaml binding - no change to MAINTAINERS or to the driver code Changes since v2: - Add version history to commit messages - Fix yaml bindings now that got dt_binding_check dtbs_check working propery - Move tidss entry in MAINTAINERS after omapdrm and add "T: git git://anongit.freedesktop.org/drm/drm-misc" - no change to driver code Changes since the first version of the patch series [2]: - "drm/tidss: New driver for TI Keystone platform Display SubSystem" - rebased on top of drm-next-2019-11-27 - sort all include lines in all files - remove all include - remove select "select VIDEOMODE_HELPERS" - call dispc_vp_setup() later in tidss_crtc_atomic_flush() (there is no to call it in new modeset case as it is also called in vp_enable()) - change probe sequence and drm_device allocation (follow example in drm_drv.c) - use __maybe_unused instead of #ifdef for pm functions - remove "struct drm_fbdev_cma *fbdev;" from driver data - check panel connector type before connecting it - No change to binding or MAINTAINERS patches There was couple of attempts upstream an earlier version of this driver about a year ago [1]. Back then I needed to stop my efforts to implement support for next Keystone DSS version, so now the driver supports three different Keystone DSS version on three different SoCs. I am starting the patch series versioning from the beginning because it has been over a year since the previous patch set and the structure of the driver has evolved quite a bit. However, all the earlier comments should be addressed in this series. [1] https://patchwork.freedesktop.org/series/44947/ [2] https://lists.freedesktop.org/archives/dri-devel/2019-November/246542.html Jyri Sarha (5): dt-bindings: display: ti,k2g-dss: Add dt-schema yaml binding dt-bindings: display: ti,am65x-dss: Add dt-schema yaml binding dt-bindings: display: ti,j721e-dss: Add dt-schema yaml binding drm/tidss: New driver for TI Keystone platform Display SubSystem MAINTAINERS: add entry for tidss .../bindings/display/ti/ti,am65x-dss.yaml | 152 + .../bindings/display/ti/ti,j721e-dss.yaml | 208 ++ .../bindings/display/ti/ti,k2g-dss.yaml | 109 + MAINTAINERS | 11 + drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/tidss/Kconfig | 14 + drivers/gpu/drm/tidss/Makefile | 12 + drivers/gpu/drm/tidss/tidss_crtc.c | 377 +++ drivers/gpu/drm/tidss/tidss_crtc.h | 46 + drivers/gpu/drm/tidss/tidss_dispc.c | 2708 +++++++++++++++++ drivers/gpu/drm/tidss/tidss_dispc.h | 132 + drivers/gpu/drm/tidss/tidss_dispc_regs.h | 243 ++ drivers/gpu/drm/tidss/tidss_drv.c | 285 ++ drivers/gpu/drm/tidss/tidss_drv.h | 39 + drivers/gpu/drm/tidss/tidss_encoder.c | 88 + drivers/gpu/drm/tidss/tidss_encoder.h | 17 + drivers/gpu/drm/tidss/tidss_irq.c | 146 + drivers/gpu/drm/tidss/tidss_irq.h | 72 + drivers/gpu/drm/tidss/tidss_kms.c | 248 ++ drivers/gpu/drm/tidss/tidss_kms.h | 15 + drivers/gpu/drm/tidss/tidss_plane.c | 217 ++ drivers/gpu/drm/tidss/tidss_plane.h | 25 + drivers/gpu/drm/tidss/tidss_scale_coefs.c | 202 ++ drivers/gpu/drm/tidss/tidss_scale_coefs.h | 22 + 25 files changed, 5391 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml create mode 100644 Documentation/devicetree/bindings/display/ti/ti,j721e-dss.yaml create mode 100644 Documentation/devicetree/bindings/display/ti/ti,k2g-dss.yaml create mode 100644 drivers/gpu/drm/tidss/Kconfig create mode 100644 drivers/gpu/drm/tidss/Makefile create mode 100644 drivers/gpu/drm/tidss/tidss_crtc.c create mode 100644 drivers/gpu/drm/tidss/tidss_crtc.h create mode 100644 drivers/gpu/drm/tidss/tidss_dispc.c create mode 100644 drivers/gpu/drm/tidss/tidss_dispc.h create mode 100644 drivers/gpu/drm/tidss/tidss_dispc_regs.h create mode 100644 drivers/gpu/drm/tidss/tidss_drv.c create mode 100644 drivers/gpu/drm/tidss/tidss_drv.h create mode 100644 drivers/gpu/drm/tidss/tidss_encoder.c create mode 100644 drivers/gpu/drm/tidss/tidss_encoder.h create mode 100644 drivers/gpu/drm/tidss/tidss_irq.c create mode 100644 drivers/gpu/drm/tidss/tidss_irq.h create mode 100644 drivers/gpu/drm/tidss/tidss_kms.c create mode 100644 drivers/gpu/drm/tidss/tidss_kms.h create mode 100644 drivers/gpu/drm/tidss/tidss_plane.c create mode 100644 drivers/gpu/drm/tidss/tidss_plane.h create mode 100644 drivers/gpu/drm/tidss/tidss_scale_coefs.c create mode 100644 drivers/gpu/drm/tidss/tidss_scale_coefs.h