Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp308879pxb; Thu, 19 Nov 2020 01:32:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJzd9n9m90/7yW5KsD7lnv/swBgZ+aCLgEa/mTvqKNPp5dthd+cFDxgdphqvTUQEOyvMDZHR X-Received: by 2002:a17:907:4270:: with SMTP id nx24mr1377353ejb.296.1605778351806; Thu, 19 Nov 2020 01:32:31 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1605778351; cv=pass; d=google.com; s=arc-20160816; b=BsRcyv/CRmjvgv0d0Rlk1dog5iIU4Q7WiGpOb+7lKiEXwBZYf/tEa0JZRjxvFs1Y8k OsMKkHteVor1jaFDYs+pq3Xwn6NeHS0vgKDVhUs2F1dKcoJdOEWk7qm1OdL8QKZdiayO h3LtIHtpk9F+UrVVwuP8sGpJS6rvJmAeApkRJK+3gMuaq7nX2o7eY6dMpmpMOfKcd/YS rP4mB2dA4h1qGk99fn/Ig2N0Wg34G0XGQ0SvFSjUL6mGTK0UJGUoHIe4JVsw0aht2vE2 26/Z6/WmM4YJSm2GMQ0YOwnilfezTnZGZn7iygjohyfqGYOlQOmarnispaSI2z9T+6kf u9jw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from :dkim-signature; bh=IUaIFSvzvuQgfvpJfSCLqtEQ3126IMImmx5e/osevEk=; b=q/iXbUatoX0l8k2MvN4EHtGENqFZ/01QwuH8wj8QyYzWg6dSTMqL+i5V1TYUZWQN3C rocmxUEwFVwf4XFvS0w1RO1QuKq0eNa9xNN4CrJhudAVlJkcDSdAU/mj5AHxt6TIIXpa zErfMJf5DDm9bzL5wZc3BAG2QFyLLZOtqEzYmn9gw17/uExghNDJoXMD3hVB9yOWemno zJKJJ0VYtvMq0fv0diawDCW6oJdfinG3xd56FLA+oP9nILgsxwRVTu/8EpDaFfw8gzbX UGusz7y5aQVdyyUVEIBtKW217iZ4VwTaP/R5mb79c9LxAT4DrKdsY3LtxIcd3XJEsEyE ki2g== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=Wq4Y4zNA; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a42si8249540edf.129.2020.11.19.01.32.07; Thu, 19 Nov 2020 01:32:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=Wq4Y4zNA; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726982AbgKSJ3d (ORCPT + 99 others); Thu, 19 Nov 2020 04:29:33 -0500 Received: from mail-db8eur05on2080.outbound.protection.outlook.com ([40.107.20.80]:56865 "EHLO EUR05-DB8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726778AbgKSJ3c (ORCPT ); Thu, 19 Nov 2020 04:29:32 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IZ3d/V3/1yP7i87d6asLHmcg3neybaioWXLWu7f7FUbw3EAdKXzpHq+CsbklcZYo1mKy+wOF4EKGQ7GQ3V1Dw+qa2PjneliNSi0VeWbTFi4it68L4DZTLLpNtdwvsNXgE0JnqmsLXINa9KwnWFHf1kITPbT8pxRVbMcji6zJdFc0qdKMdtm9960qET2vTWxQzQDJQlD6kfDrSbtvexEGef0DiHxIqvIvsbmmLJ5FA4tGd+i0RRnj4NOu4k25NAmCV/mdOC6xWCPu9slCq5HjwO9oEON531nZGnR/xVBPzii6OEX3PCtJCMm53v5Bcxyuhgk0ry2IcGkJxvA4wgbIWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IUaIFSvzvuQgfvpJfSCLqtEQ3126IMImmx5e/osevEk=; b=jhdpkutLSMPArdqGsxkuqyq45okijKCkXFvkjEegT1xWUJrPMBxVprjCYnvFfMzJxOq2MPVZagPQc3u2SnlI+BGD9VdQI9z0uY8i4QyHLcTijynU4vn0a77ZgFS6Wn2AHPFkPCQwODwLjWWfzo9/l8eYuQZgOv9zpDAmmVNRjAFFt+3iQZTjbAyU+K2vdKYDGXMkWzw3uTC6RxqbNUjKGc0aavtHMR7WSpm52AiBR/FdQgDcOtuVT7OcirdrP5eZbwdWqV2/nvkXTGCrI8P4seqMTkkkoR4mWnSLwngW2GZbRtjQPWePt6tRlKvbAnw2+PaI3ZLTrXO1skus/BBSTQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IUaIFSvzvuQgfvpJfSCLqtEQ3126IMImmx5e/osevEk=; b=Wq4Y4zNAxSjswBmWRwQmRD8VLFpynb995tBc45IsQLoMDoz+Pwp69i0/st4plS3LESbervDfYU9e3Q0QOVQnYzfrHZ+lUmSfBStLKwW6rFA1NjLjn49mZtFahnqNEI80nbT9rZR4j+eq9MZToIjFJBLE0tpzY0mmJEXoutxdQ1c= Authentication-Results: lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB3983.eurprd04.prod.outlook.com (2603:10a6:803:4c::16) by VI1PR04MB2973.eurprd04.prod.outlook.com (2603:10a6:802:10::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3564.25; Thu, 19 Nov 2020 09:29:23 +0000 Received: from VI1PR04MB3983.eurprd04.prod.outlook.com ([fe80::dcb7:6117:3def:2685]) by VI1PR04MB3983.eurprd04.prod.outlook.com ([fe80::dcb7:6117:3def:2685%7]) with mapi id 15.20.3589.021; Thu, 19 Nov 2020 09:29:23 +0000 From: Liu Ying To: linux-arm-kernel@lists.infradead.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: p.zabel@pengutronix.de, airlied@linux.ie, daniel@ffwll.ch, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, robh+dt@kernel.org, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de Subject: [PATCH 0/8] drm/imx: Introduce i.MX8qxp DPU DRM Date: Thu, 19 Nov 2020 17:22:17 +0800 Message-Id: <1605777745-23625-1-git-send-email-victor.liu@nxp.com> X-Mailer: git-send-email 2.7.4 Content-Type: text/plain X-Originating-IP: [119.31.174.66] X-ClientProxiedBy: SG2PR0401CA0002.apcprd04.prod.outlook.com (2603:1096:3:1::12) To VI1PR04MB3983.eurprd04.prod.outlook.com (2603:10a6:803:4c::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (119.31.174.66) by SG2PR0401CA0002.apcprd04.prod.outlook.com (2603:1096:3:1::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.3589.20 via Frontend Transport; Thu, 19 Nov 2020 09:29:18 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 6ed29312-29d1-4d4c-65bf-08d88c6d996f X-MS-TrafficTypeDiagnostic: VI1PR04MB2973: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oN8RputEVvhFl55v5KJXEDt16cDJa/I2EKqxKXzFdFRQjiX2lXSEnHSMQXhGq/2PLp3D/YtumPlrV1XfGXJjIVbYlU1JPHu7CcoIAzDEhRaznZqgzeEX0gF7O97e1luO+tsgppI0ksbAwKzChQY/pxcRxcuxZS+zdA0zWjaT5qQJjS5ylmhEXRPL5DXIBQPchZIcoxlZQDqxQXmIX1gCVx0dM0NvI6K5lBUQ4orRX9pMb7Ar43CLcjIcsgEVcduu450jq8/bTX+EWOYJDZX+kvJCLCWIZpF50c7CnbD2f9mYwDYOInM0ArrL1KH7V+WnWmX97KzQ7NCfcM2hJeTfmesAT0vwolCpHx0W0gp5Z6gBGYx/QWCJOCwk4C9hmg+ACngFKpcKbei8jmdWq/Rp616xW8puhJCqMMye7+ULQCrKQNKlR0XzqANbIFCyzWZ5ATjF/SXDpkforKR+Y/T8tQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB3983.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(346002)(396003)(376002)(136003)(39860400002)(2906002)(6512007)(26005)(16526019)(186003)(956004)(86362001)(5660300002)(66476007)(6486002)(66556008)(52116002)(36756003)(316002)(6506007)(66946007)(8936002)(966005)(478600001)(4326008)(7416002)(8676002)(69590400008)(2616005)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: xvCzFmokWm4erHe3BzCcN5sqqD3GXeexyac9FqmeXceMTDhe78acuJJBEbaeDavyYLkDuYVkeLDJYe33xeiYCYc6pQGawQPcl45+vqICmdJIEs/4jxQbf6O7IXIzka7I+NnuNkaL75gzgnLJ1KFskYv/AfnG+qPXnKnXhrFJ+e+eNVrYZCnMmOrIR61aX5oLul/cgGMVMircgtfUqhNEV85AhU58Lp9gxxynA0FK2aSlcUMUVwiPsKKqEg66PtaCde4A6SwUq4/CvPJH0PCTLn0ff9Kkl4gkH1aZsdIVYgreT4CTyrbmCUdnDwAr/ySjXiR1ylW8jWck4i9KMItfgUgxQ6HFKASWRJVJq74Mg1sa47DSShKdJLZhayp+nMFmjMABmfYD/GZOk/T6A0WjelrBnSAtvufa1Tx7ipibJyOcYq9RvAzCGwimGhzQebm3j0IFQhV1k/qFnmxNLBTqn84qspegKRMG8VdT0J90d9BDTm8edFCfbHRpCoa5vfDK0GOseU70XvX5+/O1ANkY4NKT6Imw+9RmhAlAYR+04Cg9ai7c+Vzj6SItImnJOKdO5c3KL4NXcjOH2tlCdUUbQW2pnrH7mtTYt/j3kgxpEb0TaQDhqoEOO1dKpygoiGg8lwnoUyqEddcq3mxMir2RCw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ed29312-29d1-4d4c-65bf-08d88c6d996f X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB3983.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2020 09:29:22.9372 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 68GmB5h88GfssdCM2thSZtvjJSqKNLfuekxNf5dRcbl34XVUSwzfuwN7qrPR3TZvtRr4tjcpMpvOQOOS9b/ddQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB2973 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, This patch set introduces i.MX8qxp Display Processing Unit(DPU) DRM support. DPU is comprised of a blit engine for 2D graphics, a display controller and a command sequencer. Outside of DPU, optional prefetch engines can fetch data from memory prior to some DPU fetchunits of blit engine and display controller. The pre-fetchers support linear formats and Vivante GPU tile formats. Reference manual can be found at: https://www.nxp.com/webapp/Download?colCode=IMX8DQXPRM This patch set adds kernel modesetting support for the display controller part. It supports two CRTCs per display controller, several planes, prefetch engines and some properties of CRTC and plane. Currently, the registers of the controller is accessed without command sequencer involved, instead just by using CPU. DRM connectors would be created from the DPU KMS driver. If people want to try this series, clock patches can be found at: https://www.spinics.net/lists/arm-kernel/msg856137.html and, power domain patches at: https://www.spinics.net/lists/arm-kernel/msg856097.html I will send other patch sets to add downstream bridges(embedded in i.MX8qxp) to support LVDS displays. A brief look at the pipe: prefetch eng -> DPU -> pixel combiner -> pixel link -> pixel to DPI(pxl2dpi) -> LVDS display bridge(LDB) Patch 1 ~ 3 add dt-bindings for DPU and prefetch engines. Patch 4 is a minor improvement of a macro to suppress warning as the KMS driver uses it. Patch 5 introduces the DPU DRM support. Patch 6 updates MAINTAINERS. Patch 7 & 8 add DPU and prefetch engines support in the device tree of i.MX8qxp MEK platform. Welcome comments, thanks. Liu Ying (8): dt-bindings: display: imx: Add i.MX8qxp/qm DPU binding dt-bindings: display: imx: Add i.MX8qxp/qm PRG binding dt-bindings: display: imx: Add i.MX8qxp/qm DPR channel binding drm/atomic: Avoid unused-but-set-variable warning on for_each_old_plane_in_state drm/imx: Introduce i.MX8qxp DPU DRM MAINTAINERS: add maintainer for i.MX8qxp DPU DRM driver arm64: imx8qxp:dtsi: Introduce DC0 subsystem arm64: dts: imx8qxp-mek: Enable DPU and it's prefetch engines .../bindings/display/imx/fsl,imx8qxp-dprc.yaml | 87 ++ .../bindings/display/imx/fsl,imx8qxp-dpu.yaml | 358 ++++++++ .../bindings/display/imx/fsl,imx8qxp-prg.yaml | 60 ++ MAINTAINERS | 9 + arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 64 ++ arch/arm64/boot/dts/freescale/imx8qxp.dtsi | 313 +++++++ drivers/gpu/drm/imx/Kconfig | 1 + drivers/gpu/drm/imx/Makefile | 1 + drivers/gpu/drm/imx/dpu/Kconfig | 10 + drivers/gpu/drm/imx/dpu/Makefile | 10 + drivers/gpu/drm/imx/dpu/dpu-constframe.c | 170 ++++ drivers/gpu/drm/imx/dpu/dpu-core.c | 880 ++++++++++++++++++++ drivers/gpu/drm/imx/dpu/dpu-crtc.c | 926 +++++++++++++++++++++ drivers/gpu/drm/imx/dpu/dpu-crtc.h | 62 ++ drivers/gpu/drm/imx/dpu/dpu-disengcfg.c | 114 +++ drivers/gpu/drm/imx/dpu/dpu-dprc.c | 721 ++++++++++++++++ drivers/gpu/drm/imx/dpu/dpu-dprc.h | 40 + drivers/gpu/drm/imx/dpu/dpu-drv.c | 296 +++++++ drivers/gpu/drm/imx/dpu/dpu-drv.h | 28 + drivers/gpu/drm/imx/dpu/dpu-extdst.c | 296 +++++++ drivers/gpu/drm/imx/dpu/dpu-fetchdecode.c | 291 +++++++ drivers/gpu/drm/imx/dpu/dpu-fetcheco.c | 221 +++++ drivers/gpu/drm/imx/dpu/dpu-fetchlayer.c | 151 ++++ drivers/gpu/drm/imx/dpu/dpu-fetchunit.c | 609 ++++++++++++++ drivers/gpu/drm/imx/dpu/dpu-fetchunit.h | 191 +++++ drivers/gpu/drm/imx/dpu/dpu-fetchwarp.c | 247 ++++++ drivers/gpu/drm/imx/dpu/dpu-framegen.c | 392 +++++++++ drivers/gpu/drm/imx/dpu/dpu-gammacor.c | 220 +++++ drivers/gpu/drm/imx/dpu/dpu-hscaler.c | 272 ++++++ drivers/gpu/drm/imx/dpu/dpu-kms.c | 543 ++++++++++++ drivers/gpu/drm/imx/dpu/dpu-kms.h | 23 + drivers/gpu/drm/imx/dpu/dpu-layerblend.c | 345 ++++++++ drivers/gpu/drm/imx/dpu/dpu-plane.c | 703 ++++++++++++++++ drivers/gpu/drm/imx/dpu/dpu-plane.h | 56 ++ drivers/gpu/drm/imx/dpu/dpu-prg.c | 389 +++++++++ drivers/gpu/drm/imx/dpu/dpu-prg.h | 45 + drivers/gpu/drm/imx/dpu/dpu-prv.h | 203 +++++ drivers/gpu/drm/imx/dpu/dpu-tcon.c | 249 ++++++ drivers/gpu/drm/imx/dpu/dpu-vscaler.c | 305 +++++++ drivers/gpu/drm/imx/dpu/dpu.h | 389 +++++++++ include/drm/drm_atomic.h | 4 +- 41 files changed, 10293 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dprc.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dpu.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-prg.yaml create mode 100644 drivers/gpu/drm/imx/dpu/Kconfig create mode 100644 drivers/gpu/drm/imx/dpu/Makefile create mode 100644 drivers/gpu/drm/imx/dpu/dpu-constframe.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-core.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-crtc.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-crtc.h create mode 100644 drivers/gpu/drm/imx/dpu/dpu-disengcfg.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-dprc.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-dprc.h create mode 100644 drivers/gpu/drm/imx/dpu/dpu-drv.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-drv.h create mode 100644 drivers/gpu/drm/imx/dpu/dpu-extdst.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-fetchdecode.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-fetcheco.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-fetchlayer.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-fetchunit.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-fetchunit.h create mode 100644 drivers/gpu/drm/imx/dpu/dpu-fetchwarp.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-framegen.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-gammacor.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-hscaler.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-kms.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-kms.h create mode 100644 drivers/gpu/drm/imx/dpu/dpu-layerblend.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-plane.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-plane.h create mode 100644 drivers/gpu/drm/imx/dpu/dpu-prg.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-prg.h create mode 100644 drivers/gpu/drm/imx/dpu/dpu-prv.h create mode 100644 drivers/gpu/drm/imx/dpu/dpu-tcon.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu-vscaler.c create mode 100644 drivers/gpu/drm/imx/dpu/dpu.h -- 2.7.4