}
+static IMG_UINT32 ui32BuildOptions;
+
PVRSRV_ERROR SGXDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode)
{
PVRSRV_ERROR eError;
PVRSRV_SGXDEV_INFO *psDevInfo;
- IMG_UINT32 ui32BuildOptions, ui32BuildOptionsMismatch;
+ IMG_UINT32 ui32BuildOptionsMismatch;
#if !defined(NO_HARDWARE)
PPVRSRV_KERNEL_MEM_INFO psMemInfo;
PVRSRV_SGX_MISCINFO_INFO *psSGXMiscInfoInt;
ui32BuildOptions = (SGX_BUILD_OPTIONS);
+ // support blobs with and without SUPPORT_ACTIVE_POWER_MANAGEMENT
+ ui32BuildOptions &= ~(1 << 15);
+ ui32BuildOptions |= psDevInfo->ui32ClientBuildOptions & (1 << 15);
+
if (ui32BuildOptions != psDevInfo->ui32ClientBuildOptions)
{
ui32BuildOptionsMismatch = ui32BuildOptions ^ psDevInfo->ui32ClientBuildOptions;
}
- ui32BuildOptions = psSGXFeatures->ui32BuildOptions;
- if (ui32BuildOptions != (SGX_BUILD_OPTIONS))
+ if (ui32BuildOptions != psSGXFeatures->ui32BuildOptions)
{
ui32BuildOptionsMismatch = ui32BuildOptions ^ (SGX_BUILD_OPTIONS);
if ( ((SGX_BUILD_OPTIONS) & ui32BuildOptionsMismatch) != 0)
psSGXFeatures->ui32DDKBuild = PVRVERSION_BUILD;
- psSGXFeatures->ui32BuildOptions = (SGX_BUILD_OPTIONS);
+ psSGXFeatures->ui32BuildOptions = ui32BuildOptions;
#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)