summaryrefslogtreecommitdiff
path: root/drivers/mxc/gpu-viv/hal/kernel/inc
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mxc/gpu-viv/hal/kernel/inc')
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h6
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h9
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h20
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h56
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h22
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h8
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h13
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h4
8 files changed, 113 insertions, 25 deletions
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
index 87b811d8dfaf..f986e4e4e009 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
@@ -137,7 +137,7 @@ typedef enum _gceCORE
}
gceCORE;
-#define gcdCORE_COUNT 3
+#define gcdGPU_COUNT 3
/*******************************************************************************
**
@@ -1226,8 +1226,8 @@ gckOS_BroadcastCalibrateSpeed(
** gckOS Os
** Pointer to a gckOS object.ß
**
-** gceCORE Core
-** Core type.
+** gckCORE Core
+** GPU whose power is set.
**
** gctBOOL Clock
** gcvTRUE to turn on the clock, or gcvFALSE to turn off the clock.
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
index 5fafefbe058e..b1e6b488f0af 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
@@ -129,6 +129,7 @@ typedef struct _gcsTLS
gco3D engine3D;
#endif
gco2D engine2D;
+ gctBOOL copied;
}
gcsTLS;
@@ -642,6 +643,9 @@ gcoOS_GetTLS(
OUT gcsTLS_PTR * TLS
);
+ /* Copy the TLS from a source thread. */
+ gceSTATUS gcoOS_CopyTLS(IN gcsTLS_PTR Source);
+
/* Destroy the objects associated with the current thread. */
void
gcoOS_FreeThreadData(
@@ -2061,6 +2065,11 @@ gcoDUMP_Delete(
IN gctUINT32 Address
);
+/* Enable dump or not. */
+gceSTATUS
+gcoDUMP_SetDumpFlag(
+ IN gctBOOL DumpState
+ );
/******************************************************************************\
******************************* gcsRECT Structure ******************************
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h
index fe57968ba423..447663f964bd 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h
@@ -109,8 +109,7 @@ typedef enum _gceTASK
gcvTASK_UNLOCK_VIDEO_MEMORY,
gcvTASK_FREE_VIDEO_MEMORY,
gcvTASK_FREE_CONTIGUOUS_MEMORY,
- gcvTASK_UNMAP_USER_MEMORY,
- gcvTASK_UNMAP_MEMORY
+ gcvTASK_UNMAP_USER_MEMORY
}
gceTASK;
@@ -268,23 +267,6 @@ typedef struct _gcsTASK_UNMAP_USER_MEMORY
}
gcsTASK_UNMAP_USER_MEMORY;
-typedef struct _gcsTASK_UNMAP_MEMORY * gcsTASK_UNMAP_MEMORY_PTR;
-typedef struct _gcsTASK_UNMAP_MEMORY
-{
- /* Task ID (gcvTASK_UNMAP_MEMORY). */
- IN gceTASK id;
-
- /* Physical memory address to unmap. */
- IN gctPHYS_ADDR physical;
-
- /* Number of bytes in physical memory to unmap. */
- IN gctSIZE_T bytes;
-
- /* Address of mapped memory to unmap. */
- IN gctPOINTER logical;
-}
-gcsTASK_UNMAP_MEMORY;
-
#ifdef __cplusplus
}
#endif
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
index f4b7d2886e8e..b9bf7c8f916e 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
@@ -251,11 +251,63 @@ typedef struct __BITFIELDINFO{
} BITFIELDINFO;
#elif defined(LINUX) && defined(EGL_API_FB) && !defined(__APPLE__)
+
+#if defined(EGL_API_WL)
+/* Wayland platform. */
+
+#include <wayland-egl.h>
+
+#define WL_EGL_NUM_BACKBUFFERS 2
+
+struct wl_egl_buffer_info
+{
+ gctINT32 width;
+ gctINT32 height;
+ gctINT32 stride;
+ gctUINT32 physical;
+ gctPOINTER logical;
+ gceSURF_FORMAT format;
+ gcoSURF surface;
+};
+
+struct wl_egl_buffer
+{
+ struct wl_buffer* wl_buffer;
+ struct wl_egl_buffer_info info;
+};
+
+struct wl_egl_window_info
+{
+ gctUINT width;
+ gctUINT height;
+ gceSURF_FORMAT format;
+ gctUINT bpp;
+};
+
+struct wl_egl_window
+{
+/* struct wl_egl_display *display;*/
+ struct wl_surface* surface;
+ struct wl_egl_window_info info;
+ struct wl_egl_buffer backbuffers[WL_EGL_NUM_BACKBUFFERS];
+ gctUINT current;
+ /*
+ int backbuffer;
+ int dx;
+ int dy;
+*/
+};
+
+
+typedef void* HALNativeDisplayType;
+typedef void* HALNativeWindowType;
+typedef void* HALNativePixmapType;
+#else
/* Linux platform for FBDEV. */
typedef struct _FBDisplay * HALNativeDisplayType;
typedef struct _FBWindow * HALNativeWindowType;
typedef struct _FBPixmap * HALNativePixmapType;
-
+#endif
#elif defined(__ANDROID__) || defined(ANDROID)
struct egl_native_pixmap_t;
@@ -370,6 +422,8 @@ typedef struct _halDISPLAY_INFO
** if the address is not known for the specified display. */
gctSIZE_T physical;
+ gctBOOL isCompositor; /* true if compositor, false otherwise. */
+
#ifndef __QNXNTO__
/* 355_FB_MULTI_BUFFER */
gctINT multiBuffer;
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
index f77cf5826a6a..7ad46da0b40e 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
@@ -1173,6 +1173,27 @@ gco3D_InvokeThreadWalker(
IN gcsTHREAD_WALKER_INFO_PTR Info
);
+#if gcdUSE_WCLIP_PATCH
+/* Set w clip and w plane limit value. */
+gceSTATUS
+gco3D_SetWClipEnable(
+ IN gco3D Engine,
+ IN gctBOOL Enable
+ );
+
+gceSTATUS
+gco3D_SetWPlaneLimitF(
+ IN gco3D Engine,
+ IN gctFLOAT Value
+ );
+
+gceSTATUS
+gco3D_SetWPlaneLimitX(
+ IN gco3D Engine,
+ IN gctFIXED_POINT Value
+ );
+#endif
+
/*----------------------------------------------------------------------------*/
/*-------------------------- gco3D Fragment Processor ------------------------*/
@@ -1437,6 +1458,7 @@ gceSTATUS
gcoTEXTURE_AddMipMap(
IN gcoTEXTURE Texture,
IN gctINT Level,
+ IN gctINT imageFormat,
IN gceSURF_FORMAT Format,
IN gctUINT Width,
IN gctUINT Height,
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
index d10686a259c3..18ddf5bff754 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
@@ -144,6 +144,7 @@ typedef enum _gceFEATURE
gcvFEATURE_RS_YUV_TARGET,
gcvFEATURE_2D_FC_SOURCE,
gcvFEATURE_PE_DITHER_FIX,
+ gcvFEATURE_2D_YUV_SEPARATE_STRIDE,
}
gceFEATURE;
@@ -263,6 +264,13 @@ typedef enum _gceSURF_ROTATION
}
gceSURF_ROTATION;
+typedef enum _gceMIPMAP_IMAGE_FORMAT
+{
+ gcvUNKNOWN_MIPMAP_IMAGE_FORMAT = -2
+}
+gceMIPMAP_IMAGE_FORMAT;
+
+
/* Surface formats. */
typedef enum _gceSURF_FORMAT
{
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
index 4727493d507d..35743c62f2a2 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
@@ -769,4 +769,17 @@
# define gcdALPHA_KILL_IN_SHADER 1
#endif
+/* gcdHIGH_PRECISION_DELAY_ENABLE
+ *
+ * Enable high precision schedule delay with 1ms unit. otherwise schedule delay up to 10ms.
+ * Browser app performance will have obvious drop without this enablement
+ */
+#ifndef gcdHIGH_PRECISION_DELAY_ENABLE
+# define gcdHIGH_PRECISION_DELAY_ENABLE 1
+#endif
+
+#ifndef gcdUSE_WCLIP_PATCH
+# define gcdUSE_WCLIP_PATCH 0
+#endif
+
#endif /* __gc_hal_options_h_ */
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
index 132832c9224d..0bc1ffc46943 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
@@ -28,9 +28,9 @@
#define gcvVERSION_MINOR 6
-#define gcvVERSION_PATCH 7
+#define gcvVERSION_PATCH 8
-#define gcvVERSION_BUILD 1422
+#define gcvVERSION_BUILD 1443
#define gcvVERSION_DATE __DATE__