From: ZhuangXiaoLiang Date: Mon, 10 Jul 2017 09:09:56 +0000 (+0800) Subject: RK3368 GPU: Rogue N Init. X-Git-Tag: release-20171130_firefly~4^2~53 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=418c01275a652a9db3ce8e9ed0e20fbbbc9a8932;p=firefly-linux-kernel-4.4.55.git RK3368 GPU: Rogue N Init. 1. Init Rogue_DDK_Android_REL_1.8.RTM@4610191_kbuild_overlay.tgz. 2. Add rockchip support for DDK 1.8.RTM@4610191. Change-Id: If89d9656bf8d57b7a3db88b049461d9ebeb9b11a Signed-off-by: ZhuangXiaoLiang --- diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig index 5d3b86a33857..5740162793e2 100644 --- a/drivers/staging/Kconfig +++ b/drivers/staging/Kconfig @@ -110,4 +110,6 @@ source "drivers/staging/wilc1000/Kconfig" source "drivers/staging/most/Kconfig" +source "drivers/staging/imgtec/Kconfig" + endif # STAGING diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile index 30918edef5e3..a384ad4d2787 100644 --- a/drivers/staging/Makefile +++ b/drivers/staging/Makefile @@ -47,3 +47,4 @@ obj-$(CONFIG_FB_TFT) += fbtft/ obj-$(CONFIG_FSL_MC_BUS) += fsl-mc/ obj-$(CONFIG_WILC1000) += wilc1000/ obj-$(CONFIG_MOST) += most/ +obj-$(CONFIG_POWERVR_ROGUE_N) += imgtec/ diff --git a/drivers/staging/imgtec/Kconfig b/drivers/staging/imgtec/Kconfig new file mode 100644 index 000000000000..f1295a6edfeb --- /dev/null +++ b/drivers/staging/imgtec/Kconfig @@ -0,0 +1,14 @@ +config POWERVR_ADF_FBDEV + tristate "ADF driver for fbdev-only systems" + depends on ADF + depends on FB + help + Driver for systems with only fbdev video drivers. + + Say Y here if your SoC has a pre-existing fbdev driver, but + no native ADF driver. This driver will wrap the fbdev driver + to provide minimal compatibility with ADF. + +source "drivers/staging/imgtec/rogue/Kconfig" + +source "drivers/staging/imgtec/apollo/Kconfig" diff --git a/drivers/staging/imgtec/Makefile b/drivers/staging/imgtec/Makefile new file mode 100644 index 000000000000..5c44ffb15617 --- /dev/null +++ b/drivers/staging/imgtec/Makefile @@ -0,0 +1,9 @@ +obj-$(CONFIG_POWERVR_ADF_FBDEV) += powervr_adf_fbdev.o +powervr_adf_fbdev-y += adf_common.o adf_fbdev.o +ccflags-y += \ + -include $(srctree)/drivers/staging/imgtec/config_kernel.h \ + -I$(srctree)/$(src) \ + -I$(srctree)/drivers/staging/android + +obj-y += rogue/ +obj-y += apollo/ diff --git a/drivers/staging/imgtec/adf/adf_ext.h b/drivers/staging/imgtec/adf/adf_ext.h new file mode 100644 index 000000000000..49d82d28dfc7 --- /dev/null +++ b/drivers/staging/imgtec/adf/adf_ext.h @@ -0,0 +1,99 @@ +/*************************************************************************/ /*! +@File adf_ext.h +@Title IMG extension ioctls and ioctl packages for ADF +@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved +@License Dual MIT/GPLv2 + +The contents of this file are subject to the MIT license as set out below. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +Alternatively, the contents of this file may be used under the terms of +the GNU General Public License Version 2 ("GPL") in which case the provisions +of GPL are applicable instead of those above. + +If you wish to allow use of your version of this file only under the terms of +GPL, and not to allow others to use your version of this file under the terms +of the MIT license, indicate your decision by deleting the provisions above +and replace them with the notice and other provisions required by GPL as set +out in the file called "GPL-COPYING" included in this distribution. If you do +not delete the provisions above, a recipient may use your version of this file +under the terms of either the MIT license or GPL. + +This License is also included in this distribution in the file called +"MIT-COPYING". + +EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS +PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING +BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ /**************************************************************************/ +/* vi: set ts=8: */ + +#ifndef __ADF_EXT_H__ +#define __ADF_EXT_H__ + +#include + +#define ADF_BUFFER_TRANSFORM_NONE_EXT (0 << 0) +#define ADF_BUFFER_TRANSFORM_FLIP_H_EXT (1 << 0) +#define ADF_BUFFER_TRANSFORM_FLIP_V_EXT (1 << 1) +#define ADF_BUFFER_TRANSFORM_ROT_90_EXT (1 << 2) +#define ADF_BUFFER_TRANSFORM_ROT_180_EXT ((1 << 0) + (1 << 1)) +#define ADF_BUFFER_TRANSFORM_ROT_270_EXT ((1 << 0) + (1 << 1) + (1 << 2)) + +#define ADF_BUFFER_BLENDING_NONE_EXT 0 +#define ADF_BUFFER_BLENDING_PREMULT_EXT 1 +#define ADF_BUFFER_BLENDING_COVERAGE_EXT 2 + +struct adf_buffer_config_ext { + /* Crop applied to surface (BEFORE transformation) */ + struct drm_clip_rect crop; + + /* Region of screen to display surface in (AFTER scaling) */ + struct drm_clip_rect display; + + /* Surface rotation / flip / mirror */ + __u32 transform; + + /* Alpha blending mode e.g. none / premult / coverage */ + __u32 blend_type; + + /* Plane alpha */ + __u8 plane_alpha; + __u8 reserved[3]; +} __packed; + +struct adf_post_ext { + __u32 post_id; + struct adf_buffer_config_ext bufs_ext[]; +} __packed; + +struct adf_validate_config_ext { + __u32 n_interfaces; + __u32 __user *interfaces; + + __u32 n_bufs; + + struct adf_buffer_config __user *bufs; + struct adf_post_ext __user *post_ext; +} __packed; + +#define ADF_IOCTL_NR_VALIDATE_IMG (ADF_IOCTL_NR_CUSTOM + 0) + +#define ADF_VALIDATE_CONFIG_EXT \ + _IOW(ADF_IOCTL_TYPE, ADF_IOCTL_NR_VALIDATE_IMG, \ + struct adf_validate_config_ext) + +#endif /* __ADF_EXT_H__ */ diff --git a/drivers/staging/imgtec/adf_common.c b/drivers/staging/imgtec/adf_common.c new file mode 100644 index 000000000000..8d04909ceeca --- /dev/null +++ b/drivers/staging/imgtec/adf_common.c @@ -0,0 +1,592 @@ +/* -*- mode: c; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* vi: set ts=8 sw=8 sts=8: */ +/*************************************************************************/ /*! +@File +@Codingstyle LinuxKernel +@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved +@License Dual MIT/GPLv2 + +The contents of this file are subject to the MIT license as set out below. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +Alternatively, the contents of this file may be used under the terms of +the GNU General Public License Version 2 ("GPL") in which case the provisions +of GPL are applicable instead of those above. + +If you wish to allow use of your version of this file only under the terms of +GPL, and not to allow others to use your version of this file under the terms +of the MIT license, indicate your decision by deleting the provisions above +and replace them with the notice and other provisions required by GPL as set +out in the file called "GPL-COPYING" included in this distribution. If you do +not delete the provisions above, a recipient may use your version of this file +under the terms of either the MIT license or GPL. + +This License is also included in this distribution in the file called +"MIT-COPYING". + +EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS +PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING +BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ /**************************************************************************/ + +#include "adf_common.h" + +#include +#include +#include +#include +#include + +#include