From patchwork Fri Jul 19 18:42:54 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Salveti de Araujo X-Patchwork-Id: 260320 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) by ozlabs.org (Postfix) with ESMTP id 790EE2C0095 for ; Sat, 20 Jul 2013 04:43:34 +1000 (EST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1V0FeJ-0001Gb-61; Fri, 19 Jul 2013 18:43:27 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1V0Fe7-0001Fh-0c for kernel-team@lists.ubuntu.com; Fri, 19 Jul 2013 18:43:15 +0000 Received: from [186.214.76.52] (helo=evatp.domonet) by youngberry.canonical.com with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1V0Fe6-00005q-Bi; Fri, 19 Jul 2013 18:43:14 +0000 From: Ricardo Salveti de Araujo To: kernel-team@lists.ubuntu.com Subject: [PATCH 2/7] gpu: pvr: Update to DDK 1.8@2198402 Date: Fri, 19 Jul 2013 15:42:54 -0300 Message-Id: <1374259379-31107-3-git-send-email-ricardo.salveti@canonical.com> X-Mailer: git-send-email 1.8.3.2 In-Reply-To: <1374259379-31107-1-git-send-email-ricardo.salveti@canonical.com> References: <1374259379-31107-1-git-send-email-ricardo.salveti@canonical.com> Cc: Alistair Strachan , Ricardo Salveti de Araujo X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.14 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: kernel-team-bounces@lists.ubuntu.com From: Alistair Strachan - Implemented a DC API change which queues a dummy display flip to workaround a rare and difficult to reproduce synchronization deadlock. - Eliminate log spam from Linux shrinker integration. Signed-off-by: Ricardo Salveti de Araujo 7 files changed, 34 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/pvr/Makefile b/drivers/gpu/pvr/Makefile index 6a45523..183d76d 100644 --- a/drivers/gpu/pvr/Makefile +++ b/drivers/gpu/pvr/Makefile @@ -36,7 +36,7 @@ ccflags-$(CONFIG_PVR_BUILD_RELEASE) += \ ccflags-$(CONFIG_PVR_BUILD_DEBUG) += \ -DPVR_BUILD_TYPE="\"debug\"" -DDEBUG -ccflags-$(CONFIG_PVR_NEED_PVR_DPF) += -DPVRSRV_NEED_PVR_DPF -DPVRSRV_NEED_PVR_TRACE +ccflags-$(CONFIG_PVR_NEED_PVR_DPF) += -DPVRSRV_NEED_PVR_DPF ccflags-$(CONFIG_PVR_NEED_PVR_ASSERT) += -DPVRSRV_NEED_PVR_ASSERT ccflags-$(CONFIG_PVR_DEBUG_MEMORY) += \ diff --git a/drivers/gpu/pvr/kerneldisplay.h b/drivers/gpu/pvr/kerneldisplay.h index 55111d3..23384d7 100644 --- a/drivers/gpu/pvr/kerneldisplay.h +++ b/drivers/gpu/pvr/kerneldisplay.h @@ -191,7 +191,7 @@ typedef struct DISPLAYCLASS_FLIP_COMMAND2_TAG #define DC_STATE_NO_FLUSH_COMMANDS 0 #define DC_STATE_FLUSH_COMMANDS 1 - +#define DC_STATE_FORCE_SWAP_TO_SYSTEM 2 typedef IMG_BOOL (*PFN_DC_GET_PVRJTABLE)(PPVRSRV_DC_DISP2SRV_KMJTABLE); diff --git a/drivers/gpu/pvr/mm.c b/drivers/gpu/pvr/mm.c index 5053a45..ecad206 100644 --- a/drivers/gpu/pvr/mm.c +++ b/drivers/gpu/pvr/mm.c @@ -56,9 +56,11 @@ #include #include +#if defined(PVR_LINUX_MEM_AREA_POOL_ALLOW_SHRINK) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) #include #endif +#endif #include "img_defs.h" #include "services.h" diff --git a/drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c b/drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c index d5df63f7..a70b454 100644 --- a/drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c +++ b/drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c @@ -150,6 +150,9 @@ static IMG_VOID SetDCState(IMG_HANDLE hDevice, IMG_UINT32 ui32State) case DC_STATE_NO_FLUSH_COMMANDS: OMAPLFBAtomicBoolSet(&psDevInfo->sFlushCommands, OMAPLFB_FALSE); break; + case DC_STATE_FORCE_SWAP_TO_SYSTEM: + OMAPLFBFlip(psDevInfo, &psDevInfo->sSystemBuffer); + break; default: break; } diff --git a/drivers/gpu/pvr/pvrsrv.c b/drivers/gpu/pvr/pvrsrv.c index 1b730f5..af2b6eb 100644 --- a/drivers/gpu/pvr/pvrsrv.c +++ b/drivers/gpu/pvr/pvrsrv.c @@ -840,7 +840,9 @@ PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO *psMiscInfo) |PVRSRV_MISC_INFO_CPUCACHEOP_PRESENT |PVRSRV_MISC_INFO_RESET_PRESENT |PVRSRV_MISC_INFO_FREEMEM_PRESENT - |PVRSRV_MISC_INFO_GET_REF_COUNT_PRESENT)) + |PVRSRV_MISC_INFO_GET_REF_COUNT_PRESENT + |PVRSRV_MISC_INFO_GET_PAGE_SIZE_PRESENT + |PVRSRV_MISC_INFO_FORCE_SWAP_TO_SYSTEM_PRESENT)) { PVR_DPF((PVR_DBG_ERROR,"PVRSRVGetMiscInfoKM: invalid state request flags")); return PVRSRV_ERROR_INVALID_PARAMS; @@ -1094,6 +1096,12 @@ PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO *psMiscInfo) } #endif + if ((psMiscInfo->ui32StateRequest & PVRSRV_MISC_INFO_FORCE_SWAP_TO_SYSTEM_PRESENT) != 0UL) + { + PVRSRVSetDCState(DC_STATE_FORCE_SWAP_TO_SYSTEM); + psMiscInfo->ui32StatePresent |= PVRSRV_MISC_INFO_FORCE_SWAP_TO_SYSTEM_PRESENT; + } + return PVRSRV_OK; } diff --git a/drivers/gpu/pvr/pvrversion.h b/drivers/gpu/pvr/pvrversion.h index 28a2f45..99a55f5 100644 --- a/drivers/gpu/pvr/pvrversion.h +++ b/drivers/gpu/pvr/pvrversion.h @@ -35,17 +35,17 @@ #define PVRVERSION_BRANCH 18 #define PVRVERSION_FAMILY "sgxddk" -#define PVRVERSION_BRANCHNAME "1.8" -#define PVRVERSION_BUILD 905891 +#define PVRVERSION_BRANCHNAME "1.8.GOOGLENEXUS.ED945322" +#define PVRVERSION_BUILD 2198402 #define PVRVERSION_BSCONTROL "CustomerGoogle_Android_ogles1_ogles2_GPL" -#define PVRVERSION_STRING "CustomerGoogle_Android_ogles1_ogles2_GPL sgxddk 18 1.8@" PVR_STR2(PVRVERSION_BUILD) -#define PVRVERSION_STRING_SHORT "1.8@" PVR_STR2(PVRVERSION_BUILD) +#define PVRVERSION_STRING "CustomerGoogle_Android_ogles1_ogles2_GPL sgxddk 18 1.8.GOOGLENEXUS.ED945322@" PVR_STR2(PVRVERSION_BUILD) +#define PVRVERSION_STRING_SHORT "1.8.GOOGLENEXUS.ED945322@" PVR_STR2(PVRVERSION_BUILD) #define COPYRIGHT_TXT "Copyright (c) Imagination Technologies Ltd. All Rights Reserved." -#define PVRVERSION_BUILD_HI 90 -#define PVRVERSION_BUILD_LO 5891 +#define PVRVERSION_BUILD_HI 219 +#define PVRVERSION_BUILD_LO 8402 #define PVRVERSION_STRING_NUMERIC PVR_STR2(PVRVERSION_MAJ) "." PVR_STR2(PVRVERSION_MIN) "." PVR_STR2(PVRVERSION_BUILD_HI) "." PVR_STR2(PVRVERSION_BUILD_LO) #endif /* _PVRVERSION_H_ */ diff --git a/drivers/gpu/pvr/services.h b/drivers/gpu/pvr/services.h index 1619aef..1f34059 100644 --- a/drivers/gpu/pvr/services.h +++ b/drivers/gpu/pvr/services.h @@ -92,16 +92,18 @@ extern "C" { #define PVRSRV_DEFAULT_DEV_COOKIE (1) -#define PVRSRV_MISC_INFO_TIMER_PRESENT (1U<<0) -#define PVRSRV_MISC_INFO_CLOCKGATE_PRESENT (1U<<1) -#define PVRSRV_MISC_INFO_MEMSTATS_PRESENT (1U<<2) -#define PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT (1U<<3) -#define PVRSRV_MISC_INFO_DDKVERSION_PRESENT (1U<<4) -#define PVRSRV_MISC_INFO_CPUCACHEOP_PRESENT (1U<<5) -#define PVRSRV_MISC_INFO_FREEMEM_PRESENT (1U<<6) -#define PVRSRV_MISC_INFO_GET_REF_COUNT_PRESENT (1U<<7) - -#define PVRSRV_MISC_INFO_RESET_PRESENT (1U<<31) +#define PVRSRV_MISC_INFO_TIMER_PRESENT (1U<<0) +#define PVRSRV_MISC_INFO_CLOCKGATE_PRESENT (1U<<1) +#define PVRSRV_MISC_INFO_MEMSTATS_PRESENT (1U<<2) +#define PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT (1U<<3) +#define PVRSRV_MISC_INFO_DDKVERSION_PRESENT (1U<<4) +#define PVRSRV_MISC_INFO_CPUCACHEOP_PRESENT (1U<<5) +#define PVRSRV_MISC_INFO_FREEMEM_PRESENT (1U<<6) +#define PVRSRV_MISC_INFO_GET_REF_COUNT_PRESENT (1U<<7) +#define PVRSRV_MISC_INFO_GET_PAGE_SIZE_PRESENT (1U<<8) +#define PVRSRV_MISC_INFO_FORCE_SWAP_TO_SYSTEM_PRESENT (1U<<9) + +#define PVRSRV_MISC_INFO_RESET_PRESENT (1U<<31) #define PVRSRV_PDUMP_MAX_FILENAME_SIZE 20 #define PVRSRV_PDUMP_MAX_COMMENT_SIZE 200