Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965977AbcDLPsO (ORCPT ); Tue, 12 Apr 2016 11:48:14 -0400 Received: from mail-wm0-f68.google.com ([74.125.82.68]:35812 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S965853AbcDLPsK (ORCPT ); Tue, 12 Apr 2016 11:48:10 -0400 Date: Tue, 12 Apr 2016 17:47:57 +0200 From: Daniel Vetter To: Liviu Dudau Cc: Dave Airlie , Daniel Stone , David Brown , Brian Starkey , devicetree@vger.kernel.org, LKML , DRI devel Subject: Re: [RFC][PATCH 2/2] drm/arm: Add support for Mali Display Processors Message-ID: <20160412154757.GG2510@phenom.ffwll.local> Mail-Followup-To: Liviu Dudau , Dave Airlie , Daniel Stone , David Brown , Brian Starkey , devicetree@vger.kernel.org, LKML , DRI devel References: <1459527712-9488-1-git-send-email-Liviu.Dudau@arm.com> <1459527712-9488-3-git-send-email-Liviu.Dudau@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1459527712-9488-3-git-send-email-Liviu.Dudau@arm.com> X-Operating-System: Linux phenom 4.4.0-1-amd64 User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 79880 Lines: 2457 On Fri, Apr 01, 2016 at 05:21:52PM +0100, Liviu Dudau wrote: > 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 Quickly scrolled through it with an eye towards atomic. Looks real pretty, I think we're getting closer to the ideal world where a new atomic driver is just hw specific code plus minimal amounts of glue. Bunch of comments inline below. -Daniel > --- > 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 > > 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