All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-fsl-arm-extra][PATCH] linux-boundary: Add support for kernel 3.10.31_1.1.0_beta
@ 2014-10-10 20:09 Eric Nelson
  2014-11-24  1:57 ` [meta-fsl-arm-extra][PATCH V2] " Eric Nelson
  0 siblings, 1 reply; 24+ messages in thread
From: Eric Nelson @ 2014-10-10 20:09 UTC (permalink / raw)
  To: meta-freescale; +Cc: otavio

This patch adds experimental support for the 3.10.31_1.1.0_beta kernel
for Boundary Devices BD-SL-i.MX6 (built to SABRE Lite), Nitrogen6X,
Nitrogen6_Max and and Nitrogen6_Lite boards.

To try it out, set PREFERRED_VERSION_linux-boundary = "3.10.31"
in your local.conf file.

Minimal testing has been performed at this point, so don't expect it
to be production-ready.

Note that the 3.10.31 kernel contains an update to provide fixed
numbering for /dev/mmcblk devices instead of numbering them by
order of initialization.

See this thread on the mailing list for details
	https://lists.yoctoproject.org/pipermail/meta-freescale/2014-October/thread.html#10853

The u-boot-script-boundary recipe does not yet support this, so
you'll need to copy in an updated boot script.

To make this easy in the interim, we've made one available here:
	http://linode.boundarydevices.com/6x_bootscript-fixed-mmcdevs.zip

Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
---
 For master/next only.

 .../nitrogen6x-lite/defconfig                      | 312 ++++++++++++++++++++
 .../linux-boundary-3.10.31/nitrogen6x/defconfig    | 326 +++++++++++++++++++++
 recipes-kernel/linux/linux-boundary_3.10.31.bb     |  17 ++
 3 files changed, 655 insertions(+)
 create mode 100644 recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x-lite/defconfig
 create mode 100644 recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x/defconfig
 create mode 100644 recipes-kernel/linux/linux-boundary_3.10.31.bb

diff --git a/recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x-lite/defconfig b/recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x-lite/defconfig
new file mode 100644
index 0000000..073c692
--- /dev/null
+++ b/recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x-lite/defconfig
@@ -0,0 +1,312 @@
+CONFIG_KERNEL_LZO=y
+CONFIG_SYSVIPC=y
+CONFIG_FHANDLE=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_CGROUPS=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EMBEDDED=y
+CONFIG_PERF_EVENTS=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_GPIO_PCA953X=y
+CONFIG_ARCH_MXC=y
+CONFIG_SOC_IMX6Q=y
+CONFIG_SOC_IMX6SL=y
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_IMX6=y
+CONFIG_SMP=y
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+CONFIG_KSM=y
+CONFIG_SECCOMP=y
+CONFIG_CMDLINE="noinitrd console=ttymxc0,115200"
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_ARM_IMX6_CPUFREQ=y
+CONFIG_CPU_IDLE=y
+CONFIG_VFP=y
+CONFIG_NEON=y
+CONFIG_BINFMT_MISC=m
+CONFIG_PM_RUNTIME=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+CONFIG_IPV6=y
+CONFIG_NETFILTER=y
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_CFG80211=m
+CONFIG_MAC80211=m
+CONFIG_RFKILL=y
+CONFIG_RFKILL_GPIO=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+CONFIG_CMA=y
+CONFIG_CMA_SIZE_MBYTES=256
+CONFIG_IMX_WEIM=y
+CONFIG_CONNECTOR=y
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_JEDECPROBE=y
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_STAA=y
+CONFIG_MTD_PHYSMAP_OF=y
+CONFIG_MTD_SST25L=y
+CONFIG_MTD_UBI=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=65536
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_ATA=y
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_AHCI_IMX=y
+CONFIG_PATA_IMX=y
+CONFIG_NETDEVICES=y
+CONFIG_MII=y
+# CONFIG_NET_CADENCE is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_MICREL_PHY=y
+CONFIG_BRCMFMAC=m
+CONFIG_IWLWIFI=m
+CONFIG_INPUT_POLLDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_IMX=y
+# CONFIG_MOUSE_PS2 is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_AR1020_I2C=y
+CONFIG_TOUCHSCREEN_EGALAX=y
+CONFIG_TOUCHSCREEN_FT5X06=y
+CONFIG_TOUCHSCREEN_ILI210X=y
+CONFIG_TOUCHSCREEN_TSC2004=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_DEVKMEM is not set
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+CONFIG_SERIAL_FSL_LPUART=y
+CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+# CONFIG_I2C_HELPER_AUTO is not set
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+CONFIG_I2C_IMX=y
+CONFIG_SPI=y
+CONFIG_SPI_IMX=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_SENSORS_MAG3110=y
+CONFIG_THERMAL=y
+CONFIG_CPU_THERMAL=y
+CONFIG_IMX_THERMAL=y
+CONFIG_DEVICE_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_IMX2_WDT=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_ANATOP=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_VIDEO_V4L2_INT_DEVICE=m
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_MXC_OUTPUT=y
+CONFIG_VIDEO_MXC_CAPTURE=m
+CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
+CONFIG_VIDEO_MXC_IPU_OUTPUT=y
+CONFIG_SOC_CAMERA=y
+# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+CONFIG_DRM=y
+CONFIG_DRM_VIVANTE=y
+CONFIG_FB=y
+CONFIG_FB_MXS=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_L4F00242T03=y
+CONFIG_LCD_PLATFORM=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_PWM=y
+CONFIG_FB_MXC_SYNC_PANEL=y
+CONFIG_FB_MXC_LDB=y
+CONFIG_FB_MXC_MIPI_DSI=y
+CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
+CONFIG_FB_MXC_HDMI=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_DRIVERS is not set
+# CONFIG_SND_ARM is not set
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_IMX_SOC=y
+CONFIG_SND_SOC_IMX_SGTL5000=y
+CONFIG_SND_SOC_IMX_HDMI=y
+CONFIG_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_SERIAL=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_CP210X=y
+CONFIG_USB_SERIAL_FTDI_SIO=y
+CONFIG_USB_SERIAL_KEYSPAN=y
+CONFIG_USB_SERIAL_PL2303=y
+CONFIG_USB_SERIAL_QUALCOMM=y
+CONFIG_USB_SERIAL_OPTION=y
+CONFIG_USB_MXS_PHY=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_G_MULTI=m
+CONFIG_MMC=y
+CONFIG_MMC_UNSAFE_RESUME=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_ESDHC_IMX=y
+CONFIG_MXC_IPU=y
+CONFIG_MXC_GPU_VIV=y
+CONFIG_MXC_ASRC=y
+CONFIG_MXC_MIPI_CSI2=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_ISL1208=y
+CONFIG_RTC_DRV_SNVS=y
+CONFIG_DMADEVICES=y
+# CONFIG_MX3_IPU is not set
+CONFIG_MXC_PXP_V2=y
+CONFIG_IMX_SDMA=y
+CONFIG_STAGING=y
+CONFIG_COMMON_CLK_DEBUG=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_PWM=y
+CONFIG_PWM_IMX=y
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_JFFS2_FS=y
+CONFIG_UBIFS_FS=y
+CONFIG_SQUASHFS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_UTF8=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
+# CONFIG_ARM_UNWIND is not set
+CONFIG_SECURITYFS=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_LRW=y
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_DEV_FSL_CAAM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
diff --git a/recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x/defconfig b/recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x/defconfig
new file mode 100644
index 0000000..4bc49b9
--- /dev/null
+++ b/recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x/defconfig
@@ -0,0 +1,326 @@
+CONFIG_KERNEL_LZO=y
+CONFIG_SYSVIPC=y
+CONFIG_FHANDLE=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_CGROUPS=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EMBEDDED=y
+CONFIG_PERF_EVENTS=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_GPIO_PCA953X=y
+CONFIG_ARCH_MXC=y
+CONFIG_SOC_IMX6Q=y
+CONFIG_SOC_IMX6SL=y
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_IMX6=y
+CONFIG_SMP=y
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+CONFIG_HIGHMEM=y
+CONFIG_KSM=y
+CONFIG_SECCOMP=y
+CONFIG_CMDLINE="noinitrd console=ttymxc0,115200"
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_ARM_IMX6_CPUFREQ=y
+CONFIG_CPU_IDLE=y
+CONFIG_VFP=y
+CONFIG_NEON=y
+CONFIG_BINFMT_MISC=m
+CONFIG_PM_RUNTIME=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+CONFIG_IPV6=y
+CONFIG_NETFILTER=y
+CONFIG_CAN=m
+CONFIG_CAN_FLEXCAN=m
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_LL=y
+CONFIG_CFG80211=m
+CONFIG_MAC80211=m
+CONFIG_RFKILL=y
+CONFIG_RFKILL_GPIO=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+CONFIG_CMA=y
+CONFIG_CMA_SIZE_MBYTES=256
+CONFIG_IMX_WEIM=y
+CONFIG_CONNECTOR=y
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_JEDECPROBE=y
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_STAA=y
+CONFIG_MTD_PHYSMAP_OF=y
+CONFIG_MTD_SST25L=y
+CONFIG_MTD_UBI=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=65536
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_ATA=y
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_AHCI_IMX=y
+CONFIG_PATA_IMX=y
+CONFIG_NETDEVICES=y
+CONFIG_MII=y
+# CONFIG_NET_CADENCE is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_MICREL_PHY=y
+CONFIG_IWLWIFI=m
+CONFIG_WL_TI=y
+CONFIG_WL12XX=m
+CONFIG_WLCORE_SDIO=m
+# CONFIG_WILINK_PLATFORM_DATA is not set
+CONFIG_INPUT_POLLDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_IMX=y
+# CONFIG_MOUSE_PS2 is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_AR1020_I2C=y
+CONFIG_TOUCHSCREEN_EGALAX=y
+CONFIG_TOUCHSCREEN_FT5X06=y
+CONFIG_TOUCHSCREEN_ILI210X=y
+CONFIG_TOUCHSCREEN_TSC2004=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_DEVKMEM is not set
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+CONFIG_SERIAL_FSL_LPUART=y
+CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_MUX_GPIO=y
+# CONFIG_I2C_HELPER_AUTO is not set
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+CONFIG_I2C_IMX=y
+CONFIG_SPI=y
+CONFIG_SPI_IMX=y
+CONFIG_SPI_SPIDEV=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_SENSORS_MAG3110=y
+CONFIG_THERMAL=y
+CONFIG_CPU_THERMAL=y
+CONFIG_IMX_THERMAL=y
+CONFIG_DEVICE_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_IMX2_WDT=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_ANATOP=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_VIDEO_V4L2_INT_DEVICE=m
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_MXC_OUTPUT=y
+CONFIG_VIDEO_MXC_CAPTURE=m
+CONFIG_VIDEO_MXC_CSI_CAMERA=m
+CONFIG_MXC_CAMERA_OV5640=m
+CONFIG_MXC_CAMERA_OV5642=m
+CONFIG_MXC_CAMERA_OV5640_MIPI=m
+CONFIG_MXC_TVIN_ADV7180=m
+CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
+CONFIG_VIDEO_MXC_IPU_OUTPUT=y
+CONFIG_SOC_CAMERA=y
+# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+CONFIG_DRM=y
+CONFIG_DRM_VIVANTE=y
+CONFIG_FB=y
+CONFIG_FB_MXS=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_L4F00242T03=y
+CONFIG_LCD_PLATFORM=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_PWM=y
+CONFIG_FB_MXC_SYNC_PANEL=y
+CONFIG_FB_MXC_LDB=y
+CONFIG_FB_MXC_MIPI_DSI=y
+CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
+CONFIG_FB_MXC_HDMI=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_DRIVERS is not set
+# CONFIG_SND_ARM is not set
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_IMX_SOC=y
+CONFIG_SND_SOC_IMX_SGTL5000=y
+CONFIG_SND_SOC_IMX_HDMI=y
+CONFIG_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_SERIAL=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_CP210X=y
+CONFIG_USB_SERIAL_FTDI_SIO=y
+CONFIG_USB_SERIAL_KEYSPAN=y
+CONFIG_USB_SERIAL_PL2303=y
+CONFIG_USB_SERIAL_QUALCOMM=y
+CONFIG_USB_SERIAL_OPTION=y
+CONFIG_USB_MXS_PHY=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_G_MULTI=m
+CONFIG_MMC=y
+CONFIG_MMC_UNSAFE_RESUME=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_ESDHC_IMX=y
+CONFIG_MXC_IPU=y
+CONFIG_MXC_GPU_VIV=y
+CONFIG_MXC_ASRC=y
+CONFIG_MXC_MIPI_CSI2=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_PWM=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_ISL1208=y
+CONFIG_RTC_DRV_SNVS=y
+CONFIG_DMADEVICES=y
+# CONFIG_MX3_IPU is not set
+CONFIG_MXC_PXP_V2=y
+CONFIG_IMX_SDMA=y
+CONFIG_STAGING=y
+CONFIG_COMMON_CLK_DEBUG=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_PWM=y
+CONFIG_PWM_IMX=y
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_JFFS2_FS=y
+CONFIG_UBIFS_FS=y
+CONFIG_SQUASHFS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_UTF8=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
+# CONFIG_ARM_UNWIND is not set
+CONFIG_SECURITYFS=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_LRW=y
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_DEV_FSL_CAAM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
diff --git a/recipes-kernel/linux/linux-boundary_3.10.31.bb b/recipes-kernel/linux/linux-boundary_3.10.31.bb
new file mode 100644
index 0000000..d3f9b9a
--- /dev/null
+++ b/recipes-kernel/linux/linux-boundary_3.10.31.bb
@@ -0,0 +1,17 @@
+# Adapted from linux-imx.inc, copyright (C) 2013, 2014 O.S. Systems Software LTDA
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+require recipes-kernel/linux/linux-imx.inc
+require recipes-kernel/linux/linux-dtb.inc
+
+SUMMARY = "Linux kernel for Boundary Devices boards"
+
+SRC_URI = "git://github.com/boundarydevices/linux-imx6.git;branch=${SRCBRANCH} \
+           file://defconfig"
+
+LOCALVERSION = "-1.1.0_beta+yocto"
+SRCBRANCH = "boundary-imx_3.10.31_1.1.0_beta"
+SRCREV = "e2fb216d8e783c79ea48145157853256d89d40f2"
+DEPENDS += "lzop-native bc-native"
+COMPATIBLE_MACHINE = "(mx6)"
+COMPATIBLE_MACHINE = "(nitrogen6x|nitrogen6x-lite)"
-- 
1.9.1



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [meta-fsl-arm-extra][PATCH V2] linux-boundary: Add support for kernel 3.10.31_1.1.0_beta
  2014-10-10 20:09 [meta-fsl-arm-extra][PATCH] linux-boundary: Add support for kernel 3.10.31_1.1.0_beta Eric Nelson
@ 2014-11-24  1:57 ` Eric Nelson
  2014-11-24 19:48   ` [meta-fsl-arm-extra][PATCH] nitrogen6x*, imx6qsabrelite: default to kernel 3.10.31 Eric Nelson
  2014-11-26 18:06   ` [meta-fsl-arm-extra][PATCH V2] linux-boundary: Add support for kernel 3.10.31_1.1.0_beta Gary Thomas
  0 siblings, 2 replies; 24+ messages in thread
From: Eric Nelson @ 2014-11-24  1:57 UTC (permalink / raw)
  To: meta-freescale; +Cc: otavio

This patch adds support for the 3.10.31_1.1.0_beta kernelfor Boundary
Devices BD-SL-i.MX6 (built to SABRE Lite), Nitrogen6X, Nitrogen6_Max
and and Nitrogen6_Lite boards.

To try it out, set PREFERRED_VERSION_linux-boundary = "3.10.31" in your
local.conf file.

Minimal testing has been performed at this point, so don't expect it
to be production-ready.

Note that the 3.10.31 kernel contains an update to provide fixed
numbering for /dev/mmcblk devices instead of numbering them by
order of initialization.

Support has been added into the boot script, but requires setting
a variable in U-Boot:

	U-Boot > setenv sdphys 1
	U-Boot > saveenv
	U-Boot > boot

See this post for some additional commentary:
	http://boundarydevices.com/root-equals

Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
---
Changes in V2:
        - Several minor kernel updates pulled from boundary-imx_3.10.17_1.0.2_ga
        - Updated commentary about boot script updates
 .../nitrogen6x-lite/defconfig                      | 312 ++++++++++++++++++++
 .../linux-boundary-3.10.31/nitrogen6x/defconfig    | 326 +++++++++++++++++++++
 recipes-kernel/linux/linux-boundary_3.10.31.bb     |  17 ++
 3 files changed, 655 insertions(+)
 create mode 100644 recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x-lite/defconfig
 create mode 100644 recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x/defconfig
 create mode 100644 recipes-kernel/linux/linux-boundary_3.10.31.bb

diff --git a/recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x-lite/defconfig b/recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x-lite/defconfig
new file mode 100644
index 0000000..073c692
--- /dev/null
+++ b/recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x-lite/defconfig
@@ -0,0 +1,312 @@
+CONFIG_KERNEL_LZO=y
+CONFIG_SYSVIPC=y
+CONFIG_FHANDLE=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_CGROUPS=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EMBEDDED=y
+CONFIG_PERF_EVENTS=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_GPIO_PCA953X=y
+CONFIG_ARCH_MXC=y
+CONFIG_SOC_IMX6Q=y
+CONFIG_SOC_IMX6SL=y
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_IMX6=y
+CONFIG_SMP=y
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+CONFIG_KSM=y
+CONFIG_SECCOMP=y
+CONFIG_CMDLINE="noinitrd console=ttymxc0,115200"
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_ARM_IMX6_CPUFREQ=y
+CONFIG_CPU_IDLE=y
+CONFIG_VFP=y
+CONFIG_NEON=y
+CONFIG_BINFMT_MISC=m
+CONFIG_PM_RUNTIME=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+CONFIG_IPV6=y
+CONFIG_NETFILTER=y
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_CFG80211=m
+CONFIG_MAC80211=m
+CONFIG_RFKILL=y
+CONFIG_RFKILL_GPIO=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+CONFIG_CMA=y
+CONFIG_CMA_SIZE_MBYTES=256
+CONFIG_IMX_WEIM=y
+CONFIG_CONNECTOR=y
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_JEDECPROBE=y
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_STAA=y
+CONFIG_MTD_PHYSMAP_OF=y
+CONFIG_MTD_SST25L=y
+CONFIG_MTD_UBI=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=65536
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_ATA=y
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_AHCI_IMX=y
+CONFIG_PATA_IMX=y
+CONFIG_NETDEVICES=y
+CONFIG_MII=y
+# CONFIG_NET_CADENCE is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_MICREL_PHY=y
+CONFIG_BRCMFMAC=m
+CONFIG_IWLWIFI=m
+CONFIG_INPUT_POLLDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_IMX=y
+# CONFIG_MOUSE_PS2 is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_AR1020_I2C=y
+CONFIG_TOUCHSCREEN_EGALAX=y
+CONFIG_TOUCHSCREEN_FT5X06=y
+CONFIG_TOUCHSCREEN_ILI210X=y
+CONFIG_TOUCHSCREEN_TSC2004=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_DEVKMEM is not set
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+CONFIG_SERIAL_FSL_LPUART=y
+CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+# CONFIG_I2C_HELPER_AUTO is not set
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+CONFIG_I2C_IMX=y
+CONFIG_SPI=y
+CONFIG_SPI_IMX=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_SENSORS_MAG3110=y
+CONFIG_THERMAL=y
+CONFIG_CPU_THERMAL=y
+CONFIG_IMX_THERMAL=y
+CONFIG_DEVICE_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_IMX2_WDT=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_ANATOP=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_VIDEO_V4L2_INT_DEVICE=m
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_MXC_OUTPUT=y
+CONFIG_VIDEO_MXC_CAPTURE=m
+CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
+CONFIG_VIDEO_MXC_IPU_OUTPUT=y
+CONFIG_SOC_CAMERA=y
+# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+CONFIG_DRM=y
+CONFIG_DRM_VIVANTE=y
+CONFIG_FB=y
+CONFIG_FB_MXS=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_L4F00242T03=y
+CONFIG_LCD_PLATFORM=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_PWM=y
+CONFIG_FB_MXC_SYNC_PANEL=y
+CONFIG_FB_MXC_LDB=y
+CONFIG_FB_MXC_MIPI_DSI=y
+CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
+CONFIG_FB_MXC_HDMI=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_DRIVERS is not set
+# CONFIG_SND_ARM is not set
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_IMX_SOC=y
+CONFIG_SND_SOC_IMX_SGTL5000=y
+CONFIG_SND_SOC_IMX_HDMI=y
+CONFIG_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_SERIAL=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_CP210X=y
+CONFIG_USB_SERIAL_FTDI_SIO=y
+CONFIG_USB_SERIAL_KEYSPAN=y
+CONFIG_USB_SERIAL_PL2303=y
+CONFIG_USB_SERIAL_QUALCOMM=y
+CONFIG_USB_SERIAL_OPTION=y
+CONFIG_USB_MXS_PHY=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_G_MULTI=m
+CONFIG_MMC=y
+CONFIG_MMC_UNSAFE_RESUME=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_ESDHC_IMX=y
+CONFIG_MXC_IPU=y
+CONFIG_MXC_GPU_VIV=y
+CONFIG_MXC_ASRC=y
+CONFIG_MXC_MIPI_CSI2=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_ISL1208=y
+CONFIG_RTC_DRV_SNVS=y
+CONFIG_DMADEVICES=y
+# CONFIG_MX3_IPU is not set
+CONFIG_MXC_PXP_V2=y
+CONFIG_IMX_SDMA=y
+CONFIG_STAGING=y
+CONFIG_COMMON_CLK_DEBUG=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_PWM=y
+CONFIG_PWM_IMX=y
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_JFFS2_FS=y
+CONFIG_UBIFS_FS=y
+CONFIG_SQUASHFS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_UTF8=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
+# CONFIG_ARM_UNWIND is not set
+CONFIG_SECURITYFS=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_LRW=y
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_DEV_FSL_CAAM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
diff --git a/recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x/defconfig b/recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x/defconfig
new file mode 100644
index 0000000..4bc49b9
--- /dev/null
+++ b/recipes-kernel/linux/linux-boundary-3.10.31/nitrogen6x/defconfig
@@ -0,0 +1,326 @@
+CONFIG_KERNEL_LZO=y
+CONFIG_SYSVIPC=y
+CONFIG_FHANDLE=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_CGROUPS=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EMBEDDED=y
+CONFIG_PERF_EVENTS=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_GPIO_PCA953X=y
+CONFIG_ARCH_MXC=y
+CONFIG_SOC_IMX6Q=y
+CONFIG_SOC_IMX6SL=y
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_IMX6=y
+CONFIG_SMP=y
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+CONFIG_HIGHMEM=y
+CONFIG_KSM=y
+CONFIG_SECCOMP=y
+CONFIG_CMDLINE="noinitrd console=ttymxc0,115200"
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_ARM_IMX6_CPUFREQ=y
+CONFIG_CPU_IDLE=y
+CONFIG_VFP=y
+CONFIG_NEON=y
+CONFIG_BINFMT_MISC=m
+CONFIG_PM_RUNTIME=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+CONFIG_IPV6=y
+CONFIG_NETFILTER=y
+CONFIG_CAN=m
+CONFIG_CAN_FLEXCAN=m
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_LL=y
+CONFIG_CFG80211=m
+CONFIG_MAC80211=m
+CONFIG_RFKILL=y
+CONFIG_RFKILL_GPIO=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+CONFIG_CMA=y
+CONFIG_CMA_SIZE_MBYTES=256
+CONFIG_IMX_WEIM=y
+CONFIG_CONNECTOR=y
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_JEDECPROBE=y
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_STAA=y
+CONFIG_MTD_PHYSMAP_OF=y
+CONFIG_MTD_SST25L=y
+CONFIG_MTD_UBI=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=65536
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_ATA=y
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_AHCI_IMX=y
+CONFIG_PATA_IMX=y
+CONFIG_NETDEVICES=y
+CONFIG_MII=y
+# CONFIG_NET_CADENCE is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_MICREL_PHY=y
+CONFIG_IWLWIFI=m
+CONFIG_WL_TI=y
+CONFIG_WL12XX=m
+CONFIG_WLCORE_SDIO=m
+# CONFIG_WILINK_PLATFORM_DATA is not set
+CONFIG_INPUT_POLLDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_IMX=y
+# CONFIG_MOUSE_PS2 is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_AR1020_I2C=y
+CONFIG_TOUCHSCREEN_EGALAX=y
+CONFIG_TOUCHSCREEN_FT5X06=y
+CONFIG_TOUCHSCREEN_ILI210X=y
+CONFIG_TOUCHSCREEN_TSC2004=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_DEVKMEM is not set
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+CONFIG_SERIAL_FSL_LPUART=y
+CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_MUX_GPIO=y
+# CONFIG_I2C_HELPER_AUTO is not set
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+CONFIG_I2C_IMX=y
+CONFIG_SPI=y
+CONFIG_SPI_IMX=y
+CONFIG_SPI_SPIDEV=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_SENSORS_MAG3110=y
+CONFIG_THERMAL=y
+CONFIG_CPU_THERMAL=y
+CONFIG_IMX_THERMAL=y
+CONFIG_DEVICE_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_IMX2_WDT=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_ANATOP=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_VIDEO_V4L2_INT_DEVICE=m
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_MXC_OUTPUT=y
+CONFIG_VIDEO_MXC_CAPTURE=m
+CONFIG_VIDEO_MXC_CSI_CAMERA=m
+CONFIG_MXC_CAMERA_OV5640=m
+CONFIG_MXC_CAMERA_OV5642=m
+CONFIG_MXC_CAMERA_OV5640_MIPI=m
+CONFIG_MXC_TVIN_ADV7180=m
+CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
+CONFIG_VIDEO_MXC_IPU_OUTPUT=y
+CONFIG_SOC_CAMERA=y
+# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+CONFIG_DRM=y
+CONFIG_DRM_VIVANTE=y
+CONFIG_FB=y
+CONFIG_FB_MXS=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_L4F00242T03=y
+CONFIG_LCD_PLATFORM=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_PWM=y
+CONFIG_FB_MXC_SYNC_PANEL=y
+CONFIG_FB_MXC_LDB=y
+CONFIG_FB_MXC_MIPI_DSI=y
+CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
+CONFIG_FB_MXC_HDMI=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_DRIVERS is not set
+# CONFIG_SND_ARM is not set
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_IMX_SOC=y
+CONFIG_SND_SOC_IMX_SGTL5000=y
+CONFIG_SND_SOC_IMX_HDMI=y
+CONFIG_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_SERIAL=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_CP210X=y
+CONFIG_USB_SERIAL_FTDI_SIO=y
+CONFIG_USB_SERIAL_KEYSPAN=y
+CONFIG_USB_SERIAL_PL2303=y
+CONFIG_USB_SERIAL_QUALCOMM=y
+CONFIG_USB_SERIAL_OPTION=y
+CONFIG_USB_MXS_PHY=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_G_MULTI=m
+CONFIG_MMC=y
+CONFIG_MMC_UNSAFE_RESUME=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_ESDHC_IMX=y
+CONFIG_MXC_IPU=y
+CONFIG_MXC_GPU_VIV=y
+CONFIG_MXC_ASRC=y
+CONFIG_MXC_MIPI_CSI2=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_PWM=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_ISL1208=y
+CONFIG_RTC_DRV_SNVS=y
+CONFIG_DMADEVICES=y
+# CONFIG_MX3_IPU is not set
+CONFIG_MXC_PXP_V2=y
+CONFIG_IMX_SDMA=y
+CONFIG_STAGING=y
+CONFIG_COMMON_CLK_DEBUG=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_PWM=y
+CONFIG_PWM_IMX=y
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_JFFS2_FS=y
+CONFIG_UBIFS_FS=y
+CONFIG_SQUASHFS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_UTF8=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
+# CONFIG_ARM_UNWIND is not set
+CONFIG_SECURITYFS=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_LRW=y
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_DEV_FSL_CAAM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
diff --git a/recipes-kernel/linux/linux-boundary_3.10.31.bb b/recipes-kernel/linux/linux-boundary_3.10.31.bb
new file mode 100644
index 0000000..c647cff
--- /dev/null
+++ b/recipes-kernel/linux/linux-boundary_3.10.31.bb
@@ -0,0 +1,17 @@
+# Adapted from linux-imx.inc, copyright (C) 2013, 2014 O.S. Systems Software LTDA
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+require recipes-kernel/linux/linux-imx.inc
+require recipes-kernel/linux/linux-dtb.inc
+
+SUMMARY = "Linux kernel for Boundary Devices boards"
+
+SRC_URI = "git://github.com/boundarydevices/linux-imx6.git;branch=${SRCBRANCH} \
+           file://defconfig"
+
+LOCALVERSION = "-1.1.0_beta+yocto"
+SRCBRANCH = "boundary-imx_3.10.31_1.1.0_beta"
+SRCREV = "f4cf15c2f845d4612fb55bafb6d3a51b3706f0df"
+DEPENDS += "lzop-native bc-native"
+COMPATIBLE_MACHINE = "(mx6)"
+COMPATIBLE_MACHINE = "(nitrogen6x|nitrogen6x-lite)"
-- 
1.9.1



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [meta-fsl-arm-extra][PATCH] nitrogen6x*, imx6qsabrelite: default to kernel 3.10.31
  2014-11-24  1:57 ` [meta-fsl-arm-extra][PATCH V2] " Eric Nelson
@ 2014-11-24 19:48   ` Eric Nelson
  2014-11-24 20:04     ` Otavio Salvador
  2014-11-26 18:06   ` [meta-fsl-arm-extra][PATCH V2] linux-boundary: Add support for kernel 3.10.31_1.1.0_beta Gary Thomas
  1 sibling, 1 reply; 24+ messages in thread
From: Eric Nelson @ 2014-11-24 19:48 UTC (permalink / raw)
  To: meta-freescale; +Cc: otavio

Default to kernel version 3.10.31 to match meta-fsl-arm packages.

Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
---
 conf/machine/nitrogen6x-lite.conf | 2 +-
 conf/machine/nitrogen6x.conf      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/conf/machine/nitrogen6x-lite.conf b/conf/machine/nitrogen6x-lite.conf
index f17cff0..234da28 100644
--- a/conf/machine/nitrogen6x-lite.conf
+++ b/conf/machine/nitrogen6x-lite.conf
@@ -14,7 +14,7 @@ KERNEL_IMAGETYPE = "uImage"
 
 PREFERRED_PROVIDER_u-boot = "u-boot-boundary"
 PREFERRED_PROVIDER_virtual/kernel ?= "linux-boundary"
-PREFERRED_VERSION_linux-boundary ?= "3.10.17"
+PREFERRED_VERSION_linux-boundary ?= "3.10.31"
 
 # Use SPI NOR U-Boot by default
 IMAGE_BOOTLOADER ?= ""
diff --git a/conf/machine/nitrogen6x.conf b/conf/machine/nitrogen6x.conf
index 7fa2630..108ce5a 100644
--- a/conf/machine/nitrogen6x.conf
+++ b/conf/machine/nitrogen6x.conf
@@ -42,7 +42,7 @@ KERNEL_IMAGETYPE = "uImage"
 
 PREFERRED_PROVIDER_u-boot = "u-boot-boundary"
 PREFERRED_PROVIDER_virtual/kernel ?= "linux-boundary"
-PREFERRED_VERSION_linux-boundary ?= "3.10.17"
+PREFERRED_VERSION_linux-boundary ?= "3.10.31"
 
 # Use SPI NOR U-Boot by default
 IMAGE_BOOTLOADER ?= ""
-- 
1.9.1



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [meta-fsl-arm-extra][PATCH] nitrogen6x*, imx6qsabrelite: default to kernel 3.10.31
  2014-11-24 19:48   ` [meta-fsl-arm-extra][PATCH] nitrogen6x*, imx6qsabrelite: default to kernel 3.10.31 Eric Nelson
@ 2014-11-24 20:04     ` Otavio Salvador
  2014-11-24 20:29       ` Eric Nelson
  2014-11-24 20:44       ` [meta-fsl-arm-extra][PATCH] linux-boundary: deprecate 3.0.35, 3.10.17 kernels for Yocto 1.8 Eric Nelson
  0 siblings, 2 replies; 24+ messages in thread
From: Otavio Salvador @ 2014-11-24 20:04 UTC (permalink / raw)
  To: Eric Nelson; +Cc: meta-freescale

On Mon, Nov 24, 2014 at 5:48 PM, Eric Nelson
<eric.nelson@boundarydevices.com> wrote:
> Default to kernel version 3.10.31 to match meta-fsl-arm packages.
>
> Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>

Would be possible to remove the previous kernel versions?

3.0.35 and 3.10.17 will fail with the newer GPU so they are mostly
useless when using the new drivers.

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [meta-fsl-arm-extra][PATCH] nitrogen6x*, imx6qsabrelite: default to kernel 3.10.31
  2014-11-24 20:04     ` Otavio Salvador
@ 2014-11-24 20:29       ` Eric Nelson
  2014-11-24 20:44       ` [meta-fsl-arm-extra][PATCH] linux-boundary: deprecate 3.0.35, 3.10.17 kernels for Yocto 1.8 Eric Nelson
  1 sibling, 0 replies; 24+ messages in thread
From: Eric Nelson @ 2014-11-24 20:29 UTC (permalink / raw)
  To: Otavio Salvador; +Cc: meta-freescale

Hi Otavio,

On 11/24/2014 01:04 PM, Otavio Salvador wrote:
> On Mon, Nov 24, 2014 at 5:48 PM, Eric Nelson
> <eric.nelson@boundarydevices.com> wrote:
>> Default to kernel version 3.10.31 to match meta-fsl-arm packages.
>>
>> Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
> 
> Would be possible to remove the previous kernel versions?
> 

Of course it's possible, although I wonder if it's the right
thing to do.

> 3.0.35 and 3.10.17 will fail with the newer GPU so they are mostly
> useless when using the new drivers.
> 

We do have customers who are doing things that don't use
the GPU, and may want other userspace updates.

This is especially true of kernel version 3.0.35 and for SOM
customers who may have patches for their specifics.

On the other hand, these customers are probably best served by
introducing their own recipes to contain both the kernel and their
updates, and if we don't intend to push updates to the older
kernels to the master branch, it probably is the right thing to do.

I'll send a separate patch shortly.

Regards,


Eric


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [meta-fsl-arm-extra][PATCH] linux-boundary: deprecate 3.0.35, 3.10.17 kernels for Yocto 1.8
  2014-11-24 20:04     ` Otavio Salvador
  2014-11-24 20:29       ` Eric Nelson
@ 2014-11-24 20:44       ` Eric Nelson
  1 sibling, 0 replies; 24+ messages in thread
From: Eric Nelson @ 2014-11-24 20:44 UTC (permalink / raw)
  To: meta-freescale; +Cc: otavio

Since meta-fsl-arm is including GPU support that requires the 3.10.31
kernel, remove support for kernels 3.0.35 and 3.10.17 on Boundary
Devices boards for upcoming Yocto 1.8.

Custom boards should use their own recipes and be aware of the
incompatibilities if lingering on the older kernels.

Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
---
 For master branch only.

 ...4-4-gpu-use-new-PU-power-on-off-interface.patch |   53 -
 ...0-gpu-viante-4.6.9p13-kernel-part-integra.patch | 6261 --------------------
 ...m-vivante-Add-00-sufix-in-returned-bus-Id.patch |   31 -
 .../nitrogen6x-lite/defconfig                      |  262 -
 .../linux-boundary-3.0.35/nitrogen6x/defconfig     |  281 -
 .../nitrogen6x-lite/defconfig                      |  315 -
 .../linux-boundary-3.10.17/nitrogen6x/defconfig    |  329 -
 recipes-kernel/linux/linux-boundary_3.0.35.bb      |   17 -
 recipes-kernel/linux/linux-boundary_3.10.17.bb     |   17 -
 9 files changed, 7566 deletions(-)
 delete mode 100644 recipes-kernel/linux/linux-boundary-3.0.35/0003-ENGR00261814-4-gpu-use-new-PU-power-on-off-interface.patch
 delete mode 100644 recipes-kernel/linux/linux-boundary-3.0.35/ENGR00278350-gpu-viante-4.6.9p13-kernel-part-integra.patch
 delete mode 100644 recipes-kernel/linux/linux-boundary-3.0.35/drm-vivante-Add-00-sufix-in-returned-bus-Id.patch
 delete mode 100644 recipes-kernel/linux/linux-boundary-3.0.35/nitrogen6x-lite/defconfig
 delete mode 100644 recipes-kernel/linux/linux-boundary-3.0.35/nitrogen6x/defconfig
 delete mode 100644 recipes-kernel/linux/linux-boundary-3.10.17/nitrogen6x-lite/defconfig
 delete mode 100644 recipes-kernel/linux/linux-boundary-3.10.17/nitrogen6x/defconfig
 delete mode 100644 recipes-kernel/linux/linux-boundary_3.0.35.bb
 delete mode 100644 recipes-kernel/linux/linux-boundary_3.10.17.bb

diff --git a/recipes-kernel/linux/linux-boundary-3.0.35/0003-ENGR00261814-4-gpu-use-new-PU-power-on-off-interface.patch b/recipes-kernel/linux/linux-boundary-3.0.35/0003-ENGR00261814-4-gpu-use-new-PU-power-on-off-interface.patch
deleted file mode 100644
index 23a415d..0000000
--- a/recipes-kernel/linux/linux-boundary-3.0.35/0003-ENGR00261814-4-gpu-use-new-PU-power-on-off-interface.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 1579de9397783ab5321c80f1e76661653ef38ccd Mon Sep 17 00:00:00 2001
-From: Robin Gong <b38343@freescale.com>
-Date: Thu, 9 May 2013 11:45:55 +0800
-Subject: [PATCH 3/6] ENGR00261814-4 gpu: use new PU power on/off interface
-
-use new PU power on/off interface in GPU driver
-
-Upstream-Status: Backport [3.5.7-1.0.0]
-
-Signed-off-by: Robin Gong <b38343@freescale.com>
-Acked-by: Lily Zhang
----
- .../mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c   | 16 +++++++++++++---
- 1 file changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
-index 9c2bae6..dfbc699 100644
---- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
-+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
-@@ -6819,8 +6819,13 @@ gckOS_SetGPUPower(
-     }
- 	if((Power == gcvTRUE) && (oldPowerState == gcvFALSE))
- 	{
--		if(!IS_ERR(Os->device->gpu_regulator))
--            regulator_enable(Os->device->gpu_regulator);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)		
-+	    if(!IS_ERR(Os->device->gpu_regulator))
-+            	regulator_enable(Os->device->gpu_regulator);
-+#else
-+	    imx_gpc_power_up_pu(true);
-+#endif
-+
- #ifdef CONFIG_PM
- 		pm_runtime_get_sync(Os->device->pmdev);
- #endif
-@@ -6930,8 +6935,13 @@ gckOS_SetGPUPower(
- #ifdef CONFIG_PM
- 		pm_runtime_put_sync(Os->device->pmdev);
- #endif
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)		
- 		if(!IS_ERR(Os->device->gpu_regulator))
--            regulator_disable(Os->device->gpu_regulator);
-+			regulator_disable(Os->device->gpu_regulator);
-+#else
-+    		imx_gpc_power_up_pu(false);
-+#endif
- 	}
-     /* TODO: Put your code here. */
-     gcmkFOOTER_NO();
--- 
-1.8.3.2
-
diff --git a/recipes-kernel/linux/linux-boundary-3.0.35/ENGR00278350-gpu-viante-4.6.9p13-kernel-part-integra.patch b/recipes-kernel/linux/linux-boundary-3.0.35/ENGR00278350-gpu-viante-4.6.9p13-kernel-part-integra.patch
deleted file mode 100644
index 1e039fd..0000000
--- a/recipes-kernel/linux/linux-boundary-3.0.35/ENGR00278350-gpu-viante-4.6.9p13-kernel-part-integra.patch
+++ /dev/null
@@ -1,6261 +0,0 @@
-From 2e575255b8c53d3cfe2af068411696fe3c40debb Mon Sep 17 00:00:00 2001
-From: Loren Huang <b02279@freescale.com>
-Date: Mon, 2 Sep 2013 12:16:48 +0800
-Subject: [PATCH 01/16] ENGR00278350 gpu:viante 4.6.9p13 kernel part
- integration
-
-Integrated 4.6.9p13 kernel part change.
-This integration is mainly for android test.
-Linux test will be focused on 3.10 kernel.
-
-Signed-off-by: Loren HUANG <b02279@freescale.com>
-Acked-by: Shawn Guo
----
- drivers/mxc/gpu-viv/Kbuild                         |   33 +-
- .../GC350/hal/kernel/gc_hal_kernel_hardware_vg.c   |  177 ++--
- .../GC350/hal/kernel/gc_hal_kernel_hardware_vg.h   |    9 +-
- .../arch/XAQ2/hal/kernel/gc_hal_kernel_context.c   |    8 +-
- .../arch/XAQ2/hal/kernel/gc_hal_kernel_context.h   |   13 +
- .../arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c  |  736 ++++++++++++-
- .../arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.h  |    1 +
- drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c     |  125 ++-
- drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h     |   24 +-
- .../mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c |   57 ++
- .../gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c  |   45 +-
- drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c  |   12 +
- .../mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c   |   29 +
- .../hal/kernel/gc_hal_kernel_interrupt_vg.c        |    3 +
- drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c |    8 +-
- .../hal/kernel/gc_hal_kernel_video_memory.c        |   20 +-
- drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h        |   84 +-
- drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h   |  172 +++-
- .../mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h   |  142 ++-
- drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h |   37 +
- drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h |   46 +-
- drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h   |  125 ++-
- .../mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h    |   86 +-
- .../mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h   | 1078 +++-----------------
- drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h |   48 +
- drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h  |   79 +-
- .../mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h    |    2 +-
- .../hal/os/linux/kernel/gc_hal_kernel_device.c     |   17 +-
- .../hal/os/linux/kernel/gc_hal_kernel_device.h     |   16 +-
- .../hal/os/linux/kernel/gc_hal_kernel_driver.c     |   99 +-
- .../gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c |  655 ++++++++++--
- .../hal/os/linux/kernel/gc_hal_kernel_sync.c       |  174 ++++
- .../hal/os/linux/kernel/gc_hal_kernel_sync.h       |   71 ++
- 33 files changed, 2974 insertions(+), 1257 deletions(-)
- create mode 100644 drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c
- create mode 100644 drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h
-
-diff --git a/drivers/mxc/gpu-viv/Kbuild b/drivers/mxc/gpu-viv/Kbuild
-index 93b1259..2b277d6 100644
---- a/drivers/mxc/gpu-viv/Kbuild
-+++ b/drivers/mxc/gpu-viv/Kbuild
-@@ -45,8 +45,6 @@ OBJS := $(OS_KERNEL_DIR)/gc_hal_kernel_device.o \
-         $(OS_KERNEL_DIR)/gc_hal_kernel_os.o \
-         $(OS_KERNEL_DIR)/gc_hal_kernel_debugfs.o
- 
--ifeq ($(USE_3D_VG), 1)
--
- OBJS += $(HAL_KERNEL_DIR)/gc_hal_kernel.o \
-         $(HAL_KERNEL_DIR)/gc_hal_kernel_command.o \
-         $(HAL_KERNEL_DIR)/gc_hal_kernel_db.o \
-@@ -69,19 +67,9 @@ OBJS +=\
-           $(ARCH_VG_KERNEL_DIR)/gc_hal_kernel_hardware_command_vg.o\
-           $(ARCH_VG_KERNEL_DIR)/gc_hal_kernel_hardware_vg.o
- endif
--else
--
--OBJS += $(HAL_KERNEL_DIR)/gc_hal_kernel.o \
--        $(HAL_KERNEL_DIR)/gc_hal_kernel_command.o \
--        $(HAL_KERNEL_DIR)/gc_hal_kernel_heap.o \
--        $(HAL_KERNEL_DIR)/gc_hal_kernel_interrupt.o \
--        $(HAL_KERNEL_DIR)/gc_hal_kernel_mmu.o \
--        $(HAL_KERNEL_DIR)/gc_hal_kernel_video_memory.o \
--        $(OS_KERNEL_DIR)/gc_hal_kernel_debug.o
--
--OBJS += $(ARCH_KERNEL_DIR)/gc_hal_kernel_hardware.o \
--        $(ARCH_KERNEL_DIR)/gc_hal_kernel_hardware_command.o
- 
-+ifneq ($(CONFIG_SYNC),)
-+OBJS += $(OS_KERNEL_DIR)/gc_hal_kernel_sync.o
- endif
- 
- ifeq ($(KERNELRELEASE), )
-@@ -129,23 +117,16 @@ ifeq ($(CONFIG_DOVE_GPU), 1)
- EXTRA_CFLAGS += -DCONFIG_DOVE_GPU=1
- endif
- 
--ifeq ($(USE_POWER_MANAGEMENT), 1)
--EXTRA_CFLAGS += -DgcdPOWER_MANAGEMENT=1
--else
--EXTRA_CFLAGS += -DgcdPOWER_MANAGEMENT=0
--endif
--
- ifneq ($(USE_PLATFORM_DRIVER), 0)
- EXTRA_CFLAGS += -DUSE_PLATFORM_DRIVER=1
- else
- EXTRA_CFLAGS += -DUSE_PLATFORM_DRIVER=0
- endif
- 
--ifeq ($(USE_PROFILER), 1)
-+
- EXTRA_CFLAGS += -DVIVANTE_PROFILER=1
--else
--EXTRA_CFLAGS += -DVIVANTE_PROFILER=0
--endif
-+EXTRA_CFLAGS += -DVIVANTE_PROFILER_CONTEXT=1
-+
- 
- ifeq ($(ANDROID), 1)
- EXTRA_CFLAGS += -DANDROID=1
-@@ -235,6 +216,10 @@ ifeq ($(USE_BANK_ALIGNMENT), 1)
-     endif
- endif
- 
-+ifneq ($(CONFIG_SYNC),)
-+EXTRA_CFLAGS += -DgcdANDROID_NATIVE_FENCE_SYNC=1
-+endif
-+
- EXTRA_CFLAGS += -I$(AQROOT)/hal/kernel/inc
- EXTRA_CFLAGS += -I$(AQROOT)/hal/kernel
- EXTRA_CFLAGS += -I$(AQARCH)/hal/kernel
-diff --git a/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c b/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c
-index 70c2cd6..a17d2fd 100644
---- a/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c
-+++ b/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c
-@@ -217,50 +217,17 @@ _IdentifyHardware(
-     return status;
- }
- 
--static gctTHREADFUNCRESULT gctTHREADFUNCTYPE
--_TimeIdleThread(
--    gctTHREADFUNCPARAMETER ThreadParameter
-+#if gcdPOWEROFF_TIMEOUT
-+void
-+_VGPowerTimerFunction(
-+    gctPOINTER Data
-     )
- {
--    gctUINT32           currentTime = 0;
--    gctBOOL             isAfter = gcvFALSE;
--    gceCHIPPOWERSTATE   state;
--
--    /* Cast the object. */
--    gckVGHARDWARE hardware = (gckVGHARDWARE) ThreadParameter;
--
--    while(gcvTRUE)
--    {
--        gcmkVERIFY_OK(gckOS_WaitSignal(hardware->os,
--            hardware->idleSignal, gcvINFINITE));
--
--        if (hardware->killThread)
--        {
--            break;
--        }
--
--        do
--        {
--            gcmkVERIFY_OK(gckOS_GetTicks(&currentTime));
--
--            gcmkVERIFY_OK(
--                gckOS_TicksAfter(currentTime, hardware->powerOffTime, &isAfter));
--
--            if (isAfter)
--            {
--                gcmkVERIFY_OK(gckVGHARDWARE_SetPowerManagementState(
--                    hardware, gcvPOWER_OFF_BROADCAST));
--            }
--
--            gcmkVERIFY_OK(gckOS_Delay(hardware->os, 200));
--
--            gcmkVERIFY_OK(gckVGHARDWARE_QueryPowerManagementState(
--                hardware, &state));
--
--        } while (state == gcvPOWER_IDLE);
--    }
--    return 0;
-+    gckVGHARDWARE hardware = (gckVGHARDWARE)Data;
-+    gcmkVERIFY_OK(
-+        gckVGHARDWARE_SetPowerManagementState(hardware, gcvPOWER_OFF_TIMEOUT));
- }
-+#endif
- 
- /******************************************************************************\
- ****************************** gckVGHARDWARE API code *****************************
-@@ -338,15 +305,21 @@ gckVGHARDWARE_Construct(
-         hardware->chipMinorFeatures2 = chipMinorFeatures2;
- 
-         hardware->powerMutex            = gcvNULL;
--        hardware->idleSignal            = gcvNULL;
-         hardware->chipPowerState        = gcvPOWER_ON;
-         hardware->chipPowerStateGlobal  = gcvPOWER_ON;
-         hardware->clockState            = gcvTRUE;
-         hardware->powerState            = gcvTRUE;
--        hardware->powerOffTimeout       = gcdPOWEROFF_TIMEOUT;
-+
-         hardware->powerOffTime          = 0;
--        hardware->timeIdleThread        = gcvNULL;
--        hardware->killThread            = gcvFALSE;
-+#if gcdPOWEROFF_TIMEOUT
-+        hardware->powerOffTimeout = gcdPOWEROFF_TIMEOUT;
-+
-+        gcmkVERIFY_OK(gckOS_CreateTimer(Os,
-+                                        _VGPowerTimerFunction,
-+                                        (gctPOINTER)hardware,
-+                                        &hardware->powerOffTimer));
-+#endif
-+
-         /* Determine whether FE 2.0 is present. */
-         hardware->fe20 = ((((gctUINT32) (hardware->chipFeatures)) >> (0 ? 28:28) & ((gctUINT32) ((((1 ? 28:28) - (0 ? 28:28) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 28:28) - (0 ? 28:28) + 1)))))) == (0x1  & ((gctUINT32) ((((1 ? 28:28) - (0 ? 28:28) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 28:28) - (0 ? 28:28) + 1)))))));
- 
-@@ -365,18 +338,10 @@ gckVGHARDWARE_Construct(
-         gcmkVERIFY_OK(gckVGHARDWARE_SetFastClear(hardware, -1));
- 
-         gcmkERR_BREAK(gckOS_CreateMutex(Os, &hardware->powerMutex));
--        gcmkERR_BREAK(gckOS_CreateSignal(Os, gcvFALSE, &hardware->idleSignal));
- 
-         /* Enable power management by default. */
-         hardware->powerManagement = gcvTRUE;
- 
--        gcmkERR_BREAK(gckOS_StartThread(
--            hardware->os,
--            _TimeIdleThread,
--            hardware,
--            &hardware->timeIdleThread
--            ));
--
-         /* Return pointer to the gckVGHARDWARE object. */
-         *Hardware = hardware;
- 
-@@ -386,6 +351,14 @@ gckVGHARDWARE_Construct(
-     }
-     while (gcvFALSE);
- 
-+#if gcdPOWEROFF_TIMEOUT
-+        if (hardware->powerOffTimer != gcvNULL)
-+        {
-+            gcmkVERIFY_OK(gckOS_StopTimer(Os, hardware->powerOffTimer));
-+            gcmkVERIFY_OK(gckOS_DestroyTimer(Os, hardware->powerOffTimer));
-+        }
-+#endif
-+
-     if (hardware->pageTableDirty != gcvNULL)
-     {
-         gcmkVERIFY_OK(gckOS_AtomDestroy(Os, hardware->pageTableDirty));
-@@ -428,10 +401,6 @@ gckVGHARDWARE_Destroy(
-     /* Verify the arguments. */
-     gcmkVERIFY_OBJECT(Hardware, gcvOBJ_HARDWARE);
- 
--    Hardware->killThread  = gcvTRUE;
--    gcmkVERIFY_OK(gckOS_Signal(Hardware->os, Hardware->idleSignal, gcvTRUE));
--    gcmkVERIFY_OK(gckOS_StopThread(Hardware->os, Hardware->timeIdleThread));
--
-     /* Mark the object as unknown. */
-     Hardware->object.type = gcvOBJ_UNKNOWN;
- 
-@@ -441,11 +410,10 @@ gckVGHARDWARE_Destroy(
-             Hardware->os, Hardware->powerMutex));
-     }
- 
--    if (Hardware->idleSignal != gcvNULL)
--    {
--        gcmkVERIFY_OK(gckOS_DestroySignal(
--            Hardware->os, Hardware->idleSignal));
--    }
-+#if gcdPOWEROFF_TIMEOUT
-+    gcmkVERIFY_OK(gckOS_StopTimer(Hardware->os, Hardware->powerOffTimer));
-+    gcmkVERIFY_OK(gckOS_DestroyTimer(Hardware->os, Hardware->powerOffTimer));
-+#endif
- 
-     if (Hardware->pageTableDirty != gcvNULL)
-     {
-@@ -1510,11 +1478,15 @@ gckVGHARDWARE_SetPowerManagementState(
-     gctBOOL commitMutex     = gcvFALSE;
-     gctBOOL mutexAcquired   = gcvFALSE;
- 
-+#if gcdPOWEROFF_TIMEOUT
-+    gctBOOL timeout = gcvFALSE;
-+    gctBOOL isAfter = gcvFALSE;
-+    gctUINT32 currentTime;
-+#endif
-+
-     gctBOOL broadcast = gcvFALSE;
-     gctUINT32 process, thread;
-     gctBOOL global = gcvFALSE;
--    gctUINT32   currentTime;
--
- 
- #if gcdENABLE_PROFILING
-     gctUINT64 time, freq, mutexTime, onTime, stallTime, stopTime, delayTime,
-@@ -1661,6 +1633,16 @@ gckVGHARDWARE_SetPowerManagementState(
-         global = gcvTRUE;
-         break;
- 
-+#if gcdPOWEROFF_TIMEOUT
-+    case gcvPOWER_OFF_TIMEOUT:
-+        /* Convert to OFF and note we are inside broadcast. */
-+        State     = gcvPOWER_OFF;
-+        broadcast = gcvTRUE;
-+        /* Check time out */
-+        timeout = gcvTRUE;
-+        break;
-+#endif
-+
-     default:
-         break;
-     }
-@@ -1719,6 +1701,31 @@ gckVGHARDWARE_SetPowerManagementState(
-     flag  = flags[Hardware->chipPowerState][State];
-     /*clock = clocks[State];*/
- 
-+#if gcdPOWEROFF_TIMEOUT
-+    if (timeout)
-+    {
-+        gcmkONERROR(gckOS_GetTicks(&currentTime));
-+
-+        gcmkONERROR(
-+            gckOS_TicksAfter(Hardware->powerOffTime, currentTime, &isAfter));
-+
-+        /* powerOffTime is pushed forward, give up.*/
-+        if (isAfter
-+        /* Expect a transition start from IDLE. */
-+        ||  (Hardware->chipPowerState == gcvPOWER_ON)
-+        ||  (Hardware->chipPowerState == gcvPOWER_OFF)
-+        )
-+        {
-+            /* Release the power mutex. */
-+            gcmkONERROR(gckOS_ReleaseMutex(os, Hardware->powerMutex));
-+
-+            /* No need to do anything. */
-+            gcmkFOOTER_NO();
-+            return gcvSTATUS_OK;
-+        }
-+    }
-+#endif
-+
-     if (flag == 0)
-     {
-         /* Release the power mutex. */
-@@ -1742,6 +1749,18 @@ gckVGHARDWARE_SetPowerManagementState(
-             return gcvSTATUS_OK;
-         }
-     }
-+    else
-+    {
-+        if (flag & gcvPOWER_FLAG_ACQUIRE)
-+        {
-+            /* Acquire the power management semaphore. */
-+            gcmkONERROR(gckOS_AcquireSemaphore(os, command->powerSemaphore));
-+            acquired = gcvTRUE;
-+
-+            /* avoid acquiring again. */
-+            flag &= ~gcvPOWER_FLAG_ACQUIRE;
-+        }
-+    }
- 
-     if (flag & (gcvPOWER_FLAG_INITIALIZE | gcvPOWER_FLAG_CLOCK_ON))
-     {
-@@ -1858,14 +1877,6 @@ gckVGHARDWARE_SetPowerManagementState(
-         Hardware->chipPowerStateGlobal = State;
-     }
- 
--    if (State == gcvPOWER_IDLE)
--    {
--        gcmkVERIFY_OK(gckOS_Signal(os, Hardware->idleSignal, gcvTRUE));
--    }
--        /* Reset power off time */
--    gcmkVERIFY_OK(gckOS_GetTicks(&currentTime));
--    Hardware->powerOffTime = currentTime + Hardware->powerOffTimeout;
--
-     if (commitMutex)
-     {
-         /* Acquire the mutex. */
-@@ -1875,6 +1886,28 @@ gckVGHARDWARE_SetPowerManagementState(
-             ));
-     }
- 
-+#if gcdPOWEROFF_TIMEOUT
-+    /* Reset power off time */
-+    gcmkONERROR(gckOS_GetTicks(&currentTime));
-+
-+    Hardware->powerOffTime = currentTime + Hardware->powerOffTimeout;
-+
-+    if (State == gcvPOWER_IDLE)
-+    {
-+        /* Start a timer to power off GPU when GPU enters IDLE or SUSPEND. */
-+        gcmkVERIFY_OK(gckOS_StartTimer(os,
-+                                       Hardware->powerOffTimer,
-+                                       Hardware->powerOffTimeout));
-+    }
-+    else
-+    {
-+        gcmkTRACE_ZONE(gcvLEVEL_INFO, gcvZONE_HARDWARE, "Cancel powerOfftimer");
-+
-+        /* Cancel running timer when GPU enters ON or OFF. */
-+        gcmkVERIFY_OK(gckOS_StopTimer(os, Hardware->powerOffTimer));
-+    }
-+#endif
-+
-     /* Release the power mutex. */
-     gcmkONERROR(gckOS_ReleaseMutex(os, Hardware->powerMutex));
- 
-diff --git a/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.h b/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.h
-index 16b81ae..73d4594 100644
---- a/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.h
-+++ b/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.h
-@@ -53,7 +53,6 @@ struct _gckVGHARDWARE
-     gctBOOL                     clockState;
-     gctBOOL                     powerState;
-     gctPOINTER                  powerMutex;
--    gctSIGNAL                   idleSignal;
-     gctUINT32                   powerProcess;
-     gctUINT32                   powerThread;
-     gceCHIPPOWERSTATE           chipPowerState;
-@@ -61,11 +60,13 @@ struct _gckVGHARDWARE
-     gctISRMANAGERFUNC           startIsr;
-     gctISRMANAGERFUNC           stopIsr;
-     gctPOINTER                  isrContext;
-+    gctPOINTER                  pageTableDirty;
-+
-+#if gcdPOWEROFF_TIMEOUT
-     gctUINT32                   powerOffTime;
-     gctUINT32                   powerOffTimeout;
--    gctTHREAD                   timeIdleThread;
--    gctBOOL                     killThread;
--    gctPOINTER                  pageTableDirty;
-+    gctPOINTER                  powerOffTimer;
-+#endif
- 
-     gctBOOL                     powerManagement;
- };
-diff --git a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c
-index 24003e7..42e6915 100644
---- a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c
-+++ b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c
-@@ -181,7 +181,8 @@ _FlushPipe(
-                 ?   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 3:3) - (0 ? 3:3) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 3:3) - (0 ? 3:3) + 1))))))) << (0 ? 3:3))) | (((gctUINT32) (0x1 & ((gctUINT32) ((((1 ? 3:3) - (0 ? 3:3) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 3:3) - (0 ? 3:3) + 1))))))) << (0 ? 3:3)))
-                 :   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 0:0) - (0 ? 0:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 0:0) - (0 ? 0:0) + 1))))))) << (0 ? 0:0))) | (((gctUINT32) (0x1 & ((gctUINT32) ((((1 ? 0:0) - (0 ? 0:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 0:0) - (0 ? 0:0) + 1))))))) << (0 ? 0:0)))
-                   | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 1:1) - (0 ? 1:1) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 1:1) - (0 ? 1:1) + 1))))))) << (0 ? 1:1))) | (((gctUINT32) (0x1 & ((gctUINT32) ((((1 ? 1:1) - (0 ? 1:1) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 1:1) - (0 ? 1:1) + 1))))))) << (0 ? 1:1)))
--                  | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 2:2) - (0 ? 2:2) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:2) - (0 ? 2:2) + 1))))))) << (0 ? 2:2))) | (((gctUINT32) (0x1 & ((gctUINT32) ((((1 ? 2:2) - (0 ? 2:2) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:2) - (0 ? 2:2) + 1))))))) << (0 ? 2:2)));
-+                  | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 2:2) - (0 ? 2:2) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:2) - (0 ? 2:2) + 1))))))) << (0 ? 2:2))) | (((gctUINT32) (0x1 & ((gctUINT32) ((((1 ? 2:2) - (0 ? 2:2) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:2) - (0 ? 2:2) + 1))))))) << (0 ? 2:2)))
-+                  | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 4:4) - (0 ? 4:4) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 4:4) - (0 ? 4:4) + 1))))))) << (0 ? 4:4))) | (((gctUINT32) (0x1 & ((gctUINT32) ((((1 ? 4:4) - (0 ? 4:4) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 4:4) - (0 ? 4:4) + 1))))))) << (0 ? 4:4)));
- 
-         /* Semaphore from FE to PE. */
-         *buffer++
-@@ -620,7 +621,10 @@ _InitializeContextBuffer(
-         index += _State(Context, index, 0x10180 >> 2, 0x00000000, 32, gcvFALSE, gcvFALSE);
-         index += _State(Context, index, 0x10200 >> 2, 0x00000000, 32, gcvFALSE, gcvFALSE);
-         index += _State(Context, index, 0x10280 >> 2, 0x00000000, 32, gcvFALSE, gcvFALSE);
--        index += _State(Context, index, 0x02C00 >> 2, 0x00000000, 256, gcvFALSE, gcvFALSE);
-+        for (i = 0; i < 256 / 16; i += 1)
-+        {
-+            index += _State(Context, index, (0x02C00 >> 2) + i * 16, 0x00000000, 14, gcvFALSE, gcvFALSE);
-+        }
-         index += _State(Context, index, 0x10300 >> 2, 0x00000000, 32, gcvFALSE, gcvFALSE);
-         index += _State(Context, index, 0x10380 >> 2, 0x00321000, 32, gcvFALSE, gcvFALSE);
-         index += _State(Context, index, 0x10400 >> 2, 0x00000000, 32, gcvFALSE, gcvFALSE);
-diff --git a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.h b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.h
-index 7554045..5d2c7c7 100644
---- a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.h
-+++ b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.h
-@@ -134,6 +134,19 @@ struct _gckCONTEXT
- #if gcdSECURE_USER
-     gctBOOL_PTR                 hint;
- #endif
-+
-+#if VIVANTE_PROFILER_CONTEXT
-+    gcsPROFILER_COUNTERS        latestProfiler;
-+    gcsPROFILER_COUNTERS        histroyProfiler;
-+    gctUINT32                   prevVSInstCount;
-+    gctUINT32                   prevVSBranchInstCount;
-+    gctUINT32                   prevVSTexInstCount;
-+    gctUINT32                   prevVSVertexCount;
-+    gctUINT32                   prevPSInstCount;
-+    gctUINT32                   prevPSBranchInstCount;
-+    gctUINT32                   prevPSTexInstCount;
-+    gctUINT32                   prevPSPixelCount;
-+#endif
- };
- 
- #ifdef __cplusplus
-diff --git a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
-index 00f3839..e02dc23 100644
---- a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
-+++ b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
-@@ -21,6 +21,9 @@
- 
- #include "gc_hal.h"
- #include "gc_hal_kernel.h"
-+#if VIVANTE_PROFILER_CONTEXT
-+#include "gc_hal_kernel_context.h"
-+#endif
- 
- #define _GC_OBJ_ZONE    gcvZONE_HARDWARE
- 
-@@ -69,6 +72,7 @@ _IdentifyHardware(
-     gctUINT32 numConstants = 0;
-     gctUINT32 bufferSize = 0;
-     gctUINT32 varyingsCount = 0;
-+    gctBOOL useHZ;
- 
-     gcmkHEADER_ARG("Os=0x%x", Os);
- 
-@@ -209,6 +213,15 @@ _IdentifyHardware(
-                                      0x00088,
-                                      &Identity->chipMinorFeatures3));
- 
-+            /*The BG2 chip has no compression supertiled, and the bit of GCMinorFeature3BugFixes15 is n/a*/
-+            if(Identity->chipModel == gcv1000 && Identity->chipRevision == 0x5036)
-+            {
-+                Identity->chipMinorFeatures3
-+                    = ((((gctUINT32) (Identity->chipMinorFeatures3)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 5:5) - (0 ? 5:5) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 5:5) - (0 ? 5:5) + 1))))))) << (0 ? 5:5))) | (((gctUINT32) (0x0 & ((gctUINT32) ((((1 ? 5:5) - (0 ? 5:5) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 5:5) - (0 ? 5:5) + 1))))))) << (0 ? 5:5)));
-+                Identity->chipMinorFeatures3
-+                    = ((((gctUINT32) (Identity->chipMinorFeatures3)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 27:27) - (0 ? 27:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 27:27) - (0 ? 27:27) + 1))))))) << (0 ? 27:27))) | (((gctUINT32) (0x0 & ((gctUINT32) ((((1 ? 27:27) - (0 ? 27:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 27:27) - (0 ? 27:27) + 1))))))) << (0 ? 27:27)));
-+            }
-+
-             /* Read chip minor featuress register #4. */
-             gcmkONERROR(
-                 gckOS_ReadRegisterEx(Os, Core,
-@@ -244,14 +257,31 @@ _IdentifyHardware(
-     if (((Identity->chipModel == gcv1000) && ((Identity->chipRevision == 0x5035)
-                                            || (Identity->chipRevision == 0x5036)
-                                            || (Identity->chipRevision == 0x5037)))
--	 || ((Identity->chipModel == gcv800) && (Identity->chipRevision == 0x4612)))
-+	 || ((Identity->chipModel == gcv800) && (Identity->chipRevision == 0x4612))
-+     || ((Identity->chipModel == gcv860) && (Identity->chipRevision == 0x4647)))
-     {
-         Identity->superTileMode = 1;
-     }
- 
-+    if (Identity->chipModel == gcv4000 && Identity->chipRevision == 0x5245)
-+    {
-+        useHZ = ((((gctUINT32) (Identity->chipMinorFeatures3)) >> (0 ? 26:26) & ((gctUINT32) ((((1 ? 26:26) - (0 ? 26:26) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 26:26) - (0 ? 26:26) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 26:26) - (0 ? 26:26) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 26:26) - (0 ? 26:26) + 1)))))))
-+             || ((((gctUINT32) (Identity->chipMinorFeatures3)) >> (0 ? 8:8) & ((gctUINT32) ((((1 ? 8:8) - (0 ? 8:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 8:8) - (0 ? 8:8) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 8:8) - (0 ? 8:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 8:8) - (0 ? 8:8) + 1)))))));
-+    }
-+    else
-+    {
-+        useHZ = gcvFALSE;
-+    }
- 
--	/* Disable HZ when EZ is present for older chips. */
--	if (!((((gctUINT32) (Identity->chipFeatures)) >> (0 ? 16:16) & ((gctUINT32) ((((1 ? 16:16) - (0 ? 16:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 16:16) - (0 ? 16:16) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 16:16) - (0 ? 16:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 16:16) - (0 ? 16:16) + 1))))))))
-+    if (useHZ)
-+    {
-+        /* Disable EZ. */
-+        Identity->chipFeatures
-+            = ((((gctUINT32) (Identity->chipFeatures)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 16:16) - (0 ? 16:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 16:16) - (0 ? 16:16) + 1))))))) << (0 ? 16:16))) | (((gctUINT32) (0x1 & ((gctUINT32) ((((1 ? 16:16) - (0 ? 16:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 16:16) - (0 ? 16:16) + 1))))))) << (0 ? 16:16)));
-+    }
-+
-+    /* Disable HZ when EZ is present for older chips. */
-+    else if (!((((gctUINT32) (Identity->chipFeatures)) >> (0 ? 16:16) & ((gctUINT32) ((((1 ? 16:16) - (0 ? 16:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 16:16) - (0 ? 16:16) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 16:16) - (0 ? 16:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 16:16) - (0 ? 16:16) + 1))))))))
-     {
-         /* Disable HIERARCHICAL_Z. */
-         Identity->chipMinorFeatures
-@@ -470,6 +500,15 @@ _IdentifyHardware(
-          Identity->varyingsCount = 8;
-      }
- 
-+     /* For some cores, it consumes two varying for position, so the max varying vectors should minus one. */
-+     if ((Identity->chipModel == gcv4000 && Identity->chipRevision == 0x5222) ||
-+         (Identity->chipModel == gcv4000 && Identity->chipRevision == 0x5208) ||
-+         ((Identity->chipModel == gcv2100 || Identity->chipModel == gcv2000) && Identity->chipRevision == 0x5108) ||
-+         (Identity->chipModel == gcv880 && (Identity->chipRevision == 0x5107 || Identity->chipRevision == 0x5106)))
-+     {
-+         Identity->varyingsCount -= 1;
-+     }
-+
-     /* Success. */
-     gcmkFOOTER();
-     return gcvSTATUS_OK;
-@@ -535,9 +574,9 @@ _DumpDebugRegisters(
-     IN gcsiDEBUG_REGISTERS_PTR Descriptor
-     )
- {
--    gceSTATUS status;
-+    gceSTATUS status = gcvSTATUS_OK;
-     gctUINT32 select;
--    gctUINT32 data;
-+    gctUINT32 data = 0;
-     gctUINT i;
- 
-     gcmkHEADER_ARG("Os=0x%X Descriptor=0x%X", Os, Descriptor);
-@@ -643,6 +682,42 @@ OnError:
-     return status;
- }
- 
-+gceSTATUS
-+_FlushCache(
-+    gckHARDWARE Hardware,
-+    gckCOMMAND Command
-+    )
-+{
-+    gceSTATUS status;
-+    gctSIZE_T bytes, requested;
-+    gctPOINTER buffer;
-+
-+    /* Get the size of the flush command. */
-+    gcmkONERROR(gckHARDWARE_Flush(Hardware,
-+                                  gcvFLUSH_ALL,
-+                                  gcvNULL,
-+                                  &requested));
-+
-+    /* Reserve space in the command queue. */
-+    gcmkONERROR(gckCOMMAND_Reserve(Command,
-+                                   requested,
-+                                   &buffer,
-+                                   &bytes));
-+
-+    /* Append a flush. */
-+    gcmkONERROR(gckHARDWARE_Flush(
-+        Hardware, gcvFLUSH_ALL, buffer, &bytes
-+        ));
-+
-+    /* Execute the command queue. */
-+    gcmkONERROR(gckCOMMAND_Execute(Command, requested));
-+
-+    return gcvSTATUS_OK;
-+
-+OnError:
-+    return status;
-+}
-+
- /******************************************************************************\
- ****************************** gckHARDWARE API code *****************************
- \******************************************************************************/
-@@ -809,6 +884,9 @@ gckHARDWARE_Construct(
-     /* Enable power management by default. */
-     hardware->powerManagement = gcvTRUE;
- 
-+    /* Disable profiler by default */
-+    hardware->gpuProfiler = gcvFALSE;
-+
-     /* Return pointer to the gckHARDWARE object. */
-     *Hardware = hardware;
- 
-@@ -1113,6 +1191,31 @@ gckHARDWARE_InitializeHardware(
-                                   ((((gctUINT32) (0x01590880)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:23) - (0 ? 23:23) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:23) - (0 ? 23:23) + 1))))))) << (0 ? 23:23))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 23:23) - (0 ? 23:23) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:23) - (0 ? 23:23) + 1))))))) << (0 ? 23:23)))));
-     }
- 
-+    if ((gckHARDWARE_IsFeatureAvailable(Hardware, gcvFEATURE_HALTI2) == gcvFALSE)
-+     || (gckHARDWARE_IsFeatureAvailable(Hardware, gcvFEATURE_HALTI2) && (Hardware->identity.chipRevision < 0x5422))
-+    )
-+    {
-+        gctUINT32 data;
-+
-+        gcmkONERROR(
-+            gckOS_ReadRegisterEx(Hardware->os,
-+                                 Hardware->core,
-+                                 Hardware->powerBaseAddress
-+                                 + 0x00104,
-+                                 &data));
-+
-+
-+        data = ((((gctUINT32) (data)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:15) - (0 ? 15:15) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:15) - (0 ? 15:15) + 1))))))) << (0 ? 15:15))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 15:15) - (0 ? 15:15) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:15) - (0 ? 15:15) + 1))))))) << (0 ? 15:15)));
-+
-+
-+        gcmkONERROR(
-+            gckOS_WriteRegisterEx(Hardware->os,
-+                                  Hardware->core,
-+                                  Hardware->powerBaseAddress
-+                                  + 0x00104,
-+                                  data));
-+    }
-+
-     /* Special workaround for this core
-     ** Make sure FE and TX are on different buses */
-     if ((Hardware->identity.chipModel == gcv2000)
-@@ -1152,7 +1255,9 @@ gckHARDWARE_InitializeHardware(
-     }
- 
-     if (Hardware->identity.chipModel >= gcv400
--    &&  Hardware->identity.chipModel != gcv420)
-+    &&  Hardware->identity.chipModel != gcv420
-+    &&  (((((gctUINT32) (Hardware->identity.chipMinorFeatures3)) >> (0 ? 15:15) & ((gctUINT32) ((((1 ? 15:15) - (0 ? 15:15) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:15) - (0 ? 15:15) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 15:15) - (0 ? 15:15) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:15) - (0 ? 15:15) + 1))))))) != gcvTRUE)
-+    )
-     {
- 		gctUINT32 data;
- 
-@@ -2883,35 +2988,44 @@ gckHARDWARE_QueryShaderCaps(
-     OUT gctUINT * Varyings
-     )
- {
-+    gctUINT32 vsConstMax;
-+    gctUINT32 psConstMax;
-+
-     gcmkHEADER_ARG("Hardware=0x%x VertexUniforms=0x%x "
-                    "FragmentUniforms=0x%x Varyings=0x%x",
-                    Hardware, VertexUniforms,
-                    FragmentUniforms, Varyings);
- 
-+    if ((Hardware->identity.chipModel == gcv2000)
-+     && (Hardware->identity.chipRevision == 0x5118))
-+    {
-+        vsConstMax   = 256;
-+        psConstMax   = 64;
-+    }
-+    else if (Hardware->identity.numConstants > 256)
-+    {
-+        vsConstMax   = 256;
-+        psConstMax   = 256;
-+    }
-+    else if (Hardware->identity.numConstants == 256)
-+    {
-+        vsConstMax   = 256;
-+        psConstMax   = 256;
-+    }
-+    else
-+    {
-+        vsConstMax   = 168;
-+        psConstMax   = 64;
-+    }
-+
-     if (VertexUniforms != gcvNULL)
-     {
--		/* Return the vs shader const count. */
--        if (Hardware->identity.chipModel < gcv4000)
--        {
--            *VertexUniforms = 168;
--        }
--        else
--        {
--            *VertexUniforms = 256;
--        }
-+        *VertexUniforms = vsConstMax;
-     }
- 
-     if (FragmentUniforms != gcvNULL)
-     {
--		/* Return the ps shader const count. */
--        if (Hardware->identity.chipModel < gcv4000)
--        {
--            *FragmentUniforms = 64;
--        }
--        else
--        {
--            *FragmentUniforms = 256;
--        }
-+        *FragmentUniforms = psConstMax;
-     }
- 
-     if (Varyings != gcvNULL)
-@@ -3229,12 +3343,28 @@ gckHARDWARE_SetMMUv2(
-     gctBOOL commitEntered = gcvFALSE;
-     gctPOINTER pointer = gcvNULL;
-     gctBOOL acquired = gcvFALSE;
-+    gctBOOL config2D;
-+    gctSIZE_T configSize;
- 
-     gcmkHEADER_ARG("Hardware=0x%x Enable=%d", Hardware, Enable);
- 
-     /* Verify the arguments. */
-     gcmkVERIFY_OBJECT(Hardware, gcvOBJ_HARDWARE);
- 
-+    config2D =  gckHARDWARE_IsFeatureAvailable(Hardware, gcvFEATURE_PIPE_3D)
-+             && gckHARDWARE_IsFeatureAvailable(Hardware, gcvFEATURE_PIPE_2D);
-+
-+    configSize = 4 * 4;
-+
-+    if (config2D)
-+    {
-+        configSize +=
-+            /* Pipe Select. */
-+            4 * 4
-+            /* Configure MMU States. */
-+          + 4 * 4;
-+    }
-+
-     /* Convert logical address into physical address. */
-     gcmkONERROR(
-         gckOS_GetPhysicalAddress(Hardware->os, MtlbAddress, &config));
-@@ -3281,7 +3411,7 @@ gckHARDWARE_SetMMUv2(
-     commitEntered = gcvTRUE;
- 
-     gcmkONERROR(gckCOMMAND_Reserve(
--        command, 16, &pointer, &bufferSize
-+        command, configSize, &pointer, &bufferSize
-         ));
- 
-     buffer = pointer;
-@@ -3300,10 +3430,43 @@ gckHARDWARE_SetMMUv2(
- 
-     buffer[3] = address;
- 
-+    if (config2D)
-+    {
-+        /* LoadState(AQPipeSelect, 1), pipe. */
-+        buffer[4]
-+            = ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
-+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ? 15:0))) | (((gctUINT32) ((gctUINT32) (0x0E00) & ((gctUINT32) ((((1 ? 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ? 15:0)))
-+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ? 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ? 25:16)));
-+
-+        buffer[5] = 0x1;
-+
-+        buffer[6]
-+            = ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
-+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ? 15:0))) | (((gctUINT32) ((gctUINT32) (0x0061) & ((gctUINT32) ((((1 ? 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ? 15:0)))
-+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ? 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ? 25:16)));
-+
-+        buffer[7] = config;
-+
-+        buffer[8]
-+            = ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
-+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ? 15:0))) | (((gctUINT32) ((gctUINT32) (0x0060) & ((gctUINT32) ((((1 ? 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ? 15:0)))
-+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ? 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ? 25:16)));
-+
-+        buffer[9] = address;
-+
-+        /* LoadState(AQPipeSelect, 1), pipe. */
-+        buffer[10]
-+            = ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
-+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ? 15:0))) | (((gctUINT32) ((gctUINT32) (0x0E00) & ((gctUINT32) ((((1 ? 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ? 15:0)))
-+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ? 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ? 25:16)));
-+
-+        buffer[11] = 0x0;
-+    }
-+
-     gcmkTRACE_ZONE(gcvLEVEL_INFO, gcvZONE_HARDWARE,
-         "Setup MMU: config=%08x, Safe Address=%08x\n.", config, address);
- 
--    gcmkONERROR(gckCOMMAND_Execute(command, 16));
-+    gcmkONERROR(gckCOMMAND_Execute(command, configSize));
- 
-     if (FromPower == gcvFALSE)
-     {
-@@ -3501,6 +3664,8 @@ gckHARDWARE_Flush(
-     gctUINT32 flush = 0;
-     gctUINT32_PTR logical = (gctUINT32_PTR) Logical;
-     gceSTATUS status;
-+    gctBOOL fcFlushStall;
-+    gctUINT32 reserveBytes = 8;
- 
-     gcmkHEADER_ARG("Hardware=0x%x Flush=0x%x Logical=0x%x *Bytes=%lu",
-                    Hardware, Flush, Logical, gcmOPT_VALUE(Bytes));
-@@ -3511,6 +3676,16 @@ gckHARDWARE_Flush(
-     /* Get current pipe. */
-     pipe = Hardware->kernel->command->pipeSelect;
- 
-+    fcFlushStall
-+        = ((((gctUINT32) (Hardware->identity.chipMinorFeatures1)) >> (0 ? 31:31) & ((gctUINT32) ((((1 ? 31:31) - (0 ? 31:31) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:31) - (0 ? 31:31) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 31:31) - (0 ? 31:31) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:31) - (0 ? 31:31) + 1)))))))
-+        && (Flush == gcvFLUSH_ALL)
-+        ;
-+
-+    if (fcFlushStall)
-+    {
-+        reserveBytes += 8;
-+    }
-+
-     /* Flush 3D color cache. */
-     if ((Flush & gcvFLUSH_COLOR) && (pipe == 0x0))
-     {
-@@ -3527,6 +3702,7 @@ gckHARDWARE_Flush(
-     if ((Flush & gcvFLUSH_TEXTURE) && (pipe == 0x0))
-     {
-         flush |= ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 2:2) - (0 ? 2:2) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:2) - (0 ? 2:2) + 1))))))) << (0 ? 2:2))) | (((gctUINT32) (0x1 & ((gctUINT32) ((((1 ? 2:2) - (0 ? 2:2) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:2) - (0 ? 2:2) + 1))))))) << (0 ? 2:2)));
-+        flush |= ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 4:4) - (0 ? 4:4) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 4:4) - (0 ? 4:4) + 1))))))) << (0 ? 4:4))) | (((gctUINT32) (0x1 & ((gctUINT32) ((((1 ? 4:4) - (0 ? 4:4) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 4:4) - (0 ? 4:4) + 1))))))) << (0 ? 4:4)));
-     }
- 
-     /* Flush 2D cache. */
-@@ -3550,7 +3726,7 @@ gckHARDWARE_Flush(
-         /* Copy to command queue. */
-         if (Logical != gcvNULL)
-         {
--            if (*Bytes < 8)
-+            if (*Bytes < reserveBytes)
-             {
-                 /* Command queue too small. */
-                 gcmkONERROR(gcvSTATUS_BUFFER_TOO_SMALL);
-@@ -3565,12 +3741,26 @@ gckHARDWARE_Flush(
- 
-             gcmkTRACE_ZONE(gcvLEVEL_INFO, gcvZONE_HARDWARE,
-                            "0x%x: FLUSH 0x%x", logical, flush);
-+
-+            if (fcFlushStall)
-+            {
-+                logical[2] = ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
-+                           | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ? 15:0))) | (((gctUINT32) ((gctUINT32) (0x0594) & ((gctUINT32) ((((1 ? 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ? 15:0)))
-+                           | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ? 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ? 25:16)));
-+
-+                logical[3] = ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 0:0) - (0 ? 0:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 0:0) - (0 ? 0:0) + 1))))))) << (0 ? 0:0))) | (((gctUINT32) (0x1 & ((gctUINT32) ((((1 ? 0:0) - (0 ? 0:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 0:0) - (0 ? 0:0) + 1))))))) << (0 ? 0:0)));
-+
-+
-+                gcmkTRACE_ZONE(gcvLEVEL_INFO, gcvZONE_HARDWARE,
-+                               "0x%x: FLUSH 0x%x", logical + 3, logical[3]);
-+            }
-+
-         }
- 
-         if (Bytes != gcvNULL)
-         {
--            /* 8 bytes required. */
--            *Bytes = 8;
-+            /* bytes required. */
-+            *Bytes = reserveBytes;
-         }
-     }
- 
-@@ -4285,6 +4475,48 @@ gckHARDWARE_SetPowerManagementState(
-         }
-     }
- 
-+    /* Flush Cache before Power Off. */
-+    if (flag & gcvPOWER_FLAG_POWER_OFF)
-+    {
-+        if (Hardware->clockState == gcvFALSE)
-+        {
-+            /* Turn off the GPU power. */
-+            gcmkONERROR(
-+                    gckOS_SetGPUPower(os,
-+                        Hardware->core,
-+                        gcvTRUE,
-+                        gcvTRUE));
-+
-+            Hardware->clockState = gcvTRUE;
-+
-+            if (gckHARDWARE_IsFeatureAvailable(Hardware, gcvFEATURE_DYNAMIC_FREQUENCY_SCALING) != gcvTRUE)
-+            {
-+                /* Write the clock control register. */
-+                gcmkONERROR(gckOS_WriteRegisterEx(os,
-+                                                  Hardware->core,
-+                                                  0x00000,
-+                                                  clocks[0]));
-+
-+                /* Done loading the frequency scaler. */
-+                gcmkONERROR(gckOS_WriteRegisterEx(os,
-+                                                  Hardware->core,
-+                                                  0x00000,
-+                                                  ((((gctUINT32) (clocks[0])) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 9:9) - (0 ? 9:9) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 9:9) - (0 ? 9:9) + 1))))))) << (0 ? 9:9))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 9:9) - (0 ? 9:9) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 9:9) - (0 ? 9:9) + 1))))))) << (0 ? 9:9)))));
-+            }
-+        }
-+
-+        gcmkONERROR(gckCOMMAND_Start(command));
-+
-+        gcmkONERROR(_FlushCache(Hardware, command));
-+
-+        gckOS_Delay(gcvNULL, 1);
-+
-+        /* Stop the command parser. */
-+        gcmkONERROR(gckCOMMAND_Stop(command, gcvFALSE));
-+
-+        flag |= gcvPOWER_FLAG_CLOCK_OFF;
-+    }
-+
-     /* Get time until stopped. */
-     gcmkPROFILE_QUERY(time, stopTime);
- 
-@@ -4582,6 +4814,40 @@ gckHARDWARE_SetPowerManagement(
-     return gcvSTATUS_OK;
- }
- 
-+/*******************************************************************************
-+**
-+**  gckHARDWARE_SetGpuProfiler
-+**
-+**  Configure GPU profiler function.
-+**  Only used in driver initialization stage.
-+**
-+**  INPUT:
-+**
-+**      gckHARDWARE Harwdare
-+**          Pointer to an gckHARDWARE object.
-+**
-+**      gctBOOL GpuProfiler
-+**          GOU Profiler State.
-+**
-+*/
-+gceSTATUS
-+gckHARDWARE_SetGpuProfiler(
-+    IN gckHARDWARE Hardware,
-+    IN gctBOOL GpuProfiler
-+    )
-+{
-+    gcmkHEADER_ARG("Hardware=0x%x", Hardware);
-+
-+    /* Verify the arguments. */
-+    gcmkVERIFY_OBJECT(Hardware, gcvOBJ_HARDWARE);
-+
-+    Hardware->gpuProfiler = GpuProfiler;
-+
-+    /* Success. */
-+    gcmkFOOTER_NO();
-+    return gcvSTATUS_OK;
-+}
-+
- #if gcdENABLE_FSCALE_VAL_ADJUST
- gceSTATUS
- gckHARDWARE_SetFscaleValue(
-@@ -5141,6 +5407,402 @@ OnError:
- }
- #endif
- 
-+#if VIVANTE_PROFILER_CONTEXT
-+#define gcmkUPDATE_PROFILE_DATA(data) \
-+    profilerHistroy->data += profiler->data
-+
-+gceSTATUS
-+gckHARDWARE_QueryContextProfile(
-+    IN gckHARDWARE Hardware,
-+    IN gctBOOL   Reset,
-+    IN gckCONTEXT Context,
-+    OUT gcsPROFILER_COUNTERS * Counters
-+    )
-+{
-+    gceSTATUS status;
-+    gckCOMMAND command = Hardware->kernel->command;
-+    gcsPROFILER_COUNTERS * profiler = Counters;
-+
-+    gcmkHEADER_ARG("Hardware=0x%x Counters=0x%x", Hardware, Counters);
-+
-+    /* Verify the arguments. */
-+    gcmkVERIFY_OBJECT(Hardware, gcvOBJ_HARDWARE);
-+
-+    /* Acquire the context sequnence mutex. */
-+    gcmkONERROR(gckOS_AcquireMutex(
-+        command->os, command->mutexContextSeq, gcvINFINITE
-+        ));
-+
-+    /* Read the counters. */
-+    gcmkVERIFY_OK(gckOS_MemCopy(
-+        profiler, &Context->histroyProfiler, gcmSIZEOF(gcsPROFILER_COUNTERS)
-+        ));
-+
-+    if (Reset)
-+    {
-+        /* Reset counters. */
-+        gcmkVERIFY_OK(gckOS_ZeroMemory(
-+            &Context->histroyProfiler, gcmSIZEOF(gcsPROFILER_COUNTERS)
-+            ));
-+    }
-+
-+    gcmkVERIFY_OK(gckOS_ReleaseMutex(
-+        command->os, command->mutexContextSeq
-+        ));
-+
-+    /* Success. */
-+    gcmkFOOTER_NO();
-+    return gcvSTATUS_OK;
-+
-+OnError:
-+    /* Return the status. */
-+    gcmkFOOTER();
-+    return status;
-+}
-+
-+
-+gceSTATUS
-+gckHARDWARE_UpdateContextProfile(
-+    IN gckHARDWARE Hardware,
-+    IN gckCONTEXT Context
-+    )
-+{
-+    gceSTATUS status;
-+    gcsPROFILER_COUNTERS * profiler = &Context->latestProfiler;
-+    gcsPROFILER_COUNTERS * profilerHistroy = &Context->histroyProfiler;
-+    gctUINT i, clock;
-+    gctUINT32 colorKilled, colorDrawn, depthKilled, depthDrawn;
-+    gctUINT32 totalRead, totalWrite;
-+    gceCHIPMODEL chipModel;
-+    gctUINT32 chipRevision;
-+    gctUINT32 temp;
-+    gctBOOL needResetShader = gcvFALSE;
-+
-+    gcmkHEADER_ARG("Hardware=0x%x Context=0x%x", Hardware, Context);
-+
-+    /* Verify the arguments. */
-+    gcmkVERIFY_OBJECT(Hardware, gcvOBJ_HARDWARE);
-+    gcmkVERIFY_OBJECT(Context, gcvOBJ_CONTEXT);
-+
-+    chipModel = Hardware->identity.chipModel;
-+    chipRevision = Hardware->identity.chipRevision;
-+    if (chipModel == gcv2000 || (chipModel == gcv2100 && chipRevision == 0x5118))
-+    {
-+        needResetShader = gcvTRUE;
-+    }
-+
-+    /* Read the counters. */
-+    gcmkONERROR(
-+        gckOS_ReadRegisterEx(Hardware->os,
-+                             Hardware->core,
-+                             0x00438,
-+                             &profiler->gpuCyclesCounter));
-+    gcmkUPDATE_PROFILE_DATA(gpuCyclesCounter);
-+
-+    gcmkONERROR(
-+        gckOS_ReadRegisterEx(Hardware->os,
-+                             Hardware->core,
-+                             0x00078,
-+                             &profiler->gpuTotalCyclesCounter));
-+    gcmkUPDATE_PROFILE_DATA(gpuTotalCyclesCounter);
-+
-+    gcmkONERROR(
-+        gckOS_ReadRegisterEx(Hardware->os,
-+                             Hardware->core,
-+                             0x0007C,
-+                             &profiler->gpuIdleCyclesCounter));
-+    gcmkUPDATE_PROFILE_DATA(gpuIdleCyclesCounter);
-+
-+    /* Read clock control register. */
-+    gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os,
-+                                     Hardware->core,
-+                                     0x00000,
-+                                     &clock));
-+
-+    profiler->gpuTotalRead64BytesPerFrame = 0;
-+    profiler->gpuTotalWrite64BytesPerFrame = 0;
-+    profiler->pe_pixel_count_killed_by_color_pipe = 0;
-+    profiler->pe_pixel_count_killed_by_depth_pipe = 0;
-+    profiler->pe_pixel_count_drawn_by_color_pipe = 0;
-+    profiler->pe_pixel_count_drawn_by_depth_pipe = 0;
-+
-+    /* Walk through all avaiable pixel pipes. */
-+    for (i = 0; i < Hardware->identity.pixelPipes; ++i)
-+    {
-+        /* Select proper pipe. */
-+        gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os,
-+                                           Hardware->core,
-+                                           0x00000,
-+                                           ((((gctUINT32) (clock)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:20) - (0 ? 23:20) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:20) - (0 ? 23:20) + 1))))))) << (0 ? 23:20))) | (((gctUINT32) ((gctUINT32) (i) & ((gctUINT32) ((((1 ? 23:20) - (0 ? 23:20) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:20) - (0 ? 23:20) + 1))))))) << (0 ? 23:20)))));
-+
-+        /* BW */
-+        gcmkONERROR(
-+        gckOS_ReadRegisterEx(Hardware->os,
-+                             Hardware->core,
-+                             0x00040,
-+                             &totalRead));
-+        gcmkONERROR(
-+        gckOS_ReadRegisterEx(Hardware->os,
-+                             Hardware->core,
-+                             0x00044,
-+                             &totalWrite));
-+
-+        profiler->gpuTotalRead64BytesPerFrame += totalRead;
-+        profiler->gpuTotalWrite64BytesPerFrame += totalWrite;
-+        gcmkUPDATE_PROFILE_DATA(gpuTotalRead64BytesPerFrame);
-+        gcmkUPDATE_PROFILE_DATA(gpuTotalWrite64BytesPerFrame);
-+
-+        /* PE */
-+        gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470, ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16)))));gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00454, &colorKilled));
-+        gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470, ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16)))));gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00454, &depthKilled));
-+        gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470, ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) | (((gctUINT32) ((gctUINT32) (2) & ((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16)))));gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00454, &colorDrawn));
-+        gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470, ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) | (((gctUINT32) ((gctUINT32) (3) & ((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16)))));gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00454, &depthDrawn));
-+
-+        profiler->pe_pixel_count_killed_by_color_pipe += colorKilled;
-+        profiler->pe_pixel_count_killed_by_depth_pipe += depthKilled;
-+        profiler->pe_pixel_count_drawn_by_color_pipe += colorDrawn;
-+        profiler->pe_pixel_count_drawn_by_depth_pipe += depthDrawn;
-+        gcmkUPDATE_PROFILE_DATA(pe_pixel_count_killed_by_color_pipe);
-+        gcmkUPDATE_PROFILE_DATA(pe_pixel_count_killed_by_depth_pipe);
-+        gcmkUPDATE_PROFILE_DATA(pe_pixel_count_drawn_by_color_pipe);
-+        gcmkUPDATE_PROFILE_DATA(pe_pixel_count_drawn_by_depth_pipe);
-+    }
-+
-+    /* Reset clock control register. */
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os,
-+                                      Hardware->core,
-+                                      0x00000,
-+                                      clock));
-+
-+
-+
-+
-+    /* Reset counters. */
-+    gcmkONERROR(
-+        gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x0003C, 1));
-+    gcmkONERROR(
-+        gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x0003C, 0));
-+    gcmkONERROR(
-+        gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00438, 0));
-+    gcmkONERROR(
-+        gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00078, 0));
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) | (((gctUINT32) ((gctUINT32) (15) & ((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) ));
-+gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16)))
-+));
-+
-+    /* SH */
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (7) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0045C, &profiler->ps_inst_counter));
-+    if (needResetShader)
-+    {
-+        temp = profiler->ps_inst_counter;
-+        profiler->ps_inst_counter -= Context->prevPSInstCount;
-+        Context->prevPSInstCount = temp;
-+    }
-+    gcmkUPDATE_PROFILE_DATA(ps_inst_counter);
-+
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (8) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0045C, &profiler->rendered_pixel_counter));
-+    if (needResetShader)
-+    {
-+        temp = profiler->rendered_pixel_counter;
-+        profiler->rendered_pixel_counter -= Context->prevPSPixelCount;
-+        Context->prevPSPixelCount = temp;
-+    }
-+    gcmkUPDATE_PROFILE_DATA(rendered_pixel_counter);
-+
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (9) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0045C, &profiler->vs_inst_counter));
-+    if (needResetShader)
-+    {
-+        temp = profiler->vs_inst_counter;
-+        profiler->vs_inst_counter -= Context->prevVSInstCount;
-+        Context->prevVSInstCount = temp;
-+    }
-+    gcmkUPDATE_PROFILE_DATA(vs_inst_counter);
-+
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (10) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0045C, &profiler->rendered_vertice_counter));
-+    if (needResetShader)
-+    {
-+        temp = profiler->rendered_vertice_counter;
-+        profiler->rendered_vertice_counter -= Context->prevVSVertexCount;
-+        Context->prevVSVertexCount = temp;
-+    }
-+    gcmkUPDATE_PROFILE_DATA(rendered_vertice_counter);
-+
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (11) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0045C, &profiler->vtx_branch_inst_counter));
-+    if (needResetShader)
-+    {
-+        temp = profiler->vtx_branch_inst_counter;
-+        profiler->vtx_branch_inst_counter -= Context->prevVSBranchInstCount;
-+        Context->prevVSBranchInstCount = temp;
-+    }
-+    gcmkUPDATE_PROFILE_DATA(vtx_branch_inst_counter);
-+
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (12) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0045C, &profiler->vtx_texld_inst_counter));
-+    if (needResetShader)
-+    {
-+        temp = profiler->vtx_texld_inst_counter;
-+        profiler->vtx_texld_inst_counter -= Context->prevVSTexInstCount;
-+        Context->prevVSTexInstCount = temp;
-+    }
-+    gcmkUPDATE_PROFILE_DATA(vtx_texld_inst_counter);
-+
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (13) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0045C, &profiler->pxl_branch_inst_counter));
-+    if (needResetShader)
-+    {
-+        temp = profiler->pxl_branch_inst_counter;
-+        profiler->pxl_branch_inst_counter -= Context->prevPSBranchInstCount;
-+        Context->prevPSBranchInstCount = temp;
-+    }
-+    gcmkUPDATE_PROFILE_DATA(pxl_branch_inst_counter);
-+
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (14) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0045C, &profiler->pxl_texld_inst_counter));
-+    if (needResetShader)
-+    {
-+        temp = profiler->pxl_texld_inst_counter;
-+        profiler->pxl_texld_inst_counter -= Context->prevPSTexInstCount;
-+        Context->prevPSTexInstCount = temp;
-+    }
-+    gcmkUPDATE_PROFILE_DATA(pxl_texld_inst_counter);
-+
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (15) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00470,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24)))
-+));
-+
-+    /* PA */
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (3) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00460, &profiler->pa_input_vtx_counter));
-+    gcmkUPDATE_PROFILE_DATA(pa_input_vtx_counter);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (4) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00460, &profiler->pa_input_prim_counter));
-+    gcmkUPDATE_PROFILE_DATA(pa_input_prim_counter);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (5) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00460, &profiler->pa_output_prim_counter));
-+    gcmkUPDATE_PROFILE_DATA(pa_output_prim_counter);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (6) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00460, &profiler->pa_depth_clipped_counter));
-+    gcmkUPDATE_PROFILE_DATA(pa_depth_clipped_counter);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (7) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00460, &profiler->pa_trivial_rejected_counter));
-+    gcmkUPDATE_PROFILE_DATA(pa_trivial_rejected_counter);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (8) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00460, &profiler->pa_culled_counter));
-+    gcmkUPDATE_PROFILE_DATA(pa_culled_counter);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (15) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) ));
-+gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0)))
-+));
-+
-+    /* SE */
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00464, &profiler->se_culled_triangle_count));
-+    gcmkUPDATE_PROFILE_DATA(se_culled_triangle_count);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00464, &profiler->se_culled_lines_count));
-+    gcmkUPDATE_PROFILE_DATA(se_culled_lines_count);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) | (((gctUINT32) ((gctUINT32) (15) & ((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) ));
-+gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8)))
-+));
-+
-+    /* RA */
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00448, &profiler->ra_valid_pixel_count));
-+    gcmkUPDATE_PROFILE_DATA(ra_valid_pixel_count);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00448, &profiler->ra_total_quad_count));
-+    gcmkUPDATE_PROFILE_DATA(ra_total_quad_count);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) | (((gctUINT32) ((gctUINT32) (2) & ((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00448, &profiler->ra_valid_quad_count_after_early_z));
-+    gcmkUPDATE_PROFILE_DATA(ra_valid_quad_count_after_early_z);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) | (((gctUINT32) ((gctUINT32) (3) & ((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00448, &profiler->ra_total_primitive_count));
-+    gcmkUPDATE_PROFILE_DATA(ra_total_primitive_count);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) | (((gctUINT32) ((gctUINT32) (9) & ((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00448, &profiler->ra_pipe_cache_miss_counter));
-+    gcmkUPDATE_PROFILE_DATA(ra_pipe_cache_miss_counter);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) | (((gctUINT32) ((gctUINT32) (10) & ((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00448, &profiler->ra_prefetch_cache_miss_counter));
-+    gcmkUPDATE_PROFILE_DATA(ra_prefetch_cache_miss_counter);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) | (((gctUINT32) ((gctUINT32) (15) & ((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) ));
-+gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 23:16) - (0 ? 23:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 23:16) - (0 ? 23:16) + 1))))))) << (0 ? 23:16)))
-+));
-+
-+    /* TX */
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0044C, &profiler->tx_total_bilinear_requests));
-+    gcmkUPDATE_PROFILE_DATA(tx_total_bilinear_requests);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0044C, &profiler->tx_total_trilinear_requests));
-+    gcmkUPDATE_PROFILE_DATA(tx_total_trilinear_requests);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (2) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0044C, &profiler->tx_total_discarded_texture_requests));
-+    gcmkUPDATE_PROFILE_DATA(tx_total_discarded_texture_requests);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (3) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0044C, &profiler->tx_total_texture_requests));
-+    gcmkUPDATE_PROFILE_DATA(tx_total_texture_requests);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (5) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0044C, &profiler->tx_mem_read_count));
-+    gcmkUPDATE_PROFILE_DATA(tx_mem_read_count);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (6) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0044C, &profiler->tx_mem_read_in_8B_count));
-+    gcmkUPDATE_PROFILE_DATA(tx_mem_read_in_8B_count);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (7) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0044C, &profiler->tx_cache_miss_count));
-+    gcmkUPDATE_PROFILE_DATA(tx_cache_miss_count);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (8) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0044C, &profiler->tx_cache_hit_texel_count));
-+    gcmkUPDATE_PROFILE_DATA(tx_cache_hit_texel_count);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (9) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0044C, &profiler->tx_cache_miss_texel_count));
-+    gcmkUPDATE_PROFILE_DATA(tx_cache_miss_texel_count);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (15) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) ));
-+gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00474,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 31:24) - (0 ? 31:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:24) - (0 ? 31:24) + 1))))))) << (0 ? 31:24)))
-+));
-+
-+    /* MC */
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00478,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00468, &profiler->mc_total_read_req_8B_from_pipeline));
-+    gcmkUPDATE_PROFILE_DATA(mc_total_read_req_8B_from_pipeline);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00478,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (2) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00468, &profiler->mc_total_read_req_8B_from_IP));
-+    gcmkUPDATE_PROFILE_DATA(mc_total_read_req_8B_from_IP);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00478,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (3) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00468, &profiler->mc_total_write_req_8B_from_pipeline));
-+    gcmkUPDATE_PROFILE_DATA(mc_total_write_req_8B_from_pipeline);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00478,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (15) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) ));
-+gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00478,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0)))
-+));
-+
-+    /* HI */
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00478,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0046C, &profiler->hi_axi_cycles_read_request_stalled));
-+    gcmkUPDATE_PROFILE_DATA(hi_axi_cycles_read_request_stalled);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00478,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0046C, &profiler->hi_axi_cycles_write_request_stalled));
-+    gcmkUPDATE_PROFILE_DATA(hi_axi_cycles_write_request_stalled);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00478,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) | (((gctUINT32) ((gctUINT32) (2) & ((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) ));
-+gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x0046C, &profiler->hi_axi_cycles_write_data_stalled));
-+    gcmkUPDATE_PROFILE_DATA(hi_axi_cycles_write_data_stalled);
-+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00478,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) | (((gctUINT32) ((gctUINT32) (15) & ((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) ));
-+gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00478,   ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 15:8) - (0 ? 15:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:8) - (0 ? 15:8) + 1))))))) << (0 ? 15:8)))
-+));
-+
-+    /* Success. */
-+    gcmkFOOTER_NO();
-+    return gcvSTATUS_OK;
-+
-+OnError:
-+    /* Return the status. */
-+    gcmkFOOTER();
-+    return status;
-+}
-+#endif
-+
- static gceSTATUS
- _ResetGPU(
-     IN gckHARDWARE Hardware,
-@@ -5602,6 +6264,22 @@ gckHARDWARE_IsFeatureAvailable(
-             &&      ((((gctUINT32) (Hardware->identity.chipFeatures)) >> (0 ? 2:2) & ((gctUINT32) ((((1 ? 2:2) - (0 ? 2:2) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:2) - (0 ? 2:2) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 2:2) - (0 ? 2:2) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:2) - (0 ? 2:2) + 1)))))));
-         break;
- 
-+    case gcvFEATURE_PIPE_2D:
-+        available = ((((gctUINT32) (Hardware->identity.chipFeatures)) >> (0 ? 9:9) & ((gctUINT32) ((((1 ? 9:9) - (0 ? 9:9) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 9:9) - (0 ? 9:9) + 1)))))) == (0x1  & ((gctUINT32) ((((1 ? 9:9) - (0 ? 9:9) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 9:9) - (0 ? 9:9) + 1)))))));
-+        break;
-+
-+    case gcvFEATURE_PIPE_3D:
-+#ifndef VIVANTE_NO_3D
-+        available = ((((gctUINT32) (Hardware->identity.chipFeatures)) >> (0 ? 2:2) & ((gctUINT32) ((((1 ? 2:2) - (0 ? 2:2) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:2) - (0 ? 2:2) + 1)))))) == (0x1  & ((gctUINT32) ((((1 ? 2:2) - (0 ? 2:2) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:2) - (0 ? 2:2) + 1)))))));
-+#else
-+        available = gcvFALSE;
-+#endif
-+        break;
-+
-+    case gcvFEATURE_HALTI2:
-+        available = ((((gctUINT32) (Hardware->identity.chipMinorFeatures4)) >> (0 ? 16:16) & ((gctUINT32) ((((1 ? 16:16) - (0 ? 16:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 16:16) - (0 ? 16:16) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 16:16) - (0 ? 16:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 16:16) - (0 ? 16:16) + 1)))))));
-+        break;
-+
-     default:
-         gcmkFATAL("Invalid feature has been requested.");
-         available = gcvFALSE;
-diff --git a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.h b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.h
-index 37226b7..287ea60 100644
---- a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.h
-+++ b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.h
-@@ -92,6 +92,7 @@ struct _gckHARDWARE
- #endif
- 
-     gctBOOL                     powerManagement;
-+    gctBOOL                     gpuProfiler;
- };
- 
- gceSTATUS
-diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
-index b7b0d28..12a5340 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
-+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
-@@ -128,19 +128,6 @@ _ResetFinishFunction(
- **          Pointer to a variable that will hold the pointer to the gckKERNEL
- **          object.
- */
--#ifdef ANDROID
--#if gcdNEW_PROFILER_FILE
--#define DEFAULT_PROFILE_FILE_NAME   "/sdcard/vprofiler.vpd"
--#else
--#define DEFAULT_PROFILE_FILE_NAME   "/sdcard/vprofiler.xml"
--#endif
--#else
--#if gcdNEW_PROFILER_FILE
--#define DEFAULT_PROFILE_FILE_NAME   "vprofiler.vpd"
--#else
--#define DEFAULT_PROFILE_FILE_NAME   "vprofiler.xml"
--#endif
--#endif
- 
- gceSTATUS
- gckKERNEL_Construct(
-@@ -302,17 +289,12 @@ gckKERNEL_Construct(
- 
- #if VIVANTE_PROFILER
-     /* Initialize profile setting */
--#if defined ANDROID
-     kernel->profileEnable = gcvFALSE;
--#else
--    kernel->profileEnable = gcvTRUE;
--#endif
-     kernel->profileCleanRegister = gcvTRUE;
-+#endif
- 
--    gcmkVERIFY_OK(
--        gckOS_MemCopy(kernel->profileFileName,
--                      DEFAULT_PROFILE_FILE_NAME,
--                      gcmSIZEOF(DEFAULT_PROFILE_FILE_NAME) + 1));
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+    gcmkONERROR(gckOS_CreateSyncTimeline(Os, &kernel->timeline));
- #endif
- 
-     /* Return pointer to the gckKERNEL object. */
-@@ -395,6 +377,13 @@ OnError:
-         }
- #endif
- 
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+        if (kernel->timeline)
-+        {
-+            gcmkVERIFY_OK(gckOS_DestroySyncTimeline(Os, kernel->timeline));
-+        }
-+#endif
-+
-         gcmkVERIFY_OK(gcmkOS_SAFE_FREE(Os, kernel));
-     }
- 
-@@ -525,6 +514,10 @@ gckKERNEL_Destroy(
-     }
- #endif
- 
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+    gcmkVERIFY_OK(gckOS_DestroySyncTimeline(Kernel->os, Kernel->timeline));
-+#endif
-+
-     /* Mark the gckKERNEL object as unknown. */
-     Kernel->object.type = gcvOBJ_UNKNOWN;
- 
-@@ -1310,7 +1303,8 @@ gckKERNEL_Dispatch(
-         /* Commit a command and context buffer. */
-         gcmkONERROR(
-             gckCOMMAND_Commit(Kernel->command,
--                              gcmNAME_TO_PTR(Interface->u.Commit.context),
-+                              Interface->u.Commit.context ?
-+                                  gcmNAME_TO_PTR(Interface->u.Commit.context) : gcvNULL,
-                               gcmUINT64_TO_PTR(Interface->u.Commit.commandBuffer),
-                               gcmUINT64_TO_PTR(Interface->u.Commit.delta),
-                               gcmUINT64_TO_PTR(Interface->u.Commit.queue),
-@@ -1600,7 +1594,15 @@ gckKERNEL_Dispatch(
-         break;
- 
-     case gcvHAL_READ_ALL_PROFILE_REGISTERS:
--#if VIVANTE_PROFILER
-+#if VIVANTE_PROFILER && VIVANTE_PROFILER_CONTEXT
-+        /* Read profile data according to the context. */
-+        gcmkONERROR(
-+            gckHARDWARE_QueryContextProfile(
-+                Kernel->hardware,
-+                Kernel->profileCleanRegister,
-+                gcmNAME_TO_PTR(Interface->u.RegisterProfileData.context),
-+                &Interface->u.RegisterProfileData.counters));
-+#elif VIVANTE_PROFILER
-         /* Read all 3D profile registers. */
-         gcmkONERROR(
-             gckHARDWARE_QueryProfileRegisters(
-@@ -1628,11 +1630,6 @@ gckKERNEL_Dispatch(
- #if VIVANTE_PROFILER
-         /* Get profile setting */
-         Interface->u.GetProfileSetting.enable = Kernel->profileEnable;
--
--        gcmkVERIFY_OK(
--            gckOS_MemCopy(Interface->u.GetProfileSetting.fileName,
--                          Kernel->profileFileName,
--                          gcdMAX_PROFILE_FILE_NAME));
- #endif
- 
-         status = gcvSTATUS_OK;
-@@ -1640,12 +1637,13 @@ gckKERNEL_Dispatch(
-     case gcvHAL_SET_PROFILE_SETTING:
- #if VIVANTE_PROFILER
-         /* Set profile setting */
--        Kernel->profileEnable = Interface->u.SetProfileSetting.enable;
--
--        gcmkVERIFY_OK(
--            gckOS_MemCopy(Kernel->profileFileName,
--                          Interface->u.SetProfileSetting.fileName,
--                          gcdMAX_PROFILE_FILE_NAME));
-+        if(Kernel->hardware->gpuProfiler)
-+            Kernel->profileEnable = Interface->u.SetProfileSetting.enable;
-+        else
-+        {
-+            status = gcvSTATUS_NOT_SUPPORTED;
-+            break;
-+        }
- #endif
- 
-         status = gcvSTATUS_OK;
-@@ -2093,6 +2091,61 @@ gckKERNEL_Dispatch(
- #endif
-         break;
- 
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+    case gcvHAL_SYNC_POINT:
-+        {
-+            gctSYNC_POINT syncPoint;
-+
-+            switch (Interface->u.SyncPoint.command)
-+            {
-+            case gcvSYNC_POINT_CREATE:
-+                gcmkONERROR(gckOS_CreateSyncPoint(Kernel->os, &syncPoint));
-+
-+                Interface->u.SyncPoint.syncPoint = gcmPTR_TO_UINT64(syncPoint);
-+
-+                gcmkVERIFY_OK(
-+                    gckKERNEL_AddProcessDB(Kernel,
-+                                           processID, gcvDB_SYNC_POINT,
-+                                           syncPoint,
-+                                           gcvNULL,
-+                                           0));
-+                break;
-+
-+            case gcvSYNC_POINT_DESTROY:
-+                syncPoint = gcmUINT64_TO_PTR(Interface->u.SyncPoint.syncPoint);
-+
-+                gcmkONERROR(gckOS_DestroySyncPoint(Kernel->os, syncPoint));
-+
-+                gcmkVERIFY_OK(
-+                    gckKERNEL_RemoveProcessDB(Kernel,
-+                                              processID, gcvDB_SYNC_POINT,
-+                                              syncPoint));
-+                break;
-+
-+            default:
-+                gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
-+                break;
-+            }
-+        }
-+        break;
-+
-+    case gcvHAL_CREATE_NATIVE_FENCE:
-+        {
-+            gctINT fenceFD;
-+            gctSYNC_POINT syncPoint =
-+                gcmUINT64_TO_PTR(Interface->u.CreateNativeFence.syncPoint);
-+
-+            gcmkONERROR(
-+                gckOS_CreateNativeFence(Kernel->os,
-+                                        Kernel->timeline,
-+                                        syncPoint,
-+                                        &fenceFD));
-+
-+            Interface->u.CreateNativeFence.fenceFD = fenceFD;
-+        }
-+        break;
-+#endif
-+
-     default:
-         /* Invalid command. */
-         gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
-@@ -2856,6 +2909,8 @@ gckKERNEL_Recovery(
-         return gcvSTATUS_OK;
-     }
- 
-+    gcmkPRINT("[galcore]: GPU[%d] hang, automatic recovery.", Kernel->core);
-+
-     /* Start a timer to clear reset flag, before timer is expired,
-     ** other recovery request is ignored. */
-     gcmkVERIFY_OK(
-@@ -3382,7 +3437,7 @@ gckLINKQUEUE_Dequeue(
-     IN gckLINKQUEUE LinkQueue
-     )
- {
--    gcmASSERT(LinkQueue->count == gcdLINK_QUEUE_SIZE);
-+    gcmkASSERT(LinkQueue->count == gcdLINK_QUEUE_SIZE);
- 
-     LinkQueue->count--;
-     LinkQueue->front = (LinkQueue->front + 1) % gcdLINK_QUEUE_SIZE;
-diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
-index 5896e93..1c40df2 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
-+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
-@@ -140,8 +140,9 @@ typedef enum _gceDATABASE_TYPE
-     gcvDB_CONTEXT,                      /* Context */
-     gcvDB_IDLE,                         /* GPU idle. */
-     gcvDB_MAP_MEMORY,                   /* Map memory */
--    gcvDB_SHARED_INFO,                 /* Private data */
--    gcvDB_MAP_USER_MEMORY               /* Map user memory */
-+    gcvDB_SHARED_INFO,                  /* Private data */
-+    gcvDB_MAP_USER_MEMORY,              /* Map user memory */
-+    gcvDB_SYNC_POINT,                   /* Sync point. */
- }
- gceDATABASE_TYPE;
- 
-@@ -406,9 +407,6 @@ struct _gckKERNEL
-     /* Enable profiling */
-     gctBOOL                     profileEnable;
- 
--    /* The profile file name */
--    gctCHAR                     profileFileName[gcdMAX_PROFILE_FILE_NAME];
--
-     /* Clear profile register or not*/
-     gctBOOL                     profileCleanRegister;
- 
-@@ -445,6 +443,10 @@ struct _gckKERNEL
- #if gcdDVFS
-     gckDVFS                     dvfs;
- #endif
-+
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+    gctHANDLE                   timeline;
-+#endif
- };
- 
- struct _FrequencyHistory
-@@ -496,6 +498,11 @@ struct _gckCOMMAND
-     /* Context switching mutex. */
-     gctPOINTER                  mutexContext;
- 
-+#if VIVANTE_PROFILER_CONTEXT
-+    /* Context sequence mutex. */
-+    gctPOINTER                  mutexContextSeq;
-+#endif
-+
-     /* Command queue power semaphore. */
-     gctPOINTER                  powerSemaphore;
- 
-@@ -649,6 +656,8 @@ struct _gckEVENT
-     gctPOINTER                  eventListMutex;
- 
-     gctPOINTER                  submitTimer;
-+
-+    volatile gctBOOL            inNotify;
- };
- 
- /* Free all events belonging to a process. */
-@@ -668,6 +677,11 @@ gckEVENT_Stop(
- 	IN OUT gctSIZE_T * waitSize
-     );
- 
-+gceSTATUS
-+gckEVENT_WaitEmpty(
-+    IN gckEVENT Event
-+    );
-+
- /* gcuVIDMEM_NODE structure. */
- typedef union _gcuVIDMEM_NODE
- {
-diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
-index 9ee9ea1..73dab81 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
-+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
-@@ -494,6 +494,11 @@ gckCOMMAND_Construct(
-     /* Create the context switching mutex. */
-     gcmkONERROR(gckOS_CreateMutex(os, &command->mutexContext));
- 
-+#if VIVANTE_PROFILER_CONTEXT
-+    /* Create the context switching mutex. */
-+    gcmkONERROR(gckOS_CreateMutex(os, &command->mutexContextSeq));
-+#endif
-+
-     /* Create the power management semaphore. */
-     gcmkONERROR(gckOS_CreateSemaphore(os, &command->powerSemaphore));
- 
-@@ -572,6 +577,13 @@ OnError:
-             gcmkVERIFY_OK(gckOS_DeleteMutex(os, command->mutexContext));
-         }
- 
-+#if VIVANTE_PROFILER_CONTEXT
-+        if (command->mutexContextSeq != gcvNULL)
-+        {
-+            gcmkVERIFY_OK(gckOS_DeleteMutex(os, command->mutexContextSeq));
-+        }
-+#endif
-+
-         if (command->mutexQueue != gcvNULL)
-         {
-             gcmkVERIFY_OK(gckOS_DeleteMutex(os, command->mutexQueue));
-@@ -662,6 +674,11 @@ gckCOMMAND_Destroy(
-     /* Delete the context switching mutex. */
-     gcmkVERIFY_OK(gckOS_DeleteMutex(Command->os, Command->mutexContext));
- 
-+#if VIVANTE_PROFILER_CONTEXT
-+    if (Command->mutexContextSeq != gcvNULL)
-+        gcmkVERIFY_OK(gckOS_DeleteMutex(Command->os, Command->mutexContextSeq));
-+#endif
-+
-     /* Delete the command queue mutex. */
-     gcmkVERIFY_OK(gckOS_DeleteMutex(Command->os, Command->mutexQueue));
- 
-@@ -1127,6 +1144,10 @@ gckCOMMAND_Commit(
- # endif
- #endif
- 
-+#if VIVANTE_PROFILER_CONTEXT
-+    gctBOOL sequenceAcquired = gcvFALSE;
-+#endif
-+
-     gctPOINTER pointer = gcvNULL;
- 
-     gcmkHEADER_ARG(
-@@ -1145,6 +1166,17 @@ gckCOMMAND_Commit(
- 
-     gcmkONERROR(_FlushMMU(Command));
- 
-+#if VIVANTE_PROFILER_CONTEXT
-+    if((Command->kernel->hardware->gpuProfiler) && (Command->kernel->profileEnable))
-+    {
-+        /* Acquire the context sequnence mutex. */
-+        gcmkONERROR(gckOS_AcquireMutex(
-+            Command->os, Command->mutexContextSeq, gcvINFINITE
-+            ));
-+        sequenceAcquired = gcvTRUE;
-+    }
-+#endif
-+
-     /* Acquire the command queue. */
-     gcmkONERROR(gckCOMMAND_EnterCommit(Command, gcvFALSE));
-     commitEntered = gcvTRUE;
-@@ -2002,6 +2034,23 @@ gckCOMMAND_Commit(
-     gcmkONERROR(gckCOMMAND_ExitCommit(Command, gcvFALSE));
-     commitEntered = gcvFALSE;
- 
-+#if VIVANTE_PROFILER_CONTEXT
-+    if(sequenceAcquired)
-+    {
-+        gcmkONERROR(gckCOMMAND_Stall(Command, gcvTRUE));
-+        if (Command->currContext)
-+        {
-+            gcmkONERROR(gckHARDWARE_UpdateContextProfile(
-+                hardware,
-+                Command->currContext));
-+        }
-+
-+        /* Release the context switching mutex. */
-+        gcmkONERROR(gckOS_ReleaseMutex(Command->os, Command->mutexContextSeq));
-+        sequenceAcquired = gcvFALSE;
-+    }
-+#endif
-+
-     /* Loop while there are records in the queue. */
-     while (EventQueue != gcvNULL)
-     {
-@@ -2114,6 +2163,14 @@ OnError:
-         gcmkVERIFY_OK(gckCOMMAND_ExitCommit(Command, gcvFALSE));
-     }
- 
-+#if VIVANTE_PROFILER_CONTEXT
-+    if (sequenceAcquired)
-+    {
-+        /* Release the context sequence mutex. */
-+        gcmkVERIFY_OK(gckOS_ReleaseMutex(Command->os, Command->mutexContextSeq));
-+    }
-+#endif
-+
-     /* Unmap the command buffer pointer. */
-     if (commandBufferMapped)
-     {
-diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
-index 76c1c10..1a7c340 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
-+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
-@@ -2819,6 +2819,7 @@ gckVGCOMMAND_Construct(
-         ** Enable TS overflow interrupt.
-         */
- 
-+        command->info.tsOverflowInt = 0;
-         gcmkERR_BREAK(gckVGINTERRUPT_Enable(
-             Kernel->interrupt,
-             &command->info.tsOverflowInt,
-@@ -3406,38 +3407,26 @@ gckVGCOMMAND_Commit(
-         gctBOOL previousExecuted;
-         gctUINT controlIndex;
- 
-+        gcmkERR_BREAK(gckVGHARDWARE_SetPowerManagementState(
-+            Command->hardware, gcvPOWER_ON_AUTO
-+            ));
-+
-+        /* Acquire the power semaphore. */
-+        gcmkERR_BREAK(gckOS_AcquireSemaphore(
-+            Command->os, Command->powerSemaphore
-+            ));
-+
-         /* Acquire the mutex. */
--        gcmkERR_BREAK(gckOS_AcquireMutex(
-+        status = gckOS_AcquireMutex(
-             Command->os,
-             Command->commitMutex,
-             gcvINFINITE
--            ));
--
--        status = gckVGHARDWARE_SetPowerManagementState(
--            Command->hardware, gcvPOWER_ON_AUTO);
--
--        if (gcmIS_ERROR(status))
--        {
--            /* Acquire the mutex. */
--            gcmkVERIFY_OK(gckOS_ReleaseMutex(
--                Command->os,
--                Command->commitMutex
--                ));
--
--            break;
--        }
--            /* Acquire the power semaphore. */
--        status = gckOS_AcquireSemaphore(
--            Command->os, Command->powerSemaphore);
-+            );
- 
-         if (gcmIS_ERROR(status))
-         {
--            /* Acquire the mutex. */
--            gcmkVERIFY_OK(gckOS_ReleaseMutex(
--                Command->os,
--                Command->commitMutex
--                ));
--
-+            gcmkVERIFY_OK(gckOS_ReleaseSemaphore(
-+                Command->os, Command->powerSemaphore));
-             break;
-         }
- 
-@@ -3669,14 +3658,14 @@ gckVGCOMMAND_Commit(
-         }
-         while (gcvFALSE);
- 
--        gcmkVERIFY_OK(gckOS_ReleaseSemaphore(
--            Command->os, Command->powerSemaphore));
--
-         /* Release the mutex. */
-         gcmkCHECK_STATUS(gckOS_ReleaseMutex(
-             Command->os,
-             Command->commitMutex
-             ));
-+
-+        gcmkVERIFY_OK(gckOS_ReleaseSemaphore(
-+            Command->os, Command->powerSemaphore));
-     }
-     while (gcvFALSE);
- 
-diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c
-index 673d4f7..134351a 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c
-+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c
-@@ -1307,6 +1307,18 @@ gckKERNEL_DestroyProcessDB(
-             status = gckOS_FreeMemory(Kernel->os, record->physical);
-             break;
- 
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+        case gcvDB_SYNC_POINT:
-+            /* Free the user signal. */
-+            status = gckOS_DestroySyncPoint(Kernel->os,
-+                                            (gctSYNC_POINT) record->data);
-+
-+            gcmkTRACE_ZONE(gcvLEVEL_WARNING, gcvZONE_DATABASE,
-+                           "DB: SYNC POINT %d (status=%d)",
-+                           (gctINT)(gctUINTPTR_T)record->data, status);
-+            break;
-+#endif
-+
-         default:
-             gcmkTRACE_ZONE(gcvLEVEL_ERROR, gcvZONE_DATABASE,
-                            "DB: Correcupted record=0x%08x type=%d",
-diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
-index 217f7f1..2d81a56 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
-+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
-@@ -931,6 +931,7 @@ gckEVENT_AddList(
-         || (Interface->command == gcvHAL_TIMESTAMP)
-         || (Interface->command == gcvHAL_COMMIT_DONE)
-         || (Interface->command == gcvHAL_FREE_VIRTUAL_COMMAND_BUFFER)
-+        || (Interface->command == gcvHAL_SYNC_POINT)
-         );
- 
-     /* Validate the source. */
-@@ -2131,6 +2132,9 @@ gckEVENT_Notify(
-                                        gcvINFINITE));
-         acquired = gcvTRUE;
- 
-+        /* We are in the notify loop. */
-+        Event->inNotify = gcvTRUE;
-+
-         /* Grab the event head. */
-         record = queue->head;
- 
-@@ -2463,6 +2467,17 @@ gckEVENT_Notify(
-                  break;
- #endif
- 
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+            case gcvHAL_SYNC_POINT:
-+                {
-+                    gctSYNC_POINT syncPoint;
-+
-+                    syncPoint = gcmUINT64_TO_PTR(record->info.u.SyncPoint.syncPoint);
-+                    status = gckOS_SignalSyncPoint(Event->os, syncPoint);
-+                }
-+                break;
-+#endif
-+
-             case gcvHAL_COMMIT_DONE:
-                 break;
- 
-@@ -2505,6 +2520,9 @@ gckEVENT_Notify(
-         gcmkONERROR(_TryToIdleGPU(Event));
-     }
- 
-+    /* We are out the notify loop. */
-+    Event->inNotify = gcvFALSE;
-+
-     /* Success. */
-     gcmkFOOTER_NO();
-     return gcvSTATUS_OK;
-@@ -2524,6 +2542,9 @@ OnError:
-     }
- #endif
- 
-+    /* We are out the notify loop. */
-+    Event->inNotify = gcvFALSE;
-+
-     /* Return the status. */
-     gcmkFOOTER();
-     return status;
-@@ -2871,3 +2892,11 @@ gckEVENT_Dump(
-     return gcvSTATUS_OK;
- }
- 
-+gceSTATUS gckEVENT_WaitEmpty(gckEVENT Event)
-+{
-+    gctBOOL isEmpty;
-+
-+    while (Event->inNotify || (gcmIS_SUCCESS(gckEVENT_IsEmpty(Event, &isEmpty)) && !isEmpty)) ;
-+
-+    return gcvSTATUS_OK;
-+}
-diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c
-index 8ac187b..50bc63e 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c
-+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c
-@@ -794,6 +794,9 @@ gckVGINTERRUPT_Enque(
-             Interrupt->kernel->hardware, &triggered
-             ));
- 
-+        /* Mask out TS overflow interrupt */
-+        triggered &= 0xfffffffe;
-+
-         /* No interrupts to process? */
-         if (triggered == 0)
-         {
-diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
-index c7f67c7..e4ca497 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
-+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
-@@ -1436,7 +1436,7 @@ gckMMU_AllocatePages(
-     acquired = gcvTRUE;
- 
-     /* Allocate page table for current MMU. */
--    for (i = 0; i < mirrorPageTable->reference; i++)
-+    for (i = 0; i < (gctINT)mirrorPageTable->reference; i++)
-     {
-         if (Mmu == mirrorPageTable->mmus[i])
-         {
-@@ -1446,7 +1446,7 @@ gckMMU_AllocatePages(
-     }
- 
-     /* Allocate page table for other MMUs. */
--    for (i = 0; i < mirrorPageTable->reference; i++)
-+    for (i = 0; i < (gctINT)mirrorPageTable->reference; i++)
-     {
-         mmu = mirrorPageTable->mmus[i];
- 
-@@ -1500,7 +1500,7 @@ gckMMU_FreePages(
- 
-     offset = (gctUINT32)PageTable - (gctUINT32)Mmu->pageTableLogical;
- 
--    for (i = 0; i < mirrorPageTable->reference; i++)
-+    for (i = 0; i < (gctINT)mirrorPageTable->reference; i++)
-     {
-         mmu = mirrorPageTable->mmus[i];
- 
-@@ -1639,7 +1639,7 @@ gckMMU_SetPage(
-     _WritePageEntry(PageEntry, data);
- 
- #if gcdMIRROR_PAGETABLE
--    for (i = 0; i < mirrorPageTable->reference; i++)
-+    for (i = 0; i < (gctINT)mirrorPageTable->reference; i++)
-     {
-         mmu = mirrorPageTable->mmus[i];
- 
-diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
-index 8b8bbdc..3b5dd82 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
-+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
-@@ -1582,6 +1582,7 @@ _NeedVirtualMapping(
-     gctUINT32 end;
-     gcePOOL pool;
-     gctUINT32 offset;
-+    gctUINT32 baseAddress;
- 
-     gcmkHEADER_ARG("Node=0x%X", Node);
- 
-@@ -1601,10 +1602,16 @@ _NeedVirtualMapping(
-         else
- #endif
-         {
--            /* For cores which can't access all physical address. */
--            gcmkONERROR(gckHARDWARE_ConvertLogical(Kernel->hardware,
--                        Node->Virtual.logical,
--                        &phys));
-+            /* Convert logical address into a physical address. */
-+            gcmkONERROR(
-+                gckOS_GetPhysicalAddress(Kernel->os, Node->Virtual.logical, &phys));
-+
-+            gcmkONERROR(gckOS_GetBaseAddress(Kernel->os, &baseAddress));
-+
-+            gcmkASSERT(phys >= baseAddress);
-+
-+            /* Subtract baseAddress to get a GPU address used for programming. */
-+            phys -= baseAddress;
- 
-             /* If part of region is belong to gcvPOOL_VIRTUAL,
-             ** whole region has to be mapped. */
-@@ -1734,6 +1741,11 @@ gckVIDMEM_Lock(
-         gcmkONERROR(gckOS_AcquireMutex(os, Node->Virtual.mutex, gcvINFINITE));
-         acquired = gcvTRUE;
- 
-+#if gcdPAGED_MEMORY_CACHEABLE
-+        /* Force video memory cacheable. */
-+        Cacheable = gcvTRUE;
-+#endif
-+
-         gcmkONERROR(
-             gckOS_LockPages(os,
-                             Node->Virtual.physical,
-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 4406d7e..7312cc2 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
-+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
-@@ -123,6 +123,12 @@ extern "C" {
- 
- #define gcvINVALID_ADDRESS          ~0U
- 
-+#define gcmGET_PRE_ROTATION(rotate) \
-+    ((rotate) & (~(gcvSURF_POST_FLIP_X | gcvSURF_POST_FLIP_Y)))
-+
-+#define gcmGET_POST_ROTATION(rotate) \
-+    ((rotate) & (gcvSURF_POST_FLIP_X | gcvSURF_POST_FLIP_Y))
-+
- /******************************************************************************\
- ******************************** gcsOBJECT Object *******************************
- \******************************************************************************/
-@@ -1124,6 +1130,60 @@ gckOS_UnmapUserMemory(
-     IN gctUINT32 Address
-     );
- 
-+/******************************************************************************\
-+************************** Android Native Fence Sync ***************************
-+\******************************************************************************/
-+gceSTATUS
-+gckOS_CreateSyncTimeline(
-+    IN gckOS Os,
-+    OUT gctHANDLE * Timeline
-+    );
-+
-+gceSTATUS
-+gckOS_DestroySyncTimeline(
-+    IN gckOS Os,
-+    IN gctHANDLE Timeline
-+    );
-+
-+gceSTATUS
-+gckOS_CreateSyncPoint(
-+    IN gckOS Os,
-+    OUT gctSYNC_POINT * SyncPoint
-+    );
-+
-+gceSTATUS
-+gckOS_ReferenceSyncPoint(
-+    IN gckOS Os,
-+    IN gctSYNC_POINT SyncPoint
-+    );
-+
-+gceSTATUS
-+gckOS_DestroySyncPoint(
-+    IN gckOS Os,
-+    IN gctSYNC_POINT SyncPoint
-+    );
-+
-+gceSTATUS
-+gckOS_SignalSyncPoint(
-+    IN gckOS Os,
-+    IN gctSYNC_POINT SyncPoint
-+    );
-+
-+gceSTATUS
-+gckOS_QuerySyncPoint(
-+    IN gckOS Os,
-+    IN gctSYNC_POINT SyncPoint,
-+    OUT gctBOOL_PTR State
-+    );
-+
-+gceSTATUS
-+gckOS_CreateNativeFence(
-+    IN gckOS Os,
-+    IN gctHANDLE Timeline,
-+    IN gctSYNC_POINT SyncPoint,
-+    OUT gctINT * FenceFD
-+    );
-+
- #if !USE_NEW_LINUX_SIGNAL
- /* Create signal to be used in the user space. */
- gceSTATUS
-@@ -1758,7 +1818,7 @@ gckKERNEL_Recovery(
- void
- gckKERNEL_SetTimeOut(
-     IN gckKERNEL Kernel,
--	IN gctUINT32 timeOut
-+    IN gctUINT32 timeOut
-     );
- 
- /* Get access to the user data. */
-@@ -2078,6 +2138,12 @@ gckHARDWARE_SetPowerManagement(
-     IN gctBOOL PowerManagement
-     );
- 
-+gceSTATUS
-+gckHARDWARE_SetGpuProfiler(
-+    IN gckHARDWARE Hardware,
-+    IN gctBOOL GpuProfiler
-+    );
-+
- #if gcdENABLE_FSCALE_VAL_ADJUST
- gceSTATUS
- gckHARDWARE_SetFscaleValue(
-@@ -2554,6 +2620,22 @@ gckHARDWARE_QueryProfileRegisters(
-     );
- #endif
- 
-+#if VIVANTE_PROFILER_CONTEXT
-+gceSTATUS
-+gckHARDWARE_QueryContextProfile(
-+    IN gckHARDWARE Hardware,
-+    IN gctBOOL   Clear,
-+    IN gckCONTEXT Context,
-+    OUT gcsPROFILER_COUNTERS * Counters
-+    );
-+
-+gceSTATUS
-+gckHARDWARE_UpdateContextProfile(
-+    IN gckHARDWARE Hardware,
-+    IN gckCONTEXT Context
-+    );
-+#endif
-+
- gceSTATUS
- gckOS_SignalQueryHardware(
-     IN gckOS Os,
-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 44689b0..9c17114 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
-@@ -71,10 +71,17 @@ typedef struct _gcoFENCE *              gcoFENCE;
- typedef struct _gcsSYNC_CONTEXT  *      gcsSYNC_CONTEXT_PTR;
- #endif
- 
-+typedef struct _gcoOS_SymbolsList gcoOS_SymbolsList;
-+
- /******************************************************************************\
- ******************************* Process local storage *************************
- \******************************************************************************/
- typedef struct _gcsPLS * gcsPLS_PTR;
-+
-+typedef void (* gctPLS_DESTRUCTOR) (
-+    gcsPLS_PTR
-+    );
-+
- typedef struct _gcsPLS
- {
-     /* Global objects. */
-@@ -103,6 +110,12 @@ typedef struct _gcsPLS
- 
-     /* PorcessID of the constrcutor process */
-     gctUINT32                   processID;
-+#if gcdFORCE_GAL_LOAD_TWICE
-+    /* ThreadID of the constrcutor process. */
-+    gctSIZE_T                   threadID;
-+    /* Flag for calling module destructor. */
-+    gctBOOL                     exiting;
-+#endif
- 
-     /* Reference count for destructor. */
-     gcsATOM_PTR                 reference;
-@@ -111,6 +124,8 @@ typedef struct _gcsPLS
-     gctBOOL                     bNeedSupportNP2Texture;
- #endif
- 
-+    /* Destructor for eglDisplayInfo. */
-+    gctPLS_DESTRUCTOR           destructor;
- }
- gcsPLS;
- 
-@@ -148,6 +163,11 @@ typedef struct _gcsTLS
- #endif
- 	gco2D						engine2D;
-     gctBOOL                     copied;
-+
-+#if gcdFORCE_GAL_LOAD_TWICE
-+    /* libGAL.so handle */
-+    gctHANDLE                   handle;
-+#endif
- }
- gcsTLS;
- 
-@@ -160,6 +180,7 @@ typedef enum _gcePLS_VALUE
-   gcePLS_VALUE_EGL_DISPLAY_INFO,
-   gcePLS_VALUE_EGL_SURFACE_INFO,
-   gcePLS_VALUE_EGL_CONFIG_FORMAT_INFO,
-+  gcePLS_VALUE_EGL_DESTRUCTOR_INFO,
- }
- gcePLS_VALUE;
- 
-@@ -577,6 +598,12 @@ gcoHAL_Call(
-     IN OUT gcsHAL_INTERFACE_PTR Interface
-     );
- 
-+gceSTATUS
-+gcoHAL_GetPatchID(
-+    IN  gcoHAL Hal,
-+    OUT gcePATCH_ID * PatchID
-+    );
-+
- /* Schedule an event. */
- gceSTATUS
- gcoHAL_ScheduleEvent(
-@@ -637,6 +664,16 @@ gcoHAL_QuerySeparated3D2D(
-     IN gcoHAL Hal
-     );
- 
-+gceSTATUS
-+gcoHAL_QuerySpecialHint(
-+    IN gceSPECIAL_HINT Hint
-+    );
-+
-+gceSTATUS
-+gcoHAL_SetSpecialHintData(
-+    IN gcoHARDWARE Hardware
-+    );
-+
- /* Get pointer to gcoVG object. */
- gceSTATUS
- gcoHAL_GetVGEngine(
-@@ -786,7 +823,6 @@ gcoOS_FreeVideoMemory(
-     IN gctPOINTER Handle
-     );
- 
--#if gcdENABLE_BANK_ALIGNMENT
- gceSTATUS
- gcoSURF_GetBankOffsetBytes(
-     IN gcoSURF Surfce,
-@@ -794,7 +830,6 @@ gcoSURF_GetBankOffsetBytes(
-     IN gctUINT32 Stride,
-     IN gctUINT32_PTR Bytes
-     );
--#endif
- 
- /* Map user memory. */
- gceSTATUS
-@@ -918,6 +953,21 @@ gcoOS_Flush(
-     IN gctFILE File
-     );
- 
-+/* Close a file descriptor. */
-+gceSTATUS
-+gcoOS_CloseFD(
-+    IN gcoOS Os,
-+    IN gctINT FD
-+    );
-+
-+/* Dup file descriptor to another. */
-+gceSTATUS
-+gcoOS_DupFD(
-+    IN gcoOS Os,
-+    IN gctINT FD,
-+    OUT gctINT * FD2
-+    );
-+
- /* Create an endpoint for communication. */
- gceSTATUS
- gcoOS_Socket(
-@@ -977,6 +1027,14 @@ gcoOS_GetEnv(
-     OUT gctSTRING * Value
-     );
- 
-+/* Set environment variable value. */
-+gceSTATUS
-+gcoOS_SetEnv(
-+    IN gcoOS Os,
-+    IN gctCONST_STRING VarName,
-+    IN gctSTRING Value
-+    );
-+
- /* Get current working directory. */
- gceSTATUS
- gcoOS_GetCwd(
-@@ -1210,6 +1268,13 @@ gcoOS_DetectProcessByEncryptedName(
-     IN gctCONST_STRING Name
-     );
- 
-+#if defined(ANDROID)
-+gceSTATUS
-+gcoOS_DetectProgrameByEncryptedSymbols(
-+    IN gcoOS_SymbolsList Symbols
-+    );
-+#endif
-+
- /*----------------------------------------------------------------------------*/
- /*----- Atoms ----------------------------------------------------------------*/
- 
-@@ -1403,6 +1468,42 @@ gcoOS_UnmapSignal(
-     IN gctSIGNAL Signal
-     );
- 
-+/*----------------------------------------------------------------------------*/
-+/*----- Android Native Fence -------------------------------------------------*/
-+
-+/* Create sync point. */
-+gceSTATUS
-+gcoOS_CreateSyncPoint(
-+    IN gcoOS Os,
-+    OUT gctSYNC_POINT * SyncPoint
-+    );
-+
-+/* Destroy sync point. */
-+gceSTATUS
-+gcoOS_DestroySyncPoint(
-+    IN gcoOS Os,
-+    IN gctSYNC_POINT SyncPoint
-+    );
-+
-+/* Create native fence. */
-+gceSTATUS
-+gcoOS_CreateNativeFence(
-+    IN gcoOS Os,
-+    IN gctSYNC_POINT SyncPoint,
-+    OUT gctINT * FenceFD
-+    );
-+
-+/* Wait on native fence. */
-+gceSTATUS
-+gcoOS_WaitNativeFence(
-+    IN gcoOS Os,
-+    IN gctINT FenceFD,
-+    IN gctUINT32 Timeout
-+    );
-+
-+/*----------------------------------------------------------------------------*/
-+/*----- Memory Access and Cache ----------------------------------------------*/
-+
- /* Write a register. */
- gceSTATUS
- gcoOS_WriteRegister(
-@@ -1507,7 +1608,7 @@ gcoOS_QueryProfileTickRate(
- #   define gcmPROFILE_QUERY(start, ticks)   do { } while (gcvFALSE)
- #   define gcmPROFILE_ONLY(x)               do { } while (gcvFALSE)
- #   define gcmPROFILE_ELSE(x)               x
--#   define gcmPROFILE_DECLARE_ONLY(x)       typedef x
-+#   define gcmPROFILE_DECLARE_ONLY(x)       do { } while (gcvFALSE) 
- #   define gcmPROFILE_DECLARE_ELSE(x)       x
- #endif
- 
-@@ -1579,6 +1680,28 @@ typedef struct _gcsRECT
- }
- gcsRECT;
- 
-+typedef union _gcsPIXEL
-+{
-+    struct
-+    {
-+        gctFLOAT r, g, b, a;
-+        gctFLOAT d, s;
-+    } pf;
-+
-+    struct
-+    {
-+        gctINT32 r, g, b, a;
-+        gctINT32 d, s;
-+    } pi;
-+
-+    struct
-+    {
-+        gctUINT32 r, g, b, a;
-+        gctUINT32 d, s;
-+    } pui;
-+
-+} gcsPIXEL;
-+
- 
- /******************************************************************************\
- ********************************* gcoSURF Object ********************************
-@@ -1795,6 +1918,18 @@ gcoSURF_SetRotation(
-     );
- 
- gceSTATUS
-+gcoSURF_SetPreRotation(
-+    IN gcoSURF Surface,
-+    IN gceSURF_ROTATION Rotation
-+    );
-+
-+gceSTATUS
-+gcoSURF_GetPreRotation(
-+    IN gcoSURF Surface,
-+    IN gceSURF_ROTATION *Rotation
-+    );
-+
-+gceSTATUS
- gcoSURF_IsValid(
-     IN gcoSURF Surface
-     );
-@@ -1824,6 +1959,15 @@ gcoSURF_DisableTileStatus(
-     IN gcoSURF Surface,
-     IN gctBOOL Decompress
-     );
-+
-+gceSTATUS
-+gcoSURF_AlignResolveRect(
-+    IN gcoSURF Surf,
-+    IN gcsPOINT_PTR RectOrigin,
-+    IN gcsPOINT_PTR RectSize,
-+    OUT gcsPOINT_PTR AlignedOrigin,
-+    OUT gcsPOINT_PTR AlignedSize
-+    );
- #endif /* VIVANTE_NO_3D */
- 
- /* Get surface size. */
-@@ -1910,6 +2054,9 @@ gcoSURF_FillFromTile(
-     IN gcoSURF Surface
-     );
- 
-+/* Check if surface needs a filler. */
-+gceSTATUS gcoSURF_NeedFiller(IN gcoSURF Surface);
-+
- /* Fill surface with a value. */
- gceSTATUS
- gcoSURF_Fill(
-@@ -1949,6 +2096,19 @@ gcoSURF_SetBuffer(
-     IN gctUINT32 Physical
-     );
- 
-+/* Set the underlying video buffer for the surface wrapper. */
-+gceSTATUS
-+gcoSURF_SetVideoBuffer(
-+    IN gcoSURF Surface,
-+    IN gceSURF_TYPE Type,
-+    IN gceSURF_FORMAT Format,
-+    IN gctUINT Width,
-+    IN gctUINT Height,
-+    IN gctUINT Stride,
-+    IN gctPOINTER *LogicalPlane1,
-+    IN gctUINT32 *PhysicalPlane1
-+    );
-+
- /* Set the size of the surface in pixels and map the underlying buffer. */
- gceSTATUS
- gcoSURF_SetWindow(
-@@ -3705,6 +3865,12 @@ gcGetUserDebugOption(
-     void
-     );
- 
-+struct _gcoOS_SymbolsList
-+{
-+    gcePATCH_ID patchId;
-+    const char * symList[10];
-+};
-+
- #if gcdHAS_ELLIPSES
- #define gcmUSER_DEBUG_MSG(level, ...) \
-     do \
-diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h
-index 8693c37..062224c 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h
-+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h
-@@ -39,12 +39,10 @@ extern "C" {
- #define GC_ENABLE_LOADTIME_OPT           1
- #endif
- 
--#define TEMP_OPT_CONSTANT_TEXLD_COORD    1
-+#define TEMP_OPT_CONSTANT_TEXLD_COORD    0
- 
- #define TEMP_SHADER_PATCH                1
- 
--#define ADD_PRE_ROTATION_TO_VS           0
--
- #define TEMP_INLINE_ALL_EXPANSION            1
- /******************************* IR VERSION ******************/
- #define gcdSL_IR_VERSION gcmCC('\0','\0','\0','\1')
-@@ -271,6 +269,7 @@ typedef enum _gcSL_OPCODE
- 	gcSL_ADDSAT,						/* 0x5C */  /* Integer only. */
- 	gcSL_SUBSAT,						/* 0x5D */  /* Integer only. */
- 	gcSL_MULSAT,						/* 0x5E */  /* Integer only. */
-+	gcSL_DP2,							/* 0x5F */
- 	gcSL_MAXOPCODE
- }
- gcSL_OPCODE;
-@@ -474,6 +473,9 @@ struct _gcsHINT
- 
-     gctBOOL     clipW;
- 
-+    /* Flag whether or not the shader has a KILL instruction. */
-+    gctBOOL     hasKill;
-+
-     /* Element count. */
-     gctUINT32   elementCount;
- 
-@@ -495,12 +497,18 @@ struct _gcsHINT
-     /* Balance maximum. */
-     gctUINT32   balanceMax;
- 
-+    /* Auto-shift balancing. */
-+    gctBOOL     autoShift;
-+
-     /* Flag whether the PS outputs the depth value or not. */
-     gctBOOL     psHasFragDepthOut;
- 
- 	/* Flag whether the ThreadWalker is in PS. */
- 	gctBOOL		threadWalkerInPS;
- 
-+    /* HW reg number for position of VS */
-+    gctUINT32   hwRegNoOfSIVPos;
-+
- #if gcdALPHA_KILL_IN_SHADER
-     /* States to set when alpha kill is enabled. */
-     gctUINT32   killStateAddress;
-@@ -687,12 +695,12 @@ typedef enum _gceSHADER_FLAGS
-     gcvSHADER_USE_ALPHA_KILL            = 0x100,
- #endif
- 
--#if ADD_PRE_ROTATION_TO_VS
-+#if gcdPRE_ROTATION && (ANDROID_SDK_VERSION >= 14)
-     gcvSHADER_VS_PRE_ROTATION           = 0x200,
- #endif
- 
- #if TEMP_INLINE_ALL_EXPANSION
--    gcvSHADER_INLINE_ALL_EXPANSION      = 0x200,
-+    gcvSHADER_INLINE_ALL_EXPANSION      = 0x400,
- #endif
- }
- gceSHADER_FLAGS;
-@@ -827,6 +835,7 @@ typedef struct _gcOPTIMIZER_OPTION
-     gctBOOL     dumpOptimizerVerbose;  /* dump result IR in each optimization phase */
-     gctBOOL     dumpBEGenertedCode;    /* dump generated machine code */
-     gctBOOL     dumpBEVerbose;         /* dump BE tree and optimization detail */
-+    gctBOOL     dumpBEFinalIR;         /* dump BE final IR */
- 
-     /* Code generation */
- 
-@@ -945,6 +954,8 @@ extern gcOPTIMIZER_OPTION theOptimizerOption;
-               gcmOPT_DUMP_CODEGEN_VERBOSE() )
- #define gcmOPT_DUMP_CODEGEN_VERBOSE()    \
-              (gcmGetOptimizerOption()->dumpBEVerbose != 0)
-+#define gcmOPT_DUMP_FINAL_IR()    \
-+             (gcmGetOptimizerOption()->dumpBEFinalIR != 0)
- 
- #define gcmOPT_SET_DUMP_SHADER_SRC(v)   \
-              gcmGetOptimizerOption()->dumpShaderSource = (v)
-@@ -1064,6 +1075,13 @@ typedef struct _gcNPOT_PATCH_PARAM
-     gctINT               texDimension;    /* 2 or 3 */
- }gcNPOT_PATCH_PARAM, *gcNPOT_PATCH_PARAM_PTR;
- 
-+typedef struct _gcZBIAS_PATCH_PARAM
-+{
-+    /* Driver uses this to program uniform that designating zbias */
-+    gctINT               uniformAddr;
-+    gctINT               channel;
-+}gcZBIAS_PATCH_PARAM, *gcZBIAS_PATCH_PARAM_PTR;
-+
- void
- gcGetOptionFromEnv(
-     IN OUT gcOPTIMIZER_OPTION * Option
-@@ -1556,6 +1574,43 @@ gcSHADER_AddUniform(
- 	OUT gcUNIFORM * Uniform
- 	);
- 
-+/*******************************************************************************
-+**							   gcSHADER_AddPreRotationUniform
-+********************************************************************************
-+**
-+**	Add an uniform to a gcSHADER object.
-+**
-+**	INPUT:
-+**
-+**		gcSHADER Shader
-+**			Pointer to a gcSHADER object.
-+**
-+**		gctCONST_STRING Name
-+**			Name of the uniform to add.
-+**
-+**		gcSHADER_TYPE Type
-+**			Type of the uniform to add.
-+**
-+**		gctSIZE_T Length
-+**			Array length of the uniform to add.  'Length' must be at least 1.
-+**
-+**		gctINT col
-+**			Which uniform.
-+**
-+**	OUTPUT:
-+**
-+**		gcUNIFORM * Uniform
-+**			Pointer to a variable receiving the gcUNIFORM object pointer.
-+*/
-+gceSTATUS
-+gcSHADER_AddPreRotationUniform(
-+	IN gcSHADER Shader,
-+	IN gctCONST_STRING Name,
-+	IN gcSHADER_TYPE Type,
-+	IN gctSIZE_T Length,
-+    IN gctINT col,
-+	OUT gcUNIFORM * Uniform
-+	);
- 
- /*******************************************************************************
- **							   gcSHADER_AddUniformEx
-@@ -1677,6 +1732,28 @@ gcSHADER_GetUniformCount(
- 	);
- 
- /*******************************************************************************
-+**                         gcSHADER_GetPreRotationUniform
-+********************************************************************************
-+**
-+**	Get the preRotate Uniform.
-+**
-+**	INPUT:
-+**
-+**		gcSHADER Shader
-+**			Pointer to a gcSHADER object.
-+**
-+**	OUTPUT:
-+**
-+**		gcUNIFORM ** pUniform
-+**			Pointer to a preRotation uniforms array.
-+*/
-+gceSTATUS
-+gcSHADER_GetPreRotationUniform(
-+	IN gcSHADER Shader,
-+	OUT gcUNIFORM ** pUniform
-+	);
-+
-+/*******************************************************************************
- **                             gcSHADER_GetUniform
- ********************************************************************************
- **
-@@ -3438,6 +3515,34 @@ gcUNIFORM_SetValueF(
- 	);
- 
- /*******************************************************************************
-+**  gcUNIFORM_ProgramF
-+**
-+**  Set the value of a uniform in floating point.
-+**
-+**  INPUT:
-+**
-+**      gctUINT32 Address
-+**          Address of Uniform.
-+**
-+**      gctSIZE_T Row/Col
-+**
-+**      const gctFLOAT * Value
-+**          Pointer to a buffer holding the floating point values for the
-+**          uniform.
-+**
-+**  OUTPUT:
-+**
-+**      Nothing.
-+*/
-+gceSTATUS
-+gcUNIFORM_ProgramF(
-+    IN gctUINT32 Address,
-+    IN gctSIZE_T Row,
-+    IN gctSIZE_T Col,
-+    IN const gctFLOAT * Value
-+    );
-+
-+/*******************************************************************************
- **						 gcUNIFORM_GetModelViewProjMatrix
- ********************************************************************************
- **
-@@ -3912,6 +4017,23 @@ gcRecompileShaders(
-     IN gctUINT32 *SamplerWrapS,
-     IN gctUINT32 *SamplerWrapT
-     );
-+
-+gceSTATUS
-+gcRecompileDepthBias(
-+    IN gcoHAL Hal,
-+    IN gcMACHINECODE_PTR pVsMachineCode,
-+    /*Recompile variables*/
-+    IN OUT gctPOINTER *ppRecompileStateBuffer,
-+    IN OUT gctSIZE_T *pRecompileStateBufferSize,
-+    IN OUT gcsHINT_PTR *ppRecompileHints,
-+    /* natvie state*/
-+    IN gctPOINTER pNativeStateBuffer,
-+    IN gctSIZE_T nativeStateBufferSize,
-+    IN gcsHINT_PTR pNativeHints,
-+	OUT gctINT * uniformAddr,
-+	OUT gctINT * uniformChannel
-+    );
-+
- /*******************************************************************************
- **                                gcSaveProgram
- ********************************************************************************
-@@ -4138,6 +4260,16 @@ gcSHADER_PatchNPOTForMachineCode(
-     IN OUT gcsHINT_PTR            pHints /* User needs copy original hints to this one, then passed this one in */
-     );
- 
-+gceSTATUS
-+gcSHADER_PatchZBiasForMachineCodeVS(
-+    IN     gcMACHINECODE_PTR       pMachineCode,
-+    IN OUT gcZBIAS_PATCH_PARAM_PTR pPatchParam,
-+    IN     gctUINT                 hwSupportedInstCount,
-+    OUT    gctPOINTER*             ppCmdBuffer,
-+    OUT    gctUINT32*              pByteSizeOfCmdBuffer,
-+    IN OUT gcsHINT_PTR             pHints /* User needs copy original hints to this one, then passed this one in */
-+    );
-+
- #ifdef __cplusplus
- }
- #endif
-diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
-index b056c52..fc8c395 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
-+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
-@@ -166,6 +166,12 @@ typedef enum _gceHAL_COMMAND_CODES
- 
-     /* Reset time stamp. */
-     gcvHAL_QUERY_RESET_TIME_STAMP,
-+
-+    /* Sync point operations. */
-+    gcvHAL_SYNC_POINT,
-+
-+    /* Create native fence and return its fd. */
-+    gcvHAL_CREATE_NATIVE_FENCE,
- }
- gceHAL_COMMAND_CODES;
- 
-@@ -723,6 +729,10 @@ typedef struct _gcsHAL_INTERFACE
-         /* gcvHAL_READ_ALL_PROFILE_REGISTERS */
-         struct _gcsHAL_READ_ALL_PROFILE_REGISTERS
-         {
-+#if VIVANTE_PROFILER_CONTEXT
-+            /* Context buffer object gckCONTEXT. Just a name. */
-+            IN gctUINT32                context;
-+#endif
-             /* Data read. */
-             OUT gcsPROFILER_COUNTERS    counters;
-         }
-@@ -978,6 +988,33 @@ typedef struct _gcsHAL_INTERFACE
-             OUT gctUINT64           timeStamp;
-         }
-         QueryResetTimeStamp;
-+
-+        struct _gcsHAL_SYNC_POINT
-+        {
-+            /* Command. */
-+            gceSYNC_POINT_COMMAND_CODES command;
-+
-+            /* Sync point. */
-+            IN OUT gctUINT64            syncPoint;
-+
-+            /* From where. */
-+            IN gceKERNEL_WHERE          fromWhere;
-+
-+            /* Signaled state. */
-+            OUT gctBOOL                 state;
-+        }
-+        SyncPoint;
-+
-+        struct _gcsHAL_CREATE_NATIVE_FENCE
-+        {
-+            /* Signal id to dup. */
-+            IN gctUINT64                syncPoint;
-+
-+            /* Native fence file descriptor. */
-+            OUT gctINT                  fenceFD;
-+
-+        }
-+        CreateNativeFence;
-     }
-     u;
- }
-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 8481375..3fb2fe4 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
-@@ -323,6 +323,15 @@ gcoSURF_Resolve(
-     IN gcoSURF DestSurface
-     );
- 
-+gceSTATUS
-+gcoSURF_IsHWResolveable(
-+    IN gcoSURF SrcSurface,
-+    IN gcoSURF DestSurface,
-+    IN gcsPOINT_PTR SrcOrigin,
-+    IN gcsPOINT_PTR DestOrigin,
-+    IN gcsPOINT_PTR RectSize
-+    );
-+
- /* Resolve rectangular area of a surface. */
- gceSTATUS
- gcoSURF_ResolveRect(
-@@ -345,6 +354,11 @@ gcoSURF_IsRenderable(
-     IN gcoSURF Surface
-     );
- 
-+gceSTATUS
-+gcoSURF_IsFormatRenderableAsRT(
-+    IN gcoSURF Surface
-+    );
-+
- #if gcdSYNC
- gceSTATUS
- gcoSURF_GetFence(
-@@ -1006,6 +1020,7 @@ typedef struct _gcsALPHA_INFO
-     gctBOOL                 test;
-     gceCOMPARE              compare;
-     gctUINT8                reference;
-+    gctFLOAT                floatReference;
- 
-     /* Alpha blending states. */
-     gctBOOL                 blend;
-@@ -1040,7 +1055,8 @@ gco3D_SetAlphaCompare(
- gceSTATUS
- gco3D_SetAlphaReference(
-     IN gco3D Engine,
--    IN gctUINT8 Reference
-+    IN gctUINT8 Reference,
-+    IN gctFLOAT FloatReference
-     );
- 
- /* Set alpha test reference in fixed point. */
-@@ -1504,6 +1520,19 @@ gcoTEXTURE_UploadSub(
-     IN gceSURF_FORMAT Format
-     );
- 
-+/* Upload YUV data to an gcoTEXTURE object. */
-+gceSTATUS
-+gcoTEXTURE_UploadYUV(
-+    IN gcoTEXTURE Texture,
-+    IN gceTEXTURE_FACE Face,
-+    IN gctUINT Width,
-+    IN gctUINT Height,
-+    IN gctUINT Slice,
-+    IN gctPOINTER Memory[3],
-+    IN gctINT Stride[3],
-+    IN gceSURF_FORMAT Format
-+    );
-+
- /* Upload compressed data to an gcoTEXTURE object. */
- gceSTATUS
- gcoTEXTURE_UploadCompressed(
-@@ -1621,6 +1650,13 @@ gcoTEXTURE_QueryCaps(
-     );
- 
- gceSTATUS
-+gcoTEXTURE_GetTiling(
-+    IN gcoTEXTURE Texture,
-+    IN gctINT preferLevel,
-+	OUT gceTILING * Tiling
-+    );
-+
-+gceSTATUS
- gcoTEXTURE_GetClosestFormat(
-     IN gcoHAL Hal,
-     IN gceSURF_FORMAT InFormat,
-@@ -2001,6 +2037,14 @@ gcoHAL_SetSharedInfo(
-     IN gctSIZE_T Bytes
-     );
- 
-+#if VIVANTE_PROFILER_CONTEXT
-+gceSTATUS
-+gcoHARDWARE_GetContext(
-+    IN gcoHARDWARE Hardware,
-+    OUT gctUINT32 * Context
-+    );
-+#endif
-+
- #ifdef __cplusplus
- }
- #endif
-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 a1d9ae5..8e3c2f8 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
-@@ -146,10 +146,26 @@ typedef enum _gceFEATURE
-     gcvFEATURE_FRUSTUM_CLIP_FIX,
-     gcvFEATURE_TEXTURE_LINEAR,
-     gcvFEATURE_TEXTURE_YUV_ASSEMBLER,
-+    gcvFEATURE_SHADER_HAS_INSTRUCTION_CACHE,
-     gcvFEATURE_DYNAMIC_FREQUENCY_SCALING,
-     gcvFEATURE_BUGFIX15,
-+    gcvFEATURE_2D_GAMMA,
-+    gcvFEATURE_2D_COLOR_SPACE_CONVERSION,
-+    gcvFEATURE_2D_SUPER_TILE_VERSION,
-     gcvFEATURE_2D_MIRROR_EXTENSION,
-+    gcvFEATURE_2D_SUPER_TILE_V1,
-+    gcvFEATURE_2D_SUPER_TILE_V2,
-+    gcvFEATURE_2D_SUPER_TILE_V3,
-+    gcvFEATURE_2D_MULTI_SOURCE_BLT_EX2,
-     gcvFEATURE_ELEMENT_INDEX_UINT,
-+    gcvFEATURE_2D_COMPRESSION,
-+    gcvFEATURE_2D_OPF_YUV_OUTPUT,
-+    gcvFEATURE_2D_MULTI_SRC_BLT_TO_UNIFIED_DST_RECT,
-+    gcvFEATURE_2D_YUV_MODE,
-+    gcvFEATURE_DECOMPRESS_Z16,
-+	gcvFEATURE_LINEAR_RENDER_TARGET,
-+    gcvFEATURE_BUG_FIXES8,
-+    gcvFEATURE_HALTI2,
- }
- gceFEATURE;
- 
-@@ -203,11 +219,14 @@ typedef enum _gceSURF_TYPE
-     gcvSURF_NO_VIDMEM      = 0x200, /* Used to allocate surfaces with no underlying vidmem node.
-                                        In Android, vidmem node is allocated by another process. */
-     gcvSURF_CACHEABLE      = 0x400, /* Used to allocate a cacheable surface */
--#if gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST
-     gcvSURF_FLIP           = 0x800, /* The Resolve Target the will been flip resolve from RT */
--#endif
-     gcvSURF_TILE_STATUS_DIRTY  = 0x1000, /* Init tile status to all dirty */
- 
-+    gcvSURF_LINEAR             = 0x2000,
-+
-+    gcvSURF_TEXTURE_LINEAR               = gcvSURF_TEXTURE
-+                                         | gcvSURF_LINEAR,
-+
-     gcvSURF_RENDER_TARGET_NO_TILE_STATUS = gcvSURF_RENDER_TARGET
-                                          | gcvSURF_NO_TILE_STATUS,
- 
-@@ -217,6 +236,9 @@ typedef enum _gceSURF_TYPE
-     gcvSURF_DEPTH_NO_TILE_STATUS         = gcvSURF_DEPTH
-                                          | gcvSURF_NO_TILE_STATUS,
- 
-+    gcvSURF_DEPTH_TS_DIRTY               = gcvSURF_DEPTH
-+                                         | gcvSURF_TILE_STATUS_DIRTY,
-+
-     /* Supported surface types with no vidmem node. */
-     gcvSURF_BITMAP_NO_VIDMEM             = gcvSURF_BITMAP
-                                          | gcvSURF_NO_VIDMEM,
-@@ -231,10 +253,8 @@ typedef enum _gceSURF_TYPE
-     gcvSURF_CACHEABLE_BITMAP             = gcvSURF_BITMAP
-                                          | gcvSURF_CACHEABLE,
- 
--#if gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST
-     gcvSURF_FLIP_BITMAP                  = gcvSURF_BITMAP
-                                          | gcvSURF_FLIP,
--#endif
- }
- gceSURF_TYPE;
- 
-@@ -263,6 +283,9 @@ typedef enum _gceSURF_ROTATION
-     gcvSURF_270_DEGREE,
-     gcvSURF_FLIP_X,
-     gcvSURF_FLIP_Y,
-+
-+	gcvSURF_POST_FLIP_X = 0x40000000,
-+    gcvSURF_POST_FLIP_Y = 0x80000000,
- }
- gceSURF_ROTATION;
- 
-@@ -622,21 +645,16 @@ gce2D_PORTER_DUFF_RULE;
- typedef enum _gce2D_YUV_COLOR_MODE
- {
-     gcv2D_YUV_601= 0,
--    gcv2D_YUV_709
--}
--gce2D_YUV_COLOR_MODE;
-+    gcv2D_YUV_709,
-+    gcv2D_YUV_USER_DEFINED,
-+    gcv2D_YUV_USER_DEFINED_CLAMP,
- 
--/* 2D Rotation and flipping. */
--typedef enum _gce2D_ORIENTATION
--{
--    gcv2D_0_DEGREE = 0,
--    gcv2D_90_DEGREE,
--    gcv2D_180_DEGREE,
--    gcv2D_270_DEGREE,
--    gcv2D_X_FLIP,
--    gcv2D_Y_FLIP
-+    /* Default setting is for src. gcv2D_YUV_DST
-+        can be ORed to set dst.
-+    */
-+    gcv2D_YUV_DST = 0x80000000,
- }
--gce2D_ORIENTATION;
-+gce2D_YUV_COLOR_MODE;
- 
- typedef enum _gce2D_COMMAND
- {
-@@ -656,21 +674,39 @@ typedef enum _gce2D_TILE_STATUS_CONFIG
-     gcv2D_TSC_ENABLE        = 0x00000001,
-     gcv2D_TSC_COMPRESSED    = 0x00000002,
-     gcv2D_TSC_DOWN_SAMPLER  = 0x00000004,
-+    gcv2D_TSC_2D_COMPRESSED = 0x00000008,
- }
- gce2D_TILE_STATUS_CONFIG;
- 
- typedef enum _gce2D_QUERY
- {
--    gcv2D_QUERY_RGB_ADDRESS_MAX_ALIGN       = 0,
--    gcv2D_QUERY_RGB_STRIDE_MAX_ALIGN,
--    gcv2D_QUERY_YUV_ADDRESS_MAX_ALIGN,
--    gcv2D_QUERY_YUV_STRIDE_MAX_ALIGN,
-+    gcv2D_QUERY_RGB_ADDRESS_MIN_ALIGN       = 0,
-+    gcv2D_QUERY_RGB_STRIDE_MIN_ALIGN,
-+    gcv2D_QUERY_YUV_ADDRESS_MIN_ALIGN,
-+    gcv2D_QUERY_YUV_STRIDE_MIN_ALIGN,
- }
- gce2D_QUERY;
- 
-+typedef enum _gce2D_SUPER_TILE_VERSION
-+{
-+    gcv2D_SUPER_TILE_VERSION_V1       = 1,
-+    gcv2D_SUPER_TILE_VERSION_V2       = 2,
-+    gcv2D_SUPER_TILE_VERSION_V3       = 3,
-+}
-+gce2D_SUPER_TILE_VERSION;
-+
- typedef enum _gce2D_STATE
- {
-     gcv2D_STATE_SPECIAL_FILTER_MIRROR_MODE       = 1,
-+    gcv2D_STATE_SUPER_TILE_VERSION,
-+    gcv2D_STATE_EN_GAMMA,
-+    gcv2D_STATE_DE_GAMMA,
-+    gcv2D_STATE_MULTI_SRC_BLIT_UNIFIED_DST_RECT,
-+
-+    gcv2D_STATE_ARRAY_EN_GAMMA                   = 0x10001,
-+    gcv2D_STATE_ARRAY_DE_GAMMA,
-+    gcv2D_STATE_ARRAY_CSC_YUV_TO_RGB,
-+    gcv2D_STATE_ARRAY_CSC_RGB_TO_YUV,
- }
- gce2D_STATE;
- 
-@@ -809,6 +845,15 @@ typedef enum _gceUSER_SIGNAL_COMMAND_CODES
- }
- gceUSER_SIGNAL_COMMAND_CODES;
- 
-+/* Sync point command codes. */
-+typedef enum _gceSYNC_POINT_COMMAND_CODES
-+{
-+    gcvSYNC_POINT_CREATE,
-+    gcvSYNC_POINT_DESTROY,
-+    gcvSYNC_POINT_SIGNAL,
-+}
-+gceSYNC_POINT_COMMAND_CODES;
-+
- /* Event locations. */
- typedef enum _gceKERNEL_WHERE
- {
-@@ -848,6 +893,44 @@ typedef enum _gceDEBUG_MESSAGE_TYPE
- }
- gceDEBUG_MESSAGE_TYPE;
- 
-+typedef enum _gceSPECIAL_HINT
-+{
-+    gceSPECIAL_HINT0,
-+    gceSPECIAL_HINT1,
-+    gceSPECIAL_HINT2,
-+    gceSPECIAL_HINT3,
-+    /* For disable dynamic stream/index */
-+    gceSPECIAL_HINT4
-+}
-+gceSPECIAL_HINT;
-+
-+typedef enum _gceMACHINECODE
-+{
-+    gcvMACHINECODE_HOVERJET0       = 0x0,
-+    gcvMACHINECODE_HOVERJET1      ,
-+
-+    gcvMACHINECODE_TAIJI0         ,
-+    gcvMACHINECODE_TAIJI1         ,
-+    gcvMACHINECODE_TAIJI2         ,
-+
-+    gcvMACHINECODE_ANTUTU0        ,
-+
-+    gcvMACHINECODE_GLB27_RELEASE_0,
-+    gcvMACHINECODE_GLB27_RELEASE_1,
-+
-+    gcvMACHINECODE_WAVESCAPE0     ,
-+    gcvMACHINECODE_WAVESCAPE1     ,
-+
-+    gcvMACHINECODE_NENAMARKV2_4_0 ,
-+    gcvMACHINECODE_NENAMARKV2_4_1 ,
-+
-+    gcvMACHINECODE_GLB25_RELEASE_0,
-+    gcvMACHINECODE_GLB25_RELEASE_1,
-+    gcvMACHINECODE_GLB25_RELEASE_2,
-+}
-+gceMACHINECODE;
-+
-+
- /******************************************************************************\
- ****************************** Object Declarations *****************************
- \******************************************************************************/
-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 9e2a8db..b53b618 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
-@@ -46,7 +46,7 @@
-         This define enables the profiler.
- */
- #ifndef VIVANTE_PROFILER
--#   define VIVANTE_PROFILER                     0
-+#   define VIVANTE_PROFILER                     1
- #endif
- 
- #ifndef VIVANTE_PROFILER_PERDRAW
-@@ -54,6 +54,15 @@
- #endif
- 
- /*
-+    VIVANTE_PROFILER_CONTEXT
-+
-+        This define enables the profiler according to each hw context.
-+*/
-+#ifndef VIVANTE_PROFILER_CONTEXT
-+#   define VIVANTE_PROFILER_CONTEXT             1
-+#endif
-+
-+/*
-     gcdUSE_VG
- 
-         Enable VG HAL layer (only for GC350).
-@@ -729,7 +738,24 @@
-         Use linear buffer for GPU apps so HWC can do 2D composition.
- */
- #ifndef gcdGPU_LINEAR_BUFFER_ENABLED
--#   define gcdGPU_LINEAR_BUFFER_ENABLED         0
-+#   define gcdGPU_LINEAR_BUFFER_ENABLED         1
-+#endif
-+
-+/*
-+    gcdENABLE_RENDER_INTO_WINDOW
-+
-+        Enable Render-Into-Window (ie, No-Resolve) feature on android.
-+        NOTE that even if enabled, it still depends on hardware feature and
-+        android application behavior. When hardware feature or application
-+        behavior can not support render into window mode, it will fail back
-+        to normal mode.
-+        When Render-Into-Window is finally used, window back buffer of android
-+        applications will be allocated matching render target tiling format.
-+        Otherwise buffer tiling is decided by the above option
-+        'gcdGPU_LINEAR_BUFFER_ENABLED'.
-+*/
-+#ifndef gcdENABLE_RENDER_INTO_WINDOW
-+#   define gcdENABLE_RENDER_INTO_WINDOW         1
- #endif
- 
- /*
-@@ -758,7 +784,11 @@
- #endif
- 
- #ifndef gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST
--#   define  gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST    0
-+#   ifdef ANDROID
-+#      define  gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST    1
-+#   else
-+#      define  gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST    0
-+#   endif
- #endif
- 
- #ifndef gcdENABLE_PE_DITHER_FIX
-@@ -800,6 +830,10 @@
- #   define gcdDISALBE_EARLY_EARLY_Z             1
- #endif
- 
-+#ifndef gcdSHADER_SRC_BY_MACHINECODE
-+#   define gcdSHADER_SRC_BY_MACHINECODE         1
-+#endif
-+
- /*
-     gcdLINK_QUEUE_SIZE
- 
-@@ -849,11 +883,20 @@
- #define gcdUSE_NPOT_PATCH                       1
- #endif
- 
--
- #ifndef gcdSYNC
- #   define gcdSYNC                              1
- #endif
- 
-+#ifndef gcdENABLE_SPECIAL_HINT3
-+#   define gcdENABLE_SPECIAL_HINT3               1
-+#endif
-+
-+#if defined(ANDROID)
-+#ifndef gcdPRE_ROTATION
-+#   define gcdPRE_ROTATION                      1
-+#endif
-+#endif
-+
- /*
-     gcdDVFS
- 
-@@ -866,4 +909,39 @@
- #   define gcdDVFS_POLLING_TIME                  (gcdDVFS_ANAYLSE_WINDOW * 4)
- #endif
- 
-+/*
-+    gcdANDROID_NATIVE_FENCE_SYNC
-+
-+        Enable android native fence sync. It is introduced since jellybean-4.2.
-+        Depends on linux kernel option: CONFIG_SYNC.
-+
-+        0: Disabled
-+        1: Build framework for native fence sync feature, and EGL extension
-+        2: Enable async swap buffers for client
-+           * Native fence sync for client 'queueBuffer' in EGL, which is
-+             'acquireFenceFd' for layer in compositor side.
-+        3. Enable async hwcomposer composition.
-+           * 'releaseFenceFd' for layer in compositor side, which is native
-+             fence sync when client 'dequeueBuffer'
-+           * Native fence sync for compositor 'queueBuffer' in EGL, which is
-+             'acquireFenceFd' for framebuffer target for DC
-+ */
-+#ifndef gcdANDROID_NATIVE_FENCE_SYNC
-+#   define gcdANDROID_NATIVE_FENCE_SYNC        0
-+#endif
-+
-+#ifndef gcdFORCE_MIPMAP
-+#   define gcdFORCE_MIPMAP                     0
-+#endif
-+
-+/*
-+    gcdFORCE_GAL_LOAD_TWICE
-+
-+        When non-zero, each thread except the main one will load libGAL.so twice to avoid potential segmetantion fault when app using dlopen/dlclose.
-+        If threads exit arbitrarily, libGAL.so may not unload until the process quit.
-+ */
-+#ifndef gcdFORCE_GAL_LOAD_TWICE
-+#   define gcdFORCE_GAL_LOAD_TWICE             0
-+#endif
-+
- #endif /* __gc_hal_options_h_ */
-diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h
-index 3e450ba..aed73aa 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h
-+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h
-@@ -45,509 +45,115 @@ extern "C" {
- #define gcdNEW_PROFILER_FILE    1
- #endif
- 
--/* OpenGL ES11 API IDs. */
--#define	ES11_ACTIVETEXTURE				1
--#define	ES11_ALPHAFUNC					(ES11_ACTIVETEXTURE				+ 1)
--#define	ES11_ALPHAFUNCX					(ES11_ALPHAFUNC					+ 1)
--#define	ES11_BINDBUFFER					(ES11_ALPHAFUNCX 				+ 1)
--#define	ES11_BINDTEXTURE				(ES11_BINDBUFFER 				+ 1)
--#define	ES11_BLENDFUNC					(ES11_BINDTEXTURE				+ 1)
--#define	ES11_BUFFERDATA					(ES11_BLENDFUNC					+ 1)
--#define	ES11_BUFFERSUBDATA				(ES11_BUFFERDATA				+ 1)
--#define	ES11_CLEAR						(ES11_BUFFERSUBDATA				+ 1)
--#define	ES11_CLEARCOLOR					(ES11_CLEAR						+ 1)
--#define	ES11_CLEARCOLORX				(ES11_CLEARCOLOR				+ 1)
--#define	ES11_CLEARDEPTHF				(ES11_CLEARCOLORX 				+ 1)
--#define	ES11_CLEARDEPTHX				(ES11_CLEARDEPTHF 				+ 1)
--#define	ES11_CLEARSTENCIL				(ES11_CLEARDEPTHX 				+ 1)
--#define	ES11_CLIENTACTIVETEXTURE    	(ES11_CLEARSTENCIL				+ 1)
--#define	ES11_CLIPPLANEF      			(ES11_CLIENTACTIVETEXTURE		+ 1)
--#define	ES11_CLIPPLANEX      			(ES11_CLIPPLANEF       			+ 1)
--#define	ES11_COLOR4F 					(ES11_CLIPPLANEX       			+ 1)
--#define	ES11_COLOR4UB        			(ES11_COLOR4F					+ 1)
--#define	ES11_COLOR4X 					(ES11_COLOR4UB					+ 1)
--#define	ES11_COLORMASK       			(ES11_COLOR4X					+ 1)
--#define	ES11_COLORPOINTER    			(ES11_COLORMASK        			+ 1)
--#define	ES11_COMPRESSEDTEXIMAGE2D   	(ES11_COLORPOINTER     			+ 1)
--#define	ES11_COMPRESSEDTEXSUBIMAGE2D	(ES11_COMPRESSEDTEXIMAGE2D    	+ 1)
--#define	ES11_COPYTEXIMAGE2D  			(ES11_COMPRESSEDTEXSUBIMAGE2D 	+ 1)
--#define	ES11_COPYTEXSUBIMAGE2D      	(ES11_COPYTEXIMAGE2D   			+ 1)
--#define	ES11_CULLFACE        			(ES11_COPYTEXSUBIMAGE2D			+ 1)
--#define	ES11_DELETEBUFFERS   			(ES11_CULLFACE         			+ 1)
--#define	ES11_DELETETEXTURES  			(ES11_DELETEBUFFERS    			+ 1)
--#define	ES11_DEPTHFUNC       			(ES11_DELETETEXTURES   			+ 1)
--#define	ES11_DEPTHMASK       			(ES11_DEPTHFUNC        			+ 1)
--#define	ES11_DEPTHRANGEF     			(ES11_DEPTHMASK        			+ 1)
--#define	ES11_DEPTHRANGEX     			(ES11_DEPTHRANGEF      			+ 1)
--#define	ES11_DISABLE 					(ES11_DEPTHRANGEX      			+ 1)
--#define	ES11_DISABLECLIENTSTATE     	(ES11_DISABLE					+ 1)
--#define	ES11_DRAWARRAYS      			(ES11_DISABLECLIENTSTATE		+ 1)
--#define	ES11_DRAWELEMENTS    			(ES11_DRAWARRAYS       			+ 1)
--#define	ES11_ENABLE  					(ES11_DRAWELEMENTS     			+ 1)
--#define	ES11_ENABLECLIENTSTATE      	(ES11_ENABLE					+ 1)
--#define	ES11_FINISH  					(ES11_ENABLECLIENTSTATE			+ 1)
--#define	ES11_FLUSH   					(ES11_FINISH   					+ 1)
--#define	ES11_FOGF    					(ES11_FLUSH    					+ 1)
--#define	ES11_FOGFV   					(ES11_FOGF     					+ 1)
--#define	ES11_FOGX    					(ES11_FOGFV    					+ 1)
--#define	ES11_FOGXV   					(ES11_FOGX     					+ 1)
--#define	ES11_FRONTFACE       			(ES11_FOGXV    					+ 1)
--#define	ES11_FRUSTUMF        			(ES11_FRONTFACE        			+ 1)
--#define	ES11_FRUSTUMX        			(ES11_FRUSTUMF         			+ 1)
--#define	ES11_GENBUFFERS      			(ES11_FRUSTUMX         			+ 1)
--#define	ES11_GENTEXTURES     			(ES11_GENBUFFERS       			+ 1)
--#define	ES11_GETBOOLEANV     			(ES11_GENTEXTURES      			+ 1)
--#define	ES11_GETBUFFERPARAMETERIV   	(ES11_GETBOOLEANV      			+ 1)
--#define	ES11_GETCLIPPLANEF   			(ES11_GETBUFFERPARAMETERIV		+ 1)
--#define	ES11_GETCLIPPLANEX   			(ES11_GETCLIPPLANEF    			+ 1)
--#define	ES11_GETERROR        			(ES11_GETCLIPPLANEX    			+ 1)
--#define	ES11_GETFIXEDV       			(ES11_GETERROR         			+ 1)
--#define	ES11_GETFLOATV       			(ES11_GETFIXEDV        			+ 1)
--#define	ES11_GETINTEGERV     			(ES11_GETFLOATV        			+ 1)
--#define	ES11_GETLIGHTFV      			(ES11_GETINTEGERV      			+ 1)
--#define	ES11_GETLIGHTXV      			(ES11_GETLIGHTFV       			+ 1)
--#define	ES11_GETMATERIALFV   			(ES11_GETLIGHTXV       			+ 1)
--#define	ES11_GETMATERIALXV   			(ES11_GETMATERIALFV    			+ 1)
--#define	ES11_GETPOINTERV     			(ES11_GETMATERIALXV    			+ 1)
--#define	ES11_GETSTRING       			(ES11_GETPOINTERV      			+ 1)
--#define	ES11_GETTEXENVFV     			(ES11_GETSTRING        			+ 1)
--#define	ES11_GETTEXENVIV     			(ES11_GETTEXENVFV      			+ 1)
--#define	ES11_GETTEXENVXV     			(ES11_GETTEXENVIV      			+ 1)
--#define	ES11_GETTEXPARAMETERFV      	(ES11_GETTEXENVXV      			+ 1)
--#define	ES11_GETTEXPARAMETERIV      	(ES11_GETTEXPARAMETERFV       	+ 1)
--#define	ES11_GETTEXPARAMETERXV      	(ES11_GETTEXPARAMETERIV       	+ 1)
--#define	ES11_HINT    					(ES11_GETTEXPARAMETERXV       	+ 1)
--#define	ES11_ISBUFFER        			(ES11_HINT     					+ 1)
--#define	ES11_ISENABLED       			(ES11_ISBUFFER 			        + 1)
--#define	ES11_ISTEXTURE       			(ES11_ISENABLED			        + 1)
--#define	ES11_LIGHTF  					(ES11_ISTEXTURE			        + 1)
--#define	ES11_LIGHTFV 					(ES11_LIGHTF   					+ 1)
--#define	ES11_LIGHTMODELF     			(ES11_LIGHTFV  					+ 1)
--#define	ES11_LIGHTMODELFV    			(ES11_LIGHTMODELF      			+ 1)
--#define	ES11_LIGHTMODELX     			(ES11_LIGHTMODELFV     			+ 1)
--#define	ES11_LIGHTMODELXV    			(ES11_LIGHTMODELX      			+ 1)
--#define	ES11_LIGHTX  					(ES11_LIGHTMODELXV     			+ 1)
--#define	ES11_LIGHTXV 					(ES11_LIGHTX   					+ 1)
--#define	ES11_LINEWIDTH       			(ES11_LIGHTXV  					+ 1)
--#define	ES11_LINEWIDTHX      			(ES11_LINEWIDTH        			+ 1)
--#define	ES11_LOADIDENTITY    			(ES11_LINEWIDTHX       			+ 1)
--#define	ES11_LOADMATRIXF     			(ES11_LOADIDENTITY     			+ 1)
--#define	ES11_LOADMATRIXX     			(ES11_LOADMATRIXF      			+ 1)
--#define	ES11_LOGICOP 					(ES11_LOADMATRIXX      			+ 1)
--#define	ES11_MATERIALF       			(ES11_LOGICOP					+ 1)
--#define	ES11_MATERIALFV      			(ES11_MATERIALF        			+ 1)
--#define	ES11_MATERIALX       			(ES11_MATERIALFV       			+ 1)
--#define	ES11_MATERIALXV      			(ES11_MATERIALX        			+ 1)
--#define	ES11_MATRIXMODE      			(ES11_MATERIALXV       			+ 1)
--#define	ES11_MULTITEXCOORD4F 			(ES11_MATRIXMODE       			+ 1)
--#define	ES11_MULTITEXCOORD4X 			(ES11_MULTITEXCOORD4F  			+ 1)
--#define	ES11_MULTMATRIXF     			(ES11_MULTITEXCOORD4X  			+ 1)
--#define	ES11_MULTMATRIXX     			(ES11_MULTMATRIXF      			+ 1)
--#define	ES11_NORMAL3F        			(ES11_MULTMATRIXX      			+ 1)
--#define	ES11_NORMAL3X        			(ES11_NORMAL3F         			+ 1)
--#define	ES11_NORMALPOINTER   			(ES11_NORMAL3X         			+ 1)
--#define	ES11_ORTHOF  					(ES11_NORMALPOINTER    			+ 1)
--#define	ES11_ORTHOX  					(ES11_ORTHOF   					+ 1)
--#define	ES11_PIXELSTOREI     			(ES11_ORTHOX   					+ 1)
--#define	ES11_POINTPARAMETERF 			(ES11_PIXELSTOREI      			+ 1)
--#define	ES11_POINTPARAMETERFV    		(ES11_POINTPARAMETERF  			+ 1)
--#define	ES11_POINTPARAMETERX 			(ES11_POINTPARAMETERFV 			+ 1)
--#define	ES11_POINTPARAMETERXV    		(ES11_POINTPARAMETERX  			+ 1)
--#define	ES11_POINTSIZE       			(ES11_POINTPARAMETERXV 			+ 1)
--#define	ES11_POINTSIZEX      			(ES11_POINTSIZE        			+ 1)
--#define	ES11_POLYGONOFFSET   			(ES11_POINTSIZEX       			+ 1)
--#define	ES11_POLYGONOFFSETX  			(ES11_POLYGONOFFSET    			+ 1)
--#define	ES11_POPMATRIX       			(ES11_POLYGONOFFSETX   			+ 1)
--#define	ES11_PUSHMATRIX      			(ES11_POPMATRIX        			+ 1)
--#define	ES11_READPIXELS      			(ES11_PUSHMATRIX       			+ 1)
--#define	ES11_ROTATEF 					(ES11_READPIXELS       			+ 1)
--#define	ES11_ROTATEX 					(ES11_ROTATEF  					+ 1)
--#define	ES11_SAMPLECOVERAGE  			(ES11_ROTATEX  					+ 1)
--#define	ES11_SAMPLECOVERAGEX 			(ES11_SAMPLECOVERAGE   			+ 1)
--#define	ES11_SCALEF  					(ES11_SAMPLECOVERAGEX  			+ 1)
--#define	ES11_SCALEX  					(ES11_SCALEF   					+ 1)
--#define	ES11_SCISSOR 					(ES11_SCALEX   					+ 1)
--#define	ES11_SHADEMODEL      			(ES11_SCISSOR  					+ 1)
--#define	ES11_STENCILFUNC     			(ES11_SHADEMODEL       			+ 1)
--#define	ES11_STENCILMASK     			(ES11_STENCILFUNC      			+ 1)
--#define	ES11_STENCILOP       			(ES11_STENCILMASK      			+ 1)
--#define	ES11_TEXCOORDPOINTER 			(ES11_STENCILOP        			+ 1)
--#define	ES11_TEXENVF 					(ES11_TEXCOORDPOINTER  			+ 1)
--#define	ES11_TEXENVFV     				(ES11_TEXENVF					+ 1)
--#define	ES11_TEXENVI 					(ES11_TEXENVFV					+ 1)
--#define	ES11_TEXENVIV     				(ES11_TEXENVI  					+ 1)
--#define	ES11_TEXENVX 					(ES11_TEXENVIV 					+ 1)
--#define	ES11_TEXENVXV        			(ES11_TEXENVX  					+ 1)
--#define	ES11_TEXIMAGE2D      			(ES11_TEXENVXV         			+ 1)
--#define	ES11_TEXPARAMETERF   			(ES11_TEXIMAGE2D       			+ 1)
--#define	ES11_TEXPARAMETERFV  			(ES11_TEXPARAMETERF    			+ 1)
--#define	ES11_TEXPARAMETERI   			(ES11_TEXPARAMETERFV   			+ 1)
--#define	ES11_TEXPARAMETERIV  			(ES11_TEXPARAMETERI    			+ 1)
--#define	ES11_TEXPARAMETERX   			(ES11_TEXPARAMETERIV   			+ 1)
--#define	ES11_TEXPARAMETERXV  			(ES11_TEXPARAMETERX    			+ 1)
--#define	ES11_TEXSUBIMAGE2D   			(ES11_TEXPARAMETERXV   			+ 1)
--#define	ES11_TRANSLATEF      			(ES11_TEXSUBIMAGE2D    			+ 1)
--#define	ES11_TRANSLATEX      			(ES11_TRANSLATEF       			+ 1)
--#define	ES11_VERTEXPOINTER   			(ES11_TRANSLATEX       			+ 1)
--#define	ES11_VIEWPORT        			(ES11_VERTEXPOINTER    			+ 1)
--#define ES11_BLENDEQUATIONOES           (ES11_VIEWPORT         			+ 1)
--#define ES11_BLENDFUNCSEPERATEOES       (ES11_BLENDEQUATIONOES       	+ 1)
--#define ES11_BLENDEQUATIONSEPARATEOES   (ES11_BLENDFUNCSEPERATEOES    	+ 1)
--#define ES11_GLMAPBUFFEROES             (ES11_BLENDEQUATIONSEPARATEOES 	+ 1)
--#define ES11_GLUNMAPBUFFEROES           (ES11_GLMAPBUFFEROES     		+ 1)
--#define ES11_GLGETBUFFERPOINTERVOES     (ES11_GLUNMAPBUFFEROES         	+ 1)
--#define	ES11_CALLS   					(ES11_GLGETBUFFERPOINTERVOES   	+ 1)
--#define	ES11_DRAWCALLS       			(ES11_CALLS						+ 1)
--#define	ES11_STATECHANGECALLS    		(ES11_DRAWCALLS					+ 1)
--#define	ES11_POINTCOUNT      			(ES11_STATECHANGECALLS			+ 1)
--#define	ES11_LINECOUNT       			(ES11_POINTCOUNT       			+ 1)
--#define	ES11_TRIANGLECOUNT   			(ES11_LINECOUNT        			+ 1)
--
--/* OpenGL ES2X API IDs. */
--#define	ES20_ACTIVETEXTURE				1
--#define	ES20_ATTACHSHADER							(ES20_ACTIVETEXTURE							+	1)
--#define	ES20_BINDATTRIBLOCATION						(ES20_ATTACHSHADER							+	1)
--#define	ES20_BINDBUFFER								(ES20_BINDATTRIBLOCATION					+	1)
--#define	ES20_BINDFRAMEBUFFER						(ES20_BINDBUFFER							+	1)
--#define	ES20_BINDRENDERBUFFER						(ES20_BINDFRAMEBUFFER						+	1)
--#define	ES20_BINDTEXTURE							(ES20_BINDRENDERBUFFER						+	1)
--#define	ES20_BLENDCOLOR								(ES20_BINDTEXTURE							+	1)
--#define	ES20_BLENDEQUATION							(ES20_BLENDCOLOR							+	1)
--#define	ES20_BLENDEQUATIONSEPARATE					(ES20_BLENDEQUATION							+	1)
--#define	ES20_BLENDFUNC								(ES20_BLENDEQUATIONSEPARATE					+	1)
--#define	ES20_BLENDFUNCSEPARATE						(ES20_BLENDFUNC								+	1)
--#define	ES20_BUFFERDATA								(ES20_BLENDFUNCSEPARATE						+	1)
--#define	ES20_BUFFERSUBDATA							(ES20_BUFFERDATA							+	1)
--#define	ES20_CHECKFRAMEBUFFERSTATUS					(ES20_BUFFERSUBDATA							+	1)
--#define	ES20_CLEAR									(ES20_CHECKFRAMEBUFFERSTATUS				+	1)
--#define	ES20_CLEARCOLOR								(ES20_CLEAR									+	1)
--#define	ES20_CLEARDEPTHF							(ES20_CLEARCOLOR							+	1)
--#define	ES20_CLEARSTENCIL							(ES20_CLEARDEPTHF							+	1)
--#define	ES20_COLORMASK								(ES20_CLEARSTENCIL							+	1)
--#define	ES20_COMPILESHADER							(ES20_COLORMASK								+	1)
--#define	ES20_COMPRESSEDTEXIMAGE2D					(ES20_COMPILESHADER							+	1)
--#define	ES20_COMPRESSEDTEXSUBIMAGE2D				(ES20_COMPRESSEDTEXIMAGE2D					+	1)
--#define	ES20_COPYTEXIMAGE2D							(ES20_COMPRESSEDTEXSUBIMAGE2D				+	1)
--#define	ES20_COPYTEXSUBIMAGE2D						(ES20_COPYTEXIMAGE2D						+	1)
--#define	ES20_CREATEPROGRAM							(ES20_COPYTEXSUBIMAGE2D						+	1)
--#define	ES20_CREATESHADER							(ES20_CREATEPROGRAM							+	1)
--#define	ES20_CULLFACE								(ES20_CREATESHADER							+	1)
--#define	ES20_DELETEBUFFERS							(ES20_CULLFACE								+	1)
--#define	ES20_DELETEFRAMEBUFFERS						(ES20_DELETEBUFFERS							+	1)
--#define	ES20_DELETEPROGRAM							(ES20_DELETEFRAMEBUFFERS					+	1)
--#define	ES20_DELETERENDERBUFFERS					(ES20_DELETEPROGRAM							+	1)
--#define	ES20_DELETESHADER							(ES20_DELETERENDERBUFFERS					+	1)
--#define	ES20_DELETETEXTURES							(ES20_DELETESHADER							+	1)
--#define	ES20_DEPTHFUNC								(ES20_DELETETEXTURES						+	1)
--#define	ES20_DEPTHMASK								(ES20_DEPTHFUNC								+	1)
--#define	ES20_DEPTHRANGEF							(ES20_DEPTHMASK								+	1)
--#define	ES20_DETACHSHADER							(ES20_DEPTHRANGEF							+	1)
--#define	ES20_DISABLE								(ES20_DETACHSHADER							+	1)
--#define	ES20_DISABLEVERTEXATTRIBARRAY				(ES20_DISABLE								+	1)
--#define	ES20_DRAWARRAYS								(ES20_DISABLEVERTEXATTRIBARRAY				+	1)
--#define	ES20_DRAWELEMENTS							(ES20_DRAWARRAYS							+	1)
--#define	ES20_ENABLE									(ES20_DRAWELEMENTS							+	1)
--#define	ES20_ENABLEVERTEXATTRIBARRAY				(ES20_ENABLE								+	1)
--#define	ES20_FINISH									(ES20_ENABLEVERTEXATTRIBARRAY				+	1)
--#define	ES20_FLUSH									(ES20_FINISH								+	1)
--#define	ES20_FRAMEBUFFERRENDERBUFFER				(ES20_FLUSH									+	1)
--#define	ES20_FRAMEBUFFERTEXTURE2D					(ES20_FRAMEBUFFERRENDERBUFFER				+	1)
--#define	ES20_FRONTFACE								(ES20_FRAMEBUFFERTEXTURE2D					+	1)
--#define	ES20_GENBUFFERS								(ES20_FRONTFACE								+	1)
--#define	ES20_GENERATEMIPMAP							(ES20_GENBUFFERS							+	1)
--#define	ES20_GENFRAMEBUFFERS						(ES20_GENERATEMIPMAP						+	1)
--#define	ES20_GENRENDERBUFFERS						(ES20_GENFRAMEBUFFERS						+	1)
--#define	ES20_GENTEXTURES							(ES20_GENRENDERBUFFERS						+	1)
--#define	ES20_GETACTIVEATTRIB						(ES20_GENTEXTURES							+	1)
--#define	ES20_GETACTIVEUNIFORM						(ES20_GETACTIVEATTRIB						+	1)
--#define	ES20_GETATTACHEDSHADERS						(ES20_GETACTIVEUNIFORM						+	1)
--#define	ES20_GETATTRIBLOCATION						(ES20_GETATTACHEDSHADERS					+	1)
--#define	ES20_GETBOOLEANV							(ES20_GETATTRIBLOCATION						+	1)
--#define	ES20_GETBUFFERPARAMETERIV					(ES20_GETBOOLEANV							+	1)
--#define	ES20_GETERROR								(ES20_GETBUFFERPARAMETERIV					+	1)
--#define	ES20_GETFLOATV								(ES20_GETERROR								+	1)
--#define	ES20_GETFRAMEBUFFERATTACHMENTPARAMETERIV	(ES20_GETFLOATV								+	1)
--#define	ES20_GETINTEGERV							(ES20_GETFRAMEBUFFERATTACHMENTPARAMETERIV	+	1)
--#define	ES20_GETPROGRAMIV							(ES20_GETINTEGERV							+	1)
--#define	ES20_GETPROGRAMINFOLOG						(ES20_GETPROGRAMIV							+	1)
--#define	ES20_GETRENDERBUFFERPARAMETERIV				(ES20_GETPROGRAMINFOLOG						+	1)
--#define	ES20_GETSHADERIV							(ES20_GETRENDERBUFFERPARAMETERIV			+	1)
--#define	ES20_GETSHADERINFOLOG						(ES20_GETSHADERIV							+	1)
--#define	ES20_GETSHADERPRECISIONFORMAT				(ES20_GETSHADERINFOLOG						+	1)
--#define	ES20_GETSHADERSOURCE						(ES20_GETSHADERPRECISIONFORMAT				+	1)
--#define	ES20_GETSTRING								(ES20_GETSHADERSOURCE						+	1)
--#define	ES20_GETTEXPARAMETERFV						(ES20_GETSTRING								+	1)
--#define	ES20_GETTEXPARAMETERIV						(ES20_GETTEXPARAMETERFV						+	1)
--#define	ES20_GETUNIFORMFV							(ES20_GETTEXPARAMETERIV						+	1)
--#define	ES20_GETUNIFORMIV							(ES20_GETUNIFORMFV							+	1)
--#define	ES20_GETUNIFORMLOCATION						(ES20_GETUNIFORMIV							+	1)
--#define	ES20_GETVERTEXATTRIBFV						(ES20_GETUNIFORMLOCATION					+	1)
--#define	ES20_GETVERTEXATTRIBIV						(ES20_GETVERTEXATTRIBFV						+	1)
--#define	ES20_GETVERTEXATTRIBPOINTERV				(ES20_GETVERTEXATTRIBIV						+	1)
--#define	ES20_HINT									(ES20_GETVERTEXATTRIBPOINTERV				+	1)
--#define	ES20_ISBUFFER								(ES20_HINT									+	1)
--#define	ES20_ISENABLED								(ES20_ISBUFFER								+	1)
--#define	ES20_ISFRAMEBUFFER							(ES20_ISENABLED								+	1)
--#define	ES20_ISPROGRAM								(ES20_ISFRAMEBUFFER							+	1)
--#define	ES20_ISRENDERBUFFER							(ES20_ISPROGRAM								+	1)
--#define	ES20_ISSHADER								(ES20_ISRENDERBUFFER						+	1)
--#define	ES20_ISTEXTURE								(ES20_ISSHADER								+	1)
--#define	ES20_LINEWIDTH								(ES20_ISTEXTURE								+	1)
--#define	ES20_LINKPROGRAM							(ES20_LINEWIDTH								+	1)
--#define	ES20_PIXELSTOREI							(ES20_LINKPROGRAM							+	1)
--#define	ES20_POLYGONOFFSET							(ES20_PIXELSTOREI							+	1)
--#define	ES20_READPIXELS								(ES20_POLYGONOFFSET							+	1)
--#define	ES20_RELEASESHADERCOMPILER					(ES20_READPIXELS							+	1)
--#define	ES20_RENDERBUFFERSTORAGE					(ES20_RELEASESHADERCOMPILER					+	1)
--#define	ES20_SAMPLECOVERAGE							(ES20_RENDERBUFFERSTORAGE					+	1)
--#define	ES20_SCISSOR								(ES20_SAMPLECOVERAGE						+	1)
--#define	ES20_SHADERBINARY							(ES20_SCISSOR								+	1)
--#define	ES20_SHADERSOURCE							(ES20_SHADERBINARY							+	1)
--#define	ES20_STENCILFUNC							(ES20_SHADERSOURCE							+	1)
--#define	ES20_STENCILFUNCSEPARATE					(ES20_STENCILFUNC							+	1)
--#define	ES20_STENCILMASK							(ES20_STENCILFUNCSEPARATE					+	1)
--#define	ES20_STENCILMASKSEPARATE					(ES20_STENCILMASK							+	1)
--#define	ES20_STENCILOP								(ES20_STENCILMASKSEPARATE					+	1)
--#define	ES20_STENCILOPSEPARATE						(ES20_STENCILOP								+	1)
--#define	ES20_TEXIMAGE2D								(ES20_STENCILOPSEPARATE						+	1)
--#define	ES20_TEXPARAMETERF							(ES20_TEXIMAGE2D							+	1)
--#define	ES20_TEXPARAMETERFV							(ES20_TEXPARAMETERF							+	1)
--#define	ES20_TEXPARAMETERI							(ES20_TEXPARAMETERFV						+	1)
--#define	ES20_TEXPARAMETERIV							(ES20_TEXPARAMETERI							+	1)
--#define	ES20_TEXSUBIMAGE2D							(ES20_TEXPARAMETERIV						+	1)
--#define	ES20_UNIFORM1F								(ES20_TEXSUBIMAGE2D							+	1)
--#define	ES20_UNIFORM1FV								(ES20_UNIFORM1F								+	1)
--#define	ES20_UNIFORM1I								(ES20_UNIFORM1FV							+	1)
--#define	ES20_UNIFORM1IV								(ES20_UNIFORM1I								+	1)
--#define	ES20_UNIFORM2F								(ES20_UNIFORM1IV							+	1)
--#define	ES20_UNIFORM2FV								(ES20_UNIFORM2F								+	1)
--#define	ES20_UNIFORM2I								(ES20_UNIFORM2FV							+	1)
--#define	ES20_UNIFORM2IV								(ES20_UNIFORM2I								+	1)
--#define	ES20_UNIFORM3F								(ES20_UNIFORM2IV							+	1)
--#define	ES20_UNIFORM3FV								(ES20_UNIFORM3F								+	1)
--#define	ES20_UNIFORM3I								(ES20_UNIFORM3FV							+	1)
--#define	ES20_UNIFORM3IV								(ES20_UNIFORM3I								+	1)
--#define	ES20_UNIFORM4F								(ES20_UNIFORM3IV							+	1)
--#define	ES20_UNIFORM4FV								(ES20_UNIFORM4F								+	1)
--#define	ES20_UNIFORM4I								(ES20_UNIFORM4FV							+	1)
--#define	ES20_UNIFORM4IV								(ES20_UNIFORM4I								+	1)
--#define	ES20_UNIFORMMATRIX2FV						(ES20_UNIFORM4IV							+	1)
--#define	ES20_UNIFORMMATRIX3FV						(ES20_UNIFORMMATRIX2FV						+	1)
--#define	ES20_UNIFORMMATRIX4FV						(ES20_UNIFORMMATRIX3FV						+	1)
--#define	ES20_USEPROGRAM								(ES20_UNIFORMMATRIX4FV						+	1)
--#define	ES20_VALIDATEPROGRAM						(ES20_USEPROGRAM							+	1)
--#define	ES20_VERTEXATTRIB1F							(ES20_VALIDATEPROGRAM						+	1)
--#define	ES20_VERTEXATTRIB1FV						(ES20_VERTEXATTRIB1F						+	1)
--#define	ES20_VERTEXATTRIB2F							(ES20_VERTEXATTRIB1FV						+	1)
--#define	ES20_VERTEXATTRIB2FV						(ES20_VERTEXATTRIB2F						+	1)
--#define	ES20_VERTEXATTRIB3F							(ES20_VERTEXATTRIB2FV						+	1)
--#define	ES20_VERTEXATTRIB3FV						(ES20_VERTEXATTRIB3F						+	1)
--#define	ES20_VERTEXATTRIB4F							(ES20_VERTEXATTRIB3FV						+	1)
--#define	ES20_VERTEXATTRIB4FV						(ES20_VERTEXATTRIB4F						+	1)
--#define	ES20_VERTEXATTRIBPOINTER					(ES20_VERTEXATTRIB4FV						+	1)
--#define	ES20_VIEWPORT								(ES20_VERTEXATTRIBPOINTER					+	1)
--#define ES20_GETPROGRAMBINARYOES                    (ES20_VIEWPORT                              +   1)
--#define ES20_PROGRAMBINARYOES                       (ES20_GETPROGRAMBINARYOES                   +   1)
--#define ES20_TEXIMAGE3DOES                          (ES20_PROGRAMBINARYOES                      +   1)
--#define ES20_TEXSUBIMAGE3DOES                       (ES20_TEXIMAGE3DOES                         +   1)
--#define ES20_COPYSUBIMAGE3DOES                      (ES20_TEXSUBIMAGE3DOES                      +   1)
--#define ES20_COMPRESSEDTEXIMAGE3DOES                (ES20_COPYSUBIMAGE3DOES                     +   1)
--#define ES20_COMPRESSEDTEXSUBIMAGE3DOES             (ES20_COMPRESSEDTEXIMAGE3DOES               +   1)
--#define ES20_FRAMEBUFFERTEXTURE3DOES                (ES20_COMPRESSEDTEXSUBIMAGE3DOES            +   1)
--#define ES20_BINDVERTEXARRAYOES                     (ES20_FRAMEBUFFERTEXTURE3DOES               +   1)
--#define ES20_GENVERTEXARRAYOES                      (ES20_BINDVERTEXARRAYOES                    +   1)
--#define ES20_ISVERTEXARRAYOES                       (ES20_GENVERTEXARRAYOES                     +   1)
--#define ES20_DELETEVERTEXARRAYOES                   (ES20_ISVERTEXARRAYOES                      +   1)
--#define ES20_GLMAPBUFFEROES                         (ES20_DELETEVERTEXARRAYOES                  +   1)
--#define ES20_GLUNMAPBUFFEROES                       (ES20_GLMAPBUFFEROES                        +   1)
--#define ES20_GLGETBUFFERPOINTERVOES                 (ES20_GLUNMAPBUFFEROES                      +   1)
--#define ES20_DISCARDFRAMEBUFFEREXT                  (ES20_GLGETBUFFERPOINTERVOES				+	1)
--#define	ES20_CALLS									(ES20_DISCARDFRAMEBUFFEREXT 				+	1)
--#define	ES20_DRAWCALLS								(ES20_CALLS									+	1)
--#define	ES20_STATECHANGECALLS						(ES20_DRAWCALLS								+	1)
--#define	ES20_POINTCOUNT								(ES20_STATECHANGECALLS						+	1)
--#define	ES20_LINECOUNT								(ES20_POINTCOUNT							+	1)
--#define	ES20_TRIANGLECOUNT							(ES20_LINECOUNT								+	1)
--
--/* OpenVG API IDs. */
--#define	VG11_APPENDPATH			     1
--#define	VG11_APPENDPATHDATA			(VG11_APPENDPATH				+ 1)
--#define	VG11_CHILDIMAGE				(VG11_APPENDPATHDATA			+ 1)
--#define	VG11_CLEAR					(VG11_CHILDIMAGE				+ 1)
--#define	VG11_CLEARGLYPH				(VG11_CLEAR						+ 1)
--#define	VG11_CLEARIMAGE				(VG11_CLEARGLYPH				+ 1)
--#define	VG11_CLEARPATH				(VG11_CLEARIMAGE				+ 1)
--#define	VG11_COLORMATRIX			(VG11_CLEARPATH					+ 1)
--#define	VG11_CONVOLVE				(VG11_COLORMATRIX				+ 1)
--#define	VG11_COPYIMAGE				(VG11_CONVOLVE					+ 1)
--#define	VG11_COPYMASK				(VG11_COPYIMAGE					+ 1)
--#define	VG11_COPYPIXELS				(VG11_COPYMASK					+ 1)
--#define	VG11_CREATEFONT				(VG11_COPYPIXELS				+ 1)
--#define	VG11_CREATEIMAGE			(VG11_CREATEFONT				+ 1)
--#define	VG11_CREATEMASKLAYER		(VG11_CREATEIMAGE				+ 1)
--#define	VG11_CREATEPAINT			(VG11_CREATEMASKLAYER			+ 1)
--#define	VG11_CREATEPATH				(VG11_CREATEPAINT				+ 1)
--#define	VG11_DESTROYFONT			(VG11_CREATEPATH				+ 1)
--#define	VG11_DESTROYIMAGE			(VG11_DESTROYFONT				+ 1)
--#define	VG11_DESTROYMASKLAYER		(VG11_DESTROYIMAGE				+ 1)
--#define	VG11_DESTROYPAINT			(VG11_DESTROYMASKLAYER			+ 1)
--#define	VG11_DESTROYPATH			(VG11_DESTROYPAINT				+ 1)
--#define	VG11_DRAWGLYPH				(VG11_DESTROYPATH				+ 1)
--#define	VG11_DRAWGLYPHS				(VG11_DRAWGLYPH					+ 1)
--#define	VG11_DRAWIMAGE				(VG11_DRAWGLYPHS				+ 1)
--#define	VG11_DRAWPATH				(VG11_DRAWIMAGE					+ 1)
--#define	VG11_FILLMASKLAYER			(VG11_DRAWPATH					+ 1)
--#define	VG11_FINISH					(VG11_FILLMASKLAYER				+ 1)
--#define	VG11_FLUSH					(VG11_FINISH					+ 1)
--#define	VG11_GAUSSIANBLUR			(VG11_FLUSH						+ 1)
--#define	VG11_GETCOLOR				(VG11_GAUSSIANBLUR				+ 1)
--#define	VG11_GETERROR				(VG11_GETCOLOR					+ 1)
--#define	VG11_GETF					(VG11_GETERROR					+ 1)
--#define	VG11_GETFV					(VG11_GETF						+ 1)
--#define	VG11_GETI					(VG11_GETFV						+ 1)
--#define	VG11_GETIMAGESUBDATA		(VG11_GETI						+ 1)
--#define	VG11_GETIV					(VG11_GETIMAGESUBDATA			+ 1)
--#define	VG11_GETMATRIX				(VG11_GETIV						+ 1)
--#define	VG11_GETPAINT				(VG11_GETMATRIX					+ 1)
--#define	VG11_GETPARAMETERF			(VG11_GETPAINT					+ 1)
--#define	VG11_GETPARAMETERFV			(VG11_GETPARAMETERF				+ 1)
--#define	VG11_GETPARAMETERI			(VG11_GETPARAMETERFV			+ 1)
--#define	VG11_GETPARAMETERIV			(VG11_GETPARAMETERI				+ 1)
--#define	VG11_GETPARAMETERVECTORSIZE	(VG11_GETPARAMETERIV			+ 1)
--#define	VG11_GETPARENT				(VG11_GETPARAMETERVECTORSIZE	+ 1)
--#define	VG11_GETPATHCAPABILITIES	(VG11_GETPARENT					+ 1)
--#define	VG11_GETPIXELS				(VG11_GETPATHCAPABILITIES		+ 1)
--#define	VG11_GETSTRING				(VG11_GETPIXELS					+ 1)
--#define	VG11_GETVECTORSIZE			(VG11_GETSTRING					+ 1)
--#define	VG11_HARDWAREQUERY			(VG11_GETVECTORSIZE				+ 1)
--#define	VG11_IMAGESUBDATA			(VG11_HARDWAREQUERY				+ 1)
--#define	VG11_INTERPOLATEPATH		(VG11_IMAGESUBDATA				+ 1)
--#define	VG11_LOADIDENTITY			(VG11_INTERPOLATEPATH			+ 1)
--#define	VG11_LOADMATRIX				(VG11_LOADIDENTITY				+ 1)
--#define	VG11_LOOKUP					(VG11_LOADMATRIX				+ 1)
--#define	VG11_LOOKUPSINGLE			(VG11_LOOKUP					+ 1)
--#define	VG11_MASK					(VG11_LOOKUPSINGLE				+ 1)
--#define	VG11_MODIFYPATHCOORDS		(VG11_MASK						+ 1)
--#define	VG11_MULTMATRIX				(VG11_MODIFYPATHCOORDS			+ 1)
--#define	VG11_PAINTPATTERN			(VG11_MULTMATRIX				+ 1)
--#define	VG11_PATHBOUNDS				(VG11_PAINTPATTERN				+ 1)
--#define	VG11_PATHLENGTH				(VG11_PATHBOUNDS				+ 1)
--#define	VG11_PATHTRANSFORMEDBOUNDS	(VG11_PATHLENGTH				+ 1)
--#define	VG11_POINTALONGPATH			(VG11_PATHTRANSFORMEDBOUNDS		+ 1)
--#define	VG11_READPIXELS				(VG11_POINTALONGPATH			+ 1)
--#define	VG11_REMOVEPATHCAPABILITIES	(VG11_READPIXELS				+ 1)
--#define	VG11_RENDERTOMASK			(VG11_REMOVEPATHCAPABILITIES	+ 1)
--#define	VG11_ROTATE					(VG11_RENDERTOMASK				+ 1)
--#define	VG11_SCALE					(VG11_ROTATE					+ 1)
--#define	VG11_SEPARABLECONVOLVE		(VG11_SCALE						+ 1)
--#define	VG11_SETCOLOR				(VG11_SEPARABLECONVOLVE			+ 1)
--#define	VG11_SETF					(VG11_SETCOLOR					+ 1)
--#define	VG11_SETFV					(VG11_SETF						+ 1)
--#define	VG11_SETGLYPHTOIMAGE		(VG11_SETFV						+ 1)
--#define	VG11_SETGLYPHTOPATH			(VG11_SETGLYPHTOIMAGE			+ 1)
--#define	VG11_SETI					(VG11_SETGLYPHTOPATH			+ 1)
--#define	VG11_SETIV					(VG11_SETI						+ 1)
--#define	VG11_SETPAINT				(VG11_SETIV						+ 1)
--#define	VG11_SETPARAMETERF			(VG11_SETPAINT					+ 1)
--#define	VG11_SETPARAMETERFV			(VG11_SETPARAMETERF				+ 1)
--#define	VG11_SETPARAMETERI			(VG11_SETPARAMETERFV			+ 1)
--#define	VG11_SETPARAMETERIV			(VG11_SETPARAMETERI				+ 1)
--#define	VG11_SETPIXELS				(VG11_SETPARAMETERIV			+ 1)
--#define	VG11_SHEAR					(VG11_SETPIXELS					+ 1)
--#define	VG11_TRANSFORMPATH			(VG11_SHEAR						+ 1)
--#define	VG11_TRANSLATE				(VG11_TRANSFORMPATH				+ 1)
--#define	VG11_WRITEPIXELS			(VG11_TRANSLATE					+ 1)
--#define VG11_CALLS                  (VG11_WRITEPIXELS               + 1)
--#define VG11_DRAWCALLS              (VG11_CALLS                     + 1)
--#define VG11_STATECHANGECALLS       (VG11_DRAWCALLS                 + 1)
--#define VG11_FILLCOUNT              (VG11_STATECHANGECALLS          + 1)
--#define VG11_STROKECOUNT            (VG11_FILLCOUNT                 + 1)
-+#define    ES11_CALLS              151
-+#define    ES11_DRAWCALLS          (ES11_CALLS             + 1)
-+#define    ES11_STATECHANGECALLS   (ES11_DRAWCALLS         + 1)
-+#define    ES11_POINTCOUNT         (ES11_STATECHANGECALLS  + 1)
-+#define    ES11_LINECOUNT          (ES11_POINTCOUNT        + 1)
-+#define    ES11_TRIANGLECOUNT      (ES11_LINECOUNT         + 1)
-+
-+#define    ES20_CALLS              159
-+#define    ES20_DRAWCALLS          (ES20_CALLS             + 1)
-+#define    ES20_STATECHANGECALLS   (ES20_DRAWCALLS         + 1)
-+#define    ES20_POINTCOUNT         (ES20_STATECHANGECALLS  + 1)
-+#define    ES20_LINECOUNT          (ES20_POINTCOUNT        + 1)
-+#define    ES20_TRIANGLECOUNT      (ES20_LINECOUNT         + 1)
-+
-+#define    VG11_CALLS              88
-+#define    VG11_DRAWCALLS          (VG11_CALLS              + 1)
-+#define    VG11_STATECHANGECALLS   (VG11_DRAWCALLS          + 1)
-+#define    VG11_FILLCOUNT          (VG11_STATECHANGECALLS   + 1)
-+#define    VG11_STROKECOUNT        (VG11_FILLCOUNT          + 1)
- /* End of Driver API ID Definitions. */
- 
- /* HAL & MISC IDs. */
--#define HAL_VERTBUFNEWBYTEALLOC		1
--#define HAL_VERTBUFTOTALBYTEALLOC	(HAL_VERTBUFNEWBYTEALLOC 	+ 1)
--#define HAL_VERTBUFNEWOBJALLOC		(HAL_VERTBUFTOTALBYTEALLOC	+ 1)
--#define HAL_VERTBUFTOTALOBJALLOC	(HAL_VERTBUFNEWOBJALLOC		+ 1)
--#define HAL_INDBUFNEWBYTEALLOC		(HAL_VERTBUFTOTALOBJALLOC	+ 1)
--#define HAL_INDBUFTOTALBYTEALLOC	(HAL_INDBUFNEWBYTEALLOC		+ 1)
--#define HAL_INDBUFNEWOBJALLOC		(HAL_INDBUFTOTALBYTEALLOC	+ 1)
--#define HAL_INDBUFTOTALOBJALLOC		(HAL_INDBUFNEWOBJALLOC		+ 1)
--#define HAL_TEXBUFNEWBYTEALLOC		(HAL_INDBUFTOTALOBJALLOC	+ 1)
--#define HAL_TEXBUFTOTALBYTEALLOC	(HAL_TEXBUFNEWBYTEALLOC		+ 1)
--#define HAL_TEXBUFNEWOBJALLOC		(HAL_TEXBUFTOTALBYTEALLOC	+ 1)
--#define HAL_TEXBUFTOTALOBJALLOC		(HAL_TEXBUFNEWOBJALLOC		+ 1)
--
--#define GPU_CYCLES		1
--#define GPU_READ64BYTE	(GPU_CYCLES		+ 1)
--#define GPU_WRITE64BYTE	(GPU_READ64BYTE	+ 1)
--#define GPU_TOTALCYCLES	(GPU_WRITE64BYTE	+ 1)
--#define GPU_IDLECYCLES	(GPU_TOTALCYCLES	+ 1)
--
--#define VS_INSTCOUNT			1
--#define VS_BRANCHINSTCOUNT		(VS_INSTCOUNT		+ 1)
--#define VS_TEXLDINSTCOUNT		(VS_BRANCHINSTCOUNT	+ 1)
--#define VS_RENDEREDVERTCOUNT	(VS_TEXLDINSTCOUNT	+ 1)
--
--#define PS_INSTCOUNT			1
--#define PS_BRANCHINSTCOUNT		(PS_INSTCOUNT		+ 1)
--#define PS_TEXLDINSTCOUNT		(PS_BRANCHINSTCOUNT	+ 1)
--#define PS_RENDEREDPIXCOUNT		(PS_TEXLDINSTCOUNT	+ 1)
--
--#define PA_INVERTCOUNT		1
--#define	PA_INPRIMCOUNT		(PA_INVERTCOUNT		+ 1)
--#define PA_OUTPRIMCOUNT		(PA_INPRIMCOUNT		+ 1)
--#define PA_DEPTHCLIPCOUNT	(PA_OUTPRIMCOUNT	+ 1)
--#define PA_TRIVIALREJCOUNT	(PA_DEPTHCLIPCOUNT	+ 1)
--#define PA_CULLCOUNT		(PA_TRIVIALREJCOUNT	+ 1)
--
--#define SE_TRIANGLECOUNT	1
--#define SE_LINECOUNT		(SE_TRIANGLECOUNT	+ 1)
--
--#define RA_VALIDPIXCOUNT		1
--#define RA_TOTALQUADCOUNT		(RA_VALIDPIXCOUNT		+ 1)
--#define RA_VALIDQUADCOUNTEZ		(RA_TOTALQUADCOUNT		+ 1)
--#define RA_TOTALPRIMCOUNT		(RA_VALIDQUADCOUNTEZ	+ 1)
--#define RA_PIPECACHEMISSCOUNT	(RA_TOTALPRIMCOUNT		+ 1)
--#define RA_PREFCACHEMISSCOUNT	(RA_PIPECACHEMISSCOUNT	+ 1)
--#define RA_EEZCULLCOUNT			(RA_PREFCACHEMISSCOUNT	+ 1)
--
--#define TX_TOTBILINEARREQ		1
--#define TX_TOTTRILINEARREQ		(TX_TOTBILINEARREQ		+ 1)
--#define TX_TOTDISCARDTEXREQ		(TX_TOTTRILINEARREQ		+ 1)
--#define TX_TOTTEXREQ			(TX_TOTDISCARDTEXREQ	+ 1)
--#define TX_MEMREADCOUNT			(TX_TOTTEXREQ			+ 1)
--#define TX_MEMREADIN8BCOUNT		(TX_MEMREADCOUNT		+ 1)
--#define TX_CACHEMISSCOUNT		(TX_MEMREADIN8BCOUNT	+ 1)
--#define TX_CACHEHITTEXELCOUNT	(TX_CACHEMISSCOUNT		+ 1)
--#define TX_CACHEMISSTEXELCOUNT	(TX_CACHEHITTEXELCOUNT	+ 1)
--
--#define PE_KILLEDBYCOLOR	1
--#define PE_KILLEDBYDEPTH	(PE_KILLEDBYCOLOR	+ 1)
--#define PE_DRAWNBYCOLOR		(PE_KILLEDBYDEPTH	+ 1)
--#define PE_DRAWNBYDEPTH		(PE_DRAWNBYCOLOR	+ 1)
--
--#define MC_READREQ8BPIPE	1
--#define MC_READREQ8BIP		(MC_READREQ8BPIPE	+ 1)
--#define MC_WRITEREQ8BPIPE	(MC_READREQ8BIP		+ 1)
--
--#define AXI_READREQSTALLED		1
--#define AXI_WRITEREQSTALLED		(AXI_READREQSTALLED		+ 1)
--#define AXI_WRITEDATASTALLED	(AXI_WRITEREQSTALLED	+ 1)
--
--#define PVS_INSTRCOUNT		1
--#define PVS_ALUINSTRCOUNT	(PVS_INSTRCOUNT		+ 1)
--#define PVS_TEXINSTRCOUNT	(PVS_ALUINSTRCOUNT	+ 1)
--#define PVS_ATTRIBCOUNT		(PVS_TEXINSTRCOUNT	+ 1)
--#define PVS_UNIFORMCOUNT	(PVS_ATTRIBCOUNT	+ 1)
--#define PVS_FUNCTIONCOUNT	(PVS_UNIFORMCOUNT	+ 1)
--
--#define PPS_INSTRCOUNT		1
--#define PPS_ALUINSTRCOUNT	(PPS_INSTRCOUNT		+ 1)
--#define PPS_TEXINSTRCOUNT	(PPS_ALUINSTRCOUNT	+ 1)
--#define PPS_ATTRIBCOUNT		(PPS_TEXINSTRCOUNT	+ 1)
--#define PPS_UNIFORMCOUNT	(PPS_ATTRIBCOUNT	+ 1)
--#define PPS_FUNCTIONCOUNT 	(PPS_UNIFORMCOUNT	+ 1)
-+#define HAL_VERTBUFNEWBYTEALLOC    1
-+#define HAL_VERTBUFTOTALBYTEALLOC  (HAL_VERTBUFNEWBYTEALLOC     + 1)
-+#define HAL_VERTBUFNEWOBJALLOC     (HAL_VERTBUFTOTALBYTEALLOC   + 1)
-+#define HAL_VERTBUFTOTALOBJALLOC   (HAL_VERTBUFNEWOBJALLOC      + 1)
-+#define HAL_INDBUFNEWBYTEALLOC     (HAL_VERTBUFTOTALOBJALLOC    + 1)
-+#define HAL_INDBUFTOTALBYTEALLOC   (HAL_INDBUFNEWBYTEALLOC      + 1)
-+#define HAL_INDBUFNEWOBJALLOC      (HAL_INDBUFTOTALBYTEALLOC    + 1)
-+#define HAL_INDBUFTOTALOBJALLOC    (HAL_INDBUFNEWOBJALLOC       + 1)
-+#define HAL_TEXBUFNEWBYTEALLOC     (HAL_INDBUFTOTALOBJALLOC     + 1)
-+#define HAL_TEXBUFTOTALBYTEALLOC   (HAL_TEXBUFNEWBYTEALLOC      + 1)
-+#define HAL_TEXBUFNEWOBJALLOC      (HAL_TEXBUFTOTALBYTEALLOC    + 1)
-+#define HAL_TEXBUFTOTALOBJALLOC    (HAL_TEXBUFNEWOBJALLOC       + 1)
-+
-+#define GPU_CYCLES           1
-+#define GPU_READ64BYTE       (GPU_CYCLES         + 1)
-+#define GPU_WRITE64BYTE      (GPU_READ64BYTE     + 1)
-+#define GPU_TOTALCYCLES      (GPU_WRITE64BYTE    + 1)
-+#define GPU_IDLECYCLES       (GPU_TOTALCYCLES    + 1)
-+
-+#define VS_INSTCOUNT          1
-+#define VS_BRANCHINSTCOUNT    (VS_INSTCOUNT          + 1)
-+#define VS_TEXLDINSTCOUNT     (VS_BRANCHINSTCOUNT    + 1)
-+#define VS_RENDEREDVERTCOUNT  (VS_TEXLDINSTCOUNT     + 1)
-+#define VS_SOURCE             (VS_RENDEREDVERTCOUNT  + 1)
-+
-+#define PS_INSTCOUNT          1
-+#define PS_BRANCHINSTCOUNT    (PS_INSTCOUNT          + 1)
-+#define PS_TEXLDINSTCOUNT     (PS_BRANCHINSTCOUNT    + 1)
-+#define PS_RENDEREDPIXCOUNT   (PS_TEXLDINSTCOUNT     + 1)
-+#define PS_SOURCE             (PS_RENDEREDPIXCOUNT   + 1)
-+
-+#define PA_INVERTCOUNT        1
-+#define PA_INPRIMCOUNT        (PA_INVERTCOUNT      + 1)
-+#define PA_OUTPRIMCOUNT       (PA_INPRIMCOUNT      + 1)
-+#define PA_DEPTHCLIPCOUNT     (PA_OUTPRIMCOUNT     + 1)
-+#define PA_TRIVIALREJCOUNT    (PA_DEPTHCLIPCOUNT   + 1)
-+#define PA_CULLCOUNT          (PA_TRIVIALREJCOUNT  + 1)
-+
-+#define SE_TRIANGLECOUNT      1
-+#define SE_LINECOUNT          (SE_TRIANGLECOUNT    + 1)
-+
-+#define RA_VALIDPIXCOUNT      1
-+#define RA_TOTALQUADCOUNT     (RA_VALIDPIXCOUNT      + 1)
-+#define RA_VALIDQUADCOUNTEZ   (RA_TOTALQUADCOUNT     + 1)
-+#define RA_TOTALPRIMCOUNT     (RA_VALIDQUADCOUNTEZ   + 1)
-+#define RA_PIPECACHEMISSCOUNT (RA_TOTALPRIMCOUNT     + 1)
-+#define RA_PREFCACHEMISSCOUNT (RA_PIPECACHEMISSCOUNT + 1)
-+#define RA_EEZCULLCOUNT       (RA_PREFCACHEMISSCOUNT + 1)
-+
-+#define TX_TOTBILINEARREQ     1
-+#define TX_TOTTRILINEARREQ    (TX_TOTBILINEARREQ      + 1)
-+#define TX_TOTDISCARDTEXREQ   (TX_TOTTRILINEARREQ     + 1)
-+#define TX_TOTTEXREQ          (TX_TOTDISCARDTEXREQ    + 1)
-+#define TX_MEMREADCOUNT       (TX_TOTTEXREQ           + 1)
-+#define TX_MEMREADIN8BCOUNT   (TX_MEMREADCOUNT        + 1)
-+#define TX_CACHEMISSCOUNT     (TX_MEMREADIN8BCOUNT    + 1)
-+#define TX_CACHEHITTEXELCOUNT (TX_CACHEMISSCOUNT      + 1)
-+#define TX_CACHEMISSTEXELCOUNT (TX_CACHEHITTEXELCOUNT + 1)
-+
-+#define PE_KILLEDBYCOLOR      1
-+#define PE_KILLEDBYDEPTH      (PE_KILLEDBYCOLOR    + 1)
-+#define PE_DRAWNBYCOLOR       (PE_KILLEDBYDEPTH    + 1)
-+#define PE_DRAWNBYDEPTH       (PE_DRAWNBYCOLOR     + 1)
-+
-+#define MC_READREQ8BPIPE      1
-+#define MC_READREQ8BIP        (MC_READREQ8BPIPE    + 1)
-+#define MC_WRITEREQ8BPIPE     (MC_READREQ8BIP      + 1)
-+
-+#define AXI_READREQSTALLED    1
-+#define AXI_WRITEREQSTALLED   (AXI_READREQSTALLED  + 1)
-+#define AXI_WRITEDATASTALLED  (AXI_WRITEREQSTALLED + 1)
-+
-+#define PVS_INSTRCOUNT        1
-+#define PVS_ALUINSTRCOUNT     (PVS_INSTRCOUNT      + 1)
-+#define PVS_TEXINSTRCOUNT     (PVS_ALUINSTRCOUNT   + 1)
-+#define PVS_ATTRIBCOUNT       (PVS_TEXINSTRCOUNT   + 1)
-+#define PVS_UNIFORMCOUNT      (PVS_ATTRIBCOUNT     + 1)
-+#define PVS_FUNCTIONCOUNT     (PVS_UNIFORMCOUNT    + 1)
-+#define PVS_SOURCE            (PVS_FUNCTIONCOUNT   + 1)
-+
-+#define PPS_INSTRCOUNT       1
-+#define PPS_ALUINSTRCOUNT    (PPS_INSTRCOUNT       + 1)
-+#define PPS_TEXINSTRCOUNT    (PPS_ALUINSTRCOUNT    + 1)
-+#define PPS_ATTRIBCOUNT      (PPS_TEXINSTRCOUNT    + 1)
-+#define PPS_UNIFORMCOUNT     (PPS_ATTRIBCOUNT      + 1)
-+#define PPS_FUNCTIONCOUNT    (PPS_UNIFORMCOUNT     + 1)
-+#define PPS_SOURCE           (PPS_FUNCTIONCOUNT    + 1)
- /* End of MISC Counter IDs. */
- 
- #ifdef gcdNEW_PROFILER_FILE
-@@ -578,8 +184,8 @@ extern "C" {
- #define VPG_ES11_TIME   0x170000
- #define VPG_ES20_TIME   0x180000
- #define VPG_FRAME       0x190000
--#define VPG_ES11_DRAW 0x200000
--#define VPG_ES20_DRAW 0x210000
-+#define VPG_ES11_DRAW   0x200000
-+#define VPG_ES20_DRAW   0x210000
- #define VPG_END         0xff0000
- 
- /* Info. */
-@@ -592,7 +198,7 @@ extern "C" {
- #define VPC_INFOSCREENSIZE      (VPC_INFODRIVERMODE + 1)
- 
- /* Counter Constants. */
--#define VPC_ELAPSETIME  		(VPG_TIME + 1)
-+#define VPC_ELAPSETIME          (VPG_TIME + 1)
- #define VPC_CPUTIME             (VPC_ELAPSETIME + 1)
- 
- #define VPC_MEMMAXRES           (VPG_MEM + 1)
-@@ -600,404 +206,28 @@ extern "C" {
- #define VPC_MEMUNSHAREDDATA     (VPC_MEMSHARED + 1)
- #define VPC_MEMUNSHAREDSTACK    (VPC_MEMUNSHAREDDATA + 1)
- 
--/* OpenGL ES11 Counters. */
--#define	VPC_ES11ACTIVETEXTURE			(VPG_ES11 +	ES11_ACTIVETEXTURE)
--#define	VPC_ES11ALPHAFUNC				(VPG_ES11 +	ES11_ALPHAFUNC)
--#define	VPC_ES11ALPHAFUNCX				(VPG_ES11 +	ES11_ALPHAFUNCX)
--#define	VPC_ES11BINDBUFFER				(VPG_ES11 +	ES11_BINDBUFFER)
--#define	VPC_ES11BINDTEXTURE				(VPG_ES11 +	ES11_BINDTEXTURE)
--#define	VPC_ES11BLENDFUNC				(VPG_ES11 +	ES11_BLENDFUNC)
--#define	VPC_ES11BUFFERDATA				(VPG_ES11 +	ES11_BUFFERDATA)
--#define	VPC_ES11BUFFERSUBDATA			(VPG_ES11 +	ES11_BUFFERSUBDATA)
--#define	VPC_ES11CLEAR					(VPG_ES11 +	ES11_CLEAR)
--#define	VPC_ES11CLEARCOLOR				(VPG_ES11 +	ES11_CLEARCOLOR)
--#define	VPC_ES11CLEARCOLORX				(VPG_ES11 +	ES11_CLEARCOLORX)
--#define	VPC_ES11CLEARDEPTHF				(VPG_ES11 +	ES11_CLEARDEPTHF)
--#define	VPC_ES11CLEARDEPTHX				(VPG_ES11 +	ES11_CLEARDEPTHX)
--#define	VPC_ES11CLEARSTENCIL			(VPG_ES11 +	ES11_CLEARSTENCIL)
--#define	VPC_ES11CLIENTACTIVETEXTURE		(VPG_ES11 +	ES11_CLIENTACTIVETEXTURE)
--#define	VPC_ES11CLIPPLANEF				(VPG_ES11 +	ES11_CLIPPLANEF)
--#define	VPC_ES11CLIPPLANEX				(VPG_ES11 +	ES11_CLIPPLANEX)
--#define	VPC_ES11COLOR4F					(VPG_ES11 +	ES11_COLOR4F)
--#define	VPC_ES11COLOR4UB				(VPG_ES11 +	ES11_COLOR4UB)
--#define	VPC_ES11COLOR4X					(VPG_ES11 +	ES11_COLOR4X)
--#define	VPC_ES11COLORMASK				(VPG_ES11 +	ES11_COLORMASK)
--#define	VPC_ES11COLORPOINTER			(VPG_ES11 +	ES11_COLORPOINTER)
--#define	VPC_ES11COMPRESSEDTEXIMAGE2D	(VPG_ES11 +	ES11_COMPRESSEDTEXIMAGE2D)
--#define	VPC_ES11COMPRESSEDTEXSUBIMAGE2D	(VPG_ES11 +	ES11_COMPRESSEDTEXSUBIMAGE2D)
--#define	VPC_ES11COPYTEXIMAGE2D			(VPG_ES11 +	ES11_COPYTEXIMAGE2D)
--#define	VPC_ES11COPYTEXSUBIMAGE2D		(VPG_ES11 +	ES11_COPYTEXSUBIMAGE2D)
--#define	VPC_ES11CULLFACE				(VPG_ES11 +	ES11_CULLFACE)
--#define	VPC_ES11DELETEBUFFERS			(VPG_ES11 +	ES11_DELETEBUFFERS)
--#define	VPC_ES11DELETETEXTURES			(VPG_ES11 +	ES11_DELETETEXTURES)
--#define	VPC_ES11DEPTHFUNC				(VPG_ES11 +	ES11_DEPTHFUNC)
--#define	VPC_ES11DEPTHMASK				(VPG_ES11 +	ES11_DEPTHMASK)
--#define	VPC_ES11DEPTHRANGEF				(VPG_ES11 +	ES11_DEPTHRANGEF)
--#define	VPC_ES11DEPTHRANGEX				(VPG_ES11 +	ES11_DEPTHRANGEX)
--#define	VPC_ES11DISABLE					(VPG_ES11 +	ES11_DISABLE)
--#define	VPC_ES11DISABLECLIENTSTATE		(VPG_ES11 +	ES11_DISABLECLIENTSTATE)
--#define	VPC_ES11DRAWARRAYS				(VPG_ES11 +	ES11_DRAWARRAYS)
--#define	VPC_ES11DRAWELEMENTS			(VPG_ES11 +	ES11_DRAWELEMENTS)
--#define	VPC_ES11ENABLE					(VPG_ES11 +	ES11_ENABLE)
--#define	VPC_ES11ENABLECLIENTSTATE		(VPG_ES11 +	ES11_ENABLECLIENTSTATE)
--#define	VPC_ES11FINISH					(VPG_ES11 +	ES11_FINISH)
--#define	VPC_ES11FLUSH					(VPG_ES11 +	ES11_FLUSH)
--#define	VPC_ES11FOGF					(VPG_ES11 +	ES11_FOGF)
--#define	VPC_ES11FOGFV					(VPG_ES11 +	ES11_FOGFV)
--#define	VPC_ES11FOGX					(VPG_ES11 +	ES11_FOGX)
--#define	VPC_ES11FOGXV					(VPG_ES11 +	ES11_FOGXV)
--#define	VPC_ES11FRONTFACE				(VPG_ES11 +	ES11_FRONTFACE)
--#define	VPC_ES11FRUSTUMF				(VPG_ES11 +	ES11_FRUSTUMF)
--#define	VPC_ES11FRUSTUMX				(VPG_ES11 +	ES11_FRUSTUMX)
--#define	VPC_ES11GENBUFFERS				(VPG_ES11 +	ES11_GENBUFFERS)
--#define	VPC_ES11GENTEXTURES				(VPG_ES11 +	ES11_GENTEXTURES)
--#define	VPC_ES11GETBOOLEANV				(VPG_ES11 +	ES11_GETBOOLEANV)
--#define	VPC_ES11GETBUFFERPARAMETERIV	(VPG_ES11 +	ES11_GETBUFFERPARAMETERIV)
--#define	VPC_ES11GETCLIPPLANEF			(VPG_ES11 +	ES11_GETCLIPPLANEF)
--#define	VPC_ES11GETCLIPPLANEX			(VPG_ES11 +	ES11_GETCLIPPLANEX)
--#define	VPC_ES11GETERROR				(VPG_ES11 +	ES11_GETERROR)
--#define	VPC_ES11GETFIXEDV				(VPG_ES11 +	ES11_GETFIXEDV)
--#define	VPC_ES11GETFLOATV				(VPG_ES11 +	ES11_GETFLOATV)
--#define	VPC_ES11GETINTEGERV				(VPG_ES11 +	ES11_GETINTEGERV)
--#define	VPC_ES11GETLIGHTFV				(VPG_ES11 +	ES11_GETLIGHTFV)
--#define	VPC_ES11GETLIGHTXV				(VPG_ES11 +	ES11_GETLIGHTXV)
--#define	VPC_ES11GETMATERIALFV			(VPG_ES11 +	ES11_GETMATERIALFV)
--#define	VPC_ES11GETMATERIALXV			(VPG_ES11 +	ES11_GETMATERIALXV)
--#define	VPC_ES11GETPOINTERV				(VPG_ES11 +	ES11_GETPOINTERV)
--#define	VPC_ES11GETSTRING				(VPG_ES11 +	ES11_GETSTRING)
--#define	VPC_ES11GETTEXENVFV				(VPG_ES11 +	ES11_GETTEXENVFV)
--#define	VPC_ES11GETTEXENVIV				(VPG_ES11 +	ES11_GETTEXENVIV)
--#define	VPC_ES11GETTEXENVXV				(VPG_ES11 +	ES11_GETTEXENVXV)
--#define	VPC_ES11GETTEXPARAMETERFV		(VPG_ES11 +	ES11_GETTEXPARAMETERFV)
--#define	VPC_ES11GETTEXPARAMETERIV		(VPG_ES11 +	ES11_GETTEXPARAMETERIV)
--#define	VPC_ES11GETTEXPARAMETERXV		(VPG_ES11 +	ES11_GETTEXPARAMETERXV)
--#define	VPC_ES11HINT					(VPG_ES11 +	ES11_HINT)
--#define	VPC_ES11ISBUFFER				(VPG_ES11 +	ES11_ISBUFFER)
--#define	VPC_ES11ISENABLED				(VPG_ES11 +	ES11_ISENABLED)
--#define	VPC_ES11ISTEXTURE				(VPG_ES11 +	ES11_ISTEXTURE)
--#define	VPC_ES11LIGHTF					(VPG_ES11 +	ES11_LIGHTF)
--#define	VPC_ES11LIGHTFV					(VPG_ES11 +	ES11_LIGHTFV)
--#define	VPC_ES11LIGHTMODELF				(VPG_ES11 +	ES11_LIGHTMODELF)
--#define	VPC_ES11LIGHTMODELFV			(VPG_ES11 +	ES11_LIGHTMODELFV)
--#define	VPC_ES11LIGHTMODELX				(VPG_ES11 +	ES11_LIGHTMODELX)
--#define	VPC_ES11LIGHTMODELXV			(VPG_ES11 +	ES11_LIGHTMODELXV)
--#define	VPC_ES11LIGHTX					(VPG_ES11 +	ES11_LIGHTX)
--#define	VPC_ES11LIGHTXV					(VPG_ES11 +	ES11_LIGHTXV)
--#define	VPC_ES11LINEWIDTH				(VPG_ES11 +	ES11_LINEWIDTH)
--#define	VPC_ES11LINEWIDTHX				(VPG_ES11 +	ES11_LINEWIDTHX)
--#define	VPC_ES11LOADIDENTITY			(VPG_ES11 +	ES11_LOADIDENTITY)
--#define	VPC_ES11LOADMATRIXF				(VPG_ES11 +	ES11_LOADMATRIXF)
--#define	VPC_ES11LOADMATRIXX				(VPG_ES11 +	ES11_LOADMATRIXX)
--#define	VPC_ES11LOGICOP					(VPG_ES11 +	ES11_LOGICOP)
--#define	VPC_ES11MATERIALF				(VPG_ES11 +	ES11_MATERIALF)
--#define	VPC_ES11MATERIALFV				(VPG_ES11 +	ES11_MATERIALFV)
--#define	VPC_ES11MATERIALX				(VPG_ES11 +	ES11_MATERIALX)
--#define	VPC_ES11MATERIALXV				(VPG_ES11 +	ES11_MATERIALXV)
--#define	VPC_ES11MATRIXMODE				(VPG_ES11 +	ES11_MATRIXMODE)
--#define	VPC_ES11MULTITEXCOORD4F			(VPG_ES11 +	ES11_MULTITEXCOORD4F)
--#define	VPC_ES11MULTITEXCOORD4X			(VPG_ES11 +	ES11_MULTITEXCOORD4X)
--#define	VPC_ES11MULTMATRIXF				(VPG_ES11 +	ES11_MULTMATRIXF)
--#define	VPC_ES11MULTMATRIXX				(VPG_ES11 +	ES11_MULTMATRIXX)
--#define	VPC_ES11NORMAL3F				(VPG_ES11 +	ES11_NORMAL3F)
--#define	VPC_ES11NORMAL3X				(VPG_ES11 +	ES11_NORMAL3X)
--#define	VPC_ES11NORMALPOINTER			(VPG_ES11 +	ES11_NORMALPOINTER)
--#define	VPC_ES11ORTHOF					(VPG_ES11 +	ES11_ORTHOF)
--#define	VPC_ES11ORTHOX					(VPG_ES11 +	ES11_ORTHOX)
--#define	VPC_ES11PIXELSTOREI				(VPG_ES11 +	ES11_PIXELSTOREI)
--#define	VPC_ES11POINTPARAMETERF			(VPG_ES11 +	ES11_POINTPARAMETERF)
--#define	VPC_ES11POINTPARAMETERFV		(VPG_ES11 +	ES11_POINTPARAMETERFV)
--#define	VPC_ES11POINTPARAMETERX			(VPG_ES11 +	ES11_POINTPARAMETERX)
--#define	VPC_ES11POINTPARAMETERXV		(VPG_ES11 +	ES11_POINTPARAMETERXV)
--#define	VPC_ES11POINTSIZE				(VPG_ES11 +	ES11_POINTSIZE)
--#define	VPC_ES11POINTSIZEX				(VPG_ES11 +	ES11_POINTSIZEX)
--#define	VPC_ES11POLYGONOFFSET			(VPG_ES11 +	ES11_POLYGONOFFSET)
--#define	VPC_ES11POLYGONOFFSETX			(VPG_ES11 +	ES11_POLYGONOFFSETX)
--#define	VPC_ES11POPMATRIX				(VPG_ES11 +	ES11_POPMATRIX)
--#define	VPC_ES11PUSHMATRIX				(VPG_ES11 +	ES11_PUSHMATRIX)
--#define	VPC_ES11READPIXELS				(VPG_ES11 +	ES11_READPIXELS)
--#define	VPC_ES11ROTATEF					(VPG_ES11 +	ES11_ROTATEF)
--#define	VPC_ES11ROTATEX					(VPG_ES11 +	ES11_ROTATEX)
--#define	VPC_ES11SAMPLECOVERAGE			(VPG_ES11 +	ES11_SAMPLECOVERAGE)
--#define	VPC_ES11SAMPLECOVERAGEX			(VPG_ES11 +	ES11_SAMPLECOVERAGEX)
--#define	VPC_ES11SCALEF					(VPG_ES11 +	ES11_SCALEF)
--#define	VPC_ES11SCALEX					(VPG_ES11 +	ES11_SCALEX)
--#define	VPC_ES11SCISSOR					(VPG_ES11 +	ES11_SCISSOR)
--#define	VPC_ES11SHADEMODEL				(VPG_ES11 +	ES11_SHADEMODEL)
--#define	VPC_ES11STENCILFUNC				(VPG_ES11 +	ES11_STENCILFUNC)
--#define	VPC_ES11STENCILMASK				(VPG_ES11 +	ES11_STENCILMASK)
--#define	VPC_ES11STENCILOP				(VPG_ES11 +	ES11_STENCILOP)
--#define	VPC_ES11TEXCOORDPOINTER			(VPG_ES11 +	ES11_TEXCOORDPOINTER)
--#define	VPC_ES11TEXENVF					(VPG_ES11 +	ES11_TEXENVF)
--#define	VPC_ES11TEXENVFV				(VPG_ES11 +	ES11_TEXENVFV)
--#define	VPC_ES11TEXENVI					(VPG_ES11 +	ES11_TEXENVI)
--#define	VPC_ES11TEXENVIV				(VPG_ES11 +	ES11_TEXENVIV)
--#define	VPC_ES11TEXENVX					(VPG_ES11 +	ES11_TEXENVX)
--#define	VPC_ES11TEXENVXV				(VPG_ES11 +	ES11_TEXENVXV)
--#define	VPC_ES11TEXIMAGE2D				(VPG_ES11 +	ES11_TEXIMAGE2D)
--#define	VPC_ES11TEXPARAMETERF			(VPG_ES11 +	ES11_TEXPARAMETERF)
--#define	VPC_ES11TEXPARAMETERFV			(VPG_ES11 +	ES11_TEXPARAMETERFV)
--#define	VPC_ES11TEXPARAMETERI			(VPG_ES11 +	ES11_TEXPARAMETERI)
--#define	VPC_ES11TEXPARAMETERIV			(VPG_ES11 +	ES11_TEXPARAMETERIV)
--#define	VPC_ES11TEXPARAMETERX			(VPG_ES11 +	ES11_TEXPARAMETERX)
--#define	VPC_ES11TEXPARAMETERXV			(VPG_ES11 +	ES11_TEXPARAMETERXV)
--#define	VPC_ES11TEXSUBIMAGE2D			(VPG_ES11 +	ES11_TEXSUBIMAGE2D)
--#define	VPC_ES11TRANSLATEF				(VPG_ES11 +	ES11_TRANSLATEF)
--#define	VPC_ES11TRANSLATEX				(VPG_ES11 +	ES11_TRANSLATEX)
--#define	VPC_ES11VERTEXPOINTER			(VPG_ES11 +	ES11_VERTEXPOINTER)
--#define	VPC_ES11VIEWPORT				(VPG_ES11 +	ES11_VIEWPORT)
- /* OpenGL ES11 Statics Counter IDs. */
--#define	VPC_ES11CALLS					(VPG_ES11 +	ES11_CALLS)
--#define	VPC_ES11DRAWCALLS				(VPG_ES11 +	ES11_DRAWCALLS)
--#define	VPC_ES11STATECHANGECALLS		(VPG_ES11 +	ES11_STATECHANGECALLS)
--#define	VPC_ES11POINTCOUNT				(VPG_ES11 +	ES11_POINTCOUNT)
--#define	VPC_ES11LINECOUNT				(VPG_ES11 +	ES11_LINECOUNT)
--#define	VPC_ES11TRIANGLECOUNT			(VPG_ES11 +	ES11_TRIANGLECOUNT)
--
--/* OpenGLES 2.x */
--#define	VPC_ES20ACTIVETEXTURE						(VPG_ES20 +	ES20_ACTIVETEXTURE)
--#define	VPC_ES20ATTACHSHADER						(VPG_ES20 +	ES20_ATTACHSHADER)
--#define	VPC_ES20BINDATTRIBLOCATION					(VPG_ES20 +	ES20_BINDATTRIBLOCATION)
--#define	VPC_ES20BINDBUFFER							(VPG_ES20 +	ES20_BINDBUFFER)
--#define	VPC_ES20BINDFRAMEBUFFER						(VPG_ES20 +	ES20_BINDFRAMEBUFFER)
--#define	VPC_ES20BINDRENDERBUFFER					(VPG_ES20 +	ES20_BINDRENDERBUFFER)
--#define	VPC_ES20BINDTEXTURE							(VPG_ES20 +	ES20_BINDTEXTURE)
--#define	VPC_ES20BLENDCOLOR							(VPG_ES20 +	ES20_BLENDCOLOR)
--#define	VPC_ES20BLENDEQUATION						(VPG_ES20 +	ES20_BLENDEQUATION)
--#define	VPC_ES20BLENDEQUATIONSEPARATE				(VPG_ES20 +	ES20_BLENDEQUATIONSEPARATE)
--#define	VPC_ES20BLENDFUNC							(VPG_ES20 +	ES20_BLENDFUNC)
--#define	VPC_ES20BLENDFUNCSEPARATE					(VPG_ES20 +	ES20_BLENDFUNCSEPARATE)
--#define	VPC_ES20BUFFERDATA							(VPG_ES20 +	ES20_BUFFERDATA)
--#define	VPC_ES20BUFFERSUBDATA						(VPG_ES20 +	ES20_BUFFERSUBDATA)
--#define	VPC_ES20CHECKFRAMEBUFFERSTATUS				(VPG_ES20 +	ES20_CHECKFRAMEBUFFERSTATUS)
--#define	VPC_ES20CLEAR								(VPG_ES20 +	ES20_CLEAR)
--#define	VPC_ES20CLEARCOLOR							(VPG_ES20 +	ES20_CLEARCOLOR)
--#define	VPC_ES20CLEARDEPTHF							(VPG_ES20 +	ES20_CLEARDEPTHF)
--#define	VPC_ES20CLEARSTENCIL						(VPG_ES20 +	ES20_CLEARSTENCIL)
--#define	VPC_ES20COLORMASK							(VPG_ES20 +	ES20_COLORMASK)
--#define	VPC_ES20COMPILESHADER						(VPG_ES20 +	ES20_COMPILESHADER)
--#define	VPC_ES20COMPRESSEDTEXIMAGE2D				(VPG_ES20 +	ES20_COMPRESSEDTEXIMAGE2D)
--#define	VPC_ES20COMPRESSEDTEXSUBIMAGE2D				(VPG_ES20 +	ES20_COMPRESSEDTEXSUBIMAGE2D)
--#define	VPC_ES20COPYTEXIMAGE2D						(VPG_ES20 +	ES20_COPYTEXIMAGE2D)
--#define	VPC_ES20COPYTEXSUBIMAGE2D					(VPG_ES20 +	ES20_COPYTEXSUBIMAGE2D)
--#define	VPC_ES20CREATEPROGRAM						(VPG_ES20 +	ES20_CREATEPROGRAM)
--#define	VPC_ES20CREATESHADER						(VPG_ES20 +	ES20_CREATESHADER)
--#define	VPC_ES20CULLFACE							(VPG_ES20 +	ES20_CULLFACE)
--#define	VPC_ES20DELETEBUFFERS						(VPG_ES20 +	ES20_DELETEBUFFERS)
--#define	VPC_ES20DELETEFRAMEBUFFERS					(VPG_ES20 +	ES20_DELETEFRAMEBUFFERS)
--#define	VPC_ES20DELETEPROGRAM						(VPG_ES20 +	ES20_DELETEPROGRAM)
--#define	VPC_ES20DELETERENDERBUFFERS					(VPG_ES20 +	ES20_DELETERENDERBUFFERS)
--#define	VPC_ES20DELETESHADER						(VPG_ES20 +	ES20_DELETESHADER)
--#define	VPC_ES20DELETETEXTURES						(VPG_ES20 +	ES20_DELETETEXTURES)
--#define	VPC_ES20DEPTHFUNC							(VPG_ES20 +	ES20_DEPTHFUNC)
--#define	VPC_ES20DEPTHMASK							(VPG_ES20 +	ES20_DEPTHMASK)
--#define	VPC_ES20DEPTHRANGEF							(VPG_ES20 +	ES20_DEPTHRANGEF)
--#define	VPC_ES20DETACHSHADER						(VPG_ES20 +	ES20_DETACHSHADER)
--#define	VPC_ES20DISABLE								(VPG_ES20 +	ES20_DISABLE)
--#define	VPC_ES20DISABLEVERTEXATTRIBARRAY			(VPG_ES20 +	ES20_DISABLEVERTEXATTRIBARRAY)
--#define	VPC_ES20DRAWARRAYS							(VPG_ES20 +	ES20_DRAWARRAYS)
--#define	VPC_ES20DRAWELEMENTS						(VPG_ES20 +	ES20_DRAWELEMENTS)
--#define	VPC_ES20ENABLE								(VPG_ES20 +	ES20_ENABLE)
--#define	VPC_ES20ENABLEVERTEXATTRIBARRAY				(VPG_ES20 +	ES20_ENABLEVERTEXATTRIBARRAY)
--#define	VPC_ES20FINISH								(VPG_ES20 +	ES20_FINISH)
--#define	VPC_ES20FLUSH								(VPG_ES20 +	ES20_FLUSH)
--#define	VPC_ES20FRAMEBUFFERRENDERBUFFER				(VPG_ES20 +	ES20_FRAMEBUFFERRENDERBUFFER)
--#define	VPC_ES20FRAMEBUFFERTEXTURE2D				(VPG_ES20 +	ES20_FRAMEBUFFERTEXTURE2D)
--#define	VPC_ES20FRONTFACE							(VPG_ES20 +	ES20_FRONTFACE)
--#define	VPC_ES20GENBUFFERS							(VPG_ES20 +	ES20_GENBUFFERS)
--#define	VPC_ES20GENERATEMIPMAP						(VPG_ES20 +	ES20_GENERATEMIPMAP)
--#define	VPC_ES20GENFRAMEBUFFERS						(VPG_ES20 +	ES20_GENFRAMEBUFFERS)
--#define	VPC_ES20GENRENDERBUFFERS					(VPG_ES20 +	ES20_GENRENDERBUFFERS)
--#define	VPC_ES20GENTEXTURES							(VPG_ES20 +	ES20_GENTEXTURES)
--#define	VPC_ES20GETACTIVEATTRIB						(VPG_ES20 +	ES20_GETACTIVEATTRIB)
--#define	VPC_ES20GETACTIVEUNIFORM					(VPG_ES20 +	ES20_GETACTIVEUNIFORM)
--#define	VPC_ES20GETATTACHEDSHADERS					(VPG_ES20 +	ES20_GETATTACHEDSHADERS)
--#define	VPC_ES20GETATTRIBLOCATION					(VPG_ES20 +	ES20_GETATTRIBLOCATION)
--#define	VPC_ES20GETBOOLEANV							(VPG_ES20 +	ES20_GETBOOLEANV)
--#define	VPC_ES20GETBUFFERPARAMETERIV				(VPG_ES20 +	ES20_GETBUFFERPARAMETERIV)
--#define	VPC_ES20GETERROR							(VPG_ES20 +	ES20_GETERROR)
--#define	VPC_ES20GETFLOATV							(VPG_ES20 +	ES20_GETFLOATV)
--#define	VPC_ES20GETFRAMEBUFFERATTACHMENTPARAMETERIV	(VPG_ES20 +	ES20_GETFRAMEBUFFERATTACHMENTPARAMETERIV)
--#define	VPC_ES20GETINTEGERV							(VPG_ES20 +	ES20_GETINTEGERV)
--#define	VPC_ES20GETPROGRAMIV						(VPG_ES20 +	ES20_GETPROGRAMIV)
--#define	VPC_ES20GETPROGRAMINFOLOG					(VPG_ES20 +	ES20_GETPROGRAMINFOLOG)
--#define	VPC_ES20GETRENDERBUFFERPARAMETERIV			(VPG_ES20 +	ES20_GETRENDERBUFFERPARAMETERIV)
--#define	VPC_ES20GETSHADERIV							(VPG_ES20 +	ES20_GETSHADERIV)
--#define	VPC_ES20GETSHADERINFOLOG					(VPG_ES20 +	ES20_GETSHADERINFOLOG)
--#define	VPC_ES20GETSHADERPRECISIONFORMAT			(VPG_ES20 +	ES20_GETSHADERPRECISIONFORMAT)
--#define	VPC_ES20GETSHADERSOURCE						(VPG_ES20 +	ES20_GETSHADERSOURCE)
--#define	VPC_ES20GETSTRING							(VPG_ES20 +	ES20_GETSTRING)
--#define	VPC_ES20GETTEXPARAMETERFV					(VPG_ES20 +	ES20_GETTEXPARAMETERFV)
--#define	VPC_ES20GETTEXPARAMETERIV					(VPG_ES20 +	ES20_GETTEXPARAMETERIV)
--#define	VPC_ES20GETUNIFORMFV						(VPG_ES20 +	ES20_GETUNIFORMFV)
--#define	VPC_ES20GETUNIFORMIV						(VPG_ES20 +	ES20_GETUNIFORMIV)
--#define	VPC_ES20GETUNIFORMLOCATION					(VPG_ES20 +	ES20_GETUNIFORMLOCATION)
--#define	VPC_ES20GETVERTEXATTRIBFV					(VPG_ES20 +	ES20_GETVERTEXATTRIBFV)
--#define	VPC_ES20GETVERTEXATTRIBIV					(VPG_ES20 +	ES20_GETVERTEXATTRIBIV)
--#define	VPC_ES20GETVERTEXATTRIBPOINTERV				(VPG_ES20 +	ES20_GETVERTEXATTRIBPOINTERV)
--#define	VPC_ES20HINT								(VPG_ES20 +	ES20_HINT)
--#define	VPC_ES20ISBUFFER							(VPG_ES20 +	ES20_ISBUFFER)
--#define	VPC_ES20ISENABLED							(VPG_ES20 +	ES20_ISENABLED)
--#define	VPC_ES20ISFRAMEBUFFER						(VPG_ES20 +	ES20_ISFRAMEBUFFER)
--#define	VPC_ES20ISPROGRAM							(VPG_ES20 +	ES20_ISPROGRAM)
--#define	VPC_ES20ISRENDERBUFFER						(VPG_ES20 +	ES20_ISRENDERBUFFER)
--#define	VPC_ES20ISSHADER							(VPG_ES20 +	ES20_ISSHADER)
--#define	VPC_ES20ISTEXTURE							(VPG_ES20 +	ES20_ISTEXTURE)
--#define	VPC_ES20LINEWIDTH							(VPG_ES20 +	ES20_LINEWIDTH)
--#define	VPC_ES20LINKPROGRAM							(VPG_ES20 +	ES20_LINKPROGRAM)
--#define	VPC_ES20PIXELSTOREI							(VPG_ES20 +	ES20_PIXELSTOREI)
--#define	VPC_ES20POLYGONOFFSET						(VPG_ES20 +	ES20_POLYGONOFFSET)
--#define	VPC_ES20READPIXELS							(VPG_ES20 +	ES20_READPIXELS)
--#define	VPC_ES20RELEASESHADERCOMPILER				(VPG_ES20 +	ES20_RELEASESHADERCOMPILER)
--#define	VPC_ES20RENDERBUFFERSTORAGE					(VPG_ES20 +	ES20_RENDERBUFFERSTORAGE)
--#define	VPC_ES20SAMPLECOVERAGE						(VPG_ES20 +	ES20_SAMPLECOVERAGE)
--#define	VPC_ES20SCISSOR								(VPG_ES20 +	ES20_SCISSOR)
--#define	VPC_ES20SHADERBINARY						(VPG_ES20 +	ES20_SHADERBINARY)
--#define	VPC_ES20SHADERSOURCE						(VPG_ES20 +	ES20_SHADERSOURCE)
--#define	VPC_ES20STENCILFUNC							(VPG_ES20 +	ES20_STENCILFUNC)
--#define	VPC_ES20STENCILFUNCSEPARATE					(VPG_ES20 +	ES20_STENCILFUNCSEPARATE)
--#define	VPC_ES20STENCILMASK							(VPG_ES20 +	ES20_STENCILMASK)
--#define	VPC_ES20STENCILMASKSEPARATE					(VPG_ES20 +	ES20_STENCILMASKSEPARATE)
--#define	VPC_ES20STENCILOP							(VPG_ES20 +	ES20_STENCILOP)
--#define	VPC_ES20STENCILOPSEPARATE					(VPG_ES20 +	ES20_STENCILOPSEPARATE)
--#define	VPC_ES20TEXIMAGE2D							(VPG_ES20 +	ES20_TEXIMAGE2D)
--#define	VPC_ES20TEXPARAMETERF						(VPG_ES20 +	ES20_TEXPARAMETERF)
--#define	VPC_ES20TEXPARAMETERFV						(VPG_ES20 +	ES20_TEXPARAMETERFV)
--#define	VPC_ES20TEXPARAMETERI						(VPG_ES20 +	ES20_TEXPARAMETERI)
--#define	VPC_ES20TEXPARAMETERIV						(VPG_ES20 +	ES20_TEXPARAMETERIV)
--#define	VPC_ES20TEXSUBIMAGE2D						(VPG_ES20 +	ES20_TEXSUBIMAGE2D)
--#define	VPC_ES20UNIFORM1F							(VPG_ES20 +	ES20_UNIFORM1F)
--#define	VPC_ES20UNIFORM1FV							(VPG_ES20 +	ES20_UNIFORM1FV)
--#define	VPC_ES20UNIFORM1I							(VPG_ES20 +	ES20_UNIFORM1I)
--#define	VPC_ES20UNIFORM1IV							(VPG_ES20 +	ES20_UNIFORM1IV)
--#define	VPC_ES20UNIFORM2F							(VPG_ES20 +	ES20_UNIFORM2F)
--#define	VPC_ES20UNIFORM2FV							(VPG_ES20 +	ES20_UNIFORM2FV)
--#define	VPC_ES20UNIFORM2I							(VPG_ES20 +	ES20_UNIFORM2I)
--#define	VPC_ES20UNIFORM2IV							(VPG_ES20 +	ES20_UNIFORM2IV)
--#define	VPC_ES20UNIFORM3F							(VPG_ES20 +	ES20_UNIFORM3F)
--#define	VPC_ES20UNIFORM3FV							(VPG_ES20 +	ES20_UNIFORM3FV)
--#define	VPC_ES20UNIFORM3I							(VPG_ES20 +	ES20_UNIFORM3I)
--#define	VPC_ES20UNIFORM3IV							(VPG_ES20 +	ES20_UNIFORM3IV)
--#define	VPC_ES20UNIFORM4F							(VPG_ES20 +	ES20_UNIFORM4F)
--#define	VPC_ES20UNIFORM4FV							(VPG_ES20 +	ES20_UNIFORM4FV)
--#define	VPC_ES20UNIFORM4I							(VPG_ES20 +	ES20_UNIFORM4I)
--#define	VPC_ES20UNIFORM4IV							(VPG_ES20 +	ES20_UNIFORM4IV)
--#define	VPC_ES20UNIFORMMATRIX2FV					(VPG_ES20 +	ES20_UNIFORMMATRIX2FV)
--#define	VPC_ES20UNIFORMMATRIX3FV					(VPG_ES20 +	ES20_UNIFORMMATRIX3FV)
--#define	VPC_ES20UNIFORMMATRIX4FV					(VPG_ES20 +	ES20_UNIFORMMATRIX4FV)
--#define	VPC_ES20USEPROGRAM							(VPG_ES20 +	ES20_USEPROGRAM)
--#define	VPC_ES20VALIDATEPROGRAM						(VPG_ES20 +	ES20_VALIDATEPROGRAM)
--#define	VPC_ES20VERTEXATTRIB1F						(VPG_ES20 +	ES20_VERTEXATTRIB1F)
--#define	VPC_ES20VERTEXATTRIB1FV						(VPG_ES20 +	ES20_VERTEXATTRIB1FV)
--#define	VPC_ES20VERTEXATTRIB2F						(VPG_ES20 +	ES20_VERTEXATTRIB2F)
--#define	VPC_ES20VERTEXATTRIB2FV						(VPG_ES20 +	ES20_VERTEXATTRIB2FV)
--#define	VPC_ES20VERTEXATTRIB3F						(VPG_ES20 +	ES20_VERTEXATTRIB3F)
--#define	VPC_ES20VERTEXATTRIB3FV						(VPG_ES20 +	ES20_VERTEXATTRIB3FV)
--#define	VPC_ES20VERTEXATTRIB4F						(VPG_ES20 +	ES20_VERTEXATTRIB4F)
--#define	VPC_ES20VERTEXATTRIB4FV						(VPG_ES20 +	ES20_VERTEXATTRIB4FV)
--#define	VPC_ES20VERTEXATTRIBPOINTER					(VPG_ES20 +	ES20_VERTEXATTRIBPOINTER)
--#define	VPC_ES20VIEWPORT							(VPG_ES20 +	ES20_VIEWPORT)
-+#define    VPC_ES11CALLS            (VPG_ES11 +    ES11_CALLS)
-+#define    VPC_ES11DRAWCALLS        (VPG_ES11 +    ES11_DRAWCALLS)
-+#define    VPC_ES11STATECHANGECALLS (VPG_ES11 +    ES11_STATECHANGECALLS)
-+#define    VPC_ES11POINTCOUNT       (VPG_ES11 +    ES11_POINTCOUNT)
-+#define    VPC_ES11LINECOUNT        (VPG_ES11 +    ES11_LINECOUNT)
-+#define    VPC_ES11TRIANGLECOUNT    (VPG_ES11 +    ES11_TRIANGLECOUNT)
-+
- /* OpenGL ES20 Statistics Counter IDs. */
--#define	VPC_ES20CALLS								(VPG_ES20 +	ES20_CALLS)
--#define	VPC_ES20DRAWCALLS							(VPG_ES20 +	ES20_DRAWCALLS)
--#define	VPC_ES20STATECHANGECALLS					(VPG_ES20 +	ES20_STATECHANGECALLS)
--#define	VPC_ES20POINTCOUNT							(VPG_ES20 +	ES20_POINTCOUNT)
--#define	VPC_ES20LINECOUNT							(VPG_ES20 +	ES20_LINECOUNT)
--#define	VPC_ES20TRIANGLECOUNT						(VPG_ES20 +	ES20_TRIANGLECOUNT)
--
--/* VG11 Counters. */
--#define	VPC_VG11APPENDPATH				(VPG_VG11 +	VG11_APPENDPATH)
--#define	VPC_VG11APPENDPATHDATA			(VPG_VG11 +	VG11_APPENDPATHDATA)
--#define	VPC_VG11CHILDIMAGE				(VPG_VG11 +	VG11_CHILDIMAGE)
--#define	VPC_VG11CLEAR					(VPG_VG11 +	VG11_CLEAR)
--#define	VPC_VG11CLEARGLYPH				(VPG_VG11 +	VG11_CLEARGLYPH)
--#define	VPC_VG11CLEARIMAGE				(VPG_VG11 +	VG11_CLEARIMAGE)
--#define	VPC_VG11CLEARPATH				(VPG_VG11 +	VG11_CLEARPATH)
--#define	VPC_VG11COLORMATRIX				(VPG_VG11 +	VG11_COLORMATRIX)
--#define	VPC_VG11CONVOLVE				(VPG_VG11 +	VG11_CONVOLVE)
--#define	VPC_VG11COPYIMAGE				(VPG_VG11 +	VG11_COPYIMAGE)
--#define	VPC_VG11COPYMASK				(VPG_VG11 +	VG11_COPYMASK)
--#define	VPC_VG11COPYPIXELS				(VPG_VG11 +	VG11_COPYPIXELS)
--#define	VPC_VG11CREATEFONT				(VPG_VG11 +	VG11_CREATEFONT)
--#define	VPC_VG11CREATEIMAGE				(VPG_VG11 +	VG11_CREATEIMAGE)
--#define	VPC_VG11CREATEMASKLAYER			(VPG_VG11 +	VG11_CREATEMASKLAYER)
--#define	VPC_VG11CREATEPAINT				(VPG_VG11 +	VG11_CREATEPAINT)
--#define	VPC_VG11CREATEPATH				(VPG_VG11 +	VG11_CREATEPATH)
--#define	VPC_VG11DESTROYFONT				(VPG_VG11 +	VG11_DESTROYFONT)
--#define	VPC_VG11DESTROYIMAGE			(VPG_VG11 +	VG11_DESTROYIMAGE)
--#define	VPC_VG11DESTROYMASKLAYER		(VPG_VG11 +	VG11_DESTROYMASKLAYER)
--#define	VPC_VG11DESTROYPAINT			(VPG_VG11 +	VG11_DESTROYPAINT)
--#define	VPC_VG11DESTROYPATH				(VPG_VG11 +	VG11_DESTROYPATH)
--#define	VPC_VG11DRAWGLYPH				(VPG_VG11 +	VG11_DRAWGLYPH)
--#define	VPC_VG11DRAWGLYPHS				(VPG_VG11 +	VG11_DRAWGLYPHS)
--#define	VPC_VG11DRAWIMAGE				(VPG_VG11 +	VG11_DRAWIMAGE)
--#define	VPC_VG11DRAWPATH				(VPG_VG11 +	VG11_DRAWPATH)
--#define	VPC_VG11FILLMASKLAYER			(VPG_VG11 +	VG11_FILLMASKLAYER)
--#define	VPC_VG11FINISH					(VPG_VG11 +	VG11_FINISH)
--#define	VPC_VG11FLUSH					(VPG_VG11 +	VG11_FLUSH)
--#define	VPC_VG11GAUSSIANBLUR			(VPG_VG11 +	VG11_GAUSSIANBLUR)
--#define	VPC_VG11GETCOLOR				(VPG_VG11 +	VG11_GETCOLOR)
--#define	VPC_VG11GETERROR				(VPG_VG11 +	VG11_GETERROR)
--#define	VPC_VG11GETF					(VPG_VG11 +	VG11_GETF)
--#define	VPC_VG11GETFV					(VPG_VG11 +	VG11_GETFV)
--#define	VPC_VG11GETI					(VPG_VG11 +	VG11_GETI)
--#define	VPC_VG11GETIMAGESUBDATA			(VPG_VG11 +	VG11_GETIMAGESUBDATA)
--#define	VPC_VG11GETIV					(VPG_VG11 +	VG11_GETIV)
--#define	VPC_VG11GETMATRIX				(VPG_VG11 +	VG11_GETMATRIX)
--#define	VPC_VG11GETPAINT				(VPG_VG11 +	VG11_GETPAINT)
--#define	VPC_VG11GETPARAMETERF			(VPG_VG11 +	VG11_GETPARAMETERF)
--#define	VPC_VG11GETPARAMETERFV			(VPG_VG11 +	VG11_GETPARAMETERFV)
--#define	VPC_VG11GETPARAMETERI			(VPG_VG11 +	VG11_GETPARAMETERI)
--#define	VPC_VG11GETPARAMETERIV			(VPG_VG11 +	VG11_GETPARAMETERIV)
--#define	VPC_VG11GETPARAMETERVECTORSIZE	(VPG_VG11 +	VG11_GETPARAMETERVECTORSIZE)
--#define	VPC_VG11GETPARENT				(VPG_VG11 +	VG11_GETPARENT)
--#define	VPC_VG11GETPATHCAPABILITIES		(VPG_VG11 +	VG11_GETPATHCAPABILITIES)
--#define	VPC_VG11GETPIXELS				(VPG_VG11 +	VG11_GETPIXELS)
--#define	VPC_VG11GETSTRING				(VPG_VG11 +	VG11_GETSTRING)
--#define	VPC_VG11GETVECTORSIZE			(VPG_VG11 +	VG11_GETVECTORSIZE)
--#define	VPC_VG11HARDWAREQUERY			(VPG_VG11 +	VG11_HARDWAREQUERY)
--#define	VPC_VG11IMAGESUBDATA			(VPG_VG11 +	VG11_IMAGESUBDATA)
--#define	VPC_VG11INTERPOLATEPATH			(VPG_VG11 +	VG11_INTERPOLATEPATH)
--#define	VPC_VG11LOADIDENTITY			(VPG_VG11 +	VG11_LOADIDENTITY)
--#define	VPC_VG11LOADMATRIX				(VPG_VG11 +	VG11_LOADMATRIX)
--#define	VPC_VG11LOOKUP					(VPG_VG11 +	VG11_LOOKUP)
--#define	VPC_VG11LOOKUPSINGLE			(VPG_VG11 +	VG11_LOOKUPSINGLE)
--#define	VPC_VG11MASK					(VPG_VG11 +	VG11_MASK)
--#define	VPC_VG11MODIFYPATHCOORDS		(VPG_VG11 +	VG11_MODIFYPATHCOORDS)
--#define	VPC_VG11MULTMATRIX				(VPG_VG11 +	VG11_MULTMATRIX)
--#define	VPC_VG11PAINTPATTERN			(VPG_VG11 +	VG11_PAINTPATTERN)
--#define	VPC_VG11PATHBOUNDS				(VPG_VG11 +	VG11_PATHBOUNDS)
--#define	VPC_VG11PATHLENGTH				(VPG_VG11 +	VG11_PATHLENGTH)
--#define	VPC_VG11PATHTRANSFORMEDBOUNDS	(VPG_VG11 +	VG11_PATHTRANSFORMEDBOUNDS)
--#define	VPC_VG11POINTALONGPATH			(VPG_VG11 +	VG11_POINTALONGPATH)
--#define	VPC_VG11READPIXELS				(VPG_VG11 +	VG11_READPIXELS)
--#define	VPC_VG11REMOVEPATHCAPABILITIES	(VPG_VG11 +	VG11_REMOVEPATHCAPABILITIES)
--#define	VPC_VG11RENDERTOMASK			(VPG_VG11 +	VG11_RENDERTOMASK)
--#define	VPC_VG11ROTATE					(VPG_VG11 +	VG11_ROTATE)
--#define	VPC_VG11SCALE					(VPG_VG11 +	VG11_SCALE)
--#define	VPC_VG11SEPARABLECONVOLVE		(VPG_VG11 +	VG11_SEPARABLECONVOLVE)
--#define	VPC_VG11SETCOLOR				(VPG_VG11 +	VG11_SETCOLOR)
--#define	VPC_VG11SETF					(VPG_VG11 +	VG11_SETF)
--#define	VPC_VG11SETFV					(VPG_VG11 +	VG11_SETFV)
--#define	VPC_VG11SETGLYPHTOIMAGE			(VPG_VG11 +	VG11_SETGLYPHTOIMAGE)
--#define	VPC_VG11SETGLYPHTOPATH			(VPG_VG11 +	VG11_SETGLYPHTOPATH)
--#define	VPC_VG11SETI					(VPG_VG11 +	VG11_SETI)
--#define	VPC_VG11SETIV					(VPG_VG11 +	VG11_SETIV)
--#define	VPC_VG11SETPAINT				(VPG_VG11 +	VG11_SETPAINT)
--#define	VPC_VG11SETPARAMETERF			(VPG_VG11 +	VG11_SETPARAMETERF)
--#define	VPC_VG11SETPARAMETERFV			(VPG_VG11 +	VG11_SETPARAMETERFV)
--#define	VPC_VG11SETPARAMETERI			(VPG_VG11 +	VG11_SETPARAMETERI)
--#define	VPC_VG11SETPARAMETERIV			(VPG_VG11 +	VG11_SETPARAMETERIV)
--#define	VPC_VG11SETPIXELS				(VPG_VG11 +	VG11_SETPIXELS)
--#define	VPC_VG11SHEAR					(VPG_VG11 +	VG11_SHEAR)
--#define	VPC_VG11TRANSFORMPATH			(VPG_VG11 +	VG11_TRANSFORMPATH)
--#define	VPC_VG11TRANSLATE				(VPG_VG11 +	VG11_TRANSLATE)
--#define	VPC_VG11WRITEPIXELS				(VPG_VG11 +	VG11_WRITEPIXELS)
-+#define    VPC_ES20CALLS            (VPG_ES20 +    ES20_CALLS)
-+#define    VPC_ES20DRAWCALLS        (VPG_ES20 +    ES20_DRAWCALLS)
-+#define    VPC_ES20STATECHANGECALLS (VPG_ES20 +    ES20_STATECHANGECALLS)
-+#define    VPC_ES20POINTCOUNT       (VPG_ES20 +    ES20_POINTCOUNT)
-+#define    VPC_ES20LINECOUNT        (VPG_ES20 +    ES20_LINECOUNT)
-+#define    VPC_ES20TRIANGLECOUNT    (VPG_ES20 +    ES20_TRIANGLECOUNT)
-+
- /* OpenVG Statistics Counter IDs. */
--#define	VPC_VG11CALLS					(VPG_VG11 +	VG11_CALLS)
--#define	VPC_VG11DRAWCALLS				(VPG_VG11 +	VG11_DRAWCALLS)
--#define	VPC_VG11STATECHANGECALLS		(VPG_VG11 +	VG11_STATECHANGECALLS)
--#define	VPC_VG11FILLCOUNT				(VPG_VG11 +	VG11_FILLCOUNT)
--#define	VPC_VG11STROKECOUNT				(VPG_VG11 +	VG11_STROKECOUNT)
-+#define    VPC_VG11CALLS            (VPG_VG11 +    VG11_CALLS)
-+#define    VPC_VG11DRAWCALLS        (VPG_VG11 +    VG11_DRAWCALLS)
-+#define    VPC_VG11STATECHANGECALLS (VPG_VG11 +    VG11_STATECHANGECALLS)
-+#define    VPC_VG11FILLCOUNT        (VPG_VG11 +    VG11_FILLCOUNT)
-+#define    VPC_VG11STROKECOUNT      (VPG_VG11 +    VG11_STROKECOUNT)
- 
- /* HAL Counters. */
- #define VPC_HALVERTBUFNEWBYTEALLOC      (VPG_HAL + HAL_VERTBUFNEWBYTEALLOC)
-@@ -1018,7 +248,7 @@ extern "C" {
- #define VPC_GPUREAD64BYTE               (VPG_GPU + GPU_READ64BYTE)
- #define VPC_GPUWRITE64BYTE              (VPG_GPU + GPU_WRITE64BYTE)
- #define VPC_GPUTOTALCYCLES              (VPG_GPU + GPU_TOTALCYCLES)
--#define VPC_GPUIDLECYCLES              (VPG_GPU + GPU_IDLECYCLES)
-+#define VPC_GPUIDLECYCLES               (VPG_GPU + GPU_IDLECYCLES)
- 
- /* HW: Shader Counters. */
- #define VPC_VSINSTCOUNT                 (VPG_VS + VS_INSTCOUNT)
-@@ -1026,9 +256,9 @@ extern "C" {
- #define VPC_VSTEXLDINSTCOUNT            (VPG_VS + VS_TEXLDINSTCOUNT)
- #define VPC_VSRENDEREDVERTCOUNT         (VPG_VS + VS_RENDEREDVERTCOUNT)
- /* HW: PS Count. */
--#define VPC_PSINSTCOUNT             	(VPG_PS + PS_INSTCOUNT)
--#define VPC_PSBRANCHINSTCOUNT       	(VPG_PS + PS_BRANCHINSTCOUNT)
--#define VPC_PSTEXLDINSTCOUNT        	(VPG_PS + PS_TEXLDINSTCOUNT)
-+#define VPC_PSINSTCOUNT                 (VPG_PS + PS_INSTCOUNT)
-+#define VPC_PSBRANCHINSTCOUNT           (VPG_PS + PS_BRANCHINSTCOUNT)
-+#define VPC_PSTEXLDINSTCOUNT            (VPG_PS + PS_TEXLDINSTCOUNT)
- #define VPC_PSRENDEREDPIXCOUNT          (VPG_PS + PS_RENDEREDPIXCOUNT)
- 
- 
-@@ -1071,7 +301,7 @@ extern "C" {
- #define VPC_PEDRAWNBYDEPTH              (VPG_PE + PE_DRAWNBYDEPTH)
- 
- /* HW: MC Counters. */
--#define VPC_MCREADREQ8BPIPE            	(VPG_MC + MC_READREQ8BPIPE)
-+#define VPC_MCREADREQ8BPIPE             (VPG_MC + MC_READREQ8BPIPE)
- #define VPC_MCREADREQ8BIP               (VPG_MC + MC_READREQ8BIP)
- #define VPC_MCWRITEREQ8BPIPE            (VPG_MC + MC_WRITEREQ8BPIPE)
- 
-@@ -1087,6 +317,7 @@ extern "C" {
- #define VPC_PVSATTRIBCOUNT          (VPG_PVS + PVS_ATTRIBCOUNT)
- #define VPC_PVSUNIFORMCOUNT         (VPG_PVS + PVS_UNIFORMCOUNT)
- #define VPC_PVSFUNCTIONCOUNT        (VPG_PVS + PVS_FUNCTIONCOUNT)
-+#define VPC_PVSSOURCE               (VPG_PVS + PVS_SOURCE)
- 
- #define VPC_PPSINSTRCOUNT           (VPG_PPS + PPS_INSTRCOUNT)
- #define VPC_PPSALUINSTRCOUNT        (VPG_PPS + PPS_ALUINSTRCOUNT)
-@@ -1094,7 +325,9 @@ extern "C" {
- #define VPC_PPSATTRIBCOUNT          (VPG_PPS + PPS_ATTRIBCOUNT)
- #define VPC_PPSUNIFORMCOUNT         (VPG_PPS + PPS_UNIFORMCOUNT)
- #define VPC_PPSFUNCTIONCOUNT        (VPG_PPS + PPS_FUNCTIONCOUNT)
-+#define VPC_PPSSOURCE               (VPG_PPS + PPS_SOURCE)
- 
-+#define VPC_PROGRAMHANDLE           (VPG_PROG + 1)
- 
- #define VPG_ES20_DRAW_NO  (VPG_ES20_DRAW + 1)
- #define VPG_ES11_DRAW_NO  (VPG_ES11_DRAW + 1)
-@@ -1118,8 +351,8 @@ typedef struct _gcsPROFILER_COUNTERS
- 
-     /* HW vairable counters. */
-     gctUINT32       gpuCyclesCounter;
--	gctUINT32       gpuTotalCyclesCounter;
--	gctUINT32       gpuIdleCyclesCounter;
-+    gctUINT32       gpuTotalCyclesCounter;
-+    gctUINT32       gpuIdleCyclesCounter;
-     gctUINT32       gpuTotalRead64BytesPerFrame;
-     gctUINT32       gpuTotalWrite64BytesPerFrame;
- 
-@@ -1158,7 +391,7 @@ typedef struct _gcsPROFILER_COUNTERS
-     gctUINT32       ra_total_primitive_count;
-     gctUINT32       ra_pipe_cache_miss_counter;
-     gctUINT32       ra_prefetch_cache_miss_counter;
--	gctUINT32       ra_eez_culled_counter;
-+    gctUINT32       ra_eez_culled_counter;
- 
-     /* TX */
-     gctUINT32       tx_total_bilinear_requests;
-@@ -1190,7 +423,7 @@ typedef struct _gcsPROFILER
-     gctBOOL         enableHal;
-     gctBOOL         enableHW;
-     gctBOOL         enableSH;
--	gctBOOL         isSyncMode;
-+    gctBOOL         isSyncMode;
- 
-     gctBOOL         useSocket;
-     gctINT          sockFd;
-@@ -1234,14 +467,17 @@ typedef struct _gcsPROFILER
-     gctUINT32       redundantStateChangeCalls;
- #endif
- 
--	gctUINT32       prevVSInstCount;
--	gctUINT32       prevVSBranchInstCount;
--	gctUINT32       prevVSTexInstCount;
--	gctUINT32       prevVSVertexCount;
--	gctUINT32       prevPSInstCount;
--	gctUINT32       prevPSBranchInstCount;
--	gctUINT32       prevPSTexInstCount;
--	gctUINT32       prevPSPixelCount;
-+    gctUINT32       prevVSInstCount;
-+    gctUINT32       prevVSBranchInstCount;
-+    gctUINT32       prevVSTexInstCount;
-+    gctUINT32       prevVSVertexCount;
-+    gctUINT32       prevPSInstCount;
-+    gctUINT32       prevPSBranchInstCount;
-+    gctUINT32       prevPSTexInstCount;
-+    gctUINT32       prevPSPixelCount;
-+
-+    char*           psSource;
-+    char*           vsSource;
- 
- }
- gcsPROFILER;
-@@ -1315,6 +551,18 @@ gcoPROFILER_Count(
- 	IN gctINT Value
- 	);
- 
-+gceSTATUS
-+gcoPROFILER_ShaderSourceFS(
-+    IN gcoHAL Hal,
-+    IN char* source
-+    );
-+
-+gceSTATUS
-+gcoPROFILER_ShaderSourceVS(
-+    IN gcoHAL Hal,
-+    IN char* source
-+    );
-+
- /* Profile input vertex shader. */
- gceSTATUS
- gcoPROFILER_ShaderVS(
-diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h
-index bc4171e..6e4d830 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h
-+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h
-@@ -568,6 +568,23 @@ gco2D_MonoBlit(
- 	IN gceSURF_FORMAT DestFormat
- 	);
- 
-+gceSTATUS
-+gco2D_MonoBlitEx(
-+    IN gco2D        Engine,
-+    IN gctPOINTER   StreamBits,
-+    IN gctINT32     StreamStride,
-+    IN gctINT32     StreamWidth,
-+    IN gctINT32     StreamHeight,
-+    IN gctINT32     StreamX,
-+    IN gctINT32     StreamY,
-+    IN gctUINT32    FgColor,
-+    IN gctUINT32    BgColor,
-+    IN gcsRECT_PTR  SrcRect,
-+    IN gcsRECT_PTR  DstRect,
-+    IN gctUINT8     FgRop,
-+    IN gctUINT8     BgRop
-+    );
-+
- /* Set kernel size. */
- gceSTATUS
- gco2D_SetKernelSize(
-@@ -942,6 +959,15 @@ gco2D_SetSourceTileStatus(
-     );
- 
- gceSTATUS
-+gco2D_SetTargetTileStatus(
-+    IN gco2D Engine,
-+    IN gce2D_TILE_STATUS_CONFIG TileStatusConfig,
-+    IN gceSURF_FORMAT CompressedFormat,
-+    IN gctUINT32 ClearValue,
-+    IN gctUINT32 GpuAddress
-+    );
-+
-+gceSTATUS
- gco2D_QueryU32(
-     IN gco2D Engine,
-     IN gce2D_QUERY Item,
-@@ -955,6 +981,28 @@ gco2D_SetStateU32(
-     IN gctUINT32 Value
-     );
- 
-+gceSTATUS
-+gco2D_SetStateArrayI32(
-+    IN gco2D Engine,
-+    IN gce2D_STATE State,
-+    IN gctINT32_PTR Array,
-+    IN gctINT32 ArraySize
-+    );
-+
-+gceSTATUS
-+gco2D_SetStateArrayU32(
-+    IN gco2D Engine,
-+    IN gce2D_STATE State,
-+    IN gctUINT32_PTR Array,
-+    IN gctINT32 ArraySize
-+    );
-+
-+gceSTATUS
-+gco2D_SetTargetRect(
-+    IN gco2D Engine,
-+    IN gcsRECT_PTR Rect
-+    );
-+
- #ifdef __cplusplus
- }
- #endif
-diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
-index 5c0877d..14801aa 100644
---- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
-+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
-@@ -128,6 +128,7 @@ typedef int                     gctBOOL;
- typedef gctBOOL *               gctBOOL_PTR;
- 
- typedef int                     gctINT;
-+typedef long                    gctLONG;
- typedef signed char             gctINT8;
- typedef signed short            gctINT16;
- typedef signed int              gctINT32;
-@@ -171,6 +172,7 @@ typedef void *                  gctFILE;
- typedef void *                  gctSIGNAL;
- typedef void *                  gctWINDOW;
- typedef void *                  gctIMAGE;
-+typedef void *                  gctSYNC_POINT;
- 
- typedef void *					gctSEMAPHORE;
- 
-@@ -941,12 +943,19 @@ typedef struct _gcsHAL_FRAME_INFO
-     OUT gctUINT                 readRequests[8];
-     OUT gctUINT                 writeRequests[8];
- 
-+    /* FE counters. */
-+    OUT gctUINT                 drawCount;
-+    OUT gctUINT                 vertexOutCount;
-+    OUT gctUINT                 vertexMissCount;
-+
-     /* 3D counters. */
-     OUT gctUINT                 vertexCount;
-     OUT gctUINT                 primitiveCount;
-     OUT gctUINT                 rejectedPrimitives;
-     OUT gctUINT                 culledPrimitives;
-     OUT gctUINT                 clippedPrimitives;
-+    OUT gctUINT                 droppedPrimitives;
-+    OUT gctUINT                 frustumClippedPrimitives;
-     OUT gctUINT                 outPrimitives;
-     OUT gctUINT                 inPrimitives;
-     OUT gctUINT                 culledQuadCount;
-@@ -964,18 +973,86 @@ typedef struct _gcsHAL_FRAME_INFO
-     OUT gctUINT                 shaderCycles;
-     OUT gctUINT                 vsInstructionCount;
-     OUT gctUINT                 vsTextureCount;
-+    OUT gctUINT                 vsBranchCount;
-+    OUT gctUINT                 vsVertices;
-     OUT gctUINT                 psInstructionCount;
-     OUT gctUINT                 psTextureCount;
-+    OUT gctUINT                 psBranchCount;
-+    OUT gctUINT                 psPixels;
- 
-     /* Texture counters. */
-     OUT gctUINT                 bilinearRequests;
-     OUT gctUINT                 trilinearRequests;
--    OUT gctUINT                 txBytes8;
-+    OUT gctUINT                 txBytes8[2];
-     OUT gctUINT                 txHitCount;
-     OUT gctUINT                 txMissCount;
- }
- gcsHAL_FRAME_INFO;
- 
-+typedef enum _gcePATCH_ID
-+{
-+    gcePATCH_UNKNOWN = 0xFFFFFFFF,
-+
-+    /* Benchmark list*/
-+    gcePATCH_GLB11 = 0x0,
-+    gcePATCH_GLB21,
-+    gcePATCH_GLB25,
-+    gcePATCH_GLB27,
-+
-+    gcePATCH_BM21,
-+    gcePATCH_MM,
-+    gcePATCH_MM06,
-+    gcePATCH_MM07,
-+    gcePATCH_QUADRANT,
-+    gcePATCH_ANTUTU,
-+    gcePATCH_SMARTBENCH,
-+    gcePATCH_JPCT,
-+    gcePATCH_NENAMARK,
-+    gcePATCH_NENAMARK2,
-+    gcePATCH_NEOCORE,
-+    gcePATCH_GLB,
-+    gcePATCH_GB,
-+    gcePATCH_RTESTVA,
-+    gcePATCH_BMX,
-+    gcePATCH_BMGUI,
-+
-+    /* Game list */
-+    gcePATCH_NBA2013,
-+    gcePATCH_BARDTALE,
-+    gcePATCH_BUSPARKING3D,
-+    gcePATCH_FISHBOODLE,
-+    gcePATCH_SUBWAYSURFER,
-+    gcePATCH_HIGHWAYDRIVER,
-+    gcePATCH_PREMIUM,
-+    gcePATCH_RACEILLEGAL,
-+    gcePATCH_BLABLA,
-+    gcePATCH_MEGARUN,
-+    gcePATCH_GALAXYONFIRE2,
-+    gcePATCH_GLOFTR3HM,
-+    gcePATCH_GLOFTSXHM,
-+    gcePATCH_GLOFTF3HM,
-+    gcePATCH_GLOFTGANG,
-+    gcePATCH_XRUNNER,
-+    gcePATCH_WP,
-+    gcePATCH_DEVIL,
-+    gcePATCH_HOLYARCH,
-+    gcePATCH_MUSE,
-+    gcePATCH_SG,
-+    gcePATCH_SIEGECRAFT,
-+    gcePATCH_CARCHALLENGE,
-+    gcePATCH_HEROESCALL,
-+    gcePATCH_MONOPOLY,
-+    gcePATCH_CTGL20,
-+    gcePATCH_FIREFOX,
-+    gcePATCH_CHORME,
-+    gcePATCH_DUOKANTV,
-+    gcePATCH_TESTAPP,
-+
-+    /* Count enum*/
-+    gcePATCH_COUNT,
-+}
-+gcePATCH_ID;
-+
- #if gcdLINK_QUEUE_SIZE
- typedef struct _gckLINKDATA * gckLINKDATA;
- struct _gckLINKDATA
-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 03cb4d6..2eab666 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,7 +28,7 @@
- 
- #define gcvVERSION_PATCH        9
- 
--#define gcvVERSION_BUILD     6622
-+#define gcvVERSION_BUILD     9754
- 
- #define gcvVERSION_DATE      __DATE__
- 
-diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
-index 4d48bd5..b029428 100644
---- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
-+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
-@@ -25,7 +25,9 @@
- #include <linux/mm.h>
- #include <linux/mman.h>
- #include <linux/slab.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
- #include <mach/hardware.h>
-+#endif
- #include <linux/pm_runtime.h>
- 
- #define _GC_OBJ_ZONE    gcvZONE_DEVICE
-@@ -305,6 +307,7 @@ gckGALDEVICE_Construct(
-     IN gctUINT LogFileSize,
-     IN struct device *pdev,
-     IN gctINT PowerManagement,
-+    IN gctINT GpuProfiler,
-     OUT gckGALDEVICE *Device
-     )
- {
-@@ -369,6 +372,10 @@ gckGALDEVICE_Construct(
- #if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)
-     /*get gpu regulator*/
-     device->gpu_regulator = regulator_get(pdev, "cpu_vddgpu");
-+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+    device->gpu_regulator = regulator_get(pdev, "vddpu");
-+#endif
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0) || LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-     if (IS_ERR(device->gpu_regulator)) {
- 	gcmkTRACE_ZONE(gcvLEVEL_ERROR, gcvZONE_DRIVER,
- 		"%s(%d): Failed to get gpu regulator  %s/%s \n",
-@@ -541,6 +548,10 @@ gckGALDEVICE_Construct(
-             device->kernels[gcvCORE_MAJOR]->hardware, PowerManagement
-             ));
- 
-+        gcmkONERROR(gckHARDWARE_SetGpuProfiler(
-+            device->kernels[gcvCORE_MAJOR]->hardware, GpuProfiler
-+            ));
-+
- #if COMMAND_PROCESSOR_VERSION == 1
-         /* Start the command queue. */
-         gcmkONERROR(gckCOMMAND_Start(device->kernels[gcvCORE_MAJOR]->command));
-@@ -599,6 +610,7 @@ gckGALDEVICE_Construct(
-             device->kernels[gcvCORE_2D]->hardware, PowerManagement
-             ));
- 
-+
- #if COMMAND_PROCESSOR_VERSION == 1
-         /* Start the command queue. */
-         gcmkONERROR(gckCOMMAND_Start(device->kernels[gcvCORE_2D]->command));
-@@ -635,6 +647,7 @@ gckGALDEVICE_Construct(
-             device->kernels[gcvCORE_VG]->vg->hardware,
-             PowerManagement
-             ));
-+
- #endif
-     }
-     else
-@@ -849,6 +862,7 @@ gckGALDEVICE_Construct(
-             }
-             else
-             {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
-                 mem_region = request_mem_region(
-                     ContiguousBase, ContiguousSize, "galcore managed memory"
-                     );
-@@ -864,6 +878,7 @@ gckGALDEVICE_Construct(
- 
-                     gcmkONERROR(gcvSTATUS_OUT_OF_RESOURCES);
-                 }
-+#endif
- 
-                 device->requestedContiguousBase  = ContiguousBase;
-                 device->requestedContiguousSize  = ContiguousSize;
-@@ -1107,7 +1122,7 @@ gckGALDEVICE_Destroy(
-             pm_runtime_disable(Device->pmdev);
- #endif
- 
--#if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0) || LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-         if (Device->gpu_regulator) {
-            regulator_put(Device->gpu_regulator);
-            Device->gpu_regulator = NULL;
-diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
-index dde4f03..c51432f 100644
---- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
-+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
-@@ -26,6 +26,15 @@
- ******************************* gckGALDEVICE Structure *******************************
- \******************************************************************************/
- 
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+struct contiguous_mem_pool {
-+	struct dma_attrs attrs;
-+	dma_addr_t phys;
-+	void *virt;
-+	size_t size;
-+};
-+#endif
-+
- typedef struct _gckGALDEVICE
- {
-     /* Objects. */
-@@ -91,12 +100,16 @@ typedef struct _gckGALDEVICE
-     struct clk         *clk_2d_axi;
-     struct clk         *clk_vg_axi;
- 
--#if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0) || LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-     /*Power management.*/
-     struct regulator      *gpu_regulator;
- #endif
- 	/*Run time pm*/
- 	struct device		*pmdev;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+	struct contiguous_mem_pool *pool;
-+	struct reset_control *rstc[gcdMAX_GPU_COUNT];
-+#endif
- }
- * gckGALDEVICE;
- 
-@@ -171,6 +184,7 @@ gceSTATUS gckGALDEVICE_Construct(
-     IN gctUINT LogFileSize,
-     IN struct device *pdev,
-     IN gctINT PowerManagement,
-+    IN gctINT GpuProfiler,
-     OUT gckGALDEVICE *Device
-     );
- 
-diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
-index bacd531..88a7e4e6 100644
---- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
-+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
-@@ -1,7 +1,7 @@
- /****************************************************************************
- *
- *    Copyright (C) 2005 - 2013 by Vivante Corp.
--*    Copyright (C) 2011-2012 Freescale Semiconductor, Inc.
-+*    Copyright (C) 2011-2013 Freescale Semiconductor, Inc.
- *
- *    This program is free software; you can redistribute it and/or modify
- *    it under the terms of the GNU General Public License as published by
-@@ -69,14 +69,26 @@ task_notify_func(struct notifier_block *self, unsigned long val, void *data)
- #include <mach/viv_gpu.h>
- #else
- #include <linux/pm_runtime.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
- #include <mach/busfreq.h>
-+#else
-+#include <linux/reset.h>
-+#endif
- #endif
- /* Zone used for header/footer. */
- #define _GC_OBJ_ZONE    gcvZONE_DRIVER
- 
- #if gcdENABLE_FSCALE_VAL_ADJUST
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+#include <linux/device_cooling.h>
-+#define REG_THERMAL_NOTIFIER(a) register_devfreq_cooling_notifier(a);
-+#define UNREG_THERMAL_NOTIFIER(a) unregister_devfreq_cooling_notifier(a);
-+#else
- extern int register_thermal_notifier(struct notifier_block *nb);
- extern int unregister_thermal_notifier(struct notifier_block *nb);
-+#define REG_THERMAL_NOTIFIER(a) register_thermal_notifier(a);
-+#define UNREG_THERMAL_NOTIFIER(a) unregister_thermal_notifier(a);
-+#endif
- #endif
- 
- MODULE_DESCRIPTION("Vivante Graphics Driver");
-@@ -116,7 +128,11 @@ module_param(registerMemBaseVG, ulong, 0644);
- static ulong registerMemSizeVG = 2 << 10;
- module_param(registerMemSizeVG, ulong, 0644);
- 
-+#if gcdENABLE_FSCALE_VAL_ADJUST
-+static ulong contiguousSize = 128 << 20;
-+#else
- static ulong contiguousSize = 4 << 20;
-+#endif
- module_param(contiguousSize, ulong, 0644);
- 
- static ulong contiguousBase = 0;
-@@ -134,6 +150,9 @@ module_param(compression, int, 0644);
- static int powerManagement = 1;
- module_param(powerManagement, int, 0644);
- 
-+static int gpuProfiler = 0;
-+module_param(gpuProfiler, int, 0644);
-+
- static int signal = 48;
- module_param(signal, int, 0644);
- 
-@@ -786,7 +805,9 @@ static int drv_init(struct device *pdev)
- 
-     printk(KERN_INFO "Galcore version %d.%d.%d.%d\n",
-         gcvVERSION_MAJOR, gcvVERSION_MINOR, gcvVERSION_PATCH, gcvVERSION_BUILD);
--
-+    /* when enable gpu profiler, we need to turn off gpu powerMangement */
-+    if(gpuProfiler)
-+        powerManagement = 0;
-     if (showArgs)
-     {
-         printk("galcore options:\n");
-@@ -818,6 +839,7 @@ static int drv_init(struct device *pdev)
-         printk("  physSize          = 0x%08lX\n", physSize);
-         printk("  logFileSize       = %d KB \n",  logFileSize);
-         printk("  powerManagement   = %d\n",      powerManagement);
-+        printk("  gpuProfiler   = %d\n",      gpuProfiler);
- #if ENABLE_GPU_CLOCK_BY_DRIVER
-         printk("  coreClock       = %lu\n",     coreClock);
- #endif
-@@ -841,9 +863,14 @@ static int drv_init(struct device *pdev)
-         logFileSize,
-         pdev,
-         powerManagement,
-+        gpuProfiler,
-         &device
-         ));
- 
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+	device->pool = dev_get_drvdata(pdev);
-+#endif
-+
-     /* Start the GAL device. */
-     gcmkONERROR(gckGALDEVICE_Start(device));
- 
-@@ -1028,11 +1055,18 @@ static struct notifier_block thermal_hot_pm_notifier = {
- 
- 
- 
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)
-+static int gpu_probe(struct platform_device *pdev)
-+#else
- static int __devinit gpu_probe(struct platform_device *pdev)
-+#endif
- {
-     int ret = -ENODEV;
-     struct resource* res;
--#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+	struct contiguous_mem_pool *pool;
-+	struct reset_control *rstc;
-+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)
- 	struct device_node *dn =pdev->dev.of_node;
- 	const u32 *prop;
- #else
-@@ -1077,7 +1111,22 @@ static int __devinit gpu_probe(struct platform_device *pdev)
-         registerMemSizeVG = res->end - res->start + 1;
-     }
- 
--#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+	pool = devm_kzalloc(&pdev->dev, sizeof(*pool), GFP_KERNEL);
-+	if (!pool)
-+		return -ENOMEM;
-+	pool->size = contiguousSize;
-+	init_dma_attrs(&pool->attrs);
-+	dma_set_attr(DMA_ATTR_WRITE_COMBINE, &pool->attrs);
-+	pool->virt = dma_alloc_attrs(&pdev->dev, pool->size, &pool->phys,
-+				     GFP_KERNEL, &pool->attrs);
-+	if (!pool->virt) {
-+		dev_err(&pdev->dev, "Failed to allocate contiguous memory\n");
-+		return -ENOMEM;
-+	}
-+	contiguousBase = pool->phys;
-+	dev_set_drvdata(&pdev->dev, pool);
-+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)
- 	prop = of_get_property(dn, "contiguousbase", NULL);
- 	if(prop)
- 		contiguousBase = *prop;
-@@ -1095,30 +1144,56 @@ static int __devinit gpu_probe(struct platform_device *pdev)
- 
-     if (!ret)
-     {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+	rstc = devm_reset_control_get(&pdev->dev, "gpu3d");
-+	galDevice->rstc[gcvCORE_MAJOR] = IS_ERR(rstc) ? NULL : rstc;
-+
-+	rstc = devm_reset_control_get(&pdev->dev, "gpu2d");
-+	galDevice->rstc[gcvCORE_2D] = IS_ERR(rstc) ? NULL : rstc;
-+
-+	rstc = devm_reset_control_get(&pdev->dev, "gpuvg");
-+	galDevice->rstc[gcvCORE_VG] = IS_ERR(rstc) ? NULL : rstc;
-+#endif
-         platform_set_drvdata(pdev, galDevice);
- 
- #if gcdENABLE_FSCALE_VAL_ADJUST
--        if(galDevice->kernels[gcvCORE_MAJOR])
--            register_thermal_notifier(&thermal_hot_pm_notifier);
-+        if (galDevice->kernels[gcvCORE_MAJOR])
-+            REG_THERMAL_NOTIFIER(&thermal_hot_pm_notifier);
- #endif
-         gcmkFOOTER_NO();
-         return ret;
-     }
- #if gcdENABLE_FSCALE_VAL_ADJUST
--    unregister_thermal_notifier(&thermal_hot_pm_notifier);
-+    UNREG_THERMAL_NOTIFIER(&thermal_hot_pm_notifier);
-+#endif
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+	dma_free_attrs(&pdev->dev, pool->size, pool->virt, pool->phys,
-+		       &pool->attrs);
- #endif
-     gcmkFOOTER_ARG(KERN_INFO "Failed to register gpu driver: %d\n", ret);
-     return ret;
- }
- 
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)
-+static int gpu_remove(struct platform_device *pdev)
-+#else
- static int __devexit gpu_remove(struct platform_device *pdev)
-+#endif
- {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+	gckGALDEVICE device = platform_get_drvdata(pdev);
-+	struct contiguous_mem_pool *pool = device->pool;
-+#endif
-     gcmkHEADER();
- #if gcdENABLE_FSCALE_VAL_ADJUST
-     if(galDevice->kernels[gcvCORE_MAJOR])
--        unregister_thermal_notifier(&thermal_hot_pm_notifier);
-+        UNREG_THERMAL_NOTIFIER(&thermal_hot_pm_notifier);
- #endif
-     drv_exit();
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+	dma_free_attrs(&pdev->dev, pool->size, pool->virt, pool->phys,
-+		       &pool->attrs);
-+#endif
-     gcmkFOOTER_NO();
-     return 0;
- }
-@@ -1254,13 +1329,17 @@ MODULE_DEVICE_TABLE(of, mxs_gpu_dt_ids);
- #ifdef CONFIG_PM
- static int gpu_runtime_suspend(struct device *dev)
- {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
- 	release_bus_freq(BUS_FREQ_HIGH);
-+#endif
- 	return 0;
- }
- 
- static int gpu_runtime_resume(struct device *dev)
- {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
- 	request_bus_freq(BUS_FREQ_HIGH);
-+#endif
- 	return 0;
- }
- 
-@@ -1284,7 +1363,11 @@ static const struct dev_pm_ops gpu_pm_ops = {
- 
- static struct platform_driver gpu_driver = {
-     .probe      = gpu_probe,
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)
-+    .remove     = gpu_remove,
-+#else
-     .remove     = __devexit_p(gpu_remove),
-+#endif
- 
-     .suspend    = gpu_suspend,
-     .resume     = gpu_resume,
-diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
-index e7edc39..331c73f 100644
---- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
-+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
-@@ -30,19 +30,30 @@
- #include <linux/dma-mapping.h>
- #include <linux/slab.h>
- #include <linux/idr.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
- #include <mach/hardware.h>
-+#endif
- #include <linux/workqueue.h>
- #include <linux/idr.h>
- #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,23)
- #include <linux/math64.h>
- #endif
--#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+#include <linux/reset.h>
-+static inline void imx_gpc_power_up_pu(bool flag) {}
-+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)
- #include <mach/common.h>
- #endif
- #include <linux/delay.h>
- #include <linux/pm_runtime.h>
- 
- 
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+#include <linux/file.h>
-+#include "gc_hal_kernel_sync.h"
-+#endif
-+
-+
- #define _GC_OBJ_ZONE    gcvZONE_OS
- 
- /*******************************************************************************
-@@ -148,6 +159,7 @@ typedef struct _gcsINTEGER_DB
- {
-     struct idr                  idr;
-     spinlock_t                  lock;
-+    gctINT                      curr;
- }
- gcsINTEGER_DB;
- 
-@@ -180,6 +192,14 @@ struct _gckOS
-     /* signal id database. */
-     gcsINTEGER_DB               signalDB;
- 
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+    /* Lock. */
-+    gctPOINTER                  syncPointMutex;
-+
-+    /* sync point id database. */
-+    gcsINTEGER_DB               syncPointDB;
-+#endif
-+
-     gcsUSER_MAPPING_PTR         userMap;
-     gctPOINTER                  debugLock;
- 
-@@ -215,6 +235,25 @@ typedef struct _gcsSIGNAL
- }
- gcsSIGNAL;
- 
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+typedef struct _gcsSYNC_POINT * gcsSYNC_POINT_PTR;
-+typedef struct _gcsSYNC_POINT
-+{
-+    /* The reference counter. */
-+    atomic_t ref;
-+
-+    /* State. */
-+    atomic_t state;
-+
-+    /* timeline. */
-+    struct sync_timeline * timeline;
-+
-+    /* ID. */
-+    gctUINT32 id;
-+}
-+gcsSYNC_POINT;
-+#endif
-+
- typedef struct _gcsPageInfo * gcsPageInfo_PTR;
- typedef struct _gcsPageInfo
- {
-@@ -767,7 +806,32 @@ _AllocateIntegerId(
-     )
- {
-     int result;
-+    gctINT next;
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0)
-+    idr_preload(GFP_KERNEL | gcdNOWARN);
- 
-+    spin_lock(&Database->lock);
-+
-+    next = (Database->curr + 1 <= 0) ? 1 : Database->curr + 1;
-+    result = idr_alloc(&Database->idr, KernelPointer, next, 0, GFP_ATOMIC);
-+
-+    if (!result)
-+    {
-+        Database->curr = *Id;
-+    }
-+
-+    spin_unlock(&Database->lock);
-+
-+    idr_preload_end();
-+
-+    if (result < 0)
-+    {
-+        return gcvSTATUS_OUT_OF_RESOURCES;
-+    }
-+
-+    *Id = result;
-+#else
- again:
-     if (idr_pre_get(&Database->idr, GFP_KERNEL | gcdNOWARN) == 0)
-     {
-@@ -776,8 +840,15 @@ again:
- 
-     spin_lock(&Database->lock);
- 
--    /* Try to get a id greater than 0. */
--    result = idr_get_new_above(&Database->idr, KernelPointer, 1, Id);
-+    next = (Database->curr + 1 <= 0) ? 1 : Database->curr + 1;
-+
-+    /* Try to get a id greater than current id. */
-+    result = idr_get_new_above(&Database->idr, KernelPointer, next, Id);
-+
-+    if (!result)
-+    {
-+        Database->curr = *Id;
-+    }
- 
-     spin_unlock(&Database->lock);
- 
-@@ -790,6 +861,7 @@ again:
-     {
-         return gcvSTATUS_OUT_OF_RESOURCES;
-     }
-+#endif
- 
-     return gcvSTATUS_OK;
- }
-@@ -1008,6 +1080,21 @@ gckOS_Construct(
-     /* Initialize signal id database. */
-     idr_init(&os->signalDB.idr);
- 
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+    /*
-+     * Initialize the sync point manager.
-+     */
-+
-+    /* Initialize mutex. */
-+    gcmkONERROR(gckOS_CreateMutex(os, &os->syncPointMutex));
-+
-+    /* Initialize sync point id database lock. */
-+    spin_lock_init(&os->syncPointDB.lock);
-+
-+    /* Initialize sync point id database. */
-+    idr_init(&os->syncPointDB.idr);
-+#endif
-+
- #if gcdUSE_NON_PAGED_MEMORY_CACHE
-     os->cacheSize = 0;
-     os->cacheHead = gcvNULL;
-@@ -1031,6 +1118,15 @@ gckOS_Construct(
-     return gcvSTATUS_OK;
- 
- OnError:
-+
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+    if (os->syncPointMutex != gcvNULL)
-+    {
-+        gcmkVERIFY_OK(
-+            gckOS_DeleteMutex(os, os->syncPointMutex));
-+    }
-+#endif
-+
-     if (os->signalMutex != gcvNULL)
-     {
-         gcmkVERIFY_OK(
-@@ -1104,6 +1200,15 @@ gckOS_Destroy(
-     _FreeAllNonPagedMemoryCache(Os);
- #endif
- 
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+    /*
-+     * Destroy the sync point manager.
-+     */
-+
-+    /* Destroy the mutex. */
-+    gcmkVERIFY_OK(gckOS_DeleteMutex(Os, Os->syncPointMutex));
-+#endif
-+
-     /*
-      * Destroy the signal manager.
-      */
-@@ -1961,12 +2066,6 @@ gckOS_AllocateNonPagedMemory(
-         gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
-     }
- 
--    if ((Os->device->baseAddress & 0x80000000) != (mdl->dmaHandle & 0x80000000))
--    {
--        mdl->dmaHandle = (mdl->dmaHandle & ~0x80000000)
--                       | (Os->device->baseAddress & 0x80000000);
--    }
--
-     mdl->addr = addr;
- 
-     /* Return allocated memory. */
-@@ -2307,6 +2406,7 @@ gckOS_ReadRegisterEx(
- 
-     /* Verify the arguments. */
-     gcmkVERIFY_OBJECT(Os, gcvOBJ_OS);
-+    gcmkVERIFY_ARGUMENT(Address < Os->device->requestedRegisterMemSizes[Core]);
-     gcmkVERIFY_ARGUMENT(Data != gcvNULL);
- 
-     *Data = readl((gctUINT8 *)Os->device->registerBases[Core] + Address);
-@@ -2357,6 +2457,8 @@ gckOS_WriteRegisterEx(
- {
-     gcmkHEADER_ARG("Os=0x%X Core=%d Address=0x%X Data=0x%08x", Os, Core, Address, Data);
- 
-+    gcmkVERIFY_ARGUMENT(Address < Os->device->requestedRegisterMemSizes[Core]);
-+
-     writel(Data, (gctUINT8 *)Os->device->registerBases[Core] + Address);
- 
-     /* Success. */
-@@ -2799,16 +2901,25 @@ gckOS_MapPhysical(
- 
-     if (mdl == gcvNULL)
-     {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+	struct contiguous_mem_pool *pool = Os->device->pool;
-+
-+	if (Physical >= pool->phys && Physical < pool->phys + pool->size)
-+		logical = (gctPOINTER)(Physical - pool->phys + pool->virt);
-+	else
-+		logical = gcvNULL;
-+#else
-         /* Map memory as cached memory. */
-         request_mem_region(physical, Bytes, "MapRegion");
-         logical = (gctPOINTER) ioremap_nocache(physical, Bytes);
-+#endif
- 
-         if (logical == gcvNULL)
-         {
-             gcmkTRACE_ZONE(
-                 gcvLEVEL_INFO, gcvZONE_OS,
--                "%s(%d): Failed to ioremap",
--                __FUNCTION__, __LINE__
-+                "%s(%d): Failed to map physical address 0x%08x",
-+                __FUNCTION__, __LINE__, Physical
-                 );
- 
-             MEMORY_UNLOCK(Os);
-@@ -3621,7 +3732,7 @@ gckOS_Delay(
-     if (Delay > 0)
-     {
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28)
--        ktime_t delay = ktime_set(0, Delay * NSEC_PER_MSEC);
-+        ktime_t delay = ktime_set(Delay/1000, (Delay%1000) * NSEC_PER_MSEC);
-         __set_current_state(TASK_UNINTERRUPTIBLE);
-         schedule_hrtimeout(&delay, HRTIMER_MODE_REL);
- #else
-@@ -3881,8 +3992,13 @@ gckOS_AllocatePagedMemoryEx(
- 
-     if (Contiguous)
-     {
--        /* Get contiguous pages, and suppress warning (stack dump) from kernel when
--           we run out of memory. */
-+        gctUINT32 order = get_order(bytes);
-+
-+        if (order >= MAX_ORDER)
-+        {
-+            gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
-+        }
-+
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
-         addr =
-             alloc_pages_exact(numPages * PAGE_SIZE, GFP_KERNEL | gcdNOWARN | __GFP_NORETRY);
-@@ -3894,12 +4010,12 @@ gckOS_AllocatePagedMemoryEx(
-         mdl->exact = gcvTRUE;
- #else
-         mdl->u.contiguousPages =
--            alloc_pages(GFP_KERNEL | gcdNOWARN | __GFP_NORETRY, GetOrder(numPages));
-+            alloc_pages(GFP_KERNEL | gcdNOWARN | __GFP_NORETRY, order);
- #endif
-         if (mdl->u.contiguousPages == gcvNULL)
-         {
-             mdl->u.contiguousPages =
--                alloc_pages(GFP_KERNEL | __GFP_HIGHMEM | gcdNOWARN, GetOrder(numPages));
-+                alloc_pages(GFP_KERNEL | __GFP_HIGHMEM | gcdNOWARN, order);
- 
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
-             mdl->exact = gcvFALSE;
-@@ -4239,13 +4355,13 @@ gckOS_LockPages(
-         }
- 
-         mdlMap->vma->vm_flags |= gcdVM_FLAGS;
--#if !gcdPAGED_MEMORY_CACHEABLE
-+
-         if (Cacheable == gcvFALSE)
-         {
-             /* Make this mapping non-cached. */
-             mdlMap->vma->vm_page_prot = gcmkPAGED_MEMROY_PROT(mdlMap->vma->vm_page_prot);
-         }
--#endif
-+
-         addr = mdl->addr;
- 
-         /* Now map all the vmalloc pages to this user address. */
-@@ -5336,6 +5452,7 @@ OnError:
-         {
-             /* Get the user pages. */
-             down_read(&current->mm->mmap_sem);
-+
-             result = get_user_pages(current,
-                     current->mm,
-                     memory & PAGE_MASK,
-@@ -5345,105 +5462,127 @@ OnError:
-                     pages,
-                     gcvNULL
-                     );
-+
-             up_read(&current->mm->mmap_sem);
- 
-             if (result <=0 || result < pageCount)
-             {
-                 struct vm_area_struct *vma;
- 
--                /* Free the page table. */
--                if (pages != gcvNULL)
-+                /* Release the pages if any. */
-+                if (result > 0)
-                 {
--                    /* Release the pages if any. */
--                    if (result > 0)
-+                    for (i = 0; i < result; i++)
-                     {
--                        for (i = 0; i < result; i++)
-+                        if (pages[i] == gcvNULL)
-                         {
--                            if (pages[i] == gcvNULL)
--                            {
--                                break;
--                            }
--
--                            page_cache_release(pages[i]);
-+                            break;
-                         }
-+
-+                        page_cache_release(pages[i]);
-+                        pages[i] = gcvNULL;
-                     }
- 
--                    kfree(pages);
--                    pages = gcvNULL;
-+                    result = 0;
-                 }
- 
-                 vma = find_vma(current->mm, memory);
- 
--                if (vma && (vma->vm_flags & VM_PFNMAP) )
-+                if (vma && (vma->vm_flags & VM_PFNMAP))
-                 {
-                     pte_t       * pte;
-                     spinlock_t  * ptl;
--                    unsigned long pfn;
-+                    gctUINTPTR_T logical = memory;
- 
--                    pgd_t * pgd = pgd_offset(current->mm, memory);
--                    pud_t * pud = pud_offset(pgd, memory);
--                    if (pud)
-+                    for (i = 0; i < pageCount; i++)
-                     {
--                        pmd_t * pmd = pmd_offset(pud, memory);
--                        pte = pte_offset_map_lock(current->mm, pmd, memory, &ptl);
--                        if (!pte)
-+                        pgd_t * pgd = pgd_offset(current->mm, logical);
-+                        pud_t * pud = pud_offset(pgd, logical);
-+
-+                        if (pud)
-+                        {
-+                            pmd_t * pmd = pmd_offset(pud, logical);
-+                            pte = pte_offset_map_lock(current->mm, pmd, logical, &ptl);
-+                            if (!pte)
-+                            {
-+                                gcmkONERROR(gcvSTATUS_OUT_OF_RESOURCES);
-+                            }
-+                        }
-+                        else
-                         {
-                             gcmkONERROR(gcvSTATUS_OUT_OF_RESOURCES);
-                         }
-+
-+                        pages[i] = pte_page(*pte);
-+                        pte_unmap_unlock(pte, ptl);
-+
-+                        /* Advance to next. */
-+                        logical += PAGE_SIZE;
-                     }
--                    else
-+                }
-+                else
-+                {
-+                    gcmkONERROR(gcvSTATUS_OUT_OF_RESOURCES);
-+                }
-+
-+                /* Check if this memory is contiguous for old mmu. */
-+                if (Os->device->kernels[Core]->hardware->mmuVersion == 0)
-+                {
-+                    for (i = 1; i < pageCount; i++)
-                     {
--                        gcmkONERROR(gcvSTATUS_OUT_OF_RESOURCES);
-+                        if (pages[i] != nth_page(pages[0], i))
-+                        {
-+                            /* Non-contiguous. */
-+                            break;
-+                        }
-                     }
- 
--                    pfn      = pte_pfn(*pte);
--
--                    physical = (pfn << PAGE_SHIFT) | (memory & ~PAGE_MASK);
-+                    if (i == pageCount)
-+                    {
-+                        /* Contiguous memory. */
-+                        physical = page_to_phys(pages[0]) | (memory & ~PAGE_MASK);
- 
--                    pte_unmap_unlock(pte, ptl);
-+                        if (!((physical - Os->device->baseAddress) & 0x80000000))
-+                        {
-+                            kfree(pages);
-+                            pages = gcvNULL;
- 
--                    if ((Os->device->kernels[Core]->hardware->mmuVersion == 0)
--                            && !((physical - Os->device->baseAddress) & 0x80000000))
--                    {
--                        info->pages = gcvNULL;
--                        info->pageTable = gcvNULL;
-+                            info->pages = gcvNULL;
-+                            info->pageTable = gcvNULL;
- 
--                        MEMORY_MAP_UNLOCK(Os);
-+                            MEMORY_MAP_UNLOCK(Os);
- 
--                        *Address = physical - Os->device->baseAddress;
--                        *Info    = info;
-+                            *Address = physical - Os->device->baseAddress;
-+                            *Info    = info;
- 
--                        gcmkFOOTER_ARG("*Info=0x%X *Address=0x%08x",
--                                *Info, *Address);
-+                            gcmkFOOTER_ARG("*Info=0x%X *Address=0x%08x",
-+                                           *Info, *Address);
- 
--                        return gcvSTATUS_OK;
-+                            return gcvSTATUS_OK;
-+                        }
-                     }
-                 }
--                else
-+
-+                /* Reference pages. */
-+                for (i = 0; i < pageCount; i++)
-                 {
--                    gcmkONERROR(gcvSTATUS_OUT_OF_RESOURCES);
-+                    get_page(pages[i]);
-                 }
-             }
-         }
- 
--        if (pages)
--        {
--            for (i = 0; i < pageCount; i++)
--            {
--                /* Flush(clean) the data cache. */
--                gcmkONERROR(gckOS_CacheFlush(Os, _GetProcessID(), gcvNULL,
--                                 (gctPOINTER)(gctUINTPTR_T)page_to_phys(pages[i]),
--                                 (gctPOINTER)(memory & PAGE_MASK) + i*PAGE_SIZE,
--                                 PAGE_SIZE));
--            }
--        }
--        else
-+        for (i = 0; i < pageCount; i++)
-         {
-+#ifdef CONFIG_ARM
-+            gctUINT32 data;
-+            get_user(data, (gctUINT32*)((memory & PAGE_MASK) + i * PAGE_SIZE));
-+#endif
-+
-             /* Flush(clean) the data cache. */
-             gcmkONERROR(gckOS_CacheFlush(Os, _GetProcessID(), gcvNULL,
--                             (gctPOINTER)(gctUINTPTR_T)(physical & PAGE_MASK),
--                             (gctPOINTER)(memory & PAGE_MASK),
--                             PAGE_SIZE * pageCount));
-+                             (gctPOINTER)(gctUINTPTR_T)page_to_phys(pages[i]),
-+                             (gctPOINTER)(memory & PAGE_MASK) + i*PAGE_SIZE,
-+                             PAGE_SIZE));
-         }
- 
- #if gcdENABLE_VG
-@@ -5464,20 +5603,14 @@ OnError:
-                                               (gctPOINTER *) &pageTable,
-                                               &address));
-         }
-+
-         /* Fill the page table. */
-         for (i = 0; i < pageCount; i++)
-         {
-             gctUINT32 phys;
-             gctUINT32_PTR tab = pageTable + i * (PAGE_SIZE/4096);
- 
--            if (pages)
--            {
--                phys = page_to_phys(pages[i]);
--            }
--            else
--            {
--                phys = (physical & PAGE_MASK) + i * PAGE_SIZE;
--            }
-+            phys = page_to_phys(pages[i]);
- 
- #if gcdENABLE_VG
-             if (Core == gcvCORE_VG)
-@@ -6126,7 +6259,7 @@ gckOS_CacheClean(
- #else
-     dma_sync_single_for_device(
-               gcvNULL,
--              Physical,
-+              (dma_addr_t)Physical,
-               Bytes,
-               DMA_TO_DEVICE);
- #endif
-@@ -6205,7 +6338,7 @@ gckOS_CacheInvalidate(
- #else
-     dma_sync_single_for_device(
-               gcvNULL,
--              Physical,
-+              (dma_addr_t)Physical,
-               Bytes,
-               DMA_FROM_DEVICE);
- #endif
-@@ -6279,7 +6412,7 @@ gckOS_CacheFlush(
- #else
-     dma_sync_single_for_device(
-               gcvNULL,
--              Physical,
-+              (dma_addr_t)Physical,
-               Bytes,
-               DMA_BIDIRECTIONAL);
- #endif
-@@ -6827,6 +6960,9 @@ gckOS_SetGPUPower(
-     struct clk *clk_2dcore = Os->device->clk_2d_core;
-     struct clk *clk_2d_axi = Os->device->clk_2d_axi;
-     struct clk *clk_vg_axi = Os->device->clk_vg_axi;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0) || LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+    int ret;
-+#endif
- 
-     gctBOOL oldClockState = gcvFALSE;
-     gctBOOL oldPowerState = gcvFALSE;
-@@ -6852,9 +6988,13 @@ gckOS_SetGPUPower(
-     }
- 	if((Power == gcvTRUE) && (oldPowerState == gcvFALSE))
- 	{
--#if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)
--        if(!IS_ERR(Os->device->gpu_regulator))
--            regulator_enable(Os->device->gpu_regulator);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0) || LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+        if(!IS_ERR(Os->device->gpu_regulator)) {
-+            ret = regulator_enable(Os->device->gpu_regulator);
-+            if (ret != 0)
-+                gckOS_Print("%s(%d): fail to enable pu regulator %d!\n",
-+                    __FUNCTION__, __LINE__, ret);
-+        }
- #else
-         imx_gpc_power_up_pu(true);
- #endif
-@@ -6969,7 +7109,7 @@ gckOS_SetGPUPower(
- 		pm_runtime_put_sync(Os->device->pmdev);
- #endif
- 
--#if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0) || LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-         if(!IS_ERR(Os->device->gpu_regulator))
-             regulator_disable(Os->device->gpu_regulator);
- #else
-@@ -7033,6 +7173,10 @@ gckOS_ResetGPU(
-     }
- 
-     gcmkFOOTER_NO();
-+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+	struct reset_control *rstc = Os->device->rstc[Core];
-+	if (rstc)
-+		reset_control_reset(rstc);
- #else
-     imx_src_reset_gpu((int)Core);
- #endif
-@@ -8529,3 +8673,338 @@ gckOS_GetProcessNameByPid(
-     return gcvSTATUS_OK;
- }
- 
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+
-+gceSTATUS
-+gckOS_CreateSyncPoint(
-+    IN gckOS Os,
-+    OUT gctSYNC_POINT * SyncPoint
-+    )
-+{
-+    gceSTATUS status;
-+    gcsSYNC_POINT_PTR syncPoint;
-+
-+    gcmkHEADER_ARG("Os=0x%X", Os);
-+
-+    /* Verify the arguments. */
-+    gcmkVERIFY_OBJECT(Os, gcvOBJ_OS);
-+
-+    /* Create an sync point structure. */
-+    syncPoint = (gcsSYNC_POINT_PTR) kmalloc(
-+            sizeof(gcsSYNC_POINT), GFP_KERNEL | gcdNOWARN);
-+
-+    if (syncPoint == gcvNULL)
-+    {
-+        gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
-+    }
-+
-+    /* Initialize the sync point. */
-+    atomic_set(&syncPoint->ref, 1);
-+    atomic_set(&syncPoint->state, 0);
-+
-+    gcmkONERROR(_AllocateIntegerId(&Os->syncPointDB, syncPoint, &syncPoint->id));
-+
-+    *SyncPoint = (gctSYNC_POINT)(gctUINTPTR_T)syncPoint->id;
-+
-+    gcmkFOOTER_ARG("*SyncPonint=%d", syncPoint->id);
-+    return gcvSTATUS_OK;
-+
-+OnError:
-+    if (syncPoint != gcvNULL)
-+    {
-+        kfree(syncPoint);
-+    }
-+
-+    gcmkFOOTER();
-+    return status;
-+}
-+
-+gceSTATUS
-+gckOS_ReferenceSyncPoint(
-+    IN gckOS Os,
-+    IN gctSYNC_POINT SyncPoint
-+    )
-+{
-+    gceSTATUS status;
-+    gcsSYNC_POINT_PTR syncPoint;
-+
-+    gcmkHEADER_ARG("Os=0x%X", Os);
-+
-+    /* Verify the arguments. */
-+    gcmkVERIFY_OBJECT(Os, gcvOBJ_OS);
-+    gcmkVERIFY_ARGUMENT(SyncPoint != gcvNULL);
-+
-+    gcmkONERROR(
-+        _QueryIntegerId(&Os->syncPointDB,
-+                        (gctUINT32)(gctUINTPTR_T)SyncPoint,
-+                        (gctPOINTER)&syncPoint));
-+
-+    /* Initialize the sync point. */
-+    atomic_inc(&syncPoint->ref);
-+
-+    gcmkFOOTER_NO();
-+    return gcvSTATUS_OK;
-+
-+OnError:
-+    gcmkFOOTER();
-+    return status;
-+}
-+
-+gceSTATUS
-+gckOS_DestroySyncPoint(
-+    IN gckOS Os,
-+    IN gctSYNC_POINT SyncPoint
-+    )
-+{
-+    gceSTATUS status;
-+    gcsSYNC_POINT_PTR syncPoint;
-+    gctBOOL acquired = gcvFALSE;
-+
-+    gcmkHEADER_ARG("Os=0x%X SyncPoint=%d", Os, (gctUINT32)(gctUINTPTR_T)SyncPoint);
-+
-+    /* Verify the arguments. */
-+    gcmkVERIFY_OBJECT(Os, gcvOBJ_OS);
-+    gcmkVERIFY_ARGUMENT(SyncPoint != gcvNULL);
-+
-+    gcmkONERROR(gckOS_AcquireMutex(Os, Os->syncPointMutex, gcvINFINITE));
-+    acquired = gcvTRUE;
-+
-+    gcmkONERROR(
-+        _QueryIntegerId(&Os->syncPointDB,
-+                        (gctUINT32)(gctUINTPTR_T)SyncPoint,
-+                        (gctPOINTER)&syncPoint));
-+
-+    gcmkASSERT(syncPoint->id == (gctUINT32)(gctUINTPTR_T)SyncPoint);
-+
-+    if (atomic_dec_and_test(&syncPoint->ref))
-+    {
-+        gcmkVERIFY_OK(_DestroyIntegerId(&Os->syncPointDB, syncPoint->id));
-+
-+        /* Free the sgianl. */
-+        syncPoint->timeline = gcvNULL;
-+        kfree(syncPoint);
-+    }
-+
-+    gcmkVERIFY_OK(gckOS_ReleaseMutex(Os, Os->syncPointMutex));
-+    acquired = gcvFALSE;
-+
-+    /* Success. */
-+    gcmkFOOTER_NO();
-+    return gcvSTATUS_OK;
-+
-+OnError:
-+    if (acquired)
-+    {
-+        /* Release the mutex. */
-+        gcmkVERIFY_OK(gckOS_ReleaseMutex(Os, Os->syncPointMutex));
-+    }
-+
-+    gcmkFOOTER();
-+    return status;
-+}
-+
-+gceSTATUS
-+gckOS_SignalSyncPoint(
-+    IN gckOS Os,
-+    IN gctSYNC_POINT SyncPoint
-+    )
-+{
-+    gceSTATUS status;
-+    gcsSYNC_POINT_PTR syncPoint;
-+    gctBOOL acquired = gcvFALSE;
-+
-+    gcmkHEADER_ARG("Os=0x%X SyncPoint=%d", Os, (gctUINT32)(gctUINTPTR_T)SyncPoint);
-+
-+    /* Verify the arguments. */
-+    gcmkVERIFY_OBJECT(Os, gcvOBJ_OS);
-+    gcmkVERIFY_ARGUMENT(SyncPoint != gcvNULL);
-+
-+    gcmkONERROR(gckOS_AcquireMutex(Os, Os->syncPointMutex, gcvINFINITE));
-+    acquired = gcvTRUE;
-+
-+    gcmkONERROR(
-+        _QueryIntegerId(&Os->syncPointDB,
-+                        (gctUINT32)(gctUINTPTR_T)SyncPoint,
-+                        (gctPOINTER)&syncPoint));
-+
-+    gcmkASSERT(syncPoint->id == (gctUINT32)(gctUINTPTR_T)SyncPoint);
-+
-+    /* Get state. */
-+    atomic_set(&syncPoint->state, gcvTRUE);
-+
-+    /* Signal timeline. */
-+    if (syncPoint->timeline)
-+    {
-+        sync_timeline_signal(syncPoint->timeline);
-+    }
-+
-+    gcmkVERIFY_OK(gckOS_ReleaseMutex(Os, Os->syncPointMutex));
-+    acquired = gcvFALSE;
-+
-+    /* Success. */
-+    gcmkFOOTER_NO();
-+    return gcvSTATUS_OK;
-+
-+OnError:
-+    if (acquired)
-+    {
-+        /* Release the mutex. */
-+        gcmkVERIFY_OK(gckOS_ReleaseMutex(Os, Os->syncPointMutex));
-+    }
-+
-+    gcmkFOOTER();
-+    return status;
-+}
-+
-+gceSTATUS
-+gckOS_QuerySyncPoint(
-+    IN gckOS Os,
-+    IN gctSYNC_POINT SyncPoint,
-+    OUT gctBOOL_PTR State
-+    )
-+{
-+    gceSTATUS status;
-+    gcsSYNC_POINT_PTR syncPoint;
-+
-+    gcmkHEADER_ARG("Os=0x%X SyncPoint=%d", Os, (gctUINT32)(gctUINTPTR_T)SyncPoint);
-+
-+    /* Verify the arguments. */
-+    gcmkVERIFY_OBJECT(Os, gcvOBJ_OS);
-+    gcmkVERIFY_ARGUMENT(SyncPoint != gcvNULL);
-+
-+    gcmkONERROR(
-+        _QueryIntegerId(&Os->syncPointDB,
-+                        (gctUINT32)(gctUINTPTR_T)SyncPoint,
-+                        (gctPOINTER)&syncPoint));
-+
-+    gcmkASSERT(syncPoint->id == (gctUINT32)(gctUINTPTR_T)SyncPoint);
-+
-+    /* Get state. */
-+    *State = atomic_read(&syncPoint->state);
-+
-+    /* Success. */
-+    gcmkFOOTER_ARG("*State=%d", *State);
-+    return gcvSTATUS_OK;
-+
-+OnError:
-+    gcmkFOOTER();
-+    return status;
-+}
-+
-+gceSTATUS
-+gckOS_CreateSyncTimeline(
-+    IN gckOS Os,
-+    OUT gctHANDLE * Timeline
-+    )
-+{
-+    struct viv_sync_timeline * timeline;
-+
-+    /* Create viv sync timeline. */
-+    timeline = viv_sync_timeline_create("viv timeline", Os);
-+
-+    if (timeline == gcvNULL)
-+    {
-+        /* Out of memory. */
-+        return gcvSTATUS_OUT_OF_MEMORY;
-+    }
-+
-+    *Timeline = (gctHANDLE) timeline;
-+    return gcvSTATUS_OK;
-+}
-+
-+gceSTATUS
-+gckOS_DestroySyncTimeline(
-+    IN gckOS Os,
-+    IN gctHANDLE Timeline
-+    )
-+{
-+    struct viv_sync_timeline * timeline;
-+    gcmkASSERT(Timeline != gcvNULL);
-+
-+    /* Destroy timeline. */
-+    timeline = (struct viv_sync_timeline *) Timeline;
-+    sync_timeline_destroy(&timeline->obj);
-+
-+    return gcvSTATUS_OK;
-+}
-+
-+gceSTATUS
-+gckOS_CreateNativeFence(
-+    IN gckOS Os,
-+    IN gctHANDLE Timeline,
-+    IN gctSYNC_POINT SyncPoint,
-+    OUT gctINT * FenceFD
-+    )
-+{
-+    int fd = -1;
-+    struct viv_sync_timeline *timeline;
-+    struct sync_pt * pt = gcvNULL;
-+    struct sync_fence * fence;
-+    char name[32];
-+    gcsSYNC_POINT_PTR syncPoint;
-+    gceSTATUS status;
-+
-+    gcmkHEADER_ARG("Os=0x%X Timeline=0x%X SyncPoint=%d",
-+                   Os, Timeline, (gctUINT)(gctUINTPTR_T)SyncPoint);
-+
-+    gcmkONERROR(
-+        _QueryIntegerId(&Os->syncPointDB,
-+                        (gctUINT32)(gctUINTPTR_T)SyncPoint,
-+                        (gctPOINTER)&syncPoint));
-+
-+    /* Cast timeline. */
-+    timeline = (struct viv_sync_timeline *) Timeline;
-+
-+    fd = get_unused_fd();
-+
-+    if (fd < 0)
-+    {
-+        /* Out of resources. */
-+        gcmkONERROR(gcvSTATUS_OUT_OF_RESOURCES);
-+    }
-+
-+    /* Create viv_sync_pt. */
-+    pt = viv_sync_pt_create(timeline, SyncPoint);
-+
-+    if (pt == gcvNULL)
-+    {
-+        gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
-+    }
-+
-+    /* Reference sync_timeline. */
-+    syncPoint->timeline = &timeline->obj;
-+
-+    /* Build fence name. */
-+    snprintf(name, 32, "viv sync_fence-%u", (gctUINT)(gctUINTPTR_T)SyncPoint);
-+
-+    /* Create sync_fence. */
-+    fence = sync_fence_create(name, pt);
-+
-+    if (fence == NULL)
-+    {
-+        gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
-+    }
-+
-+    /* Install fence to fd. */
-+    sync_fence_install(fence, fd);
-+
-+    *FenceFD = fd;
-+    gcmkFOOTER_ARG("*FenceFD=%d", fd);
-+    return gcvSTATUS_OK;
-+
-+OnError:
-+    /* Error roll back. */
-+    if (pt)
-+    {
-+        sync_pt_free(pt);
-+    }
-+
-+    if (fd > 0)
-+    {
-+        put_unused_fd(fd);
-+    }
-+
-+    gcmkFOOTER();
-+    return status;
-+}
-+#endif
-diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c
-new file mode 100644
-index 0000000..7efae1c
---- /dev/null
-+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c
-@@ -0,0 +1,174 @@
-+/****************************************************************************
-+*
-+*    Copyright (C) 2005 - 2013 by Vivante Corp.
-+*
-+*    This program is free software; you can redistribute it and/or modify
-+*    it under the terms of the GNU General Public License as published by
-+*    the Free Software Foundation; either version 2 of the license, or
-+*    (at your option) any later version.
-+*
-+*    This program is distributed in the hope that it will be useful,
-+*    but WITHOUT ANY WARRANTY; without even the implied warranty of
-+*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+*    GNU General Public License for more details.
-+*
-+*    You should have received a copy of the GNU General Public License
-+*    along with this program; if not write to the Free Software
-+*    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+*
-+*****************************************************************************/
-+
-+
-+#include <linux/kernel.h>
-+#include <linux/file.h>
-+#include <linux/fs.h>
-+#include <linux/miscdevice.h>
-+#include <linux/module.h>
-+#include <linux/syscalls.h>
-+#include <linux/uaccess.h>
-+
-+#include "gc_hal_kernel_sync.h"
-+
-+#if gcdANDROID_NATIVE_FENCE_SYNC
-+
-+static struct sync_pt *
-+viv_sync_pt_dup(
-+    struct sync_pt * sync_pt
-+    )
-+{
-+    gceSTATUS status;
-+    struct viv_sync_pt *pt;
-+    struct viv_sync_pt *src;
-+    struct viv_sync_timeline *obj;
-+
-+    src = (struct viv_sync_pt *) sync_pt;
-+    obj = (struct viv_sync_timeline *) sync_pt->parent;
-+
-+    /* Create the new sync_pt. */
-+    pt = (struct viv_sync_pt *)
-+        sync_pt_create(&obj->obj, sizeof(struct viv_sync_pt));
-+
-+    pt->stamp = src->stamp;
-+    pt->sync = src->sync;
-+
-+    /* Reference sync point. */
-+    status = gckOS_ReferenceSyncPoint(obj->os, pt->sync);
-+
-+    if (gcmIS_ERROR(status))
-+    {
-+        sync_pt_free((struct sync_pt *)pt);
-+        return NULL;
-+    }
-+
-+    return (struct sync_pt *)pt;
-+}
-+
-+static int
-+viv_sync_pt_has_signaled(
-+    struct sync_pt * sync_pt
-+    )
-+{
-+    gceSTATUS status;
-+    gctBOOL state;
-+    struct viv_sync_pt * pt;
-+    struct viv_sync_timeline * obj;
-+
-+    pt  = (struct viv_sync_pt *)sync_pt;
-+    obj = (struct viv_sync_timeline *)sync_pt->parent;
-+
-+    status = gckOS_QuerySyncPoint(obj->os, pt->sync, &state);
-+
-+    if (gcmIS_ERROR(status))
-+    {
-+        /* Error. */
-+        return -1;
-+    }
-+
-+    return state;
-+}
-+
-+static int
-+viv_sync_pt_compare(
-+    struct sync_pt * a,
-+    struct sync_pt * b
-+    )
-+{
-+    int ret;
-+    struct viv_sync_pt * pt1 = (struct viv_sync_pt *) a;
-+    struct viv_sync_pt * pt2 = (struct viv_sync_pt *) b;
-+
-+    ret = (pt1->stamp <  pt2->stamp) ? -1
-+        : (pt1->stamp == pt2->stamp) ?  0
-+        : 1;
-+
-+    return ret;
-+}
-+
-+static void
-+viv_sync_pt_free(
-+    struct sync_pt * sync_pt
-+    )
-+{
-+    struct viv_sync_pt * pt;
-+    struct viv_sync_timeline * obj;
-+
-+    pt  = (struct viv_sync_pt *) sync_pt;
-+    obj = (struct viv_sync_timeline *) sync_pt->parent;
-+
-+    gckOS_DestroySyncPoint(obj->os, pt->sync);
-+}
-+
-+static struct sync_timeline_ops viv_timeline_ops =
-+{
-+    .driver_name = "viv_sync",
-+    .dup = viv_sync_pt_dup,
-+    .has_signaled = viv_sync_pt_has_signaled,
-+    .compare = viv_sync_pt_compare,
-+    .free_pt = viv_sync_pt_free,
-+};
-+
-+struct viv_sync_timeline *
-+viv_sync_timeline_create(
-+    const char * name,
-+    gckOS os
-+    )
-+{
-+    struct viv_sync_timeline * obj;
-+
-+    obj = (struct viv_sync_timeline *)
-+        sync_timeline_create(&viv_timeline_ops, sizeof(struct viv_sync_timeline), name);
-+
-+    obj->os    = os;
-+    obj->stamp = 0;
-+
-+    return obj;
-+}
-+
-+struct sync_pt *
-+viv_sync_pt_create(
-+    struct viv_sync_timeline * obj,
-+    gctSYNC_POINT SyncPoint
-+    )
-+{
-+    gceSTATUS status;
-+    struct viv_sync_pt * pt;
-+
-+    pt = (struct viv_sync_pt *)
-+        sync_pt_create(&obj->obj, sizeof(struct viv_sync_pt));
-+
-+    pt->stamp = obj->stamp++;
-+    pt->sync  = SyncPoint;
-+
-+    /* Dup signal. */
-+    status = gckOS_ReferenceSyncPoint(obj->os, SyncPoint);
-+
-+    if (gcmIS_ERROR(status))
-+    {
-+        sync_pt_free((struct sync_pt *)pt);
-+        return NULL;
-+    }
-+
-+    return (struct sync_pt *) pt;
-+}
-+
-+#endif
-diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h
-new file mode 100644
-index 0000000..6fc12e5
---- /dev/null
-+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h
-@@ -0,0 +1,71 @@
-+/****************************************************************************
-+*
-+*    Copyright (C) 2005 - 2013 by Vivante Corp.
-+*
-+*    This program is free software; you can redistribute it and/or modify
-+*    it under the terms of the GNU General Public License as published by
-+*    the Free Software Foundation; either version 2 of the license, or
-+*    (at your option) any later version.
-+*
-+*    This program is distributed in the hope that it will be useful,
-+*    but WITHOUT ANY WARRANTY; without even the implied warranty of
-+*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+*    GNU General Public License for more details.
-+*
-+*    You should have received a copy of the GNU General Public License
-+*    along with this program; if not write to the Free Software
-+*    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+*
-+*****************************************************************************/
-+
-+
-+#ifndef __gc_hal_kernel_sync_h_
-+#define __gc_hal_kernel_sync_h_
-+
-+#include <linux/types.h>
-+
-+#include <linux/sync.h>
-+
-+#include <gc_hal.h>
-+#include <gc_hal_base.h>
-+
-+struct viv_sync_timeline
-+{
-+    /* Parent object. */
-+    struct sync_timeline obj;
-+
-+    /* Timestamp when sync_pt is created. */
-+    gctUINT stamp;
-+
-+    /* Pointer to os struct. */
-+    gckOS os;
-+};
-+
-+
-+struct viv_sync_pt
-+{
-+    /* Parent object. */
-+    struct sync_pt pt;
-+
-+    /* Reference sync point*/
-+    gctSYNC_POINT sync;
-+
-+    /* Timestamp when sync_pt is created. */
-+    gctUINT stamp;
-+};
-+
-+/* Create viv_sync_timeline object. */
-+struct viv_sync_timeline *
-+viv_sync_timeline_create(
-+    const char * Name,
-+    gckOS Os
-+    );
-+
-+/* Create viv_sync_pt object. */
-+struct sync_pt *
-+viv_sync_pt_create(
-+    struct viv_sync_timeline * Obj,
-+    gctSYNC_POINT SyncPoint
-+    );
-+
-+#endif /* __gc_hal_kernel_sync_h_ */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-boundary-3.0.35/drm-vivante-Add-00-sufix-in-returned-bus-Id.patch b/recipes-kernel/linux/linux-boundary-3.0.35/drm-vivante-Add-00-sufix-in-returned-bus-Id.patch
deleted file mode 100644
index 815d02c..0000000
--- a/recipes-kernel/linux/linux-boundary-3.0.35/drm-vivante-Add-00-sufix-in-returned-bus-Id.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From b37a944f55a5010bd08297a63db0275540922f32 Mon Sep 17 00:00:00 2001
-From: Otavio Salvador <otavio@ossystems.com.br>
-Date: Thu, 22 Aug 2013 16:31:29 -0300
-Subject: [PATCH] drm/vivante: Add ":00" sufix in returned bus Id
-
-This makes the 3.0.35 compatible with a Xorg driver build for 3.5.7 or
-newer kernels.
-
-Upstream-Status: Inapropriate [embedded specific]
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- drivers/gpu/drm/vivante/vivante_drv.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/vivante/vivante_drv.c b/drivers/gpu/drm/vivante/vivante_drv.c
-index 4224608..cea360d 100644
---- a/drivers/gpu/drm/vivante/vivante_drv.c
-+++ b/drivers/gpu/drm/vivante/vivante_drv.c
-@@ -55,7 +55,7 @@
- 
- #include "drm_pciids.h"
- 
--static char platformdevicename[] = "Vivante GCCore";
-+static char platformdevicename[] = "Vivante GCCore:00";
- static struct platform_device *pplatformdev;
- 
- static struct drm_driver driver = {
--- 
-1.8.4.rc1
-
diff --git a/recipes-kernel/linux/linux-boundary-3.0.35/nitrogen6x-lite/defconfig b/recipes-kernel/linux/linux-boundary-3.0.35/nitrogen6x-lite/defconfig
deleted file mode 100644
index 1d205fd..0000000
--- a/recipes-kernel/linux/linux-boundary-3.0.35/nitrogen6x-lite/defconfig
+++ /dev/null
@@ -1,262 +0,0 @@
-CONFIG_EXPERIMENTAL=y
-CONFIG_SYSVIPC=y
-CONFIG_FHANDLE=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_CGROUPS=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_EMBEDDED=y
-CONFIG_PERF_EVENTS=y
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-CONFIG_ARCH_MXC=y
-CONFIG_GPIO_PCA953X=y
-CONFIG_ARCH_MX6=y
-CONFIG_FORCE_MAX_ZONEORDER=14
-CONFIG_MACH_MX6_NIT6XLITE=y
-CONFIG_IMX_PCIE=y
-CONFIG_PCIE_FORCE_GEN1=y
-CONFIG_USB_EHCI_ARC_H1=y
-CONFIG_USB_FSL_ARC_OTG=y
-CONFIG_MXC_PWM=y
-CONFIG_MXC_REBOOT_MFGMODE=y
-CONFIG_CLK_DEBUG=y
-CONFIG_DMA_ZONE_SIZE=184
-# CONFIG_SWP_EMULATE is not set
-CONFIG_ARM_ERRATA_743622=y
-CONFIG_ARM_ERRATA_751472=y
-CONFIG_ARM_ERRATA_754322=y
-CONFIG_ARM_ERRATA_775420=y
-CONFIG_PCI_MSI=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_ARM_ERRATA_764369=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_SMP=y
-CONFIG_VMSPLIT_2G=y
-CONFIG_PREEMPT=y
-CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-CONFIG_HIGHMEM=y
-CONFIG_COMPACTION=y
-CONFIG_KSM=y
-CONFIG_SECCOMP=y
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="noinitrd console=ttymxc0,115200 root=/dev/mtdblock2 rw rootfstype=jffs2 ip=off"
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-CONFIG_CPU_FREQ_IMX=y
-CONFIG_VFP=y
-CONFIG_NEON=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_SUSPEND_DEVICE_TIME_DEBUG=y
-CONFIG_PM_RUNTIME=y
-CONFIG_PM_DEBUG=y
-CONFIG_APM_EMULATION=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-# CONFIG_INET_LRO is not set
-CONFIG_IPV6=y
-CONFIG_NETFILTER=y
-CONFIG_LLC2=y
-CONFIG_CAN=y
-CONFIG_CAN_RAW=y
-CONFIG_CAN_BCM=y
-CONFIG_CAN_VCAN=y
-CONFIG_BT=y
-CONFIG_BT_L2CAP=y
-CONFIG_BT_SCO=y
-CONFIG_BT_RFCOMM=y
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=y
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=y
-CONFIG_BT_HCIUART=y
-CONFIG_BT_HCIUART_H4=y
-CONFIG_CFG80211=y
-# CONFIG_WIRELESS_EXT_SYSFS is not set
-CONFIG_RFKILL=y
-CONFIG_RFKILL_INPUT=y
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_CONNECTOR=y
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_M25P80=y
-CONFIG_MTD_NAND=y
-CONFIG_MTD_UBI=y
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_MISC_DEVICES=y
-CONFIG_MXS_PERFMON=m
-CONFIG_MD=y
-CONFIG_BLK_DEV_DM=y
-CONFIG_NETDEVICES=y
-CONFIG_TUN=y
-CONFIG_MII=y
-CONFIG_MICREL_PHY=y
-CONFIG_NET_ETHERNET=y
-CONFIG_FEC_NAPI=y
-# CONFIG_NETDEV_1000 is not set
-# CONFIG_NETDEV_10000 is not set
-CONFIG_BCMDHD=m
-CONFIG_BCMDHD_FW_PATH="/lib/firmware/fw_bcmdhd.bin"
-CONFIG_BCMDHD_NVRAM_PATH="/lib/firmware/bcmdhd.cal"
-CONFIG_INPUT_POLLDEV=y
-CONFIG_INPUT_EVDEV=y
-CONFIG_KEYBOARD_GPIO=y
-# CONFIG_INPUT_MOUSE is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_EGALAX=y
-CONFIG_TOUCHSCREEN_EGALAX_SINGLE_TOUCH=y
-CONFIG_TOUCHSCREEN_FT5X06=y
-CONFIG_TOUCHSCREEN_FT5X06_SINGLE_TOUCH=y
-CONFIG_TOUCHSCREEN_TSC2004=y
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_UINPUT=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_SERIAL_IMX=y
-CONFIG_SERIAL_IMX_CONSOLE=y
-CONFIG_FSL_OTP=y
-CONFIG_HW_RANDOM=y
-CONFIG_MXS_VIIM=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_MUX=y
-CONFIG_I2C_MUX_GPIO=y
-CONFIG_I2C_IMX=y
-CONFIG_SPI=y
-CONFIG_SPI_IMX=y
-CONFIG_GPIO_SYSFS=y
-CONFIG_SENSORS_MAX17135=y
-CONFIG_SENSORS_MAG3110=y
-# CONFIG_MXC_MMA8450 is not set
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_NOWAYOUT=y
-CONFIG_IMX2_WDT=y
-CONFIG_MFD_WM8994=y
-CONFIG_MFD_PFUZE=y
-CONFIG_MFD_MAX17135=y
-CONFIG_REGULATOR=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-CONFIG_REGULATOR_PFUZE100=y
-CONFIG_REGULATOR_MAX17135=y
-CONFIG_MEDIA_SUPPORT=y
-CONFIG_VIDEO_DEV=y
-# CONFIG_RC_CORE is not set
-# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
-# CONFIG_VIDEO_MXC_CAMERA is not set
-# CONFIG_V4L_USB_DRIVERS is not set
-# CONFIG_RADIO_ADAPTERS is not set
-CONFIG_FB=y
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_BACKLIGHT_GENERIC is not set
-CONFIG_BACKLIGHT_PWM=y
-CONFIG_FB_MXC_LDB=y
-CONFIG_FB_MXC_HDMI=y
-CONFIG_LOGO=y
-CONFIG_SOUND=y
-CONFIG_SND=y
-# CONFIG_SND_DRIVERS is not set
-# CONFIG_SND_ARM is not set
-# CONFIG_SND_SPI is not set
-# CONFIG_SND_USB is not set
-CONFIG_SND_SOC=y
-CONFIG_SND_IMX_SOC=y
-CONFIG_SND_SOC_IMX_SGTL5000=y
-CONFIG_SND_SOC_IMX_SPDIF=y
-CONFIG_SND_SOC_IMX_HDMI=y
-CONFIG_HIDRAW=y
-CONFIG_HID_QUANTA=y
-CONFIG_USB=y
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_DEVICE_CLASS is not set
-CONFIG_USB_SUSPEND=y
-# CONFIG_USB_OTG_WHITELIST is not set
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ARC=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-CONFIG_USB_ACM=y
-CONFIG_USB_SERIAL=y
-CONFIG_USB_SERIAL_QUALCOMM=y
-CONFIG_USB_SERIAL_OPTION=y
-CONFIG_USB_GADGET=y
-CONFIG_USB_G_SERIAL=m
-CONFIG_MXC_OTG=y
-CONFIG_MMC=y
-CONFIG_MMC_UNSAFE_RESUME=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_PLTFM=y
-CONFIG_MMC_SDHCI_ESDHC_IMX=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_GPIO=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_INTF_DEV_UIE_EMUL=y
-CONFIG_RTC_DRV_ISL1208=y
-CONFIG_DMADEVICES=y
-CONFIG_IMX_SDMA=y
-CONFIG_MXC_IPU=y
-# CONFIG_MXC_HMP4E is not set
-# CONFIG_MXC_HWEVENT is not set
-CONFIG_MXC_ASRC=y
-CONFIG_MXC_GPU_VIV=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-CONFIG_EXT4_FS=y
-CONFIG_AUTOFS4_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_SQUASHFS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_ROOT_NFS=y
-CONFIG_PARTITION_ADVANCED=y
-CONFIG_EFI_PARTITION=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_ASCII=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_UTF8=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_FS=y
-CONFIG_SYSCTL_SYSCALL_CHECK=y
-# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
-CONFIG_CRYPTO_TEST=m
-CONFIG_CRYPTO_CCM=y
-CONFIG_CRYPTO_GCM=y
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_LRW=y
-CONFIG_CRYPTO_PCBC=y
-CONFIG_CRYPTO_XTS=y
-CONFIG_CRYPTO_DES=y
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM=y
-# CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API is not set
-CONFIG_CRC_CCITT=m
-CONFIG_FHANDLE=y
diff --git a/recipes-kernel/linux/linux-boundary-3.0.35/nitrogen6x/defconfig b/recipes-kernel/linux/linux-boundary-3.0.35/nitrogen6x/defconfig
deleted file mode 100644
index 6567422..0000000
--- a/recipes-kernel/linux/linux-boundary-3.0.35/nitrogen6x/defconfig
+++ /dev/null
@@ -1,281 +0,0 @@
-CONFIG_EXPERIMENTAL=y
-CONFIG_SYSVIPC=y
-CONFIG_FHANDLE=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_CGROUPS=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_EMBEDDED=y
-CONFIG_PERF_EVENTS=y
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-CONFIG_ARCH_MXC=y
-CONFIG_GPIO_PCA953X=y
-CONFIG_ARCH_MX6=y
-CONFIG_FORCE_MAX_ZONEORDER=14
-CONFIG_MACH_MX6_NITROGEN6X=y
-CONFIG_IMX_PCIE=y
-CONFIG_PCIE_FORCE_GEN1=y
-CONFIG_USB_EHCI_ARC_H1=y
-CONFIG_USB_FSL_ARC_OTG=y
-CONFIG_MXC_PWM=y
-CONFIG_MXC_REBOOT_MFGMODE=y
-CONFIG_CLK_DEBUG=y
-CONFIG_DMA_ZONE_SIZE=184
-# CONFIG_SWP_EMULATE is not set
-CONFIG_ARM_ERRATA_743622=y
-CONFIG_ARM_ERRATA_751472=y
-CONFIG_ARM_ERRATA_754322=y
-CONFIG_ARM_ERRATA_775420=y
-CONFIG_PCI_MSI=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_ARM_ERRATA_764369=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_SMP=y
-CONFIG_PREEMPT=y
-CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-CONFIG_HIGHMEM=y
-CONFIG_COMPACTION=y
-CONFIG_KSM=y
-CONFIG_SECCOMP=y
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="noinitrd console=ttymxc1,115200 root=/dev/mmcblk0p1"
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-CONFIG_CPU_FREQ_IMX=y
-CONFIG_VFP=y
-CONFIG_NEON=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_SUSPEND_DEVICE_TIME_DEBUG=y
-CONFIG_PM_RUNTIME=y
-CONFIG_PM_DEBUG=y
-CONFIG_APM_EMULATION=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-# CONFIG_INET_LRO is not set
-CONFIG_IPV6=y
-CONFIG_NETFILTER=y
-CONFIG_LLC2=y
-CONFIG_CAN=y
-CONFIG_CAN_RAW=y
-CONFIG_CAN_BCM=y
-CONFIG_CAN_VCAN=y
-CONFIG_CAN_FLEXCAN=y
-CONFIG_BT=y
-CONFIG_BT_L2CAP=y
-CONFIG_BT_SCO=y
-CONFIG_BT_RFCOMM=y
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=y
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=y
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIUART=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_CFG80211=y
-CONFIG_MAC80211=y
-CONFIG_RFKILL=y
-CONFIG_RFKILL_INPUT=y
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_CONNECTOR=y
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_M25P80=y
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_MISC_DEVICES=y
-CONFIG_MXS_PERFMON=m
-CONFIG_BLK_DEV_SD=y
-CONFIG_SCSI_MULTI_LUN=y
-CONFIG_ATA=y
-# CONFIG_SATA_PMP is not set
-CONFIG_SATA_AHCI_PLATFORM=y
-CONFIG_MD=y
-CONFIG_BLK_DEV_DM=y
-CONFIG_NETDEVICES=y
-CONFIG_TUN=y
-CONFIG_MII=y
-CONFIG_MICREL_PHY=y
-CONFIG_NET_ETHERNET=y
-CONFIG_FEC_NAPI=y
-# CONFIG_NETDEV_1000 is not set
-# CONFIG_NETDEV_10000 is not set
-CONFIG_HOSTAP=y
-CONFIG_WL12XX_MENU=y
-CONFIG_WL12XX=y
-CONFIG_WL12XX_SDIO=m
-CONFIG_INPUT_POLLDEV=y
-CONFIG_INPUT_EVDEV=y
-CONFIG_KEYBOARD_GPIO=y
-# CONFIG_INPUT_MOUSE is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_EGALAX=y
-CONFIG_TOUCHSCREEN_EGALAX_SINGLE_TOUCH=y
-CONFIG_TOUCHSCREEN_FT5X06=y
-CONFIG_TOUCHSCREEN_FT5X06_SINGLE_TOUCH=y
-CONFIG_TOUCHSCREEN_TSC2004=y
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_UINPUT=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_SERIAL_IMX=y
-CONFIG_SERIAL_IMX_CONSOLE=y
-CONFIG_FSL_OTP=y
-CONFIG_HW_RANDOM=y
-CONFIG_MXS_VIIM=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_IMX=y
-CONFIG_SPI=y
-CONFIG_SPI_IMX=y
-CONFIG_GPIO_SYSFS=y
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_NOWAYOUT=y
-CONFIG_IMX2_WDT=y
-CONFIG_REGULATOR=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-CONFIG_MEDIA_SUPPORT=y
-CONFIG_VIDEO_DEV=y
-# CONFIG_RC_CORE is not set
-# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
-CONFIG_VIDEO_MXC_CAMERA=m
-CONFIG_MXC_CAMERA_OV5640=m
-CONFIG_MXC_CAMERA_OV5642=m
-CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
-CONFIG_USB_VIDEO_CLASS=m
-# CONFIG_RADIO_ADAPTERS is not set
-CONFIG_DRM=m
-CONFIG_DRM_VIVANTE=m
-CONFIG_FB=y
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_BACKLIGHT_GENERIC is not set
-CONFIG_BACKLIGHT_PWM=y
-CONFIG_FB_MXC_LDB=y
-CONFIG_FB_MXC_BT656=y
-CONFIG_FB_MXC_MIPI_DSI=y
-CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
-CONFIG_FB_MXC_HDMI=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FONTS=y
-CONFIG_FONT_8x16=y
-CONFIG_LOGO=y
-CONFIG_SOUND=y
-CONFIG_SND=y
-CONFIG_SND_USB_AUDIO=y
-CONFIG_SND_SOC=y
-CONFIG_SND_IMX_SOC=y
-CONFIG_SND_SOC_IMX_SGTL5000=y
-CONFIG_SND_SOC_IMX_SPDIF=y
-CONFIG_SND_SOC_IMX_HDMI=y
-CONFIG_HIDRAW=y
-CONFIG_HID_NTRIG=y
-CONFIG_HID_QUANTA=y
-CONFIG_USB=y
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_DEVICE_CLASS is not set
-CONFIG_USB_SUSPEND=y
-# CONFIG_USB_OTG_WHITELIST is not set
-CONFIG_USB_XHCI_HCD=m
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ARC=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-CONFIG_USB_ACM=y
-CONFIG_USB_STORAGE=y
-CONFIG_USB_SERIAL=y
-CONFIG_USB_SERIAL_FTDI_SIO=y
-CONFIG_USB_SERIAL_CP210X=y
-CONFIG_USB_SERIAL_PL2303=y
-CONFIG_USB_SERIAL_QUALCOMM=y
-CONFIG_USB_SERIAL_OPTION=y
-CONFIG_USB_SERIAL_KEYSPAN=y
-CONFIG_USB_GADGET=y
-CONFIG_USB_ETH=m
-CONFIG_USB_FILE_STORAGE=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_MXC_OTG=y
-CONFIG_MMC=y
-CONFIG_MMC_UNSAFE_RESUME=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_PLTFM=y
-CONFIG_MMC_SDHCI_ESDHC_IMX=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_GPIO=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_INTF_DEV_UIE_EMUL=y
-CONFIG_RTC_DRV_ISL1208=y
-CONFIG_RTC_DRV_SNVS=y
-CONFIG_DMADEVICES=y
-CONFIG_MXC_PXP_V2=y
-CONFIG_IMX_SDMA=y
-CONFIG_MXC_IPU=y
-# CONFIG_MXC_HMP4E is not set
-# CONFIG_MXC_HWEVENT is not set
-CONFIG_MXC_ASRC=y
-CONFIG_MXC_GPU_VIV=y
-CONFIG_MXC_MIPI_CSI2=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-CONFIG_EXT4_FS=y
-CONFIG_AUTOFS4_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_SQUASHFS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_ROOT_NFS=y
-CONFIG_PARTITION_ADVANCED=y
-CONFIG_EFI_PARTITION=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_UTF8=m
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_FS=y
-CONFIG_SYSCTL_SYSCALL_CHECK=y
-# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
-CONFIG_CRYPTO_TEST=m
-CONFIG_CRYPTO_CCM=y
-CONFIG_CRYPTO_GCM=y
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_LRW=y
-CONFIG_CRYPTO_PCBC=y
-CONFIG_CRYPTO_XTS=y
-CONFIG_CRYPTO_DES=y
-CONFIG_CRYPTO_DEFLATE=y
-CONFIG_CRYPTO_LZO=y
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM=y
-# CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API is not set
-CONFIG_CRC_CCITT=m
-CONFIG_FHANDLE=y
diff --git a/recipes-kernel/linux/linux-boundary-3.10.17/nitrogen6x-lite/defconfig b/recipes-kernel/linux/linux-boundary-3.10.17/nitrogen6x-lite/defconfig
deleted file mode 100644
index 3d33c82..0000000
--- a/recipes-kernel/linux/linux-boundary-3.10.17/nitrogen6x-lite/defconfig
+++ /dev/null
@@ -1,315 +0,0 @@
-CONFIG_KERNEL_LZO=y
-CONFIG_SYSVIPC=y
-CONFIG_FHANDLE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=18
-CONFIG_CGROUPS=y
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_EMBEDDED=y
-CONFIG_PERF_EVENTS=y
-# CONFIG_COMPAT_BRK is not set
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_GPIO_PCA953X=y
-CONFIG_ARCH_MXC=y
-CONFIG_SOC_IMX6Q=y
-CONFIG_SOC_IMX6SL=y
-CONFIG_PCI=y
-CONFIG_PCI_MSI=y
-CONFIG_PCI_IMX6=y
-CONFIG_RC_MODE_IN_EP_RC_SYS=y
-CONFIG_SMP=y
-CONFIG_PREEMPT_VOLUNTARY=y
-CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-CONFIG_KSM=y
-CONFIG_SECCOMP=y
-CONFIG_CMDLINE="noinitrd console=ttymxc0,115200"
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-CONFIG_ARM_IMX6_CPUFREQ=y
-CONFIG_CPU_IDLE=y
-CONFIG_VFP=y
-CONFIG_NEON=y
-CONFIG_BINFMT_MISC=m
-CONFIG_PM_RUNTIME=y
-CONFIG_PM_DEBUG=y
-CONFIG_PM_TEST_SUSPEND=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_LRO is not set
-CONFIG_IPV6=y
-CONFIG_NETFILTER=y
-CONFIG_BT=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_CFG80211=m
-CONFIG_MAC80211=m
-CONFIG_RFKILL=y
-CONFIG_RFKILL_GPIO=y
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-# CONFIG_STANDALONE is not set
-CONFIG_CMA=y
-CONFIG_CMA_SIZE_MBYTES=256
-CONFIG_IMX_WEIM=y
-CONFIG_CONNECTOR=y
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_JEDECPROBE=y
-CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_CFI_STAA=y
-CONFIG_MTD_PHYSMAP_OF=y
-CONFIG_MTD_M25P80=y
-CONFIG_MTD_SST25L=y
-CONFIG_MTD_UBI=y
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_SIZE=65536
-CONFIG_EEPROM_AT24=y
-CONFIG_EEPROM_AT25=y
-# CONFIG_SCSI_PROC_FS is not set
-CONFIG_BLK_DEV_SD=y
-CONFIG_SCSI_MULTI_LUN=y
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SCAN_ASYNC=y
-# CONFIG_SCSI_LOWLEVEL is not set
-CONFIG_ATA=y
-CONFIG_SATA_AHCI_PLATFORM=y
-CONFIG_AHCI_IMX=y
-CONFIG_PATA_IMX=y
-CONFIG_NETDEVICES=y
-CONFIG_MII=y
-# CONFIG_NET_CADENCE is not set
-# CONFIG_NET_VENDOR_BROADCOM is not set
-# CONFIG_NET_VENDOR_CIRRUS is not set
-# CONFIG_NET_VENDOR_FARADAY is not set
-# CONFIG_NET_VENDOR_INTEL is not set
-# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MICREL is not set
-# CONFIG_NET_VENDOR_MICROCHIP is not set
-# CONFIG_NET_VENDOR_NATSEMI is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-# CONFIG_NET_VENDOR_SMSC is not set
-# CONFIG_NET_VENDOR_STMICRO is not set
-# CONFIG_NET_VENDOR_WIZNET is not set
-CONFIG_MICREL_PHY=y
-CONFIG_BRCMFMAC=m
-CONFIG_IWLWIFI=m
-CONFIG_INPUT_POLLDEV=y
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_EVDEV=y
-CONFIG_KEYBOARD_GPIO=y
-CONFIG_KEYBOARD_IMX=y
-# CONFIG_MOUSE_PS2 is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_AR1020_I2C=y
-CONFIG_TOUCHSCREEN_EGALAX=y
-CONFIG_TOUCHSCREEN_FT5X06=y
-CONFIG_TOUCHSCREEN_ILI210X=y
-CONFIG_TOUCHSCREEN_TSC2004=y
-CONFIG_SERIO_SERPORT=m
-CONFIG_VT_HW_CONSOLE_BINDING=y
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_IMX=y
-CONFIG_SERIAL_IMX_CONSOLE=y
-CONFIG_SERIAL_FSL_LPUART=y
-CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
-# CONFIG_I2C_COMPAT is not set
-CONFIG_I2C_CHARDEV=y
-# CONFIG_I2C_HELPER_AUTO is not set
-CONFIG_I2C_ALGOPCF=m
-CONFIG_I2C_ALGOPCA=m
-CONFIG_I2C_IMX=y
-CONFIG_SPI=y
-CONFIG_SPI_IMX=y
-CONFIG_GPIO_SYSFS=y
-CONFIG_POWER_SUPPLY=y
-CONFIG_SENSORS_MAG3110=y
-CONFIG_THERMAL=y
-CONFIG_CPU_THERMAL=y
-CONFIG_IMX_THERMAL=y
-CONFIG_DEVICE_THERMAL=y
-CONFIG_WATCHDOG=y
-CONFIG_IMX2_WDT=y
-CONFIG_REGULATOR=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-CONFIG_REGULATOR_ANATOP=y
-CONFIG_MEDIA_SUPPORT=y
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_VIDEO_V4L2_INT_DEVICE=m
-CONFIG_V4L_PLATFORM_DRIVERS=y
-CONFIG_VIDEO_MXC_OUTPUT=y
-CONFIG_VIDEO_MXC_CAPTURE=m
-CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
-CONFIG_VIDEO_MXC_IPU_OUTPUT=y
-CONFIG_SOC_CAMERA=y
-# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
-# CONFIG_DVB_AU8522_V4L is not set
-# CONFIG_DVB_TUNER_DIB0070 is not set
-# CONFIG_DVB_TUNER_DIB0090 is not set
-CONFIG_DRM=y
-CONFIG_DRM_VIVANTE=y
-CONFIG_FB=y
-CONFIG_FB_MXS=y
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=y
-CONFIG_LCD_L4F00242T03=y
-CONFIG_LCD_PLATFORM=y
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_PWM=y
-CONFIG_FB_MXC_SYNC_PANEL=y
-CONFIG_FB_MXC_LDB=y
-CONFIG_FB_MXC_MIPI_DSI=y
-CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
-CONFIG_FB_MXC_HDMI=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-CONFIG_FONTS=y
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-CONFIG_LOGO=y
-CONFIG_SOUND=y
-CONFIG_SND=y
-# CONFIG_SND_DRIVERS is not set
-# CONFIG_SND_ARM is not set
-# CONFIG_SND_SPI is not set
-# CONFIG_SND_USB is not set
-CONFIG_SND_SOC=y
-CONFIG_SND_IMX_SOC=y
-CONFIG_SND_SOC_IMX_SGTL5000=y
-CONFIG_SND_SOC_IMX_HDMI=y
-CONFIG_USB=y
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_STORAGE=y
-CONFIG_USB_CHIPIDEA=y
-CONFIG_USB_CHIPIDEA_UDC=y
-CONFIG_USB_CHIPIDEA_HOST=y
-CONFIG_USB_SERIAL=y
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_CP210X=y
-CONFIG_USB_SERIAL_FTDI_SIO=y
-CONFIG_USB_SERIAL_KEYSPAN=y
-CONFIG_USB_SERIAL_PL2303=y
-CONFIG_USB_SERIAL_QUALCOMM=y
-CONFIG_USB_SERIAL_OPTION=y
-CONFIG_USB_PHY=y
-CONFIG_USB_MXS_PHY=y
-CONFIG_USB_GADGET=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_FUNCTIONFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_G_MULTI=m
-CONFIG_MMC=y
-CONFIG_MMC_UNSAFE_RESUME=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_PLTFM=y
-CONFIG_MMC_SDHCI_ESDHC_IMX=y
-CONFIG_MXC_IPU=y
-CONFIG_MXC_GPU_VIV=y
-CONFIG_MXC_ASRC=y
-CONFIG_MXC_MIPI_CSI2=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_INTF_DEV_UIE_EMUL=y
-CONFIG_RTC_DRV_ISL1208=y
-CONFIG_RTC_DRV_SNVS=y
-CONFIG_DMADEVICES=y
-# CONFIG_MX3_IPU is not set
-CONFIG_MXC_PXP_V2=y
-CONFIG_IMX_SDMA=y
-CONFIG_STAGING=y
-CONFIG_COMMON_CLK_DEBUG=y
-# CONFIG_IOMMU_SUPPORT is not set
-CONFIG_PWM=y
-CONFIG_PWM_IMX=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
-CONFIG_AUTOFS4_FS=y
-CONFIG_FUSE_FS=y
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_JFFS2_FS=y
-CONFIG_UBIFS_FS=y
-CONFIG_SQUASHFS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_ROOT_NFS=y
-CONFIG_NLS_DEFAULT="cp437"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_ASCII=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_UTF8=y
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_SCHED_DEBUG is not set
-# CONFIG_DEBUG_BUGVERBOSE is not set
-# CONFIG_FTRACE is not set
-# CONFIG_ARM_UNWIND is not set
-CONFIG_SECURITYFS=y
-CONFIG_CRYPTO_USER=y
-CONFIG_CRYPTO_CCM=y
-CONFIG_CRYPTO_GCM=y
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=y
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=m
diff --git a/recipes-kernel/linux/linux-boundary-3.10.17/nitrogen6x/defconfig b/recipes-kernel/linux/linux-boundary-3.10.17/nitrogen6x/defconfig
deleted file mode 100644
index 00ff4b2..0000000
--- a/recipes-kernel/linux/linux-boundary-3.10.17/nitrogen6x/defconfig
+++ /dev/null
@@ -1,329 +0,0 @@
-CONFIG_KERNEL_LZO=y
-CONFIG_SYSVIPC=y
-CONFIG_FHANDLE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=18
-CONFIG_CGROUPS=y
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_EMBEDDED=y
-CONFIG_PERF_EVENTS=y
-# CONFIG_COMPAT_BRK is not set
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_GPIO_PCA953X=y
-CONFIG_ARCH_MXC=y
-CONFIG_SOC_IMX6Q=y
-CONFIG_SOC_IMX6SL=y
-CONFIG_PCI=y
-CONFIG_PCI_MSI=y
-CONFIG_PCI_IMX6=y
-CONFIG_RC_MODE_IN_EP_RC_SYS=y
-CONFIG_SMP=y
-CONFIG_PREEMPT_VOLUNTARY=y
-CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-CONFIG_HIGHMEM=y
-CONFIG_KSM=y
-CONFIG_SECCOMP=y
-CONFIG_CMDLINE="noinitrd console=ttymxc0,115200"
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-CONFIG_ARM_IMX6_CPUFREQ=y
-CONFIG_CPU_IDLE=y
-CONFIG_VFP=y
-CONFIG_NEON=y
-CONFIG_BINFMT_MISC=m
-CONFIG_PM_RUNTIME=y
-CONFIG_PM_DEBUG=y
-CONFIG_PM_TEST_SUSPEND=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_LRO is not set
-CONFIG_IPV6=y
-CONFIG_NETFILTER=y
-CONFIG_CAN=m
-CONFIG_CAN_FLEXCAN=m
-CONFIG_BT=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_LL=y
-CONFIG_CFG80211=m
-CONFIG_MAC80211=m
-CONFIG_RFKILL=y
-CONFIG_RFKILL_GPIO=y
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-# CONFIG_STANDALONE is not set
-CONFIG_CMA=y
-CONFIG_CMA_SIZE_MBYTES=256
-CONFIG_IMX_WEIM=y
-CONFIG_CONNECTOR=y
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_JEDECPROBE=y
-CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_CFI_STAA=y
-CONFIG_MTD_PHYSMAP_OF=y
-CONFIG_MTD_M25P80=y
-CONFIG_MTD_SST25L=y
-CONFIG_MTD_UBI=y
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_SIZE=65536
-CONFIG_EEPROM_AT24=y
-CONFIG_EEPROM_AT25=y
-# CONFIG_SCSI_PROC_FS is not set
-CONFIG_BLK_DEV_SD=y
-CONFIG_SCSI_MULTI_LUN=y
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SCAN_ASYNC=y
-# CONFIG_SCSI_LOWLEVEL is not set
-CONFIG_ATA=y
-CONFIG_SATA_AHCI_PLATFORM=y
-CONFIG_AHCI_IMX=y
-CONFIG_PATA_IMX=y
-CONFIG_NETDEVICES=y
-CONFIG_MII=y
-# CONFIG_NET_CADENCE is not set
-# CONFIG_NET_VENDOR_BROADCOM is not set
-# CONFIG_NET_VENDOR_CIRRUS is not set
-# CONFIG_NET_VENDOR_FARADAY is not set
-# CONFIG_NET_VENDOR_INTEL is not set
-# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MICREL is not set
-# CONFIG_NET_VENDOR_MICROCHIP is not set
-# CONFIG_NET_VENDOR_NATSEMI is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-# CONFIG_NET_VENDOR_SMSC is not set
-# CONFIG_NET_VENDOR_STMICRO is not set
-# CONFIG_NET_VENDOR_WIZNET is not set
-CONFIG_MICREL_PHY=y
-CONFIG_IWLWIFI=m
-CONFIG_WL_TI=y
-CONFIG_WL12XX=m
-CONFIG_WLCORE_SDIO=m
-# CONFIG_WILINK_PLATFORM_DATA is not set
-CONFIG_INPUT_POLLDEV=y
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_EVDEV=y
-CONFIG_KEYBOARD_GPIO=y
-CONFIG_KEYBOARD_IMX=y
-# CONFIG_MOUSE_PS2 is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_AR1020_I2C=y
-CONFIG_TOUCHSCREEN_EGALAX=y
-CONFIG_TOUCHSCREEN_FT5X06=y
-CONFIG_TOUCHSCREEN_ILI210X=y
-CONFIG_TOUCHSCREEN_TSC2004=y
-CONFIG_SERIO_SERPORT=m
-CONFIG_VT_HW_CONSOLE_BINDING=y
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_IMX=y
-CONFIG_SERIAL_IMX_CONSOLE=y
-CONFIG_SERIAL_FSL_LPUART=y
-CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
-# CONFIG_I2C_COMPAT is not set
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_MUX=y
-CONFIG_I2C_MUX_GPIO=y
-# CONFIG_I2C_HELPER_AUTO is not set
-CONFIG_I2C_ALGOPCF=m
-CONFIG_I2C_ALGOPCA=m
-CONFIG_I2C_IMX=y
-CONFIG_SPI=y
-CONFIG_SPI_IMX=y
-CONFIG_SPI_SPIDEV=y
-CONFIG_GPIO_SYSFS=y
-CONFIG_POWER_SUPPLY=y
-CONFIG_SENSORS_MAG3110=y
-CONFIG_THERMAL=y
-CONFIG_CPU_THERMAL=y
-CONFIG_IMX_THERMAL=y
-CONFIG_DEVICE_THERMAL=y
-CONFIG_WATCHDOG=y
-CONFIG_IMX2_WDT=y
-CONFIG_REGULATOR=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-CONFIG_REGULATOR_ANATOP=y
-CONFIG_MEDIA_SUPPORT=y
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_VIDEO_V4L2_INT_DEVICE=m
-CONFIG_V4L_PLATFORM_DRIVERS=y
-CONFIG_VIDEO_MXC_OUTPUT=y
-CONFIG_VIDEO_MXC_CAPTURE=m
-CONFIG_VIDEO_MXC_CSI_CAMERA=m
-CONFIG_MXC_CAMERA_OV5640=m
-CONFIG_MXC_CAMERA_OV5642=m
-CONFIG_MXC_CAMERA_OV5640_MIPI=m
-CONFIG_MXC_TVIN_ADV7180=m
-CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
-CONFIG_VIDEO_MXC_IPU_OUTPUT=y
-CONFIG_SOC_CAMERA=y
-# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
-# CONFIG_DVB_AU8522_V4L is not set
-# CONFIG_DVB_TUNER_DIB0070 is not set
-# CONFIG_DVB_TUNER_DIB0090 is not set
-CONFIG_DRM=y
-CONFIG_DRM_VIVANTE=y
-CONFIG_FB=y
-CONFIG_FB_MXS=y
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=y
-CONFIG_LCD_L4F00242T03=y
-CONFIG_LCD_PLATFORM=y
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_PWM=y
-CONFIG_FB_MXC_SYNC_PANEL=y
-CONFIG_FB_MXC_LDB=y
-CONFIG_FB_MXC_MIPI_DSI=y
-CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
-CONFIG_FB_MXC_HDMI=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-CONFIG_FONTS=y
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-CONFIG_LOGO=y
-CONFIG_SOUND=y
-CONFIG_SND=y
-# CONFIG_SND_DRIVERS is not set
-# CONFIG_SND_ARM is not set
-# CONFIG_SND_SPI is not set
-# CONFIG_SND_USB is not set
-CONFIG_SND_SOC=y
-CONFIG_SND_IMX_SOC=y
-CONFIG_SND_SOC_IMX_SGTL5000=y
-CONFIG_SND_SOC_IMX_HDMI=y
-CONFIG_USB=y
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_STORAGE=y
-CONFIG_USB_CHIPIDEA=y
-CONFIG_USB_CHIPIDEA_UDC=y
-CONFIG_USB_CHIPIDEA_HOST=y
-CONFIG_USB_SERIAL=y
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_CP210X=y
-CONFIG_USB_SERIAL_FTDI_SIO=y
-CONFIG_USB_SERIAL_KEYSPAN=y
-CONFIG_USB_SERIAL_PL2303=y
-CONFIG_USB_SERIAL_QUALCOMM=y
-CONFIG_USB_SERIAL_OPTION=y
-CONFIG_USB_PHY=y
-CONFIG_USB_MXS_PHY=y
-CONFIG_USB_GADGET=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_FUNCTIONFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_G_MULTI=m
-CONFIG_MMC=y
-CONFIG_MMC_UNSAFE_RESUME=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_PLTFM=y
-CONFIG_MMC_SDHCI_ESDHC_IMX=y
-CONFIG_MXC_IPU=y
-CONFIG_MXC_GPU_VIV=y
-CONFIG_MXC_ASRC=y
-CONFIG_MXC_MIPI_CSI2=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_PWM=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_INTF_DEV_UIE_EMUL=y
-CONFIG_RTC_DRV_ISL1208=y
-CONFIG_RTC_DRV_SNVS=y
-CONFIG_DMADEVICES=y
-# CONFIG_MX3_IPU is not set
-CONFIG_MXC_PXP_V2=y
-CONFIG_IMX_SDMA=y
-CONFIG_STAGING=y
-CONFIG_COMMON_CLK_DEBUG=y
-# CONFIG_IOMMU_SUPPORT is not set
-CONFIG_PWM=y
-CONFIG_PWM_IMX=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
-CONFIG_AUTOFS4_FS=y
-CONFIG_FUSE_FS=y
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_JFFS2_FS=y
-CONFIG_UBIFS_FS=y
-CONFIG_SQUASHFS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_ROOT_NFS=y
-CONFIG_NLS_DEFAULT="cp437"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_ASCII=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_UTF8=y
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_SCHED_DEBUG is not set
-# CONFIG_DEBUG_BUGVERBOSE is not set
-# CONFIG_FTRACE is not set
-# CONFIG_ARM_UNWIND is not set
-CONFIG_SECURITYFS=y
-CONFIG_CRYPTO_USER=y
-CONFIG_CRYPTO_CCM=y
-CONFIG_CRYPTO_GCM=y
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=y
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=m
diff --git a/recipes-kernel/linux/linux-boundary_3.0.35.bb b/recipes-kernel/linux/linux-boundary_3.0.35.bb
deleted file mode 100644
index 6106260..0000000
--- a/recipes-kernel/linux/linux-boundary_3.0.35.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-# Adapted from linux-imx.inc, copyright (C) 2013, 2014 O.S. Systems Software LTDA
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-require recipes-kernel/linux/linux-imx.inc
-
-SUMMARY = "Linux kernel for Boundary Devices boards"
-
-SRC_URI = "git://github.com/boundarydevices/linux-imx6.git;branch=${SRCBRANCH} \
-           file://ENGR00278350-gpu-viante-4.6.9p13-kernel-part-integra.patch \
-           file://defconfig"
-
-LOCALVERSION = "-4.1.0+yocto"
-SRCBRANCH = "boundary-imx_3.0.35_4.1.0"
-SRCREV = "d9bc8a421bbcbd1860580e26833a20a375c951ef"
-
-COMPATIBLE_MACHINE = "(mx6)"
-COMPATIBLE_MACHINE = "(nitrogen6x|nitrogen6x-lite)"
diff --git a/recipes-kernel/linux/linux-boundary_3.10.17.bb b/recipes-kernel/linux/linux-boundary_3.10.17.bb
deleted file mode 100644
index 2e2eb65..0000000
--- a/recipes-kernel/linux/linux-boundary_3.10.17.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-# Adapted from linux-imx.inc, copyright (C) 2013, 2014 O.S. Systems Software LTDA
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-require recipes-kernel/linux/linux-imx.inc
-require recipes-kernel/linux/linux-dtb.inc
-
-SUMMARY = "Linux kernel for Boundary Devices boards"
-
-SRC_URI = "git://github.com/boundarydevices/linux-imx6.git;branch=${SRCBRANCH} \
-           file://defconfig"
-
-LOCALVERSION = "-1.0.2_ga+yocto"
-SRCBRANCH = "boundary-imx_3.10.17_1.0.2_ga"
-SRCREV = "f7a1e1870a3f53d0128e149261f9092fe6e02462"
-DEPENDS += "lzop-native bc-native"
-COMPATIBLE_MACHINE = "(mx6)"
-COMPATIBLE_MACHINE = "(nitrogen6x|nitrogen6x-lite)"
-- 
1.9.1



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [meta-fsl-arm-extra][PATCH V2] linux-boundary: Add support for kernel 3.10.31_1.1.0_beta
  2014-11-24  1:57 ` [meta-fsl-arm-extra][PATCH V2] " Eric Nelson
  2014-11-24 19:48   ` [meta-fsl-arm-extra][PATCH] nitrogen6x*, imx6qsabrelite: default to kernel 3.10.31 Eric Nelson
@ 2014-11-26 18:06   ` Gary Thomas
  2014-11-26 18:10     ` Gary Thomas
  1 sibling, 1 reply; 24+ messages in thread
From: Gary Thomas @ 2014-11-26 18:06 UTC (permalink / raw)
  To: meta-freescale

On 2014-11-23 18:57, Eric Nelson wrote:
> This patch adds support for the 3.10.31_1.1.0_beta kernelfor Boundary
> Devices BD-SL-i.MX6 (built to SABRE Lite), Nitrogen6X, Nitrogen6_Max
> and and Nitrogen6_Lite boards.
>
> To try it out, set PREFERRED_VERSION_linux-boundary = "3.10.31" in your
> local.conf file.
>
> Minimal testing has been performed at this point, so don't expect it
> to be production-ready.
>
> Note that the 3.10.31 kernel contains an update to provide fixed
> numbering for /dev/mmcblk devices instead of numbering them by
> order of initialization.
>
> Support has been added into the boot script, but requires setting
> a variable in U-Boot:
>
> 	U-Boot > setenv sdphys 1
> 	U-Boot > saveenv
> 	U-Boot > boot
>
> See this post for some additional commentary:
> 	http://boundarydevices.com/root-equals
>
> Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>

When I tried this patchset, it fails to boot my SabreLite.  The
important bits seem to be the MMC device numbering.  From the boot log:
     <snip>
   mmc3: new high speed SDHC card at address aaaa
   mmcblk3: mmc3:aaaa SU04G 3.69 GiB
    mmcblk3: p1 p2
     <snip>
   ALSA device list:
     #0: imx6q-sabrelite-sgtl5000
   Waiting for root device /dev/mmcblk0p2...

I see no difference when setting 'sdphys' or not.  Perhaps I missed some
other patch (like to the boot scripts)?

I'd really like to get my board back up with the latest kernel.

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [meta-fsl-arm-extra][PATCH V2] linux-boundary: Add support for kernel 3.10.31_1.1.0_beta
  2014-11-26 18:06   ` [meta-fsl-arm-extra][PATCH V2] linux-boundary: Add support for kernel 3.10.31_1.1.0_beta Gary Thomas
@ 2014-11-26 18:10     ` Gary Thomas
  2014-11-26 19:26       ` Eric Nelson
  0 siblings, 1 reply; 24+ messages in thread
From: Gary Thomas @ 2014-11-26 18:10 UTC (permalink / raw)
  To: meta-freescale

On 2014-11-26 11:06, Gary Thomas wrote:
> On 2014-11-23 18:57, Eric Nelson wrote:
>> This patch adds support for the 3.10.31_1.1.0_beta kernelfor Boundary
>> Devices BD-SL-i.MX6 (built to SABRE Lite), Nitrogen6X, Nitrogen6_Max
>> and and Nitrogen6_Lite boards.
>>
>> To try it out, set PREFERRED_VERSION_linux-boundary = "3.10.31" in your
>> local.conf file.
>>
>> Minimal testing has been performed at this point, so don't expect it
>> to be production-ready.
>>
>> Note that the 3.10.31 kernel contains an update to provide fixed
>> numbering for /dev/mmcblk devices instead of numbering them by
>> order of initialization.
>>
>> Support has been added into the boot script, but requires setting
>> a variable in U-Boot:
>>
>>     U-Boot > setenv sdphys 1
>>     U-Boot > saveenv
>>     U-Boot > boot
>>
>> See this post for some additional commentary:
>>     http://boundarydevices.com/root-equals
>>
>> Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
>
> When I tried this patchset, it fails to boot my SabreLite.  The
> important bits seem to be the MMC device numbering.  From the boot log:
>      <snip>
>    mmc3: new high speed SDHC card at address aaaa
>    mmcblk3: mmc3:aaaa SU04G 3.69 GiB
>     mmcblk3: p1 p2
>      <snip>
>    ALSA device list:
>      #0: imx6q-sabrelite-sgtl5000
>    Waiting for root device /dev/mmcblk0p2...
>
> I see no difference when setting 'sdphys' or not.  Perhaps I missed some
> other patch (like to the boot scripts)?

BTW, I'm building the scripts from u-boot-script-boundary/v2014.07+gitAUTOINC+f870252376
and there seems to be nothing in there about sdphys

>
> I'd really like to get my board back up with the latest kernel.
>

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [meta-fsl-arm-extra][PATCH V2] linux-boundary: Add support for kernel 3.10.31_1.1.0_beta
  2014-11-26 18:10     ` Gary Thomas
@ 2014-11-26 19:26       ` Eric Nelson
  2014-11-27  0:26         ` Gary Thomas
  0 siblings, 1 reply; 24+ messages in thread
From: Eric Nelson @ 2014-11-26 19:26 UTC (permalink / raw)
  To: Gary Thomas, meta-freescale

Hi Gary,

On 11/26/2014 11:10 AM, Gary Thomas wrote:
> On 2014-11-26 11:06, Gary Thomas wrote:
>> On 2014-11-23 18:57, Eric Nelson wrote:
>>> This patch adds support for the 3.10.31_1.1.0_beta kernelfor Boundary
>>> Devices BD-SL-i.MX6 (built to SABRE Lite), Nitrogen6X, Nitrogen6_Max
>>> and and Nitrogen6_Lite boards.
>>>
>>> To try it out, set PREFERRED_VERSION_linux-boundary = "3.10.31" in your
>>> local.conf file.
>>>
>>> Minimal testing has been performed at this point, so don't expect it
>>> to be production-ready.
>>>
>>> Note that the 3.10.31 kernel contains an update to provide fixed
>>> numbering for /dev/mmcblk devices instead of numbering them by
>>> order of initialization.
>>>
>>> Support has been added into the boot script, but requires setting
>>> a variable in U-Boot:
>>>
>>>     U-Boot > setenv sdphys 1
>>>     U-Boot > saveenv
>>>     U-Boot > boot
>>>
>>> See this post for some additional commentary:
>>>     http://boundarydevices.com/root-equals
>>>
>>> Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
>>
>> When I tried this patchset, it fails to boot my SabreLite.  The
>> important bits seem to be the MMC device numbering.  From the boot log:
>>      <snip>
>>    mmc3: new high speed SDHC card at address aaaa
>>    mmcblk3: mmc3:aaaa SU04G 3.69 GiB
>>     mmcblk3: p1 p2
>>      <snip>
>>    ALSA device list:
>>      #0: imx6q-sabrelite-sgtl5000
>>    Waiting for root device /dev/mmcblk0p2...
>>
>> I see no difference when setting 'sdphys' or not.  Perhaps I missed some
>> other patch (like to the boot scripts)?
> 
> BTW, I'm building the scripts from
> u-boot-script-boundary/v2014.07+gitAUTOINC+f870252376
> and there seems to be nothing in there about sdphys
> 
You need this patch to support the 'sdphys' thing in the boot script:
	http://patches.openembedded.org/patch/83731/

Regards,


Eric


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [meta-fsl-arm-extra][PATCH V2] linux-boundary: Add support for kernel 3.10.31_1.1.0_beta
  2014-11-26 19:26       ` Eric Nelson
@ 2014-11-27  0:26         ` Gary Thomas
  2014-12-02 13:21           ` Gary Thomas
  0 siblings, 1 reply; 24+ messages in thread
From: Gary Thomas @ 2014-11-27  0:26 UTC (permalink / raw)
  To: meta-freescale

On 2014-11-26 12:26, Eric Nelson wrote:
> Hi Gary,
>
> On 11/26/2014 11:10 AM, Gary Thomas wrote:
>> On 2014-11-26 11:06, Gary Thomas wrote:
>>> On 2014-11-23 18:57, Eric Nelson wrote:
>>>> This patch adds support for the 3.10.31_1.1.0_beta kernelfor Boundary
>>>> Devices BD-SL-i.MX6 (built to SABRE Lite), Nitrogen6X, Nitrogen6_Max
>>>> and and Nitrogen6_Lite boards.
>>>>
>>>> To try it out, set PREFERRED_VERSION_linux-boundary = "3.10.31" in your
>>>> local.conf file.
>>>>
>>>> Minimal testing has been performed at this point, so don't expect it
>>>> to be production-ready.
>>>>
>>>> Note that the 3.10.31 kernel contains an update to provide fixed
>>>> numbering for /dev/mmcblk devices instead of numbering them by
>>>> order of initialization.
>>>>
>>>> Support has been added into the boot script, but requires setting
>>>> a variable in U-Boot:
>>>>
>>>>      U-Boot > setenv sdphys 1
>>>>      U-Boot > saveenv
>>>>      U-Boot > boot
>>>>
>>>> See this post for some additional commentary:
>>>>      http://boundarydevices.com/root-equals
>>>>
>>>> Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
>>>
>>> When I tried this patchset, it fails to boot my SabreLite.  The
>>> important bits seem to be the MMC device numbering.  From the boot log:
>>>       <snip>
>>>     mmc3: new high speed SDHC card at address aaaa
>>>     mmcblk3: mmc3:aaaa SU04G 3.69 GiB
>>>      mmcblk3: p1 p2
>>>       <snip>
>>>     ALSA device list:
>>>       #0: imx6q-sabrelite-sgtl5000
>>>     Waiting for root device /dev/mmcblk0p2...
>>>
>>> I see no difference when setting 'sdphys' or not.  Perhaps I missed some
>>> other patch (like to the boot scripts)?
>>
>> BTW, I'm building the scripts from
>> u-boot-script-boundary/v2014.07+gitAUTOINC+f870252376
>> and there seems to be nothing in there about sdphys
>>
> You need this patch to support the 'sdphys' thing in the boot script:
> 	http://patches.openembedded.org/patch/83731/

Thanks, I had missed that one.  It's booting again.

Next problem - I have no video, neither with HDMI nor 7" LCD
Ideas?

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [meta-fsl-arm-extra][PATCH V2] linux-boundary: Add support for kernel 3.10.31_1.1.0_beta
  2014-11-27  0:26         ` Gary Thomas
@ 2014-12-02 13:21           ` Gary Thomas
  2014-12-02 13:24             ` Gary Thomas
  0 siblings, 1 reply; 24+ messages in thread
From: Gary Thomas @ 2014-12-02 13:21 UTC (permalink / raw)
  To: meta-freescale

On 2014-11-26 17:26, Gary Thomas wrote:
> On 2014-11-26 12:26, Eric Nelson wrote:
>> Hi Gary,
>>
>> On 11/26/2014 11:10 AM, Gary Thomas wrote:
>>> On 2014-11-26 11:06, Gary Thomas wrote:
>>>> On 2014-11-23 18:57, Eric Nelson wrote:
>>>>> This patch adds support for the 3.10.31_1.1.0_beta kernelfor Boundary
>>>>> Devices BD-SL-i.MX6 (built to SABRE Lite), Nitrogen6X, Nitrogen6_Max
>>>>> and and Nitrogen6_Lite boards.
>>>>>
>>>>> To try it out, set PREFERRED_VERSION_linux-boundary = "3.10.31" in your
>>>>> local.conf file.
>>>>>
>>>>> Minimal testing has been performed at this point, so don't expect it
>>>>> to be production-ready.
>>>>>
>>>>> Note that the 3.10.31 kernel contains an update to provide fixed
>>>>> numbering for /dev/mmcblk devices instead of numbering them by
>>>>> order of initialization.
>>>>>
>>>>> Support has been added into the boot script, but requires setting
>>>>> a variable in U-Boot:
>>>>>
>>>>>      U-Boot > setenv sdphys 1
>>>>>      U-Boot > saveenv
>>>>>      U-Boot > boot
>>>>>
>>>>> See this post for some additional commentary:
>>>>>      http://boundarydevices.com/root-equals
>>>>>
>>>>> Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
>>>>
>>>> When I tried this patchset, it fails to boot my SabreLite.  The
>>>> important bits seem to be the MMC device numbering.  From the boot log:
>>>>       <snip>
>>>>     mmc3: new high speed SDHC card at address aaaa
>>>>     mmcblk3: mmc3:aaaa SU04G 3.69 GiB
>>>>      mmcblk3: p1 p2
>>>>       <snip>
>>>>     ALSA device list:
>>>>       #0: imx6q-sabrelite-sgtl5000
>>>>     Waiting for root device /dev/mmcblk0p2...
>>>>
>>>> I see no difference when setting 'sdphys' or not.  Perhaps I missed some
>>>> other patch (like to the boot scripts)?
>>>
>>> BTW, I'm building the scripts from
>>> u-boot-script-boundary/v2014.07+gitAUTOINC+f870252376
>>> and there seems to be nothing in there about sdphys
>>>
>> You need this patch to support the 'sdphys' thing in the boot script:
>>     http://patches.openembedded.org/patch/83731/
>
> Thanks, I had missed that one.  It's booting again.
>
> Next problem - I have no video, neither with HDMI nor 7" LCD
> Ideas?
>

Any progress with this (no video at all)?  I've tried the
latest Boundary Devices kernel (b76cf1c04) whose comment
implies this should be fixed, but still no-go.

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [meta-fsl-arm-extra][PATCH V2] linux-boundary: Add support for kernel 3.10.31_1.1.0_beta
  2014-12-02 13:21           ` Gary Thomas
@ 2014-12-02 13:24             ` Gary Thomas
  2014-12-02 16:33               ` Video on linux-boundary-3.10.x (was Re: ...linux-boundary: Add support for kernel 3.10.31_1.1.0_beta) Eric Nelson
  0 siblings, 1 reply; 24+ messages in thread
From: Gary Thomas @ 2014-12-02 13:24 UTC (permalink / raw)
  To: meta-freescale

On 2014-12-02 06:21, Gary Thomas wrote:
> On 2014-11-26 17:26, Gary Thomas wrote:
>> On 2014-11-26 12:26, Eric Nelson wrote:
>>> Hi Gary,
>>>
>>> On 11/26/2014 11:10 AM, Gary Thomas wrote:
>>>> On 2014-11-26 11:06, Gary Thomas wrote:
>>>>> On 2014-11-23 18:57, Eric Nelson wrote:
>>>>>> This patch adds support for the 3.10.31_1.1.0_beta kernelfor Boundary
>>>>>> Devices BD-SL-i.MX6 (built to SABRE Lite), Nitrogen6X, Nitrogen6_Max
>>>>>> and and Nitrogen6_Lite boards.
>>>>>>
>>>>>> To try it out, set PREFERRED_VERSION_linux-boundary = "3.10.31" in your
>>>>>> local.conf file.
>>>>>>
>>>>>> Minimal testing has been performed at this point, so don't expect it
>>>>>> to be production-ready.
>>>>>>
>>>>>> Note that the 3.10.31 kernel contains an update to provide fixed
>>>>>> numbering for /dev/mmcblk devices instead of numbering them by
>>>>>> order of initialization.
>>>>>>
>>>>>> Support has been added into the boot script, but requires setting
>>>>>> a variable in U-Boot:
>>>>>>
>>>>>>      U-Boot > setenv sdphys 1
>>>>>>      U-Boot > saveenv
>>>>>>      U-Boot > boot
>>>>>>
>>>>>> See this post for some additional commentary:
>>>>>>      http://boundarydevices.com/root-equals
>>>>>>
>>>>>> Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
>>>>>
>>>>> When I tried this patchset, it fails to boot my SabreLite.  The
>>>>> important bits seem to be the MMC device numbering.  From the boot log:
>>>>>       <snip>
>>>>>     mmc3: new high speed SDHC card at address aaaa
>>>>>     mmcblk3: mmc3:aaaa SU04G 3.69 GiB
>>>>>      mmcblk3: p1 p2
>>>>>       <snip>
>>>>>     ALSA device list:
>>>>>       #0: imx6q-sabrelite-sgtl5000
>>>>>     Waiting for root device /dev/mmcblk0p2...
>>>>>
>>>>> I see no difference when setting 'sdphys' or not.  Perhaps I missed some
>>>>> other patch (like to the boot scripts)?
>>>>
>>>> BTW, I'm building the scripts from
>>>> u-boot-script-boundary/v2014.07+gitAUTOINC+f870252376
>>>> and there seems to be nothing in there about sdphys
>>>>
>>> You need this patch to support the 'sdphys' thing in the boot script:
>>>     http://patches.openembedded.org/patch/83731/
>>
>> Thanks, I had missed that one.  It's booting again.
>>
>> Next problem - I have no video, neither with HDMI nor 7" LCD
>> Ideas?
>>
>
> Any progress with this (no video at all)?  I've tried the
> latest Boundary Devices kernel (b76cf1c04) whose comment
> implies this should be fixed, but still no-go.
>

For completeness, here are some relevant messages at boot:

Kernel command line: enable_wait_mode=off video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24 video=mxcfb1:dev=lcd,CLAA-WVGA,if=R
GB666 video=mxcfb2:off video=mxcfb3:off fbmem=28M,10M console=ttymxc1,115200 vmalloc=400M consoleblank=0 rootwait root=/d
ev/mmcblk3p2 mxc_hdmi.only_cea=1

mxc_hdmi 20e0000.hdmi_video: Detected HDMI controller 0x13:0xa:0xa0:0xc1
fbcvt: 1280x720@60: CVT Name - .921M9
mxc_sdc_fb fb.27: registered mxc display driver hdmi
mxc_sdc_fb fb.27: 1280x720 h_sync,r,l: 40,110,220  v_sync,l,u: 5,5,20 pixclock=74250000 Hz
imx-ipuv3 2800000.ipu: try ipu internal clk
imx-ipuv3 2800000.ipu: disp=0, pixel_clk=74250000 74250000 parent=74250000 div=1
imx-ipuv3 2800000.ipu: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)
imx-ipuv3 2800000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
imx-ipuv3 2800000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
mxc_sdc_fb fb.27: 1280x720 h_sync,r,l: 40,110,220  v_sync,l,u: 5,5,20 pixclock=74250000 Hz
imx-ipuv3 2800000.ipu: try ipu internal clk
imx-ipuv3 2800000.ipu: disp=0, pixel_clk=74250000 74250000 parent=74250000 div=1
Console: switching to colour frame buffer device 160x45
imx-ipuv3 2800000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
mxc_sdc_fb fb.27: timeout when waiting for flip irq
mxc_sdc_fb fb.28: NO mxc display driver found!
mxc_sdc_fb fb.29: mxcfb2 is turned off!
mxc_sdc_fb fb.30: mxcfb3 is turned off!

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Video on linux-boundary-3.10.x (was Re: ...linux-boundary: Add support for kernel 3.10.31_1.1.0_beta)
  2014-12-02 13:24             ` Gary Thomas
@ 2014-12-02 16:33               ` Eric Nelson
  2014-12-02 16:42                 ` Gary Thomas
  0 siblings, 1 reply; 24+ messages in thread
From: Eric Nelson @ 2014-12-02 16:33 UTC (permalink / raw)
  To: Gary Thomas, meta-freescale; +Cc: BISSON Gary

Hi Gary,

On 12/02/2014 06:24 AM, Gary Thomas wrote:
> On 2014-12-02 06:21, Gary Thomas wrote:
>> On 2014-11-26 17:26, Gary Thomas wrote:
>>> On 2014-11-26 12:26, Eric Nelson wrote:
>>>> Hi Gary,
>>>>
>>>
>>> <snip>
>>>
>>> Next problem - I have no video, neither with HDMI nor 7" LCD
>>> Ideas?
>>>
>>
>> Any progress with this (no video at all)?  I've tried the
>> latest Boundary Devices kernel (b76cf1c04) whose comment
>> implies this should be fixed, but still no-go.
>>
> 
> For completeness, here are some relevant messages at boot:
> 
> Kernel command line: enable_wait_mode=off
> video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24
> video=mxcfb1:dev=lcd,CLAA-WVGA,if=R
> GB666 video=mxcfb2:off video=mxcfb3:off fbmem=28M,10M
> console=ttymxc1,115200 vmalloc=400M consoleblank=0 rootwait root=/d
> ev/mmcblk3p2 mxc_hdmi.only_cea=1
> 

What silicon version are you running? As mentioned in Gary Bisson's
thread earlier, there are some known issues with TO 1.0 and HDMI.

> mxc_hdmi 20e0000.hdmi_video: Detected HDMI controller 0x13:0xa:0xa0:0xc1
> fbcvt: 1280x720@60: CVT Name - .921M9
> mxc_sdc_fb fb.27: registered mxc display driver hdmi
> mxc_sdc_fb fb.27: 1280x720 h_sync,r,l: 40,110,220  v_sync,l,u: 5,5,20
> pixclock=74250000 Hz
> imx-ipuv3 2800000.ipu: try ipu internal clk
> imx-ipuv3 2800000.ipu: disp=0, pixel_clk=74250000 74250000
> parent=74250000 div=1
> imx-ipuv3 2800000.ipu: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5),
> 5F(6,7)
> imx-ipuv3 2800000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
> imx-ipuv3 2800000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
> mxc_sdc_fb fb.27: 1280x720 h_sync,r,l: 40,110,220  v_sync,l,u: 5,5,20
> pixclock=74250000 Hz
> imx-ipuv3 2800000.ipu: try ipu internal clk
> imx-ipuv3 2800000.ipu: disp=0, pixel_clk=74250000 74250000
> parent=74250000 div=1
> Console: switching to colour frame buffer device 160x45
> imx-ipuv3 2800000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
> mxc_sdc_fb fb.27: timeout when waiting for flip irq

These messages above match what Gary Bisson says he has a patch for...

And I just pushed a patch for the RGB display error below:
> mxc_sdc_fb fb.28: NO mxc display driver found!

	https://github.com/boundarydevices/linux-imx6/commit/0d7db21a8e6bc028209438ae3919907c177f348a

Regards,


Eric


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Video on linux-boundary-3.10.x (was Re: ...linux-boundary: Add support for kernel 3.10.31_1.1.0_beta)
  2014-12-02 16:33               ` Video on linux-boundary-3.10.x (was Re: ...linux-boundary: Add support for kernel 3.10.31_1.1.0_beta) Eric Nelson
@ 2014-12-02 16:42                 ` Gary Thomas
  2014-12-02 16:57                   ` Eric Nelson
  0 siblings, 1 reply; 24+ messages in thread
From: Gary Thomas @ 2014-12-02 16:42 UTC (permalink / raw)
  To: meta-freescale

On 2014-12-02 09:33, Eric Nelson wrote:
> Hi Gary,
>
> On 12/02/2014 06:24 AM, Gary Thomas wrote:
>> On 2014-12-02 06:21, Gary Thomas wrote:
>>> On 2014-11-26 17:26, Gary Thomas wrote:
>>>> On 2014-11-26 12:26, Eric Nelson wrote:
>>>>> Hi Gary,
>>>>>
>>>>
>>>> <snip>
>>>>
>>>> Next problem - I have no video, neither with HDMI nor 7" LCD
>>>> Ideas?
>>>>
>>>
>>> Any progress with this (no video at all)?  I've tried the
>>> latest Boundary Devices kernel (b76cf1c04) whose comment
>>> implies this should be fixed, but still no-go.
>>>
>>
>> For completeness, here are some relevant messages at boot:
>>
>> Kernel command line: enable_wait_mode=off
>> video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24
>> video=mxcfb1:dev=lcd,CLAA-WVGA,if=R
>> GB666 video=mxcfb2:off video=mxcfb3:off fbmem=28M,10M
>> console=ttymxc1,115200 vmalloc=400M consoleblank=0 rootwait root=/d
>> ev/mmcblk3p2 mxc_hdmi.only_cea=1
>>
>
> What silicon version are you running? As mentioned in Gary Bisson's
> thread earlier, there are some known issues with TO 1.0 and HDMI.

My SabreLite is rev 1.0

>
>> mxc_hdmi 20e0000.hdmi_video: Detected HDMI controller 0x13:0xa:0xa0:0xc1
>> fbcvt: 1280x720@60: CVT Name - .921M9
>> mxc_sdc_fb fb.27: registered mxc display driver hdmi
>> mxc_sdc_fb fb.27: 1280x720 h_sync,r,l: 40,110,220  v_sync,l,u: 5,5,20
>> pixclock=74250000 Hz
>> imx-ipuv3 2800000.ipu: try ipu internal clk
>> imx-ipuv3 2800000.ipu: disp=0, pixel_clk=74250000 74250000
>> parent=74250000 div=1
>> imx-ipuv3 2800000.ipu: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5),
>> 5F(6,7)
>> imx-ipuv3 2800000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
>> imx-ipuv3 2800000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
>> mxc_sdc_fb fb.27: 1280x720 h_sync,r,l: 40,110,220  v_sync,l,u: 5,5,20
>> pixclock=74250000 Hz
>> imx-ipuv3 2800000.ipu: try ipu internal clk
>> imx-ipuv3 2800000.ipu: disp=0, pixel_clk=74250000 74250000
>> parent=74250000 div=1
>> Console: switching to colour frame buffer device 160x45
>> imx-ipuv3 2800000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
>> mxc_sdc_fb fb.27: timeout when waiting for flip irq
>
> These messages above match what Gary Bisson says he has a patch for...
>
> And I just pushed a patch for the RGB display error below:
>> mxc_sdc_fb fb.28: NO mxc display driver found!
>
> 	https://github.com/boundarydevices/linux-imx6/commit/0d7db21a8e6bc028209438ae3919907c177f348a

Yes, I thought I already had that applied.  I'll check again.

Thanks

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Video on linux-boundary-3.10.x (was Re: ...linux-boundary: Add support for kernel 3.10.31_1.1.0_beta)
  2014-12-02 16:42                 ` Gary Thomas
@ 2014-12-02 16:57                   ` Eric Nelson
  2014-12-02 22:33                     ` [meta-fsl-arm-extra][PATCH] linux-boundary (3.10.17): Bump SRCREV to 0d7db21 Ian Coolidge
  2014-12-03 13:00                     ` Video on linux-boundary-3.10.x (was Re: ...linux-boundary: Add support for kernel 3.10.31_1.1.0_beta) Gary Thomas
  0 siblings, 2 replies; 24+ messages in thread
From: Eric Nelson @ 2014-12-02 16:57 UTC (permalink / raw)
  To: Gary Thomas, meta-freescale

On 12/02/2014 09:42 AM, Gary Thomas wrote:
> On 2014-12-02 09:33, Eric Nelson wrote:
>> On 12/02/2014 06:24 AM, Gary Thomas wrote:
>>> On 2014-12-02 06:21, Gary Thomas wrote:
>>>> On 2014-11-26 17:26, Gary Thomas wrote:
>>>>> On 2014-11-26 12:26, Eric Nelson wrote:
>>>>>> Hi Gary,
>>>>>>
>>>>>
>>>>> <snip>
>>>>>
>>>>> Next problem - I have no video, neither with HDMI nor 7" LCD
>>>>> Ideas?
>>>>>
>>>>
>>>> Any progress with this (no video at all)?  I've tried the
>>>> latest Boundary Devices kernel (b76cf1c04) whose comment
>>>> implies this should be fixed, but still no-go.
>>>>
>>>
>>> For completeness, here are some relevant messages at boot:
>>>
>>> Kernel command line: enable_wait_mode=off
>>> video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24
>>> video=mxcfb1:dev=lcd,CLAA-WVGA,if=R
>>> GB666 video=mxcfb2:off video=mxcfb3:off fbmem=28M,10M
>>> console=ttymxc1,115200 vmalloc=400M consoleblank=0 rootwait root=/d
>>> ev/mmcblk3p2 mxc_hdmi.only_cea=1
>>>
>>
>> What silicon version are you running? As mentioned in Gary Bisson's
>> thread earlier, there are some known issues with TO 1.0 and HDMI.
> 
> My SabreLite is rev 1.0
> 

That explains it. Freescale seems to have dropped support (or at
least stopped testing) TO 1.0 prior to the 3.10.x releases.

>>
>> <snip>
>>
>> These messages above match what Gary Bisson says he has a patch for...
>>
>> And I just pushed a patch for the RGB display error below:
>>> mxc_sdc_fb fb.28: NO mxc display driver found!
>>
>>     https://github.com/boundarydevices/linux-imx6/commit/0d7db21a8e6bc028209438ae3919907c177f348a
>>
> 
> Yes, I thought I already had that applied.  I'll check again.
> 

That's unlikely, since we haven't yet sent a patch to the list to
update meta-fsl-arm-extra.

In the mean-time, you'll need to do this by hand in the file

meta-fsl-arm-extra/recipes-kernel/linux/linux-boundary_3.10.17.bb

Regards,


Eric


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [meta-fsl-arm-extra][PATCH] linux-boundary (3.10.17): Bump SRCREV to 0d7db21
  2014-12-02 16:57                   ` Eric Nelson
@ 2014-12-02 22:33                     ` Ian Coolidge
  2014-12-03 11:52                       ` Gary Thomas
  2014-12-03 13:00                     ` Video on linux-boundary-3.10.x (was Re: ...linux-boundary: Add support for kernel 3.10.31_1.1.0_beta) Gary Thomas
  1 sibling, 1 reply; 24+ messages in thread
From: Ian Coolidge @ 2014-12-02 22:33 UTC (permalink / raw)
  To: meta-freescale; +Cc: troy.kisky

Primary fix - 0d7db21 - fixes parallel LCD support. Driver has been broken since commit 3c236e8c.

Eric Nelson (3):
  fsl_otp: default to read-only access
  imx6q-nitrogen6x-cwc: allow SATA
  mxc_lcdif: re-order drivers mxc_lcdif and mxc_ipuv3_fb

Fabio Estevam (1):
  ASoC: sgtl5000: Fix SMALL_POP bit definition

Troy Kisky (2):
  vp_defconfig: initial addition
  imx6q-vp.dts: initial addition

Signed-off-by: Ian Coolidge <ian@boundarydevices.com>
---
 recipes-kernel/linux/linux-boundary_3.10.17.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/recipes-kernel/linux/linux-boundary_3.10.17.bb b/recipes-kernel/linux/linux-boundary_3.10.17.bb
index 2e2eb65..a95661d 100644
--- a/recipes-kernel/linux/linux-boundary_3.10.17.bb
+++ b/recipes-kernel/linux/linux-boundary_3.10.17.bb
@@ -11,7 +11,7 @@ SRC_URI = "git://github.com/boundarydevices/linux-imx6.git;branch=${SRCBRANCH} \
 
 LOCALVERSION = "-1.0.2_ga+yocto"
 SRCBRANCH = "boundary-imx_3.10.17_1.0.2_ga"
-SRCREV = "f7a1e1870a3f53d0128e149261f9092fe6e02462"
+SRCREV = "0d7db21a8e6bc028209438ae3919907c177f348a"
 DEPENDS += "lzop-native bc-native"
 COMPATIBLE_MACHINE = "(mx6)"
 COMPATIBLE_MACHINE = "(nitrogen6x|nitrogen6x-lite)"
-- 
1.9.1



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [meta-fsl-arm-extra][PATCH] linux-boundary (3.10.17): Bump SRCREV to 0d7db21
  2014-12-02 22:33                     ` [meta-fsl-arm-extra][PATCH] linux-boundary (3.10.17): Bump SRCREV to 0d7db21 Ian Coolidge
@ 2014-12-03 11:52                       ` Gary Thomas
  2014-12-03 12:06                         ` Otavio Salvador
                                           ` (3 more replies)
  0 siblings, 4 replies; 24+ messages in thread
From: Gary Thomas @ 2014-12-03 11:52 UTC (permalink / raw)
  To: meta-freescale

On 2014-12-02 15:33, Ian Coolidge wrote:
> Primary fix - 0d7db21 - fixes parallel LCD support. Driver has been broken since commit 3c236e8c.
>
> Eric Nelson (3):
>    fsl_otp: default to read-only access
>    imx6q-nitrogen6x-cwc: allow SATA
>    mxc_lcdif: re-order drivers mxc_lcdif and mxc_ipuv3_fb
>
> Fabio Estevam (1):
>    ASoC: sgtl5000: Fix SMALL_POP bit definition
>
> Troy Kisky (2):
>    vp_defconfig: initial addition
>    imx6q-vp.dts: initial addition
>
> Signed-off-by: Ian Coolidge <ian@boundarydevices.com>
> ---
>   recipes-kernel/linux/linux-boundary_3.10.17.bb | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/recipes-kernel/linux/linux-boundary_3.10.17.bb b/recipes-kernel/linux/linux-boundary_3.10.17.bb

This recipe is no longer in meta-fsl-arm-extra.  Please rebase against linux-boundary_3.10.31.bb

> index 2e2eb65..a95661d 100644
> --- a/recipes-kernel/linux/linux-boundary_3.10.17.bb
> +++ b/recipes-kernel/linux/linux-boundary_3.10.17.bb
> @@ -11,7 +11,7 @@ SRC_URI = "git://github.com/boundarydevices/linux-imx6.git;branch=${SRCBRANCH} \
>
>   LOCALVERSION = "-1.0.2_ga+yocto"
>   SRCBRANCH = "boundary-imx_3.10.17_1.0.2_ga"
> -SRCREV = "f7a1e1870a3f53d0128e149261f9092fe6e02462"
> +SRCREV = "0d7db21a8e6bc028209438ae3919907c177f348a"
>   DEPENDS += "lzop-native bc-native"
>   COMPATIBLE_MACHINE = "(mx6)"
>   COMPATIBLE_MACHINE = "(nitrogen6x|nitrogen6x-lite)"
>

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [meta-fsl-arm-extra][PATCH] linux-boundary (3.10.17): Bump SRCREV to 0d7db21
  2014-12-03 11:52                       ` Gary Thomas
@ 2014-12-03 12:06                         ` Otavio Salvador
  2014-12-03 14:54                         ` Eric Nelson
                                           ` (2 subsequent siblings)
  3 siblings, 0 replies; 24+ messages in thread
From: Otavio Salvador @ 2014-12-03 12:06 UTC (permalink / raw)
  To: Gary Thomas; +Cc: meta-freescale

On Wed, Dec 3, 2014 at 9:52 AM, Gary Thomas <gary@mlbassoc.com> wrote:
> On 2014-12-02 15:33, Ian Coolidge wrote:
>>
>> Primary fix - 0d7db21 - fixes parallel LCD support. Driver has been broken
>> since commit 3c236e8c.
>>
>> Eric Nelson (3):
>>    fsl_otp: default to read-only access
>>    imx6q-nitrogen6x-cwc: allow SATA
>>    mxc_lcdif: re-order drivers mxc_lcdif and mxc_ipuv3_fb
>>
>> Fabio Estevam (1):
>>    ASoC: sgtl5000: Fix SMALL_POP bit definition
>>
>> Troy Kisky (2):
>>    vp_defconfig: initial addition
>>    imx6q-vp.dts: initial addition
>>
>> Signed-off-by: Ian Coolidge <ian@boundarydevices.com>
>> ---
>>   recipes-kernel/linux/linux-boundary_3.10.17.bb | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/recipes-kernel/linux/linux-boundary_3.10.17.bb
>> b/recipes-kernel/linux/linux-boundary_3.10.17.bb
>
> This recipe is no longer in meta-fsl-arm-extra.  Please rebase against
> linux-boundary_3.10.31.bb

I think Ian intended it to be merged in Dizzy :)

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Video on linux-boundary-3.10.x (was Re: ...linux-boundary: Add support for kernel 3.10.31_1.1.0_beta)
  2014-12-02 16:57                   ` Eric Nelson
  2014-12-02 22:33                     ` [meta-fsl-arm-extra][PATCH] linux-boundary (3.10.17): Bump SRCREV to 0d7db21 Ian Coolidge
@ 2014-12-03 13:00                     ` Gary Thomas
  2014-12-03 14:56                       ` Eric Nelson
  1 sibling, 1 reply; 24+ messages in thread
From: Gary Thomas @ 2014-12-03 13:00 UTC (permalink / raw)
  To: meta-freescale

On 2014-12-02 09:57, Eric Nelson wrote:
> On 12/02/2014 09:42 AM, Gary Thomas wrote:
>> On 2014-12-02 09:33, Eric Nelson wrote:
>>> On 12/02/2014 06:24 AM, Gary Thomas wrote:
>>>> On 2014-12-02 06:21, Gary Thomas wrote:
>>>>> On 2014-11-26 17:26, Gary Thomas wrote:
>>>>>> On 2014-11-26 12:26, Eric Nelson wrote:
>>>>>>> Hi Gary,
>>>>>>>
>>>>>>
>>>>>> <snip>
>>>>>>
>>>>>> Next problem - I have no video, neither with HDMI nor 7" LCD
>>>>>> Ideas?
>>>>>>
>>>>>
>>>>> Any progress with this (no video at all)?  I've tried the
>>>>> latest Boundary Devices kernel (b76cf1c04) whose comment
>>>>> implies this should be fixed, but still no-go.
>>>>>
>>>>
>>>> For completeness, here are some relevant messages at boot:
>>>>
>>>> Kernel command line: enable_wait_mode=off
>>>> video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24
>>>> video=mxcfb1:dev=lcd,CLAA-WVGA,if=R
>>>> GB666 video=mxcfb2:off video=mxcfb3:off fbmem=28M,10M
>>>> console=ttymxc1,115200 vmalloc=400M consoleblank=0 rootwait root=/d
>>>> ev/mmcblk3p2 mxc_hdmi.only_cea=1
>>>>
>>>
>>> What silicon version are you running? As mentioned in Gary Bisson's
>>> thread earlier, there are some known issues with TO 1.0 and HDMI.
>>
>> My SabreLite is rev 1.0
>>
>
> That explains it. Freescale seems to have dropped support (or at
> least stopped testing) TO 1.0 prior to the 3.10.x releases.
>
>>>
>>> <snip>
>>>
>>> These messages above match what Gary Bisson says he has a patch for...
>>>
>>> And I just pushed a patch for the RGB display error below:
>>>> mxc_sdc_fb fb.28: NO mxc display driver found!
>>>
>>>      https://github.com/boundarydevices/linux-imx6/commit/0d7db21a8e6bc028209438ae3919907c177f348a
>>>
>>
>> Yes, I thought I already had that applied.  I'll check again.
>>
>
> That's unlikely, since we haven't yet sent a patch to the list to
> update meta-fsl-arm-extra.
>
> In the mean-time, you'll need to do this by hand in the file
>
> meta-fsl-arm-extra/recipes-kernel/linux/linux-boundary_3.10.17.bb

Actually, I'm working from master which is using 3.10.31
I patched the recipe to use revision b76cf1c0429fffaa217f50645f1d78c3321ec3fa
and now I have LCD video, so my board is once again usable.

Thanks

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [meta-fsl-arm-extra][PATCH] linux-boundary (3.10.17): Bump SRCREV to 0d7db21
  2014-12-03 11:52                       ` Gary Thomas
  2014-12-03 12:06                         ` Otavio Salvador
@ 2014-12-03 14:54                         ` Eric Nelson
  2014-12-03 17:28                         ` [meta-fsl-arm-extra][PATCH] Bump SRCREV to b76cf1c Ian Coolidge
  2014-12-03 17:56                         ` [meta-fsl-arm-extra][PATCH v2] linux-boundary(3.10.31): " Ian Coolidge
  3 siblings, 0 replies; 24+ messages in thread
From: Eric Nelson @ 2014-12-03 14:54 UTC (permalink / raw)
  To: Gary Thomas, meta-freescale

Hi Gary,

On 12/03/2014 04:52 AM, Gary Thomas wrote:
> On 2014-12-02 15:33, Ian Coolidge wrote:
>> Primary fix - 0d7db21 - fixes parallel LCD support. Driver has been
>> broken since commit 3c236e8c.
>>
>> Eric Nelson (3):
>>    fsl_otp: default to read-only access
>>    imx6q-nitrogen6x-cwc: allow SATA
>>    mxc_lcdif: re-order drivers mxc_lcdif and mxc_ipuv3_fb
>>
>> Fabio Estevam (1):
>>    ASoC: sgtl5000: Fix SMALL_POP bit definition
>>
>> Troy Kisky (2):
>>    vp_defconfig: initial addition
>>    imx6q-vp.dts: initial addition
>>
>> Signed-off-by: Ian Coolidge <ian@boundarydevices.com>
>> ---
>>   recipes-kernel/linux/linux-boundary_3.10.17.bb | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/recipes-kernel/linux/linux-boundary_3.10.17.bb
>> b/recipes-kernel/linux/linux-boundary_3.10.17.bb
> 
> This recipe is no longer in meta-fsl-arm-extra.  Please rebase against
> linux-boundary_3.10.31.bb
> 

This patch is for Dizzy. A forthcoming patch will address master
(and 3.10.31)



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Video on linux-boundary-3.10.x (was Re: ...linux-boundary: Add support for kernel 3.10.31_1.1.0_beta)
  2014-12-03 13:00                     ` Video on linux-boundary-3.10.x (was Re: ...linux-boundary: Add support for kernel 3.10.31_1.1.0_beta) Gary Thomas
@ 2014-12-03 14:56                       ` Eric Nelson
  0 siblings, 0 replies; 24+ messages in thread
From: Eric Nelson @ 2014-12-03 14:56 UTC (permalink / raw)
  To: Gary Thomas, meta-freescale

Hi Gary,

On 12/03/2014 06:00 AM, Gary Thomas wrote:
> On 2014-12-02 09:57, Eric Nelson wrote:
>> On 12/02/2014 09:42 AM, Gary Thomas wrote:
>>> On 2014-12-02 09:33, Eric Nelson wrote:
>>>> On 12/02/2014 06:24 AM, Gary Thomas wrote:
>>>>> On 2014-12-02 06:21, Gary Thomas wrote:
>>>>>> On 2014-11-26 17:26, Gary Thomas wrote:
>>>>>>> On 2014-11-26 12:26, Eric Nelson wrote:
>>>
>>>
>>>
>>> Yes, I thought I already had that applied.  I'll check again.
>>>
>>
>> That's unlikely, since we haven't yet sent a patch to the list to
>> update meta-fsl-arm-extra.
>>
>> In the mean-time, you'll need to do this by hand in the file
>>
>> meta-fsl-arm-extra/recipes-kernel/linux/linux-boundary_3.10.17.bb
> 
> Actually, I'm working from master which is using 3.10.31
> I patched the recipe to use revision
> b76cf1c0429fffaa217f50645f1d78c3321ec3fa
> and now I have LCD video, so my board is once again usable.
> 

Glad to hear it, and sorry for the breakage.

That order-of-initialization bug was difficult to see and
to find.

Regards,


Eric


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [meta-fsl-arm-extra][PATCH] Bump SRCREV to b76cf1c
  2014-12-03 11:52                       ` Gary Thomas
  2014-12-03 12:06                         ` Otavio Salvador
  2014-12-03 14:54                         ` Eric Nelson
@ 2014-12-03 17:28                         ` Ian Coolidge
  2014-12-03 17:32                           ` Daiane Angolini
  2014-12-03 17:56                         ` [meta-fsl-arm-extra][PATCH v2] linux-boundary(3.10.31): " Ian Coolidge
  3 siblings, 1 reply; 24+ messages in thread
From: Ian Coolidge @ 2014-12-03 17:28 UTC (permalink / raw)
  To: meta-freescale; +Cc: troy.kisky

Fixed parallel LCD support and analog audio support respectively.

Eric Nelson (1):
  mxc_lcdif: re-order drivers mxc_lcdif and mxc_ipuv3_fb

Laci Tele (1):
  sgtl5000: ssi-controller has been replaced with cpu-dai, in .dtsi files

Signed-off-by: Ian Coolidge <ian@boundarydevices.com>
---
 recipes-kernel/linux/linux-boundary_3.10.31.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/recipes-kernel/linux/linux-boundary_3.10.31.bb b/recipes-kernel/linux/linux-boundary_3.10.31.bb
index c647cff..3297f8e 100644
--- a/recipes-kernel/linux/linux-boundary_3.10.31.bb
+++ b/recipes-kernel/linux/linux-boundary_3.10.31.bb
@@ -11,7 +11,7 @@ SRC_URI = "git://github.com/boundarydevices/linux-imx6.git;branch=${SRCBRANCH} \
 
 LOCALVERSION = "-1.1.0_beta+yocto"
 SRCBRANCH = "boundary-imx_3.10.31_1.1.0_beta"
-SRCREV = "f4cf15c2f845d4612fb55bafb6d3a51b3706f0df"
+SRCREV = "b76cf1c0429fffaa217f50645f1d78c3321ec3fa"
 DEPENDS += "lzop-native bc-native"
 COMPATIBLE_MACHINE = "(mx6)"
 COMPATIBLE_MACHINE = "(nitrogen6x|nitrogen6x-lite)"
-- 
1.9.1



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [meta-fsl-arm-extra][PATCH] Bump SRCREV to b76cf1c
  2014-12-03 17:28                         ` [meta-fsl-arm-extra][PATCH] Bump SRCREV to b76cf1c Ian Coolidge
@ 2014-12-03 17:32                           ` Daiane Angolini
  0 siblings, 0 replies; 24+ messages in thread
From: Daiane Angolini @ 2014-12-03 17:32 UTC (permalink / raw)
  To: Ian Coolidge; +Cc: meta-freescale, troy.kisky

Can you, please, change the subject to use something like:


"linux-boundary: Bump SRCREV to b76cf1c"

or

"linux-boundary(3.10.31): Bump SRCREV to b76cf1c"


just like:
https://github.com/Freescale/meta-fsl-arm-extra/commit/582754281653c0fb7a35df353b72c79f6628f58a

Thanks in advance,
Daiane


On Wed, Dec 3, 2014 at 3:28 PM, Ian Coolidge <ian@boundarydevices.com> wrote:
> Fixed parallel LCD support and analog audio support respectively.
>
> Eric Nelson (1):
>   mxc_lcdif: re-order drivers mxc_lcdif and mxc_ipuv3_fb
>
> Laci Tele (1):
>   sgtl5000: ssi-controller has been replaced with cpu-dai, in .dtsi files
>
> Signed-off-by: Ian Coolidge <ian@boundarydevices.com>
> ---
>  recipes-kernel/linux/linux-boundary_3.10.31.bb | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/recipes-kernel/linux/linux-boundary_3.10.31.bb b/recipes-kernel/linux/linux-boundary_3.10.31.bb
> index c647cff..3297f8e 100644
> --- a/recipes-kernel/linux/linux-boundary_3.10.31.bb
> +++ b/recipes-kernel/linux/linux-boundary_3.10.31.bb
> @@ -11,7 +11,7 @@ SRC_URI = "git://github.com/boundarydevices/linux-imx6.git;branch=${SRCBRANCH} \
>
>  LOCALVERSION = "-1.1.0_beta+yocto"
>  SRCBRANCH = "boundary-imx_3.10.31_1.1.0_beta"
> -SRCREV = "f4cf15c2f845d4612fb55bafb6d3a51b3706f0df"
> +SRCREV = "b76cf1c0429fffaa217f50645f1d78c3321ec3fa"
>  DEPENDS += "lzop-native bc-native"
>  COMPATIBLE_MACHINE = "(mx6)"
>  COMPATIBLE_MACHINE = "(nitrogen6x|nitrogen6x-lite)"
> --
> 1.9.1
>
> --
> _______________________________________________
> meta-freescale mailing list
> meta-freescale@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-freescale


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [meta-fsl-arm-extra][PATCH v2] linux-boundary(3.10.31): Bump SRCREV to b76cf1c
  2014-12-03 11:52                       ` Gary Thomas
                                           ` (2 preceding siblings ...)
  2014-12-03 17:28                         ` [meta-fsl-arm-extra][PATCH] Bump SRCREV to b76cf1c Ian Coolidge
@ 2014-12-03 17:56                         ` Ian Coolidge
  3 siblings, 0 replies; 24+ messages in thread
From: Ian Coolidge @ 2014-12-03 17:56 UTC (permalink / raw)
  To: meta-freescale; +Cc: troy.kisky

Fixed parallel LCD support and analog audio support respectively.

Eric Nelson (1):
  mxc_lcdif: re-order drivers mxc_lcdif and mxc_ipuv3_fb

Laci Tele (1):
  sgtl5000: ssi-controller has been replaced with cpu-dai, in .dtsi files

Signed-off-by: Ian Coolidge <ian@boundarydevices.com>
---
v2 changed subject message as requested by Daiane.
To be applied on master branch.
 recipes-kernel/linux/linux-boundary_3.10.31.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/recipes-kernel/linux/linux-boundary_3.10.31.bb b/recipes-kernel/linux/linux-boundary_3.10.31.bb
index c647cff..3297f8e 100644
--- a/recipes-kernel/linux/linux-boundary_3.10.31.bb
+++ b/recipes-kernel/linux/linux-boundary_3.10.31.bb
@@ -11,7 +11,7 @@ SRC_URI = "git://github.com/boundarydevices/linux-imx6.git;branch=${SRCBRANCH} \
 
 LOCALVERSION = "-1.1.0_beta+yocto"
 SRCBRANCH = "boundary-imx_3.10.31_1.1.0_beta"
-SRCREV = "f4cf15c2f845d4612fb55bafb6d3a51b3706f0df"
+SRCREV = "b76cf1c0429fffaa217f50645f1d78c3321ec3fa"
 DEPENDS += "lzop-native bc-native"
 COMPATIBLE_MACHINE = "(mx6)"
 COMPATIBLE_MACHINE = "(nitrogen6x|nitrogen6x-lite)"
-- 
1.9.1



^ permalink raw reply related	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2014-12-03 17:56 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-10 20:09 [meta-fsl-arm-extra][PATCH] linux-boundary: Add support for kernel 3.10.31_1.1.0_beta Eric Nelson
2014-11-24  1:57 ` [meta-fsl-arm-extra][PATCH V2] " Eric Nelson
2014-11-24 19:48   ` [meta-fsl-arm-extra][PATCH] nitrogen6x*, imx6qsabrelite: default to kernel 3.10.31 Eric Nelson
2014-11-24 20:04     ` Otavio Salvador
2014-11-24 20:29       ` Eric Nelson
2014-11-24 20:44       ` [meta-fsl-arm-extra][PATCH] linux-boundary: deprecate 3.0.35, 3.10.17 kernels for Yocto 1.8 Eric Nelson
2014-11-26 18:06   ` [meta-fsl-arm-extra][PATCH V2] linux-boundary: Add support for kernel 3.10.31_1.1.0_beta Gary Thomas
2014-11-26 18:10     ` Gary Thomas
2014-11-26 19:26       ` Eric Nelson
2014-11-27  0:26         ` Gary Thomas
2014-12-02 13:21           ` Gary Thomas
2014-12-02 13:24             ` Gary Thomas
2014-12-02 16:33               ` Video on linux-boundary-3.10.x (was Re: ...linux-boundary: Add support for kernel 3.10.31_1.1.0_beta) Eric Nelson
2014-12-02 16:42                 ` Gary Thomas
2014-12-02 16:57                   ` Eric Nelson
2014-12-02 22:33                     ` [meta-fsl-arm-extra][PATCH] linux-boundary (3.10.17): Bump SRCREV to 0d7db21 Ian Coolidge
2014-12-03 11:52                       ` Gary Thomas
2014-12-03 12:06                         ` Otavio Salvador
2014-12-03 14:54                         ` Eric Nelson
2014-12-03 17:28                         ` [meta-fsl-arm-extra][PATCH] Bump SRCREV to b76cf1c Ian Coolidge
2014-12-03 17:32                           ` Daiane Angolini
2014-12-03 17:56                         ` [meta-fsl-arm-extra][PATCH v2] linux-boundary(3.10.31): " Ian Coolidge
2014-12-03 13:00                     ` Video on linux-boundary-3.10.x (was Re: ...linux-boundary: Add support for kernel 3.10.31_1.1.0_beta) Gary Thomas
2014-12-03 14:56                       ` Eric Nelson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.