From patchwork Fri Apr 1 16:21:52 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Liviu Dudau X-Patchwork-Id: 64890 Delivered-To: patch@linaro.org Received: by 10.112.199.169 with SMTP id jl9csp827583lbc; Fri, 1 Apr 2016 09:22:22 -0700 (PDT) X-Received: by 10.66.193.6 with SMTP id hk6mr31939979pac.3.1459527742169; Fri, 01 Apr 2016 09:22:22 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id ro9si22216643pab.70.2016.04.01.09.22.21; Fri, 01 Apr 2016 09:22:22 -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 S1759218AbcDAQWS (ORCPT + 29 others); Fri, 1 Apr 2016 12:22:18 -0400 Received: from fw-tnat.cambridge.arm.com ([217.140.96.140]:16203 "EHLO cam-smtp0.cambridge.arm.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751974AbcDAQWA (ORCPT ); Fri, 1 Apr 2016 12:22:00 -0400 Received: from e106497-lin.cambridge.arm.com (e106497-lin.cambridge.arm.com [10.2.131.162]) by cam-smtp0.cambridge.arm.com (8.13.8/8.13.8) with ESMTP id u31GLqrP005405; Fri, 1 Apr 2016 17:21:53 +0100 From: Liviu Dudau To: Dave Airlie , Daniel Stone , David Brown , Brian Starkey Cc: DRI devel , devicetree@vger.kernel.org, LKML Subject: [RFC][PATCH 2/2] drm/arm: Add support for Mali Display Processors Date: Fri, 1 Apr 2016 17:21:52 +0100 Message-Id: <1459527712-9488-3-git-send-email-Liviu.Dudau@arm.com> X-Mailer: git-send-email 2.7.1 In-Reply-To: <1459527712-9488-1-git-send-email-Liviu.Dudau@arm.com> References: <1459527712-9488-1-git-send-email-Liviu.Dudau@arm.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add support for the new family of Display Processors from ARM Ltd. This commit adds basic support for Mali DP500, DP550 and DP650 parts, with only the display engine being supported at the moment. Cc: David Brown Cc: Brian Starkey Signed-off-by: Liviu Dudau --- drivers/gpu/drm/arm/Kconfig | 15 + drivers/gpu/drm/arm/Makefile | 2 + drivers/gpu/drm/arm/malidp_crtc.c | 276 +++++++++++++ drivers/gpu/drm/arm/malidp_drv.c | 486 ++++++++++++++++++++++ drivers/gpu/drm/arm/malidp_drv.h | 49 +++ drivers/gpu/drm/arm/malidp_hw.c | 777 ++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/arm/malidp_hw.h | 192 +++++++++ drivers/gpu/drm/arm/malidp_planes.c | 342 ++++++++++++++++ drivers/gpu/drm/arm/malidp_regs.h | 172 ++++++++ 9 files changed, 2311 insertions(+) create mode 100644 drivers/gpu/drm/arm/malidp_crtc.c create mode 100644 drivers/gpu/drm/arm/malidp_drv.c create mode 100644 drivers/gpu/drm/arm/malidp_drv.h create mode 100644 drivers/gpu/drm/arm/malidp_hw.c create mode 100644 drivers/gpu/drm/arm/malidp_hw.h create mode 100644 drivers/gpu/drm/arm/malidp_planes.c create mode 100644 drivers/gpu/drm/arm/malidp_regs.h -- 2.7.1 diff --git a/drivers/gpu/drm/arm/Kconfig b/drivers/gpu/drm/arm/Kconfig index eaed454..e5b5b6b 100644 --- a/drivers/gpu/drm/arm/Kconfig +++ b/drivers/gpu/drm/arm/Kconfig @@ -25,3 +25,18 @@ config DRM_HDLCD_SHOW_UNDERRUN Enable this option to show in red colour the pixels that the HDLCD device did not fetch from framebuffer due to underrun conditions. + +config DRM_MALI_DISPLAY + tristate "ARM Mali Display Processor" + depends on DRM && OF && (ARM || ARM64) + depends on COMMON_CLK + select DRM_ARM + select DRM_KMS_HELPER + select DRM_KMS_CMA_HELPER + select DRM_GEM_CMA_HELPER + select VIDEOMODE_HELPERS + help + Choose this option if you want to compile the ARM Mali Display + Processor driver. It supports all the variants of the hardware. + + If compiled as a module it will be called malidp. diff --git a/drivers/gpu/drm/arm/Makefile b/drivers/gpu/drm/arm/Makefile index 89dcb7b..3e76e6c 100644 --- a/drivers/gpu/drm/arm/Makefile +++ b/drivers/gpu/drm/arm/Makefile @@ -1,2 +1,4 @@ hdlcd-y := hdlcd_drv.o hdlcd_crtc.o obj-$(CONFIG_DRM_HDLCD) += hdlcd.o +malidp-y := malidp_drv.o malidp_hw.o malidp_planes.o malidp_crtc.o +obj-$(CONFIG_DRM_MALI_DISPLAY) += malidp.o diff --git a/drivers/gpu/drm/arm/malidp_crtc.c b/drivers/gpu/drm/arm/malidp_crtc.c new file mode 100644 index 0000000..aa49fd4 --- /dev/null +++ b/drivers/gpu/drm/arm/malidp_crtc.c @@ -0,0 +1,276 @@ +/* + * (C) COPYRIGHT 2016 ARM Limited. All rights reserved. + * Author: Liviu Dudau + * + * This program is free software and is provided to you under the terms of the + * GNU General Public License version 2 as published by the Free Software + * Foundation, and any use by you of this program is subject to the terms + * of such GNU licence. + * + * ARM Mali DP500/DP550/DP650 driver (crtc operations) + */ + +#include +#include +#include +#include +#include +#include +#include