All of lore.kernel.org
 help / color / mirror / Atom feed
From: rahul.saxena@intel.com
To: yocto@yoctoproject.org, bruce.ashfield@windriver.org,
	tom.zanussi@intel.com, kishore.k.bodke@intel.com
Subject: [PATCH 1/3] Revert "yocto/pvr: integrate pvr support"
Date: Wed, 25 Apr 2012 11:17:55 -0700	[thread overview]
Message-ID: <0db94ea0705ad766cf9397aedef8a5f343b5629d.1335393641.git.rahul.saxena@intel.com> (raw)
In-Reply-To: <cover.1335393639.git.rahul.saxena@intel.com>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3595305 bytes --]

From: Rahul Saxena <rahul.saxena@intel.com>

This reverts commit 3604d007243d3db5fea8704f78a3608862e592f9.
A updated version of the linux-3.0.0-cdv.patch was recently released by MeeGo.
This revert will allow application of new patch.

Signed-off-by: Rahul Saxena <rahul.saxena@intel.com>
---
 drivers/staging/Kconfig                            |    2 -
 drivers/staging/Makefile                           |    1 -
 drivers/staging/cdv/Kconfig                        |   50 -
 drivers/staging/cdv/Makefile                       |  198 -
 drivers/staging/cdv/bc_video/bufferclass_video.c   |  327 --
 drivers/staging/cdv/bc_video/bufferclass_video.h   |  171 -
 .../staging/cdv/bc_video/bufferclass_video_linux.c |  838 ----
 .../staging/cdv/bc_video/bufferclass_video_linux.h |   67 -
 drivers/staging/cdv/drv/psb_bl.c                   |  135 -
 drivers/staging/cdv/drv/psb_dpst.c                 |  283 --
 drivers/staging/cdv/drv/psb_dpst.h                 |   98 -
 drivers/staging/cdv/drv/psb_drm.h                  |  562 ---
 drivers/staging/cdv/drv/psb_drv.c                  | 1881 --------
 drivers/staging/cdv/drv/psb_drv.h                  | 1203 -----
 drivers/staging/cdv/drv/psb_fb.c                   |  812 ----
 drivers/staging/cdv/drv/psb_fb.h                   |   59 -
 drivers/staging/cdv/drv/psb_gtt.c                  | 1045 -----
 drivers/staging/cdv/drv/psb_gtt.h                  |  112 -
 drivers/staging/cdv/drv/psb_hotplug.c              |  439 --
 drivers/staging/cdv/drv/psb_hotplug.h              |   90 -
 drivers/staging/cdv/drv/psb_intel_bios.c           |  289 --
 drivers/staging/cdv/drv/psb_intel_bios.h           |  470 --
 drivers/staging/cdv/drv/psb_intel_crt.c            |  353 --
 drivers/staging/cdv/drv/psb_intel_display.c        | 1675 -------
 drivers/staging/cdv/drv/psb_intel_display.h        |   25 -
 drivers/staging/cdv/drv/psb_intel_dpll_cdv.c       |  262 --
 drivers/staging/cdv/drv/psb_intel_drv.h            |  252 -
 drivers/staging/cdv/drv/psb_intel_hdmi.c           |  684 ---
 drivers/staging/cdv/drv/psb_intel_hdmi.h           |  935 ----
 drivers/staging/cdv/drv/psb_intel_hdmi_edid.h      | 1057 -----
 drivers/staging/cdv/drv/psb_intel_hdmi_reg.h       |  130 -
 drivers/staging/cdv/drv/psb_intel_i2c.c            |  171 -
 drivers/staging/cdv/drv/psb_intel_lvds.c           |  701 ---
 drivers/staging/cdv/drv/psb_intel_modes.c          |   77 -
 drivers/staging/cdv/drv/psb_intel_opregion.c       |  340 --
 drivers/staging/cdv/drv/psb_intel_reg.h            | 1461 ------
 drivers/staging/cdv/drv/psb_irq.c                  |  681 ---
 drivers/staging/cdv/drv/psb_irq.h                  |   49 -
 drivers/staging/cdv/drv/psb_powermgmt.c            |  875 ----
 drivers/staging/cdv/drv/psb_powermgmt.h            |   98 -
 drivers/staging/cdv/drv/psb_pvr_glue.c             |   74 -
 drivers/staging/cdv/drv/psb_pvr_glue.h             |   26 -
 drivers/staging/cdv/drv/psb_reg.h                  |  596 ---
 drivers/staging/cdv/drv/psb_reset.c                |  144 -
 drivers/staging/cdv/drv/psb_schedule.c             |   51 -
 drivers/staging/cdv/drv/psb_schedule.h             |   79 -
 drivers/staging/cdv/drv/psb_sgx.c                  |  943 ----
 drivers/staging/cdv/drv/psb_sgx.h                  |   32 -
 drivers/staging/cdv/drv/psb_socket.c               |  374 --
 drivers/staging/cdv/drv/psb_umevents.c             |  491 --
 drivers/staging/cdv/drv/psb_umevents.h             |  161 -
 drivers/staging/cdv/imgv/msvdx_power.c             |  166 -
 drivers/staging/cdv/imgv/msvdx_power.h             |   48 -
 drivers/staging/cdv/imgv/psb_buffer.c              |  442 --
 drivers/staging/cdv/imgv/psb_fence.c               |  167 -
 drivers/staging/cdv/imgv/psb_mmu.c                 | 1041 -----
 drivers/staging/cdv/imgv/psb_msvdx.c               | 1451 ------
 drivers/staging/cdv/imgv/psb_msvdx.h               | 1388 ------
 drivers/staging/cdv/imgv/psb_msvdxinit.c           | 1164 -----
 drivers/staging/cdv/imgv/psb_ttm_fence.c           |  603 ---
 drivers/staging/cdv/imgv/psb_ttm_fence_api.h       |  272 --
 drivers/staging/cdv/imgv/psb_ttm_fence_driver.h    |  302 --
 drivers/staging/cdv/imgv/psb_ttm_fence_user.c      |  237 -
 drivers/staging/cdv/imgv/psb_ttm_fence_user.h      |  140 -
 drivers/staging/cdv/imgv/psb_ttm_glue.c            |  376 --
 drivers/staging/cdv/imgv/psb_ttm_placement_user.c  |  631 ---
 drivers/staging/cdv/imgv/psb_ttm_placement_user.h  |  252 -
 drivers/staging/cdv/imgv/psb_ttm_userobj_api.h     |   85 -
 drivers/staging/cdv/pvr/COPYING                    |  351 --
 drivers/staging/cdv/pvr/INSTALL                    |   76 -
 drivers/staging/cdv/pvr/README                     |   48 -
 drivers/staging/cdv/pvr/eurasiacon/.gitignore      |    6 -
 drivers/staging/cdv/pvr/include4/dbgdrvif.h        |  328 --
 drivers/staging/cdv/pvr/include4/img_defs.h        |  121 -
 drivers/staging/cdv/pvr/include4/img_types.h       |  151 -
 drivers/staging/cdv/pvr/include4/pdumpdefs.h       |  108 -
 drivers/staging/cdv/pvr/include4/pvr_debug.h       |  148 -
 drivers/staging/cdv/pvr/include4/pvrmodule.h       |   31 -
 drivers/staging/cdv/pvr/include4/pvrversion.h      |   61 -
 drivers/staging/cdv/pvr/include4/services.h        | 1235 -----
 drivers/staging/cdv/pvr/include4/servicesext.h     |  846 ----
 drivers/staging/cdv/pvr/include4/sgx_options.h     |  237 -
 drivers/staging/cdv/pvr/include4/sgxapi_km.h       |  423 --
 drivers/staging/cdv/pvr/include4/sgxscript.h       |   81 -
 .../3rdparty/linux_framebuffer_mrst/.gitignore     |    6 -
 .../linux_framebuffer_mrst/makefile.linux.common   |   37 -
 .../3rdparty/linux_framebuffer_mrst/mrstlfb.h      |  303 --
 .../linux_framebuffer_mrst/mrstlfb_displayclass.c  | 1652 -------
 .../linux_framebuffer_mrst/mrstlfb_linux.c         |  192 -
 .../include/env/linux-intel/pvr_drm_shared.h       |   50 -
 .../services4/include/env/linux/pvr_drm_shared.h   |   50 -
 .../cdv/pvr/services4/include/kernelbuffer.h       |   72 -
 .../cdv/pvr/services4/include/kerneldisplay.h      |  165 -
 drivers/staging/cdv/pvr/services4/include/pdump.h  |   37 -
 .../staging/cdv/pvr/services4/include/pvr_bridge.h | 1784 --------
 .../cdv/pvr/services4/include/pvr_bridge_km.h      |  305 --
 .../staging/cdv/pvr/services4/include/pvrmmap.h    |   44 -
 .../cdv/pvr/services4/include/pvrsrv_errors.h      |  266 --
 .../cdv/pvr/services4/include/servicesint.h        |  391 --
 .../staging/cdv/pvr/services4/include/sgx_bridge.h |  644 ---
 .../cdv/pvr/services4/include/sgx_mkif_km.h        |  347 --
 .../staging/cdv/pvr/services4/include/sgxinfo.h    |  470 --
 .../cdv/pvr/services4/srvkm/bridged/.gitignore     |    5 -
 .../services4/srvkm/bridged/bridged_pvr_bridge.c   | 4782 --------------------
 .../services4/srvkm/bridged/bridged_pvr_bridge.h   |  252 -
 .../pvr/services4/srvkm/bridged/bridged_support.c  |   89 -
 .../pvr/services4/srvkm/bridged/bridged_support.h  |   47 -
 .../srvkm/bridged/sgx/bridged_sgx_bridge.c         | 3744 ---------------
 .../srvkm/bridged/sgx/bridged_sgx_bridge.h         |   42 -
 .../cdv/pvr/services4/srvkm/common/.gitignore      |    5 -
 .../pvr/services4/srvkm/common/buffer_manager.c    | 2531 -----------
 .../cdv/pvr/services4/srvkm/common/deviceclass.c   | 2013 --------
 .../cdv/pvr/services4/srvkm/common/deviceid.h      |   36 -
 .../cdv/pvr/services4/srvkm/common/devicemem.c     | 1797 --------
 .../cdv/pvr/services4/srvkm/common/handle.c        | 1873 --------
 .../staging/cdv/pvr/services4/srvkm/common/hash.c  |  506 ---
 .../staging/cdv/pvr/services4/srvkm/common/lists.c |   99 -
 .../staging/cdv/pvr/services4/srvkm/common/mem.c   |  153 -
 .../cdv/pvr/services4/srvkm/common/mem_debug.c     |  250 -
 .../cdv/pvr/services4/srvkm/common/metrics.c       |  160 -
 .../cdv/pvr/services4/srvkm/common/osfunc_common.c |   31 -
 .../cdv/pvr/services4/srvkm/common/pdump_common.c  | 2371 ----------
 .../cdv/pvr/services4/srvkm/common/perproc.c       |  305 --
 .../staging/cdv/pvr/services4/srvkm/common/power.c |  719 ---
 .../cdv/pvr/services4/srvkm/common/pvrsrv.c        | 1338 ------
 .../staging/cdv/pvr/services4/srvkm/common/queue.c | 1079 -----
 .../staging/cdv/pvr/services4/srvkm/common/ra.c    | 1725 -------
 .../cdv/pvr/services4/srvkm/common/resman.c        |  751 ---
 .../cdv/pvr/services4/srvkm/devices/sgx/.gitignore |    5 -
 .../cdv/pvr/services4/srvkm/devices/sgx/mmu.c      | 3696 ---------------
 .../cdv/pvr/services4/srvkm/devices/sgx/mmu.h      |  154 -
 .../cdv/pvr/services4/srvkm/devices/sgx/pb.c       |  466 --
 .../services4/srvkm/devices/sgx/sgx_bridge_km.h    |  160 -
 .../srvkm/devices/sgx/sgx_ukernel_status_codes.h   | 1024 -----
 .../pvr/services4/srvkm/devices/sgx/sgxconfig.h    |  361 --
 .../pvr/services4/srvkm/devices/sgx/sgxinfokm.h    |  574 ---
 .../cdv/pvr/services4/srvkm/devices/sgx/sgxinit.c  | 2824 ------------
 .../cdv/pvr/services4/srvkm/devices/sgx/sgxkick.c  |  784 ----
 .../cdv/pvr/services4/srvkm/devices/sgx/sgxpower.c |  481 --
 .../cdv/pvr/services4/srvkm/devices/sgx/sgxreset.c |  667 ---
 .../pvr/services4/srvkm/devices/sgx/sgxtransfer.c  |  750 ---
 .../cdv/pvr/services4/srvkm/devices/sgx/sgxutils.c | 1168 -----
 .../cdv/pvr/services4/srvkm/devices/sgx/sgxutils.h |  114 -
 .../cdv/pvr/services4/srvkm/env/linux/.gitignore   |    5 -
 .../cdv/pvr/services4/srvkm/env/linux/env_data.h   |   66 -
 .../pvr/services4/srvkm/env/linux/env_perproc.h    |   56 -
 .../cdv/pvr/services4/srvkm/env/linux/event.c      |  293 --
 .../cdv/pvr/services4/srvkm/env/linux/event.h      |   32 -
 .../cdv/pvr/services4/srvkm/env/linux/linkage.h    |   52 -
 .../cdv/pvr/services4/srvkm/env/linux/lock.h       |   32 -
 .../staging/cdv/pvr/services4/srvkm/env/linux/mm.c | 2027 ---------
 .../staging/cdv/pvr/services4/srvkm/env/linux/mm.h |  336 --
 .../cdv/pvr/services4/srvkm/env/linux/mmap.c       | 1151 -----
 .../cdv/pvr/services4/srvkm/env/linux/mmap.h       |  122 -
 .../cdv/pvr/services4/srvkm/env/linux/module.c     |  771 ----
 .../cdv/pvr/services4/srvkm/env/linux/mutex.h      |   85 -
 .../cdv/pvr/services4/srvkm/env/linux/mutils.c     |  136 -
 .../cdv/pvr/services4/srvkm/env/linux/mutils.h     |  103 -
 .../cdv/pvr/services4/srvkm/env/linux/osfunc.c     | 3115 -------------
 .../cdv/pvr/services4/srvkm/env/linux/osperproc.c  |  113 -
 .../cdv/pvr/services4/srvkm/env/linux/pdump.c      |  628 ---
 .../pvr/services4/srvkm/env/linux/private_data.h   |   69 -
 .../cdv/pvr/services4/srvkm/env/linux/proc.c       |  835 ----
 .../cdv/pvr/services4/srvkm/env/linux/proc.h       |  108 -
 .../pvr/services4/srvkm/env/linux/pvr_bridge_k.c   |  432 --
 .../cdv/pvr/services4/srvkm/env/linux/pvr_debug.c  |  424 --
 .../cdv/pvr/services4/srvkm/env/linux/pvr_drm.c    |  479 --
 .../cdv/pvr/services4/srvkm/env/linux/pvr_drm.h    |  107 -
 .../cdv/pvr/services4/srvkm/hwdefs/mnemedefs.h     |   94 -
 .../cdv/pvr/services4/srvkm/hwdefs/sgx535defs.h    |  650 ---
 .../cdv/pvr/services4/srvkm/hwdefs/sgx540defs.h    |  547 ---
 .../pvr/services4/srvkm/hwdefs/sgx543_v1.164defs.h | 1284 ------
 .../cdv/pvr/services4/srvkm/hwdefs/sgx544defs.h    | 1367 ------
 .../cdv/pvr/services4/srvkm/hwdefs/sgx545defs.h    | 1180 -----
 .../cdv/pvr/services4/srvkm/hwdefs/sgxdefs.h       |   90 -
 .../cdv/pvr/services4/srvkm/hwdefs/sgxerrata.h     |  693 ---
 .../pvr/services4/srvkm/hwdefs/sgxfeaturedefs.h    |  240 -
 .../cdv/pvr/services4/srvkm/hwdefs/sgxmmu.h        |   72 -
 .../cdv/pvr/services4/srvkm/hwdefs/sgxmpdefs.h     |  332 --
 .../pvr/services4/srvkm/include/buffer_manager.h   |  219 -
 .../cdv/pvr/services4/srvkm/include/device.h       |  323 --
 .../cdv/pvr/services4/srvkm/include/handle.h       |  404 --
 .../staging/cdv/pvr/services4/srvkm/include/hash.h |   80 -
 .../cdv/pvr/services4/srvkm/include/lists.h        |  244 -
 .../cdv/pvr/services4/srvkm/include/metrics.h      |  130 -
 .../cdv/pvr/services4/srvkm/include/osfunc.h       |  606 ---
 .../cdv/pvr/services4/srvkm/include/osperproc.h    |   76 -
 .../cdv/pvr/services4/srvkm/include/pdump_int.h    |   67 -
 .../cdv/pvr/services4/srvkm/include/pdump_km.h     |  412 --
 .../cdv/pvr/services4/srvkm/include/pdump_osfunc.h |  142 -
 .../cdv/pvr/services4/srvkm/include/perproc.h      |  126 -
 .../cdv/pvr/services4/srvkm/include/power.h        |  120 -
 .../cdv/pvr/services4/srvkm/include/queue.h        |  110 -
 .../staging/cdv/pvr/services4/srvkm/include/ra.h   |  159 -
 .../cdv/pvr/services4/srvkm/include/resman.h       |  118 -
 .../pvr/services4/srvkm/include/services_headers.h |   49 -
 .../cdv/pvr/services4/srvkm/include/srvkm.h        |   78 -
 .../cdv/pvr/services4/srvkm/include/ttrace.h       |  184 -
 .../pvr/services4/srvkm/include/ttrace_common.h    |   81 -
 .../pvr/services4/srvkm/include/ttrace_tokens.h    |   84 -
 .../cdv/pvr/services4/system/include/syscommon.h   |  262 --
 .../cdv/pvr/services4/system/unified/extsyscache.h |   44 -
 .../cdv/pvr/services4/system/unified/oemfuncs.h    |   72 -
 .../services4/system/unified/sys_pvr_drm_export.c  |  202 -
 .../services4/system/unified/sys_pvr_drm_export.h  |   97 -
 .../services4/system/unified/sys_pvr_drm_import.h  |   46 -
 .../cdv/pvr/services4/system/unified/sysconfig.c   | 1022 -----
 .../cdv/pvr/services4/system/unified/sysconfig.h   |  161 -
 .../cdv/pvr/services4/system/unified/sysinfo.h     |   43 -
 .../cdv/pvr/services4/system/unified/sysirq.h      |   49 -
 .../cdv/pvr/services4/system/unified/syslocal.h    |   75 -
 .../cdv/pvr/services4/system/unified/sysutils.c    |   30 -
 .../cdv/pvr/tools/intern/debug/client/linuxsrv.h   |   48 -
 .../tools/intern/debug/dbgdriv/common/dbgdriv.c    | 2357 ----------
 .../tools/intern/debug/dbgdriv/common/dbgdriv.h    |  122 -
 .../intern/debug/dbgdriv/common/dbgdriv_ioctl.h    |   35 -
 .../pvr/tools/intern/debug/dbgdriv/common/handle.c |  121 -
 .../tools/intern/debug/dbgdriv/common/hostfunc.h   |   58 -
 .../pvr/tools/intern/debug/dbgdriv/common/hotkey.c |  135 -
 .../pvr/tools/intern/debug/dbgdriv/common/hotkey.h |   60 -
 .../pvr/tools/intern/debug/dbgdriv/common/ioctl.c  |  586 ---
 .../tools/intern/debug/dbgdriv/linux/hostfunc.c    |  324 --
 .../intern/debug/dbgdriv/linux/kbuild/Makefile     |   35 -
 .../pvr/tools/intern/debug/dbgdriv/linux/main.c    |  315 --
 .../debug/dbgdriv/linux/makefile.linux.common      |   39 -
 225 files changed, 0 insertions(+), 109967 deletions(-)
 delete mode 100644 drivers/staging/cdv/Kconfig
 delete mode 100644 drivers/staging/cdv/Makefile
 delete mode 100644 drivers/staging/cdv/bc_video/bufferclass_video.c
 delete mode 100644 drivers/staging/cdv/bc_video/bufferclass_video.h
 delete mode 100644 drivers/staging/cdv/bc_video/bufferclass_video_linux.c
 delete mode 100644 drivers/staging/cdv/bc_video/bufferclass_video_linux.h
 delete mode 100644 drivers/staging/cdv/drv/psb_bl.c
 delete mode 100644 drivers/staging/cdv/drv/psb_dpst.c
 delete mode 100644 drivers/staging/cdv/drv/psb_dpst.h
 delete mode 100644 drivers/staging/cdv/drv/psb_drm.h
 delete mode 100644 drivers/staging/cdv/drv/psb_drv.c
 delete mode 100644 drivers/staging/cdv/drv/psb_drv.h
 delete mode 100644 drivers/staging/cdv/drv/psb_fb.c
 delete mode 100644 drivers/staging/cdv/drv/psb_fb.h
 delete mode 100644 drivers/staging/cdv/drv/psb_gtt.c
 delete mode 100644 drivers/staging/cdv/drv/psb_gtt.h
 delete mode 100644 drivers/staging/cdv/drv/psb_hotplug.c
 delete mode 100644 drivers/staging/cdv/drv/psb_hotplug.h
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_bios.c
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_bios.h
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_crt.c
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_display.c
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_display.h
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_dpll_cdv.c
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_drv.h
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_hdmi.c
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_hdmi.h
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_hdmi_edid.h
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_hdmi_reg.h
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_i2c.c
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_lvds.c
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_modes.c
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_opregion.c
 delete mode 100644 drivers/staging/cdv/drv/psb_intel_reg.h
 delete mode 100644 drivers/staging/cdv/drv/psb_irq.c
 delete mode 100644 drivers/staging/cdv/drv/psb_irq.h
 delete mode 100644 drivers/staging/cdv/drv/psb_powermgmt.c
 delete mode 100644 drivers/staging/cdv/drv/psb_powermgmt.h
 delete mode 100644 drivers/staging/cdv/drv/psb_pvr_glue.c
 delete mode 100644 drivers/staging/cdv/drv/psb_pvr_glue.h
 delete mode 100644 drivers/staging/cdv/drv/psb_reg.h
 delete mode 100644 drivers/staging/cdv/drv/psb_reset.c
 delete mode 100644 drivers/staging/cdv/drv/psb_schedule.c
 delete mode 100644 drivers/staging/cdv/drv/psb_schedule.h
 delete mode 100644 drivers/staging/cdv/drv/psb_sgx.c
 delete mode 100644 drivers/staging/cdv/drv/psb_sgx.h
 delete mode 100644 drivers/staging/cdv/drv/psb_socket.c
 delete mode 100644 drivers/staging/cdv/drv/psb_umevents.c
 delete mode 100644 drivers/staging/cdv/drv/psb_umevents.h
 delete mode 100644 drivers/staging/cdv/imgv/msvdx_power.c
 delete mode 100644 drivers/staging/cdv/imgv/msvdx_power.h
 delete mode 100644 drivers/staging/cdv/imgv/psb_buffer.c
 delete mode 100644 drivers/staging/cdv/imgv/psb_fence.c
 delete mode 100644 drivers/staging/cdv/imgv/psb_mmu.c
 delete mode 100644 drivers/staging/cdv/imgv/psb_msvdx.c
 delete mode 100644 drivers/staging/cdv/imgv/psb_msvdx.h
 delete mode 100644 drivers/staging/cdv/imgv/psb_msvdxinit.c
 delete mode 100644 drivers/staging/cdv/imgv/psb_ttm_fence.c
 delete mode 100644 drivers/staging/cdv/imgv/psb_ttm_fence_api.h
 delete mode 100644 drivers/staging/cdv/imgv/psb_ttm_fence_driver.h
 delete mode 100644 drivers/staging/cdv/imgv/psb_ttm_fence_user.c
 delete mode 100644 drivers/staging/cdv/imgv/psb_ttm_fence_user.h
 delete mode 100644 drivers/staging/cdv/imgv/psb_ttm_glue.c
 delete mode 100644 drivers/staging/cdv/imgv/psb_ttm_placement_user.c
 delete mode 100644 drivers/staging/cdv/imgv/psb_ttm_placement_user.h
 delete mode 100644 drivers/staging/cdv/imgv/psb_ttm_userobj_api.h
 delete mode 100644 drivers/staging/cdv/pvr/COPYING
 delete mode 100644 drivers/staging/cdv/pvr/INSTALL
 delete mode 100644 drivers/staging/cdv/pvr/README
 delete mode 100644 drivers/staging/cdv/pvr/eurasiacon/.gitignore
 delete mode 100644 drivers/staging/cdv/pvr/include4/dbgdrvif.h
 delete mode 100644 drivers/staging/cdv/pvr/include4/img_defs.h
 delete mode 100644 drivers/staging/cdv/pvr/include4/img_types.h
 delete mode 100644 drivers/staging/cdv/pvr/include4/pdumpdefs.h
 delete mode 100644 drivers/staging/cdv/pvr/include4/pvr_debug.h
 delete mode 100644 drivers/staging/cdv/pvr/include4/pvrmodule.h
 delete mode 100644 drivers/staging/cdv/pvr/include4/pvrversion.h
 delete mode 100644 drivers/staging/cdv/pvr/include4/services.h
 delete mode 100644 drivers/staging/cdv/pvr/include4/servicesext.h
 delete mode 100644 drivers/staging/cdv/pvr/include4/sgx_options.h
 delete mode 100644 drivers/staging/cdv/pvr/include4/sgxapi_km.h
 delete mode 100644 drivers/staging/cdv/pvr/include4/sgxscript.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/.gitignore
 delete mode 100644 drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/makefile.linux.common
 delete mode 100644 drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/mrstlfb.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/mrstlfb_displayclass.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/mrstlfb_linux.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/include/env/linux-intel/pvr_drm_shared.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/include/env/linux/pvr_drm_shared.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/include/kernelbuffer.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/include/kerneldisplay.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/include/pdump.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/include/pvr_bridge.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/include/pvr_bridge_km.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/include/pvrmmap.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/include/pvrsrv_errors.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/include/servicesint.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/include/sgx_bridge.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/include/sgx_mkif_km.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/include/sgxinfo.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/bridged/.gitignore
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_pvr_bridge.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_pvr_bridge.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_support.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_support.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/bridged/sgx/bridged_sgx_bridge.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/.gitignore
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/buffer_manager.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/deviceclass.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/deviceid.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/devicemem.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/handle.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/hash.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/lists.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/mem.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/mem_debug.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/metrics.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/osfunc_common.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/pdump_common.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/perproc.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/power.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/pvrsrv.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/queue.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/ra.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/common/resman.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/.gitignore
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/mmu.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/mmu.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/pb.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgx_bridge_km.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgx_ukernel_status_codes.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxconfig.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxinfokm.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxinit.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxkick.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxpower.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxreset.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxtransfer.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxutils.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxutils.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/.gitignore
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/env_data.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/env_perproc.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/event.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/event.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/linkage.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/lock.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/mm.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/mm.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/mmap.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/mmap.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/module.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/mutex.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/mutils.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/mutils.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/osfunc.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/osperproc.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/pdump.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/private_data.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/proc.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/proc.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_bridge_k.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_debug.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_drm.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_drm.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/hwdefs/mnemedefs.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx535defs.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx540defs.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx543_v1.164defs.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx544defs.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx545defs.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxdefs.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxerrata.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxfeaturedefs.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxmmu.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxmpdefs.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/buffer_manager.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/device.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/handle.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/hash.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/lists.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/metrics.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/osfunc.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/osperproc.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/pdump_int.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/pdump_km.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/pdump_osfunc.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/perproc.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/power.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/queue.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/ra.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/resman.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/services_headers.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/srvkm.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/ttrace.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/ttrace_common.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/srvkm/include/ttrace_tokens.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/system/include/syscommon.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/system/unified/extsyscache.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/system/unified/oemfuncs.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/system/unified/sys_pvr_drm_export.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/system/unified/sys_pvr_drm_export.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/system/unified/sys_pvr_drm_import.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/system/unified/sysconfig.c
 delete mode 100644 drivers/staging/cdv/pvr/services4/system/unified/sysconfig.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/system/unified/sysinfo.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/system/unified/sysirq.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/system/unified/syslocal.h
 delete mode 100644 drivers/staging/cdv/pvr/services4/system/unified/sysutils.c
 delete mode 100644 drivers/staging/cdv/pvr/tools/intern/debug/client/linuxsrv.h
 delete mode 100644 drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/dbgdriv.c
 delete mode 100644 drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/dbgdriv.h
 delete mode 100644 drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/dbgdriv_ioctl.h
 delete mode 100644 drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/handle.c
 delete mode 100644 drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/hostfunc.h
 delete mode 100644 drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/hotkey.c
 delete mode 100644 drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/hotkey.h
 delete mode 100644 drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/ioctl.c
 delete mode 100644 drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/hostfunc.c
 delete mode 100644 drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/kbuild/Makefile
 delete mode 100644 drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/main.c
 delete mode 100644 drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/makefile.linux.common

diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
index 3aa8e02..196284d 100644
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
@@ -154,8 +154,6 @@ source "drivers/staging/ste_rmi4/Kconfig"
 
 source "drivers/staging/gma500/Kconfig"
 
-source "drivers/staging/cdv/Kconfig"
-
 source "drivers/staging/altera-stapl/Kconfig"
 
 source "drivers/staging/mei/Kconfig"
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
index cec917b..fa41b9c 100644
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
@@ -69,6 +69,5 @@ obj-$(CONFIG_ALTERA_STAPL)	+=altera-stapl/
 obj-$(CONFIG_TOUCHSCREEN_CLEARPAD_TM1217)	+= cptm1217/
 obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4)	+= ste_rmi4/
 obj-$(CONFIG_DRM_PSB)		+= gma500/
-obj-$(CONFIG_DRM_INTEL_CDV)	+= cdv/
 obj-$(CONFIG_INTEL_MEI)		+= mei/
 obj-$(CONFIG_MFD_NVEC)		+= nvec/
diff --git a/drivers/staging/cdv/Kconfig b/drivers/staging/cdv/Kconfig
deleted file mode 100644
index 75cf7e8..0000000
--- a/drivers/staging/cdv/Kconfig
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# Drm device configuration
-#
-# This driver provides support for the
-# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
-#
-
-config DRM_INTEL_CDV
-	tristate "Intel CDV (load along with IMG driver)"
-	depends on DRM && PCI
-	select FB_CFB_COPYAREA
-        select FB_CFB_FILLRECT
-        select FB_CFB_IMAGEBLIT
-        select DRM_KMS_HELPER
-        select DRM_TTM
-	help
-          Choose this option if you have a Cedarview platform.
-          If M is selected the module will be called cedarview_gfx.
-
-choice 
-	prompt "Build IMG kernel service as "
-	depends on DRM_INTEL_CDV
-	default DRM_CDV_RELEASE
-
-config DRM_CDV_RELEASE
-	bool "Release"
-	depends on DRM_INTEL_CDV
-	help
-	  Build IMG kernel services as release version.
-
-config DRM_CDV_DEBUG
-	bool "Debug"
-	depends on DRM_INTEL_CDV
-	help
-	  Build IMG kernel services as debug version.	
-endchoice
-
-if DRM_CDV_DEBUG
-
-config DRM_PVR_PDUMP
- 	bool "Enable PDump Debug"
- 	help
- 	  Build the PVR driver with PDUMP feature. At most cases it should be N.
-
-config DRM_PVR_TRACE
-	bool "Enable PVR Service Trace"
-	help
-	  Enable PVR service call trace. If unsure, it should be N.
-
-endif
diff --git a/drivers/staging/cdv/Makefile b/drivers/staging/cdv/Makefile
deleted file mode 100644
index 25a9ee1..0000000
--- a/drivers/staging/cdv/Makefile
+++ /dev/null
@@ -1,198 +0,0 @@
-# Makefile for the drm device driver.  This driver provides support for the
-# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
-
-INCDIR=drivers/staging/cdv
-
-include_dirs := \
-	-I$(INCDIR)/pvr/include4 \
-        -I$(INCDIR)/pvr/services4/include \
-        -I$(INCDIR)/pvr/services4/include/env/linux \
-        -I$(INCDIR)/pvr/services4/srvkm/env/linux \
-        -I$(INCDIR)/pvr/services4/srvkm/include \
-        -I$(INCDIR)/pvr/services4/srvkm/bridged \
-	-I$(INCDIR)/pvr/services4/system/include \
-        -I$(INCDIR)/pvr/services4/srvkm/hwdefs \
-        -I$(INCDIR)/pvr/services4/srvkm/bridged/sgx \
-        -I$(INCDIR)/pvr/services4/srvkm/devices/sgx \
-        -I$(INCDIR)/ \
-        -I$(INCDIR)/drv \
-        -I$(INCDIR)/bc_video \
-        -I$(INCDIR)/imgv \
-	-Iinclude/linux \
-	-Iinclude/drm
-
- 
-ccflags-y += $(include_dirs)
-
-ccflags-$(CONFIG_DRM_PVR_PDUMP) += -I$(INCDIR)/pvr/tools/intern/debug/client \
-			-I$(INCDIR)/pvr/tools/intern/debug/dbgdriv/common
-ccflags-y += -I$(INCDIR)/pvr/services4/system/unified -DSGX545 -DSUPPORT_SGX545 -DSGX_CORE_REV=10131
-
-
-ccflags-y += \
-	-Wall \
-	-Werror \
-	-DLINUX \
-	-DPVR_BUILD_DIR="\"pc_i686_moorestown_linux\"" \
-	-DSUPPORT_DRI_DRM \
-	-DSUPPORT_DRI_DRM_EXT \
-	-DSERVICES4 \
-	-D_XOPEN_SOURCE=600 \
-	-DPVR2D_VALIDATE_INPUT_PARAMS \
-	-DDISPLAY_CONTROLLER=mrstlfb \
-	-UDEBUG_LOG_PATH_TRUNCATE \
-	-DSUPPORT_SRVINIT \
-	-DSUPPORT_SGX \
-	-DSUPPORT_LINUX_X86_WRITECOMBINE \
-	-DTRANSFER_QUEUE \
-	-DSYS_USING_INTERRUPTS \
-	-DSUPPORT_HW_RECOVERY \
-	-DPVR_SECURE_HANDLES \
-	-DUSE_PTHREADS \
-	-DSUPPORT_SGX_EVENT_OBJECT \
-	-DSUPPORT_SGX_HWPERF \
-	-DSUPPORT_LINUX_X86_PAT \
-	-DPVR_PROC_USE_SEQ_FILE \
-	-DSUPPORT_CACHE_LINE_FLUSH \
-	-DSUPPORT_CPU_CACHED_BUFFERS \
-	-DDISABLE_PM \
-	-DSUPPORT_SGX_NEW_STATUS_VALS \
-	-DSUPPORT_PERCONTEXT_PB \
-	-DDRM_PVR_USE_INTEL_FB
-
-SUPPORT_EGL_EXTENSIONS ?=1
-ifeq ($(SUPPORT_EGL_EXTENSIONS),1)
-	PVRSRV_RESOURCE_PROFILING = y
-	PERPROC_LIST = y
-	RES_MAN_EXTEND = y
-	PVRSRV_OS_MEM_INFO = y
-else
-	PVRSRV_RESOURCE_PROFILING =
-        PERPROC_LIST =
-        RES_MAN_EXTEND =
-        PVRSRV_OS_MEM_INFO =
-endif
-ccflags-$(PVRSRV_RESOURCE_PROFILING) += -DPVRSRV_RESOURCE_PROFILING
-ccflags-$(PERPROC_LIST) += -DPERPROC_LIST
-ccflags-$(RES_MAN_EXTEND) += -DRES_MAN_EXTEND
-ccflags-$(PVRSRV_OS_MEM_INFO) += -DPVRSRV_OS_MEM_INFO
-
-ccflags-$(CONFIG_DRM_CDV_RELEASE) += -DBUILD="\"release\"" -DPVR_BUILD_TYPE="\"release\"" -DRELEASE
-ccflags-$(CONFIG_DRM_CDV_DEBUG) += -DBUILD="\"debug\"" -DPVR_BUILD_TYPE="\"debug\"" -DDEBUG -DDEBUG_LINUX_MEM_AREAS -DDEBUG_LINUX_MEMORY_ALLOCATIONS -DDEBUG_LINUX_MMAP_AREAS -DDEBUG_BRIDGE_KM -DPVRSRV_NEED_PVR_TRACE -DDEBUG_MESA_OGL_TRACE -DPVRSRV_USSE_EDM_STATUS_DEBUG -DPVRSRV_DUMP_MK_TRACE
-ccflags-$(CONFIG_PCI_MSI) += -DCONFIG_PCI_MSI
-
-ccflags-$(CONFIG_DRM_PVR_PDUMP) += -DPDUMP
-ccflags-$(CONFIG_DRM_PVR_TRACE) += -DDEBUG_TRACE_BRIDGE_KM
-	
-ENVDIR = pvr/services4/srvkm/env/linux
-COMMONDIR = pvr/services4/srvkm/common
-BRIDGEDDIR = pvr/services4/srvkm/bridged
-SGXDIR = pvr/services4/srvkm/devices/sgx
-FBDEVDIR = pvr/services4/3rdparty/linux_framebuffer_mrst
-DRMDRVDIR = drv
-SYSCONFIGDIR = pvr/services4/system/unified
-IMGVDIR = imgv
-BUFFER_CLASS_DIR = bc_video
-
-PDUMP_MAIN_DIR = pvr/tools/intern/debug/dbgdriv/linux
-PDUMP_COMMON_DIR = pvr/tools/intern/debug/dbgdriv/common
-
-cedarview_gfx-y += $(ENVDIR)/osfunc.o \
-	  $(ENVDIR)/mutils.o \
-	  $(ENVDIR)/mmap.o \
-	  $(ENVDIR)/module.o \
-	  $(ENVDIR)/pdump.o \
-	  $(ENVDIR)/proc.o \
-	  $(ENVDIR)/pvr_bridge_k.o \
-	  $(ENVDIR)/pvr_debug.o \
-	  $(ENVDIR)/mm.o \
-	  $(ENVDIR)/event.o \
-	  $(ENVDIR)/osperproc.o \
-	  $(ENVDIR)/pvr_drm.o
-
-cedarview_gfx-y += $(COMMONDIR)/buffer_manager.o \
-	  $(COMMONDIR)/devicemem.o \
-	  $(COMMONDIR)/deviceclass.o \
-	  $(COMMONDIR)/handle.o \
-	  $(COMMONDIR)/hash.o \
-	  $(COMMONDIR)/metrics.o \
-	  $(COMMONDIR)/pvrsrv.o \
-	  $(COMMONDIR)/queue.o \
-	  $(COMMONDIR)/ra.o \
-	  $(COMMONDIR)/resman.o \
-	  $(COMMONDIR)/power.o \
-	  $(COMMONDIR)/mem.o \
-	  $(COMMONDIR)/pdump_common.o \
-	  $(COMMONDIR)/perproc.o \
-	  $(COMMONDIR)/lists.o \
-	  $(COMMONDIR)/mem_debug.o \
-	  $(COMMONDIR)/osfunc_common.o
-
-cedarview_gfx-y += $(BRIDGEDDIR)/bridged_support.o \
-	  $(BRIDGEDDIR)/bridged_pvr_bridge.o \
-	  $(BRIDGEDDIR)/sgx/bridged_sgx_bridge.o
-
-cedarview_gfx-y += $(SYSCONFIGDIR)/sysconfig.o \
-	  $(SYSCONFIGDIR)/sysutils.o \
-	  $(SYSCONFIGDIR)/sys_pvr_drm_export.o 
-
-cedarview_gfx-y += $(SGXDIR)/sgxinit.o \
-	  $(SGXDIR)/sgxpower.o \
-	  $(SGXDIR)/sgxreset.o \
-	  $(SGXDIR)/sgxutils.o \
-	  $(SGXDIR)/sgxkick.o \
-	  $(SGXDIR)/sgxtransfer.o \
-	  $(SGXDIR)/mmu.o \
-	  $(SGXDIR)/pb.o
-
-cedarview_gfx-y += $(FBDEVDIR)/mrstlfb_displayclass.o \
-	  $(FBDEVDIR)/mrstlfb_linux.o
-
-cedarview_gfx-y += $(DRMDRVDIR)/psb_bl.o \
-	  $(DRMDRVDIR)/psb_dpst.o \
-	  $(DRMDRVDIR)/psb_drv.o \
-	  $(DRMDRVDIR)/psb_fb.o \
-	  $(DRMDRVDIR)/psb_gtt.o \
-	  $(DRMDRVDIR)/psb_hotplug.o \
-	  $(DRMDRVDIR)/psb_intel_bios.o \
-	  $(DRMDRVDIR)/psb_intel_opregion.o \
-	  $(DRMDRVDIR)/psb_intel_display.o \
-	  $(DRMDRVDIR)/psb_intel_i2c.o \
-	  $(DRMDRVDIR)/psb_intel_lvds.o \
-	  $(DRMDRVDIR)/psb_intel_modes.o \
-	  $(DRMDRVDIR)/psb_intel_hdmi.o \
-	  $(DRMDRVDIR)/psb_reset.o \
-	  $(DRMDRVDIR)/psb_schedule.o \
-	  $(DRMDRVDIR)/psb_sgx.o \
-	  $(DRMDRVDIR)/psb_socket.o \
-	  $(DRMDRVDIR)/psb_pvr_glue.o \
-	  $(DRMDRVDIR)/psb_umevents.o \
-	  $(DRMDRVDIR)/psb_intel_crt.o \
-	  $(DRMDRVDIR)/psb_intel_dpll_cdv.o \
-
-cedarview_gfx-y += $(IMGVDIR)/psb_buffer.o \
-	  $(IMGVDIR)/psb_fence.o \
-	  $(IMGVDIR)/psb_mmu.o \
-	  $(IMGVDIR)/psb_msvdx.o \
-	  $(IMGVDIR)/msvdx_power.o \
-	  $(IMGVDIR)/psb_msvdxinit.o \
-	  $(IMGVDIR)/psb_ttm_glue.o \
-	  $(IMGVDIR)/psb_ttm_fence.o \
-	  $(IMGVDIR)/psb_ttm_fence_user.o \
-	  $(IMGVDIR)/psb_ttm_placement_user.o 
-
-cedarview_gfx-y += $(DRMDRVDIR)/psb_powermgmt.o $(DRMDRVDIR)/psb_irq.o
-
-cedarview_gfx-y += $(BUFFER_CLASS_DIR)/bufferclass_video.o \
-                        $(BUFFER_CLASS_DIR)/bufferclass_video_linux.o
-
-cedarview_gfx-$(CONFIG_DRM_PVR_PDUMP) += $(PDUMP_MAIN_DIR)/main.o \
-					 $(PDUMP_MAIN_DIR)/hostfunc.o \
-					 $(PDUMP_COMMON_DIR)/dbgdriv.o \
-					 $(PDUMP_COMMON_DIR)/handle.o \
-					 $(PDUMP_COMMON_DIR)/hotkey.o \
-					 $(PDUMP_COMMON_DIR)/ioctl.o
-					
-
-obj-$(CONFIG_DRM_INTEL_CDV) += cedarview_gfx.o
-
diff --git a/drivers/staging/cdv/bc_video/bufferclass_video.c b/drivers/staging/cdv/bc_video/bufferclass_video.c
deleted file mode 100644
index 3464b46..0000000
--- a/drivers/staging/cdv/bc_video/bufferclass_video.c
+++ /dev/null
@@ -1,327 +0,0 @@
-/***************************************************************************
- *
- * Copyright © 2011 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- ******************************************************************************/
-
-#if defined(__linux__)
-#include <linux/string.h>
-#else
-#include <string.h>
-#endif
-
-#include "bufferclass_video.h"
-#include "bufferclass_video_linux.h"
-
-#define VBUFFERCLASS_DEVICE_NAME "Video Bufferclass Device"
-#define CBUFFERCLASS_DEVICE_NAME "Camera Bufferclass Device"
-
-static void *gpvAnchorVideo[BC_VIDEO_DEVICE_MAX_ID];
-
-static void *gpcAnchor;
-static PFN_BC_GET_PVRJTABLE pfnGetPVRJTable = IMG_NULL;
-
-BC_VIDEO_DEVINFO *
-GetAnchorPtr (int id)
-{
-    BC_VIDEO_DEVINFO *AnchorPtr = NULL;
-    if (id < BC_VIDEO_DEVICE_MAX_ID)
-        AnchorPtr = gpvAnchorVideo[id];
-    else if (id == BC_CAMERA_DEVICEID)
-        AnchorPtr = gpcAnchor;
-    return AnchorPtr;
-}
-
-static void
-SetAnchorPtr (BC_VIDEO_DEVINFO * psDevInfo, int id)
-{
-    if (id < BC_VIDEO_DEVICE_MAX_ID)
-        gpvAnchorVideo[id] = (void *) psDevInfo;
-    else if (id == BC_CAMERA_DEVICEID)
-        gpcAnchor = (void *) psDevInfo;
-}
-
-static PVRSRV_ERROR
-OpenVBCDevice (IMG_UINT32 uDeviceID, IMG_HANDLE * phDevice)
-{
-    BC_VIDEO_DEVINFO *psDevInfo;
-    int id;
-    *phDevice = NULL;
-    for(id = 0; id < BC_VIDEO_DEVICE_MAX_ID; id++){
-        psDevInfo = GetAnchorPtr(id);
-        if(psDevInfo != NULL && psDevInfo->ulDeviceID == uDeviceID){
-            *phDevice = (IMG_HANDLE) psDevInfo;
-            break;
-        }
-    }
-
-    return (PVRSRV_OK);
-}
-
-static PVRSRV_ERROR OpenCBCDevice(IMG_UINT32 uDeviceID, IMG_HANDLE *phDevice)
-{
-    BC_VIDEO_DEVINFO *psDevInfo;
-
-    UNREFERENCED_PARAMETER(uDeviceID);
-    psDevInfo = GetAnchorPtr(BC_CAMERA_DEVICEID);
-
-    *phDevice = (IMG_HANDLE)psDevInfo;
-
-    return (PVRSRV_OK);
-}
-
-static PVRSRV_ERROR
-CloseBCDevice (IMG_UINT32 uDeviceID, IMG_HANDLE hDevice)
-{
-    UNREFERENCED_PARAMETER (uDeviceID);
-    UNREFERENCED_PARAMETER (hDevice);
-
-    return (PVRSRV_OK);
-}
-
-static PVRSRV_ERROR
-GetBCBuffer (IMG_HANDLE hDevice,
-        IMG_UINT32 ui32BufferNumber,
-        PVRSRV_SYNC_DATA * psSyncData, IMG_HANDLE * phBuffer)
-{
-    BC_VIDEO_DEVINFO *psDevInfo;
-
-    if (!hDevice || !phBuffer)
-    {
-        return (PVRSRV_ERROR_INVALID_PARAMS);
-    }
-
-    psDevInfo = (BC_VIDEO_DEVINFO *) hDevice;
-
-    if (ui32BufferNumber < psDevInfo->sBufferInfo.ui32BufferCount)
-    {
-        psDevInfo->psSystemBuffer[ui32BufferNumber].psSyncData = psSyncData;
-        *phBuffer = (IMG_HANDLE) & psDevInfo->psSystemBuffer[ui32BufferNumber];
-    }
-    else
-    {
-        return (PVRSRV_ERROR_INVALID_PARAMS);
-    }
-
-    return (PVRSRV_OK);
-}
-
-static PVRSRV_ERROR
-GetBCInfo (IMG_HANDLE hDevice, BUFFER_INFO * psBCInfo)
-{
-    BC_VIDEO_DEVINFO *psDevInfo;
-
-    if (!hDevice || !psBCInfo)
-    {
-        return (PVRSRV_ERROR_INVALID_PARAMS);
-    }
-
-    psDevInfo = (BC_VIDEO_DEVINFO *) hDevice;
-
-    *psBCInfo = psDevInfo->sBufferInfo;
-
-    return (PVRSRV_OK);
-}
-
-static PVRSRV_ERROR
-GetBCBufferAddr (IMG_HANDLE hDevice,
-        IMG_HANDLE hBuffer,
-        IMG_SYS_PHYADDR ** ppsSysAddr,
-        IMG_UINT32 * pui32ByteSize,
-        IMG_VOID ** ppvCpuVAddr,
-        IMG_HANDLE * phOSMapInfo,
-        IMG_BOOL * pbIsContiguous, IMG_UINT32 * pui32TilingStride)
-{
-    BC_VIDEO_BUFFER *psBuffer;
-
-    UNREFERENCED_PARAMETER (pui32TilingStride);
-    if (!hDevice || !hBuffer || !ppsSysAddr || !pui32ByteSize)
-    {
-        return (PVRSRV_ERROR_INVALID_PARAMS);
-    }
-
-    psBuffer = (BC_VIDEO_BUFFER *) hBuffer;
-
-    *ppvCpuVAddr = psBuffer->sCPUVAddr;
-
-    *phOSMapInfo = IMG_NULL;
-    *pui32ByteSize = (IMG_UINT32) psBuffer->ulSize;
-
-    *ppsSysAddr = psBuffer->psSysAddr;
-    *pbIsContiguous = psBuffer->is_conti_addr;
-
-    return (PVRSRV_OK);
-}
-
-
-BCE_ERROR
-BC_Video_Register (int id)
-{
-    BC_VIDEO_DEVINFO *psDevInfo;
-
-    psDevInfo = GetAnchorPtr (id);
-
-    if (psDevInfo == NULL)
-    {
-        psDevInfo =
-            (BC_VIDEO_DEVINFO *) BCAllocKernelMem (sizeof (BC_VIDEO_DEVINFO));
-
-        if (!psDevInfo)
-        {
-            return (BCE_ERROR_OUT_OF_MEMORY);
-        }
-
-        SetAnchorPtr ((void *) psDevInfo, id);
-
-        psDevInfo->ulRefCount = 0;
-
-        if (BCOpenPVRServices (&psDevInfo->hPVRServices) != BCE_OK)
-        {
-            return (BCE_ERROR_INIT_FAILURE);
-        }
-        if (BCGetLibFuncAddr
-                (psDevInfo->hPVRServices, "PVRGetBufferClassJTable",
-                 &pfnGetPVRJTable) != BCE_OK)
-        {
-            return (BCE_ERROR_INIT_FAILURE);
-        }
-
-        if (!(*pfnGetPVRJTable) (&psDevInfo->sPVRJTable))
-        {
-            return (BCE_ERROR_INIT_FAILURE);
-        }
-
-        psDevInfo->ulNumBuffers = 0;
-
-        psDevInfo->sBufferInfo.pixelformat = PVRSRV_PIXEL_FORMAT_UNKNOWN;
-        psDevInfo->sBufferInfo.ui32Width = 0;
-        psDevInfo->sBufferInfo.ui32Height = 0;
-        psDevInfo->sBufferInfo.ui32ByteStride = 0;
-        psDevInfo->sBufferInfo.ui32BufferDeviceID = id;
-        psDevInfo->sBufferInfo.ui32Flags = 0;
-        psDevInfo->sBufferInfo.ui32BufferCount =
-            (IMG_UINT32) psDevInfo->ulNumBuffers;
-
-        if (id < BC_VIDEO_DEVICE_MAX_ID)
-        {
-            strncpy (psDevInfo->sBufferInfo.szDeviceName,
-                    VBUFFERCLASS_DEVICE_NAME, MAX_BUFFER_DEVICE_NAME_SIZE);
-            psDevInfo->sBCJTable.pfnOpenBCDevice = OpenVBCDevice;
-        }
-        else if (id == BC_CAMERA_DEVICEID)
-        {
-            strncpy (psDevInfo->sBufferInfo.szDeviceName,
-                    CBUFFERCLASS_DEVICE_NAME, MAX_BUFFER_DEVICE_NAME_SIZE);
-            psDevInfo->sBCJTable.pfnOpenBCDevice = OpenCBCDevice;
-        }
-
-        psDevInfo->sBCJTable.ui32TableSize =
-            sizeof (PVRSRV_BC_SRV2BUFFER_KMJTABLE);
-        psDevInfo->sBCJTable.pfnCloseBCDevice = CloseBCDevice;
-        psDevInfo->sBCJTable.pfnGetBCBuffer = GetBCBuffer;
-        psDevInfo->sBCJTable.pfnGetBCInfo = GetBCInfo;
-        psDevInfo->sBCJTable.pfnGetBufferAddr = GetBCBufferAddr;
-
-        if (psDevInfo->sPVRJTable.
-                pfnPVRSRVRegisterBCDevice (&psDevInfo->sBCJTable,
-                    &psDevInfo->ulDeviceID) != PVRSRV_OK)
-        {
-            return (BCE_ERROR_DEVICE_REGISTER_FAILED);
-        }
-    }
-
-    psDevInfo->ulRefCount++;
-
-    return (BCE_OK);
-}
-
-BCE_ERROR
-BC_Video_Unregister (int id)
-{
-    BC_VIDEO_DEVINFO *psDevInfo;
-
-    psDevInfo = GetAnchorPtr (id);
-
-    if (psDevInfo == NULL)
-    {
-        return (BCE_ERROR_GENERIC);
-    }
-
-    psDevInfo->ulRefCount--;
-
-    if (psDevInfo->ulRefCount == 0)
-    {
-        PVRSRV_BC_BUFFER2SRV_KMJTABLE *psJTable = &psDevInfo->sPVRJTable;
-
-        if (psJTable->pfnPVRSRVRemoveBCDevice (psDevInfo->ulDeviceID) !=
-                PVRSRV_OK)
-        {
-            return (BCE_ERROR_GENERIC);
-        }
-
-        if (BCClosePVRServices (psDevInfo->hPVRServices) != BCE_OK)
-        {
-            psDevInfo->hPVRServices = NULL;
-            return (BCE_ERROR_GENERIC);
-        }
-
-        if (psDevInfo->psSystemBuffer)
-        {
-            BCFreeKernelMem (psDevInfo->psSystemBuffer);
-        }
-
-        BCFreeKernelMem (psDevInfo);
-
-        SetAnchorPtr (NULL, id);
-    }
-    return (BCE_OK);
-}
-
-BCE_ERROR
-BC_Video_Init (int id)
-{
-    BCE_ERROR eError;
-
-    eError = BC_Video_Register (id);
-    if (eError != BCE_OK)
-    {
-        return eError;
-    }
-
-    return (BCE_OK);
-}
-
-BCE_ERROR
-BC_Video_Deinit (int id)
-{
-    BCE_ERROR eError;
-
-    BC_DestroyBuffers (id);
-
-    eError = BC_Video_Unregister (id);
-    if (eError != BCE_OK)
-    {
-        return eError;
-    }
-
-    return (BCE_OK);
-}
diff --git a/drivers/staging/cdv/bc_video/bufferclass_video.h b/drivers/staging/cdv/bc_video/bufferclass_video.h
deleted file mode 100644
index 07dd33a..0000000
--- a/drivers/staging/cdv/bc_video/bufferclass_video.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/**********************************************************************
- *
- * Copyright © 2011 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- ******************************************************************************/
-
-#ifndef __BC_VIDEO_H__
-#define __BC_VIDEO_H__
-
-#include "img_defs.h"
-#include "servicesext.h"
-#include "kernelbuffer.h"
-#include <kernel.h>
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-    enum BC_memory
-    {
-        BC_MEMORY_MMAP = 1,
-        BC_MEMORY_USERPTR = 2,
-    };
-
-    /*
-     * the following types are tested for fourcc in struct bc_buf_params_t
-     *   NV12
-     *   UYVY
-     *   RGB565 - not tested yet
-     *   YUYV
-     */
-    typedef struct bc_buf_params
-    {
-        int count;            /*number of buffers, [in/out] */
-        int width;            /*buffer width in pixel, multiple of 8 or 32 */
-        int height;            /*buffer height in pixel */
-        int stride;
-        unsigned int fourcc;    /*buffer pixel format */
-        enum BC_memory type;
-    } bc_buf_params_t;
-
-    extern IMG_IMPORT IMG_BOOL
-        PVRGetBufferClassJTable (PVRSRV_BC_BUFFER2SRV_KMJTABLE * psJTable);
-
-#define BC_VIDEO_DEVICE_MAX_ID          5
-#define BC_CAMERA_DEVICEID              8
-
-    typedef void *BCE_HANDLE;
-
-    typedef enum tag_bce_bool
-    {
-        BCE_FALSE = 0,
-        BCE_TRUE = 1,
-    } BCE_BOOL, *BCE_PBOOL;
-
-    typedef struct BC_VIDEO_BUFFER_TAG
-    {
-        unsigned long ulSize;
-        BCE_HANDLE hMemHandle;
-
-        IMG_SYS_PHYADDR *psSysAddr;
-
-        IMG_CPU_VIRTADDR sCPUVAddr;
-        PVRSRV_SYNC_DATA *psSyncData;
-
-        struct BC_VIDEO_BUFFER_TAG *psNext;
-        int sBufferHandle;
-        IMG_BOOL is_conti_addr;
-    } BC_VIDEO_BUFFER;
-
-    typedef struct BC_VIDEO_DEVINFO_TAG
-    {
-        IMG_UINT32 ulDeviceID;
-
-        BC_VIDEO_BUFFER *psSystemBuffer;
-
-        unsigned long ulNumBuffers;
-
-        PVRSRV_BC_BUFFER2SRV_KMJTABLE sPVRJTable;
-
-        PVRSRV_BC_SRV2BUFFER_KMJTABLE sBCJTable;
-
-        BCE_HANDLE hPVRServices;
-
-        unsigned long ulRefCount;
-
-        BUFFER_INFO sBufferInfo;
-        enum BC_memory buf_type;
-    } BC_VIDEO_DEVINFO;
-
-    typedef enum _BCE_ERROR_
-    {
-        BCE_OK = 0,
-        BCE_ERROR_GENERIC = 1,
-        BCE_ERROR_OUT_OF_MEMORY = 2,
-        BCE_ERROR_TOO_FEW_BUFFERS = 3,
-        BCE_ERROR_INVALID_PARAMS = 4,
-        BCE_ERROR_INIT_FAILURE = 5,
-        BCE_ERROR_CANT_REGISTER_CALLBACK = 6,
-        BCE_ERROR_INVALID_DEVICE = 7,
-        BCE_ERROR_DEVICE_REGISTER_FAILED = 8,
-        BCE_ERROR_NO_PRIMARY = 9
-    } BCE_ERROR;
-
-#ifndef UNREFERENCED_PARAMETER
-#define    UNREFERENCED_PARAMETER(param) (param) = (param)
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-    BCE_ERROR BC_Video_Register (int id);
-    BCE_ERROR BC_Video_Unregister (int id);
-    BCE_ERROR BC_Video_Buffers_Create (int id);
-    BCE_ERROR BC_Video_Buffers_Destroy (int id);
-    BCE_ERROR BC_Video_Init (int id);
-    BCE_ERROR BC_Video_Deinit (int id);
-
-    BCE_ERROR BCOpenPVRServices (BCE_HANDLE * phPVRServices);
-    BCE_ERROR BCClosePVRServices (BCE_HANDLE hPVRServices);
-
-    void *BCAllocKernelMem (unsigned long ulSize);
-    void BCFreeKernelMem (void *pvMem);
-
-    BCE_ERROR BCAllocDiscontigMemory (unsigned long ulSize,
-            BCE_HANDLE unref__ * phMemHandle,
-            IMG_CPU_VIRTADDR * pLinAddr,
-            IMG_SYS_PHYADDR ** ppPhysAddr);
-
-    void BCFreeDiscontigMemory (unsigned long ulSize,
-            BCE_HANDLE unref__ hMemHandle,
-            IMG_CPU_VIRTADDR LinAddr,
-            IMG_SYS_PHYADDR * pPhysAddr);
-
-    IMG_SYS_PHYADDR CpuPAddrToSysPAddrBC (IMG_CPU_PHYADDR cpu_paddr);
-    IMG_CPU_PHYADDR SysPAddrToCpuPAddrBC (IMG_SYS_PHYADDR sys_paddr);
-
-    void *MapPhysAddr (IMG_SYS_PHYADDR sSysAddr, unsigned long ulSize);
-    void UnMapPhysAddr (void *pvAddr, unsigned long ulSize);
-
-    BCE_ERROR BCGetLibFuncAddr (BCE_HANDLE hExtDrv, char *szFunctionName,
-            PFN_BC_GET_PVRJTABLE * ppfnFuncTable);
-    BC_VIDEO_DEVINFO *GetAnchorPtr (int id);
-    int GetBufferCount (unsigned int *puiBufferCount, int id);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/drivers/staging/cdv/bc_video/bufferclass_video_linux.c b/drivers/staging/cdv/bc_video/bufferclass_video_linux.c
deleted file mode 100644
index f70418a..0000000
--- a/drivers/staging/cdv/bc_video/bufferclass_video_linux.c
+++ /dev/null
@@ -1,838 +0,0 @@
-/****************************************************************************
- *
- * Copyright © 2011 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- ******************************************************************************/
-
-#include <linux/version.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/fs.h>
-#include <asm/uaccess.h>
-#include <asm/io.h>
-
-#if defined(LMA)
-#include <linux/pci.h>
-#else
-#include <linux/dma-mapping.h>
-#endif
-
-#include <drm/drmP.h>
-#include <drm/drm.h>
-#include "psb_drv.h"
-#include "ttm/ttm_bo_api.h"
-#include "ttm/ttm_placement.h"
-#include "ttm/ttm_object.h"
-
-#include "bufferclass_video.h"
-#include "bufferclass_video_linux.h"
-#include "pvrmodule.h"
-#include "sys_pvr_drm_export.h"
-
-#define DEVNAME    "bc_video"
-#define    DRVNAME    DEVNAME
-
-#if defined(BCE_USE_SET_MEMORY)
-#undef BCE_USE_SET_MEMORY
-#endif
-
-#if defined(__i386__) && defined(SUPPORT_LINUX_X86_PAT) && defined(SUPPORT_LINUX_X86_WRITECOMBINE)
-#include <asm/cacheflush.h>
-#define    BCE_USE_SET_MEMORY
-#endif
-
-#define BC_CDV_COUNT	32
-#define BC_CDV_STRIDE	2048
-#define BC_CDV_HEIGHT	2048
-#define BC_CDV_WIDTH	2048
-
-static int width_align;
-unsigned int bc_video_id_usage[BC_VIDEO_DEVICE_MAX_ID];
-
-MODULE_SUPPORTED_DEVICE (DEVNAME);
-
-int FillBuffer (unsigned int uiBufferIndex);
-
-#if defined(LDM_PLATFORM) || defined(LDM_PCI)
-static struct class *psPvrClass;
-#endif
-
-static int AssignedMajorNumber;
-
-#define unref__ __attribute__ ((unused))
-
-#if defined(LMA)
-#define PVR_BUFFERCLASS_MEMOFFSET (220 * 1024 * 1024)
-#define PVR_BUFFERCLASS_MEMSIZE      (4 * 1024 * 1024)
-
-unsigned long g_ulMemBase = 0;
-unsigned long g_ulMemCurrent = 0;
-
-#define VENDOR_ID_PVR               0x1010
-#define DEVICE_ID_PVR               0x1CF1
-
-#define PVR_MEM_PCI_BASENUM         2
-#endif
-
-#define file_to_id(file)  (iminor(file->f_path.dentry->d_inode))
-
-int
-BC_Video_ModInit (void)
-{
-    int i, j;
-    /*LDM_PCI is defined, while LDM_PLATFORM and LMA are not defined.*/
-#if defined(LDM_PLATFORM) || defined(LDM_PCI)
-    struct device *psDev;
-#endif
-
-#if defined(LMA)
-    struct pci_dev *psPCIDev;
-    int error;
-#endif
-
-    /* video width is 4 byte aligned */
-    width_align = 4;
-
-#if defined(LMA)
-    psPCIDev = pci_get_device (VENDOR_ID_PVR, DEVICE_ID_PVR, NULL);
-    if (psPCIDev == NULL)
-    {
-        printk (KERN_ERR DRVNAME
-                ": BC_Video_ModInit:  pci_get_device failed\n");
-        goto ExitError;
-    }
-
-    if ((error = pci_enable_device (psPCIDev)) != 0)
-    {
-        printk (KERN_ERR DRVNAME
-                ": BC_Video_ModInit: pci_enable_device failed (%d)\n", error);
-        goto ExitError;
-    }
-#endif
-
-#if defined(DEBUG)
-    printk (KERN_ERR DRVNAME ": BC_Video_ModInit: major device %d\n",
-            AssignedMajorNumber);
-#endif
-
-#if defined(LDM_PLATFORM) || defined(LDM_PCI)
-    psPvrClass = class_create (THIS_MODULE, "bc_video");
-    if (IS_ERR (psPvrClass))
-    {
-        printk (KERN_ERR DRVNAME
-                ": BC_Video_ModInit: unable to create class (%ld)",
-                PTR_ERR (psPvrClass));
-        goto ExitUnregister;
-    }
-
-    psDev = device_create (psPvrClass, NULL, MKDEV (AssignedMajorNumber, 0),
-		    	   NULL,
-			   DEVNAME);
-    if (IS_ERR (psDev))
-    {
-        printk (KERN_ERR DRVNAME
-                ": BC_Video_ModInit: unable to create device (%ld)",
-                PTR_ERR (psDev));
-        goto ExitDestroyClass;
-    }
-#endif
-
-#if defined(LMA)
-    g_ulMemBase =
-        pci_resource_start (psPCIDev,
-                PVR_MEM_PCI_BASENUM) + PVR_BUFFERCLASS_MEMOFFSET;
-#endif
-
-    for (i = 0; i < BC_VIDEO_DEVICE_MAX_ID; i++)
-    {
-        bc_video_id_usage[i] = 0;
-        if (BC_Video_Init (i) != BCE_OK)
-        {
-            printk (KERN_ERR DRVNAME
-                    ": BC_Video_ModInit: can't init video bc device %d.\n", i);
-            for (j = i; j >= 0; j--)
-            {
-                BC_Video_Deinit (j);
-            }
-            goto ExitUnregister;
-        }
-    }
-
-#if defined(LMA)
-    pci_disable_device (psPCIDev);
-#endif
-
-    return 0;
-
-#if defined(LDM_PLATFORM) || defined(LDM_PCI)
-ExitDestroyClass:
-    class_destroy (psPvrClass);
-#endif
-ExitUnregister:
-    unregister_chrdev (AssignedMajorNumber, DEVNAME);
-    //ExitDisable:
-#if defined(LMA)
-    pci_disable_device (psPCIDev);
-ExitError:
-#endif
-    return -EBUSY;
-}
-
-int
-BC_Video_ModCleanup (void)
-{
-    int i;
-#if defined(LDM_PLATFORM) || defined(LDM_PCI)
-    device_destroy (psPvrClass, MKDEV (AssignedMajorNumber, 0));
-    class_destroy (psPvrClass);
-#endif
-
-    for (i = 0; i < BC_VIDEO_DEVICE_MAX_ID; i++)
-    {
-        if (BC_Video_Deinit (i) != BCE_OK)
-        {
-            printk (KERN_ERR DRVNAME
-                    ": BC_Video_ModCleanup: can't deinit video device %d.\n",
-                    i);
-            return -1;
-        }
-    }
-
-    return 0;
-}
-
-    void *
-BCAllocKernelMem (unsigned long ulSize)
-{
-    return kmalloc (ulSize, GFP_KERNEL);
-}
-
-void
-BCFreeKernelMem (void *pvMem)
-{
-    kfree (pvMem);
-}
-
-#define RANGE_TO_PAGES(range) (((range) + (PAGE_SIZE - 1)) >> PAGE_SHIFT)
-#define    VMALLOC_TO_PAGE_PHYS(vAddr) page_to_phys(vmalloc_to_page(vAddr))
-
-BCE_ERROR
-BCAllocDiscontigMemory (unsigned long ulSize,
-        BCE_HANDLE unref__ * phMemHandle,
-        IMG_CPU_VIRTADDR * pLinAddr,
-        IMG_SYS_PHYADDR ** ppPhysAddr)
-{
-    unsigned long ulPages = RANGE_TO_PAGES (ulSize);
-    IMG_SYS_PHYADDR *pPhysAddr;
-    unsigned long ulPage;
-    IMG_CPU_VIRTADDR LinAddr;
-
-    LinAddr =
-        __vmalloc (ulSize, GFP_KERNEL | __GFP_HIGHMEM,
-                pgprot_noncached (PAGE_KERNEL));
-    if (!LinAddr)
-    {
-        return BCE_ERROR_OUT_OF_MEMORY;
-    }
-
-    pPhysAddr = kmalloc (ulPages * sizeof (IMG_SYS_PHYADDR), GFP_KERNEL);
-    if (!pPhysAddr)
-    {
-        vfree (LinAddr);
-        return BCE_ERROR_OUT_OF_MEMORY;
-    }
-
-    *pLinAddr = LinAddr;
-
-    for (ulPage = 0; ulPage < ulPages; ulPage++)
-    {
-        pPhysAddr[ulPage].uiAddr = VMALLOC_TO_PAGE_PHYS (LinAddr);
-
-        LinAddr += PAGE_SIZE;
-    }
-
-    *ppPhysAddr = pPhysAddr;
-
-    return BCE_OK;
-}
-
-void
-BCFreeDiscontigMemory (unsigned long ulSize,
-        BCE_HANDLE unref__ hMemHandle,
-        IMG_CPU_VIRTADDR LinAddr, IMG_SYS_PHYADDR * pPhysAddr)
-{
-    kfree (pPhysAddr);
-
-    vfree (LinAddr);
-}
-
-    BCE_ERROR
-BCAllocContigMemory (unsigned long ulSize,
-        BCE_HANDLE unref__ * phMemHandle,
-        IMG_CPU_VIRTADDR * pLinAddr, IMG_CPU_PHYADDR * pPhysAddr)
-{
-#if defined(LMA)
-    void *pvLinAddr;
-
-
-    if (g_ulMemCurrent + ulSize >= PVR_BUFFERCLASS_MEMSIZE)
-    {
-        return (BCE_ERROR_OUT_OF_MEMORY);
-    }
-
-    pvLinAddr = ioremap (g_ulMemBase + g_ulMemCurrent, ulSize);
-
-    if (pvLinAddr)
-    {
-        pPhysAddr->uiAddr = g_ulMemBase + g_ulMemCurrent;
-        *pLinAddr = pvLinAddr;
-
-        g_ulMemCurrent += ulSize;
-        return (BCE_OK);
-    }
-    return (BCE_ERROR_OUT_OF_MEMORY);
-#else
-#if defined(BCE_USE_SET_MEMORY)
-    void *pvLinAddr;
-    unsigned long ulAlignedSize = PAGE_ALIGN (ulSize);
-    int iPages = (int) (ulAlignedSize >> PAGE_SHIFT);
-    int iError;
-
-    pvLinAddr = kmalloc (ulAlignedSize, GFP_KERNEL);
-	if (pvLinAddr == NULL)
-		return BCE_ERROR_OUT_OF_MEMORY;
-
-    BUG_ON (((unsigned long) pvLinAddr) & ~PAGE_MASK);
-
-    iError = set_memory_wc ((unsigned long) pvLinAddr, iPages);
-    if (iError != 0)
-    {
-        printk (KERN_ERR DRVNAME
-                ": BCAllocContigMemory:  set_memory_wc failed (%d)\n", iError);
-	kfree(pvLinAddr);
-        return (BCE_ERROR_OUT_OF_MEMORY);
-    }
-
-    pPhysAddr->uiAddr = virt_to_phys (pvLinAddr);
-    *pLinAddr = pvLinAddr;
-
-    return (BCE_OK);
-#else
-    dma_addr_t dma;
-    void *pvLinAddr;
-
-    pvLinAddr = dma_alloc_coherent (NULL, ulSize, &dma, GFP_KERNEL);
-    if (pvLinAddr == NULL)
-    {
-        return (BCE_ERROR_OUT_OF_MEMORY);
-    }
-
-    pPhysAddr->uiAddr = dma;
-    *pLinAddr = pvLinAddr;
-
-    return (BCE_OK);
-#endif
-#endif
-}
-
-void
-BCFreeContigMemory (unsigned long ulSize,
-        BCE_HANDLE unref__ hMemHandle,
-        IMG_CPU_VIRTADDR LinAddr, IMG_CPU_PHYADDR PhysAddr)
-{
-#if defined(LMA)
-    g_ulMemCurrent -= ulSize;
-    iounmap (LinAddr);
-#else
-#if defined(BCE_USE_SET_MEMORY)
-    unsigned long ulAlignedSize = PAGE_ALIGN (ulSize);
-    int iError;
-    int iPages = (int) (ulAlignedSize >> PAGE_SHIFT);
-
-    iError = set_memory_wb ((unsigned long) LinAddr, iPages);
-    if (iError != 0)
-    {
-        printk (KERN_ERR DRVNAME
-                ": BCFreeContigMemory:  set_memory_wb failed (%d)\n", iError);
-    }
-    kfree (LinAddr);
-#else
-    dma_free_coherent (NULL, ulSize, LinAddr, (dma_addr_t) PhysAddr.uiAddr);
-#endif
-#endif
-}
-
-    IMG_SYS_PHYADDR
-CpuPAddrToSysPAddrBC (IMG_CPU_PHYADDR cpu_paddr)
-{
-    IMG_SYS_PHYADDR sys_paddr;
-    sys_paddr.uiAddr = cpu_paddr.uiAddr;
-    return sys_paddr;
-}
-
-    IMG_CPU_PHYADDR
-SysPAddrToCpuPAddrBC (IMG_SYS_PHYADDR sys_paddr)
-{
-    IMG_CPU_PHYADDR cpu_paddr;
-    cpu_paddr.uiAddr = sys_paddr.uiAddr;
-    return cpu_paddr;
-}
-
-BCE_ERROR
-BCOpenPVRServices (BCE_HANDLE * phPVRServices)
-{
-    *phPVRServices = 0;
-    return (BCE_OK);
-}
-
-
-BCE_ERROR
-BCClosePVRServices (BCE_HANDLE unref__ hPVRServices)
-{
-    return (BCE_OK);
-}
-
-BCE_ERROR
-BCGetLibFuncAddr (BCE_HANDLE unref__ hExtDrv, char *szFunctionName,
-        PFN_BC_GET_PVRJTABLE * ppfnFuncTable)
-{
-    if (strcmp ("PVRGetBufferClassJTable", szFunctionName) != 0)
-    {
-        return (BCE_ERROR_INVALID_PARAMS);
-    }
-
-    *ppfnFuncTable = PVRGetBufferClassJTable;
-
-    return (BCE_OK);
-}
-
-int
-BC_CreateBuffers (int id, bc_buf_params_t * p, IMG_BOOL is_conti_addr)
-{
-    BC_VIDEO_DEVINFO *psDevInfo;
-    IMG_UINT32 i, stride, size;
-    PVRSRV_PIXEL_FORMAT pixel_fmt;
-
-    if (p->count <= 0 || p->count > BC_CDV_COUNT)
-        return -EINVAL;
-
-    if (p->width <= 1 || p->width % width_align || p->height <= 1)
-        return -EINVAL;
-
-	if ((p->width > BC_CDV_WIDTH) || (p->height > BC_CDV_HEIGHT) ||
-		(p->stride > BC_CDV_STRIDE) || (p->stride < 32))
-		return -EINVAL; 
-
-    switch (p->fourcc)
-    {
-        case BC_PIX_FMT_NV12:
-            pixel_fmt = PVRSRV_PIXEL_FORMAT_NV12;
-            break;
-        case BC_PIX_FMT_UYVY:
-            pixel_fmt = PVRSRV_PIXEL_FORMAT_FOURCC_ORG_UYVY;
-            break;
-        case BC_PIX_FMT_RGB565:
-            pixel_fmt = PVRSRV_PIXEL_FORMAT_RGB565;
-            p->stride = p->stride << 1;    /* stride for RGB from user space is uncorrect */
-            break;
-        case BC_PIX_FMT_YUYV:
-            pixel_fmt = PVRSRV_PIXEL_FORMAT_FOURCC_ORG_YUYV;
-            break;
-        default:
-            return -EINVAL;
-            break;
-    }
-
-    stride = p->stride;
-
-    if (p->type != BC_MEMORY_MMAP && p->type != BC_MEMORY_USERPTR)
-        return -EINVAL;
-
-    if ((psDevInfo = GetAnchorPtr (id)) == IMG_NULL)
-        return -ENODEV;
-
-    if (psDevInfo->ulNumBuffers)
-        BC_DestroyBuffers (id);
-
-    psDevInfo->buf_type = p->type;
-    psDevInfo->psSystemBuffer =
-        BCAllocKernelMem (sizeof (BC_VIDEO_BUFFER) * p->count);
-
-    if (!psDevInfo->psSystemBuffer)
-        return -ENOMEM;
-
-    memset (psDevInfo->psSystemBuffer, 0, sizeof (BC_VIDEO_BUFFER) * p->count);
-    size = p->height * stride;
-    if (pixel_fmt == PVRSRV_PIXEL_FORMAT_NV12)
-        size += (stride >> 1) * (p->height >> 1) << 1;
-
-    for (i = 0; i < p->count; i++)
-    {
-        IMG_SYS_PHYADDR *pPhysAddr;
-        if (is_conti_addr)
-        {
-            pPhysAddr = BCAllocKernelMem (1 * sizeof (IMG_SYS_PHYADDR));
-            if (!pPhysAddr)
-            {
-                goto out_of_memory;
-            }
-            memset (pPhysAddr, 0, 1 * sizeof (IMG_SYS_PHYADDR));
-        }
-        else
-        {
-            unsigned long ulPages = RANGE_TO_PAGES (size);
-            pPhysAddr = BCAllocKernelMem (ulPages * sizeof (IMG_SYS_PHYADDR));
-            if (!pPhysAddr)
-            {
-                goto out_of_memory;
-            }
-            memset (pPhysAddr, 0, ulPages * sizeof (IMG_SYS_PHYADDR));
-        }
-        psDevInfo->psSystemBuffer[i].psSysAddr = pPhysAddr;
-	/*
-	 * Only after the memory is allocated successfully, try to modify
-	 * the psDevInfo->psSystemBuffer and update the number of
-	 * allocated buffers.
-	 */
-	psDevInfo->ulNumBuffers++;
-	psDevInfo->psSystemBuffer[i].ulSize = size;
-	psDevInfo->psSystemBuffer[i].psSyncData = IMG_NULL;
-
-	/*for discontig buffers, allocate memory for pPhysAddr */
-	psDevInfo->psSystemBuffer[i].is_conti_addr = is_conti_addr;
-    }
-    p->count = psDevInfo->ulNumBuffers;
-
-    psDevInfo->sBufferInfo.ui32BufferCount = psDevInfo->ulNumBuffers;
-    psDevInfo->sBufferInfo.pixelformat = pixel_fmt;
-    psDevInfo->sBufferInfo.ui32Width = p->width;
-    psDevInfo->sBufferInfo.ui32Height = p->height;
-    psDevInfo->sBufferInfo.ui32ByteStride = stride;
-    psDevInfo->sBufferInfo.ui32BufferDeviceID = id;
-    psDevInfo->sBufferInfo.ui32Flags = PVRSRV_BC_FLAGS_YUVCSC_FULL_RANGE |
-        PVRSRV_BC_FLAGS_YUVCSC_BT601;
-    return 0;
-
-out_of_memory:
-        BC_DestroyBuffers (id);
-	return -ENOMEM;
-}
-
-int
-BC_DestroyBuffers (int id)
-{
-    BC_VIDEO_DEVINFO *psDevInfo;
-    IMG_UINT32 i;
-    if ((psDevInfo = GetAnchorPtr (id)) == IMG_NULL)
-        return -ENODEV;
-
-    if (!psDevInfo->ulNumBuffers)
-        return 0;
-
-    for (i = 0; i < psDevInfo->ulNumBuffers; i++) {
-	vfree(psDevInfo->psSystemBuffer[i].sCPUVAddr);
-        BCFreeKernelMem (psDevInfo->psSystemBuffer[i].psSysAddr);
-	psDevInfo->psSystemBuffer[i].psSysAddr = NULL;
-    }
-
-    BCFreeKernelMem (psDevInfo->psSystemBuffer);
-
-	psDevInfo->psSystemBuffer = NULL;
-    psDevInfo->ulNumBuffers = 0;
-    psDevInfo->sBufferInfo.pixelformat = PVRSRV_PIXEL_FORMAT_UNKNOWN;
-    psDevInfo->sBufferInfo.ui32Width = 0;
-    psDevInfo->sBufferInfo.ui32Height = 0;
-    psDevInfo->sBufferInfo.ui32ByteStride = 0;
-    psDevInfo->sBufferInfo.ui32BufferDeviceID = id;
-    psDevInfo->sBufferInfo.ui32Flags = 0;
-    psDevInfo->sBufferInfo.ui32BufferCount = psDevInfo->ulNumBuffers;
-
-    return 0;
-}
-
-int
-GetBufferCount (unsigned int *puiBufferCount, int id)
-{
-    BC_VIDEO_DEVINFO *psDevInfo = GetAnchorPtr (id);
-
-    if (psDevInfo == IMG_NULL)
-    {
-        return -1;
-    }
-
-    *puiBufferCount = (unsigned int) psDevInfo->sBufferInfo.ui32BufferCount;
-
-    return 0;
-}
-
-int
-BC_Video_Bridge (struct drm_device *dev, IMG_VOID * arg,
-        struct drm_file *file_priv)
-{
-    int err = -EFAULT;
-
-    BC_VIDEO_DEVINFO *devinfo;
-    int i;
-    BC_Video_ioctl_package *psBridge = (BC_Video_ioctl_package *) arg;
-    int command = psBridge->ioctl_cmd;
-    int id = 0;
-	/*
-	 * It is noted that the command of "request_buffer" should be the
-	 * first request. Otherwise it will fail in the other BC_request.
-	 */ 
-    if (command == BC_Video_ioctl_request_buffers)
-    {
-        for (i = 0; i < BC_VIDEO_DEVICE_MAX_ID; i++)
-        {
-            if (bc_video_id_usage[i] == 0)
-            {
-                id = i;
-                break;
-            }
-        }
-        if (i == BC_VIDEO_DEVICE_MAX_ID)
-        {
-            printk (KERN_ERR DRVNAME
-                    " : Does you really need to run more than 5 video simulateously.\n");
-            return -1;
-        } else
-            psb_fpriv(file_priv)->bcd_index = id;
-    }
-    else {
-        id = psBridge->device_id;
-	if ((id >= BC_VIDEO_DEVICE_MAX_ID) || id < 0 ||
-		!bc_video_id_usage[id]) {
-		printk (KERN_ERR DRVNAME
-			" : Invalid device ID\n");
-		return -EINVAL;
-	}
-    }
-    if ((devinfo = GetAnchorPtr (id)) == IMG_NULL)
-        return -ENODEV;
-
-    switch (command)
-    {
-        case BC_Video_ioctl_get_buffer_count:
-            {
-                if (GetBufferCount (&psBridge->outputparam, id) == -1)
-                {
-                    printk (KERN_ERR DRVNAME
-                            " : GetBufferCount error in BC_Video_Bridge.\n");
-                    return err;
-                }
-                return 0;
-                break;
-            }
-        case BC_Video_ioctl_get_buffer_index:
-            {
-                int idx;
-                BC_VIDEO_BUFFER *buffer;
-
-                for (idx = 0; idx < devinfo->ulNumBuffers; idx++)
-                {
-                    buffer = &devinfo->psSystemBuffer[idx];
-
-                    if (psBridge->inputparam == buffer->sBufferHandle)
-                    {
-                        psBridge->outputparam = idx;
-                        return 0;
-                    }
-                }
-                printk (KERN_ERR DRVNAME ": BCIOGET_BUFFERIDX- buffer not found\n");
-                return -EINVAL;
-                break;
-            }
-        case BC_Video_ioctl_request_buffers:
-            {
-                bc_buf_params_t p;
-		int ret;
-                if (copy_from_user
-                        (&p, (void __user *) (psBridge->inputparam), sizeof (p)))
-                    return -EFAULT;
-
-                ret = BC_CreateBuffers (id, &p, IMG_FALSE);
-		if (ret) {
-			printk (KERN_ERR " : Failure in BC_buffer requests.\n");
-			return ret;
-		}
-                bc_video_id_usage[id] = 1;
-                psBridge->outputparam = id;
-                break;
-            }
-        case BC_Video_ioctl_set_buffer_phyaddr:
-            {
-                bc_buf_ptr_t p;
-                struct ttm_buffer_object *bo = NULL;
-                struct ttm_tt *ttm = NULL;
-                struct ttm_object_file *tfile = psb_fpriv (file_priv)->tfile;
-
-                if (copy_from_user
-                        (&p, (void __user *) (psBridge->inputparam), sizeof (p)))
-                    return -EFAULT;
-
-                if (p.index >= devinfo->ulNumBuffers || !p.handle)
-                {
-                    printk (KERN_ERR DRVNAME
-                            " : index big than NumBuffers or p.handle is NULL.\n");
-                    return -EINVAL;
-                }
-
-                bo = ttm_buffer_object_lookup (tfile, p.handle);
-                if (unlikely (bo == NULL))
-                {
-                    printk (KERN_ERR DRVNAME
-                            " : Could not find buffer object for setstatus.\n");
-                    return -EINVAL;
-                }
-                ttm = bo->ttm;
-
-                devinfo->psSystemBuffer[p.index].sCPUVAddr = NULL;
-                devinfo->psSystemBuffer[p.index].sBufferHandle = p.handle;
-                for (i = 0; i < ttm->num_pages; i++)
-                {
-                    if (ttm->pages[i] == NULL)
-                    {
-                        printk (KERN_ERR " : Debug: the page is NULL.\n");
-			ttm_bo_unref(&bo);
-                        return -EINVAL;
-                    }
-                    devinfo->psSystemBuffer[p.index].psSysAddr[i].uiAddr =
-                        page_to_pfn (ttm->pages[i]) << PAGE_SHIFT;
-                }
-                if (bo)
-                    ttm_bo_unref (&bo);
-                return 0;
-                break;
-            }
-        case BC_Video_ioctl_release_buffer_device:
-            {
-                bc_video_id_usage[id] = 0;
-
-                BC_DestroyBuffers (id);
-                return 0;
-                break;
-            }
-        case BC_Video_ioctl_alloc_buffer:
-            {
-                bc_buf_ptr_t p;
-                IMG_VOID *pvBuf;
-                IMG_UINT32 ui32Size;
-                IMG_UINT32 ulCounter;
-                BUFFER_INFO *bufferInfo;
-
-                if (copy_from_user
-                        (&p, (void __user *) (psBridge->inputparam), sizeof (p)))
-                    return -EFAULT;
-
-                if (p.index >= devinfo->ulNumBuffers)
-                {
-                    printk (KERN_ERR DRVNAME " : index big than NumBuffers.\n");
-                    return -EINVAL;
-                }
-
-                bufferInfo = &(devinfo->sBufferInfo);
-                if (bufferInfo->pixelformat != PVRSRV_PIXEL_FORMAT_NV12)
-                {
-                    printk (KERN_ERR DRVNAME
-                            " : BC_Video_ioctl_alloc_buffer only support NV12 format.\n");
-                    return -EINVAL;
-                }
-		if (devinfo->psSystemBuffer[p.index].sCPUVAddr) {
-			printk(KERN_ERR DRVNAME
-				" : Try to allow memory twice for one slot.\n");
-			return -EFAULT;
-		}
-		ui32Size = bufferInfo->ui32Height * bufferInfo->ui32ByteStride;
-                ui32Size +=
-                    (bufferInfo->ui32ByteStride >> 1) *
-                    (bufferInfo->ui32Height >> 1) << 1;
-
-                pvBuf =
-                    __vmalloc (ui32Size, GFP_KERNEL | __GFP_HIGHMEM,
-                            __pgprot ((pgprot_val (PAGE_KERNEL) & ~_PAGE_CACHE_MASK)
-                                | _PAGE_CACHE_WC));
-                if (pvBuf == NULL)
-                {
-                    printk (KERN_ERR DRVNAME
-                            " : Failed to allocate %d bytes buffer.\n", ui32Size);
-                    return -EINVAL;
-                }
-                devinfo->psSystemBuffer[p.index].sCPUVAddr = pvBuf;
-                devinfo->psSystemBuffer[p.index].sBufferHandle = 0;
-
-                i = 0;
-
-                for (ulCounter = 0; ulCounter < ui32Size; ulCounter += PAGE_SIZE)
-                {
-                    devinfo->psSystemBuffer[p.index].psSysAddr[i++].uiAddr =
-                        vmalloc_to_pfn (pvBuf + ulCounter) << PAGE_SHIFT;
-                }
-
-                if (p.handle)
-                {
-                    printk (KERN_ERR DRVNAME
-                            " : fill data %d bytes from user space 0x%x.\n", ui32Size,
-                            (int) p.handle);
-                    if (copy_from_user (pvBuf, (void __user *) p.handle, ui32Size)) {
-                	devinfo->psSystemBuffer[p.index].sCPUVAddr = NULL;
-			vfree(pvBuf);
-                        return -EFAULT;
-		      }
-                }
-                psBridge->outputparam = (int) pvBuf;
-
-                return 0;
-                break;
-            }
-        case BC_Video_ioctl_free_buffer:
-            {
-                bc_buf_ptr_t p;
-
-                if (copy_from_user
-                        (&p, (void __user *) (psBridge->inputparam), sizeof (p)))
-                {
-                    return -EFAULT;
-                }
-                if (p.index >= devinfo->ulNumBuffers)
-                {
-                    printk (KERN_ERR " : index big than NumBuffers.\n");
-                    return -EINVAL;
-                }
-
-		if (devinfo->psSystemBuffer[p.index].sCPUVAddr) {
-			vfree(devinfo->psSystemBuffer[p.index].sCPUVAddr);
-			devinfo->psSystemBuffer[p.index].sCPUVAddr = NULL;
-		} else {
-			printk(KERN_ERR DRVNAME
-				" : Try to free the invalid memory.\n");
-			return -EFAULT;
-		}
-                return 0;
-                break;
-            }
-        default:
-            return err;
-    }
-
-    return 0;
-}
-
diff --git a/drivers/staging/cdv/bc_video/bufferclass_video_linux.h b/drivers/staging/cdv/bc_video/bufferclass_video_linux.h
deleted file mode 100644
index 529257a..0000000
--- a/drivers/staging/cdv/bc_video/bufferclass_video_linux.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*****************************************************************************
- *
- * Copyright © 2011 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- ******************************************************************************/
-
-#ifndef __BC_VIDEO_LINUX_H__
-#define __BC_VIDEO_LINUX_H__
-
-#include <linux/ioctl.h>
-
-#define BC_FOURCC(a,b,c,d) \
-    ((unsigned long) ((a) | (b)<<8 | (c)<<16 | (d)<<24))
-
-#define BC_PIX_FMT_NV12     BC_FOURCC('N', 'V', '1', '2')    /*YUV 4:2:0 */
-#define BC_PIX_FMT_UYVY     BC_FOURCC('U', 'Y', 'V', 'Y')    /*YUV 4:2:2 */
-#define BC_PIX_FMT_YUYV     BC_FOURCC('Y', 'U', 'Y', 'V')    /*YUV 4:2:2 */
-#define BC_PIX_FMT_RGB565   BC_FOURCC('R', 'G', 'B', 'P')    /*RGB 5:6:5 */
-
-typedef struct BC_Video_ioctl_package_TAG
-{
-    int ioctl_cmd;
-    int device_id;
-    int inputparam;
-    int outputparam;
-} BC_Video_ioctl_package;
-
-typedef struct bc_buf_ptr
-{
-    unsigned int index;
-    int size;
-    unsigned long pa;
-    unsigned long handle;
-} bc_buf_ptr_t;
-
-#define BC_Video_ioctl_fill_buffer              0
-#define BC_Video_ioctl_get_buffer_count         1
-#define BC_Video_ioctl_get_buffer_phyaddr       2    /*get physical address by index */
-#define BC_Video_ioctl_get_buffer_index         3    /*get index by physical address */
-#define BC_Video_ioctl_request_buffers          4
-#define BC_Video_ioctl_set_buffer_phyaddr       5
-#define BC_Video_ioctl_release_buffer_device    6
-
-#define BC_Video_ioctl_alloc_buffer             7
-#define BC_Video_ioctl_free_buffer              8
-
-int BC_DestroyBuffers (int id);
-#endif
diff --git a/drivers/staging/cdv/drv/psb_bl.c b/drivers/staging/cdv/drv/psb_bl.c
deleted file mode 100644
index 2ffbcd3..0000000
--- a/drivers/staging/cdv/drv/psb_bl.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- *  psb backlight using HAL
- *
- * Copyright (c) 2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors: Eric Knopp
- *
- */
-
-#include <linux/backlight.h>
-#include <linux/version.h>
-#include "psb_drv.h"
-#include "psb_intel_reg.h"
-#include "psb_intel_drv.h"
-#include "psb_intel_bios.h"
-#include "psb_powermgmt.h"
-
-#define MRST_BLC_MAX_PWM_REG_FREQ	    0xFFFF
-#define BLC_PWM_PRECISION_FACTOR 100	/* 10000000 */
-#define BLC_PWM_FREQ_CALC_CONSTANT 32
-#define MHz 1000000
-#define BRIGHTNESS_MIN_LEVEL 1
-#define BRIGHTNESS_MAX_LEVEL 100
-#define BRIGHTNESS_MASK	0xFF
-#define BLC_POLARITY_NORMAL 0
-#define BLC_POLARITY_INVERSE 1
-#define BLC_ADJUSTMENT_MAX 100
-
-#define PSB_BLC_PWM_PRECISION_FACTOR    10
-#define PSB_BLC_MAX_PWM_REG_FREQ        0xFFFE
-#define PSB_BLC_MIN_PWM_REG_FREQ        0x2
-
-#define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE)
-#define PSB_BACKLIGHT_PWM_CTL_SHIFT	(16)
-
-static struct backlight_device *psb_backlight_device;
-u8 blc_pol;
-u8 blc_type;
-
-
-int psb_set_brightness(struct backlight_device *bd)
-{
-	struct drm_device *dev = (struct drm_device *)bl_get_data(psb_backlight_device);
-	int level = bd->props.brightness;
-
-	DRM_DEBUG_DRIVER("backlight level set to %d\n", level);
-
-	if (level > bd->props.max_brightness)
-		level = bd->props.max_brightness;
-
-	psb_intel_lvds_set_backlight(dev, level);
-
-	return 0;
-}
-
-int psb_get_brightness(struct backlight_device *bd)
-{
-	struct drm_device *dev = (struct drm_device *)bl_get_data(psb_backlight_device);
-
-	/* return locally cached var instead of HW read (due to DPST etc.) */
-	return psb_intel_lvds_get_backlight(dev);
-}
-
-struct backlight_ops psb_ops = {
-	.get_brightness = psb_get_brightness,
-	.update_status  = psb_set_brightness,
-};
-
-static int device_backlight_init(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = (struct drm_psb_private *) dev->dev_private;
-
-	if (IS_CDV(dev)) {
-		dev_priv->blc_adj1 = BLC_ADJUSTMENT_MAX;
-		dev_priv->blc_adj2 = BLC_ADJUSTMENT_MAX;
-		return 0;
-	}
-
-	return 0;
-}
-
-int psb_backlight_init(struct drm_device *dev)
-{
-#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
-	int ret = 0;
-	struct backlight_properties props;
-
-	memset(&props, 0, sizeof(struct backlight_properties));
-	props.max_brightness = psb_intel_lvds_get_max_backlight(dev);
-	props.type = BACKLIGHT_RAW;
-
-	psb_backlight_device = backlight_device_register("psb-bl", NULL, (void *)dev, &psb_ops, &props);
-	if (IS_ERR(psb_backlight_device))
-		return PTR_ERR(psb_backlight_device);
-
-	if ((ret = device_backlight_init(dev)) != 0)
-		return ret;
-
-	psb_backlight_device->props.brightness = psb_intel_lvds_get_backlight(dev);
-	psb_backlight_device->props.max_brightness = props.max_brightness;
-	backlight_update_status(psb_backlight_device);
-#endif
-	return 0;
-}
-
-void psb_backlight_exit(void)
-{
-#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
-	psb_backlight_device->props.brightness = 0;
-	backlight_update_status(psb_backlight_device);
-	backlight_device_unregister(psb_backlight_device);
-#endif
-	return;
-}
-
-struct backlight_device * psb_get_backlight_device(void)
-{
-#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
-	return psb_backlight_device;
-#endif
-	return NULL;
-}
diff --git a/drivers/staging/cdv/drv/psb_dpst.c b/drivers/staging/cdv/drv/psb_dpst.c
deleted file mode 100644
index eb940af..0000000
--- a/drivers/staging/cdv/drv/psb_dpst.c
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *    James C. Gualario <james.c.gualario@intel.com>
- *
- */
-
-#include "psb_umevents.h"
-#include "psb_dpst.h"
-/**
- * inform the kernel of the work to be performed and related function.
- *
- */
-DECLARE_WORK(dpst_dev_change_work, &psb_dpst_dev_change_wq);
-/**
- * psb_dpst_notify_change_um - notify user mode of hotplug changes
- *
- * @name: name of event to notify user mode of change to
- * @state: dpst state struct to get workqueue from
- *
- */
-int psb_dpst_notify_change_um(enum dpst_event_enum event,
-			      struct dpst_state *state)
-{
-	if (state == NULL)
-		return IRQ_HANDLED;
-
-	state->dpst_change_wq_data.dev_name_arry_rw_status
-		[state->dpst_change_wq_data.dev_name_write] =
-		DRM_DPST_READY_TO_READ;
-	state->dpst_change_wq_data.dpst_events
-		[state->dpst_change_wq_data.dev_name_write] =
-		event;
-	if (state->dpst_change_wq_data.dev_name_read_write_wrap_ack == 1)
-		state->dpst_change_wq_data.dev_name_read_write_wrap_ack = 0;
-	state->dpst_change_wq_data.dev_name_write++;
-	if (state->dpst_change_wq_data.dev_name_write ==
-	   state->dpst_change_wq_data.dev_name_read) {
-		state->dpst_change_wq_data.dev_name_write--;
-		return IRQ_NONE;
-	}
-	if (state->dpst_change_wq_data.dev_name_write >
-	   DRM_DPST_RING_DEPTH_MAX) {
-		state->dpst_change_wq_data.dev_name_write = 0;
-		state->dpst_change_wq_data.dev_name_write_wrap = 1;
-	}
-	state->dpst_change_wq_data.hotplug_dev_list = state->list;
-	queue_work(state->dpst_wq, &(state->dpst_change_wq_data.work));
-	return IRQ_HANDLED;
-}
-/*EXPORT_SYMBOL(psb_dpst_notify_change_um); */
-/**
- *
- * psb_dpst_create_and_notify_um - create and notify user mode of new dev
- *
- * @name: name to give for new event / device
- * @state: dpst state instaces to associate event with
- *
- */
-struct umevent_obj *psb_dpst_create_and_notify_um(const char *name,
-						  struct dpst_state *state)
-{
-	return psb_create_umevent_obj(name, state->list);
-
-}
-/*EXPORT_SYMBOL(psb_dpst_create_and_notify_um); */
-/**
- * psb_dpst_device_pool_create_and_init - make new hotplug device pool
- *
- * @parent_kobj - parent kobject to associate dpst kset with
- * @state - dpst state instance to associate list with
- *
- */
-struct umevent_list *psb_dpst_device_pool_create_and_init(
-						  struct kobject *parent_kobj,
-						  struct dpst_state *state)
-{
-	struct umevent_list *new_hotplug_dev_list = NULL;
-	new_hotplug_dev_list = psb_umevent_create_list();
-	if (new_hotplug_dev_list)
-		psb_umevent_init(parent_kobj, new_hotplug_dev_list,
-				 "psb_dpst");
-
-	state->dpst_wq = create_singlethread_workqueue("dpst-wq");
-
-	if (!state->dpst_wq)
-		return NULL;
-
-	INIT_WORK(&state->dpst_change_wq_data.work, psb_dpst_dev_change_wq);
-
-	state->dpst_change_wq_data.dev_name_read = 0;
-	state->dpst_change_wq_data.dev_name_write = 0;
-	state->dpst_change_wq_data.dev_name_write_wrap = 0;
-	state->dpst_change_wq_data.dev_name_read_write_wrap_ack = 0;
-
-	memset(&(state->dpst_change_wq_data.dev_name_arry_rw_status[0]),
-	       0, sizeof(int)*DRM_DPST_RING_DEPTH);
-
-	return new_hotplug_dev_list;
-}
-/*EXPORT_SYMBOL(psb_dpst_device_pool_create_and_init);  */
-/**
- * psb_dpst_init - init dpst subsystem
- * @parent_kobj - parent kobject to associate dpst state with
- *
- */
-struct dpst_state *psb_dpst_init(struct kobject *parent_kobj)
-{
-	struct dpst_state *state;
-	struct umevent_obj *working_umevent;
-
-	state = kzalloc(sizeof(struct dpst_state), GFP_KERNEL);
-	if (state == NULL) {
-		DRM_ERROR("Failure in memory allocation\n");
-		return NULL;
-	}
-	state->list = NULL;
-	state->list = psb_dpst_device_pool_create_and_init(
-						  parent_kobj,
-						  state);
-	if (state->list == NULL) {
-		DRM_ERROR("Failure in memory allocation\n");
-		kfree(state);
-		return NULL;
-	}
-	working_umevent  =
-		psb_dpst_create_and_notify_um("init",
-					   state);
-	if (working_umevent == NULL) {
-		DRM_ERROR("Out of Memory\n");
-		goto failed_umevent;
-	}
-	state->dpst_change_wq_data.dev_umevent_arry
-		[DPST_EVENT_INIT_COMPLETE] = &(working_umevent->head);
-
-	working_umevent  =
-		psb_dpst_create_and_notify_um("hist_int",
-					   state);
-	if (working_umevent == NULL) {
-		DRM_ERROR("Out of Memory\n");
-		goto failed_umevent;
-	}
-	state->dpst_change_wq_data.dev_umevent_arry
-		[DPST_EVENT_HIST_INTERRUPT] = &(working_umevent->head);
-
-	working_umevent  =
-		psb_dpst_create_and_notify_um("term",
-					   state);
-	if (working_umevent == NULL) {
-		DRM_ERROR("Out of Memory\n");
-		goto failed_umevent;
-	}
-	state->dpst_change_wq_data.dev_umevent_arry
-		[DPST_EVENT_TERMINATE] = &(working_umevent->head);
-
-	working_umevent  =
-		psb_dpst_create_and_notify_um("phase_done",
-						   state);
-
-	if (working_umevent == NULL) {
-		DRM_ERROR("Out of Memory\n");
-		goto failed_umevent;
-	}
-	state->dpst_change_wq_data.dev_umevent_arry
-		[DPST_EVENT_PHASE_COMPLETE] = &(working_umevent->head);
-
-	return state;
-
-failed_umevent:
-	psb_dpst_device_pool_destroy(state);
-	return NULL;
-}
-/*EXPORT_SYMBOL(psb_dpst_init); */
-/**
- * psb_dpst_device_pool_destroy - destroy all dpst related resources
- *
- * @state: dpst state instance to destroy
- *
- */
-void psb_dpst_device_pool_destroy(struct dpst_state *state)
-{
-	int i;
-	struct umevent_list *list;
-
-	list = state->list;
-	flush_workqueue(state->dpst_wq);
-	destroy_workqueue(state->dpst_wq);
-	for (i = 0; i < DRM_DPST_MAX_NUM_EVENTS;  i++) {
-		state->dpst_change_wq_data.dev_umevent_arry[i] = NULL;
-	}
-	psb_umevent_cleanup(list);
-	kfree(state);
-}
-/*EXPORT_SYMBOL(psb_dpst_device_pool_destroy); */
-/**
- * psb_dpst_dev_change_wq - change workqueue implementation
- *
- * @work: work struct to use for kernel scheduling
- *
- */
-void psb_dpst_dev_change_wq(struct work_struct *work)
-{
-	struct dpst_disp_workqueue_data *wq_data;
-	int curr_event_index;
-	wq_data = to_dpst_disp_workqueue_data(work);
-	if (wq_data->dev_name_write_wrap == 1) {
-		wq_data->dev_name_read_write_wrap_ack = 1;
-		wq_data->dev_name_write_wrap = 0;
-		while (wq_data->dev_name_read != DRM_DPST_RING_DEPTH_MAX) {
-			if (wq_data->dev_name_arry_rw_status
-			   [wq_data->dev_name_read] ==
-			   DRM_DPST_READY_TO_READ) {
-				wq_data->dev_name_arry_rw_status
-				[wq_data->dev_name_read] =
-				DRM_DPST_READ_COMPLETE;
-				curr_event_index = wq_data->dpst_events
-					[wq_data->dev_name_read];
-				psb_umevent_notify_change_gfxsock
-					(list_entry(
-					   (wq_data->dev_umevent_arry
-					    [curr_event_index]),
-					   struct umevent_obj, head),
-					 DRM_DPST_SOCKET_GROUP_ID);
-			}
-			wq_data->dev_name_read++;
-		}
-		wq_data->dev_name_read = 0;
-		while (wq_data->dev_name_read < wq_data->dev_name_write-1) {
-			if (wq_data->dev_name_arry_rw_status
-			   [wq_data->dev_name_read] ==
-			   DRM_DPST_READY_TO_READ) {
-				wq_data->dev_name_arry_rw_status
-				[wq_data->dev_name_read] =
-				DRM_DPST_READ_COMPLETE;
-				curr_event_index = wq_data->dpst_events
-					[wq_data->dev_name_read];
-				psb_umevent_notify_change_gfxsock
-					(list_entry(
-					   (wq_data->dev_umevent_arry
-					    [curr_event_index]),
-					   struct umevent_obj, head),
-					 DRM_DPST_SOCKET_GROUP_ID);
-			}
-			wq_data->dev_name_read++;
-		}
-	} else {
-		while (wq_data->dev_name_read < wq_data->dev_name_write) {
-			if (wq_data->dev_name_arry_rw_status
-			   [wq_data->dev_name_read] ==
-			   DRM_DPST_READY_TO_READ) {
-				wq_data->dev_name_arry_rw_status
-				[wq_data->dev_name_read] =
-					DRM_DPST_READ_COMPLETE;
-				curr_event_index = wq_data->dpst_events
-					[wq_data->dev_name_read];
-				psb_umevent_notify_change_gfxsock
-					(list_entry(
-					   (wq_data->dev_umevent_arry
-					    [curr_event_index]),
-					   struct umevent_obj, head),
-					 DRM_DPST_SOCKET_GROUP_ID);
-			}
-			wq_data->dev_name_read++;
-		}
-	}
-	if (wq_data->dev_name_read > DRM_DPST_RING_DEPTH_MAX)
-		wq_data->dev_name_read = 0;
-}
-/*EXPORT_SYMBOL(psb_dpst_dev_change_wq); */
diff --git a/drivers/staging/cdv/drv/psb_dpst.h b/drivers/staging/cdv/drv/psb_dpst.h
deleted file mode 100644
index 97f82cd..0000000
--- a/drivers/staging/cdv/drv/psb_dpst.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *    James C. Gualario <james.c.gualario@intel.com>
- *
- */
-
-#ifndef _PSB_DPST_H_
-#define _PSB_DPST_H_
-/**
- * required includes
- *
- */
-#include "psb_umevents.h"
-/**
- * dpst event enumeration
- *
- */
-enum dpst_event_enum {
-	DPST_EVENT_INIT_COMPLETE,
-	DPST_EVENT_HIST_INTERRUPT,
-	DPST_EVENT_TERMINATE,
-	DPST_EVENT_PHASE_COMPLETE,
-	DPST_MAX_EVENT
-};
-/**
- * dpst specific defines
- *
- */
-#define DRM_DPST_RING_DEPTH 256
-#define DRM_DPST_RING_DEPTH_MAX (DRM_DPST_RING_DEPTH-1)
-#define DRM_DPST_READY_TO_READ 1
-#define DRM_DPST_READ_COMPLETE 2
-#define DRM_DPST_MAX_NUM_EVENTS (DPST_MAX_EVENT)
-/**
- * dpst workqueue data struct.
- */
-struct dpst_disp_workqueue_data {
-	struct work_struct work;
-	const char *dev_name;
-	int dev_name_write;
-	int dev_name_read;
-	int dev_name_write_wrap;
-	int dev_name_read_write_wrap_ack;
-	enum dpst_event_enum dpst_events[DRM_DPST_RING_DEPTH];
-	int dev_name_arry_rw_status[DRM_DPST_RING_DEPTH];
-	struct umevent_list *hotplug_dev_list;
-	struct list_head *dev_umevent_arry[DRM_DPST_MAX_NUM_EVENTS];
-};
-/**
- * dpst state structure
- *
- */
-struct dpst_state {
-	struct workqueue_struct *dpst_wq;
-	struct dpst_disp_workqueue_data dpst_change_wq_data;
-	struct umevent_list *list;
-};
-/**
- * main interface function prototytpes for dpst support.
- *
- */
-extern struct dpst_state *psb_dpst_init(struct kobject *parent_kobj);
-extern int psb_dpst_notify_change_um(enum dpst_event_enum event,
-				     struct dpst_state *state);
-extern struct umevent_obj *psb_dpst_create_and_notify_um(const char *name,
-						 struct dpst_state *state);
-extern struct umevent_list *psb_dpst_device_pool_create_and_init(
-						 struct kobject *parent_kobj,
-						 struct dpst_state *state);
-extern void psb_dpst_device_pool_destroy(struct dpst_state *state);
-/**
- * to go back and forth between work struct and workqueue data
- *
- */
-#define to_dpst_disp_workqueue_data(x) \
-	container_of(x, struct dpst_disp_workqueue_data, work)
-
-/**
- * function prototypes for workqueue implementation
- *
- */
-extern void psb_dpst_dev_change_wq(struct work_struct *work);
-#endif
diff --git a/drivers/staging/cdv/drv/psb_drm.h b/drivers/staging/cdv/drv/psb_drm.h
deleted file mode 100644
index 970ecc6..0000000
--- a/drivers/staging/cdv/drv/psb_drm.h
+++ /dev/null
@@ -1,562 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
- * Copyright (c) 2008, Tungsten Graphics Inc.  Cedar Park, TX., USA.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-
-#ifndef _PSB_DRM_H_
-#define _PSB_DRM_H_
-
-#if defined(__linux__) && !defined(__KERNEL__)
-#include<stdint.h>
-#include <linux/types.h>
-#include "drm_mode.h"
-#endif
-
-#include "psb_ttm_fence_user.h"
-#include "psb_ttm_placement_user.h"
-
-/*
- * Menlow/MRST graphics driver package version
- * a.b.c.xxxx
- * a - Product Family: 5 - Linux
- * b - Major Release Version: 0 - non-Gallium (Unbuntu);
- *                            1 - Gallium (Moblin2)
- * c - Hotfix Release
- * xxxx - Graphics internal build #
- */
-#define PSB_PACKAGE_VERSION "5.3.0.32L.0039"
-
-#define DRM_PSB_SAREA_MAJOR 0
-#define DRM_PSB_SAREA_MINOR 2
-#define PSB_FIXED_SHIFT 16
-
-#define PSB_NUM_PIPE 3
-
-/*
- * Public memory types.
- */
-
-#define DRM_PSB_MEM_MMU TTM_PL_PRIV1
-#define DRM_PSB_FLAG_MEM_MMU TTM_PL_FLAG_PRIV1
-
-#define TTM_PL_CI               TTM_PL_PRIV0
-#define TTM_PL_FLAG_CI          TTM_PL_FLAG_PRIV0       
-
-#define TTM_PL_RAR               TTM_PL_PRIV2
-#define TTM_PL_FLAG_RAR          TTM_PL_FLAG_PRIV2       
-
-typedef int32_t psb_fixed;
-typedef uint32_t psb_ufixed;
-
-static inline int32_t psb_int_to_fixed(int a)
-{
-	return a * (1 << PSB_FIXED_SHIFT);
-}
-
-static inline uint32_t psb_unsigned_to_ufixed(unsigned int a)
-{
-	return a << PSB_FIXED_SHIFT;
-}
-
-/*Status of the command sent to the gfx device.*/
-typedef enum {
-	DRM_CMD_SUCCESS,
-	DRM_CMD_FAILED,
-	DRM_CMD_HANG
-} drm_cmd_status_t;
-
-struct drm_psb_scanout {
-	uint32_t buffer_id;	/* DRM buffer object ID */
-	uint32_t rotation;	/* Rotation as in RR_rotation definitions */
-	uint32_t stride;	/* Buffer stride in bytes */
-	uint32_t depth;		/* Buffer depth in bits (NOT) bpp */
-	uint32_t width;		/* Buffer width in pixels */
-	uint32_t height;	/* Buffer height in lines */
-	int32_t transform[3][3];	/* Buffer composite transform */
-	/* (scaling, rot, reflect) */
-};
-
-#define DRM_PSB_SAREA_OWNERS 16
-#define DRM_PSB_SAREA_OWNER_2D 0
-#define DRM_PSB_SAREA_OWNER_3D 1
-
-#define DRM_PSB_SAREA_SCANOUTS 3
-
-struct drm_psb_sarea {
-	/* Track changes of this data structure */
-
-	uint32_t major;
-	uint32_t minor;
-
-	/* Last context to touch part of hw */
-	uint32_t ctx_owners[DRM_PSB_SAREA_OWNERS];
-
-	/* Definition of front- and rotated buffers */
-	uint32_t num_scanouts;
-	struct drm_psb_scanout scanouts[DRM_PSB_SAREA_SCANOUTS];
-
-	int planeA_x;
-	int planeA_y;
-	int planeA_w;
-	int planeA_h;
-	int planeB_x;
-	int planeB_y;
-	int planeB_w;
-	int planeB_h;
-	/* Number of active scanouts */
-	uint32_t num_active_scanouts;
-};
-
-#define PSB_RELOC_MAGIC         0x67676767
-#define PSB_RELOC_SHIFT_MASK    0x0000FFFF
-#define PSB_RELOC_SHIFT_SHIFT   0
-#define PSB_RELOC_ALSHIFT_MASK  0xFFFF0000
-#define PSB_RELOC_ALSHIFT_SHIFT 16
-
-#define PSB_RELOC_OP_OFFSET     0	/* Offset of the indicated
-					 * buffer
-					 */
-
-struct drm_psb_reloc {
-	uint32_t reloc_op;
-	uint32_t where;		/* offset in destination buffer */
-	uint32_t buffer;	/* Buffer reloc applies to */
-	uint32_t mask;		/* Destination format: */
-	uint32_t shift;		/* Destination format: */
-	uint32_t pre_add;	/* Destination format: */
-	uint32_t background;	/* Destination add */
-	uint32_t dst_buffer;	/* Destination buffer. Index into buffer_list */
-	uint32_t arg0;		/* Reloc-op dependant */
-	uint32_t arg1;
-};
-
-
-#define PSB_GPU_ACCESS_READ         (1ULL << 32)
-#define PSB_GPU_ACCESS_WRITE        (1ULL << 33)
-#define PSB_GPU_ACCESS_MASK         (PSB_GPU_ACCESS_READ | PSB_GPU_ACCESS_WRITE)
-
-#define PSB_BO_FLAG_COMMAND         (1ULL << 52)
-
-#define PSB_ENGINE_2D 0
-#define PSB_ENGINE_VIDEO 1
-
-/*
- * For this fence class we have a couple of
- * fence types.
- */
-
-#define _PSB_FENCE_EXE_SHIFT           0
-#define _PSB_FENCE_FEEDBACK_SHIFT      4
-
-#define _PSB_FENCE_TYPE_EXE         (1 << _PSB_FENCE_EXE_SHIFT)
-#define _PSB_FENCE_TYPE_FEEDBACK    (1 << _PSB_FENCE_FEEDBACK_SHIFT)
-
-#define PSB_NUM_ENGINES 6
-
-
-#define PSB_FEEDBACK_OP_VISTEST (1 << 0)
-
-struct drm_psb_extension_rep {
-	int32_t exists;
-	uint32_t driver_ioctl_offset;
-	uint32_t sarea_offset;
-	uint32_t major;
-	uint32_t minor;
-	uint32_t pl;
-};
-
-#define DRM_PSB_EXT_NAME_LEN 128
-
-union drm_psb_extension_arg {
-	char extension[DRM_PSB_EXT_NAME_LEN];
-	struct drm_psb_extension_rep rep;
-};
-
-struct psb_validate_req {
-	uint64_t set_flags;
-	uint64_t clear_flags;
-	uint64_t next;
-	uint64_t presumed_gpu_offset;
-	uint32_t buffer_handle;
-	uint32_t presumed_flags;
-	uint32_t group;
-	uint32_t pad64;
-};
-
-struct psb_validate_rep {
-	uint64_t gpu_offset;
-	uint32_t placement;
-	uint32_t fence_type_mask;
-};
-
-#define PSB_USE_PRESUMED     (1 << 0)
-
-struct psb_validate_arg {
-	int handled;
-	int ret;
-	union {
-		struct psb_validate_req req;
-		struct psb_validate_rep rep;
-	} d;
-};
-
-
-#define DRM_PSB_FENCE_NO_USER        (1 << 0)
-
-struct psb_ttm_fence_rep {
-	uint32_t handle;
-	uint32_t fence_class;
-	uint32_t fence_type;
-	uint32_t signaled_types;
-	uint32_t error;
-};
-
-typedef struct drm_psb_cmdbuf_arg {
-	uint64_t buffer_list;	/* List of buffers to validate */
-	uint64_t clip_rects;	/* See i915 counterpart */
-	uint64_t scene_arg;
-	uint64_t fence_arg;
-
-	uint32_t ta_flags;
-
-	uint32_t ta_handle;	/* TA reg-value pairs */
-	uint32_t ta_offset;
-	uint32_t ta_size;
-
-	uint32_t oom_handle;
-	uint32_t oom_offset;
-	uint32_t oom_size;
-
-	uint32_t cmdbuf_handle;	/* 2D Command buffer object or, */
-	uint32_t cmdbuf_offset;	/* rasterizer reg-value pairs */
-	uint32_t cmdbuf_size;
-
-	uint32_t reloc_handle;	/* Reloc buffer object */
-	uint32_t reloc_offset;
-	uint32_t num_relocs;
-
-	int32_t damage;		/* Damage front buffer with cliprects */
-	/* Not implemented yet */
-	uint32_t fence_flags;
-	uint32_t engine;
-
-	/*
-	 * Feedback;
-	 */
-
-	uint32_t feedback_ops;
-	uint32_t feedback_handle;
-	uint32_t feedback_offset;
-	uint32_t feedback_breakpoints;
-	uint32_t feedback_size;
-} drm_psb_cmdbuf_arg_t;
-
-typedef struct drm_psb_pageflip_arg {
-	uint32_t flip_offset;
-	uint32_t stride;
-} drm_psb_pageflip_arg_t;
-
-typedef enum {
-	LNC_VIDEO_DEVICE_INFO,
-	LNC_VIDEO_GETPARAM_RAR_INFO,
-	LNC_VIDEO_GETPARAM_CI_INFO,
-	LNC_VIDEO_GETPARAM_RAR_HANDLER_OFFSET,
-	LNC_VIDEO_FRAME_SKIP,
-	IMG_VIDEO_DECODE_STATUS,
-	IMG_VIDEO_NEW_CONTEXT,
-	IMG_VIDEO_RM_CONTEXT,
-	IMG_VIDEO_MB_ERROR
-} lnc_getparam_key_t;
-
-struct drm_lnc_video_getparam_arg {
-	lnc_getparam_key_t key;
-	uint64_t arg;	/* argument pointer */
-	uint64_t value;	/* feed back pointer */
-};
-
-
-/*
- * Feedback components:
- */
-
-/*
- * Vistest component. The number of these in the feedback buffer
- * equals the number of vistest breakpoints + 1.
- * This is currently the only feedback component.
- */
-
-struct drm_psb_vistest {
-	uint32_t vt[8];
-};
-
-struct drm_psb_sizes_arg {
-	uint32_t ta_mem_size;
-	uint32_t mmu_size;
-	uint32_t pds_size;
-	uint32_t rastgeom_size;
-	uint32_t tt_size;
-	uint32_t vram_size;
-};
-
-struct drm_psb_hist_status_arg {
-	uint32_t buf[32];
-};
-
-struct drm_psb_dpst_lut_arg {
-	uint8_t lut[256];
-	int output_id;
-};
-
-struct mrst_timing_info {
-	uint16_t pixel_clock;
-	uint8_t hactive_lo;
-	uint8_t hblank_lo;
-	uint8_t hblank_hi:4;
-	uint8_t hactive_hi:4;
-	uint8_t vactive_lo;
-	uint8_t vblank_lo;
-	uint8_t vblank_hi:4;
-	uint8_t vactive_hi:4;
-	uint8_t hsync_offset_lo;
-	uint8_t hsync_pulse_width_lo;
-	uint8_t vsync_pulse_width_lo:4;
-	uint8_t vsync_offset_lo:4;
-	uint8_t vsync_pulse_width_hi:2;
-	uint8_t vsync_offset_hi:2;
-	uint8_t hsync_pulse_width_hi:2;
-	uint8_t hsync_offset_hi:2;
-	uint8_t width_mm_lo;
-	uint8_t height_mm_lo;
-	uint8_t height_mm_hi:4;
-	uint8_t width_mm_hi:4;
-	uint8_t hborder;
-	uint8_t vborder;
-	uint8_t unknown0:1;
-	uint8_t hsync_positive:1;
-	uint8_t vsync_positive:1;
-	uint8_t separate_sync:2;
-	uint8_t stereo:1;
-	uint8_t unknown6:1;
-	uint8_t interlaced:1;
-} __attribute__((packed));
-
-struct gct_ioctl_arg{
-	uint8_t bpi; /* boot panel index, number of panel used during boot */
-	uint8_t pt; /* panel type, 4 bit field, 0=lvds, 1=mipi */
-	struct mrst_timing_info DTD; /* timing info for the selected panel */
-	uint32_t Panel_Port_Control;
-	uint32_t PP_On_Sequencing;/*1 dword,Register 0x61208,*/
-	uint32_t PP_Off_Sequencing;/*1 dword,Register 0x6120C,*/
-	uint32_t PP_Cycle_Delay;
-	uint16_t Panel_Backlight_Inverter_Descriptor;
-	uint16_t Panel_MIPI_Display_Descriptor;
-} __attribute__ ((packed));
-
-#define PSB_DC_CRTC_SAVE 0x01
-#define PSB_DC_CRTC_RESTORE 0x02
-#define PSB_DC_OUTPUT_SAVE 0x04
-#define PSB_DC_OUTPUT_RESTORE 0x08
-#define PSB_DC_CRTC_MASK 0x03
-#define PSB_DC_OUTPUT_MASK 0x0C
-
-struct drm_psb_dc_state_arg {
-	uint32_t flags;
-	uint32_t obj_id;
-};
-
-struct drm_psb_mode_operation_arg {
-	uint32_t obj_id;
-	uint16_t operation;
-	struct drm_mode_modeinfo mode;
-	void *data;
-};
-
-struct drm_psb_stolen_memory_arg {
-	uint32_t base;
-	uint32_t size;
-};
-
-/*Display Register Bits*/
-#define REGRWBITS_PFIT_CONTROLS			(1 << 0)
-#define REGRWBITS_PFIT_AUTOSCALE_RATIOS		(1 << 1)
-#define REGRWBITS_PFIT_PROGRAMMED_SCALE_RATIOS	(1 << 2)
-#define REGRWBITS_PIPEASRC			(1 << 3)
-#define REGRWBITS_PIPEBSRC			(1 << 4)
-#define REGRWBITS_VTOTAL_A			(1 << 5)
-#define REGRWBITS_VTOTAL_B			(1 << 6)
-#define REGRWBITS_DSPACNTR	(1 << 8)
-#define REGRWBITS_DSPBCNTR	(1 << 9)
-#define REGRWBITS_DSPCCNTR	(1 << 10)
-
-/*Overlay Register Bits*/
-#define OV_REGRWBITS_OVADD			(1 << 0)
-#define OV_REGRWBITS_OGAM_ALL			(1 << 1)
-
-#define OVC_REGRWBITS_OVADD                  (1 << 2)
-#define OVC_REGRWBITS_OGAM_ALL			(1 << 3)
-
-struct drm_psb_register_rw_arg {
-	uint32_t b_force_hw_on;
-
-	uint32_t display_read_mask;
-	uint32_t display_write_mask;
-
-	struct {
-		uint32_t pfit_controls;
-		uint32_t pfit_autoscale_ratios;
-		uint32_t pfit_programmed_scale_ratios;
-		uint32_t pipeasrc;
-		uint32_t pipebsrc;
-		uint32_t vtotal_a;
-		uint32_t vtotal_b;
-	} display;
-
-	uint32_t overlay_read_mask;
-	uint32_t overlay_write_mask;
-
-	struct {
-		uint32_t OVADD;
-		uint32_t OGAMC0;
-		uint32_t OGAMC1;
-		uint32_t OGAMC2;
-		uint32_t OGAMC3;
-		uint32_t OGAMC4;
-		uint32_t OGAMC5;
-        	uint32_t IEP_ENABLED;
-        	uint32_t IEP_BLE_MINMAX;
-        	uint32_t IEP_BSSCC_CONTROL;
-                uint32_t b_wait_vblank;
-	} overlay;
-
-	uint32_t sprite_enable_mask;
-	uint32_t sprite_disable_mask;
-
-	struct {
-		uint32_t dspa_control;
-		uint32_t dspa_key_value;
-		uint32_t dspa_key_mask;
-		uint32_t dspc_control;
-		uint32_t dspc_stride;
-		uint32_t dspc_position;
-		uint32_t dspc_linear_offset;
-		uint32_t dspc_size;
-		uint32_t dspc_surface;
-	} sprite;
-
-	uint32_t subpicture_enable_mask;
-	uint32_t subpicture_disable_mask;
-};
-
-struct psb_gtt_mapping_arg {
-	void *hKernelMemInfo;
-	uint32_t offset_pages;
-};
-
-struct drm_psb_getpageaddrs_arg {
-	uint32_t handle;
-	unsigned long *page_addrs;
-	unsigned long gtt_offset;
-};
-
-
-#define MAX_SLICES_PER_PICTURE 72
-typedef struct drm_psb_msvdx_decode_status {
-	uint32_t fw_status;
-	uint32_t num_error_slice;
-	int32_t start_error_mb_list[MAX_SLICES_PER_PICTURE];
-	int32_t end_error_mb_list[MAX_SLICES_PER_PICTURE];
-	int32_t slice_missing_or_error[MAX_SLICES_PER_PICTURE];
-} drm_psb_msvdx_decode_status_t;
-
-/* Controlling the kernel modesetting buffers */
-
-#define DRM_PSB_KMS_OFF		0x00
-#define DRM_PSB_KMS_ON		0x01
-#define DRM_PSB_VT_LEAVE        0x02
-#define DRM_PSB_VT_ENTER        0x03
-#define DRM_PSB_EXTENSION       0x06
-#define DRM_PSB_SIZES           0x07
-#define DRM_PSB_FUSE_REG	0x08
-#define DRM_PSB_VBT		0x09
-#define DRM_PSB_DC_STATE	0x0A
-#define DRM_PSB_ADB		0x0B
-#define DRM_PSB_MODE_OPERATION	0x0C
-#define DRM_PSB_STOLEN_MEMORY	0x0D
-#define DRM_PSB_REGISTER_RW	0x0E
-#define DRM_PSB_GTT_MAP         0x0F
-#define DRM_PSB_GTT_UNMAP       0x10
-#define DRM_PSB_GETPAGEADDRS	0x11
-/**
- * NOTE: Add new commands here, but increment
- * the values below and increment their
- * corresponding defines where they're
- * defined elsewhere.
- */
-#define DRM_PVR_RESERVED1	0x12
-#define DRM_PVR_RESERVED2	0x13
-#define DRM_PVR_RESERVED3	0x14
-#define DRM_PVR_RESERVED4	0x15
-#define DRM_PVR_RESERVED5	0x16
-
-#define DRM_PSB_HIST_ENABLE	0x17
-#define DRM_PSB_HIST_STATUS	0x18
-#define DRM_PSB_UPDATE_GUARD	0x19
-#define DRM_PSB_INIT_COMM	0x1A
-#define DRM_PSB_DPST		0x1B
-#define DRM_PSB_GAMMA		0x1C
-#define DRM_PSB_DPST_BL		0x1D
-
-#define DRM_PVR_RESERVED6	0x1E
-
-#define DRM_PSB_GET_PIPE_FROM_CRTC_ID 0x1F
-#define DRM_PSB_DPU_QUERY 0x20
-#define DRM_PSB_DPU_DSR_ON 0x21
-#define DRM_PSB_DPU_DSR_OFF 0x22
-
-#define DRM_PSB_DSR_ENABLE	0xfffffffe
-#define DRM_PSB_DSR_DISABLE	0xffffffff
-
-struct psb_drm_dpu_rect {  
-    int x, y;             
-    int width, height;    
-};  
-
-struct drm_psb_drv_dsr_off_arg {
-	int screen;
-	struct psb_drm_dpu_rect damage_rect;
-};
-
-
-struct drm_psb_dev_info_arg {
-	uint32_t num_use_attribute_registers;
-};
-#define DRM_PSB_DEVINFO         0x01
-
-#define PSB_MODE_OPERATION_MODE_VALID	0x01
-#define PSB_MODE_OPERATION_SET_DC_BASE  0x02
-
-struct drm_psb_get_pipe_from_crtc_id_arg {
-	/** ID of CRTC being requested **/
-	uint32_t crtc_id;
-
-	/** pipe of requested CRTC **/
-	uint32_t pipe;
-};
-
-#endif
diff --git a/drivers/staging/cdv/drv/psb_drv.c b/drivers/staging/cdv/drv/psb_drv.c
deleted file mode 100644
index 9f434da..0000000
--- a/drivers/staging/cdv/drv/psb_drv.c
+++ /dev/null
@@ -1,1881 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
- * Copyright (c) 2008, Tungsten Graphics, Inc. Cedar Park, TX., USA.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-
-#include <drm/drmP.h>
-#include <drm/drm.h>
-#include "psb_drm.h"
-#include "psb_drv.h"
-#include "psb_fb.h"
-#include "psb_reg.h"
-#include "psb_intel_reg.h"
-#include "psb_intel_bios.h"
-#include "psb_msvdx.h"
-#include <drm/drm_pciids.h>
-#include "pvr_drm_shared.h"
-#include "psb_powermgmt.h"
-#include "img_types.h"
-#include <linux/cpu.h>
-#include <linux/notifier.h>
-#include <linux/spinlock.h>
-#include <linux/pm_runtime.h>
-#include <acpi/video.h>
-
-#include "psb_intel_hdmi.h"
-
-/*IMG headers*/
-#include "pvr_drm_shared.h"
-#include "img_types.h"
-#include "pvr_bridge.h"
-#include "linkage.h"
-
-#include "bufferclass_video_linux.h"
-
-int drm_psb_debug = 0;
-static int drm_psb_trap_pagefaults;
-int drm_psb_no_fb;
-int drm_msvdx_pmpolicy = PSB_PMPOLICY_POWERDOWN;
-int drm_msvdx_delay = 250;
-int drm_psb_ospm = 1;
-extern bool gbdispstatus;
-
-static int psb_probe(struct pci_dev *pdev, const struct pci_device_id *ent);
-
-MODULE_PARM_DESC(debug, "Enable debug output");
-MODULE_PARM_DESC(no_fb, "Disable FBdev");
-MODULE_PARM_DESC(trap_pagefaults, "Error and reset on MMU pagefaults");
-MODULE_PARM_DESC(ospm, "switch for ospm support");
-MODULE_PARM_DESC(msvdx_pmpolicy, "msvdx power management policy btw frames");
-
-module_param_named(debug, drm_psb_debug, int, 0600);
-module_param_named(no_fb, drm_psb_no_fb, int, 0600);
-module_param_named(trap_pagefaults, drm_psb_trap_pagefaults, int, 0600);
-module_param_named(msvdx_pmpolicy, drm_msvdx_pmpolicy, int, 0600);
-module_param_named(msvdx_command_delay, drm_msvdx_delay, int, 0600);
-module_param_named(ospm, drm_psb_ospm, int, 0600);
-#ifndef MODULE
-/* Make ospm configurable via cmdline firstly, and others can be enabled if needed. */
-static int __init config_ospm(char *arg)
-{
-	/* ospm turn on/off control can be passed in as a cmdline parameter */
-	/* to enable this feature add ospm=1 to cmdline */
-	/* to disable this feature add ospm=0 to cmdline */
-	if (!arg)
-		return -EINVAL;
-
-	if (!strcasecmp(arg, "0"))
-		drm_psb_ospm = 0;
-	else if (!strcasecmp (arg, "1"))
-		drm_psb_ospm = 1;
-
-	return 0;
-}
-early_param ("ospm", config_ospm);
-#endif
-
-static struct pci_device_id pciidlist[] = {
-#ifdef SGX545
-    {0x8086, 0x0be0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0},
-    {0x8086, 0x0be1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0},
-    {0x8086, 0x0be2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0},
-    {0x8086, 0x0be3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0},
-    {0x8086, 0x0be4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0},
-    {0x8086, 0x0be5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0},
-    {0x8086, 0x0be6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0},
-    {0x8086, 0x0be7, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0},
-#endif
-    {0, 0, 0}
-};
-
-MODULE_DEVICE_TABLE(pci, pciidlist);
-/*
- * Standard IOCTLs.
- */
-
-#define DRM_IOCTL_PSB_KMS_OFF	\
-		DRM_IO(DRM_PSB_KMS_OFF + DRM_COMMAND_BASE)
-#define DRM_IOCTL_PSB_KMS_ON	\
-		DRM_IO(DRM_PSB_KMS_ON + DRM_COMMAND_BASE)
-#define DRM_IOCTL_PSB_VT_LEAVE	\
-		DRM_IO(DRM_PSB_VT_LEAVE + DRM_COMMAND_BASE)
-#define DRM_IOCTL_PSB_VT_ENTER	\
-		DRM_IO(DRM_PSB_VT_ENTER + DRM_COMMAND_BASE)
-#define DRM_IOCTL_PSB_EXTENSION	\
-		DRM_IOWR(DRM_PSB_EXTENSION + DRM_COMMAND_BASE, \
-			 union drm_psb_extension_arg)
-#define DRM_IOCTL_PSB_SIZES	\
-		DRM_IOR(DRM_PSB_SIZES + DRM_COMMAND_BASE, \
-			struct drm_psb_sizes_arg)
-#define DRM_IOCTL_PSB_FUSE_REG	\
-		DRM_IOWR(DRM_PSB_FUSE_REG + DRM_COMMAND_BASE, uint32_t)
-#define DRM_IOCTL_PSB_VBT	\
-		DRM_IOWR(DRM_PSB_VBT + DRM_COMMAND_BASE, \
-			struct gct_ioctl_arg)
-#define DRM_IOCTL_PSB_DC_STATE	\
-		DRM_IOW(DRM_PSB_DC_STATE + DRM_COMMAND_BASE, \
-			struct drm_psb_dc_state_arg)
-#define DRM_IOCTL_PSB_ADB	\
-		DRM_IOWR(DRM_PSB_ADB + DRM_COMMAND_BASE, uint32_t)
-#define DRM_IOCTL_PSB_MODE_OPERATION	\
-		DRM_IOWR(DRM_PSB_MODE_OPERATION + DRM_COMMAND_BASE, \
-			 struct drm_psb_mode_operation_arg)
-#define DRM_IOCTL_PSB_STOLEN_MEMORY	\
-		DRM_IOWR(DRM_PSB_STOLEN_MEMORY + DRM_COMMAND_BASE, \
-			 struct drm_psb_stolen_memory_arg)
-#define DRM_IOCTL_PSB_REGISTER_RW	\
-		DRM_IOWR(DRM_PSB_REGISTER_RW + DRM_COMMAND_BASE, \
-			 struct drm_psb_register_rw_arg)
-#define DRM_IOCTL_PSB_GTT_MAP	\
-		DRM_IOWR(DRM_PSB_GTT_MAP + DRM_COMMAND_BASE, \
-			 struct psb_gtt_mapping_arg)
-#define DRM_IOCTL_PSB_GTT_UNMAP	\
-		DRM_IOW(DRM_PSB_GTT_UNMAP + DRM_COMMAND_BASE, \
-			struct psb_gtt_mapping_arg)
-#define DRM_IOCTL_PSB_GETPAGEADDRS	\
-		DRM_IOWR(DRM_COMMAND_BASE + DRM_PSB_GETPAGEADDRS,\
-			 struct drm_psb_getpageaddrs_arg)
-#define DRM_IOCTL_PSB_HIST_ENABLE	\
-		DRM_IOWR(DRM_PSB_HIST_ENABLE + DRM_COMMAND_BASE, \
-			 uint32_t)
-#define DRM_IOCTL_PSB_HIST_STATUS	\
-		DRM_IOWR(DRM_PSB_HIST_STATUS + DRM_COMMAND_BASE, \
-			 struct drm_psb_hist_status_arg)
-#define DRM_IOCTL_PSB_UPDATE_GUARD	\
-		DRM_IOWR(DRM_PSB_UPDATE_GUARD + DRM_COMMAND_BASE, \
-			 uint32_t)
-#define DRM_IOCTL_PSB_INIT_COMM	\
-		DRM_IOWR(DRM_PSB_INIT_COMM + DRM_COMMAND_BASE, \
-			 uint32_t)
-#define DRM_IOCTL_PSB_DPST	\
-		DRM_IOWR(DRM_PSB_DPST + DRM_COMMAND_BASE, \
-			 uint32_t)
-#define DRM_IOCTL_PSB_GAMMA	\
-		DRM_IOWR(DRM_PSB_GAMMA + DRM_COMMAND_BASE, \
-			 struct drm_psb_dpst_lut_arg)
-#define DRM_IOCTL_PSB_DPST_BL	\
-		DRM_IOWR(DRM_PSB_DPST_BL + DRM_COMMAND_BASE, \
-			 uint32_t)
-#define DRM_IOCTL_PSB_GET_PIPE_FROM_CRTC_ID	\
-		DRM_IOWR(DRM_PSB_GET_PIPE_FROM_CRTC_ID + DRM_COMMAND_BASE, \
-			 struct drm_psb_get_pipe_from_crtc_id_arg)
-
-/*pvr ioctls*/
-#define PVR_DRM_SRVKM_IOCTL \
-	DRM_IOW(DRM_COMMAND_BASE + PVR_DRM_SRVKM_CMD, \
-		PVRSRV_BRIDGE_PACKAGE)
-#define PVR_DRM_DISP_IOCTL \
-	DRM_IO(DRM_COMMAND_BASE + PVR_DRM_DISP_CMD)
-#define PVR_DRM_BC_IOCTL \
-	DRM_IO(DRM_COMMAND_BASE + PVR_DRM_BC_CMD)
-#define PVR_DRM_IS_MASTER_IOCTL \
-	DRM_IO(DRM_COMMAND_BASE + PVR_DRM_IS_MASTER_CMD)
-#define PVR_DRM_UNPRIV_IOCTL \
-	DRM_IOWR(DRM_COMMAND_BASE + PVR_DRM_UNPRIV_CMD, \
-		IMG_UINT32)
-#if defined(PDUMP)
-  #define PVR_DRM_DBGDRV_IOCTL \
-	DRM_IOW(DRM_COMMAND_BASE + PVR_DRM_DBGDRV_CMD, IOCTL_PACKAGE)
-#endif
-
-/*DPU/DSR stuff*/
-#define DRM_IOCRL_PSB_DPU_QUERY DRM_IOR(DRM_PSB_DPU_QUERY + DRM_COMMAND_BASE, IMG_UINT32)
-#define DRM_IOCRL_PSB_DPU_DSR_ON DRM_IOW(DRM_PSB_DPU_DSR_ON + DRM_COMMAND_BASE, IMG_UINT32)
-//#define DRM_IOCRL_PSB_DPU_DSR_OFF DRM_IOW(DRM_PSB_DPU_DSR_OFF + DRM_COMMAND_BASE, IMG_UINT32)
-#define DRM_IOCRL_PSB_DPU_DSR_OFF DRM_IOW(DRM_PSB_DPU_DSR_OFF + DRM_COMMAND_BASE, struct drm_psb_drv_dsr_off_arg)
-
-/*
- * TTM execbuf extension.
- */
-#if defined(PDUMP)
-#define DRM_PSB_CMDBUF		  (PVR_DRM_DBGDRV_CMD + 1)
-#else
-#define DRM_PSB_CMDBUF		  (DRM_PSB_DPU_DSR_OFF + 1)
-/* #define DRM_PSB_CMDBUF		  (DRM_PSB_DPST_BL + 1) */
-#endif
-
-#define DRM_PSB_SCENE_UNREF	  (DRM_PSB_CMDBUF + 1)
-#define DRM_IOCTL_PSB_CMDBUF	\
-		DRM_IOW(DRM_PSB_CMDBUF + DRM_COMMAND_BASE,	\
-			struct drm_psb_cmdbuf_arg)
-#define DRM_IOCTL_PSB_SCENE_UNREF	\
-		DRM_IOW(DRM_PSB_SCENE_UNREF + DRM_COMMAND_BASE, \
-			struct drm_psb_scene)
-#define DRM_IOCTL_PSB_KMS_OFF	  DRM_IO(DRM_PSB_KMS_OFF + DRM_COMMAND_BASE)
-#define DRM_IOCTL_PSB_KMS_ON	  DRM_IO(DRM_PSB_KMS_ON + DRM_COMMAND_BASE)
-#define DRM_IOCTL_PSB_EXTENSION	\
-		DRM_IOWR(DRM_PSB_EXTENSION + DRM_COMMAND_BASE, \
-			 union drm_psb_extension_arg)
-/*
- * TTM placement user extension.
- */
-
-#define DRM_PSB_PLACEMENT_OFFSET   (DRM_PSB_SCENE_UNREF + 1)
-
-#define DRM_PSB_TTM_PL_CREATE	 (TTM_PL_CREATE + DRM_PSB_PLACEMENT_OFFSET)
-#define DRM_PSB_TTM_PL_REFERENCE (TTM_PL_REFERENCE + DRM_PSB_PLACEMENT_OFFSET)
-#define DRM_PSB_TTM_PL_UNREF	 (TTM_PL_UNREF + DRM_PSB_PLACEMENT_OFFSET)
-#define DRM_PSB_TTM_PL_SYNCCPU	 (TTM_PL_SYNCCPU + DRM_PSB_PLACEMENT_OFFSET)
-#define DRM_PSB_TTM_PL_WAITIDLE  (TTM_PL_WAITIDLE + DRM_PSB_PLACEMENT_OFFSET)
-#define DRM_PSB_TTM_PL_SETSTATUS (TTM_PL_SETSTATUS + DRM_PSB_PLACEMENT_OFFSET)
-#define DRM_PSB_TTM_PL_CREATE_UB (TTM_PL_CREATE_UB + DRM_PSB_PLACEMENT_OFFSET)
-
-/*
- * TTM fence extension.
- */
-
-#define DRM_PSB_FENCE_OFFSET	   (DRM_PSB_TTM_PL_CREATE_UB + 1)
-#define DRM_PSB_TTM_FENCE_SIGNALED (TTM_FENCE_SIGNALED + DRM_PSB_FENCE_OFFSET)
-#define DRM_PSB_TTM_FENCE_FINISH   (TTM_FENCE_FINISH + DRM_PSB_FENCE_OFFSET)
-#define DRM_PSB_TTM_FENCE_UNREF    (TTM_FENCE_UNREF + DRM_PSB_FENCE_OFFSET)
-
-#define DRM_PSB_FLIP	   (DRM_PSB_TTM_FENCE_UNREF + 1)	/*20*/
-/* PSB video extension */
-#define DRM_LNC_VIDEO_GETPARAM		(DRM_PSB_FLIP + 1)
-
-/*BC_VIDEO ioctl*/
-#define DRM_BUFFER_CLASS_VIDEO      (DRM_LNC_VIDEO_GETPARAM + 1)    /*0x32*/
-
-#define DRM_IOCTL_PSB_TTM_PL_CREATE    \
-	DRM_IOWR(DRM_COMMAND_BASE + DRM_PSB_TTM_PL_CREATE,\
-		 union ttm_pl_create_arg)
-#define DRM_IOCTL_PSB_TTM_PL_REFERENCE \
-	DRM_IOWR(DRM_COMMAND_BASE + DRM_PSB_TTM_PL_REFERENCE,\
-		 union ttm_pl_reference_arg)
-#define DRM_IOCTL_PSB_TTM_PL_UNREF    \
-	DRM_IOW(DRM_COMMAND_BASE + DRM_PSB_TTM_PL_UNREF,\
-		struct ttm_pl_reference_req)
-#define DRM_IOCTL_PSB_TTM_PL_SYNCCPU	\
-	DRM_IOW(DRM_COMMAND_BASE + DRM_PSB_TTM_PL_SYNCCPU,\
-		struct ttm_pl_synccpu_arg)
-#define DRM_IOCTL_PSB_TTM_PL_WAITIDLE	 \
-	DRM_IOW(DRM_COMMAND_BASE + DRM_PSB_TTM_PL_WAITIDLE,\
-		struct ttm_pl_waitidle_arg)
-#define DRM_IOCTL_PSB_TTM_PL_SETSTATUS \
-	DRM_IOWR(DRM_COMMAND_BASE + DRM_PSB_TTM_PL_SETSTATUS,\
-		 union ttm_pl_setstatus_arg)
-#define DRM_IOCTL_PSB_TTM_PL_CREATE_UB    \
-	DRM_IOWR(DRM_COMMAND_BASE + DRM_PSB_TTM_PL_CREATE_UB,\
-		 union ttm_pl_create_ub_arg)
-#define DRM_IOCTL_PSB_TTM_FENCE_SIGNALED \
-	DRM_IOWR(DRM_COMMAND_BASE + DRM_PSB_TTM_FENCE_SIGNALED,	\
-		  union ttm_fence_signaled_arg)
-#define DRM_IOCTL_PSB_TTM_FENCE_FINISH \
-	DRM_IOWR(DRM_COMMAND_BASE + DRM_PSB_TTM_FENCE_FINISH,	\
-		 union ttm_fence_finish_arg)
-#define DRM_IOCTL_PSB_TTM_FENCE_UNREF \
-	DRM_IOW(DRM_COMMAND_BASE + DRM_PSB_TTM_FENCE_UNREF,	\
-		 struct ttm_fence_unref_arg)
-#define DRM_IOCTL_PSB_FLIP \
-	DRM_IOWR(DRM_COMMAND_BASE + DRM_PSB_FLIP, \
-		 struct drm_psb_pageflip_arg)
-#define DRM_IOCTL_LNC_VIDEO_GETPARAM \
-	DRM_IOWR(DRM_COMMAND_BASE + DRM_LNC_VIDEO_GETPARAM, \
-		 struct drm_lnc_video_getparam_arg)
-
-/*bc_video ioctl*/
-#define DRM_IOCTL_BUFFER_CLASS_VIDEO \
-        DRM_IOWR(DRM_COMMAND_BASE + DRM_BUFFER_CLASS_VIDEO, \
-             BC_Video_ioctl_package)
-
-static int psb_vt_leave_ioctl(struct drm_device *dev, void *data,
-			      struct drm_file *file_priv);
-static int psb_vt_enter_ioctl(struct drm_device *dev, void *data,
-			      struct drm_file *file_priv);
-static int psb_sizes_ioctl(struct drm_device *dev, void *data,
-			   struct drm_file *file_priv);
-static int psb_fuse_reg_ioctl(struct drm_device *dev, void *data,
-			      struct drm_file *file_priv);
-static int psb_vbt_ioctl(struct drm_device *dev, void *data,
-			 struct drm_file *file_priv);
-static int psb_dc_state_ioctl(struct drm_device *dev, void * data,
-			      struct drm_file *file_priv);
-static int psb_adb_ioctl(struct drm_device *dev, void *data,
-			 struct drm_file *file_priv);
-static int psb_mode_operation_ioctl(struct drm_device *dev, void *data,
-				    struct drm_file *file_priv);
-static int psb_stolen_memory_ioctl(struct drm_device *dev, void *data,
-				   struct drm_file *file_priv);
-static int psb_register_rw_ioctl(struct drm_device *dev, void *data,
-				 struct drm_file *file_priv);
-static int psb_hist_enable_ioctl(struct drm_device *dev, void *data,
-				 struct drm_file *file_priv);
-static int psb_hist_status_ioctl(struct drm_device *dev, void *data,
-				 struct drm_file *file_priv);
-static int psb_update_guard_ioctl(struct drm_device *dev, void *data,
-			       struct drm_file *file_priv);
-static int psb_init_comm_ioctl(struct drm_device *dev, void *data,
-				struct drm_file *file_priv);
-static int psb_dpst_ioctl(struct drm_device *dev, void *data,
-			  struct drm_file *file_priv);
-static int psb_gamma_ioctl(struct drm_device *dev, void *data,
-			   struct drm_file *file_priv);
-static int psb_dpst_bl_ioctl(struct drm_device *dev, void *data,
-			     struct drm_file *file_priv);
-
-static int psb_ioctl_not_support(struct drm_device *dev, void *data,
-				 struct drm_file *file_priv)
-{
-	return -EOPNOTSUPP;
-}
-
-#define PSB_IOCTL_DEF(ioctl, func, flags) \
-	[DRM_IOCTL_NR(ioctl) - DRM_COMMAND_BASE] = {ioctl, flags, func}
-
-static struct drm_ioctl_desc psb_ioctls[] = {
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_KMS_OFF, psbfb_kms_off_ioctl,
-		      DRM_ROOT_ONLY),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_KMS_ON,
-			psbfb_kms_on_ioctl,
-			DRM_ROOT_ONLY),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_VT_LEAVE, psb_vt_leave_ioctl,
-		      DRM_ROOT_ONLY),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_VT_ENTER,
-			psb_vt_enter_ioctl,
-			DRM_ROOT_ONLY),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_EXTENSION, psb_extension_ioctl, DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_SIZES, psb_sizes_ioctl, DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_FUSE_REG, psb_fuse_reg_ioctl, DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_VBT, psb_vbt_ioctl, DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_DC_STATE, psb_dc_state_ioctl, DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_ADB, psb_adb_ioctl, DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_MODE_OPERATION, psb_mode_operation_ioctl,
-		      DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_STOLEN_MEMORY, psb_stolen_memory_ioctl,
-		      DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_REGISTER_RW, psb_register_rw_ioctl,
-		      DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_GTT_MAP,
-			psb_gtt_map_meminfo_ioctl,
-			DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_GTT_UNMAP,
-			psb_gtt_unmap_meminfo_ioctl,
-			DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_GETPAGEADDRS,
-			psb_getpageaddrs_ioctl,
-			DRM_AUTH),
-	PSB_IOCTL_DEF(PVR_DRM_SRVKM_IOCTL, PVRSRV_BridgeDispatchKM, 0),
-	PSB_IOCTL_DEF(PVR_DRM_DISP_IOCTL, PVRDRM_Dummy_ioctl, 0),
-	PSB_IOCTL_DEF(PVR_DRM_BC_IOCTL, PVRDRM_Dummy_ioctl, 0),
-	PSB_IOCTL_DEF(PVR_DRM_IS_MASTER_IOCTL, PVRDRMIsMaster, DRM_MASTER),
-	PSB_IOCTL_DEF(PVR_DRM_UNPRIV_IOCTL, PVRDRMUnprivCmd, 0),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_HIST_ENABLE,
-			psb_hist_enable_ioctl,
-			DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_HIST_STATUS,
-			psb_hist_status_ioctl,
-			DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_UPDATE_GUARD, psb_update_guard_ioctl, DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_INIT_COMM, psb_init_comm_ioctl, DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_DPST, psb_dpst_ioctl, DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_GAMMA, psb_gamma_ioctl, DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_DPST_BL, psb_dpst_bl_ioctl, DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_GET_PIPE_FROM_CRTC_ID, psb_intel_get_pipe_from_crtc_id, 0),
-#if defined(PDUMP)
-	PSB_IOCTL_DEF(PVR_DRM_DBGDRV_IOCTL, SYSPVRDBGDrivIoctl, 0),
-#endif
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_CMDBUF, psb_cmdbuf_ioctl, DRM_AUTH),
-	/*to be removed later*/
-	/*PSB_IOCTL_DEF(DRM_IOCTL_PSB_SCENE_UNREF, drm_psb_scene_unref_ioctl,
-		      DRM_AUTH),*/
-
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_TTM_PL_CREATE, psb_pl_create_ioctl,
-		      DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_TTM_PL_REFERENCE, psb_pl_reference_ioctl,
-		      DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_TTM_PL_UNREF, psb_pl_unref_ioctl,
-		      DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_TTM_PL_SYNCCPU, psb_pl_synccpu_ioctl,
-		      DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_TTM_PL_WAITIDLE, psb_pl_waitidle_ioctl,
-		      DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_TTM_PL_SETSTATUS, psb_pl_setstatus_ioctl,
-		      DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_TTM_PL_CREATE_UB, psb_pl_ub_create_ioctl,
-		      DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_TTM_FENCE_SIGNALED,
-		      psb_fence_signaled_ioctl, DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_TTM_FENCE_FINISH, psb_fence_finish_ioctl,
-		      DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_PSB_TTM_FENCE_UNREF, psb_fence_unref_ioctl,
-		      DRM_AUTH),
-	/*to be removed later */
-	/*PSB_IOCTL_DEF(DRM_IOCTL_PSB_FLIP, psb_page_flip, DRM_AUTH),*/
-	PSB_IOCTL_DEF(DRM_IOCTL_LNC_VIDEO_GETPARAM,
-			lnc_video_getparam, DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCTL_BUFFER_CLASS_VIDEO, BC_Video_Bridge, DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCRL_PSB_DPU_QUERY, psb_ioctl_not_support,
-	             DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCRL_PSB_DPU_DSR_ON, psb_ioctl_not_support,
-	             DRM_AUTH),
-	PSB_IOCTL_DEF(DRM_IOCRL_PSB_DPU_DSR_OFF, psb_ioctl_not_support,
-	              DRM_AUTH)
-};
-
-
-static void psb_lastclose(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-
-	return;
-
-	if (!dev->dev_private)
-		return;
-
-	mutex_lock(&dev_priv->cmdbuf_mutex);
-	if (dev_priv->context.buffers) {
-		vfree(dev_priv->context.buffers);
-		dev_priv->context.buffers = NULL;
-	}
-	mutex_unlock(&dev_priv->cmdbuf_mutex);
-}
-
-static void psb_do_takedown(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-	struct ttm_bo_device *bdev = &dev_priv->bdev;
-
-
-	if (dev_priv->have_mem_mmu) {
-		ttm_bo_clean_mm(bdev, DRM_PSB_MEM_MMU);
-		dev_priv->have_mem_mmu = 0;
-	}
-
-	if (dev_priv->have_tt) {
-		ttm_bo_clean_mm(bdev, TTM_PL_TT);
-		dev_priv->have_tt = 0;
-	}
-
-	if (dev_priv->have_camera) {
-		ttm_bo_clean_mm(bdev, TTM_PL_CI);
-		dev_priv->have_camera = 0;
-	}
-	if (dev_priv->have_rar) {
-		ttm_bo_clean_mm(bdev, TTM_PL_RAR);
-		dev_priv->have_rar = 0;
-	}
-
-	psb_msvdx_uninit(dev);
-}
-
-static void psb_get_core_freq(struct drm_device *dev)
-{
-	uint32_t clock;
-	struct drm_psb_private *dev_priv = (struct drm_psb_private *) dev->dev_private;
-
-	clock = PSB_RVDC32(INTEL_CDV_DISP_CLK_FREQ);
-
-	switch ((clock >> 4) & 0x0F) {
-	case 0:
-		dev_priv->core_freq = 160;
-		break;
-	case 1:
-		dev_priv->core_freq = 200;
-		break;
-	case 2:
-		dev_priv->core_freq = 267;
-		break;
-	case 3:
-		dev_priv->core_freq = 320;
-		break;
-	case 4:
-		dev_priv->core_freq = 356;
-		break;
-	case 5:
-		dev_priv->core_freq = 400;
-		break;
-	default:
-		dev_priv->core_freq = 0;
-	}
-}
-
-#define FB_REG06 0xD0810600
-#define FB_TOPAZ_DISABLE BIT0
-#define FB_MIPI_DISABLE  BIT11
-#define FB_REG09 0xD0810900
-#define FB_SKU_MASK  (BIT12|BIT13|BIT14)
-#define FB_SKU_SHIFT 12
-#define FB_SKU_100 0
-#define FB_SKU_100L 1
-#define FB_SKU_83 2
-#if 1 /* FIXME remove it after PO */
-#define FB_GFX_CLK_DIVIDE_MASK	(BIT20|BIT21|BIT22)
-#define FB_GFX_CLK_DIVIDE_SHIFT 20
-#define FB_VED_CLK_DIVIDE_MASK	(BIT23|BIT24)
-#define FB_VED_CLK_DIVIDE_SHIFT 23
-#define FB_VEC_CLK_DIVIDE_MASK	(BIT25|BIT26)
-#define FB_VEC_CLK_DIVIDE_SHIFT 25
-#endif	/* FIXME remove it after PO */
-
-static int psb_do_init(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-	struct ttm_bo_device *bdev = &dev_priv->bdev;
-	struct psb_gtt *pg = dev_priv->pg;
-
-	uint32_t stolen_gtt;
-	uint32_t tt_start;
-	uint32_t tt_pages;
-
-	int ret = -ENOMEM;
-
-
-	/*
-	 * Initialize sequence numbers for the different command
-	 * submission mechanisms.
-	 */
-
-	dev_priv->sequence[PSB_ENGINE_2D] = 0;
-	dev_priv->sequence[PSB_ENGINE_VIDEO] = 0;
-
-	if (pg->mmu_gatt_start & 0x0FFFFFFF) {
-		DRM_ERROR("Gatt must be 256M aligned. This is a bug.\n");
-		ret = -EINVAL;
-		goto out_err;
-	}
-
-	stolen_gtt = (pg->stolen_size >> PAGE_SHIFT) * 4;
-	stolen_gtt = (stolen_gtt + PAGE_SIZE - 1) >> PAGE_SHIFT;
-	stolen_gtt = (stolen_gtt < pg->gtt_pages) ? stolen_gtt : pg->gtt_pages;
-
-	dev_priv->gatt_free_offset = pg->mmu_gatt_start +
-				     (stolen_gtt << PAGE_SHIFT) * 1024;
-
-	if (1 || drm_debug) {
-		uint32_t core_id = PSB_RSGX32(PSB_CR_CORE_ID);
-		uint32_t core_rev = PSB_RSGX32(PSB_CR_CORE_REVISION);
-
-		DRM_DEBUG("SGX core id = 0x%08x\n", core_id);
-		DRM_DEBUG("SGX core rev major = 0x%02x, minor = 0x%02x\n",
-			 (core_rev & _PSB_CC_REVISION_MAJOR_MASK) >>
-			 _PSB_CC_REVISION_MAJOR_SHIFT,
-			 (core_rev & _PSB_CC_REVISION_MINOR_MASK) >>
-			 _PSB_CC_REVISION_MINOR_SHIFT);
-		DRM_DEBUG("SGX core rev maintenance = 0x%02x, designer = 0x%02x\n",
-			  (core_rev & _PSB_CC_REVISION_MAINTENANCE_MASK) >>
-			  _PSB_CC_REVISION_MAINTENANCE_SHIFT,
-			  (core_rev & _PSB_CC_REVISION_DESIGNER_MASK) >>
-			  _PSB_CC_REVISION_DESIGNER_SHIFT);
-	}
-
-	spin_lock_init(&dev_priv->irqmask_lock);
-
-	tt_pages = (pg->gatt_pages < PSB_TT_PRIV0_PLIMIT) ?
-	    pg->gatt_pages : PSB_TT_PRIV0_PLIMIT;
-	tt_start = dev_priv->gatt_free_offset - pg->mmu_gatt_start;
-	tt_pages -= tt_start >> PAGE_SHIFT;
-	dev_priv->sizes.ta_mem_size = 0;
-
-
-	/* TT region managed by TTM. */
-	if (!ttm_bo_init_mm(bdev, TTM_PL_TT,
-			pg->gatt_pages -
-			(pg->ci_start >> PAGE_SHIFT) -
-			((dev_priv->ci_region_size + dev_priv->rar_region_size)
-			 >> PAGE_SHIFT))) {
-
-		dev_priv->have_tt = 1;
-		dev_priv->sizes.tt_size =
-			(tt_pages << PAGE_SHIFT) / (1024 * 1024) / 2;
-	}
-
-	if (!ttm_bo_init_mm(bdev,
-			DRM_PSB_MEM_MMU,
-			PSB_MEM_TT_START >> PAGE_SHIFT)) {
-		dev_priv->have_mem_mmu = 1;
-		dev_priv->sizes.mmu_size =
-			PSB_MEM_TT_START / (1024*1024);
-	}
-
-
-	PSB_DEBUG_INIT("Init MSVDX\n");
-	if (psb_msvdx_init(dev)) {
-		ret = -EIO;
-		DRM_ERROR("Failure in MSVDX Initialization\n");
-		goto out_err;
-	}
-
-	return 0;
-out_err:
-	psb_do_takedown(dev);
-	return ret;
-}
-
-static int psb_driver_unload(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-
-	/*Fristly, unload pvr driver*/
-	PVRSRVDrmUnload(dev);
-
-	psb_intel_opregion_fini(dev);
-
-	if (drm_psb_no_fb == 0)
-		psb_modeset_cleanup(dev);
-
-	if (dev_priv) {
-
-		/* psb_watchdog_takedown(dev_priv); */
-		psb_do_takedown(dev);
-
-		if (dev_priv->pf_pd) {
-			psb_mmu_free_pagedir(dev_priv->pf_pd);
-			dev_priv->pf_pd = NULL;
-		}
-		if (dev_priv->mmu) {
-			struct psb_gtt *pg = dev_priv->pg;
-
-			down_read(&pg->sem);
-			psb_mmu_remove_pfn_sequence(
-					psb_mmu_get_default_pd
-					(dev_priv->mmu),
-					pg->mmu_gatt_start,
-					pg->vram_stolen_size >> PAGE_SHIFT);
-			if (pg->ci_stolen_size != 0)
-				psb_mmu_remove_pfn_sequence(
-					psb_mmu_get_default_pd
-					(dev_priv->mmu),
-					pg->ci_start,
-					pg->ci_stolen_size >> PAGE_SHIFT);
-			if (pg->rar_stolen_size != 0)
-				psb_mmu_remove_pfn_sequence(
-					psb_mmu_get_default_pd
-					(dev_priv->mmu),
-					pg->rar_start,
-					pg->rar_stolen_size >> PAGE_SHIFT);
-			up_read(&pg->sem);
-			psb_mmu_driver_takedown(dev_priv->mmu);
-			dev_priv->mmu = NULL;
-		}
-		psb_gtt_takedown(dev_priv->pg, 1);
-		if (dev_priv->scratch_page) {
-			__free_page(dev_priv->scratch_page);
-			dev_priv->scratch_page = NULL;
-		}
-		if (dev_priv->has_bo_device) {
-			ttm_bo_device_release(&dev_priv->bdev);
-			dev_priv->has_bo_device = 0;
-		}
-		if (dev_priv->has_fence_device) {
-			ttm_fence_device_release(&dev_priv->fdev);
-			dev_priv->has_fence_device = 0;
-		}
-		if (dev_priv->vdc_reg) {
-			iounmap(dev_priv->vdc_reg);
-			dev_priv->vdc_reg = NULL;
-		}
-		if (dev_priv->sgx_reg) {
-			iounmap(dev_priv->sgx_reg);
-			dev_priv->sgx_reg = NULL;
-		}
-
-		if (dev_priv->msvdx_reg) {
-			iounmap(dev_priv->msvdx_reg);
-			dev_priv->msvdx_reg = NULL;
-		}
-
-		if (dev_priv->tdev)
-			ttm_object_device_release(&dev_priv->tdev);
-
-		if (dev_priv->has_global)
-			psb_ttm_global_release(dev_priv);
-
-		kfree(dev_priv);
-		dev->dev_private = NULL;
-
-		psb_intel_destory_bios(dev);
-	}
-
-	ospm_power_uninit();
-
-	return 0;
-}
-
-
-static int psb_driver_load(struct drm_device *dev, unsigned long chipset)
-{
-	struct drm_psb_private *dev_priv;
-	struct ttm_bo_device *bdev;
-	unsigned long resource_start;
-	struct psb_gtt *pg;
-	unsigned long irqflags;
-	int ret = -ENOMEM;
-	uint32_t tt_pages;
-
-	DRM_DEBUG("psb - %s\n", PSB_PACKAGE_VERSION);
-
-#if defined(MODULE) && defined(CONFIG_NET)
-	psb_kobject_uevent_init();
-#endif
-
-	ret = SYSPVRInit();
-	if (ret)
-		return ret;
-
-	if (IS_CDV(dev))
-		DRM_DEBUG("Run drivers on Cedartrail platform!\n");
-
-	dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL);
-	if (dev_priv == NULL)
-		return -ENOMEM;
-	INIT_LIST_HEAD(&dev_priv->video_ctx);
-	dev_priv->num_pipe = 2;
-
-	/*init DPST umcomm to NULL*/
-	dev_priv->psb_dpst_state = NULL;
-	dev_priv->psb_hotplug_state = NULL;
-
-	dev_priv->dev = dev;
-	bdev = &dev_priv->bdev;
-
-	ret = psb_ttm_global_init(dev_priv);
-	if (unlikely(ret != 0))
-		goto out_err;
-	dev_priv->has_global = 1;
-
-	dev_priv->tdev = ttm_object_device_init(dev_priv->mem_global_ref.object,
-					   	PSB_OBJECT_HASH_ORDER);
-	if (unlikely(dev_priv->tdev == NULL))
-		goto out_err;
-
-	mutex_init(&dev_priv->temp_mem);
-	mutex_init(&dev_priv->cmdbuf_mutex);
-	mutex_init(&dev_priv->reset_mutex);
-	INIT_LIST_HEAD(&dev_priv->context.validate_list);
-	INIT_LIST_HEAD(&dev_priv->context.kern_validate_list);
-
-	spin_lock_init(&dev_priv->reloc_lock);
-
-	DRM_INIT_WAITQUEUE(&dev_priv->rel_mapped_queue);
-
-	dev->dev_private = (void *) dev_priv;
-	dev_priv->chipset = chipset;
-
-	PSB_DEBUG_GENERAL("Init watchdog and scheduler\n");
-	/* psb_watchdog_init(dev_priv); */
-	psb_scheduler_init(dev, &dev_priv->scheduler);
-
-
-	PSB_DEBUG_INIT("Mapping MMIO\n");
-	resource_start = pci_resource_start(dev->pdev, PSB_MMIO_RESOURCE);
-
-	if (IS_MSVDX(dev)) /* Work around for medfield by Li */
-		dev_priv->msvdx_reg = ioremap(resource_start + MRST_MSVDX_OFFSET,
-					      PSB_MSVDX_SIZE);
-	else
-		dev_priv->msvdx_reg = ioremap(resource_start + PSB_MSVDX_OFFSET,
-					      PSB_MSVDX_SIZE);
-
-	if (!dev_priv->msvdx_reg)
-		goto out_err;
-
-	dev_priv->vdc_reg = ioremap(resource_start + PSB_VDC_OFFSET,
-				    PSB_VDC_SIZE);
-	if (!dev_priv->vdc_reg)
-		goto out_err;
-
-	if (IS_MID(dev))
-		dev_priv->sgx_reg = ioremap(resource_start + MRST_SGX_OFFSET,
-					    PSB_SGX_SIZE);
-	else
-		dev_priv->sgx_reg = ioremap(resource_start + PSB_SGX_OFFSET,
-					    PSB_SGX_SIZE);
-
-	if (!dev_priv->sgx_reg)
-		goto out_err;
-
-	psb_get_core_freq(dev);
-
-	psb_intel_opregion_setup(dev);
-	psb_intel_init_bios(dev);
-
-	PSB_DEBUG_INIT("Init TTM fence and BO driver\n");
-
-	/* Init OSPM support */
-	ospm_power_init(dev);
-
-	ret = psb_ttm_fence_device_init(&dev_priv->fdev);
-	if (unlikely(ret != 0))
-		goto out_err;
-
-	/* For VXD385 DE2.x firmware support 16bit fence value */
-	if(IS_CDV(dev) && IS_FW_UPDATED) {
-		DRM_DEBUG("Setting up the video fences\n");
-		dev_priv->fdev.fence_class[PSB_ENGINE_VIDEO].wrap_diff = (1 << 14);
-		dev_priv->fdev.fence_class[PSB_ENGINE_VIDEO].flush_diff = ( 1 << 13);
-		dev_priv->fdev.fence_class[PSB_ENGINE_VIDEO].sequence_mask = 0x0000ffff;
-	}
-
-	dev_priv->has_fence_device = 1;
-	ret = ttm_bo_device_init(bdev,
-				 dev_priv->bo_global_ref.ref.object,
-				 &psb_ttm_bo_driver,
-				 DRM_PSB_FILE_PAGE_OFFSET, false);
-	if (unlikely(ret != 0))
-		goto out_err;
-	dev_priv->has_bo_device = 1;
-	ttm_lock_init(&dev_priv->ttm_lock);
-
-	ret = -ENOMEM;
-
-	dev_priv->scratch_page = alloc_page(GFP_DMA32 | __GFP_ZERO);
-	if (!dev_priv->scratch_page)
-		goto out_err;
-
-	set_pages_uc(dev_priv->scratch_page, 1);
-
-	dev_priv->pg = psb_gtt_alloc(dev);
-	if (!dev_priv->pg)
-		goto out_err;
-
-	ret = psb_gtt_init(dev_priv->pg, 0);
-	if (ret)
-		goto out_err;
-
-	ret = psb_gtt_mm_init(dev_priv->pg);
-	if (ret)
-		goto out_err;
-
-	dev_priv->mmu = psb_mmu_driver_init((void *)0,
-					drm_psb_trap_pagefaults, 0,
-					dev_priv);
-	if (!dev_priv->mmu)
-		goto out_err;
-
-	pg = dev_priv->pg;
-
-	tt_pages = (pg->gatt_pages < PSB_TT_PRIV0_PLIMIT) ?  (pg->gatt_pages) :
-	       					             PSB_TT_PRIV0_PLIMIT;
-
-	/* CI/RAR use the lower half of TT. */
-	pg->ci_start = (tt_pages / 2) << PAGE_SHIFT;
-	pg->rar_start = pg->ci_start + pg->ci_stolen_size;
-
-
-	/*
-	 * Make MSVDX/TOPAZ MMU aware of the CI stolen memory area.
-	 */
-	if (dev_priv->pg->ci_stolen_size != 0) {
-		down_read(&pg->sem);
-		ret = psb_mmu_insert_pfn_sequence(psb_mmu_get_default_pd
-				(dev_priv->mmu),
-				dev_priv->ci_region_start >> PAGE_SHIFT,
-				pg->mmu_gatt_start + pg->ci_start,
-				pg->ci_stolen_size >> PAGE_SHIFT, 0);
-		up_read(&pg->sem);
-		if (ret)
-			goto out_err;
-	}
-
-	/*
-	 * Make MSVDX/TOPAZ MMU aware of the rar stolen memory area.
-	 */
-	if (dev_priv->pg->rar_stolen_size != 0) {
-		down_read(&pg->sem);
-		ret = psb_mmu_insert_pfn_sequence(
-				psb_mmu_get_default_pd(dev_priv->mmu),
-				dev_priv->rar_region_start >> PAGE_SHIFT,
-				pg->mmu_gatt_start + pg->rar_start,
-				pg->rar_stolen_size >> PAGE_SHIFT, 0);
-		up_read(&pg->sem);
-		if (ret)
-			goto out_err;
-	}
-
-	dev_priv->pf_pd = psb_mmu_alloc_pd(dev_priv->mmu, 1, 0);
-	if (!dev_priv->pf_pd)
-		goto out_err;
-
-	psb_mmu_set_pd_context(psb_mmu_get_default_pd(dev_priv->mmu), 0);
-	psb_mmu_set_pd_context(dev_priv->pf_pd, 1);
-
-	spin_lock_init(&dev_priv->sequence_lock);
-
-	PSB_DEBUG_INIT("Begin to init MSVDX/Topaz\n");
-
-	ret = psb_do_init(dev);
-	if (ret)
-		return ret;
-
-	/*initialize the MSI*/
-	if (IS_MID(dev)) {
-		if (pci_enable_msi(dev->pdev)) {
-			DRM_ERROR("Enable MSI failed!\n");
-		} else {
-			PSB_DEBUG_INIT("Enabled MSI IRQ (%d)\n",
-				       dev->pdev->irq);
-			/* pci_write_config_word(pdev, 0x04, 0x07); */
-		}
-	}
-
-	ret = drm_vblank_init(dev, dev_priv->num_pipe);
-	if (ret)
-	    goto out_err;
-
-	/*
-	 * Install interrupt handlers prior to powering off SGX or else we will
-	 * crash.
-	 */
-	dev_priv->vdc_irq_mask = 0;
-	dev_priv->pipestat[0] = 0;
-	dev_priv->pipestat[1] = 0;
-	dev_priv->pipestat[2] = 0;
-	spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
-	PSB_WVDC32(0x00000000, PSB_INT_ENABLE_R);
-	PSB_WVDC32(0xFFFFFFFF, PSB_INT_MASK_R);
-	spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags);
-	if (drm_core_check_feature(dev, DRIVER_MODESET))
-		drm_irq_install(dev);
-
-	dev->vblank_disable_allowed = 1;
-
-	dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */
-
-	dev->driver->get_vblank_counter = psb_get_vblank_counter;
-
-	if (drm_psb_no_fb == 0) {
-		psb_modeset_init(dev);
-		psb_fbdev_init(dev);
-		drm_kms_helper_poll_init(dev);
-	}
-
-	psb_intel_opregion_init(dev);
-	acpi_video_register();
-
-	/* initialize HDMI Hotplug interrupt forwarding
-	* notifications for user mode
-	*/
-
-	/*Intel drm driver load is done, continue doing pvr load*/
-	DRM_DEBUG("Pvr driver load\n");
-
-	ret = PVRSRVDrmLoad(dev, chipset);
-	if (ret)
-		return ret;
-
-	/*init for bc_video*/
-	return BC_Video_ModInit();
-
-out_err:
-	psb_driver_unload(dev);
-	return ret;
-}
-
-int psb_driver_device_is_agp(struct drm_device *dev)
-{
-	return 0;
-}
-
-int psb_extension_ioctl(struct drm_device *dev, void *data,
-			struct drm_file *file_priv)
-{
-	union drm_psb_extension_arg *arg = data;
-	struct drm_psb_extension_rep *rep = &arg->rep;
-
-	if (strcmp(arg->extension, "psb_ttm_placement_alphadrop") == 0) {
-		rep->exists = 1;
-		rep->driver_ioctl_offset = DRM_PSB_PLACEMENT_OFFSET;
-		rep->sarea_offset = 0;
-		rep->major = 1;
-		rep->minor = 0;
-		rep->pl = 0;
-		return 0;
-	}
-	if (strcmp(arg->extension, "psb_ttm_fence_alphadrop") == 0) {
-		rep->exists = 1;
-		rep->driver_ioctl_offset = DRM_PSB_FENCE_OFFSET;
-		rep->sarea_offset = 0;
-		rep->major = 1;
-		rep->minor = 0;
-		rep->pl = 0;
-		return 0;
-	}
-	if (strcmp(arg->extension, "psb_ttm_execbuf_alphadrop") == 0) {
-		rep->exists = 1;
-		rep->driver_ioctl_offset = DRM_PSB_CMDBUF;
-		rep->sarea_offset = 0;
-		rep->major = 1;
-		rep->minor = 0;
-		rep->pl = 0;
-		return 0;
-	}
-
-	/*return the page flipping ioctl offset*/
-	if (strcmp(arg->extension, "psb_page_flipping_alphadrop") == 0) {
-		rep->exists = 1;
-		rep->driver_ioctl_offset = DRM_PSB_FLIP;
-		rep->sarea_offset = 0;
-		rep->major = 1;
-		rep->minor = 0;
-		rep->pl = 0;
-		return 0;
-	}
-
-	/* return the video rar offset */
-	if (strcmp(arg->extension, "lnc_video_getparam") == 0) {
-		rep->exists = 1;
-		rep->driver_ioctl_offset = DRM_LNC_VIDEO_GETPARAM;
-		rep->sarea_offset = 0;
-		rep->major = 1;
-		rep->minor = 0;
-		rep->pl = 0;
-		return 0;
-	}
-
-	rep->exists = 0;
-	return 0;
-}
-
-static int psb_vt_leave_ioctl(struct drm_device *dev, void *data,
-			      struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	struct ttm_bo_device *bdev = &dev_priv->bdev;
-	int ret;
-
-	ret = ttm_vt_lock(&dev_priv->ttm_lock, 1,
-			     psb_fpriv(file_priv)->tfile);
-	if (unlikely(ret != 0))
-		return ret;
-
-	ret = ttm_bo_evict_mm(&dev_priv->bdev, TTM_PL_TT);
-	if (unlikely(ret != 0))
-		goto out_unlock;
-
-	ret = ttm_bo_clean_mm(bdev, TTM_PL_TT);
-	if (unlikely(ret != 0))
-		DRM_INFO("Warning: GATT was not clean after VT switch.\n");
-
-	ttm_bo_swapout_all(&dev_priv->bdev);
-
-	return 0;
-out_unlock:
-	(void) ttm_vt_unlock(&dev_priv->ttm_lock);
-	return ret;
-}
-
-static int psb_vt_enter_ioctl(struct drm_device *dev, void *data,
-			      struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	return ttm_vt_unlock(&dev_priv->ttm_lock);
-}
-
-static int psb_sizes_ioctl(struct drm_device *dev, void *data,
-			   struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	struct drm_psb_sizes_arg *arg =
-		(struct drm_psb_sizes_arg *) data;
-
-	*arg = dev_priv->sizes;
-	return 0;
-}
-
-static int psb_fuse_reg_ioctl(struct drm_device *dev, void *data,
-			      struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	uint32_t *arg = data;
-
-	*arg = dev_priv->fuse_reg_value;
-	return 0;
-}
-static int psb_vbt_ioctl(struct drm_device *dev, void *data,
-			struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	struct gct_ioctl_arg *pGCT = data;
-
-	memcpy(pGCT, &dev_priv->gct_data, sizeof(*pGCT));
-
-	return 0;
-}
-
-static int psb_dc_state_ioctl(struct drm_device *dev, void * data,
-				struct drm_file *file_priv)
-{
-	uint32_t flags;
-	uint32_t obj_id;
-	struct drm_mode_object *obj;
-	struct drm_connector *connector;
-	struct drm_crtc *crtc;
-	struct drm_psb_dc_state_arg *arg =
-		(struct drm_psb_dc_state_arg *)data;
-
-	if (IS_MID(dev))
-		return 0;
-
-	flags = arg->flags;
-	obj_id = arg->obj_id;
-
-	if (flags & PSB_DC_CRTC_MASK) {
-		obj = drm_mode_object_find(dev, obj_id,
-				DRM_MODE_OBJECT_CRTC);
-		if (!obj) {
-			DRM_DEBUG("Invalid CRTC object.\n");
-			return -EINVAL;
-		}
-
-		crtc = obj_to_crtc(obj);
-
-		mutex_lock(&dev->mode_config.mutex);
-		if (drm_helper_crtc_in_use(crtc)) {
-			if (flags & PSB_DC_CRTC_SAVE)
-				crtc->funcs->save(crtc);
-			else
-				crtc->funcs->restore(crtc);
-		}
-		mutex_unlock(&dev->mode_config.mutex);
-
-		return 0;
-	} else if (flags & PSB_DC_OUTPUT_MASK) {
-		obj = drm_mode_object_find(dev, obj_id,
-				DRM_MODE_OBJECT_CONNECTOR);
-		if (!obj) {
-			DRM_DEBUG("Invalid connector id.\n");
-			return -EINVAL;
-		}
-
-		connector = obj_to_connector(obj);
-		if (flags & PSB_DC_OUTPUT_SAVE)
-			connector->funcs->save(connector);
-		else
-			connector->funcs->restore(connector);
-
-		return 0;
-	}
-
-	DRM_DEBUG("Bad flags 0x%x\n", flags);
-	return -EINVAL;
-}
-
-static int psb_dpst_bl_ioctl(struct drm_device *dev, void *data,
-		       struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	uint32_t *arg = data;
-	struct backlight_device bd;
-	dev_priv->blc_adj2 = *arg;
-
-#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
-	bd.props.brightness = psb_get_brightness(&bd);
-	psb_set_brightness(&bd);
-#endif
-	return 0;
-}
-
-static int psb_adb_ioctl(struct drm_device *dev, void *data,
-			struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	uint32_t *arg = data;
-	struct backlight_device bd;
-	dev_priv->blc_adj1 = *arg;
-
-#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
-	bd.props.brightness = psb_get_brightness(&bd);
-	psb_set_brightness(&bd);
-#endif
-	return 0;
-}
-
-static int psb_hist_enable_ioctl(struct drm_device *dev, void *data,
-				struct drm_file *file_priv)
-{
-	u32 irqCtrl = 0;
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	struct dpst_guardband guardband_reg;
-	struct dpst_ie_histogram_control ie_hist_cont_reg;
-	uint32_t *enable = data;
-
-	if (*enable == 1) {
-		ie_hist_cont_reg.data = PSB_RVDC32(HISTOGRAM_LOGIC_CONTROL);
-		ie_hist_cont_reg.ie_pipe_assignment = 0;
-		ie_hist_cont_reg.histogram_mode_select = DPST_YUV_LUMA_MODE;
-		ie_hist_cont_reg.ie_histogram_enable = 1;
-		PSB_WVDC32(ie_hist_cont_reg.data, HISTOGRAM_LOGIC_CONTROL);
-
-		guardband_reg.data = PSB_RVDC32(HISTOGRAM_INT_CONTROL);
-		guardband_reg.interrupt_enable = 1;
-		guardband_reg.interrupt_status = 1;
-		PSB_WVDC32(guardband_reg.data, HISTOGRAM_INT_CONTROL);
-
-		irqCtrl = PSB_RVDC32(PIPEASTAT);
-		PSB_WVDC32(irqCtrl | PIPE_DPST_EVENT_ENABLE, PIPEASTAT);
-		/* Wait for two vblanks */
-	} else {
-		guardband_reg.data = PSB_RVDC32(HISTOGRAM_INT_CONTROL);
-		guardband_reg.interrupt_enable = 0;
-		guardband_reg.interrupt_status = 1;
-		PSB_WVDC32(guardband_reg.data, HISTOGRAM_INT_CONTROL);
-
-		ie_hist_cont_reg.data = PSB_RVDC32(HISTOGRAM_LOGIC_CONTROL);
-		ie_hist_cont_reg.ie_histogram_enable = 0;
-		PSB_WVDC32(ie_hist_cont_reg.data, HISTOGRAM_LOGIC_CONTROL);
-
-		irqCtrl = PSB_RVDC32(PIPEASTAT);
-		irqCtrl &= ~PIPE_DPST_EVENT_ENABLE;
-		PSB_WVDC32(irqCtrl, PIPEASTAT);
-	}
-
-	return 0;
-}
-
-static int psb_hist_status_ioctl(struct drm_device *dev, void *data,
-				 struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv		= psb_priv(dev);
-	struct drm_psb_hist_status_arg *hist_status	= data;
-	uint32_t *arg					= hist_status->buf;
-	u32 iedbr_reg_data				= 0;
-	struct dpst_ie_histogram_control ie_hist_cont_reg;
-	u32 i;
-	int dpst3_bin_threshold_count	= 0;
-	uint32_t blm_hist_ctl		= HISTOGRAM_LOGIC_CONTROL;
-	uint32_t iebdr_reg		= HISTOGRAM_BIN_DATA;
-	uint32_t segvalue_max_22_bit	= 0x3fffff;
-	uint32_t iedbr_busy_bit		= 0x80000000;
-	int dpst3_bin_count		= 32;
-
-	ie_hist_cont_reg.data			= PSB_RVDC32(blm_hist_ctl);
-	ie_hist_cont_reg.bin_reg_func_select	= dpst3_bin_threshold_count;
-	ie_hist_cont_reg.bin_reg_index		= 0;
-
-	PSB_WVDC32(ie_hist_cont_reg.data, blm_hist_ctl);
-
-	for (i = 0; i < dpst3_bin_count; i++) {
-		iedbr_reg_data = PSB_RVDC32(iebdr_reg);
-
-		if (!(iedbr_reg_data & iedbr_busy_bit)) {
-			arg[i] = iedbr_reg_data & segvalue_max_22_bit;
-		} else {
-			i = 0;
-			ie_hist_cont_reg.data = PSB_RVDC32(blm_hist_ctl);
-			ie_hist_cont_reg.bin_reg_index = 0;
-			PSB_WVDC32(ie_hist_cont_reg.data, blm_hist_ctl);
-		}
-	}
-
-	return 0;
-}
-
-static int psb_init_comm_ioctl(struct drm_device *dev, void *data,
-				struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	struct pci_dev *pdev = NULL;
-	struct device *ddev = NULL;
-	struct kobject *kobj = NULL;
-	uint32_t *arg = data;
-
-	if (*arg == 1) {
-		/*find handle to drm kboject*/
-		pdev = dev->pdev;
-		ddev = &pdev->dev;
-		kobj = &ddev->kobj;
-
-		if (dev_priv->psb_dpst_state == NULL) {
-			/*init dpst kmum comms*/
-			dev_priv->psb_dpst_state = psb_dpst_init(kobj);
-		} else {
-			DRM_INFO("DPST already initialized\n");
-		}
-		if (dev_priv->psb_dpst_state == NULL) {
-			DRM_ERROR("DPST is not initialized correctly\n");
-			return -EINVAL;
-		}
-		psb_irq_enable_dpst(dev);
-		psb_dpst_notify_change_um(DPST_EVENT_INIT_COMPLETE,
-					  dev_priv->psb_dpst_state);
-	} else {
-		if (dev_priv->psb_dpst_state == NULL) {
-			DRM_ERROR("DPST doesn't exit\n");
-			return -EINVAL;
-		}
-		/*hotplug and dpst destroy examples*/
-		psb_irq_disable_dpst(dev);
-		psb_dpst_notify_change_um(DPST_EVENT_TERMINATE,
-					  dev_priv->psb_dpst_state);
-		psb_dpst_device_pool_destroy(dev_priv->psb_dpst_state);
-		dev_priv->psb_dpst_state = NULL;
-	}
-	return 0;
-}
-
-/* return the current mode to the dpst module */
-static int psb_dpst_ioctl(struct drm_device *dev, void *data,
-			  struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	uint32_t *arg = data;
-	uint32_t x;
-	uint32_t y;
-	uint32_t reg;
-
-	reg = PSB_RVDC32(PIPEASRC);
-
-	/* horizontal is the left 16 bits */
-	x = reg >> 16;
-	/* vertical is the right 16 bits */
-	y = reg & 0x0000ffff;
-
-	/* the values are the image size minus one */
-	x+=1;
-	y+=1;
-
-	*arg = (x << 16) | y;
-
-	return 0;
-}
-
-static int psb_gamma_ioctl(struct drm_device *dev, void *data,
-			   struct drm_file *file_priv)
-{
-	struct drm_psb_dpst_lut_arg *lut_arg = data;
-	struct drm_mode_object *obj;
-	struct drm_crtc *crtc;
-	struct drm_connector *connector;
-	struct psb_intel_crtc *psb_intel_crtc;
-	int i = 0;
-	int32_t obj_id;
-
-	obj_id = lut_arg->output_id;
-	obj = drm_mode_object_find(dev, obj_id, DRM_MODE_OBJECT_CONNECTOR);
-	if (!obj) {
-		DRM_DEBUG("Invalid Connector object.\n");
-		return -EINVAL;
-	}
-
-	connector = obj_to_connector(obj);
-	crtc = connector->encoder->crtc;
-	psb_intel_crtc = to_psb_intel_crtc(crtc);
-
-	for (i = 0; i < 256; i++)
-		psb_intel_crtc->lut_adj[i] = lut_arg->lut[i];
-
-	psb_intel_crtc_load_lut(crtc);
-
-	return 0;
-}
-
-static int psb_update_guard_ioctl(struct drm_device *dev, void *data,
-				struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	struct dpst_guardband* input = (struct dpst_guardband*) data;
-	struct dpst_guardband reg_data;
-
-	reg_data.data = PSB_RVDC32(HISTOGRAM_INT_CONTROL);
-	reg_data.guardband = input->guardband;
-	reg_data.guardband_interrupt_delay = input->guardband_interrupt_delay;
-	/* printk(KERN_ALERT "guardband = %u\ninterrupt delay = %u\n", 
-		reg_data.guardband, reg_data.guardband_interrupt_delay); */
-	PSB_WVDC32(reg_data.data, HISTOGRAM_INT_CONTROL);
-	
-	return 0;
-}
-
-static int psb_mode_operation_ioctl(struct drm_device *dev, void *data,
-				struct drm_file *file_priv)
-{
-	uint32_t obj_id;
-	uint16_t op;
-	struct drm_mode_modeinfo *umode;
-	struct drm_display_mode *mode = NULL;
-	struct drm_psb_mode_operation_arg *arg;
-	struct drm_mode_object *obj;
-	struct drm_connector *connector;
-	struct drm_framebuffer * drm_fb;
-	struct psb_framebuffer * psb_fb;
-	struct drm_connector_helper_funcs *connector_funcs;
-	int ret = 0;
-	int resp = MODE_OK;
-
-	arg = (struct drm_psb_mode_operation_arg *)data;
-        obj_id = arg->obj_id;
-	op = arg->operation;
-
-	switch(op) {
-	case PSB_MODE_OPERATION_SET_DC_BASE:
-		obj = drm_mode_object_find(dev, obj_id, DRM_MODE_OBJECT_FB);
-		if(!obj) {
-			DRM_ERROR("Invalid FB id %d\n", obj_id);
-			return -EINVAL;
-		}
-
-		drm_fb = obj_to_fb(obj);
-		psb_fb = to_psb_fb(drm_fb);
-			
-		REG_WRITE(DSPASURF, psb_fb->offset);
-		REG_READ(DSPASURF);
-		REG_WRITE(DSPBSURF, psb_fb->offset);
-		REG_READ(DSPBSURF);
-		
-		return 0;
-	case PSB_MODE_OPERATION_MODE_VALID:
-		umode = &arg->mode;
-
-		mutex_lock(&dev->mode_config.mutex);
-
-		obj = drm_mode_object_find(dev, obj_id, DRM_MODE_OBJECT_CONNECTOR);
-		if (!obj) {
-			ret = -EINVAL;
-			goto mode_op_out;
-		}
-
-		connector = obj_to_connector(obj);
-
-		mode = drm_mode_create(dev);
-		if (!mode) {
-			ret = -ENOMEM;
-			goto mode_op_out;
-		}
-
-		/* drm_crtc_convert_umode(mode, umode); */
-		{
-			mode->clock = umode->clock;
-			mode->hdisplay = umode->hdisplay;
-			mode->hsync_start = umode->hsync_start;
-			mode->hsync_end = umode->hsync_end;
-			mode->htotal = umode->htotal;
-			mode->hskew = umode->hskew;
-			mode->vdisplay = umode->vdisplay;
-			mode->vsync_start = umode->vsync_start;
-			mode->vsync_end = umode->vsync_end;
-			mode->vtotal = umode->vtotal;
-			mode->vscan = umode->vscan;
-			mode->vrefresh = umode->vrefresh;
-			mode->flags = umode->flags;
-			mode->type = umode->type;
-			strncpy(mode->name, umode->name, DRM_DISPLAY_MODE_LEN);
-			mode->name[DRM_DISPLAY_MODE_LEN-1] = 0;
-		}
-
-		connector_funcs = (struct drm_connector_helper_funcs *)
-				   connector->helper_private;
-
-		if (connector_funcs->mode_valid) {
-			resp = connector_funcs->mode_valid(connector, mode);
-			arg->data = (void *)resp;
-		}
-
-		/*do some clean up work*/
-        	if(mode) {
-                	drm_mode_destroy(dev, mode);
-        	}
-mode_op_out:
-        	mutex_unlock(&dev->mode_config.mutex);
-        	return ret;
-
-	default:
-		DRM_DEBUG("Unsupported psb mode operation");
-		return -EOPNOTSUPP;
-	}
-
-	return 0;
-}
-
-static int psb_stolen_memory_ioctl(struct drm_device *dev, void *data,
-				   struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	struct drm_psb_stolen_memory_arg *arg = data;
-
-	arg->base = dev_priv->pg->stolen_base;
-	arg->size = dev_priv->pg->vram_stolen_size;
-
-	return 0;
-}
-
-static int psb_register_rw_ioctl(struct drm_device *dev, void *data,
-				 struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	struct drm_psb_register_rw_arg *arg = data;
-	unsigned int iep_ble_status;
-	unsigned long iep_timeout;
-
-	if (arg->display_write_mask != 0) {
-		if (arg->display_write_mask & REGRWBITS_PFIT_CONTROLS)
-			PSB_WVDC32(arg->display.pfit_controls,
-				   PFIT_CONTROL);
-		if (arg->display_write_mask & REGRWBITS_PFIT_AUTOSCALE_RATIOS)
-			PSB_WVDC32(arg->display.pfit_autoscale_ratios,
-				   PFIT_AUTO_RATIOS);
-		if (arg->display_write_mask & REGRWBITS_PFIT_PROGRAMMED_SCALE_RATIOS)
-			PSB_WVDC32(arg->display.pfit_programmed_scale_ratios,
-				   PFIT_PGM_RATIOS);
-		if (arg->display_write_mask & REGRWBITS_PIPEASRC)
-			PSB_WVDC32(arg->display.pipeasrc, PIPEASRC);
-		if (arg->display_write_mask & REGRWBITS_PIPEBSRC)
-			PSB_WVDC32(arg->display.pipebsrc, PIPEBSRC);
-		if (arg->display_write_mask & REGRWBITS_VTOTAL_A)
-			PSB_WVDC32(arg->display.vtotal_a, VTOTAL_A);
-		if (arg->display_write_mask & REGRWBITS_VTOTAL_B)
-			PSB_WVDC32(arg->display.vtotal_b, VTOTAL_B);
-	}
-
-	if (arg->display_read_mask != 0) {
-		if (arg->display_read_mask & REGRWBITS_PFIT_CONTROLS)
-			arg->display.pfit_controls = PSB_RVDC32(PFIT_CONTROL);
-		if (arg->display_read_mask & REGRWBITS_PFIT_AUTOSCALE_RATIOS)
-			arg->display.pfit_autoscale_ratios = PSB_RVDC32(PFIT_AUTO_RATIOS);
-		if (arg->display_read_mask & REGRWBITS_PFIT_PROGRAMMED_SCALE_RATIOS)
-			arg->display.pfit_programmed_scale_ratios = PSB_RVDC32(PFIT_PGM_RATIOS);
-		if (arg->display_read_mask & REGRWBITS_PIPEASRC)
-			arg->display.pipeasrc = PSB_RVDC32(PIPEASRC);
-		if (arg->display_read_mask & REGRWBITS_PIPEBSRC)
-			arg->display.pipebsrc = PSB_RVDC32(PIPEBSRC);
-		if (arg->display_read_mask & REGRWBITS_VTOTAL_A)
-			arg->display.vtotal_a = PSB_RVDC32(VTOTAL_A);
-		if (arg->display_read_mask & REGRWBITS_VTOTAL_B)
-			arg->display.vtotal_b = PSB_RVDC32(VTOTAL_B);
-	}
-
-	if (arg->overlay_write_mask != 0) {
-		if (arg->overlay_write_mask & OV_REGRWBITS_OGAM_ALL) {
-			PSB_WVDC32(arg->overlay.OGAMC5, OV_OGAMC5);
-			PSB_WVDC32(arg->overlay.OGAMC4, OV_OGAMC4);
-			PSB_WVDC32(arg->overlay.OGAMC3, OV_OGAMC3);
-			PSB_WVDC32(arg->overlay.OGAMC2, OV_OGAMC2);
-			PSB_WVDC32(arg->overlay.OGAMC1, OV_OGAMC1);
-			PSB_WVDC32(arg->overlay.OGAMC0, OV_OGAMC0);
-		}
-		if (arg->overlay_write_mask & OVC_REGRWBITS_OGAM_ALL) {
-			PSB_WVDC32(arg->overlay.OGAMC5, OVC_OGAMC5);
-			PSB_WVDC32(arg->overlay.OGAMC4, OVC_OGAMC4);
-			PSB_WVDC32(arg->overlay.OGAMC3, OVC_OGAMC3);
-			PSB_WVDC32(arg->overlay.OGAMC2, OVC_OGAMC2);
-			PSB_WVDC32(arg->overlay.OGAMC1, OVC_OGAMC1);
-			PSB_WVDC32(arg->overlay.OGAMC0, OVC_OGAMC0);
-		}
-
-		if (arg->overlay_write_mask & OV_REGRWBITS_OVADD)
-		{
-			PSB_WVDC32(arg->overlay.OVADD, OV_OVADD);
-
-			if (arg->overlay.b_wait_vblank) {
-				/*Wait for 20ms.*/
-				unsigned long vblank_timeout = jiffies + HZ/50;
-				uint32_t temp;
-				while (time_before_eq(jiffies, vblank_timeout)) {
-					temp = PSB_RVDC32(OV_DOVASTA);
-					if ((temp & (0x1 << 31)) != 0) {
-						break;
-					}
-					cpu_relax();
-				}
-			}
-
-			if (IS_CDV(dev)) {
-
-				if (arg->overlay.IEP_ENABLED) {	
-					/* VBLANK period */
-					iep_timeout = jiffies + HZ / 10;
-					do{
-						iep_ble_status = PSB_RVDC32(0x31800);
-						if (time_after_eq(jiffies, iep_timeout)) {
-							DRM_ERROR("IEP Lite timeout\n");
-							break;
-						}
-						cpu_relax();
-					}while((iep_ble_status>>1) != 1);
-
-					arg->overlay.IEP_BLE_MINMAX    = PSB_RVDC32(0x31804);
-					arg->overlay.IEP_BSSCC_CONTROL = PSB_RVDC32(0x32000);
-				}
-			}
-		}
-		if (arg->overlay_write_mask & OVC_REGRWBITS_OVADD) {
-			PSB_WVDC32(arg->overlay.OVADD, OVC_OVADD);
-			if (arg->overlay.b_wait_vblank) {
-				/*Wait for 20ms.*/
-				unsigned long vblank_timeout = jiffies + HZ/50;
-				uint32_t temp;
-				while (time_before_eq(jiffies, vblank_timeout)) {
-					temp = PSB_RVDC32(OVC_DOVCSTA);
-					if ((temp & (0x1 << 31)) != 0) {
-						break;
-					}
-					cpu_relax();
-				}
-			}
-		}
-	}
-
-	if (arg->overlay_read_mask != 0) {
-		if (arg->overlay_read_mask & OV_REGRWBITS_OGAM_ALL) {
-			arg->overlay.OGAMC5 = PSB_RVDC32(OV_OGAMC5);
-			arg->overlay.OGAMC4 = PSB_RVDC32(OV_OGAMC4);
-			arg->overlay.OGAMC3 = PSB_RVDC32(OV_OGAMC3);
-			arg->overlay.OGAMC2 = PSB_RVDC32(OV_OGAMC2);
-			arg->overlay.OGAMC1 = PSB_RVDC32(OV_OGAMC1);
-			arg->overlay.OGAMC0 = PSB_RVDC32(OV_OGAMC0);
-		}
-		if (arg->overlay_read_mask & OVC_REGRWBITS_OGAM_ALL) {
-			arg->overlay.OGAMC5 = PSB_RVDC32(OVC_OGAMC5);
-			arg->overlay.OGAMC4 = PSB_RVDC32(OVC_OGAMC4);
-			arg->overlay.OGAMC3 = PSB_RVDC32(OVC_OGAMC3);
-			arg->overlay.OGAMC2 = PSB_RVDC32(OVC_OGAMC2);
-			arg->overlay.OGAMC1 = PSB_RVDC32(OVC_OGAMC1);
-			arg->overlay.OGAMC0 = PSB_RVDC32(OVC_OGAMC0);
-		}
-		if (arg->overlay_read_mask & OV_REGRWBITS_OVADD)
-			arg->overlay.OVADD = PSB_RVDC32(OV_OVADD);
-		if (arg->overlay_read_mask & OVC_REGRWBITS_OVADD)
-			arg->overlay.OVADD = PSB_RVDC32(OVC_OVADD);
-	}
-
-	if (arg->sprite_enable_mask != 0) {
-		PSB_WVDC32(0x1F3E, DSPARB);
-		PSB_WVDC32(arg->sprite.dspa_control | PSB_RVDC32(DSPACNTR), DSPACNTR);
-		PSB_WVDC32(arg->sprite.dspa_key_value, DSPAKEYVAL);
-		PSB_WVDC32(arg->sprite.dspa_key_mask, DSPAKEYMASK);
-		PSB_WVDC32(PSB_RVDC32(DSPASURF), DSPASURF);
-		PSB_RVDC32(DSPASURF);
-		PSB_WVDC32(arg->sprite.dspc_control, DSPCCNTR);
-		PSB_WVDC32(arg->sprite.dspc_stride, DSPCSTRIDE);
-		PSB_WVDC32(arg->sprite.dspc_position, DSPCPOS);
-		PSB_WVDC32(arg->sprite.dspc_linear_offset, DSPCLINOFF);
-		PSB_WVDC32(arg->sprite.dspc_size, DSPCSIZE);
-		PSB_WVDC32(arg->sprite.dspc_surface, DSPCSURF);
-		PSB_RVDC32(DSPCSURF);
-	}
-
-	if (arg->sprite_disable_mask != 0) {
-		PSB_WVDC32(0x3F3E, DSPARB);
-		PSB_WVDC32(0x0, DSPCCNTR);
-		PSB_WVDC32(arg->sprite.dspc_surface, DSPCSURF);
-		PSB_RVDC32(DSPCSURF);
-	}
-
-	if (arg->subpicture_enable_mask != 0) {
-		uint32_t temp;
-		if ( arg->subpicture_enable_mask & REGRWBITS_DSPACNTR){
-			temp =  PSB_RVDC32(DSPACNTR);
-			temp &= ~DISPPLANE_PIXFORMAT_MASK;			
-			temp &= ~DISPPLANE_BOTTOM;
-			temp |= DISPPLANE_32BPP;
-			PSB_WVDC32(temp, DSPACNTR);
-
-			temp =  PSB_RVDC32(DSPABASE);
-			PSB_WVDC32(temp, DSPABASE);
-			PSB_RVDC32(DSPABASE);
-			temp =  PSB_RVDC32(DSPASURF);
-			PSB_WVDC32(temp, DSPASURF);
-			PSB_RVDC32(DSPASURF);
-		}
-		if ( arg->subpicture_enable_mask & REGRWBITS_DSPBCNTR){
-			temp =  PSB_RVDC32(DSPBCNTR);
-			temp &= ~DISPPLANE_PIXFORMAT_MASK;			
-			temp &= ~DISPPLANE_BOTTOM;
-			temp |= DISPPLANE_32BPP;
-			PSB_WVDC32(temp, DSPBCNTR);
-
-			temp =  PSB_RVDC32(DSPBBASE);
-			PSB_WVDC32(temp, DSPBBASE);
-			PSB_RVDC32(DSPBBASE);
-			temp =  PSB_RVDC32(DSPBSURF);
-			PSB_WVDC32(temp, DSPBSURF);
-			PSB_RVDC32(DSPBSURF);
-		}
-		if ( arg->subpicture_enable_mask & REGRWBITS_DSPCCNTR){
-			temp =  PSB_RVDC32(DSPCCNTR);
-			temp &= ~DISPPLANE_PIXFORMAT_MASK;			
-			temp &= ~DISPPLANE_BOTTOM;
-			temp |= DISPPLANE_32BPP;
-			PSB_WVDC32(temp, DSPCCNTR);
-
-			temp =  PSB_RVDC32(DSPCBASE);
-			PSB_WVDC32(temp, DSPCBASE);
-			PSB_RVDC32(DSPCBASE);
-			temp =  PSB_RVDC32(DSPCSURF);
-			PSB_WVDC32(temp, DSPCSURF);
-			PSB_RVDC32(DSPCSURF);
-		}
-	}
-	
-	if (arg->subpicture_disable_mask != 0) {
-		uint32_t temp;
-		if ( arg->subpicture_disable_mask & REGRWBITS_DSPACNTR){
-			temp =  PSB_RVDC32(DSPACNTR);
-			temp &= ~DISPPLANE_PIXFORMAT_MASK;			
-			temp |= DISPPLANE_32BPP_NO_ALPHA;
-			PSB_WVDC32(temp, DSPACNTR);
-
-			temp =  PSB_RVDC32(DSPABASE);
-			PSB_WVDC32(temp, DSPABASE);
-			PSB_RVDC32(DSPABASE);
-			temp =  PSB_RVDC32(DSPASURF);
-			PSB_WVDC32(temp, DSPASURF);
-			PSB_RVDC32(DSPASURF);
-		}
-		if ( arg->subpicture_disable_mask & REGRWBITS_DSPBCNTR){
-			temp =  PSB_RVDC32(DSPBCNTR);
-			temp &= ~DISPPLANE_PIXFORMAT_MASK;			
-			temp |= DISPPLANE_32BPP_NO_ALPHA;
-			PSB_WVDC32(temp, DSPBCNTR);
-
-			temp =  PSB_RVDC32(DSPBBASE);
-			PSB_WVDC32(temp, DSPBBASE);
-			PSB_RVDC32(DSPBBASE);
-			temp =  PSB_RVDC32(DSPBSURF);
-			PSB_WVDC32(temp, DSPBSURF);
-			PSB_RVDC32(DSPBSURF);
-		}
-		if ( arg->subpicture_disable_mask & REGRWBITS_DSPCCNTR){
-			temp =  PSB_RVDC32(DSPCCNTR);
-			temp &= ~DISPPLANE_PIXFORMAT_MASK;			
-			temp |= DISPPLANE_32BPP_NO_ALPHA;
-			PSB_WVDC32(temp, DSPCCNTR);
-
-			temp =  PSB_RVDC32(DSPCBASE);
-			PSB_WVDC32(temp, DSPCBASE);
-			PSB_RVDC32(DSPCBASE);
-			temp =  PSB_RVDC32(DSPCSURF);
-			PSB_WVDC32(temp, DSPCSURF);
-			PSB_RVDC32(DSPCSURF);
-		}
-	}
-
-	return 0;
-}
-
-/* always available as we are SIGIO'd */
-static unsigned int psb_poll(struct file *filp,
-			     struct poll_table_struct *wait)
-{
-	return POLLIN | POLLRDNORM;
-}
-
-static int psb_driver_open(struct drm_device *dev, struct drm_file *priv)
-{
-	DRM_DEBUG("\n");
-	return PVRSRVOpen(dev, priv);
-}
-
-/* When a client dies:
- *    - Check for and clean up flipped page state
- */
-void psb_driver_preclose(struct drm_device *dev, struct drm_file *priv)
-{
-}
-
-static void psb_remove(struct pci_dev *pdev)
-{
-	struct drm_device *dev = pci_get_drvdata(pdev);
-	drm_put_dev(dev);
-}
-
-static const struct dev_pm_ops psb_pm_ops = {
-        .runtime_suspend = psb_runtime_suspend,
-        .runtime_resume = psb_runtime_resume,
-        .runtime_idle = psb_runtime_idle,
-};
-
-static struct drm_driver driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | \
-			   DRIVER_IRQ_VBL | DRIVER_MODESET,
-	.load = psb_driver_load,
-	.unload = psb_driver_unload,
-
-	.ioctls = psb_ioctls,
-	.num_ioctls = DRM_ARRAY_SIZE(psb_ioctls),
-	.device_is_agp = psb_driver_device_is_agp,
-	.irq_preinstall = psb_irq_preinstall,
-	.irq_postinstall = psb_irq_postinstall,
-	.irq_uninstall = psb_irq_uninstall,
-	.irq_handler = psb_irq_handler,
-	.enable_vblank = psb_enable_vblank,
-	.disable_vblank = psb_disable_vblank,
-	.get_vblank_counter = psb_get_vblank_counter,
-	.firstopen = NULL,
-	.lastclose = psb_lastclose,
-	.open = psb_driver_open,
-	.postclose = PVRSRVDrmPostClose,
-	.suspend = PVRSRVDriverSuspend,
-	.resume = PVRSRVDriverResume,
-	.preclose = psb_driver_preclose,
-	.fops = {
-		 .owner = THIS_MODULE,
-		 .open = psb_open,
-		 .release = psb_release,
-		 .unlocked_ioctl = drm_ioctl,
-		 .mmap = psb_mmap,
-		 .poll = psb_poll,
-		 .fasync = drm_fasync,
-		 .read = drm_read,
-		 },
-	.name = DRIVER_NAME,
-	.desc = DRIVER_DESC,
-	.date = PSB_DRM_DRIVER_DATE,
-	.major = PSB_DRM_DRIVER_MAJOR,
-	.minor = PSB_DRM_DRIVER_MINOR,
-	.patchlevel = PSB_DRM_DRIVER_PATCHLEVEL
-};
-
-static struct pci_driver psb_pci_driver = {
-	.name = DRIVER_NAME,
-	.id_table = pciidlist,
-	.resume = ospm_power_resume,
-	.suspend = ospm_power_suspend,
-	.probe = psb_probe,
-	.remove = psb_remove,
-#if 0
-#ifdef CONFIG_PM
-	.driver.pm = &psb_pm_ops,
-#endif
-#endif
-};
-
-static int psb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
-{
-	return drm_get_pci_dev(pdev, ent, &driver);
-}
-
-static int __init psb_init(void)
-{
-	return drm_pci_init(&driver, &psb_pci_driver);
-}
-
-static void __exit psb_exit(void)
-{
-    int ret;
-
-    /*cleanup for bc_video*/
-    ret = BC_Video_ModCleanup();
-    if (ret != 0)
-    {
-        return;
-    }
-
-    drm_pci_exit(&driver, &psb_pci_driver);
-}
-
-late_initcall(psb_init);
-module_exit(psb_exit);
-
-MODULE_AUTHOR(DRIVER_AUTHOR);
-MODULE_DESCRIPTION(DRIVER_DESC);
-MODULE_LICENSE("GPL");
diff --git a/drivers/staging/cdv/drv/psb_drv.h b/drivers/staging/cdv/drv/psb_drv.h
deleted file mode 100644
index beec54c..0000000
--- a/drivers/staging/cdv/drv/psb_drv.h
+++ /dev/null
@@ -1,1203 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-
-#ifndef _PSB_DRV_H_
-#define _PSB_DRV_H_
-
-#include <linux/version.h>
-
-#include <drm/drmP.h>
-#include "sys_pvr_drm_export.h"
-#include "psb_drm.h"
-#include "psb_reg.h"
-#include "psb_schedule.h"
-#include "psb_intel_drv.h"
-#include "psb_hotplug.h"
-#include "psb_dpst.h"
-#include "psb_gtt.h"
-#include "psb_powermgmt.h"
-#include "ttm/ttm_object.h"
-#include "psb_ttm_fence_driver.h"
-#include "psb_ttm_userobj_api.h"
-#include "ttm/ttm_bo_driver.h"
-#include "ttm/ttm_lock.h"
-
-/*IMG headers*/
-#include "private_data.h"
-#include "pvr_drm.h"
-
-/*Append new drm mode definition here, align with libdrm definition*/
-#define DRM_MODE_SCALE_NO_SCALE   2
-
-extern struct ttm_bo_driver psb_ttm_bo_driver;
-
-enum {
-	CHIP_PSB_8108 = 0,
-	CHIP_PSB_8109 = 1,
-	CHIP_MRST_4100 = 2,
-	CHIP_MDFLD_0130 = 3,
-	CHIP_CDV_0BE0 = 4
-};
-
-enum panel_type {
-	TPO_CMD,
-	TPO_VID,
-	TMD_CMD,
-	TMD_VID,
-	PYR_CMD,
-	PYR_VID,
-	TPO,
-	TMD,
-	PYR,
-	HDMI,
-	GCT_DETECT
-};
-
-#define PCI_ID_TOPAZ_DISABLED 0x4101
-
-/*
- *Hardware bugfixes
- */
-
-#define OSPM_STAT
-
-#define DRIVER_NAME "pvrsrvkm"
-#define DRIVER_DESC "drm driver for the Intel GMA500"
-#define DRIVER_AUTHOR "Intel Corporation"
-#define OSPM_PROC_ENTRY "ospm"
-#define RTPM_PROC_ENTRY "rtpm"
-#define BLC_PROC_ENTRY "mrst_blc"
-#define DISPLAY_PROC_ENTRY "display_status"
-
-#define PSB_DRM_DRIVER_DATE "2009-03-10"
-#define PSB_DRM_DRIVER_MAJOR 8
-#define PSB_DRM_DRIVER_MINOR 1
-#define PSB_DRM_DRIVER_PATCHLEVEL 0
-
-/*
- *TTM driver private offsets.
- */
-
-#define DRM_PSB_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
-#define PSB_OBJECT_HASH_ORDER 13
-#define PSB_FILE_OBJECT_HASH_ORDER 12
-#define PSB_BO_HASH_ORDER 12
-
-#define PSB_VDC_OFFSET		 0x00000000
-#define PSB_VDC_SIZE		 0x000080000
-#define MRST_MMIO_SIZE		 0x0000C0000
-#define MDFLD_MMIO_SIZE          0x000100000
-#define PSB_SGX_SIZE		 0x8000
-#define PSB_SGX_OFFSET		 0x00040000
-#define MRST_SGX_OFFSET		 0x00080000
-#define PSB_MMIO_RESOURCE	 0
-#define PSB_GATT_RESOURCE	 2
-#define PSB_GTT_RESOURCE	 3
-#define PSB_GMCH_CTRL		 0x52
-#define PSB_BSM			 0x5C
-#define _PSB_GMCH_ENABLED	 0x4
-#define PSB_PGETBL_CTL		 0x2020
-#define _PSB_PGETBL_ENABLED	 0x00000001
-#define PSB_SGX_2D_SLAVE_PORT	 0x4000
-#define PSB_TT_PRIV0_LIMIT	 (256*1024*1024)
-#define PSB_TT_PRIV0_PLIMIT	 (PSB_TT_PRIV0_LIMIT >> PAGE_SHIFT)
-#define PSB_NUM_VALIDATE_BUFFERS 2048
-
-#define PSB_MEM_MMU_START       0x00000000
-#define PSB_MEM_TT_START        0xE0000000
-
-#define PSB_GL3_CACHE_CTL	0x2100
-#define PSB_GL3_CACHE_STAT	0x2108
-
-/*
- *Flags for external memory type field.
- */
-
-#define MRST_MSVDX_OFFSET	0x90000	/*MSVDX Base offset */
-#define PSB_MSVDX_OFFSET	0x50000	/*MSVDX Base offset */
-/* MSVDX MMIO region is 0x50000 - 0x57fff ==> 32KB */
-#define PSB_MSVDX_SIZE		0x10000
-
-#define PSB_MMU_CACHED_MEMORY	  0x0001	/* Bind to MMU only */
-#define PSB_MMU_RO_MEMORY	  0x0002	/* MMU RO memory */
-#define PSB_MMU_WO_MEMORY	  0x0004	/* MMU WO memory */
-
-/*
- *PTE's and PDE's
- */
-
-#define PSB_PDE_MASK		  0x003FFFFF
-#define PSB_PDE_SHIFT		  22
-#define PSB_PTE_SHIFT		  12
-
-#define PSB_PTE_VALID		  0x0001	/* PTE / PDE valid */
-#define PSB_PTE_WO		  0x0002	/* Write only */
-#define PSB_PTE_RO		  0x0004	/* Read only */
-#define PSB_PTE_CACHED		  0x0008	/* CPU cache coherent */
-
-/*
- *VDC registers and bits
- */
-#define PSB_MSVDX_CLOCKGATING	  0x2064
-#define PSB_HWSTAM		  0x2098
-#define PSB_INSTPM		  0x20C0
-
-#define PSB_IRQ_ASLE			(1<<0)
-#define PSB_IRQ_PIPEB_DPBM		(1<<2)
-#define PSB_IRQ_PIPEA_DPBM		(1<<3)
-#define PSB_IRQ_PIPEB_EVENT		(1<<4)
-#define PSB_IRQ_PIPEB_VBLANK		(1<<5)
-#define PSB_IRQ_PIPEA_EVENT		(1<<6)
-#define PSB_IRQ_PIPEA_VBLANK		(1<<7)
-#define PSB_IRQ_SPRITEB_FLIP		(1<<8)
-#define PSB_IRQ_SPRITEA_FLIP		(1<<9)
-#define PSB_IRQ_PLANEB_FLIP		(1<<10)
-#define PSB_IRQ_PLANEA_FLIP		(1<<11)
-#define PSB_IRQ_MASTER_ERR		(1<<15)
-#define PSB_IRQ_DISP_HOTSYNC		(1<<17)
-#define _PSB_IRQ_SGX_FLAG		(1<<18)
-#define _PSB_IRQ_MSVDX_FLAG		(1<<19)
-
-/* This flag includes all the display IRQ bits excepts the vblank irqs. */
-#define _PSB_DISP_ALL_IRQ_FLAG (PSB_IRQ_ASLE | PSB_IRQ_PIPEB_DPBM | PSB_IRQ_PIPEA_DPBM | PSB_IRQ_PIPEA_EVENT |\
-	       			PSB_IRQ_PIPEB_EVENT | PSB_IRQ_PIPEA_VBLANK | PSB_IRQ_PIPEB_VBLANK)
-#define PSB_INT_IDENTITY_R	  0x20A4
-#define PSB_INT_MASK_R		  0x20A8
-#define PSB_INT_ENABLE_R	  0x20A0
-
-#define _PSB_MMU_ER_MASK      0x0001FF00
-#define _PSB_MMU_ER_HOST      (1 << 16)
-#define GPIOA			0x5010
-#define GPIOB			0x5014
-#define GPIOC			0x5018
-#define GPIOD			0x501c
-#define GPIOE			0x5020
-#define GPIOF			0x5024
-#define GPIOG			0x5028
-#define GPIOH			0x502c
-#define GPIO_CLOCK_DIR_MASK		(1 << 0)
-#define GPIO_CLOCK_DIR_IN		(0 << 1)
-#define GPIO_CLOCK_DIR_OUT		(1 << 1)
-#define GPIO_CLOCK_VAL_MASK		(1 << 2)
-#define GPIO_CLOCK_VAL_OUT		(1 << 3)
-#define GPIO_CLOCK_VAL_IN		(1 << 4)
-#define GPIO_CLOCK_PULLUP_DISABLE	(1 << 5)
-#define GPIO_DATA_DIR_MASK		(1 << 8)
-#define GPIO_DATA_DIR_IN		(0 << 9)
-#define GPIO_DATA_DIR_OUT		(1 << 9)
-#define GPIO_DATA_VAL_MASK		(1 << 10)
-#define GPIO_DATA_VAL_OUT		(1 << 11)
-#define GPIO_DATA_VAL_IN		(1 << 12)
-#define GPIO_DATA_PULLUP_DISABLE	(1 << 13)
-
-#define VCLK_DIVISOR_VGA0   0x6000
-#define VCLK_DIVISOR_VGA1   0x6004
-#define VCLK_POST_DIV	    0x6010
-
-#define PSB_COMM_2D (PSB_ENGINE_2D << 4)
-#define PSB_COMM_3D (PSB_ENGINE_3D << 4)
-#define PSB_COMM_TA (PSB_ENGINE_TA << 4)
-#define PSB_COMM_HP (PSB_ENGINE_HP << 4)
-#define PSB_COMM_USER_IRQ (1024 >> 2)
-#define PSB_COMM_USER_IRQ_LOST (PSB_COMM_USER_IRQ + 1)
-#define PSB_COMM_FW (2048 >> 2)
-
-#define PSB_UIRQ_VISTEST	       1
-#define PSB_UIRQ_OOM_REPLY	       2
-#define PSB_UIRQ_FIRE_TA_REPLY	       3
-#define PSB_UIRQ_FIRE_RASTER_REPLY     4
-
-#define PSB_2D_SIZE (256*1024*1024)
-#define PSB_MAX_RELOC_PAGES 1024
-
-#define PSB_LOW_REG_OFFS 0x0204
-#define PSB_HIGH_REG_OFFS 0x0600
-
-#define PSB_NUM_VBLANKS 2
-
-
-#define PSB_2D_SIZE (256*1024*1024)
-#define PSB_MAX_RELOC_PAGES 1024
-
-#define PSB_LOW_REG_OFFS 0x0204
-#define PSB_HIGH_REG_OFFS 0x0600
-
-#define PSB_NUM_VBLANKS 2
-#define PSB_WATCHDOG_DELAY (DRM_HZ * 2)
-#define PSB_LID_DELAY (DRM_HZ / 10)
-
-#define PSB_PWR_STATE_ON		1
-#define PSB_PWR_STATE_OFF		2
-
-#define PSB_PMPOLICY_NOPM		0
-#define PSB_PMPOLICY_CLOCKGATING	1
-#define PSB_PMPOLICY_POWERDOWN		2
-
-#define PSB_PMSTATE_POWERUP		0
-#define PSB_PMSTATE_CLOCKGATED		1
-#define PSB_PMSTATE_POWERDOWN		2
-#define PSB_PCIx_MSI_ADDR_LOC		0x94
-#define PSB_PCIx_MSI_DATA_LOC		0x98
-
-#define MDFLD_PLANE_MAX_WIDTH		2048
-#define MDFLD_PLANE_MAX_HEIGHT		2048
-
-struct opregion_header;
-struct opregion_acpi;
-struct opregion_swsci;
-struct opregion_asle;
-
-struct psb_intel_opregion {
-	struct opregion_header *header;
-	struct opregion_acpi *acpi;
-	struct opregion_swsci *swsci;
-	struct opregion_asle *asle;
-	void *vbt;
-	u32 __iomem *lid_state;
-};
-
-/**
- *struct psb_context
- *
- *@buffers:	 array of pre-allocated validate buffers.
- *@used_buffers: number of buffers in @buffers array currently in use.
- *@validate_buffer: buffers validated from user-space.
- *@kern_validate_buffers : buffers validated from kernel-space.
- *@fence_flags : Fence flags to be used for fence creation.
- *
- *This structure is used during execbuf validation.
- */
-
-struct psb_context {
-	struct psb_validate_buffer *buffers;
-	uint32_t used_buffers;
-	struct list_head validate_list;
-	struct list_head kern_validate_list;
-	uint32_t fence_types;
-	uint32_t val_seq;
-};
-
-struct psb_validate_buffer;
-
-struct psb_msvdx_cmd_queue {
-	struct list_head head;
-	void *cmd;
-	unsigned long cmd_size;
-	uint32_t sequence;
-};
-
-
-/* Currently defined profiles */
-enum VAProfile {
-	VAProfileMPEG2Simple		= 0,
-	VAProfileMPEG2Main		= 1,
-	VAProfileMPEG4Simple		= 2,
-	VAProfileMPEG4AdvancedSimple	= 3,
-	VAProfileMPEG4Main		= 4,
-	VAProfileH264Baseline		= 5,
-	VAProfileH264Main		= 6,
-	VAProfileH264High		= 7,
-	VAProfileVC1Simple		= 8,
-	VAProfileVC1Main		= 9,
-	VAProfileVC1Advanced		= 10,
-	VAProfileH263Baseline		= 11,
-	VAProfileJPEGBaseline           = 12,
-	VAProfileH264ConstrainedBaseline = 13
-};
-
-/* Currently defined entrypoints */
-enum VAEntrypoint {
-	VAEntrypointVLD		= 1,
-	VAEntrypointIZZ		= 2,
-	VAEntrypointIDCT	= 3,
-	VAEntrypointMoComp	= 4,
-	VAEntrypointDeblocking	= 5,
-	VAEntrypointEncSlice	= 6,	/* slice level encode */
-	VAEntrypointEncPicture 	= 7	/* pictuer encode, JPEG, etc */
-};
-
-
-struct psb_video_ctx {
-	struct list_head head;
-	struct file *filp; /* DRM device file pointer */
-	int ctx_type; /* profile<<8|entrypoint */
-	/* todo: more context specific data for multi-context support */
-};
-
-typedef int (*pfn_vsync_handler)(struct drm_device* dev, int pipe);
-
-
-#define MODE_SETTING_IN_CRTC 	0x1
-#define MODE_SETTING_IN_ENCODER 0x2
-#define MODE_SETTING_ON_GOING 	0x3
-#define MODE_SETTING_IN_DSR 	0x4
-#define MODE_SETTING_ENCODER_DONE 0x8
-
-struct drm_psb_private {
-	/*
-	 *TTM Glue.
-	 */
-
-	struct drm_global_reference mem_global_ref;
-	struct ttm_bo_global_ref bo_global_ref;
-	int has_global;
-
-	struct drm_device *dev;
-	struct ttm_object_device *tdev;
-	struct ttm_fence_device fdev;
-	struct ttm_bo_device bdev;
-	struct ttm_lock ttm_lock;
-	struct vm_operations_struct *ttm_vm_ops;
-	int has_fence_device;
-	int has_bo_device;
-
-	unsigned long chipset;
-
-	struct drm_psb_dev_info_arg dev_info;
-
-	struct psb_gtt *pg;
-
-	/*GTT Memory manager*/
-	struct psb_gtt_mm *gtt_mm;
-
-	struct page *scratch_page;
-	uint32_t sequence[PSB_NUM_ENGINES];
-	uint32_t last_sequence[PSB_NUM_ENGINES];
-	uint32_t last_submitted_seq[PSB_NUM_ENGINES];
-
-	struct psb_mmu_driver *mmu;
-	struct psb_mmu_pd *pf_pd;
-
-	uint8_t *sgx_reg;
-	uint8_t *vdc_reg;
-	uint32_t gatt_free_offset;
-
-	/* IMG video context */
-	struct list_head video_ctx;
-	/* Current video context */
-	struct psb_video_ctx *msvdx_ctx;
-	/* previous vieo context */
-	struct psb_video_ctx *last_msvdx_ctx;
-
-	/*
-	 *MSVDX
-	 */
-	uint8_t *msvdx_reg;
-	atomic_t msvdx_mmu_invaldc;
-	void *msvdx_private;
-
-	uint32_t video_device_fuse;
-
-	/*
-	 *Fencing / irq.
-	 */
-
-	uint32_t vdc_irq_mask;
-	uint32_t pipestat[PSB_NUM_PIPE];
-	bool vblanksEnabledForFlips;
-
-	spinlock_t irqmask_lock;
-	spinlock_t sequence_lock;
-
-	/*
-	 *Modesetting
-	 */
-	struct psb_intel_mode_device mode_dev;
-
-	struct drm_crtc *plane_to_crtc_mapping[PSB_NUM_PIPE];
-	struct drm_crtc *pipe_to_crtc_mapping[PSB_NUM_PIPE];
-	uint32_t num_pipe;
-
-	/*
-	 * CI share buffer
-	 */
-	unsigned int ci_region_start;
-	unsigned int ci_region_size;
-
-	/*
-	 * RAR share buffer;
-	 */
-	unsigned int rar_region_start;
-	unsigned int rar_region_size;
-
-	/*
-	 *Memory managers
-	 */
-
-	int have_camera;
-	int have_rar;
-	int have_tt;
-	int have_mem_mmu;
-	struct mutex temp_mem;
-
-	/*
-	 *Relocation buffer mapping.
-	 */
-
-	spinlock_t reloc_lock;
-	unsigned int rel_mapped_pages;
-	wait_queue_head_t rel_mapped_queue;
-
-	/*
-	 *SAREA
-	 */
-	struct drm_psb_sarea *sarea_priv;
-
-	/*
-	*OSPM info
-	*/
-	uint32_t ospm_base;
-
-	/*
-	 * Sizes info
-	 */
-
-	struct drm_psb_sizes_arg sizes;
-
-	uint32_t fuse_reg_value;
-
-	/* info that is stored from the gct */
-	struct gct_ioctl_arg gct_data;
-	enum panel_type panel_id;
-
-	/* pci revision id for B0:D2:F0 */
-	uint8_t platform_rev_id;
-
-	/*
-	 *LVDS info
-	 */
-	int backlight_duty_cycle;	/* restore backlight to this value */
-	bool panel_wants_dither;
-	struct drm_display_mode *panel_fixed_mode;
-	struct drm_display_mode *lfp_lvds_vbt_mode;
-
-	struct bdb_lvds_backlight *lvds_bl; /*LVDS backlight info from VBT*/
-	struct psb_intel_i2c_chan *lvds_i2c_bus;
-
-	/* Feature bits from the VBIOS*/
-	unsigned int int_tv_support:1;
-	unsigned int lvds_dither:1;
-	unsigned int lvds_vbt:1;
-	unsigned int int_crt_support:1;
-	unsigned int lvds_use_ssc:1;
-	int lvds_ssc_freq;
-	bool is_lvds_on;
-
-/* MRST private date start */
-/*FIXME JLIU7 need to revisit */
-	unsigned int core_freq;
-
-	/* pipe config register value */
-	uint32_t pipeconf;
-	uint32_t pipeconf1;
-	uint32_t pipeconf2;
-
-	/* plane control register value */
-	uint32_t dspcntr;
-	uint32_t dspcntr1;
-	uint32_t dspcntr2;
-
-	/*runtime PM state*/
-	int rpm_enabled;
-
-	/*
-	 *Register state
-	 */
-	uint32_t saveDSPACNTR;
-	uint32_t saveDSPBCNTR;
-	uint32_t savePIPEACONF;
-	uint32_t savePIPEBCONF;
-	uint32_t savePIPEASRC;
-	uint32_t savePIPEBSRC;
-	uint32_t saveFPA0;
-	uint32_t saveFPA1;
-	uint32_t saveDPLL_A;
-	uint32_t saveDPLL_A_MD;
-	uint32_t saveHTOTAL_A;
-	uint32_t saveHBLANK_A;
-	uint32_t saveHSYNC_A;
-	uint32_t saveVTOTAL_A;
-	uint32_t saveVBLANK_A;
-	uint32_t saveVSYNC_A;
-	uint32_t saveDSPASTRIDE;
-	uint32_t saveDSPASIZE;
-	uint32_t saveDSPAPOS;
-	uint32_t saveDSPABASE;
-	uint32_t saveDSPASURF;
-	uint32_t saveFPB0;
-	uint32_t saveFPB1;
-	uint32_t saveDPLL_B;
-	uint32_t saveDPLL_B_MD;
-	uint32_t saveHTOTAL_B;
-	uint32_t saveHBLANK_B;
-	uint32_t saveHSYNC_B;
-	uint32_t saveVTOTAL_B;
-	uint32_t saveVBLANK_B;
-	uint32_t saveVSYNC_B;
-	uint32_t saveDSPBSTRIDE;
-	uint32_t saveDSPBSIZE;
-	uint32_t saveDSPBPOS;
-	uint32_t saveDSPBBASE;
-	uint32_t saveDSPBSURF;
-	uint32_t saveVCLK_DIVISOR_VGA0;
-	uint32_t saveVCLK_DIVISOR_VGA1;
-	uint32_t saveVCLK_POST_DIV;
-	uint32_t saveVGACNTRL;
-	uint32_t saveADPA;
-	uint32_t saveLVDS;
-	uint32_t saveDVOA;
-	uint32_t saveDVOB;
-	uint32_t saveDVOC;
-	uint32_t savePP_ON;
-	uint32_t savePP_OFF;
-	uint32_t savePP_CONTROL;
-	uint32_t savePP_CYCLE;
-	uint32_t savePFIT_CONTROL;
-	uint32_t savePaletteA[256];
-	uint32_t savePaletteB[256];
-	uint32_t saveBLC_PWM_CTL2;
-	uint32_t saveBLC_PWM_CTL;
-	uint32_t saveCLOCKGATING;
-	uint32_t saveDSPARB;
-	uint32_t saveDSPATILEOFF;
-	uint32_t saveDSPBTILEOFF;
-	uint32_t saveDSPAADDR;
-	uint32_t saveDSPBADDR;
-	uint32_t savePFIT_AUTO_RATIOS;
-	uint32_t savePFIT_PGM_RATIOS;
-	uint32_t savePP_ON_DELAYS;
-	uint32_t savePP_OFF_DELAYS;
-	uint32_t savePP_DIVISOR;
-	uint32_t saveBSM;
-	uint32_t saveVBT;
-	uint32_t saveBCLRPAT_A;
-	uint32_t saveBCLRPAT_B;
-	uint32_t saveDSPALINOFF;
-	uint32_t saveDSPBLINOFF;
-	uint32_t savePERF_MODE;
-	uint32_t saveDSPFW1;
-	uint32_t saveDSPFW2;
-	uint32_t saveDSPFW3;
-	uint32_t saveDSPFW4;
-	uint32_t saveDSPFW5;
-	uint32_t saveDSPFW6;
-	uint32_t saveCHICKENBIT;
-	uint32_t saveDSPACURSOR_CTRL;
-	uint32_t saveDSPBCURSOR_CTRL;
-	uint32_t saveDSPACURSOR_BASE;
-	uint32_t saveDSPBCURSOR_BASE;
-	uint32_t saveDSPACURSOR_POS;
-	uint32_t saveDSPBCURSOR_POS;
-	uint32_t save_palette_a[256];
-	uint32_t save_palette_b[256];
-	uint32_t saveOV_OVADD;
-	uint32_t saveOV_OGAMC0;
-	uint32_t saveOV_OGAMC1;
-	uint32_t saveOV_OGAMC2;
-	uint32_t saveOV_OGAMC3;
-	uint32_t saveOV_OGAMC4;
-	uint32_t saveOV_OGAMC5;
-	uint32_t saveOVC_OVADD;
-	uint32_t saveOVC_OGAMC0;
-	uint32_t saveOVC_OGAMC1;
-	uint32_t saveOVC_OGAMC2;
-	uint32_t saveOVC_OGAMC3;
-	uint32_t saveOVC_OGAMC4;
-	uint32_t saveOVC_OGAMC5;
-
-	/*
-	 * extra MDFLD Register state
-	 */
-	uint32_t saveHDMIPHYMISCCTL;
-	uint32_t saveHDMIB_CONTROL;
-	uint32_t saveDSPCCNTR;
-	uint32_t savePIPECCONF;
-	uint32_t savePIPECSRC;
-	uint32_t saveHTOTAL_C;
-	uint32_t saveHBLANK_C;
-	uint32_t saveHSYNC_C;
-	uint32_t saveVTOTAL_C;
-	uint32_t saveVBLANK_C;
-	uint32_t saveVSYNC_C;
-	uint32_t saveDSPCSTRIDE;
-	uint32_t saveDSPCSIZE;
-	uint32_t saveDSPCPOS;
-	uint32_t saveDSPCSURF;
-	uint32_t saveDSPCLINOFF;
-	uint32_t saveDSPCTILEOFF;
-	uint32_t saveDSPCCURSOR_CTRL;
-	uint32_t saveDSPCCURSOR_BASE;
-	uint32_t saveDSPCCURSOR_POS;
-	uint32_t save_palette_c[256];
-	uint32_t saveOV_OVADD_C;
-	uint32_t saveOV_OGAMC0_C;
-	uint32_t saveOV_OGAMC1_C;
-	uint32_t saveOV_OGAMC2_C;
-	uint32_t saveOV_OGAMC3_C;
-	uint32_t saveOV_OGAMC4_C;
-	uint32_t saveOV_OGAMC5_C;
-
-	/* DSI reg save */
-	uint32_t saveDEVICE_READY_REG;
-	uint32_t saveINTR_EN_REG;
-	uint32_t saveDSI_FUNC_PRG_REG;
-	uint32_t saveHS_TX_TIMEOUT_REG;
-	uint32_t saveLP_RX_TIMEOUT_REG;
-	uint32_t saveTURN_AROUND_TIMEOUT_REG;
-	uint32_t saveDEVICE_RESET_REG;
-	uint32_t saveDPI_RESOLUTION_REG;
-	uint32_t saveHORIZ_SYNC_PAD_COUNT_REG;
-	uint32_t saveHORIZ_BACK_PORCH_COUNT_REG;
-	uint32_t saveHORIZ_FRONT_PORCH_COUNT_REG;
-	uint32_t saveHORIZ_ACTIVE_AREA_COUNT_REG;
-	uint32_t saveVERT_SYNC_PAD_COUNT_REG;
-	uint32_t saveVERT_BACK_PORCH_COUNT_REG;
-	uint32_t saveVERT_FRONT_PORCH_COUNT_REG;
-	uint32_t saveHIGH_LOW_SWITCH_COUNT_REG;
-	uint32_t saveINIT_COUNT_REG;
-	uint32_t saveMAX_RET_PAK_REG;
-	uint32_t saveVIDEO_FMT_REG;
-	uint32_t saveEOT_DISABLE_REG;
-	uint32_t saveLP_BYTECLK_REG;
-	uint32_t saveHS_LS_DBI_ENABLE_REG;
-	uint32_t saveTXCLKESC_REG;
-	uint32_t saveDPHY_PARAM_REG;
-	uint32_t saveMIPI_CONTROL_REG;
-	uint32_t saveMIPI;
-	uint32_t saveMIPI_C;
-	void (*init_drvIC)(struct drm_device *dev);
-	void (*dsi_prePowerState)(struct drm_device *dev);
-	void (*dsi_postPowerState)(struct drm_device *dev);
-
-	/* DPST Register Save */
-	uint32_t saveHISTOGRAM_INT_CONTROL_REG;
-	uint32_t saveHISTOGRAM_LOGIC_CONTROL_REG;
-	uint32_t savePWM_CONTROL_LOGIC;
-
-	uint32_t saveDSPCLK_GATE_D;
-	uint32_t saveRAMCLK_GATE_D;
-	uint32_t saveDSPFW[6];
-	u8 saveLBB;
-	uint32_t saveIER;
-	uint32_t saveIMR;
-
-	/* MSI reg save */
-
-	uint32_t msi_addr;
-	uint32_t msi_data;
-
-	/*
-	 *Scheduling.
-	 */
-
-	struct mutex reset_mutex;
-	struct psb_scheduler scheduler;
-	struct mutex cmdbuf_mutex;
-	atomic_t val_seq;
-
-	/*
-	 *TODO: change this to be per drm-context.
-	 */
-
-	struct psb_context context;
-
-	/*
-	 * LID-Switch
-	 */
-	struct psb_intel_opregion opregion;
-
-	/*
-	 *Watchdog
-	 */
-
-	spinlock_t watchdog_lock;
-	struct timer_list watchdog_timer;
-	struct work_struct watchdog_wq;
-	struct work_struct msvdx_watchdog_wq;
-	int timer_available;
-
-	uint32_t apm_reg;
-	uint16_t apm_base;
-#ifdef OSPM_STAT
-	unsigned char graphics_state;
-	unsigned long gfx_on_time;
-	unsigned long gfx_off_time;
-	unsigned long gfx_last_mode_change;
-	unsigned long gfx_on_cnt;
-	unsigned long gfx_off_cnt;
-#endif
-
-	/*
-	 * Used for modifying backlight from
-	 * xrandr -- consider removing and using HAL instead
-	 */
-	uint32_t blc_adj1;
-	uint32_t blc_adj2;
-
-	/*
-	 * DPST and Hotplug state
-	 */
-
-	struct dpst_state *psb_dpst_state;
-	struct hotplug_state *psb_hotplug_state;
-	pfn_vsync_handler psb_vsync_handler;
-
-	struct snd_intel_had_interface *had_interface;
-	void *had_pvt_data;
-
-	bool dplla_96mhz;
-
-	/*psb fb dev*/
-	void * fbdev;
-	uint32_t cur_pipe;
-	
-	/* Frame buffer relocation */
-	void * fb_reloc;
-	struct work_struct hotplug_work;
-
-	void * ovl_buf;
-	uint32_t ovl_offset;
-};
-
-struct psb_fpriv {
-        int bcd_index;
-	struct ttm_object_file *tfile;
-};
-
-struct psb_mmu_driver;
-
-extern int drm_crtc_probe_output_modes(struct drm_device *dev, int, int);
-extern int drm_pick_crtcs(struct drm_device *dev);
-
-
-static inline struct psb_fpriv *psb_fpriv(struct drm_file *file_priv)
-{
-	PVRSRV_FILE_PRIVATE_DATA *pvr_file_priv
-			= (PVRSRV_FILE_PRIVATE_DATA *)file_priv->driver_priv;
-	return (struct psb_fpriv *) pvr_file_priv->pPriv;
-}
-
-static inline struct drm_psb_private *psb_priv(struct drm_device *dev)
-{
-	return (struct drm_psb_private *) dev->dev_private;
-}
-
-/*
- *TTM glue. psb_ttm_glue.c
- */
-
-extern int psb_open(struct inode *inode, struct file *filp);
-extern int psb_release(struct inode *inode, struct file *filp);
-extern int psb_mmap(struct file *filp, struct vm_area_struct *vma);
-
-extern int psb_fence_signaled_ioctl(struct drm_device *dev, void *data,
-				    struct drm_file *file_priv);
-extern int psb_verify_access(struct ttm_buffer_object *bo,
-			     struct file *filp);
-extern ssize_t psb_ttm_read(struct file *filp, char __user *buf,
-			    size_t count, loff_t *f_pos);
-extern ssize_t psb_ttm_write(struct file *filp, const char __user *buf,
-			    size_t count, loff_t *f_pos);
-extern int psb_fence_finish_ioctl(struct drm_device *dev, void *data,
-				  struct drm_file *file_priv);
-extern int psb_fence_unref_ioctl(struct drm_device *dev, void *data,
-				 struct drm_file *file_priv);
-extern int psb_pl_waitidle_ioctl(struct drm_device *dev, void *data,
-				 struct drm_file *file_priv);
-extern int psb_pl_setstatus_ioctl(struct drm_device *dev, void *data,
-				  struct drm_file *file_priv);
-extern int psb_pl_synccpu_ioctl(struct drm_device *dev, void *data,
-				struct drm_file *file_priv);
-extern int psb_pl_unref_ioctl(struct drm_device *dev, void *data,
-			      struct drm_file *file_priv);
-extern int psb_pl_reference_ioctl(struct drm_device *dev, void *data,
-				  struct drm_file *file_priv);
-extern int psb_pl_create_ioctl(struct drm_device *dev, void *data,
-			       struct drm_file *file_priv);
-extern int psb_pl_ub_create_ioctl(struct drm_device *dev, void *data,
-			       struct drm_file *file_priv);
-extern int psb_extension_ioctl(struct drm_device *dev, void *data,
-			       struct drm_file *file_priv);
-extern int psb_ttm_global_init(struct drm_psb_private *dev_priv);
-extern void psb_ttm_global_release(struct drm_psb_private *dev_priv);
-extern int psb_getpageaddrs_ioctl(struct drm_device *dev, void *data,
-				struct drm_file *file_priv);
-/*
- *MMU stuff.
- */
-
-extern struct psb_mmu_driver *psb_mmu_driver_init(uint8_t __iomem * registers,
-					int trap_pagefaults,
-					int invalid_type,
-					struct drm_psb_private *dev_priv);
-extern void psb_mmu_driver_takedown(struct psb_mmu_driver *driver);
-extern struct psb_mmu_pd *psb_mmu_get_default_pd(struct psb_mmu_driver
-						 *driver);
-extern void psb_mmu_mirror_gtt(struct psb_mmu_pd *pd, uint32_t mmu_offset,
-			       uint32_t gtt_start, uint32_t gtt_pages);
-extern struct psb_mmu_pd *psb_mmu_alloc_pd(struct psb_mmu_driver *driver,
-					   int trap_pagefaults,
-					   int invalid_type);
-extern void psb_mmu_free_pagedir(struct psb_mmu_pd *pd);
-extern void psb_mmu_flush(struct psb_mmu_driver *driver, int rc_prot);
-extern void psb_mmu_remove_pfn_sequence(struct psb_mmu_pd *pd,
-					unsigned long address,
-					uint32_t num_pages);
-extern int psb_mmu_insert_pfn_sequence(struct psb_mmu_pd *pd,
-				       uint32_t start_pfn,
-				       unsigned long address,
-				       uint32_t num_pages, int type);
-extern int psb_mmu_virtual_to_pfn(struct psb_mmu_pd *pd, uint32_t virtual,
-				  unsigned long *pfn);
-
-/*
- *Enable / disable MMU for different requestors.
- */
-
-
-extern void psb_mmu_set_pd_context(struct psb_mmu_pd *pd, int hw_context);
-extern int psb_mmu_insert_pages(struct psb_mmu_pd *pd, struct page **pages,
-				unsigned long address, uint32_t num_pages,
-				uint32_t desired_tile_stride,
-				uint32_t hw_tile_stride, int type);
-extern void psb_mmu_remove_pages(struct psb_mmu_pd *pd,
-				 unsigned long address, uint32_t num_pages,
-				 uint32_t desired_tile_stride,
-				 uint32_t hw_tile_stride);
-/*
- *psb_sgx.c
- */
-
-
-
-extern int psb_cmdbuf_ioctl(struct drm_device *dev, void *data,
-			    struct drm_file *file_priv);
-extern int psb_reg_submit(struct drm_psb_private *dev_priv,
-			  uint32_t *regs, unsigned int cmds);
-
-
-extern void psb_fence_or_sync(struct drm_file *file_priv,
-			      uint32_t engine,
-			      uint32_t fence_types,
-			      uint32_t fence_flags,
-			      struct list_head *list,
-			      struct psb_ttm_fence_rep *fence_arg,
-			      struct ttm_fence_object **fence_p);
-extern int psb_validate_kernel_buffer(struct psb_context *context,
-				      struct ttm_buffer_object *bo,
-				      uint32_t fence_class,
-				      uint64_t set_flags,
-				      uint64_t clr_flags);
-
-/*
- *psb_irq.c
- */
-
-extern irqreturn_t psb_irq_handler(DRM_IRQ_ARGS);
-extern int psb_irq_enable_dpst(struct drm_device *dev);
-extern int psb_irq_disable_dpst(struct drm_device *dev);
-extern void psb_irq_preinstall(struct drm_device *dev);
-extern int psb_irq_postinstall(struct drm_device *dev);
-extern void psb_irq_uninstall(struct drm_device *dev);
-extern void psb_irq_preinstall_islands(struct drm_device *dev, int hw_islands);
-extern int psb_irq_postinstall_islands(struct drm_device *dev, int hw_islands);
-extern void psb_irq_turn_on_dpst(struct drm_device *dev);
-extern void psb_irq_turn_off_dpst(struct drm_device *dev);
-
-extern void psb_irq_uninstall_islands(struct drm_device *dev, int hw_islands);
-extern int psb_vblank_wait2(struct drm_device *dev,unsigned int *sequence);
-extern int psb_vblank_wait(struct drm_device *dev, unsigned int *sequence);
-extern int psb_enable_vblank(struct drm_device *dev, int crtc);
-extern void psb_disable_vblank(struct drm_device *dev, int crtc);
-void
-psb_enable_pipestat(struct drm_psb_private *dev_priv, int pipe, u32 mask);
-
-void
-psb_disable_pipestat(struct drm_psb_private *dev_priv, int pipe, u32 mask);
-
-extern u32 psb_get_vblank_counter(struct drm_device *dev, int crtc);
-
-extern void psb_intel_enable_asle(struct drm_device *dev);
-
-/*
- *psb_fence.c
- */
-
-extern void psb_fence_handler(struct drm_device *dev, uint32_t class);
-
-extern int psb_fence_emit_sequence(struct ttm_fence_device *fdev,
-				   uint32_t fence_class,
-				   uint32_t flags, uint32_t *sequence,
-				   unsigned long *timeout_jiffies);
-extern void psb_fence_error(struct drm_device *dev,
-			    uint32_t class,
-			    uint32_t sequence, uint32_t type, int error);
-extern int psb_ttm_fence_device_init(struct ttm_fence_device *fdev);
-
-/* MSVDX/Topaz stuff */
-extern int psb_remove_videoctx(struct drm_psb_private *dev_priv, struct file *filp);
-
-extern int lnc_video_getparam(struct drm_device *dev, void *data,
-		       struct drm_file *file_priv);
-
-extern int psb_try_power_down_msvdx(struct drm_device *dev);
-
-/*
- * psb_opregion.c
- */
-extern int psb_intel_opregion_setup(struct drm_device *dev);
-extern void psb_intel_opregion_init(struct drm_device *dev);
-extern void psb_intel_opregion_fini(struct drm_device *dev);
-extern void psb_intel_opregion_asle_intr(struct drm_device *dev);
-extern void psb_intel_opregion_enable_asle(struct drm_device *dev);
-
-/*
- *psb_fb.c
- */
-extern int psbfb_probed(struct drm_device *dev);
-extern int psbfb_remove(struct drm_device *dev,
-			struct drm_framebuffer *fb);
-extern int psbfb_kms_off_ioctl(struct drm_device *dev, void *data,
-			       struct drm_file *file_priv);
-extern int psbfb_kms_on_ioctl(struct drm_device *dev, void *data,
-			      struct drm_file *file_priv);
-extern void *psbfb_vdc_reg(struct drm_device* dev);
-
-/*
- *psb_reset.c
- */
-
-extern void psb_schedule_watchdog(struct drm_psb_private *dev_priv);
-extern void psb_watchdog_init(struct drm_psb_private *dev_priv);
-extern void psb_watchdog_takedown(struct drm_psb_private *dev_priv);
-extern void psb_print_pagefault(struct drm_psb_private *dev_priv);
-
-/* modesetting */
-extern void psb_modeset_init(struct drm_device *dev);
-extern void psb_modeset_cleanup(struct drm_device *dev);
-extern void psb_init_clock_gating(struct drm_device *dev);
-
-/*fbdev*/
-extern int psb_fbdev_init(struct drm_device * dev);
-
-/* psb_bl.c */
-int psb_backlight_init(struct drm_device *dev);
-void psb_backlight_exit(void);
-int psb_set_brightness(struct backlight_device *bd);
-int psb_get_brightness(struct backlight_device *bd);
-struct backlight_device * psb_get_backlight_device(void);
-
-extern void psb_intel_lvds_set_backlight(struct drm_device *dev, int level);
-/* psb_intel_lvds.c */
-extern u32 psb_intel_lvds_get_max_backlight(struct drm_device *dev);
-extern u32 psb_intel_lvds_get_backlight(struct drm_device *dev);
-
-/*
- *Debug print bits setting
- */
-#define PSB_D_GENERAL (1 << 0)
-#define PSB_D_INIT    (1 << 1)
-#define PSB_D_IRQ     (1 << 2)
-#define PSB_D_ENTRY   (1 << 3)
-/* debug the get H/V BP/FP count */
-#define PSB_D_HV      (1 << 4)
-#define PSB_D_DBI_BF  (1 << 5)
-#define PSB_D_PM      (1 << 6)
-#define PSB_D_RENDER  (1 << 7)
-#define PSB_D_REG     (1 << 8)
-#define PSB_D_MSVDX   (1 << 9)
-#define PSB_D_TOPAZ   (1 << 10)
-
-#ifndef DRM_DEBUG_CODE
-/* To enable debug printout, set drm_psb_debug in psb_drv.c
- * to any combination of above print flags.
- */
-#define DRM_DEBUG_CODE 2
-#endif
-
-extern int drm_psb_debug;
-extern int drm_psb_no_fb;
-extern int drm_psb_disable_vsync;
-extern int drm_idle_check_interval;
-
-#define PSB_DEBUG_GENERAL(_fmt, _arg...) \
-	PSB_DEBUG(PSB_D_GENERAL, _fmt, ##_arg)
-#define PSB_DEBUG_INIT(_fmt, _arg...) \
-	PSB_DEBUG(PSB_D_INIT, _fmt, ##_arg)
-#define PSB_DEBUG_IRQ(_fmt, _arg...) \
-	PSB_DEBUG(PSB_D_IRQ, _fmt, ##_arg)
-#define PSB_DEBUG_ENTRY(_fmt, _arg...) \
-	PSB_DEBUG(PSB_D_ENTRY, _fmt, ##_arg)
-#define PSB_DEBUG_HV(_fmt, _arg...) \
-	PSB_DEBUG(PSB_D_HV, _fmt, ##_arg)
-#define PSB_DEBUG_DBI_BF(_fmt, _arg...) \
-	PSB_DEBUG(PSB_D_DBI_BF, _fmt, ##_arg)
-#define PSB_DEBUG_PM(_fmt, _arg...) \
-	PSB_DEBUG(PSB_D_PM, _fmt, ##_arg)
-#define PSB_DEBUG_RENDER(_fmt, _arg...) \
-	PSB_DEBUG(PSB_D_RENDER, _fmt, ##_arg)
-#define PSB_DEBUG_REG(_fmt, _arg...) \
-	PSB_DEBUG(PSB_D_REG, _fmt, ##_arg)
-#define PSB_DEBUG_MSVDX(_fmt, _arg...) \
-	PSB_DEBUG(PSB_D_MSVDX, _fmt, ##_arg)
-#define PSB_DEBUG_TOPAZ(_fmt, _arg...) \
-	PSB_DEBUG(PSB_D_TOPAZ, _fmt, ##_arg)
-
-#if DRM_DEBUG_CODE
-#define PSB_DEBUG(_flag, _fmt, _arg...)					\
-	do {								\
-		if (unlikely((_flag) & drm_psb_debug))			\
-			printk(KERN_DEBUG				\
-			       "[psb:0x%02x:%s] " _fmt , _flag,		\
-			       __func__ , ##_arg);			\
-	} while (0)
-#else
-#define PSB_DEBUG(_fmt, _arg...)     do { } while (0)
-#endif
-
-/*
- *Utilities
- */
-#define DRM_DRIVER_PRIVATE_T struct drm_psb_private
-
-static inline u32 CDV_MSG_READ32(uint port, uint offset)
-{
-	int mcr = (0x10<<24) | (port << 16) | (offset << 8);
-	uint32_t ret_val = 0;
-	struct pci_dev *pci_root = pci_get_bus_and_slot (0, 0);
-	pci_write_config_dword (pci_root, 0xD0, mcr);
-	pci_read_config_dword (pci_root, 0xD4, &ret_val);
-	pci_dev_put(pci_root);
-	return ret_val;
-}
-static inline void CDV_MSG_WRITE32(uint port, uint offset, u32 value)
-{
-	int mcr = (0x11<<24) | (port << 16) | (offset << 8) | 0xF0;
-	struct pci_dev *pci_root = pci_get_bus_and_slot (0, 0);
-	pci_write_config_dword (pci_root, 0xD4, value);
-	pci_write_config_dword (pci_root, 0xD0, mcr);
-	pci_dev_put(pci_root);
-}
-
-static inline uint32_t REGISTER_READ(struct drm_device *dev, uint32_t reg)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	int reg_val = ioread32(dev_priv->vdc_reg + (reg));
-	PSB_DEBUG_REG("reg = 0x%x. reg_val = 0x%x. \n", reg, reg_val);
-	return reg_val;
-}
-
-#define REG_READ(reg)	       REGISTER_READ(dev, (reg))
-static inline void REGISTER_WRITE(struct drm_device *dev, uint32_t reg,
-				      uint32_t val)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	if ((reg < 0x70084 || reg >0x70088) && (reg < 0xa000 || reg >0xa3ff))
-		PSB_DEBUG_REG("reg = 0x%x, val = 0x%x. \n", reg, val);
-
-	iowrite32((val), dev_priv->vdc_reg + (reg));
-}
-
-#define REG_WRITE(reg, val)	REGISTER_WRITE(dev, (reg), (val))
-
-static inline void REGISTER_WRITE16(struct drm_device *dev,
-					uint32_t reg, uint32_t val)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-
-	PSB_DEBUG_REG("reg = 0x%x, val = 0x%x. \n", reg, val);
-
-	iowrite16((val), dev_priv->vdc_reg + (reg));
-}
-
-#define REG_WRITE16(reg, val)	  REGISTER_WRITE16(dev, (reg), (val))
-
-static inline void REGISTER_WRITE8(struct drm_device *dev,
-				       uint32_t reg, uint32_t val)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-
-	PSB_DEBUG_REG("reg = 0x%x, val = 0x%x. \n", reg, val);
-
-	iowrite8((val), dev_priv->vdc_reg + (reg));
-}
-
-#define REG_WRITE8(reg, val)	 REGISTER_WRITE8(dev, (reg), (val))
-
-#define PSB_ALIGN_TO(_val, _align) \
-  (((_val) + ((_align) - 1)) & ~((_align) - 1))
-#define PSB_WVDC32(_val, _offs) \
-  iowrite32(_val, dev_priv->vdc_reg + (_offs))
-#define PSB_RVDC32(_offs) \
-  ioread32(dev_priv->vdc_reg + (_offs))
-
-/* #define TRAP_SGX_PM_FAULT 1 */
-#ifdef TRAP_SGX_PM_FAULT
-#define PSB_RSGX32(_offs)					\
-({								\
-    if (inl(dev_priv->apm_base + PSB_APM_STS) & 0x3) {		\
-	DRM_ERROR("access sgx when it's off!! (READ) %s, %d\n", \
-	       __FILE__, __LINE__);				\
-	mdelay(1000);						\
-    }								\
-    ioread32(dev_priv->sgx_reg + (_offs));			\
-})
-#else
-#define PSB_RSGX32(_offs)					\
-  ioread32(dev_priv->sgx_reg + (_offs))
-#endif
-
-#define MSVDX_REG_DUMP 0
-
-#if MSVDX_REG_DUMP
-
-#define PSB_WMSVDX32(_val, _offs) \
-  DRM_DEBUG("MSVDX: write %08x to reg 0x%08x\n", (unsigned int)(_val), (unsigned int)(_offs));\
-  iowrite32(_val, dev_priv->msvdx_reg + (_offs))
-#define PSB_RMSVDX32(_offs) \
-  ioread32(dev_priv->msvdx_reg + (_offs))
-
-#else
-
-#define PSB_WMSVDX32(_val, _offs) \
-  iowrite32(_val, dev_priv->msvdx_reg + (_offs))
-#define PSB_RMSVDX32(_offs) \
-  ioread32(dev_priv->msvdx_reg + (_offs))
-
-#endif
-
-#define PSB_ALPL(_val, _base)			\
-  (((_val) >> (_base ## _ALIGNSHIFT)) << (_base ## _SHIFT))
-#define PSB_ALPLM(_val, _base)			\
-  ((((_val) >> (_base ## _ALIGNSHIFT)) << (_base ## _SHIFT)) & (_base ## _MASK))
-
-
-#define IS_PENWELL(dev) 0 /* FIXME */
-
-
-#define IS_CDV(dev) (((dev)->pci_device & 0xfff8) == 0x0BE0)
-#define IS_MID(dev) (IS_CDV(dev))
-
-#define IS_MSVDX(dev) (IS_CDV(dev))
-#define IS_TOPAZ(dev) (IS_CDV(dev))
-
-extern int drm_psb_ospm;
-
-#endif
diff --git a/drivers/staging/cdv/drv/psb_fb.c b/drivers/staging/cdv/drv/psb_fb.c
deleted file mode 100644
index 867f43c..0000000
--- a/drivers/staging/cdv/drv/psb_fb.c
+++ /dev/null
@@ -1,812 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/string.h>
-#include <linux/mm.h>
-#include <linux/tty.h>
-#include <linux/slab.h>
-#include <linux/delay.h>
-#include <linux/fb.h>
-#include <linux/init.h>
-#include <linux/console.h>
-
-#include <drm/drmP.h>
-#include <drm/drm.h>
-#include <drm/drm_crtc.h>
-
-#include "psb_drv.h"
-#include "psb_intel_reg.h"
-#include "psb_intel_drv.h"
-#include "psb_ttm_userobj_api.h"
-#include "psb_fb.h"
-#include "psb_sgx.h"
-#include "psb_pvr_glue.h"
-
-
-extern int MRSTLFBHandleChangeFB(struct drm_device* dev, struct psb_framebuffer *psbfb);
-
-struct MRSTLFB_BUFFER_TAG;
-uint32_t MRSTLFBGetSize(struct MRSTLFB_BUFFER_TAG *pBuffer);
-void* MRSTLFBGetCPUVAddr(struct MRSTLFB_BUFFER_TAG *pBuffer);
-uint32_t MRSTLFBGetDevVAddr(struct MRSTLFB_BUFFER_TAG *pBuffer);
-extern int MRSTLFBAllocBuffer(struct drm_device *dev,
-			IMG_UINT32 ui32Size, struct MRSTLFB_BUFFER_TAG **ppBuffer);
-extern int MRSTLFBFreeBuffer(struct drm_device *dev,
-			struct MRSTLFB_BUFFER_TAG **ppBuffer);
-
-static void psb_user_framebuffer_destroy(struct drm_framebuffer *fb);
-static int psb_user_framebuffer_create_handle(struct drm_framebuffer *fb,
-					      struct drm_file *file_priv,
-					      unsigned int *handle);
-
-static const struct drm_framebuffer_funcs psb_fb_funcs = {
-	.destroy = psb_user_framebuffer_destroy,
-	.create_handle = psb_user_framebuffer_create_handle,
-};
-
-#define CMAP_TOHW(_val, _width) ((((_val) << (_width)) + 0x7FFF - (_val)) >> 16)
-
-void *psbfb_vdc_reg(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv;
-	dev_priv = (struct drm_psb_private *) dev->dev_private;
-	return dev_priv->vdc_reg;
-}
-/*EXPORT_SYMBOL(psbfb_vdc_reg); */
-
-static int psbfb_setcolreg(unsigned regno, unsigned red, unsigned green,
-			   unsigned blue, unsigned transp,
-			   struct fb_info *info)
-{
-	struct psb_fbdev * fbdev = info->par;
-	struct drm_framebuffer *fb = fbdev->psb_fb_helper.fb;
-	uint32_t v;
-
-	if (!fb)
-		return -ENOMEM;
-
-	if (regno > 255)
-		return 1;
-
-	red = CMAP_TOHW(red, info->var.red.length);
-	blue = CMAP_TOHW(blue, info->var.blue.length);
-	green = CMAP_TOHW(green, info->var.green.length);
-	transp = CMAP_TOHW(transp, info->var.transp.length);
-
-	v = (red << info->var.red.offset) |
-	    (green << info->var.green.offset) |
-	    (blue << info->var.blue.offset) |
-	    (transp << info->var.transp.offset);
-
-	if (regno < 16) {
-		switch (fb->bits_per_pixel) {
-		case 16:
-			((uint32_t *) info->pseudo_palette)[regno] = v;
-			break;
-		case 24:
-		case 32:
-			((uint32_t *) info->pseudo_palette)[regno] = v;
-			break;
-		}
-	}
-
-	return 0;
-}
-
-static int psbfb_kms_off(struct drm_device *dev, int suspend)
-{
-	struct drm_framebuffer *fb = 0;
-	struct psb_framebuffer * psbfb = to_psb_fb(fb);
-	DRM_DEBUG("psbfb_kms_off_ioctl\n");
-
-	mutex_lock(&dev->mode_config.mutex);
-	list_for_each_entry(fb, &dev->mode_config.fb_list, head) {
-		struct fb_info *info = psbfb->fbdev;
-
-		if (suspend) {
-			fb_set_suspend(info, 1);
-			drm_fb_helper_blank(FB_BLANK_POWERDOWN, info);
-		}
-	}
-	mutex_unlock(&dev->mode_config.mutex);
-	return 0;
-}
-
-int psbfb_kms_off_ioctl(struct drm_device *dev, void *data,
-			struct drm_file *file_priv)
-{
-	int ret;
-
-	if (drm_psb_no_fb)
-		return 0;
-	console_lock();
-	ret = psbfb_kms_off(dev, 0);
-	console_unlock();
-
-	return ret;
-}
-
-static int psbfb_kms_on(struct drm_device *dev, int resume)
-{
-	struct drm_framebuffer *fb = 0;
-	struct psb_framebuffer * psbfb = to_psb_fb(fb);
-
-	DRM_DEBUG("psbfb_kms_on_ioctl\n");
-
-	mutex_lock(&dev->mode_config.mutex);
-	list_for_each_entry(fb, &dev->mode_config.fb_list, head) {
-		struct fb_info *info = psbfb->fbdev;
-
-		if (resume) {
-			fb_set_suspend(info, 0);
-			drm_fb_helper_blank(FB_BLANK_UNBLANK, info);
-		}
-	}
-	mutex_unlock(&dev->mode_config.mutex);
-
-	return 0;
-}
-
-int psbfb_kms_on_ioctl(struct drm_device *dev, void *data,
-		       struct drm_file *file_priv)
-{
-	int ret;
-
-	if (drm_psb_no_fb)
-		return 0;
-	console_lock();
-	ret = psbfb_kms_on(dev, 0);
-	console_unlock();
-	drm_helper_disable_unused_functions(dev);
-	return ret;
-}
-
-void psbfb_suspend(struct drm_device *dev)
-{
-	console_lock();
-	psbfb_kms_off(dev, 1);
-	console_unlock();
-}
-
-void psbfb_resume(struct drm_device *dev)
-{
-	console_lock();
-	psbfb_kms_on(dev, 1);
-	console_unlock();
-	drm_helper_disable_unused_functions(dev);
-}
-
-static struct fb_ops psbfb_ops = {
-	.owner = THIS_MODULE,
-	.fb_check_var = drm_fb_helper_check_var,
-	.fb_set_par = drm_fb_helper_set_par,
-	.fb_blank = drm_fb_helper_blank,
-	.fb_setcolreg = psbfb_setcolreg,
-	.fb_fillrect = cfb_fillrect,
-	.fb_copyarea = cfb_copyarea,
-	.fb_imageblit = cfb_imageblit,
-};
-
-static struct drm_framebuffer *psb_framebuffer_create
-			(struct drm_device *dev, struct drm_mode_fb_cmd *r,
-			 void *mm_private)
-{
-	struct psb_framebuffer *fb;
-	int ret;
-
-	fb = kzalloc(sizeof(*fb), GFP_KERNEL);
-	if (!fb)
-		return NULL;
-
-	ret = drm_framebuffer_init(dev, &fb->base, &psb_fb_funcs);
-
-	if (ret)
-		goto err;
-
-	drm_helper_mode_fill_fb_struct(&fb->base, r);
-
-	fb->pvrBO = mm_private;
-
-	return &fb->base;
-
-err:
-	kfree(fb);
-	return NULL;
-}
-
-static struct drm_framebuffer *psb_user_framebuffer_create
-			(struct drm_device *dev, struct drm_file *filp,
-			 struct drm_mode_fb_cmd *r)
-{
-	struct psb_framebuffer *psbfb;
-	struct drm_framebuffer *fb;
-	struct fb_info *info;
-	PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo = IMG_NULL;
-	IMG_HANDLE hKernelMemInfo = (IMG_HANDLE)r->handle;
-	struct drm_psb_private *dev_priv
-		= (struct drm_psb_private *) dev->dev_private;
-	struct psb_fbdev * fbdev = dev_priv->fbdev;
-	struct psb_gtt *pg = dev_priv->pg;
-	struct MRSTLFB_BUFFER_TAG *buffer;
-	int ret;
-	uint32_t offset;
-	uint64_t size;
-
-	ret = psb_get_meminfo_by_handle(hKernelMemInfo, &psKernelMemInfo);
-	if (ret) {
-		DRM_ERROR("Cannot get meminfo for handle 0x%x\n",
-			  (IMG_UINT32)hKernelMemInfo);
-
-		return NULL;
-	}
-
-	DRM_DEBUG("Got Kernel MemInfo for handle %x\n",
-		  (IMG_UINT32)hKernelMemInfo);
-
-	/* JB: TODO not drop, make smarter */
-	size = psKernelMemInfo->uAllocSize;
-	if (size < r->height * r->pitch)
-		return NULL;
-
-	/* JB: TODO not drop, refcount buffer */
-	/* return psb_framebuffer_create(dev, r, bo); */
-
-	fb = psb_framebuffer_create(dev, r, (void *)psKernelMemInfo);
-	if (!fb) {
-		DRM_ERROR("failed to allocate fb.\n");
-		return NULL;
-	}
-
-	psbfb = to_psb_fb(fb);
-	psbfb->size = size;
-	psbfb->hKernelMemInfo = hKernelMemInfo;
-
-	DRM_DEBUG("Mapping to gtt..., KernelMemInfo %p\n", psKernelMemInfo);
-
-	buffer = (struct MRSTLFB_BUFFER_TAG *)dev_priv->fb_reloc;
-	/*if not VRAM, map it into tt aperture*/
-	if (psKernelMemInfo->pvLinAddrKM != pg->vram_addr &&
-	    (!buffer || psKernelMemInfo->pvLinAddrKM != MRSTLFBGetCPUVAddr(buffer))) {
-		ret = psb_gtt_map_meminfo(dev, hKernelMemInfo, &offset);
-		if (ret) {
-			DRM_ERROR("map meminfo for 0x%x failed\n",
-				  (IMG_UINT32)hKernelMemInfo);
-			return NULL;
-		}
-		psbfb->offset = (offset << PAGE_SHIFT);
-	} else {
-		if (buffer)
-			psbfb->offset = MRSTLFBGetDevVAddr(buffer);
-		else
-			psbfb->offset = 0;
-	}
-	info = framebuffer_alloc(0, &dev->pdev->dev);
-	if (!info)
-		return NULL;
-
-	strcpy(info->fix.id, "psbfb");
-
-	info->flags = FBINFO_DEFAULT;
-	info->fbops = &psbfb_ops;
-
-	info->fix.smem_start = dev->mode_config.fb_base;
-	info->fix.smem_len = size;
-
-	info->screen_base = psKernelMemInfo->pvLinAddrKM;
-	info->screen_size = size;
-
-	drm_fb_helper_fill_fix(info, fb->pitch, fb->depth);
-	drm_fb_helper_fill_var(info, &fbdev->psb_fb_helper, fb->width, fb->height);
-
-	info->fix.mmio_start = pci_resource_start(dev->pdev, 0);
-	info->fix.mmio_len = pci_resource_len(dev->pdev, 0);
-
-	info->pixmap.size = 64 * 1024;
-	info->pixmap.buf_align = 8;
-	info->pixmap.access_align = 32;
-	info->pixmap.flags = FB_PIXMAP_SYSTEM;
-	info->pixmap.scan_align = 1;
-
-	info->par = fbdev;
-	psbfb->fbdev = info;
-	fbdev->pfb = psbfb;
-
-	fbdev->psb_fb_helper.fb = fb;
-	fbdev->psb_fb_helper.fbdev = info;
-	MRSTLFBHandleChangeFB(dev, psbfb);
-
-	return fb;
-}
-
-static int psbfb_create(struct psb_fbdev * fbdev, struct drm_fb_helper_surface_size * sizes) 
-{
-	struct drm_device * dev = fbdev->psb_fb_helper.dev;
-	struct drm_psb_private * dev_priv = (struct drm_psb_private *)dev->dev_private;
-	struct psb_gtt *pg = dev_priv->pg;
-	struct fb_info * info;
-	struct drm_framebuffer *fb;
-	struct psb_framebuffer * psbfb;
-	struct drm_mode_fb_cmd mode_cmd;
-	struct device * device = &dev->pdev->dev;
-	struct MRSTLFB_BUFFER_TAG *buffer = NULL;
-	int size, aligned_size;
-	int ret, stride;
-
-	mode_cmd.width = sizes->surface_width;
-	mode_cmd.height = sizes->surface_height;
-
-	DRM_DEBUG("psbfb_create called with w = %d h = %d\n", sizes->surface_width, sizes->surface_height);
-
-	mode_cmd.bpp = 32;
-        //HW requires pitch to be 64 byte aligned
-        /*
-	 * The framebuffer is used by PVR driver. And it expects that the 
-         * stride is aligned to 32 in pixels. So we will first align the width to
-	 * 32. As currently it uses the 32bpp in framebuffer, it can assure that
-	 * it is aligned to 64 bytes.	
-	 */
-        stride = ALIGN(mode_cmd.width, 32);
-        mode_cmd.pitch =  ALIGN(stride * ((mode_cmd.bpp + 1) / 8), 64);
-        mode_cmd.depth = 24;
-
-	size = mode_cmd.pitch * mode_cmd.height;
-	aligned_size = ALIGN(size, PAGE_SIZE);
-
-	mutex_lock(&dev->struct_mutex);
-
-	if (aligned_size > pg->stolen_size) {
-		/* 
-		 * allocate new buffer if the request size is larger than
-		 * the stolen memory size
-		 */
-		ret = MRSTLFBAllocBuffer(dev, aligned_size, &buffer);
-		if (ret) {
-			ret = -ENOMEM;
-			goto out_err0;
-		}
-		dev_priv->fb_reloc = buffer;
-	}
-
-        fb = psb_framebuffer_create(dev, &mode_cmd, NULL);
-        if (!fb) {
-                ret = -ENOMEM;
-                goto out_err1;
-        }
-
-        psbfb = to_psb_fb(fb);
-        psbfb->size = size;
-	if (buffer)
-		psbfb->offset = MRSTLFBGetDevVAddr(buffer);
-
-	info = framebuffer_alloc(sizeof(struct psb_fbdev), device);
-	if(!info) {
-		ret = -ENOMEM;
-		goto out_err2;
-	}
-
-	info->par = fbdev;
-	psbfb->fbdev = info;
-
-	fbdev->psb_fb_helper.fb = fb;
-	fbdev->psb_fb_helper.fbdev = info;
-	fbdev->pfb = psbfb;
-
-	strcpy(info->fix.id, "psbfb");
-
-	info->flags = FBINFO_DEFAULT;
-	info->fbops = &psbfb_ops;
-	info->fix.smem_start = dev->mode_config.fb_base;
-	info->fix.smem_len = size;
-
-	if (buffer)
-		info->screen_base = MRSTLFBGetCPUVAddr(buffer);
-	else
-		info->screen_base = (char *)pg->vram_addr;
-
-	info->screen_size = size;
-
-	memset(info->screen_base, 0, size);
-
-	drm_fb_helper_fill_fix(info, fb->pitch, fb->depth);
-	drm_fb_helper_fill_var(info, &fbdev->psb_fb_helper, sizes->fb_width, sizes->fb_height);
-
-	info->fix.mmio_start = pci_resource_start(dev->pdev, 0);
-	info->fix.mmio_len = pci_resource_len(dev->pdev, 0);
-
-	info->pixmap.size = 64 * 1024;
-	info->pixmap.buf_align = 8;
-	info->pixmap.access_align = 32;
-	info->pixmap.flags = FB_PIXMAP_SYSTEM;
-	info->pixmap.scan_align = 1;
-
-	DRM_DEBUG("fb depth is %d\n", fb->depth);
-	DRM_DEBUG("   pitch is %d\n", fb->pitch);
-	DRM_DEBUG("allocated %dx%d fb\n", psbfb->base.width, psbfb->base.height);	
-
-	mutex_unlock(&dev->struct_mutex);
-
-	return 0;
-out_err2:
-	fb->funcs->destroy(fb);
-out_err1:
-	MRSTLFBFreeBuffer(dev, &buffer);
-out_err0:
-	mutex_unlock(&dev->struct_mutex);
-	return ret;
-}
-
-static void psbfb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green, u16 blue, int regno)
-{
-	DRM_DEBUG("%s\n", __FUNCTION__);
-}
-
-static void psbfb_gamma_get(struct drm_crtc *crtc, u16 *red, u16 *green, u16 *blue, int regno)
-{
-	DRM_DEBUG("%s\n", __FUNCTION__);
-}
-
-static int psbfb_probe(struct drm_fb_helper *helper, struct drm_fb_helper_surface_size *sizes)
-{
-	struct psb_fbdev * psb_fbdev = (struct psb_fbdev *)helper;
-	int new_fb = 0;
-	int ret;
-
-	DRM_DEBUG("%s\n", __FUNCTION__);
-
-	if(!helper->fb) {
-		ret = psbfb_create(psb_fbdev, sizes);
-		if(ret) {
-			return ret;
-		}
-
-		new_fb = 1;
-	}
-
-	return new_fb;
-}
-
-struct drm_fb_helper_funcs psb_fb_helper_funcs = {
-	.gamma_set = psbfb_gamma_set,
-	.gamma_get = psbfb_gamma_get,
-	.fb_probe = psbfb_probe,
-};
-
-int psb_fbdev_destroy(struct drm_device * dev, struct psb_fbdev * fbdev)
-{
-	struct fb_info * info;
-	struct psb_framebuffer * psbfb = fbdev->pfb;
-
-	if(fbdev->psb_fb_helper.fbdev) {
-		info = fbdev->psb_fb_helper.fbdev;
-		unregister_framebuffer(info);
-		iounmap(info->screen_base);
-		framebuffer_release(info);
-	}
-
-	drm_fb_helper_fini(&fbdev->psb_fb_helper);
-
-	drm_framebuffer_cleanup(&psbfb->base);
-	
-	return 0;
-}
-
-int psb_fbdev_init(struct drm_device * dev) 
-{
-	struct psb_fbdev * fbdev;
-	struct drm_psb_private * dev_priv = 
-		(struct drm_psb_private *)dev->dev_private;
-	int num_crtc;
-	
-	fbdev = kzalloc(sizeof(struct psb_fbdev), GFP_KERNEL);
-	if(!fbdev) {
-		DRM_ERROR("no memory\n");
-		return -ENOMEM;
-	}
-
-	dev_priv->fbdev = fbdev;
-	fbdev->psb_fb_helper.funcs = &psb_fb_helper_funcs;
-
-	if( IS_CDV(dev) ) {
-		num_crtc = 2;
-	}
-
-	drm_fb_helper_init(dev, &fbdev->psb_fb_helper, num_crtc, INTELFB_CONN_LIMIT);
-
-	drm_fb_helper_single_add_all_connectors(&fbdev->psb_fb_helper);
-	drm_fb_helper_initial_config(&fbdev->psb_fb_helper, 32);
-	return 0;
-}
-
-void psb_fbdev_fini(struct drm_device * dev)
-{
-	struct drm_psb_private * dev_priv = 
-		(struct drm_psb_private *)dev->dev_private;
-
-	if(!dev_priv->fbdev) {
-		return;
-	}
-
-	psb_fbdev_destroy(dev, dev_priv->fbdev);
-	MRSTLFBFreeBuffer(dev, (struct MRSTLFB_BUFFER_TAG **)(&dev_priv->fb_reloc));
-	kfree(dev_priv->fbdev);
-	dev_priv->fbdev = NULL;
-}
-
-static void psbfb_output_poll_changed(struct drm_device * dev)
-{
-	struct drm_psb_private * dev_priv = (struct drm_psb_private *)dev->dev_private;
-	struct psb_fbdev * fbdev = (struct psb_fbdev *)dev_priv->fbdev;
-	drm_fb_helper_hotplug_event(&fbdev->psb_fb_helper);
-}
-
-int psbfb_remove(struct drm_device *dev, struct drm_framebuffer *fb)
-{
-	struct fb_info *info;
-	struct psb_framebuffer * psbfb = to_psb_fb(fb);
-
-	if (drm_psb_no_fb)
-		return 0;
-
-	info = psbfb->fbdev;
-	psbfb->pvrBO = NULL;
-
-	if (info) {
-		framebuffer_release(info);
-	}
-
-	return 0;
-}
-/*EXPORT_SYMBOL(psbfb_remove); */
-
-static int psb_user_framebuffer_create_handle(struct drm_framebuffer *fb,
-					      struct drm_file *file_priv,
-					      unsigned int *handle)
-{
-	/* JB: TODO currently we can't go from a bo to a handle with ttm */
-	(void) file_priv;
-	*handle = 0;
-	return 0;
-}
-
-static void psb_user_framebuffer_destroy(struct drm_framebuffer *fb)
-{
-	struct drm_device *dev = fb->dev;
-	struct psb_framebuffer *psbfb = to_psb_fb(fb);
-
-	/*ummap gtt pages*/
-	if (psbfb->hKernelMemInfo)
-		psb_gtt_unmap_meminfo(dev, psbfb->hKernelMemInfo);
-	if (psbfb->fbdev)
-	{
-		psbfb_remove(dev, fb);
-	}
-
-	/* JB: TODO not drop, refcount buffer */
-	drm_framebuffer_cleanup(fb);
-
-	kfree(fb);
-}
-
-static const struct drm_mode_config_funcs psb_mode_funcs = {
-	.fb_create = psb_user_framebuffer_create,
-	.output_poll_changed = psbfb_output_poll_changed,
-};
-
-static void cdv_disable_vga(struct drm_device *dev)
-{
-	u8 sr1;
-	u32 vga_reg;
-
-	vga_reg = VGACNTRL;
-
-	outb(1, VGA_SR_INDEX);
-	sr1 = inb(VGA_SR_DATA);
-	outb(sr1 | 1<<5, VGA_SR_DATA);
-	udelay(300);
-
-	REG_WRITE(vga_reg, VGA_DISP_DISABLE);
-	REG_READ(vga_reg);
-}
-
-static void psb_setup_outputs(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-	struct drm_connector *connector;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	drm_mode_create_scaling_mode_property(dev);
-
-	/* It is always called on CDV. Delete the judement of if-condition */
-	{
-		/* disable the VGA plane explicitly on CDV*/
-		cdv_disable_vga(dev);
-
-		/* Setting CRT for CDV connector */
-		psb_intel_crt_init(dev, &dev_priv->mode_dev);
-
-		/* Set up integrated LVDS */
-		psb_intel_lvds_init(dev, &dev_priv->mode_dev);
-
- 		if (REG_READ(SDVOB) & SDVO_DETECTED) {
- 			//found = psb_intel_sdvo_init(dev, SDVOB);
- 			//if (!found)
- 			mdfld_hdmi_init(dev, &dev_priv->mode_dev, SDVOB);
- 		}
- 
- 		if (REG_READ(SDVOC) & SDVO_DETECTED) {
- 			//found = psb_intel_sdvo_init(dev, SDVOC);
- 			//if (!found)
- 			mdfld_hdmi_init(dev, &dev_priv->mode_dev, SDVOC);
- 		}
-		
-	}
-
-	list_for_each_entry(connector, &dev->mode_config.connector_list,
-			    head) {
-		struct psb_intel_output *psb_intel_output =
-		    to_psb_intel_output(connector);
-		struct drm_encoder *encoder = &psb_intel_output->enc;
-		int crtc_mask = 0, clone_mask = 0;
-
-		/* valid crtcs */
-		switch (psb_intel_output->type) {
-		case INTEL_OUTPUT_ANALOG:
-			crtc_mask = (1 << 0);
-			clone_mask = (1 << INTEL_OUTPUT_ANALOG);
-			break;
-		case INTEL_OUTPUT_SDVO:
-			crtc_mask = ((1 << 0) | (1 << 1));
-			clone_mask = (1 << INTEL_OUTPUT_SDVO);
-			break;
-		case INTEL_OUTPUT_LVDS:
-			crtc_mask = (1 << 1);
-			clone_mask = (1 << INTEL_OUTPUT_LVDS);
-			break;
-		case INTEL_OUTPUT_HDMI:
-			clone_mask = (1 << INTEL_OUTPUT_HDMI);
-			crtc_mask = (1 << 0);
-			break;
-		}
-
-		encoder->possible_crtcs = crtc_mask;
-		encoder->possible_clones =
-		    psb_intel_connector_clones(dev, clone_mask);
-
-	}
-}
-
-static void *psb_bo_from_handle(struct drm_device *dev,
-				struct drm_file *file_priv,
-				unsigned int handle)
-{
-	PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo = IMG_NULL;
-	IMG_HANDLE hKernelMemInfo = (IMG_HANDLE)handle;
-	int ret;
-
-	ret = psb_get_meminfo_by_handle(hKernelMemInfo, &psKernelMemInfo);
-	if (ret) {
-		DRM_ERROR("Cannot get meminfo for handle 0x%x\n",
-			  (IMG_UINT32)hKernelMemInfo);
-		return NULL;
-	}
-
-	return (void *)psKernelMemInfo;
-}
-
-static size_t psb_bo_size(struct drm_device *dev, void *bof)
-{
-	PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo	= (PVRSRV_KERNEL_MEM_INFO *)bof;
-	return (size_t)psKernelMemInfo->uAllocSize;
-}
-
-static size_t psb_bo_offset(struct drm_device *dev, void *bof)
-{
-	struct psb_framebuffer *psbfb
-		= (struct psb_framebuffer *)bof;
-
-	return (size_t)psbfb->offset;
-}
-
-static int psb_bo_pin_for_scanout(struct drm_device *dev, void *bo)
-{
-	 return 0;
-}
-
-static int psb_bo_unpin_for_scanout(struct drm_device *dev, void *bo) 
-{
-	return 0;
-}
-
-void psb_modeset_init(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-	struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev;
-	int i;
-
-	PSB_DEBUG_ENTRY("\n");
-	/* Init mm functions */
-	mode_dev->bo_from_handle = psb_bo_from_handle;
-	mode_dev->bo_size = psb_bo_size;
-	mode_dev->bo_offset = psb_bo_offset;
-	mode_dev->bo_pin_for_scanout = psb_bo_pin_for_scanout;
-	mode_dev->bo_unpin_for_scanout = psb_bo_unpin_for_scanout;
-
-	drm_mode_config_init(dev);
-
-	dev->mode_config.min_width = 0;
-	dev->mode_config.min_height = 0;
-
-	dev->mode_config.funcs = (void *) &psb_mode_funcs;
-
-	/* set memory base */
-	/* MRST and PSB should use BAR 2*/
-	pci_read_config_dword(dev->pdev, PSB_BSM, (uint32_t *) &(dev->mode_config.fb_base));
-
-	for (i = 0; i < dev_priv->num_pipe; i++)
-		psb_intel_crtc_init(dev, i, mode_dev);
-
-	dev->mode_config.max_width = 8192;
-	dev->mode_config.max_height = 8192;
-
-	psb_setup_outputs(dev);
-
-	if (!dev_priv->ovl_buf) {
-		struct MRSTLFB_BUFFER_TAG *ovl_buffer = NULL;
-		if (MRSTLFBAllocBuffer(dev, 64 * 1024, &ovl_buffer)) {
-			printk(KERN_ERR "Can't allocate GTT memory for overlay\n");
-			dev_priv->ovl_offset = 0;
-		} else {
-			dev_priv->ovl_buf = ovl_buffer;
-			memset(MRSTLFBGetCPUVAddr(ovl_buffer), 0, 64 * 1024);
-			dev_priv->ovl_offset = MRSTLFBGetDevVAddr(ovl_buffer);
-			printk(KERN_INFO "Overlay GTT address is %x\n", dev_priv->ovl_offset);
-		}
-	}
-	/* set memory base */
-
-	/* setup fbs */
-	/* drm_initial_config(dev); */
-}
-
-void psb_modeset_cleanup(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-
-	mutex_lock(&dev->struct_mutex);
-
-	drm_kms_helper_poll_fini(dev);
-	psb_fbdev_fini(dev);
-
-	if (dev_priv->ovl_buf) {
-		struct MRSTLFB_BUFFER_TAG *ovl_buffer = dev_priv->ovl_buf;
-		MRSTLFBFreeBuffer(dev, &ovl_buffer);
-		dev_priv->ovl_buf = NULL;
-	}
-
-	drm_mode_config_cleanup(dev);
-
-	mutex_unlock(&dev->struct_mutex);
-}
diff --git a/drivers/staging/cdv/drv/psb_fb.h b/drivers/staging/cdv/drv/psb_fb.h
deleted file mode 100644
index 8679353..0000000
--- a/drivers/staging/cdv/drv/psb_fb.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2011, Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *      Eric Anholt <eric@anholt.net>
- *
- */
-
-#ifndef _PSB_FB_H_
-#define _PSB_FB_H_
-
-#include <linux/version.h>
-#include <drm/drmP.h>
-
-#include <drm/drm_fb_helper.h>
-
-#include "psb_drv.h"
-
-/*IMG Headers*/
-#include "servicesint.h"
-
-struct psb_framebuffer {
-	struct drm_framebuffer base;
-	struct address_space *addr_space;
-	struct ttm_buffer_object *bo;
-	struct fb_info * fbdev;
-	/* struct ttm_bo_kmap_obj kmap; */
-	PVRSRV_KERNEL_MEM_INFO *pvrBO;
-	IMG_HANDLE hKernelMemInfo;
-	uint32_t size;
-	uint32_t offset;
-};
-
-struct psb_fbdev {
-	struct drm_fb_helper psb_fb_helper;
-	struct psb_framebuffer * pfb;
-};
-
-#define to_psb_fb(x) container_of(x, struct psb_framebuffer, base)
-
-
-extern int psb_intel_connector_clones(struct drm_device *dev, int type_mask);
-
-
-#endif
-
diff --git a/drivers/staging/cdv/drv/psb_gtt.c b/drivers/staging/cdv/drv/psb_gtt.c
deleted file mode 100644
index 8e51385..0000000
--- a/drivers/staging/cdv/drv/psb_gtt.c
+++ /dev/null
@@ -1,1045 +0,0 @@
-/*
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors: Thomas Hellstrom <thomas-at-tungstengraphics.com>
- */
-
-#include <drm/drmP.h>
-#include "psb_drv.h"
-#include "psb_pvr_glue.h"
-
-static inline uint32_t psb_gtt_mask_pte(uint32_t pfn, int type)
-{
-	uint32_t mask = PSB_PTE_VALID;
-
-	if (type & PSB_MMU_CACHED_MEMORY)
-		mask |= PSB_PTE_CACHED;
-	if (type & PSB_MMU_RO_MEMORY)
-		mask |= PSB_PTE_RO;
-	if (type & PSB_MMU_WO_MEMORY)
-		mask |= PSB_PTE_WO;
-
-	return (pfn << PAGE_SHIFT) | mask;
-}
-
-struct psb_gtt *psb_gtt_alloc(struct drm_device *dev)
-{
-	struct psb_gtt *tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
-
-	if (!tmp)
-		return NULL;
-
-	init_rwsem(&tmp->sem);
-	tmp->dev = dev;
-
-	return tmp;
-}
-
-void psb_gtt_takedown(struct psb_gtt *pg, int free)
-{
-	struct drm_psb_private *dev_priv = pg->dev->dev_private;
-
-	if (!pg)
-		return;
-
-	if (pg->gtt_map) {
-		iounmap(pg->gtt_map);
-		pg->gtt_map = NULL;
-	}
-	if (pg->initialized) {
-		pci_write_config_word(pg->dev->pdev, PSB_GMCH_CTRL,
-				      pg->gmch_ctrl);
-		PSB_WVDC32(pg->pge_ctl, PSB_PGETBL_CTL);
-		(void) PSB_RVDC32(PSB_PGETBL_CTL);
-	}
-	if (free)
-		kfree(pg);
-}
-
-int psb_gtt_init(struct psb_gtt *pg, int resume)
-{
-	struct drm_device *dev = pg->dev;
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	unsigned gtt_pages;
-	unsigned long stolen_size, vram_stolen_size, ci_stolen_size;
-	unsigned long rar_stolen_size;
-	unsigned i, num_pages;
-	unsigned pfn_base;
-	uint32_t ci_pages;
-	uint32_t tt_pages;
-	uint32_t *ttm_gtt_map;
-	uint32_t dvmt_mode = 0;
-	int ret = 0;
-	uint32_t pte;
-
-	pci_read_config_word(dev->pdev, PSB_GMCH_CTRL, &pg->gmch_ctrl);
-	pci_write_config_word(dev->pdev, PSB_GMCH_CTRL,
-			      pg->gmch_ctrl | _PSB_GMCH_ENABLED);
-
-	pg->pge_ctl = PSB_RVDC32(PSB_PGETBL_CTL);
-	PSB_WVDC32(pg->pge_ctl | _PSB_PGETBL_ENABLED, PSB_PGETBL_CTL);
-	(void) PSB_RVDC32(PSB_PGETBL_CTL);
-
-	pg->initialized = 1;
-
-	pg->gtt_phys_start = pg->pge_ctl; // & PAGE_MASK;
-	DRM_DEBUG("pg->gtt_phys_start = %x\n", pg->gtt_phys_start);
-
-	pg->gatt_start = 0x40000000; //pci_resource_start(dev->pdev, PSB_GATT_RESOURCE);
-	DRM_DEBUG("pg->gatt_start = %x\n", pg->gatt_start);
-	/* fix me: video mmu has hw bug to access 0x0D0000000,
-	 * then make gatt start at 0x0e000,0000 */
-	pg->mmu_gatt_start = PSB_MEM_TT_START;
-	pg->gtt_start = pg->pge_ctl;
-	DRM_DEBUG("pg->gtt_start %x\n", pg->gtt_start);
-//	gtt_pages =
-//	    pci_resource_len(dev->pdev, PSB_GTT_RESOURCE) >> PAGE_SHIFT;
-//	pg->gatt_pages = pci_resource_len(dev->pdev, PSB_GATT_RESOURCE)
-//	    >> PAGE_SHIFT;
-
-	gtt_pages = (256) / 4;
-	pg->gatt_pages = 256 * 1024 * 1024 >> PAGE_SHIFT;
-
-	DRM_DEBUG("gtt_pages = %x\n", gtt_pages);
-
-	pci_read_config_dword(dev->pdev, PSB_BSM, &pg->stolen_base);
-	vram_stolen_size = pg->gtt_phys_start - pg->stolen_base - PAGE_SIZE;
-
-	/* CI is not included in the stolen size since the TOPAZ MMU bug */
-	ci_stolen_size = dev_priv->ci_region_size;
-	/* Don't add CI & RAR share buffer space
-	 * managed by TTM to stolen_size */
-	stolen_size = vram_stolen_size;
-
-	rar_stolen_size = dev_priv->rar_region_size;
-
-	dvmt_mode = (pg->gmch_ctrl >> 4) & 0x7;
-
-	DRM_DEBUG("GMMADR(region 0) start: 0x%08x (%dM).\n",
-		  pg->gatt_start, pg->gatt_pages/256);
-	DRM_DEBUG("GTTADR(region 3) start: 0x%08x (can map %dM RAM), and actual RAM base 0x%08x.\n",
-		  pg->gtt_start, gtt_pages * 4, pg->gtt_phys_start);
-	DRM_DEBUG("Stole memory information \n");
-	DRM_DEBUG("      base in RAM: 0x%x \n", pg->stolen_base);
-	DRM_DEBUG("      size: %luK, calculated by (GTT RAM base) - (Stolen base), seems wrong\n",
-		  vram_stolen_size/1024);
-	DRM_DEBUG("      the correct size should be: %dM(dvmt mode=%d) \n",
-		  (dvmt_mode == 1) ? 1 : (2 << (dvmt_mode - 1)), dvmt_mode);
-
-	if (ci_stolen_size > 0)
-		DRM_DEBUG("CI Stole memory: RAM base = 0x%08x, size = %lu M \n",
-				dev_priv->ci_region_start,
-				ci_stolen_size / 1024 / 1024);
-	if (rar_stolen_size > 0)
-		DRM_DEBUG("RAR Stole memory: RAM base = 0x%08x, size = %lu M \n",
-				dev_priv->rar_region_start,
-				rar_stolen_size / 1024 / 1024);
-
-	if (resume && (gtt_pages != pg->gtt_pages) &&
-	    (stolen_size != pg->stolen_size)) {
-		DRM_ERROR("GTT resume error.\n");
-		ret = -EINVAL;
-		goto out_err;
-	}
-
-	pg->gtt_pages = gtt_pages;
-	pg->stolen_size = stolen_size;
-	pg->vram_stolen_size = vram_stolen_size;
-	pg->ci_stolen_size = ci_stolen_size;
-	pg->rar_stolen_size = rar_stolen_size;
-	pg->gtt_map = ioremap_nocache(pg->gtt_phys_start, gtt_pages << PAGE_SHIFT);
-	if (!pg->gtt_map) {
-		DRM_ERROR("Failure to map gtt.\n");
-		ret = -ENOMEM;
-		goto out_err;
-	}
-
-	pg->vram_addr = ioremap_wc(pg->stolen_base, stolen_size);
-	if (!pg->vram_addr) {
-		DRM_ERROR("Failure to map stolen base.\n");
-		ret = -ENOMEM;
-		goto out_err;
-	}
-
-	DRM_DEBUG("%s: vram kernel virtual address %p\n", __func__, pg->vram_addr);
-
-	tt_pages = (pg->gatt_pages < PSB_TT_PRIV0_PLIMIT) ?
-		(pg->gatt_pages) : PSB_TT_PRIV0_PLIMIT;
-
-	ttm_gtt_map = pg->gtt_map + tt_pages / 2;
-
-	/*
-	 * insert vram stolen pages.
-	 */
-
-	pfn_base = pg->stolen_base >> PAGE_SHIFT;
-	num_pages = vram_stolen_size >> PAGE_SHIFT;
-	DRM_DEBUG("Set up %d stolen pages starting at 0x%08x, GTT offset %dK\n",
-		  num_pages, pfn_base, 0);
-	for (i = 0; i < num_pages; ++i) {
-		pte = psb_gtt_mask_pte(pfn_base + i, 0);
-		iowrite32(pte, pg->gtt_map + i);
-	}
-
-	/*
-	 * Init rest of gtt managed by IMG.
-	 */
-	pfn_base = page_to_pfn(dev_priv->scratch_page);
-	pte = psb_gtt_mask_pte(pfn_base, 0);
-	for (; i < tt_pages / 2 - 1; ++i)
-		iowrite32(pte, pg->gtt_map + i);
-
-	/*
-	 * insert CI stolen pages
-	 */
-
-	pfn_base = dev_priv->ci_region_start >> PAGE_SHIFT;
-	ci_pages = num_pages = ci_stolen_size >> PAGE_SHIFT;
-	DRM_DEBUG("Set up %d CI stolen pages starting at 0x%08x, GTT offset %dK\n",
-		  num_pages, pfn_base, (ttm_gtt_map - pg->gtt_map) * 4);
-	for (i = 0; i < num_pages; ++i) {
-		pte = psb_gtt_mask_pte(pfn_base + i, 0);
-		iowrite32(pte, ttm_gtt_map + i);
-	}
-
-	/*
-	 * insert RAR stolen pages
-	 */
-	if (rar_stolen_size != 0) {
-		pfn_base = dev_priv->rar_region_start >> PAGE_SHIFT;
-		num_pages = rar_stolen_size >> PAGE_SHIFT;
-		DRM_DEBUG("Set up %d RAR stolen pages starting at 0x%08x, GTT offset %dK\n",
-			  num_pages, pfn_base,
-			  (ttm_gtt_map - pg->gtt_map + i) * 4);
-		for (; i < num_pages + ci_pages; ++i) {
-			pte = psb_gtt_mask_pte(pfn_base + i - ci_pages, 0);
-			iowrite32(pte, ttm_gtt_map + i);
-		}
-	}
-	/*
-	 * Init rest of gtt managed by TTM.
-	 */
-
-	pfn_base = page_to_pfn(dev_priv->scratch_page);
-	pte = psb_gtt_mask_pte(pfn_base, 0);
-	PSB_DEBUG_INIT("Initializing the rest of a total "
-		       "of %u gtt pages.\n", pg->gatt_pages);
-
-	for (; i < pg->gatt_pages - tt_pages / 2; ++i)
-		iowrite32(pte, ttm_gtt_map + i);
-	(void) ioread32(pg->gtt_map + i - 1);
-
-	return 0;
-
-out_err:
-	psb_gtt_takedown(pg, 0);
-	return ret;
-}
-
-int psb_gtt_insert_pages(struct psb_gtt *pg, struct page **pages,
-			 unsigned offset_pages, unsigned num_pages,
-			 unsigned desired_tile_stride,
-			 unsigned hw_tile_stride, int type)
-{
-	unsigned rows = 1;
-	unsigned add;
-	unsigned i;
-	unsigned j;
-	uint32_t *cur_page = NULL;
-	uint32_t pte;
-
-	if (hw_tile_stride)
-		rows = num_pages / desired_tile_stride;
-	else
-		desired_tile_stride = num_pages;
-
-	add = desired_tile_stride;
-
-	down_read(&pg->sem);
-	for (i = 0; i < rows; ++i) {
-		cur_page = pg->gtt_map + offset_pages;
-		for (j = 0; j < desired_tile_stride; ++j) {
-			pte =
-			    psb_gtt_mask_pte(page_to_pfn(*pages++), type);
-			iowrite32(pte, cur_page++);
-		}
-		offset_pages += add;
-	}
-	(void) ioread32(cur_page - 1);
-	up_read(&pg->sem);
-
-	return 0;
-}
-
-int psb_gtt_insert_phys_addresses(struct psb_gtt *pg, IMG_CPU_PHYADDR *pPhysFrames,
-                                                                  unsigned offset_pages, unsigned num_pages, int type)
-{
-        unsigned j;
-        uint32_t *cur_page = NULL;
-        uint32_t pte;
-
-        //printk("Allocatng IMG GTT mem at %x (pages %d)\n",offset_pages,num_pages);
-        down_read(&pg->sem);
-
-        cur_page = pg->gtt_map + offset_pages;
-        for (j = 0; j < num_pages; ++j)
-        {
-                pte =  psb_gtt_mask_pte( (pPhysFrames++)->uiAddr >> PAGE_SHIFT, type);
-                iowrite32(pte, cur_page++);
-                //printk("PTE %d: %x/%x\n",j,(pPhysFrames-1)->uiAddr,pte);
-        }
-        (void) ioread32(cur_page - 1);
-
-        up_read(&pg->sem);
-
-        return 0;
-}
-
-int psb_gtt_remove_pages(struct psb_gtt *pg, unsigned offset_pages,
-			 unsigned num_pages, unsigned desired_tile_stride,
-			 unsigned hw_tile_stride, int rc_prot)
-{
-	struct drm_psb_private *dev_priv = pg->dev->dev_private;
-	unsigned rows = 1;
-	unsigned add;
-	unsigned i;
-	unsigned j;
-	uint32_t *cur_page = NULL;
-	unsigned pfn_base = page_to_pfn(dev_priv->scratch_page);
-	uint32_t pte = psb_gtt_mask_pte(pfn_base, 0);
-
-	if (hw_tile_stride)
-		rows = num_pages / desired_tile_stride;
-	else
-		desired_tile_stride = num_pages;
-
-	add = desired_tile_stride;
-
-	if (rc_prot)
-		down_read(&pg->sem);
-	for (i = 0; i < rows; ++i) {
-		cur_page = pg->gtt_map + offset_pages;
-		for (j = 0; j < desired_tile_stride; ++j)
-			iowrite32(pte, cur_page++);
-
-		offset_pages += add;
-	}
-	(void) ioread32(cur_page - 1);
-	if (rc_prot)
-		up_read(&pg->sem);
-
-	return 0;
-}
-
-int psb_gtt_mm_init(struct psb_gtt *pg)
-{
-	struct psb_gtt_mm *gtt_mm;
-	struct drm_psb_private *dev_priv = pg->dev->dev_private;
-	struct drm_open_hash *ht;
-	struct drm_mm *mm;
-	int ret;
-	uint32_t tt_start;
-	uint32_t tt_size;
-
-	if (!pg || !pg->initialized) {
-		DRM_DEBUG("Invalid gtt struct\n");
-		return -EINVAL;
-	}
-
-	gtt_mm =  kzalloc(sizeof(struct psb_gtt_mm), GFP_KERNEL);
-	if (!gtt_mm)
-		return -ENOMEM;
-
-	spin_lock_init(&gtt_mm->lock);
-
-	ht = &gtt_mm->hash;
-	ret = drm_ht_create(ht, 20);
-	if (ret) {
-		DRM_DEBUG("Create hash table failed(%d)\n", ret);
-		goto err_free;
-	}
-
-	tt_start = (pg->stolen_size + PAGE_SIZE - 1) >> PAGE_SHIFT;
-	/* align to 256K bytes. This is to pre-allocated overlay buffer,which is
-	 * aligned to 64K bytes  */
-	tt_start = ALIGN(tt_start, 64);
-	tt_start = (tt_start < pg->gatt_pages) ? tt_start : pg->gatt_pages;
-	tt_size = (pg->gatt_pages < PSB_TT_PRIV0_PLIMIT) ?
-			(pg->gatt_pages) : PSB_TT_PRIV0_PLIMIT;
-	mm = &gtt_mm->base;
-
-	/*will use tt_start ~ 128M for IMG TT buffers*/
-	ret = drm_mm_init(mm, tt_start, ((tt_size / 2) - tt_start));
-	if (ret) {
-		DRM_DEBUG("drm_mm_int error(%d)\n", ret);
-		goto err_mm_init;
-	}
-
-	gtt_mm->count = 0;
-
-	dev_priv->gtt_mm = gtt_mm;
-
-	DRM_DEBUG("PSB GTT mem manager ready, tt_start %ld, tt_size %ld pages\n",
-		(unsigned long)tt_start,
-		(unsigned long)((tt_size / 2) - tt_start));
-	return 0;
-err_mm_init:
-	drm_ht_remove(ht);
-
-err_free:
-	kfree(gtt_mm);
-	return ret;
-}
-
-/**
- * Delete all hash entries;
- */
-void psb_gtt_mm_takedown(void)
-{
-	return;
-}
-
-static int psb_gtt_mm_get_ht_by_pid_locked(struct psb_gtt_mm *mm,
-				    u32 tgid,
-				    struct psb_gtt_hash_entry **hentry)
-{
-	struct drm_hash_item *entry;
-	struct psb_gtt_hash_entry *psb_entry;
-	int ret;
-
-	ret = drm_ht_find_item(&mm->hash, tgid, &entry);
-	if (ret) {
-		DRM_DEBUG("Cannot find entry pid=%u\n", tgid);
-		return ret;
-	}
-
-	psb_entry = container_of(entry, struct psb_gtt_hash_entry, item);
-	if (!psb_entry) {
-		DRM_DEBUG("Invalid entry");
-		return -EINVAL;
-	}
-
-	*hentry = psb_entry;
-	return 0;
-}
-
-
-static int psb_gtt_mm_insert_ht_locked(struct psb_gtt_mm *mm,
-				       u32 tgid,
-				       struct psb_gtt_hash_entry *hentry)
-{
-	struct drm_hash_item *item;
-	int ret;
-
-	if (!hentry) {
-		DRM_DEBUG("Invalid parameters\n");
-		return -EINVAL;
-	}
-
-	item = &hentry->item;
-	item->key = tgid;
-
-	/**
-	 * NOTE: drm_ht_insert_item will perform such a check
-	ret = psb_gtt_mm_get_ht_by_pid(mm, tgid, &tmp);
-	if (!ret) {
-		DRM_DEBUG("Entry already exists for pid %ld\n", tgid);
-		return -EAGAIN;
-	}
-	*/
-
-	/*Insert the given entry*/
-	ret = drm_ht_insert_item(&mm->hash, item);
-	if (ret) {
-		DRM_DEBUG("Insert failure\n");
-		return ret;
-	}
-
-	mm->count++;
-
-	return 0;
-}
-
-static int psb_gtt_mm_alloc_insert_ht(struct psb_gtt_mm *mm,
-				      u32 tgid,
-				      struct psb_gtt_hash_entry **entry)
-{
-	struct psb_gtt_hash_entry *hentry;
-	int ret;
-
-	/*if the hentry for this tgid exists, just get it and return*/
-	spin_lock(&mm->lock);
-	ret = psb_gtt_mm_get_ht_by_pid_locked(mm, tgid, &hentry);
-	if (!ret) {
-		DRM_DEBUG("Entry for tgid %u exist, hentry %p\n",
-			  tgid, hentry);
-		*entry = hentry;
-		spin_unlock(&mm->lock);
-		return 0;
-	}
-	spin_unlock(&mm->lock);
-
-	DRM_DEBUG("Entry for tgid %u doesn't exist, will create it\n", tgid);
-
-	hentry = kzalloc(sizeof(struct psb_gtt_hash_entry), GFP_KERNEL);
-	if (!hentry) {
-		DRM_DEBUG("Kmalloc failled\n");
-		return -ENOMEM;
-	}
-
-	ret = drm_ht_create(&hentry->ht, 20);
-	if (ret) {
-		DRM_DEBUG("Create hash table failed\n");
-		return ret;
-	}
-
-	spin_lock(&mm->lock);
-	ret = psb_gtt_mm_insert_ht_locked(mm, tgid, hentry);
-	spin_unlock(&mm->lock);
-
-	if (!ret)
-		*entry = hentry;
-
-	return ret;
-}
-
-static struct psb_gtt_hash_entry *
-psb_gtt_mm_remove_ht_locked(struct psb_gtt_mm *mm, u32 tgid)
-{
-	struct psb_gtt_hash_entry *tmp;
-	int ret;
-
-	ret = psb_gtt_mm_get_ht_by_pid_locked(mm, tgid, &tmp);
-	if (ret) {
-		DRM_DEBUG("Cannot find entry pid %u\n", tgid);
-		return NULL;
-	}
-
-	/*remove it from ht*/
-	drm_ht_remove_item(&mm->hash, &tmp->item);
-
-	mm->count--;
-
-	return tmp;
-}
-
-static int psb_gtt_mm_remove_free_ht_locked(struct psb_gtt_mm *mm, u32 tgid)
-{
-	struct psb_gtt_hash_entry *entry;
-
-	entry = psb_gtt_mm_remove_ht_locked(mm, tgid);
-
-	if (!entry) {
-		DRM_DEBUG("Invalid entry");
-		return -EINVAL;
-	}
-
-	/*delete ht*/
-	drm_ht_remove(&entry->ht);
-
-	/*free this entry*/
-	kfree(entry);
-	return 0;
-}
-
-static int
-psb_gtt_mm_get_mem_mapping_locked(struct drm_open_hash *ht,
-			   u32 key,
-			   struct psb_gtt_mem_mapping **hentry)
-{
-	struct drm_hash_item *entry;
-	struct psb_gtt_mem_mapping *mapping;
-	int ret;
-
-	ret = drm_ht_find_item(ht, key, &entry);
-	if (ret) {
-		DRM_DEBUG("Cannot find key %u\n", key);
-		return ret;
-	}
-
-	mapping =  container_of(entry, struct psb_gtt_mem_mapping, item);
-	if (!mapping) {
-		DRM_DEBUG("Invalid entry\n");
-		return -EINVAL;
-	}
-
-	*hentry = mapping;
-	return 0;
-}
-
-static int
-psb_gtt_mm_insert_mem_mapping_locked(struct drm_open_hash *ht,
-			      u32 key,
-			      struct psb_gtt_mem_mapping *hentry)
-{
-	struct drm_hash_item *item;
-	struct psb_gtt_hash_entry *entry;
-	int ret;
-
-	if (!hentry) {
-		DRM_DEBUG("hentry is NULL\n");
-		return -EINVAL;
-	}
-
-	item = &hentry->item;
-	item->key = key;
-
-	ret = drm_ht_insert_item(ht, item);
-	if (ret) {
-		DRM_DEBUG("insert_item failed\n");
-		return ret;
-	}
-
-	entry = container_of(ht, struct psb_gtt_hash_entry, ht);
-	if (entry)
-		entry->count++;
-
-	return 0;
-}
-
-static int
-psb_gtt_mm_alloc_insert_mem_mapping(struct psb_gtt_mm *mm,
-				    struct drm_open_hash *ht,
-				    u32 key,
-				    struct drm_mm_node *node,
-				    struct psb_gtt_mem_mapping **entry)
-{
-	struct psb_gtt_mem_mapping *mapping;
-	int ret;
-
-	if (!node || !ht) {
-		DRM_DEBUG("parameter error\n");
-		return -EINVAL;
-	}
-
-	/*try to get this mem_map */
-	spin_lock(&mm->lock);
-	ret = psb_gtt_mm_get_mem_mapping_locked(ht, key, &mapping);
-	if (!ret) {
-		DRM_DEBUG("mapping entry for key %u exists, entry %p\n",
-			  key, mapping);
-		*entry = mapping;
-		spin_unlock(&mm->lock);
-		return 0;
-	}
-	spin_unlock(&mm->lock);
-
-	DRM_DEBUG("Mapping entry for key %u doesn't exist, will create it\n", key);
-
-	mapping = kzalloc(sizeof(struct psb_gtt_mem_mapping), GFP_KERNEL);
-	if (!mapping) {
-		DRM_DEBUG("kmalloc failed\n");
-		return -ENOMEM;
-	}
-
-	mapping->node = node;
-
-	spin_lock(&mm->lock);
-	ret = psb_gtt_mm_insert_mem_mapping_locked(ht, key, mapping);
-	spin_unlock(&mm->lock);
-
-	if (!ret)
-		*entry = mapping;
-
-	return ret;
-}
-
-static struct psb_gtt_mem_mapping *
-psb_gtt_mm_remove_mem_mapping_locked(struct drm_open_hash *ht, u32 key)
-{
-	struct psb_gtt_mem_mapping *tmp;
-	struct psb_gtt_hash_entry *entry;
-	int ret;
-
-	ret = psb_gtt_mm_get_mem_mapping_locked(ht, key, &tmp);
-	if (ret) {
-		DRM_DEBUG("Cannot find key %u\n", key);
-		return NULL;
-	}
-
-	drm_ht_remove_item(ht, &tmp->item);
-
-	entry = container_of(ht, struct psb_gtt_hash_entry, ht);
-	if (entry)
-		entry->count--;
-
-	return tmp;
-}
-
-static int psb_gtt_mm_remove_free_mem_mapping_locked(struct drm_open_hash *ht,
-					      u32 key,
-					      struct drm_mm_node **node)
-{
-	struct psb_gtt_mem_mapping *entry;
-
-	entry = psb_gtt_mm_remove_mem_mapping_locked(ht, key);
-	if (!entry) {
-		DRM_DEBUG("entry is NULL\n");
-		return -EINVAL;
-	}
-
-	*node = entry->node;
-
-	kfree(entry);
-	return 0;
-}
-
-static int psb_gtt_add_node(struct psb_gtt_mm *mm,
-			    u32 tgid,
-			    u32 key,
-			    struct drm_mm_node *node,
-			    struct psb_gtt_mem_mapping **entry)
-{
-	struct psb_gtt_hash_entry *hentry;
-	struct psb_gtt_mem_mapping *mapping;
-	int ret;
-
-	ret = psb_gtt_mm_alloc_insert_ht(mm, tgid, &hentry);
-	if (ret) {
-		DRM_DEBUG("alloc_insert failed\n");
-		return ret;
-	}
-
-	ret = psb_gtt_mm_alloc_insert_mem_mapping(mm,
-						  &hentry->ht,
-						  key,
-						  node,
-						  &mapping);
-	if (ret) {
-		DRM_DEBUG("mapping alloc_insert failed\n");
-		return ret;
-	}
-
-	*entry = mapping;
-
-	return 0;
-}
-
-static int psb_gtt_remove_node(struct psb_gtt_mm *mm,
-			       u32 tgid,
-			       u32 key,
-			       struct drm_mm_node **node)
-{
-	struct psb_gtt_hash_entry *hentry;
-	struct drm_mm_node *tmp;
-	int ret;
-
-	spin_lock(&mm->lock);
-	ret = psb_gtt_mm_get_ht_by_pid_locked(mm, tgid, &hentry);
-	if (ret) {
-		DRM_DEBUG("Cannot find entry for pid %u\n", tgid);
-		spin_unlock(&mm->lock);
-		return ret;
-	}
-	spin_unlock(&mm->lock);
-
-	/*remove mapping entry*/
-	spin_lock(&mm->lock);
-	ret = psb_gtt_mm_remove_free_mem_mapping_locked(&hentry->ht,
-							key,
-							&tmp);
-	if (ret) {
-		DRM_DEBUG("remove_free failed\n");
-		spin_unlock(&mm->lock);
-		return ret;
-	}
-
-	*node = tmp;
-
-	/*check the count of mapping entry*/
-	if (!hentry->count) {
-		DRM_DEBUG("count of mapping entry is zero, tgid=%u\n", tgid);
-		psb_gtt_mm_remove_free_ht_locked(mm, tgid);
-	}
-
-	spin_unlock(&mm->lock);
-
-	return 0;
-}
-
-static int psb_gtt_mm_alloc_mem(struct psb_gtt_mm *mm,
-				uint32_t pages,
-				uint32_t align,
-				struct drm_mm_node **node)
-{
-	struct drm_mm_node *tmp_node;
-	int ret;
-
-	do {
-		ret = drm_mm_pre_get(&mm->base);
-		if (unlikely(ret)) {
-			DRM_DEBUG("drm_mm_pre_get error\n");
-			return ret;
-		}
-
-		spin_lock(&mm->lock);
-		tmp_node = drm_mm_search_free(&mm->base, pages, align, 1);
-		if (unlikely(!tmp_node)) {
-			DRM_DEBUG("No free node found\n");
-			spin_unlock(&mm->lock);
-			break;
-		}
-
-		tmp_node = drm_mm_get_block_atomic(tmp_node, pages, align);
-		spin_unlock(&mm->lock);
-	} while (!tmp_node);
-
-	if (!tmp_node) {
-		DRM_DEBUG("Node allocation failed\n");
-		return -ENOMEM;
-	}
-
-	*node = tmp_node;
-	return 0;
-}
-
-static void psb_gtt_mm_free_mem(struct psb_gtt_mm *mm, struct drm_mm_node *node)
-{
-	spin_lock(&mm->lock);
-	drm_mm_put_block(node);
-	spin_unlock(&mm->lock);
-}
-
-int psb_gtt_map_meminfo(struct drm_device *dev,
-			IMG_HANDLE hKernelMemInfo,
-			uint32_t *offset)
-{
-	struct drm_psb_private *dev_priv
-	       = (struct drm_psb_private *)dev->dev_private;
-	PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
-	struct psb_gtt_mm *mm = dev_priv->gtt_mm;
-	struct psb_gtt *pg = dev_priv->pg;
-	uint32_t size, pages, offset_pages;
-	void *kmem;
-	struct drm_mm_node *node;
-	struct page **page_list;
-	struct psb_gtt_mem_mapping *mapping = NULL;
-	int ret;
-
-	ret = psb_get_meminfo_by_handle(hKernelMemInfo, &psKernelMemInfo);
-	if (ret) {
-		DRM_DEBUG("Cannot find kernelMemInfo handle 0x%x\n",
-			  (unsigned int)hKernelMemInfo);
-		return -EINVAL;
-	}
-
-	DRM_DEBUG("Got psKernelMemInfo %p for handle 0x%x\n",
-		  psKernelMemInfo, (u32)hKernelMemInfo);
-
-	size = psKernelMemInfo->uAllocSize;
-	kmem = psKernelMemInfo->pvLinAddrKM;
-	pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT;
-
-	DRM_DEBUG("KerMemInfo size %u, cpuVadr 0x%x, pages %u, osMemHdl 0x%x\n",
-		  size, (unsigned int)kmem, pages, (unsigned int)psKernelMemInfo->sMemBlk.hOSMemHandle);
-
-	if (!kmem)
-		DRM_DEBUG("kmem is NULL");
-
-	/*get pages*/
-	ret = psb_get_pages_by_mem_handle(psKernelMemInfo->sMemBlk.hOSMemHandle,
-					  &page_list);
-	if (ret) {
-		DRM_DEBUG("get pages error\n");
-		return ret;
-	}
-
-	DRM_DEBUG("get %u pages\n", pages);
-
-	/*alloc memory in TT apeture*/
-	ret = psb_gtt_mm_alloc_mem(mm, pages, 0, &node);
-	if (ret) {
-		DRM_DEBUG("alloc TT memory error\n");
-		goto failed_pages_alloc;
-	}
-
-	/*update psb_gtt_mm*/
-	ret = psb_gtt_add_node(mm,
-			       (u32)psb_get_tgid(),
-			       (u32)hKernelMemInfo,
-			       node,
-			       &mapping);
-	if (ret) {
-		DRM_DEBUG("add_node failed");
-		goto failed_add_node;
-	}
-
-	node = mapping->node;
-	offset_pages = node->start;
-
-	DRM_DEBUG("get free node for %u pages, offset %u pages",
-		  pages, offset_pages);
-
-	/*update gtt*/
-	psb_gtt_insert_pages(pg, page_list,
-			     (unsigned)offset_pages,
-			     (unsigned)pages,
-			     0,
-			     0,
-			     0);
-
-	*offset = offset_pages;
-	return 0;
-
-failed_add_node:
-	psb_gtt_mm_free_mem(mm, node);
-failed_pages_alloc:
-	kfree(page_list);
-	return ret;
-}
-
-int psb_gtt_unmap_meminfo(struct drm_device *dev, IMG_HANDLE hKernelMemInfo)
-{
-	struct drm_psb_private *dev_priv
-	       = (struct drm_psb_private *)dev->dev_private;
-	struct psb_gtt_mm *mm = dev_priv->gtt_mm;
-	struct psb_gtt *pg = dev_priv->pg;
-	uint32_t pages, offset_pages;
-	struct drm_mm_node *node;
-	int ret;
-
-	ret = psb_gtt_remove_node(mm,
-				  (u32)psb_get_tgid(),
-				  (u32)hKernelMemInfo,
-				  &node);
-	if (ret) {
-		DRM_DEBUG("remove node failed\n");
-		return ret;
-	}
-
-	/*remove gtt entries*/
-	offset_pages = node->start;
-	pages = node->size;
-
-	psb_gtt_remove_pages(pg, offset_pages, pages, 0, 0, 1);
-
-
-	/*free tt node*/
-
-	psb_gtt_mm_free_mem(mm, node);
-	return 0;
-}
-
-int psb_gtt_map_meminfo_ioctl(struct drm_device *dev, void *data,
-			       struct drm_file *file_priv)
-{
-	struct psb_gtt_mapping_arg *arg
-	       = (struct psb_gtt_mapping_arg *)data;
-	uint32_t *offset_pages = &arg->offset_pages;
-
-	DRM_DEBUG("\n");
-
-	return psb_gtt_map_meminfo(dev, arg->hKernelMemInfo, offset_pages);
-}
-
-int psb_gtt_unmap_meminfo_ioctl(struct drm_device *dev, void *data,
-				struct drm_file *file_priv)
-{
-
-	struct psb_gtt_mapping_arg *arg
-	       = (struct psb_gtt_mapping_arg *)data;
-
-	DRM_DEBUG("\n");
-
-	return psb_gtt_unmap_meminfo(dev, arg->hKernelMemInfo);
-}
-
-int psb_gtt_map_pvr_memory(struct drm_device *dev, 
-								 unsigned int hHandle,
-						  	     unsigned int ui32TaskId,
-								 IMG_CPU_PHYADDR *pPages,
-							   	 unsigned int ui32PagesNum,
-	 							 unsigned int *ui32Offset) 
-{
-	struct drm_psb_private * dev_priv = (struct drm_psb_private *)dev->dev_private;	
-	struct psb_gtt_mm * mm = dev_priv->gtt_mm;
-	struct psb_gtt * pg = dev_priv->pg;
-	
-	uint32_t pages, offset_pages;
-	struct drm_mm_node * node = NULL;
-	struct psb_gtt_mem_mapping * mapping = NULL;
-	int ret;
-
-	pages = 0;   
-
-	/*alloc memory in TT apeture*/
-	ret = psb_gtt_mm_alloc_mem(mm, ui32PagesNum, 0, &node);
-	if(ret) 
-	{
-		DRM_DEBUG("alloc TT memory error\n");
-		goto failed_pages_alloc;
-	}
-
-   /*update psb_gtt_mm*/
-	ret = psb_gtt_add_node(mm,
-						   (u32)ui32TaskId,
-						   (u32)hHandle,
-						   node,
-						   &mapping);
-	if(ret) 
-	{
-		DRM_DEBUG("add_node failed");
-		goto failed_add_node;
-	}
-
-	node = mapping->node;
-	offset_pages = node->start;
-
-	DRM_DEBUG("get free node for %u pages, offset %u pages", pages, offset_pages);
-
-	/*update gtt*/
-	psb_gtt_insert_phys_addresses( pg, pPages, (unsigned)offset_pages, (unsigned)ui32PagesNum, 0 );
-
-	*ui32Offset = offset_pages;
-	return 0;
-
-failed_add_node:
-	psb_gtt_mm_free_mem(mm, node);
-failed_pages_alloc:
-	return ret;	
-}
-
-
-int psb_gtt_unmap_pvr_memory(struct drm_device *dev, unsigned int hHandle, unsigned int ui32TaskId) 
-{
-	struct drm_psb_private * dev_priv = (struct drm_psb_private *)dev->dev_private;
-	struct psb_gtt_mm * mm = dev_priv->gtt_mm;
-	struct psb_gtt * pg = dev_priv->pg;
-	uint32_t pages, offset_pages;
-	struct drm_mm_node * node;
-	int ret;
-
-	ret = psb_gtt_remove_node(mm,
-							  (u32)ui32TaskId,
-							  (u32)hHandle,
-                              &node);
-	if(ret)
-	{
-		DRM_ERROR("remove node failed\n");
-		return ret;
-	}
-
-	/*remove gtt entries*/
-	offset_pages = node->start;
-	pages = node->size;
-
-	psb_gtt_remove_pages(pg, offset_pages, pages, 0, 0, 1);
-
-	/*free tt node*/
-	psb_gtt_mm_free_mem(mm, node);
-	return 0;
-}
diff --git a/drivers/staging/cdv/drv/psb_gtt.h b/drivers/staging/cdv/drv/psb_gtt.h
deleted file mode 100644
index 6966676..0000000
--- a/drivers/staging/cdv/drv/psb_gtt.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-
-#ifndef _PSB_GTT_H_
-#define _PSB_GTT_H_
-
-#include <drm/drmP.h>
-
-#include "img_types.h"
-
-struct psb_gtt {
-	struct drm_device *dev;
-	int initialized;
-	uint32_t gatt_start;
-	uint32_t mmu_gatt_start;
-	uint32_t ci_start;
-	uint32_t rar_start;
-	uint32_t gtt_start;
-	uint32_t gtt_phys_start;
-	unsigned gtt_pages;
-	unsigned gatt_pages;
-	uint32_t stolen_base;
-	void *vram_addr;
-	uint32_t pge_ctl;
-	u16 gmch_ctrl;
-	unsigned long stolen_size;
-	unsigned long vram_stolen_size;
-	unsigned long ci_stolen_size;
-	unsigned long rar_stolen_size;
-	uint32_t *gtt_map;
-	struct rw_semaphore sem;
-};
-
-struct psb_gtt_mm {
-	struct drm_mm base;
-	struct drm_open_hash hash;
-	uint32_t count;
-	spinlock_t lock;
-};
-
-struct psb_gtt_hash_entry {
-	struct drm_open_hash ht;
-	uint32_t count;
-	struct drm_hash_item item;
-};
-
-struct psb_gtt_mem_mapping {
-	struct drm_mm_node *node;
-	struct drm_hash_item item;
-};
-
-#if 0
-/*Ioctl args*/
-struct psb_gtt_mapping_arg {
-	IMG_HANDLE hKernelMemInfo;
-};
-#endif
-
-/*Exported functions*/
-extern int psb_gtt_init(struct psb_gtt *pg, int resume);
-extern int psb_gtt_insert_pages(struct psb_gtt *pg, struct page **pages,
-				unsigned offset_pages, unsigned num_pages,
-				unsigned desired_tile_stride,
-				unsigned hw_tile_stride, int type);
-extern int psb_gtt_remove_pages(struct psb_gtt *pg, unsigned offset_pages,
-				unsigned num_pages,
-				unsigned desired_tile_stride,
-				unsigned hw_tile_stride,
-				int rc_prot);
-
-extern struct psb_gtt *psb_gtt_alloc(struct drm_device *dev);
-extern void psb_gtt_takedown(struct psb_gtt *pg, int free);
-extern int psb_gtt_map_meminfo(struct drm_device *dev,
-				IMG_HANDLE hKernelMemInfo,
-				uint32_t *offset);
-extern int psb_gtt_unmap_meminfo(struct drm_device *dev,
-				 IMG_HANDLE hKernelMemInfo);
-extern int psb_gtt_map_meminfo_ioctl(struct drm_device *dev, void *data,
-				     struct drm_file *file_priv);
-extern int psb_gtt_unmap_meminfo_ioctl(struct drm_device *dev, void *data,
-				       struct drm_file *file_priv);
-extern int psb_gtt_mm_init(struct psb_gtt *pg);
-extern void psb_gtt_mm_takedown(void);
-
-extern int psb_gtt_map_pvr_memory(struct drm_device *dev,
-                                                                  unsigned int hHandle,
-                                                                  unsigned int ui32TaskId,
-                                                                  IMG_CPU_PHYADDR *pPages,
-                                                                  unsigned int ui32PagesNum,
-                                                                  unsigned int *ui32Offset);
-
-extern int psb_gtt_unmap_pvr_memory(struct drm_device *dev,
-                                                                        unsigned int hHandle,
-                                                                        unsigned int ui32TaskId);
-
-#endif
diff --git a/drivers/staging/cdv/drv/psb_hotplug.c b/drivers/staging/cdv/drv/psb_hotplug.c
deleted file mode 100644
index 61219e1..0000000
--- a/drivers/staging/cdv/drv/psb_hotplug.c
+++ /dev/null
@@ -1,439 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *    James C. Gualario <james.c.gualario@intel.com>
- *
- */
-
-#include "psb_umevents.h"
-#include "psb_hotplug.h"
-/**
- * inform the kernel of the work to be performed and related function.
- *
- */
-DECLARE_WORK(hotplug_dev_create_work, &psb_hotplug_dev_create_wq);
-DECLARE_WORK(hotplug_dev_remove_work, &psb_hotplug_dev_remove_wq);
-DECLARE_WORK(hotplug_dev_change_work, &psb_hotplug_dev_change_wq);
-/**
- * psb_hotplug_notify_change_um - notify user mode of hotplug changes
- *
- * @name: name of event to notify user mode of change to
- * @state: hotplug state to search for event object in
- *
- */
-int psb_hotplug_notify_change_um(const char *name,
-			     struct hotplug_state *state)
-{
-	strcpy(&(state->hotplug_change_wq_data.dev_name_arry
-		 [state->hotplug_change_wq_data.dev_name_write][0]), name);
-	state->hotplug_change_wq_data.dev_name_arry_rw_status
-		[state->hotplug_change_wq_data.dev_name_write] =
-		DRM_HOTPLUG_READY_TO_READ;
-	if (state->hotplug_change_wq_data.dev_name_read_write_wrap_ack == 1)
-		state->hotplug_change_wq_data.dev_name_read_write_wrap_ack = 0;
-	state->hotplug_change_wq_data.dev_name_write++;
-	if (state->hotplug_change_wq_data.dev_name_write ==
-	   state->hotplug_change_wq_data.dev_name_read) {
-		state->hotplug_change_wq_data.dev_name_write--;
-		return IRQ_NONE;
-	}
-	if (state->hotplug_change_wq_data.dev_name_write >
-	   DRM_HOTPLUG_RING_DEPTH_MAX) {
-		state->hotplug_change_wq_data.dev_name_write = 0;
-		state->hotplug_change_wq_data.dev_name_write_wrap = 1;
-	}
-	state->hotplug_change_wq_data.hotplug_dev_list = state->list;
-	queue_work(state->hotplug_wq, &(state->hotplug_change_wq_data.work));
-	return IRQ_HANDLED;
-}
-/**
- *
- * psb_hotplug_create_and_notify_um - create and notify user mode of new dev
- *
- * @name: name to give for new event / device
- * @state: hotplug state to track new event /device in
- *
- */
-int psb_hotplug_create_and_notify_um(const char *name,
-				 struct hotplug_state *state)
-{
-	strcpy(&(state->hotplug_create_wq_data.dev_name_arry
-		 [state->hotplug_create_wq_data.dev_name_write][0]), name);
-	state->hotplug_create_wq_data.dev_name_arry_rw_status
-		[state->hotplug_create_wq_data.dev_name_write] =
-		DRM_HOTPLUG_READY_TO_READ;
-	if (state->hotplug_create_wq_data.dev_name_read_write_wrap_ack == 1)
-		state->hotplug_create_wq_data.dev_name_read_write_wrap_ack = 0;
-	state->hotplug_create_wq_data.dev_name_write++;
-	if (state->hotplug_create_wq_data.dev_name_write ==
-	   state->hotplug_create_wq_data.dev_name_read) {
-		state->hotplug_create_wq_data.dev_name_write--;
-		return IRQ_NONE;
-	}
-	if (state->hotplug_create_wq_data.dev_name_write >
-	   DRM_HOTPLUG_RING_DEPTH_MAX) {
-		state->hotplug_create_wq_data.dev_name_write = 0;
-		state->hotplug_create_wq_data.dev_name_write_wrap = 1;
-	}
-	state->hotplug_create_wq_data.hotplug_dev_list = state->list;
-	queue_work(state->hotplug_wq, &(state->hotplug_create_wq_data.work));
-	return IRQ_HANDLED;
-}
-/*EXPORT_SYMBOL(psb_hotplug_create_and_notify_um); */
-/**
- * psb_hotplug_remove_and_notify_um - remove device and notify user mode
- *
- * @name: name of event / device to remove
- * @state: hotplug state to remove event / device from
- *
- */
-int psb_hotplug_remove_and_notify_um(const char *name,
-				 struct hotplug_state *state)
-{
-	strcpy(&(state->hotplug_remove_wq_data.dev_name_arry
-		 [state->hotplug_remove_wq_data.dev_name_write][0]), name);
-	state->hotplug_remove_wq_data.dev_name_arry_rw_status
-		[state->hotplug_remove_wq_data.dev_name_write] =
-		DRM_HOTPLUG_READY_TO_READ;
-	if (state->hotplug_remove_wq_data.dev_name_read_write_wrap_ack == 1)
-		state->hotplug_remove_wq_data.dev_name_read_write_wrap_ack = 0;
-	state->hotplug_remove_wq_data.dev_name_write++;
-	if (state->hotplug_remove_wq_data.dev_name_write ==
-	   state->hotplug_remove_wq_data.dev_name_read) {
-		state->hotplug_remove_wq_data.dev_name_write--;
-		return IRQ_NONE;
-	}
-	if (state->hotplug_remove_wq_data.dev_name_write >
-	   DRM_HOTPLUG_RING_DEPTH_MAX) {
-		state->hotplug_remove_wq_data.dev_name_write = 0;
-		state->hotplug_remove_wq_data.dev_name_write_wrap = 1;
-	}
-	state->hotplug_remove_wq_data.hotplug_dev_list = state->list;
-	queue_work(state->hotplug_wq, &(state->hotplug_remove_wq_data.work));
-	return IRQ_HANDLED;
-}
-/*EXPORT_SYMBOL(psb_hotplug_remove_and_notify_um); */
-/**
- * psb_hotplug_device_pool_create_and_init - make new hotplug device pool
- *
- * @parent_kobj: parent kobject to associate hotplug kset with
- * @state: hotplug state to assocaite workqueues with
- *
- */
-struct umevent_list *psb_hotplug_device_pool_create_and_init(
-				     struct kobject *parent_kobj,
-				     struct hotplug_state *state)
-{
-	struct umevent_list *new_hotplug_dev_list = NULL;
-
-	new_hotplug_dev_list = psb_umevent_create_list();
-	if (new_hotplug_dev_list)
-		psb_umevent_init(parent_kobj, new_hotplug_dev_list,
-				 "psb_hotplug");
-
-	state->hotplug_wq = create_singlethread_workqueue("hotplug-wq");
-	if (!state->hotplug_wq)
-		return NULL;
-
-	INIT_WORK(&state->hotplug_create_wq_data.work,
-		  psb_hotplug_dev_create_wq);
-	INIT_WORK(&state->hotplug_remove_wq_data.work,
-		  psb_hotplug_dev_remove_wq);
-	INIT_WORK(&state->hotplug_change_wq_data.work,
-		  psb_hotplug_dev_change_wq);
-
-	state->hotplug_create_wq_data.dev_name_read = 0;
-	state->hotplug_create_wq_data.dev_name_write = 0;
-	state->hotplug_create_wq_data.dev_name_write_wrap = 0;
-	state->hotplug_create_wq_data.dev_name_read_write_wrap_ack = 0;
-	memset(&(state->hotplug_create_wq_data.dev_name_arry_rw_status[0]),
-	       0, sizeof(int)*DRM_HOTPLUG_RING_DEPTH);
-
-	state->hotplug_remove_wq_data.dev_name_read = 0;
-	state->hotplug_remove_wq_data.dev_name_write = 0;
-	state->hotplug_remove_wq_data.dev_name_write_wrap = 0;
-	state->hotplug_remove_wq_data.dev_name_read_write_wrap_ack = 0;
-	memset(&(state->hotplug_remove_wq_data.dev_name_arry_rw_status[0]),
-	       0, sizeof(int)*DRM_HOTPLUG_RING_DEPTH);
-
-	state->hotplug_change_wq_data.dev_name_read = 0;
-	state->hotplug_change_wq_data.dev_name_write = 0;
-	state->hotplug_change_wq_data.dev_name_write_wrap = 0;
-	state->hotplug_change_wq_data.dev_name_read_write_wrap_ack = 0;
-	memset(&(state->hotplug_change_wq_data.dev_name_arry_rw_status[0]),
-	       0, sizeof(int)*DRM_HOTPLUG_RING_DEPTH);
-
-	return new_hotplug_dev_list;
-}
-/*EXPORT_SYMBOL(psb_hotplug_device_pool_create_and_init); */
-/**
- *
- * psb_hotplug_init - init hotplug subsystem
- *
- * @parent_kobj: parent kobject to associate hotplug state with
- *
- */
-struct hotplug_state *psb_hotplug_init(struct kobject *parent_kobj)
-{
-	struct hotplug_state *state;
-	state = kzalloc(sizeof(struct hotplug_state), GFP_KERNEL);
-
-	if (!state)
-		return state;
-
-	state->list = NULL;
-	state->list = psb_hotplug_device_pool_create_and_init(
-						      parent_kobj,
-						      state);
-
-	psb_hotplug_create_and_notify_um("hpd_hdmi", state);
-
-	return state;
-}
-/**
- * psb_hotplug_device_pool_destroy - destroy all hotplug related resources
- *
- * @state: hotplug state to destroy
- *
- */
-void psb_hotplug_device_pool_destroy(struct hotplug_state *state)
-{
-	flush_workqueue(state->hotplug_wq);
-	destroy_workqueue(state->hotplug_wq);
-	psb_umevent_cleanup(state->list);
-	kfree(state);
-}
-/*EXPORT_SYMBOL(psb_hotplug_device_pool_destroy); */
-/**
- * psb_hotplug_dev_create_wq - create workqueue implementation
- *
- * @work: work struct to use for kernel scheduling
- *
- */
-void psb_hotplug_dev_create_wq(struct work_struct *work)
-{
-	struct hotplug_disp_workqueue_data *wq_data;
-	/* struct umevent_obj *wq_working_hotplug_disp_obj; */
-	wq_data = to_hotplug_disp_workqueue_data(work);
-	if (wq_data->dev_name_write_wrap == 1) {
-		wq_data->dev_name_read_write_wrap_ack = 1;
-		wq_data->dev_name_write_wrap = 0;
-		while (wq_data->dev_name_read != DRM_HOTPLUG_RING_DEPTH_MAX) {
-			if (wq_data->dev_name_arry_rw_status
-			   [wq_data->dev_name_read] ==
-			   DRM_HOTPLUG_READY_TO_READ) {
-				/*
-				wq_working_hotplug_disp_obj =
-				psb_create_umevent_obj(
-					&wq_data->dev_name_arry
-					[wq_data->dev_name_read][0],
-					wq_data->hotplug_dev_list);
-				*/
-				wq_data->dev_name_arry_rw_status
-					[wq_data->dev_name_read] =
-					DRM_HOTPLUG_READ_COMPLETE;
-				/* psb_umevent_notify
-					(wq_working_hotplug_disp_obj);*/
-			}
-			wq_data->dev_name_read++;
-		}
-		wq_data->dev_name_read = 0;
-		while (wq_data->dev_name_read < wq_data->dev_name_write-1) {
-			if (wq_data->dev_name_arry_rw_status
-			   [wq_data->dev_name_read] ==
-			   DRM_HOTPLUG_READY_TO_READ) {
-				/*
-				wq_working_hotplug_disp_obj =
-				psb_create_umevent_obj(
-					&wq_data->dev_name_arry
-					[wq_data->dev_name_read][0],
-					wq_data->hotplug_dev_list);
-				*/
-				wq_data->dev_name_arry_rw_status
-					[wq_data->dev_name_read] =
-					DRM_HOTPLUG_READ_COMPLETE;
-				/*psb_umevent_notify
-					(wq_working_hotplug_disp_obj);*/
-			}
-			wq_data->dev_name_read++;
-		}
-	} else {
-		while (wq_data->dev_name_read < wq_data->dev_name_write) {
-			if (wq_data->dev_name_arry_rw_status
-			   [wq_data->dev_name_read] ==
-			   DRM_HOTPLUG_READY_TO_READ) {
-				/*
-				wq_working_hotplug_disp_obj =
-				psb_create_umevent_obj(
-				&wq_data->dev_name_arry
-					[wq_data->dev_name_read][0],
-					wq_data->hotplug_dev_list);
-				*/
-				wq_data->dev_name_arry_rw_status
-					[wq_data->dev_name_read] =
-					DRM_HOTPLUG_READ_COMPLETE;
-				/*psb_umevent_notify
-					(wq_working_hotplug_disp_obj);*/
-			}
-			wq_data->dev_name_read++;
-		}
-	}
-	if (wq_data->dev_name_read > DRM_HOTPLUG_RING_DEPTH_MAX)
-		wq_data->dev_name_read = 0;
-}
-/*EXPORT_SYMBOL(psb_hotplug_dev_create_wq); */
-/**
- * psb_hotplug_dev_remove_wq - remove workqueue implementation
- *
- * @work: work struct to use for kernel scheduling
- *
- */
-void psb_hotplug_dev_remove_wq(struct work_struct *work)
-{
-	struct hotplug_disp_workqueue_data *wq_data;
-	wq_data = to_hotplug_disp_workqueue_data(work);
-	if (wq_data->dev_name_write_wrap == 1) {
-		wq_data->dev_name_read_write_wrap_ack = 1;
-		wq_data->dev_name_write_wrap = 0;
-		while (wq_data->dev_name_read != DRM_HOTPLUG_RING_DEPTH_MAX) {
-			if (wq_data->dev_name_arry_rw_status
-			   [wq_data->dev_name_read] ==
-			   DRM_HOTPLUG_READY_TO_READ) {
-				psb_umevent_remove_from_list(
-				wq_data->hotplug_dev_list,
-				&wq_data->dev_name_arry
-				[wq_data->dev_name_read][0]);
-				wq_data->dev_name_arry_rw_status
-				[wq_data->dev_name_read] =
-				DRM_HOTPLUG_READ_COMPLETE;
-			}
-			wq_data->dev_name_read++;
-		}
-		wq_data->dev_name_read = 0;
-		while (wq_data->dev_name_read < wq_data->dev_name_write-1) {
-			if (wq_data->dev_name_arry_rw_status
-			   [wq_data->dev_name_read] ==
-			   DRM_HOTPLUG_READY_TO_READ) {
-				psb_umevent_remove_from_list(
-				wq_data->hotplug_dev_list,
-				&wq_data->dev_name_arry
-				[wq_data->dev_name_read][0]);
-				wq_data->dev_name_arry_rw_status
-				[wq_data->dev_name_read] =
-				DRM_HOTPLUG_READ_COMPLETE;
-			}
-			wq_data->dev_name_read++;
-		}
-	} else {
-		while (wq_data->dev_name_read < wq_data->dev_name_write) {
-			if (wq_data->dev_name_arry_rw_status
-			   [wq_data->dev_name_read] ==
-			   DRM_HOTPLUG_READY_TO_READ) {
-				psb_umevent_remove_from_list(
-				wq_data->hotplug_dev_list,
-				&wq_data->dev_name_arry
-				[wq_data->dev_name_read][0]);
-				wq_data->dev_name_arry_rw_status
-				[wq_data->dev_name_read] =
-				DRM_HOTPLUG_READ_COMPLETE;
-			}
-			wq_data->dev_name_read++;
-		}
-	}
-	if (wq_data->dev_name_read > DRM_HOTPLUG_RING_DEPTH_MAX)
-		wq_data->dev_name_read = 0;
-}
-/*EXPORT_SYMBOL(psb_hotplug_dev_remove_wq); */
-/**
- * psb_hotplug_dev_change_wq - change workqueue implementation
- *
- * @work: work struct to use for kernel scheduling
- *
- */
-void psb_hotplug_dev_change_wq(struct work_struct *work)
-{
-	struct hotplug_disp_workqueue_data *wq_data;
-	struct umevent_obj *wq_working_hotplug_disp_obj;
-
-	wq_data = to_hotplug_disp_workqueue_data(work);
-	if (wq_data->dev_name_write_wrap == 1) {
-		wq_data->dev_name_read_write_wrap_ack = 1;
-		wq_data->dev_name_write_wrap = 0;
-		while (wq_data->dev_name_read != DRM_HOTPLUG_RING_DEPTH_MAX) {
-			if (wq_data->dev_name_arry_rw_status
-			   [wq_data->dev_name_read] ==
-			   DRM_HOTPLUG_READY_TO_READ) {
-				wq_data->dev_name_arry_rw_status
-				[wq_data->dev_name_read] =
-				DRM_HOTPLUG_READ_COMPLETE;
-
-				wq_working_hotplug_disp_obj =
-					psb_umevent_find_obj(
-					     &wq_data->dev_name_arry
-					     [wq_data->dev_name_read][0],
-					      wq_data->hotplug_dev_list);
-				psb_umevent_notify_change_gfxsock
-					(wq_working_hotplug_disp_obj,
-					 DRM_HOTPLUG_SOCKET_GROUP_ID);
-			}
-			wq_data->dev_name_read++;
-		}
-		wq_data->dev_name_read = 0;
-		while (wq_data->dev_name_read < wq_data->dev_name_write-1) {
-			if (wq_data->dev_name_arry_rw_status
-			   [wq_data->dev_name_read] ==
-			   DRM_HOTPLUG_READY_TO_READ) {
-				wq_data->dev_name_arry_rw_status
-				[wq_data->dev_name_read] =
-				DRM_HOTPLUG_READ_COMPLETE;
-
-				wq_working_hotplug_disp_obj =
-					psb_umevent_find_obj(
-					     &wq_data->dev_name_arry
-					     [wq_data->dev_name_read][0],
-					      wq_data->hotplug_dev_list);
-				psb_umevent_notify_change_gfxsock
-					(wq_working_hotplug_disp_obj,
-					 DRM_HOTPLUG_SOCKET_GROUP_ID);
-			}
-			wq_data->dev_name_read++;
-		}
-	} else {
-		while (wq_data->dev_name_read < wq_data->dev_name_write) {
-			if (wq_data->dev_name_arry_rw_status
-			   [wq_data->dev_name_read] ==
-			   DRM_HOTPLUG_READY_TO_READ) {
-				wq_data->dev_name_arry_rw_status
-				[wq_data->dev_name_read] =
-					DRM_HOTPLUG_READ_COMPLETE;
-
-				wq_working_hotplug_disp_obj =
-					psb_umevent_find_obj(
-					     &wq_data->dev_name_arry
-					     [wq_data->dev_name_read][0],
-					      wq_data->hotplug_dev_list);
-				psb_umevent_notify_change_gfxsock
-					(wq_working_hotplug_disp_obj,
-					 DRM_HOTPLUG_SOCKET_GROUP_ID);
-			}
-			wq_data->dev_name_read++;
-		}
-	}
-	if (wq_data->dev_name_read > DRM_HOTPLUG_RING_DEPTH_MAX)
-		wq_data->dev_name_read = 0;
-}
-/*EXPORT_SYMBOL(psb_hotplug_dev_change_wq); */
diff --git a/drivers/staging/cdv/drv/psb_hotplug.h b/drivers/staging/cdv/drv/psb_hotplug.h
deleted file mode 100644
index cffede5..0000000
--- a/drivers/staging/cdv/drv/psb_hotplug.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *    James C. Gualario <james.c.gualario@intel.com>
- *
- */
-#ifndef _PSB_HOTPLUG_H_
-#define _PSB_HOTPLUG_H_
-/**
- * required includes
- *
- */
-#include "psb_umevents.h"
-/**
- * hotplug specific defines
- *
- */
-#define DRM_HOTPLUG_RING_DEPTH 256
-#define DRM_HOTPLUG_RING_DEPTH_MAX (DRM_HOTPLUG_RING_DEPTH-1)
-#define DRM_HOTPLUG_READY_TO_READ 1
-#define DRM_HOTPLUG_READ_COMPLETE 2
-/**
- * hotplug workqueue data struct.
- */
-struct hotplug_disp_workqueue_data {
-	struct work_struct work;
-	const char *dev_name;
-	int dev_name_write;
-	int dev_name_read;
-	int dev_name_write_wrap;
-	int dev_name_read_write_wrap_ack;
-	char dev_name_arry[DRM_HOTPLUG_RING_DEPTH][24];
-	int dev_name_arry_rw_status[DRM_HOTPLUG_RING_DEPTH];
-	struct umevent_list *hotplug_dev_list;
-};
-/**
- * hotplug state structure
- *
- */
-struct hotplug_state {
-	struct workqueue_struct *hotplug_wq;
-	struct hotplug_disp_workqueue_data hotplug_remove_wq_data;
-	struct hotplug_disp_workqueue_data hotplug_create_wq_data;
-	struct hotplug_disp_workqueue_data hotplug_change_wq_data;
-	struct umevent_list *list;
-};
-/**
- * main interface function prototytpes for hotplug support.
- *
- */
-struct hotplug_state *psb_hotplug_init(struct kobject *parent_kobj);
-extern int psb_hotplug_notify_change_um(const char *name,
-				    struct hotplug_state *state);
-extern int psb_hotplug_create_and_notify_um(const char *name,
-					struct hotplug_state *state);
-extern int psb_hotplug_remove_and_notify_um(const char *name,
-					struct hotplug_state *state);
-extern struct umevent_list *psb_hotplug_device_pool_create_and_init(
-					    struct kobject *parent_kobj,
-					    struct hotplug_state *state);
-extern void psb_hotplug_device_pool_destroy(struct hotplug_state *state);
-/**
- * to go back and forth between work strauct and workqueue data
- *
- */
-#define to_hotplug_disp_workqueue_data(x) \
-	container_of(x, struct hotplug_disp_workqueue_data, work)
-
-/**
- * function prototypes for workqueue implementation
- *
- */
-extern void psb_hotplug_dev_create_wq(struct work_struct *work);
-extern void psb_hotplug_dev_remove_wq(struct work_struct *work);
-extern void psb_hotplug_dev_change_wq(struct work_struct *work);
-#endif
diff --git a/drivers/staging/cdv/drv/psb_intel_bios.c b/drivers/staging/cdv/drv/psb_intel_bios.c
deleted file mode 100644
index b82bd85..0000000
--- a/drivers/staging/cdv/drv/psb_intel_bios.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Copyright (c) 2011 Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *    Eric Anholt <eric@anholt.net>
- *
- */
-#include <drm/drmP.h>
-#include <drm/drm.h>
-#include "psb_drm.h"
-#include "psb_drv.h"
-#include "psb_intel_drv.h"
-#include "psb_intel_reg.h"
-#include "psb_intel_bios.h"
-
-
-static void *find_section(struct bdb_header *bdb, int section_id)
-{
-	u8 *base = (u8 *)bdb;
-	int index = 0;
-	u16 total, current_size;
-	u8 current_id;
-
-	/* skip to first section */
-	index += bdb->header_size;
-	total = bdb->bdb_size;
-
-	/* walk the sections looking for section_id */
-	while (index < total) {
-		current_id = *(base + index);
-		index++;
-		current_size = *((u16 *)(base + index));
-		index += 2;
-		if (current_id == section_id)
-			return base + index;
-		index += current_size;
-	}
-
-	return NULL;
-}
-
-static void fill_detail_timing_data(struct drm_display_mode *panel_fixed_mode,
-			struct lvds_dvo_timing *dvo_timing)
-{
-	panel_fixed_mode->hdisplay = (dvo_timing->hactive_hi << 8) |
-		dvo_timing->hactive_lo;
-	panel_fixed_mode->hsync_start = panel_fixed_mode->hdisplay +
-		((dvo_timing->hsync_off_hi << 8) | dvo_timing->hsync_off_lo);
-	panel_fixed_mode->hsync_end = panel_fixed_mode->hsync_start +
-		dvo_timing->hsync_pulse_width;
-	panel_fixed_mode->htotal = panel_fixed_mode->hdisplay +
-		((dvo_timing->hblank_hi << 8) | dvo_timing->hblank_lo);
-
-	panel_fixed_mode->vdisplay = (dvo_timing->vactive_hi << 8) |
-		dvo_timing->vactive_lo;
-	panel_fixed_mode->vsync_start = panel_fixed_mode->vdisplay +
-		dvo_timing->vsync_off;
-	panel_fixed_mode->vsync_end = panel_fixed_mode->vsync_start +
-		dvo_timing->vsync_pulse_width;
-	panel_fixed_mode->vtotal = panel_fixed_mode->vdisplay +
-		((dvo_timing->vblank_hi << 8) | dvo_timing->vblank_lo);
-	panel_fixed_mode->clock = dvo_timing->clock * 10;
-	panel_fixed_mode->type = DRM_MODE_TYPE_PREFERRED;
-
-	/* Some VBTs have bogus h/vtotal values */
-	if (panel_fixed_mode->hsync_end > panel_fixed_mode->htotal)
-		panel_fixed_mode->htotal = panel_fixed_mode->hsync_end + 1;
-	if (panel_fixed_mode->vsync_end > panel_fixed_mode->vtotal)
-		panel_fixed_mode->vtotal = panel_fixed_mode->vsync_end + 1;
-
-	drm_mode_set_name(panel_fixed_mode);
-}
-
-static void parse_backlight_data(struct drm_psb_private *dev_priv,
-				struct bdb_header *bdb)
-{
-	struct bdb_lvds_backlight *vbt_lvds_bl = NULL;
-	struct bdb_lvds_backlight *lvds_bl;
-	u8 p_type = 0;
-	void *bl_start = NULL;
-	struct bdb_lvds_options *lvds_opts
-				= find_section(bdb, BDB_LVDS_OPTIONS);
-
-	dev_priv->lvds_bl = NULL;
-
-	if (lvds_opts) {
-		DRM_DEBUG("lvds_options found at %p\n", lvds_opts);
-		p_type = lvds_opts->panel_type;
-	} else {
-		DRM_DEBUG("no lvds_options\n");
-		return;
-	}
-
-	bl_start = find_section(bdb, BDB_LVDS_BACKLIGHT);
-	vbt_lvds_bl = (struct bdb_lvds_backlight *)(bl_start + 1) + p_type;
-
-	lvds_bl = kzalloc(sizeof(*vbt_lvds_bl), GFP_KERNEL);
-	if (!lvds_bl) {
-		DRM_DEBUG("No memory\n");
-		return;
-	}
-
-	memcpy(lvds_bl, vbt_lvds_bl, sizeof(*vbt_lvds_bl));
-
-	dev_priv->lvds_bl = lvds_bl;
-}
-
-/* Try to find integrated panel data */
-static void parse_lfp_panel_data(struct drm_psb_private *dev_priv,
-			    struct bdb_header *bdb)
-{
-	struct bdb_lvds_options *lvds_options;
-	struct bdb_lvds_lfp_data *lvds_lfp_data;
-	struct bdb_lvds_lfp_data_entry *entry;
-	struct lvds_dvo_timing *dvo_timing;
-	struct drm_display_mode *panel_fixed_mode;
-
-	/* Defaults if we can't find VBT info */
-	dev_priv->lvds_dither = 0;
-	dev_priv->lvds_vbt = 0;
-
-	lvds_options = find_section(bdb, BDB_LVDS_OPTIONS);
-	if (!lvds_options)
-		return;
-
-	dev_priv->lvds_dither = lvds_options->pixel_dither;
-	if (lvds_options->panel_type == 0xff)
-		return;
-
-	lvds_lfp_data = find_section(bdb, BDB_LVDS_LFP_DATA);
-	if (!lvds_lfp_data)
-		return;
-
-	dev_priv->lvds_vbt = 1;
-
-	entry = &lvds_lfp_data->data[lvds_options->panel_type];
-	dvo_timing = &entry->dvo_timing;
-
-	panel_fixed_mode = kzalloc(sizeof(*panel_fixed_mode),
-				      GFP_KERNEL);
-
-	if (!panel_fixed_mode) {
-		DRM_DEBUG("Out of memory\n");
-		return;
-	}
-	fill_detail_timing_data(panel_fixed_mode, dvo_timing);
-
-	dev_priv->lfp_lvds_vbt_mode = panel_fixed_mode;
-
-	DRM_DEBUG("Found panel mode in BIOS VBT tables:\n");
-	drm_mode_debug_printmodeline(panel_fixed_mode);
-
-	return;
-}
-
-static void parse_general_features(struct drm_psb_private *dev_priv,
-		       struct bdb_header *bdb)
-{
-	struct bdb_general_features *general;
-
-	/* Set sensible defaults in case we can't find the general block */
-	dev_priv->int_tv_support = 1;
-	dev_priv->int_crt_support = 1;
-
-	general = find_section(bdb, BDB_GENERAL_FEATURES);
-	if (general) {
-		dev_priv->int_tv_support = general->int_tv_support;
-		dev_priv->int_crt_support = general->int_crt_support;
-		dev_priv->lvds_use_ssc = general->enable_ssc;
-
-		if (dev_priv->lvds_use_ssc) {
-			if (IS_I855(dev_priv->dev))
-				dev_priv->lvds_ssc_freq
-					= general->ssc_freq ? 66 : 48;
-			else
-				dev_priv->lvds_ssc_freq
-					= general->ssc_freq ? 100 : 96;
-		}
-	}
-}
-
-static void
-parse_driver_features(struct drm_psb_private *dev_priv,
-		      struct bdb_header *bdb)
-{
-	struct bdb_driver_features *driver;
-
-	driver = find_section(bdb, BDB_DRIVER_FEATURES);
-	if (!driver)
-		return;
-
-	/* This bit means to use 96Mhz for DPLL_A or not */
-	if (driver->primary_lfp_id)
-		dev_priv->dplla_96mhz = true;
-	else
-		dev_priv->dplla_96mhz = false;
-}
-
-
-/**
- * psb_intel_init_bios - initialize VBIOS settings & find VBT
- * @dev: DRM device
- *
- * Loads the Video BIOS and checks that the VBT exists.  Sets scratch registers
- * to appropriate values.
- *
- * VBT existence is a sanity check that is relied on by other i830_bios.c code.
- * Note that it would be better to use a BIOS call to get the VBT, as BIOSes may
- * feed an updated VBT back through that, compared to what we'll fetch using
- * this method of groping around in the BIOS data.
- *
- * Returns 0 on success, nonzero on failure.
- */
-bool psb_intel_init_bios(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct pci_dev *pdev = dev->pdev;
-	struct vbt_header *vbt = NULL;
-	struct bdb_header *bdb;
-	u8 __iomem *bios;
-	size_t size;
-	int i;
-
-	bios = pci_map_rom(pdev, &size);
-	if (!bios)
-		return -1;
-
-	/* Scour memory looking for the VBT signature */
-	for (i = 0; i + 4 < size; i++) {
-		if (!memcmp(bios + i, "$VBT", 4)) {
-			vbt = (struct vbt_header *)(bios + i);
-			break;
-		}
-	}
-
-	if (!vbt) {
-		DRM_ERROR("VBT signature missing\n");
-		pci_unmap_rom(pdev, bios);
-		return -1;
-	}
-
-	bdb = (struct bdb_header *)(bios + i + vbt->bdb_offset);
-
-	/* Grab useful general definitions */
-	parse_general_features(dev_priv, bdb);
-	parse_driver_features(dev_priv, bdb);
-	parse_lfp_panel_data(dev_priv, bdb);
-	parse_backlight_data(dev_priv, bdb);
-
-	pci_unmap_rom(pdev, bios);
-
-	return 0;
-}
-
-/**
- * Destory and free VBT data
- */
-void psb_intel_destory_bios(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct drm_display_mode *lfp_lvds_vbt_mode =
-				dev_priv->lfp_lvds_vbt_mode;
-	struct bdb_lvds_backlight *lvds_bl =
-				dev_priv->lvds_bl;
-
-
-	if (lfp_lvds_vbt_mode) {
-		dev_priv->lfp_lvds_vbt_mode = NULL;
-		kfree(lfp_lvds_vbt_mode);
-	}
-
-	if (lvds_bl) {
-		dev_priv->lvds_bl = NULL;
-		kfree(lvds_bl);
-	}
-}
diff --git a/drivers/staging/cdv/drv/psb_intel_bios.h b/drivers/staging/cdv/drv/psb_intel_bios.h
deleted file mode 100644
index 4d1c0a6..0000000
--- a/drivers/staging/cdv/drv/psb_intel_bios.h
+++ /dev/null
@@ -1,470 +0,0 @@
-/*
- * Copyright (c) 2011 Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *    Eric Anholt <eric@anholt.net>
- *
- */
-
-#ifndef _I830_BIOS_H_
-#define _I830_BIOS_H_
-
-#include <drm/drmP.h>
-
-struct vbt_header {
-	u8 signature[20];		/**< Always starts with 'VBT$' */
-	u16 version;			/**< decimal */
-	u16 header_size;		/**< in bytes */
-	u16 vbt_size;			/**< in bytes */
-	u8 vbt_checksum;
-	u8 reserved0;
-	u32 bdb_offset;			/**< from beginning of VBT */
-	u32 aim_offset[4];		/**< from beginning of VBT */
-} __attribute__((packed));
-
-
-struct bdb_header {
-	u8 signature[16];		/**< Always 'BIOS_DATA_BLOCK' */
-	u16 version;			/**< decimal */
-	u16 header_size;		/**< in bytes */
-	u16 bdb_size;			/**< in bytes */
-};
-
-/* strictly speaking, this is a "skip" block, but it has interesting info */
-struct vbios_data {
-	u8 type; /* 0 == desktop, 1 == mobile */
-	u8 relstage;
-	u8 chipset;
-	u8 lvds_present:1;
-	u8 tv_present:1;
-	u8 rsvd2:6; /* finish byte */
-	u8 rsvd3[4];
-	u8 signon[155];
-	u8 copyright[61];
-	u16 code_segment;
-	u8 dos_boot_mode;
-	u8 bandwidth_percent;
-	u8 rsvd4; /* popup memory size */
-	u8 resize_pci_bios;
-	u8 rsvd5; /* is crt already on ddc2 */
-} __attribute__((packed));
-
-/*
- * There are several types of BIOS data blocks (BDBs), each block has
- * an ID and size in the first 3 bytes (ID in first, size in next 2).
- * Known types are listed below.
- */
-#define BDB_GENERAL_FEATURES	  1
-#define BDB_GENERAL_DEFINITIONS	  2
-#define BDB_OLD_TOGGLE_LIST	  3
-#define BDB_MODE_SUPPORT_LIST	  4
-#define BDB_GENERIC_MODE_TABLE	  5
-#define BDB_EXT_MMIO_REGS	  6
-#define BDB_SWF_IO		  7
-#define BDB_SWF_MMIO		  8
-#define BDB_DOT_CLOCK_TABLE	  9
-#define BDB_MODE_REMOVAL_TABLE	 10
-#define BDB_CHILD_DEVICE_TABLE	 11
-#define BDB_DRIVER_FEATURES	 12
-#define BDB_DRIVER_PERSISTENCE	 13
-#define BDB_EXT_TABLE_PTRS	 14
-#define BDB_DOT_CLOCK_OVERRIDE	 15
-#define BDB_DISPLAY_SELECT	 16
-/* 17 rsvd */
-#define BDB_DRIVER_ROTATION	 18
-#define BDB_DISPLAY_REMOVE	 19
-#define BDB_OEM_CUSTOM		 20
-#define BDB_EFP_LIST		 21 /* workarounds for VGA hsync/vsync */
-#define BDB_SDVO_LVDS_OPTIONS	 22
-#define BDB_SDVO_PANEL_DTDS	 23
-#define BDB_SDVO_LVDS_PNP_IDS	 24
-#define BDB_SDVO_LVDS_POWER_SEQ	 25
-#define BDB_TV_OPTIONS		 26
-#define BDB_LVDS_OPTIONS	 40
-#define BDB_LVDS_LFP_DATA_PTRS	 41
-#define BDB_LVDS_LFP_DATA	 42
-#define BDB_LVDS_BACKLIGHT	 43
-#define BDB_LVDS_POWER		 44
-#define BDB_SKIP		254 /* VBIOS private block, ignore */
-
-struct bdb_general_features {
-	/* bits 1 */
-	u8 panel_fitting:2;
-	u8 flexaim:1;
-	u8 msg_enable:1;
-	u8 clear_screen:3;
-	u8 color_flip:1;
-
-	/* bits 2 */
-	u8 download_ext_vbt:1;
-	u8 enable_ssc:1;
-	u8 ssc_freq:1;
-	u8 enable_lfp_on_override:1;
-	u8 disable_ssc_ddt:1;
-	u8 rsvd8:3; /* finish byte */
-
-	/* bits 3 */
-	u8 disable_smooth_vision:1;
-	u8 single_dvi:1;
-	u8 rsvd9:6; /* finish byte */
-
-	/* bits 4 */
-	u8 legacy_monitor_detect;
-
-	/* bits 5 */
-	u8 int_crt_support:1;
-	u8 int_tv_support:1;
-	u8 rsvd11:6; /* finish byte */
-} __attribute__((packed));
-
-struct bdb_general_definitions {
-	/* DDC GPIO */
-	u8 crt_ddc_gmbus_pin;
-
-	/* DPMS bits */
-	u8 dpms_acpi:1;
-	u8 skip_boot_crt_detect:1;
-	u8 dpms_aim:1;
-	u8 rsvd1:5; /* finish byte */
-
-	/* boot device bits */
-	u8 boot_display[2];
-	u8 child_dev_size;
-
-	/* device info */
-	u8 tv_or_lvds_info[33];
-	u8 dev1[33];
-	u8 dev2[33];
-	u8 dev3[33];
-	u8 dev4[33];
-	/* may be another device block here on some platforms */
-};
-
-struct bdb_lvds_options {
-	u8 panel_type;
-	u8 rsvd1;
-	/* LVDS capabilities, stored in a dword */
-	u8 pfit_mode:2;
-	u8 pfit_text_mode_enhanced:1;
-	u8 pfit_gfx_mode_enhanced:1;
-	u8 pfit_ratio_auto:1;
-	u8 pixel_dither:1;
-	u8 lvds_edid:1;
-	u8 rsvd2:1;
-	u8 rsvd4;
-} __attribute__((packed));
-
-struct bdb_lvds_backlight {
-	u8 type:2;
-	u8 pol:1;
-	u8 gpio:3;
-	u8 gmbus:2;
-	u16 freq;
-	u8 minbrightness;
-	u8 i2caddr;
-	u8 brightnesscmd;
-	/*FIXME: more...*/
-} __attribute__((packed));
-
-/* LFP pointer table contains entries to the struct below */
-struct bdb_lvds_lfp_data_ptr {
-	u16 fp_timing_offset; /* offsets are from start of bdb */
-	u8 fp_table_size;
-	u16 dvo_timing_offset;
-	u8 dvo_table_size;
-	u16 panel_pnp_id_offset;
-	u8 pnp_table_size;
-} __attribute__((packed));
-
-struct bdb_lvds_lfp_data_ptrs {
-	u8 lvds_entries; /* followed by one or more lvds_data_ptr structs */
-	struct bdb_lvds_lfp_data_ptr ptr[16];
-} __attribute__((packed));
-
-/* LFP data has 3 blocks per entry */
-struct lvds_fp_timing {
-	u16 x_res;
-	u16 y_res;
-	u32 lvds_reg;
-	u32 lvds_reg_val;
-	u32 pp_on_reg;
-	u32 pp_on_reg_val;
-	u32 pp_off_reg;
-	u32 pp_off_reg_val;
-	u32 pp_cycle_reg;
-	u32 pp_cycle_reg_val;
-	u32 pfit_reg;
-	u32 pfit_reg_val;
-	u16 terminator;
-} __attribute__((packed));
-
-struct lvds_dvo_timing {
-	u16 clock;		/**< In 10khz */
-	u8 hactive_lo;
-	u8 hblank_lo;
-	u8 hblank_hi:4;
-	u8 hactive_hi:4;
-	u8 vactive_lo;
-	u8 vblank_lo;
-	u8 vblank_hi:4;
-	u8 vactive_hi:4;
-	u8 hsync_off_lo;
-	u8 hsync_pulse_width;
-	u8 vsync_pulse_width:4;
-	u8 vsync_off:4;
-	u8 rsvd0:6;
-	u8 hsync_off_hi:2;
-	u8 h_image;
-	u8 v_image;
-	u8 max_hv;
-	u8 h_border;
-	u8 v_border;
-	u8 rsvd1:3;
-	u8 digital:2;
-	u8 vsync_positive:1;
-	u8 hsync_positive:1;
-	u8 rsvd2:1;
-} __attribute__((packed));
-
-struct lvds_pnp_id {
-	u16 mfg_name;
-	u16 product_code;
-	u32 serial;
-	u8 mfg_week;
-	u8 mfg_year;
-} __attribute__((packed));
-
-struct bdb_lvds_lfp_data_entry {
-	struct lvds_fp_timing fp_timing;
-	struct lvds_dvo_timing dvo_timing;
-	struct lvds_pnp_id pnp_id;
-} __attribute__((packed));
-
-struct bdb_lvds_lfp_data {
-	struct bdb_lvds_lfp_data_entry data[16];
-} __attribute__((packed));
-
-struct aimdb_header {
-	char signature[16];
-	char oem_device[20];
-	u16 aimdb_version;
-	u16 aimdb_header_size;
-	u16 aimdb_size;
-} __attribute__((packed));
-
-struct aimdb_block {
-	u8 aimdb_id;
-	u16 aimdb_size;
-} __attribute__((packed));
-
-struct vch_panel_data {
-	u16 fp_timing_offset;
-	u8 fp_timing_size;
-	u16 dvo_timing_offset;
-	u8 dvo_timing_size;
-	u16 text_fitting_offset;
-	u8 text_fitting_size;
-	u16 graphics_fitting_offset;
-	u8 graphics_fitting_size;
-} __attribute__((packed));
-
-struct vch_bdb_22 {
-	struct aimdb_block aimdb_block;
-	struct vch_panel_data panels[16];
-} __attribute__((packed));
-
-struct bdb_sdvo_lvds_options {
-	u8 panel_backlight;
-	u8 h40_set_panel_type;
-	u8 panel_type;
-	u8 ssc_clk_freq;
-	u16 als_low_trip;
-	u16 als_high_trip;
-	u8 sclalarcoeff_tab_row_num;
-	u8 sclalarcoeff_tab_row_size;
-	u8 coefficient[8];
-	u8 panel_misc_bits_1;
-	u8 panel_misc_bits_2;
-	u8 panel_misc_bits_3;
-	u8 panel_misc_bits_4;
-} __attribute__((packed));
-
-struct bdb_driver_features {
-	u8 boot_dev_algorithm:1;
-	u8 block_display_switch:1;
-	u8 allow_display_switch:1;
-	u8 hotplug_dvo:1;
-	u8 dual_view_zoom:1;
-	u8 int15h_hook:1;
-	u8 sprite_in_clone:1;
-	u8 primary_lfp_id:1;
-
-	u16 boot_mode_x;
-	u16 boot_mode_y;
-	u8 boot_mode_bpp;
-	u8 boot_mode_refresh;
-
-	u16 enable_lfp_primary:1;
-	u16 selective_mode_pruning:1;
-	u16 dual_frequency:1;
-	u16 render_clock_freq:1; /* 0: high freq; 1: low freq */
-	u16 nt_clone_support:1;
-	u16 power_scheme_ui:1; /* 0: CUI; 1: 3rd party */
-	u16 sprite_display_assign:1; /* 0: secondary; 1: primary */
-	u16 cui_aspect_scaling:1;
-	u16 preserve_aspect_ratio:1;
-	u16 sdvo_device_power_down:1;
-	u16 crt_hotplug:1;
-	u16 lvds_config:2;
-	u16 tv_hotplug:1;
-	u16 hdmi_config:2;
-
-	u8 static_display:1;
-	u8 reserved2:7;
-	u16 legacy_crt_max_x;
-	u16 legacy_crt_max_y;
-	u8 legacy_crt_max_refresh;
-
-	u8 hdmi_termination;
-	u8 custom_vbt_version;
-} __attribute__((packed));
-
-
-extern bool psb_intel_init_bios(struct drm_device *dev);
-extern void psb_intel_destory_bios(struct drm_device *dev);
-
-/*
- * Driver<->VBIOS interaction occurs through scratch bits in
- * GR18 & SWF*.
- */
-
-/* GR18 bits are set on display switch and hotkey events */
-#define GR18_DRIVER_SWITCH_EN	(1<<7) /* 0: VBIOS control, 1: driver control */
-#define GR18_HOTKEY_MASK	0x78 /* See also SWF4 15:0 */
-#define   GR18_HK_NONE		(0x0<<3)
-#define   GR18_HK_LFP_STRETCH	(0x1<<3)
-#define   GR18_HK_TOGGLE_DISP	(0x2<<3)
-#define   GR18_HK_DISP_SWITCH	(0x4<<3) /* see SWF14 15:0 for what to enable */
-#define   GR18_HK_POPUP_DISABLED (0x6<<3)
-#define   GR18_HK_POPUP_ENABLED	(0x7<<3)
-#define   GR18_HK_PFIT		(0x8<<3)
-#define   GR18_HK_APM_CHANGE	(0xa<<3)
-#define   GR18_HK_MULTIPLE	(0xc<<3)
-#define GR18_USER_INT_EN	(1<<2)
-#define GR18_A0000_FLUSH_EN	(1<<1)
-#define GR18_SMM_EN		(1<<0)
-
-/* Set by driver, cleared by VBIOS */
-#define SWF00_YRES_SHIFT	16
-#define SWF00_XRES_SHIFT	0
-#define SWF00_RES_MASK		0xffff
-
-/* Set by VBIOS at boot time and driver at runtime */
-#define SWF01_TV2_FORMAT_SHIFT	8
-#define SWF01_TV1_FORMAT_SHIFT	0
-#define SWF01_TV_FORMAT_MASK	0xffff
-
-#define SWF10_VBIOS_BLC_I2C_EN	(1<<29)
-#define SWF10_GTT_OVERRIDE_EN	(1<<28)
-#define SWF10_LFP_DPMS_OVR	(1<<27) /* override DPMS on display switch */
-#define SWF10_ACTIVE_TOGGLE_LIST_MASK (7<<24)
-#define   SWF10_OLD_TOGGLE	0x0
-#define   SWF10_TOGGLE_LIST_1	0x1
-#define   SWF10_TOGGLE_LIST_2	0x2
-#define   SWF10_TOGGLE_LIST_3	0x3
-#define   SWF10_TOGGLE_LIST_4	0x4
-#define SWF10_PANNING_EN	(1<<23)
-#define SWF10_DRIVER_LOADED	(1<<22)
-#define SWF10_EXTENDED_DESKTOP	(1<<21)
-#define SWF10_EXCLUSIVE_MODE	(1<<20)
-#define SWF10_OVERLAY_EN	(1<<19)
-#define SWF10_PLANEB_HOLDOFF	(1<<18)
-#define SWF10_PLANEA_HOLDOFF	(1<<17)
-#define SWF10_VGA_HOLDOFF	(1<<16)
-#define SWF10_ACTIVE_DISP_MASK	0xffff
-#define   SWF10_PIPEB_LFP2	(1<<15)
-#define   SWF10_PIPEB_EFP2	(1<<14)
-#define   SWF10_PIPEB_TV2	(1<<13)
-#define   SWF10_PIPEB_CRT2	(1<<12)
-#define   SWF10_PIPEB_LFP	(1<<11)
-#define   SWF10_PIPEB_EFP	(1<<10)
-#define   SWF10_PIPEB_TV	(1<<9)
-#define   SWF10_PIPEB_CRT	(1<<8)
-#define   SWF10_PIPEA_LFP2	(1<<7)
-#define   SWF10_PIPEA_EFP2	(1<<6)
-#define   SWF10_PIPEA_TV2	(1<<5)
-#define   SWF10_PIPEA_CRT2	(1<<4)
-#define   SWF10_PIPEA_LFP	(1<<3)
-#define   SWF10_PIPEA_EFP	(1<<2)
-#define   SWF10_PIPEA_TV	(1<<1)
-#define   SWF10_PIPEA_CRT	(1<<0)
-
-#define SWF11_MEMORY_SIZE_SHIFT	16
-#define SWF11_SV_TEST_EN	(1<<15)
-#define SWF11_IS_AGP		(1<<14)
-#define SWF11_DISPLAY_HOLDOFF	(1<<13)
-#define SWF11_DPMS_REDUCED	(1<<12)
-#define SWF11_IS_VBE_MODE	(1<<11)
-#define SWF11_PIPEB_ACCESS	(1<<10) /* 0 here means pipe a */
-#define SWF11_DPMS_MASK		0x07
-#define   SWF11_DPMS_OFF	(1<<2)
-#define   SWF11_DPMS_SUSPEND	(1<<1)
-#define   SWF11_DPMS_STANDBY	(1<<0)
-#define   SWF11_DPMS_ON		0
-
-#define SWF14_GFX_PFIT_EN	(1<<31)
-#define SWF14_TEXT_PFIT_EN	(1<<30)
-#define SWF14_LID_STATUS_CLOSED	(1<<29) /* 0 here means open */
-#define SWF14_POPUP_EN		(1<<28)
-#define SWF14_DISPLAY_HOLDOFF	(1<<27)
-#define SWF14_DISP_DETECT_EN	(1<<26)
-#define SWF14_DOCKING_STATUS_DOCKED (1<<25) /* 0 here means undocked */
-#define SWF14_DRIVER_STATUS	(1<<24)
-#define SWF14_OS_TYPE_WIN9X	(1<<23)
-#define SWF14_OS_TYPE_WINNT	(1<<22)
-/* 21:19 rsvd */
-#define SWF14_PM_TYPE_MASK	0x00070000
-#define   SWF14_PM_ACPI_VIDEO	(0x4 << 16)
-#define   SWF14_PM_ACPI		(0x3 << 16)
-#define   SWF14_PM_APM_12	(0x2 << 16)
-#define   SWF14_PM_APM_11	(0x1 << 16)
-#define SWF14_HK_REQUEST_MASK	0x0000ffff /* see GR18 6:3 for event type */
-	  /* if GR18 indicates a display switch */
-#define   SWF14_DS_PIPEB_LFP2_EN (1<<15)
-#define   SWF14_DS_PIPEB_EFP2_EN (1<<14)
-#define   SWF14_DS_PIPEB_TV2_EN  (1<<13)
-#define   SWF14_DS_PIPEB_CRT2_EN (1<<12)
-#define   SWF14_DS_PIPEB_LFP_EN  (1<<11)
-#define   SWF14_DS_PIPEB_EFP_EN  (1<<10)
-#define   SWF14_DS_PIPEB_TV_EN	 (1<<9)
-#define   SWF14_DS_PIPEB_CRT_EN  (1<<8)
-#define   SWF14_DS_PIPEA_LFP2_EN (1<<7)
-#define   SWF14_DS_PIPEA_EFP2_EN (1<<6)
-#define   SWF14_DS_PIPEA_TV2_EN  (1<<5)
-#define   SWF14_DS_PIPEA_CRT2_EN (1<<4)
-#define   SWF14_DS_PIPEA_LFP_EN  (1<<3)
-#define   SWF14_DS_PIPEA_EFP_EN  (1<<2)
-#define   SWF14_DS_PIPEA_TV_EN	 (1<<1)
-#define   SWF14_DS_PIPEA_CRT_EN  (1<<0)
-	  /* if GR18 indicates a panel fitting request */
-#define   SWF14_PFIT_EN		(1<<0) /* 0 means disable */
-	  /* if GR18 indicates an APM change request */
-#define   SWF14_APM_HIBERNATE	0x4
-#define   SWF14_APM_SUSPEND	0x3
-#define   SWF14_APM_STANDBY	0x1
-#define   SWF14_APM_RESTORE	0x0
-
-#endif /* _I830_BIOS_H_ */
diff --git a/drivers/staging/cdv/drv/psb_intel_crt.c b/drivers/staging/cdv/drv/psb_intel_crt.c
deleted file mode 100644
index 221bcdd..0000000
--- a/drivers/staging/cdv/drv/psb_intel_crt.c
+++ /dev/null
@@ -1,353 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- *	Eric Anholt <eric@anholt.net>
- */
-
-#include <linux/i2c.h>
-#include <drm/drmP.h>
-
-#include "psb_intel_bios.h"
-#include "psb_drv.h"
-#include "psb_intel_drv.h"
-#include "psb_intel_reg.h"
-#include "psb_powermgmt.h"
-#include <linux/pm_runtime.h>
-
-
-static void psb_intel_crt_dpms(struct drm_encoder *encoder, int mode)
-{
-	struct drm_device *dev = encoder->dev;
-	u32 temp, reg;
-	reg = ADPA;
-
-	temp = REG_READ(reg);
-	temp &= ~(ADPA_HSYNC_CNTL_DISABLE | ADPA_VSYNC_CNTL_DISABLE);
-	temp &= ~ADPA_DAC_ENABLE;
-
-	switch(mode) {
-	case DRM_MODE_DPMS_ON:
-		temp |= ADPA_DAC_ENABLE;
-		break;
-	case DRM_MODE_DPMS_STANDBY:
-		temp |= ADPA_DAC_ENABLE | ADPA_HSYNC_CNTL_DISABLE;
-		break;
-	case DRM_MODE_DPMS_SUSPEND:
-		temp |= ADPA_DAC_ENABLE | ADPA_VSYNC_CNTL_DISABLE;
-		break;
-	case DRM_MODE_DPMS_OFF:
-		temp |= ADPA_HSYNC_CNTL_DISABLE | ADPA_VSYNC_CNTL_DISABLE;
-		break;
-	}
-
-	REG_WRITE(reg, temp);
-}
-
-static int psb_intel_crt_mode_valid(struct drm_connector *connector,
-				struct drm_display_mode *mode)
-{
-	int max_clock = 0;
-	if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
-		return MODE_NO_DBLESCAN;
-
-	/* The lowest clock for CDV is 20000KHz */
-	if (mode->clock < 20000)
-		return MODE_CLOCK_LOW;
-
-	/* The max clock for CDV is 355 instead of 400 */
-	max_clock = 355000;
-	if (mode->clock > max_clock)
-		return MODE_CLOCK_HIGH;
-
-	return MODE_OK;
-}
-
-static bool psb_intel_crt_mode_fixup(struct drm_encoder *encoder,
-				 struct drm_display_mode *mode,
-				 struct drm_display_mode *adjusted_mode)
-{
-	return true;
-}
-
-static void psb_intel_crt_mode_set(struct drm_encoder *encoder,
-			       struct drm_display_mode *mode,
-			       struct drm_display_mode *adjusted_mode)
-{
-
-	struct drm_device *dev = encoder->dev;
-	struct drm_crtc *crtc = encoder->crtc;
-	struct psb_intel_crtc *psb_intel_crtc =
-					to_psb_intel_crtc(crtc);
-	int dpll_md_reg;
-	u32 adpa, dpll_md;
-	u32 adpa_reg;
-
-	if (psb_intel_crtc->pipe == 0)
-		dpll_md_reg = DPLL_A_MD;
-	else
-		dpll_md_reg = DPLL_B_MD;
-
-	adpa_reg = ADPA;
-
-	/*
-	 * Disable separate mode multiplier used when cloning SDVO to CRT
-	 * XXX this needs to be adjusted when we really are cloning
-	 */
-	{
-		dpll_md = REG_READ(dpll_md_reg);
-		REG_WRITE(dpll_md_reg,
-			   dpll_md & ~DPLL_MD_UDI_MULTIPLIER_MASK);
-	}
-
-	adpa = 0;
-	if (adjusted_mode->flags & DRM_MODE_FLAG_PHSYNC)
-		adpa |= ADPA_HSYNC_ACTIVE_HIGH;
-	if (adjusted_mode->flags & DRM_MODE_FLAG_PVSYNC)
-		adpa |= ADPA_VSYNC_ACTIVE_HIGH;
-
-	if (psb_intel_crtc->pipe == 0) {
-		adpa |= ADPA_PIPE_A_SELECT;
-	} else {
-		adpa |= ADPA_PIPE_B_SELECT;
-	}
-
-	REG_WRITE(adpa_reg, adpa);
-}
-
-
-/**
- * Uses CRT_HOTPLUG_EN and CRT_HOTPLUG_STAT to detect CRT presence.
- *
- * \return true if CRT is connected.
- * \return false if CRT is disconnected.
- */
-static bool psb_intel_crt_detect_hotplug(struct drm_connector *connector, bool force)
-{
-	struct drm_device *dev = connector->dev;
-	u32 hotplug_en, orig;
-	int i, tries = 0, ret = false;
-
-	/*
-	 * On 4 series desktop, CRT detect sequence need to be done twice
-	 * to get a reliable result.
-	 * This is also applied for CDV.
-	 */
-
-	if (IS_CDV(dev))
-		tries = 2;
-	else
-		tries = 1;
-	hotplug_en = orig = REG_READ(PORT_HOTPLUG_EN);
-	hotplug_en &= ~(CRT_HOTPLUG_DETECT_MASK);
-	hotplug_en |= CRT_HOTPLUG_FORCE_DETECT;
-
-	if (IS_CDV(dev))
-		hotplug_en |= CRT_HOTPLUG_ACTIVATION_PERIOD_64;
-
-	hotplug_en |= CRT_HOTPLUG_VOLTAGE_COMPARE_50;
-
-	for (i = 0; i < tries ; i++) {
-		unsigned long timeout;
-		/* turn on the FORCE_DETECT */
-		REG_WRITE(PORT_HOTPLUG_EN, hotplug_en);
-		timeout = jiffies + msecs_to_jiffies(1000);
-		/* wait for FORCE_DETECT to go off */
-		do {
-			if (!(REG_READ(PORT_HOTPLUG_EN) &
-					CRT_HOTPLUG_FORCE_DETECT))
-				break;
-			msleep(1);
-		} while (time_after(timeout, jiffies));
-	}
-
-	if ((REG_READ(PORT_HOTPLUG_STAT) & CRT_HOTPLUG_MONITOR_MASK) !=
-	    CRT_HOTPLUG_MONITOR_NONE)
-		ret = true;
-
-	 /* clear the interrupt we just generated, if any */
-	REG_WRITE(PORT_HOTPLUG_STAT, CRT_HOTPLUG_INT_STATUS);
-
-	/* and put the bits back */
-	REG_WRITE(PORT_HOTPLUG_EN, orig);
-
-	return ret;
-}
-
-static bool psb_intel_crt_detect_ddc(struct drm_connector *connector)
-{
-	struct psb_intel_output *psb_intel_output =
-				to_psb_intel_output(connector);
-
-	/* CRT should always be at 0, but check anyway */
-	if (psb_intel_output->type != INTEL_OUTPUT_ANALOG)
-		return false;
-
-	return psb_intel_ddc_probe(psb_intel_output);
-}
-
-
-static enum drm_connector_status psb_intel_crt_detect(struct drm_connector *connector, bool force)
-{
-	struct drm_device *dev = connector->dev;
-
-	if (IS_CDV(dev)) {
-		if (psb_intel_crt_detect_hotplug(connector, force))
-			return connector_status_connected;
-		else
-			return connector_status_disconnected;
-	}
-
-	if (psb_intel_crt_detect_ddc(connector))
-		return connector_status_connected;
-
-	/* If it fails in hotplug/DDC detection, return disconnected */
-	return connector_status_disconnected;
-}
-
-static void psb_intel_crt_destroy(struct drm_connector *connector)
-{
-	struct psb_intel_output *intel_output = to_psb_intel_output(connector);
-
-	psb_intel_i2c_destroy(intel_output->ddc_bus);
-	drm_sysfs_connector_remove(connector);
-	drm_connector_cleanup(connector);
-	kfree(connector);
-}
-
-static int psb_intel_crt_get_modes(struct drm_connector *connector)
-{
-	int ret;
-	struct psb_intel_output *intel_output =
-				to_psb_intel_output(connector);
-
-
-	ret = psb_intel_ddc_get_modes(intel_output);
-
-	return ret;
-
-}
-
-static int psb_intel_crt_set_property(struct drm_connector *connector,
-				  struct drm_property *property,
-				  uint64_t value)
-{
-	return 0;
-}
-
-/*
- * Routines for controlling stuff on the analog port
- */
-
-static const struct drm_encoder_helper_funcs psb_intel_crt_helper_funcs = {
-	.dpms = psb_intel_crt_dpms,
-	.mode_fixup = psb_intel_crt_mode_fixup,
-	.prepare = psb_intel_encoder_prepare,
-	.commit = psb_intel_encoder_commit,
-	.mode_set = psb_intel_crt_mode_set,
-};
-
-static const struct drm_connector_funcs psb_intel_crt_connector_funcs = {
-	.dpms = drm_helper_connector_dpms,
-	.detect = psb_intel_crt_detect,
-	.fill_modes = drm_helper_probe_single_connector_modes,
-	.destroy = psb_intel_crt_destroy,
-	.set_property = psb_intel_crt_set_property,
-};
-
-static const struct drm_connector_helper_funcs psb_intel_crt_connector_helper_funcs = {
-	.mode_valid = psb_intel_crt_mode_valid,
-	.get_modes = psb_intel_crt_get_modes,
-	.best_encoder = psb_intel_best_encoder,
-};
-
-static void psb_intel_crt_enc_destroy(struct drm_encoder *encoder)
-{
-	drm_encoder_cleanup(encoder);
-}
-
-static const struct drm_encoder_funcs psb_intel_crt_enc_funcs = {
-	.destroy = psb_intel_crt_enc_destroy,
-};
-
-void psb_intel_crt_init(struct drm_device *dev,
-			struct psb_intel_mode_device *mode_dev)
-{
-
-	struct psb_intel_output *psb_intel_output;
-	struct drm_connector *connector;
-	struct drm_encoder *encoder;
-
-	u32 i2c_reg;
-
-	psb_intel_output = kzalloc(sizeof(struct psb_intel_output), GFP_KERNEL);
-	if (!psb_intel_output)
-		return;
-
-	psb_intel_output->mode_dev = mode_dev;
-	connector = &psb_intel_output->base;
-	drm_connector_init(dev, connector,
-			   &psb_intel_crt_connector_funcs, DRM_MODE_CONNECTOR_VGA);
-
-	encoder = &psb_intel_output->enc;
-	drm_encoder_init(dev, encoder,
-				&psb_intel_crt_enc_funcs, DRM_MODE_ENCODER_DAC);
-
-	drm_mode_connector_attach_encoder(&psb_intel_output->base,
-					  &psb_intel_output->enc);
-
-	/* Set up the DDC bus. */
-	i2c_reg = GPIOA;
-	/* Remove the following code for CDV */
-	/*
-	if (dev_priv->crt_ddc_bus != 0)
-		i2c_reg = dev_priv->crt_ddc_bus;
-	}*/
-	psb_intel_output->ddc_bus = psb_intel_i2c_create(dev,
-						i2c_reg, "CRTDDC_A");
-	if (!psb_intel_output->ddc_bus) {
-		DRM_ERROR("DDC bus registration failed.\n");
-		goto failed_ddc;
-	}
-
-	psb_intel_output->type = INTEL_OUTPUT_ANALOG;
-	/*
-	psb_intel_output->clone_mask = (1 << INTEL_ANALOG_CLONE_BIT);
-	psb_intel_output->crtc_mask = (1 << 0) | (1 << 1);
-	*/
-	connector->interlace_allowed = 0;
-	connector->doublescan_allowed = 0;
-
-	connector->polled = DRM_CONNECTOR_POLL_HPD;
-
-	drm_encoder_helper_add(encoder, &psb_intel_crt_helper_funcs);
-	drm_connector_helper_add(connector, &psb_intel_crt_connector_helper_funcs);
-
-	drm_sysfs_connector_add(connector);
-
-	return;
-failed_ddc:
-	drm_encoder_cleanup(&psb_intel_output->enc);
-	drm_connector_cleanup(&psb_intel_output->base);
-	kfree(psb_intel_output);
-	return;
-}
diff --git a/drivers/staging/cdv/drv/psb_intel_display.c b/drivers/staging/cdv/drv/psb_intel_display.c
deleted file mode 100644
index deddb27..0000000
--- a/drivers/staging/cdv/drv/psb_intel_display.c
+++ /dev/null
@@ -1,1675 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *	Eric Anholt <eric@anholt.net>
- */
-
-#include <linux/i2c.h>
-#include <linux/pm_runtime.h>
-
-#include <drm/drmP.h>
-#include "psb_fb.h"
-#include "psb_drv.h"
-#include "psb_intel_drv.h"
-#include "psb_intel_reg.h"
-#include "psb_intel_display.h"
-#include "psb_powermgmt.h"
-
-
-struct psb_intel_range_t {
-	int min, max;
-};
-
-struct psb_intel_p2_t {
-	int dot_limit;
-	int p2_slow, p2_fast;
-};
-
-#define INTEL_P2_NUM		      2
-
-struct psb_intel_limit_t {
-	struct psb_intel_range_t dot, vco, n, m, m1, m2, p, p1;
-	struct psb_intel_p2_t p2;
-};
-
-#define I8XX_DOT_MIN		  25000
-#define I8XX_DOT_MAX		 350000
-#define I8XX_VCO_MIN		 930000
-#define I8XX_VCO_MAX		1400000
-#define I8XX_N_MIN		      3
-#define I8XX_N_MAX		     16
-#define I8XX_M_MIN		     96
-#define I8XX_M_MAX		    140
-#define I8XX_M1_MIN		     18
-#define I8XX_M1_MAX		     26
-#define I8XX_M2_MIN		      6
-#define I8XX_M2_MAX		     16
-#define I8XX_P_MIN		      4
-#define I8XX_P_MAX		    128
-#define I8XX_P1_MIN		      2
-#define I8XX_P1_MAX		     33
-#define I8XX_P1_LVDS_MIN	      1
-#define I8XX_P1_LVDS_MAX	      6
-#define I8XX_P2_SLOW		      4
-#define I8XX_P2_FAST		      2
-#define I8XX_P2_LVDS_SLOW	      14
-#define I8XX_P2_LVDS_FAST	      14	/* No fast option */
-#define I8XX_P2_SLOW_LIMIT	 165000
-
-#define I9XX_DOT_MIN		  20000
-#define I9XX_DOT_MAX		 400000
-#define I9XX_VCO_MIN		1400000
-#define I9XX_VCO_MAX		2800000
-#define I9XX_N_MIN		      3
-#define I9XX_N_MAX		      8
-#define I9XX_M_MIN		     70
-#define I9XX_M_MAX		    120
-#define I9XX_M1_MIN		     10
-#define I9XX_M1_MAX		     20
-#define I9XX_M2_MIN		      5
-#define I9XX_M2_MAX		      9
-#define I9XX_P_SDVO_DAC_MIN	      5
-#define I9XX_P_SDVO_DAC_MAX	     80
-#define I9XX_P_LVDS_MIN		      7
-#define I9XX_P_LVDS_MAX		     98
-#define I9XX_P1_MIN		      1
-#define I9XX_P1_MAX		      8
-#define I9XX_P2_SDVO_DAC_SLOW		     10
-#define I9XX_P2_SDVO_DAC_FAST		      5
-#define I9XX_P2_SDVO_DAC_SLOW_LIMIT	 200000
-#define I9XX_P2_LVDS_SLOW		     14
-#define I9XX_P2_LVDS_FAST		      7
-#define I9XX_P2_LVDS_SLOW_LIMIT		 112000
-
-#define INTEL_LIMIT_I8XX_DVO_DAC    0
-#define INTEL_LIMIT_I8XX_LVDS	    1
-#define INTEL_LIMIT_I9XX_SDVO_DAC   2
-#define INTEL_LIMIT_I9XX_LVDS	    3
-
-static const struct psb_intel_limit_t psb_intel_limits[] = {
-	{			/* INTEL_LIMIT_I8XX_DVO_DAC */
-	 .dot = {.min = I8XX_DOT_MIN, .max = I8XX_DOT_MAX},
-	 .vco = {.min = I8XX_VCO_MIN, .max = I8XX_VCO_MAX},
-	 .n = {.min = I8XX_N_MIN, .max = I8XX_N_MAX},
-	 .m = {.min = I8XX_M_MIN, .max = I8XX_M_MAX},
-	 .m1 = {.min = I8XX_M1_MIN, .max = I8XX_M1_MAX},
-	 .m2 = {.min = I8XX_M2_MIN, .max = I8XX_M2_MAX},
-	 .p = {.min = I8XX_P_MIN, .max = I8XX_P_MAX},
-	 .p1 = {.min = I8XX_P1_MIN, .max = I8XX_P1_MAX},
-	 .p2 = {.dot_limit = I8XX_P2_SLOW_LIMIT,
-		.p2_slow = I8XX_P2_SLOW, .p2_fast = I8XX_P2_FAST},
-	 },
-	{			/* INTEL_LIMIT_I8XX_LVDS */
-	 .dot = {.min = I8XX_DOT_MIN, .max = I8XX_DOT_MAX},
-	 .vco = {.min = I8XX_VCO_MIN, .max = I8XX_VCO_MAX},
-	 .n = {.min = I8XX_N_MIN, .max = I8XX_N_MAX},
-	 .m = {.min = I8XX_M_MIN, .max = I8XX_M_MAX},
-	 .m1 = {.min = I8XX_M1_MIN, .max = I8XX_M1_MAX},
-	 .m2 = {.min = I8XX_M2_MIN, .max = I8XX_M2_MAX},
-	 .p = {.min = I8XX_P_MIN, .max = I8XX_P_MAX},
-	 .p1 = {.min = I8XX_P1_LVDS_MIN, .max = I8XX_P1_LVDS_MAX},
-	 .p2 = {.dot_limit = I8XX_P2_SLOW_LIMIT,
-		.p2_slow = I8XX_P2_LVDS_SLOW, .p2_fast = I8XX_P2_LVDS_FAST},
-	 },
-	{			/* INTEL_LIMIT_I9XX_SDVO_DAC */
-	 .dot = {.min = I9XX_DOT_MIN, .max = I9XX_DOT_MAX},
-	 .vco = {.min = I9XX_VCO_MIN, .max = I9XX_VCO_MAX},
-	 .n = {.min = I9XX_N_MIN, .max = I9XX_N_MAX},
-	 .m = {.min = I9XX_M_MIN, .max = I9XX_M_MAX},
-	 .m1 = {.min = I9XX_M1_MIN, .max = I9XX_M1_MAX},
-	 .m2 = {.min = I9XX_M2_MIN, .max = I9XX_M2_MAX},
-	 .p = {.min = I9XX_P_SDVO_DAC_MIN, .max = I9XX_P_SDVO_DAC_MAX},
-	 .p1 = {.min = I9XX_P1_MIN, .max = I9XX_P1_MAX},
-	 .p2 = {.dot_limit = I9XX_P2_SDVO_DAC_SLOW_LIMIT,
-		.p2_slow = I9XX_P2_SDVO_DAC_SLOW, .p2_fast =
-		I9XX_P2_SDVO_DAC_FAST},
-	 },
-	{			/* INTEL_LIMIT_I9XX_LVDS */
-	 .dot = {.min = I9XX_DOT_MIN, .max = I9XX_DOT_MAX},
-	 .vco = {.min = I9XX_VCO_MIN, .max = I9XX_VCO_MAX},
-	 .n = {.min = I9XX_N_MIN, .max = I9XX_N_MAX},
-	 .m = {.min = I9XX_M_MIN, .max = I9XX_M_MAX},
-	 .m1 = {.min = I9XX_M1_MIN, .max = I9XX_M1_MAX},
-	 .m2 = {.min = I9XX_M2_MIN, .max = I9XX_M2_MAX},
-	 .p = {.min = I9XX_P_LVDS_MIN, .max = I9XX_P_LVDS_MAX},
-	 .p1 = {.min = I9XX_P1_MIN, .max = I9XX_P1_MAX},
-	 /* The single-channel range is 25-112Mhz, and dual-channel
-	  * is 80-224Mhz.  Prefer single channel as much as possible.
-	  */
-	 .p2 = {.dot_limit = I9XX_P2_LVDS_SLOW_LIMIT,
-		.p2_slow = I9XX_P2_LVDS_SLOW, .p2_fast = I9XX_P2_LVDS_FAST},
-	 },
-};
-#define CDV_LIMIT_SINGLE_LVDS_96	0
-#define CDV_LIMIT_SINGLE_LVDS_100	1
-#define CDV_LIMIT_DAC_HDMI_27		2
-#define CDV_LIMIT_DAC_HDMI_96		3
-static const struct psb_intel_limit_t cdv_intel_limits[] = {
-	{			/* CDV_SIGNLE_LVDS_96MHz */
-	 .dot = {.min = 20000, .max = 115500},
-	 .vco = {.min = 1800000, .max = 3600000},
-	 .n = {.min = 2, .max = 6},
-	 .m = {.min = 60, .max = 160},
-	 .m1 = {.min = 0, .max = 0},
-	 .m2 = {.min = 58, .max = 158},
-	 .p = {.min = 28, .max = 140},
-	 .p1 = {.min = 2, .max = 10},
-	 .p2 = {.dot_limit = 200000,
-		.p2_slow = 14, .p2_fast = 14},
-	 },
-	{			/* CDV_SINGLE_LVDS_100MHz */
-	 .dot = {.min = 20000, .max = 115500},
-	 .vco = {.min = 1800000, .max = 3600000},
-	 .n = {.min = 2, .max = 6},
-	 .m = {.min = 60, .max = 160},
-	 .m1 = {.min = 0, .max = 0},
-	 .m2 = {.min = 58, .max = 158},
-	 .p = {.min = 28, .max = 140},
-	 .p1 = {.min = 2, .max = 10},
-	 /* The single-channel range is 25-112Mhz, and dual-channel
-	  * is 80-224Mhz.  Prefer single channel as much as possible.
-	  */
-	 .p2 = {.dot_limit = 200000, .p2_slow = 14, .p2_fast = 14},
-	 },
-	{			/* CDV_DAC_HDMI_27MHz */
-	 .dot = {.min = 20000, .max = 400000},
-	 .vco = {.min = 1809000, .max = 3564000},
-	 .n = {.min = 1, .max = 1},
-	 .m = {.min = 67, .max = 132},
-	 .m1 = {.min = 0, .max = 0},
-	 .m2 = {.min = 65, .max = 130},
-	 .p = {.min = 5, .max = 90},
-	 .p1 = {.min = 1, .max = 9},
-	 .p2 = {.dot_limit = 225000, .p2_slow = 10, .p2_fast = 5},
-	 },
-	{			/* CDV_DAC_HDMI_96MHz */
-	 .dot = {.min = 20000, .max = 400000},
-	 .vco = {.min = 1800000, .max = 3600000},
-	 .n = {.min = 2, .max = 6},
-	 .m = {.min = 60, .max = 160},
-	 .m1 = {.min = 0, .max = 0},
-	 .m2 = {.min = 58, .max = 158},
-	 .p = {.min = 5, .max = 100},
-	 .p1 = {.min = 1, .max = 10},
-	 .p2 = {.dot_limit = 225000, .p2_slow = 10, .p2_fast = 5},
-	 },
-};
-
-static const struct psb_intel_limit_t *cdv_intel_limit(struct drm_crtc *crtc, int refclk)
-{
-	const struct psb_intel_limit_t *limit;
-
-	DRM_DEBUG("ref clk is %d\n", refclk);
-
-	if (psb_intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) {
-		/*
- 		 * Now only single-channel LVDS is supported on CDV. If it is
- 		 * incorrect, please add the dual-channel LVDS.
- 		 */
-		if (refclk == 96000)
-			limit = &cdv_intel_limits[CDV_LIMIT_SINGLE_LVDS_96];
-		else 
-			limit = &cdv_intel_limits[CDV_LIMIT_SINGLE_LVDS_100];
-	} else {
-		if (refclk == 27000)
-			limit = &cdv_intel_limits[CDV_LIMIT_DAC_HDMI_27];
-		else
-			limit = &cdv_intel_limits[CDV_LIMIT_DAC_HDMI_96];
-	}
-	return limit;
-}
-/* On the CDV the M is written, which is similar to that on Pineview */
-/*static bool single_m_multiplier(struct drm_device *dev)
-{
-	return IS_CDV(dev);
-}
-*/
-
-/** Derive the pixel clock for the given refclk and divisors for 8xx chips. */
-static void i8xx_clock(int refclk, struct psb_intel_clock_t *clock)
-{
-	clock->m = 5 * (clock->m1 + 2) + (clock->m2 + 2);
-	clock->p = clock->p1 * clock->p2;
-	clock->vco = refclk * clock->m / (clock->n + 2);
-	clock->dot = clock->vco / clock->p;
-}
-
-
-/* m1 is reserved as 0 in CDV, n is a ring counter */
-static void cdv_intel_clock(struct drm_device *dev, 
-			int refclk, struct psb_intel_clock_t *clock)
-{
-	clock->m = clock->m2 + 2;
-	clock->p = clock->p1 * clock->p2;
-	clock->vco = (refclk * clock->m) / clock->n;
-	clock->dot = clock->vco / clock->p;
-}
-
-/**
- * Returns whether any output on the specified pipe is of the specified type
- */
-bool psb_intel_pipe_has_type(struct drm_crtc *crtc, int type)
-{
-	struct drm_device *dev = crtc->dev;
-	struct drm_mode_config *mode_config = &dev->mode_config;
-	struct drm_connector *l_entry;
-
-	list_for_each_entry(l_entry, &mode_config->connector_list, head) {
-		if (l_entry->encoder && l_entry->encoder->crtc == crtc) {
-			struct psb_intel_output *psb_intel_output =
-			    to_psb_intel_output(l_entry);
-			if (psb_intel_output->type == type)
-				return true;
-		}
-	}
-	return false;
-}
-
-#define INTELPllInvalid(s)   { /* ErrorF (s) */; return false; }
-/**
- * Returns whether the given set of divisors are valid for a given refclk with
- * the given connectors.
- */
-
-static bool cdv_intel_PLL_is_valid(struct drm_crtc *crtc,
-				const struct psb_intel_limit_t *limit,
-			       struct psb_intel_clock_t *clock)
-{
-	if (clock->p1 < limit->p1.min || limit->p1.max < clock->p1)
-		INTELPllInvalid("p1 out of range\n");
-	if (clock->p < limit->p.min || limit->p.max < clock->p)
-		INTELPllInvalid("p out of range\n");
-	/* unnecessary to check the range of m(m1/M2)/n again */
-	/*
-	if (clock->m2 < limit->m2.min || limit->m2.max < clock->m2)
-		INTELPllInvalid("m2 out of range\n");
-	if (clock->m < limit->m.min || limit->m.max < clock->m)
-		INTELPllInvalid("m out of range\n");
-	if (clock->n < limit->n.min || limit->n.max < clock->n)
-		INTELPllInvalid("n out of range\n");
-	*/
-	if (clock->vco < limit->vco.min || limit->vco.max < clock->vco)
-		INTELPllInvalid("vco out of range\n");
-	/* XXX: We may need to be checking "Dot clock"
-	 * depending on the multiplier, connector, etc.,
-	 * rather than just a single range.
-	 */
-	if (clock->dot < limit->dot.min || limit->dot.max < clock->dot)
-		INTELPllInvalid("dot out of range\n");
-
-	return true;
-}
-
-static bool cdv_intel_find_best_PLL(struct drm_crtc *crtc, int target,
-				int refclk,
-				struct psb_intel_clock_t *best_clock)
-{
-	struct drm_device *dev = crtc->dev;
-	struct psb_intel_clock_t clock;
-	const struct psb_intel_limit_t *limit = cdv_intel_limit(crtc, refclk);
-	int err = target;
-
-
-	if (psb_intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS) &&
-	    (REG_READ(LVDS) & LVDS_PORT_EN) != 0) {
-		/*
-		 * For LVDS, if the panel is on, just rely on its current
-		 * settings for dual-channel.  We haven't figured out how to
-		 * reliably set up different single/dual channel state, if we
-		 * even can.
-		 */
-		if ((REG_READ(LVDS) & LVDS_CLKB_POWER_MASK) ==
-		    LVDS_CLKB_POWER_UP)
-			clock.p2 = limit->p2.p2_fast;
-		else
-			clock.p2 = limit->p2.p2_slow;
-	} else {
-		if (target < limit->p2.dot_limit)
-			clock.p2 = limit->p2.p2_slow;
-		else
-			clock.p2 = limit->p2.p2_fast;
-	}
-
-	memset(best_clock, 0, sizeof(*best_clock));
-	clock.m1 = 0;
-	/* m1 is reserved as 0 in CDV, n is a ring counter. So skip the m1 loop */
-	for (clock.n = limit->n.min; clock.n <= limit->n.max; clock.n++) {
-		for (clock.m2 = limit->m2.min; clock.m2 <= limit->m2.max;
-					     clock.m2++) {
-			for (clock.p1 = limit->p1.min; clock.p1 <= limit->p1.max;
-				     clock.p1++) {
-				int this_err;
-
-				cdv_intel_clock(dev, refclk, &clock);
-
-				if (!cdv_intel_PLL_is_valid(crtc, limit, &clock))
-						continue;
-				
-				this_err = abs(clock.dot - target);
-				if (this_err < err) {
-					*best_clock = clock;
-					err = this_err;
-				}
-			}
-		}
-	}
-
-	return err != target;
-}
-
-void psb_intel_wait_for_vblank(struct drm_device *dev)
-{
-	/* Wait for 20ms, i.e. one cycle at 50hz. */
-	udelay(20000);
-}
-
-static bool psb_intel_pipe_enabled(struct drm_device *dev, int pipe)
-{
-	struct drm_crtc *crtc;
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct psb_intel_crtc *psb_intel_crtc = NULL;
-
-	crtc = dev_priv->pipe_to_crtc_mapping[pipe];
-	psb_intel_crtc = to_psb_intel_crtc(crtc);
-	if (crtc->fb == NULL || !psb_intel_crtc->psb_crtc_active) {
-		return false;
-	}
-	return true;
-}
-
-#define		FIFO_PIPEA		(1 << 0)
-#define		FIFO_PIPEB		(1 << 1)
-static void psb_intel_update_watermarks(struct drm_device *dev)
-{
-	uint32_t pipe_enabled;
-
-	pipe_enabled = 0;
-
-	if (psb_intel_pipe_enabled(dev, 0)) {
-		pipe_enabled |= FIFO_PIPEA;
-	}
-	if (psb_intel_pipe_enabled(dev, 1)) {
-		pipe_enabled |= FIFO_PIPEB;
-	}
-
-	/* Now we have no latency spec. So use the default self-refresh watermark setting
-	 * recommended from the spec.
-	 * At the same time it will control the fifo entry size for the enabled
-	 * pipe. When only one pipe is enabled, the available fifo
-	 * entry size is about 0x70.
-	 */
-	if ((pipe_enabled == FIFO_PIPEA) || (pipe_enabled == FIFO_PIPEB)) {
-		if (pipe_enabled == FIFO_PIPEA)
-			/* the 0x70 fifo entry is allocated to Pipe A */
-			REG_WRITE(DSPARB, 0x3F70);
-		else {
-			/* the first 16 entry is allocated to pipe A. And
- 			 * then the following 0x70 fifo entry is allocated
- 			 * to pipe B.
- 			 */
-			REG_WRITE(DSPARB, 0x3F10);
-		}
-		/* enable the self refresh-bit */
-		REG_WRITE(FW_BLC_SELF, FW_BLC_SELF_EN);
-		REG_READ(FW_BLC_SELF);
-		psb_intel_wait_for_vblank(dev);
-	} else {
-		REG_WRITE(DSPARB, 0x3F54);
-		/* when two pipe are enabled, it will use the fixed hardcode value. 0x3F54 */
-		psb_intel_wait_for_vblank(dev);
-		/* As the SR is already disabled when calling crtc dpms callback function,
- 		* it is unnecessary to disable it again
- 		*/
-		// REG_WRITE(FW_BLC_SELF, REG_READ(FW_BLC_SEFL) & ~FW_BLC_SELF_EN));
-	}
-	DRM_DEBUG_KMS("pipe enabled %x, REG %x = %x\n", pipe_enabled, FW_BLC_SELF, REG_READ(FW_BLC_SELF));
-}
-
-int psb_intel_pipe_set_base(struct drm_crtc *crtc,
-			    int x, int y, struct drm_framebuffer *old_fb)
-{
-	struct drm_device *dev = crtc->dev;
-	/* struct drm_i915_master_private *master_priv; */
-	struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(crtc);
-	struct psb_framebuffer *psbfb = to_psb_fb(crtc->fb);
-	struct psb_intel_mode_device *mode_dev = psb_intel_crtc->mode_dev;
-	int pipe = psb_intel_crtc->pipe;
-	unsigned long Start, Offset;
-	int dspbase = (pipe == 0 ? DSPABASE : DSPBBASE);
-	int dspsurf = (pipe == 0 ? DSPASURF : DSPBSURF);
-	int dspstride = (pipe == 0) ? DSPASTRIDE : DSPBSTRIDE;
-	int dspcntr_reg = (pipe == 0) ? DSPACNTR : DSPBCNTR;
-	u32 dspcntr;
-	int ret = 0;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	/* no fb bound */
-	if (!crtc->fb) {
-		DRM_DEBUG("No FB bound\n");
-		return 0;
-	}
-
-	Start = mode_dev->bo_offset(dev, psbfb);
-	Offset = y * crtc->fb->pitch + x * (crtc->fb->bits_per_pixel / 8);
-
-	REG_WRITE(dspstride, crtc->fb->pitch);
-
-	dspcntr = REG_READ(dspcntr_reg);
-	dspcntr &= ~DISPPLANE_PIXFORMAT_MASK;
-
-	switch (crtc->fb->bits_per_pixel) {
-	case 8:
-		dspcntr |= DISPPLANE_8BPP;
-		break;
-	case 16:
-		if (crtc->fb->depth == 15)
-			dspcntr |= DISPPLANE_15_16BPP;
-		else
-			dspcntr |= DISPPLANE_16BPP;
-		break;
-	case 24:
-	case 32:
-		dspcntr |= DISPPLANE_32BPP_NO_ALPHA;
-		break;
-	default:
-		DRM_ERROR("Unknown color depth\n");
-		ret = -EINVAL;
-		goto psb_intel_pipe_set_base_exit;
-	}
-	REG_WRITE(dspcntr_reg, dspcntr);
-
-	DRM_DEBUG("Writing base %08lX %08lX %d %d\n", Start, Offset, x, y);
-	if (IS_CDV(dev)) {
-		REG_WRITE(dspbase, Offset);
-		REG_READ(dspbase);
-		REG_WRITE(dspsurf, Start);
-		REG_READ(dspsurf);
-	} else {
-		REG_WRITE(dspbase, Start + Offset);
-		REG_READ(dspbase);
-	}
-
-psb_intel_pipe_set_base_exit:
-
-	return ret;
-}
-
-#define CRTC_FLIP_TIMEOUT	100	/* ms */
-#define LVDS_PIPEB		1
-#define MAX_FLIP_COUNTER	100
-static void psb_crtc_flip_timer(unsigned long arg)
-{
-	struct psb_intel_crtc *psb_crtc = (struct psb_intel_crtc *)arg;
-	struct drm_crtc *crtc = &psb_crtc->base;
-	struct drm_psb_private *dev_priv =
-            (struct drm_psb_private *)(crtc->dev->dev_private);
-
-	if (dev_priv->psb_vsync_handler)
-		(dev_priv->psb_vsync_handler)(crtc->dev, psb_crtc->pipe);
-
-	psb_crtc->flip_counter--;
-	if (dev_priv->vblanksEnabledForFlips && !psb_crtc->crtc_enable &&
-			psb_crtc->flip_counter) {
-		mod_timer(&psb_crtc->flip_timer, jiffies +
-			 msecs_to_jiffies(CRTC_FLIP_TIMEOUT));
-	}
-}
-
-/**
- * Sets the power management mode of the pipe and plane.
- *
- * This code should probably grow support for turning the cursor off and back
- * on appropriately at the same time as we're turning the pipe off/on.
- */
-static void psb_intel_crtc_dpms(struct drm_crtc *crtc, int mode)
-{
-	struct drm_device *dev = crtc->dev;
-	/* struct drm_i915_master_private *master_priv; */
-	struct drm_psb_private *dev_priv = dev->dev_private; 
-	struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(crtc);
-	int pipe = psb_intel_crtc->pipe;
-	int dpll_reg = (pipe == 0) ? DPLL_A : DPLL_B;
-	int dspcntr_reg = (pipe == 0) ? DSPACNTR : DSPBCNTR;
-	int dspbase_reg = (pipe == 0) ? DSPABASE : DSPBBASE;
-	int pipeconf_reg = (pipe == 0) ? PIPEACONF : PIPEBCONF;
-	int pipestat_reg = (pipe == 0) ? PIPEASTAT : PIPEBSTAT;
-	u32 temp;
-
-	/* XXX: When our outputs are all unaware of DPMS modes other than off
-	 * and on, we should map those modes to DRM_MODE_DPMS_OFF in the CRTC.
-	 */
-	/* Disable SR */
-	if (REG_READ(FW_BLC_SELF) & FW_BLC_SELF_EN) {
-			REG_WRITE(FW_BLC_SELF, (REG_READ(FW_BLC_SELF) & ~FW_BLC_SELF_EN));
-			REG_READ(FW_BLC_SELF);
-
-			psb_intel_wait_for_vblank(dev);
-
-			REG_WRITE(OV_OVADD, dev_priv->ovl_offset);
-			psb_intel_wait_for_vblank(dev);
-	}
-
-	switch (mode) {
-	case DRM_MODE_DPMS_ON:
-	case DRM_MODE_DPMS_STANDBY:
-	case DRM_MODE_DPMS_SUSPEND:
-		DRM_DEBUG_KMS("Turning on display in dpms on pipe: %d\n", pipe);
-		psb_intel_crtc->psb_crtc_active = 1;
-		/* Enable the DPLL */
-		temp = REG_READ(dpll_reg);
-		if ((temp & DPLL_VCO_ENABLE) == 0) {
-			REG_WRITE(dpll_reg, temp);
-			REG_READ(dpll_reg);
-			/* Wait for the clocks to stabilize. */
-			udelay(150);
-			REG_WRITE(dpll_reg, temp | DPLL_VCO_ENABLE);
-			REG_READ(dpll_reg);
-			/* Wait for the clocks to stabilize. */
-			udelay(150);
-			REG_WRITE(dpll_reg, temp | DPLL_VCO_ENABLE);
-			REG_READ(dpll_reg);
-			/* Wait for the clocks to stabilize. */
-			udelay(150);
-		}
-
-		/* Jim Bish - switch plan and pipe per scott */
-		/* Enable the plane */
-		temp = REG_READ(dspcntr_reg);
-		if ((temp & DISPLAY_PLANE_ENABLE) == 0) {
-			REG_WRITE(dspcntr_reg,
-				  temp | DISPLAY_PLANE_ENABLE);
-			/* Flush the plane changes */
-			REG_WRITE(dspbase_reg, REG_READ(dspbase_reg));
-		}
-
-		udelay(150);
-
-		/* Enable the pipe */
-		temp = REG_READ(pipeconf_reg);
-		if ((temp & PIPEACONF_ENABLE) == 0)
-			REG_WRITE(pipeconf_reg, temp | PIPEACONF_ENABLE);
-
-		temp = REG_READ(pipestat_reg);
-		temp &= ~(0xFFFF);
-		temp |= PIPE_FIFO_UNDERRUN;
-		REG_WRITE(pipestat_reg, temp);
-		REG_READ(pipestat_reg);
-		
-		psb_intel_crtc_load_lut(crtc);
-
-		/* Give the overlay scaler a chance to enable
-		 * if it's on this pipe */
-		/* psb_intel_crtc_dpms_video(crtc, true); TODO */
-		break;
-	case DRM_MODE_DPMS_OFF:
-		DRM_DEBUG_KMS("Turning off display in dpms on pipe: %d\n", pipe);
-		psb_intel_crtc->psb_crtc_active = 0;
-		/* Give the overlay scaler a chance to disable
-		 * if it's on this pipe */
-		/* psb_intel_crtc_dpms_video(crtc, FALSE); TODO */
-
-		/* Disable the VGA plane that we never use */
-		REG_WRITE(VGACNTRL, VGA_DISP_DISABLE);
-
-		drm_vblank_off(dev, pipe);
-
-		/* Jim Bish - changed pipe/plane here as well. */
-
-		if (!IS_I9XX(dev)) {
-			/* Wait for vblank for the disable to take effect */
-			psb_intel_wait_for_vblank(dev);
-		}
-
-		/* Next, disable display pipes */
-		temp = REG_READ(pipeconf_reg);
-		if ((temp & PIPEACONF_ENABLE) != 0) {
-			REG_WRITE(pipeconf_reg, temp & ~PIPEACONF_ENABLE);
-			REG_READ(pipeconf_reg);
-		}
-
-		/* Wait for vblank for the disable to take effect. */
-		psb_intel_wait_for_vblank(dev);
-
-		/* Disable display plane */
-		temp = REG_READ(dspcntr_reg);
-		if ((temp & DISPLAY_PLANE_ENABLE) != 0) {
-			REG_WRITE(dspcntr_reg,
-				  temp & ~DISPLAY_PLANE_ENABLE);
-			/* Flush the plane changes */
-			REG_WRITE(dspbase_reg, REG_READ(dspbase_reg));
-			REG_READ(dspbase_reg);
-		}
-
-		temp = REG_READ(dpll_reg);
-		if ((temp & DPLL_VCO_ENABLE) != 0) {
-			REG_WRITE(dpll_reg, temp & ~DPLL_VCO_ENABLE);
-			REG_READ(dpll_reg);
-		}
-
-		/* Wait for the clocks to turn off. */
-		udelay(150);
-		break;
-	}
-
-	psb_intel_update_watermarks(dev);
-	if (mode == DRM_MODE_DPMS_OFF) {
-		psb_intel_crtc->crtc_enable = false;
-		if (dev_priv->vblanksEnabledForFlips && (psb_intel_crtc->pipe == LVDS_PIPEB)) {
-			psb_intel_crtc->flip_counter =  MAX_FLIP_COUNTER;
-			mod_timer(&psb_intel_crtc->flip_timer, jiffies +
-				 msecs_to_jiffies(CRTC_FLIP_TIMEOUT));
-		}
-	} else {
-		psb_intel_crtc->crtc_enable = true;
-		psb_intel_crtc->flip_counter = 0;
-		del_timer(&psb_intel_crtc->flip_timer);
-		
-	}
-}
-
-static void psb_intel_crtc_prepare(struct drm_crtc *crtc)
-{
-	struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
-	crtc_funcs->dpms(crtc, DRM_MODE_DPMS_OFF);
-}
-
-static void psb_intel_crtc_commit(struct drm_crtc *crtc)
-{
-	struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
-	crtc_funcs->dpms(crtc, DRM_MODE_DPMS_ON);
-}
-
-void psb_intel_encoder_prepare(struct drm_encoder *encoder)
-{
-	struct drm_encoder_helper_funcs *encoder_funcs =
-	    encoder->helper_private;
-	/* lvds has its own version of prepare see psb_intel_lvds_prepare */
-	encoder_funcs->dpms(encoder, DRM_MODE_DPMS_OFF);
-}
-
-void psb_intel_encoder_commit(struct drm_encoder *encoder)
-{
-	struct drm_encoder_helper_funcs *encoder_funcs =
-	    encoder->helper_private;
-	/* lvds has its own version of commit see psb_intel_lvds_commit */
-	encoder_funcs->dpms(encoder, DRM_MODE_DPMS_ON);
-}
-
-static bool psb_intel_crtc_mode_fixup(struct drm_crtc *crtc,
-				  struct drm_display_mode *mode,
-				  struct drm_display_mode *adjusted_mode)
-{
-	return true;
-}
-
-
-/**
- * Return the pipe currently connected to the panel fitter,
- * or -1 if the panel fitter is not present or not in use
- */
-static int psb_intel_panel_fitter_pipe(struct drm_device *dev)
-{
-	u32 pfit_control;
-
-	/* i830 doesn't have a panel fitter */
-	if (IS_I830(dev))
-		return -1;
-
-	pfit_control = REG_READ(PFIT_CONTROL);
-
-	/* See if the panel fitter is in use */
-	if ((pfit_control & PFIT_ENABLE) == 0)
-		return -1;
-
-	/* 965 can place panel fitter on either pipe */
-	if (IS_I965G(dev) || IS_MID(dev))
-		return (pfit_control >> 29) & 0x3;
-
-	/* older chips can only use pipe 1 */
-	return 1;
-}
-
-static int cdv_intel_crtc_mode_set(struct drm_crtc *crtc,
-			       struct drm_display_mode *mode,
-			       struct drm_display_mode *adjusted_mode,
-			       int x, int y,
-			       struct drm_framebuffer *old_fb)
-{
-	struct drm_device *dev = crtc->dev;
-	struct drm_psb_private *dev_priv = dev->dev_private; 
-	struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(crtc);
-	int pipe = psb_intel_crtc->pipe;
-	int dpll_reg = (pipe == 0) ? DPLL_A : DPLL_B;
-	int dpll_md_reg = (psb_intel_crtc->pipe == 0) ? DPLL_A_MD : DPLL_B_MD;
-	int dspcntr_reg = (pipe == 0) ? DSPACNTR : DSPBCNTR;
-	int pipeconf_reg = (pipe == 0) ? PIPEACONF : PIPEBCONF;
-	int htot_reg = (pipe == 0) ? HTOTAL_A : HTOTAL_B;
-	int hblank_reg = (pipe == 0) ? HBLANK_A : HBLANK_B;
-	int hsync_reg = (pipe == 0) ? HSYNC_A : HSYNC_B;
-	int vtot_reg = (pipe == 0) ? VTOTAL_A : VTOTAL_B;
-	int vblank_reg = (pipe == 0) ? VBLANK_A : VBLANK_B;
-	int vsync_reg = (pipe == 0) ? VSYNC_A : VSYNC_B;
-	int dspsize_reg = (pipe == 0) ? DSPASIZE : DSPBSIZE;
-	int dsppos_reg = (pipe == 0) ? DSPAPOS : DSPBPOS;
-	int pipesrc_reg = (pipe == 0) ? PIPEASRC : PIPEBSRC;
-	int refclk;
-	struct psb_intel_clock_t clock;
-	u32 dpll = 0, dspcntr, pipeconf;
-	bool ok;
-	bool is_crt = false, is_lvds = false, is_tv = false;
-	bool is_hdmi = false;
-	struct drm_mode_config *mode_config = &dev->mode_config;
-	struct drm_connector *connector;
-
-	DRM_DEBUG("cdv_intel_crtc_mode_set called for pipe %d\n", pipe);
-
-	list_for_each_entry(connector, &mode_config->connector_list, head) {
-		struct psb_intel_output *psb_intel_output =
-		    to_psb_intel_output(connector);
-
-		if (!connector->encoder
-		    || connector->encoder->crtc != crtc)
-			continue;
-
-		switch (psb_intel_output->type) {
-		case INTEL_OUTPUT_LVDS:
-			is_lvds = true;
-			break;
-		case INTEL_OUTPUT_TVOUT:
-			is_tv = true;
-			break;
-		case INTEL_OUTPUT_ANALOG:
-			is_crt = true;
-			break;
-		case INTEL_OUTPUT_HDMI:
-			is_hdmi = true;
-			break;
-		default:
-			DRM_ERROR("Unsupported output type!\n");
-			return 0;
-		}
-	}
-
-	if (IS_I9XX(dev) || IS_CDV(dev))
-		refclk = 96000;
-	else
-		refclk = 48000;
-
-	/* Hack selection about ref clk for CRT */
-	/* Select 27MHz as the reference clk for HDMI */
-	if (is_crt || is_hdmi)
-		refclk = 27000;
-
-	if (pipe == 0 && dev_priv->dplla_96mhz)
-		refclk = 96000;
-
-	drm_mode_debug_printmodeline(adjusted_mode);
-
-	ok = cdv_intel_find_best_PLL(crtc, adjusted_mode->clock, refclk,
-				 &clock);
-	if (!ok) {
-		DRM_ERROR("Couldn't find PLL settings for mode!\n");
-		return 0;
-	}
-	if (REG_READ(FW_BLC_SELF) & FW_BLC_SELF_EN) {
-		REG_WRITE(FW_BLC_SELF, (REG_READ(FW_BLC_SELF) & ~FW_BLC_SELF_EN));
-		REG_READ(FW_BLC_SELF);
-		psb_intel_wait_for_vblank(dev);
-
-		REG_WRITE(OV_OVADD, dev_priv->ovl_offset);
-		psb_intel_wait_for_vblank(dev);
-	}
-
-	dpll = DPLL_VGA_MODE_DIS;
-	if (is_tv) {
-		/* XXX: just matching BIOS for now */
-/*	dpll |= PLL_REF_INPUT_TVCLKINBC; */
-		dpll |= 3;
-	}
-#if 0
-	else if (is_lvds)
-		dpll |= PLLB_REF_INPUT_SPREADSPECTRUMIN;
-
-#endif
-		dpll |= PLL_REF_INPUT_DREFCLK;
-
-	if( IS_CDV(dev) ) {
-		dpll |= DPLL_SYNCLOCK_ENABLE;
-		dpll |= DPLL_VGA_MODE_DIS;
-		if (is_lvds)
-			dpll |= DPLLB_MODE_LVDS;
-		else
-			dpll |= DPLLB_MODE_DAC_SERIAL;
-		//dpll |= (2 << 11);
-	}
-
-	/* setup pipeconf */
-	pipeconf = REG_READ(pipeconf_reg);
-
-	/* Set up the display plane register */
-	dspcntr = DISPPLANE_GAMMA_ENABLE;
-
-	if (pipe == 0)
-		dspcntr |= DISPPLANE_SEL_PIPE_A;
-	else
-		dspcntr |= DISPPLANE_SEL_PIPE_B;
-
-	dspcntr |= DISPLAY_PLANE_ENABLE;
-	pipeconf |= PIPEACONF_ENABLE;
-
-	REG_WRITE(dpll_reg,
-                   dpll | DPLL_VGA_MODE_DIS |
-                   DPLL_SYNCLOCK_ENABLE);
-        REG_READ(dpll_reg);
-
-	psb_dpll_set_clock_cdv(dev, crtc, &clock);
-
-        udelay(150);
-
-
-	/* The LVDS pin pair needs to be on before the DPLLs are enabled.
-	 * This is an exception to the general rule that mode_set doesn't turn
-	 * things on.
-	 */
-	if (is_lvds) {
-		u32 lvds = REG_READ(LVDS);
-
-		lvds |= LVDS_PORT_EN | LVDS_A0A2_CLKA_POWER_UP |
-			LVDS_PIPEB_SELECT;
-		/* Set the B0-B3 data pairs corresponding to
-		 * whether we're going to
-		 * set the DPLLs for dual-channel mode or not.
-		 */
-		if (clock.p2 == 7)
-			lvds |= LVDS_B0B3_POWER_UP | LVDS_CLKB_POWER_UP;
-		else
-			lvds &= ~(LVDS_B0B3_POWER_UP | LVDS_CLKB_POWER_UP);
-
-		/* It would be nice to set 24 vs 18-bit mode (LVDS_A3_POWER_UP)
-		 * appropriately here, but we need to look more
-		 * thoroughly into how panels behave in the two modes.
-		 */
-
-		REG_WRITE(LVDS, lvds);
-		REG_READ(LVDS);
-	}
-
-	dpll |= DPLL_VCO_ENABLE;
-
-		
-	/* Disable the panel fitter if it was on our pipe */
-	if (psb_intel_panel_fitter_pipe(dev) == pipe)
-		REG_WRITE(PFIT_CONTROL, 0);
-
-	DRM_DEBUG_KMS("Mode for pipe %c:\n", pipe == 0 ? 'A' : 'B');
-	drm_mode_debug_printmodeline(mode);
-
-	REG_WRITE(dpll_reg,
-                   (REG_READ(dpll_reg) & ~DPLL_LOCK) |
-                   DPLL_VCO_ENABLE);
-        REG_READ(dpll_reg);
-	/* Wait for the clocks to stabilize. */
-        udelay(150); /* 42 usec w/o calibration, 110 with.  rounded up. */
-
-        if (!(REG_READ(dpll_reg) & DPLL_LOCK)) {
-                DRM_ERROR("Failed to get DPLL lock\n");
-                return -EBUSY;
-        }
-
-	if (IS_CDV(dev)) {
-		int sdvo_pixel_multiply =
-		    adjusted_mode->clock / mode->clock;
-		REG_WRITE(dpll_md_reg,
-			  (0 << DPLL_MD_UDI_DIVIDER_SHIFT) |
-			  ((sdvo_pixel_multiply -
-			    1) << DPLL_MD_UDI_MULTIPLIER_SHIFT));
-	}
-
-	REG_WRITE(htot_reg, (adjusted_mode->crtc_hdisplay - 1) |
-		  ((adjusted_mode->crtc_htotal - 1) << 16));
-	REG_WRITE(hblank_reg, (adjusted_mode->crtc_hblank_start - 1) |
-		  ((adjusted_mode->crtc_hblank_end - 1) << 16));
-	REG_WRITE(hsync_reg, (adjusted_mode->crtc_hsync_start - 1) |
-		  ((adjusted_mode->crtc_hsync_end - 1) << 16));
-	REG_WRITE(vtot_reg, (adjusted_mode->crtc_vdisplay - 1) |
-		  ((adjusted_mode->crtc_vtotal - 1) << 16));
-	REG_WRITE(vblank_reg, (adjusted_mode->crtc_vblank_start - 1) |
-		  ((adjusted_mode->crtc_vblank_end - 1) << 16));
-	REG_WRITE(vsync_reg, (adjusted_mode->crtc_vsync_start - 1) |
-		  ((adjusted_mode->crtc_vsync_end - 1) << 16));
-	/* pipesrc and dspsize control the size that is scaled from,
-	 * which should always be the user's requested size.
-	 */
-	REG_WRITE(dspsize_reg,
-		  ((mode->vdisplay - 1) << 16) | (mode->hdisplay - 1));
-	REG_WRITE(dsppos_reg, 0);
-	REG_WRITE(pipesrc_reg,
-		  ((mode->hdisplay - 1) << 16) | (mode->vdisplay - 1));
-	REG_WRITE(pipeconf_reg, pipeconf);
-	REG_READ(pipeconf_reg);
-
-	psb_intel_wait_for_vblank(dev);
-
-	REG_WRITE(dspcntr_reg, dspcntr);
-
-	/* Flush the plane changes */
-	{
-		struct drm_crtc_helper_funcs *crtc_funcs =
-		    crtc->helper_private;
-		crtc_funcs->mode_set_base(crtc, x, y, old_fb);
-	}
-
-	psb_intel_wait_for_vblank(dev);
-
-	return 0;
-}
-
-/** Loads the palette/gamma unit for the CRTC with the prepared values */
-void psb_intel_crtc_load_lut(struct drm_crtc *crtc)
-{
-	struct drm_device *dev = crtc->dev;
-	struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(crtc);
-	int palreg = PALETTE_A;
-	int i;
-
-	/* The clocks have to be on to load the palette. */
-	if (!crtc->enabled)
-		return;
-
-	switch (psb_intel_crtc->pipe) {
-	case 0:
-		break;
-	case 1:
-		palreg = PALETTE_B;
-		break;
-	case 2:
-		palreg = PALETTE_C;
-		break;
-	default:
-		DRM_ERROR("Illegal Pipe Number. \n");
-		return;
-	}
-	
-	for (i = 0; i < 256; i++) {
-		REG_WRITE(palreg + 4 * i,
-			  ((psb_intel_crtc->lut_r[i] +
-			    psb_intel_crtc->lut_adj[i]) << 16) |
-			  ((psb_intel_crtc->lut_g[i] +
-			    psb_intel_crtc->lut_adj[i]) << 8) |
-			  (psb_intel_crtc->lut_b[i] +
-			   psb_intel_crtc->lut_adj[i]));
-	}
-}
-
-/**
- * Save HW states of giving crtc
- */
-static void psb_intel_crtc_save(struct drm_crtc *crtc)
-{
-	struct drm_device *dev = crtc->dev;
-	/* struct drm_psb_private *dev_priv =
-			(struct drm_psb_private *)dev->dev_private; */
-	struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(crtc);
-	struct psb_intel_crtc_state *crtc_state = psb_intel_crtc->crtc_state;
-	int pipeA = (psb_intel_crtc->pipe == 0);
-	uint32_t paletteReg;
-	int i;
-
-	DRM_DEBUG("\n");
-
-	if (!crtc_state) {
-		DRM_DEBUG("No CRTC state found\n");
-		return;
-	}
-
-	crtc_state->saveDSPCNTR = REG_READ(pipeA ? DSPACNTR : DSPBCNTR);
-	crtc_state->savePIPECONF = REG_READ(pipeA ? PIPEACONF : PIPEBCONF);
-	crtc_state->savePIPESRC = REG_READ(pipeA ? PIPEASRC : PIPEBSRC);
-	crtc_state->saveFP0 = REG_READ(pipeA ? FPA0 : FPB0);
-	crtc_state->saveFP1 = REG_READ(pipeA ? FPA1 : FPB1);
-	crtc_state->saveDPLL = REG_READ(pipeA ? DPLL_A : DPLL_B);
-	crtc_state->saveHTOTAL = REG_READ(pipeA ? HTOTAL_A : HTOTAL_B);
-	crtc_state->saveHBLANK = REG_READ(pipeA ? HBLANK_A : HBLANK_B);
-	crtc_state->saveHSYNC = REG_READ(pipeA ? HSYNC_A : HSYNC_B);
-	crtc_state->saveVTOTAL = REG_READ(pipeA ? VTOTAL_A : VTOTAL_B);
-	crtc_state->saveVBLANK = REG_READ(pipeA ? VBLANK_A : VBLANK_B);
-	crtc_state->saveVSYNC = REG_READ(pipeA ? VSYNC_A : VSYNC_B);
-	crtc_state->saveDSPSTRIDE = REG_READ(pipeA ? DSPASTRIDE : DSPBSTRIDE);
-
-	/*NOTE: DSPSIZE DSPPOS only for psb*/
-	crtc_state->saveDSPSIZE = REG_READ(pipeA ? DSPASIZE : DSPBSIZE);
-	crtc_state->saveDSPPOS = REG_READ(pipeA ? DSPAPOS : DSPBPOS);
-
-	crtc_state->saveDSPBASE = REG_READ(pipeA ? DSPABASE : DSPBBASE);
-
-	DRM_DEBUG("(%x %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x)\n",
-			crtc_state->saveDSPCNTR,
-			crtc_state->savePIPECONF,
-			crtc_state->savePIPESRC,
-			crtc_state->saveFP0,
-			crtc_state->saveFP1,
-			crtc_state->saveDPLL,
-			crtc_state->saveHTOTAL,
-			crtc_state->saveHBLANK,
-			crtc_state->saveHSYNC,
-			crtc_state->saveVTOTAL,
-			crtc_state->saveVBLANK,
-			crtc_state->saveVSYNC,
-			crtc_state->saveDSPSTRIDE,
-			crtc_state->saveDSPSIZE,
-			crtc_state->saveDSPPOS,
-			crtc_state->saveDSPBASE
-		);
-
-	paletteReg = pipeA ? PALETTE_A : PALETTE_B;
-	for (i = 0; i < 256; ++i)
-		crtc_state->savePalette[i] = REG_READ(paletteReg + (i << 2));
-}
-
-/**
- * Restore HW states of giving crtc
- */
-static void psb_intel_crtc_restore(struct drm_crtc *crtc)
-{
-	struct drm_device *dev = crtc->dev;
-	/* struct drm_psb_private * dev_priv =
-				(struct drm_psb_private *)dev->dev_private; */
-	struct psb_intel_crtc *psb_intel_crtc =  to_psb_intel_crtc(crtc);
-	struct psb_intel_crtc_state *crtc_state = psb_intel_crtc->crtc_state;
-	/* struct drm_crtc_helper_funcs * crtc_funcs = crtc->helper_private; */
-	int pipeA = (psb_intel_crtc->pipe == 0);
-	uint32_t paletteReg;
-	int i;
-
-	DRM_DEBUG("\n");
-
-	if (!crtc_state) {
-		DRM_DEBUG("No crtc state\n");
-		return;
-	}
-
-	DRM_DEBUG(
-		"current:(%x %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x)\n",
-		REG_READ(pipeA ? DSPACNTR : DSPBCNTR),
-		REG_READ(pipeA ? PIPEACONF : PIPEBCONF),
-		REG_READ(pipeA ? PIPEASRC : PIPEBSRC),
-		REG_READ(pipeA ? FPA0 : FPB0),
-		REG_READ(pipeA ? FPA1 : FPB1),
-		REG_READ(pipeA ? DPLL_A : DPLL_B),
-		REG_READ(pipeA ? HTOTAL_A : HTOTAL_B),
-		REG_READ(pipeA ? HBLANK_A : HBLANK_B),
-		REG_READ(pipeA ? HSYNC_A : HSYNC_B),
-		REG_READ(pipeA ? VTOTAL_A : VTOTAL_B),
-		REG_READ(pipeA ? VBLANK_A : VBLANK_B),
-		REG_READ(pipeA ? VSYNC_A : VSYNC_B),
-		REG_READ(pipeA ? DSPASTRIDE : DSPBSTRIDE),
-		REG_READ(pipeA ? DSPASIZE : DSPBSIZE),
-		REG_READ(pipeA ? DSPAPOS : DSPBPOS),
-		REG_READ(pipeA ? DSPABASE : DSPBBASE)
-		);
-
-	DRM_DEBUG(
-		"saved: (%x %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x)\n",
-		crtc_state->saveDSPCNTR,
-		crtc_state->savePIPECONF,
-		crtc_state->savePIPESRC,
-		crtc_state->saveFP0,
-		crtc_state->saveFP1,
-		crtc_state->saveDPLL,
-		crtc_state->saveHTOTAL,
-		crtc_state->saveHBLANK,
-		crtc_state->saveHSYNC,
-		crtc_state->saveVTOTAL,
-		crtc_state->saveVBLANK,
-		crtc_state->saveVSYNC,
-		crtc_state->saveDSPSTRIDE,
-		crtc_state->saveDSPSIZE,
-		crtc_state->saveDSPPOS,
-		crtc_state->saveDSPBASE
-		);
-
-
-#if 0
-	if (drm_helper_crtc_in_use(crtc))
-		crtc_funcs->dpms(crtc, DRM_MODE_DPMS_OFF);
-
-
-	if (psb_intel_panel_fitter_pipe(dev) == psb_intel_crtc->pipe) {
-		REG_WRITE(PFIT_CONTROL, crtc_state->savePFITCTRL);
-		DRM_DEBUG("write pfit_controle: %x\n", REG_READ(PFIT_CONTROL));
-	}
-#endif
-
-	if (crtc_state->saveDPLL & DPLL_VCO_ENABLE) {
-		REG_WRITE(pipeA ? DPLL_A : DPLL_B,
-			crtc_state->saveDPLL & ~DPLL_VCO_ENABLE);
-		REG_READ(pipeA ? DPLL_A : DPLL_B);
-		DRM_DEBUG("write dpll: %x\n",
-				REG_READ(pipeA ? DPLL_A : DPLL_B));
-		udelay(150);
-	}
-
-	REG_WRITE(pipeA ? FPA0 : FPB0, crtc_state->saveFP0);
-	REG_READ(pipeA ? FPA0 : FPB0);
-
-	REG_WRITE(pipeA ? FPA1 : FPB1, crtc_state->saveFP1);
-	REG_READ(pipeA ? FPA1 : FPB1);
-
-	REG_WRITE(pipeA ? DPLL_A : DPLL_B, crtc_state->saveDPLL);
-	REG_READ(pipeA ? DPLL_A : DPLL_B);
-	udelay(150);
-
-	REG_WRITE(pipeA ? HTOTAL_A : HTOTAL_B, crtc_state->saveHTOTAL);
-	REG_WRITE(pipeA ? HBLANK_A : HBLANK_B, crtc_state->saveHBLANK);
-	REG_WRITE(pipeA ? HSYNC_A : HSYNC_B, crtc_state->saveHSYNC);
-	REG_WRITE(pipeA ? VTOTAL_A : VTOTAL_B, crtc_state->saveVTOTAL);
-	REG_WRITE(pipeA ? VBLANK_A : VBLANK_B, crtc_state->saveVBLANK);
-	REG_WRITE(pipeA ? VSYNC_A : VSYNC_B, crtc_state->saveVSYNC);
-	REG_WRITE(pipeA ? DSPASTRIDE : DSPBSTRIDE, crtc_state->saveDSPSTRIDE);
-
-	REG_WRITE(pipeA ? DSPASIZE : DSPBSIZE, crtc_state->saveDSPSIZE);
-	REG_WRITE(pipeA ? DSPAPOS : DSPBPOS, crtc_state->saveDSPPOS);
-
-	REG_WRITE(pipeA ? PIPEASRC : PIPEBSRC, crtc_state->savePIPESRC);
-	REG_WRITE(pipeA ? DSPABASE : DSPBBASE, crtc_state->saveDSPBASE);
-	REG_WRITE(pipeA ? PIPEACONF : PIPEBCONF, crtc_state->savePIPECONF);
-
-	psb_intel_wait_for_vblank(dev);
-
-	REG_WRITE(pipeA ? DSPACNTR : DSPBCNTR, crtc_state->saveDSPCNTR);
-	REG_WRITE(pipeA ? DSPABASE : DSPBBASE, crtc_state->saveDSPBASE);
-
-	psb_intel_wait_for_vblank(dev);
-
-	paletteReg = pipeA ? PALETTE_A : PALETTE_B;
-	for (i = 0; i < 256; ++i)
-		REG_WRITE(paletteReg + (i << 2), crtc_state->savePalette[i]);
-}
-
-static int psb_intel_crtc_cursor_set(struct drm_crtc *crtc,
-				 struct drm_file *file_priv,
-				 uint32_t handle,
-				 uint32_t width, uint32_t height)
-{
-	struct drm_device *dev = crtc->dev;
-	struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(crtc);
-	struct psb_intel_mode_device *mode_dev = psb_intel_crtc->mode_dev;
-	int pipe = psb_intel_crtc->pipe;
-	uint32_t control = (pipe == 0) ? CURACNTR : CURBCNTR;
-	uint32_t base = (pipe == 0) ? CURABASE : CURBBASE;
-	uint32_t temp;
-	size_t addr = 0;
-	uint32_t page_offset;
-	size_t size;
-	void *bo;
-	int ret;
-
-	DRM_DEBUG("\n");
-
-	/* if we want to turn of the cursor ignore width and height */
-	if (!handle) {
-		DRM_DEBUG("cursor off\n");
-		/* turn off the cursor */
-		temp = 0;
-		temp |= CURSOR_MODE_DISABLE;
-
-		REG_WRITE(control, temp);
-		REG_WRITE(base, 0);
-
-		/* unpin the old bo */
-		if (psb_intel_crtc->cursor_bo) {
-			mode_dev->bo_unpin_for_scanout(dev,
-						       psb_intel_crtc->cursor_bo);
-			psb_intel_crtc->cursor_bo = NULL;
-		}
-
-		if (psb_intel_crtc->cursor_handle) {
-			psb_gtt_unmap_meminfo(dev, psb_intel_crtc->cursor_handle);
-			psb_intel_crtc->cursor_handle = NULL;
-		}
-
-		return 0;
-	}
-
-	/* Currently we only support 64x64 cursors */
-	if (width != 64 || height != 64) {
-		DRM_ERROR("we currently only support 64x64 cursors\n");
-		return -EINVAL;
-	}
-
-	bo = mode_dev->bo_from_handle(dev, file_priv, handle);
-	if (!bo)
-		return -ENOENT;
-
-	ret = mode_dev->bo_pin_for_scanout(dev, bo);
-	if (ret)
-		return ret;
-	size = mode_dev->bo_size(dev, bo);
-	if (size < width * height * 4) {
-		DRM_ERROR("buffer is to small\n");
-		return -ENOMEM;
-	}
-
-	/*insert this bo into gtt*/
-	DRM_DEBUG("%s: map meminfo for hw cursor. handle %x\n",
-						__func__, handle);
-
-	ret = psb_gtt_map_meminfo(dev, (IMG_HANDLE)handle, &page_offset);
-	if (ret) {
-		DRM_ERROR("Can not map meminfo to GTT. handle 0x%x\n", handle);
-		return ret;
-	}
-
-	addr = page_offset << PAGE_SHIFT;
-
-
-	psb_intel_crtc->cursor_addr = addr;
-
-	temp = 0;
-	/* set the pipe for the cursor */
-	temp |= (pipe << 28);
-	temp |= CURSOR_MODE_64_ARGB_AX | MCURSOR_GAMMA_ENABLE;
-
-	REG_WRITE(control, temp);
-	REG_WRITE(base, addr);
-
-	/* unpin the old bo */
-	if (psb_intel_crtc->cursor_bo && psb_intel_crtc->cursor_bo != bo)
-		mode_dev->bo_unpin_for_scanout(dev, psb_intel_crtc->cursor_bo);
-
-	psb_intel_crtc->cursor_bo = bo;
-
-	if (psb_intel_crtc->cursor_handle && psb_intel_crtc->cursor_handle != (void *)handle)
-		psb_gtt_unmap_meminfo(dev, psb_intel_crtc->cursor_handle);
-
-	psb_intel_crtc->cursor_handle = (IMG_HANDLE)handle;
-
-	return 0;
-}
-
-static int psb_intel_crtc_cursor_move(struct drm_crtc *crtc, int x, int y)
-{
-	struct drm_device *dev = crtc->dev;
-	struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(crtc);
-	int pipe = psb_intel_crtc->pipe;
-	uint32_t temp = 0;
-	uint32_t adder;
-
-
-	if (x < 0) {
-		temp |= (CURSOR_POS_SIGN << CURSOR_X_SHIFT);
-		x = -x;
-	}
-	if (y < 0) {
-		temp |= (CURSOR_POS_SIGN << CURSOR_Y_SHIFT);
-		y = -y;
-	}
-
-	temp |= ((x & CURSOR_POS_MASK) << CURSOR_X_SHIFT);
-	temp |= ((y & CURSOR_POS_MASK) << CURSOR_Y_SHIFT);
-
-	adder = psb_intel_crtc->cursor_addr;
-
-	REG_WRITE((pipe == 0) ? CURAPOS : CURBPOS, temp);
-	REG_WRITE((pipe == 0) ? CURABASE : CURBBASE, adder);
-
-	return 0;
-}
-
-static void psb_intel_crtc_gamma_set(struct drm_crtc *crtc, u16 *red,
-				 u16 *green, u16 *blue, uint32_t start, uint32_t size)
-{
-	struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(crtc);
-	int i;
-	int end = (start + size > 256) ? 256 : start + size;
-
-	for (i = start; i < end; i++) {
-		psb_intel_crtc->lut_r[i] = red[i] >> 8;
-		psb_intel_crtc->lut_g[i] = green[i] >> 8;
-		psb_intel_crtc->lut_b[i] = blue[i] >> 8;
-	}
-
-	psb_intel_crtc_load_lut(crtc);
-}
-
-static int psb_crtc_set_config(struct drm_mode_set *set)
-{
-	int ret = 0;
-	struct drm_device * dev = set->crtc->dev;
-	struct drm_psb_private * dev_priv = dev->dev_private;
-
-	if(!dev_priv->rpm_enabled)
-		return drm_crtc_helper_set_config(set);
-
-	pm_runtime_forbid(&dev->pdev->dev);
-
-	ret = drm_crtc_helper_set_config(set);
-
-	pm_runtime_allow(&dev->pdev->dev);
-
-	return ret;
-}
-
-/* Returns the clock of the currently programmed mode of the given pipe. */
-static int psb_intel_crtc_clock_get(struct drm_device *dev,
-				struct drm_crtc *crtc)
-{
-	struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(crtc);
-	int pipe = psb_intel_crtc->pipe;
-	u32 dpll;
-	u32 fp;
-	struct psb_intel_clock_t clock;
-	bool is_lvds;
-
-	dpll = REG_READ((pipe == 0) ? DPLL_A : DPLL_B);
-	if ((dpll & DISPLAY_RATE_SELECT_FPA1) == 0)
-		fp = REG_READ((pipe == 0) ? FPA0 : FPB0);
-	else
-		fp = REG_READ((pipe == 0) ? FPA1 : FPB1);
-	is_lvds = (pipe == 1) && (REG_READ(LVDS) & LVDS_PORT_EN);
-
-	clock.m1 = (fp & FP_M1_DIV_MASK) >> FP_M1_DIV_SHIFT;
-	clock.m2 = (fp & FP_M2_DIV_MASK) >> FP_M2_DIV_SHIFT;
-	clock.n = (fp & FP_N_DIV_MASK) >> FP_N_DIV_SHIFT;
-
-	if (is_lvds) {
-		clock.p1 =
-		    ffs((dpll &
-			 DPLL_FPA01_P1_POST_DIV_MASK_I830_LVDS) >>
-			DPLL_FPA01_P1_POST_DIV_SHIFT);
-		clock.p2 = 14;
-
-		if ((dpll & PLL_REF_INPUT_MASK) ==
-		    PLLB_REF_INPUT_SPREADSPECTRUMIN) {
-			/* XXX: might not be 66MHz */
-			i8xx_clock(66000, &clock);
-		} else
-			i8xx_clock(48000, &clock);
-	} else {
-		if (dpll & PLL_P1_DIVIDE_BY_TWO)
-			clock.p1 = 2;
-		else {
-			clock.p1 =
-			    ((dpll &
-			      DPLL_FPA01_P1_POST_DIV_MASK_I830) >>
-			     DPLL_FPA01_P1_POST_DIV_SHIFT) + 2;
-		}
-		if (dpll & PLL_P2_DIVIDE_BY_4)
-			clock.p2 = 4;
-		else
-			clock.p2 = 2;
-
-		i8xx_clock(48000, &clock);
-	}
-
-	/* XXX: It would be nice to validate the clocks, but we can't reuse
-	 * i830PllIsValid() because it relies on the xf86_config connector
-	 * configuration being accurate, which it isn't necessarily.
-	 */
-
-	return clock.dot;
-}
-
-/** Returns the currently programmed mode of the given pipe. */
-struct drm_display_mode *psb_intel_crtc_mode_get(struct drm_device *dev,
-					     struct drm_crtc *crtc)
-{
-	struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(crtc);
-	int pipe = psb_intel_crtc->pipe;
-	struct drm_display_mode *mode;
-	int htot;
-	int hsync;
-	int vtot;
-	int vsync;
-
-	htot = REG_READ((pipe == 0) ? HTOTAL_A : HTOTAL_B);
-	hsync = REG_READ((pipe == 0) ? HSYNC_A : HSYNC_B);
-	vtot = REG_READ((pipe == 0) ? VTOTAL_A : VTOTAL_B);
-	vsync = REG_READ((pipe == 0) ? VSYNC_A : VSYNC_B);
-
-	mode = kzalloc(sizeof(*mode), GFP_KERNEL);
-	if (!mode)
-		return NULL;
-
-	mode->clock = psb_intel_crtc_clock_get(dev, crtc);
-	mode->hdisplay = (htot & 0xffff) + 1;
-	mode->htotal = ((htot & 0xffff0000) >> 16) + 1;
-	mode->hsync_start = (hsync & 0xffff) + 1;
-	mode->hsync_end = ((hsync & 0xffff0000) >> 16) + 1;
-	mode->vdisplay = (vtot & 0xffff) + 1;
-	mode->vtotal = ((vtot & 0xffff0000) >> 16) + 1;
-	mode->vsync_start = (vsync & 0xffff) + 1;
-	mode->vsync_end = ((vsync & 0xffff0000) >> 16) + 1;
-
-	drm_mode_set_name(mode);
-	drm_mode_set_crtcinfo(mode, 0);
-
-	return mode;
-}
-
-static void psb_intel_crtc_destroy(struct drm_crtc *crtc)
-{
-	struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(crtc);
-
-	kfree(psb_intel_crtc->crtc_state);
-	drm_crtc_cleanup(crtc);
-	kfree(psb_intel_crtc);
-}
-
-static const struct drm_crtc_helper_funcs cdv_intel_helper_funcs = {
-	.dpms = psb_intel_crtc_dpms,
-	.mode_fixup = psb_intel_crtc_mode_fixup,
-	.mode_set = cdv_intel_crtc_mode_set,
-	.mode_set_base = psb_intel_pipe_set_base,
-	.prepare = psb_intel_crtc_prepare,
-	.commit = psb_intel_crtc_commit,
-};
-
-const struct drm_crtc_funcs psb_intel_crtc_funcs = {
-	.save = psb_intel_crtc_save,
-	.restore = psb_intel_crtc_restore,
-	.cursor_set = psb_intel_crtc_cursor_set,
-	.cursor_move = psb_intel_crtc_cursor_move,
-	.gamma_set = psb_intel_crtc_gamma_set,
-	.set_config = psb_crtc_set_config,
-	.destroy = psb_intel_crtc_destroy,
-};
-
-/*
- * Set the default value of cursor control and base register
- * to zero. This is a workaround for h/w defect on oaktrail
- */
-void psb_intel_cursor_init(struct drm_device *dev, int pipe)
-{
-	uint32_t control;
-	uint32_t base;
-      
-	switch (pipe) {
-	case 0:
-		control = CURACNTR;
-		base = CURABASE;
-		break;
-	case 1:
-		control = CURBCNTR;
-		base = CURBBASE;
-		break;
-	case 2:
-		control = CURCCNTR;
-		base = CURCBASE;
-		break;
-	default:
-		return;
-	}
-
-	REG_WRITE(control, 0);
-	REG_WRITE(base, 0);
-}
-
-void psb_intel_crtc_init(struct drm_device *dev, int pipe,
-			 struct psb_intel_mode_device *mode_dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct psb_intel_crtc *psb_intel_crtc;
-	int i;
-	uint16_t *r_base, *g_base, *b_base;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	/* We allocate a extra array of drm_connector pointers
-	 * for fbdev after the crtc */
-	psb_intel_crtc = kzalloc(sizeof(struct psb_intel_crtc) +
-				 (INTELFB_CONN_LIMIT * sizeof(struct drm_connector *)),
-				 GFP_KERNEL);
-	if (psb_intel_crtc == NULL)
-		return;
-
-	psb_intel_crtc->crtc_state = kzalloc(sizeof(struct psb_intel_crtc_state),
-					     GFP_KERNEL);
-	if (!psb_intel_crtc->crtc_state) {
-		DRM_ERROR("Crtc state error: No memory\n");
-		kfree(psb_intel_crtc);
-		return;
-	}
-
-	drm_crtc_init(dev, &psb_intel_crtc->base, &psb_intel_crtc_funcs);
-
-	drm_mode_crtc_set_gamma_size(&psb_intel_crtc->base, 256);
-	psb_intel_crtc->pipe = pipe;
-	psb_intel_crtc->plane = pipe;
-
-	r_base = psb_intel_crtc->base.gamma_store;
-	g_base = r_base + 256;
-	b_base = g_base + 256;
-	for (i = 0; i < 256; i++) {
-		psb_intel_crtc->lut_r[i] = i;
-		psb_intel_crtc->lut_g[i] = i;
-		psb_intel_crtc->lut_b[i] = i;
-		r_base[i] = i << 8;
-		g_base[i] = i << 8;
-		b_base[i] = i << 8;
-
-		psb_intel_crtc->lut_adj[i] = 0;
-	}
-
-	psb_intel_crtc->mode_dev = mode_dev;
-	psb_intel_crtc->cursor_addr = 0;
-
-	drm_crtc_helper_add(&psb_intel_crtc->base,
-			    &cdv_intel_helper_funcs);
-
-	/* Setup the array of drm_connector pointer array */
-	psb_intel_crtc->mode_set.crtc = &psb_intel_crtc->base;
-	BUG_ON(pipe >= ARRAY_SIZE(dev_priv->plane_to_crtc_mapping) ||
-	       dev_priv->plane_to_crtc_mapping[psb_intel_crtc->plane] != NULL);
-	dev_priv->plane_to_crtc_mapping[psb_intel_crtc->plane] = &psb_intel_crtc->base;
-	dev_priv->pipe_to_crtc_mapping[psb_intel_crtc->pipe] = &psb_intel_crtc->base;
-	psb_intel_crtc->mode_set.connectors =
-	    (struct drm_connector **) (psb_intel_crtc + 1);
-	psb_intel_crtc->mode_set.num_connectors = 0;
-
-	psb_intel_cursor_init(dev, pipe);
-
-	init_timer(&psb_intel_crtc->flip_timer);
-	psb_intel_crtc->flip_timer.function = psb_crtc_flip_timer;
-	psb_intel_crtc->flip_timer.data = (unsigned long)psb_intel_crtc;
-	psb_intel_crtc->crtc_enable = false;	
-}
-
-int psb_intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data,
-				struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct drm_psb_get_pipe_from_crtc_id_arg *pipe_from_crtc_id = data;
-	struct drm_mode_object *drmmode_obj;
-	struct psb_intel_crtc *crtc;
-
-	if (!dev_priv) {
-		DRM_ERROR("called with no initialization\n");
-		return -EINVAL;
-	}
-
-	drmmode_obj = drm_mode_object_find(dev, pipe_from_crtc_id->crtc_id,
-			DRM_MODE_OBJECT_CRTC);
-
-	if (!drmmode_obj) {
-		DRM_ERROR("no such CRTC id\n");
-		return -EINVAL;
-	}
-
-	crtc = to_psb_intel_crtc(obj_to_crtc(drmmode_obj));
-	pipe_from_crtc_id->pipe = crtc->pipe;
-
-	return 0;
-}
-
-struct drm_crtc *psb_intel_get_crtc_from_pipe(struct drm_device *dev, int pipe)
-{
-	struct drm_crtc *crtc = NULL;
-
-	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
-		struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(crtc);
-		if (psb_intel_crtc->pipe == pipe)
-			break;
-	}
-	return crtc;
-}
-
-int psb_intel_connector_clones(struct drm_device *dev, int type_mask)
-{
-	int index_mask = 0;
-	struct drm_connector *connector;
-	int entry = 0;
-
-	list_for_each_entry(connector, &dev->mode_config.connector_list,
-			    head) {
-		struct psb_intel_output *psb_intel_output =
-		    to_psb_intel_output(connector);
-		if (type_mask & (1 << psb_intel_output->type))
-			index_mask |= (1 << entry);
-		entry++;
-	}
-	return index_mask;
-}
-
-void psb_intel_modeset_cleanup(struct drm_device *dev)
-{
-	struct drm_crtc *crtc;
-	struct psb_intel_crtc *psb_intel_crtc;
-
-	/* Shut off flip_timer before the crtcs get freed. */
-	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
-		psb_intel_crtc = to_psb_intel_crtc(crtc);
-                del_timer_sync(&psb_intel_crtc->flip_timer);
-        }
-
-	drm_mode_config_cleanup(dev);
-}
-
-
-/* current intel driver doesn't take advantage of encoders
-   always give back the encoder for the connector
-*/
-struct drm_encoder *psb_intel_best_encoder(struct drm_connector *connector)
-{
-	struct psb_intel_output *psb_intel_output =
-					to_psb_intel_output(connector);
-
-	return &psb_intel_output->enc;
-}
-
-
diff --git a/drivers/staging/cdv/drv/psb_intel_display.h b/drivers/staging/cdv/drv/psb_intel_display.h
deleted file mode 100644
index 8e90e05..0000000
--- a/drivers/staging/cdv/drv/psb_intel_display.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* copyright (c) 2011, Intel Corporation
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- * Eric Anholt <eric@anholt.net>
- */
-
-#ifndef _INTEL_DISPLAY_H_
-#define _INTEL_DISPLAY_H_
-
-bool psb_intel_pipe_has_type(struct drm_crtc *crtc, int type);
-
-#endif
diff --git a/drivers/staging/cdv/drv/psb_intel_dpll_cdv.c b/drivers/staging/cdv/drv/psb_intel_dpll_cdv.c
deleted file mode 100644
index d19d603..0000000
--- a/drivers/staging/cdv/drv/psb_intel_dpll_cdv.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Copyright (C) 2011 Intel Corporation
- *
- * This program is free software: you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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, see <http://www.gnu.org/licenses/>.
- */
-
-#include <drm/drmP.h>
-
-#include "psb_intel_bios.h"
-#include "psb_drv.h"
-#include "psb_intel_drv.h"
-#include "psb_intel_reg.h"
-
-
-#define _wait_for(COND, MS, W) ({ \
-        unsigned long timeout__ = jiffies + msecs_to_jiffies(MS);       \
-        int ret__ = 0;                                                  \
-        while (! (COND)) {                                              \
-                if (time_after(jiffies, timeout__)) {                   \
-                        ret__ = -ETIMEDOUT;                             \
-                        break;                                          \
-                }                                                       \
-                if (W && !in_dbg_master()) msleep(W);                   \
-        }                                                               \
-        ret__;                                                          \
-})      
-
-#define wait_for(COND, MS) _wait_for(COND, MS, 1)
-
-
-static int
-psb_sb_read(struct drm_device *dev, u32 reg, u32 *val)
-{
-	int ret;
-
-	ret = wait_for((REG_READ(SB_PCKT) & SB_BUSY) == 0, 1000);
-	if (ret) {
-		DRM_ERROR("timeout waiting for SB to idle before read\n");
-		return ret;
-	}
-
-	REG_WRITE(SB_ADDR, reg);
-	REG_WRITE(SB_PCKT,
-		   SET_FIELD(SB_OPCODE_READ, SB_OPCODE) |
-		   SET_FIELD(SB_DEST_DPLL, SB_DEST) |
-		   SET_FIELD(0xf, SB_BYTE_ENABLE));
-
-	ret = wait_for((REG_READ(SB_PCKT) & SB_BUSY) == 0, 1000);
-	if (ret) {
-		DRM_ERROR("timeout waiting for SB to idle after read\n");
-		return ret;
-	}
-
-	*val = REG_READ(SB_DATA);
-
-	return 0;
-}
-
-static int
-psb_sb_write(struct drm_device *dev, u32 reg, u32 val)
-{
-	int ret;
-	static bool dpio_debug = true;
-	u32 temp;
-
-	if (dpio_debug) {
-		if (psb_sb_read(dev, reg, &temp) == 0)
-			DRM_DEBUG_KMS("0x%08x: 0x%08x (before)\n", reg, temp);
-		DRM_DEBUG_KMS("0x%08x: 0x%08x\n", reg, val);
-	}
-
-	ret = wait_for((REG_READ(SB_PCKT) & SB_BUSY) == 0, 1000);
-	if (ret) {
-		DRM_ERROR("timeout waiting for SB to idle before write\n");
-		return ret;
-	}
-
-	REG_WRITE(SB_ADDR, reg);
-	REG_WRITE(SB_DATA, val);
-	REG_WRITE(SB_PCKT,
-		   SET_FIELD(SB_OPCODE_WRITE, SB_OPCODE) |
-		   SET_FIELD(SB_DEST_DPLL, SB_DEST) |
-		   SET_FIELD(0xf, SB_BYTE_ENABLE));
-
-	ret = wait_for((REG_READ(SB_PCKT) & SB_BUSY) == 0, 1000);
-	if (ret) {
-		DRM_ERROR("timeout waiting for SB to idle after write\n");
-		return ret;
-	}
-
-	if (dpio_debug) {
-		if (psb_sb_read(dev, reg, &temp) == 0)
-			DRM_DEBUG_KMS("0x%08x: 0x%08x (after)\n", reg, temp);
-	}
-
-	return 0;
-}
-
-/* Reset the DPIO configuration register.  The BIOS does this at every
- * mode set.
- */
-static void
-psb_sb_reset(struct drm_device *dev)
-{
-
-	REG_WRITE(DPIO_CFG, 0);
-	REG_READ(DPIO_CFG);
-	REG_WRITE(DPIO_CFG, DPIO_MODE_SELECT_0 | DPIO_CMN_RESET_N);
-}
-
-static void
-psb_print_clock(struct psb_intel_clock_t *clock)
-{
-	DRM_DEBUG_KMS("CDV clock: n %d m1 %d m2 %d p1 %d p2 %d dot %d vco %d m %d p %d\n",
-		      clock->n, clock->m1, clock->m2, clock->p1, clock->p2, clock->dot,
-		      clock->vco, clock->m, clock->p);
-}
-
-/* Unlike most Intel display engines, on Cedarview the DPLL registers
- * are behind this sideband bus.  They must be programmed while the
- * DPLL reference clock is on in the DPLL control register, but before
- * the DPLL is enabled in the DPLL control register.
- */
-int
-psb_dpll_set_clock_cdv(struct drm_device *dev, struct drm_crtc *crtc,
-			       struct psb_intel_clock_t *clock)
-{
-	struct psb_intel_crtc *psb_crtc =
-				to_psb_intel_crtc(crtc);
-	int pipe = psb_crtc->pipe;
-	u32 m, n_vco, p;
-	int ret = 0;
-	int dpll_reg = (pipe == 0) ? DPLL_A : DPLL_B;
-	u32 ref_value;
-
-	psb_print_clock(clock);
-
-	psb_sb_reset(dev);
-
-	if ((REG_READ(dpll_reg) & DPLL_SYNCLOCK_ENABLE) == 0) {
-		DRM_ERROR("Attempting to set DPLL with refclk disabled\n");
-		return -EBUSY;
-	}
-
-	/* Follow the BIOS and write the REF/SFR Register. Hardcoded value */
-	ref_value = 0x68A701;
-
-	psb_sb_write(dev, SB_REF_SFR(pipe), ref_value);
-	
-	/* We don't know what the other fields of these regs are, so
-	 * leave them in place.
-	 */
-	ret = psb_sb_read(dev, SB_M(pipe), &m);
-	if (ret)
-		return ret;
-	m &= ~SB_M_DIVIDER_MASK;
-	m |= ((clock->m2) << SB_M_DIVIDER_SHIFT);
-	ret = psb_sb_write(dev, SB_M(pipe), m);
-	if (ret)
-		return ret;
-
-	ret = psb_sb_read(dev, SB_N_VCO(pipe), &n_vco);
-	if (ret)
-		return ret;
-
-	/* Follow the BIOS to program the N_DIVIDER REG */
-	n_vco &= 0xFFFF;
-	n_vco |= 0x107;
-	n_vco &= ~(SB_N_VCO_SEL_MASK |
-		   SB_N_DIVIDER_MASK |
-		   SB_N_CB_TUNE_MASK);
-
-	n_vco |= ((clock->n) << SB_N_DIVIDER_SHIFT);
-
-	if (clock->vco < 2250000) {
-		n_vco |= (2 << SB_N_CB_TUNE_SHIFT);
-		n_vco |= (0 << SB_N_VCO_SEL_SHIFT);
-	} else if (clock->vco < 2750000) {
-		n_vco |= (1 << SB_N_CB_TUNE_SHIFT);
-		n_vco |= (1 << SB_N_VCO_SEL_SHIFT);
-	} else if (clock->vco < 3300000) {
-		n_vco |= (0 << SB_N_CB_TUNE_SHIFT);
-		n_vco |= (2 << SB_N_VCO_SEL_SHIFT);
-	} else {
-		n_vco |= (0 << SB_N_CB_TUNE_SHIFT);
-		n_vco |= (3 << SB_N_VCO_SEL_SHIFT);
-	}
-
-	ret = psb_sb_write(dev, SB_N_VCO(pipe), n_vco);
-	if (ret)
-		return ret;
-
-	ret = psb_sb_read(dev, SB_P(pipe), &p);
-	if (ret)
-		return ret;
-	p &= ~(SB_P2_DIVIDER_MASK | SB_P1_DIVIDER_MASK);
-	p |= SET_FIELD(clock->p1, SB_P1_DIVIDER);
-	switch (clock->p2) {
-	case 5:
-		p |= SET_FIELD(SB_P2_5, SB_P2_DIVIDER);
-		break;
-	case 10:
-		p |= SET_FIELD(SB_P2_10, SB_P2_DIVIDER);
-		break;
-	case 14:
-		p |= SET_FIELD(SB_P2_14, SB_P2_DIVIDER);
-		break;
-	case 7:
-		p |= SET_FIELD(SB_P2_7, SB_P2_DIVIDER);
-		break;
-	default:
-		DRM_ERROR("Bad P2 clock: %d\n", clock->p2);
-		return -EINVAL;
-	}
-	ret = psb_sb_write(dev, SB_P(pipe), p);
-	if (ret)
-		return ret;
-
-	/* always Program the Lane Register for the Pipe A*/
-	if (pipe == 0) {
-		/* Program the Lane0/1 for HDMI B */
-		u32 lane_reg, lane_value;
-
-		lane_reg = PSB_LANE0;
-		psb_sb_read(dev, lane_reg, &lane_value);
-		lane_value &= ~(LANE_PLL_MASK);
-		lane_value |= LANE_PLL_ENABLE;
-		psb_sb_write(dev, lane_reg, lane_value);
-
-		lane_reg = PSB_LANE1;
-		psb_sb_read(dev, lane_reg, &lane_value);
-		lane_value &= ~(LANE_PLL_MASK);
-		lane_value |= LANE_PLL_ENABLE;
-		psb_sb_write(dev, lane_reg, lane_value);
-
-		/* Program the Lane2/3 for HDMI C */	
-		lane_reg = PSB_LANE2;
-		psb_sb_read(dev, lane_reg, &lane_value);
-		lane_value &= ~(LANE_PLL_MASK);
-		lane_value |= LANE_PLL_ENABLE;
-		psb_sb_write(dev, lane_reg, lane_value);
-
-	
-		lane_reg = PSB_LANE3;
-		psb_sb_read(dev, lane_reg, &lane_value);
-		lane_value &= ~(LANE_PLL_MASK);
-		lane_value |= LANE_PLL_ENABLE;
-		psb_sb_write(dev, lane_reg, lane_value);
-	}
-
-	return 0;
-}
diff --git a/drivers/staging/cdv/drv/psb_intel_drv.h b/drivers/staging/cdv/drv/psb_intel_drv.h
deleted file mode 100644
index 732e477..0000000
--- a/drivers/staging/cdv/drv/psb_intel_drv.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Copyright (c) 2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- */
-
-#ifndef __INTEL_DRV_H__
-#define __INTEL_DRV_H__
-
-#include <linux/i2c.h>
-#include <linux/i2c-algo-bit.h>
-#include <drm/drm_crtc.h>
-#include <drm/drm_crtc_helper.h>
-#include <linux/gpio.h>
-
-/*
- * Display related stuff
- */
-
-/* store information about an Ixxx DVO */
-/* The i830->i865 use multiple DVOs with multiple i2cs */
-/* the i915, i945 have a single sDVO i2c bus - which is different */
-#define MAX_OUTPUTS 6
-/* maximum connectors per crtcs in the mode set */
-#define INTELFB_CONN_LIMIT 4
-
-#define INTEL_I2C_BUS_DVO 1
-#define INTEL_I2C_BUS_SDVO 2
-
-/* these are outputs from the chip - integrated only
- * external chips are via DVO or SDVO output */
-#define INTEL_OUTPUT_UNUSED 0
-#define INTEL_OUTPUT_ANALOG 1
-#define INTEL_OUTPUT_DVO 2
-#define INTEL_OUTPUT_SDVO 3
-#define INTEL_OUTPUT_LVDS 4
-#define INTEL_OUTPUT_TVOUT 5
-#define INTEL_OUTPUT_HDMI 6
-
-#define INTEL_DVO_CHIP_NONE 0
-#define INTEL_DVO_CHIP_LVDS 1
-#define INTEL_DVO_CHIP_TMDS 2
-#define INTEL_DVO_CHIP_TVOUT 4
-
-struct psb_intel_clock_t
-{
-	/* given values */
-	int n;
-	int m1, m2;
-	int p1, p2;
-	/* derived values */
-	int dot;
-	int vco;
-	int m;
-	int p;
-};
-/**
- * Hold information useally put on the device driver privates here,
- * since it needs to be shared across multiple of devices drivers privates.
-*/
-struct psb_intel_mode_device {
-
-	/*
-	 * Abstracted memory manager operations
-	 */
-	void *(*bo_from_handle) (struct drm_device *dev,
-				 struct drm_file *file_priv,
-				 unsigned int handle);
-	size_t(*bo_size) (struct drm_device *dev, void *bo);
-	size_t(*bo_offset) (struct drm_device *dev, void *bo);
-	int (*bo_pin_for_scanout) (struct drm_device *dev, void *bo);
-	int (*bo_unpin_for_scanout) (struct drm_device *dev, void *bo);
-
-	/*
-	 * Cursor
-	 */
-	int cursor_needs_physical;
-
-	/*
-	 * LVDS info
-	 */
-	int backlight_duty_cycle;	/* restore backlight to this value */
-	bool panel_wants_dither;
-	struct drm_display_mode *panel_fixed_mode;
-	struct drm_display_mode *panel_fixed_mode2;
-	struct drm_display_mode *vbt_mode;	/* if any */
-
-	uint32_t saveBLC_PWM_CTL;
-};
-
-struct psb_intel_i2c_chan {
-	/* for getting at dev. private (mmio etc.) */
-	struct drm_device *drm_dev;
-	u32 reg;		/* GPIO reg */
-	struct i2c_adapter adapter;
-	struct i2c_algo_bit_data algo;
-	u8 slave_addr;
-};
-
-struct psb_intel_output {
-	struct drm_connector base;
-
-	struct drm_encoder enc;
-	int type;
-#if 1 /*MDFLD_HDMI_JLIU7*/
-	struct i2c_adapter *hdmi_i2c_adapter;	/* for control functions */
-#endif
-	struct psb_intel_i2c_chan *i2c_bus;	/* for control functions */
-	struct psb_intel_i2c_chan *ddc_bus;	/* for DDC only stuff */
-	bool load_detect_temp;
-	void *dev_priv;
-
-	struct psb_intel_mode_device *mode_dev;
-
-};
-
-struct psb_intel_crtc_state {
-	uint32_t saveDSPCNTR;
-	uint32_t savePIPECONF;
-	uint32_t savePIPESRC;
-	uint32_t saveDPLL;
-	uint32_t saveFP0;
-	uint32_t saveFP1;
-	uint32_t saveHTOTAL;
-	uint32_t saveHBLANK;
-	uint32_t saveHSYNC;
-	uint32_t saveVTOTAL;
-	uint32_t saveVBLANK;
-	uint32_t saveVSYNC;
-	uint32_t saveDSPSTRIDE;
-	uint32_t saveDSPSIZE;
-	uint32_t saveDSPPOS;
-	uint32_t saveDSPBASE;
-	uint32_t savePalette[256];
-};
-
-struct psb_intel_crtc {
-	struct drm_crtc base;
-	int pipe;
-	int plane;
-	uint32_t cursor_addr;
-	u8 lut_r[256], lut_g[256], lut_b[256];
-	u8 lut_adj[256];
-	struct psb_intel_framebuffer *fbdev_fb;
-	/* a mode_set for fbdev users on this crtc */
-	struct drm_mode_set mode_set;
-
-	/* Add one flip timer that still can handle the flip operation
-	 * when the pipe is disabled
-	 */
-	struct timer_list flip_timer;
-	int crtc_enable;
-	int flip_counter;
-
-	/* current bo we scanout from */
-	void *scanout_bo;
-
-	/* current bo we cursor from */
-	void *cursor_bo;
-	void *cursor_handle;
-
-	struct drm_display_mode saved_mode;
-	struct drm_display_mode saved_adjusted_mode;
-
-	struct psb_intel_mode_device *mode_dev;
-
-	/*crtc mode setting flags*/
-	u32 mode_flags;
-
-/*FIXME: Workaround to avoid MRST block.*/
-	/* Saved Crtc HW states */
-	struct psb_intel_crtc_state *crtc_state;
-
-	int psb_crtc_active;
-};
-
-#define to_psb_intel_crtc(x)	\
-		container_of(x, struct psb_intel_crtc, base)
-#define to_psb_intel_output(x)	\
-		container_of(x, struct psb_intel_output, base)
-#define enc_to_psb_intel_output(x)	\
-		container_of(x, struct psb_intel_output, enc)
-#define to_psb_intel_framebuffer(x)	\
-		container_of(x, struct psb_intel_framebuffer, base)
-
-struct psb_intel_i2c_chan *psb_intel_i2c_create(struct drm_device *dev,
-					const u32 reg, const char *name);
-void psb_intel_i2c_destroy(struct psb_intel_i2c_chan *chan);
-int psb_intel_ddc_get_modes(struct psb_intel_output *psb_intel_output);
-extern bool psb_intel_ddc_probe(struct psb_intel_output *psb_intel_output);
-
-extern void psb_intel_crtc_init(struct drm_device *dev, int pipe,
-			    struct psb_intel_mode_device *mode_dev);
-extern void psb_intel_crt_init(struct drm_device *dev,
-			    struct psb_intel_mode_device *mode_dev);
-extern void psb_intel_tv_init(struct drm_device *dev);
-extern void psb_intel_lvds_init(struct drm_device *dev,
-			    struct psb_intel_mode_device *mode_dev);
-extern void mdfld_hdmi_init(struct drm_device *dev,
-			   struct psb_intel_mode_device *mode_dev, int reg);
-
-extern void psb_intel_crtc_load_lut(struct drm_crtc *crtc);
-extern void psb_intel_encoder_prepare(struct drm_encoder *encoder);
-extern void psb_intel_encoder_commit(struct drm_encoder *encoder);
-
-extern struct drm_encoder *psb_intel_best_encoder(struct drm_connector
-					      *connector);
-
-extern struct drm_display_mode *psb_intel_crtc_mode_get(struct drm_device *dev,
-						    struct drm_crtc *crtc);
-extern void psb_intel_wait_for_vblank(struct drm_device *dev);
-extern int psb_intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data,
-				struct drm_file *file_priv);
-extern struct drm_crtc *psb_intel_get_crtc_from_pipe(struct drm_device *dev,
-						 int pipe);
-extern int intelfb_probe(struct drm_device *dev);
-extern int intelfb_remove(struct drm_device *dev,
-			  struct drm_framebuffer *fb);
-extern struct drm_framebuffer *psb_intel_framebuffer_create(struct drm_device
-							*dev, struct
-							drm_mode_fb_cmd
-							*mode_cmd,
-							void *mm_private);
-extern bool psb_intel_lvds_mode_fixup(struct drm_encoder *encoder,
-				      struct drm_display_mode *mode,
-				      struct drm_display_mode *adjusted_mode);
-extern int psb_intel_lvds_mode_valid(struct drm_connector *connector,
-				     struct drm_display_mode *mode);
-extern int psb_intel_lvds_set_property(struct drm_connector *connector,
-					struct drm_property *property,
-					uint64_t value);
-extern void psb_intel_lvds_destroy(struct drm_connector *connector);
-extern const struct drm_encoder_funcs psb_intel_lvds_enc_funcs;
-
-extern uint8_t blc_pol;
-extern uint8_t blc_freq;
-
-extern int psb_dpll_set_clock_cdv(struct drm_device *dev, struct drm_crtc *crtc,
-			       struct psb_intel_clock_t *clock);
-#endif				/* __INTEL_DRV_H__ */
diff --git a/drivers/staging/cdv/drv/psb_intel_hdmi.c b/drivers/staging/cdv/drv/psb_intel_hdmi.c
deleted file mode 100644
index 676fc2a..0000000
--- a/drivers/staging/cdv/drv/psb_intel_hdmi.c
+++ /dev/null
@@ -1,684 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- *	jim liu <jim.liu@intel.com>
- */
-
-#include <drm/drmP.h>
-#include <drm/drm.h>
-#include <drm/drm_crtc.h>
-#include <drm/drm_edid.h>
-#include "psb_intel_drv.h"
-#include "psb_drv.h"
-#include "psb_intel_reg.h"
-#include "psb_intel_hdmi_reg.h"
-#include "psb_intel_hdmi_edid.h"
-#include "psb_intel_hdmi.h"
-#include <linux/pm_runtime.h>
-
-static void mdfld_hdmi_mode_set(struct drm_encoder *encoder,
-				struct drm_display_mode *mode,
-				struct drm_display_mode *adjusted_mode)
-{
-	struct drm_device *dev = encoder->dev;
-	struct psb_intel_output *output = enc_to_psb_intel_output(encoder);
-	struct mid_intel_hdmi_priv *hdmi_priv = output->dev_priv;
-	u32 hdmib;
-	struct drm_crtc *crtc = encoder->crtc;
-	struct psb_intel_crtc *intel_crtc = to_psb_intel_crtc(crtc);
-	PSB_DEBUG_ENTRY("\n");
-
-	hdmib = (2 << 10);
-
-	if (adjusted_mode->flags & DRM_MODE_FLAG_PVSYNC)
-		hdmib |= SDVO_VSYNC_ACTIVE_HIGH;
-	if (adjusted_mode->flags & DRM_MODE_FLAG_PHSYNC)
-		hdmib |= SDVO_HSYNC_ACTIVE_HIGH;
-
-	if (intel_crtc->pipe == 1)
-		hdmib |= HDMIB_PIPE_B_SELECT;
-
-	if (hdmi_priv->has_hdmi_audio) {
-		hdmib |= HDMI_AUDIO_ENABLE;
-		hdmib |= HDMI_NULL_PACKETS_DURING_VSYNC;
-	}
-		
-	REG_WRITE(hdmi_priv->hdmi_reg, hdmib);
-	REG_READ(hdmi_priv->hdmi_reg);
-}
-
-static bool mdfld_hdmi_mode_fixup(struct drm_encoder *encoder,
-				  struct drm_display_mode *mode,
-				  struct drm_display_mode *adjusted_mode)
-{
-
-       return true;
-}
-
-
-static void mdfld_hdmi_dpms(struct drm_encoder *encoder, int mode)
-{
-	struct drm_device *dev = encoder->dev;
-	struct psb_intel_output *output = enc_to_psb_intel_output(encoder);
-	struct mid_intel_hdmi_priv *hdmi_priv = output->dev_priv;
-	u32 hdmib;
-
-	PSB_DEBUG_ENTRY("%s \n", mode == DRM_MODE_DPMS_ON ? "on" : "off");
-
-	hdmib = REG_READ(hdmi_priv->hdmi_reg);
-
-	if (mode != DRM_MODE_DPMS_ON) {
-		REG_WRITE(hdmi_priv->hdmi_reg, hdmib & ~HDMIB_PORT_EN);
-	} else {
-		REG_WRITE(hdmi_priv->hdmi_reg, hdmib | HDMIB_PORT_EN);
-	}
-	REG_READ(hdmi_priv->hdmi_reg);
-}
-
-static void mdfld_hdmi_save(struct drm_connector *connector)
-{
-	struct drm_device *dev = connector->dev;
-	struct psb_intel_output *output = to_psb_intel_output(connector);
-	struct mid_intel_hdmi_priv *hdmi_priv = output->dev_priv;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	hdmi_priv->save_HDMIB = REG_READ(hdmi_priv->hdmi_reg);
-}
-
-static void mdfld_hdmi_restore(struct drm_connector *connector)
-{
-	struct drm_device *dev = connector->dev;
-	struct psb_intel_output *output = to_psb_intel_output(connector);
-	struct mid_intel_hdmi_priv *hdmi_priv = output->dev_priv;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	REG_WRITE(hdmi_priv->hdmi_reg, hdmi_priv->save_HDMIB);
-	REG_READ(hdmi_priv->hdmi_reg);
-}
-
-#if 0
-
-/* HDMI DIP related stuff */
-static int mdfld_hdmi_get_cached_edid_block(struct drm_connector *connector, uint32_t num_block, uint8_t *edid_block, uint32_t size)
-{
-    struct drm_display_info *displayinfo = &(connector->display_info);
-    if (num_block >= MAX_EDID_BLOCKS)
-    {
-	DRM_ERROR("mdfld_hdmi_get_cached_edid_block() - Invalid EDID block\n");
-        return 0; 
-    }
-    edid_block = &displayinfo->raw_edid[EDID_BLOCK_SIZE*num_block];
-    return 1;
-}
-
-/////////////////////////////////////////////////////////////////////////
-//    INTHDMIENCODER_CreateEELDPacket():
-//    This function parses v1.3 base EDID and CEA-861b EDID Timing Extension
-//    Version3 and creates EELD (Enhanced EDID Like Data) packet. This EELD data contains
-//    audio configuration information and other details read EDID.This can also contain Vendor specific Data
-//
-/////////////////////////////////////////////////////////////////////////
-static int mdfld_hdmi_create_eeld_packet(struct drm_connector *connector)
-{
-    struct psb_intel_output *output = to_psb_intel_output(connector);
-    struct mid_intel_hdmi_priv *hdmi_priv = output->dev_priv;
-    uint8_t ucEdidBlock[128];
-    hdmi_eeld_t *pEEld                = NULL;
-    baseedid_1_x_t *pEdid        = NULL;
-    ce_edid_t *pCeEdid        = NULL;
-    int dwNumOfBytes        = 0;
-    int sizeOfCEADataBlock    = 0;
-    uint8_t * pDataBlock        = NULL;
-    edid_dtd_timing_t *pDTD    = NULL;
-    uint8_t *pData            = NULL;
-    uint8_t ucDataBlockTag    = 0;
-    cea_861b_adb_t *pADB        = NULL;
-    uint8_t i                    = 0;
-    uint8_t j                    = 0;
-    uint8_t * pSADBlocks = NULL;
-    uint8_t * pCurrentSADBlocks = NULL;
-    uint32_t ulNumSADBytes = 0;
-    //vsdb_byte6_to_byte8_t *pVSDB = NULL;
-    uint32_t ulIndex = 0;
-    //uint8_t b48kHzCADPresent = false;
-
-    pEEld = (hdmi_eeld_t *) &hdmi_priv->eeld;
-
-    // Fill Version info
-    pEEld->cea_edid_rev_id = HDMI_EELD_CEA_EDID_VERSION;
-    pEEld->eld_ver = HDMI_EELD_VERSION;
-
-    // Fill BaseLine ELD length
-    // This is 80 bytes as per EELD proposal
-    pEEld->baseline_eld_length = HDMI_EELD_BASELINE_DATA_LENGTH;
-
-    //Zero out EDID block buffer
-    memset(ucEdidBlock, 0, sizeof(ucEdidBlock));
-
-    // Get Extn EDID
-    if(!mdfld_hdmi_get_cached_edid_block(connector, 1, ucEdidBlock, EDID_BLOCK_SIZE))
-    {
-        return 0;
-    }    
-
-    pCeEdid = (ce_edid_t *) ucEdidBlock;
-
-    //allocate memory (48 bytes) for SAD Blocks buffer
-    pSADBlocks = kcalloc(1, 48, GFP_KERNEL);
-
-    if(pSADBlocks == NULL)
-    {
-	DRM_ERROR("mdfld_hdmi_create_eld_packaet() - Failed to allocate mem for pSADBlocks\n");
-        return 0;
-    }
-
-    pCurrentSADBlocks = pSADBlocks;
-
-    // Now pull out data from CEA Extension EDID
-    // If Offset <= 4, we will not have CEA DataBlocks
-    if(pCeEdid->ucDTDOffset > CEA_EDID_HEADER_SZIE)
-    {
-        sizeOfCEADataBlock = pCeEdid->ucDTDOffset - CEA_EDID_HEADER_SZIE;
-
-        pDataBlock = (uint8_t *)pCeEdid;
-
-        // skip header (first 4 bytes) in CEA EDID Timing Extension
-        // and set pointer to start of DataBlocks collection
-        pDataBlock += CEA_EDID_HEADER_SZIE;
-
-        // General Format of CEA Data Block Collection
-        // -----------+--------------------+-----------------------------------------+
-        //            |Byte#   |bits5-7    |       bits 0-4                          |
-        // -----------|--------------------+-----------------------------------------+
-        //            |  1     | Video Tag |Length = total #of video bytes following |
-        //            |        |    Code   |this byte (L1)                           |
-        //            |--------------------+-----------------------------------------+
-        //  Video     |  2     | CEA Short Video Descriptor 1                        |
-        //  Data      |--------+-----------------------------------------------------|
-        //  Block     |  3     | CEA Short Video Descriptor 2                        |
-        //            |--------+-----------------------------------------------------|
-        //            | ...    | ...                                                 |
-        //            |--------------------------------------------------------------+
-        //            | 1+L1   | CEA Short Video Descriptor L1                       |
-        // -----------+--------------------+-----------------------------------------+
-        //            | 2+L1   | Audio Tag |Length = total #of audio bytes following |
-        //            |        |    Code   |this byte (L2)                           |
-        //            |--------------------+-----------------------------------------+
-        //  Audio     | 3+L1   |                                                     |
-        //  Data      |--------+                                                     |
-        //  Block     | 4+L1   | CEA Short Audio Descriptor 1                        |
-        //            |--------+                                                     |
-        //            | 5+L1   |                                                     |
-        //            |--------------------------------------------------------------+
-        //            | ...    |                                                     |
-        //            |        |                                                     |
-        //            |        |                                                     |
-        //            | ...    |                                                     |
-        //            |---------------------------------------------------------------
-        //            |L1+L2   |                                                     |
-        //            |--------|                                                     |
-        //            |1+L1+L2 | CEA Short Audio Descriptor L2/3                     |
-        //            |--------|                                                     |
-        //            |2+L1+L2 |                                                     |
-        // -----------+--------------------------------------------------------------+
-        //            |3+L1+L2 |  Speaker  |Length = total #of SA bytes following    |
-        //            |        | Tag Code  |this byte (L1)                           |
-        //  Speaker   |--------------------------------------------------------------+
-        //  Allocation|4+L1+L2 |                                                     |
-        //  Data      |--------|                                                     |
-        //  Block     |5+L1+L2 | Speaker Allocation Data Block Payload(3 bytes)      |
-        //            |--------|                                                     |
-        //            |6+L1+L2 |                                                     |
-        // -----------+--------------------------------------------------------------+
-        //            |7+L1+L2 | VSDB  Tag |Length = total #of VSDB bytes following  |
-        //            |        |    Code   |this byte (L1)                           |
-        //  Vendor    |--------------------------------------------------------------+
-        //  Specific  |8+L1+L2 |                                                     |
-        //  Data      |--------|                                                     |
-        //  Block     |9+L1+L2 | 24-bit IEEE Registration Identifier (LSB first)     |
-        //            |--------|                                                     |
-        //            |10+L1+L2|                                                     |
-        //            |--------------------------------------------------------------+
-        //            | ...    | Vendor Specific Data block Payload                  |
-        // -----------+--------------------------------------------------------------+
-
-        while(sizeOfCEADataBlock > 0)
-        {
-            // Get the Size of CEA DataBlock in bytes and TAG
-            dwNumOfBytes = *pDataBlock & CEA_DATABLOCK_LENGTH_MASK;
-            ucDataBlockTag = (*pDataBlock & CEA_DATABLOCK_TAG_MASK) >> 5;
-
-            switch(ucDataBlockTag)
-            {
-                case CEA_AUDIO_DATABLOCK:
-                    // move beyond tag/length byte
-                    ++pDataBlock;
-                    for (i = 0; i < (dwNumOfBytes / 3); ++i, pDataBlock += 3)
-                    {
-                        pADB = (cea_861b_adb_t*)pDataBlock;
-                        switch(pADB->audio_format_code)
-                        {
-                            // uncompressed audio (Linear PCM)
-                            case AUDIO_LPCM:
-                                memcpy(&(hdmi_priv->lpcm_sad),pDataBlock,3);
-                                //save these blocks
-                                memcpy(pCurrentSADBlocks, pDataBlock, 3);
-                                // move pointer in SAD blocks buffer
-                                pCurrentSADBlocks += 3;
-                                // update SADC field
-                                pEEld->sadc += 1;
-                                break;
-                            // compressed audio
-                            case AUDIO_AC3:
-                            case AUDIO_MPEG1:
-                            case AUDIO_MP3:
-                            case AUDIO_MPEG2:
-                            case AUDIO_AAC:
-                            case AUDIO_DTS:
-                            case AUDIO_ATRAC:
-                            case AUDIO_OBA:
-                            case AUDIO_DOLBY_DIGITAL:
-                            case AUDIO_DTS_HD:
-                            case AUDIO_MAT:
-                            case AUDIO_DST:
-                            case AUDIO_WMA_PRO:
-                                //save these blocks
-                                memcpy(pCurrentSADBlocks, pDataBlock, 3);
-                                // move pointer in SAD blocks buffer
-                                pCurrentSADBlocks += 3;
-                                // update SADC field
-                                pEEld->sadc += 1;
-                                break;
-                        }
-                    }
-                    break;
-
-                case CEA_VENDOR_DATABLOCK:
-                    // audio wants data from 6th byte of VSDB onwards
-                    //Sighting 94842: 
-
-                    // | Byte # |    bits[7-0]                                              |
-                    // |--------------------------------------------------------------------|
-                    // | 1-3    |24-bit IEEE Registration Identifier (0x000C03)             |
-                    // |--------------------------------------------------------------------|
-                    // | 4-5    |       Source Physical Address                             |
-                    // |--------------------------------------------------------------------|
-                    // | 6      |SupportsAI|DC48bit|DC36bit|Dc30bit|DCY444|Rsvd|Rsvd|DVIDual|
-                    // |--------------------------------------------------------------------|
-                    // | 7      |   Max TMDS clock                                          |
-                    // |--------------------------------------------------------------------|
-                    // | 8      |Latency_Field |I_Latency_Field| Reserved bits 5-0          |
-                    // |        |   _Present   |  _Present     |                            |
-                    // |--------------------------------------------------------------------|
-                    // | 9      |               Video Latency                               |
-                    // |--------------------------------------------------------------------|
-                    // | 10     |               Audio Latency                               |
-                    // |--------------------------------------------------------------------|
-                    // | 11     |            Interlaced Video Latency                       |
-                    // |--------------------------------------------------------------------|
-                    // | 12     |            Interlaced Audio Latency                       |
-                    // |--------------------------------------------------------------------|
-
-                    ++pDataBlock;
-                    // move pointer to next CEA Datablock
-                    pDataBlock += dwNumOfBytes;
-                    break;                 
-
-                case CEA_SPEAKER_DATABLOCK:
-                    pEEld->speaker_allocation_block = *(++pDataBlock);
-                    // move pointer to next CEA Datablock
-                    pDataBlock += dwNumOfBytes;
-                    break;                       
-
-                default:
-                    // Move pointer to next CEA DataBlock
-                    pDataBlock += (dwNumOfBytes + 1);
-            }
-            // Decrement size of CEA DataBlock
-            sizeOfCEADataBlock -= (dwNumOfBytes + 1);
-        }    
-    }
-
-    //Copy all the saved SAD blocks at the end of ELD
-    //SAD blocks should be written after the Monitor name and VSDB.
-    //See ELD definition in iHDMI.h
-    ulNumSADBytes = (pEEld->sadc) * 3; //Size of each SAD block is 3 bytes
-
-    //DCN 460119: Audio does not play on displays which do not provide SAB in EDID.
-    //Solution: Graphics driver should create a default SAB in ELD with front left and front right
-    //speakers enabled if the display supports basic audio. 
-    pDataBlock = (uint8_t *)pCeEdid;
-    if((*(pDataBlock + HDMI_CEA_EXTENSION_BLOCK_BYTE_3) & HDMI_BASIC_AUDIO_SUPPORTED) && (pEEld->speaker_allocation_block == 0)) 
-    {
-        pEEld->flr = 1;
-    }
-    //End of DCN 460119
-
-    // zero out local buffers
-    memset(ucEdidBlock, 0, sizeof(ucEdidBlock));
-
-    // Get base EDID
-    if(!mdfld_hdmi_get_cached_edid_block(connector, 0, ucEdidBlock, EDID_BLOCK_SIZE))
-    {
-        return 0;
-    }
-
-    pEdid = (baseedid_1_x_t*) ucEdidBlock;
-    pDTD = &pEdid->DTD[1];
-
-    //Update the Manufacturer ID and Product Code here
-    memcpy(pEEld->manufacturer_id,pEdid->ManufacturerID,2);
-    memcpy(pEEld->product_id,pEdid->ProductID,2);
-
-    // Now Fill the monitor string name
-    // Search through DTD blocks, looking for monitor name
-    for (i = 0; i < MAX_BASEEDID_DTD_BLOCKS - 1; ++i, ++pDTD)
-    {
-        // Set a uint8_t pointer to DTD data
-        pData = (uint8_t *)pDTD;
-
-        // Check the Flag (the first two bytes) to determine
-        // if this block is used as descriptor
-        if (pData[0] == 0x00 && pData[1] == 0x00)
-        {
-            // And now check Data Type Tag within this descriptor
-            // Tag = 0xFC, then monitor name stored as ASCII
-            if (pData[3] == 0xFC)
-            {
-                ulIndex = 0;
-                // Copy monitor name
-                for (j = 0; (j < 13) && (pData[j+5] != 0x0A); ++j)
-                {
-                    pEEld->mn_sand_sads[ulIndex] = pData[j+5];
-                    ulIndex++;
-                }
-                pEEld->mnl = j;
-                break;
-            }
-        }
-    }
-
-    //Check if number of SAD Bytes > 0 and for size within limits of allowed Base line Data size as per EELD spec
-    if((ulNumSADBytes > 0) && (ulNumSADBytes <= 64))
-    {
-        //Copy the SADs immediately after the Monitor Name String
-        memcpy(&pEEld->mn_sand_sads[j], pSADBlocks, ulNumSADBytes);
-    }
-
-
-    // Header = 4, Baseline Data = 60 and Vendor (INTEL) specific = 2
-    // 4 + 60 + 2 = 66
-    hdmi_priv->hdmi_eeld_size = HDMI_EELD_SIZE;
-    
-    //free the buffer allocated for SAD blocks
-    kfree(pSADBlocks);
-    pSADBlocks = NULL;
-    pCurrentSADBlocks = NULL;
-    return 1;
-}
-
-#endif
-
-static enum drm_connector_status mdfld_hdmi_detect(struct drm_connector *connector, bool force)
-{
-	struct psb_intel_output *psb_intel_output = to_psb_intel_output(connector);
-	struct mid_intel_hdmi_priv *hdmi_priv = psb_intel_output->dev_priv;
-	struct edid *edid = NULL;
-	enum drm_connector_status status = connector_status_disconnected;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	edid = drm_get_edid(&psb_intel_output->base,
-			 psb_intel_output->hdmi_i2c_adapter);
-
-	hdmi_priv->has_hdmi_sink = false;
-	hdmi_priv->has_hdmi_audio = false;
-	if (edid) {
-		if (edid->input & DRM_EDID_INPUT_DIGITAL) {
-			status = connector_status_connected;
-			hdmi_priv->has_hdmi_sink = drm_detect_hdmi_monitor(edid);
-			hdmi_priv->has_hdmi_audio = drm_detect_monitor_audio(edid);
-		}
-
-		psb_intel_output->base.display_info.raw_edid = NULL;
-		kfree(edid);
-	}
-
-	return status;
-}
-
-static int mdfld_hdmi_set_property(struct drm_connector *connector,
-				       struct drm_property *property,
-				       uint64_t value)
-{
-	struct drm_encoder *pEncoder = connector->encoder;
-
-	PSB_DEBUG_ENTRY("connector info, type = %d, type_id=%d, base=0x%p, base.id=0x%x. \n", connector->connector_type, connector->connector_type_id, &connector->base, connector->base.id);
-	PSB_DEBUG_ENTRY("encoder info, base.id=%d, encoder_type=%d, dev=0x%p, base=0x%p, possible_clones=0x%x. \n", pEncoder->base.id, pEncoder->encoder_type, pEncoder->dev, &pEncoder->base, pEncoder->possible_clones);
-	PSB_DEBUG_ENTRY("encoder info, possible_crtcs=0x%x, crtc=0x%p.  \n", pEncoder->possible_crtcs, pEncoder->crtc);
-
-	if (!strcmp(property->name, "scaling mode") && pEncoder) {
-		PSB_DEBUG_ENTRY("scaling mode \n");
-	} else if (!strcmp(property->name, "backlight") && pEncoder) {
-		PSB_DEBUG_ENTRY("backlight \n");
-	} else if (!strcmp(property->name, "DPMS") && pEncoder) {
-		PSB_DEBUG_ENTRY("DPMS \n");
-	}
-
-	if (!strcmp(property->name, "scaling mode") && pEncoder) {
-		struct psb_intel_crtc *pPsbCrtc = to_psb_intel_crtc(pEncoder->crtc);
-		bool bTransitionFromToCentered;
-		uint64_t curValue;
-
-		if (!pPsbCrtc)
-			goto set_prop_error;
-
-		switch (value) {
-		case DRM_MODE_SCALE_FULLSCREEN:
-			break;
-		case DRM_MODE_SCALE_NO_SCALE:
-			break;
-		case DRM_MODE_SCALE_ASPECT:
-			break;
-		default:
-			goto set_prop_error;
-		}
-
-		if (drm_connector_property_get_value(connector, property, &curValue))
-			goto set_prop_error;
-
-		if (curValue == value)
-			goto set_prop_done;
-
-		if (drm_connector_property_set_value(connector, property, value))
-			goto set_prop_error;
-
-		bTransitionFromToCentered = (curValue == DRM_MODE_SCALE_NO_SCALE) ||
-			(value == DRM_MODE_SCALE_NO_SCALE);
-
-		if (pPsbCrtc->saved_mode.hdisplay != 0 &&
-		    pPsbCrtc->saved_mode.vdisplay != 0) {
-			if (bTransitionFromToCentered) {
-				if (!drm_crtc_helper_set_mode(pEncoder->crtc, &pPsbCrtc->saved_mode,
-					    pEncoder->crtc->x, pEncoder->crtc->y, pEncoder->crtc->fb))
-					goto set_prop_error;
-			} else {
-				struct drm_encoder_helper_funcs *pEncHFuncs  = pEncoder->helper_private;
-				pEncHFuncs->mode_set(pEncoder, &pPsbCrtc->saved_mode,
-						     &pPsbCrtc->saved_adjusted_mode);
-			}
-		}
-	}
-set_prop_done:
-    return 0;
-set_prop_error:
-    return -1;
-}
-
-/**
- * Return the list of HDMI DDC modes if available.
- */
-static int mdfld_hdmi_get_modes(struct drm_connector *connector)
-{
-	struct psb_intel_output *psb_intel_output = to_psb_intel_output(connector);
-	struct edid *edid = NULL;
-	int ret = 0;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	edid = drm_get_edid(&psb_intel_output->base,
-			 psb_intel_output->hdmi_i2c_adapter);
-	if (edid) {
-		drm_mode_connector_update_edid_property(&psb_intel_output->
-							base, edid);
-		ret = drm_add_edid_modes(&psb_intel_output->base, edid);
-		kfree(edid);
-	}
-
-	return ret;
-}
-
-static int mdfld_hdmi_mode_valid(struct drm_connector *connector,
-				 struct drm_display_mode *mode)
-{
-
-	PSB_DEBUG_ENTRY("display info. hdisplay = %d, vdisplay = %d. \n", mode->hdisplay, mode->vdisplay);
-
-	if (mode->clock > 165000)
-		return MODE_CLOCK_HIGH;
-	if (mode->clock < 20000)
-		return MODE_CLOCK_HIGH;
-
-	/* just in case */
-	if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
-		return MODE_NO_DBLESCAN;
-
-	/* just in case */
-	if (mode->flags & DRM_MODE_FLAG_INTERLACE)
-		return MODE_NO_INTERLACE;
-
-	return MODE_OK;
-}
-
-static const struct drm_encoder_helper_funcs mdfld_hdmi_helper_funcs = {
-	.dpms = mdfld_hdmi_dpms,
-	.mode_fixup = mdfld_hdmi_mode_fixup,
-	.prepare = psb_intel_encoder_prepare,
-	.mode_set = mdfld_hdmi_mode_set,
-	.commit = psb_intel_encoder_commit,
-};
-
-static const struct drm_connector_helper_funcs mdfld_hdmi_connector_helper_funcs = {
-	.get_modes = mdfld_hdmi_get_modes,
-	.mode_valid = mdfld_hdmi_mode_valid,
-	.best_encoder = psb_intel_best_encoder,
-};
-
-static const struct drm_connector_funcs mdfld_hdmi_connector_funcs = {
-	.dpms = drm_helper_connector_dpms,
-	.save = mdfld_hdmi_save,
-	.restore = mdfld_hdmi_restore,
-	.detect = mdfld_hdmi_detect,
-	.fill_modes = drm_helper_probe_single_connector_modes,
-	.set_property = mdfld_hdmi_set_property,
-	.destroy = psb_intel_lvds_destroy,
-};
-
-void mdfld_hdmi_init(struct drm_device *dev, struct psb_intel_mode_device *mode_dev, int reg)
-{
-	struct psb_intel_output *psb_intel_output;
-	struct drm_connector *connector;
-	struct drm_encoder *encoder;
-	struct mid_intel_hdmi_priv *hdmi_priv;
-	int ddc_bus;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	psb_intel_output = kzalloc(sizeof(struct psb_intel_output) +
-			       sizeof(struct mid_intel_hdmi_priv), GFP_KERNEL);
-	if (!psb_intel_output)
-		return;
-
-	hdmi_priv = (struct mid_intel_hdmi_priv *)(psb_intel_output + 1);
-	psb_intel_output->mode_dev = mode_dev;
-	connector = &psb_intel_output->base;
-	encoder = &psb_intel_output->enc;
-	drm_connector_init(dev, &psb_intel_output->base,
-			   &mdfld_hdmi_connector_funcs,
-			   DRM_MODE_CONNECTOR_DVID);
-
-	drm_encoder_init(dev, &psb_intel_output->enc, &psb_intel_lvds_enc_funcs,
-			 DRM_MODE_ENCODER_TMDS);
-
-	drm_mode_connector_attach_encoder(&psb_intel_output->base,
-					  &psb_intel_output->enc);
-	psb_intel_output->type = INTEL_OUTPUT_HDMI;
-	hdmi_priv->hdmi_reg = reg;
-	hdmi_priv->has_hdmi_sink = false;
-	psb_intel_output->dev_priv = hdmi_priv;
-
-	drm_encoder_helper_add(encoder, &mdfld_hdmi_helper_funcs);
-	drm_connector_helper_add(connector,
-				 &mdfld_hdmi_connector_helper_funcs);
-	connector->display_info.subpixel_order = SubPixelHorizontalRGB;
-	connector->interlace_allowed = false;
-	connector->doublescan_allowed = false;
-
-	connector->polled = DRM_CONNECTOR_POLL_HPD;
-
-	drm_connector_attach_property(connector, dev->mode_config.scaling_mode_property, DRM_MODE_SCALE_FULLSCREEN);
-
-	switch (reg) {
-	case SDVOB:
-		ddc_bus = GPIOE;
-		break;
-	case SDVOC:
-		ddc_bus = GPIOD;
-		break;
-	default:
-		DRM_ERROR("unknown reg 0x%x for HDMI\n", reg);
-		goto failed_ddc;
-		break;
-	}
-
-	psb_intel_output->ddc_bus = psb_intel_i2c_create(dev,
-						ddc_bus, (reg == SDVOB) ? "HDMIB":"HDMIC");
-
-	if (!psb_intel_output->ddc_bus) {
-		DRM_ERROR("No ddc adapter available!\n");
-		goto failed_ddc;
-	}
-	psb_intel_output->hdmi_i2c_adapter = &(psb_intel_output->ddc_bus->adapter);
-
-	hdmi_priv->is_hdcp_supported = true;
-	hdmi_priv->dev = dev; 
-	drm_sysfs_connector_add(connector);
-	return;
-
-failed_ddc:
-	drm_encoder_cleanup(&psb_intel_output->enc);
-	drm_connector_cleanup(&psb_intel_output->base);
-	kfree(psb_intel_output);
-}
diff --git a/drivers/staging/cdv/drv/psb_intel_hdmi.h b/drivers/staging/cdv/drv/psb_intel_hdmi.h
deleted file mode 100644
index 175b706..0000000
--- a/drivers/staging/cdv/drv/psb_intel_hdmi.h
+++ /dev/null
@@ -1,935 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- *	Chunfeng Zhao <chunfeng.zhao@intel.com>
- *	Jim Liu <jim.liu@intel.com>
- */
-
-#ifndef __PSB_INTEL_HDMI_H__
-#define __PSB_INTEL_HDMI_H__
-
-/*
- * HDMI Parameters
- */
-
-/* GUID HDMI Parameters */
-#if 0
-//#ifdef DEFINE_GUID
-//#undef DEFINE_GUID
-#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) const GUID n GUID_SECT = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-//#endif /* DEFINE_GUID */
-
-#define HDMI_PARAMETERS_GUID "{6FD3BE0E-80F9-4206-86B7-3714FA439634}"
-DEFINE_GUID(GUID_HDMI_PARAMETERS, 0x6fd3be0e, 0x80f9, 0x4206, 0x86, 0xb7, 0x37, 0x14, 0xfa, 0x43, 0x96, 0x34);
-
-#define AVI_INFOFRAME_GUID "{DFCB113B-E54F-49A2-B5E3-78D0C6B4F4CB}"
-DEFINE_GUID(GUID_AVI_INFOFRAME, 0xdfcb113b, 0xe54f, 0x49a2, 0xb5, 0xe3, 0x78, 0xd0, 0xc6, 0xb4, 0xf4, 0xcb);
-#endif
-
-#define HDMI_DEVICE_NAME "ABC_VEND"
-#define HDMI_DEVICE_DESC "XZ05 PC VIDEO"
-
-#define HDMI_MAX_PIXEL_REPETITION 0x04     // On Cantiga only upto 4X pixel repetition is supported
-#define HDMI_HBR_AUDIO_SAMPLE_RATE 192000  // 192kHz is the sample rate corresponding to the HBR audio formats
-#define HDMI_AUDIO_CLOCK_PACKET_RATE 1500  // Audio clock packet rate of 1.5kHz has to be considered while calculating audio BW
-
-#define HDMI_BAR_INFO_LENGTH 8 // 8 bytes of barinfo
-
-#define HDMI_MONITOR_NAME_LENGTH 20
-
-// BaseLineDataLength.
-// Total size is in multiple of 4 bytes. i.e, 80/4 = 20
-#define HDMI_EELD_BASELINE_DATA_LENGTH 0x14
-
-// Header = 4, Baseline Data = 80 and Vendor (INTEL) specific = 2 as per EELD spec
-// 4 + 80 + = 84
-#define HDMI_EELD_SIZE 84
-
-//
-// HDMI command types
-//
-typedef enum
-{
-    HDMI_COMMAND_GET,
-    HDMI_COMMAND_SET
-} hdmi_command_t;
-
-#define HDMI_AVI_FLAG_ITCONTENT 0x00800000
-#define HDMI_AVI_FLAG_RGB_QUANT_RANGE 0x00040000
-#define HDMI_AVI_FLAG_SCAN_INFO 0x00000001
-#define HDMI_AVI_FLAG_BAR_INFO 0x00000010
-//
-// CEA-861b definitions
-//
-#define HDMI_CEA_VERSION             0x00
-#define HDMI_ELD_VERSION             0x01
-#define HDMI_EELD_VERSION            0x02
-#define HDMI_BASE_ELD_SIZE           0x0E
-#define HDMI_CEA_EDID_HEADER_SIZE    0x04
-#define HDMI_EELD_CEA_EDID_VERSION   0x03
-#define HDMI_CEA_EDID_BLOCK_SIZE     128
-
-//
-//Basic Audio support definitions
-//
-
-#define HDMI_BASIC_AUDIO_SUPPORTED                0x40
-#define HDMI_CEA_EXTENSION_BLOCK_BYTE_3            3
-#define HDMI_FL_AND_FR_SPEAKERS_CONNECTED        0x1
-
-//
-// HDMI buffer/information types
-//
-typedef enum {
-    // Non-standard or non-HDMI type
-    HDMI_ELD_TYPE   = 0x00,     // ELD buffer type
-    HDMI_EELD_TYPE  = 0x01,     // EELD buffer type
-    
-    // Per HDMI Spec, refer Table 2-1 in HDMI EDS 
-    // or Table 5-8 in HDMI spec
-    HDMI_VS_TYPE    = 0x81,     // Vendor-Specific InfoFrame type
-    HDMI_AVI_TYPE   = 0x82,     // AVI InfoFrame type
-    HDMI_SPD_TYPE   = 0x83,     // SPD InfoFrame type
-    HDMI_AUDIO_TYPE = 0x84,     // Audio InfoFrame type
-    HDMI_MS_TYPE    = 0x85,     // MPEG Source InfoFrame type
-    
-    // Non-standard or non-HDMI types
-    HDMI_PR_PE_TYPE = 0x86,     // Pixel Replication & Pixel Encoding(colorimetry) type
-    HDMI_AUDIO_CAPS_TYPE = 0x87, // Encoder Audio Capabilities type
-    HDMI_AUDIO_ENABLE_FLAGS_TYPE = 0x88 // Flags for enabling / disabling audio
-} hdmi_info_type_t;
-
-//
-// InfoFrame Version Information
-//
-typedef enum {
-    HDMI_VS_VERSION    = 1,  // Vendor-Specific InfoFrame Version 1
-    HDMI_AVI_VERSION   = 1,  // AVI InfoFrame Version 1
-    HDMI_AVI_VERSION2  = 2,  // AVI InfoFrame Version 2
-    HDMI_SPD_VERSION   = 1,  // SPD InfoFrame Version 1
-    HDMI_AUDIO_VERSION = 1,  // Audio InfoFrame Version 1
-    HDMI_MS_VERSION    = 1   // MPEG Source InfoFrame Version 1
-} infoframe_version_t;
-
-//
-// InfoFrame Payload Length in bytes
-//
-typedef enum {
-    HDMI_VS_MAX_LENGTH     = 27,   // Vendor-Specific InfoFrame Payload Length, including IEEE reg ID
-    HDMI_AVI_LENGTH        = 13,  // AVI InfoFrame Payload Length
-    HDMI_SPD_LENGTH        = 25,  // SPD InfoFrame Payload Length
-    HDMI_AUDIO_LENGTH      = 10,  // Audio InfoFrame Payload Length
-    HDMI_MS_LENGTH         = 10,  // MPEG Source InfoFrame Payload Length
-    HDMI_PR_PE_LENGTH      = 4,   // Length of PR_PE_TYPE
-    HDMI_AUDIO_CAPS_LENGTH = 4    // Length of AUDIO_CAPS_TYPE
-} infoframe_length_t;
-
-//
-// InfoFrame TOTAL Length in bytes (includes header + payload)
-//
-typedef enum {
-    HDMI_VS_MAX_TOTAL_LENGTH     = HDMI_VS_MAX_LENGTH + 4,   // Max Total size of Vendor-Specific InfoFrame
-    HDMI_AVI_TOTAL_LENGTH        = HDMI_AVI_LENGTH + 4,  // Total size of AVI InfoFrame
-    HDMI_SPD_TOTAL_LENGTH        = HDMI_SPD_LENGTH + 4,  // Total size of SPD InfoFrame
-    HDMI_AUDIO_TOTAL_LENGTH      = HDMI_AUDIO_LENGTH + 4,  // Total size of Audio InfoFrame
-    HDMI_MS_TOTAL_LENGTH         = HDMI_MS_LENGTH + 4,  // Total size of MPEG Source InfoFrame
-} infoframe_total_length_t;
-
-
-//
-// Pixel Replication multipliers
-//
-typedef enum {
-    HDMI_PR_ONE = 0,    // No repetition (ie., pixel sent once)
-    HDMI_PR_TWO,        // Pixel sent 2 times (ie.,repeated once)
-    HDMI_PR_THREE,      // Pixel sent 3 times
-    HDMI_PR_FOUR,       // Pixel sent 4 times
-    HDMI_PR_FIVE,       // Pixel sent 5 times
-    HDMI_PR_SIX,        // Pixel sent 6 times
-    HDMI_PR_SEVEN,      // Pixel sent 7 times
-    HDMI_PR_EIGHT,      // Pixel sent 8 times
-    HDMI_PR_NINE,       // Pixel sent 9 times
-    HDMI_PR_TEN         // Pixel sent 10 times
-} hdmi_pixel_replication_t;
-
-//
-// Pixel encoding modes
-//
-//typedef typedef enum  {
-  //  HDMI_RGB256 = 0x01,
-  //  HDMI_RGB220 = 0x02,
-  //  HDMI_YCrCb422 = 0x04,
-  //  HDMI_YCrCb444 = 0x08
-//}HDMI_COLORIMETRY;
-
-//
-// Pixel encoding modes
-//
-typedef enum {
-    HDMI_COLORIMETRY_RGB256 = 0x01,
-    HDMI_COLORIMETRY_RGB220 = 0x02,
-    HDMI_COLORIMETRY_YCrCb422 = 0x04,
-    HDMI_COLORIMETRY_YCrCb444 = 0x08
-} hdmi_colorimetry_t;
-
-//
-// AVI InfoFrame definitions - start
-//
-// Scan Info
-typedef enum {
-    HDMI_AVI_SCAN_NODATA     = 0,     // No data
-    HDMI_AVI_SCAN_OVERSCAN   = 1,     // Overscanned (TV)
-    HDMI_AVI_SCAN_UNDERSCAN  = 2,     // Underscanned (Computer)
-    HDMI_AVI_SCAN_FUTURE     = 3      // Future
-} avi_scan_info_t;
-
-// Bar Info
-typedef enum {
-    HDMI_AVI_BAR_INVALID         = 0,      // Bar data not valid
-    HDMI_AVI_BAR_VALID_VERTICAL  = 1,      // Vertical Bar data valid
-    HDMI_AVI_BAR_VALID_HORIZONTAL= 2,      // Horizontal Bar data valid
-    HDMI_AVI_BAR_VALID_BOTH      = 3       // Vertical & Horizontal Bar data valid
-} avi_bar_info_t;
-
-// Active Format Information
-typedef enum {
-    HDMI_AVI_AFI_INVALID = 0,    // No data
-    HDMI_AVI_AFI_VALID   = 1     // Active Format Information valid
-} avi_fi_info_t;
-
-// AVI Pixel Encoding modes
-typedef enum {
-    HDMI_AVI_RGB_MODE      = 0,  // RGB pixel encoding mode
-    HDMI_AVI_YCRCB422_MODE = 1,  // YCrCb 4:2:2 mode
-    HDMI_AVI_YCRCB444_MODE = 2,  // YCrCb 4:4:4 mode
-    HDMI_AVI_FUTURE_MODE   = 3   // Future mode
-} avi_encoding_mode_t;
-
-// AVI Active Format Aspect Ratio
-typedef enum {
-    HDMI_AVI_AFAR_SAME   = 8,     // same as picture aspect ratio
-    HDMI_AVI_AFAR_4_3    = 9,     // 4:3 center
-    HDMI_AVI_AFAR_16_9   = 10,    // 16:9 center
-    HDMI_AVI_AFAR_14_9   = 11     // 14:9 center
-} avi_afar_info_t;
-
-// AVI Picture Aspect Ratio
-typedef enum {
-    HDMI_AVI_PAR_NODATA  = 0,      // No Data
-    HDMI_AVI_PAR_4_3     = 1,      // 4:3
-    HDMI_AVI_PAR_16_9    = 2,      // 16:9
-    HDMI_AVI_PAR_FUTURE  = 3       // Future
-} avi_par_info_t;
-
-// AVI Colorimetry Information
-typedef enum  {
-    HDMI_AVI_COLOR_NODATA = 0,    // No data
-    HDMI_AVI_COLOR_ITU601 = 1,    // SMPTE 170M, ITU601
-    HDMI_AVI_COLOR_ITU709 = 2,    // ITU709
-    HDMI_AVI_COLOR_FUTURE = 3     // Future
-} avi_color_info_t;
-
-// AVI Non-uniform Picture Scaling Info
-typedef enum {
-    HDMI_AVI_SCALING_NODATA      = 0,  // No scaling
-    HDMI_AVI_SCALING_HORIZONTAL  = 1,  // horizontal scaling
-    HDMI_AVI_SCALING_VERTICAL    = 2,  // vertical scaling
-    HDMI_AVI_SCALING_BOTH        = 3   // horizontal & vertical scaling
-} avi_scaling_infp_t;
-
-// AVI RGB Quantization Range
-typedef enum {
-    HDMI_AVI_RGBQUANT_DEFAULT = 0,  // Default value
-    HDMI_AVI_RGBQUANT_LIMITED = 1,  // Limited Range
-    HDMI_AVI_RGBQUANT_FULL    = 2,  // Full Range
-    HDMI_AVI_RGBQUANT_FUTURE  = 3   // Future use
-} avi_rgbquant_range_t;
-
-// AVI IT Content
-typedef enum {
-    HDMI_AVI_ITC_NODATA    = 0,  // No Data
-    HDMI_AVI_ITC_ITCONTENT = 1   //IT Content
-} avi_it_content_t;
-
-//
-// AVI InfoFrame definitions - end
-//
-
-//
-// SPD InfoFrame definitions - start
-//
-// SPD InfoFrame Data Byte 25, refer Table-17 in CEA-861b
-typedef enum {
-    HDMI_SPD_SRC_UNKNOWN     = 0x00,   // unknown
-    HDMI_SPD_SRC_DIGITAL_STB = 0x01,   // Digital STB
-    HDMI_SPD_SRC_DVD         = 0x02,   // DVD
-    HDMI_SPD_SRC_DVHS        = 0x03,   // D-VHS
-    HDMI_SPD_SRC_HDD_VIDEO   = 0x04,   // HDD Video
-    HDMI_SPD_SRC_DVC         = 0x05,   // DVC
-    HDMI_SPD_SRC_DSC         = 0x06,   // DSC
-    HDMI_SPD_SRC_VCD         = 0x07,   // Video CD
-    HDMI_SPD_SRC_GAME        = 0x08,   // Game
-    HDMI_SPD_SRC_PC          = 0x09    // PC General
-} spd_src_type_t;
-
-// SPD InfoFrame Vendor Name & Descriptor Length in bytes
-typedef enum {
-    HDMI_SPD_VNAME_LENGTH = 8,   // SPD Vendor Name Length in bytes
-    HDMI_SPD_VDESC_LENGTH = 16,  // SPD Vendor Descriptor Length in bytes
-} spd_namedesc_length_info_t;
-
-//
-// SPD InfoFrame definitions - end
-//
-
-//
-// InfoFrame Packet Header - generic
-//
-typedef struct _if_header {
-    uint8_t type;       // InfoFrame Type
-    uint8_t version;    // InfoFrame Version
-    uint8_t length;     // InfoFrame Length
-    uint8_t chksum;     // Checksum of the InfoFrame
-} if_header_t;
-
-//
-// AVI InfoFrame structure
-//
-typedef union _avi_if {
-    uint8_t avi_buf[HDMI_AVI_TOTAL_LENGTH];
-    #pragma pack(1)
-    struct
-    {
-        if_header_t avi_if_header;            // AVI header data
-        union
-        {
-            uint8_t byte1;
-            struct
-            {
-                uint8_t scan_info:2;     // scan information
-                uint8_t bar_info :2;     // bar information
-                uint8_t format  :1;     // active format information
-                uint8_t enc_mode :2;     // pixel encoding (RGB or YCrCb)
-                uint8_t b1rsvd  :1;     // reserved
-            };
-        };
-        union
-        {
-            uint8_t byte2;
-            struct
-            {
-                uint8_t afar        :4; // Active Format Aspect Ratio
-                uint8_t par         :2; // Picture Aspect Ratio
-                uint8_t colorimetry :2; // colorimetry
-            };
-        };
-        union
-        {
-            uint8_t byte3;
-            struct
-            {
-                uint8_t scaling_info    :2; // Scaling information
-                uint8_t rgbquant_range  :2; // RGB Quantization Range
-                uint8_t ext_colorimetry :3; //Extended Colorimetry
-                uint8_t it_content      :1; //IT Content
-            };
-        };
-        union
-        {
-            uint8_t byte4;
-            struct
-            {
-                uint8_t vic         :7; // Video Identification code (refer Table 13 in CEA-861b)
-                uint8_t b4rsvd      :1; // reserved
-            };
-        };
-        union
-        {
-            uint8_t byte5;
-            struct
-            {
-                uint8_t pr          :4; // pixel repetition (refer Table 15 in CEA-861b)
-                uint8_t b5rsvd      :4; // reserved
-            };
-        };
-        uint8_t byte6;                  // end of top bar(lower), set to "00"
-        uint8_t byte7;                  // end of top bar(upper), set to "00"
-        uint8_t byte8;                  // start of bottom bar(lower), set to "00"
-        uint8_t byte9;                  // start of bottom bar(upper), set to "00"
-        uint8_t byte10;                 // end of left bar(lower), set to "00"
-        uint8_t byte11;                 // end of left bar(upper), set to "00"
-        uint8_t byte12;                 // start of right bar(lower), set to "00"
-        uint8_t byte13;                 // start of right bar(upper), set to "00"
-    };
-    #pragma pack()
-} avi_if_t;
-
-//
-// SPD InfoFrame structure
-//
-typedef union _spd_if {
-    uint8_t spd_buf[HDMI_SPD_TOTAL_LENGTH];
-    #pragma pack(1)
-    struct
-    {
-        if_header_t spd_if_header; // SPD header data
-        uint8_t name[8];    // Vendor Name, 8 characters
-        uint8_t desc[16];   // Product Description, 16 characters
-        uint8_t sdi;        // Source Device Information
-    };
-    #pragma pack()
-} spd_if_t;
-
-//
-// Vendor Specific InfoFrame structure
-//
-typedef union _vs_if
-{
-    uint8_t vs_buf[HDMI_VS_MAX_TOTAL_LENGTH];
-    #pragma pack(1)
-    struct
-    {
-        if_header_t vs_if_header; // VS header data
-        uint8_t ieee_reg_id[3];   // 3-byte IEEE registration ID
-        uint8_t pay_load[24];        // Payload bytes
-    };
-    #pragma pack()
-} vs_if_t;
-
-//
-// AVI Infoframe structure for customization
-//
-
-typedef struct _avi_infoframe_custom {
-    //GUID        guid;                   // GUID
-    int32_t     command;              // Command
-    int32_t     flags;                // Flags
-    uint32_t    type_code;             // Type code of AVI Infoframe
-    uint32_t    version;              // Version of AVI Infoframe
-    uint32_t    length;               // Length of AVI Info Frame 
-    uint8_t     r3r0_valid;             // Reserved
-    uint8_t     it_content;             // IT Content
-    uint8_t     bar_info[8];           // Reserved
-    int32_t     active_format_aspect_ratio;// Reserved 
-    int32_t     non_uniform_scaling;     // Reserved 
-    int32_t     rgb_ycc_indicator;       // Reserved 
-    int32_t     ext_colorimetry;        // Reserved 
-    int32_t     pixel_factor;           // Reserved 
-    int32_t     bar_info_valid;           // Reserved 
-    int32_t     colorimetry;           // Reserved 
-    int32_t     aspect_ratio;           // Reserved 
-    int32_t     quant_range;            // Quantization Range
-    int32_t     video_code;             // Reserved 
-    int32_t     scan_info;              // Scan Information
-} avi_infoframe_custom_t;
-
-
-//
-// LinearPCM Consolidated Audio Data(CAD) structure
-//
-typedef union _lpcm_cad {
-    uint8_t value;
-    struct {
-        uint8_t maxch_cp_on       :3; // Max channels-1 supported with CP turned ON
-        uint8_t maxch_cp_off      :3; // Max channels-1 supported with CP turned OFF
-        uint8_t sp_20bit       :1; // 20-bit sample support
-        uint8_t sp_24bit       :1; // 24-bit sample support
-    };
-} lpcm_cad_t;
-
-//
-// CEA Short Audio Descriptor
-// 
-typedef struct _cea_861b_adb {
-#pragma pack(1)
-    union
-    {
-        uint8_t byte1;
-        struct
-        {
-            uint8_t   max_channels        :3; // Bits[0-2]
-            uint8_t   audio_format_code   :4;    // Bits[3-6], see AUDIO_FORMAT_CODES
-            uint8_t   b1reserved          :1;    // Bit[7] - reserved
-        };
-    };
-    union
-    {
-        uint8_t    byte2;
-        struct
-        {
-            uint8_t   sp_rate_32kHz             :1;    // Bit[0] sample rate = 32kHz
-            uint8_t   sp_rate_44kHz             :1;    // Bit[1] sample rate = 44kHz
-            uint8_t   sp_rate_48kHz             :1;    // Bit[2] sample rate = 48kHz
-            uint8_t   sp_rate_88kHz             :1;    // Bit[3] sample rate = 88kHz
-            uint8_t   sp_rate_96kHz             :1;    // Bit[4] sample rate = 96kHz
-            uint8_t   sp_rate_176kHz            :1;    // Bit[5] sample rate = 176kHz
-            uint8_t   sp_rate_192kHz            :1;    // Bit[6] sample rate = 192kHz
-            uint8_t   sp_rate_b2reserved        :1;    // Bit[7] - reserved
-        };
-    };
-    union
-    {
-        uint8_t   byte3;    // maximum bit rate divided by 8kHz
-        // following is the format of 3rd byte for uncompressed(LPCM) audio
-        struct
-        {
-            uint8_t    bit_rate_16bit                :1;    // Bit[0]
-            uint8_t    bit_rate_20bit                :1;    // Bit[1]
-            uint8_t    bit_rate_24bit                :1;    // Bit[2]
-            uint8_t    bit_rate_b3reserved        :5;    // Bits[3-7]
-        };
-    };
-#pragma pack()
-}cea_861b_adb_t; 
-
-//
-// Enhanced EDID Like Data aka EELD structure
-//
-typedef union _hdmi_eeld {
-    uint8_t eeld[HDMI_EELD_SIZE];
-    #pragma pack(1)
-    struct
-    {
-        // Byte[0] = ELD Version Number
-        union
-        {
-            uint8_t   byte0;          
-            struct
-            {
-                uint8_t reserved:3;      // Reserf
-                uint8_t eld_ver:5;      // ELD Version Number
-                                        //  00000b - reserved
-                                        //  00001b - first rev
-                                        //  00010b:11111b - reserved for future
-            };
-        };
-
-        // Byte[1] = Vendor Version Field
-		union
-		{
-			uint8_t vendor_version;
-			struct
-			{
-				uint8_t reserved1:3;
-				uint8_t veld_ver:5; // Version number of the ELD extension.
-				                    // This value is provisioned and unique to each vendor.
-			};
-		};
-
-		// Byte[2] = Baseline Lenght field
-		uint8_t baseline_eld_length; // Length of the Baseline structure divided by Four.
-
-		// Byte [3] = Reserved for future use
-		uint8_t byte3;
-
-		// Starting of the BaseLine EELD structure
-		// Byte[4] = Monitor Name Length 
-		union
-		{
-			uint8_t byte4;
-			struct
-			{
-				uint8_t mnl:5;
-				uint8_t cea_edid_rev_id:3;
-			};
-		};
-
-		// Byte[5] = Capabilities
-		union
-		{
-			uint8_t capabilities;
-			struct
-			{
-				uint8_t hdcp:1; // Indicates HDCP support
-				uint8_t ai_support:1;   // Inidcates AI support
-				uint8_t connection_type:2; // Indicates Connection type 
-				                          // 00 - HDMI
-				                          // 01 - DP
-				                          // 10 -11  Reserved for future connection types
-				uint8_t sadc:4; // Indicates number of 3 bytes Short Audio Descriptors. 
-			};
-		};
-
-		// Byte[6] = Audio Synch Delay
-		uint8_t audio_synch_delay; // Amount of time reported by the sink that the video trails audio in milliseconds.
-
-		// Byte[7] = Speaker Allocation Block
-		union
-		{
-			uint8_t speaker_allocation_block;
-			struct
-			{
-				uint8_t flr:1; // Front Left and Right channels
-				uint8_t lfe:1; // Low Frequency Effect channel
-				uint8_t fc:1;  // Center transmission channel
-				uint8_t rlr:1; // Rear Left and Right channels
-				uint8_t rc:1; // Rear Center channel
-				uint8_t flrc:1; // Front left and Right of Center transmission channels
-				uint8_t rlrc:1; // Rear left and Right of Center transmission channels
-				uint8_t reserved3:1; // Reserved
-			};
-		};
-
-		// Byte[8 - 15] - 8 Byte port identification value
-		uint8_t port_id_value[8];
-
-        // Byte[16 - 17] - 2 Byte Manufacturer ID
-        uint8_t manufacturer_id[2];
-
-        // Byte[18 - 19] - 2 Byte Product ID
-        uint8_t product_id[2];
-
-		// Byte [20-83] - 64 Bytes of BaseLine Data
-	uint8_t mn_sand_sads[64]; // This will include
-		                        // - ASCII string of Monitor name
-                                // - List of 3 byte SADs
-		                        // - Zero padding
-
-		// Vendor ELD Block should continue here!
-        // No Vendor ELD block defined as of now. 
-	};
-    #pragma pack()
-} hdmi_eeld_t;
-
-//
-// Data structure for misc HDMI data
-//
-typedef struct _misc_hdmi_data {
-    int32_t colorimetry   :4; // 
-    int32_t pr            :4; // pixel repetition value
-    int32_t reserved      :24;// reserved bits
-} misc_hdmi_data_t;
-
-//
-// Audio capability structure
-//
-typedef struct _device_audio_caps {
-    int32_t npl_design :8; // max number of audio packets device can
-                        // deliver per line
-    int32_t k0        :8; // The overhead(in pixels) per line requied
-                        // by device for setting up audio packets when
-                        // CP is disabled
-    int32_t k1        :8; // The overhead(in pixels) per line requied
-                        // by device for setting up audio packets when
-                        // CP is enabled
-    // Misc data
-    int32_t pr        :4; // Pixel Replication value
-    int32_t is_hdcp   :1; // Driver, Device and Receiver support HDCP
-    int32_t is_rptr   :1; // Receiver is HDCP repeater
-    int32_t reserved  :2; // reserved bits
-} device_audio_caps_t;
-
-typedef struct _audio_enable_flags {
-    int32_t is_hdmi_display    :1; //1 if HDMI display, 0 if not HDMI display
-    int32_t is_eld_valid       :1; //1 if ELD valid, 0 if ELD not valid
-    int32_t reserved1          :30;
-} audio_enable_flags_t;
-
-//
-// Data structure to exchange HDMI data through GetSetParameters interface
-//
-typedef struct _hdmi_parameters {
-    //GUID              Guid;
-    hdmi_command_t    command;
-    uint8_t           type;
-    uint8_t           size;
-    union {
-        hdmi_eeld_t    eeld_buffer;
-        avi_if_t       avi_infoframe;
-        spd_if_t       spd_infoframe;
-        vs_if_t        vs_infoframe;
-        union {
-            int32_t              gen_data;
-            device_audio_caps_t  audio_caps;
-            misc_hdmi_data_t     misc_data;
-            audio_enable_flags_t fl_audio_enable_flags;
-        };
-    };
-} hdmi_parameters_t;
-
-//
-// Audio format codes
-//
-typedef enum {
-    AUDIO_LPCM      = 0x0001,   // Linear PCM (eg. IEC60958)
-    AUDIO_AC3       = 0x0002,   // AC-3
-    AUDIO_MPEG1     = 0x0003,   // MPEG1 (Layers 1 & 2)
-    AUDIO_MP3       = 0x0004,   // MP3   (MPEG1 Layer 3)
-    AUDIO_MPEG2     = 0x0005,   // MPEG2 (multichannel)
-    AUDIO_AAC       = 0x0006,   // AAC
-    AUDIO_DTS       = 0x0007,   // DTS
-    AUDIO_ATRAC     = 0x0008,    // ATRAC
-    AUDIO_OBA       = 0x0009,   // One Bit Audio
-    AUDIO_DOLBY_DIGITAL = 0x000A, // Dolby Digital
-    AUDIO_DTS_HD    = 0x000B,    // DTS-HD
-    AUDIO_MAT       = 0x000C,    // MAT (MLP)
-    AUDIO_DST       = 0x000D,    // DST
-    AUDIO_WMA_PRO   = 0x000E     // WMA Pro
-} audio_format_codes_t;
-
-//
-// Data structure for byte #6 to 8 which has fixed definition
-//
-typedef struct _vsdb_char6_to_char8
-{
-    #pragma pack(1)
-
-    union
-    {
-        uint8_t byte1;
-        struct
-        {
-            uint8_t dvi_dual      :1; // Bit[0]
-            uint8_t b1reserved    :2; // Bits[1-2]
-            uint8_t dcy444        :1; // Bit[3] YCBCR 4:4:4 in Deep Color modes.
-            uint8_t dc30bit       :1; //Bit[4]
-            uint8_t dc36bit       :1; //Bit[5]
-            uint8_t dc48bit       :1; //Bit[6]
-            uint8_t supports_ai   :1; // Bit[7]
-        };
-        };
-
-    uint8_t max_tmds_clock;
-
-    union
-    {
-        uint8_t byte3;
-        struct
-        {
-            uint8_t b3reserved               :6; // Bit[0-5] reserved
-            uint8_t i_latency_field_present  :1;// Bit[6]
-            uint8_t latency_field_present    :1;// Bits[7]
-        };
-    };
-
-    #pragma pack()
-} vsdb_byte6_to_byte8_t;
-
-
-//
-// Gamut metadata structure
-//
-// Note : The data is written in big endian format
-#if 0
-// GUID for calling GBD interface
-// {EEE24BDF-6D30-40bf-9BA2-139F0FFFC797}
-#define DXVA_HDMI13_GBD_P0_GUID "{EEE24BDF-6D30-40BF-9BA2-139F0FFFC797}"
-DEFINE_GUID(GUID_DXVA_HDMI13_GBD_P0, 0xeee24bdf, 0x6d30, 0x40bf, 0x9b, 0xa2, 0x13, 0x9f, 0xf, 0xff, 0xc7, 0x97);
-#endif
-
-#define HDMI_GBD_PKT_TYPE 0x0A
-#define HDMI_GBD_P0_DATA_SIZE 27
-#define HDMI_MAX_VERTICES_DATA 25
-#define HDMI_MAX_FACET_DATA 25
-
-typedef enum {
-    VERTICES_AND_FACETS = 0,
-    RGB_MIN_MAX_RANGE    = 1
-} gbd_format_flag_t;
-
-typedef enum {
-    GBD_8BIT_PRECISION   = 0,
-    GBD_10BIT_PRECISION  = 1,
-    GBD_12BIT_PRECISION  = 2
-} gbd_color_precision_t;
-
-typedef enum {
-    RGB_BT709 = 0,
-    XVY_CC601 = 1,
-    XVY_CC709 = 2,
-    RESERVED_COLORSPACE
-} gbd_color_space_t;
-
-typedef enum {
-    MIN_RED_INDEX    = 0,
-    MAX_RED_INDEX    = 1,
-    MIN_GREEN_INDEX  = 2,
-    MAX_GREEN_INDEX  = 3,
-    MIN_BLUE_INDEX   = 4,
-    MAX_BLUE_INDEX   = 5,
-    MAX_RANGE_DATA_INDEX_LIMIT = 6
-} gbd_rgb_range_data_index_t;
-    
-//
-// App needs to feel the data in this structure
-//
-typedef struct _gbd_p0_hdmi_1_3 {
-    uint8_t enable;      // Enable/Disable GBD profile sending
-    gbd_format_flag_t     format_flag;         // uses GBD_FORMAT_FLAG_EN, this defines the gamut data format
-    gbd_color_precision_t color_precision;     // uses GBD_COLOR_PRECISION, this is the bit precision of GBD vertex and range data
-    gbd_color_space_t     color_space;         // uses GBD_COLOR_SPACE_EN, this defines the color space being represented
-
-    union 
-    {
-        // If bFormatFlag is 0
-        struct {
-            uint8_t facet_mode;     // spec supports 0 alone right now
-            uint16_t num_vertices;   // Number of vertices 
-            uint16_t num_facets;     // Number of faces
-            
-            // For 4 vertices of 12bits size is 18
-            // Max possible with 0 facets and 28 bytes of GBD is 28-5=23 bytes
-            uint16_t vertices_data[HDMI_MAX_VERTICES_DATA];   // Vertices data representation
-            uint16_t facets_data[HDMI_MAX_FACET_DATA];        // kept it as input data but to be defined based on future spec
-        } vertices_facets_data;
-
-
-        // If eFormatFlag is 1
-        struct {
-            uint16_t rgb_primary_data[MAX_RANGE_DATA_INDEX_LIMIT];
-        } rgb_range_data;
-    };    
-
-} gbd_p0_hdmi_1_3_t;
-
-#define HDMI_GBD_MAX_SEQ_NUM_INDEX 16
-
-// various GBD profiles
-typedef enum {
-    P0_PROFILE = 0,
-    P1_PROFILE = 1,
-    P2_PROFILE = 2,
-    P3_PROFILE = 3,
-    INVALID_PROFILE
-} gbd_profile_type_t;
-
-// various packet transmission options
-typedef enum {
-    INTERMEDIATE_PKT_IN_SEQ   = 0,
-    FIRST_PKT_IN_SEQ          = 1,
-    LAST_PKT_IN_SEQ           = 2,
-    ONLY_PKT_IN_SEQ           = 3
-} gbd_pkt_seq_t;
-
-//
-// Packet header defn as per HDMI spec
-//
-typedef struct _gamut_pkt_header {
-    uint8_t pkt_type; // Defines the pkt type
-    union{
-        uint8_t field_byte;
-        struct{
-            uint8_t affected_gamut_info  :4; // BIT 3:0
-            uint8_t gbd_profile          :3; // BIT 6:4 ; uses GBD_PROFILE_TYPE_EN
-            uint8_t next_field           :1; // BIT7
-        };
-    };
-
-    union{
-        uint8_t gbd_seq_info;
-        struct{
-            uint8_t current_gamut_info    :4; // BIT 3:0
-            uint8_t packet_seq            :2; // BIT 5:4 ; use GBD_PKT_SEQ_EN
-            uint8_t reserved2             :1; // BIT 6
-            uint8_t no_current_gbd        :1; // BIT 7
-        };
-    };
-} gamut_pkt_header_t;
-        
-//
-// Gamut structure contains data in following format
-// 
-typedef struct _gamut_metadata_struct {
-    #pragma pack(1)
-    gamut_pkt_header_t pkt_hdr;           // Gamut Metadata header data
-    union
-    {
-        uint8_t byte1;
-        struct
-        {
-            uint8_t gbd_color_space       :3; 
-            // Note: GBD buffer is formatted based upon the color precision
-            // 8 bit precision : 1 sign bit, 2 bits of integer, 5 bits of fraction
-            // 10 bit precision : 1 sign bit, 2 bits of integer, 7 bits of fraction
-            // 12 bit precision : 1 sign bit, 2 bits of integer, 9 bits of fraction
-            uint8_t gbd_color_precision   :2; 
-            uint8_t reserved3            :1; 
-            uint8_t facet_mode            :1;  // 0 - No facet info in GBD; 1 - Facet info in GBD
-            uint8_t format_flag          :1; // uses GBD_FORMAT_FLAG_EN
-        };
-    };
-
-    // For P0 profile below is the syntax in which data will be filled
-    // If Format is YUV
-    // char 2 : Higher 8 bits of number of vertices
-    // char 3 : Lower 8 bits of number of vertices
-    // char 4 to VSIZE+2 : Vertex data of size VSIZE, 
-    // where VSIZE = 3*number of vertices*GBD color precision/8 + 0.99999
-    // char VSIZE+3: Higher 8 bits of number of facets
-    // char VSIZE+4: Lower 8 bits of number of facets
-    // char VSIZE+5 to VSIZE+FSIZE+4 : Facet data
-    // where VSIZE = number of facet data
-    uint8_t   gbd_data[HDMI_GBD_P0_DATA_SIZE];         // data will be filled
-            
-    #pragma pack()
-} gamut_metadata_st_t;
-
-struct mid_intel_hdmi_priv {
-	u32 hdmi_reg;
-	u32 save_HDMIB;
-	bool has_hdmi_sink;
-	bool has_hdmi_audio;
-	/* Should set this when detect hotplug */
-	bool hdmi_device_connected;
-	struct mdfld_hdmi_i2c *i2c_bus;
-	/* EELD packet holder*/
-	hdmi_eeld_t eeld;
-	u32 hdmi_eeld_size;
-	cea_861b_adb_t lpcm_sad;
-	bool is_hdcp_supported;
-	struct i2c_adapter *hdmi_i2c_adapter;	/* for control functions */
-	struct drm_device *dev;
-};
-
-struct hdmi_edid_info {
-	char monitor_name[HDMI_MONITOR_NAME_LENGTH];
-	char *edid_info;
-};
-
-#define HDMI_EDID_INFO(nm, info) \
-	.monitor_name = nm, .edid_info = info
-
-#define MSIC_IRQLVL1_STATUS 0x02
-  #define VREG_STATUS (1 << 5)
-#define MSIC_VRINT_STATUS 0x0d
-  #define HDMI_HPD_STATUS (1 << 3)
-  #define HDMI_OCP_STATUS (1 << 2)
-  #define VR_OCP_STATUS (1 << 1)
-  #define VR_OVP_STATUS (1 << 0)
-#define MSIC_VRINT_MASK 0x1c
-  #define HDMI_HPD_MASK (1 << 3)
-  #define HDMI_OCP_MASK (1 << 2)
-  #define VR_OCP_MASK (1 << 1)
-  #define VR_OVP_MASK (1 << 0)
-#define MSIC_IRQLVL1_MASK 0x21
-  #define VREG_MASK (1 << 5)
-#define MSIC_VCC330CNT 0xd3
-  #define VCC330_OFF 0x24
-  #define VCC330_ON 0x37
-#define MSIC_VHDMICNT 0xde
-  #define VHDMI_OFF 0x25
-  #define VHDMI_ON 0xa5
-#define MSIC_HDMI_STATUS 0x281
-  #define HPD_SIGNAL_STATUS (1 << 0)
-
-#endif //__IHDMI_H__
diff --git a/drivers/staging/cdv/drv/psb_intel_hdmi_edid.h b/drivers/staging/cdv/drv/psb_intel_hdmi_edid.h
deleted file mode 100644
index 583abb2..0000000
--- a/drivers/staging/cdv/drv/psb_intel_hdmi_edid.h
+++ /dev/null
@@ -1,1057 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- *	
- */
-/* chunfeng.zhao@intel.com
-  */
-#ifndef PSB_INTEL_HDMI_EDID_H
-#define PSB_INTEL_HDMI_EDID_H
-
-//#include "..\\..\\Common\\Platform.h"
-
-////////////////////////////////////////////
-//
-// Max number of EDID extensions possible
-//
-////////////////////////////////////////////
-#define MAX_EDID_EXTENSIONS				254  //Max EDID blocks minus Block 0
-#define NUM_BASEEDID_STANDARD_TIMING	8
-#define MAX_BASEEDID_DTD_BLOCKS			4
-
-#define MAX_VIC_DEFINED					128  
-
-// New Macros for supporting EDID 1.4
-
-// Macros for EDID Revision and Version
-#define EDID_VERSION_1 0x01
-#define EDID_REVISION_4 0x04
-
-// Macros for CVT and GTF related support in Monitor descriptor
-#define EDID14_CVT_TIMING_SUPPORTED 0x04
-#define EDID14_DEFAULT_GTF_SUPPORTED 0x00
-#define EDID14_SECONDARY_GTF_SUPPORTED 0x02
-
-// Macros for display device data block in CEA.
-#define EDID14_DISPLAY_DEVICE_DATA_TAG 0xFF
-#define EDID14_DISPLAY_DEVICE_DATA_CHILD_TAG 0x02
-#define EDID14_DISPLAY_DEVICE_DATA_LENGTH 0x20
-#define EDID14_DISPLAY_PORT_INTERFACE 0x09
-
-// Macros indicating digital interfaces supported by the display. 
-#define EDID14_DVI_SUPPORTED 0x01
-#define EDID14_DISPLAY_PORT_SUPPORTED 0x05
-#define EDID14_HDMI_A_SUPPORTED 0x02
-#define EDID14_HDMI_B_SUPPORTED 0x03
-
-#define EDID14_MAX_MONITOR_DESCRIPTORS 0x03
-
-// Macros related to EDID 1.4 Color Bit Depth support
-#define EDID14_COLOR_BIT_DEPTH_UNDEFINED         0x00
-#define EDID14_SIX_BITS_PER_PRIMARY_COLOR        0x06
-#define EDID14_EIGHT_BITS_PER_PRIMARY_COLOR      0x08
-#define EDID14_TEN_BITS_PER_PRIMARY_COLOR        0x0A
-#define EDID14_TWELVE_BITS_PER_PRIMARY_COLOR     0x0C
-#define EDID14_FOURTEEN_BITS_PER_PRIMARY_COLOR   0x0E
-#define EDID14_SIXTEEN_BITS_PER_PRIMARY_COLOR    0x10
-#define EDID14_INVALID_COLOR_BIT_DEPTH           0x07
-
-// Macro for showing Color Bit Depth support for existing displays
-#define EDID_EIGHT_BITS_PER_PRIMARY_COLOR        0x08
-
-// Macro for Established Timings III Block descriptor 
-#define EST_TIMINGS_III_BLOCK_TAG                0xF7
-#define EST_TIMINGS_III_BLOCK_DATA_LENGTH        0x06
-
-// Macro for indicating byte length
-#define BYTE_LENGTH                              0x08
-
-////////////////////////////////////////////
-//
-// Max number of EDID Blocks
-//
-////////////////////////////////////////////
-#define MAX_EDID_BLOCKS					255 //According to E-EDID Standard doc.
-#define EDID_BLOCK_SIZE					128
-
-// Macros for EDID Revision and Version for EDID 1.3
-#define EDID_VERSION_1_3 0x01
-#define EDID_REVISION_1_3 0x03
-
-////////////////////////////////////////////
-// Base EDID header
-////////////////////////////////////////////
-static const unsigned char BASEEDID_Header[8] = {0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00};
-
-// Display Range Limits Offset Flags.
-// Applicable only from EDID 1.4 onwards
-typedef union _edid_range_limits_flags {
-	uint8_t	ucRangeLimitOffsetFlags;	// Range Limits Offset Flags
-	struct {
-		uint8_t	ucVerticalRateOffset   : 2; // Vertical Rate Offset
-		uint8_t	ucHorizontalRateOffset : 2; // Horizontal Rate Offset
-		uint8_t	ucReserved             : 4; // Reserved.
-		};
-} edid_range_limits_flags_t;
-
-////////////////////////////////////////////
-//
-//	18-byte DTD block
-//  Refer Table 3.16, 3.17 & 3.18 of 
-//  EDID spec
-//
-////////////////////////////////////////////
-typedef struct _edid_dtd_timing {
-#pragma pack(1)
-
-	int16_t wPixelClock;					// Pixel clock / 10000
-
-	uint8_t ucHA_low;						// Lower 8 bits of H. active pixels
-	uint8_t ucHBL_low;					// Lower 8 bits of H. blanking
-	union {
-		uint8_t ucHAHBL_high;
-		struct {
-			uint8_t	ucHBL_high : 4;		// Upper 4 bits of H. blanking
-			uint8_t	ucHA_high  : 4;		// Upper 4 bits of H. active pixels
-		};
-	};
-
-	uint8_t ucVA_low;						// Lower 8 bits of V. active lines
-	uint8_t ucVBL_low;					// Lower 8 bits of V. blanking
-	union {
-		uint8_t ucVAVBL_high;
-		struct {
-			uint8_t	ucVBL_high : 4;		// Upper 4 bits of V. blanking
-			uint8_t	ucVA_high  : 4;		// Upper 4 bits of V. active pixels
-		};
-	};
-
-	uint8_t ucHSO_low;					// Lower 8 bits of H. sync offset
-	uint8_t ucHSPW_low;					// Lower 8 bits of H. sync pulse width
-	union {
-		uint8_t ucVSOVSPW_low;
-		struct {
-			uint8_t	ucVSPW_low : 4;		// Lower 4 bits of V. sync pulse width
-			uint8_t	ucVSO_low  : 4;		// Lower 4 bits of V. sync offset
-		};
-	};
-	union {
-		uint8_t ucHSVS_high;
-		struct {
-			uint8_t	ucVSPW_high : 2;	// Upper 2 bits of V. sync pulse width
-			uint8_t	ucVSO_high  : 2;	// Upper 2 bits of V. sync offset
-			uint8_t	ucHSPW_high : 2;	// Upper 2 bits of H. sync pulse width
-			uint8_t	ucHSO_high  : 2;	// Upper 2 bits of H. sync offset
-		};
-	};
-
-	uint8_t ucHIS_low;					// Lower 8 bits of H. image size in mm
-	uint8_t ucVIS_low;					// Lower 8 bits of V. image size in mm
-	union {
-		uint8_t ucHISVIS_high;
-		struct {
-			uint8_t	ucVIS_high : 4;		// Upper 4 bits of V. image size
-			uint8_t	ucHIS_high : 4;		// Upper 4 bits of H. image size
-		};
-	};
-
-	uint8_t ucHBorder;					// H. border in pixels
-	uint8_t ucVBorder;					// V. border in pixels
-
-	union {
-		uint8_t ucFlags;					// Hsync & Vsync polarity, etc. flags
-		struct {
-			uint8_t	ucStereo1	 : 1;	// Stereo definition with bit[6:5]
-			uint8_t	ucHSync_Pol  : 1;	// Hsync polarity (0: Neg, 1: Pos)
-			uint8_t	ucVSync_Pol  : 1;	// Vsync polarity (0: Neg, 1: Pos)
-			uint8_t	ucSync_Conf  : 2;	// Sync configuration
-										// 00 : Analog composite
-										// 01 : Bipolar analog composite
-										// 00 : Digital composite
-										// 00 : Digital separate
-			uint8_t	ucStereo2	 : 2;	// Stereo definition
-										// 00 : Normal display, no stereo 
-										// xx : Stereo definition with bit0
-			uint8_t	ucInterlaced : 1;	// Interlaced / Non-interlaced
-										// 0 : Non-interlaced
-										// 1 : Interlaced
-		};
-	};
-
-#pragma pack()
-} edid_dtd_timing_t;
-
-
-////////////////////////////////////////////
-//
-//	Standard timing identification
-//  Refer Table 3.15 of EDID spec
-//
-////////////////////////////////////////////
-typedef union _edid_std_timing {
-	uint16_t  usStdTiming;
-
-	struct {
-#pragma pack(1)
-		uint8_t	ucHActive;				// (HActive/8) - 31;
-		struct {
-			uint8_t	ucRefreshRate : 6;	// Refresh Rate - 60
-			uint8_t	ucAspectRatio : 2;	// Aspect ratio (HActive/VActive)
-										// 00:  1:1 Aspect ratio
-										// 01:  4:3 Aspect ratio
-										// 10:  5:4 Aspect ratio
-										// 11: 16:9 Aspect ratio
-		};
-	};
-#pragma pack()
-
-} edid_std_timing_t;
-////////////////////////////////////////////////////////
-// Aspect Ratio def's as per Edid 1.3 Standard Timings
-////////////////////////////////////////////////////////
-#define EDID_STD_ASPECT_RATIO_16_10   0x0
-#define EDID_STD_ASPECT_RATIO_4_3     0x1
-#define EDID_STD_ASPECT_RATIO_5_4     0x2
-#define EDID_STD_ASPECT_RATIO_16_9    0x3
-
-
-////////////////////////////////////////////
-//
-//	Monitor range limits
-//
-////////////////////////////////////////////
-typedef struct _monitor_range_limits {	
-#pragma pack(1)
-
-	uint8_t ucMin_vert_rate;			//Min Vertical Rate,in Hz
-	uint8_t ucMax_vert_rate;			//Max Vertical Rate, in Hz
-	uint8_t ucMin_horz_rate;			//Min Horizontal Rate, in Hz
-	uint8_t ucMax_horz_rate;			//Max Horizontal Rate, in Hz
-	uint8_t ucMax_pixel_clock;		//Max Pixel Clock,Value/10 Mhz
-	uint8_t ucTiming_formula_support;	//00 - No Secondary Timing Formula Supported
-									//02 - Secondary GTF Curve Supported
-									//In EDID 1.4, this may indicate CVT support as well
-	//If timing_formula_support is 02
-	uint8_t ucReserved;				//00h
-	uint8_t ucStart_freq;				//Horizontal Freq, Value/2, KHz
-	uint8_t ucByte_C;					//C*2
-	uint8_t ucLSB_M;					//LSB of M Value
-	uint8_t ucMSB_M;					//MSB of M Value
-	uint8_t ucByte_K;					//K Value
-	uint8_t ucByte_J;					//J*2
-
-#pragma pack()
-} monitor_range_limits_t;
-
-////////////////////////////////////////////
-//
-// Color point
-//
-////////////////////////////////////////////
-typedef struct _color_point {
-#pragma pack(1)
-
-	uint8_t ucWhite_point_index_number_1;
-	uint8_t ucWhite_low_bits_1;
-	uint8_t ucWhite_x_1;
-	uint8_t ucWhite_y_1;
-	uint8_t ucWhite_gamma_1;
-	uint8_t ucWhite_point_index_number_2;
-	uint8_t ucWhite_low_bits_2;
-	uint8_t ucWhite_x_2;
-	uint8_t ucWhite_y_2;
-	uint8_t ucWhite_gamma_2;
-	uint8_t ucByte_15;
-	uint8_t ucByte_16_17[2];
-
-#pragma pack()
-} color_point_t;
-
-////////////////////////////////////////////
-//
-//	Monitor description descriptor
-//  Refer Table 3.19 & 3.20 of EDID spec
-//
-////////////////////////////////////////////
-#define BASEEDID_MONITORSN_MDDATATYPE			0xFF
-#define BASEEDID_ASCIISTRING_MDDATATYPE			0xFE
-#define BASEEDID_MONITORRANGELIMIT_MDDATATYPE	0xFD
-#define BASEEDID_MONITORNAME_MDDATATYPE			0xFC
-#define BASEEDID_COLORPOINT_MDDATATYPE			0xFB
-#define BASEEDID_STDTIMINGS_MDDATATYPE			0xFA
-
-// Structure definition for Established Timings III monitor block
-typedef struct _est_timings_iii_block {
-#pragma pack(1)
-	// The first byte will show the VESA DMTS Standard Version. 
-	// The following six bytes will have the Timings Bit Mask.
-	// Right now only 6 bytes are used for this!!!
-	// Rest is reserved.
-	uint8_t ucVesaDMTVersion;	//Byte 0 indicating the VESA DMT Version.
-	uint8_t ucTimingBitMask[6];// Next 6 bytes indicating the Timing Bit Mask Bytes used in Est Timing III.
-	uint8_t bReserved[6];//Next 6 bytes are reserved
-#pragma pack()
-} est_timings_iii_block_t;
-
-typedef struct _monitor_descriptor {
-#pragma pack(1)
-
-	int16_t wFlag;			// = 0000 when block is used as descriptor
-	uint8_t ucFlag0;		// Reserved
-
-	uint8_t ucDataTypeTag;
-
-	uint8_t ucFlag1;		// 00 for descriptor
-	
-	union {
-
-		// Monitor S/N (ucDataTypeTag = FF)
-		uint8_t ucMonitorSerialNumber[13];
-
-		// ASCII string (ucDataTypeTag = FE)
-		uint8_t ucASCIIString[13];
-
-		// Monitor range limit (ucDataTypeTag = FD)
-		monitor_range_limits_t MonitorRangeLimits;
-
-		// Monitor name (ucDataTypeTag = FC)
-		uint8_t ucMonitorName[13];
-
-		// Color point (ucDataTypeTag = FB)
-		color_point_t ColorPoint;
-
-		// ESTABLISHED TIMINGS III BLOCK = F7 (Added for EDID 1.4)
-		est_timings_iii_block_t stEstTimingsIIIBlock;
-
-		// Standard timings (ucDataTypeTag = FA)
-		struct {
-			edid_std_timing_t ExtraStdTiming[6];
-			uint8_t ucFixedValueOfA0;		// Should be 0xA0
-		};
-
-		// Manufacturer specific value (ucDataTypeTag = 0F-00)
-		uint8_t ucMfgSpecificData[13];
-	};
-
-#pragma pack()
-} monitor_descriptor_t;
-
-////////////////////////////////////////////
-//
-//	EDID PnP ID fields
-//
-////////////////////////////////////////////
-typedef union _baseedid_pnpid {
-	uint8_t		VendorProductID[10];	// Vendor / Product identification
-
-	struct {
-		uint8_t ManufacturerID[2];	// Bytes 8, 9: Manufacturer ID 
-		uint8_t ProductID[2];			// Bytes 10, 11: Product ID
-		uint8_t SerialNumber[4];		// Bytes 12-15: Serial numbers
-		uint8_t WeekOfManufacture;	// Byte 16: Week of manufacture
-		uint8_t YearOfManufacture;	// Byte 17: Year of manufacture
-	};
-} baseedid_pnpid_t;
-
-//
-// Chromaticity structure
-// Table 3.12 of Base Block for details
-//
-typedef struct _baseedid_chromaticity_block {
-    union{
-            uint8_t RedGreenLowBits;           // Byte 1
-           struct{
-                uint8_t ucGreenYLowBits   : 2; // bit 1:0
-                uint8_t ucGreenXLowBits   : 2; // bit 3:2
-                uint8_t ucRedYLowBits     : 2; // bit 5:4
-                uint8_t ucRedXLowBits     : 2; // bit 7:6
-            };
-        };
-
-    union{
-            uint8_t ucBlueWhiteLowBits;       // Byte 2
-           struct{
-                uint8_t ucWhiteYLowBits   : 2; // bit 1:0
-                uint8_t ucWhiteXLowBits   : 2; // bit 3:2
-                uint8_t ucBlueYLowBits    : 2; // bit 5:4
-                uint8_t ucBlueXLowBits    : 2; // bit 7:6
-            };
-        };
-
-    uint8_t ucRedXUpperBits; // bit 9:2          Byte 3
-    uint8_t ucRedYUpperBits; // bit 9:2          Byte 4
-
-    uint8_t ucGreenXUpperBits; // bit 9:2        Byte 5
-    uint8_t ucGreenYUpperBits; // bit 9:2        Byte 6
-
-    uint8_t ucBlueXUpperBits; // bit 9:2         Byte 7
-    uint8_t ucBlueYUpperBits; // bit 9:2         Byte 8
-
-    uint8_t ucWhiteXUpperBits; // bit 9:2        Byte 9
-    uint8_t ucWhiteYUpperBits; // bit 9:2        Byte 10
-} baseedid_chromaticity_block_t;
-
-////////////////////////////////////////////
-//
-//	128-byte EDID 1.x block0 structure
-//
-////////////////////////////////////////////
-typedef struct _baseedid_1_x {
-#pragma pack(1)
-
-	//
-	// Header: 8 bytes (Table 3.3 of EDID spec)
-	char		Header[8];		// EDID1.x header "0 FFh FFh FFh FFh FFh FFh 0"
-	
-	//
-	// Vendor/Product ID: 10 bytes (Table 3.4, 3.5 & 3.6 of EDID spec)
-	//baseedid_pnpid_t;
-	union {
-		uint8_t		VendorProductID[10];	// Vendor / Product identification
-		struct {
-			uint8_t ManufacturerID[2];	// Bytes 8, 9: Manufacturer ID 
-			uint8_t ProductID[2];			// Bytes 10, 11: Product ID
-			uint8_t SerialNumber[4];		// Bytes 12-15: Serial numbers
-			uint8_t WeekOfManufacture;	// Byte 16: Week of manufacture
-			uint8_t YearOfManufacture;	// Byte 17: Year of manufacture
-		};
-	};
-	
-	//
-	// EDID structure Version/Revision: 2 bytes (Table 3.7 of EDID spec)
-	uint8_t		ucVersion;		// EDID version no.
-	uint8_t		ucRevision;		// EDID revision no.
-	
-	//
-	// Basic display parameters & features: 5 bytes (Table 3.8 of EDID spec)
-	union {
-		uint8_t	ucVideoInput;	// Video input definition (Refer Table 3.9 of EDID spec)
-
-		struct {
-			uint8_t	ucSyncInput	 : 4;	// Sync input supported (iff ucDigitInput = 0)
-			uint8_t	ucSetup		 : 1;	// Display setup (iff ucDigitInput = 0)
-			uint8_t	ucSigLevStd	 : 2;	// Signal level Standard (iff ucDigitInput = 0)
-
-			uint8_t	ucDigitInput : 1;	// 1: Digital input; 0: Analog input
-		};
-	};
-	
-	// Image size (Table 3.10 of EDID spec)
-	uint8_t		ucMaxHIS;		// Maximum H. image size in cm
-	uint8_t		ucMaxVIS;		// Maximum V. image size in cm
-	
-	// Gamma (display transfer characteristic)
-	uint8_t		ucGamma;		// Display gamma value	[= (gamma*100)-100]
-	
-	// Feature support (Table 3.11 of EDID spec)
-	union {
-		uint8_t	ucDMPSFeature;	// DPMS feature support
-		
-		struct {
-			uint8_t	ucGTFSupport : 1;	// GTF timing support (1: Yes)
-			uint8_t	ucPTM		 : 1;	// Preferred timing is 1st DTD (1: Yes) [Must if EDID >= 1.3]
-			uint8_t	ucColorSpace : 1;	// Use STD color space (1:Yes) [If set ColorChars should match sRGB values in EDID spec Appendix A]
-			uint8_t	ucDispType	 : 2;	// Display type
-										// 00: Monochrome
-										// 01: R/G/B color display
-										// 10: Non R/G/B multicolor display
-										// 11: Undefined
-			uint8_t	ucActiveOff	 : 1;	// Active off (Display consumes less power/blanks out when it receives an out of range timing)
-			uint8_t	ucSuspend	 : 1;	// Suspend	(Refer VESA DPMS spec)
-			uint8_t	ucStandBy	 : 1;	// Stand-by	(Refer VESA DPMS spec)
-		};
-	};
-
-	//
-	// Phosphor or Filter Chromaticity: 10 bytes
-	uint8_t		ColorChars[10];	// Color characteristics	(Refer Table 3.12 of EDID spec)
-
-	//
-	// Established timings: 3 bytes (Table 3.14 of EDID spec)
-	union {
-		uint8_t EstTiming1;
-		struct {
-			uint8_t bSupports800x600_60	: 1;
-			uint8_t bSupports800x600_56	: 1;
-			uint8_t bSupports640x480_75	: 1;
-			uint8_t bSupports640x480_72	: 1;
-			uint8_t bSupports640x480_67	: 1;
-			uint8_t bSupports640x480_60	: 1;
-			uint8_t bSupports720x400_88	: 1;
-			uint8_t bSupports720x400_70	: 1;
-		};
-	};
-	union {
-		uint8_t EstTiming2;
-		struct {
-			uint8_t bSupports1280x1024_75	: 1;
-			uint8_t bSupports1024x768_75	: 1;
-			uint8_t bSupports1024x768_70	: 1;
-			uint8_t bSupports1024x768_60	: 1;
-			uint8_t bSupports1024x768_87i : 1;
-			uint8_t bSupports832x624_75	: 1;
-			uint8_t bSupports800x600_75	: 1;
-			uint8_t bSupports800x600_72	: 1;
-		};
-	};
-	union {
-		uint8_t MfgTimings;
-		struct {
-			uint8_t bMfgReservedTimings	: 7;
-			uint8_t bSupports1152x870_75	: 1;
-		};
-	};
-
-	//
-	// Standard timings: 8 bytes (Table 3.15 of EDID spec)
-	edid_std_timing_t	StdTiming[NUM_BASEEDID_STANDARD_TIMING];	// 8 Standard timing support
-
-	//
-	// Detailed timing section - 72 bytes (4*18 bytes)
-	union {
-		edid_dtd_timing_t	DTD[MAX_BASEEDID_DTD_BLOCKS];			// Four DTD data blocks
-
-		monitor_descriptor_t MonitorInfo[MAX_BASEEDID_DTD_BLOCKS];
-	};
-	
-	uint8_t		ucNumExtBlocks;	// Number of extension EDID blocks
-	uint8_t		ucChecksum;		// Checksum of the EDID block
-
-#pragma pack()
-} baseedid_1_x_t;
-
-////////////////////////////////////////////
-//
-//	128-byte EDID 1.4 block0 structure
-//  EDID 1.4 block0 structure is different from 1.3 block0
-//  Thats why this new structure has been added 
-//  Changes are commented in the structure itself
-//
-////////////////////////////////////////////
-typedef struct _baseedid_1_4 {
-#pragma pack(1)
-
-	//
-	// Header: 8 bytes (Table 3.3 of EDID spec)
-	char		Header[8];		// EDID1.x header "0 FFh FFh FFh FFh FFh FFh 0"
-	
-	//
-	// Vendor/Product ID: 10 bytes (Table 3.4, 3.5 & 3.6 of EDID spec)
-	union {
-		uint8_t		VendorProductID[10];	// Vendor / Product identification
-		struct {
-			uint8_t ManufacturerID[2];	// Bytes 8, 9: Manufacturer ID 
-			uint8_t ProductID[2];			// Bytes 10, 11: Product ID
-			uint8_t SerialNumber[4];		// Bytes 12-15: Serial numbers
-			uint8_t WeekOfManufacture;	// Byte 16: Week of manufacture
-			uint8_t YearOfManufacture;	// Byte 17: Year of manufacture
-		};
-	};
-	
-	//
-	// EDID structure Version/Revision: 2 bytes (Table 3.7 of EDID spec)
-	uint8_t		ucVersion;		// EDID version no.
-	uint8_t		ucRevision;		// EDID revision no.
-	
-	//
-	// Basic display parameters & features: 5 bytes (Table 3.8 of EDID spec)
-	union {
-		uint8_t	ucVideoInput;	// Video input definition (Refer Table 3.9 of EDID spec)
-
-		struct {
-			uint8_t	ucSyncInput	 : 4;	// Sync input supported (iff ucDigitInput = 0)
-			uint8_t	ucSetup		 : 1;	// Display setup (iff ucDigitInput = 0)
-			uint8_t	ucSigLevStd	 : 2;	// Signal level Standard (iff ucDigitInput = 0)
-
-			uint8_t	ucDigitInput : 1;	// 1: Digital input; 0: Analog input
-		};
-		// This structure has been introduced to reflect the changes in EDID 1.4 spec
-		// This sturcture shows new meaning of VIDEO INPUT DEFINITION when input is digital 
-		struct {
-			uint8_t	ucDigitalVideoInterface : 4;	// Digital Video Interface Standard Supported.
-			uint8_t	ucColorBitDepth			: 3;	// Color Bit Depth. 
-													// 0 0 0 -- Color Bit Depth is undefined
-													// 0 0 1 -- 6 Bits per Primary Color
-													// 0 1 0 -- 8 Bits per Primary Color
-													// 0 1 1 -- 10 Bits per Primary Color
-													// 1 0 0 -- 12 Bits per Primary Color
-													// 1 0 1 -- 14 Bits per Primary Color
-													// 1 1 0 -- 16 Bits per Primary Color
-													// 1 1 1 -- Reserved (Do Not Use)
-			uint8_t	bIsDigitalVideoSignalInterface	: 1; // Bit 7
-		};
-	};
-	
-	// As per the EDID spec 1.4, the following two fields can be aspect ratios as well. 
-	union {
-			uint8_t ucMaxHIS; // Maximum H. image size in cm 
-			uint8_t ucARLandscape; // Landscape Aspect raio as per EDID 1.4 spec
-	};
-	union {
-			uint8_t ucMaxVIS; // Maximum V. image size in cm 
-			uint8_t ucARPortrait; // Portrait Aspect raio as per EDID 1.4 spec
-	};
-	
-	// Gamma (display transfer characteristic)
-	uint8_t		ucGamma;		// Display gamma value	[= (gamma*100)-100]
-	
-	// Feature support (Table 3.11 of EDID spec)
-	union {
-		uint8_t	ucDMPSFeature;	// DPMS feature support
-		
-		struct {
-			uint8_t	ucContinuousDisplay : 1;	// Display is continuous or non-continuous (1: Yes)
-			uint8_t	ucPTM		 : 1;	// Preferred timing mode indicates native pixel format and native RR. 
-			uint8_t	ucColorSpace : 1;	// Use STD color space (1:Yes) [If set ColorChars should match sRGB values in EDID spec Appendix A]
-			uint8_t	ucDispType	 : 2;	// Display type
-										// 00: Monochrome
-										// 01: R/G/B color display
-										// 10: Non R/G/B multicolor display
-										// 11: Undefined
-			uint8_t	ucActiveOff	 : 1;	// Active off (Display consumes less power/blanks out when it receives an out of range timing)
-			uint8_t	ucSuspend	 : 1;	// Suspend	(Refer VESA DPMS spec)
-			uint8_t	ucStandBy	 : 1;	// Stand-by	(Refer VESA DPMS spec)
-		};
-
-		struct {
-			uint8_t	bReserved0 : 1;
-			uint8_t	bReserved1 : 1;
-			uint8_t	bReserved2 : 1;
-			uint8_t	ucColorEncodingFormat	 : 2;	// Supported Color Encoding Format if Video Input is digital
-													// 00: RGB 4:4:4
-													// 01: RGB 4:4:4 & YCrCb 4:4:4
-													// 10: RGB 4:4:4 & YCrCb 4:2:2
-													// 11: RGB 4:4:4 & YCrCb 4:4:4 & YCrCb 4:2:2
-			uint8_t	bReserved3 : 1;
-			uint8_t	bReserved4 : 1;
-			uint8_t	bReserved5 : 1;
-		};
-	};
-
-	//
-	// Phosphor or Filter Chromaticity: 10 bytes
-	uint8_t		ColorChars[10];	// Color characteristics	(Refer Table 3.12 of EDID spec)
-
-	//
-	// Established timings: 3 bytes (Table 3.14 of EDID spec)
-	union {
-		uint8_t EstTiming1;
-		struct {
-			uint8_t bSupports800x600_60	: 1;
-			uint8_t bSupports800x600_56	: 1;
-			uint8_t bSupports640x480_75	: 1;
-			uint8_t bSupports640x480_72	: 1;
-			uint8_t bSupports640x480_67	: 1;
-			uint8_t bSupports640x480_60	: 1;
-			uint8_t bSupports720x400_88	: 1;
-			uint8_t bSupports720x400_70	: 1;
-		};
-	};
-	union {
-		uint8_t EstTiming2;
-		struct {
-			uint8_t bSupports1280x1024_75	: 1;
-			uint8_t bSupports1024x768_75	: 1;
-			uint8_t bSupports1024x768_70	: 1;
-			uint8_t bSupports1024x768_60	: 1;
-			uint8_t bSupports1024x768_87i : 1;
-			uint8_t bSupports832x624_75	: 1;
-			uint8_t bSupports800x600_75	: 1;
-			uint8_t bSupports800x600_72	: 1;
-		};
-	};
-	union {
-		uint8_t MfgTimings;
-		struct {
-			uint8_t bMfgReservedTimings	: 7;
-			uint8_t bSupports1152x870_75	: 1;
-		};
-	};
-
-	//
-	// Standard timings: 8 bytes (Table 3.15 of EDID spec)
-	edid_std_timing_t StdTiming[NUM_BASEEDID_STANDARD_TIMING];	// 8 Standard timing support
-
-	// Detailed timing section - 72 bytes (4*18 bytes)
-	// As per the new spec 1.4, the first Detailed Timing Section should contain the PREFERED TIMING BLOCK
-	edid_dtd_timing_t PreferedTimingMode;
-	// The rest 54 bytes of the Detailed Timing Section. 
-	union {
-		edid_dtd_timing_t DTD[MAX_BASEEDID_DTD_BLOCKS - 1];			// Three DTD data blocks
-
-		monitor_descriptor_t MonitorInfo[MAX_BASEEDID_DTD_BLOCKS - 1]; // Three Monitor Descriptor blocks
-	};
-	
-	uint8_t		ucNumExtBlocks;	// Number of extension EDID blocks
-	uint8_t		ucChecksum;		// Checksum of the EDID block
-
-#pragma pack()
-} baseedid_1_4_t;
-
-
-//*****************************************************
-//*****************************************************
-//
-// DATA STRUCTURES AND DEFINITIONS FOR CE-EXTENSION
-//
-//*****************************************************
-//*****************************************************
-
-/////////////////////////////////
-//
-//CE - Extension Block Structure
-//
-/////////////////////////////////
-typedef struct _ce_edid {
-	uint8_t	ucTag;
-	uint8_t	ucRevision;
-	uint8_t	ucDTDOffset;
-	uint8_t	ucCapabilty;
-	uint8_t	data[123];
-	uint8_t   ucCheckSum;   
-} ce_edid_t;
-
-////////////////////////////////////////////
-//
-//CE - Video Capability Data block structure
-//
-////////////////////////////////////////////
-typedef union _video_cap_data_block {
-    uint8_t ucValue;
-    struct
-    {
-        uint8_t ucCEScanBehavior        :2; // Indicates scan behavior of CE mode
-        uint8_t ucITScanBehavior        :2; // Indicates scan behavior of IT mode
-        uint8_t ucPTScanBehavior        :2; // Indicates scan behavior of Preferred mode
-        uint8_t ucQuantRangeSelectable  :1; // Indicates if RGB Quantization Range can be overridden
-        uint8_t ucReserved              :1;
-    };
-} video_cap_data_block_t;
-
-////////////////////////////////////////////
-//
-//CEA Extn Block Byte3 structure
-//
-////////////////////////////////////////////
-typedef union _cea_ext_capability {
-    uint8_t ucValue;
-    struct
-    {
-        uint8_t ucTotalNativeDTDs     :4; // Total number of DTDs in extension block
-        uint8_t ucSupportsYCBCR422    :1; // Indicates support for YCBCR 4:2:2
-        uint8_t ucSupportsYCBCR444    :1; // Indicates support for YCBCR 4:4:4
-        uint8_t ucSupportsBasicAudio  :1; // Indicates support for Basic audio
-        uint8_t ucUnderscansITFormats :1; // Indicates underscan behavior of IT formats
-    };
-} cea_ext_capability_t;
-
-////////////////////////////////////////////
-//
-//CE - Video Capability Data block structure
-//
-////////////////////////////////////////////
-typedef enum {
-    FORMAT_NOT_SUPPORTED        = 0, // Format is not supported
-    ALWAYS_OVERSCANNED          = 1, // Format is always overscanned
-    ALWAYS_UNDERSCANNED         = 2, // Format is always underscanned
-    SUPPORTS_OVER_AND_UNDERSCAN = 3  // Sink supports both overscan and underscan
-} cea_scan_behavior_t;
-
-
-/////////////////////////////////
-//
-// #defines required for CE Etxn
-//
-/////////////////////////////////
-#define CEA_EXT_TAG 0x02
-#define CEA_EXT_SUPPORTED_VERSION 0x03
-#define CEA_EXT_861_REVISION 0x01
-
-#define CEA_USE_EXTENDED_TAG   0x7
-
-#define CEA_AUDIO_DATABLOCK         0x1
-#define CEA_VIDEO_DATABLOCK         0x2
-#define CEA_VENDOR_DATABLOCK        0x3
-#define CEA_SPEAKER_DATABLOCK       0x4
-#define CEA_VIDEO_CAP_DATABLOCK     0x0
-
-#define CEA_DATABLOCK_TAG_MASK                  0xE0
-#define CEA_DATABLOCK_LENGTH_MASK               0x1F
-#define CEA_SHORT_VIDEO_DESCRIPTOR_CODE_MASK    0x7F
-#define CEA_NATIVE_FORMAT_BIT_MASK              0x80
-
-#define CEA_HDMI_IEEE_REG_ID    0x00000C03
-#define CEA_EDID_HEADER_SZIE    0x04
-
-// Extended Data block type
-// This bit definitions are as per CE 861-D spec
-#define CEA_COLORIMETRY_DATABLOCK   0x5
-    #define CE_COLORIMETRY_MD0_MASK BIT0     
-    #define CE_COLORIMETRY_MD1_MASK BIT1
-    #define CE_COLORIMETRY_MD2_MASK BIT3
-#if 0
-//==================================================================================
-//==================================================================================
-//	DATA Structure definitions for VTB parsing.....
-//  Reference VESA Documents are VTB Extension(Release A) & CVT standard version 1.1
-//===================================================================================
-//	#defines for VTB-EXT
-//===================================================================================
-
-#define VTB_EXT_TAG	0x10
-#define	VTB_EXT_SUPPORTED_VERSION 0x03
-
-#define	VTB_MAX_DTD_TIMINGS			 6
-#define	VTB_MAX_CVT_TIMINGS			40
-#define	VTB_MAX_STANDARD_TIMINGS	61
-
-#define VTB_DTD_OFFSET		5
-#define VTB_DTD_SIZE		18
-#define	VTB_CVT_SIZE		3
-#define VTB_ST_SIZE			2
-
-// This struct is for VTB Extension block.
-typedef struct _VTB_EXT
-{
-	uint8_t	ucTag;
-	uint8_t	ucVersion;
-	uint8_t	ulNumDTD;
-	uint8_t	ulNumCVT;
-	uint8_t	ulNumST;
-	uint8_t	DATA[122];
-	uint8_t	ucChecksum;
-}VTB_EXT, *PVTB_EXT;
-
-// Following struct is for CVT descriptor (Version 1.1)
-typedef struct _VTB_CVT_TIMING 
-{
-#pragma pack(1)	
-
-	uint8_t	ucVA_low;		// Lower 8 bits of Vertical size. This Vsize = (vertical active lines/2)-1. 
-							//	Range for VA lines is 2 to 8192. CVT supprts only an even no. of active lines per frame.
-	
-	union {					
-		uint8_t	ucVA_high_AR;
-		struct {
-		
-			uint8_t	ucReserved00	:2;		//Bits 1-0 are reserved and set to 00h
-			uint8_t	ucAspectRatio	:2;		//	Aspect Ratio specifier bits.
-											// 00:	 4:3 Aspect ratio
-											// 01:	16:9 Aspect ratio
-											// 10:	16:10 Aspect ratio
-											// 11: Undefined (Reserved)
-			
-			
-			uint8_t	ucVA_high	:4;			//	Upper 4 bits of Vertical Size.
-		};
-	};
-
-	union {
-		uint8_t	ucRefresh_Rate_Bits;
-		struct	{
-			
-			uint8_t	ucRR_60Hz_RB	:1;		// When set, indicates 60Hz support with Reduced Blanking.
-			uint8_t	ucRR_85Hz	:1;			//				||	   85Hz				||												.
-			uint8_t	ucRR_75Hz	:1;			//				||	   75Hz				||												.
-			uint8_t	ucRR_60Hz	:1;			//				||	   60Hz				||												.
-			uint8_t	ucRR_50Hz	:1;			// When set, indicates 50Hz Refrash Rate with CRT Blanking supports specified pixel format.
-			uint8_t	ucPreferredRefresh_Rate	:2;		// Preferred Refresh Rate specifier bits.
-											// 00:	50 Hz
-											// 01:	60 Hz (this means either CRT blanking or Reduced Blanking whichever is supported. 
-											//				If both are supported, then RB is preferred.)
-											// 10:	75 Hz
-											// 11:	85 Hz	
-			
-			uint8_t	ucReserved0	:1;			// This bit is reserved and set to '0'.
-			
-		};
-	};
-#pragma	pack()
-} VTB_CVT_TIMING, *PVTB_CVT_TIMING;
-
-
-// This struct is for storing extracted Info from CVT descriptor....
-// This is defined by author.....not based on CVT specs.
-typedef struct _CVT_INFO		
-{
-	ULONG ulYRes;
-	ULONG ulXRes;
-	ULONG ulRRate[5];			//As max 5 Refresh Rates can be supported.
-	BOOLEAN bRed_Blank_Req[5];
-	BOOLEAN bPreferred_RR[5];   //To set flag for Preffered RR
-	ULONG ulNumRates;			//Number of Refresh rates Supported. (Max. 5)
-} CVT_INFO, *PCVT_INFO;
-#endif 
-// This structure is for stroing the Display device Data retreived from CEA block
-// This is defined as per the Display Device Data Block standard.
-typedef struct _display_device_data {
-#pragma pack (1)
-	union 
-	{
-		uint8_t ucTagAndLength; // Data Block Tag and Block Length. should be 0xFF
-		struct
-		{
-			uint8_t ucLength : 5;
-			uint8_t ucTag : 3;
-		};
-	};
-	uint8_t ucChildTag; // Child tag required as per CEA spec  should be 0x02
-	union
-	{
-		uint8_t ucInterfaceType;
-		struct
-		{
-			uint8_t ucNumOfChannels : 4;// Number of channels supported
-			uint8_t ucInterfaceCode : 4;// Interface code 
-		};
-	};
-	union
-	{
-		uint8_t ucVerAndRel;
-		struct
-		{
-			uint8_t ucRelease : 4;// Release 
-			uint8_t ucVersion : 4;// Version.
-		};
-	};
-	uint8_t ucContentProtectionSuppFlag;// Flag indicating support for content protection. 
-	union
-	{
-		uint16_t usClockFrequency;// Clock Frequency
-		struct
-		{
-			uint16_t usMinClockFrequency : 6; // First 6 bits indicates Min frequency
-			uint16_t usMaxClockFrequency : 10;// Next 10 bits indicates Max frequency
-		};
-	};
-	union
-	{
-		uint8_t ucNativePixelFormat[4];// Pixel Format
-		struct
-		{
-			uint8_t ucHorizontalPixelCntLower;// Lower byte value of the Horizontal pixel count
-			uint8_t ucHorizontalPixelCntUpper;// Upper byte value of the Horizontal pixel count
-			uint8_t ucVerticalPixelCntLower;//  Lower byte value of the vertical pixel count
-			uint8_t ucVerticalPixelCntUpper; // Upper byte value of the vertical pixel count
-		};
-	};
-	uint8_t ucAspectRatio;// Byte indicating Aspect ratio. 
-	union 
-	{
-		uint8_t ucOrientationAndRotation;
-		struct
-		{
-			uint8_t ucScanDirection : 2;// Scan direction.
-			uint8_t ucZeroPixelLocation : 2;// Zero Pixel Location.
-			uint8_t ucRotationCapability : 2;// Indicates rotation capability
-			uint8_t ucDefaultOrientation : 2;// Default Orientation.
-		};
-	};
-	uint8_t ucSubPixelInfo;// Sub-Pixle Information.
-	uint8_t ucHorizontalPitch;// Horizontal Pitch
-	uint8_t ucVerticalPitch;// Vertical Pitch
-	union
-	{
-		uint8_t ucMiscDisplayCapabilities;
-		struct
-		{
-			uint8_t bReserved : 3;
-			uint8_t ucDeinterlacing : 1;// indicates deinterlacing support
-			uint8_t ucOverdriverNotRecommended : 1;
-			uint8_t ucDirectDrive : 1;// indicates DirectDrive support
-			uint8_t ucDithering : 2;// indicates Dithering support.
-		};
-	};
-	union
-	{
-		uint8_t ucAudioFlags;// Flags indicating Audio details
-		struct
-		{
-			uint8_t bReserved1 : 4;
-			uint8_t ucAudioInputOverride : 1;// Indicates Audio Input Override
-			uint8_t ucSeparateAudioInputs : 1;// Indicates Separate Audio Inputs
-			uint8_t ucAudioInputOnVideoInterface : 1;// Shows whether Audio input is through the video interface.
-		};
-	};
-	union
-	{
-		uint8_t ucAudioDelayFlags; // Audio Delay Flags
-		struct
-		{
-			uint8_t ucAudioDelay : 7;// Absolute offset between the audio and video signals.
-			uint8_t ucAudioSign : 1;// Indicates positive or negative delay.
-		};
-	};
-	union
-	{
-		uint8_t ucFrameRateAndModeConversion;
-		struct
-		{
-			uint8_t ucFrameRateRange : 6;//Device Frame rate Range
-			uint8_t ucFrameRateConversion : 2;//00 � No dedicated rate conversion hardware is provided;
-											//01 � The display provides a single frame buffer
-											//10 � The display provides double-buffering
-											//11- The display provides frame-rate conversion involving interframe interpolation
-		};
-	};
-	uint8_t ucDeviceNativeRate;// Device Native Frame rate
-	union
-	{
-		uint8_t ucColorBitDepth;// Color bit depth
-		struct
-		{
-			uint8_t ucDisplayDeviceColBitDepth : 4; // Color bit depth of the display device
-			uint8_t ucInterfaceColBitDepth : 4;// color bit depth supported by the interface.h
-		};
-	};
-	uint8_t ucAddPrimaryChromaticities[8];// Additional Primary Chromaticities.
-	union
-	{
-		uint8_t ucResponseTimeFlags;
-		struct
-		{
-			uint8_t ucResponseTime : 7;// Time for transition.
-			uint8_t ucBlackToWhite : 1;// if 1, then transition from black to white
-									// if 0, then transition from white to black
-		};
-	};
-	union
-	{
-		uint8_t ucOverscanInformation;
-		struct
-		{
-			uint8_t ucVerticalPercentage : 4;// Percentage of Overscan in vertical direction.
-			uint8_t ucHorizontalPercentage : 4;// Percentage of Overscan in horizontal direction.
-		};
-	};
-#pragma pack()
-} display_device_data_t;
-
-//=========================================================================
-//=========================================================================
-// #defines for Block Map Ext.
-//=========================================================================
-//=========================================================================
-#define BLOCK_MAP_EXT_TAG 0xF0
-
-#endif // EDIDSTRUCTS_H
diff --git a/drivers/staging/cdv/drv/psb_intel_hdmi_reg.h b/drivers/staging/cdv/drv/psb_intel_hdmi_reg.h
deleted file mode 100644
index 6a3c83e..0000000
--- a/drivers/staging/cdv/drv/psb_intel_hdmi_reg.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- *	
- */
-/* chunfeng.zhao@intel.com
-  */
-
-#ifndef PSB_INTEL_HDMI_REG_H
-#define PSB_INTEL_HDMI_REG_H
-
-//////////////////////////////////////////
-//
-// Integrated HDMI specific registers
-//
-/////////////////////////////////////////
-
-#define RESERVED2(x,y)  x##y
-#define RESERVED1(x,y)  RESERVED2(x,y)
-#define RANDOMNUMBER	__LINE__	// __COUNTER__
-#define UNIQUENAME(ValueName) RESERVED1(ValueName, RANDOMNUMBER)
-
-/** Requird for HDMI operation */
-#define   HDMI_NULL_PACKETS_DURING_VSYNC (1 << 9)
-#define   HDMI_BORDER_ENABLE		(1 << 7)
-#define   HDMI_AUDIO_ENABLE		(1 << 6)
-/** New with 965, default is to be set */
-#define   HDMI_VSYNC_ACTIVE_HIGH	(1 << 4)
-/** New with 965, default is to be set */
-#define   HDMI_HSYNC_ACTIVE_HIGH	(1 << 3)
-#define   HDMIB_PCIE_CONCURRENCY	(1 << 3)
-#define   HDMI_DETECTED			(1 << 2)
-/* Bits to be preserved when writing */
-#if 0
-#define   HDMIB_PRESERVE_MASK ((1 << 17) | (1 << 16) | (1 << 14) | (1 << 26))
-#define   HDMIC_PRESERVE_MASK ((1 << 17) | (1 << 26))
-#endif 
-//
-//AUDIO configuration register
-//
-#define MDFLD_AUD_CONFIG_REG 0x69000
-	#define MDFLD_AUD_CONFIG_REG_RESERVED_BITS	BITRANGE(31,25)
-typedef union _mdfld_aud_config {
-	uint32_t value;
-	
-	struct
-	{
-		const uint32_t disable_ncts 	        : 1;	//Bit 0
-		uint32_t lay_out 		        : 1;	//Bit 1 (0 - layout 0 1 - layout 1)
-		uint32_t format     		        : 2;	/*Bit [3:2] 
-									 * 00 - l-PCM or IEC 61937 
-                                                                         * 01 - High bit rate IEC 61937 stream packet)
-                                                                         * 10 - Not supported
-                                                                         * 11 - Not supported
-                                                                         */
-		uint32_t num_audio_ch                   : 2;	/*Bit [5:4]
-									 * 00 - 2 channels(stereo)
-									 * 01 - 3 or 4 channels
-									 * 10 - 5 or 6 channels
-									 * 11 - 7 or 8 channels
-									 */				
-		uint32_t UNIQUENAME(Reserved)		: 1;	//Bit 6
-		uint32_t b_bit_enabled		        : 1;	/* Bit 7 (0 - B bit set only for sub-packet 0
- 								 *        1 - B bit set for all valid sub packet)
-								 */
-		uint32_t sample_flat_bit	        : 1;	//Bit 8
-        	uint32_t validity_bit                   : 1;    //Bit 9 (1 - set V bit in sub-frame 0 - clear V bit(debugging, testing))
-		uint32_t user_bit			: 1;	//Bit 10 (1 - set U bit in sub frame 0 - clear U bit(default)
-		uint32_t underrun_packet_bit	        : 1;	//Bit 11 (1 - send underrun packet 0 - send null packet)
-		uint32_t UNIQUENAME(Reserved)		: 20;	//Bit [31:12]
-	};
-} mdfld_aud_config_t;
-
-//
-// Audio control state register
-//
-#define MDFLD_AUD_CNTL_ST_REG 0x69060
-	#define MDFLD_AUD_CNTL_ST_RESERVED_BITS	(BITRANGE(14,4) | BITRANGE(31,25))
-// Note => DIP : Data Island Packet
-typedef union _mdfld_aud_cntl {
-	uint32_t value;
-
-	struct
-	{
-		uint32_t dip_ram_access_address		:4; // bit 3:0
-		uint32_t UNIQUENAME(Reserved)		:11; // bit 14:4
-		uint32_t cp_ready 			:1;	// bit 15 
-		uint32_t video_dip_trans_freq		:2;	// bit 17:16
-		uint32_t dip_buffer_index		:3;	// bit 20:18
-		uint32_t enable_dip_type		:4;	// bit 24:21
-		uint32_t UNIQUENAME(Reserved)		:7;	// bit 31:25
-	};
-	
-} mdfld_aud_cntl_t;
-
-
-// HDMI Audio Data Island Packet Data
-//
-#define MDFLD_HDMI_AUDPAC_DATA_REG 0x69114
-
-typedef union _mdfld_hdmi_audpac_data {
-	uint32_t value;
-
-	struct
-	{
-		uint32_t audio_dip_data				:32; // bit 31:0
-	};
-} mdfld_hdmi_audpac_data_t;
-
-#endif // PSB_INTEL_HDMI_REG_H
diff --git a/drivers/staging/cdv/drv/psb_intel_i2c.c b/drivers/staging/cdv/drv/psb_intel_i2c.c
deleted file mode 100644
index 02c9f1c..0000000
--- a/drivers/staging/cdv/drv/psb_intel_i2c.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *	Eric Anholt <eric@anholt.net>
- */
-
-#include <linux/i2c.h>
-#include <linux/i2c-algo-bit.h>
-
-#include "psb_drv.h"
-#include "psb_intel_reg.h"
-
-/*
- * Intel GPIO access functions
- */
-
-#define I2C_RISEFALL_TIME 20
-
-static int get_clock(void *data)
-{
-	struct psb_intel_i2c_chan *chan = data;
-	struct drm_device *dev = chan->drm_dev;
-	u32 val;
-
-	val = REG_READ(chan->reg);
-	return (val & GPIO_CLOCK_VAL_IN) != 0;
-}
-
-static int get_data(void *data)
-{
-	struct psb_intel_i2c_chan *chan = data;
-	struct drm_device *dev = chan->drm_dev;
-	u32 val;
-
-	val = REG_READ(chan->reg);
-	return (val & GPIO_DATA_VAL_IN) != 0;
-}
-
-static void set_clock(void *data, int state_high)
-{
-	struct psb_intel_i2c_chan *chan = data;
-	struct drm_device *dev = chan->drm_dev;
-	u32 reserved = 0, clock_bits;
-
-	/* On most chips, these bits must be preserved in software. */
-	if (!IS_I830(dev) && !IS_845G(dev))
-		reserved =
-		    REG_READ(chan->reg) & (GPIO_DATA_PULLUP_DISABLE |
-					   GPIO_CLOCK_PULLUP_DISABLE);
-
-	if (state_high)
-		clock_bits = GPIO_CLOCK_DIR_IN | GPIO_CLOCK_DIR_MASK;
-	else
-		clock_bits = GPIO_CLOCK_DIR_OUT | GPIO_CLOCK_DIR_MASK |
-		    GPIO_CLOCK_VAL_MASK;
-	REG_WRITE(chan->reg, reserved | clock_bits);
-	udelay(I2C_RISEFALL_TIME);	/* wait for the line to change state */
-}
-
-static void set_data(void *data, int state_high)
-{
-	struct psb_intel_i2c_chan *chan = data;
-	struct drm_device *dev = chan->drm_dev;
-	u32 reserved = 0, data_bits;
-
-	/* On most chips, these bits must be preserved in software. */
-	if (!IS_I830(dev) && !IS_845G(dev))
-		reserved =
-		    REG_READ(chan->reg) & (GPIO_DATA_PULLUP_DISABLE |
-					   GPIO_CLOCK_PULLUP_DISABLE);
-
-	if (state_high)
-		data_bits = GPIO_DATA_DIR_IN | GPIO_DATA_DIR_MASK;
-	else
-		data_bits =
-		    GPIO_DATA_DIR_OUT | GPIO_DATA_DIR_MASK |
-		    GPIO_DATA_VAL_MASK;
-
-	REG_WRITE(chan->reg, reserved | data_bits);
-	udelay(I2C_RISEFALL_TIME);	/* wait for the line to change state */
-}
-
-/**
- * psb_intel_i2c_create - instantiate an Intel i2c bus using the specified GPIO reg
- * @dev: DRM device
- * @output: driver specific output device
- * @reg: GPIO reg to use
- * @name: name for this bus
- *
- * Creates and registers a new i2c bus with the Linux i2c layer, for use
- * in output probing and control (e.g. DDC or SDVO control functions).
- *
- * Possible values for @reg include:
- *   %GPIOA
- *   %GPIOB
- *   %GPIOC
- *   %GPIOD
- *   %GPIOE
- *   %GPIOF
- *   %GPIOG
- *   %GPIOH
- * see PRM for details on how these different busses are used.
- */
-struct psb_intel_i2c_chan *psb_intel_i2c_create(struct drm_device *dev,
-					const u32 reg, const char *name)
-{
-	struct psb_intel_i2c_chan *chan;
-
-	chan = kzalloc(sizeof(struct psb_intel_i2c_chan), GFP_KERNEL);
-	if (!chan)
-		goto out_free;
-
-	chan->drm_dev = dev;
-	chan->reg = reg;
-	snprintf(chan->adapter.name, I2C_NAME_SIZE, "intel drm %s", name);
-	chan->adapter.owner = THIS_MODULE;
-	chan->adapter.algo_data = &chan->algo;
-	chan->adapter.dev.parent = &dev->pdev->dev;
-	chan->algo.setsda = set_data;
-	chan->algo.setscl = set_clock;
-	chan->algo.getsda = get_data;
-	chan->algo.getscl = get_clock;
-	chan->algo.udelay = 20;
-	chan->algo.timeout = usecs_to_jiffies(2200);
-	chan->algo.data = chan;
-
-	i2c_set_adapdata(&chan->adapter, chan);
-
-	if (i2c_bit_add_bus(&chan->adapter))
-		goto out_free;
-
-	/* JJJ:  raise SCL and SDA? */
-	set_data(chan, 1);
-	set_clock(chan, 1);
-	udelay(20);
-
-	return chan;
-
-out_free:
-	kfree(chan);
-	return NULL;
-}
-
-/**
- * psb_intel_i2c_destroy - unregister and free i2c bus resources
- * @output: channel to free
- *
- * Unregister the adapter from the i2c layer, then free the structure.
- */
-void psb_intel_i2c_destroy(struct psb_intel_i2c_chan *chan)
-{
-	if (!chan)
-		return;
-
-	i2c_del_adapter(&chan->adapter);
-	kfree(chan);
-}
diff --git a/drivers/staging/cdv/drv/psb_intel_lvds.c b/drivers/staging/cdv/drv/psb_intel_lvds.c
deleted file mode 100644
index 90292d8..0000000
--- a/drivers/staging/cdv/drv/psb_intel_lvds.c
+++ /dev/null
@@ -1,701 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *	Eric Anholt <eric@anholt.net>
- *	Dave Airlie <airlied@linux.ie>
- *	Jesse Barnes <jesse.barnes@intel.com>
- */
-
-#include <linux/i2c.h>
-#include <linux/dmi.h>
-/* #include <drm/drm_crtc.h> */
-/* #include <drm/drm_edid.h> */
-#include <drm/drmP.h>
-
-#include "psb_intel_bios.h"
-#include "psb_drv.h"
-#include "psb_intel_drv.h"
-#include "psb_intel_reg.h"
-#include "psb_powermgmt.h"
-#include <linux/pm_runtime.h>
-
-/* MRST defines start */
-uint8_t blc_freq;
-uint8_t blc_minbrightness;
-uint8_t blc_i2caddr;
-uint8_t blc_brightnesscmd;
-int lvds_backlight;		/* restore backlight to this value */
-
-u32 CoreClock;
-u32 PWMControlRegFreq;
-
-/**
- * LVDS I2C backlight control macros
- */
-#define BLC_I2C_TYPE	0x01
-#define BLC_PWM_TYPT	0x02
-
-#define BLC_POLARITY_NORMAL 0
-#define BLC_POLARITY_INVERSE 1
-
-#define PSB_BLC_MAX_PWM_REG_FREQ       (0xFFFE)
-#define PSB_BLC_MIN_PWM_REG_FREQ	(0x2)
-#define PSB_BLC_PWM_PRECISION_FACTOR	(10)
-#define PSB_BACKLIGHT_PWM_MODULATION_MASK	(0xFFFF0000)
-#define PSB_BACKLIGHT_PWM_CTL_SHIFT	(16)
-#define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE)
-
-struct psb_intel_lvds_priv {
-	/**
-	 * Saved LVDO output states
-	 */
-	uint32_t savePP_ON;
-	uint32_t savePP_OFF;
-	uint32_t saveLVDS;
-	uint32_t savePP_CONTROL;
-	uint32_t savePP_CYCLE;
-	uint32_t savePFIT_CONTROL;
-	uint32_t savePFIT_PGM_RATIOS;
-	uint32_t saveBLC_PWM_CTL;
-};
-
-static int is_backlight_combination_mode(struct drm_device *dev)
-{
-	return REG_READ(BLC_PWM_CTL2) & PWM_LEGACY_MODE;
-}
-
-static u32 psb_intel_get_pwm_ctl(struct drm_device *dev)
-{
-	u32 val;
-	struct drm_psb_private *dev_priv = (struct drm_psb_private *)dev->dev_private;
-
-	val = REG_READ(BLC_PWM_CTL);
-
-	if (dev_priv->saveBLC_PWM_CTL == 0) {
-		dev_priv->saveBLC_PWM_CTL = val;
-		dev_priv->saveBLC_PWM_CTL2 = REG_READ(BLC_PWM_CTL2);
-	} else if (val == 0) {
-		REG_WRITE(BLC_PWM_CTL, dev_priv->saveBLC_PWM_CTL);
-		REG_WRITE(BLC_PWM_CTL2, dev_priv->saveBLC_PWM_CTL2);
-		val = dev_priv->saveBLC_PWM_CTL;
-	}
-	return val;
-}
-
-u32 psb_intel_lvds_get_backlight(struct drm_device *dev)
-{
-	u32 val;
-
-	val = REG_READ(BLC_PWM_CTL) & BACKLIGHT_DUTY_CYCLE_MASK;
-
-	if (is_backlight_combination_mode(dev)) {
-		u8 lbpc;
-
-		val &= ~1;
-		pci_read_config_byte(dev->pdev, 0xF4, &lbpc);
-		val *= lbpc;
-	}
-
-	return val;
-}
-
-/**
- *  * Returns the maximum level of the backlight duty cycle field.
- *   */
-u32 psb_intel_lvds_get_max_backlight(struct drm_device *dev)
-{
-	u32 max;
-
-	max = psb_intel_get_pwm_ctl(dev);
-
-	if (max == 0) {
-		DRM_DEBUG_KMS("LVDS Panel PWM value is 0!\n");
-	       	/* i915 does this, I believe which means that we should not
-		 * smash PWM control as firmware will take control of it. */
-		return 1;
-	}
-
-	max >>= 16;
-	if (is_backlight_combination_mode(dev))
-		max *= 0xff;
-
-	return max;
-}
-
-void psb_intel_lvds_set_backlight(struct drm_device *dev, int level)
-{
-	u32 blc_pwm_ctl;
-
-	if (is_backlight_combination_mode(dev)) {
-		u32 max = psb_intel_lvds_get_max_backlight(dev);
-		u8 lbpc;
-
-		lbpc = level * 0xfe / max + 1;
-		level /= lbpc;
-
-		pci_write_config_byte(dev->pdev, 0xF4, lbpc);
-	}
-
-	blc_pwm_ctl = REG_READ(BLC_PWM_CTL) & ~BACKLIGHT_DUTY_CYCLE_MASK;
-	REG_WRITE(BLC_PWM_CTL, (blc_pwm_ctl | (level << BACKLIGHT_DUTY_CYCLE_SHIFT)));
-}
-
-/**
- * Sets the power state for the panel.
- */
-static void psb_intel_lvds_set_power(struct drm_device *dev,
-				 struct psb_intel_output *output, bool on)
-{
-	u32 pp_status;
-
-	if (on) {
-		REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) |
-			  POWER_TARGET_ON);
-		do {
-			pp_status = REG_READ(PP_STATUS);
-		} while ((pp_status & PP_ON) == 0);
-
-		psb_intel_lvds_set_backlight(dev, output->mode_dev->backlight_duty_cycle);
-	} else {
-		psb_intel_lvds_set_backlight(dev, 0);
-
-		REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) &
-			  ~POWER_TARGET_ON);
-		do {
-			pp_status = REG_READ(PP_STATUS);
-		} while (pp_status & PP_ON);
-	}
-}
-
-static void psb_intel_lvds_encoder_dpms(struct drm_encoder *encoder, int mode)
-{
-	struct drm_device *dev = encoder->dev;
-	struct psb_intel_output *output = enc_to_psb_intel_output(encoder);
-
-	if (mode == DRM_MODE_DPMS_ON)
-		psb_intel_lvds_set_power(dev, output, true);
-	else
-		psb_intel_lvds_set_power(dev, output, false);
-
-	/* XXX: We never power down the LVDS pairs. */
-}
-
-static void psb_intel_lvds_save(struct drm_connector *connector)
-{
-	return;
-}
-
-static void psb_intel_lvds_restore(struct drm_connector *connector)
-{
-	return;
-}
-
-int psb_intel_lvds_mode_valid(struct drm_connector *connector,
-				 struct drm_display_mode *mode)
-{
-	struct psb_intel_output *psb_intel_output =
-				to_psb_intel_output(connector);
-	struct drm_display_mode *fixed_mode =
-	    psb_intel_output->mode_dev->panel_fixed_mode;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	/* just in case */
-	if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
-		return MODE_NO_DBLESCAN;
-
-	/* just in case */
-	if (mode->flags & DRM_MODE_FLAG_INTERLACE)
-		return MODE_NO_INTERLACE;
-
-	if (fixed_mode) {
-		if (mode->hdisplay > fixed_mode->hdisplay)
-			return MODE_PANEL;
-		if (mode->vdisplay > fixed_mode->vdisplay)
-			return MODE_PANEL;
-	}
-	return MODE_OK;
-}
-
-bool psb_intel_lvds_mode_fixup(struct drm_encoder *encoder,
-				  struct drm_display_mode *mode,
-				  struct drm_display_mode *adjusted_mode)
-{
-	struct psb_intel_mode_device *mode_dev =
-	    enc_to_psb_intel_output(encoder)->mode_dev;
-	struct drm_device *dev = encoder->dev;
-	struct psb_intel_crtc *psb_intel_crtc =
-				to_psb_intel_crtc(encoder->crtc);
-	struct drm_encoder *tmp_encoder;
-	struct drm_display_mode *panel_fixed_mode = mode_dev->panel_fixed_mode;
-	struct psb_intel_output *psb_intel_output = enc_to_psb_intel_output(encoder);
-
-	PSB_DEBUG_ENTRY("type = 0x%x, pipe = %d.\n",psb_intel_output->type, psb_intel_crtc->pipe);
-
-	/* Should never happen!! */
-	if (IS_MID(dev) && !IS_CDV(dev) && psb_intel_crtc->pipe == 1) {
-		DRM_ERROR("Can't support LVDS/MIPI on pipe B on MRST\n");
-		return false;
-	} else if (!IS_MID(dev) && !IS_I965G(dev)
-		   && psb_intel_crtc->pipe == 0) {
-		DRM_ERROR("Can't support LVDS on pipe A\n");
-		return false;
-	}
-	/* Should never happen!! */
-	list_for_each_entry(tmp_encoder, &dev->mode_config.encoder_list,
-			    head) {
-		if (tmp_encoder != encoder
-		    && tmp_encoder->crtc == encoder->crtc) {
-			DRM_ERROR("Can't enable LVDS and another "
-			       "encoder on the same pipe\n");
-			return false;
-		}
-	}
-
-	/*
-	 * If we have timings from the BIOS for the panel, put them in
-	 * to the adjusted mode.  The CRTC will be set up for this mode,
-	 * with the panel scaling set up to source from the H/VDisplay
-	 * of the original mode.
-	 */
-	if (panel_fixed_mode != NULL) {
-		adjusted_mode->hdisplay = panel_fixed_mode->hdisplay;
-		adjusted_mode->hsync_start = panel_fixed_mode->hsync_start;
-		adjusted_mode->hsync_end = panel_fixed_mode->hsync_end;
-		adjusted_mode->htotal = panel_fixed_mode->htotal;
-		adjusted_mode->vdisplay = panel_fixed_mode->vdisplay;
-		adjusted_mode->vsync_start = panel_fixed_mode->vsync_start;
-		adjusted_mode->vsync_end = panel_fixed_mode->vsync_end;
-		adjusted_mode->vtotal = panel_fixed_mode->vtotal;
-		adjusted_mode->clock = panel_fixed_mode->clock;
-		drm_mode_set_crtcinfo(adjusted_mode,
-				      CRTC_INTERLACE_HALVE_V);
-	}
-
-	/*
-	 * XXX: It would be nice to support lower refresh rates on the
-	 * panels to reduce power consumption, and perhaps match the
-	 * user's requested refresh rate.
-	 */
-
-	return true;
-}
-
-static void psb_intel_lvds_prepare(struct drm_encoder *encoder)
-{
-	struct drm_device *dev = encoder->dev;
-	struct psb_intel_output *output = enc_to_psb_intel_output(encoder);
-	struct psb_intel_mode_device *mode_dev = output->mode_dev;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	mode_dev->saveBLC_PWM_CTL = REG_READ(BLC_PWM_CTL);
-	mode_dev->backlight_duty_cycle = psb_intel_lvds_get_backlight(dev);
-
-	psb_intel_lvds_set_power(dev, output, false);
-}
-
-static void psb_intel_lvds_commit(struct drm_encoder *encoder)
-{
-	struct drm_device *dev = encoder->dev;
-	struct psb_intel_output *output = enc_to_psb_intel_output(encoder);
-	struct psb_intel_mode_device *mode_dev = output->mode_dev;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	if (mode_dev->backlight_duty_cycle == 0)
-		mode_dev->backlight_duty_cycle = psb_intel_lvds_get_max_backlight(dev);
-
-	psb_intel_lvds_set_power(dev, output, true);
-}
-
-static void psb_intel_lvds_mode_set(struct drm_encoder *encoder,
-				struct drm_display_mode *mode,
-				struct drm_display_mode *adjusted_mode)
-{
-	struct drm_device *dev = encoder->dev;
-	struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(
-							encoder->crtc);
-	u32 pfit_control;
-
-	/*
-	 * The LVDS pin pair will already have been turned on in the
-	 * psb_intel_crtc_mode_set since it has a large impact on the DPLL
-	 * settings.
-	 */
-
-	/*
-	 * Enable automatic panel scaling so that non-native modes fill the
-	 * screen.  Should be enabled before the pipe is enabled, according to
-	 * register description and PRM.
-	 */
-	if (mode->hdisplay != adjusted_mode->hdisplay ||
-	    mode->vdisplay != adjusted_mode->vdisplay)
-		pfit_control = PFIT_ENABLE;
-	else
-		pfit_control = 0;
-
-	pfit_control |= psb_intel_crtc->pipe << PFIT_PIPE_SHIFT;
-
-	REG_WRITE(PFIT_CONTROL, pfit_control);
-}
-
-/**
- * Detect the LVDS connection.
- *
- * This always returns CONNECTOR_STATUS_CONNECTED.
- * This connector should only have
- * been set up if the LVDS was actually connected anyway.
- */
-static enum drm_connector_status psb_intel_lvds_detect(struct drm_connector *connector, bool force)
-{
-	return connector_status_connected;
-}
-
-/**
- * Return the list of DDC modes if available, or the BIOS fixed mode otherwise.
- */
-static int psb_intel_lvds_get_modes(struct drm_connector *connector)
-{
-	struct drm_device *dev = connector->dev;
-	struct psb_intel_output *psb_intel_output =
-					to_psb_intel_output(connector);
-	struct psb_intel_mode_device *mode_dev =
-					psb_intel_output->mode_dev;
-	int ret = 0;
-
-	ret = psb_intel_ddc_get_modes(psb_intel_output);
-
-	if (ret)
-		return ret;
-
-	/* Didn't get an EDID, so
-	 * Set wide sync ranges so we get all modes
-	 * handed to valid_mode for checking
-	 */
-	connector->display_info.min_vfreq = 0;
-	connector->display_info.max_vfreq = 200;
-	connector->display_info.min_hfreq = 0;
-	connector->display_info.max_hfreq = 200;
-
-	if (mode_dev->panel_fixed_mode != NULL) {
-		struct drm_display_mode *mode =
-		    drm_mode_duplicate(dev, mode_dev->panel_fixed_mode);
-		drm_mode_probed_add(connector, mode);
-		return 1;
-	}
-
-	return 0;
-}
-
-/**
- * psb_intel_lvds_destroy - unregister and free LVDS structures
- * @connector: connector to free
- *
- * Unregister the DDC bus for this connector then free the driver private
- * structure.
- */
-void psb_intel_lvds_destroy(struct drm_connector *connector)
-{
-	struct psb_intel_output *psb_intel_output =
-					to_psb_intel_output(connector);
-
-	if (psb_intel_output->ddc_bus)
-		psb_intel_i2c_destroy(psb_intel_output->ddc_bus);
-	drm_sysfs_connector_remove(connector);
-	drm_connector_cleanup(connector);
-	kfree(connector);
-}
-
-int psb_intel_lvds_set_property(struct drm_connector *connector,
-				       struct drm_property *property,
-				       uint64_t value)
-{
-	struct drm_encoder *pEncoder = connector->encoder;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	if (!strcmp(property->name, "scaling mode") && pEncoder) {
-		struct psb_intel_crtc *pPsbCrtc =
-					to_psb_intel_crtc(pEncoder->crtc);
-		uint64_t curValue;
-
-		PSB_DEBUG_ENTRY("scaling mode \n");
-
-		if (!pPsbCrtc)
-			goto set_prop_error;
-
-		switch (value) {
-		case DRM_MODE_SCALE_FULLSCREEN:
-			break;
-		case DRM_MODE_SCALE_NO_SCALE:
-			break;
-		case DRM_MODE_SCALE_ASPECT:
-			break;
-		default:
-			goto set_prop_error;
-		}
-
-		if (drm_connector_property_get_value(connector,
-						     property,
-						     &curValue))
-			goto set_prop_error;
-
-		if (curValue == value)
-			goto set_prop_done;
-
-		if (drm_connector_property_set_value(connector,
-							property,
-							value))
-			goto set_prop_error;
-
-		if (pPsbCrtc->saved_mode.hdisplay != 0 &&
-		    pPsbCrtc->saved_mode.vdisplay != 0) {
-			if (!drm_crtc_helper_set_mode(pEncoder->crtc,
-						      &pPsbCrtc->saved_mode,
-						      pEncoder->crtc->x,
-						      pEncoder->crtc->y,
-						      pEncoder->crtc->fb))
-				goto set_prop_error;
-		}
-	} 
-
-set_prop_done:
-	return 0;
-set_prop_error:
-	return -1;
-}
-
-static const struct drm_encoder_helper_funcs psb_intel_lvds_helper_funcs = {
-	.dpms = psb_intel_lvds_encoder_dpms,
-	.mode_fixup = psb_intel_lvds_mode_fixup,
-	.prepare = psb_intel_lvds_prepare,
-	.mode_set = psb_intel_lvds_mode_set,
-	.commit = psb_intel_lvds_commit,
-};
-
-static const struct drm_connector_helper_funcs psb_intel_lvds_connector_helper_funcs = {
-	.get_modes = psb_intel_lvds_get_modes,
-	.mode_valid = psb_intel_lvds_mode_valid,
-	.best_encoder = psb_intel_best_encoder,
-};
-
-static const struct drm_connector_funcs psb_intel_lvds_connector_funcs = {
-	.dpms = drm_helper_connector_dpms,
-	.save = psb_intel_lvds_save,
-	.restore = psb_intel_lvds_restore,
-	.detect = psb_intel_lvds_detect,
-	.fill_modes = drm_helper_probe_single_connector_modes,
-	.set_property = psb_intel_lvds_set_property,
-	.destroy = psb_intel_lvds_destroy,
-};
-
-
-static void psb_intel_lvds_enc_destroy(struct drm_encoder *encoder)
-{
-	drm_encoder_cleanup(encoder);
-}
-
-const struct drm_encoder_funcs psb_intel_lvds_enc_funcs = {
-	.destroy = psb_intel_lvds_enc_destroy,
-};
-
-
-
-/**
- * psb_intel_lvds_init - setup LVDS connectors on this device
- * @dev: drm device
- *
- * Create the connector, register the LVDS DDC bus, and try to figure out what
- * modes we can display on the LVDS panel (if present).
- */
-void psb_intel_lvds_init(struct drm_device *dev,
-		     struct psb_intel_mode_device *mode_dev)
-{
-	struct psb_intel_output *psb_intel_output;
-	struct psb_intel_lvds_priv *lvds_priv;
-	struct drm_connector *connector;
-	struct drm_encoder *encoder;
-	struct drm_display_mode *scan;	/* *modes, *bios_mode; */
-	struct drm_crtc *crtc;
-	struct drm_psb_private *dev_priv = (struct drm_psb_private *)dev->dev_private;
-	u32 lvds;
-	int pipe;
-
-	psb_intel_output = kzalloc(sizeof(struct psb_intel_output) +
-				   sizeof(struct psb_intel_lvds_priv), GFP_KERNEL);
-	if (!psb_intel_output)
-		return;
-
-	lvds_priv = (struct psb_intel_lvds_priv *)(psb_intel_output + 1);
-
-	psb_intel_output->dev_priv = lvds_priv;
-
-	psb_intel_output->mode_dev = mode_dev;
-	connector = &psb_intel_output->base;
-	encoder = &psb_intel_output->enc;
-	drm_connector_init(dev, &psb_intel_output->base,
-			   &psb_intel_lvds_connector_funcs,
-			   DRM_MODE_CONNECTOR_LVDS);
-
-	drm_encoder_init(dev, &psb_intel_output->enc,
-			 &psb_intel_lvds_enc_funcs,
-			 DRM_MODE_ENCODER_LVDS);
-
-	drm_mode_connector_attach_encoder(&psb_intel_output->base,
-					  &psb_intel_output->enc);
-	psb_intel_output->type = INTEL_OUTPUT_LVDS;
-
-	drm_encoder_helper_add(encoder, &psb_intel_lvds_helper_funcs);
-	drm_connector_helper_add(connector,
-				 &psb_intel_lvds_connector_helper_funcs);
-	connector->display_info.subpixel_order = SubPixelHorizontalRGB;
-	connector->interlace_allowed = false;
-	connector->doublescan_allowed = false;
-
-	/*Attach connector properties*/
-	drm_connector_attach_property(connector,
-				      dev->mode_config.scaling_mode_property,
-				      DRM_MODE_SCALE_FULLSCREEN);
-
-	/**
-	 * Set up I2C bus
-	 * FIXME: distroy i2c_bus when exit
-	 */
-	psb_intel_output->i2c_bus = psb_intel_i2c_create(dev,
-							 GPIOB,
-							 "LVDSBLC_B");
-	if (!psb_intel_output->i2c_bus) {
-		DRM_ERROR("I2C bus registration failed.\n");
-		goto failed_blc_i2c;
-	}
-	psb_intel_output->i2c_bus->slave_addr = 0x2C;
-	dev_priv->lvds_i2c_bus =  psb_intel_output->i2c_bus;
-
-	/*
-	 * LVDS discovery:
-	 * 1) check for EDID on DDC
-	 * 2) check for VBT data
-	 * 3) check to see if LVDS is already on
-	 *    if none of the above, no panel
-	 * 4) make sure lid is open
-	 *    if closed, act like it's not there for now
-	 */
-
-	/* Set up the DDC bus. */
-	psb_intel_output->ddc_bus = psb_intel_i2c_create(dev,
-							 GPIOC,
-							 "LVDSDDC_C");
-	if (!psb_intel_output->ddc_bus) {
-		DRM_ERROR("DDC bus registration failed.\n");
-		goto failed_ddc;
-	}
-
-	/*
-	 * Attempt to get the fixed panel mode from DDC.  Assume that the
-	 * preferred mode is the right one.
-	 */
-	psb_intel_ddc_get_modes(psb_intel_output);
-	list_for_each_entry(scan, &connector->probed_modes, head) {
-		DRM_DEBUG("scan type: %d hdisplay: %d vdisplay %d", scan->type, scan->hdisplay, scan->vdisplay);
-		if (scan->type & DRM_MODE_TYPE_PREFERRED) {
-			mode_dev->panel_fixed_mode = drm_mode_duplicate(dev, scan);
-			goto out;	/* FIXME: check for quirks */
-		}
-	}
-
-	/* Failed to get EDID, what about VBT? do we need this?*/
-
-	if (dev_priv->lfp_lvds_vbt_mode) {
-		mode_dev->panel_fixed_mode = drm_mode_duplicate(dev, dev_priv->lfp_lvds_vbt_mode);
-		if (mode_dev->panel_fixed_mode) {
-			mode_dev->panel_fixed_mode->type |= DRM_MODE_TYPE_PREFERRED;
-			goto out;	/* FIXME: check for quirks */
-		}
-	}
-
-	/*
-	 * If we didn't get EDID, try checking if the panel is already turned
-	 * on.	If so, assume that whatever is currently programmed is the
-	 * correct mode.
-	 */
-	lvds = REG_READ(LVDS);
-	pipe = (lvds & LVDS_PIPEB_SELECT) ? 1 : 0;
-	crtc = psb_intel_get_crtc_from_pipe(dev, pipe);
-
-	if (crtc && (lvds & LVDS_PORT_EN)) {
-		mode_dev->panel_fixed_mode = psb_intel_crtc_mode_get(dev, crtc);
-		if (mode_dev->panel_fixed_mode) {
-			mode_dev->panel_fixed_mode->type |= DRM_MODE_TYPE_PREFERRED;
-			goto out;	/* FIXME: check for quirks */
-		}
-	}
-
-	/* If we still don't have a mode after all that, give up. */
-	if (!mode_dev->panel_fixed_mode) {
-		DRM_DEBUG("Found no modes on the lvds, ignoring the LVDS\n");
-		goto failed_find;
-	}
-
-	/* setup PWM */
-	{
-		u32 pwm;
-
-		pwm = REG_READ(BLC_PWM_CTL2);
-		if (pipe == 1)
-			pwm |= PWM_PIPE_B;
-		else
-			pwm &= ~PWM_PIPE_B;
-		pwm |= PWM_ENABLE;
-		REG_WRITE(BLC_PWM_CTL2, pwm);
-	}
-
-out:
-	drm_sysfs_connector_add(connector);
-
-	PSB_DEBUG_ENTRY("hdisplay = %d\n",
-		 mode_dev->panel_fixed_mode->hdisplay);
-	PSB_DEBUG_ENTRY(" vdisplay = %d\n",
-		 mode_dev->panel_fixed_mode->vdisplay);
-	PSB_DEBUG_ENTRY(" hsync_start = %d\n",
-		 mode_dev->panel_fixed_mode->hsync_start);
-	PSB_DEBUG_ENTRY(" hsync_end = %d\n",
-		 mode_dev->panel_fixed_mode->hsync_end);
-	PSB_DEBUG_ENTRY(" htotal = %d\n",
-		 mode_dev->panel_fixed_mode->htotal);
-	PSB_DEBUG_ENTRY(" vsync_start = %d\n",
-		 mode_dev->panel_fixed_mode->vsync_start);
-	PSB_DEBUG_ENTRY(" vsync_end = %d\n",
-		 mode_dev->panel_fixed_mode->vsync_end);
-	PSB_DEBUG_ENTRY(" vtotal = %d\n",
-		 mode_dev->panel_fixed_mode->vtotal);
-	PSB_DEBUG_ENTRY(" clock = %d\n",
-		 mode_dev->panel_fixed_mode->clock);
-
-	return;
-
-failed_find:
-	if (psb_intel_output->ddc_bus)
-		psb_intel_i2c_destroy(psb_intel_output->ddc_bus);
-failed_ddc:
-	if (psb_intel_output->i2c_bus)
-		psb_intel_i2c_destroy(psb_intel_output->i2c_bus);
-failed_blc_i2c:
-	drm_encoder_cleanup(encoder);
-	drm_connector_cleanup(connector);
-	kfree(connector);
-}
diff --git a/drivers/staging/cdv/drv/psb_intel_modes.c b/drivers/staging/cdv/drv/psb_intel_modes.c
deleted file mode 100644
index 00125cd..0000000
--- a/drivers/staging/cdv/drv/psb_intel_modes.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2011 Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authers: Jesse Barnes <jesse.barnes@intel.com>
- */
-
-#include <linux/i2c.h>
-#include <linux/fb.h>
-#include <drm/drmP.h>
-#include "psb_intel_drv.h"
-
-/**
- * psb_intel_ddc_probe
- *
- */
-bool psb_intel_ddc_probe(struct psb_intel_output *psb_intel_output)
-{
-	u8 out_buf[] = { 0x0, 0x0 };
-	u8 buf[2];
-	int ret;
-	struct i2c_msg msgs[] = {
-		{
-		 .addr = 0x50,
-		 .flags = 0,
-		 .len = 1,
-		 .buf = out_buf,
-		 },
-		{
-		 .addr = 0x50,
-		 .flags = I2C_M_RD,
-		 .len = 1,
-		 .buf = buf,
-		 }
-	};
-
-	ret = i2c_transfer(&psb_intel_output->ddc_bus->adapter, msgs, 2);
-	if (ret == 2)
-		return true;
-
-	return false;
-}
-
-/**
- * psb_intel_ddc_get_modes - get modelist from monitor
- * @connector: DRM connector device to use
- *
- * Fetch the EDID information from @connector using the DDC bus.
- */
-int psb_intel_ddc_get_modes(struct psb_intel_output *psb_intel_output)
-{
-	struct edid *edid;
-	int ret = 0;
-
-	edid =
-	    drm_get_edid(&psb_intel_output->base,
-			 &psb_intel_output->ddc_bus->adapter);
-	if (edid) {
-		drm_mode_connector_update_edid_property(&psb_intel_output->
-							base, edid);
-		ret = drm_add_edid_modes(&psb_intel_output->base, edid);
-		kfree(edid);
-	}
-	return ret;
-}
diff --git a/drivers/staging/cdv/drv/psb_intel_opregion.c b/drivers/staging/cdv/drv/psb_intel_opregion.c
deleted file mode 100644
index 16dbf00..0000000
--- a/drivers/staging/cdv/drv/psb_intel_opregion.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
- * Copyright 2011 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- */
-#ifdef CONFIG_ACPI
-#include <linux/acpi.h>
-#include <linux/acpi_io.h>
-#endif
-#include "psb_drv.h"
-
-#define PCI_ASLE 0xe4
-#define PCI_ASLS 0xfc
-
-#define OPREGION_HEADER_OFFSET 0
-#define OPREGION_ACPI_OFFSET   0x100
-#define   ACPI_CLID 0x01ac /* current lid state indicator */
-#define   ACPI_CDCK 0x01b0 /* current docking state indicator */
-#define OPREGION_SWSCI_OFFSET  0x200
-#define OPREGION_ASLE_OFFSET   0x300
-#define OPREGION_VBT_OFFSET    0x400
-
-#define OPREGION_SIGNATURE "IntelGraphicsMem"
-#define MBOX_ACPI      (1<<0)
-#define MBOX_SWSCI     (1<<1)
-#define MBOX_ASLE      (1<<2)
-
-struct opregion_header {
-	u8 signature[16];
-	u32 size;
-	u32 opregion_ver;
-	u8 bios_ver[32];
-	u8 vbios_ver[16];
-	u8 driver_ver[16];
-	u32 mboxes;
-	u8 reserved[164];
-} __attribute__((packed));
-
-/* OpRegion mailbox #1: public ACPI methods */
-struct opregion_acpi {
-       u32 drdy;       /* driver readiness */
-       u32 csts;       /* notification status */
-       u32 cevt;       /* current event */
-       u8 rsvd1[20];
-       u32 didl[8];    /* supported display devices ID list */
-       u32 cpdl[8];    /* currently presented display list */
-       u32 cadl[8];    /* currently active display list */
-       u32 nadl[8];    /* next active devices list */
-       u32 aslp;       /* ASL sleep time-out */
-       u32 tidx;       /* toggle table index */
-       u32 chpd;       /* current hotplug enable indicator */
-       u32 clid;       /* current lid state*/
-       u32 cdck;       /* current docking state */
-       u32 sxsw;       /* Sx state resume */
-       u32 evts;       /* ASL supported events */
-       u32 cnot;       /* current OS notification */
-       u32 nrdy;       /* driver status */
-       u8 rsvd2[60];
-} __attribute__((packed));
-
-/* OpRegion mailbox #2: SWSCI */
-struct opregion_swsci {
-	/*FIXME: add it later*/
-} __attribute__((packed));
-
-/* OpRegion mailbox #3: ASLE */
-struct opregion_asle {
-	u32 ardy;	/* driver readiness */
-	u32 aslc;	/* ASLE interrupt command */
-	u32 tche;	/* technology enabled indicator */
-	u32 alsi;	/* current ALS illuminance reading */
-	u32 bclp;	/* backlight brightness to set */
-	u32 pfit;	/* panel fitting state */
-	u32 cblv;	/* current brightness level */
-	u16 bclm[20];	/* backlight level duty cycle mapping table */
-	u32 cpfm;	/* current panel fitting mode */
-	u32 epfm;	/* enabled panel fitting modes */
-	u8 plut[74];	/* panel LUT and identifier */
-	u32 pfmb;	/* PWM freq and min brightness */
-	u8 rsvd[102];
-} __attribute__((packed));
-
-/* ASLE irq request bits */
-#define ASLE_SET_ALS_ILLUM     (1 << 0)
-#define ASLE_SET_BACKLIGHT     (1 << 1)
-#define ASLE_SET_PFIT          (1 << 2)
-#define ASLE_SET_PWM_FREQ      (1 << 3)
-#define ASLE_REQ_MSK           0xf
-
-/* response bits of ASLE irq request */
-#define ASLE_ALS_ILLUM_FAILED   (1<<10)
-#define ASLE_BACKLIGHT_FAILED   (1<<12)
-#define ASLE_PFIT_FAILED        (1<<14)
-#define ASLE_PWM_FREQ_FAILED    (1<<16)
-
-/* ASLE backlight brightness to set */
-#define ASLE_BCLP_VALID                (1<<31)
-#define ASLE_BCLP_MSK          (~(1<<31))
-
-/* ASLE panel fitting request */
-#define ASLE_PFIT_VALID         (1<<31)
-#define ASLE_PFIT_CENTER (1<<0)
-#define ASLE_PFIT_STRETCH_TEXT (1<<1)
-#define ASLE_PFIT_STRETCH_GFX (1<<2)
-
-/* response bits of ASLE irq request */
-#define ASLE_ALS_ILLUM_FAILED	(1<<10)
-#define ASLE_BACKLIGHT_FAILED	(1<<12)
-#define ASLE_PFIT_FAILED	(1<<14)
-#define ASLE_PWM_FREQ_FAILED	(1<<16)
-
-/* ASLE backlight brightness to set */
-#define ASLE_BCLP_VALID                (1<<31)
-#define ASLE_BCLP_MSK          (~(1<<31))
-
-/* ASLE panel fitting request */
-#define ASLE_PFIT_VALID         (1<<31)
-#define ASLE_PFIT_CENTER (1<<0)
-#define ASLE_PFIT_STRETCH_TEXT (1<<1)
-#define ASLE_PFIT_STRETCH_GFX (1<<2)
-
-/* PWM frequency and minimum brightness */
-#define ASLE_PFMB_BRIGHTNESS_MASK (0xff)
-#define ASLE_PFMB_BRIGHTNESS_VALID (1<<8)
-#define ASLE_PFMB_PWM_MASK (0x7ffffe00)
-#define ASLE_PFMB_PWM_VALID (1<<31)
-
-#define ASLE_CBLV_VALID         (1<<31)
-
-static u32 asle_set_backlight(struct drm_device *dev, u32 bclp)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct opregion_asle *asle = dev_priv->opregion.asle;
-	u32 max;
-
-	DRM_DEBUG_DRIVER("asle set backlight %x\n", bclp);
-
-	if (!(bclp & ASLE_BCLP_VALID))
-		return ASLE_BACKLIGHT_FAILED;
-
-	bclp &= ASLE_BCLP_MSK;
-	if (bclp > 255)
-		return ASLE_BACKLIGHT_FAILED;
-
-	max = psb_intel_lvds_get_max_backlight(dev);
-	psb_intel_lvds_set_backlight(dev, bclp * max / 255);
-	asle->cblv = (bclp*0x64)/0xff | ASLE_CBLV_VALID;
-
-	return 0;
-}
-
-void psb_intel_opregion_asle_intr(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct opregion_asle *asle = dev_priv->opregion.asle;
-	u32 asle_stat = 0;
-	u32 asle_req;
-
-	if (!asle)
-		return;
-
-	asle_req = asle->aslc & ASLE_REQ_MSK;
-	if (!asle_req) {
-		DRM_DEBUG_DRIVER("non asle set request??\n");
-		return;
-	}
-
-	if (asle_req & ASLE_SET_BACKLIGHT)
-		asle_stat |= asle_set_backlight(dev, asle->bclp);
-
-	asle->aslc = asle_stat;
-}
-
-#define ASLE_ALS_EN    (1<<0)
-#define ASLE_BLC_EN    (1<<1)
-#define ASLE_PFIT_EN   (1<<2)
-#define ASLE_PFMB_EN   (1<<3)
-
-void psb_intel_opregion_enable_asle(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct opregion_asle *asle = dev_priv->opregion.asle;
-
-	if (asle) {
-		/* XXX enable asle interrupt
-		 * should only for cdv mobile device
-		 */
-		psb_intel_enable_asle(dev);
-
-		asle->tche = ASLE_ALS_EN | ASLE_BLC_EN | ASLE_PFIT_EN | ASLE_PFMB_EN;
-		asle->ardy = 1;
-	}
-}
-
-#define ACPI_EV_DISPLAY_SWITCH (1<<0)
-#define ACPI_EV_LID            (1<<1)
-#define ACPI_EV_DOCK           (1<<2)
-
-static struct psb_intel_opregion *system_opregion;
-
-static int psb_intel_opregion_video_event(struct notifier_block *nb,
-					  unsigned long val, void *data)
-{
-	/* The only video events relevant to opregion are 0x80. These indicate
-	   either a docking event, lid switch or display switch request. In
-	   Linux, these are handled by the dock, button and video drivers.
-	   We might want to fix the video driver to be opregion-aware in
-	   future, but right now we just indicate to the firmware that the
-	   request has been handled */
-
-	struct opregion_acpi *acpi;
-
-	if (!system_opregion)
-		return NOTIFY_DONE;
-
-	acpi = system_opregion->acpi;
-	acpi->csts = 0;
-
-	return NOTIFY_OK;
-}
-
-static struct notifier_block psb_intel_opregion_notifier = {
-	.notifier_call = psb_intel_opregion_video_event,
-};
-
-void psb_intel_opregion_init(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct psb_intel_opregion *opregion = &dev_priv->opregion;
-
-	if (!opregion->header)
-		return;
-
-	if (opregion->acpi) {
-		/* Notify BIOS we are ready to handle ACPI video ext notifs.
-		 * Right now, all the events are handled by the ACPI video module.
-		 * We don't actually need to do anything with them. */
-		opregion->acpi->csts = 0;
-		opregion->acpi->drdy = 1;
-
-		system_opregion = opregion;
-		register_acpi_notifier(&psb_intel_opregion_notifier);
-	}
-
-	if (opregion->asle)
-		psb_intel_opregion_enable_asle(dev);
-}
-
-void psb_intel_opregion_fini(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct psb_intel_opregion *opregion = &dev_priv->opregion;
-
-	if (!opregion->header)
-		return;
-
-	if (opregion->acpi) {
-		opregion->acpi->drdy = 0;
-
-		system_opregion = NULL;
-		unregister_acpi_notifier(&psb_intel_opregion_notifier);
-	}
-
-	/* just clear all opregion memory pointers now */
-	iounmap(opregion->header);
-	opregion->header = NULL;
-	opregion->acpi = NULL;
-	opregion->swsci = NULL;
-	opregion->asle = NULL;
-	opregion->vbt = NULL;
-}
-
-int psb_intel_opregion_setup(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct psb_intel_opregion *opregion = &dev_priv->opregion;
-	u32 opregion_phy, mboxes;
-	void *base;
-	int err = 0;
-
-	pci_read_config_dword(dev->pdev, PCI_ASLS, &opregion_phy);
-	if (opregion_phy == 0) {
-		DRM_DEBUG_DRIVER("ACPI Opregion not supported\n");
-		return -ENOTSUPP;
-	}
-	DRM_DEBUG("OpRegion detected at 0x%8x\n", opregion_phy);
-#ifdef CONFIG_ACPI
-	base = acpi_os_ioremap(opregion_phy, 8*1024);
-#else
-	base = ioremap(opregion_phy, 8*1024);
-#endif
-	if (!base)
-		return -ENOMEM;
-
-	if (memcmp(base, OPREGION_SIGNATURE, 16)) {
-		DRM_DEBUG_DRIVER("opregion signature mismatch\n");
-		err = -EINVAL;
-		goto err_out;
-	}
-
-	opregion->header = base;
-	opregion->vbt = base + OPREGION_VBT_OFFSET;
-
-	opregion->lid_state = base + ACPI_CLID;
-
-	mboxes = opregion->header->mboxes;
-	if (mboxes & MBOX_ACPI) {
-		DRM_DEBUG_DRIVER("Public ACPI methods supported\n");
-		opregion->acpi = base + OPREGION_ACPI_OFFSET;
-	}
-
-	if (mboxes & MBOX_ASLE) {
-		DRM_DEBUG_DRIVER("ASLE supported\n");
-		opregion->asle = base + OPREGION_ASLE_OFFSET;
-	}
-
-	return 0;
-
-err_out:
-	iounmap(base);
-	return err;
-}
diff --git a/drivers/staging/cdv/drv/psb_intel_reg.h b/drivers/staging/cdv/drv/psb_intel_reg.h
deleted file mode 100644
index f07c5dc..0000000
--- a/drivers/staging/cdv/drv/psb_intel_reg.h
+++ /dev/null
@@ -1,1461 +0,0 @@
-/*
- * Copyright (c) 2011, Intel Corporation.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- */
-#ifndef __PSB_INTEL_REG_H__
-#define __PSB_INTEL_REG_H__
-
-#define BLC_PWM_CTL		0x61254
-#define BLC_PWM_CTL2		0x61250
-#define  PWM_ENABLE		(1 << 31)
-#define  PWM_LEGACY_MODE	(1 << 30)
-#define  PWM_PIPE_B		(1 << 29)
-#define BLC_PWM_CTL_C		0x62254
-#define BLC_PWM_CTL2_C		0x62250
-#define BACKLIGHT_MODULATION_FREQ_SHIFT		(17)
-/**
- * This is the most significant 15 bits of the number of backlight cycles in a
- * complete cycle of the modulated backlight control.
- *
- * The actual value is this field multiplied by two.
- */
-#define BACKLIGHT_MODULATION_FREQ_MASK		(0x7fff << 17)
-#define BLM_LEGACY_MODE				(1 << 16)
-/**
- * This is the number of cycles out of the backlight modulation cycle for which
- * the backlight is on.
- *
- * This field must be no greater than the number of cycles in the complete
- * backlight modulation cycle.
- */
-#define BACKLIGHT_DUTY_CYCLE_SHIFT		(0)
-#define BACKLIGHT_DUTY_CYCLE_MASK		(0xffff)
-
-#define I915_GCFGC			0xf0
-#define I915_LOW_FREQUENCY_ENABLE		(1 << 7)
-#define I915_DISPLAY_CLOCK_190_200_MHZ		(0 << 4)
-#define I915_DISPLAY_CLOCK_333_MHZ		(4 << 4)
-#define I915_DISPLAY_CLOCK_MASK			(7 << 4)
-
-#define I855_HPLLCC			0xc0
-#define I855_CLOCK_CONTROL_MASK			(3 << 0)
-#define I855_CLOCK_133_200			(0 << 0)
-#define I855_CLOCK_100_200			(1 << 0)
-#define I855_CLOCK_100_133			(2 << 0)
-#define I855_CLOCK_166_250			(3 << 0)
-
-/* I830 CRTC registers */
-#define HTOTAL_A	0x60000
-#define HBLANK_A	0x60004
-#define HSYNC_A 	0x60008
-#define VTOTAL_A	0x6000c
-#define VBLANK_A	0x60010
-#define VSYNC_A 	0x60014
-#define PIPEASRC	0x6001c
-#define BCLRPAT_A	0x60020
-#define VSYNCSHIFT_A	0x60028
-
-#define HTOTAL_B	0x61000
-#define HBLANK_B	0x61004
-#define HSYNC_B 	0x61008
-#define VTOTAL_B	0x6100c
-#define VBLANK_B	0x61010
-#define VSYNC_B 	0x61014
-#define PIPEBSRC	0x6101c
-#define BCLRPAT_B	0x61020
-#define VSYNCSHIFT_B	0x61028
-
-#define HTOTAL_C	0x62000
-#define HBLANK_C	0x62004
-#define HSYNC_C 	0x62008
-#define VTOTAL_C	0x6200c
-#define VBLANK_C	0x62010
-#define VSYNC_C 	0x62014
-#define PIPECSRC	0x6201c
-#define BCLRPAT_C	0x62020
-#define VSYNCSHIFT_C	0x62028
-
-#define PP_STATUS	0x61200
-# define PP_ON					(1 << 31)
-/**
- * Indicates that all dependencies of the panel are on:
- *
- * - PLL enabled
- * - pipe enabled
- * - LVDS/DVOB/DVOC on
- */
-# define PP_READY				(1 << 30)
-# define PP_SEQUENCE_NONE			(0 << 28)
-# define PP_SEQUENCE_ON				(1 << 28)
-# define PP_SEQUENCE_OFF			(2 << 28)
-# define PP_SEQUENCE_MASK			0x30000000
-#define PP_CONTROL	0x61204
-# define POWER_TARGET_ON			(1 << 0)
-
-#define PP_ON_DELAYS    0x61208
-#define PP_OFF_DELAYS   0x6120c
-#define PP_DIVISOR      0x61210
-
-#define PFIT_CONTROL	0x61230
-# define PFIT_ENABLE				(1 << 31)
-# define PFIT_PIPE_MASK				(3 << 29)
-# define PFIT_PIPE_SHIFT			29
-# define PFIT_PIPE_SELECT_A			(0 << PFIT_PIPE_SHIFT)
-# define PFIT_PIPE_SELECT_B			(1 << PFIT_PIPE_SHIFT)
-# define PFIT_PIPE_SELECT_C			(2 << PFIT_PIPE_SHIFT)
-# define PFIT_PIPE_SELECT_D			(3 << PFIT_PIPE_SHIFT)
-# define PFIT_SCALING_MODE_PILLARBOX            (1 << 27)
-# define PFIT_SCALING_MODE_LETTERBOX            (3 << 26)
-# define VERT_INTERP_DISABLE			(0 << 10)
-# define VERT_INTERP_BILINEAR			(1 << 10)
-# define VERT_INTERP_MASK			(3 << 10)
-# define VERT_AUTO_SCALE			(1 << 9)
-# define HORIZ_INTERP_DISABLE			(0 << 6)
-# define HORIZ_INTERP_BILINEAR			(1 << 6)
-# define HORIZ_INTERP_MASK			(3 << 6)
-# define HORIZ_AUTO_SCALE			(1 << 5)
-# define PANEL_8TO6_DITHER_ENABLE		(1 << 3)
-
-#define PFIT_PGM_RATIOS	0x61234
-# define PFIT_VERT_SCALE_MASK			0xfff00000
-# define PFIT_HORIZ_SCALE_MASK			0x0000fff0
-
-#define PFIT_AUTO_RATIOS	0x61238
-
-
-#define DPLL_A		0x06014
-#define DPLL_B		0x06018
-# define DPLL_VCO_ENABLE			(1 << 31)
-# define DPLL_DVO_HIGH_SPEED			(1 << 30)
-# define DPLL_SYNCLOCK_ENABLE			(1 << 29)
-# define DPLL_VGA_MODE_DIS			(1 << 28)
-# define DPLLB_MODE_DAC_SERIAL			(1 << 26)	/* i915 */
-# define DPLLB_MODE_LVDS			(2 << 26)	/* i915 */
-# define DPLL_MODE_MASK				(3 << 26)
-# define DPLL_DAC_SERIAL_P2_CLOCK_DIV_10	(0 << 24)	/* i915 */
-# define DPLL_DAC_SERIAL_P2_CLOCK_DIV_5		(1 << 24)	/* i915 */
-# define DPLLB_LVDS_P2_CLOCK_DIV_14		(0 << 24)	/* i915 */
-# define DPLLB_LVDS_P2_CLOCK_DIV_7		(1 << 24)	/* i915 */
-# define DPLL_P2_CLOCK_DIV_MASK			0x03000000	/* i915 */
-# define DPLL_FPA01_P1_POST_DIV_MASK		0x00ff0000	/* i915 */
-# define DPLL_LOCK				(1 << 15)	/* CDV */
-/**
- *  The i830 generation, in DAC/serial mode, defines p1 as two plus this
- * bitfield, or just 2 if PLL_P1_DIVIDE_BY_TWO is set.
- */
-# define DPLL_FPA01_P1_POST_DIV_MASK_I830	0x001f0000
-/**
- * The i830 generation, in LVDS mode, defines P1 as the bit number set within
- * this field (only one bit may be set).
- */
-# define DPLL_FPA01_P1_POST_DIV_MASK_I830_LVDS	0x003f0000
-# define DPLL_FPA01_P1_POST_DIV_SHIFT		16
-# define PLL_P2_DIVIDE_BY_4		(1 << 23)	/* i830, required
-							 * in DVO non-gang */
-# define PLL_P1_DIVIDE_BY_TWO			(1 << 21)	/* i830 */
-# define PLL_REF_INPUT_DREFCLK			(0 << 13)
-# define PLL_REF_INPUT_TVCLKINA			(1 << 13)	/* i830 */
-# define PLL_REF_INPUT_TVCLKINBC		(2 << 13)	/* SDVO
-								 * TVCLKIN */
-# define PLLB_REF_INPUT_SPREADSPECTRUMIN	(3 << 13)
-# define PLL_REF_INPUT_MASK			(3 << 13)
-# define PLL_LOAD_PULSE_PHASE_SHIFT		9
-/*
- * Parallel to Serial Load Pulse phase selection.
- * Selects the phase for the 10X DPLL clock for the PCIe
- * digital display port. The range is 4 to 13; 10 or more
- * is just a flip delay. The default is 6
- */
-# define PLL_LOAD_PULSE_PHASE_MASK	(0xf << PLL_LOAD_PULSE_PHASE_SHIFT)
-# define DISPLAY_RATE_SELECT_FPA1	(1 << 8)
-
-/**
- * SDVO multiplier for 945G/GM. Not used on 965.
- *
- * \sa DPLL_MD_UDI_MULTIPLIER_MASK
- */
-# define SDVO_MULTIPLIER_MASK			0x000000ff
-# define SDVO_MULTIPLIER_SHIFT_HIRES		4
-# define SDVO_MULTIPLIER_SHIFT_VGA		0
-
-/** @defgroup DPLL_MD
- * @{
- */
-/** Pipe A SDVO/UDI clock multiplier/divider register for G965. */
-#define DPLL_A_MD		0x0601c
-/** Pipe B SDVO/UDI clock multiplier/divider register for G965. */
-#define DPLL_B_MD		0x06020
-/**
- * UDI pixel divider, controlling how many pixels are stuffed into a packet.
- *
- * Value is pixels minus 1.  Must be set to 1 pixel for SDVO.
- */
-# define DPLL_MD_UDI_DIVIDER_MASK		0x3f000000
-# define DPLL_MD_UDI_DIVIDER_SHIFT		24
-/** UDI pixel divider for VGA, same as DPLL_MD_UDI_DIVIDER_MASK. */
-# define DPLL_MD_VGA_UDI_DIVIDER_MASK		0x003f0000
-# define DPLL_MD_VGA_UDI_DIVIDER_SHIFT		16
-/**
- * SDVO/UDI pixel multiplier.
- *
- * SDVO requires that the bus clock rate be between 1 and 2 Ghz, and the bus
- * clock rate is 10 times the DPLL clock.  At low resolution/refresh rate
- * modes, the bus rate would be below the limits, so SDVO allows for stuffing
- * dummy bytes in the datastream at an increased clock rate, with both sides of
- * the link knowing how many bytes are fill.
- *
- * So, for a mode with a dotclock of 65Mhz, we would want to double the clock
- * rate to 130Mhz to get a bus rate of 1.30Ghz.  The DPLL clock rate would be
- * set to 130Mhz, and the SDVO multiplier set to 2x in this register and
- * through an SDVO command.
- *
- * This register field has values of multiplication factor minus 1, with
- * a maximum multiplier of 5 for SDVO.
- */
-# define DPLL_MD_UDI_MULTIPLIER_MASK		0x00003f00
-# define DPLL_MD_UDI_MULTIPLIER_SHIFT		8
-/** SDVO/UDI pixel multiplier for VGA, same as DPLL_MD_UDI_MULTIPLIER_MASK.
- * This best be set to the default value (3) or the CRT won't work. No,
- * I don't entirely understand what this does...
- */
-# define DPLL_MD_VGA_UDI_MULTIPLIER_MASK	0x0000003f
-# define DPLL_MD_VGA_UDI_MULTIPLIER_SHIFT	0
-/** @} */
-
-#define DPLL_TEST		0x606c
-# define DPLLB_TEST_SDVO_DIV_1			(0 << 22)
-# define DPLLB_TEST_SDVO_DIV_2			(1 << 22)
-# define DPLLB_TEST_SDVO_DIV_4			(2 << 22)
-# define DPLLB_TEST_SDVO_DIV_MASK		(3 << 22)
-# define DPLLB_TEST_N_BYPASS			(1 << 19)
-# define DPLLB_TEST_M_BYPASS			(1 << 18)
-# define DPLLB_INPUT_BUFFER_ENABLE		(1 << 16)
-# define DPLLA_TEST_N_BYPASS			(1 << 3)
-# define DPLLA_TEST_M_BYPASS			(1 << 2)
-# define DPLLA_INPUT_BUFFER_ENABLE		(1 << 0)
-
-#define ADPA			0x61100
-#define ADPA_DAC_ENABLE 	(1<<31)
-#define ADPA_DAC_DISABLE	0
-#define ADPA_PIPE_SELECT_MASK	(1<<30)
-#define ADPA_PIPE_A_SELECT	0
-#define ADPA_PIPE_B_SELECT	(1<<30)
-#define ADPA_USE_VGA_HVPOLARITY (1<<15)
-#define ADPA_SETS_HVPOLARITY	0
-#define ADPA_VSYNC_CNTL_DISABLE (1<<11)
-#define ADPA_VSYNC_CNTL_ENABLE	0
-#define ADPA_HSYNC_CNTL_DISABLE (1<<10)
-#define ADPA_HSYNC_CNTL_ENABLE	0
-#define ADPA_VSYNC_ACTIVE_HIGH	(1<<4)
-#define ADPA_VSYNC_ACTIVE_LOW	0
-#define ADPA_HSYNC_ACTIVE_HIGH	(1<<3)
-#define ADPA_HSYNC_ACTIVE_LOW	0
-
-#define FPA0		0x06040
-#define FPA1		0x06044
-#define FPB0		0x06048
-#define FPB1		0x0604c
-# define FP_N_DIV_MASK				0x003f0000
-# define FP_N_DIV_SHIFT				16
-# define FP_M1_DIV_MASK				0x00003f00
-# define FP_M1_DIV_SHIFT			8
-# define FP_M2_DIV_MASK				0x0000003f
-# define FP_M2_DIV_SHIFT			0
-
-
-#define PORT_HOTPLUG_EN		0x61110
-# define HDMIB_HOTPLUG_INT_EN			(1 << 29)
-# define HDMIC_HOTPLUG_INT_EN			(1 << 28)
-# define HDMID_HOTPLUG_INT_EN			(1 << 27)
-# define SDVOB_HOTPLUG_INT_EN			(1 << 26)
-# define SDVOC_HOTPLUG_INT_EN			(1 << 25)
-# define TV_HOTPLUG_INT_EN			(1 << 18)
-# define CRT_HOTPLUG_INT_EN			(1 << 9)
-# define CRT_HOTPLUG_FORCE_DETECT		(1 << 3)
-
-#define CRT_HOTPLUG_ACTIVATION_PERIOD_64	(1 << 8)
-#define CRT_HOTPLUG_DAC_ON_TIME_2M		(0 << 7)
-#define CRT_HOTPLUG_DAC_ON_TIME_4M		(1 << 7)
-#define CRT_HOTPLUG_VOLTAGE_COMPARE_40		(0 << 5)
-#define CRT_HOTPLUG_VOLTAGE_COMPARE_50		(1 << 5)
-#define CRT_HOTPLUG_VOLTAGE_COMPARE_60		(2 << 5)
-#define CRT_HOTPLUG_VOLTAGE_COMPARE_70		(3 << 5)
-#define CRT_HOTPLUG_VOLTAGE_COMPARE_MASK	(3 << 5)
-#define CRT_HOTPLUG_DETECT_DELAY_1G		(0 << 4)
-#define CRT_HOTPLUG_DETECT_DELAY_2G		(1 << 4)
-#define CRT_HOTPLUG_DETECT_VOLTAGE_325MV	(0 << 2)
-#define CRT_HOTPLUG_DETECT_VOLTAGE_475MV	(1 << 2)
-#define CRT_HOTPLUG_DETECT_MASK			0x000000F8
-
-#define PORT_HOTPLUG_STAT	0x61114
-# define HDMIB_HOTPLUG_INT_STATUS		(1 << 29)
-# define DPB_HOTPLUG_INT_STATUS			(1 << 29)
-# define HDMIC_HOTPLUG_INT_STATUS		(1 << 28)
-# define DPC_HOTPLUG_INT_STATUS			(1 << 28)
-# define HDMID_HOTPLUG_INT_STATUS		(1 << 27)
-# define DPD_HOTPLUG_INT_STATUS			(1 << 27)
-# define CRT_HOTPLUG_INT_STATUS			(1 << 11)
-# define TV_HOTPLUG_INT_STATUS			(1 << 10)
-# define CRT_HOTPLUG_MONITOR_MASK		(3 << 8)
-# define CRT_HOTPLUG_MONITOR_COLOR		(3 << 8)
-# define CRT_HOTPLUG_MONITOR_MONO		(2 << 8)
-# define CRT_HOTPLUG_MONITOR_NONE		(0 << 8)
-# define SDVOC_HOTPLUG_INT_STATUS		(1 << 7)
-# define SDVOB_HOTPLUG_INT_STATUS		(1 << 6)
-
-#define SDVOB			0x61140
-#define SDVOC			0x61160
-#define SDVO_ENABLE				(1 << 31)
-#define SDVO_PIPE_B_SELECT			(1 << 30)
-#define SDVO_STALL_SELECT			(1 << 29)
-#define SDVO_INTERRUPT_ENABLE			(1 << 26)
-/** New with 965, default is to be set */
-#define   SDVO_VSYNC_ACTIVE_HIGH        (1 << 4)
-/** New with 965, default is to be set */
-#define   SDVO_HSYNC_ACTIVE_HIGH        (1 << 3)
-
-/**
- * 915G/GM SDVO pixel multiplier.
- *
- * Programmed value is multiplier - 1, up to 5x.
- *
- * \sa DPLL_MD_UDI_MULTIPLIER_MASK
- */
-#define SDVO_PORT_MULTIPLY_MASK			(7 << 23)
-#define SDVO_PORT_MULTIPLY_SHIFT		23
-#define SDVO_PHASE_SELECT_MASK			(15 << 19)
-#define SDVO_PHASE_SELECT_DEFAULT		(6 << 19)
-#define SDVO_CLOCK_OUTPUT_INVERT		(1 << 18)
-#define SDVOC_GANG_MODE				(1 << 16)
-#define SDVO_BORDER_ENABLE			(1 << 7)
-#define SDVOB_PCIE_CONCURRENCY			(1 << 3)
-#define SDVO_DETECTED				(1 << 2)
-/* Bits to be preserved when writing */
-#define SDVOB_PRESERVE_MASK		((1 << 17) | (1 << 16) | (1 << 14))
-#define SDVOC_PRESERVE_MASK			(1 << 17)
-
-/** @defgroup LVDS
- * @{
- */
-/**
- * This register controls the LVDS output enable, pipe selection, and data
- * format selection.
- *
- * All of the clock/data pairs are force powered down by power sequencing.
- */
-#define LVDS			0x61180
-/**
- * Enables the LVDS port.  This bit must be set before DPLLs are enabled, as
- * the DPLL semantics change when the LVDS is assigned to that pipe.
- */
-# define LVDS_PORT_EN			(1 << 31)
-/** Selects pipe B for LVDS data.  Must be set on pre-965. */
-# define LVDS_PIPEB_SELECT		(1 << 30)
-
-/** Turns on border drawing to allow centered display. */
-# define LVDS_BORDER_EN                 (1 << 15)
-
-/**
- * Enables the A0-A2 data pairs and CLKA, containing 18 bits of color data per
- * pixel.
- */
-# define LVDS_A0A2_CLKA_POWER_MASK	(3 << 8)
-# define LVDS_A0A2_CLKA_POWER_DOWN	(0 << 8)
-# define LVDS_A0A2_CLKA_POWER_UP	(3 << 8)
-/**
- * Controls the A3 data pair, which contains the additional LSBs for 24 bit
- * mode.  Only enabled if LVDS_A0A2_CLKA_POWER_UP also indicates it should be
- * on.
- */
-# define LVDS_A3_POWER_MASK		(3 << 6)
-# define LVDS_A3_POWER_DOWN		(0 << 6)
-# define LVDS_A3_POWER_UP		(3 << 6)
-/**
- * Controls the CLKB pair.  This should only be set when LVDS_B0B3_POWER_UP
- * is set.
- */
-# define LVDS_CLKB_POWER_MASK		(3 << 4)
-# define LVDS_CLKB_POWER_DOWN		(0 << 4)
-# define LVDS_CLKB_POWER_UP		(3 << 4)
-
-/**
- * Controls the B0-B3 data pairs.  This must be set to match the DPLL p2
- * setting for whether we are in dual-channel mode.  The B3 pair will
- * additionally only be powered up when LVDS_A3_POWER_UP is set.
- */
-# define LVDS_B0B3_POWER_MASK		(3 << 2)
-# define LVDS_B0B3_POWER_DOWN		(0 << 2)
-# define LVDS_B0B3_POWER_UP		(3 << 2)
-
-#define PIPEACONF 0x70008
-#define PIPEACONF_ENABLE	(1<<31)
-#define PIPEACONF_DISABLE	0
-#define PIPEACONF_DOUBLE_WIDE	(1<<30)
-#define PIPECONF_ACTIVE		(1<<30)
-#define I965_PIPECONF_ACTIVE	(1<<30)
-#define PIPECONF_DSIPLL_LOCK	(1<<29)
-#define PIPEACONF_SINGLE_WIDE	0
-#define PIPEACONF_PIPE_UNLOCKED 0
-#define PIPEACONF_DSR		(1<<26)
-#define PIPEACONF_PIPE_LOCKED	(1<<25)
-#define PIPEACONF_PALETTE	0
-#define PIPECONF_FORCE_BORDER	(1<<25)
-#define PIPEACONF_GAMMA 	(1<<24)
-#define PIPECONF_PROGRESSIVE	(0 << 21)
-#define PIPECONF_INTERLACE_W_FIELD_INDICATION	(6 << 21)
-#define PIPECONF_INTERLACE_FIELD_0_ONLY		(7 << 21)
-#define PIPECONF_PLANE_OFF 	(1<<19)
-#define PIPECONF_CURSOR_OFF 	(1<<18)
-
-
-#define PIPEBCONF 0x71008
-#define PIPEBCONF_ENABLE	(1<<31)
-#define PIPEBCONF_DISABLE	0
-#define PIPEBCONF_DOUBLE_WIDE	(1<<30)
-#define PIPEBCONF_DISABLE	0
-#define PIPEBCONF_GAMMA 	(1<<24)
-#define PIPEBCONF_PALETTE	0
-
-#define PIPECCONF 0x72008
-
-#define PIPEBGCMAXRED		0x71010
-#define PIPEBGCMAXGREEN		0x71014
-#define PIPEBGCMAXBLUE		0x71018
-
-#define PIPEASTAT               0x70024
-#define PIPEBSTAT		0x71024
-#define PIPECSTAT		0x72024
-
-#define PIPE_FIFO_UNDERRUN		     (1UL<<31)
-#define PIPE_VBLANK_INTERRUPT_STATUS         (1UL<<1)
-#define PIPE_START_VBLANK_INTERRUPT_STATUS   (1UL<<2)
-#define PIPE_VBLANK_CLEAR                    (1 << 1)
-#define PIPE_VBLANK_STATUS                   (1 << 1)
-#define PIPE_LEGACY_BLC_EVENT_STATUS	     (1UL<<6)
-#define PIPE_DPST_EVENT_STATUS		     (1UL<<7)
-#define PIPE_VSYNC_CLEAR                     (1UL<<9)
-#define PIPE_VSYNC_STATUS                    (1UL<<9)
-#define PIPE_HDMI_AUDIO_UNDERRUN_STATUS      (1UL<<10)
-#define PIPE_HDMI_AUDIO_BUFFER_DONE_STATUS   (1UL<<11)
-#define PIPE_VBLANK_INTERRUPT_ENABLE         (1UL<<17)
-#define PIPE_START_VBLANK_INTERRUPT_ENABLE   (1UL<<18)
-#define PIPE_LEGACY_BLC_EVENT_ENABLE	     (1UL<<22)
-#define PIPE_DPST_EVENT_ENABLE               (1UL<<23)
-#define PIPE_VSYNC_ENABL                     (1UL<<25)
-#define PIPE_HDMI_AUDIO_UNDERRUN             (1UL<<26)
-#define PIPE_HDMI_AUDIO_BUFFER_DONE          (1UL<<27)
-#define PIPE_HDMI_AUDIO_INT_MASK (PIPE_HDMI_AUDIO_UNDERRUN | PIPE_HDMI_AUDIO_BUFFER_DONE)
-#define PIPE_EVENT_MASK (BIT29|BIT28|BIT27|BIT26|BIT24|BIT23|BIT22|BIT21|BIT20|BIT16)
-#define PIPE_VBLANK_MASK (BIT25|BIT24|BIT18|BIT17)
-#define HISTOGRAM_INT_CONTROL		0x61268
-#define HISTOGRAM_BIN_DATA		0X61264
-#define HISTOGRAM_LOGIC_CONTROL		0x61260
-#define PWM_CONTROL_LOGIC		0x61250
-#define PIPE_HOTPLUG_INTERRUPT_STATUS	(1UL<<10)
-#define HISTOGRAM_INTERRUPT_ENABLE	(1UL<<31)
-#define HISTOGRAM_LOGIC_ENABLE		(1UL<<31)
-#define PWM_LOGIC_ENABLE		(1UL<<31)
-#define PWM_PHASEIN_ENABLE		(1UL<<25)
-#define PWM_PHASEIN_INT_ENABLE		(1UL<<24)
-#define PWM_PHASEIN_VB_COUNT		0x00001f00
-#define PWM_PHASEIN_INC			0x0000001f
-#define HISTOGRAM_INT_CTRL_CLEAR	(1UL<<30)
-#define DPST_YUV_LUMA_MODE		0
-
-struct dpst_ie_histogram_control {
-	union {
-		uint32_t data;
-		struct {
-			uint32_t bin_reg_index:7;
-			uint32_t reserved:4;
-			uint32_t bin_reg_func_select:1;
-			uint32_t sync_to_phase_in:1;
-			uint32_t alt_enhancement_mode:2;
-			uint32_t reserved1:1;
-			uint32_t sync_to_phase_in_count:8;
-			uint32_t histogram_mode_select:1;
-			uint32_t reserved2:4;
-			uint32_t ie_pipe_assignment:1;
-			uint32_t ie_mode_table_enabled:1;
-			uint32_t ie_histogram_enable:1;
-		};
-	};
-};
-
-struct dpst_guardband {
-	union {
-		uint32_t data;
-		struct {
-			uint32_t guardband:22;
-			uint32_t guardband_interrupt_delay:8;
-			uint32_t interrupt_status:1;
-			uint32_t interrupt_enable:1;
-		};
-	};
-};
-
-#define PIPEAFRAMEHIGH		0x70040
-#define PIPEAFRAMEPIXEL		0x70044
-#define PIPEBFRAMEHIGH		0x71040
-#define PIPEBFRAMEPIXEL		0x71044
-#define PIPECFRAMEHIGH		0x72040
-#define PIPECFRAMEPIXEL		0x72044
-#define PIPE_FRAME_HIGH_MASK    0x0000ffff
-#define PIPE_FRAME_HIGH_SHIFT   0
-#define PIPE_FRAME_LOW_MASK     0xff000000
-#define PIPE_FRAME_LOW_SHIFT    24
-#define PIPE_PIXEL_MASK         0x00ffffff
-#define PIPE_PIXEL_SHIFT        0
-
-#define FW_BLC_SELF	0x20e0 
-#define   FW_BLC_SELF_EN           (1<<15)
-
-#define DSPARB			0x70030
-#define DSPFW1			0x70034
-#define DSPFW2			0x70038
-#define DSPFW3			0x7003c
-#define DSPFW4			0x70070
-#define DSPFW5			0x70074
-#define DSPFW6			0x70078
-#define DSPCHICKENBIT		0x70400
-#define DSPACNTR		0x70180
-#define DSPBCNTR		0x71180
-#define DSPCCNTR		0x72180
-#define DISPLAY_PLANE_ENABLE 			(1<<31)
-#define DISPLAY_PLANE_DISABLE			0
-#define DISPPLANE_GAMMA_ENABLE			(1<<30)
-#define DISPPLANE_GAMMA_DISABLE			0
-#define DISPPLANE_PIXFORMAT_MASK		(0xf<<26)
-#define DISPPLANE_8BPP				(0x2<<26)
-#define DISPPLANE_15_16BPP			(0x4<<26)
-#define DISPPLANE_16BPP				(0x5<<26)
-#define DISPPLANE_32BPP_NO_ALPHA 		(0x6<<26)
-#define DISPPLANE_32BPP				(0x7<<26)
-#define DISPPLANE_STEREO_ENABLE			(1<<25)
-#define DISPPLANE_STEREO_DISABLE		0
-#define DISPPLANE_SEL_PIPE_MASK			(1<<24)
-#define DISPPLANE_SEL_PIPE_POS			24
-#define DISPPLANE_SEL_PIPE_A			0
-#define DISPPLANE_SEL_PIPE_B			(1<<24)
-#define DISPPLANE_SRC_KEY_ENABLE		(1<<22)
-#define DISPPLANE_SRC_KEY_DISABLE		0
-#define DISPPLANE_LINE_DOUBLE			(1<<20)
-#define DISPPLANE_NO_LINE_DOUBLE		0
-#define DISPPLANE_STEREO_POLARITY_FIRST		0
-#define DISPPLANE_STEREO_POLARITY_SECOND	(1<<18)
-/* plane B only */
-#define DISPPLANE_ALPHA_TRANS_ENABLE		(1<<15)
-#define DISPPLANE_ALPHA_TRANS_DISABLE		0
-#define DISPPLANE_SPRITE_ABOVE_DISPLAYA		0
-#define DISPPLANE_SPRITE_ABOVE_OVERLAY		(1)
-#define DISPPLANE_BOTTOM			(4)
-
-#define DSPABASE		0x70184
-#define DSPALINOFF		0x70184
-#define DSPASTRIDE		0x70188
-
-#define DSPBBASE		0x71184
-#define DSPBLINOFF		0X71184
-#define DSPBADDR		DSPBBASE
-#define DSPBSTRIDE		0x71188
-
-#define DSPCBASE		0x72184
-#define DSPCLINOFF		0x72184
-#define DSPCSTRIDE		0x72188
-
-#define DSPAKEYVAL		0x70194
-#define DSPAKEYMASK		0x70198
-
-#define DSPAPOS			0x7018C	/* reserved */
-#define DSPASIZE		0x70190
-#define DSPBPOS			0x7118C
-#define DSPBSIZE		0x71190
-#define DSPCPOS			0x7218C
-#define DSPCSIZE		0x72190
-
-#define DSPASURF		0x7019C
-#define DSPATILEOFF		0x701A4
-
-#define DSPBSURF		0x7119C
-#define DSPBTILEOFF		0x711A4
-
-#define DSPCSURF		0x7219C
-#define DSPCTILEOFF		0x721A4
-#define DSPCKEYMAXVAL 		0x721A0
-#define DSPCKEYMINVAL 		0x72194
-#define DSPCKEYMSK 		0x72198
-
-/*
- * GPIO regs
- */
-#define GPIOA			0x5010
-#define GPIOB			0x5014
-#define GPIOC			0x5018
-#define GPIOD			0x501c
-#define GPIOE			0x5020
-#define GPIOF			0x5024
-#define GPIOG			0x5028
-#define GPIOH			0x502c
-# define GPIO_CLOCK_DIR_MASK		(1 << 0)
-# define GPIO_CLOCK_DIR_IN		(0 << 1)
-# define GPIO_CLOCK_DIR_OUT		(1 << 1)
-# define GPIO_CLOCK_VAL_MASK		(1 << 2)
-# define GPIO_CLOCK_VAL_OUT		(1 << 3)
-# define GPIO_CLOCK_VAL_IN		(1 << 4)
-# define GPIO_CLOCK_PULLUP_DISABLE	(1 << 5)
-# define GPIO_DATA_DIR_MASK		(1 << 8)
-# define GPIO_DATA_DIR_IN		(0 << 9)
-# define GPIO_DATA_DIR_OUT		(1 << 9)
-# define GPIO_DATA_VAL_MASK		(1 << 10)
-# define GPIO_DATA_VAL_OUT		(1 << 11)
-# define GPIO_DATA_VAL_IN		(1 << 12)
-# define GPIO_DATA_PULLUP_DISABLE	(1 << 13)
-
-#define GMBUS0			0x5100 /* clock/port select */
-#define   GMBUS_RATE_100KHZ	(0<<8)
-#define   GMBUS_RATE_50KHZ	(1<<8)
-#define   GMBUS_RATE_400KHZ	(2<<8) /* reserved on Pineview */
-#define   GMBUS_RATE_1MHZ	(3<<8) /* reserved on Pineview */
-#define   GMBUS_HOLD_EXT	(1<<7) /* 300ns hold time, rsvd on Pineview */
-#define   GMBUS_PORT_DISABLED	0
-#define   GMBUS_PORT_SSC	1
-#define   GMBUS_PORT_VGADDC	2
-#define   GMBUS_PORT_PANEL	3
-#define   GMBUS_PORT_DPC	4 /* HDMIC */
-#define   GMBUS_PORT_DPB	5 /* SDVO, HDMIB */
-				  /* 6 reserved */
-#define   GMBUS_PORT_DPD	7 /* HDMID */
-#define   GMBUS_NUM_PORTS       8
-#define GMBUS1			0x5104 /* command/status */
-#define   GMBUS_SW_CLR_INT	(1<<31)
-#define   GMBUS_SW_RDY		(1<<30)
-#define   GMBUS_ENT		(1<<29) /* enable timeout */
-#define   GMBUS_CYCLE_NONE	(0<<25)
-#define   GMBUS_CYCLE_WAIT	(1<<25)
-#define   GMBUS_CYCLE_INDEX	(2<<25)
-#define   GMBUS_CYCLE_STOP	(4<<25)
-#define   GMBUS_BYTE_COUNT_SHIFT 16
-#define   GMBUS_SLAVE_INDEX_SHIFT 8
-#define   GMBUS_SLAVE_ADDR_SHIFT 1
-#define   GMBUS_SLAVE_READ	(1<<0)
-#define   GMBUS_SLAVE_WRITE	(0<<0)
-#define GMBUS2			0x5108 /* status */
-#define   GMBUS_INUSE		(1<<15)
-#define   GMBUS_HW_WAIT_PHASE	(1<<14)
-#define   GMBUS_STALL_TIMEOUT	(1<<13)
-#define   GMBUS_INT		(1<<12)
-#define   GMBUS_HW_RDY		(1<<11)
-#define   GMBUS_SATOER		(1<<10)
-#define   GMBUS_ACTIVE		(1<<9)
-#define GMBUS3			0x510c /* data buffer bytes 3-0 */
-#define GMBUS4			0x5110 /* interrupt mask (Pineview+) */
-#define   GMBUS_SLAVE_TIMEOUT_EN (1<<4)
-#define   GMBUS_NAK_EN		(1<<3)
-#define   GMBUS_IDLE_EN		(1<<2)
-#define   GMBUS_HW_WAIT_EN	(1<<1)
-#define   GMBUS_HW_RDY_EN	(1<<0)
-#define GMBUS5			0x5120 /* byte index */
-#define   GMBUS_2BYTE_INDEX_EN	(1<<31)
-
-#define VGACNTRL		0x71400
-# define VGA_DISP_DISABLE			(1 << 31)
-# define VGA_2X_MODE				(1 << 30)
-# define VGA_PIPE_B_SELECT			(1 << 29)
-
-#define VGA_SR_INDEX 0x3c4
-#define VGA_SR_DATA 0x3c5
-
-/*
- * Overlay registers
- */
-#define OV_C_OFFSET		0x08000
-#define OV_OVADD		0x30000
-#define OV_DOVASTA              0x30008
-# define OV_PIPE_SELECT				(BIT6|BIT7)
-# define OV_PIPE_SELECT_POS			6
-# define OV_PIPE_A				0
-# define OV_PIPE_C				1
-#define OV_OGAMC5		0x30010
-#define OV_OGAMC4		0x30014
-#define OV_OGAMC3		0x30018
-#define OV_OGAMC2		0x3001C
-#define OV_OGAMC1		0x30020
-#define OV_OGAMC0		0x30024
-#define OVC_OVADD		0x38000
-#define OVC_DOVCSTA             0x38008
-#define OVC_OGAMC5		0x38010
-#define OVC_OGAMC4		0x38014
-#define OVC_OGAMC3		0x38018
-#define OVC_OGAMC2		0x3801C
-#define OVC_OGAMC1		0x38020
-#define OVC_OGAMC0		0x38024
-
-/*
- * Some BIOS scratch area registers.  The 845 (and 830?) store the amount
- * of video memory available to the BIOS in SWF1.
- */ 
-#define SWF0			0x71410
-#define SWF1			0x71414
-#define SWF2			0x71418
-#define SWF3			0x7141c
-#define SWF4			0x71420
-#define SWF5			0x71424
-#define SWF6			0x71428
-
-/*
- * 855 scratch registers.
- */
-#define SWF00			0x70410
-#define SWF01			0x70414
-#define SWF02			0x70418
-#define SWF03			0x7041c
-#define SWF04			0x70420
-#define SWF05			0x70424
-#define SWF06			0x70428
-
-#define SWF10			SWF0
-#define SWF11			SWF1
-#define SWF12			SWF2
-#define SWF13			SWF3
-#define SWF14			SWF4
-#define SWF15			SWF5
-#define SWF16			SWF6
-
-#define SWF30			0x72414
-#define SWF31			0x72418
-#define SWF32			0x7241c
-
-
-/*
- * Palette registers
- */
-#define PALETTE_A		0x0a000
-#define PALETTE_B		0x0a800
-#define PALETTE_C		0x0ac00
-
-#define IS_I830(dev) ((dev)->pci_device == PCI_DEVICE_ID_INTEL_82830_CGC)
-#define IS_845G(dev) ((dev)->pci_device == PCI_DEVICE_ID_INTEL_82845G_IG)
-#define IS_I85X(dev) ((dev)->pci_device == PCI_DEVICE_ID_INTEL_82855GM_IG)
-#define IS_I855(dev) ((dev)->pci_device == PCI_DEVICE_ID_INTEL_82855GM_IG)
-#define IS_I865G(dev) ((dev)->pci_device == PCI_DEVICE_ID_INTEL_82865_IG)
-
-
-/* || dev->pci_device == PCI_DEVICE_ID_INTELPCI_CHIP_E7221_G) */
-#define IS_I915G(dev) (dev->pci_device == PCI_DEVICE_ID_INTEL_82915G_IG)
-#define IS_I915GM(dev) ((dev)->pci_device == PCI_DEVICE_ID_INTEL_82915GM_IG)
-#define IS_I945G(dev) ((dev)->pci_device == PCI_DEVICE_ID_INTEL_82945G_IG)
-#define IS_I945GM(dev) ((dev)->pci_device == PCI_DEVICE_ID_INTEL_82945GM_IG)
-
-#define IS_I965G(dev) ((dev)->pci_device == 0x2972 || \
-		       (dev)->pci_device == 0x2982 || \
-		       (dev)->pci_device == 0x2992 || \
-		       (dev)->pci_device == 0x29A2 || \
-		       (dev)->pci_device == 0x2A02 || \
-		       (dev)->pci_device == 0x2A12)
-
-#define IS_I965GM(dev) ((dev)->pci_device == 0x2A02)
-
-#define IS_G33(dev)    ((dev)->pci_device == 0x29C2 ||	\
-			(dev)->pci_device == 0x29B2 ||	\
-			(dev)->pci_device == 0x29D2)
-
-#define IS_I9XX(dev) (IS_I915G(dev) || IS_I915GM(dev) || IS_I945G(dev) || \
-		      IS_I945GM(dev) || IS_I965G(dev))
-
-#define IS_MOBILE(dev) (IS_I830(dev) || IS_I85X(dev) || IS_I915GM(dev) || \
-			IS_I945GM(dev) || IS_I965GM(dev))
-
-/* Cursor A & B regs */
-#define CURACNTR		0x70080
-#define   CURSOR_MODE_DISABLE   0x00
-#define   CURSOR_MODE_64_32B_AX 0x07
-#define   CURSOR_MODE_64_ARGB_AX ((1 << 5) | CURSOR_MODE_64_32B_AX)
-#define   MCURSOR_GAMMA_ENABLE  (1 << 26)
-#define CURABASE		0x70084
-#define CURAPOS			0x70088
-#define   CURSOR_POS_MASK       0x007FF
-#define   CURSOR_POS_SIGN       0x8000
-#define   CURSOR_X_SHIFT        0
-#define   CURSOR_Y_SHIFT        16
-#define CURBCNTR		0x700c0
-#define CURBBASE		0x700c4
-#define CURBPOS			0x700c8
-#define CURCCNTR		0x700e0
-#define CURCBASE		0x700e4
-#define CURCPOS			0x700e8
-
-/*
- * Interrupt Registers
- */
-#define IER 0x020a0
-#define IIR 0x020a4
-#define IMR 0x020a8
-#define ISR 0x020ac
-
-/*
- * MOORESTOWN delta registers
- */
-#define MRST_DPLL_A		0x0f014
-#define MDFLD_DPLL_B		0x0f018
-#define MDFLD_INPUT_REF_SEL	(1 << 14) 
-#define MDFLD_VCO_SEL		(1 << 16) 
-#define DPLLA_MODE_LVDS		(2 << 26)	/* mrst */
-#define MDFLD_PLL_LATCHEN	(1 << 28) 
-#define MDFLD_PWR_GATE_EN	(1 << 30) 
-#define MDFLD_P1_MASK		(0x1FF << 17) 
-#define MRST_FPA0		0x0f040
-#define MRST_FPA1		0x0f044
-#define MDFLD_DPLL_DIV0		0x0f048
-#define MDFLD_DPLL_DIV1		0x0f04c
-#define MRST_PERF_MODE		0x020f4
-
-/* MEDFIELD HDMI registers */
-#define HDMIPHYMISCCTL   	0x61134
-# define HDMI_PHY_POWER_DOWN	0x7f
-#define HDMIB_CONTROL   	0x61140
-# define HDMIB_PORT_EN			(1 << 31)
-# define HDMIB_PIPE_B_SELECT		(1 << 30)
-# define HDMIB_NULL_PACKET		(1 << 9)
-#define HDMIB_HDCP_PORT (1 << 5)
-/** Requird for HDMI operation */
-#define   HDMI_NULL_PACKETS_DURING_VSYNC (1 << 9)
-#define   HDMI_BORDER_ENABLE            (1 << 7)
-#define   HDMI_AUDIO_ENABLE             (1 << 6)
-
-
-/* #define LVDS			0x61180 */
-# define MRST_PANEL_8TO6_DITHER_ENABLE		(1 << 25)
-# define MRST_PANEL_24_DOT_1_FORMAT		(1 << 24)
-# define LVDS_A3_POWER_UP_0_OUTPUT		(1 << 6)
-
-#define MIPI			0x61190
-#define MIPI_C			0x62190
-# define MIPI_PORT_EN			(1 << 31)
-/** Turns on border drawing to allow centered display. */
-# define SEL_FLOPPED_HSTX		(1 << 23)
-# define PASS_FROM_SPHY_TO_AFE 		(1 << 16)
-# define MIPI_BORDER_EN			(1 << 15)
-# define MIPIA_3LANE_MIPIC_1LANE	0x1
-# define MIPIA_2LANE_MIPIC_2LANE	0x2
-# define TE_TRIGGER_DSI_PROTOCOL	(1 << 2)
-# define TE_TRIGGER_GPIO_PIN		(1 << 3)
-#define MIPI_TE_COUNT			0x61194
-
-/* #define PP_CONTROL	0x61204 */
-# define POWER_DOWN_ON_RESET		(1 << 1)
-
-/* #define PFIT_CONTROL	0x61230 */
-# define PFIT_PIPE_SELECT				(3 << 29)
-# define PFIT_PIPE_SELECT_SHIFT			(29)
-
-/* #define BLC_PWM_CTL		0x61254 */
-#define MRST_BACKLIGHT_MODULATION_FREQ_SHIFT		(16)
-#define MRST_BACKLIGHT_MODULATION_FREQ_MASK		(0xffff << 16)
-
-/* #define PIPEACONF 0x70008 */
-#define PIPEACONF_PIPE_STATE	(1<<30)
-/* #define DSPACNTR		0x70180 */
-#if 0				/*FIXME JLIU7 need to define the following */
-1000 = 32 - bit RGBX(10 : 10 : 10 : 2)
-pixel format.Ignore alpha.1010 = BGRX 10 : 10 : 10 : 2 1100 = 64 - bit RGBX
-(16 : 16 : 16 : 16) 16 bit floating point pixel format.
-Ignore alpha.1110 = 32 - bit RGBX(8 : 8 : 8 : 8) pixel format.
-    Ignore
-    alpha.
-#endif				/*FIXME JLIU7 need to define the following */
-
-#define MRST_DSPABASE		0x7019c
-#define MRST_DSPBBASE		0x7119c
-#define MDFLD_DSPCBASE		0x7219c
-
-/*
- * MOORESTOWN reserved registers
- */
-#if 0
-#define DSPAPOS			0x7018C	/* reserved */
-#define DSPASIZE		0x70190
-#endif
-/*
- * Moorestown registers.
- */
-/*===========================================================================
-; General Constants
-;--------------------------------------------------------------------------*/
-#define BIT0  0x00000001
-#define BIT1  0x00000002
-#define BIT2  0x00000004
-#define BIT3  0x00000008
-#define BIT4  0x00000010
-#define BIT5  0x00000020
-#define BIT6  0x00000040
-#define BIT7  0x00000080
-#define BIT8  0x00000100
-#define BIT9  0x00000200
-#define BIT10 0x00000400
-#define BIT11 0x00000800
-#define BIT12 0x00001000
-#define BIT13 0x00002000
-#define BIT14 0x00004000
-#define BIT15 0x00008000
-#define BIT16 0x00010000
-#define BIT17 0x00020000
-#define BIT18 0x00040000
-#define BIT19 0x00080000
-#define BIT20 0x00100000
-#define BIT21 0x00200000
-#define BIT22 0x00400000
-#define BIT23 0x00800000
-#define BIT24 0x01000000
-#define BIT25 0x02000000
-#define BIT26 0x04000000
-#define BIT27 0x08000000
-#define BIT28 0x10000000
-#define BIT29 0x20000000
-#define BIT30 0x40000000
-#define BIT31 0x80000000
-/*===========================================================================
-; MIPI IP registers
-;--------------------------------------------------------------------------*/
-#define MIPIC_REG_OFFSET             0x800
-#define DEVICE_READY_REG             0xb000
-#define LP_OUTPUT_HOLD               BIT16
-#define EXIT_ULPS_DEV_READY          0x3
-#define LP_OUTPUT_HOLD_RELEASE       0x810000
-# define ENTERING_ULPS		(2 << 1)
-# define EXITING_ULPS		(1 << 1)
-# define ULPS_MASK		(3 << 1)
-# define BUS_POSSESSION		(1 << 3)
-#define INTR_STAT_REG                0xb004
-#define RX_SOT_ERROR BIT0
-#define RX_SOT_SYNC_ERROR BIT1
-#define RX_ESCAPE_MODE_ENTRY_ERROR BIT3
-#define RX_LP_TX_SYNC_ERROR BIT4
-#define RX_HS_RECEIVE_TIMEOUT_ERROR BIT5
-#define RX_FALSE_CONTROL_ERROR BIT6
-#define RX_ECC_SINGLE_BIT_ERROR BIT7
-#define RX_ECC_MULTI_BIT_ERROR BIT8
-#define RX_CHECKSUM_ERROR BIT9
-#define RX_DSI_DATA_TYPE_NOT_RECOGNIZED BIT10
-#define RX_DSI_VC_ID_INVALID BIT11
-#define TX_FALSE_CONTROL_ERROR BIT12
-#define TX_ECC_SINGLE_BIT_ERROR BIT13
-#define TX_ECC_MULTI_BIT_ERROR BIT14
-#define TX_CHECKSUM_ERROR BIT15
-#define TX_DSI_DATA_TYPE_NOT_RECOGNIZED BIT16
-#define TX_DSI_VC_ID_INVALID BIT17
-#define HIGH_CONTENTION BIT18
-#define LOW_CONTENTION BIT19
-#define DPI_FIFO_UNDER_RUN BIT20
-#define HS_TX_TIMEOUT BIT21
-#define LP_RX_TIMEOUT BIT22
-#define TURN_AROUND_ACK_TIMEOUT BIT23
-#define ACK_WITH_NO_ERROR BIT24
-#define HS_GENERIC_WR_FIFO_FULL BIT27
-#define LP_GENERIC_WR_FIFO_FULL BIT28
-#define SPL_PKT_SENT			BIT30
-#define INTR_EN_REG                  0xb008
-#define DSI_FUNC_PRG_REG             0xb00c
-#define DPI_CHANNEL_NUMBER_POS   0x03
-#define DBI_CHANNEL_NUMBER_POS   0x05
-#define FMT_DPI_POS              0x07
-#define FMT_DBI_POS              0x0A
-#define DBI_DATA_WIDTH_POS       0x0D
-/* DPI PIXEL FORMATS */
-#define RGB_565_FMT		     0x01	/* RGB 565 FORMAT */
-#define RGB_666_FMT		     0x02	/* RGB 666 FORMAT */
-#define LRGB_666_FMT		     0x03	/* RGB LOOSELY PACKED
-						 * 666 FORMAT
-						 */
-#define RGB_888_FMT		     0x04	/* RGB 888 FORMAT */
-#define VIRTUAL_CHANNEL_NUMBER_0	0x00	/* Virtual channel 0 */
-#define VIRTUAL_CHANNEL_NUMBER_1	0x01	/* Virtual channel 1 */
-#define VIRTUAL_CHANNEL_NUMBER_2	0x02	/* Virtual channel 2 */
-#define VIRTUAL_CHANNEL_NUMBER_3	0x03	/* Virtual channel 3 */
-#define DBI_NOT_SUPPORTED		0x00	/* command mode
-						 * is not supported
-						 */
-#define DBI_DATA_WIDTH_16BIT		0x01	/* 16 bit data */
-#define DBI_DATA_WIDTH_9BIT			0x02	/* 9 bit data */
-#define DBI_DATA_WIDTH_8BIT			0x03	/* 8 bit data */
-#define DBI_DATA_WIDTH_OPT1		0x04	/* option 1 */
-#define DBI_DATA_WIDTH_OPT2		0x05	/* option 2 */
-#define HS_TX_TIMEOUT_REG            0xb010
-#define LP_RX_TIMEOUT_REG            0xb014
-#define TURN_AROUND_TIMEOUT_REG      0xb018
-#define DEVICE_RESET_REG             0xb01C
-#define DPI_RESOLUTION_REG           0xb020
-#define RES_V_POS                0x10
-#define DBI_RESOLUTION_REG           0xb024 /* Reserved for MDFLD */
-#define HORIZ_SYNC_PAD_COUNT_REG     0xb028
-#define HORIZ_BACK_PORCH_COUNT_REG   0xb02C
-#define HORIZ_FRONT_PORCH_COUNT_REG  0xb030
-#define HORIZ_ACTIVE_AREA_COUNT_REG  0xb034
-#define VERT_SYNC_PAD_COUNT_REG      0xb038
-#define VERT_BACK_PORCH_COUNT_REG    0xb03c
-#define VERT_FRONT_PORCH_COUNT_REG   0xb040
-#define HIGH_LOW_SWITCH_COUNT_REG    0xb044
-#define DPI_CONTROL_REG              0xb048
-#define DPI_SHUT_DOWN            BIT0
-#define DPI_TURN_ON              BIT1
-#define DPI_COLOR_MODE_ON        BIT2
-#define DPI_COLOR_MODE_OFF       BIT3
-#define DPI_BACK_LIGHT_ON        BIT4
-#define DPI_BACK_LIGHT_OFF       BIT5
-#define DPI_LP                   BIT6
-#define DPI_DATA_REG                 0xb04c
-#define DPI_BACK_LIGHT_ON_DATA   0x07
-#define DPI_BACK_LIGHT_OFF_DATA  0x17
-#define INIT_COUNT_REG               0xb050
-#define MAX_RET_PAK_REG              0xb054
-#define VIDEO_FMT_REG                0xb058
-#define COMPLETE_LAST_PCKT       BIT2
-#define EOT_DISABLE_REG              0xb05c
-#define ENABLE_CLOCK_STOPPING    BIT1
-#define LP_BYTECLK_REG               0xb060
-#define LP_GEN_DATA_REG              0xb064
-#define HS_GEN_DATA_REG              0xb068
-#define LP_GEN_CTRL_REG              0xb06C
-#define HS_GEN_CTRL_REG              0xb070
-#define DCS_CHANNEL_NUMBER_POS   0x06
-#define MCS_COMMANDS_POS	0x8
-#define WORD_COUNTS_POS		0x8
-#define MCS_PARAMETER_POS	0x10
-#define GEN_FIFO_STAT_REG            0xb074
-#define HS_DATA_FIFO_FULL        BIT0
-#define HS_DATA_FIFO_HALF_EMPTY  BIT1
-#define HS_DATA_FIFO_EMPTY       BIT2
-#define LP_DATA_FIFO_FULL        BIT8
-#define LP_DATA_FIFO_HALF_EMPTY  BIT9
-#define LP_DATA_FIFO_EMPTY       BIT10
-#define HS_CTRL_FIFO_FULL        BIT16
-#define HS_CTRL_FIFO_HALF_EMPTY  BIT17
-#define HS_CTRL_FIFO_EMPTY       BIT18
-#define LP_CTRL_FIFO_FULL        BIT24
-#define LP_CTRL_FIFO_HALF_EMPTY  BIT25
-#define LP_CTRL_FIFO_EMPTY       BIT26
-#define DBI_FIFO_EMPTY           BIT27
-#define DPI_FIFO_EMPTY           BIT28
-#define HS_LS_DBI_ENABLE_REG         0xb078
-#define TXCLKESC_REG		     0xb07c
-#define DPHY_PARAM_REG               0xb080
-#define DBI_BW_CTRL_REG              0xb084
-#define CLK_LANE_SWT_REG             0xb088
-/*===========================================================================
-; MIPI Adapter registers
-;--------------------------------------------------------------------------*/
-#define MIPI_CONTROL_REG             0xb104
-#define MIPI_2X_CLOCK_BITS       (BIT0 | BIT1)
-#define MIPI_DATA_ADDRESS_REG        0xb108
-#define MIPI_DATA_LENGTH_REG         0xb10C
-#define MIPI_COMMAND_ADDRESS_REG     0xb110
-#define MIPI_COMMAND_LENGTH_REG      0xb114
-#define MIPI_READ_DATA_RETURN_REG0   0xb118
-#define MIPI_READ_DATA_RETURN_REG1   0xb11C
-#define MIPI_READ_DATA_RETURN_REG2   0xb120
-#define MIPI_READ_DATA_RETURN_REG3   0xb124
-#define MIPI_READ_DATA_RETURN_REG4   0xb128
-#define MIPI_READ_DATA_RETURN_REG5   0xb12C
-#define MIPI_READ_DATA_RETURN_REG6   0xb130
-#define MIPI_READ_DATA_RETURN_REG7   0xb134
-#define MIPI_READ_DATA_VALID_REG     0xb138
-/* DBI COMMANDS */
-#define soft_reset                   0x01
-/* ************************************************************************* *\
-The display module performs a software reset.
-Registers are written with their SW Reset default values.
-\* ************************************************************************* */
-#define get_power_mode               0x0a
-/* ************************************************************************* *\
-The display module returns the current power mode
-\* ************************************************************************* */
-#define get_address_mode             0x0b
-/* ************************************************************************* *\
-The display module returns the current status.
-\* ************************************************************************* */
-#define get_pixel_format             0x0c
-/* ************************************************************************* *\
-This command gets the pixel format for the RGB image data
-used by the interface.
-\* ************************************************************************* */
-#define get_display_mode             0x0d
-/* ************************************************************************* *\
-The display module returns the Display Image Mode status.
-\* ************************************************************************* */
-#define get_signal_mode              0x0e
-/* ************************************************************************* *\
-The display module returns the Display Signal Mode.
-\* ************************************************************************* */
-#define get_diagnostic_result        0x0f
-/* ************************************************************************* *\
-The display module returns the self-diagnostic results following
-a Sleep Out command.
-\* ************************************************************************* */
-#define enter_sleep_mode             0x10
-/* ************************************************************************* *\
-This command causes the display module to enter the Sleep mode.
-In this mode, all unnecessary blocks inside the display module are disabled
-except interface communication. This is the lowest power mode
-the display module supports.
-\* ************************************************************************* */
-#define exit_sleep_mode              0x11
-/* ************************************************************************* *\
-This command causes the display module to exit Sleep mode.
-All blocks inside the display module are enabled.
-\* ************************************************************************* */
-#define enter_partial_mode           0x12
-/* ************************************************************************* *\
-This command causes the display module to enter the Partial Display Mode.
-The Partial Display Mode window is described by the set_partial_area command.
-\* ************************************************************************* */
-#define enter_normal_mode            0x13
-/* ************************************************************************* *\
-This command causes the display module to enter the Normal mode.
-Normal Mode is defined as Partial Display mode and Scroll mode are off
-\* ************************************************************************* */
-#define exit_invert_mode             0x20
-/* ************************************************************************* *\
-This command causes the display module to stop inverting the image data on
-the display device. The frame memory contents remain unchanged.
-No status bits are changed.
-\* ************************************************************************* */
-#define enter_invert_mode            0x21
-/* ************************************************************************* *\
-This command causes the display module to invert the image data only on
-the display device. The frame memory contents remain unchanged.
-No status bits are changed.
-\* ************************************************************************* */
-#define set_gamma_curve              0x26
-/* ************************************************************************* *\
-This command selects the desired gamma curve for the display device.
-Four fixed gamma curves are defined in section DCS spec.
-\* ************************************************************************* */
-#define set_display_off              0x28
-/* ************************************************************************* *\
-This command causes the display module to stop displaying the image data
-on the display device. The frame memory contents remain unchanged.
-No status bits are changed.
-\* ************************************************************************* */
-#define set_display_on               0x29
-/* ************************************************************************* *\
-This command causes the display module to start displaying the image data
-on the display device. The frame memory contents remain unchanged.
-No status bits are changed.
-\* ************************************************************************* */
-#define set_column_address           0x2a
-/* ************************************************************************* *\
-This command defines the column extent of the frame memory accessed by the
-hostprocessor with the read_memory_continue and write_memory_continue commands.
-No status bits are changed.
-\* ************************************************************************* */
-#define set_page_addr             0x2b
-/* ************************************************************************* *\
-This command defines the page extent of the frame memory accessed by the host
-processor with the write_memory_continue and read_memory_continue command.
-No status bits are changed.
-\* ************************************************************************* */
-#define write_mem_start              0x2c
-/* ************************************************************************* *\
-This command transfers image data from the host processor to the display
-module s frame memory starting at the pixel location specified by
-preceding set_column_address and set_page_address commands.
-\* ************************************************************************* */
-#define set_partial_area             0x30
-/* ************************************************************************* *\
-This command defines the Partial Display mode s display area.
-There are two parameters associated with
-this command, the first defines the Start Row (SR) and the second the End Row
-(ER). SR and ER refer to the Frame Memory Line Pointer.
-\* ************************************************************************* */
-#define set_scroll_area              0x33
-/* ************************************************************************* *\
-This command defines the display modules Vertical Scrolling Area.
-\* ************************************************************************* */
-#define set_tear_off                 0x34
-/* ************************************************************************* *\
-This command turns off the display modules Tearing Effect output signal on
-the TE signal line.
-\* ************************************************************************* */
-#define set_tear_on                  0x35
-/* ************************************************************************* *\
-This command turns on the display modules Tearing Effect output signal
-on the TE signal line.
-\* ************************************************************************* */
-#define set_address_mode             0x36
-/* ************************************************************************* *\
-This command sets the data order for transfers from the host processor to
-display modules frame memory,bits B[7:5] and B3, and from the display
-modules frame memory to the display device, bits B[2:0] and B4.
-\* ************************************************************************* */
-#define set_scroll_start             0x37
-/* ************************************************************************* *\
-This command sets the start of the vertical scrolling area in the frame memory.
-The vertical scrolling area is fully defined when this command is used with
-the set_scroll_area command The set_scroll_start command has one parameter,
-the Vertical Scroll Pointer. The VSP defines the line in the frame memory
-that is written to the display device as the first line of the vertical
-scroll area.
-\* ************************************************************************* */
-#define exit_idle_mode               0x38
-/* ************************************************************************* *\
-This command causes the display module to exit Idle mode.
-\* ************************************************************************* */
-#define enter_idle_mode              0x39
-/* ************************************************************************* *\
-This command causes the display module to enter Idle Mode.
-In Idle Mode, color expression is reduced. Colors are shown on the display
-device using the MSB of each of the R, G and B color components in the frame
-memory
-\* ************************************************************************* */
-#define set_pixel_format             0x3a
-/* ************************************************************************* *\
-This command sets the pixel format for the RGB image data used by the interface.
-Bits D[6:4]  DPI Pixel Format Definition
-Bits D[2:0]  DBI Pixel Format Definition
-Bits D7 and D3 are not used.
-\* ************************************************************************* */
-  #define DCS_PIXEL_FORMAT_3bbp	 	0x1
-  #define DCS_PIXEL_FORMAT_8bbp 	0x2
-  #define DCS_PIXEL_FORMAT_12bbp 	0x3
-  #define DCS_PIXEL_FORMAT_16bbp	0x5 
-  #define DCS_PIXEL_FORMAT_18bbp	0x6 
-  #define DCS_PIXEL_FORMAT_24bbp 	0x7
-#define write_mem_cont               0x3c
-/* ************************************************************************* *\
-This command transfers image data from the host processor to the display
-module's frame memory continuing from the pixel location following the
-previous write_memory_continue or write_memory_start command.
-\* ************************************************************************* */
-#define set_tear_scanline            0x44
-/* ************************************************************************* *\
-This command turns on the display modules Tearing Effect output signal on the
-TE signal line when the display module reaches line N.
-\* ************************************************************************* */
-#define get_scanline                 0x45
-/* ************************************************************************* *\
-The display module returns the current scanline, N, used to update the
-display device. The total number of scanlines on a display device is
-defined as VSYNC + VBP + VACT + VFP.The first scanline is defined as
-the first line of V Sync and is denoted as Line 0.
-When in Sleep Mode, the value returned by get_scanline is undefined.
-\* ************************************************************************* */
-
-/* MCS or Generic COMMANDS */
-/* MCS/generic data type */
-#define GEN_SHORT_WRITE_0	0x03  /* generic short write, no parameters */
-#define GEN_SHORT_WRITE_1	0x13  /* generic short write, 1 parameters */
-#define GEN_SHORT_WRITE_2	0x23  /* generic short write, 2 parameters */
-#define GEN_READ_0		0x04  /* generic read, no parameters */
-#define GEN_READ_1		0x14  /* generic read, 1 parameters */
-#define GEN_READ_2		0x24  /* generic read, 2 parameters */
-#define GEN_LONG_WRITE		0x29  /* generic long write */
-#define MCS_SHORT_WRITE_0	0x05  /* MCS short write, no parameters */
-#define MCS_SHORT_WRITE_1	0x15  /* MCS short write, 1 parameters */
-#define MCS_READ		0x06  /* MCS read, no parameters */
-#define MCS_LONG_WRITE		0x39  /* MCS long write */
-/* MCS/generic commands */
-/*****TPO MCS**********/
-#define write_display_profile		0x50
-#define write_display_brightness	0x51
-#define write_ctrl_display		0x53
-#define write_ctrl_cabc			0x55
-  #define UI_IMAGE		0x01
-  #define STILL_IMAGE		0x02
-  #define MOVING_IMAGE		0x03
-#define write_hysteresis		0x57
-#define write_gamma_setting		0x58
-#define write_cabc_min_bright		0x5e
-#define write_kbbc_profile		0x60
-/*****TMD MCS**************/
-#define tmd_write_display_brightness 0x8c
-
-/* ************************************************************************* *\
-This command is used to control ambient light, panel backlight brightness and
-gamma settings.
-\* ************************************************************************* */
-#define BRIGHT_CNTL_BLOCK_ON	BIT5
-#define AMBIENT_LIGHT_SENSE_ON	BIT4
-#define DISPLAY_DIMMING_ON	BIT3
-#define BACKLIGHT_ON		BIT2
-#define DISPLAY_BRIGHTNESS_AUTO	BIT1
-#define GAMMA_AUTO		BIT0
-
-/* DCS Interface Pixel Formats */
-#define DCS_PIXEL_FORMAT_3BPP         0x1
-#define DCS_PIXEL_FORMAT_8BPP         0x2
-#define DCS_PIXEL_FORMAT_12BPP        0x3
-#define DCS_PIXEL_FORMAT_16BPP        0x5
-#define DCS_PIXEL_FORMAT_18BPP        0x6
-#define DCS_PIXEL_FORMAT_24BPP        0x7
-/* ONE PARAMETER READ DATA */
-#define addr_mode_data           0xfc
-#define diag_res_data            0x00
-#define disp_mode_data           0x23
-#define pxl_fmt_data             0x77
-#define pwr_mode_data            0x74
-#define sig_mode_data            0x00
-/* TWO PARAMETERS READ DATA */
-#define scanline_data1           0xff
-#define scanline_data2           0xff
-#define NON_BURST_MODE_SYNC_PULSE	0x01	/* Non Burst Mode
-						 * with Sync Pulse
-						 */
-#define NON_BURST_MODE_SYNC_EVENTS	0x02	/* Non Burst Mode
-						 * with Sync events
-						 */
-#define BURST_MODE			0x03	/* Burst Mode */
-#define DBI_COMMAND_BUFFER_SIZE		0x240  /* 0x32 */    /* 0x120 */	/* Allocate at least
-						 * 0x100 Byte with 32
-						 * byte alignment
-						 */
-#define DBI_DATA_BUFFER_SIZE		0x120	/* Allocate at least
-						 * 0x100 Byte with 32
-						 * byte alignment
-						 */
-#define DBI_CB_TIME_OUT 0xFFFF
-#define GEN_FB_TIME_OUT 2000 
-#define ALIGNMENT_32BYTE_MASK		(~(BIT0|BIT1|BIT2|BIT3|BIT4))
-#define SKU_83 						0x01
-#define SKU_100 					0x02
-#define SKU_100L 					0x04
-#define SKU_BYPASS 					0x08
-
-
-/* Some handy macros for playing with bitfields. */
-#define PSB_MASK(high, low) (((1<<((high)-(low)+1))-1)<<(low))
-#define SET_FIELD(value, field) (((value) << field ## _SHIFT) & field ## _MASK)
-#define GET_FIELD(word, field) (((word)  & field ## _MASK) >> field ## _SHIFT)
-
-#define _PIPE(pipe, a, b) ((a) + (pipe)*((b)-(a)))
-
-/* PCI config space */
-
-#define SB_PCKT         0x02100 /* cedarview */
-# define SB_OPCODE_MASK                         PSB_MASK(31, 16)
-# define SB_OPCODE_SHIFT                        16
-# define SB_OPCODE_READ                         0
-# define SB_OPCODE_WRITE                        1
-# define SB_DEST_MASK                           PSB_MASK(15, 8)
-# define SB_DEST_SHIFT                          8
-# define SB_DEST_DPLL                           0x88
-# define SB_BYTE_ENABLE_MASK                    PSB_MASK(7, 4)
-# define SB_BYTE_ENABLE_SHIFT                   4
-# define SB_BUSY                                (1 << 0)
-
-#define DSPCLK_GATE_D		0x6200
-# define VRHUNIT_CLOCK_GATE_DISABLE		(1 << 28) /* Fixed value on CDV */
-# define DPOUNIT_CLOCK_GATE_DISABLE		(1 << 11)
-# define DPIOUNIT_CLOCK_GATE_DISABLE		(1 << 6)
-
-
-#define RAMCLK_GATE_D		0x6210
-
-
-/* 32-bit value read/written from the DPIO reg. */
-#define SB_DATA		0x02104 /* cedarview */
-/* 32-bit address of the DPIO reg to be read/written. */
-#define SB_ADDR		0x02108 /* cedarview */
-#define DPIO_CFG	0x02110 /* cedarview */
-# define DPIO_MODE_SELECT_1			(1 << 3)
-# define DPIO_MODE_SELECT_0			(1 << 2)
-# define DPIO_SFR_BYPASS			(1 << 1)
-/* reset is active low */
-# define DPIO_CMN_RESET_N			(1 << 0)
-
-/* Cedarview sideband registers */
-#define _SB_M_A			0x8008
-#define _SB_M_B			0x8028
-#define SB_M(pipe) _PIPE(pipe, _SB_M_A, _SB_M_B)
-# define SB_M_DIVIDER_MASK			(0xFF << 24)
-# define SB_M_DIVIDER_SHIFT			24
-
-#define _SB_N_VCO_A		0x8014
-#define _SB_N_VCO_B		0x8034
-#define SB_N_VCO(pipe) _PIPE(pipe, _SB_N_VCO_A, _SB_N_VCO_B)
-# define SB_N_VCO_SEL_MASK			PSB_MASK(31, 30)
-# define SB_N_VCO_SEL_SHIFT			30
-# define SB_N_DIVIDER_MASK			PSB_MASK(29, 26)
-# define SB_N_DIVIDER_SHIFT			26
-# define SB_N_CB_TUNE_MASK			PSB_MASK(25, 24)
-# define SB_N_CB_TUNE_SHIFT			24
-
-#define _SB_REF_A		0x8018
-#define _SB_REF_B		0x8038
-#define SB_REF_SFR(pipe)	_PIPE(pipe, _SB_REF_A, _SB_REF_B)
-
-#define _SB_P_A			0x801c
-#define _SB_P_B			0x803c
-#define SB_P(pipe) _PIPE(pipe, _SB_P_A, _SB_P_B)
-# define SB_P2_DIVIDER_MASK			PSB_MASK(31, 30)
-# define SB_P2_DIVIDER_SHIFT			30
-# define SB_P2_10				0 /* HDMI, DP, DAC */
-# define SB_P2_5				1 /* DAC */
-# define SB_P2_14				2 /* LVDS single */
-# define SB_P2_7				3 /* LVDS double */
-# define SB_P1_DIVIDER_MASK			PSB_MASK(15, 12)
-# define SB_P1_DIVIDER_SHIFT			12
-
-#define PSB_LANE0		0x120
-#define PSB_LANE1		0x220
-#define PSB_LANE2		0x2320
-#define PSB_LANE3		0x2420
-
-#define LANE_PLL_MASK		(0x7 << 20)
-#define LANE_PLL_ENABLE		(0x3 << 20)
-
-#define INTEL_CDV_DISP_CLK_FREQ		0x20c8
-
-#if 0
-/* ************************************************************************* *\
-DSI command data structure
-\* ************************************************************************* */
-union DSI_LONG_PACKET_HEADER {
-	u32 DSI_longPacketHeader;
-	struct {
-		u8 dataID;
-		u16 wordCount;
-		u8 ECC;
-	};
-#if 0				/*FIXME JLIU7 */
-	struct {
-		u8 DT:6;
-		u8 VC:2;
-	};
-#endif				/*FIXME JLIU7 */
-};
-
-union MIPI_ADPT_CMD_LNG_REG {
-	u32 commnadLengthReg;
-	struct {
-		u8 command0;
-		u8 command1;
-		u8 command2;
-		u8 command3;
-	};
-};
-
-struct SET_COLUMN_ADDRESS_DATA {
-	u8 command;
-	u16 SC;			/* Start Column */
-	u16 EC;			/* End Column */
-};
-
-struct SET_PAGE_ADDRESS_DATA {
-	u8 command;
-	u16 SP;			/* Start Page */
-	u16 EP;			/* End Page */
-};
-#endif
-
-#endif
diff --git a/drivers/staging/cdv/drv/psb_irq.c b/drivers/staging/cdv/drv/psb_irq.c
deleted file mode 100644
index 84af156..0000000
--- a/drivers/staging/cdv/drv/psb_irq.c
+++ /dev/null
@@ -1,681 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Intel funded Tungsten Graphics (http://www.tungstengraphics.com) to
- * develop this driver.
- *
- **************************************************************************/
-/*
- */
-
-#include <drm/drmP.h>
-#include "psb_drv.h"
-#include "psb_reg.h"
-#include "psb_msvdx.h"
-#include "psb_intel_reg.h"
-#include "psb_powermgmt.h"
-
-
-/*
- * inline functions
- */
-static inline u32
-psb_pipestat(int pipe)
-{
-	if (pipe == 0)
-		return PIPEASTAT;
-	if (pipe == 1)
-		return PIPEBSTAT;
-	BUG();
-}
-
-static inline u32
-psb_pipe_event(int pipe)
-{
-	if (pipe == 0)
-		return PSB_IRQ_PIPEA_EVENT;
-	if (pipe == 1)
-		return PSB_IRQ_PIPEB_EVENT;
-	BUG();
-}
-
-static inline u32
-psb_pipeconf(int pipe)
-{
-	if (pipe == 0)
-		return PIPEACONF;
-	if (pipe == 1)
-		return PIPEBCONF;
-	BUG();
-}
-
-void
-psb_enable_pipestat(struct drm_psb_private *dev_priv, int pipe, u32 mask)
-{
-	if ((dev_priv->pipestat[pipe] & mask) != mask) {
-		u32 reg = psb_pipestat(pipe);
-		u32 writeVal = PSB_RVDC32(reg);
-
-		dev_priv->pipestat[pipe] |= mask;
-		/* Enable the interrupt, clear any pending status */
-		writeVal |= (mask | (mask >> 16));
-		PSB_WVDC32(writeVal, reg);
-		(void) PSB_RVDC32(reg);
-	}
-}
-
-void
-psb_disable_pipestat(struct drm_psb_private *dev_priv, int pipe, u32 mask)
-{
-	if ((dev_priv->pipestat[pipe] & mask) != 0) {
-		u32 reg = psb_pipestat(pipe);
-		u32 writeVal = PSB_RVDC32(reg);
-
-		dev_priv->pipestat[pipe] &= ~mask;
-		writeVal &= ~mask;
-		PSB_WVDC32(writeVal, reg);
-		(void) PSB_RVDC32(reg);
-	}
-}
-
-void
-mid_enable_pipe_event(struct drm_psb_private *dev_priv, int pipe)
-{
-	u32 pipe_event = psb_pipe_event(pipe);
-	dev_priv->vdc_irq_mask |= pipe_event;
-	PSB_WVDC32(~dev_priv->vdc_irq_mask, PSB_INT_MASK_R);
-	PSB_WVDC32(dev_priv->vdc_irq_mask, PSB_INT_ENABLE_R);
-}
-
-void
-mid_disable_pipe_event(struct drm_psb_private *dev_priv, int pipe)
-{
-	if (dev_priv->pipestat[pipe] == 0) {
-		u32 pipe_event = psb_pipe_event(pipe);
-		dev_priv->vdc_irq_mask &= ~pipe_event;
-		PSB_WVDC32(~dev_priv->vdc_irq_mask, PSB_INT_MASK_R);
-		PSB_WVDC32(dev_priv->vdc_irq_mask, PSB_INT_ENABLE_R);
-	}
-}
-
-/**
- * Display controller interrupt handler for vsync/vblank.
- *
- */
-static void mid_vblank_handler(struct drm_device *dev, uint32_t pipe)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-	/**
-	 * Using TE interrupt for B0 + command mode panels
-	 */
-
-	drm_handle_vblank(dev, pipe);
-	
-	if( dev_priv->psb_vsync_handler != NULL)
-		(*dev_priv->psb_vsync_handler)(dev,pipe);
-}
-
-/**
- * Display controller interrupt handler for pipe event.
- *
- */
-#define WAIT_STATUS_CLEAR_LOOP_COUNT 0xffff
-static void mid_pipe_event_handler(struct drm_device *dev, uint32_t pipe)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-
-	uint32_t pipe_stat_val = 0;
-	uint32_t pipe_stat_reg = psb_pipestat(pipe);
-	uint32_t pipe_enable = dev_priv->pipestat[pipe];
-	uint32_t pipe_status = dev_priv->pipestat[pipe] >> 16;
-	uint32_t i = 0, temp;
-	unsigned long irq_flags;
-
-	spin_lock_irqsave(&dev_priv->irqmask_lock, irq_flags);
-
-	pipe_stat_val = PSB_RVDC32(pipe_stat_reg);
-	pipe_stat_val &= pipe_enable | pipe_status;
-	pipe_stat_val &= pipe_stat_val >> 16;
-
-
-	spin_unlock_irqrestore(&dev_priv->irqmask_lock, irq_flags);
-	temp = PSB_RVDC32(pipe_stat_reg);
-        temp &=~(0xFFFF);
-        if (temp & PIPE_FIFO_UNDERRUN) {
-		DRM_DEBUG_KMS("Fifo underrun on pipe %d\n", pipe);
-                PSB_WVDC32(temp, pipe_stat_reg);
-		PSB_RVDC32(pipe_stat_reg);
-	}
-	/* clear the 2nd level interrupt status bits */
-	/**
-	* FIXME: shouldn't use while loop here. However, the interrupt
-	* status 'sticky' bits cannot be cleared by setting '1' to that
-	* bit once...
-	*/
-	for (i = 0; i < WAIT_STATUS_CLEAR_LOOP_COUNT; i ++) {
-		PSB_WVDC32(PSB_RVDC32(pipe_stat_reg), pipe_stat_reg);
-		(void) PSB_RVDC32(pipe_stat_reg);
-
-		if ((PSB_RVDC32(pipe_stat_reg) & pipe_status) == 0)
-			break;
-	}
-
-	if (i == WAIT_STATUS_CLEAR_LOOP_COUNT)
-		DRM_ERROR("%s, can't clear the status bits in pipe_stat_reg, its value = 0x%x. \n",
-			__FUNCTION__, PSB_RVDC32(pipe_stat_reg));
-
-	if ((pipe_stat_val & PIPE_DPST_EVENT_STATUS) &&
-	   (dev_priv->psb_dpst_state != NULL)) {
-		uint32_t pwm_reg = 0;
-		uint32_t hist_reg = 0;
-		u32 irqCtrl = 0;
-		struct dpst_guardband guardband_reg;
-		struct dpst_ie_histogram_control ie_hist_cont_reg;
-
-		hist_reg = PSB_RVDC32(HISTOGRAM_INT_CONTROL);
-
-		/* Determine if this is histogram or pwm interrupt */
-		if(hist_reg & HISTOGRAM_INT_CTRL_CLEAR) {
-			/* Notify UM of histogram interrupt */
-			psb_dpst_notify_change_um(DPST_EVENT_HIST_INTERRUPT,
-			dev_priv->psb_dpst_state);
-
-			/* disable dpst interrupts */
-			guardband_reg.data = PSB_RVDC32(HISTOGRAM_INT_CONTROL);
-			guardband_reg.interrupt_enable = 0;
-			guardband_reg.interrupt_status = 1;
-			PSB_WVDC32(guardband_reg.data, HISTOGRAM_INT_CONTROL);
-
-			ie_hist_cont_reg.data = PSB_RVDC32(HISTOGRAM_LOGIC_CONTROL);
-			ie_hist_cont_reg.ie_histogram_enable = 0;
-			PSB_WVDC32(ie_hist_cont_reg.data, HISTOGRAM_LOGIC_CONTROL);
-
-			irqCtrl = PSB_RVDC32(PIPEASTAT);
-			irqCtrl &= ~PIPE_DPST_EVENT_ENABLE;
-			PSB_WVDC32(irqCtrl, PIPEASTAT);
-		}
-		pwm_reg = PSB_RVDC32(PWM_CONTROL_LOGIC);
-		if((pwm_reg & PWM_PHASEIN_INT_ENABLE) &&
-		   !(pwm_reg & PWM_PHASEIN_ENABLE)) {
-			/* Notify UM of the phase complete */
-			psb_dpst_notify_change_um(DPST_EVENT_PHASE_COMPLETE,
-			dev_priv->psb_dpst_state);
-
-			/* Temporarily get phase mngr ready to generate
-			 * another interrupt until this can be moved to
-			 * user mode */
-			/* PSB_WVDC32(pwm_reg | 0x80010100 | PWM_PHASEIN_ENABLE,
-				   PWM_CONTROL_LOGIC); */
-		}
-	}
-
-	if (pipe_stat_val & PIPE_VBLANK_STATUS) {
-		mid_vblank_handler(dev, pipe);
-	}
-}
-
-/**
- * Display controller interrupt handler.
- */
-static void psb_vdc_interrupt(struct drm_device *dev, uint32_t vdc_stat)
-{
-	if (vdc_stat & PSB_IRQ_ASLE)
-		psb_intel_opregion_asle_intr(dev);
-
-	if (vdc_stat & PSB_IRQ_PIPEA_EVENT)
-		mid_pipe_event_handler(dev, 0);
-
-	if (vdc_stat & PSB_IRQ_PIPEB_EVENT)
-		mid_pipe_event_handler(dev, 1);
-}
-
-static void psb_hotplug_work_func(struct work_struct *work)
-{
-        struct drm_psb_private *dev_priv = container_of(work, struct drm_psb_private,
-							hotplug_work);                 
-        struct drm_device *dev = dev_priv->dev;
-
-        /* Just fire off a uevent and let userspace tell us what to do */
-        drm_helper_hpd_irq_event(dev);
-}                       
-
-irqreturn_t psb_irq_handler(DRM_IRQ_ARGS)
-{
-	struct drm_device *dev = (struct drm_device *) arg;
-	struct drm_psb_private *dev_priv = (struct drm_psb_private *) dev->dev_private;
-	uint32_t vdc_stat, dsp_int = 0, sgx_int = 0, msvdx_int = 0, hotplug_int = 0;
-	int handled = 0;
-	unsigned long irq_flags;
-
-/*	PSB_DEBUG_ENTRY("\n"); */
-
-	spin_lock_irqsave(&dev_priv->irqmask_lock, irq_flags);
-
-	vdc_stat = PSB_RVDC32(PSB_INT_IDENTITY_R);
-
-	if (vdc_stat & _PSB_DISP_ALL_IRQ_FLAG) {
-		PSB_DEBUG_IRQ("Got DISP interrupt\n");
-		dsp_int = 1;
-	}
-
-	if (vdc_stat & _PSB_IRQ_SGX_FLAG) {
-		PSB_DEBUG_IRQ("Got SGX interrupt\n");
-		sgx_int = 1;
-	}
-
-	if (vdc_stat & _PSB_IRQ_MSVDX_FLAG) {
-		PSB_DEBUG_IRQ("Got MSVDX interrupt\n");
-		msvdx_int = 1;
-	}
-
-	if (vdc_stat & PSB_IRQ_DISP_HOTSYNC) {
-		PSB_DEBUG_IRQ("Got hotplug interrupt\n");
-		hotplug_int = 1;
-	}
-
-	vdc_stat &= dev_priv->vdc_irq_mask;
-	spin_unlock_irqrestore(&dev_priv->irqmask_lock, irq_flags);
-
-	if (dsp_int) {
-		psb_vdc_interrupt(dev, vdc_stat);
-		handled = 1;
-	}
-
-	if (msvdx_int && ospm_power_is_hw_on(OSPM_VIDEO_DEC_ISLAND)) {
-		psb_msvdx_interrupt(dev);
-		handled = 1;
-	}
-
-	if (sgx_int) {
-		if (SYSPVRServiceSGXInterrupt(dev) != 0)
-			handled = 1;
-	}
-
-	if (hotplug_int) {
-		/* use system wq for now*/
-		schedule_work(&dev_priv->hotplug_work);
-		REG_WRITE(PORT_HOTPLUG_STAT, REG_READ(PORT_HOTPLUG_STAT));
-		handled = 1;
-	}
-
-	PSB_WVDC32(vdc_stat, PSB_INT_IDENTITY_R);
-	(void) PSB_RVDC32(PSB_INT_IDENTITY_R);
-	DRM_READMEMORYBARRIER();
-
-	if (!handled)
-		return IRQ_NONE;
-
-	return IRQ_HANDLED;
-}
-
-void psb_irq_preinstall(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = (struct drm_psb_private *) dev->dev_private;
-	psb_irq_preinstall_islands(dev, OSPM_ALL_ISLANDS);
-
-	INIT_WORK(&dev_priv->hotplug_work, psb_hotplug_work_func);
-	
-	REG_WRITE(PORT_HOTPLUG_EN, 0);
-	REG_WRITE(PORT_HOTPLUG_STAT, REG_READ(PORT_HOTPLUG_STAT));
-}
-
-/**
- * FIXME: should I remove display irq enable here??
- */
-void psb_irq_preinstall_islands(struct drm_device *dev, int hw_islands)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-	unsigned long irqflags;
-
-	/* PSB_DEBUG_ENTRY("\n"); */
-
-	spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
-
-	if (dev->vblank_enabled[0])
-		dev_priv->vdc_irq_mask |= PSB_IRQ_PIPEA_EVENT;
-	if (dev->vblank_enabled[1])
-		dev_priv->vdc_irq_mask |= PSB_IRQ_PIPEB_EVENT;
-
-	if (hw_islands & OSPM_GRAPHICS_ISLAND) {
-		dev_priv->vdc_irq_mask |= _PSB_IRQ_SGX_FLAG;
-	}
-
-	if (hw_islands & OSPM_VIDEO_DEC_ISLAND)
-		if (ospm_power_is_hw_on(OSPM_VIDEO_DEC_ISLAND))
-			dev_priv->vdc_irq_mask |= _PSB_IRQ_MSVDX_FLAG;
-
-	/* display hotplug */
-	dev_priv->vdc_irq_mask |= PSB_IRQ_DISP_HOTSYNC;
-
-	/* asle interrupt */
-	dev_priv->vdc_irq_mask |= PSB_IRQ_ASLE;
-
-	/*This register is safe even if display island is off*/
-	/* unmask all */
-	PSB_WVDC32(~dev_priv->vdc_irq_mask, PSB_INT_MASK_R);
-
-	spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags);
-}
-
-int psb_irq_postinstall(struct drm_device *dev)
-{
-	return psb_irq_postinstall_islands(dev, OSPM_ALL_ISLANDS);
-}
-
-int psb_irq_postinstall_islands(struct drm_device *dev, int hw_islands)
-{
-
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-	unsigned long irqflags;
-	u32 temp;
-
-	/* PSB_DEBUG_ENTRY("\n"); */
-
-	spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
-
-	/*This register is safe even if display island is off*/
-	PSB_WVDC32(dev_priv->vdc_irq_mask, PSB_INT_ENABLE_R);
-
-	if (true/*powermgmt_is_hw_on(dev->pdev, PSB_DISPLAY_ISLAND)*/) {	
-		if (dev->vblank_enabled[0])
-			psb_enable_pipestat(dev_priv, 0,
-					    PIPE_VBLANK_INTERRUPT_ENABLE);
-		else
-			psb_disable_pipestat(dev_priv, 0,
-					     PIPE_VBLANK_INTERRUPT_ENABLE);
-
-		if (dev->vblank_enabled[1])
-			psb_enable_pipestat(dev_priv, 1,
-					    PIPE_VBLANK_INTERRUPT_ENABLE);
-		else
-			psb_disable_pipestat(dev_priv, 1,
-					     PIPE_VBLANK_INTERRUPT_ENABLE);
-	}
-
-	/* Just enable all display ports for now.
-	 * This can be optimized to only enable ports that really exists.
-	 */
-	temp = REG_READ(PORT_HOTPLUG_EN);
-	temp |= HDMIB_HOTPLUG_INT_EN; 
-	temp |= HDMIC_HOTPLUG_INT_EN; 
-	temp |= HDMID_HOTPLUG_INT_EN; 
-	temp |= CRT_HOTPLUG_INT_EN; 
-	REG_WRITE(PORT_HOTPLUG_EN, temp);
-
-	if (hw_islands & OSPM_VIDEO_DEC_ISLAND)
-		if (true/*powermgmt_is_hw_on(dev->pdev, PSB_VIDEO_DEC_ISLAND)*/)
-			psb_msvdx_enableirq(dev);
-
-	spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags);
-
-	return 0;
-}
-
-void psb_irq_uninstall(struct drm_device *dev)
-{
-	psb_irq_uninstall_islands(dev, OSPM_ALL_ISLANDS);
-}
-
-void psb_irq_uninstall_islands(struct drm_device *dev, int hw_islands)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-	unsigned long irqflags;
-
-	/* PSB_DEBUG_ENTRY("\n"); */
-
-	spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
-	
-	if (true/*powermgmt_is_hw_on(dev->pdev, PSB_DISPLAY_ISLAND)*/) {
-		if (dev->vblank_enabled[0])
-			psb_disable_pipestat(dev_priv, 0,
-					     PIPE_VBLANK_INTERRUPT_ENABLE);
-
-		if (dev->vblank_enabled[1])
-			psb_disable_pipestat(dev_priv, 1,
-					     PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	}
-	dev_priv->vdc_irq_mask &= _PSB_IRQ_SGX_FLAG |
-				  _PSB_IRQ_MSVDX_FLAG;
-
-	/*TODO: remove follwoing code*/
-	if (hw_islands & OSPM_GRAPHICS_ISLAND) {
-		dev_priv->vdc_irq_mask &= ~_PSB_IRQ_SGX_FLAG;
-	}
-
-	if ((hw_islands & OSPM_VIDEO_DEC_ISLAND))
-		dev_priv->vdc_irq_mask &= ~_PSB_IRQ_MSVDX_FLAG;
-
-	/*These two registers are safe even if display island is off*/
-	PSB_WVDC32(~dev_priv->vdc_irq_mask, PSB_INT_MASK_R);
-	PSB_WVDC32(dev_priv->vdc_irq_mask, PSB_INT_ENABLE_R);
-
-	wmb();
-
-	/*This register is safe even if display island is off*/
-	PSB_WVDC32(PSB_RVDC32(PSB_INT_IDENTITY_R), PSB_INT_IDENTITY_R);
-
-	if (hw_islands & OSPM_VIDEO_DEC_ISLAND)
-		if (ospm_power_is_hw_on(OSPM_VIDEO_DEC_ISLAND))
-			psb_msvdx_disableirq(dev);
-
-	spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags);
-}
-
-void psb_irq_turn_on_dpst(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv =
-		(struct drm_psb_private *) dev->dev_private;
-	u32 hist_reg;
-	u32 pwm_reg;
-
-	PSB_WVDC32(BIT31, HISTOGRAM_LOGIC_CONTROL);
-	hist_reg = PSB_RVDC32(HISTOGRAM_LOGIC_CONTROL);
-	PSB_WVDC32(BIT31, HISTOGRAM_INT_CONTROL);
-	hist_reg = PSB_RVDC32(HISTOGRAM_INT_CONTROL);
-
-	PSB_WVDC32(0x80010100, PWM_CONTROL_LOGIC);
-	pwm_reg = PSB_RVDC32(PWM_CONTROL_LOGIC);
-	PSB_WVDC32(pwm_reg | PWM_PHASEIN_ENABLE | PWM_PHASEIN_INT_ENABLE,
-		   PWM_CONTROL_LOGIC);
-	pwm_reg = PSB_RVDC32(PWM_CONTROL_LOGIC);
-
-	/* pipe B */
-	psb_enable_pipestat(dev_priv, 1, PIPE_DPST_EVENT_ENABLE);
-
-	hist_reg = PSB_RVDC32(HISTOGRAM_INT_CONTROL);
-	PSB_WVDC32(hist_reg | HISTOGRAM_INT_CTRL_CLEAR,HISTOGRAM_INT_CONTROL);
-	pwm_reg = PSB_RVDC32(PWM_CONTROL_LOGIC);
-	PSB_WVDC32(pwm_reg | 0x80010100 | PWM_PHASEIN_ENABLE, PWM_CONTROL_LOGIC);
-		
-}
-
-int psb_irq_enable_dpst(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv =
-		(struct drm_psb_private *) dev->dev_private;
-	unsigned long irqflags;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
-
-	/* enable DPST */
-	/* DPST always on LVDS pipe B */
-	mid_enable_pipe_event(dev_priv, 1);
-	psb_irq_turn_on_dpst(dev);
-
-	spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags);
-	return 0;
-}
-
-void psb_irq_turn_off_dpst(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-	u32 pwm_reg;
-
-	PSB_WVDC32(0x00000000, HISTOGRAM_INT_CONTROL);
-
-	/* on pipe B */
-	psb_disable_pipestat(dev_priv, 1, PIPE_DPST_EVENT_ENABLE);
-
-	pwm_reg = PSB_RVDC32(PWM_CONTROL_LOGIC);
-	PSB_WVDC32(pwm_reg & !(PWM_PHASEIN_INT_ENABLE), PWM_CONTROL_LOGIC);
-	pwm_reg = PSB_RVDC32(PWM_CONTROL_LOGIC);
-}
-
-int psb_irq_disable_dpst(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-	unsigned long irqflags;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
-
-	/* on pipe B */
-	mid_disable_pipe_event(dev_priv, 1);
-	psb_irq_turn_off_dpst(dev);
-
-	spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags);
-
-	return 0;
-}
-
-/*
- * It is used to enable VBLANK interrupt
- */
-int psb_enable_vblank(struct drm_device *dev, int pipe)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-	unsigned long irqflags;
-	uint32_t reg_val = 0;
-	uint32_t pipeconf_reg = psb_pipeconf(pipe);
-
-	PSB_DEBUG_ENTRY("\n");
-
-
-	reg_val = REG_READ(pipeconf_reg);
-
-	if (!(reg_val & PIPEACONF_ENABLE))
-		return -EINVAL;
-
-	spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
-
-	mid_enable_pipe_event(dev_priv, pipe);
-	psb_enable_pipestat(dev_priv, pipe, PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags);
-
-	return 0;
-}
-
-/*
- * It is used to disable VBLANK interrupt
- */
-void psb_disable_vblank(struct drm_device *dev, int pipe)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-	unsigned long irqflags;
-
-	PSB_DEBUG_ENTRY("\n");
-
-	spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
-
-	mid_disable_pipe_event(dev_priv, pipe);
-	psb_disable_pipestat(dev_priv, pipe, PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags);
-}
-
-/* Called from drm generic code, passed a 'crtc', which
- * we use as a pipe index
- */
-u32 psb_get_vblank_counter(struct drm_device *dev, int pipe)
-{
-	uint32_t high_frame = PIPEAFRAMEHIGH;
-	uint32_t low_frame = PIPEAFRAMEPIXEL;
-	uint32_t pipeconf_reg = PIPEACONF;
-	uint32_t reg_val = 0;
-	uint32_t high1 = 0, high2 = 0, low = 0, count = 0;
-
-	switch (pipe) {
-	case 0:
-		break;
-	case 1:
-		high_frame = PIPEBFRAMEHIGH;
-		low_frame = PIPEBFRAMEPIXEL;
-		pipeconf_reg = PIPEBCONF;
-		break;
-	case 2:
-		high_frame = PIPECFRAMEHIGH;
-		low_frame = PIPECFRAMEPIXEL;
-		pipeconf_reg = PIPECCONF;
-		break;
-	default:
-		DRM_ERROR("%s, invalded pipe. \n", __FUNCTION__);
-		return 0;
-	}
-
-	reg_val = REG_READ(pipeconf_reg);
-
-	if (!(reg_val & PIPEACONF_ENABLE)) {
-		DRM_ERROR("trying to get vblank count for disabled pipe %d\n", pipe);
-		goto psb_get_vblank_counter_exit;
-	}
-
-	/*
-	 * High & low register fields aren't synchronized, so make sure
-	 * we get a low value that's stable across two reads of the high
-	 * register.
-	 */
-	do {
-		high1 = ((REG_READ(high_frame) & PIPE_FRAME_HIGH_MASK) >>
-			 PIPE_FRAME_HIGH_SHIFT);
-		low =  ((REG_READ(low_frame) & PIPE_FRAME_LOW_MASK) >>
-			PIPE_FRAME_LOW_SHIFT);
-		high2 = ((REG_READ(high_frame) & PIPE_FRAME_HIGH_MASK) >>
-			 PIPE_FRAME_HIGH_SHIFT);
-	} while (high1 != high2);
-
-	count = (high1 << 8) | low;
-
-psb_get_vblank_counter_exit:
-
-	return count;
-}
-
-/* 
- * psb_intel_enable_asle - enable ASLE interrupt for OpRegion
- */
-void psb_intel_enable_asle(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = (struct drm_psb_private *) dev->dev_private;
-
-	psb_enable_pipestat(dev_priv, 0, PIPE_LEGACY_BLC_EVENT_ENABLE);
-	psb_enable_pipestat(dev_priv, 1, PIPE_LEGACY_BLC_EVENT_ENABLE);
-}
-
diff --git a/drivers/staging/cdv/drv/psb_irq.h b/drivers/staging/cdv/drv/psb_irq.h
deleted file mode 100644
index c1ce91f..0000000
--- a/drivers/staging/cdv/drv/psb_irq.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *    Benjamin Defnet <benjamin.r.defnet@intel.com>
- *    Rajesh Poornachandran <rajesh.poornachandran@intel.com>
- *
- **************************************************************************/
-
-#ifndef _SYSIRQ_H_
-#define _SYSIRQ_H_
-
-#include <drm/drmP.h>
-
-bool sysirq_init(struct drm_device *dev);
-void sysirq_uninit(struct drm_device *dev);
-
-void psb_irq_preinstall(struct drm_device *dev);
-int  psb_irq_postinstall(struct drm_device *dev);
-void psb_irq_uninstall(struct drm_device *dev);
-irqreturn_t psb_irq_handler(DRM_IRQ_ARGS);
-
-void psb_irq_preinstall_islands(struct drm_device *dev, int hw_islands);
-int  psb_irq_postinstall_islands(struct drm_device *dev, int hw_islands);
-void psb_irq_uninstall_islands(struct drm_device *dev, int hw_islands);
-
-int psb_irq_enable_dpst(struct drm_device *dev);
-int psb_irq_disable_dpst(struct drm_device *dev);
-void psb_irq_turn_on_dpst(struct drm_device *dev);
-void psb_irq_turn_off_dpst(struct drm_device *dev);
-int  psb_enable_vblank(struct drm_device *dev, int pipe);
-void psb_disable_vblank(struct drm_device *dev, int pipe);
-u32  psb_get_vblank_counter(struct drm_device *dev, int pipe);
-
-#endif //_SYSIRQ_H_
diff --git a/drivers/staging/cdv/drv/psb_powermgmt.c b/drivers/staging/cdv/drv/psb_powermgmt.c
deleted file mode 100644
index cfe1395..0000000
--- a/drivers/staging/cdv/drv/psb_powermgmt.c
+++ /dev/null
@@ -1,875 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
-
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Authors:
- *    Benjamin Defnet <benjamin.r.defnet@intel.com>
- *    Rajesh Poornachandran <rajesh.poornachandran@intel.com>
- *
- */
-#include "psb_powermgmt.h"
-#include "psb_drv.h"
-#include "psb_intel_reg.h"
-#include "psb_msvdx.h"
-#include <linux/mutex.h>
-#include <asm/intel_scu_ipc.h>
-#include <linux/pm_runtime.h>
-
-extern IMG_UINT32 gui32SGXDeviceID;
-extern IMG_UINT32 gui32MRSTDisplayDeviceID;
-extern IMG_UINT32 gui32MRSTMSVDXDeviceID;
-extern IMG_UINT32 gui32MRSTTOPAZDeviceID;
-
-struct drm_device *gpDrmDevice = NULL;
-static struct mutex g_ospm_mutex;
-static bool gbSuspendInProgress = false;
-static bool gbResumeInProgress = false;
-static int g_hw_power_status_mask;
-static atomic_t g_graphics_access_count;
-static atomic_t g_videodec_access_count;
-int allow_runtime_pm = 0;
-
-void ospm_power_island_up(int hw_islands);
-void ospm_power_island_down(int hw_islands);
-static bool gbSuspended = false;
-bool gbgfxsuspended = false;
-extern int enter_dsr;
-
-#if 1
-static int ospm_runtime_check_msvdx_hw_busy(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-	int ret = 1;
-	
-	if (!ospm_power_is_hw_on(OSPM_VIDEO_DEC_ISLAND)) {
-		/*printk(KERN_ALERT "%s VIDEO DEC HW is not on\n", __func__); */
-		ret = -1;
-		goto out;
-	}
-	
-	msvdx_priv->msvdx_hw_busy = REG_READ(0x20D0) & (0x1 << 9);
-	if (psb_check_msvdx_idle(dev)){
-		/*printk(KERN_ALERT "%s video decode hw busy\n", __func__); */
-		ret = 1;
-	}
-	else {
-		/*printk(KERN_ALERT "%s video decode hw idle\n", __func__); */
-		ret = 0;
-	}
-out:
-	return ret;
-}
-
-static int ospm_runtime_pm_msvdx_suspend(struct drm_device *dev)
-{
-	int ret = 0;
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-
-	/*printk(KERN_ALERT "enter %s\n", __func__);*/
-
-	if (!ospm_power_is_hw_on(OSPM_VIDEO_DEC_ISLAND)) {
-		/*printk(KERN_ALERT "%s VIDEO DEC HW is not on\n", __func__);*/
-		goto out;
-	}
-
-	if (atomic_read(&g_videodec_access_count)) {
-		/*printk(KERN_ALERT "%s videodec access count exit\n", __func__);*/
-		ret = -1;
-		goto out;
-	}
-
-	msvdx_priv->msvdx_hw_busy = REG_READ(0x20D0) & (0x1 << 9);
-	if (psb_check_msvdx_idle(dev)){
-		/*printk(KERN_ALERT "%s video decode hw busy exit\n", __func__);*/
-		ret = -2;
-		goto out;
-	}
-	
-	MSVDX_NEW_PMSTATE(dev, msvdx_priv, PSB_PMSTATE_POWERDOWN);
-	psb_irq_uninstall_islands(gpDrmDevice, OSPM_VIDEO_DEC_ISLAND);
-	psb_msvdx_save_context(dev);
-	ospm_power_island_down(OSPM_VIDEO_DEC_ISLAND);
-	/*printk(KERN_ALERT "%s done\n", __func__);*/
-out:
-	return ret;
-}
-
-static int ospm_runtime_pm_msvdx_resume(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-	
-	/*printk(KERN_ALERT "ospm_runtime_pm_msvdx_resume\n");*/
-	
-	MSVDX_NEW_PMSTATE(dev, msvdx_priv, PSB_PMSTATE_POWERUP);
-	
-	psb_msvdx_restore_context(dev);
-
-	return 0;
-}
-
-#endif
-
-#ifdef FIX_OSPM_POWER_DOWN
-void ospm_apm_power_down_msvdx(struct drm_device *dev)
-{
-	return;
-	mutex_lock(&g_ospm_mutex);
-
-	if (atomic_read(&g_videodec_access_count))
-		goto out;
-	if (psb_check_msvdx_idle(dev))
-		goto out;
-
-	gbSuspendInProgress = true;
-	psb_msvdx_save_context(dev);
-#ifdef FIXME_MRST_VIDEO_DEC
-	ospm_power_island_down(OSPM_VIDEO_DEC_ISLAND);
-#endif
-	gbSuspendInProgress = false;
-out:
-	mutex_unlock(&g_ospm_mutex);
-	return;
-}
-
-#else
-void ospm_apm_power_down_msvdx(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-
-	mutex_lock(&g_ospm_mutex);
-	if (!ospm_power_is_hw_on(OSPM_VIDEO_DEC_ISLAND))
-		goto out;
-	
-	if (atomic_read(&g_videodec_access_count))
-		goto out;
-	if (psb_check_msvdx_idle(dev))
-		goto out;
-
-	gbSuspendInProgress = true;
-	psb_msvdx_save_context(dev);
-	ospm_power_island_down(OSPM_VIDEO_DEC_ISLAND);
-	gbSuspendInProgress = false;
-	MSVDX_NEW_PMSTATE(dev, msvdx_priv, PSB_PMSTATE_POWERDOWN);
-out:
-	mutex_unlock(&g_ospm_mutex);
-	return;
-}
-
-#endif
-/*
- * ospm_power_init
- *
- * Description: Initialize this ospm power management module
- */
-void ospm_power_init(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = (struct drm_psb_private *)dev->dev_private;
-
-	gpDrmDevice = dev;
-
-	if (IS_CDV(dev))
-	{
-		dev_priv->apm_reg = CDV_MSG_READ32(PSB_PUNIT_PORT, PSB_APMBA);
-		dev_priv->ospm_base = CDV_MSG_READ32(PSB_PUNIT_PORT, PSB_OSPMBA);
-	}
-
-	DRM_DEBUG("CDV: power apm io base 0x%x, ospm io base 0x%x\n", dev_priv->apm_reg,
-		  dev_priv->ospm_base);
-
-	dev_priv->apm_base = dev_priv->apm_reg & 0xffff;
-	dev_priv->ospm_base &= 0xffff;
-
-	mutex_init(&g_ospm_mutex);
-	g_hw_power_status_mask = OSPM_GRAPHICS_ISLAND | OSPM_VIDEO_DEC_ISLAND;
-	atomic_set(&g_graphics_access_count, 0);
-	atomic_set(&g_videodec_access_count, 0);
-
-#ifdef OSPM_STAT
-	dev_priv->graphics_state = PSB_PWR_STATE_ON;
-	dev_priv->gfx_last_mode_change = jiffies;
-	dev_priv->gfx_on_time = 0;
-	dev_priv->gfx_off_time = 0;
-#endif
-}
-
-/*
- * ospm_power_uninit
- *
- * Description: Uninitialize this ospm power management module
- */
-void ospm_power_uninit(void)
-{
-	mutex_destroy(&g_ospm_mutex);
-    	pm_runtime_disable(&gpDrmDevice->pdev->dev);
-	pm_runtime_set_suspended(&gpDrmDevice->pdev->dev);
-}
-
-/*
- * helper function to turn on/off outputs.
- */
-static void ospm_output_dpms(struct drm_device *dev, bool on)
-{
-	int state = on ? DRM_MODE_DPMS_ON : DRM_MODE_DPMS_OFF;
-	struct drm_connector *connector;
-	
-	list_for_each_entry(connector, &dev->mode_config.connector_list, head)
-		connector->funcs->dpms(connector, state);
-}
-
-/*
- * powermgmt_suspend_display
- *
- * Description: Suspend the display hardware saving state and disabling
- * as necessary.
- */
-void ospm_suspend_display(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-
-	DRM_DEBUG("\n");
-
-	pci_read_config_byte(dev->pdev, 0xF4, &dev_priv->saveLBB);
-
-	mutex_lock(&dev->struct_mutex);
-
-	dev_priv->saveDSPCLK_GATE_D = REG_READ(DSPCLK_GATE_D);
-	dev_priv->saveRAMCLK_GATE_D = REG_READ(RAMCLK_GATE_D);
-
-	dev_priv->saveDSPARB = REG_READ(DSPARB);
-	dev_priv->saveDSPFW[0] = REG_READ(DSPFW1);
-	dev_priv->saveDSPFW[1] = REG_READ(DSPFW2);
-	dev_priv->saveDSPFW[2] = REG_READ(DSPFW3);
-	dev_priv->saveDSPFW[3] = REG_READ(DSPFW4);
-	dev_priv->saveDSPFW[4] = REG_READ(DSPFW5);
-	dev_priv->saveDSPFW[5] = REG_READ(DSPFW6);
-
-	dev_priv->saveADPA = REG_READ(ADPA);
-
-	dev_priv->savePP_CONTROL = REG_READ(PP_CONTROL);
-	dev_priv->savePFIT_PGM_RATIOS = REG_READ(PFIT_PGM_RATIOS);
-	dev_priv->saveBLC_PWM_CTL = REG_READ(BLC_PWM_CTL);
-	dev_priv->saveBLC_PWM_CTL2 = REG_READ(BLC_PWM_CTL2);
-	dev_priv->saveLVDS = REG_READ(LVDS);
-
-	dev_priv->savePFIT_CONTROL = REG_READ(PFIT_CONTROL);
-
-	dev_priv->savePP_ON_DELAYS = REG_READ(PP_ON_DELAYS);
-	dev_priv->savePP_OFF_DELAYS = REG_READ(PP_OFF_DELAYS);
-	dev_priv->savePP_DIVISOR = REG_READ(PP_DIVISOR);
-
-	dev_priv->saveVGACNTRL = REG_READ(VGACNTRL);
-
-	dev_priv->saveIER = REG_READ(PSB_INT_ENABLE_R);
-	dev_priv->saveIMR = REG_READ(PSB_INT_MASK_R);
-
-	ospm_output_dpms(dev, false);
- 
-	mutex_unlock(&dev->struct_mutex);
-}
-
-/*
- * ospm_resume_display
- *
- * Description: Resume the display hardware restoring state and enabling
- * as necessary.
- */
-void ospm_resume_display(struct pci_dev *pdev)
-{
-	struct drm_device *dev = pci_get_drvdata(pdev);
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	u32 temp;
-
-	DRM_DEBUG("\n");
-
-	/* just restore page table ptr */
-	PSB_WVDC32(dev_priv->pg->pge_ctl | _PSB_PGETBL_ENABLED,
-		   PSB_PGETBL_CTL);
-	(void) PSB_RVDC32(PSB_PGETBL_CTL);
-
-	pci_write_config_byte(dev->pdev, 0xF4, dev_priv->saveLBB);
-
-	mutex_lock(&dev->struct_mutex);
-
-	REG_WRITE(DSPCLK_GATE_D, dev_priv->saveDSPCLK_GATE_D);
-	REG_WRITE(RAMCLK_GATE_D, dev_priv->saveRAMCLK_GATE_D); 
-
-	/* BIOS does below anyway */
-	REG_WRITE(DPIO_CFG, 0);
-	REG_WRITE(DPIO_CFG, DPIO_MODE_SELECT_0 | DPIO_CMN_RESET_N);
-
-	temp = REG_READ(DPLL_A);
-	if ((temp & DPLL_SYNCLOCK_ENABLE) == 0) {
-		REG_WRITE(DPLL_A, temp | DPLL_SYNCLOCK_ENABLE);
-		REG_READ(DPLL_A);
-	}
-
-	temp = REG_READ(DPLL_B);
-	if ((temp & DPLL_SYNCLOCK_ENABLE) == 0) {
-		REG_WRITE(DPLL_B, temp | DPLL_SYNCLOCK_ENABLE);
-		REG_READ(DPLL_B);
-	}
- 
-	udelay(500);
-
-	REG_WRITE(DSPFW1, dev_priv->saveDSPFW[0]);
-	REG_WRITE(DSPFW2, dev_priv->saveDSPFW[1]);
-	REG_WRITE(DSPFW3, dev_priv->saveDSPFW[2]);
-	REG_WRITE(DSPFW4, dev_priv->saveDSPFW[3]);
-	REG_WRITE(DSPFW5, dev_priv->saveDSPFW[4]);
-	REG_WRITE(DSPFW6, dev_priv->saveDSPFW[5]);
-
-	REG_WRITE(DSPARB, dev_priv->saveDSPARB);
-	REG_WRITE(ADPA, dev_priv->saveADPA);
-
-	REG_WRITE(BLC_PWM_CTL2, dev_priv->saveBLC_PWM_CTL2);
-	REG_WRITE(LVDS, dev_priv->saveLVDS);
-	REG_WRITE(PFIT_CONTROL, dev_priv->savePFIT_CONTROL);
-	REG_WRITE(PFIT_PGM_RATIOS, dev_priv->savePFIT_PGM_RATIOS);
-	REG_WRITE(BLC_PWM_CTL, dev_priv->saveBLC_PWM_CTL);
-	REG_WRITE(PP_ON_DELAYS, dev_priv->savePP_ON_DELAYS);
-	REG_WRITE(PP_OFF_DELAYS, dev_priv->savePP_OFF_DELAYS);
-	REG_WRITE(PP_DIVISOR, dev_priv->savePP_DIVISOR);
-	REG_WRITE(PP_CONTROL, dev_priv->savePP_CONTROL);
-
-	REG_WRITE(VGACNTRL, dev_priv->saveVGACNTRL);
-
-	REG_WRITE(PSB_INT_ENABLE_R, dev_priv->saveIER);
-	REG_WRITE(PSB_INT_MASK_R, dev_priv->saveIMR);
-
-	mutex_unlock(&dev->struct_mutex);
-
-	drm_mode_config_reset(dev);                                                                                                                                               
-
-	ospm_output_dpms(dev, true);
-
-	/* Resume the modeset for every activated CRTC */                                                                                                                         
-	drm_helper_resume_force_mode(dev);
-}
-
-/*
- * ospm_suspend_pci
- *
- * Description: Suspend the pci device saving state and disabling
- * as necessary.
- */
-static void ospm_suspend_pci(struct pci_dev *pdev)
-{
-
-	if (gbSuspended)
-		return;
-
-	DRM_DEBUG("\n");
-
-	pci_save_state(pdev);
-
-	pci_disable_device(pdev);
-	pci_set_power_state(pdev, PCI_D3hot);
-
-	gbSuspended = true;
-	gbgfxsuspended = true;
-}
-
-/*
- * ospm_resume_pci
- *
- * Description: Resume the pci device restoring state and enabling
- * as necessary.
- */
-static bool ospm_resume_pci(struct pci_dev *pdev)
-{
-	int ret = 0;
-
-	if (!gbSuspended)
-		return true;
-
-	DRM_DEBUG("\n");
-
-	pci_set_power_state(pdev, PCI_D0);
-	pci_restore_state(pdev);
-
-	ret = pci_enable_device(pdev);
-
-	if (ret != 0)
-		DRM_ERROR("ospm_resume_pci: pci_enable_device failed: %d\n", ret);
-	else
-		gbSuspended = false;
-
-	pci_set_master(pdev);
-
-	return !gbSuspended;
-}
-
-/*
- * ospm_power_suspend
- *
- * Description: OSPM is telling our driver to suspend so save state
- * and power down all hardware.
- */
-int ospm_power_suspend(struct pci_dev *pdev, pm_message_t state)
-{
-        int ret = 0;
-        int graphics_access_count;
-        int videodec_access_count;
-    	bool suspend_pci = true; 
-
-	if(gbSuspendInProgress || gbResumeInProgress)
-        {
-                DRM_ERROR("OSPM_GFX_DPK: %s system BUSY \n", __func__);
-                return  -EBUSY;
-        }
-
-        mutex_lock(&g_ospm_mutex);
-
-        if (!gbSuspended) {
-                graphics_access_count = atomic_read(&g_graphics_access_count);
-                videodec_access_count = atomic_read(&g_videodec_access_count);
-
-                if (!ret) {
-                        gbSuspendInProgress = true;
-
-			ospm_suspend_display(gpDrmDevice);
-
-			drm_irq_uninstall(gpDrmDevice);
-			
-			/* Turn off PVR service and power */
-			PVRSRVDriverSuspend(gpDrmDevice, state);
-
-			/* FIXME: video driver support for Linux Runtime PM */
-                        if (ospm_runtime_pm_msvdx_suspend(gpDrmDevice) != 0) {
-				suspend_pci = false;
-                        }
-
-                        if (suspend_pci == true) {
-				ospm_suspend_pci(pdev);
-                        }
-                        gbSuspendInProgress = false;
-                } else {
-                        DRM_DEBUG("ospm_power_suspend: device busy: graphics %d videodec %d\n",
-				  graphics_access_count, videodec_access_count);
-                }
-        }
-
-
-        mutex_unlock(&g_ospm_mutex);
-        return ret;
-}
-
-static void ospm_power_island_wait(u32 reg, u32 mask, u32 target)
-{
-	int loop_count = 5;
-	u32 pwr_sts;
-
-	while (loop_count--) {
-		pwr_sts = inl(reg);
-
-		if ((pwr_sts & mask) == target)
-			break;
-		else
-			udelay(10);
-	}
-}
-
-/*
- * ospm_power_island_up
- *
- * Description: Restore power to the specified island(s) (powergating)
- */
-void ospm_power_island_up(int hw_islands)
-{
-	u32 pwr_cnt = 0;
-	u32 pwr_mask = 0;
-	struct drm_psb_private *dev_priv =
-		(struct drm_psb_private *) gpDrmDevice->dev_private;
-
-	if (hw_islands & ~(OSPM_GRAPHICS_ISLAND | OSPM_VIDEO_DEC_ISLAND))
-		return;
-
-	pwr_cnt = inl(dev_priv->apm_base + PSB_APM_CMD);
-
-	pwr_mask = 0;
-
-	if (hw_islands & OSPM_GRAPHICS_ISLAND) {
-		pwr_cnt &= ~PSB_PWRGT_GFX_MASK;
-		/* Only the BIT1 is used */
-		pwr_cnt |= PSB_PWRGT_GFX_ON;
-		pwr_mask = PSB_PWRGT_GFX_MASK;
-
-#ifdef OSPM_STAT
-			if (dev_priv->graphics_state == PSB_PWR_STATE_OFF) {
-				dev_priv->gfx_off_time += (jiffies - dev_priv->gfx_last_mode_change) * 1000 / HZ;
-				dev_priv->gfx_last_mode_change = jiffies;
-				dev_priv->graphics_state = PSB_PWR_STATE_ON;
-				dev_priv->gfx_on_cnt++;
-			}
-#endif
-		outl(pwr_cnt, dev_priv->apm_base + PSB_APM_CMD);
-		ospm_power_island_wait(dev_priv->apm_base + PSB_APM_STS, pwr_mask, PSB_PWRGT_GFX_D0);
-	}
-
-	if (hw_islands & OSPM_VIDEO_DEC_ISLAND) {
-		pwr_cnt &= ~PSB_PWRGT_VID_DEC_MASK;
-		pwr_cnt |= PSB_PWRGT_VID_DEC_ON; 
-		pwr_mask = PSB_PWRGT_VID_DEC_MASK;
-
-		outl(pwr_cnt, dev_priv->apm_base + PSB_APM_CMD);
-		ospm_power_island_wait(dev_priv->apm_base + PSB_APM_STS, pwr_mask, PSB_PWRGT_VID_DEC_D0);
-	}
-
-	g_hw_power_status_mask |= hw_islands;
-}
-
-/*
- * ospm_power_resume
- */
-int ospm_power_resume(struct pci_dev *pdev)
-{
-	if(gbSuspendInProgress || gbResumeInProgress)
-        {
-                DRM_ERROR("OSPM_GFX_DPK: %s hw_island: Suspend || gbResumeInProgress!!!! \n", __func__);
-                return 0;
-        }
-
-        mutex_lock(&g_ospm_mutex);
-
-	DRM_DEBUG("\n");
-
-  	gbResumeInProgress = true;
-
-        ospm_resume_pci(pdev);
-
-	/* resume PVR power island and service */
-	PVRSRVDriverResume(gpDrmDevice);
-
-	ospm_resume_display(gpDrmDevice->pdev);
-
-	drm_irq_install(gpDrmDevice);
-	
-	gbResumeInProgress = false;
-
-        mutex_unlock(&g_ospm_mutex);
-
-	return 0;
-}
-
-
-/*
- * ospm_power_island_down
- *
- * Description: Cut power to the specified island(s) (powergating)
- */
-void ospm_power_island_down(int islands)
-{
-	u32 pwr_cnt = 0;
-	u32 pwr_mask = 0;
-
-	struct drm_psb_private *dev_priv =
-		(struct drm_psb_private *) gpDrmDevice->dev_private;
-
-	if (islands & ~(OSPM_GRAPHICS_ISLAND | OSPM_VIDEO_DEC_ISLAND))
-		return;
-
-	pwr_cnt = inl(dev_priv->apm_base + PSB_APM_CMD);
-
-	g_hw_power_status_mask &= ~islands;
-
-	if (islands & OSPM_GRAPHICS_ISLAND) {
-		/* Turn off the SGX Power Island */
-		pwr_cnt &= ~PSB_PWRGT_GFX_MASK;
-		pwr_cnt |= PSB_PWRGT_GFX_OFF;
-		pwr_mask = PSB_PWRGT_GFX_MASK;
-
-#ifdef OSPM_STAT
-		if (dev_priv->graphics_state == PSB_PWR_STATE_ON) {
-			dev_priv->gfx_on_time += (jiffies - dev_priv->gfx_last_mode_change) * 1000 / HZ;
-			dev_priv->gfx_last_mode_change = jiffies;
-			dev_priv->graphics_state = PSB_PWR_STATE_OFF;
-			dev_priv->gfx_off_cnt++;
-		}
-#endif
-		outl(pwr_cnt, dev_priv->apm_base + PSB_APM_CMD);
-
-		ospm_power_island_wait(dev_priv->apm_base + PSB_APM_STS, pwr_mask, PSB_PWRGT_GFX_D3);
-
-	}
-
-	if (islands & OSPM_VIDEO_DEC_ISLAND) {
-		/* Turn off the MSVDX power island */
-		pwr_cnt &= ~PSB_PWRGT_VID_DEC_MASK;
-		pwr_cnt |= PSB_PWRGT_VID_DEC_OFF;
-		pwr_mask = PSB_PWRGT_VID_DEC_MASK;
-
-		outl(pwr_cnt, dev_priv->apm_base + PSB_APM_CMD);
-
-		ospm_power_island_wait(dev_priv->apm_base + PSB_APM_STS, pwr_mask, PSB_PWRGT_VID_DEC_D3);
-	}
-}
-
-
-/*
- * ospm_power_is_hw_on
- *
- * Description: do an instantaneous check for if the specified islands
- * are on.  Only use this in cases where you know the g_state_change_mutex
- * is already held such as in irq install/uninstall.  Otherwise, use
- * ospm_power_using_hw_begin().
- */
-bool ospm_power_is_hw_on(int hw_islands)
-{
-	return ((g_hw_power_status_mask & hw_islands) == hw_islands) ? true:false;
-}
-
-/*
- * ospm_power_using_hw_begin
- *
- * Description: Notify PowerMgmt module that you will be accessing the
- * specified island's hw so don't power it off.  If force_on is true,
- * this will power on the specified island if it is off.
- * Otherwise, this will return false and the caller is expected to not
- * access the hw.  
- * 
- * NOTE *** If this is called from and interrupt handler or other atomic 
- * context, then it will return false if we are in the middle of a
- * power state transition and the caller will be expected to handle that
- * even if force_on is set to true.
- */
-bool ospm_power_using_hw_begin(int hw_island, UHBUsage usage)
-{
-	bool ret = true;
-	bool island_is_off = false;
-	bool b_atomic = (in_interrupt() || in_atomic());
-	bool locked = true;
-	struct pci_dev *pdev = gpDrmDevice->pdev;
-	bool force_on = usage ? true: false;
-	/*quick path, not 100% race safe, but should be enough comapre to current other code in this file */
-	if (!force_on) {
-		if (hw_island & (OSPM_ALL_ISLANDS & ~g_hw_power_status_mask))
-			return false;
-		else {
-			locked = false;
-			goto increase_count;
-		}
-	}
-
-#ifdef CONFIG_PM_RUNTIME
-	/* Anyway, increment pm_runtime_refcount firstly. 
-	 * If the return value is false, decrease pm_rumtime_refcount. 
-	 */
-	pm_runtime_get(&pdev->dev);
-#endif
-	if (!b_atomic)
-		mutex_lock(&g_ospm_mutex);
-
-	island_is_off = hw_island & (OSPM_ALL_ISLANDS & ~g_hw_power_status_mask);
-
-	if (b_atomic && (gbSuspendInProgress || gbResumeInProgress || gbSuspended) && force_on && island_is_off)
-		ret = false;
-
-	if (ret && island_is_off && !force_on)
-		ret = false;
-
-	if (ret && island_is_off && force_on) {
-		gbResumeInProgress = true;
-
-		ret = ospm_resume_pci(pdev);
-
-		if (ret) {
-			switch(hw_island)
-			{
-			case OSPM_GRAPHICS_ISLAND:
-				ospm_power_island_up(OSPM_GRAPHICS_ISLAND);
-				psb_irq_preinstall_islands(gpDrmDevice, OSPM_GRAPHICS_ISLAND);
-				psb_irq_postinstall_islands(gpDrmDevice, OSPM_GRAPHICS_ISLAND);
-				break;
-			case OSPM_VIDEO_DEC_ISLAND:
-				if(!ospm_power_is_hw_on(OSPM_VIDEO_DEC_ISLAND)) {
-					/* printk(KERN_ALERT "%s power on video decode\n", __func__); */
-					ospm_power_island_up(OSPM_VIDEO_DEC_ISLAND);
-					ospm_runtime_pm_msvdx_resume(gpDrmDevice);
-					psb_irq_preinstall_islands(gpDrmDevice, OSPM_VIDEO_DEC_ISLAND);
-					psb_irq_postinstall_islands(gpDrmDevice, OSPM_VIDEO_DEC_ISLAND);
-				}
-				else{
-					/* printk(KERN_ALERT "%s video decode is already on\n", __func__); */
-				}
-
-				break;
-			default:
-				DRM_ERROR("unknown island !\n");
-				break;
-			}
-
-		}
-
-		if (!ret)
-			DRM_ERROR("ospm_power_using_hw_begin: forcing on %d failed\n", hw_island);
-
-		gbResumeInProgress = false;
-	}
-increase_count:
-	if (ret) {
-		switch(hw_island)
-		{
-		case OSPM_GRAPHICS_ISLAND:
-			atomic_inc(&g_graphics_access_count);
-			break;
-		case OSPM_VIDEO_DEC_ISLAND:
-			atomic_inc(&g_videodec_access_count);
-			break;
-		}
-	} 
-#ifdef CONFIG_PM_RUNTIME
-	else {
-		/* decrement pm_runtime_refcount */
-		pm_runtime_put(&pdev->dev);
-	}
-#endif
-
-	if (!b_atomic && locked)
-		mutex_unlock(&g_ospm_mutex);
-
-	return ret;
-}
-
-
-/*
- * ospm_power_using_hw_end
- *
- * Description: Notify PowerMgmt module that you are done accessing the
- * specified island's hw so feel free to power it off.  Note that this
- * function doesn't actually power off the islands.
- */
-void ospm_power_using_hw_end(int hw_island)
-{
-	switch(hw_island)
-	{
-	case OSPM_GRAPHICS_ISLAND:
-		atomic_dec(&g_graphics_access_count);
-		break;
-	case OSPM_VIDEO_DEC_ISLAND:
-		atomic_dec(&g_videodec_access_count);
-		break;
-	}
-
-#ifdef CONFIG_PM_RUNTIME
-	/* decrement runtime pm ref count */
-	pm_runtime_put(&gpDrmDevice->pdev->dev);
-#endif
-
-	WARN_ON(atomic_read(&g_graphics_access_count) < 0);
-	WARN_ON(atomic_read(&g_videodec_access_count) < 0);
-}
-
-int ospm_runtime_pm_allow(struct drm_device * dev)
-{
-	struct drm_psb_private * dev_priv = dev->dev_private;
-
-	PSB_DEBUG_ENTRY("%s\n", __FUNCTION__);
-
-	if(dev_priv->rpm_enabled)
-		return 0;
-
-	return 0;
-}
-
-void ospm_runtime_pm_forbid(struct drm_device * dev)
-{
-	struct drm_psb_private * dev_priv = dev->dev_private;
-
-	DRM_INFO("%s\n", __FUNCTION__);
-
-	pm_runtime_forbid(&dev->pdev->dev);
-	dev_priv->rpm_enabled = 0;
-}
-
-int psb_runtime_suspend(struct device *dev)
-{
-	pm_message_t state;
-	int ret = 0;
-	state.event = 0;
-
-	DRM_DEBUG("\n");
-
-        if (atomic_read(&g_graphics_access_count)
-		|| atomic_read(&g_videodec_access_count)){
-                DRM_ERROR("OSPM_GFX_DPK: GFX: %d VED: %d DSR: %d \n", atomic_read(&g_graphics_access_count),
-			  atomic_read(&g_videodec_access_count), 0);
-                return -EBUSY;
-        }
-        else
-		ret = ospm_power_suspend(gpDrmDevice->pdev, state);
-
-	return ret;
-}
-
-int psb_runtime_resume(struct device *dev)
-{
-	/* Notify HDMI Audio sub-system about the resume. */
-#ifdef CONFIG_SND_INTELMID_HDMI_AUDIO
-	struct drm_psb_private* dev_priv = gpDrmDevice->dev_private;
-
-       if(dev_priv->had_pvt_data)
-               dev_priv->had_interface->resume(dev_priv->had_pvt_data);
-#endif
-
-	/* Nop for GFX */
-	return 0;
-}
-
-int psb_runtime_idle(struct device *dev)
-{
-#ifdef CONFIG_SND_INTELMID_HDMI_AUDIO
-	struct drm_psb_private* dev_priv = gpDrmDevice->dev_private;
-	int hdmi_audio_busy = 0;
-	pm_event_t hdmi_audio_event;
-#endif
-
-#if 1
-	int msvdx_hw_busy = 0;
-
-	msvdx_hw_busy = ospm_runtime_check_msvdx_hw_busy(gpDrmDevice);
-#endif
-
-#ifdef CONFIG_SND_INTELMID_HDMI_AUDIO
-       if(dev_priv->had_pvt_data){
-               hdmi_audio_event.event = 0;
-               hdmi_audio_busy = dev_priv->had_interface->suspend(dev_priv->had_pvt_data, hdmi_audio_event);
-       }
-#endif
-	/*printk (KERN_ALERT "lvds:%d,mipi:%d\n", dev_priv->is_lvds_on, dev_priv->is_mipi_on);*/
-	if (atomic_read(&g_graphics_access_count)
-		|| atomic_read(&g_videodec_access_count)
-#ifdef CONFIG_SND_INTELMID_HDMI_AUDIO
-		|| hdmi_audio_busy
-#endif
-
-#if 1
-		|| (msvdx_hw_busy == 1))
-#endif
-			return 1;
-		else
-			return 0;
-}
-
diff --git a/drivers/staging/cdv/drv/psb_powermgmt.h b/drivers/staging/cdv/drv/psb_powermgmt.h
deleted file mode 100644
index 11f9154..0000000
--- a/drivers/staging/cdv/drv/psb_powermgmt.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
-
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Authors:
- *    Benjamin Defnet <benjamin.r.defnet@intel.com>
- *    Rajesh Poornachandran <rajesh.poornachandran@intel.com>
- *
- */
-#ifndef _PSB_POWERMGMT_H_
-#define _PSB_POWERMGMT_H_
-
-#include <linux/pci.h>
-#include <drm/drmP.h>
-
-#define OSPM_GRAPHICS_ISLAND	0x1
-#define OSPM_VIDEO_DEC_ISLAND	0x2
-#define OSPM_VIDEO_ENC_ISLAND	0x4
-#define OSPM_ALL_ISLANDS	0x7
-
-/* IPC message and command defines used to enable/disable mipi panel voltages */
-#define IPC_MSG_PANEL_ON_OFF    0xE9
-#define IPC_CMD_PANEL_ON        1
-#define IPC_CMD_PANEL_OFF       0
-
-typedef enum _UHBUsage
-{
-    OSPM_UHB_ONLY_IF_ON = 0,
-    OSPM_UHB_FORCE_POWER_ON,
-} UHBUsage;
-
-//extern int psb_check_msvdx_idle(struct drm_device *dev);
-//extern int lnc_check_topaz_idle(struct drm_device *dev);
-/* Use these functions to power down video HW for D0i3 purpose  */
-void ospm_apm_power_down_msvdx(struct drm_device *dev);
-void ospm_apm_power_down_topaz(struct drm_device *dev);
-
-void ospm_power_init(struct drm_device *dev);
-void ospm_power_uninit(void);
-
-
-/*
- * OSPM will call these functions
- */
-int ospm_power_suspend(struct pci_dev *pdev, pm_message_t state);
-int ospm_power_resume(struct pci_dev *pdev);
-
-/*
- * These are the functions the driver should use to wrap all hw access
- * (i.e. register reads and writes)
- */
-bool ospm_power_using_hw_begin(int hw_island, UHBUsage usage);
-void ospm_power_using_hw_end(int hw_island);
-
-/*
- * Use this function to do an instantaneous check for if the hw is on.
- * Only use this in cases where you know the g_state_change_mutex
- * is already held such as in irq install/uninstall and you need to
- * prevent a deadlock situation.  Otherwise use ospm_power_using_hw_begin().
- */
-bool ospm_power_is_hw_on(int hw_islands);
-
-/*
- * Power up/down different hw component rails/islands
- */
-void ospm_power_island_down(int hw_islands);
-void ospm_power_island_up(int hw_islands);
-void ospm_suspend_graphics(void);
-/*
- * GFX-Runtime PM callbacks
- */
-int psb_runtime_suspend(struct device *dev);
-int psb_runtime_resume(struct device *dev);
-int psb_runtime_idle(struct device *dev);
-int ospm_runtime_pm_allow(struct drm_device * dev);
-void ospm_runtime_pm_forbid(struct drm_device * dev);
-
-
-#endif /*_PSB_POWERMGMT_H_*/
diff --git a/drivers/staging/cdv/drv/psb_pvr_glue.c b/drivers/staging/cdv/drv/psb_pvr_glue.c
deleted file mode 100644
index d20b676..0000000
--- a/drivers/staging/cdv/drv/psb_pvr_glue.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- */
-
-#include "psb_pvr_glue.h"
-
-/**
- * FIXME: should NOT use these file under env/linux directly
- */
-#include "mm.h"
-
-int psb_get_meminfo_by_handle(IMG_HANDLE hKernelMemInfo,
-				PVRSRV_KERNEL_MEM_INFO **ppsKernelMemInfo)
-{
-	PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo = IMG_NULL;
-	PVRSRV_PER_PROCESS_DATA *psPerProc = IMG_NULL;
-	PVRSRV_ERROR eError;
-
-	psPerProc = PVRSRVPerProcessData(OSGetCurrentProcessIDKM());
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-				    (IMG_VOID *)&psKernelMemInfo,
-				    hKernelMemInfo,
-				    PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK) {
-		DRM_ERROR("Cannot find kernel meminfo for handle 0x%x\n",
-			  (IMG_UINT32)hKernelMemInfo);
-		return -EINVAL;
-	}
-
-	*ppsKernelMemInfo = psKernelMemInfo;
-
-	DRM_DEBUG("Got Kernel MemInfo for handle 0x%x\n",
-		  (IMG_UINT32)hKernelMemInfo);
-	return 0;
-}
-
-IMG_UINT32 psb_get_tgid(void)
-{
-	return OSGetCurrentProcessIDKM();
-}
-
-int psb_get_pages_by_mem_handle(IMG_HANDLE hOSMemHandle, struct page ***pages)
-{
-	LinuxMemArea *psLinuxMemArea = (LinuxMemArea *)hOSMemHandle;
-	struct page **page_list;
-
-	if (psLinuxMemArea->eAreaType != LINUX_MEM_AREA_ALLOC_PAGES) {
-		DRM_ERROR("MemArea type is not LINUX_MEM_AREA_ALLOC_PAGES\n");
-		return -EINVAL;
-	}
-
-	page_list = psLinuxMemArea->uData.sPageList.pvPageList;
-	if (!page_list) {
-		DRM_DEBUG("Page List is NULL\n");
-		return -ENOMEM;
-	}
-
-	*pages = page_list;
-	return 0;
-}
diff --git a/drivers/staging/cdv/drv/psb_pvr_glue.h b/drivers/staging/cdv/drv/psb_pvr_glue.h
deleted file mode 100644
index 7c2762c..0000000
--- a/drivers/staging/cdv/drv/psb_pvr_glue.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (c) 2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- */
-
-#include "psb_drv.h"
-#include "services_headers.h"
-
-extern int psb_get_meminfo_by_handle(IMG_HANDLE hKernelMemInfo,
-				PVRSRV_KERNEL_MEM_INFO **ppsKernelMemInfo);
-extern IMG_UINT32 psb_get_tgid(void);
-extern int psb_get_pages_by_mem_handle(IMG_HANDLE hOSMemHandle,
-					struct page ***pages);
diff --git a/drivers/staging/cdv/drv/psb_reg.h b/drivers/staging/cdv/drv/psb_reg.h
deleted file mode 100644
index b9b01ae..0000000
--- a/drivers/staging/cdv/drv/psb_reg.h
+++ /dev/null
@@ -1,596 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) (2005-2007) Imagination Technologies Limited.
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA..
- *
- **************************************************************************/
-
-#ifndef _PSB_REG_H_
-#define _PSB_REG_H_
-
-#define PSB_CR_CLKGATECTL                0x0000
-#define _PSB_C_CLKGATECTL_AUTO_MAN_REG   (1 << 24)
-#define _PSB_C_CLKGATECTL_USE_CLKG_SHIFT (20)
-#define _PSB_C_CLKGATECTL_USE_CLKG_MASK  (0x3 << 20)
-#define _PSB_C_CLKGATECTL_DPM_CLKG_SHIFT (16)
-#define _PSB_C_CLKGATECTL_DPM_CLKG_MASK  (0x3 << 16)
-#define _PSB_C_CLKGATECTL_TA_CLKG_SHIFT  (12)
-#define _PSB_C_CLKGATECTL_TA_CLKG_MASK   (0x3 << 12)
-#define _PSB_C_CLKGATECTL_TSP_CLKG_SHIFT (8)
-#define _PSB_C_CLKGATECTL_TSP_CLKG_MASK  (0x3 << 8)
-#define _PSB_C_CLKGATECTL_ISP_CLKG_SHIFT (4)
-#define _PSB_C_CLKGATECTL_ISP_CLKG_MASK  (0x3 << 4)
-#define _PSB_C_CLKGATECTL_2D_CLKG_SHIFT  (0)
-#define _PSB_C_CLKGATECTL_2D_CLKG_MASK   (0x3 << 0)
-#define _PSB_C_CLKGATECTL_CLKG_ENABLED   (0)
-#define _PSB_C_CLKGATECTL_CLKG_DISABLED  (1)
-#define _PSB_C_CLKGATECTL_CLKG_AUTO      (2)
-
-#define PSB_CR_CORE_ID                   0x0010
-#define _PSB_CC_ID_ID_SHIFT              (16)
-#define _PSB_CC_ID_ID_MASK               (0xFFFF << 16)
-#define _PSB_CC_ID_CONFIG_SHIFT          (0)
-#define _PSB_CC_ID_CONFIG_MASK           (0xFFFF << 0)
-
-#define PSB_CR_CORE_REVISION               0x0014
-#define _PSB_CC_REVISION_DESIGNER_SHIFT    (24)
-#define _PSB_CC_REVISION_DESIGNER_MASK     (0xFF << 24)
-#define _PSB_CC_REVISION_MAJOR_SHIFT       (16)
-#define _PSB_CC_REVISION_MAJOR_MASK        (0xFF << 16)
-#define _PSB_CC_REVISION_MINOR_SHIFT       (8)
-#define _PSB_CC_REVISION_MINOR_MASK        (0xFF << 8)
-#define _PSB_CC_REVISION_MAINTENANCE_SHIFT (0)
-#define _PSB_CC_REVISION_MAINTENANCE_MASK  (0xFF << 0)
-
-#define PSB_CR_DESIGNER_REV_FIELD1       0x0018
-
-#define PSB_CR_SOFT_RESET                0x0080
-#define _PSB_CS_RESET_TSP_RESET          (1 << 6)
-#define _PSB_CS_RESET_ISP_RESET          (1 << 5)
-#define _PSB_CS_RESET_USE_RESET          (1 << 4)
-#define _PSB_CS_RESET_TA_RESET           (1 << 3)
-#define _PSB_CS_RESET_DPM_RESET          (1 << 2)
-#define _PSB_CS_RESET_TWOD_RESET         (1 << 1)
-#define _PSB_CS_RESET_BIF_RESET          (1 << 0)
-
-#define PSB_CR_DESIGNER_REV_FIELD2       0x001C
-
-#define PSB_CR_EVENT_HOST_ENABLE2        0x0110
-
-#define PSB_CR_EVENT_STATUS2             0x0118
-
-#define PSB_CR_EVENT_HOST_CLEAR2         0x0114
-#define _PSB_CE2_BIF_REQUESTER_FAULT     (1 << 4)
-
-#define PSB_CR_EVENT_STATUS              0x012C
-
-#define PSB_CR_EVENT_HOST_ENABLE         0x0130
-
-#define PSB_CR_EVENT_HOST_CLEAR          0x0134
-#define _PSB_CE_MASTER_INTERRUPT         (1 << 31)
-#define _PSB_CE_TA_DPM_FAULT             (1 << 28)
-#define _PSB_CE_TWOD_COMPLETE            (1 << 27)
-#define _PSB_CE_DPM_OUT_OF_MEMORY_ZLS    (1 << 25)
-#define _PSB_CE_DPM_TA_MEM_FREE          (1 << 24)
-#define _PSB_CE_PIXELBE_END_RENDER       (1 << 18)
-#define _PSB_CE_SW_EVENT                 (1 << 14)
-#define _PSB_CE_TA_FINISHED              (1 << 13)
-#define _PSB_CE_TA_TERMINATE             (1 << 12)
-#define _PSB_CE_DPM_REACHED_MEM_THRESH   (1 << 3)
-#define _PSB_CE_DPM_OUT_OF_MEMORY_GBL    (1 << 2)
-#define _PSB_CE_DPM_OUT_OF_MEMORY_MT     (1 << 1)
-#define _PSB_CE_DPM_3D_MEM_FREE          (1 << 0)
-
-
-#define PSB_USE_OFFSET_MASK              0x0007FFFF
-#define PSB_USE_OFFSET_SIZE              (PSB_USE_OFFSET_MASK + 1)
-#define PSB_CR_USE_CODE_BASE0            0x0A0C
-#define PSB_CR_USE_CODE_BASE1            0x0A10
-#define PSB_CR_USE_CODE_BASE2            0x0A14
-#define PSB_CR_USE_CODE_BASE3            0x0A18
-#define PSB_CR_USE_CODE_BASE4            0x0A1C
-#define PSB_CR_USE_CODE_BASE5            0x0A20
-#define PSB_CR_USE_CODE_BASE6            0x0A24
-#define PSB_CR_USE_CODE_BASE7            0x0A28
-#define PSB_CR_USE_CODE_BASE8            0x0A2C
-#define PSB_CR_USE_CODE_BASE9            0x0A30
-#define PSB_CR_USE_CODE_BASE10           0x0A34
-#define PSB_CR_USE_CODE_BASE11           0x0A38
-#define PSB_CR_USE_CODE_BASE12           0x0A3C
-#define PSB_CR_USE_CODE_BASE13           0x0A40
-#define PSB_CR_USE_CODE_BASE14           0x0A44
-#define PSB_CR_USE_CODE_BASE15           0x0A48
-#define PSB_CR_USE_CODE_BASE(_i) (0x0A0C + ((_i) << 2))
-#define _PSB_CUC_BASE_DM_SHIFT           (25)
-#define _PSB_CUC_BASE_DM_MASK            (0x3 << 25)
-#define _PSB_CUC_BASE_ADDR_SHIFT         (0)	/* 1024-bit aligned address? */
-#define _PSB_CUC_BASE_ADDR_ALIGNSHIFT    (7)
-#define _PSB_CUC_BASE_ADDR_MASK          (0x1FFFFFF << 0)
-#define _PSB_CUC_DM_VERTEX		 (0)
-#define _PSB_CUC_DM_PIXEL		 (1)
-#define _PSB_CUC_DM_RESERVED		 (2)
-#define _PSB_CUC_DM_EDM	                 (3)
-
-#define PSB_CR_PDS_EXEC_BASE             0x0AB8
-#define _PSB_CR_PDS_EXEC_BASE_ADDR_SHIFT (20)	/* 1MB aligned address */
-#define _PSB_CR_PDS_EXEC_BASE_ADDR_ALIGNSHIFT (20)
-
-#define PSB_CR_EVENT_KICKER              0x0AC4
-#define _PSB_CE_KICKER_ADDRESS_SHIFT     (4)	/* 128-bit aligned address */
-
-#define PSB_CR_EVENT_KICK                0x0AC8
-#define _PSB_CE_KICK_NOW                 (1 << 0)
-
-
-#define PSB_CR_BIF_DIR_LIST_BASE1        0x0C38
-
-#define PSB_CR_BIF_CTRL                  0x0C00
-#define _PSB_CB_CTRL_CLEAR_FAULT         (1 << 4)
-#define _PSB_CB_CTRL_INVALDC             (1 << 3)
-#define _PSB_CB_CTRL_FLUSH               (1 << 2)
-
-#define PSB_CR_BIF_INT_STAT              0x0C04
-
-#define PSB_CR_BIF_FAULT                 0x0C08
-#define _PSB_CBI_STAT_PF_N_RW            (1 << 14)
-#define _PSB_CBI_STAT_FAULT_SHIFT        (0)
-#define _PSB_CBI_STAT_FAULT_MASK         (0x3FFF << 0)
-#define _PSB_CBI_STAT_FAULT_CACHE        (1 << 1)
-#define _PSB_CBI_STAT_FAULT_TA           (1 << 2)
-#define _PSB_CBI_STAT_FAULT_VDM          (1 << 3)
-#define _PSB_CBI_STAT_FAULT_2D           (1 << 4)
-#define _PSB_CBI_STAT_FAULT_PBE          (1 << 5)
-#define _PSB_CBI_STAT_FAULT_TSP          (1 << 6)
-#define _PSB_CBI_STAT_FAULT_ISP          (1 << 7)
-#define _PSB_CBI_STAT_FAULT_USSEPDS      (1 << 8)
-#define _PSB_CBI_STAT_FAULT_HOST         (1 << 9)
-
-#define PSB_CR_BIF_BANK0                 0x0C78
-
-#define PSB_CR_BIF_BANK1                 0x0C7C
-
-#define PSB_CR_BIF_DIR_LIST_BASE0        0x0C84
-
-#define PSB_CR_BIF_TWOD_REQ_BASE         0x0C88
-#define PSB_CR_BIF_3D_REQ_BASE           0x0CAC
-
-#define PSB_CR_2D_SOCIF                  0x0E18
-#define _PSB_C2_SOCIF_FREESPACE_SHIFT    (0)
-#define _PSB_C2_SOCIF_FREESPACE_MASK     (0xFF << 0)
-#define _PSB_C2_SOCIF_EMPTY              (0x80 << 0)
-
-#define PSB_CR_2D_BLIT_STATUS            0x0E04
-#define _PSB_C2B_STATUS_BUSY             (1 << 24)
-#define _PSB_C2B_STATUS_COMPLETE_SHIFT   (0)
-#define _PSB_C2B_STATUS_COMPLETE_MASK    (0xFFFFFF << 0)
-
-/*
- * 2D defs.
- */
-
-/*
- * 2D Slave Port Data : Block Header's Object Type
- */
-
-#define	PSB_2D_CLIP_BH                   (0x00000000)
-#define	PSB_2D_PAT_BH                    (0x10000000)
-#define	PSB_2D_CTRL_BH                   (0x20000000)
-#define	PSB_2D_SRC_OFF_BH                (0x30000000)
-#define	PSB_2D_MASK_OFF_BH               (0x40000000)
-#define	PSB_2D_RESERVED1_BH              (0x50000000)
-#define	PSB_2D_RESERVED2_BH              (0x60000000)
-#define	PSB_2D_FENCE_BH                  (0x70000000)
-#define	PSB_2D_BLIT_BH                   (0x80000000)
-#define	PSB_2D_SRC_SURF_BH               (0x90000000)
-#define	PSB_2D_DST_SURF_BH               (0xA0000000)
-#define	PSB_2D_PAT_SURF_BH               (0xB0000000)
-#define	PSB_2D_SRC_PAL_BH                (0xC0000000)
-#define	PSB_2D_PAT_PAL_BH                (0xD0000000)
-#define	PSB_2D_MASK_SURF_BH              (0xE0000000)
-#define	PSB_2D_FLUSH_BH                  (0xF0000000)
-
-/*
- * Clip Definition block (PSB_2D_CLIP_BH)
- */
-#define PSB_2D_CLIPCOUNT_MAX             (1)
-#define PSB_2D_CLIPCOUNT_MASK            (0x00000000)
-#define PSB_2D_CLIPCOUNT_CLRMASK         (0xFFFFFFFF)
-#define PSB_2D_CLIPCOUNT_SHIFT           (0)
-/* clip rectangle min & max */
-#define PSB_2D_CLIP_XMAX_MASK            (0x00FFF000)
-#define PSB_2D_CLIP_XMAX_CLRMASK         (0xFF000FFF)
-#define PSB_2D_CLIP_XMAX_SHIFT           (12)
-#define PSB_2D_CLIP_XMIN_MASK            (0x00000FFF)
-#define PSB_2D_CLIP_XMIN_CLRMASK         (0x00FFF000)
-#define PSB_2D_CLIP_XMIN_SHIFT           (0)
-/* clip rectangle offset */
-#define PSB_2D_CLIP_YMAX_MASK            (0x00FFF000)
-#define PSB_2D_CLIP_YMAX_CLRMASK         (0xFF000FFF)
-#define PSB_2D_CLIP_YMAX_SHIFT           (12)
-#define PSB_2D_CLIP_YMIN_MASK            (0x00000FFF)
-#define PSB_2D_CLIP_YMIN_CLRMASK         (0x00FFF000)
-#define PSB_2D_CLIP_YMIN_SHIFT           (0)
-
-/*
- * Pattern Control (PSB_2D_PAT_BH)
- */
-#define PSB_2D_PAT_HEIGHT_MASK           (0x0000001F)
-#define PSB_2D_PAT_HEIGHT_SHIFT          (0)
-#define PSB_2D_PAT_WIDTH_MASK            (0x000003E0)
-#define PSB_2D_PAT_WIDTH_SHIFT           (5)
-#define PSB_2D_PAT_YSTART_MASK           (0x00007C00)
-#define PSB_2D_PAT_YSTART_SHIFT          (10)
-#define PSB_2D_PAT_XSTART_MASK           (0x000F8000)
-#define PSB_2D_PAT_XSTART_SHIFT          (15)
-
-/*
- * 2D Control block (PSB_2D_CTRL_BH)
- */
-/* Present Flags */
-#define PSB_2D_SRCCK_CTRL                (0x00000001)
-#define PSB_2D_DSTCK_CTRL                (0x00000002)
-#define PSB_2D_ALPHA_CTRL                (0x00000004)
-/* Colour Key Colour (SRC/DST)*/
-#define PSB_2D_CK_COL_MASK               (0xFFFFFFFF)
-#define PSB_2D_CK_COL_CLRMASK            (0x00000000)
-#define PSB_2D_CK_COL_SHIFT              (0)
-/* Colour Key Mask (SRC/DST)*/
-#define PSB_2D_CK_MASK_MASK              (0xFFFFFFFF)
-#define PSB_2D_CK_MASK_CLRMASK           (0x00000000)
-#define PSB_2D_CK_MASK_SHIFT             (0)
-/* Alpha Control (Alpha/RGB)*/
-#define PSB_2D_GBLALPHA_MASK             (0x000FF000)
-#define PSB_2D_GBLALPHA_CLRMASK          (0xFFF00FFF)
-#define PSB_2D_GBLALPHA_SHIFT            (12)
-#define PSB_2D_SRCALPHA_OP_MASK          (0x00700000)
-#define PSB_2D_SRCALPHA_OP_CLRMASK       (0xFF8FFFFF)
-#define PSB_2D_SRCALPHA_OP_SHIFT         (20)
-#define PSB_2D_SRCALPHA_OP_ONE           (0x00000000)
-#define PSB_2D_SRCALPHA_OP_SRC           (0x00100000)
-#define PSB_2D_SRCALPHA_OP_DST           (0x00200000)
-#define PSB_2D_SRCALPHA_OP_SG            (0x00300000)
-#define PSB_2D_SRCALPHA_OP_DG            (0x00400000)
-#define PSB_2D_SRCALPHA_OP_GBL           (0x00500000)
-#define PSB_2D_SRCALPHA_OP_ZERO          (0x00600000)
-#define PSB_2D_SRCALPHA_INVERT           (0x00800000)
-#define PSB_2D_SRCALPHA_INVERT_CLR       (0xFF7FFFFF)
-#define PSB_2D_DSTALPHA_OP_MASK          (0x07000000)
-#define PSB_2D_DSTALPHA_OP_CLRMASK       (0xF8FFFFFF)
-#define PSB_2D_DSTALPHA_OP_SHIFT         (24)
-#define PSB_2D_DSTALPHA_OP_ONE           (0x00000000)
-#define PSB_2D_DSTALPHA_OP_SRC           (0x01000000)
-#define PSB_2D_DSTALPHA_OP_DST           (0x02000000)
-#define PSB_2D_DSTALPHA_OP_SG            (0x03000000)
-#define PSB_2D_DSTALPHA_OP_DG            (0x04000000)
-#define PSB_2D_DSTALPHA_OP_GBL           (0x05000000)
-#define PSB_2D_DSTALPHA_OP_ZERO          (0x06000000)
-#define PSB_2D_DSTALPHA_INVERT           (0x08000000)
-#define PSB_2D_DSTALPHA_INVERT_CLR       (0xF7FFFFFF)
-
-#define PSB_2D_PRE_MULTIPLICATION_ENABLE  (0x10000000)
-#define PSB_2D_PRE_MULTIPLICATION_CLRMASK (0xEFFFFFFF)
-#define PSB_2D_ZERO_SOURCE_ALPHA_ENABLE   (0x20000000)
-#define PSB_2D_ZERO_SOURCE_ALPHA_CLRMASK  (0xDFFFFFFF)
-
-/*
- *Source Offset (PSB_2D_SRC_OFF_BH)
- */
-#define PSB_2D_SRCOFF_XSTART_MASK        ((0x00000FFF) << 12)
-#define PSB_2D_SRCOFF_XSTART_SHIFT       (12)
-#define PSB_2D_SRCOFF_YSTART_MASK        (0x00000FFF)
-#define PSB_2D_SRCOFF_YSTART_SHIFT       (0)
-
-/*
- * Mask Offset (PSB_2D_MASK_OFF_BH)
- */
-#define PSB_2D_MASKOFF_XSTART_MASK       ((0x00000FFF) << 12)
-#define PSB_2D_MASKOFF_XSTART_SHIFT      (12)
-#define PSB_2D_MASKOFF_YSTART_MASK       (0x00000FFF)
-#define PSB_2D_MASKOFF_YSTART_SHIFT      (0)
-
-/*
- * 2D Fence (see PSB_2D_FENCE_BH): bits 0:27 are ignored
- */
-
-/*
- *Blit Rectangle (PSB_2D_BLIT_BH)
- */
-
-#define PSB_2D_ROT_MASK                  (3<<25)
-#define PSB_2D_ROT_CLRMASK               (~PSB_2D_ROT_MASK)
-#define PSB_2D_ROT_NONE                  (0<<25)
-#define PSB_2D_ROT_90DEGS                (1<<25)
-#define PSB_2D_ROT_180DEGS               (2<<25)
-#define PSB_2D_ROT_270DEGS               (3<<25)
-
-#define PSB_2D_COPYORDER_MASK            (3<<23)
-#define PSB_2D_COPYORDER_CLRMASK         (~PSB_2D_COPYORDER_MASK)
-#define PSB_2D_COPYORDER_TL2BR           (0<<23)
-#define PSB_2D_COPYORDER_BR2TL           (1<<23)
-#define PSB_2D_COPYORDER_TR2BL           (2<<23)
-#define PSB_2D_COPYORDER_BL2TR           (3<<23)
-
-#define PSB_2D_DSTCK_CLRMASK             (0xFF9FFFFF)
-#define PSB_2D_DSTCK_DISABLE             (0x00000000)
-#define PSB_2D_DSTCK_PASS                (0x00200000)
-#define PSB_2D_DSTCK_REJECT              (0x00400000)
-
-#define PSB_2D_SRCCK_CLRMASK             (0xFFE7FFFF)
-#define PSB_2D_SRCCK_DISABLE             (0x00000000)
-#define PSB_2D_SRCCK_PASS                (0x00080000)
-#define PSB_2D_SRCCK_REJECT              (0x00100000)
-
-#define PSB_2D_CLIP_ENABLE               (0x00040000)
-
-#define PSB_2D_ALPHA_ENABLE              (0x00020000)
-
-#define PSB_2D_PAT_CLRMASK               (0xFFFEFFFF)
-#define PSB_2D_PAT_MASK                  (0x00010000)
-#define PSB_2D_USE_PAT                   (0x00010000)
-#define PSB_2D_USE_FILL                  (0x00000000)
-/*
- * Tungsten Graphics note on rop codes: If rop A and rop B are
- * identical, the mask surface will not be read and need not be
- * set up.
- */
-
-#define PSB_2D_ROP3B_MASK                (0x0000FF00)
-#define PSB_2D_ROP3B_CLRMASK             (0xFFFF00FF)
-#define PSB_2D_ROP3B_SHIFT               (8)
-/* rop code A */
-#define PSB_2D_ROP3A_MASK                (0x000000FF)
-#define PSB_2D_ROP3A_CLRMASK             (0xFFFFFF00)
-#define PSB_2D_ROP3A_SHIFT               (0)
-
-#define PSB_2D_ROP4_MASK                 (0x0000FFFF)
-/*
- *	DWORD0:	(Only pass if Pattern control == Use Fill Colour)
- *	Fill Colour RGBA8888
- */
-#define PSB_2D_FILLCOLOUR_MASK           (0xFFFFFFFF)
-#define PSB_2D_FILLCOLOUR_SHIFT          (0)
-/*
- *	DWORD1: (Always Present)
- *	X Start (Dest)
- *	Y Start (Dest)
- */
-#define PSB_2D_DST_XSTART_MASK           (0x00FFF000)
-#define PSB_2D_DST_XSTART_CLRMASK        (0xFF000FFF)
-#define PSB_2D_DST_XSTART_SHIFT          (12)
-#define PSB_2D_DST_YSTART_MASK           (0x00000FFF)
-#define PSB_2D_DST_YSTART_CLRMASK        (0xFFFFF000)
-#define PSB_2D_DST_YSTART_SHIFT          (0)
-/*
- *	DWORD2: (Always Present)
- *	X Size (Dest)
- *	Y Size (Dest)
- */
-#define PSB_2D_DST_XSIZE_MASK            (0x00FFF000)
-#define PSB_2D_DST_XSIZE_CLRMASK         (0xFF000FFF)
-#define PSB_2D_DST_XSIZE_SHIFT           (12)
-#define PSB_2D_DST_YSIZE_MASK            (0x00000FFF)
-#define PSB_2D_DST_YSIZE_CLRMASK         (0xFFFFF000)
-#define PSB_2D_DST_YSIZE_SHIFT           (0)
-
-/*
- * Source Surface (PSB_2D_SRC_SURF_BH)
- */
-/*
- *      WORD 0
- */
-
-#define PSB_2D_SRC_FORMAT_MASK           (0x00078000)
-#define PSB_2D_SRC_1_PAL                 (0x00000000)
-#define PSB_2D_SRC_2_PAL                 (0x00008000)
-#define PSB_2D_SRC_4_PAL                 (0x00010000)
-#define PSB_2D_SRC_8_PAL                 (0x00018000)
-#define PSB_2D_SRC_8_ALPHA               (0x00020000)
-#define PSB_2D_SRC_4_ALPHA               (0x00028000)
-#define PSB_2D_SRC_332RGB                (0x00030000)
-#define PSB_2D_SRC_4444ARGB              (0x00038000)
-#define PSB_2D_SRC_555RGB                (0x00040000)
-#define PSB_2D_SRC_1555ARGB              (0x00048000)
-#define PSB_2D_SRC_565RGB                (0x00050000)
-#define PSB_2D_SRC_0888ARGB              (0x00058000)
-#define PSB_2D_SRC_8888ARGB              (0x00060000)
-#define PSB_2D_SRC_8888UYVY              (0x00068000)
-#define PSB_2D_SRC_RESERVED              (0x00070000)
-#define PSB_2D_SRC_1555ARGB_LOOKUP       (0x00078000)
-
-
-#define PSB_2D_SRC_STRIDE_MASK           (0x00007FFF)
-#define PSB_2D_SRC_STRIDE_CLRMASK        (0xFFFF8000)
-#define PSB_2D_SRC_STRIDE_SHIFT          (0)
-/*
- *  WORD 1 - Base Address
- */
-#define PSB_2D_SRC_ADDR_MASK             (0x0FFFFFFC)
-#define PSB_2D_SRC_ADDR_CLRMASK          (0x00000003)
-#define PSB_2D_SRC_ADDR_SHIFT            (2)
-#define PSB_2D_SRC_ADDR_ALIGNSHIFT       (2)
-
-/*
- * Pattern Surface (PSB_2D_PAT_SURF_BH)
- */
-/*
- *  WORD 0
- */
-
-#define PSB_2D_PAT_FORMAT_MASK           (0x00078000)
-#define PSB_2D_PAT_1_PAL                 (0x00000000)
-#define PSB_2D_PAT_2_PAL                 (0x00008000)
-#define PSB_2D_PAT_4_PAL                 (0x00010000)
-#define PSB_2D_PAT_8_PAL                 (0x00018000)
-#define PSB_2D_PAT_8_ALPHA               (0x00020000)
-#define PSB_2D_PAT_4_ALPHA               (0x00028000)
-#define PSB_2D_PAT_332RGB                (0x00030000)
-#define PSB_2D_PAT_4444ARGB              (0x00038000)
-#define PSB_2D_PAT_555RGB                (0x00040000)
-#define PSB_2D_PAT_1555ARGB              (0x00048000)
-#define PSB_2D_PAT_565RGB                (0x00050000)
-#define PSB_2D_PAT_0888ARGB              (0x00058000)
-#define PSB_2D_PAT_8888ARGB              (0x00060000)
-
-#define PSB_2D_PAT_STRIDE_MASK           (0x00007FFF)
-#define PSB_2D_PAT_STRIDE_CLRMASK        (0xFFFF8000)
-#define PSB_2D_PAT_STRIDE_SHIFT          (0)
-/*
- *  WORD 1 - Base Address
- */
-#define PSB_2D_PAT_ADDR_MASK             (0x0FFFFFFC)
-#define PSB_2D_PAT_ADDR_CLRMASK          (0x00000003)
-#define PSB_2D_PAT_ADDR_SHIFT            (2)
-#define PSB_2D_PAT_ADDR_ALIGNSHIFT       (2)
-
-/*
- * Destination Surface (PSB_2D_DST_SURF_BH)
- */
-/*
- * WORD 0
- */
-
-#define PSB_2D_DST_FORMAT_MASK           (0x00078000)
-#define PSB_2D_DST_332RGB                (0x00030000)
-#define PSB_2D_DST_4444ARGB              (0x00038000)
-#define PSB_2D_DST_555RGB                (0x00040000)
-#define PSB_2D_DST_1555ARGB              (0x00048000)
-#define PSB_2D_DST_565RGB                (0x00050000)
-#define PSB_2D_DST_0888ARGB              (0x00058000)
-#define PSB_2D_DST_8888ARGB              (0x00060000)
-#define PSB_2D_DST_8888AYUV              (0x00070000)
-
-#define PSB_2D_DST_STRIDE_MASK           (0x00007FFF)
-#define PSB_2D_DST_STRIDE_CLRMASK        (0xFFFF8000)
-#define PSB_2D_DST_STRIDE_SHIFT          (0)
-/*
- * WORD 1 - Base Address
- */
-#define PSB_2D_DST_ADDR_MASK             (0x0FFFFFFC)
-#define PSB_2D_DST_ADDR_CLRMASK          (0x00000003)
-#define PSB_2D_DST_ADDR_SHIFT            (2)
-#define PSB_2D_DST_ADDR_ALIGNSHIFT       (2)
-
-/*
- * Mask Surface (PSB_2D_MASK_SURF_BH)
- */
-/*
- * WORD 0
- */
-#define PSB_2D_MASK_STRIDE_MASK          (0x00007FFF)
-#define PSB_2D_MASK_STRIDE_CLRMASK       (0xFFFF8000)
-#define PSB_2D_MASK_STRIDE_SHIFT         (0)
-/*
- *  WORD 1 - Base Address
- */
-#define PSB_2D_MASK_ADDR_MASK            (0x0FFFFFFC)
-#define PSB_2D_MASK_ADDR_CLRMASK         (0x00000003)
-#define PSB_2D_MASK_ADDR_SHIFT           (2)
-#define PSB_2D_MASK_ADDR_ALIGNSHIFT      (2)
-
-/*
- * Source Palette (PSB_2D_SRC_PAL_BH)
- */
-
-#define PSB_2D_SRCPAL_ADDR_SHIFT         (0)
-#define PSB_2D_SRCPAL_ADDR_CLRMASK       (0xF0000007)
-#define PSB_2D_SRCPAL_ADDR_MASK          (0x0FFFFFF8)
-#define PSB_2D_SRCPAL_BYTEALIGN          (1024)
-
-/*
- * Pattern Palette (PSB_2D_PAT_PAL_BH)
- */
-
-#define PSB_2D_PATPAL_ADDR_SHIFT         (0)
-#define PSB_2D_PATPAL_ADDR_CLRMASK       (0xF0000007)
-#define PSB_2D_PATPAL_ADDR_MASK          (0x0FFFFFF8)
-#define PSB_2D_PATPAL_BYTEALIGN          (1024)
-
-/*
- * Rop3 Codes (2 LS bytes)
- */
-
-#define PSB_2D_ROP3_SRCCOPY              (0xCCCC)
-#define PSB_2D_ROP3_PATCOPY              (0xF0F0)
-#define PSB_2D_ROP3_WHITENESS            (0xFFFF)
-#define PSB_2D_ROP3_BLACKNESS            (0x0000)
-#define PSB_2D_ROP3_SRC                  (0xCC)
-#define PSB_2D_ROP3_PAT                  (0xF0)
-#define PSB_2D_ROP3_DST                  (0xAA)
-
-
-/*
- * Sizes.
- */
-
-#define PSB_SCENE_HW_COOKIE_SIZE 16
-#define PSB_TA_MEM_HW_COOKIE_SIZE 16
-
-/*
- * Scene stuff.
- */
-
-#define PSB_NUM_HW_SCENES          2
-
-/*
- * Scheduler completion actions.
- */
-
-#define PSB_RASTER_BLOCK 0
-#define PSB_RASTER       1
-#define PSB_RETURN       2
-#define PSB_TA       3
-
-
-/*Power management*/
-#define PSB_PUNIT_PORT		    0x04
-#define PSB_OSPMBA		    0x78
-#define PSB_APMBA		    0x7a
-#define PSB_APM_CMD		    0x0
-#define PSB_PWRGT_VID_ENC_MASK	    0x30
-#define PSB_PWRGT_VID_DEC_MASK	    0xc
-#define PSB_PWRGT_VID_DEC_ON	    0x08
-#define PSB_PWRGT_VID_DEC_OFF	    0x04
-#define PSB_PWRGT_GFX_MASK	    0x3
-#define PSB_PWRGT_GFX_ON	    0x02
-#define PSB_PWRGT_GFX_OFF	    0x01
-#define PSB_APM_STS		    0x04
-#define PSB_PWRGT_GFX_D0	    0x0
-#define PSB_PWRGT_GFX_D3	    0x3
-#define PSB_PWRGT_VID_DEC_D0	    0x0
-#define PSB_PWRGT_VID_DEC_D3	    0x3
-
-
-#define PSB_PM_SSC		    0x20
-#define PSB_PM_SSS		    0x30
-#define PSB_PWRGT_DISPLAY_MASK	    0xc /*on a different BA than video/gfx*/
-#define MDFLD_PWRGT_DISPLAY_A_CNTR  0x0000000c 
-#define MDFLD_PWRGT_DISPLAY_B_CNTR  0x0000c000 
-#define MDFLD_PWRGT_DISPLAY_C_CNTR  0x00030000 
-#define MDFLD_PWRGT_DISP_MIPI_CNTR  0x000c0000 
-#define MDFLD_PWRGT_DISPLAY_CNTR    (MDFLD_PWRGT_DISPLAY_A_CNTR | MDFLD_PWRGT_DISPLAY_B_CNTR | MDFLD_PWRGT_DISPLAY_C_CNTR | MDFLD_PWRGT_DISP_MIPI_CNTR)// 0x000fc00c
-// Display SSS register bits are different in A0 vs. B0
-#define MDFLD_PWRGT_DISPLAY_A_STS  		0x000000c0
-#define MDFLD_PWRGT_DISPLAY_B_STS  		0x00000300
-#define MDFLD_PWRGT_DISPLAY_C_STS  		0x00000c00
-#define PSB_PWRGT_GFX_MASK_B0	   		0xc3
-#define MDFLD_PWRGT_DISPLAY_A_STS_B0	0x0000000c
-#define MDFLD_PWRGT_DISPLAY_B_STS_B0  	0x0000c000
-#define MDFLD_PWRGT_DISPLAY_C_STS_B0  	0x00030000
-#define MDFLD_PWRGT_DISP_MIPI_STS  0x000c0000 
-#define MDFLD_PWRGT_DISPLAY_STS_A0    (MDFLD_PWRGT_DISPLAY_A_STS | MDFLD_PWRGT_DISPLAY_B_STS | MDFLD_PWRGT_DISPLAY_C_STS | MDFLD_PWRGT_DISP_MIPI_STS)// 0x000fc00c
-#define MDFLD_PWRGT_DISPLAY_STS_B0    (MDFLD_PWRGT_DISPLAY_A_STS_B0 | MDFLD_PWRGT_DISPLAY_B_STS_B0 | MDFLD_PWRGT_DISPLAY_C_STS_B0 | MDFLD_PWRGT_DISP_MIPI_STS)// 0x000fc00c
-#endif
diff --git a/drivers/staging/cdv/drv/psb_reset.c b/drivers/staging/cdv/drv/psb_reset.c
deleted file mode 100644
index 2f07be3..0000000
--- a/drivers/staging/cdv/drv/psb_reset.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
- **************************************************************************/
-
-#include <drm/drmP.h>
-#include "psb_drv.h"
-#include "psb_reg.h"
-#include "psb_intel_reg.h"
-#include "psb_msvdx.h"
-#include <linux/spinlock.h>
-
-
-void psb_schedule_watchdog(struct drm_psb_private *dev_priv)
-{
-	struct timer_list *wt = &dev_priv->watchdog_timer;
-	unsigned long irq_flags;
-
-	spin_lock_irqsave(&dev_priv->watchdog_lock, irq_flags);
-	if (dev_priv->timer_available && !timer_pending(wt)) {
-		wt->expires = jiffies + PSB_WATCHDOG_DELAY;
-		add_timer(wt);
-	}
-	spin_unlock_irqrestore(&dev_priv->watchdog_lock, irq_flags);
-}
-
-
-static void psb_watchdog_func(unsigned long data)
-{
-	struct drm_psb_private *dev_priv = (struct drm_psb_private *) data;
-	int msvdx_lockup;
-	int msvdx_idle;
-	unsigned long irq_flags;
-
-	psb_msvdx_lockup(dev_priv, &msvdx_lockup, &msvdx_idle);
-
-	if (msvdx_lockup) {
-		spin_lock_irqsave(&dev_priv->watchdog_lock, irq_flags);
-		dev_priv->timer_available = 0;
-		spin_unlock_irqrestore(&dev_priv->watchdog_lock,
-				       irq_flags);
-		if (msvdx_lockup)
-			schedule_work(&dev_priv->msvdx_watchdog_wq);
-	}
-	if (!msvdx_idle)
-		psb_schedule_watchdog(dev_priv);
-}
-
-void psb_msvdx_flush_cmd_queue(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct psb_msvdx_cmd_queue *msvdx_cmd;
-	struct list_head *list, *next;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-
-	/*Flush the msvdx cmd queue and signal all fences in the queue */
-	list_for_each_safe(list, next, &msvdx_priv->msvdx_queue) {
-		msvdx_cmd =
-		    list_entry(list, struct psb_msvdx_cmd_queue, head);
-		PSB_DEBUG_GENERAL("MSVDXQUE: flushing sequence:%d\n",
-				  msvdx_cmd->sequence);
-		msvdx_priv->msvdx_current_sequence = msvdx_cmd->sequence;
-		psb_fence_error(dev, PSB_ENGINE_VIDEO,
-				msvdx_priv->msvdx_current_sequence,
-				_PSB_FENCE_TYPE_EXE, DRM_CMD_HANG);
-		list_del(list);
-		kfree(msvdx_cmd->cmd);
-		kfree(msvdx_cmd
-			 );
-	}
-}
-
-static void psb_msvdx_reset_wq(struct work_struct *work)
-{
-	struct drm_psb_private *dev_priv =
-	    container_of(work, struct drm_psb_private, msvdx_watchdog_wq);
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-
-	struct psb_scheduler *scheduler = &dev_priv->scheduler;
-	unsigned long irq_flags;
-
-	mutex_lock(&msvdx_priv->msvdx_mutex);
-	msvdx_priv->msvdx_needs_reset = 1;
-	msvdx_priv->msvdx_current_sequence++;
-	PSB_DEBUG_GENERAL
-	    ("MSVDXFENCE: incremented msvdx_current_sequence to :%d\n",
-	     msvdx_priv->msvdx_current_sequence);
-
-	psb_fence_error(scheduler->dev, PSB_ENGINE_VIDEO,
-			msvdx_priv->msvdx_current_sequence,
-			_PSB_FENCE_TYPE_EXE, DRM_CMD_HANG);
-
-	spin_lock_irqsave(&dev_priv->watchdog_lock, irq_flags);
-	dev_priv->timer_available = 1;
-	spin_unlock_irqrestore(&dev_priv->watchdog_lock, irq_flags);
-
-	spin_lock_irqsave(&msvdx_priv->msvdx_lock, irq_flags);
-	psb_msvdx_flush_cmd_queue(scheduler->dev);
-	spin_unlock_irqrestore(&msvdx_priv->msvdx_lock, irq_flags);
-
-	psb_schedule_watchdog(dev_priv);
-	mutex_unlock(&msvdx_priv->msvdx_mutex);
-}
-
-void psb_watchdog_init(struct drm_psb_private *dev_priv)
-{
-	struct timer_list *wt = &dev_priv->watchdog_timer;
-	unsigned long irq_flags;
-
-	spin_lock_init(&dev_priv->watchdog_lock);
-	spin_lock_irqsave(&dev_priv->watchdog_lock, irq_flags);
-	init_timer(wt);
-	INIT_WORK(&dev_priv->msvdx_watchdog_wq, &psb_msvdx_reset_wq);
-	wt->data = (unsigned long) dev_priv;
-	wt->function = &psb_watchdog_func;
-	dev_priv->timer_available = 1;
-	spin_unlock_irqrestore(&dev_priv->watchdog_lock, irq_flags);
-}
-
-void psb_watchdog_takedown(struct drm_psb_private *dev_priv)
-{
-	unsigned long irq_flags;
-
-	spin_lock_irqsave(&dev_priv->watchdog_lock, irq_flags);
-	dev_priv->timer_available = 0;
-	spin_unlock_irqrestore(&dev_priv->watchdog_lock, irq_flags);
-	(void) del_timer_sync(&dev_priv->watchdog_timer);
-}
-
-
diff --git a/drivers/staging/cdv/drv/psb_schedule.c b/drivers/staging/cdv/drv/psb_schedule.c
deleted file mode 100644
index a8bf33b..0000000
--- a/drivers/staging/cdv/drv/psb_schedule.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors: Thomas Hellstrom <thomas-at-tungstengraphics.com>
- **************************************************************************/
-
-#include <drm/drmP.h>
-#include "psb_drm.h"
-#include "psb_drv.h"
-#include "psb_reg.h"
-#include "ttm/ttm_execbuf_util.h"
-
-
-static void psb_powerdown_msvdx(struct work_struct *work)
-{
-	struct psb_scheduler *scheduler =
-	    container_of(work, struct psb_scheduler, msvdx_suspend_wq.work);
-
-	if (!mutex_trylock(&scheduler->msvdx_power_mutex))
-		return;
-
-	psb_try_power_down_msvdx(scheduler->dev);
-	mutex_unlock(&scheduler->msvdx_power_mutex);
-}
-
-int psb_scheduler_init(struct drm_device *dev,
-		       struct psb_scheduler *scheduler)
-{
-	memset(scheduler, 0, sizeof(*scheduler));
-	scheduler->dev = dev;
-	mutex_init(&scheduler->msvdx_power_mutex);
-
-	INIT_DELAYED_WORK(&scheduler->msvdx_suspend_wq,
-			  &psb_powerdown_msvdx);
-
-	return 0;
-}
-
diff --git a/drivers/staging/cdv/drv/psb_schedule.h b/drivers/staging/cdv/drv/psb_schedule.h
deleted file mode 100644
index 7616abe..0000000
--- a/drivers/staging/cdv/drv/psb_schedule.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors: Thomas Hellstrom <thomas-at-tungstengraphics.com>
- **************************************************************************/
-#ifndef _PSB_SCHEDULE_H_
-#define _PSB_SCHEDULE_H_
-
-#include <drm/drmP.h>
-
-struct psb_context;
-
-enum psb_task_type {
-	psb_flip_task
-};
-
-struct drm_psb_private;
-
-/*struct psb_scheduler_seq {
-	uint32_t sequence;
-	int reported;
-};*/
-
-struct psb_scheduler {
-	struct drm_device *dev;
-	/*struct psb_scheduler_seq seq[_PSB_ENGINE_TA_FENCE_TYPES];
-	struct psb_hw_scene hs[PSB_NUM_HW_SCENES];
-	struct mutex task_wq_mutex;*/
-	struct mutex msvdx_power_mutex;
-	/*spinlock_t lock;
-	struct list_head hw_scenes;
-	struct list_head ta_queue;
-	struct list_head raster_queue;
-	struct list_head hp_raster_queue;
-	struct list_head task_done_queue;
-	struct psb_task *current_task[PSB_SCENE_NUM_ENGINES];
-	struct psb_task *feedback_task;
-	int ta_state;
-	struct psb_hw_scene *pending_hw_scene;
-	uint32_t pending_hw_scene_seq;
-	struct delayed_work wq*/;
-	struct delayed_work msvdx_suspend_wq;
-	/*struct psb_scene_pool *pool;
-	uint32_t idle_count;
-	int idle;
-	wait_queue_head_t idle_queue;
-	unsigned long ta_end_jiffies;
-	unsigned long total_ta_jiffies;
-	unsigned long raster_end_jiffies;
-	unsigned long total_raster_jiffies;*/
-};
-
-/*#define PSB_RF_FIRE_TA       (1 << 0)
-#define PSB_RF_OOM           (1 << 1)
-#define PSB_RF_OOM_REPLY     (1 << 2)
-#define PSB_RF_TERMINATE     (1 << 3)
-#define PSB_RF_TA_DONE       (1 << 4)
-#define PSB_RF_FIRE_RASTER   (1 << 5)
-#define PSB_RF_RASTER_DONE   (1 << 6)
-#define PSB_RF_DEALLOC       (1 << 7)
-*/
-
-extern int psb_scheduler_init(struct drm_device *dev,
-			      struct psb_scheduler *scheduler);
-
-#endif
diff --git a/drivers/staging/cdv/drv/psb_sgx.c b/drivers/staging/cdv/drv/psb_sgx.c
deleted file mode 100644
index 104fe4b..0000000
--- a/drivers/staging/cdv/drv/psb_sgx.c
+++ /dev/null
@@ -1,943 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
- * Copyright (c) 2008, Tungsten Graphics, Inc. Cedar Park, TX. USA.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-
-#include <drm/drmP.h>
-#include "psb_drv.h"
-#include "psb_drm.h"
-#include "psb_reg.h"
-#include "psb_msvdx.h"
-#include "ttm/ttm_bo_api.h"
-#include "ttm/ttm_execbuf_util.h"
-#include "psb_ttm_userobj_api.h"
-#include "ttm/ttm_placement.h"
-#include "psb_sgx.h"
-#include "psb_intel_reg.h"
-#include "psb_powermgmt.h"
-
-
-static inline int psb_same_page(unsigned long offset,
-				unsigned long offset2)
-{
-	return (offset & PAGE_MASK) == (offset2 & PAGE_MASK);
-}
-
-static inline unsigned long psb_offset_end(unsigned long offset,
-					      unsigned long end)
-{
-	offset = (offset + PAGE_SIZE) & PAGE_MASK;
-	return (end < offset) ? end : offset;
-}
-
-static void psb_idle_engine(struct drm_device *dev, int engine);
-
-struct psb_dstbuf_cache {
-	unsigned int dst;
-	struct ttm_buffer_object *dst_buf;
-	unsigned long dst_offset;
-	uint32_t *dst_page;
-	unsigned int dst_page_offset;
-	struct ttm_bo_kmap_obj dst_kmap;
-	bool dst_is_iomem;
-};
-
-struct psb_validate_buffer {
-	struct ttm_validate_buffer base;
-	struct psb_validate_req req;
-	int ret;
-	struct psb_validate_arg __user *user_val_arg;
-	uint32_t flags;
-	uint32_t offset;
-	int po_correct;
-};
-
-static int psb_check_presumed(struct psb_validate_req *req,
-			      struct ttm_buffer_object *bo,
-			      struct psb_validate_arg __user *data,
-			      int *presumed_ok)
-{
-	struct psb_validate_req __user *user_req = &(data->d.req);
-
-	*presumed_ok = 0;
-
-	if (bo->mem.mem_type == TTM_PL_SYSTEM) {
-		*presumed_ok = 1;
-		return 0;
-	}
-
-	if (unlikely(!(req->presumed_flags & PSB_USE_PRESUMED)))
-		return 0;
-
-	if (bo->offset == req->presumed_gpu_offset) {
-		*presumed_ok = 1;
-		return 0;
-	}
-
-	return __put_user(req->presumed_flags & ~PSB_USE_PRESUMED,
-			  &user_req->presumed_flags);
-}
-
-
-static void psb_unreference_buffers(struct psb_context *context)
-{
-	struct ttm_validate_buffer *entry, *next;
-	struct list_head *list = &context->validate_list;
-
-	list_for_each_entry_safe(entry, next, list, head) {
-		list_del(&entry->head);
-		ttm_bo_unref(&entry->bo);
-	}
-
-	list = &context->kern_validate_list;
-
-	list_for_each_entry_safe(entry, next, list, head) {
-		list_del(&entry->head);
-		ttm_bo_unref(&entry->bo);
-	}
-}
-
-
-static int psb_lookup_validate_buffer(struct drm_file *file_priv,
-				      uint64_t data,
-				      struct psb_validate_buffer *item)
-{
-	struct ttm_object_file *tfile = psb_fpriv(file_priv)->tfile;
-
-	item->user_val_arg =
-	    (struct psb_validate_arg __user *) (unsigned long) data;
-
-	if (unlikely(copy_from_user(&item->req, &item->user_val_arg->d.req,
-				    sizeof(item->req)) != 0)) {
-		DRM_ERROR("Lookup copy fault.\n");
-		return -EFAULT;
-	}
-
-	item->base.bo =
-	    ttm_buffer_object_lookup(tfile, item->req.buffer_handle);
-
-	if (unlikely(item->base.bo == NULL)) {
-		DRM_ERROR("Bo lookup fault.\n");
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-static int psb_reference_buffers(struct drm_file *file_priv,
-				 uint64_t data,
-				 struct psb_context *context)
-{
-	struct psb_validate_buffer *item;
-	int ret;
-
-	while (likely(data != 0)) {
-		if (unlikely(context->used_buffers >=
-			     PSB_NUM_VALIDATE_BUFFERS)) {
-			DRM_ERROR("Too many buffers "
-				  "on validate list.\n");
-			ret = -EINVAL;
-			goto out_err0;
-		}
-
-		item = &context->buffers[context->used_buffers];
-
-		ret = psb_lookup_validate_buffer(file_priv, data, item);
-		if (unlikely(ret != 0))
-			goto out_err0;
-
-		item->base.reserved = 0;
-		list_add_tail(&item->base.head, &context->validate_list);
-		context->used_buffers++;
-		data = item->req.next;
-	}
-	return 0;
-
-out_err0:
-	psb_unreference_buffers(context);
-	return ret;
-}
-
-static int
-psb_placement_fence_type(struct ttm_buffer_object *bo,
-			 uint64_t set_val_flags,
-			 uint64_t clr_val_flags,
-			 uint32_t new_fence_class,
-			 uint32_t *new_fence_type)
-{
-	int ret;
-	uint32_t n_fence_type;
-	/*
-	uint32_t set_flags = set_val_flags & 0xFFFFFFFF;
-	uint32_t clr_flags = clr_val_flags & 0xFFFFFFFF;
-	*/
-	struct ttm_fence_object *old_fence;
-	uint32_t old_fence_type;
-	struct ttm_placement placement;
-
-	if (unlikely
-	    (!(set_val_flags &
-	       (PSB_GPU_ACCESS_READ | PSB_GPU_ACCESS_WRITE)))) {
-		DRM_ERROR
-		    ("GPU access type (read / write) is not indicated.\n");
-		return -EINVAL;
-	}
-
-	/* User space driver doesn't set any TTM placement flags in set_val_flags or clr_val_flags */
-	placement.num_placement = 0;/* FIXME  */
-	placement.num_busy_placement = 0;
-	placement.fpfn = 0;
-        placement.lpfn = 0;
-	ret = psb_ttm_bo_check_placement(bo, &placement);
-	if (unlikely(ret != 0))
-		return ret;
-
-	switch (new_fence_class) {
-	default:
-		n_fence_type = _PSB_FENCE_TYPE_EXE;
-	}
-
-	*new_fence_type = n_fence_type;
-	old_fence = (struct ttm_fence_object *) bo->sync_obj;
-	old_fence_type = (uint32_t) (unsigned long) bo->sync_obj_arg;
-
-	if (old_fence && ((new_fence_class != old_fence->fence_class) ||
-			  ((n_fence_type ^ old_fence_type) &
-			   old_fence_type))) {
-		ret = ttm_bo_wait(bo, 0, 1, 0);
-		if (unlikely(ret != 0))
-			return ret;
-	}
-	/*
-	bo->proposed_flags = (bo->proposed_flags | set_flags)
-		& ~clr_flags & TTM_PL_MASK_MEMTYPE;
-	*/
-	return 0;
-}
-
-int psb_validate_kernel_buffer(struct psb_context *context,
-			       struct ttm_buffer_object *bo,
-			       uint32_t fence_class,
-			       uint64_t set_flags, uint64_t clr_flags)
-{
-	struct psb_validate_buffer *item;
-	uint32_t cur_fence_type;
-	int ret;
-
-	if (unlikely(context->used_buffers >= PSB_NUM_VALIDATE_BUFFERS)) {
-		DRM_ERROR("Out of free validation buffer entries for "
-			  "kernel buffer validation.\n");
-		return -ENOMEM;
-	}
-
-	item = &context->buffers[context->used_buffers];
-	item->user_val_arg = NULL;
-	item->base.reserved = 0;
-
-	ret = ttm_bo_reserve(bo, 1, 0, 1, context->val_seq);
-	if (unlikely(ret != 0))
-		goto out_unlock;
-
-	spin_lock(&bo->bdev->fence_lock);
-	ret = psb_placement_fence_type(bo, set_flags, clr_flags, fence_class,
-				       &cur_fence_type);
-	if (unlikely(ret != 0)) {
-		ttm_bo_unreserve(bo);
-		goto out_unlock;
-	}
-
-	item->base.bo = ttm_bo_reference(bo);
-	item->base.new_sync_obj_arg = (void *) (unsigned long) cur_fence_type;
-	item->base.reserved = 1;
-
-	list_add_tail(&item->base.head, &context->kern_validate_list);
-	context->used_buffers++;
-	/*
-	ret = ttm_bo_validate(bo, 1, 0, 0);
-	if (unlikely(ret != 0))
-		goto out_unlock;
-	*/
-	item->offset = bo->offset;
-	item->flags = bo->mem.placement;
-	context->fence_types |= cur_fence_type;
-
-out_unlock:
-	spin_unlock(&bo->bdev->fence_lock);
-	return ret;
-}
-
-
-static int psb_validate_buffer_list(struct drm_file *file_priv,
-				    uint32_t fence_class,
-				    struct psb_context *context,
-				    int *po_correct)
-{
-	struct psb_validate_buffer *item;
-	struct ttm_buffer_object *bo;
-	int ret;
-	struct psb_validate_req *req;
-	uint32_t fence_types = 0;
-	uint32_t cur_fence_type;
-	struct ttm_validate_buffer *entry;
-	struct list_head *list = &context->validate_list;
-	/*
-	struct ttm_placement placement;
-	uint32_t flags;
-	*/
-
-	*po_correct = 1;
-
-	list_for_each_entry(entry, list, head) {
-		item =
-		    container_of(entry, struct psb_validate_buffer, base);
-		bo = entry->bo;
-		item->ret = 0;
-		req = &item->req;
-
-		spin_lock(&bo->bdev->fence_lock);
-		ret = psb_placement_fence_type(bo,
-					       req->set_flags,
-					       req->clear_flags,
-					       fence_class,
-					       &cur_fence_type);
-		if (unlikely(ret != 0))
-			goto out_err;
-
-		/*
-                flags = item->req.pad64 | TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED;
-                placement.num_placement = 1;
-                placement.placement = &flags;
-                placement.num_busy_placement = 0;
-                placement.fpfn = 0;
-                placement.lpfn = 0;
-                ret = ttm_bo_validate(bo, &placement, 1, 0, 0);
-		if (unlikely(ret != 0))
-			goto out_err;
-		*/
-		fence_types |= cur_fence_type;
-		entry->new_sync_obj_arg = (void *)
-			(unsigned long) cur_fence_type;
-
-		item->offset = bo->offset;
-		item->flags = bo->mem.placement;
-		spin_unlock(&bo->bdev->fence_lock);
-
-		ret =
-		    psb_check_presumed(&item->req, bo, item->user_val_arg,
-				       &item->po_correct);
-		if (unlikely(ret != 0))
-			goto out_err;
-
-		if (unlikely(!item->po_correct))
-			*po_correct = 0;
-
-		item++;
-	}
-
-	context->fence_types |= fence_types;
-
-	return 0;
-out_err:
-	spin_unlock(&bo->bdev->fence_lock);
-	item->ret = ret;
-	return ret;
-}
-
-static void psb_clear_dstbuf_cache(struct psb_dstbuf_cache *dst_cache)
-{
-	if (dst_cache->dst_page) {
-		ttm_bo_kunmap(&dst_cache->dst_kmap);
-		dst_cache->dst_page = NULL;
-	}
-	dst_cache->dst_buf = NULL;
-	dst_cache->dst = ~0;
-}
-
-static int psb_update_dstbuf_cache(struct psb_dstbuf_cache *dst_cache,
-				   struct psb_validate_buffer *buffers,
-				   unsigned int dst,
-				   unsigned long dst_offset)
-{
-	int ret;
-
-	PSB_DEBUG_GENERAL("Destination buffer is %d.\n", dst);
-
-	if (unlikely(dst != dst_cache->dst || NULL == dst_cache->dst_buf)) {
-		psb_clear_dstbuf_cache(dst_cache);
-		dst_cache->dst = dst;
-		dst_cache->dst_buf = buffers[dst].base.bo;
-	}
-
-	if (unlikely
-	    (dst_offset >= dst_cache->dst_buf->num_pages * PAGE_SIZE)) {
-		DRM_ERROR("Relocation destination out of bounds.\n");
-		return -EINVAL;
-	}
-
-	if (!psb_same_page(dst_cache->dst_offset, dst_offset) ||
-	    NULL == dst_cache->dst_page) {
-		if (NULL != dst_cache->dst_page) {
-			ttm_bo_kunmap(&dst_cache->dst_kmap);
-			dst_cache->dst_page = NULL;
-		}
-
-		ret =
-		    ttm_bo_kmap(dst_cache->dst_buf,
-				dst_offset >> PAGE_SHIFT, 1,
-				&dst_cache->dst_kmap);
-		if (ret) {
-			DRM_ERROR("Could not map destination buffer for "
-				  "relocation.\n");
-			return ret;
-		}
-
-		dst_cache->dst_page =
-		    ttm_kmap_obj_virtual(&dst_cache->dst_kmap,
-					 &dst_cache->dst_is_iomem);
-		dst_cache->dst_offset = dst_offset & PAGE_MASK;
-		dst_cache->dst_page_offset = dst_cache->dst_offset >> 2;
-	}
-	return 0;
-}
-
-static int psb_apply_reloc(struct drm_psb_private *dev_priv,
-			   uint32_t fence_class,
-			   const struct drm_psb_reloc *reloc,
-			   struct psb_validate_buffer *buffers,
-			   int num_buffers,
-			   struct psb_dstbuf_cache *dst_cache,
-			   int no_wait, int interruptible)
-{
-	uint32_t val;
-	uint32_t background;
-	unsigned int index;
-	int ret;
-	unsigned int shift;
-	unsigned int align_shift;
-	struct ttm_buffer_object *reloc_bo;
-
-
-	PSB_DEBUG_GENERAL("Reloc type %d\n"
-			  "\t where 0x%04x\n"
-			  "\t buffer 0x%04x\n"
-			  "\t mask 0x%08x\n"
-			  "\t shift 0x%08x\n"
-			  "\t pre_add 0x%08x\n"
-			  "\t background 0x%08x\n"
-			  "\t dst_buffer 0x%08x\n"
-			  "\t arg0 0x%08x\n"
-			  "\t arg1 0x%08x\n",
-			  reloc->reloc_op,
-			  reloc->where,
-			  reloc->buffer,
-			  reloc->mask,
-			  reloc->shift,
-			  reloc->pre_add,
-			  reloc->background,
-			  reloc->dst_buffer, reloc->arg0, reloc->arg1);
-
-	if (unlikely(reloc->buffer >= num_buffers)) {
-		DRM_ERROR("Illegal relocation buffer %d.\n",
-			  reloc->buffer);
-		return -EINVAL;
-	}
-
-	if (buffers[reloc->buffer].po_correct)
-		return 0;
-
-	if (unlikely(reloc->dst_buffer >= num_buffers)) {
-		DRM_ERROR
-		    ("Illegal destination buffer for relocation %d.\n",
-		     reloc->dst_buffer);
-		return -EINVAL;
-	}
-
-	ret =
-	    psb_update_dstbuf_cache(dst_cache, buffers, reloc->dst_buffer,
-				    reloc->where << 2);
-	if (ret)
-		return ret;
-
-	reloc_bo = buffers[reloc->buffer].base.bo;
-
-	if (unlikely(reloc->pre_add >= (reloc_bo->num_pages << PAGE_SHIFT))) {
-		DRM_ERROR("Illegal relocation offset add.\n");
-		return -EINVAL;
-	}
-
-	switch (reloc->reloc_op) {
-	case PSB_RELOC_OP_OFFSET:
-		val = reloc_bo->offset + reloc->pre_add;
-		break;
-	default:
-		DRM_ERROR("Unimplemented relocation.\n");
-		return -EINVAL;
-	}
-
-	shift =
-	    (reloc->shift & PSB_RELOC_SHIFT_MASK) >> PSB_RELOC_SHIFT_SHIFT;
-	align_shift =
-	    (reloc->
-	     shift & PSB_RELOC_ALSHIFT_MASK) >> PSB_RELOC_ALSHIFT_SHIFT;
-
-	val = ((val >> align_shift) << shift);
-	index = reloc->where - dst_cache->dst_page_offset;
-
-	background = reloc->background;
-	val = (background & ~reloc->mask) | (val & reloc->mask);
-	dst_cache->dst_page[index] = val;
-
-	PSB_DEBUG_GENERAL("Reloc buffer %d index 0x%08x, value 0x%08x\n",
-			  reloc->dst_buffer, index,
-			  dst_cache->dst_page[index]);
-
-	return 0;
-}
-
-static int psb_ok_to_map_reloc(struct drm_psb_private *dev_priv,
-			       unsigned int num_pages)
-{
-	int ret = 0;
-
-	spin_lock(&dev_priv->reloc_lock);
-	if (dev_priv->rel_mapped_pages + num_pages <= PSB_MAX_RELOC_PAGES) {
-		dev_priv->rel_mapped_pages += num_pages;
-		ret = 1;
-	}
-	spin_unlock(&dev_priv->reloc_lock);
-	return ret;
-}
-
-static int psb_fixup_relocs(struct drm_file *file_priv,
-			    uint32_t fence_class,
-			    unsigned int num_relocs,
-			    unsigned int reloc_offset,
-			    uint32_t reloc_handle,
-			    struct psb_context *context,
-			    int no_wait, int interruptible)
-{
-	struct drm_device *dev = file_priv->minor->dev;
-	struct ttm_object_file *tfile = psb_fpriv(file_priv)->tfile;
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) dev->dev_private;
-	struct ttm_buffer_object *reloc_buffer = NULL;
-	unsigned int reloc_num_pages;
-	unsigned int reloc_first_page;
-	unsigned int reloc_last_page;
-	struct psb_dstbuf_cache dst_cache;
-	struct drm_psb_reloc *reloc;
-	struct ttm_bo_kmap_obj reloc_kmap;
-	bool reloc_is_iomem;
-	int count;
-	int ret = 0;
-	int registered = 0;
-	uint32_t num_buffers = context->used_buffers;
-
-	if (num_relocs == 0)
-		return 0;
-
-	memset(&dst_cache, 0, sizeof(dst_cache));
-	memset(&reloc_kmap, 0, sizeof(reloc_kmap));
-
-	reloc_buffer = ttm_buffer_object_lookup(tfile, reloc_handle);
-	if (!reloc_buffer)
-		goto out;
-
-	if (unlikely(atomic_read(&reloc_buffer->reserved) != 1)) {
-		DRM_ERROR("Relocation buffer was not on validate list.\n");
-		ret = -EINVAL;
-		goto out;
-	}
-
-	reloc_first_page = reloc_offset >> PAGE_SHIFT;
-	reloc_last_page =
-	    (reloc_offset +
-	     num_relocs * sizeof(struct drm_psb_reloc)) >> PAGE_SHIFT;
-	reloc_num_pages = reloc_last_page - reloc_first_page + 1;
-	reloc_offset &= ~PAGE_MASK;
-
-	if (reloc_num_pages > PSB_MAX_RELOC_PAGES) {
-		DRM_ERROR("Relocation buffer is too large\n");
-		ret = -EINVAL;
-		goto out;
-	}
-
-	DRM_WAIT_ON(ret, dev_priv->rel_mapped_queue, 3 * DRM_HZ,
-		    (registered =
-		     psb_ok_to_map_reloc(dev_priv, reloc_num_pages)));
-
-	if (ret == -EINTR) {
-		ret = -ERESTART;
-		goto out;
-	}
-	if (ret) {
-		DRM_ERROR("Error waiting for space to map "
-			  "relocation buffer.\n");
-		goto out;
-	}
-
-	ret = ttm_bo_kmap(reloc_buffer, reloc_first_page,
-			  reloc_num_pages, &reloc_kmap);
-
-	if (ret) {
-		DRM_ERROR("Could not map relocation buffer.\n"
-			  "\tReloc buffer id 0x%08x.\n"
-			  "\tReloc first page %d.\n"
-			  "\tReloc num pages %d.\n",
-			  reloc_handle, reloc_first_page, reloc_num_pages);
-		goto out;
-	}
-
-	reloc = (struct drm_psb_reloc *)
-	    ((unsigned long)
-	     ttm_kmap_obj_virtual(&reloc_kmap,
-				  &reloc_is_iomem) + reloc_offset);
-
-	for (count = 0; count < num_relocs; ++count) {
-		ret = psb_apply_reloc(dev_priv, fence_class,
-				      reloc, context->buffers,
-				      num_buffers, &dst_cache,
-				      no_wait, interruptible);
-		if (ret)
-			goto out1;
-		reloc++;
-	}
-
-out1:
-	ttm_bo_kunmap(&reloc_kmap);
-out:
-	if (registered) {
-		spin_lock(&dev_priv->reloc_lock);
-		dev_priv->rel_mapped_pages -= reloc_num_pages;
-		spin_unlock(&dev_priv->reloc_lock);
-		DRM_WAKEUP(&dev_priv->rel_mapped_queue);
-	}
-
-	psb_clear_dstbuf_cache(&dst_cache);
-	if (reloc_buffer)
-		ttm_bo_unref(&reloc_buffer);
-	return ret;
-}
-
-void psb_fence_or_sync(struct drm_file *file_priv,
-		       uint32_t engine,
-		       uint32_t fence_types,
-		       uint32_t fence_flags,
-		       struct list_head *list,
-		       struct psb_ttm_fence_rep *fence_arg,
-		       struct ttm_fence_object **fence_p)
-{
-	struct drm_device *dev = file_priv->minor->dev;
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	struct ttm_fence_device *fdev = &dev_priv->fdev;
-	int ret;
-	struct ttm_fence_object *fence;
-	struct ttm_object_file *tfile = psb_fpriv(file_priv)->tfile;
-	uint32_t handle;
-
-	ret = ttm_fence_user_create(fdev, tfile,
-				    engine, fence_types,
-				    TTM_FENCE_FLAG_EMIT, &fence, &handle);
-	if (ret) {
-
-		/*
-		 * Fence creation failed.
-		 * Fall back to synchronous operation and idle the engine.
-		 */
-
-		psb_idle_engine(dev, engine);
-		if (!(fence_flags & DRM_PSB_FENCE_NO_USER)) {
-
-			/*
-			 * Communicate to user-space that
-			 * fence creation has failed and that
-			 * the engine is idle.
-			 */
-
-			fence_arg->handle = ~0;
-			fence_arg->error = ret;
-		}
-
-		ttm_eu_backoff_reservation(list);
-		if (fence_p)
-			*fence_p = NULL;
-		return;
-	}
-
-	ttm_eu_fence_buffer_objects(list, fence);
-	if (!(fence_flags & DRM_PSB_FENCE_NO_USER)) {
-		struct ttm_fence_info info = ttm_fence_get_info(fence);
-		fence_arg->handle = handle;
-		fence_arg->fence_class = ttm_fence_class(fence);
-		fence_arg->fence_type = ttm_fence_types(fence);
-		fence_arg->signaled_types = info.signaled_types;
-		fence_arg->error = 0;
-	} else {
-		ret =
-		    ttm_ref_object_base_unref(tfile, handle,
-					      ttm_fence_type);
-		BUG_ON(ret);
-	}
-
-	if (fence_p)
-		*fence_p = fence;
-	else if (fence)
-		ttm_fence_object_unref(&fence);
-}
-
-
-#if 0
-static int psb_dump_page(struct ttm_buffer_object *bo,
-			 unsigned int page_offset, unsigned int num)
-{
-	struct ttm_bo_kmap_obj kmobj;
-	int is_iomem;
-	uint32_t *p;
-	int ret;
-	unsigned int i;
-
-	ret = ttm_bo_kmap(bo, page_offset, 1, &kmobj);
-	if (ret)
-		return ret;
-
-	p = ttm_kmap_obj_virtual(&kmobj, &is_iomem);
-	for (i = 0; i < num; ++i)
-		PSB_DEBUG_GENERAL("0x%04x: 0x%08x\n", i, *p++);
-
-	ttm_bo_kunmap(&kmobj);
-	return 0;
-}
-#endif
-
-static void psb_idle_engine(struct drm_device *dev, int engine)
-{
-	/*Fix me add video engile support*/
-	return;
-}
-
-static int psb_handle_copyback(struct drm_device *dev,
-			       struct psb_context *context,
-			       int ret)
-{
-	int err = ret;
-	struct ttm_validate_buffer *entry;
-	struct psb_validate_arg arg;
-	struct list_head *list = &context->validate_list;
-
-	if (ret) {
-		ttm_eu_backoff_reservation(list);
-		ttm_eu_backoff_reservation(&context->kern_validate_list);
-	}
-
-
-	if (ret != -EAGAIN && ret != -EINTR && ret != -ERESTART) {
-		list_for_each_entry(entry, list, head) {
-			struct psb_validate_buffer *vbuf =
-			    container_of(entry, struct psb_validate_buffer,
-					 base);
-			arg.handled = 1;
-			arg.ret = vbuf->ret;
-			if (!arg.ret) {
-				struct ttm_buffer_object *bo = entry->bo;
-				spin_lock(&bo->bdev->fence_lock);
-				arg.d.rep.gpu_offset = bo->offset;
-				arg.d.rep.placement = bo->mem.placement;
-				arg.d.rep.fence_type_mask =
-					(uint32_t) (unsigned long)
-					entry->new_sync_obj_arg;
-				spin_unlock(&bo->bdev->fence_lock);
-			}
-
-			if (__copy_to_user(vbuf->user_val_arg,
-					   &arg, sizeof(arg)))
-				err = -EFAULT;
-
-			if (arg.ret)
-				break;
-		}
-	}
-
-	return err;
-}
-
-int psb_cmdbuf_ioctl(struct drm_device *dev, void *data,
-		     struct drm_file *file_priv)
-{
-	struct drm_psb_cmdbuf_arg *arg = data;
-	int ret = 0;
-	struct ttm_object_file *tfile = psb_fpriv(file_priv)->tfile;
-	struct ttm_buffer_object *cmd_buffer = NULL;
-	struct psb_ttm_fence_rep fence_arg;
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *)file_priv->minor->dev->dev_private;
-	struct psb_video_ctx *pos, *n;
-	int engine;
-	int po_correct;
-	struct psb_context *context;
-
-	((struct msvdx_private*)dev_priv->msvdx_private)->tfile = tfile;
-
-	ret = ttm_read_lock(&dev_priv->ttm_lock, true);
-	if (unlikely(ret != 0))
-		return ret;
-
-	if (arg->engine == PSB_ENGINE_VIDEO) {
-		if (!ospm_power_using_hw_begin(OSPM_VIDEO_DEC_ISLAND,
-						OSPM_UHB_FORCE_POWER_ON))
-			return -EBUSY;
-	} 
-
-	ret = mutex_lock_interruptible(&dev_priv->cmdbuf_mutex);
-	if (unlikely(ret != 0))
-		goto out_err0;
-
-
-	context = &dev_priv->context;
-	context->used_buffers = 0;
-	context->fence_types = 0;
-	BUG_ON(!list_empty(&context->validate_list));
-	BUG_ON(!list_empty(&context->kern_validate_list));
-
-	if (unlikely(context->buffers == NULL)) {
-		context->buffers = vmalloc(PSB_NUM_VALIDATE_BUFFERS *
-					   sizeof(*context->buffers));
-		if (unlikely(context->buffers == NULL)) {
-			ret = -ENOMEM;
-			goto out_err1;
-		}
-	}
-
-	ret = psb_reference_buffers(file_priv,
-				    arg->buffer_list,
-				    context);
-
-	if (unlikely(ret != 0))
-		goto out_err1;
-
-	context->val_seq = atomic_add_return(1, &dev_priv->val_seq);
-
-/*
-	ret = ttm_eu_reserve_buffers(&context->validate_list,
-				     context->val_seq);
-*/
-	/* XXX new TTM removed driver managed sequence number,
-	 * check if this has other side effects! */
-	ret = ttm_eu_reserve_buffers(&context->validate_list);
-
-	if (unlikely(ret != 0))
-		goto out_err2;
-
-	engine = arg->engine;
-	ret = psb_validate_buffer_list(file_priv, engine,
-				       context, &po_correct);
-	if (unlikely(ret != 0))
-		goto out_err3;
-
-	if (!po_correct) {
-		ret = psb_fixup_relocs(file_priv, engine, arg->num_relocs,
-				       arg->reloc_offset,
-				       arg->reloc_handle, context, 0, 1);
-		if (unlikely(ret != 0))
-			goto out_err3;
-
-	}
-
-	cmd_buffer = ttm_buffer_object_lookup(tfile, arg->cmdbuf_handle);
-	if (unlikely(cmd_buffer == NULL)) {
-		ret = -EINVAL;
-		goto out_err4;
-	}
-
-	list_for_each_entry_safe(pos, n, &dev_priv->video_ctx, head) {
-		if (pos->filp == file_priv->filp) {
-			int entrypoint = pos->ctx_type & 0xff;
-
-			PSB_DEBUG_GENERAL("Video:commands for profile %d, entrypoint %d",
-					(pos->ctx_type >> 8), (pos->ctx_type & 0xff));
-
-			if (entrypoint != VAEntrypointEncSlice &&
-			    entrypoint != VAEntrypointEncPicture)
-				dev_priv->msvdx_ctx = pos;
-
-			break;
-		}
-	}
-
-	switch (arg->engine) {
-	case PSB_ENGINE_VIDEO:
-		if (arg->cmdbuf_size == (16 + 32)) {
-			/* Identify deblock msg cmdbuf */
-			/* according to cmdbuf_size */
-			struct ttm_bo_kmap_obj cmd_kmap;
-			struct ttm_buffer_object *deblock;
-			uint32_t *cmd;
-			bool is_iomem;
-
-			/* write regIO BO's address after deblcok msg */
-			ret = ttm_bo_kmap(cmd_buffer, 0, 1, &cmd_kmap);
-			if (unlikely(ret != 0))
-				goto out_err4;
-			cmd = (uint32_t *)(ttm_kmap_obj_virtual(&cmd_kmap,
-							&is_iomem) + 16);
-			deblock = ttm_buffer_object_lookup(tfile,
-							   (uint32_t)(*cmd));
-			*cmd = (uint32_t)deblock;
-			ttm_bo_unref(&deblock); /* FIXME Should move this to interrupt handler? */
-			ttm_bo_kunmap(&cmd_kmap);
-		}
-
-		ret = psb_cmdbuf_video(file_priv, &context->validate_list,
-				       context->fence_types, arg,
-				       cmd_buffer, &fence_arg);
-
-		if (unlikely(ret != 0))
-			goto out_err4;
-		break;
-	default:
-		DRM_ERROR
-		    ("Unimplemented command submission mechanism (%x).\n",
-		     arg->engine);
-		ret = -EINVAL;
-		goto out_err4;
-	}
-
-	if (!(arg->fence_flags & DRM_PSB_FENCE_NO_USER)) {
-		ret = copy_to_user((void __user *)
-				   ((unsigned long) arg->fence_arg),
-				   &fence_arg, sizeof(fence_arg));
-	}
-
-out_err4:
-	if (cmd_buffer)
-		ttm_bo_unref(&cmd_buffer);
-out_err3:
-	ret = psb_handle_copyback(dev, context, ret);
-out_err2:
-	psb_unreference_buffers(context);
-out_err1:
-	mutex_unlock(&dev_priv->cmdbuf_mutex);
-out_err0:
-	ttm_read_unlock(&dev_priv->ttm_lock);
-
-	if (arg->engine == PSB_ENGINE_VIDEO)
-		ospm_power_using_hw_end(OSPM_VIDEO_DEC_ISLAND);
-
-	return ret;
-}
-
diff --git a/drivers/staging/cdv/drv/psb_sgx.h b/drivers/staging/cdv/drv/psb_sgx.h
deleted file mode 100644
index e83ca94..0000000
--- a/drivers/staging/cdv/drv/psb_sgx.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2011, Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *    Eric Anholt <eric@anholt.net>
- *
- **/
-#ifndef _PSB_SGX_H_
-#define _PSB_SGX_H_
-
-extern int psb_submit_video_cmdbuf(struct drm_device *dev,
-			       struct ttm_buffer_object *cmd_buffer,
-			       unsigned long cmd_offset,
-			       unsigned long cmd_size,
-			       struct ttm_fence_object *fence);
-
-extern int drm_idle_check_interval;
-
-#endif
diff --git a/drivers/staging/cdv/drv/psb_socket.c b/drivers/staging/cdv/drv/psb_socket.c
deleted file mode 100644
index 7cc9a7b..0000000
--- a/drivers/staging/cdv/drv/psb_socket.c
+++ /dev/null
@@ -1,374 +0,0 @@
-/*
- * Copyright (c) 2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Copyright (C) 2004 Red Hat, Inc.  All rights reserved.
- * Copyright (C) 2004 Novell, Inc.  All rights reserved.
- * Copyright (C) 2004 IBM, Inc. All rights reserved.
- * Copyright (C) 2011 Intel Corporation.  All rights reserved.
- *
- * Licensed under the GNU GPL v2.
- *
- * Authors:
- *	Robert Love		<rml@novell.com>
- *	Kay Sievers		<kay.sievers@vrfy.org>
- *	Arjan van de Ven	<arjanv@redhat.com>
- *	Greg Kroah-Hartman	<greg@kroah.com>
- *
- * Notes:
- *      Adapted from existing kobj event socket code to enable
- *      mutlicast usermode communication for gfx driver to mutiple
- *      usermode threads via different socket broadcast groups.
- *      Original kobject uevent code does not allow for different
- *      broadcast groups.  Due to the frequency of usermode events
- *      generated by some gfx subsystems it is necessary to open
- *      a new dedicated socket with multicast group support.  In
- *      the future it is hoped that this code can be removed
- *      and either a new netlink protocol type added for graphics
- *      or conversely to simply enable group routing to be leveraged
- *      on the existing kobject uevent infrastructure.
- */
-
-#include <linux/spinlock.h>
-#include <linux/string.h>
-#include <linux/kobject.h>
-#include <linux/module.h>
-#include <linux/socket.h>
-#include <linux/skbuff.h>
-#include <linux/netlink.h>
-#include <net/sock.h>
-#include "psb_umevents.h"
-
-#define NETLINK_PSB_KOBJECT_UEVENT	31
-
-u64 psb_uevent_seqnum;
-char psb_uevent_helper[UEVENT_HELPER_PATH_LEN] = CONFIG_UEVENT_HELPER_PATH;
-static DEFINE_SPINLOCK(sequence_lock);
-#if defined(CONFIG_NET)
-static struct sock *uevent_sock;
-#endif
-
-/* the strings here must match the enum in include/linux/kobject.h */
-static const char *psb_kobject_actions[] = {
-	[KOBJ_ADD] =		"add",
-	[KOBJ_REMOVE] =		"remove",
-	[KOBJ_CHANGE] =		"change",
-	[KOBJ_MOVE] =		"move",
-	[KOBJ_ONLINE] =		"online",
-	[KOBJ_OFFLINE] =	"offline",
-};
-
-/**
- * kobject_action_type - translate action string to numeric type
- *
- * @buf: buffer containing the action string, newline is ignored
- * @len: length of buffer
- * @type: pointer to the location to store the action type
- *
- * Returns 0 if the action string was recognized.
- */
-int psb_kobject_action_type(const char *buf, size_t count,
-			enum kobject_action *type)
-{
-	enum kobject_action action;
-	int ret = -EINVAL;
-
-	if (count && (buf[count-1] == '\n' || buf[count-1] == '\0'))
-		count--;
-
-	if (!count)
-		goto out;
-
-	for (action = 0; action < ARRAY_SIZE(psb_kobject_actions); action++) {
-		if (strncmp(psb_kobject_actions[action], buf, count) != 0)
-			continue;
-		if (psb_kobject_actions[action][count] != '\0')
-			continue;
-		*type = action;
-		ret = 0;
-		break;
-	}
-out:
-	return ret;
-}
-
-/**
- * psb_kobject_uevent_env - send an uevent with environmental data
- *
- * @action: action that is happening
- * @kobj: struct kobject that the action is happening to
- * @envp_ext: pointer to environmental data
- *
- * Returns 0 if kobject_uevent() is completed with success or the
- * corresponding error when it fails.
- */
-int psb_kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
-			   char *envp_ext[], int dst_group_id)
-{
-	struct kobj_uevent_env *env;
-	const char *action_string = psb_kobject_actions[action];
-	const char *devpath = NULL;
-	const char *subsystem;
-	struct kobject *top_kobj;
-	struct kset *kset;
-	struct kset_uevent_ops *uevent_ops;
-	u64 seq;
-	int i = 0;
-	int retval = 0;
-
-	pr_debug("kobject: '%s' (%p): %s\n",
-		 kobject_name(kobj), kobj, __func__);
-
-	/* search the kset we belong to */
-	top_kobj = kobj;
-	while (!top_kobj->kset && top_kobj->parent)
-		top_kobj = top_kobj->parent;
-
-	if (!top_kobj->kset) {
-		pr_debug("kobject: '%s' (%p): %s: attempted to send uevent "
-			 "without kset!\n", kobject_name(kobj), kobj,
-			 __func__);
-		return -EINVAL;
-	}
-
-	kset = top_kobj->kset;
-	uevent_ops = (struct kset_uevent_ops *)kset->uevent_ops;
-
-	/* skip the event, if uevent_suppress is set*/
-	if (kobj->uevent_suppress) {
-		pr_debug("kobject: '%s' (%p): %s: uevent_suppress "
-				 "caused the event to drop!\n",
-				 kobject_name(kobj), kobj, __func__);
-		return 0;
-	}
-	/* skip the event, if the filter returns zero. */
-	if (uevent_ops && uevent_ops->filter)
-		if (!uevent_ops->filter(kset, kobj)) {
-			pr_debug("kobject: '%s' (%p): %s: filter function "
-				 "caused the event to drop!\n",
-				 kobject_name(kobj), kobj, __func__);
-			return 0;
-		}
-
-	/* originating subsystem */
-	if (uevent_ops && uevent_ops->name)
-		subsystem = uevent_ops->name(kset, kobj);
-	else
-		subsystem = kobject_name(&kset->kobj);
-	if (!subsystem) {
-		pr_debug("kobject: '%s' (%p): %s: unset subsystem caused the "
-			 "event to drop!\n", kobject_name(kobj), kobj,
-			 __func__);
-		return 0;
-	}
-
-	/* environment buffer */
-	env = kzalloc(sizeof(struct kobj_uevent_env), GFP_KERNEL);
-	if (!env)
-		return -ENOMEM;
-
-	/* complete object path */
-	devpath = kobject_get_path(kobj, GFP_KERNEL);
-	if (!devpath) {
-		retval = -ENOENT;
-		goto exit;
-	}
-
-	/* default keys */
-	retval = add_uevent_var(env, "ACTION=%s", action_string);
-	if (retval)
-		goto exit;
-	retval = add_uevent_var(env, "DEVPATH=%s", devpath);
-	if (retval)
-		goto exit;
-	retval = add_uevent_var(env, "SUBSYSTEM=%s", subsystem);
-	if (retval)
-		goto exit;
-
-	/* keys passed in from the caller */
-	if (envp_ext) {
-		for (i = 0; envp_ext[i]; i++) {
-			retval = add_uevent_var(env, "%s", envp_ext[i]);
-			if (retval)
-				goto exit;
-		}
-	}
-
-	/* let the kset specific function add its stuff */
-	if (uevent_ops && uevent_ops->uevent) {
-		retval = uevent_ops->uevent(kset, kobj, env);
-		if (retval) {
-			pr_debug("kobject: '%s' (%p): %s: uevent() returned "
-				 "%d\n", kobject_name(kobj), kobj,
-				 __func__, retval);
-			goto exit;
-		}
-	}
-
-	/*
-	 * Mark "add" and "remove" events in the object to ensure proper
-	 * events to userspace during automatic cleanup. If the object did
-	 * send an "add" event, "remove" will automatically generated by
-	 * the core, if not already done by the caller.
-	 */
-	if (action == KOBJ_ADD)
-		kobj->state_add_uevent_sent = 1;
-	else if (action == KOBJ_REMOVE)
-		kobj->state_remove_uevent_sent = 1;
-
-	/* we will send an event, so request a new sequence number */
-	spin_lock(&sequence_lock);
-	seq = ++psb_uevent_seqnum;
-	spin_unlock(&sequence_lock);
-	retval = add_uevent_var(env, "SEQNUM=%llu", (unsigned long long)seq);
-	if (retval)
-		goto exit;
-
-#if defined(CONFIG_NET)
-	/* send netlink message */
-	if (uevent_sock) {
-		struct sk_buff *skb;
-		size_t len;
-
-		/* allocate message with the maximum possible size */
-		len = strlen(action_string) + strlen(devpath) + 2;
-		skb = alloc_skb(len + env->buflen, GFP_KERNEL);
-		if (skb) {
-			char *scratch;
-
-			/* add header */
-			scratch = skb_put(skb, len);
-			sprintf(scratch, "%s@%s", action_string, devpath);
-
-			/* copy keys to our continuous event payload buffer */
-			for (i = 0; i < env->envp_idx; i++) {
-				len = strlen(env->envp[i]) + 1;
-				scratch = skb_put(skb, len);
-				strcpy(scratch, env->envp[i]);
-			}
-
-			NETLINK_CB(skb).dst_group = dst_group_id;
-			retval = netlink_broadcast(uevent_sock, skb, 0,
-						   dst_group_id,
-						   GFP_KERNEL);
-
-			/* ENOBUFS should be handled in userspace */
-			if (retval == -ENOBUFS)
-				retval = 0;
-		} else
-			retval = -ENOMEM;
-	}
-#endif
-
-	/* call psb_uevent_helper, usually only enabled during early boot */
-	if (psb_uevent_helper[0]) {
-		char *argv[3];
-
-		argv[0] = psb_uevent_helper;
-		argv[1] = (char *)subsystem;
-		argv[2] = NULL;
-		retval = add_uevent_var(env, "HOME=/");
-		if (retval)
-			goto exit;
-		retval = add_uevent_var(env,
-					"PATH=/sbin:/bin:/usr/sbin:/usr/bin");
-		if (retval)
-			goto exit;
-
-		retval = call_usermodehelper(argv[0], argv,
-					     env->envp, UMH_WAIT_EXEC);
-	}
-
-exit:
-	kfree(devpath);
-	kfree(env);
-	return retval;
-}
-/*EXPORT_SYMBOL_GPL(psb_kobject_uevent_env); */
-
-/**
- * psb_kobject_uevent - notify userspace by ending an uevent
- *
- * @action: action that is happening
- * @kobj: struct kobject that the action is happening to
- *
- * Returns 0 if psb_kobject_uevent() is completed with success or the
- * corresponding error when it fails.
- */
-int psb_kobject_uevent(struct kobject *kobj, enum kobject_action action,
-		       int dst_group_id)
-{
-	return psb_kobject_uevent_env(kobj, action, NULL, dst_group_id);
-}
-/*EXPORT_SYMBOL_GPL(psb_kobject_uevent); */
-
-/**
- * psb_add_uevent_var - add key value string to the environment buffer
- * @env: environment buffer structure
- * @format: printf format for the key=value pair
- *
- * Returns 0 if environment variable was added successfully or -ENOMEM
- * if no space was available.
- */
-int psb_add_uevent_var(struct kobj_uevent_env *env, const char *format, ...)
-{
-	va_list args;
-	int len;
-
-	if (env->envp_idx >= ARRAY_SIZE(env->envp)) {
-		WARN(1, KERN_ERR "psb_add_uevent_var: too many keys\n");
-		return -ENOMEM;
-	}
-
-	va_start(args, format);
-	len = vsnprintf(&env->buf[env->buflen],
-			sizeof(env->buf) - env->buflen,
-			format, args);
-	va_end(args);
-
-	if (len >= (sizeof(env->buf) - env->buflen)) {
-		WARN(1,
-		     KERN_ERR "psb_add_uevent_var: buffer size too small\n");
-		return -ENOMEM;
-	}
-
-	env->envp[env->envp_idx++] = &env->buf[env->buflen];
-	env->buflen += len + 1;
-	return 0;
-}
-/*EXPORT_SYMBOL_GPL(psb_add_uevent_var);*/ 
-
-#if defined(CONFIG_NET)
-int psb_kobject_uevent_init(void)
-{
-	/* This should be the 15, but 3 seems to work better.  Why? WHY!? */
-	/* uevent_sock = netlink_kernel_create(&init_net,
-					    NETLINK_PSB_KOBJECT_UEVENT,
-					    DRM_GFX_SOCKET_GROUPS,
-					    NULL, NULL, THIS_MODULE); */
-	uevent_sock = netlink_kernel_create(&init_net,
-					    NETLINK_PSB_KOBJECT_UEVENT,
-					    0x3, /* 3 is for hotplug & dpst */
-					    NULL, NULL, THIS_MODULE);
-
-	if (!uevent_sock) {
-		printk(KERN_ERR "psb_kobject_uevent: failed create socket!\n");
-		return -ENODEV;
-	}
-	netlink_set_nonroot(NETLINK_PSB_KOBJECT_UEVENT, NL_NONROOT_RECV);
-
-	return 0;
-}
-#endif
diff --git a/drivers/staging/cdv/drv/psb_umevents.c b/drivers/staging/cdv/drv/psb_umevents.c
deleted file mode 100644
index 932d7d3..0000000
--- a/drivers/staging/cdv/drv/psb_umevents.c
+++ /dev/null
@@ -1,491 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *    James C. Gualario <james.c.gualario@intel.com>
- *
- */
-#include "psb_umevents.h"
-/**
- * define sysfs operations supported by umevent objects.
- *
- */
-static struct sysfs_ops umevent_obj_sysfs_ops = {
-	.show = psb_umevent_attr_show,
-	.store = psb_umevent_attr_store,
-};
-/**
- * define the data attributes we will expose through sysfs.
- *
- */
-static struct umevent_attribute data_0 =
-	__ATTR(data_0_val, 0666, psb_umevent_attr_show_imp,
-	       psb_umevent_attr_store_imp);
-static struct umevent_attribute data_1 =
-	__ATTR(data_1_val, 0666, psb_umevent_attr_show_imp,
-	       psb_umevent_attr_store_imp);
-static struct umevent_attribute data_2 =
-	__ATTR(data_2_val, 0666, psb_umevent_attr_show_imp,
-	       psb_umevent_attr_store_imp);
-static struct umevent_attribute data_3 =
-	__ATTR(data_3_val, 0666, psb_umevent_attr_show_imp,
-	       psb_umevent_attr_store_imp);
-static struct umevent_attribute data_4 =
-	__ATTR(data_4_val, 0666, psb_umevent_attr_show_imp,
-	       psb_umevent_attr_store_imp);
-static struct umevent_attribute data_5 =
-	__ATTR(data_5_val, 0666, psb_umevent_attr_show_imp,
-	       psb_umevent_attr_store_imp);
-static struct umevent_attribute data_6 =
-	__ATTR(data_6_val, 0666, psb_umevent_attr_show_imp,
-	       psb_umevent_attr_store_imp);
-static struct umevent_attribute data_7 =
-	__ATTR(data_7_val, 0666, psb_umevent_attr_show_imp,
-	       psb_umevent_attr_store_imp);
-/**
- * define the structure used to seed our ktype.
- *
- */
-static struct attribute *umevent_obj_default_attrs[] = {
-	&data_0.attr,
-	&data_1.attr,
-	&data_2.attr,
-	&data_3.attr,
-	&data_4.attr,
-	&data_5.attr,
-	&data_6.attr,
-	&data_7.attr,
-	NULL,	/* need to NULL terminate the list of attributes */
-};
-/**
- * specify the ktype for our kobjects.
- *
- */
-static struct kobj_type umevent_obj_ktype = {
-	.sysfs_ops = &umevent_obj_sysfs_ops,
-	.release = psb_umevent_obj_release,
-	.default_attrs = umevent_obj_default_attrs,
-};
-/**
- * psb_umevent_attr_show - default kobject show function
- *
- * @kobj: kobject associated with the show operation
- * @attr: attribute being requested
- * @buf: pointer to the return buffer
- *
- */
-ssize_t psb_umevent_attr_show(struct kobject *kobj,
-			     struct attribute *attr,
-			     char *buf)
-{
-	struct umevent_attribute *attribute;
-	struct umevent_obj *any_umevent_obj;
-	attribute = to_umevent_attr(attr);
-	any_umevent_obj = to_umevent_obj(kobj);
-	if (!attribute->show)
-		return -EIO;
-
-	return attribute->show(any_umevent_obj, attribute, buf);
-}
-/**
- * psb_umevent_attr_store - default kobject store function
- *
- * @kobj: kobject associated with the store operation
- * @attr: attribute being requested
- * @buf: input data to write to attribute
- * @len: character count
- *
- */
-ssize_t psb_umevent_attr_store(struct kobject *kobj,
-			      struct attribute *attr,
-			      const char *buf, size_t len)
-{
-	struct umevent_attribute *attribute;
-	struct umevent_obj *any_umevent_obj;
-	attribute = to_umevent_attr(attr);
-	any_umevent_obj = to_umevent_obj(kobj);
-	if (!attribute->store)
-		return -EIO;
-
-	return attribute->store(any_umevent_obj, attribute, buf, len);
-}
-/**
- * psb_umevent_obj_release - kobject release funtion
- *
- * @kobj: kobject to be released.
- */
-void psb_umevent_obj_release(struct kobject *kobj)
-{
-	struct umevent_obj *any_umevent_obj;
-	any_umevent_obj = to_umevent_obj(kobj);
-	kfree(any_umevent_obj);
-}
-/**
- *  psb_umevent_attr_show_imp - attribute show implementation
- *
- * @any_umevent_obj: kobject managed data to read from
- * @attr: attribute being requested
- * @buf: pointer to the return buffer
- *
- */
-ssize_t psb_umevent_attr_show_imp(struct umevent_obj
-				     *any_umevent_obj,
-				     struct umevent_attribute *attr,
-				     char *buf)
-{
-	int var;
-
-	if (strcmp(attr->attr.name, "data_0_val") == 0)
-		var = any_umevent_obj->data_0_val;
-	else if (strcmp(attr->attr.name, "data_1_val") == 0)
-		var = any_umevent_obj->data_1_val;
-	else if (strcmp(attr->attr.name, "data_2_val") == 0)
-		var = any_umevent_obj->data_2_val;
-	else if (strcmp(attr->attr.name, "data_3_val") == 0)
-		var = any_umevent_obj->data_3_val;
-	else if (strcmp(attr->attr.name, "data_4_val") == 0)
-		var = any_umevent_obj->data_4_val;
-	else if (strcmp(attr->attr.name, "data_5_val") == 0)
-		var = any_umevent_obj->data_5_val;
-	else if (strcmp(attr->attr.name, "data_6_val") == 0)
-		var = any_umevent_obj->data_6_val;
-	else
-		var = any_umevent_obj->data_7_val;
-
-	return sprintf(buf, "%d\n", var);
-}
-/**
- * psb_umevent_attr_store_imp - attribute store implementation
- *
- * @any_umevent_obj: kobject managed data to write to
- * @attr: attribute being requested
- * @buf: input data to write to attribute
- * @count: character count
- *
- */
-ssize_t psb_umevent_attr_store_imp(struct umevent_obj
-				      *any_umevent_obj,
-				      struct umevent_attribute *attr,
-				      const char *buf, size_t count)
-{
-	int var;
-
-	sscanf(buf, "%du", &var);
-	if (strcmp(attr->attr.name, "data_0_val") == 0)
-		any_umevent_obj->data_0_val = var;
-	else if (strcmp(attr->attr.name, "data_1_val") == 0)
-		any_umevent_obj->data_1_val = var;
-	else if (strcmp(attr->attr.name, "data_2_val") == 0)
-		any_umevent_obj->data_2_val = var;
-	else if (strcmp(attr->attr.name, "data_3_val") == 0)
-		any_umevent_obj->data_3_val = var;
-	else if (strcmp(attr->attr.name, "data_4_val") == 0)
-		any_umevent_obj->data_4_val = var;
-	else if (strcmp(attr->attr.name, "data_5_val") == 0)
-		any_umevent_obj->data_5_val = var;
-	else if (strcmp(attr->attr.name, "data_6_val") == 0)
-		any_umevent_obj->data_6_val = var;
-	else
-		any_umevent_obj->data_7_val = var;
-	return count;
-}
-/**
- * psb_create_umevent_obj - create and track new event objects
- *
- * @name: name to give to new sysfs / kobject entry
- * @list: event object list to track the kobject in
- */
-struct umevent_obj *psb_create_umevent_obj(const char *name,
-						struct umevent_list
-							*list)
-{
-	struct umevent_obj *new_umevent_obj;
-	int retval;
-	new_umevent_obj = kzalloc(sizeof(*new_umevent_obj),
-				       GFP_KERNEL);
-	if (!new_umevent_obj)
-		return NULL;
-
-	new_umevent_obj->kobj.kset = list->umevent_disp_pool;
-	retval = kobject_init_and_add(&new_umevent_obj->kobj,
-				      &umevent_obj_ktype, NULL,
-				      "%s", name);
-	if (retval) {
-		kobject_put(&new_umevent_obj->kobj);
-		kfree(new_umevent_obj);
-		return NULL;
-	}
-	psb_umevent_add_to_list(list, new_umevent_obj);
-	return new_umevent_obj;
-}
-/*EXPORT_SYMBOL(psb_create_umevent_obj); */
-/**
- * psb_umevent_notify - info user mode of a new device
- *
- * @notify_disp_obj: event object to perform notification for
- *
- */
-void psb_umevent_notify(struct umevent_obj *notify_disp_obj)
-{
-	kobject_uevent(&notify_disp_obj->kobj, KOBJ_ADD);
-}
-/*EXPORT_SYMBOL(psb_umevent_notify); */
-
-void psb_umevent_notify_gfxsock(struct umevent_obj *notify_disp_obj,
-				int dst_group_id)
-{
-	psb_kobject_uevent(&notify_disp_obj->kobj, KOBJ_ADD, dst_group_id);
-}
-/*EXPORT_SYMBOL(psb_umevent_notify_gfxsock);*/
-/**
- * psb_umevent_notify_change - notify user mode of a change to a device
- *
- * @notify_disp_obj: event object to perform notification for
- *
- */
-void psb_umevent_notify_change(struct umevent_obj *notify_disp_obj)
-{
-	kobject_uevent(&notify_disp_obj->kobj, KOBJ_CHANGE);
-}
-/*EXPORT_SYMBOL(psb_umevent_notify_change); */
-/**
- * psb_umevent_notify_change - notify user mode of a change to a device
- *
- * @notify_disp_obj: event object to perform notification for
- *
- */
-void psb_umevent_notify_change_gfxsock(struct umevent_obj *notify_disp_obj,
-					int dst_group_id)
-{
-	psb_kobject_uevent(&notify_disp_obj->kobj, KOBJ_CHANGE, dst_group_id);
-}
-/*EXPORT_SYMBOL(psb_umevent_notify_change_gfxsock); */
-/**
- * psb_destroy_umvent_obj - decrement ref count on event so kernel can kill it
- *
- * @any_umevent_obj: event object to destroy
- *
- */
-void psb_destroy_umevent_obj(struct umevent_obj
-				     *any_umevent_obj)
-{
-	kobject_put(&any_umevent_obj->kobj);
-}
-/**
- *
- * psb_umevent_init - init the event pool
- *
- * @parent_kobj: parent kobject to associate new kset with
- * @new_umevent_list: event list to associate kset with
- * @name: name to give to new sysfs entry
- *
- */
-int psb_umevent_init(struct kobject *parent_kobj,
-		     struct umevent_list *new_umevent_list,
-		     const char *name)
-{
-	psb_umevent_init_list(new_umevent_list);
-	new_umevent_list->umevent_disp_pool = kset_create_and_add(name, NULL,
-						     parent_kobj);
-	if (!new_umevent_list->umevent_disp_pool)
-		return -ENOMEM;
-
-	return 0;
-}
-/*EXPORT_SYMBOL(psb_umevent_init); */
-/**
- *
- * psb_umevent_cleanup - cleanup all event objects
- *
- * @kill_list: list of events to destroy
- *
- */
-void psb_umevent_cleanup(struct umevent_list *kill_list)
-{
-	psb_umevent_destroy_list(kill_list);
-}
-/*EXPORT_SYMBOL(psb_umevent_cleanup); */
-/**
- * psb_umevent_add_to_list - add an event to the event list
- *
- * @list: list to add the event to
- * @umevent_obj_to_add: event to add
- *
- */
-void psb_umevent_add_to_list(struct umevent_list *list,
-			      struct umevent_obj *umevent_obj_to_add)
-{
-	unsigned long flags;
-	spin_lock_irqsave(&list->list_lock, flags);
-	list_add(&umevent_obj_to_add->head, &list->head);
-	spin_unlock_irqrestore(&list->list_lock, flags);
-}
-/**
- * psb_umevent_init_list - initialize event list
- *
- * @list: list to initialize
- *
- */
-void psb_umevent_init_list(struct umevent_list *list)
-{
-	spin_lock_init(&list->list_lock);
-	INIT_LIST_HEAD(&list->head);
-}
-/**
- * psb_umevent_create_list - allocate an event list
- *
- */
-struct umevent_list *psb_umevent_create_list()
-{
-	struct umevent_list *new_umevent_list;
-	new_umevent_list = NULL;
-	new_umevent_list =  kmalloc(sizeof(struct umevent_list),
-					 GFP_ATOMIC);
-	return new_umevent_list;
-}
-/*EXPORT_SYMBOL(psb_umevent_create_list); */
-/**
- * psb_umevent_destroy_list - destroy a list and clean up all mem
- *
- * @list: list to destroy and clean up after
- *
- */
-void psb_umevent_destroy_list(struct umevent_list *list)
-{
-	struct umevent_obj *umevent_obj_curr;
-	struct list_head *node;
-	struct list_head *node_kill;
-	int i;
-	i = 0;
-	node = NULL;
-	node_kill = NULL;
-	node = list->head.next;
-	while (node != (&list->head)) {
-		umevent_obj_curr = list_entry(node,
-				struct umevent_obj,
-						   head);
-		node_kill = node;
-		node = umevent_obj_curr->head.next;
-		list_del(node_kill);
-		psb_destroy_umevent_obj(umevent_obj_curr);
-		umevent_obj_curr = NULL;
-		i++;
-	}
-	kset_unregister(list->umevent_disp_pool);
-	kfree(list);
-}
-/**
- * psb_umevent_remove_from_list - remove an event from tracking list
- *
- * @list: list to remove the event from
- * @disp_to_remove: name of event to remove.
- *
- */
-void psb_umevent_remove_from_list(struct umevent_list *list,
-				   const char *disp_to_remove)
-{
-	struct umevent_obj *umevent_obj_curr = NULL;
-	struct list_head *node = NULL;
-	struct list_head *node_kill = NULL;
-	int i = 0;
-	int found_match = 0;
-	i = 0;
-	node = NULL;
-	node_kill = NULL;
-	node = list->head.next;
-	while (node != (&list->head)) {
-		umevent_obj_curr = list_entry(node,
-				struct umevent_obj, head);
-		if (strcmp(umevent_obj_curr->kobj.name,
-			  disp_to_remove) == 0) {
-			found_match = 1;
-			break;
-		}
-		node = NULL;
-		node = umevent_obj_curr->head.next;
-		i++;
-	}
-	if (found_match == 1) {
-		node_kill = node;
-		node = umevent_obj_curr->head.next;
-		list_del(node_kill);
-		psb_destroy_umevent_obj(umevent_obj_curr);
-		umevent_obj_curr = NULL;
-	}
-}
-/*EXPORT_SYMBOL(psb_umevent_remove_from_list); */
-/**
- * psb_umevent_find_obj - find an event in a tracking list
- *
- * @name: name of the event to find
- * @list: list to find the event in
- *
- */
-struct umevent_obj *psb_umevent_find_obj(const char *name,
-				  struct umevent_list *list)
-{
-	struct umevent_obj *umevent_obj_curr = NULL;
-	struct list_head *node = NULL;
-	int i = 0;
-	int found_match = 0;
-
-	node = NULL;
-	node = list->head.next;
-	while (node != (&list->head)) {
-		umevent_obj_curr = list_entry(node,
-				struct umevent_obj, head);
-		if (strcmp(umevent_obj_curr->kobj.name,
-			  name) == 0) {
-			found_match = 1;
-			break;
-		}
-		node = NULL;
-		node = umevent_obj_curr->head.next;
-		i++;
-	}
-	if (found_match == 1)
-		return umevent_obj_curr;
-
-	return NULL;
-}
-/*EXPORT_SYMBOL(psb_umevent_find_obj); */
-/**
- * psb_umevent_debug_dump_list - debug list dump
- *
- * @list: list to dump
- *
- */
-void psb_umevent_debug_dump_list(struct umevent_list *list)
-{
-	struct umevent_obj *umevent_obj_curr;
-	unsigned long flags;
-	struct list_head *node;
-	int i;
-	spin_lock_irqsave(&list->list_lock, flags);
-	i = 0;
-	node = NULL;
-	node = list->head.next;
-	while (node != (&list->head)) {
-		umevent_obj_curr = list_entry(node,
-						   struct umevent_obj,
-						   head);
-		/*TBD: DUMP ANY REQUIRED VALUES WITH PRINTK*/
-		node = NULL;
-		node = umevent_obj_curr->head.next;
-		i++;
-	}
-	spin_unlock_irqrestore(&list->list_lock, flags);
-}
diff --git a/drivers/staging/cdv/drv/psb_umevents.h b/drivers/staging/cdv/drv/psb_umevents.h
deleted file mode 100644
index 0b9b57d..0000000
--- a/drivers/staging/cdv/drv/psb_umevents.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (c) 2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *    James C. Gualario <james.c.gualario@intel.com>
- *
- */
-#ifndef _PSB_UMEVENT_H_
-#define _PSB_UMEVENT_H_
-/**
- * required includes
- *
- */
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/slab.h>
-#include <drm/drmP.h>
-#include <drm/drm_core.h>
-#include <drm/drm_pciids.h>
-#include <linux/spinlock.h>
-/**
- * event groups for routing to different user mode threads
- *
- */
-#define DRM_DPST_SOCKET_GROUP_ID 1
-#define DRM_HOTPLUG_SOCKET_GROUP_ID 2
-#define DRM_HDMI_AUDIO_SOCKET_GROUP 4
-#define DRM_HDMI_HDCP_SOCKET_GROUP 8
-#define DRM_GFX_SOCKET_GROUPS 15
-/**
- * event structure managed by kobjects
- *
- */
-struct umevent_obj {
-	struct kobject kobj;
-	struct list_head head;
-	int data_0_val;
-	int data_1_val;
-	int data_2_val;
-	int data_3_val;
-	int data_4_val;
-	int data_5_val;
-	int data_6_val;
-	int data_7_val;
-};
-/**
- * event tracking list element
- *
- */
-struct umevent_list{
-	struct list_head head;
-	struct kset *umevent_disp_pool;
-	spinlock_t list_lock;
-};
-/**
- * to go back and forth between kobjects and their main container
- *
- */
-#define to_umevent_obj(x) \
-	container_of(x, struct umevent_obj, kobj)
-
-/**
- * event attributes exposed via sysfs
- *
- */
-struct umevent_attribute {
-	struct attribute attr;
-	ssize_t (*show)(struct umevent_obj *any_umevent_obj,
-			struct umevent_attribute *attr, char *buf);
-	ssize_t (*store)(struct umevent_obj *any_umevent_obj,
-			 struct umevent_attribute *attr,
-			 const char *buf, size_t count);
-};
-/**
- * to go back and forth between the attribute passed to us by the OS
- * and the umevent_attribute
- *
- */
-#define to_umevent_attr(x) \
-	container_of(x, struct umevent_attribute, \
-	attr)
-
-/**
- * umevent function prototypes
- *
- */
-extern struct umevent_obj *psb_create_umevent_obj(const char *name,
-						struct umevent_list
-							*list);
-extern ssize_t psb_umevent_attr_show(struct kobject *kobj,
-				      struct attribute *attr, char *buf);
-extern ssize_t psb_umevent_attr_store(struct kobject *kobj,
-				       struct attribute *attr,
-				       const char *buf, size_t len);
-extern ssize_t psb_umevent_attr_show_imp(struct umevent_obj
-				     *any_umevent_obj,
-				     struct umevent_attribute *attr,
-				     char *buf);
-extern ssize_t psb_umevent_attr_store_imp(struct umevent_obj
-				      *any_umevent_obj,
-				      struct umevent_attribute *attr,
-				      const char *buf, size_t count);
-extern void psb_umevent_cleanup(struct umevent_list *kill_list);
-extern int psb_umevent_init(struct kobject *parent_kobj,
-			    struct umevent_list *new_umevent_list,
-			    const char *name);
-extern void psb_umevent_init_list(struct umevent_list *list);
-extern void psb_umevent_debug_dump_list(struct umevent_list *list);
-extern void psb_umevent_add_to_list(struct umevent_list *list,
-				     struct umevent_obj
-				     *umevent_obj_to_add);
-extern void psb_umevent_destroy_list(struct umevent_list *list);
-extern struct umevent_list *psb_umevent_create_list(void);
-extern void psb_umevent_notify(struct umevent_obj *notify_disp_obj);
-extern void psb_umevent_notify_gfxsock(struct umevent_obj *notify_disp_obj,
-					int dst_group_id);
-extern void psb_umevent_obj_release(struct kobject *kobj);
-extern void psb_umevent_remove_from_list(struct umevent_list *list,
-					  const char *disp_to_remove);
-extern void psb_umevent_workqueue_dispatch(int work_type, const char *name,
-				       struct umevent_list *list);
-extern void psb_umevent_notify_change(struct umevent_obj *notify_disp_obj);
-extern void psb_umevent_notify_change_gfxsock(struct umevent_obj
-					      *notify_disp_obj,
-					      int dst_group_id);
-extern struct umevent_obj *psb_umevent_find_obj(const char *name,
-						struct umevent_list
-							*list);
-/**
- * socket function prototypes
- *
- */
-extern int psb_kobject_uevent(struct kobject *kobj,
-			      enum kobject_action action, int dst_group_id);
-extern int psb_kobject_uevent_env(struct kobject *kobj,
-				  enum kobject_action action,
-				  char *envp[], int dst_group_id);
-int psb_add_uevent_var(struct kobj_uevent_env *env,
-		       const char *format, ...)
-	__attribute__((format (printf, 2, 3)));
-int psb_kobject_action_type(const char *buf,
-			    size_t count, enum kobject_action *type);
-
-#if defined(CONFIG_NET)
-int psb_kobject_uevent_init(void);
-#endif
-
-#endif
diff --git a/drivers/staging/cdv/imgv/msvdx_power.c b/drivers/staging/cdv/imgv/msvdx_power.c
deleted file mode 100644
index 7782a51..0000000
--- a/drivers/staging/cdv/imgv/msvdx_power.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (c) 2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors: binglin.chen@intel.com>
- *
- */
-
-#include "msvdx_power.h"
-#include "psb_msvdx.h"
-#include "psb_drv.h"
-
-#include "services_headers.h"
-#include "sysconfig.h"
-
-static PVRSRV_ERROR DevInitMSVDXPart1(IMG_VOID *pvDeviceNode)
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode = (PVRSRV_DEVICE_NODE *)pvDeviceNode;
-	PVRSRV_ERROR eError;
-	PVRSRV_DEV_POWER_STATE eDefaultPowerState;
-
-	/* register power operation function */
-	/* FIXME: this should be in part2 init function, but
-	 * currently here only OSPM needs IMG device... */
-	eDefaultPowerState = PVRSRV_DEV_POWER_STATE_OFF;
-	eError = PVRSRVRegisterPowerDevice(psDeviceNode->sDevId.ui32DeviceIndex,
-					   MSVDXPrePowerState,
-					   MSVDXPostPowerState,
-					   MSVDXPreClockSpeedChange,
-					   MSVDXPostClockSpeedChange,
-					   (IMG_HANDLE)psDeviceNode,
-					   PVRSRV_DEV_POWER_STATE_ON,
-					   eDefaultPowerState);
-	if (eError != PVRSRV_OK) {
-		PVR_DPF((PVR_DBG_ERROR, "DevInitMSVDXPart1: failed to "
-			 "register device with power manager"));
-		return eError;
-	}
-
-	return PVRSRV_OK;
-}
-
-static PVRSRV_ERROR DevDeInitMSVDX(IMG_VOID *pvDeviceNode)
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode = (PVRSRV_DEVICE_NODE *)pvDeviceNode;
-	PVRSRV_ERROR eError;
-
-	/* should deinit all resource */
-
-	eError = PVRSRVRemovePowerDevice(psDeviceNode->sDevId.ui32DeviceIndex);
-	if (eError != PVRSRV_OK)
-		return eError;
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR MSVDXDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	/* version check */
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR MSVDXRegisterDevice(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	psDeviceNode->sDevId.eDeviceType	= PVRSRV_DEVICE_TYPE_MSVDX;
-	psDeviceNode->sDevId.eDeviceClass	= PVRSRV_DEVICE_CLASS_VIDEO;
-
-	psDeviceNode->pfnInitDevice		= DevInitMSVDXPart1;
-	psDeviceNode->pfnDeInitDevice		= DevDeInitMSVDX;
-
-	psDeviceNode->pfnInitDeviceCompatCheck	= MSVDXDevInitCompatCheck;
-
-	psDeviceNode->pfnDeviceISR = psb_msvdx_interrupt;
-	psDeviceNode->pvISRData = (IMG_VOID *)gpDrmDevice;
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR MSVDXPrePowerState(IMG_HANDLE hDevHandle,
-				 PVRSRV_DEV_POWER_STATE	eNewPowerState,
-				 PVRSRV_DEV_POWER_STATE	eCurrentPowerState)
-{
-#if 1
-	/* ask for a change not power on*/
-	if ((eNewPowerState != eCurrentPowerState) &&
-	    (eNewPowerState != PVRSRV_DEV_POWER_STATE_ON)) {
-		struct drm_psb_private *dev_priv = gpDrmDevice->dev_private;
-		struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-		MSVDX_NEW_PMSTATE(gpDrmDevice, msvdx_priv, PSB_PMSTATE_POWERDOWN);
-
-		/* context save */
-		psb_msvdx_save_context(gpDrmDevice);
-
-		/* internally close the device */
-
-		/* ask for power off */
-		if (eNewPowerState == PVRSRV_DEV_POWER_STATE_OFF) {
-			/* here will deinitialize the driver if needed */
-		} else {
-			PVR_DPF((PVR_DBG_MESSAGE,
-				"%s no action for transform from %d to %d",
-				 __func__,
-				eCurrentPowerState,
-				eNewPowerState));
-		}
-	}
-#endif
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR MSVDXPostPowerState(IMG_HANDLE hDevHandle,
-				 PVRSRV_DEV_POWER_STATE	eNewPowerState,
-				 PVRSRV_DEV_POWER_STATE	eCurrentPowerState)
-{
-#if 1
-	/* if ask for change & current status is not on */
-	if ((eNewPowerState != eCurrentPowerState) &&
-	    (eCurrentPowerState != PVRSRV_DEV_POWER_STATE_ON)) {
-		/* internally open device */
-		struct drm_psb_private *dev_priv = gpDrmDevice->dev_private;
-		struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-		MSVDX_NEW_PMSTATE(gpDrmDevice, msvdx_priv, PSB_PMSTATE_POWERUP);
-
-		/* context restore */
-		psb_msvdx_restore_context(gpDrmDevice);
-
-		if (eCurrentPowerState == PVRSRV_DEV_POWER_STATE_OFF) {
-			/* here will initialize the driver if needed */
-		} else {
-			PVR_DPF((PVR_DBG_MESSAGE,
-				"%s no action for transform from %d to %d",
-				 __func__,
-				eCurrentPowerState,
-				eNewPowerState));
-		}
-	}
-#endif
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR MSVDXPreClockSpeedChange(IMG_HANDLE hDevHandle,
-				      IMG_BOOL bIdleDevice,
-				      PVRSRV_DEV_POWER_STATE eCurrentPowerState)
-{
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR MSVDXPostClockSpeedChange(IMG_HANDLE hDevHandle,
-				      IMG_BOOL bIdleDevice,
-				      PVRSRV_DEV_POWER_STATE eCurrentPowerState)
-{
-	return PVRSRV_OK;
-}
diff --git a/drivers/staging/cdv/imgv/msvdx_power.h b/drivers/staging/cdv/imgv/msvdx_power.h
deleted file mode 100644
index 580f93f..0000000
--- a/drivers/staging/cdv/imgv/msvdx_power.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors: binglin.chen@intel.com>
- *
- */
-
-#ifndef MSVDX_POWER_H_
-#define MSVDX_POWER_H_
-
-#include "services_headers.h"
-#include "sysconfig.h"
-
-extern struct drm_device *gpDrmDevice;
-
-/* function define */
-PVRSRV_ERROR MSVDXRegisterDevice(PVRSRV_DEVICE_NODE *psDeviceNode);
-PVRSRV_ERROR MSVDXDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode);
-
-/* power function define */
-PVRSRV_ERROR MSVDXPrePowerState(IMG_HANDLE	hDevHandle,
-			PVRSRV_DEV_POWER_STATE	eNewPowerState,
-			PVRSRV_DEV_POWER_STATE	eCurrentPowerState);
-PVRSRV_ERROR MSVDXPostPowerState(IMG_HANDLE	hDevHandle,
-			 PVRSRV_DEV_POWER_STATE	eNewPowerState,
-			 PVRSRV_DEV_POWER_STATE	eCurrentPowerState);
-PVRSRV_ERROR MSVDXPreClockSpeedChange(IMG_HANDLE	hDevHandle,
-			      IMG_BOOL			bIdleDevice,
-			      PVRSRV_DEV_POWER_STATE	eCurrentPowerState);
-PVRSRV_ERROR MSVDXPostClockSpeedChange(IMG_HANDLE	hDevHandle,
-			       IMG_BOOL			bIdleDevice,
-			       PVRSRV_DEV_POWER_STATE	eCurrentPowerState);
-PVRSRV_ERROR MSVDXInitOSPM(PVRSRV_DEVICE_NODE *psDeviceNode);
-
-#endif /* !MSVDX_POWER_H_ */
diff --git a/drivers/staging/cdv/imgv/psb_buffer.c b/drivers/staging/cdv/imgv/psb_buffer.c
deleted file mode 100644
index 263cd7c..0000000
--- a/drivers/staging/cdv/imgv/psb_buffer.c
+++ /dev/null
@@ -1,442 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thomas-at-tungstengraphics.com>
- */
-#include "ttm/ttm_placement.h"
-#include "ttm/ttm_execbuf_util.h"
-#include "psb_ttm_fence_api.h"
-#include <drm/drmP.h>
-#include "psb_drv.h"
-#include "psb_schedule.h"
-
-#define DRM_MEM_TTM       26
-
-struct drm_psb_ttm_backend {
-	struct ttm_backend base;
-	struct page **pages;
-	unsigned int desired_tile_stride;
-	unsigned int hw_tile_stride;
-	int mem_type;
-	unsigned long offset;
-	unsigned long num_pages;
-};
-
-/*
- * MSVDX/TOPAZ GPU virtual space looks like this
- * (We currently use only one MMU context).
- * PSB_MEM_MMU_START: from 0x00000000~0xe000000, for generic buffers
- * TTM_PL_CI: from 0xe0000000+half GTT space, for camear/video buffer sharing
- * TTM_PL_RAR: from TTM_PL_CI+CI size, for RAR/video buffer sharing
- * TTM_PL_TT: from TTM_PL_RAR+RAR size, for buffers need to mapping into GTT
- */
-static int psb_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
-			     struct ttm_mem_type_manager *man)
-{
-
-	struct drm_psb_private *dev_priv =
-	    container_of(bdev, struct drm_psb_private, bdev);
-	struct psb_gtt *pg = dev_priv->pg;
-
-	switch (type) {
-	case TTM_PL_SYSTEM:
-		man->flags = TTM_MEMTYPE_FLAG_MAPPABLE;
-		man->available_caching = TTM_PL_FLAG_CACHED |
-		    TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_WC;
-		man->default_caching = TTM_PL_FLAG_CACHED;
-		break;
-	case DRM_PSB_MEM_MMU:
-		man->func = &ttm_bo_manager_func;
-		man->flags = TTM_MEMTYPE_FLAG_MAPPABLE |
-		    TTM_MEMTYPE_FLAG_CMA;
-		man->gpu_offset = PSB_MEM_MMU_START;
-		man->available_caching = TTM_PL_FLAG_CACHED |
-		    TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_WC;
-		man->default_caching = TTM_PL_FLAG_WC;
-		break;
-	case TTM_PL_CI:
-		man->func = &ttm_bo_manager_func;
-		man->flags = TTM_MEMTYPE_FLAG_MAPPABLE |
-			TTM_MEMTYPE_FLAG_FIXED;
-		man->gpu_offset = pg->mmu_gatt_start + (pg->ci_start);
-		man->available_caching = TTM_PL_FLAG_UNCACHED;
-		man->default_caching = TTM_PL_FLAG_UNCACHED;
-		break;
-	case TTM_PL_RAR:	/* Unmappable RAR memory */
-		man->func = &ttm_bo_manager_func;
-		man->flags = TTM_MEMTYPE_FLAG_MAPPABLE |
-			TTM_MEMTYPE_FLAG_FIXED;
-		man->available_caching = TTM_PL_FLAG_UNCACHED;
-		man->default_caching = TTM_PL_FLAG_UNCACHED;
-		man->gpu_offset = pg->mmu_gatt_start + (pg->rar_start);
-		break;
-	case TTM_PL_TT:	/* Mappable GATT memory */
-		man->func = &ttm_bo_manager_func;
-#ifdef PSB_WORKING_HOST_MMU_ACCESS
-		man->flags = TTM_MEMTYPE_FLAG_MAPPABLE;
-#else
-		man->flags = TTM_MEMTYPE_FLAG_MAPPABLE |
-		    TTM_MEMTYPE_FLAG_CMA;
-#endif
-		man->available_caching = TTM_PL_FLAG_CACHED |
-		    TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_WC;
-		man->default_caching = TTM_PL_FLAG_WC;
-		man->gpu_offset = pg->mmu_gatt_start + (pg->rar_start + dev_priv->rar_region_size);
-		break;
-	default:
-		DRM_ERROR("Unsupported memory type %u\n", (unsigned) type);
-		return -EINVAL;
-	}
-	return 0;
-}
-
-
-static void psb_evict_mask(struct ttm_buffer_object *bo, struct ttm_placement* placement)
-{
-	static uint32_t cur_placement;
-
-	cur_placement = bo->mem.placement & ~TTM_PL_MASK_MEM;
-	cur_placement |= TTM_PL_FLAG_SYSTEM;
-
-	placement->fpfn = 0;
-	placement->lpfn = 0;
-	placement->num_placement = 1;
-	placement->placement = &cur_placement;
-	placement->num_busy_placement = 0;
-	placement->busy_placement = NULL;
-	
-	/* all buffers evicted to system memory */
-	/* return cur_placement | TTM_PL_FLAG_SYSTEM; */
-}
-
-static int psb_invalidate_caches(struct ttm_bo_device *bdev,
-				 uint32_t placement)
-{
-	return 0;
-}
-
-static int psb_move_blit(struct ttm_buffer_object *bo,
-			 bool evict, bool no_wait,
-			 struct ttm_mem_reg *new_mem)
-{
-	BUG();
-	return 0;
-}
-
-/*
- * Flip destination ttm into GATT,
- * then blit and subsequently move out again.
- */
-
-static int psb_move_flip(struct ttm_buffer_object *bo,
-			 bool evict, bool interruptible, bool no_wait,
-			 struct ttm_mem_reg *new_mem)
-{
-	/*struct ttm_bo_device *bdev = bo->bdev;*/
-	struct ttm_mem_reg tmp_mem;
-	int ret;
-	struct ttm_placement placement;
-	uint32_t flags = TTM_PL_FLAG_TT;
-
-	tmp_mem = *new_mem;
-	tmp_mem.mm_node = NULL;
-
-	placement.fpfn = 0;
-	placement.lpfn = 0;
-	placement.num_placement = 1;
-	placement.placement = &flags;
-	placement.num_busy_placement = 0; /* FIXME */
-	placement.busy_placement = NULL;
-
-	ret = ttm_bo_mem_space(bo, &placement, &tmp_mem, interruptible, false, no_wait);
-	if (ret)
-		return ret;
-	ret = ttm_tt_bind(bo->ttm, &tmp_mem);
-	if (ret)
-		goto out_cleanup;
-	ret = psb_move_blit(bo, true, no_wait, &tmp_mem);
-	if (ret)
-		goto out_cleanup;
-
-	ret = ttm_bo_move_ttm(bo, evict, false, no_wait, new_mem);
-out_cleanup:
-	if (tmp_mem.mm_node) {
-		/*spin_lock(&bdev->lru_lock);*/ // lru_lock is removed from upstream TTM
-		drm_mm_put_block(tmp_mem.mm_node);
-		tmp_mem.mm_node = NULL;
-		/*spin_unlock(&bdev->lru_lock);*/
-	}
-	return ret;
-}
-
-static int psb_move(struct ttm_buffer_object *bo,
-		    bool evict, bool interruptible, bool no_wait_reserve,
-		    bool no_wait, struct ttm_mem_reg *new_mem)
-{
-	struct ttm_mem_reg *old_mem = &bo->mem;
-
-	if ((old_mem->mem_type == TTM_PL_RAR) ||
-	    (new_mem->mem_type == TTM_PL_RAR)) {
-		if(old_mem->mm_node) {
-			spin_lock(&bo->glob->lru_lock);
-			drm_mm_put_block(old_mem->mm_node);
-			spin_unlock(&bo->glob->lru_lock);
-		}
-		old_mem->mm_node = NULL;
-		*old_mem = *new_mem;
-	} else if (old_mem->mem_type == TTM_PL_SYSTEM) {
-		return ttm_bo_move_memcpy(bo, evict, false, no_wait, new_mem);
-	} else if (new_mem->mem_type == TTM_PL_SYSTEM) {
-		int ret = psb_move_flip(bo, evict, interruptible,
-					no_wait, new_mem);
-		if (unlikely(ret != 0)) {
-			if (ret == -ERESTART)
-				return ret;
-			else
-				return ttm_bo_move_memcpy(bo, evict, false, no_wait,
-							  new_mem);
-		}
-	} else {
-		if (psb_move_blit(bo, evict, no_wait, new_mem))
-			return ttm_bo_move_memcpy(bo, evict, false, no_wait,
-						  new_mem);
-	}
-	return 0;
-}
-
-static int drm_psb_tbe_populate(struct ttm_backend *backend,
-				unsigned long num_pages,
-				struct page **pages,
-				struct page *dummy_read_page,
-				dma_addr_t *dma_addrs)
-{
-	struct drm_psb_ttm_backend *psb_be =
-	    container_of(backend, struct drm_psb_ttm_backend, base);
-
-	psb_be->pages = pages;
-	return 0;
-}
-
-static int drm_psb_tbe_unbind(struct ttm_backend *backend)
-{
-	struct ttm_bo_device *bdev = backend->bdev;
-	struct drm_psb_private *dev_priv =
-	    container_of(bdev, struct drm_psb_private, bdev);
-	struct drm_psb_ttm_backend *psb_be =
-	    container_of(backend, struct drm_psb_ttm_backend, base);
-	struct psb_mmu_pd *pd = psb_mmu_get_default_pd(dev_priv->mmu);
-	/* struct ttm_mem_type_manager *man = &bdev->man[psb_be->mem_type]; */
-
-	if (psb_be->mem_type == TTM_PL_TT) {
-		uint32_t gatt_p_offset =
-		    (psb_be->offset - dev_priv->pg->mmu_gatt_start) >> PAGE_SHIFT;
-
-		(void) psb_gtt_remove_pages(dev_priv->pg, gatt_p_offset,
-					    psb_be->num_pages,
-					    psb_be->desired_tile_stride,
-					    psb_be->hw_tile_stride, 0);
-	}
-
-	psb_mmu_remove_pages(pd, psb_be->offset,
-			     psb_be->num_pages,
-			     psb_be->desired_tile_stride,
-			     psb_be->hw_tile_stride);
-
-	return 0;
-}
-
-static int drm_psb_tbe_bind(struct ttm_backend *backend,
-			    struct ttm_mem_reg *bo_mem)
-{
-	struct ttm_bo_device *bdev = backend->bdev;
-	struct drm_psb_private *dev_priv =
-	    container_of(bdev, struct drm_psb_private, bdev);
-	struct drm_psb_ttm_backend *psb_be =
-	    container_of(backend, struct drm_psb_ttm_backend, base);
-	struct psb_mmu_pd *pd = psb_mmu_get_default_pd(dev_priv->mmu);
-	struct ttm_mem_type_manager *man = &bdev->man[bo_mem->mem_type];
-	int type;
-	int ret = 0;
-
-	psb_be->mem_type = bo_mem->mem_type;
-	psb_be->num_pages = bo_mem->num_pages;
-	psb_be->desired_tile_stride = 0;
-	psb_be->hw_tile_stride = 0;
-	psb_be->offset = (bo_mem->start << PAGE_SHIFT) +
-	    man->gpu_offset;
-
-	type =
-	    (bo_mem->
-	     placement & TTM_PL_FLAG_CACHED) ? PSB_MMU_CACHED_MEMORY : 0;
-
-	if (psb_be->mem_type == TTM_PL_TT) {
-		uint32_t gatt_p_offset =
-		    (psb_be->offset - dev_priv->pg->mmu_gatt_start) >> PAGE_SHIFT;
-
-		ret = psb_gtt_insert_pages(dev_priv->pg, psb_be->pages,
-					   gatt_p_offset,
-					   psb_be->num_pages,
-					   psb_be->desired_tile_stride,
-					   psb_be->hw_tile_stride, type);
-	}
-
-	ret = psb_mmu_insert_pages(pd, psb_be->pages,
-				   psb_be->offset, psb_be->num_pages,
-				   psb_be->desired_tile_stride,
-				   psb_be->hw_tile_stride, type);
-	if (ret)
-		goto out_err;
-
-	return 0;
-out_err:
-	drm_psb_tbe_unbind(backend);
-	return ret;
-
-}
-
-static void drm_psb_tbe_clear(struct ttm_backend *backend)
-{
-	struct drm_psb_ttm_backend *psb_be =
-	    container_of(backend, struct drm_psb_ttm_backend, base);
-
-	psb_be->pages = NULL;
-	return;
-}
-
-static void drm_psb_tbe_destroy(struct ttm_backend *backend)
-{
-	struct drm_psb_ttm_backend *psb_be =
-	    container_of(backend, struct drm_psb_ttm_backend, base);
-
-	if (backend)
-		kfree(psb_be);
-}
-
-static struct ttm_backend_func psb_ttm_backend = {
-	.populate = drm_psb_tbe_populate,
-	.clear = drm_psb_tbe_clear,
-	.bind = drm_psb_tbe_bind,
-	.unbind = drm_psb_tbe_unbind,
-	.destroy = drm_psb_tbe_destroy,
-};
-
-static struct ttm_backend *drm_psb_tbe_init(struct ttm_bo_device *bdev)
-{
-	struct drm_psb_ttm_backend *psb_be;
-
-	psb_be = kzalloc(sizeof(*psb_be), GFP_KERNEL);
-	if (!psb_be)
-		return NULL;
-	psb_be->pages = NULL;
-	psb_be->base.func = &psb_ttm_backend;
-	psb_be->base.bdev = bdev;
-	return &psb_be->base;
-}
-
-static int psb_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
-{
-	struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
-	struct drm_psb_private *dev_priv =
-	    container_of(bdev, struct drm_psb_private, bdev);
-	struct psb_gtt *pg = dev_priv->pg;
-
-	mem->bus.addr = NULL;
-	mem->bus.offset = 0;
-	mem->bus.size = mem->num_pages << PAGE_SHIFT;
-	mem->bus.base = 0;
-	mem->bus.is_iomem = false;
-	if (!(man->flags & TTM_MEMTYPE_FLAG_MAPPABLE))
-		return -EINVAL;
-	switch (mem->mem_type) {
-	case TTM_PL_SYSTEM:
-		/* system memory */
-		return 0;
-	case TTM_PL_TT:
-		mem->bus.offset = mem->start << PAGE_SHIFT;
-		mem->bus.base = pg->gatt_start;
-		mem->bus.is_iomem = false; /* Don't know whether it is IO_MEM, this flag used in vm_fault handle */
-		break;
-	case DRM_PSB_MEM_MMU:
-		mem->bus.offset = mem->start << PAGE_SHIFT;
-		mem->bus.base = 0x00000000;
-		break;
-	case TTM_PL_CI:
-		mem->bus.offset = mem->start << PAGE_SHIFT;
-		mem->bus.base = dev_priv->ci_region_start;;
-		mem->bus.is_iomem = true;
-		break;
-	case TTM_PL_RAR:
-		mem->bus.offset = mem->start << PAGE_SHIFT;
-		mem->bus.base = dev_priv->rar_region_start;;
-		mem->bus.is_iomem = true;
-		break;
-	default:
-		return -EINVAL;
-	}
-	return 0;
-}
-
-static void psb_ttm_io_mem_free(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
-{
-}
-
-/*
- * Use this memory type priority if no eviction is needed.
- */
-/*
-static uint32_t psb_mem_prios[] = {
-	TTM_PL_CI,
-	TTM_PL_RAR,
-	TTM_PL_TT,
-	DRM_PSB_MEM_MMU,
-	TTM_PL_SYSTEM
-};
-*/
-/*
- * Use this memory type priority if need to evict.
- */
-/*
-static uint32_t psb_busy_prios[] = {
-	TTM_PL_TT,
-	TTM_PL_CI,
-	TTM_PL_RAR,
-	DRM_PSB_MEM_MMU,
-	TTM_PL_SYSTEM
-};
-*/
-struct ttm_bo_driver psb_ttm_bo_driver = {
-/*
-	.mem_type_prio = psb_mem_prios,
-	.mem_busy_prio = psb_busy_prios,
-	.num_mem_type_prio = ARRAY_SIZE(psb_mem_prios),
-	.num_mem_busy_prio = ARRAY_SIZE(psb_busy_prios),
-*/
-	.create_ttm_backend_entry = &drm_psb_tbe_init,
-	.invalidate_caches = &psb_invalidate_caches,
-	.init_mem_type = &psb_init_mem_type,
-	.evict_flags = &psb_evict_mask,
-	.move = &psb_move,
-	.verify_access = &psb_verify_access,
-	.sync_obj_signaled = &ttm_fence_sync_obj_signaled,
-	.sync_obj_wait = &ttm_fence_sync_obj_wait,
-	.sync_obj_flush = &ttm_fence_sync_obj_flush,
-	.sync_obj_unref = &ttm_fence_sync_obj_unref,
-	.sync_obj_ref = &ttm_fence_sync_obj_ref,
-	.io_mem_reserve = &psb_ttm_io_mem_reserve,
-	.io_mem_free = &psb_ttm_io_mem_free
-};
diff --git a/drivers/staging/cdv/imgv/psb_fence.c b/drivers/staging/cdv/imgv/psb_fence.c
deleted file mode 100644
index aa3268b..0000000
--- a/drivers/staging/cdv/imgv/psb_fence.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- *
- * Authors: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
- */
-
-#include <drm/drmP.h>
-#include "psb_drv.h"
-#include "psb_msvdx.h"
-
-
-static void psb_fence_poll(struct ttm_fence_device *fdev,
-			   uint32_t fence_class, uint32_t waiting_types)
-{
-	struct drm_psb_private *dev_priv =
-	    container_of(fdev, struct drm_psb_private, fdev);
-	uint32_t sequence = 0;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-
-
-	if (unlikely(!dev_priv))
-		return;
-
-	if (waiting_types == 0)
-		return;
-
-	switch (fence_class) {
-	case PSB_ENGINE_VIDEO:
-		sequence = msvdx_priv->msvdx_current_sequence;
-		break;
-	default:
-		break;
-	}
-
-	/* DRM_ERROR("Polling fence sequence, got 0x%08x\n", sequence); */
-	ttm_fence_handler(fdev, fence_class, sequence,
-			_PSB_FENCE_TYPE_EXE, 0);
-}
-
-void psb_fence_error(struct drm_device *dev,
-		     uint32_t fence_class,
-		     uint32_t sequence, uint32_t type, int error)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	struct ttm_fence_device *fdev = &dev_priv->fdev;
-	unsigned long irq_flags;
-	struct ttm_fence_class_manager *fc =
-	    &fdev->fence_class[fence_class];
-
-	BUG_ON(fence_class >= PSB_NUM_ENGINES);
-	write_lock_irqsave(&fc->lock, irq_flags);
-	ttm_fence_handler(fdev, fence_class, sequence, type, error);
-	write_unlock_irqrestore(&fc->lock, irq_flags);
-}
-
-int psb_fence_emit_sequence(struct ttm_fence_device *fdev,
-			    uint32_t fence_class,
-			    uint32_t flags, uint32_t *sequence,
-			    unsigned long *timeout_jiffies)
-{
-	struct drm_psb_private *dev_priv =
-	    container_of(fdev, struct drm_psb_private, fdev);
-	uint32_t seq = 0;
-
-	if (!dev_priv)
-		return -EINVAL;
-
-	if (fence_class >= PSB_NUM_ENGINES)
-		return -EINVAL;
-
-	switch (fence_class) {
-	case PSB_ENGINE_VIDEO:
-		spin_lock(&dev_priv->sequence_lock);
-		seq = dev_priv->sequence[fence_class]++;
-		spin_unlock(&dev_priv->sequence_lock);
-		break;
-	default:
-		DRM_ERROR("Unexpected fence class\n");
-		return -EINVAL;
-	}
-
-	*sequence = seq;
-	*timeout_jiffies = jiffies + DRM_HZ * 3;
-
-	return 0;
-}
-
-static void psb_fence_lockup(struct ttm_fence_object *fence,
-			     uint32_t fence_types)
-{
-	struct ttm_fence_device *fdev = fence->fdev;
-	struct ttm_fence_class_manager *fc = ttm_fence_fc(fence);
-	struct drm_psb_private *dev_priv =
-		container_of(fdev, struct drm_psb_private, fdev);
-	struct drm_device *dev =  (struct drm_device *)dev_priv->dev;
-
-	if (fence->fence_class == PSB_ENGINE_VIDEO) {
-		struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-
-		DRM_ERROR("MSVDX timeout (probable lockup) detected, flush queued cmdbuf");
-
-		psb_msvdx_flush_cmd_queue(dev);
-
-		write_lock(&fc->lock);
-		ttm_fence_handler(fence->fdev, fence->fence_class,
-				  fence->sequence, fence_types, -EBUSY);
-		write_unlock(&fc->lock);
-		
-		msvdx_priv->msvdx_needs_reset = 1;
-	} else 
-		DRM_ERROR("Unsupported fence class\n");
-}
-
-void psb_fence_handler(struct drm_device *dev, uint32_t fence_class)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	struct ttm_fence_device *fdev = &dev_priv->fdev;
-	struct ttm_fence_class_manager *fc =
-	    &fdev->fence_class[fence_class];
-	unsigned long irq_flags;
-
-	write_lock_irqsave(&fc->lock, irq_flags);
-	psb_fence_poll(fdev, fence_class, fc->waiting_types);
-	write_unlock_irqrestore(&fc->lock, irq_flags);
-}
-
-
-static struct ttm_fence_driver psb_ttm_fence_driver = {
-	.has_irq = NULL,
-	.emit = psb_fence_emit_sequence,
-	.flush = NULL,
-	.poll = psb_fence_poll,
-	.needed_flush = NULL,
-	.wait = NULL,
-	.signaled = NULL,
-	.lockup = psb_fence_lockup,
-};
-
-int psb_ttm_fence_device_init(struct ttm_fence_device *fdev)
-{
-	struct drm_psb_private *dev_priv =
-		container_of(fdev, struct drm_psb_private, fdev);
-	struct ttm_fence_class_init fci = {.wrap_diff = (1 << 30),
-		.flush_diff = (1 << 29),
-		.sequence_mask = 0xFFFFFFFF
-	};
-
-	return ttm_fence_device_init(PSB_NUM_ENGINES,
-				     dev_priv->mem_global_ref.object,
-				     fdev, &fci, 1,
-				     &psb_ttm_fence_driver);
-}
diff --git a/drivers/staging/cdv/imgv/psb_mmu.c b/drivers/staging/cdv/imgv/psb_mmu.c
deleted file mode 100644
index aa32627..0000000
--- a/drivers/staging/cdv/imgv/psb_mmu.c
+++ /dev/null
@@ -1,1041 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-#include <drm/drmP.h>
-#include "psb_drv.h"
-#include "psb_reg.h"
-
-/*
- * Code for the SGX MMU:
- */
-
-/*
- * clflush on one processor only:
- * clflush should apparently flush the cache line on all processors in an
- * SMP system.
- */
-
-/*
- * kmap atomic:
- * The usage of the slots must be completely encapsulated within a spinlock, and
- * no other functions that may be using the locks for other purposed may be
- * called from within the locked region.
- * Since the slots are per processor, this will guarantee that we are the only
- * user.
- */
-
-/*
- * TODO: Inserting ptes from an interrupt handler:
- * This may be desirable for some SGX functionality where the GPU can fault in
- * needed pages. For that, we need to make an atomic insert_pages function, that
- * may fail.
- * If it fails, the caller need to insert the page using a workqueue function,
- * but on average it should be fast.
- */
-
-struct psb_mmu_driver {
-	/* protects driver- and pd structures. Always take in read mode
-	 * before taking the page table spinlock.
-	 */
-	struct rw_semaphore sem;
-
-	/* protects page tables, directory tables and pt tables.
-	 * and pt structures.
-	 */
-	spinlock_t lock;
-
-	atomic_t needs_tlbflush;
-
-	uint8_t __iomem *register_map;
-	struct psb_mmu_pd *default_pd;
-	/*uint32_t bif_ctrl;*/
-	int has_clflush;
-	int clflush_add;
-	unsigned long clflush_mask;
-
-	struct drm_psb_private *dev_priv;
-};
-
-struct psb_mmu_pd;
-
-struct psb_mmu_pt {
-	struct psb_mmu_pd *pd;
-	uint32_t index;
-	uint32_t count;
-	struct page *p;
-	uint32_t *v;
-};
-
-struct psb_mmu_pd {
-	struct psb_mmu_driver *driver;
-	int hw_context;
-	struct psb_mmu_pt **tables;
-	struct page *p;
-	struct page *dummy_pt;
-	struct page *dummy_page;
-	uint32_t pd_mask;
-	uint32_t invalid_pde;
-	uint32_t invalid_pte;
-};
-
-static inline uint32_t psb_mmu_pt_index(uint32_t offset)
-{
-	return (offset >> PSB_PTE_SHIFT) & 0x3FF;
-}
-
-static inline uint32_t psb_mmu_pd_index(uint32_t offset)
-{
-	return offset >> PSB_PDE_SHIFT;
-}
-
-#if defined(CONFIG_X86)
-static inline void psb_clflush(void *addr)
-{
-	__asm__ __volatile__("clflush (%0)\n" : : "r"(addr) : "memory");
-}
-
-static inline void psb_mmu_clflush(struct psb_mmu_driver *driver,
-				   void *addr)
-{
-	if (!driver->has_clflush)
-		return;
-
-	mb();
-	psb_clflush(addr);
-	mb();
-}
-
-static void psb_page_clflush(struct psb_mmu_driver *driver, struct page* page)
-{
-	uint32_t clflush_add = driver->clflush_add >> PAGE_SHIFT;
-	uint32_t clflush_count = PAGE_SIZE / clflush_add;
-	int i;
-	uint8_t *clf;
-
-	clf = kmap_atomic(page, KM_USER0);
-	mb();
-	for (i = 0; i < clflush_count; ++i) {
-		psb_clflush(clf);
-		clf += clflush_add;
-	}
-	mb();
-	kunmap_atomic(clf, KM_USER0);
-}
-
-static void psb_pages_clflush(struct psb_mmu_driver *driver, struct page *page[], unsigned long num_pages)
-{
-	int i;
-
-	if (!driver->has_clflush)
-		return ;
-
-	for(i = 0; i < num_pages; i++ )
-		psb_page_clflush(driver, *page++);
-}
-#else
-
-static inline void psb_mmu_clflush(struct psb_mmu_driver *driver,
-				   void *addr)
-{;
-}
-
-static void psb_pages_clflush(struct psb_mmu_driver *driver, struct page *page[], unsigned long num_pages)
-{
-	printk("Dumy psb_pages_clflush\n");
-}
-
-#endif
-
-static void psb_mmu_flush_pd_locked(struct psb_mmu_driver *driver,
-				    int force)
-{
-	if (atomic_read(&driver->needs_tlbflush) || force) {
-		if (driver->dev_priv)
-			atomic_set(&driver->dev_priv->msvdx_mmu_invaldc, 1);
-	}
-	atomic_set(&driver->needs_tlbflush, 0);
-}
-
-static void psb_mmu_flush_pd(struct psb_mmu_driver *driver, int force)
-{
-	down_write(&driver->sem);
-	psb_mmu_flush_pd_locked(driver, force);
-	up_write(&driver->sem);
-}
-
-void psb_mmu_flush(struct psb_mmu_driver *driver, int rc_prot)
-{
-	if (rc_prot)
-		down_write(&driver->sem);
-
-	if (driver->dev_priv)
-		atomic_set(&driver->dev_priv->msvdx_mmu_invaldc, 1);
-
-	if (rc_prot)
-		up_write(&driver->sem);
-}
-
-void psb_mmu_set_pd_context(struct psb_mmu_pd *pd, int hw_context)
-{
-	/*ttm_tt_cache_flush(&pd->p, 1);*/
-	psb_pages_clflush(pd->driver, &pd->p, 1);
-	down_write(&pd->driver->sem);
-	wmb();
-	psb_mmu_flush_pd_locked(pd->driver, 1);
-	pd->hw_context = hw_context;
-	up_write(&pd->driver->sem);
-
-}
-
-static inline unsigned long psb_pd_addr_end(unsigned long addr,
-					    unsigned long end)
-{
-
-	addr = (addr + PSB_PDE_MASK + 1) & ~PSB_PDE_MASK;
-	return (addr < end) ? addr : end;
-}
-
-static inline uint32_t psb_mmu_mask_pte(uint32_t pfn, int type)
-{
-	uint32_t mask = PSB_PTE_VALID;
-
-	if (type & PSB_MMU_CACHED_MEMORY)
-		mask |= PSB_PTE_CACHED;
-	if (type & PSB_MMU_RO_MEMORY)
-		mask |= PSB_PTE_RO;
-	if (type & PSB_MMU_WO_MEMORY)
-		mask |= PSB_PTE_WO;
-
-	return (pfn << PAGE_SHIFT) | mask;
-}
-
-struct psb_mmu_pd *psb_mmu_alloc_pd(struct psb_mmu_driver *driver,
-				    int trap_pagefaults, int invalid_type)
-{
-	struct psb_mmu_pd *pd = kmalloc(sizeof(*pd), GFP_KERNEL);
-	uint32_t *v;
-	int i;
-
-	if (!pd)
-		return NULL;
-
-	pd->p = alloc_page(GFP_DMA32);
-	if (!pd->p)
-		goto out_err1;
-	pd->dummy_pt = alloc_page(GFP_DMA32);
-	if (!pd->dummy_pt)
-		goto out_err2;
-	pd->dummy_page = alloc_page(GFP_DMA32);
-	if (!pd->dummy_page)
-		goto out_err3;
-
-	if (!trap_pagefaults) {
-		pd->invalid_pde =
-		    psb_mmu_mask_pte(page_to_pfn(pd->dummy_pt),
-				     invalid_type);
-		pd->invalid_pte =
-		    psb_mmu_mask_pte(page_to_pfn(pd->dummy_page),
-				     invalid_type);
-	} else {
-		pd->invalid_pde = 0;
-		pd->invalid_pte = 0;
-	}
-
-	v = kmap(pd->dummy_pt);
-	for (i = 0; i < (PAGE_SIZE / sizeof(uint32_t)); ++i)
-		v[i] = pd->invalid_pte;
-
-	kunmap(pd->dummy_pt);
-
-	v = kmap(pd->p);
-	for (i = 0; i < (PAGE_SIZE / sizeof(uint32_t)); ++i)
-		v[i] = pd->invalid_pde;
-
-	kunmap(pd->p);
-
-	clear_page(kmap(pd->dummy_page));
-	kunmap(pd->dummy_page);
-
-	pd->tables = vmalloc_user(sizeof(struct psb_mmu_pt *) * 1024);
-	if (!pd->tables)
-		goto out_err4;
-
-	pd->hw_context = -1;
-	pd->pd_mask = PSB_PTE_VALID;
-	pd->driver = driver;
-
-	return pd;
-
-out_err4:
-	__free_page(pd->dummy_page);
-out_err3:
-	__free_page(pd->dummy_pt);
-out_err2:
-	__free_page(pd->p);
-out_err1:
-	kfree(pd);
-	return NULL;
-}
-
-void psb_mmu_free_pt(struct psb_mmu_pt *pt)
-{
-	__free_page(pt->p);
-	kfree(pt);
-}
-
-void psb_mmu_free_pagedir(struct psb_mmu_pd *pd)
-{
-	struct psb_mmu_driver *driver = pd->driver;
-	struct psb_mmu_pt *pt;
-	int i;
-
-	down_write(&driver->sem);
-	if (pd->hw_context != -1)
-		psb_mmu_flush_pd_locked(driver, 1);
-
-	/* Should take the spinlock here, but we don't need to do that
-	   since we have the semaphore in write mode. */
-
-	for (i = 0; i < 1024; ++i) {
-		pt = pd->tables[i];
-		if (pt)
-			psb_mmu_free_pt(pt);
-	}
-
-	vfree(pd->tables);
-	__free_page(pd->dummy_page);
-	__free_page(pd->dummy_pt);
-	__free_page(pd->p);
-	kfree(pd);
-	up_write(&driver->sem);
-}
-
-static struct psb_mmu_pt *psb_mmu_alloc_pt(struct psb_mmu_pd *pd)
-{
-	struct psb_mmu_pt *pt = kmalloc(sizeof(*pt), GFP_KERNEL);
-	void *v;
-	uint32_t clflush_add = pd->driver->clflush_add >> PAGE_SHIFT;
-	uint32_t clflush_count = PAGE_SIZE / clflush_add;
-	spinlock_t *lock = &pd->driver->lock;
-	uint8_t *clf;
-	uint32_t *ptes;
-	int i;
-
-	if (!pt)
-		return NULL;
-
-	pt->p = alloc_page(GFP_DMA32);
-	if (!pt->p) {
-		kfree(pt);
-		return NULL;
-	}
-
-	spin_lock(lock);
-
-	v = kmap_atomic(pt->p, KM_USER0);
-	clf = (uint8_t *) v;
-	ptes = (uint32_t *) v;
-	for (i = 0; i < (PAGE_SIZE / sizeof(uint32_t)); ++i)
-		*ptes++ = pd->invalid_pte;
-
-
-#if defined(CONFIG_X86)
-	if (pd->driver->has_clflush && pd->hw_context != -1) {
-		mb();
-		for (i = 0; i < clflush_count; ++i) {
-			psb_clflush(clf);
-			clf += clflush_add;
-		}
-		mb();
-	}
-#endif
-	kunmap_atomic(v, KM_USER0);
-	spin_unlock(lock);
-
-	pt->count = 0;
-	pt->pd = pd;
-	pt->index = 0;
-
-	return pt;
-}
-
-struct psb_mmu_pt *psb_mmu_pt_alloc_map_lock(struct psb_mmu_pd *pd,
-					     unsigned long addr)
-{
-	uint32_t index = psb_mmu_pd_index(addr);
-	struct psb_mmu_pt *pt;
-	uint32_t *v;
-	spinlock_t *lock = &pd->driver->lock;
-
-	spin_lock(lock);
-	pt = pd->tables[index];
-	while (!pt) {
-		spin_unlock(lock);
-		pt = psb_mmu_alloc_pt(pd);
-		if (!pt)
-			return NULL;
-		spin_lock(lock);
-
-		if (pd->tables[index]) {
-			spin_unlock(lock);
-			psb_mmu_free_pt(pt);
-			spin_lock(lock);
-			pt = pd->tables[index];
-			continue;
-		}
-
-		v = kmap_atomic(pd->p, KM_USER0);
-		pd->tables[index] = pt;
-		v[index] = (page_to_pfn(pt->p) << 12) | pd->pd_mask;
-		pt->index = index;
-		kunmap_atomic((void *) v, KM_USER0);
-
-		if (pd->hw_context != -1) {
-			psb_mmu_clflush(pd->driver, (void *) &v[index]);
-			atomic_set(&pd->driver->needs_tlbflush, 1);
-		}
-	}
-	pt->v = kmap_atomic(pt->p, KM_USER0);
-	return pt;
-}
-
-static struct psb_mmu_pt *psb_mmu_pt_map_lock(struct psb_mmu_pd *pd,
-					      unsigned long addr)
-{
-	uint32_t index = psb_mmu_pd_index(addr);
-	struct psb_mmu_pt *pt;
-	spinlock_t *lock = &pd->driver->lock;
-
-	spin_lock(lock);
-	pt = pd->tables[index];
-	if (!pt) {
-		spin_unlock(lock);
-		return NULL;
-	}
-	pt->v = kmap_atomic(pt->p, KM_USER0);
-	return pt;
-}
-
-static void psb_mmu_pt_unmap_unlock(struct psb_mmu_pt *pt)
-{
-	struct psb_mmu_pd *pd = pt->pd;
-	uint32_t *v;
-
-	kunmap_atomic(pt->v, KM_USER0);
-	if (pt->count == 0) {
-		v = kmap_atomic(pd->p, KM_USER0);
-		v[pt->index] = pd->invalid_pde;
-		pd->tables[pt->index] = NULL;
-
-		if (pd->hw_context != -1) {
-			psb_mmu_clflush(pd->driver,
-					(void *) &v[pt->index]);
-			atomic_set(&pd->driver->needs_tlbflush, 1);
-		}
-		kunmap_atomic(pt->v, KM_USER0);
-		spin_unlock(&pd->driver->lock);
-		psb_mmu_free_pt(pt);
-		return;
-	}
-	spin_unlock(&pd->driver->lock);
-}
-
-static inline void psb_mmu_set_pte(struct psb_mmu_pt *pt,
-				   unsigned long addr, uint32_t pte)
-{
-	pt->v[psb_mmu_pt_index(addr)] = pte;
-}
-
-static inline void psb_mmu_invalidate_pte(struct psb_mmu_pt *pt,
-					  unsigned long addr)
-{
-	pt->v[psb_mmu_pt_index(addr)] = pt->pd->invalid_pte;
-}
-
-#if 0
-static uint32_t psb_mmu_check_pte_locked(struct psb_mmu_pd *pd,
-					 uint32_t mmu_offset)
-{
-	uint32_t *v;
-	uint32_t pfn;
-
-	v = kmap_atomic(pd->p, KM_USER0);
-	if (!v) {
-		printk(KERN_INFO "Could not kmap pde page.\n");
-		return 0;
-	}
-	pfn = v[psb_mmu_pd_index(mmu_offset)];
-	/*      printk(KERN_INFO "pde is 0x%08x\n",pfn); */
-	kunmap_atomic(v, KM_USER0);
-	if (((pfn & 0x0F) != PSB_PTE_VALID)) {
-		printk(KERN_INFO "Strange pde at 0x%08x: 0x%08x.\n",
-		       mmu_offset, pfn);
-	}
-	v = ioremap(pfn & 0xFFFFF000, 4096);
-	if (!v) {
-		printk(KERN_INFO "Could not kmap pte page.\n");
-		return 0;
-	}
-	pfn = v[psb_mmu_pt_index(mmu_offset)];
-	/* printk(KERN_INFO "pte is 0x%08x\n",pfn); */
-	iounmap(v);
-	if (((pfn & 0x0F) != PSB_PTE_VALID)) {
-		printk(KERN_INFO "Strange pte at 0x%08x: 0x%08x.\n",
-		       mmu_offset, pfn);
-	}
-	return pfn >> PAGE_SHIFT;
-}
-
-static void psb_mmu_check_mirrored_gtt(struct psb_mmu_pd *pd,
-				       uint32_t mmu_offset,
-				       uint32_t gtt_pages)
-{
-	uint32_t start;
-	uint32_t next;
-
-	printk(KERN_INFO "Checking mirrored gtt 0x%08x %d\n",
-	       mmu_offset, gtt_pages);
-	down_read(&pd->driver->sem);
-	start = psb_mmu_check_pte_locked(pd, mmu_offset);
-	mmu_offset += PAGE_SIZE;
-	gtt_pages -= 1;
-	while (gtt_pages--) {
-		next = psb_mmu_check_pte_locked(pd, mmu_offset);
-		if (next != start + 1) {
-			printk(KERN_INFO
-			       "Ptes out of order: 0x%08x, 0x%08x.\n",
-			       start, next);
-		}
-		start = next;
-		mmu_offset += PAGE_SIZE;
-	}
-	up_read(&pd->driver->sem);
-}
-
-#endif
-
-void psb_mmu_mirror_gtt(struct psb_mmu_pd *pd,
-			uint32_t mmu_offset, uint32_t gtt_start,
-			uint32_t gtt_pages)
-{
-	uint32_t *v;
-	uint32_t start = psb_mmu_pd_index(mmu_offset);
-	struct psb_mmu_driver *driver = pd->driver;
-	int num_pages = gtt_pages;
-
-	down_read(&driver->sem);
-	spin_lock(&driver->lock);
-
-	v = kmap_atomic(pd->p, KM_USER0);
-	v += start;
-
-	while (gtt_pages--) {
-		*v++ = gtt_start | pd->pd_mask;
-		gtt_start += PAGE_SIZE;
-	}
-
-	/*ttm_tt_cache_flush(&pd->p, num_pages);*/
-	psb_pages_clflush(pd->driver, &pd->p, num_pages);
-	kunmap_atomic(v, KM_USER0);
-	spin_unlock(&driver->lock);
-
-	if (pd->hw_context != -1)
-		atomic_set(&pd->driver->needs_tlbflush, 1);
-
-	up_read(&pd->driver->sem);
-	psb_mmu_flush_pd(pd->driver, 0);
-}
-
-struct psb_mmu_pd *psb_mmu_get_default_pd(struct psb_mmu_driver *driver)
-{
-	struct psb_mmu_pd *pd;
-
-	/* down_read(&driver->sem); */
-	pd = driver->default_pd;
-	/* up_read(&driver->sem); */
-
-	return pd;
-}
-
-/* Returns the physical address of the PD shared by sgx/msvdx */
-uint32_t psb_get_default_pd_addr(struct psb_mmu_driver *driver)
-{
-	struct psb_mmu_pd *pd;
-
-	pd = psb_mmu_get_default_pd(driver);
-	return page_to_pfn(pd->p) << PAGE_SHIFT;
-}
-
-void psb_mmu_driver_takedown(struct psb_mmu_driver *driver)
-{
-	psb_mmu_free_pagedir(driver->default_pd);
-	kfree(driver);
-}
-
-struct psb_mmu_driver *psb_mmu_driver_init(uint8_t __iomem * registers,
-					int trap_pagefaults,
-					int invalid_type,
-					struct drm_psb_private *dev_priv)
-{
-	struct psb_mmu_driver *driver;
-
-	driver = kmalloc(sizeof(*driver), GFP_KERNEL);
-
-	if (!driver)
-		return NULL;
-	driver->dev_priv = dev_priv;
-
-	driver->default_pd = psb_mmu_alloc_pd(driver, trap_pagefaults,
-					      invalid_type);
-	if (!driver->default_pd)
-		goto out_err1;
-
-	spin_lock_init(&driver->lock);
-	init_rwsem(&driver->sem);
-	down_write(&driver->sem);
-	driver->register_map = registers;
-	atomic_set(&driver->needs_tlbflush, 1);
-
-	driver->has_clflush = 0;
-
-#if defined(CONFIG_X86)
-	if (boot_cpu_has(X86_FEATURE_CLFLSH)) {
-		uint32_t tfms, misc, cap0, cap4, clflush_size;
-
-		/*
-		 * clflush size is determined at kernel setup for x86_64
-		 *  but not for i386. We have to do it here.
-		 */
-
-		cpuid(0x00000001, &tfms, &misc, &cap0, &cap4);
-		clflush_size = ((misc >> 8) & 0xff) * 8;
-		driver->has_clflush = 1;
-		driver->clflush_add = PAGE_SIZE * clflush_size / sizeof(uint32_t);
-		driver->clflush_mask = driver->clflush_add - 1;
-		driver->clflush_mask = ~driver->clflush_mask;
-	}
-#endif
-
-	up_write(&driver->sem);
-	return driver;
-
-out_err1:
-	kfree(driver);
-	return NULL;
-}
-
-#if defined(CONFIG_X86)
-static void psb_mmu_flush_ptes(struct psb_mmu_pd *pd,
-			       unsigned long address, uint32_t num_pages,
-			       uint32_t desired_tile_stride,
-			       uint32_t hw_tile_stride)
-{
-	struct psb_mmu_pt *pt;
-	uint32_t rows = 1;
-	uint32_t i;
-	unsigned long addr;
-	unsigned long end;
-	unsigned long next;
-	unsigned long add;
-	unsigned long row_add;
-	unsigned long clflush_add = pd->driver->clflush_add;
-	unsigned long clflush_mask = pd->driver->clflush_mask;
-
-	if (!pd->driver->has_clflush) {
-		/*ttm_tt_cache_flush(&pd->p, num_pages);*/
-		psb_pages_clflush(pd->driver, &pd->p, num_pages);
-		return;
-	}
-
-	if (hw_tile_stride)
-		rows = num_pages / desired_tile_stride;
-	else
-		desired_tile_stride = num_pages;
-
-	add = desired_tile_stride << PAGE_SHIFT;
-	row_add = hw_tile_stride << PAGE_SHIFT;
-	mb();
-	for (i = 0; i < rows; ++i) {
-
-		addr = address;
-		end = addr + add;
-
-		do {
-			next = psb_pd_addr_end(addr, end);
-			pt = psb_mmu_pt_map_lock(pd, addr);
-			if (!pt)
-				continue;
-			do {
-				psb_clflush(&pt->v
-					    [psb_mmu_pt_index(addr)]);
-			} while (addr +=
-				 clflush_add,
-				 (addr & clflush_mask) < next);
-
-			psb_mmu_pt_unmap_unlock(pt);
-		} while (addr = next, next != end);
-		address += row_add;
-	}
-	mb();
-}
-#else
-static void psb_mmu_flush_ptes(struct psb_mmu_pd *pd,
-			       unsigned long address, uint32_t num_pages,
-			       uint32_t desired_tile_stride,
-			       uint32_t hw_tile_stride)
-{
-	drm_ttm_cache_flush(&pd->p, num_pages);
-}
-#endif
-
-void psb_mmu_remove_pfn_sequence(struct psb_mmu_pd *pd,
-				 unsigned long address, uint32_t num_pages)
-{
-	struct psb_mmu_pt *pt;
-	unsigned long addr;
-	unsigned long end;
-	unsigned long next;
-	unsigned long f_address = address;
-
-	down_read(&pd->driver->sem);
-
-	addr = address;
-	end = addr + (num_pages << PAGE_SHIFT);
-
-	do {
-		next = psb_pd_addr_end(addr, end);
-		pt = psb_mmu_pt_alloc_map_lock(pd, addr);
-		if (!pt)
-			goto out;
-		do {
-			psb_mmu_invalidate_pte(pt, addr);
-			--pt->count;
-		} while (addr += PAGE_SIZE, addr < next);
-		psb_mmu_pt_unmap_unlock(pt);
-
-	} while (addr = next, next != end);
-
-out:
-	if (pd->hw_context != -1)
-		psb_mmu_flush_ptes(pd, f_address, num_pages, 1, 1);
-
-	up_read(&pd->driver->sem);
-
-	if (pd->hw_context != -1)
-		psb_mmu_flush(pd->driver, 0);
-
-	return;
-}
-
-void psb_mmu_remove_pages(struct psb_mmu_pd *pd, unsigned long address,
-			  uint32_t num_pages, uint32_t desired_tile_stride,
-			  uint32_t hw_tile_stride)
-{
-	struct psb_mmu_pt *pt;
-	uint32_t rows = 1;
-	uint32_t i;
-	unsigned long addr;
-	unsigned long end;
-	unsigned long next;
-	unsigned long add;
-	unsigned long row_add;
-	unsigned long f_address = address;
-
-	if (hw_tile_stride)
-		rows = num_pages / desired_tile_stride;
-	else
-		desired_tile_stride = num_pages;
-
-	add = desired_tile_stride << PAGE_SHIFT;
-	row_add = hw_tile_stride << PAGE_SHIFT;
-
-	/* down_read(&pd->driver->sem); */
-
-	/* Make sure we only need to flush this processor's cache */
-
-	for (i = 0; i < rows; ++i) {
-
-		addr = address;
-		end = addr + add;
-
-		do {
-			next = psb_pd_addr_end(addr, end);
-			pt = psb_mmu_pt_map_lock(pd, addr);
-			if (!pt)
-				continue;
-			do {
-				psb_mmu_invalidate_pte(pt, addr);
-				--pt->count;
-
-			} while (addr += PAGE_SIZE, addr < next);
-			psb_mmu_pt_unmap_unlock(pt);
-
-		} while (addr = next, next != end);
-		address += row_add;
-	}
-	if (pd->hw_context != -1)
-		psb_mmu_flush_ptes(pd, f_address, num_pages,
-				   desired_tile_stride, hw_tile_stride);
-
-	/* up_read(&pd->driver->sem); */
-
-	if (pd->hw_context != -1)
-		psb_mmu_flush(pd->driver, 0);
-}
-
-int psb_mmu_insert_pfn_sequence(struct psb_mmu_pd *pd, uint32_t start_pfn,
-				unsigned long address, uint32_t num_pages,
-				int type)
-{
-	struct psb_mmu_pt *pt;
-	uint32_t pte;
-	unsigned long addr;
-	unsigned long end;
-	unsigned long next;
-	unsigned long f_address = address;
-	int ret = 0;
-
-	down_read(&pd->driver->sem);
-
-	addr = address;
-	end = addr + (num_pages << PAGE_SHIFT);
-
-	do {
-		next = psb_pd_addr_end(addr, end);
-		pt = psb_mmu_pt_alloc_map_lock(pd, addr);
-		if (!pt) {
-			ret = -ENOMEM;
-			goto out;
-		}
-		do {
-			pte = psb_mmu_mask_pte(start_pfn++, type);
-			psb_mmu_set_pte(pt, addr, pte);
-			pt->count++;
-		} while (addr += PAGE_SIZE, addr < next);
-		psb_mmu_pt_unmap_unlock(pt);
-
-	} while (addr = next, next != end);
-
-out:
-	if (pd->hw_context != -1)
-		psb_mmu_flush_ptes(pd, f_address, num_pages, 1, 1);
-
-	up_read(&pd->driver->sem);
-
-	if (pd->hw_context != -1)
-		psb_mmu_flush(pd->driver, 1);
-
-	return ret;
-}
-
-int psb_mmu_insert_pages(struct psb_mmu_pd *pd, struct page **pages,
-			 unsigned long address, uint32_t num_pages,
-			 uint32_t desired_tile_stride,
-			 uint32_t hw_tile_stride, int type)
-{
-	struct psb_mmu_pt *pt;
-	uint32_t rows = 1;
-	uint32_t i;
-	uint32_t pte;
-	unsigned long addr;
-	unsigned long end;
-	unsigned long next;
-	unsigned long add;
-	unsigned long row_add;
-	unsigned long f_address = address;
-	int ret = 0;
-
-	if (hw_tile_stride) {
-		if (num_pages % desired_tile_stride != 0)
-			return -EINVAL;
-		rows = num_pages / desired_tile_stride;
-	} else {
-		desired_tile_stride = num_pages;
-	}
-
-	add = desired_tile_stride << PAGE_SHIFT;
-	row_add = hw_tile_stride << PAGE_SHIFT;
-
-	down_read(&pd->driver->sem);
-
-	for (i = 0; i < rows; ++i) {
-
-		addr = address;
-		end = addr + add;
-
-		do {
-			next = psb_pd_addr_end(addr, end);
-			pt = psb_mmu_pt_alloc_map_lock(pd, addr);
-			if (!pt) {
-				ret = -ENOMEM;
-				goto out;
-			}
-			do {
-				pte =
-				    psb_mmu_mask_pte(page_to_pfn(*pages++),
-						     type);
-				psb_mmu_set_pte(pt, addr, pte);
-				pt->count++;
-			} while (addr += PAGE_SIZE, addr < next);
-			psb_mmu_pt_unmap_unlock(pt);
-
-		} while (addr = next, next != end);
-
-		address += row_add;
-	}
-out:
-	if (pd->hw_context != -1)
-		psb_mmu_flush_ptes(pd, f_address, num_pages,
-				   desired_tile_stride, hw_tile_stride);
-
-	up_read(&pd->driver->sem);
-
-	if (pd->hw_context != -1)
-		psb_mmu_flush(pd->driver, 1);
-
-	return ret;
-}
-#if 0 /*comented out, only used in mmu test now*/
-void psb_mmu_enable_requestor(struct psb_mmu_driver *driver, uint32_t mask)
-{
-	mask &= _PSB_MMU_ER_MASK;
-	psb_iowrite32(driver,
-		      psb_ioread32(driver, PSB_CR_BIF_CTRL) & ~mask,
-		      PSB_CR_BIF_CTRL);
-	(void) psb_ioread32(driver, PSB_CR_BIF_CTRL);
-}
-
-void psb_mmu_disable_requestor(struct psb_mmu_driver *driver,
-			       uint32_t mask)
-{
-	mask &= _PSB_MMU_ER_MASK;
-	psb_iowrite32(driver, psb_ioread32(driver, PSB_CR_BIF_CTRL) | mask,
-		      PSB_CR_BIF_CTRL);
-	(void) psb_ioread32(driver, PSB_CR_BIF_CTRL);
-}
-#endif
-int psb_mmu_virtual_to_pfn(struct psb_mmu_pd *pd, uint32_t virtual,
-			   unsigned long *pfn)
-{
-	int ret;
-	struct psb_mmu_pt *pt;
-	uint32_t tmp;
-	spinlock_t *lock = &pd->driver->lock;
-
-	down_read(&pd->driver->sem);
-	pt = psb_mmu_pt_map_lock(pd, virtual);
-	if (!pt) {
-		uint32_t *v;
-
-		spin_lock(lock);
-		v = kmap_atomic(pd->p, KM_USER0);
-		tmp = v[psb_mmu_pd_index(virtual)];
-		kunmap_atomic(v, KM_USER0);
-		spin_unlock(lock);
-
-		if (tmp != pd->invalid_pde || !(tmp & PSB_PTE_VALID) ||
-		    !(pd->invalid_pte & PSB_PTE_VALID)) {
-			ret = -EINVAL;
-			goto out;
-		}
-		ret = 0;
-		*pfn = pd->invalid_pte >> PAGE_SHIFT;
-		goto out;
-	}
-	tmp = pt->v[psb_mmu_pt_index(virtual)];
-	if (!(tmp & PSB_PTE_VALID)) {
-		ret = -EINVAL;
-	} else {
-		ret = 0;
-		*pfn = tmp >> PAGE_SHIFT;
-	}
-	psb_mmu_pt_unmap_unlock(pt);
-out:
-	up_read(&pd->driver->sem);
-	return ret;
-}
-#if 0
-void psb_mmu_test(struct psb_mmu_driver *driver, uint32_t offset)
-{
-	struct page *p;
-	unsigned long pfn;
-	int ret = 0;
-	struct psb_mmu_pd *pd;
-	uint32_t *v;
-	uint32_t *vmmu;
-
-	pd = driver->default_pd;
-	if (!pd)
-		printk(KERN_WARNING "Could not get default pd\n");
-
-
-	p = alloc_page(GFP_DMA32);
-
-	if (!p) {
-		printk(KERN_WARNING "Failed allocating page\n");
-		return;
-	}
-
-	v = kmap(p);
-	memset(v, 0x67, PAGE_SIZE);
-
-	pfn = (offset >> PAGE_SHIFT);
-
-	ret = psb_mmu_insert_pages(pd, &p, pfn << PAGE_SHIFT, 1, 0, 0, 0);
-	if (ret) {
-		printk(KERN_WARNING "Failed inserting mmu page\n");
-		goto out_err1;
-	}
-
-	/* Ioremap the page through the GART aperture */
-
-	vmmu = ioremap(pfn << PAGE_SHIFT, PAGE_SIZE);
-	if (!vmmu) {
-		printk(KERN_WARNING "Failed ioremapping page\n");
-		goto out_err2;
-	}
-
-	/* Read from the page with mmu disabled. */
-	printk(KERN_INFO "Page first dword is 0x%08x\n", ioread32(vmmu));
-
-	/* Enable the mmu for host accesses and read again. */
-	psb_mmu_enable_requestor(driver, _PSB_MMU_ER_HOST);
-
-	printk(KERN_INFO "MMU Page first dword is (0x67676767) 0x%08x\n",
-	       ioread32(vmmu));
-	*v = 0x15243705;
-	printk(KERN_INFO "MMU Page new dword is (0x15243705) 0x%08x\n",
-	       ioread32(vmmu));
-	iowrite32(0x16243355, vmmu);
-	(void) ioread32(vmmu);
-	printk(KERN_INFO "Page new dword is (0x16243355) 0x%08x\n", *v);
-
-	printk(KERN_INFO "Int stat is 0x%08x\n",
-	       psb_ioread32(driver, PSB_CR_BIF_INT_STAT));
-	printk(KERN_INFO "Fault is 0x%08x\n",
-	       psb_ioread32(driver, PSB_CR_BIF_FAULT));
-
-	/* Disable MMU for host accesses and clear page fault register */
-	psb_mmu_disable_requestor(driver, _PSB_MMU_ER_HOST);
-	iounmap(vmmu);
-out_err2:
-	psb_mmu_remove_pages(pd, pfn << PAGE_SHIFT, 1, 0, 0);
-out_err1:
-	kunmap(p);
-	__free_page(p);
-}
-#endif
diff --git a/drivers/staging/cdv/imgv/psb_msvdx.c b/drivers/staging/cdv/imgv/psb_msvdx.c
deleted file mode 100644
index 8a50f4b..0000000
--- a/drivers/staging/cdv/imgv/psb_msvdx.c
+++ /dev/null
@@ -1,1451 +0,0 @@
-/**************************************************************************
- * MSVDX I/O operations and IRQ handling
- * 
- * Copyright (c) 2011 Intel Corporation, Hillsboro, OR, USA
- * Copyright (c) Imagination Technologies Limited, UK
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-
-#include <drm/drmP.h>
-#include "psb_drm.h"
-#include "psb_drv.h"
-#include "psb_msvdx.h"
-#include "psb_powermgmt.h"
-#include <linux/io.h>
-#include <linux/delay.h>
-
-#ifndef list_first_entry
-#define list_first_entry(ptr, type, member) \
-	list_entry((ptr)->next, type, member)
-#endif
-
-#define  DRM_MPEG2_DELAY	125
-
-static int psb_msvdx_send(struct drm_device *dev, void *cmd,
-			  unsigned long cmd_size);
-
-static int psb_msvdx_dequeue_send(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct psb_msvdx_cmd_queue *msvdx_cmd = NULL;
-	int ret = 0;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-
-	if (list_empty(&msvdx_priv->msvdx_queue)) {
-		PSB_DEBUG_GENERAL("MSVDXQUE: msvdx list empty.\n");
-		msvdx_priv->msvdx_busy = 0;
-		return -EINVAL;
-	}
-	msvdx_cmd = list_first_entry(&msvdx_priv->msvdx_queue,
-				     struct psb_msvdx_cmd_queue, head);
-	PSB_DEBUG_GENERAL("MSVDXQUE: Queue has id %08x\n", msvdx_cmd->sequence);
-	ret = psb_msvdx_send(dev, msvdx_cmd->cmd, msvdx_cmd->cmd_size);
-	if (ret) {
-		DRM_ERROR("MSVDXQUE: psb_msvdx_send failed\n");
-		ret = -EINVAL;
-	}
-	list_del(&msvdx_cmd->head);
-	kfree(msvdx_cmd->cmd);
-	kfree(msvdx_cmd);
-
-	return ret;
-}
-
-static int psb_msvdx_map_command(struct drm_device *dev,
-				 struct ttm_buffer_object *cmd_buffer,
-				 unsigned long cmd_offset, unsigned long cmd_size,
-				 void **msvdx_cmd, uint32_t sequence, int copy_cmd)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-	int ret = 0;
-	unsigned long cmd_page_offset = cmd_offset & ~PAGE_MASK;
-	unsigned long cmd_size_remaining;
-	struct ttm_bo_kmap_obj cmd_kmap, regio_kmap;
-	void *cmd, *cmd_copy, *cmd_start;
-	bool is_iomem;
-	int i;
-	struct HOST_BE_OPP_PARAMS * oppParam;
-	drm_psb_msvdx_frame_info_t * current_frame = NULL;
-	int first_empty = -1;
-
-
-	/* command buffers may not exceed page boundary */
-	if (cmd_size + cmd_page_offset > PAGE_SIZE)
-		return -EINVAL;
-
-	ret = ttm_bo_kmap(cmd_buffer, cmd_offset >> PAGE_SHIFT, 1, &cmd_kmap);
-	if (ret) {
-		DRM_ERROR("MSVDXQUE:ret:%d\n", ret);
-		return ret;
-	}
-
-	cmd_start = (void *)ttm_kmap_obj_virtual(&cmd_kmap, &is_iomem)
-		+ cmd_page_offset;
-	cmd = cmd_start;
-	cmd_size_remaining = cmd_size;
-
-	while (cmd_size_remaining > 0) {
-		uint32_t cur_cmd_size = MEMIO_READ_FIELD(cmd, FWRK_GENMSG_SIZE);
-		uint32_t cur_cmd_id = MEMIO_READ_FIELD(cmd, FWRK_GENMSG_ID);
-		uint32_t mmu_ptd = 0, msvdx_mmu_invalid = 0;
-		struct psb_msvdx_deblock_queue *msvdx_deblock;
-		unsigned long irq_flags;
-
-		PSB_DEBUG_GENERAL("cmd start at %08x cur_cmd_size = %d"
-				  " cur_cmd_id = %02x fence = %08x\n",
-				  (uint32_t) cmd, cur_cmd_size, cur_cmd_id, sequence);
-		if ((cur_cmd_size % sizeof(uint32_t))
-		    || (cur_cmd_size > cmd_size_remaining)) {
-			ret = -EINVAL;
-			DRM_ERROR("MSVDX: ret:%d\n", ret);
-			goto out;
-		}
-
-		switch (cur_cmd_id) {
-		case VA_MSGID_RENDER:
-			PSB_DEBUG_MSVDX("MSVDX_DEBUG: send render message. \n");
-            
-			/* Fence ID */
-			if((IS_CDV(dev)) && IS_FW_UPDATED)
-				MEMIO_WRITE_FIELD(cmd, FW_VA_DECODE_MSG_ID, sequence);
-			else
-				MEMIO_WRITE_FIELD(cmd, FW_VA_RENDER_FENCE_VALUE, sequence);
-
-			mmu_ptd = psb_get_default_pd_addr(dev_priv->mmu);
-			msvdx_mmu_invalid = atomic_cmpxchg(&dev_priv->msvdx_mmu_invaldc,
-					     1, 0);
-			if (msvdx_mmu_invalid == 1) {
-				if(!(IS_CDV(dev) && IS_FW_UPDATED))
-					mmu_ptd |= 1;
-				else {
-					uint32_t flags;
-					flags = MEMIO_READ_FIELD(cmd, FW_DEVA_DECODE_FLAGS);
-					flags |= FW_DEVA_INVALIDATE_MMU;
-					MEMIO_WRITE_FIELD(cmd, FW_DEVA_DECODE_FLAGS, flags);
-				}
-
-				PSB_DEBUG_GENERAL("MSVDX:Set MMU invalidate\n");
-			}
-
-			/* PTD */
-			if((IS_CDV(dev) ) && IS_FW_UPDATED) {
-				uint32_t context_id;
-				context_id = MEMIO_READ_FIELD(cmd, FW_VA_DECODE_MMUPTD);
-				mmu_ptd = mmu_ptd | (context_id & 0xff);
-				MEMIO_WRITE_FIELD(cmd, FW_VA_DECODE_MMUPTD, mmu_ptd);
-			}
-			else
-				MEMIO_WRITE_FIELD(cmd, FW_VA_RENDER_MMUPTD, mmu_ptd);
-			break;
-
-		case VA_MSGID_OOLD:
-			MEMIO_WRITE_FIELD(cmd, FW_DXVA_OOLD_FENCE_VALUE,
-					  sequence);
-			mmu_ptd = psb_get_default_pd_addr(dev_priv->mmu);
-			msvdx_mmu_invalid = atomic_cmpxchg(&dev_priv->msvdx_mmu_invaldc,
-					     1, 0);
-			if (msvdx_mmu_invalid == 1) {
-				mmu_ptd |= 1;
-				PSB_DEBUG_GENERAL("MSVDX:Set MMU invalidate\n");
-			}
-
-			/* PTD */
-			MEMIO_WRITE_FIELD(cmd, FW_DXVA_OOLD_MMUPTD, mmu_ptd);
-
-			PSB_DEBUG_GENERAL("MSVDX:Get oold cmd\n");
-
-			break;
-
-		case VA_MSGID_OOLD_MFLD:
-		case VA_MSGID_DEBLOCK_MFLD: {
-			FW_VA_DEBLOCK_MSG * deblock_msg;
-
-			PSB_DEBUG_GENERAL("MSVDX:Get deblock cmd for medfield\n");
-
-			deblock_msg = (FW_VA_DEBLOCK_MSG *)cmd;
-
-			mmu_ptd = psb_get_default_pd_addr(dev_priv->mmu);
-			msvdx_mmu_invalid = atomic_cmpxchg(&dev_priv->msvdx_mmu_invaldc,
-					     1, 0);
-			if (msvdx_mmu_invalid == 1) {
-				uint32_t flags;
-				flags = deblock_msg->flags;
-				flags |= FW_DEVA_INVALIDATE_MMU;
-				deblock_msg->flags = flags;
-
-				PSB_DEBUG_GENERAL("MSVDX:Set MMU invalidate\n");
-			}
-
-
-			deblock_msg->header.bits.msg_type = cur_cmd_id - VA_MSGID_DEBLOCK_MFLD + VA_MSGID_DEBLOCK; /* patch to right cmd type */
-			deblock_msg->header.bits.msg_fence = (uint16_t)(sequence & 0xffff);
-			deblock_msg->mmu_context.bits.mmu_ptd = (mmu_ptd >> 8);
-
-		}
-			break;
-
-		case VA_MSGID_DEBLOCK:
-			msvdx_priv->deblock_enabled = 1;
-			/* Fence ID */
-			MEMIO_WRITE_FIELD(cmd, FW_DXVA_DEBLOCK_FENCE_VALUE,
-					  sequence);
-			mmu_ptd = psb_get_default_pd_addr(dev_priv->mmu);
-			msvdx_mmu_invalid = atomic_cmpxchg(&dev_priv->msvdx_mmu_invaldc,
-					     1, 0);
-			if (msvdx_mmu_invalid == 1) {
-				mmu_ptd |= 1;
-				PSB_DEBUG_GENERAL("MSVDX:Set MMU invalidate\n");
-			}
-
-			/* PTD */
-			MEMIO_WRITE_FIELD(cmd,
-					  FW_DXVA_DEBLOCK_MMUPTD,
-					  mmu_ptd);
-
-			/* printk("Got deblock msg\n"); */
-			/* Deblock message is followed by 32 */
-			/* bytes of deblock params */
-			msvdx_deblock = kmalloc(
-				sizeof(struct psb_msvdx_deblock_queue),
-				GFP_KERNEL);
-
-			if (msvdx_deblock == NULL) {
-				DRM_ERROR("DEBLOCK QUE: Out of memory...\n");
-				ret =  -ENOMEM;
-				goto out;
-			}
-
-			memcpy(&msvdx_deblock->dbParams, cmd + 16, sizeof(struct DEBLOCKPARAMS));
-
-			ret = ttm_bo_kmap(
-				(struct ttm_buffer_object *)
-				msvdx_deblock->dbParams.handle,
-				0,
-				(msvdx_deblock->dbParams.buffer_size +
-				 PAGE_SIZE - 1) >> PAGE_SHIFT,
-				&regio_kmap);
-
-			/* printk("deblock regio buffer size is 0x%x\n",
-			   msvdx_deblock->dbParams.buffer_size); */
-
-			if (likely(!ret)) {
-				msvdx_deblock->dbParams.pPicparams = kmalloc(
-					msvdx_deblock->dbParams.buffer_size,
-					GFP_KERNEL);
-
-				if (msvdx_deblock->dbParams.pPicparams != NULL)
-					memcpy(
-						msvdx_deblock->dbParams.pPicparams,
-						regio_kmap.virtual,
-						msvdx_deblock->dbParams.buffer_size);
-				ttm_bo_kunmap(&regio_kmap);
-			}
-			spin_lock_irqsave(&msvdx_priv->msvdx_lock, irq_flags);
-			list_add_tail(&msvdx_deblock->head,
-				      &msvdx_priv->deblock_queue);
-			spin_unlock_irqrestore(&msvdx_priv->msvdx_lock,
-					       irq_flags);
-
-			cmd += sizeof(struct DEBLOCKPARAMS);
-			cmd_size_remaining -= sizeof(struct DEBLOCKPARAMS);
-			break;
-            
-		case VA_MSGID_HOST_BE_OPP:
-
-			PSB_DEBUG_MSVDX("MSVDX_DEBUG: send host_be_opp message. \n");
-
-			msvdx_priv->host_be_opp_enabled = 1;
-			/* Fence ID */
-			MEMIO_WRITE_FIELD(cmd, FW_VA_HOST_BE_OPP_FENCE_VALUE,
-					  sequence);
-			mmu_ptd = psb_get_default_pd_addr(dev_priv->mmu);
-			msvdx_mmu_invalid = atomic_cmpxchg(&dev_priv->msvdx_mmu_invaldc,
-					     1, 0);
-			if (msvdx_mmu_invalid == 1) {
-				mmu_ptd |= 1;
-				PSB_DEBUG_GENERAL("MSVDX:Set MMU invalidate\n");
-			}
-        
-			/* PTD */
-			MEMIO_WRITE_FIELD(cmd,
-					  FW_VA_HOST_BE_OPP_MMUPTD,
-					  mmu_ptd);
-
-			/* HostBeOpp message is followed by 32 bytes of host_be_opp params */
-			oppParam = kmalloc(
-				sizeof(struct HOST_BE_OPP_PARAMS),
-				GFP_KERNEL);
-
-			if (oppParam == NULL) {
-				DRM_ERROR("DEBLOCK QUE: Out of memory...\n");
-				ret =  -ENOMEM;
-				goto out;
-			}
- 
-			memcpy(oppParam, cmd + 16, sizeof(struct HOST_BE_OPP_PARAMS));
-			/*get the right frame_info struct for current surface*/
-			for (i = 0; i < MAX_DECODE_BUFFERS; i++) {
-				if (msvdx_priv->frame_info[i].handle == oppParam->handle) {
-					current_frame = &(msvdx_priv->frame_info[i]);
-					break;
-				}
-				if ((first_empty == -1) && (msvdx_priv->frame_info[i].handle  == 0))
-					first_empty = i;
-			}
-            
-			/*if didn't find the struct for current surface, use the earliest empty one*/
-			if (!current_frame) {
-				if (first_empty == -1) {
-					DRM_ERROR("failed find the struct for current surface and also there is no empty one.\n");
-					ret = -EFAULT;
-					goto out;
-				}
-				current_frame = &(msvdx_priv->frame_info[first_empty]);
-			}
-
-			memset(current_frame, 0, sizeof(drm_psb_msvdx_frame_info_t));
-			current_frame->handle = oppParam->handle;
-			current_frame->buffer_stride = oppParam->buffer_stride;
-			current_frame->buffer_size = oppParam->buffer_size;
-			current_frame->picture_width_mb = oppParam->picture_width_mb;
-			current_frame->size_mb = oppParam->size_mb;
-			current_frame->fence = sequence;
-            
-
-			cmd += sizeof(struct HOST_BE_OPP_PARAMS);
-			cmd_size_remaining -= sizeof(struct HOST_BE_OPP_PARAMS);
-
-			break;
-
-		default:
-			/* Msg not supported */
-			ret = -EINVAL;
-			PSB_DEBUG_GENERAL("MSVDX: ret:%d\n", ret);
-			goto out;
-		}
-
-		cmd += cur_cmd_size;
-		cmd_size_remaining -= cur_cmd_size;
-	}
-
-	if (copy_cmd) {
-		PSB_DEBUG_GENERAL("MSVDXQUE:copying command\n");
-
-		cmd_copy = kzalloc(cmd_size, GFP_KERNEL);
-		if (cmd_copy == NULL) {
-			ret = -ENOMEM;
-			DRM_ERROR("MSVDX: fail to callc,ret=:%d\n", ret);
-			goto out;
-		}
-		memcpy(cmd_copy, cmd_start, cmd_size);
-		*msvdx_cmd = cmd_copy;
-	} else {
-		PSB_DEBUG_GENERAL("MSVDXQUE:did NOT copy command\n");
-		ret = psb_msvdx_send(dev, cmd_start, cmd_size);
-		if (ret) {
-			DRM_ERROR("MSVDXQUE: psb_msvdx_send failed\n");
-			ret = -EINVAL;
-		}
-	}
-
-out:
-	ttm_bo_kunmap(&cmd_kmap);
-
-	return ret;
-}
-
-int psb_submit_video_cmdbuf(struct drm_device *dev,
-			    struct ttm_buffer_object *cmd_buffer,
-			    unsigned long cmd_offset, unsigned long cmd_size,
-			    struct ttm_fence_object *fence)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	uint32_t sequence =  dev_priv->sequence[PSB_ENGINE_VIDEO];
-	unsigned long irq_flags;
-	int ret = 0;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-	int offset = 0;
-	/* psb_schedule_watchdog(dev_priv); */
-
-	spin_lock_irqsave(&msvdx_priv->msvdx_lock, irq_flags);
-
-	/* expected msvdx_needs_reset is set after previous session exited
-	 * but msvdx_hw_busy is always 1, and caused powerdown not excuted
-	 * so reload the firmware for every new context
-	 */
-
-	dev_priv->last_msvdx_ctx = dev_priv->msvdx_ctx;
-
-	if (msvdx_priv->msvdx_needs_reset) {
-		spin_unlock_irqrestore(&msvdx_priv->msvdx_lock, irq_flags);
-		PSB_DEBUG_GENERAL("MSVDX: will reset msvdx\n");
-		if (psb_msvdx_reset(dev_priv)) {
-			ret = -EBUSY;
-			DRM_ERROR("MSVDX: Reset failed\n");
-			return ret;
-		}
-		msvdx_priv->msvdx_needs_reset = 0;
-		msvdx_priv->msvdx_busy = 0;
-
-		if(psb_msvdx_init(dev)) {
-			ret = -EIO;
-			DRM_ERROR("MSVDX: failed in MSVDX Initialization\n");
-			return ret;
-		}
-
-		/* restore vec local mem if needed */
-		if (msvdx_priv->vec_local_mem_saved &&
-				msvdx_priv->vec_local_mem_data) {
-			for (offset = 0; offset < VEC_LOCAL_MEM_BYTE_SIZE / 4; ++offset)
-				PSB_WMSVDX32(msvdx_priv->vec_local_mem_data[offset],
-					     VEC_LOCAL_MEM_OFFSET + offset * 4);
-
-			msvdx_priv->vec_local_mem_saved = 0;
-		}
-
-		spin_lock_irqsave(&msvdx_priv->msvdx_lock, irq_flags);
-	}
-
-	if (!msvdx_priv->msvdx_fw_loaded) {
-		spin_unlock_irqrestore(&msvdx_priv->msvdx_lock, irq_flags);
-		PSB_DEBUG_GENERAL("MSVDX:reload FW to MTX\n");
-
-		ret = psb_setup_fw(dev);
-		if (ret) {
-			DRM_ERROR("MSVDX:fail to load FW\n");
-			/* FIXME: find a proper return value */
-			return -EFAULT;
-		}
-		msvdx_priv->msvdx_fw_loaded = 1;
-
-		PSB_DEBUG_GENERAL("MSVDX: load firmware successfully\n");
-		spin_lock_irqsave(&msvdx_priv->msvdx_lock, irq_flags);
-	}
-
-	if (!msvdx_priv->msvdx_busy) {
-		msvdx_priv->msvdx_busy = 1;
-		spin_unlock_irqrestore(&msvdx_priv->msvdx_lock, irq_flags);
-		PSB_DEBUG_GENERAL("MSVDX: commit command to HW,seq=0x%08x\n",
-				  sequence);
-		ret = psb_msvdx_map_command(dev, cmd_buffer, cmd_offset,
-					    cmd_size, NULL, sequence, 0);
-		if (ret) {
-			DRM_ERROR("MSVDXQUE: Failed to extract cmd\n");
-			return ret;
-		}
-	} else {
-		struct psb_msvdx_cmd_queue *msvdx_cmd;
-		void *cmd = NULL;
-
-		spin_unlock_irqrestore(&msvdx_priv->msvdx_lock, irq_flags);
-		/* queue the command to be sent when the h/w is ready */
-		PSB_DEBUG_GENERAL("MSVDXQUE: queueing sequence:%08x..\n",
-				  sequence);
-		msvdx_cmd = kzalloc(sizeof(struct psb_msvdx_cmd_queue),
-				    GFP_KERNEL);
-		if (msvdx_cmd == NULL) {
-			DRM_ERROR("MSVDXQUE: Out of memory...\n");
-			return -ENOMEM;
-		}
-
-		ret = psb_msvdx_map_command(dev, cmd_buffer, cmd_offset,
-					    cmd_size, &cmd, sequence, 1);
-		if (ret) {
-			DRM_ERROR("MSVDXQUE: Failed to extract cmd\n");
-			kfree(msvdx_cmd
-				);
-			return ret;
-		}
-		msvdx_cmd->cmd = cmd;
-		msvdx_cmd->cmd_size = cmd_size;
-		msvdx_cmd->sequence = sequence;
-		spin_lock_irqsave(&msvdx_priv->msvdx_lock, irq_flags);
-		list_add_tail(&msvdx_cmd->head, &msvdx_priv->msvdx_queue);
-		if (!msvdx_priv->msvdx_busy) {
-			msvdx_priv->msvdx_busy = 1;
-			PSB_DEBUG_GENERAL("MSVDXQUE: Need immediate dequeue\n");
-			psb_msvdx_dequeue_send(dev);
-		}
-		spin_unlock_irqrestore(&msvdx_priv->msvdx_lock, irq_flags);
-	}
-
-	return ret;
-}
-
-int psb_cmdbuf_video(struct drm_file *priv,
-		     struct list_head *validate_list,
-		     uint32_t fence_type,
-		     struct drm_psb_cmdbuf_arg *arg,
-		     struct ttm_buffer_object *cmd_buffer,
-		     struct psb_ttm_fence_rep *fence_arg)
-{
-	struct drm_device *dev = priv->minor->dev;
-	struct ttm_fence_object *fence;
-	int ret;
-
-	/*
-	 * Check this. Doesn't seem right. Have fencing done AFTER command
-	 * submission and make sure drm_psb_idle idles the MSVDX completely.
-	 */
-	ret =
-		psb_submit_video_cmdbuf(dev, cmd_buffer, arg->cmdbuf_offset,
-					arg->cmdbuf_size, NULL);
-	if (ret)
-		return ret;
-
-
-	/* DRM_ERROR("Intel: Fix video fencing!!\n"); */
-	psb_fence_or_sync(priv, PSB_ENGINE_VIDEO, fence_type,
-			  arg->fence_flags, validate_list, fence_arg,
-			  &fence);
-
-	ttm_fence_object_unref(&fence);
-	spin_lock(&cmd_buffer->bdev->fence_lock);
-	if (cmd_buffer->sync_obj != NULL)
-		ttm_fence_sync_obj_unref(&cmd_buffer->sync_obj);
-	spin_unlock(&cmd_buffer->bdev->fence_lock);
-
-	return 0;
-}
-
-
-static int psb_msvdx_send(struct drm_device *dev, void *cmd,
-			  unsigned long cmd_size)
-{
-	int ret = 0;
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct psb_video_ctx *msvdx_ctx = NULL;
-	int ctx_type;
-
-	while (cmd_size > 0) {
-		uint32_t cur_cmd_size = MEMIO_READ_FIELD(cmd, FWRK_GENMSG_SIZE);
-		uint32_t cur_cmd_id = MEMIO_READ_FIELD(cmd, FWRK_GENMSG_ID);
-		if (cur_cmd_size > cmd_size) {
-			ret = -EINVAL;
-			DRM_ERROR("MSVDX:cmd_size %lu cur_cmd_size %lu\n",
-				  cmd_size, (unsigned long)cur_cmd_size);
-			goto out;
-		}
-
-		/* Send the message to h/w */
-		ret = psb_mtx_send(dev_priv, cmd);
-		if (ret) {
-			PSB_DEBUG_GENERAL("MSVDX: ret:%d\n", ret);
-			goto out;
-		}
-		cmd += cur_cmd_size;
-		cmd_size -= cur_cmd_size;
-		if (cur_cmd_id == VA_MSGID_DEBLOCK && (!IS_CDV(dev) && IS_FW_UPDATED)) {
-			cmd += sizeof(struct DEBLOCKPARAMS);
-			cmd_size -= sizeof(struct DEBLOCKPARAMS);
-		}
-		if (cur_cmd_id == VA_MSGID_HOST_BE_OPP) {
-			cmd += sizeof(struct HOST_BE_OPP_PARAMS);
-			cmd_size -= sizeof(struct HOST_BE_OPP_PARAMS);
-		}
-		if(cmd_size && IS_CDV(dev)) {
-			msvdx_ctx = dev_priv->msvdx_ctx;
-			/* Get the Profile for the current video context */
-			ctx_type = msvdx_ctx->ctx_type >> 8;
-			if (ctx_type == VAProfileMPEG2Simple || ctx_type == VAProfileMPEG2Main)
-				udelay(DRM_MPEG2_DELAY);
-			else
-				udelay(drm_msvdx_delay);
-		}
-	}
-
-out:
-	PSB_DEBUG_GENERAL("MSVDX: ret:%d\n", ret);
-	return ret;
-}
-
-int psb_mtx_send(struct drm_psb_private *dev_priv, const void *msg)
-{
-	static uint32_t pad_msg[FWRK_PADMSG_SIZE];
-	const uint32_t *p_msg = (uint32_t *) msg;
-	uint32_t msg_num, words_free, ridx, widx, buf_size, buf_offset;
-	int ret = 0;
-
-	PSB_DEBUG_GENERAL("MSVDX: psb_mtx_send\n");
-
-	/* we need clocks enabled before we touch VEC local ram */
-	PSB_WMSVDX32(clk_enable_all, MSVDX_MAN_CLK_ENABLE);
-
-	msg_num = (MEMIO_READ_FIELD(msg, FWRK_GENMSG_SIZE) + 3) / 4;
-
-/*
-	{
-		int i;
-		printk("MSVDX: psb_mtx_send is %dDW\n", msg_num);
-
-		for(i = 0; i < msg_num; i++)
-			printk("0x%08x ", p_msg[i]);
-		printk("\n");
-	}
-*/
-	buf_size = PSB_RMSVDX32(MSVDX_COMMS_TO_MTX_BUF_SIZE) & ((1 << 16) - 1);
-
-	if (msg_num > buf_size) {
-		ret = -EINVAL;
-		DRM_ERROR("MSVDX: message exceed maximum,ret:%d\n", ret);
-		goto out;
-	}
-
-	ridx = PSB_RMSVDX32(MSVDX_COMMS_TO_MTX_RD_INDEX);
-	widx = PSB_RMSVDX32(MSVDX_COMMS_TO_MTX_WRT_INDEX);
-
-
-	buf_size = PSB_RMSVDX32(MSVDX_COMMS_TO_MTX_BUF_SIZE) & ((1 << 16) - 1);
-	/*0x2000 is VEC Local Ram offset*/
-	buf_offset =
-		(PSB_RMSVDX32(MSVDX_COMMS_TO_MTX_BUF_SIZE) >> 16) + 0x2000;
-
-	/* message would wrap, need to send a pad message */
-	if (widx + msg_num > buf_size) {
-		/* Shouldn't happen for a PAD message itself */
-		BUG_ON(MEMIO_READ_FIELD(msg, FWRK_GENMSG_ID)
-		       == FWRK_MSGID_PADDING);
-
-		/* if the read pointer is at zero then we must wait for it to
-		 * change otherwise the write pointer will equal the read
-		 * pointer,which should only happen when the buffer is empty
-		 *
-		 * This will only happens if we try to overfill the queue,
-		 * queue management should make
-		 * sure this never happens in the first place.
-		 */
-		BUG_ON(0 == ridx);
-		if (0 == ridx) {
-			ret = -EINVAL;
-			DRM_ERROR("MSVDX: RIndex=0, ret:%d\n", ret);
-			goto out;
-		}
-
-		/* Send a pad message */
-		MEMIO_WRITE_FIELD(pad_msg, FWRK_GENMSG_SIZE,
-				  (buf_size - widx) << 2);
-		MEMIO_WRITE_FIELD(pad_msg, FWRK_GENMSG_ID,
-				  FWRK_MSGID_PADDING);
-		psb_mtx_send(dev_priv, pad_msg);
-		widx = PSB_RMSVDX32(MSVDX_COMMS_TO_MTX_WRT_INDEX);
-	}
-
-	if (widx >= ridx)
-		words_free = buf_size - (widx - ridx) - 1;
-	else
-		words_free = ridx - widx - 1;
-
-	BUG_ON(msg_num > words_free);
-	if (msg_num > words_free) {
-		ret = -EINVAL;
-		DRM_ERROR("MSVDX: msg_num > words_free, ret:%d\n", ret);
-		goto out;
-	}
-	while (msg_num > 0) {
-		PSB_WMSVDX32(*p_msg++, buf_offset + (widx << 2));
-		msg_num--;
-		widx++;
-		if (buf_size == widx)
-			widx = 0;
-	}
-
-	PSB_WMSVDX32(widx, MSVDX_COMMS_TO_MTX_WRT_INDEX);
-
-	/* Make sure clocks are enabled before we kick */
-	PSB_WMSVDX32(clk_enable_all, MSVDX_MAN_CLK_ENABLE);
-
-	PSB_WMSVDX32(clk_enable_all, MSVDX_MAN_CLK_ENABLE);
-
-	/* signal an interrupt to let the mtx know there is a new message */
-	/* PSB_WMSVDX32(1, MSVDX_MTX_KICKI); */
-	PSB_WMSVDX32(1, MSVDX_MTX_KICK);
-
-	/* Read MSVDX Register several times in case Idle signal assert */
-	PSB_RMSVDX32(MSVDX_INTERRUPT_STATUS);
-	PSB_RMSVDX32(MSVDX_INTERRUPT_STATUS);
-	PSB_RMSVDX32(MSVDX_INTERRUPT_STATUS);
-	PSB_RMSVDX32(MSVDX_INTERRUPT_STATUS);
-
-
-out:
-	return ret;
-}
-
-static int psb_msvdx_towpass_deblock(struct drm_device *dev,
-				     uint32_t *pPicparams)
-{
-	struct drm_psb_private *dev_priv =
-		(struct drm_psb_private *)dev->dev_private;
-	uint32_t cmd_size, cmd_count = 0;
-	uint32_t cmd_id, reg, value, wait, reg_value, read = 0, ret = 0;
-
-	cmd_size = *pPicparams++;
-	PSB_DEBUG_GENERAL("MSVDX DEBLOCK: deblock get cmd size %d\n", cmd_size);
-	/* printk("MSVDX DEBLOCK: deblock get cmd size %d\n", cmd_size); */
-
-	do {
-		cmd_id = (*pPicparams) & 0xf0000000;
-		reg = (*pPicparams++)  & 0x0fffffff;
-		switch (cmd_id) {
-		case MSVDX_DEBLOCK_REG_SET: {
-			value = *pPicparams++;
-			PSB_WMSVDX32(value, reg);
-			cmd_count += 2;
-			break;
-		}
-		case MSVDX_DEBLOCK_REG_GET: {
-			read = PSB_RMSVDX32(reg);
-			cmd_count += 1;
-			break;
-		}
-		case MSVDX_DEBLOCK_REG_POLLn: {
-			value = *pPicparams++;
-			wait = 0;
-
-			do {
-				reg_value = PSB_RMSVDX32(reg);
-			} while ((wait++ < 20000) && (value > reg_value));
-
-			if (wait >= 20000) {
-				ret = 1;
-				PSB_DEBUG_GENERAL(
-					"MSVDX DEBLOCK: polln cmd space time out!\n");
-				goto finish_deblock;
-			}
-			cmd_count += 2;
-			break;
-		}
-		case MSVDX_DEBLOCK_REG_POLLx: {
-			wait = 0;
-
-			do {
-				reg_value = PSB_RMSVDX32(reg);
-			} while ((wait++ < 20000) && (read > reg_value));
-
-			if (wait >= 20000) {
-				ret = 1;
-				PSB_DEBUG_GENERAL(
-					"MSVDX DEBLOCK: pollx cmd space time out!\n");
-				goto finish_deblock;
-			}
-
-			cmd_count += 1;
-			break;
-		}
-		default:
-			ret = 1;
-			PSB_DEBUG_GENERAL(
-				"MSVDX DEBLOCK: get error cmd_id: 0x%x!\n",
-				cmd_id);
-			PSB_DEBUG_GENERAL(
-				"MSVDX DEBLOCK: execute cmd num is %d\n",
-				cmd_count);
-			/* printk("MSVDX DEBLOCK: get error cmd_id: 0x%x!\n",
-			   cmd_id); */
-			/* printk("MSVDX DEBLOCK: execute cmd num is %d\n",
-			   cmd_count); */
-			goto finish_deblock;
-		}
-	} while (cmd_count < cmd_size);
-
-
-finish_deblock:
-	PSB_DEBUG_GENERAL("MSVDX DEBLOCK: execute cmd num is %d\n", cmd_count);
-	return ret;
-}
-
-/*
- * MSVDX MTX interrupt
- */
-static void psb_msvdx_mtx_interrupt(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv =
-		(struct drm_psb_private *)dev->dev_private;
-	static uint32_t buf[128]; /* message buffer */
-	uint32_t ridx, widx, buf_size, buf_offset;
-	uint32_t num, ofs; /* message num and offset */
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-	int i;
-
-	PSB_DEBUG_GENERAL("MSVDX:Got a MSVDX MTX interrupt\n");
-
-	/* Are clocks enabled  - If not enable before
-	 * attempting to read from VLR
-	 */
-	if (PSB_RMSVDX32(MSVDX_MAN_CLK_ENABLE) != (clk_enable_all)) {
-		PSB_DEBUG_GENERAL("MSVDX:Clocks disabled when Interupt set\n");
-		PSB_WMSVDX32(clk_enable_all, MSVDX_MAN_CLK_ENABLE);
-	}
-
-loop: /* just for coding style check */
-	ridx = PSB_RMSVDX32(MSVDX_COMMS_TO_HOST_RD_INDEX);
-	widx = PSB_RMSVDX32(MSVDX_COMMS_TO_HOST_WRT_INDEX);
-
-	/* Get out of here if nothing */
-	if (ridx == widx)
-		goto done;
-
-	buf_size = PSB_RMSVDX32(MSVDX_COMMS_TO_HOST_BUF_SIZE) & ((1 << 16) - 1);
-	/*0x2000 is VEC Local Ram offset*/
-	buf_offset =
-		(PSB_RMSVDX32(MSVDX_COMMS_TO_HOST_BUF_SIZE) >> 16) + 0x2000;
-
-	ofs = 0;
-	buf[ofs] = PSB_RMSVDX32(buf_offset + (ridx << 2));
-
-	/* round to nearest word */
-	num = (MEMIO_READ_FIELD(buf, FWRK_GENMSG_SIZE) + 3) / 4;
-
-	/* ASSERT(num <= sizeof(buf) / sizeof(uint32_t)); */
-
-	if (++ridx >= buf_size)
-		ridx = 0;
-
-	for (ofs++; ofs < num; ofs++) {
-		buf[ofs] = PSB_RMSVDX32(buf_offset + (ridx << 2));
-
-		if (++ridx >= buf_size)
-			ridx = 0;
-	}
-
-	/* Update the Read index */
-	PSB_WMSVDX32(ridx, MSVDX_COMMS_TO_HOST_RD_INDEX);
-
-	if (msvdx_priv->msvdx_needs_reset)
-		goto loop;
-
-	switch (MEMIO_READ_FIELD(buf, FWRK_GENMSG_ID)) {
-	case VA_MSGID_CMD_HW_PANIC:
-	case VA_MSGID_CMD_FAILED: {
-		/* For VXD385 firmware, fence value is not validate here */
-		uint32_t msg_id = MEMIO_READ_FIELD(buf, FWRK_GENMSG_ID);
-		uint32_t diff = 0;
-		uint32_t fence, fault = 0;
-		drm_psb_msvdx_frame_info_t *failed_frame = NULL;
-        
-		if (msg_id == VA_MSGID_CMD_HW_PANIC)
-			PSB_DEBUG_MSVDX("MSVDX_DEBUG: get panic message.\n");
-		else
-			PSB_DEBUG_MSVDX("MSVDX_DEBUG: get failed message.\n");
-        
-		if (msg_id == VA_MSGID_CMD_HW_PANIC) {
-			fence = MEMIO_READ_FIELD(buf,
-						 FW_VA_HW_PANIC_FENCE_VALUE);
-			printk("jiangfei debug: fence in panic message is %d.\n", fence);
-			PSB_DEBUG_MSVDX("MSVDX_DEBUG: PANIC MESSAGE fence is %d.\n", MEMIO_READ_FIELD(buf, FW_VA_HW_PANIC_FENCE_VALUE));
-			PSB_DEBUG_MSVDX("MSVDX_DEBUG: PANIC MESSAGE first mb num is %d.\n", MEMIO_READ_FIELD(buf, FW_VA_HW_PANIC_FIRST_MB_NUM));
-			PSB_DEBUG_MSVDX("MSVDX_DEBUG: PANIC MESSAGE fault mb num is %d.\n", MEMIO_READ_FIELD(buf, FW_VA_HW_PANIC_FAULT_MB_NUM));
-			PSB_DEBUG_MSVDX("MSVDX_DEBUG: PANIC MESSAGE fe status is 0x%x.\n", MEMIO_READ_FIELD(buf, FW_VA_HW_PANIC_FESTATUS));
-			PSB_DEBUG_MSVDX("MSVDX_DEBUG: PANIC MESSAGE be status is 0x%x.\n", MEMIO_READ_FIELD(buf, FW_VA_HW_PANIC_BESTATUS));
-		} else {
-			fence = MEMIO_READ_FIELD(buf,
-						 FW_VA_CMD_FAILED_FENCE_VALUE);
-			PSB_DEBUG_MSVDX("MSVDX_DEBUG: FAILED MESSAGE fence is %d.\n", MEMIO_READ_FIELD(buf, FW_VA_HW_PANIC_FIRST_MB_NUM));
-			PSB_DEBUG_MSVDX("MSVDX_DEBUG: FAILED MESSAGE flag is %d.\n", MEMIO_READ_FIELD(buf, FW_VA_CMD_FAILED_FLAGS));
-		}
-
-		if(IS_CDV(dev) && IS_FW_UPDATED) {
-			fence = MEMIO_READ_FIELD(buf, FW_DEVA_CMD_FAILED_MSG_ID);
-			fault = MEMIO_READ_FIELD(buf, FW_DEVA_CMD_FAILED_FLAGS);
-		}
-
-		if (msg_id == VA_MSGID_CMD_HW_PANIC)
-			PSB_DEBUG_GENERAL("MSVDX: VA_MSGID_CMD_HW_PANIC:"
-					  "Fault detected"
-					  " - Fence: %08x"
-					  " - Flags: %08x"
-					  " - resetting and ignoring error\n",
-					  fence, fault);
-		else
-			PSB_DEBUG_GENERAL("MSVDX: VA_MSGID_CMD_FAILED:"
-					  "Fault detected"
-					  " - Fence: %08x"
-					  " - Flags: %08x"
-					  " - resetting and ignoring error\n",
-					  fence, fault);
-
-		msvdx_priv->msvdx_needs_reset = 1;
-
-		if (msg_id == VA_MSGID_CMD_HW_PANIC) {
-			diff = msvdx_priv->msvdx_current_sequence
-				- dev_priv->sequence[PSB_ENGINE_VIDEO];
-
-			if (diff > 0x0FFFFFFF)
-				msvdx_priv->msvdx_current_sequence++;
-
-			PSB_DEBUG_GENERAL("MSVDX: Fence ID missing, "
-					  "assuming %08x\n",
-					  msvdx_priv->msvdx_current_sequence);
-		} else {
-			msvdx_priv->msvdx_current_sequence = fence;
-		}
-
-		psb_fence_error(dev, PSB_ENGINE_VIDEO,
-				msvdx_priv->msvdx_current_sequence,
-				_PSB_FENCE_TYPE_EXE, DRM_CMD_FAILED);
-
-		/* Flush the command queue */
-		psb_msvdx_flush_cmd_queue(dev);
-
-		if (msvdx_priv->host_be_opp_enabled) {
-			/*get the frame_info struct for error concealment frame*/
-			for (i = 0; i < MAX_DECODE_BUFFERS; i++) {
-				/*by default the fence is 0, so there is problem here???*/
-				if (msvdx_priv->frame_info[i].fence == fence) {
-					failed_frame = &msvdx_priv->frame_info[i];
-					break;
-				}
-			}
-			if (!failed_frame) {
-				DRM_ERROR("MSVDX: didn't find frame_info which matched the fence %d in failed/panic message\n", fence);
-				goto done;
-			}
-
-			failed_frame->fw_status = 1; /* set ERROR flag */
-		} else
-			msvdx_priv->fw_status = 1; /* set ERROR flag */
-
-		goto done;
-	}
-	case VA_MSGID_CMD_COMPLETED: {
-		uint32_t fence;
-		uint32_t flags = MEMIO_READ_FIELD(buf, FW_VA_CMD_COMPLETED_FLAGS);
-		/* uint32_t last_mb = MEMIO_READ_FIELD(buf,
-		   FW_VA_CMD_COMPLETED_LASTMB);
-		*/
-
-		if(IS_CDV(dev) && IS_FW_UPDATED)
-			fence = MEMIO_READ_FIELD(buf, FW_VA_CMD_COMPLETED_MSG_ID);
-		else
-			fence = MEMIO_READ_FIELD(buf, FW_VA_CMD_COMPLETED_FENCE_VALUE);
-
-		PSB_DEBUG_GENERAL("MSVDX:VA_MSGID_CMD_COMPLETED: "
-				  "FenceID: %08x, flags: 0x%x\n",
-				  fence, flags);
-
-		msvdx_priv->msvdx_current_sequence = fence;
-		msvdx_priv->ref_pic_fence = fence;
-
-		psb_fence_handler(dev, PSB_ENGINE_VIDEO);
-
-		if (flags & FW_VA_RENDER_HOST_INT) {
-			/*Now send the next command from the msvdx cmd queue */
-			psb_msvdx_dequeue_send(dev);
-			goto done;
-		}
-
-		break;
-	}
-	case VA_MSGID_CMD_COMPLETED_BATCH: {
-		uint32_t fence = MEMIO_READ_FIELD(buf,
-						  FW_VA_CMD_COMPLETED_FENCE_VALUE);
-		uint32_t tickcnt = MEMIO_READ_FIELD(buf,
-						    FW_VA_CMD_COMPLETED_NO_TICKS);
-		(void)tickcnt;
-		/* we have the fence value in the message */
-		PSB_DEBUG_GENERAL("MSVDX:VA_MSGID_CMD_COMPLETED_BATCH:"
-				  " FenceID: %08x, TickCount: %08x\n",
-				  fence, tickcnt);
-		msvdx_priv->msvdx_current_sequence = fence;
-
-		break;
-	}
-	case VA_MSGID_ACK:
-		PSB_DEBUG_GENERAL("MSVDX: VA_MSGID_ACK\n");
-		break;
-
-	case VA_MSGID_TEST1:
-		PSB_DEBUG_GENERAL("MSVDX: VA_MSGID_TEST1\n");
-		break;
-
-		/* Penwell deblock is not implemented here */
-	case VA_MSGID_DEBLOCK_REQUIRED:	{
-		uint32_t ctxid = MEMIO_READ_FIELD(buf,
-						  FW_VA_DEBLOCK_REQUIRED_CONTEXT);
-		struct psb_msvdx_deblock_queue *msvdx_deblock;
-		uint32_t fence = MEMIO_READ_FIELD(buf,
-						  FW_VA_DEBLOCK_REQUIRED_FENCE_VALUE);
-
-		PSB_DEBUG_GENERAL("MSVDX: VA_MSGID_DEBLOCK_REQUIRED"
-				  " Context=%08x\n", ctxid);
-
-
-		/*deblock and on-be-opp use the same message, there is difficulty to distinguish them*/
-		/*now I just let user space use cpu copy error mb*/
-		if ((msvdx_priv->deblock_enabled == 1) && (msvdx_priv->host_be_opp_enabled == 1)) {
-			DRM_ERROR("MSVDX: should not support both deblock and host_be_opp message. \n");
-			goto done;
-		} else if (msvdx_priv->deblock_enabled == 1) {
-			PSB_DEBUG_MSVDX("MSVDX_DEBUG: get deblock required message for deblock operation.\n");
-			if (list_empty(&msvdx_priv->deblock_queue)) {
-				PSB_DEBUG_GENERAL(
-					"DEBLOCKQUE: deblock param list is empty\n");
-				PSB_WMSVDX32(0, MSVDX_CMDS_END_SLICE_PICTURE);
-				PSB_WMSVDX32(1, MSVDX_CMDS_END_SLICE_PICTURE);
-				goto done;
-			}
-			msvdx_deblock = list_first_entry(&msvdx_priv->deblock_queue,
-							 struct psb_msvdx_deblock_queue, head);
-
-			if (0) {
-				PSB_DEBUG_GENERAL("MSVDX DEBLOCK: by pass \n");
-				/* try to unblock rendec */
-				PSB_WMSVDX32(0, MSVDX_CMDS_END_SLICE_PICTURE);
-				PSB_WMSVDX32(1, MSVDX_CMDS_END_SLICE_PICTURE);
-				kfree(msvdx_deblock->dbParams.pPicparams);
-				list_del(&msvdx_deblock->head);
-				goto done;
-			}
-
-
-			if (ctxid != msvdx_deblock->dbParams.ctxid) {
-				PSB_DEBUG_GENERAL("MSVDX DEBLOCK: wrong ctxid, may "
-						  "caused by multiple context since "
-						  "it's not supported yet\n");
-				/* try to unblock rendec */
-				PSB_WMSVDX32(0, MSVDX_CMDS_END_SLICE_PICTURE);
-				PSB_WMSVDX32(1, MSVDX_CMDS_END_SLICE_PICTURE);
-				kfree(msvdx_deblock->dbParams.pPicparams);
-				list_del(&msvdx_deblock->head);
-				goto done;
-			}
-
-			if (msvdx_deblock->dbParams.pPicparams) {
-				PSB_DEBUG_GENERAL("MSVDX DEBLOCK: start deblocking\n");
-				/* printk("MSVDX DEBLOCK: start deblocking\n"); */
-
-				if (psb_msvdx_towpass_deblock(dev,
-							      msvdx_deblock->dbParams.pPicparams)) {
-
-					PSB_DEBUG_GENERAL(
-						"MSVDX DEBLOCK: deblock fail!\n");
-					PSB_WMSVDX32(0, MSVDX_CMDS_END_SLICE_PICTURE);
-					PSB_WMSVDX32(1, MSVDX_CMDS_END_SLICE_PICTURE);
-				}
-				kfree(msvdx_deblock->dbParams.pPicparams);
-			} else {
-				PSB_DEBUG_GENERAL("MSVDX DEBLOCK: deblock abort!\n");
-				/* printk("MSVDX DEBLOCK: deblock abort!\n"); */
-				PSB_WMSVDX32(0, MSVDX_CMDS_END_SLICE_PICTURE);
-				PSB_WMSVDX32(1, MSVDX_CMDS_END_SLICE_PICTURE);
-			}
-
-			list_del(&msvdx_deblock->head);
-			kfree(msvdx_deblock);
-		} else if (msvdx_priv->host_be_opp_enabled == 1) {
-			PSB_DEBUG_MSVDX("MSVDX_DEBUG: get deblock required message for error concealment.\n");
-            
-			/* try to unblock rendec */
-			PSB_WMSVDX32(0, MSVDX_CMDS_END_SLICE_PICTURE);
-			PSB_WMSVDX32(1, MSVDX_CMDS_END_SLICE_PICTURE);
-
-			/*do error concealment with hw*/
-			msvdx_priv->ec_fence = fence;
-			schedule_work(&msvdx_priv->ec_work);
-		}
-
-		break;
-	}
-
-	case VA_MSGID_CMD_CONTIGUITY_WARNING: {
-		drm_psb_msvdx_frame_info_t *ec_frame = NULL;
-		drm_psb_msvdx_decode_status_t *fault_region = NULL;
-	
-		/*get erro info*/
-		uint32_t fence = MEMIO_READ_FIELD(buf,
-						  FW_VA_CONTIGUITY_WARNING_FENCE_VALUE);
-		uint32_t ui32Start = MEMIO_READ_FIELD(buf,
-						      FW_VA_CONTIGUITY_WARNING_BEGIN_MB_NUM);
-		uint32_t ui32End = MEMIO_READ_FIELD(buf, 
-						    FW_VA_CONTIGUITY_WARNING_END_MB_NUM);
-		PSB_DEBUG_GENERAL("MSVDX: VA_MSGID_CMD_CONTIGUITY_WARNING\n");
-		PSB_DEBUG_MSVDX("MSVDX_DEBUG: get contiguity warning message.\n");
-		PSB_DEBUG_MSVDX("MSVDX_DEBUG: CONTIGUITY_WARNING MESSAGE fence is %d.\n", MEMIO_READ_FIELD(buf, FW_VA_CONTIGUITY_WARNING_FENCE_VALUE));
-		PSB_DEBUG_MSVDX("MSVDX_DEBUG: CONTIGUITY_WARNING MESSAGE end mb num is %d.\n", MEMIO_READ_FIELD(buf, FW_VA_CONTIGUITY_WARNING_END_MB_NUM));
-		PSB_DEBUG_MSVDX("MSVDX_DEBUG: CONTIGUITY_WARNING MESSAGE begin mb num is %d.\n", MEMIO_READ_FIELD(buf, FW_VA_CONTIGUITY_WARNING_BEGIN_MB_NUM));
-
-		/*get the frame_info struct for error concealment frame*/
-		for (i = 0; i < MAX_DECODE_BUFFERS; i++) {
-			if (msvdx_priv->frame_info[i].fence == fence) {
-				ec_frame = &msvdx_priv->frame_info[i];
-				break;
-			}
-		}
-		if (!ec_frame) {
-			DRM_ERROR("MSVDX: didn't find frame_info which matched the fence %d when get contiguity warning.\n", fence);
-			goto done;
-		}
-		else if (msvdx_priv->host_be_opp_enabled){
-			ec_frame->fw_status = 1;
-			fault_region = &ec_frame->decode_status;
-			if (ui32Start == 0xffff) {
-				if (fault_region->num_error_slice == 0) {
-					fault_region->start_error_mb_list[fault_region->num_error_slice] = 0;
-					fault_region->end_error_mb_list[fault_region->num_error_slice] = ui32End;
-					fault_region->num_error_slice++;
-				}
-				else if (fault_region->end_error_mb_list[fault_region->num_error_slice - 1] == 0xffff) {
-					fault_region->end_error_mb_list[fault_region->num_error_slice - 1] = ui32End;
-				}
-			}
-			else if (ui32Start <  ui32End) {
-				fault_region->start_error_mb_list[fault_region->num_error_slice] = ui32Start;
-				fault_region->end_error_mb_list[fault_region->num_error_slice] = ui32End;
-				fault_region->num_error_slice++;
-			}
-			else {
-				DRM_ERROR("msvdx error: start mb counter should not be larger than end mb counter.\n");
-				goto done;
-			}     
-		}
-
-	        break;
-
-	}
-	default:
-		DRM_ERROR("ERROR: msvdx Unknown message from MTX, ID:0x%08x\n", MEMIO_READ_FIELD(buf, FWRK_GENMSG_ID));
-		goto done;
-	}
-
-done:
-	if (ridx != widx) {
-		PSB_DEBUG_GENERAL("MSVDX Interrupt: there are more message to be read\n");
-		goto loop;
-	}
-	/* we get a frame/slice done, try to save some power*/
-	if (drm_msvdx_pmpolicy != PSB_PMPOLICY_NOPM)
-		schedule_delayed_work(&dev_priv->scheduler.msvdx_suspend_wq, 0);
-
-	DRM_MEMORYBARRIER();	/* TBD check this... */
-}
-
-
-/*
- * MSVDX interrupt.
- */
-IMG_BOOL psb_msvdx_interrupt(IMG_VOID *pvData)
-{
-	struct drm_device *dev;
-	struct drm_psb_private *dev_priv;
-	struct msvdx_private *msvdx_priv;
-	uint32_t msvdx_stat;
-
-	if (pvData == IMG_NULL) {
-		DRM_ERROR("ERROR: msvdx %s, Invalid params\n", __func__);
-		return IMG_FALSE;
-	}
-
-	dev = (struct drm_device *)pvData;
-
-
-	dev_priv = (struct drm_psb_private *) dev->dev_private;
-	msvdx_priv = dev_priv->msvdx_private;
-
-	msvdx_priv->msvdx_hw_busy = REG_READ(0x20D0) & (0x1 << 9);
-
-	msvdx_stat = PSB_RMSVDX32(MSVDX_INTERRUPT_STATUS);
-
-	if (msvdx_stat & MSVDX_INTERRUPT_STATUS_CR_MMU_FAULT_IRQ_MASK) {
-		/*Ideally we should we should never get to this */
-		PSB_DEBUG_IRQ("MSVDX:MMU Fault:0x%x\n", msvdx_stat);
-
-		/* Pause MMU */
-		PSB_WMSVDX32(MSVDX_MMU_CONTROL0_CR_MMU_PAUSE_MASK,
-			     MSVDX_MMU_CONTROL0);
-		DRM_WRITEMEMORYBARRIER();
-
-		/* Clear this interupt bit only */
-		PSB_WMSVDX32(MSVDX_INTERRUPT_STATUS_CR_MMU_FAULT_IRQ_MASK,
-			     MSVDX_INTERRUPT_CLEAR);
-		PSB_RMSVDX32(MSVDX_INTERRUPT_CLEAR);
-		DRM_READMEMORYBARRIER();
-
-		msvdx_priv->msvdx_needs_reset = 1;
-	} else if (msvdx_stat & MSVDX_INTERRUPT_STATUS_CR_MTX_IRQ_MASK) {
-		PSB_DEBUG_IRQ
-			("MSVDX: msvdx_stat: 0x%x(MTX)\n", msvdx_stat);
-
-		/* Clear all interupt bits */
-		PSB_WMSVDX32(0xffff, MSVDX_INTERRUPT_CLEAR);
-		PSB_RMSVDX32(MSVDX_INTERRUPT_CLEAR);
-		DRM_READMEMORYBARRIER();
-
-		psb_msvdx_mtx_interrupt(dev);
-	}
-
-	return IMG_TRUE;
-}
-
-
-void psb_msvdx_lockup(struct drm_psb_private *dev_priv,
-		      int *msvdx_lockup, int *msvdx_idle)
-{
-	int diff;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-
-	*msvdx_lockup = 0;
-	*msvdx_idle = 1;
-
-#if 0
-	PSB_DEBUG_GENERAL("MSVDXTimer: current_sequence:%d "
-			  "last_sequence:%d and last_submitted_sequence :%d\n",
-			  msvdx_priv->msvdx_current_sequence,
-			  msvdx_priv->msvdx_last_sequence,
-			  dev_priv->sequence[PSB_ENGINE_VIDEO]);
-#endif
-
-	diff = msvdx_priv->msvdx_current_sequence -
-		dev_priv->sequence[PSB_ENGINE_VIDEO];
-
-	if (diff > 0x0FFFFFFF) {
-		if (msvdx_priv->msvdx_current_sequence ==
-		    msvdx_priv->msvdx_last_sequence) {
-			DRM_ERROR("MSVDXTimer:locked-up for sequence:%d\n",
-				  msvdx_priv->msvdx_current_sequence);
-			*msvdx_lockup = 1;
-		} else {
-			PSB_DEBUG_GENERAL("MSVDXTimer: "
-					  "msvdx responded fine so far\n");
-			msvdx_priv->msvdx_last_sequence =
-				msvdx_priv->msvdx_current_sequence;
-			*msvdx_idle = 0;
-		}
-	}
-}
-
-int psb_check_msvdx_idle(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv =
-		(struct drm_psb_private *)dev->dev_private;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-	/* drm_psb_msvdx_frame_info_t *current_frame = NULL; */
-
-	if (msvdx_priv->msvdx_fw_loaded == 0)
-		return 0;
-
-	if (msvdx_priv->msvdx_busy) {
-		PSB_DEBUG_PM("MSVDX: psb_check_msvdx_idle returns busy\n");
-		return -EBUSY;
-	}
-/*
-	if (msvdx_priv->msvdx_hw_busy) {
-		PSB_DEBUG_PM("MSVDX: %s, HW is busy\n", __func__);
-		return -EBUSY;
-	}
-*/
-	return 0;
-}
-
-
-int psb_remove_videoctx(struct drm_psb_private *dev_priv, struct file *filp)
-{
-	struct psb_video_ctx *pos, *n;
-
-	list_for_each_entry_safe(pos, n, &dev_priv->video_ctx, head) {
-		if (pos->filp == filp) {
-			PSB_DEBUG_GENERAL("Video:remove context profile %d,"
-					" entrypoint %d",
-					(pos->ctx_type >> 8),
-					(pos->ctx_type & 0xff));
-
-			if (dev_priv->msvdx_ctx == pos)
-				dev_priv->msvdx_ctx = NULL;
-			if (dev_priv->last_msvdx_ctx == pos)
-				dev_priv->last_msvdx_ctx = NULL;
-
-			list_del(&pos->head);
-			kfree(pos);
-		}
-	}
-	return 0;
-}
-
-
-int lnc_video_getparam(struct drm_device *dev, void *data,
-		       struct drm_file *file_priv)
-{
-	struct drm_lnc_video_getparam_arg *arg = data;
-	int ret = 0;
-	struct drm_psb_private *dev_priv =
-		(struct drm_psb_private *)file_priv->minor->dev->dev_private;
-	drm_psb_msvdx_frame_info_t *current_frame = NULL;
-	uint32_t handle, i;
-
-	void *rar_handler;
-	uint32_t offset = 0;
-	uint32_t device_info = 0;
-	uint32_t ctx_type = 0;
-	struct psb_video_ctx *video_ctx = NULL;
-	uint32_t rar_ci_info[2];
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-
-	switch (arg->key) {
-	case LNC_VIDEO_GETPARAM_RAR_INFO:
-		rar_ci_info[0] = dev_priv->rar_region_start;
-		rar_ci_info[1] = dev_priv->rar_region_size;
-		ret = copy_to_user((void __user *) ((unsigned long)arg->value),
-				   &rar_ci_info[0],
-				   sizeof(rar_ci_info));
-		break;
-	case LNC_VIDEO_GETPARAM_CI_INFO:
-		rar_ci_info[0] = dev_priv->ci_region_start;
-		rar_ci_info[1] = dev_priv->ci_region_size;
-		ret = copy_to_user((void __user *) ((unsigned long)arg->value),
-				   &rar_ci_info[0],
-				   sizeof(rar_ci_info));
-		break;
-	case LNC_VIDEO_GETPARAM_RAR_HANDLER_OFFSET:
-		ret = copy_from_user(&rar_handler,
-				     (void __user *)((unsigned long)arg->arg),
-				     sizeof(rar_handler));
-		if (ret)
-			break;
-
-		ret = copy_to_user((void __user *)((unsigned long)arg->value),
-				   &offset,
-				   sizeof(offset));
-		break;
-	case LNC_VIDEO_FRAME_SKIP:
-		if(IS_CDV(dev)) /* CDV should not call it */
-			ret = -EFAULT;
-		break;
-	case LNC_VIDEO_DEVICE_INFO:
-		device_info = 0xffff & dev_priv->video_device_fuse;
-		device_info |= (0xffff & dev->pci_device) << 16;
-
-		ret = copy_to_user((void __user *) ((unsigned long)arg->value),
-				   &device_info, sizeof(device_info));
-		break;
-	case IMG_VIDEO_NEW_CONTEXT:
-		/* add video decode/encode context */
-		ret = copy_from_user(&ctx_type, (void __user *) ((unsigned long)arg->value),
-				     sizeof(ctx_type));
-		/* Failure in copy */
-		if (ret) {
-			DRM_ERROR("lnc_video_nex_context copy_from_user error.\n");
-			break;
-		}
-
-		video_ctx = kmalloc(sizeof(struct psb_video_ctx), GFP_KERNEL);
-		if (video_ctx == NULL) {
-			ret = -ENOMEM;
-			break;
-		}
-		INIT_LIST_HEAD(&video_ctx->head);
-		video_ctx->ctx_type = ctx_type;
-		video_ctx->filp = file_priv->filp;
-		list_add(&video_ctx->head, &dev_priv->video_ctx);
-		PSB_DEBUG_GENERAL("Video:add context profile %d, entrypoint %d",
-				  (ctx_type >> 8), (ctx_type & 0xff));
-		break;
-
-	case IMG_VIDEO_RM_CONTEXT:
-		psb_remove_videoctx(dev_priv, file_priv->filp);
-		break;
-	case IMG_VIDEO_DECODE_STATUS:
-		if (msvdx_priv->host_be_opp_enabled) {
-			/*get the right frame_info struct for current surface*/
-			ret = copy_from_user(&handle,
-					     (void __user *)((unsigned long)arg->arg), 4);
-			if (ret) {
-				DRM_ERROR("MSVDX in lnc_video_getparam, copy_from_user failed.\n");
-				break;
-			}
-            
-			for (i = 0; i < MAX_DECODE_BUFFERS; i++) {
-				if (msvdx_priv->frame_info[i].handle == handle) {
-					current_frame = &msvdx_priv->frame_info[i];
-					break;
-				}
-			}
-			if (!current_frame) {
-				DRM_ERROR("MSVDX: didn't find frame_info which matched the surface_id. \n");
-				return -EFAULT;
-			}
-			ret = copy_to_user((void __user *) ((unsigned long)arg->value),
-					   &current_frame->fw_status, sizeof(current_frame->fw_status));
-		} else
-			ret = copy_to_user((void __user *) ((unsigned long)arg->value),
-					   &msvdx_priv->fw_status, sizeof(msvdx_priv->fw_status));
-		break;
-
-	case IMG_VIDEO_MB_ERROR:
-		/*get the right frame_info struct for current surface*/
-		ret = copy_from_user(&handle,
-				     (void __user *)((unsigned long)arg->arg), 4);
-		if (ret)
-			break;
-        
-		for (i = 0; i < MAX_DECODE_BUFFERS; i++) {
-			if (msvdx_priv->frame_info[i].handle == handle) {
-				current_frame = &msvdx_priv->frame_info[i];
-				break;
-			}
-		}
-		if (!current_frame) {
-			DRM_ERROR("MSVDX: didn't find frame_info which matched the surface_id. \n");
-			return -EFAULT;
-		}
-		ret = copy_to_user((void __user *) ((unsigned long)arg->value),
-				   &(current_frame->decode_status), sizeof(drm_psb_msvdx_decode_status_t));
-		if (ret) {
-			DRM_ERROR("lnc_video_getparam copy_to_user error.\n");
-			return -EFAULT;
-		}
-		break;
-        
-
-	default:
-		ret = -EFAULT;
-		break;
-	}
-
-	if (ret)
-		return -EFAULT;
-
-	return 0;
-}
-
-inline int psb_try_power_down_msvdx(struct drm_device *dev)
-{
-	ospm_apm_power_down_msvdx(dev);
-	return 0;
-}
-
-int psb_msvdx_save_context(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv =
-		(struct drm_psb_private *)dev->dev_private;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-	int offset = 0;
-
-	msvdx_priv->msvdx_needs_reset = 1;
-
-	if (msvdx_priv->vec_local_mem_data) {
-		for (offset = 0; offset < VEC_LOCAL_MEM_BYTE_SIZE / 4; ++offset)
-			msvdx_priv->vec_local_mem_data[offset] =
-				PSB_RMSVDX32(VEC_LOCAL_MEM_OFFSET + offset * 4);
-
-		msvdx_priv->vec_local_mem_saved = 1;
-	}
-	return 0;
-}
-
-int psb_msvdx_restore_context(struct drm_device *dev)
-{
-	return 0;
-}
diff --git a/drivers/staging/cdv/imgv/psb_msvdx.h b/drivers/staging/cdv/imgv/psb_msvdx.h
deleted file mode 100644
index 6392c0f..0000000
--- a/drivers/staging/cdv/imgv/psb_msvdx.h
+++ /dev/null
@@ -1,1388 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) 2011 Intel Corporation, Hillsboro, OR, USA
- * Copyright (c) Imagination Technologies Limited, UK
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-
-#ifndef _PSB_MSVDX_H_
-#define _PSB_MSVDX_H_
-
-#include "psb_drv.h"
-#include "img_types.h"
-
-
-extern int drm_msvdx_pmpolicy;
-extern int drm_msvdx_delay;
-
-typedef enum
-{
-	PSB_DMAC_BSWAP_NO_SWAP = 0x0,   //!< No byte swapping will be performed.
-	PSB_DMAC_BSWAP_REVERSE = 0x1,   //!< Byte order will be reversed.
-
-} DMAC_eBSwap;
-
-typedef enum
-{
-	PSB_DMAC_DIR_MEM_TO_PERIPH = 0x0, //!< Data from memory to peripheral.
-	PSB_DMAC_DIR_PERIPH_TO_MEM = 0x1, //!< Data from peripheral to memory.
-
-} DMAC_eDir;
-
-typedef enum
-{
-	PSB_DMAC_ACC_DEL_0              = 0x0,          //!< Access delay zero clock cycles
-	PSB_DMAC_ACC_DEL_256    = 0x1,      //!< Access delay 256 clock cycles
-	PSB_DMAC_ACC_DEL_512    = 0x2,      //!< Access delay 512 clock cycles
-	PSB_DMAC_ACC_DEL_768    = 0x3,      //!< Access delay 768 clock cycles
-	PSB_DMAC_ACC_DEL_1024   = 0x4,      //!< Access delay 1024 clock cycles
-	PSB_DMAC_ACC_DEL_1280   = 0x5,      //!< Access delay 1280 clock cycles
-	PSB_DMAC_ACC_DEL_1536   = 0x6,      //!< Access delay 1536 clock cycles
-	PSB_DMAC_ACC_DEL_1792   = 0x7,      //!< Access delay 1792 clock cycles
-
-} DMAC_eAccDel;
-
-typedef enum
-{
-	PSB_DMAC_INCR_OFF               = 0,            //!< Static peripheral address.
-	PSB_DMAC_INCR_ON                = 1                     //!< Incrementing peripheral address.
-
-} DMAC_eIncr;
-
-typedef enum
-{
-	PSB_DMAC_BURST_0                = 0x0,          //!< burst size of 0
-	PSB_DMAC_BURST_1        = 0x1,      //!< burst size of 1
-	PSB_DMAC_BURST_2        = 0x2,      //!< burst size of 2
-	PSB_DMAC_BURST_3        = 0x3,      //!< burst size of 3
-	PSB_DMAC_BURST_4        = 0x4,      //!< burst size of 4
-	PSB_DMAC_BURST_5        = 0x5,      //!< burst size of 5
-	PSB_DMAC_BURST_6        = 0x6,      //!< burst size of 6
-	PSB_DMAC_BURST_7        = 0x7,      //!< burst size of 7
-
-} DMAC_eBurst;
-
-int psb_wait_for_register(struct drm_psb_private *dev_priv,
-			  uint32_t offset,
-			  uint32_t value,
-			  uint32_t enable);
-
-IMG_BOOL psb_msvdx_interrupt(IMG_VOID *pvData);
-
-int psb_msvdx_init(struct drm_device *dev);
-int psb_msvdx_uninit(struct drm_device *dev);
-int psb_msvdx_reset(struct drm_psb_private *dev_priv);
-uint32_t psb_get_default_pd_addr(struct psb_mmu_driver *driver);
-int psb_mtx_send(struct drm_psb_private *dev_priv, const void *pvMsg);
-void psb_msvdx_flush_cmd_queue(struct drm_device *dev);
-void psb_msvdx_lockup(struct drm_psb_private *dev_priv,
-		      int *msvdx_lockup, int *msvdx_idle);
-int psb_setup_fw(struct drm_device *dev);
-int psb_check_msvdx_idle(struct drm_device *dev);
-int psb_wait_msvdx_idle(struct drm_device *dev);
-int psb_cmdbuf_video(struct drm_file *priv,
-		     struct list_head *validate_list,
-		     uint32_t fence_type,
-		     struct drm_psb_cmdbuf_arg *arg,
-		     struct ttm_buffer_object *cmd_buffer,
-		     struct psb_ttm_fence_rep *fence_arg);
-int psb_msvdx_save_context(struct drm_device *dev);
-int psb_msvdx_restore_context(struct drm_device *dev);
-
-bool
-psb_host_second_pass(struct drm_device *dev,
-		     uint32_t ui32OperatingModeCmd,
-		     void	 *pvParamBase,
-		     uint32_t PicWidthInMbs,
-		     uint32_t FrameHeightInMbs,
-		     uint32_t ui32DeblockSourceY,
-		     uint32_t ui32DeblockSourceUV);
-
-/*  Non-Optimal Invalidation is not default */
-#define MSVDX_DEVICE_NODE_FLAGS_MMU_NONOPT_INV	2
-#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_SOFT_RESET_MASK	(0x00000100)
-
-#define FW_VA_RENDER_HOST_INT		0x00004000
-#define MSVDX_DEVICE_NODE_FLAGS_MMU_HW_INVALIDATION	0x00000020
-
-/* There is no work currently underway on the hardware */
-#define MSVDX_FW_STATUS_HW_IDLE	0x00000001
-#define MSVDX_DEVICE_NODE_FLAG_BRN23154_BLOCK_ON_FE	0x00000200
-#define MSVDX_DEVICE_NODE_FLAGS_DEFAULT_D0 \
-	(MSVDX_DEVICE_NODE_FLAGS_MMU_NONOPT_INV |			\
-		MSVDX_DEVICE_NODE_FLAGS_MMU_HW_INVALIDATION |		\
-		MSVDX_DEVICE_NODE_FLAG_BRN23154_BLOCK_ON_FE)
-
-#define MSVDX_DEVICE_NODE_FLAGS_DEFAULT_D1 \
-	(MSVDX_DEVICE_NODE_FLAGS_MMU_HW_INVALIDATION |			\
-		MSVDX_DEVICE_NODE_FLAG_BRN23154_BLOCK_ON_FE)
-
-#define POULSBO_D0	0x5
-#define POULSBO_D1	0x6
-#define PSB_REVID_OFFSET 0x8
-
-#define MTX_CODE_BASE		(0x80900000)
-#define MTX_DATA_BASE		(0x82880000)
-#define PC_START_ADDRESS	(0x80900000)
-
-#define MTX_CORE_CODE_MEM	(0x10)
-#define MTX_CORE_DATA_MEM	(0x18)
-
-#define MSVDX_CONTROL_CR_MSVDX_SOFT_RESET_MASK		(0x00000100)
-#define MSVDX_CONTROL_CR_MSVDX_SOFT_RESET_SHIFT		(8)
-#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_FE_SOFT_RESET_MASK	\
-	(0x00010000)
-#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_BE_SOFT_RESET_MASK	\
-	(0x00100000)
-#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_VEC_MEMIF_SOFT_RESET_MASK	\
-	(0x01000000)
-#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_VEC_RENDEC_DEC_SOFT_RESET_MASK \
-	(0x10000000)
-
-#define clk_enable_all	\
-(MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_CORE_MAN_CLK_ENABLE_MASK	| \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDEB_PROCESS_MAN_CLK_ENABLE_MASK | \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDEB_ACCESS_MAN_CLK_ENABLE_MASK | \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDMC_MAN_CLK_ENABLE_MASK	 | \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VEC_ENTDEC_MAN_CLK_ENABLE_MASK | \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VEC_ITRANS_MAN_CLK_ENABLE_MASK | \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_MTX_MAN_CLK_ENABLE_MASK)
-
-#define clk_enable_minimal \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_CORE_MAN_CLK_ENABLE_MASK | \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_MTX_MAN_CLK_ENABLE_MASK
-
-#define clk_enable_auto	\
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDEB_PROCESS_AUTO_CLK_ENABLE_MASK	| \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDEB_ACCESS_AUTO_CLK_ENABLE_MASK	| \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDMC_AUTO_CLK_ENABLE_MASK		| \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VEC_ENTDEC_AUTO_CLK_ENABLE_MASK	| \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VEC_ITRANS_AUTO_CLK_ENABLE_MASK	| \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_CORE_MAN_CLK_ENABLE_MASK		| \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_MTX_MAN_CLK_ENABLE_MASK
-
-#define msvdx_sw_reset_all \
-(MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_SOFT_RESET_MASK |	  \
-MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_FE_SOFT_RESET_MASK |	  \
-MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_BE_SOFT_RESET_MASK	|		\
-MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_VEC_MEMIF_SOFT_RESET_MASK |	\
-MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_VEC_RENDEC_DEC_SOFT_RESET_MASK)
-
-#define MTX_INTERNAL_REG(R_SPECIFIER , U_SPECIFIER)	\
-	(((R_SPECIFIER)<<4) | (U_SPECIFIER))
-#define MTX_PC		MTX_INTERNAL_REG(0, 5)
-
-#define RENDEC_A_SIZE	(4 * 1024 * 1024)
-#define RENDEC_B_SIZE	(1024 * 1024)
-
-#define MEMIO_READ_FIELD(vpMem, field)	  \
-	((uint32_t)(((*((field##_TYPE*)(((uint32_t)vpMem) + field##_OFFSET))) \
-			& field##_MASK) >> field##_SHIFT))
-
-#define MEMIO_WRITE_FIELD(vpMem, field, value) 			\
-	(*((field##_TYPE*)(((uint32_t)vpMem) + field##_OFFSET))) =	\
-		((*((field##_TYPE*)(((uint32_t)vpMem) + field##_OFFSET))) \
-			& (field##_TYPE)~field##_MASK) |		\
-	(field##_TYPE)(((uint32_t)(value) << field##_SHIFT) & field##_MASK)
-
-#define MEMIO_WRITE_FIELD_LITE(vpMem, field, value)			\
-	 (*((field##_TYPE*)(((uint32_t)vpMem) + field##_OFFSET))) =	\
-	((*((field##_TYPE*)(((uint32_t)vpMem) + field##_OFFSET))) |	\
-		(field##_TYPE)(((uint32_t)(value) << field##_SHIFT)));
-
-#define REGIO_READ_FIELD(reg_val, reg, field)				\
-	((reg_val & reg##_##field##_MASK) >> reg##_##field##_SHIFT)
-
-#define REGIO_WRITE_FIELD(reg_val, reg, field, value)			\
-	(reg_val) =							\
-	((reg_val) & ~(reg##_##field##_MASK)) |				\
-		(((value) << (reg##_##field##_SHIFT)) & (reg##_##field##_MASK));
-
-#define REGIO_WRITE_FIELD_LITE(reg_val, reg, field, value)		\
-	(reg_val) =							\
-	((reg_val) | ((value) << (reg##_##field##_SHIFT)));
-
-#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_CORE_MAN_CLK_ENABLE_MASK	\
-	(0x00000001)
-#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDEB_PROCESS_MAN_CLK_ENABLE_MASK \
-	(0x00000002)
-#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDEB_ACCESS_MAN_CLK_ENABLE_MASK \
-	(0x00000004)
-#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDMC_MAN_CLK_ENABLE_MASK \
-			(0x00000008)
-#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VEC_ENTDEC_MAN_CLK_ENABLE_MASK \
-	(0x00000010)
-#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VEC_ITRANS_MAN_CLK_ENABLE_MASK \
-	(0x00000020)
-#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_MTX_MAN_CLK_ENABLE_MASK	\
-	(0x00000040)
-
-#define clk_enable_all	\
-	(MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_CORE_MAN_CLK_ENABLE_MASK	| \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDEB_PROCESS_MAN_CLK_ENABLE_MASK | \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDEB_ACCESS_MAN_CLK_ENABLE_MASK | \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDMC_MAN_CLK_ENABLE_MASK	 | \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VEC_ENTDEC_MAN_CLK_ENABLE_MASK | \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VEC_ITRANS_MAN_CLK_ENABLE_MASK | \
-MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_MTX_MAN_CLK_ENABLE_MASK)
-
-#define clk_enable_minimal \
-	MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_CORE_MAN_CLK_ENABLE_MASK | \
-	MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_MTX_MAN_CLK_ENABLE_MASK
-
-/* MTX registers */
-#define MSVDX_MTX_ENABLE		(0x0000)
-#define MSVDX_MTX_KICKI			(0x0088)
-#define MSVDX_MTX_KICK			(0x0080)
-#define MSVDX_MTX_REGISTER_READ_WRITE_REQUEST	(0x00FC)
-#define MSVDX_MTX_REGISTER_READ_WRITE_DATA	(0x00F8)
-#define MSVDX_MTX_RAM_ACCESS_DATA_TRANSFER	(0x0104)
-#define MSVDX_MTX_RAM_ACCESS_CONTROL	(0x0108)
-#define MSVDX_MTX_RAM_ACCESS_STATUS	(0x010C)
-#define MSVDX_MTX_SOFT_RESET		(0x0200)
-#define MSVDX_MTX_SYSC_TIMERDIV		(0x0208)
-#define MTX_CORE_CR_MTX_SYSC_CDMAS0_OFFSET              (0x0348)
-#define MTX_CORE_CR_MTX_SYSC_CDMAA_OFFSET               (0x0344)
-#define MTX_CORE_CR_MTX_SYSC_CDMAT_OFFSET               (0x0350)
-#define MTX_CORE_CR_MTX_SYSC_CDMAC_OFFSET               (0x0340)
-
-/* MSVDX registers */
-#define MSVDX_CONTROL			(0x0600)
-#define MSVDX_INTERRUPT_CLEAR		(0x060C)
-#define MSVDX_INTERRUPT_STATUS		(0x0608)
-#define MSVDX_HOST_INTERRUPT_ENABLE	(0x0610)
-#define MSVDX_CORE_REV			(0x0640)
-#define MSVDX_MMU_CONTROL0		(0x0680)
-#define MSVDX_MMU_MEM_REQ		(0x06D0)
-#define MSVDX_MTX_RAM_BANK		(0x06F0)
-#define MSVDX_MTX_DEBUG			MSVDX_MTX_RAM_BANK
-#define MSVDX_MAN_CLK_ENABLE		(0x0620)
-#define MSVDX_CORE_CR_MSVDX_CONTROL_OFFSET              (0x0600)
-#define MSVDX_CORE_CR_MMU_BANK_INDEX_OFFSET             (0x0688)
-#define MSVDX_CORE_CR_MMU_DIR_LIST_BASE_OFFSET          (0x0694)
-#define MSVDX_CORE_CR_MMU_CONTROL0_OFFSET               MSVDX_MMU_CONTROL0
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH		(0x66c)
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH		(0x678)
-
-/* RENDEC registers */
-#define MSVDX_RENDEC_CONTROL0		(0x0868)
-#define MSVDX_RENDEC_CONTROL1		(0x086C)
-#define MSVDX_RENDEC_BUFFER_SIZE	(0x0870)
-#define MSVDX_RENDEC_BASE_ADDR0		(0x0874)
-#define MSVDX_RENDEC_BASE_ADDR1		(0x0878)
-#define MSVDX_RENDEC_READ_DATA		(0x0898)
-#define MSVDX_RENDEC_CONTEXT0		(0x0950)
-#define MSVDX_RENDEC_CONTEXT1		(0x0954)
-#define MSVDX_RENDEC_CONTEXT2		(0x0958)
-#define MSVDX_RENDEC_CONTEXT3		(0x095C)
-#define MSVDX_RENDEC_CONTEXT4		(0x0960)
-#define MSVDX_RENDEC_CONTEXT5		(0x0964)
-
-/* VEC registers */
-#define MSVDX_VEC_SHIFTREG_CONTROL	(0x0818)
-
-/* DMAC registers */
-#define DMAC_DMAC_SETUP_OFFSET          (0x0500)
-#define DMAC_DMAC_COUNT_OFFSET          (0x0504)
-#define DMAC_DMAC_PERIPH_OFFSET         (0x0508)
-#define DMAC_DMAC_IRQ_STAT_OFFSET       (0x050C)
-#define DMAC_DMAC_PERIPHERAL_ADDR_OFFSET                (0x0514)
-
-/* DMAC control */
-#define PSB_DMAC_VALUE_COUNT(BSWAP,PW,DIR,PERIPH_INCR,COUNT)                                \
-                                                                                                                                                \
-    (((BSWAP)           & DMAC_DMAC_COUNT_BSWAP_LSBMASK)        << DMAC_DMAC_COUNT_BSWAP_SHIFT) | \
-        (((PW)                  & DMAC_DMAC_COUNT_PW_LSBMASK)           << DMAC_DMAC_COUNT_PW_SHIFT)    | \
-        (((DIR)                 & DMAC_DMAC_COUNT_DIR_LSBMASK)          << DMAC_DMAC_COUNT_DIR_SHIFT)   | \
-        (((PERIPH_INCR) & DMAC_DMAC_COUNT_PI_LSBMASK)           << DMAC_DMAC_COUNT_PI_SHIFT)    | \
-        (((COUNT)               & DMAC_DMAC_COUNT_CNT_LSBMASK)          << DMAC_DMAC_COUNT_CNT_SHIFT)
-
-#define PSB_DMAC_VALUE_PERIPH_PARAM(ACC_DEL,INCR,BURST)                                             \
-                                                                                                                                                \
-        (((ACC_DEL)     & DMAC_DMAC_PERIPH_ACC_DEL_LSBMASK)     << DMAC_DMAC_PERIPH_ACC_DEL_SHIFT)      | \
-        (((INCR)        & DMAC_DMAC_PERIPH_INCR_LSBMASK)        << DMAC_DMAC_PERIPH_INCR_SHIFT)         | \
-        (((BURST)       & DMAC_DMAC_PERIPH_BURST_LSBMASK)       << DMAC_DMAC_PERIPH_BURST_SHIFT)
-
-
-/* CMD */
-#define MSVDX_CMDS_END_SLICE_PICTURE	(0x1404)
-
-/*
- * This defines the MSVDX communication buffer
- */
-#define MSVDX_COMMS_SIGNATURE_VALUE	(0xA5A5A5A5)	/*!< Signature value */
-/*!< Host buffer size (in 32-bit words) */
-#define NUM_WORDS_HOST_BUF		(100)
-/*!< MTX buffer size (in 32-bit words) */
-#define NUM_WORDS_MTX_BUF		(100)
-
-/* There is no work currently underway on the hardware */
-#define MSVDX_FW_STATUS_HW_IDLE	0x00000001
-
-#define MSVDX_EXT_FW_ERROR_STATE (0x2884)
-#define MSVDX_COMMS_AREA_ADDR (0x02fe0)
-
-#define MSVDX_COMMS_CORE_WTD			(MSVDX_COMMS_AREA_ADDR - 0x08)
-#define MSVDX_COMMS_ERROR_TRIG			(MSVDX_COMMS_AREA_ADDR - 0x08)
-#define MSVDX_COMMS_FIRMWARE_ID			(MSVDX_COMMS_AREA_ADDR - 0x0C)
-#define MSVDX_COMMS_OFFSET_FLAGS		(MSVDX_COMMS_AREA_ADDR + 0x18)
-#define	MSVDX_COMMS_MSG_COUNTER			(MSVDX_COMMS_AREA_ADDR - 0x04)
-#define MSVDX_COMMS_FW_STATUS			(MSVDX_COMMS_AREA_ADDR - 0x10)
-#define	MSVDX_COMMS_SIGNATURE			(MSVDX_COMMS_AREA_ADDR + 0x00)
-#define	MSVDX_COMMS_TO_HOST_BUF_SIZE		(MSVDX_COMMS_AREA_ADDR + 0x04)
-#define MSVDX_COMMS_TO_HOST_RD_INDEX		(MSVDX_COMMS_AREA_ADDR + 0x08)
-#define MSVDX_COMMS_TO_HOST_WRT_INDEX		(MSVDX_COMMS_AREA_ADDR + 0x0C)
-#define MSVDX_COMMS_TO_MTX_BUF_SIZE		(MSVDX_COMMS_AREA_ADDR + 0x10)
-#define MSVDX_COMMS_TO_MTX_RD_INDEX		(MSVDX_COMMS_AREA_ADDR + 0x14)
-#define MSVDX_COMMS_TO_MTX_CB_RD_INDEX		(MSVDX_COMMS_AREA_ADDR + 0x18)
-#define MSVDX_COMMS_TO_MTX_WRT_INDEX		(MSVDX_COMMS_AREA_ADDR + 0x1C)
-#define MSVDX_COMMS_TO_HOST_BUF			(MSVDX_COMMS_AREA_ADDR + 0x20)
-#define MSVDX_COMMS_TO_MTX_BUF	\
-	(MSVDX_COMMS_TO_HOST_BUF + (NUM_WORDS_HOST_BUF << 2))
-
-#define DSIABLE_FW_WDT			        0x0008
-#define ABORT_ON_ERRORS_IMMEDIATE       0x0010
-#define ABORT_FAULTED_SLICE_IMMEDIATE   0x0020
-#define RETURN_VDEB_DATA_IN_COMPLETION  0x0800
-#define DSIABLE_Auto_CLOCK_GATING	    0x1000
-#define DSIABLE_IDLE_GPIO_SIG			0x2000
-/*
-#define MSVDX_COMMS_AREA_END	\
-  (MSVDX_COMMS_TO_MTX_BUF + (NUM_WORDS_HOST_BUF << 2))
-*/
-#define MSVDX_COMMS_AREA_END 0x03000
-
-#if (MSVDX_COMMS_AREA_END != 0x03000)
-#error
-#endif
-
-#define MSVDX_MTX_REGISTER_READ_WRITE_REQUEST_MTX_DREADY_MASK	(0x80000000)
-#define MSVDX_MTX_REGISTER_READ_WRITE_REQUEST_MTX_DREADY_SHIFT	(31)
-
-#define MSVDX_MTX_REGISTER_READ_WRITE_REQUEST_MTX_RNW_MASK	(0x00010000)
-#define MSVDX_MTX_REGISTER_READ_WRITE_REQUEST_MTX_RNW_SHIFT	(16)
-
-#define MSVDX_MTX_RAM_ACCESS_CONTROL_MTX_MCMID_MASK		(0x0FF00000)
-#define MSVDX_MTX_RAM_ACCESS_CONTROL_MTX_MCMID_SHIFT		(20)
-
-#define MSVDX_MTX_RAM_ACCESS_CONTROL_MTX_MCM_ADDR_MASK	(0x000FFFFC)
-#define MSVDX_MTX_RAM_ACCESS_CONTROL_MTX_MCM_ADDR_SHIFT	(2)
-
-#define MSVDX_MTX_RAM_ACCESS_CONTROL_MTX_MCMAI_MASK	(0x00000002)
-#define MSVDX_MTX_RAM_ACCESS_CONTROL_MTX_MCMAI_SHIFT	(1)
-
-#define MSVDX_MTX_RAM_ACCESS_CONTROL_MTX_MCMR_MASK	(0x00000001)
-#define MSVDX_MTX_RAM_ACCESS_CONTROL_MTX_MCMR_SHIFT	(0)
-
-#define MSVDX_MTX_SOFT_RESET_MTX_RESET_MASK		(0x00000001)
-#define MSVDX_MTX_SOFT_RESET_MTX_RESET_SHIFT		(0)
-
-#define MSVDX_MTX_ENABLE_MTX_ENABLE_MASK		(0x00000001)
-#define MSVDX_MTX_ENABLE_MTX_ENABLE_SHIFT		(0)
-
-#define MSVDX_CONTROL_CR_MSVDX_SOFT_RESET_MASK		(0x00000100)
-#define MSVDX_CONTROL_CR_MSVDX_SOFT_RESET_SHIFT		(8)
-
-#define MSVDX_INTERRUPT_STATUS_CR_MMU_FAULT_IRQ_MASK	(0x00000F00)
-#define MSVDX_INTERRUPT_STATUS_CR_MMU_FAULT_IRQ_SHIFT	(8)
-
-#define MSVDX_INTERRUPT_STATUS_CR_MTX_IRQ_MASK		(0x00004000)
-#define MSVDX_INTERRUPT_STATUS_CR_MTX_IRQ_SHIFT		(14)
-
-#define MSVDX_MMU_CONTROL0_CR_MMU_PAUSE_MASK			(0x00000002)
-#define MSVDX_MMU_CONTROL0_CR_MMU_PAUSE_SHIFT			(1)
-
-#define MSVDX_MTX_RAM_BANK_CR_MTX_RAM_BANK_SIZE_MASK		(0x000F0000)
-#define MSVDX_MTX_RAM_BANK_CR_MTX_RAM_BANK_SIZE_SHIFT		(16)
-
-#define MSVDX_MTX_DEBUG_MTX_DBG_IS_SLAVE_MASK                (0x00000004)
-#define MSVDX_MTX_DEBUG_MTX_DBG_IS_SLAVE_LSBMASK             (0x00000001)
-#define MSVDX_MTX_DEBUG_MTX_DBG_IS_SLAVE_SHIFT               (2)
-
-#define MSVDX_MTX_DEBUG_MTX_DBG_GPIO_IN_MASK         (0x00000003)
-#define MSVDX_MTX_DEBUG_MTX_DBG_GPIO_IN_LSBMASK              (0x00000003)
-#define MSVDX_MTX_DEBUG_MTX_DBG_GPIO_IN_SHIFT                (0)
-
-#define MSVDX_RENDEC_BUFFER_SIZE_RENDEC_BUFFER_SIZE0_MASK	(0x0000FFFF)
-#define MSVDX_RENDEC_BUFFER_SIZE_RENDEC_BUFFER_SIZE0_SHIFT	(0)
-
-#define MSVDX_RENDEC_BUFFER_SIZE_RENDEC_BUFFER_SIZE1_MASK	(0xFFFF0000)
-#define MSVDX_RENDEC_BUFFER_SIZE_RENDEC_BUFFER_SIZE1_SHIFT	(16)
-
-#define MSVDX_RENDEC_CONTROL1_RENDEC_DECODE_START_SIZE_MASK	(0x000000FF)
-#define MSVDX_RENDEC_CONTROL1_RENDEC_DECODE_START_SIZE_SHIFT	(0)
-
-#define MSVDX_RENDEC_CONTROL1_RENDEC_BURST_SIZE_W_MASK		(0x000C0000)
-#define MSVDX_RENDEC_CONTROL1_RENDEC_BURST_SIZE_W_SHIFT		(18)
-
-#define MSVDX_RENDEC_CONTROL1_RENDEC_BURST_SIZE_R_MASK		(0x00030000)
-#define MSVDX_RENDEC_CONTROL1_RENDEC_BURST_SIZE_R_SHIFT		(16)
-
-#define MSVDX_RENDEC_CONTROL1_RENDEC_EXTERNAL_MEMORY_MASK	(0x01000000)
-#define MSVDX_RENDEC_CONTROL1_RENDEC_EXTERNAL_MEMORY_SHIFT	(24)
-
-#define MSVDX_RENDEC_CONTROL0_RENDEC_INITIALISE_MASK		(0x00000001)
-#define MSVDX_RENDEC_CONTROL0_RENDEC_INITIALISE_SHIFT		(0)
-
-#define VEC_SHIFTREG_CONTROL_SR_MASTER_SELECT_MASK         (0x00000300)
-#define VEC_SHIFTREG_CONTROL_SR_MASTER_SELECT_SHIFT                (8)
-
-#define MTX_CORE_CR_MTX_SYSC_CDMAC_BURSTSIZE_MASK               (0x07000000)
-#define MTX_CORE_CR_MTX_SYSC_CDMAC_BURSTSIZE_SHIFT              (24)
-
-#define MTX_CORE_CR_MTX_SYSC_CDMAC_RNW_MASK             (0x00020000)
-#define MTX_CORE_CR_MTX_SYSC_CDMAC_RNW_SHIFT            (17)
-
-#define MTX_CORE_CR_MTX_SYSC_CDMAC_ENABLE_MASK          (0x00010000)
-#define MTX_CORE_CR_MTX_SYSC_CDMAC_ENABLE_SHIFT         (16)
-
-#define MTX_CORE_CR_MTX_SYSC_CDMAC_LENGTH_MASK          (0x0000FFFF)
-#define MTX_CORE_CR_MTX_SYSC_CDMAC_LENGTH_SHIFT         (0)
-
-#define MSVDX_CORE_CR_MSVDX_CONTROL_DMAC_CH0_SELECT_MASK                (0x00001000)
-#define MSVDX_CORE_CR_MSVDX_CONTROL_DMAC_CH0_SELECT_SHIFT               (12)
-
-#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_INVALDC_MASK          (0x00000008)
-#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_INVALDC_SHIFT         (3)
-
-#define DMAC_DMAC_COUNT_BSWAP_LSBMASK           (0x00000001)
-#define DMAC_DMAC_COUNT_BSWAP_SHIFT             (30)
-
-#define DMAC_DMAC_COUNT_PW_LSBMASK              (0x00000003)
-#define DMAC_DMAC_COUNT_PW_SHIFT                (27)
-
-#define DMAC_DMAC_COUNT_DIR_LSBMASK             (0x00000001)
-#define DMAC_DMAC_COUNT_DIR_SHIFT               (26)
-
-#define DMAC_DMAC_COUNT_PI_LSBMASK              (0x00000003)
-#define DMAC_DMAC_COUNT_PI_SHIFT                (24)
-
-#define DMAC_DMAC_COUNT_CNT_LSBMASK             (0x0000FFFF)
-#define DMAC_DMAC_COUNT_CNT_SHIFT               (0)
-
-#define DMAC_DMAC_PERIPH_ACC_DEL_LSBMASK                (0x00000007)
-#define DMAC_DMAC_PERIPH_ACC_DEL_SHIFT          (29)
-
-#define DMAC_DMAC_PERIPH_INCR_LSBMASK           (0x00000001)
-#define DMAC_DMAC_PERIPH_INCR_SHIFT             (27)
-
-#define DMAC_DMAC_PERIPH_BURST_LSBMASK          (0x00000007)
-#define DMAC_DMAC_PERIPH_BURST_SHIFT            (24)
-
-#define DMAC_DMAC_PERIPHERAL_ADDR_ADDR_MASK             (0x007FFFFF)
-#define DMAC_DMAC_PERIPHERAL_ADDR_ADDR_LSBMASK          (0x007FFFFF)
-#define DMAC_DMAC_PERIPHERAL_ADDR_ADDR_SHIFT            (0)
-
-#define DMAC_DMAC_COUNT_EN_MASK         (0x00010000)
-#define DMAC_DMAC_COUNT_EN_SHIFT                (16)
-
-#define DMAC_DMAC_IRQ_STAT_TRANSFER_FIN_MASK            (0x00020000)
-
-/*watch dog for FE and BE*/
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_OFFSET		(0x0064)
-
-// MSVDX_CORE, CR_FE_MSVDX_WDT_CONTROL, FE_WDT_CNT_CTRL   
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CNT_CTRL_MASK		(0x00060000)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CNT_CTRL_LSBMASK		(0x00000003)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CNT_CTRL_SHIFT		(17)
-
-// MSVDX_CORE, CR_FE_MSVDX_WDT_CONTROL, FE_WDT_ENABLE   
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ENABLE_MASK		(0x00010000)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ENABLE_LSBMASK		(0x00000001)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ENABLE_SHIFT		(16)
-
-// MSVDX_CORE, CR_FE_MSVDX_WDT_CONTROL, FE_WDT_ACTION1   
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ACTION1_MASK		(0x00003000)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ACTION1_LSBMASK		(0x00000003)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ACTION1_SHIFT		(12)
-
-// MSVDX_CORE, CR_FE_MSVDX_WDT_CONTROL, FE_WDT_ACTION0   
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ACTION0_MASK		(0x00000100)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ACTION0_LSBMASK		(0x00000001)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ACTION0_SHIFT		(8)
-
-// MSVDX_CORE, CR_FE_MSVDX_WDT_CONTROL, FE_WDT_CLEAR_SELECT   
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CLEAR_SELECT_MASK		(0x00000030)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CLEAR_SELECT_LSBMASK		(0x00000003)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CLEAR_SELECT_SHIFT		(4)
-
-// MSVDX_CORE, CR_FE_MSVDX_WDT_CONTROL, FE_WDT_CLKDIV_SELECT   
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CLKDIV_SELECT_MASK		(0x00000007)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CLKDIV_SELECT_LSBMASK		(0x00000007)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CLKDIV_SELECT_SHIFT		(0)
-
-#define MSVDX_CORE_CR_FE_MSVDX_WDTIMER_OFFSET		(0x0068)
-
-// MSVDX_CORE, CR_FE_MSVDX_WDTIMER, FE_WDT_COUNTER   
-#define MSVDX_CORE_CR_FE_MSVDX_WDTIMER_FE_WDT_COUNTER_MASK		(0x0000FFFF)
-#define MSVDX_CORE_CR_FE_MSVDX_WDTIMER_FE_WDT_COUNTER_LSBMASK		(0x0000FFFF)
-#define MSVDX_CORE_CR_FE_MSVDX_WDTIMER_FE_WDT_COUNTER_SHIFT		(0)
-
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH_OFFSET		(0x006C)
-
-// MSVDX_CORE, CR_FE_MSVDX_WDT_COMPAREMATCH, FE_WDT_CM1   
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH_FE_WDT_CM1_MASK		(0xFFFF0000)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH_FE_WDT_CM1_LSBMASK		(0x0000FFFF)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH_FE_WDT_CM1_SHIFT		(16)
-
-// MSVDX_CORE, CR_FE_MSVDX_WDT_COMPAREMATCH, FE_WDT_CM0   
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH_FE_WDT_CM0_MASK		(0x0000FFFF)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH_FE_WDT_CM0_LSBMASK		(0x0000FFFF)
-#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH_FE_WDT_CM0_SHIFT		(0)
-
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_OFFSET		(0x0070)
-
-// MSVDX_CORE, CR_BE_MSVDX_WDT_CONTROL, BE_WDT_CNT_CTRL   
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CNT_CTRL_MASK		(0x001E0000)
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CNT_CTRL_LSBMASK		(0x0000000F)
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CNT_CTRL_SHIFT		(17)
-
-// MSVDX_CORE, CR_BE_MSVDX_WDT_CONTROL, BE_WDT_ENABLE   
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ENABLE_MASK		(0x00010000)
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ENABLE_LSBMASK		(0x00000001)
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ENABLE_SHIFT		(16)
-
-// MSVDX_CORE, CR_BE_MSVDX_WDT_CONTROL, BE_WDT_ACTION0   
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ACTION0_MASK		(0x00000100)
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ACTION0_LSBMASK		(0x00000001)
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ACTION0_SHIFT		(8)
-
-// MSVDX_CORE, CR_BE_MSVDX_WDT_CONTROL, BE_WDT_CLEAR_SELECT   
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CLEAR_SELECT_MASK		(0x000000F0)
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CLEAR_SELECT_LSBMASK		(0x0000000F)
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CLEAR_SELECT_SHIFT		(4)
-
-// MSVDX_CORE, CR_BE_MSVDX_WDT_CONTROL, BE_WDT_CLKDIV_SELECT   
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CLKDIV_SELECT_MASK		(0x00000007)
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CLKDIV_SELECT_LSBMASK		(0x00000007)
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CLKDIV_SELECT_SHIFT		(0)
-
-#define MSVDX_CORE_CR_BE_MSVDX_WDTIMER_OFFSET		(0x0074)
-
-// MSVDX_CORE, CR_BE_MSVDX_WDTIMER, BE_WDT_COUNTER   
-#define MSVDX_CORE_CR_BE_MSVDX_WDTIMER_BE_WDT_COUNTER_MASK		(0x0000FFFF)
-#define MSVDX_CORE_CR_BE_MSVDX_WDTIMER_BE_WDT_COUNTER_LSBMASK		(0x0000FFFF)
-#define MSVDX_CORE_CR_BE_MSVDX_WDTIMER_BE_WDT_COUNTER_SHIFT		(0)
-
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH_OFFSET		(0x0078)
-
-// MSVDX_CORE, CR_BE_MSVDX_WDT_COMPAREMATCH, BE_WDT_CM0   
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH_BE_WDT_CM0_MASK		(0x0000FFFF)
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH_BE_WDT_CM0_LSBMASK		(0x0000FFFF)
-#define MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH_BE_WDT_CM0_SHIFT		(0)
-/*watch dog end*/
-
-/* Start of parser specific Host->MTX messages. */
-#define	FWRK_MSGID_START_PSR_HOSTMTX_MSG	(0x80)
-
-/* Start of parser specific MTX->Host messages. */
-#define	FWRK_MSGID_START_PSR_MTXHOST_MSG	(0xC0)
-
-/* Host defined msg, just for host use, MTX not recgnize */
-#define	FWRK_MSGID_HOST_EMULATED		(0x40)
-
-#define FWRK_MSGID_PADDING			(0)
-
-#define FWRK_GENMSG_SIZE_TYPE		uint8_t
-#define FWRK_GENMSG_SIZE_MASK		(0xFF)
-#define FWRK_GENMSG_SIZE_SHIFT		(0)
-#define FWRK_GENMSG_SIZE_OFFSET		(0x0000)
-#define FWRK_GENMSG_ID_TYPE		uint8_t
-#define FWRK_GENMSG_ID_MASK		(0xFF)
-#define FWRK_GENMSG_ID_SHIFT		(0)
-#define FWRK_GENMSG_ID_OFFSET		(0x0001)
-#define FWRK_PADMSG_SIZE		(2)
-
-/* Deblock CMD_ID */
-#define MSVDX_DEBLOCK_REG_SET   0x10000000
-#define MSVDX_DEBLOCK_REG_GET   0x20000000
-#define MSVDX_DEBLOCK_REG_POLLn 0x30000000
-#define MSVDX_DEBLOCK_REG_POLLx 0x40000000
-
-/* vec local MEM save/restore */
-#define VEC_LOCAL_MEM_BYTE_SIZE (4 * 1024)
-#define VEC_LOCAL_MEM_OFFSET 0x2000
-
-/* This type defines the framework specified message ids */
-enum {
-	/* ! Sent by the DXVA driver on the host to the mtx firmware.
-	 */
-	VA_MSGID_INIT = FWRK_MSGID_START_PSR_HOSTMTX_MSG,
-	VA_MSGID_RENDER,
-	VA_MSGID_DEBLOCK,
-	VA_MSGID_OOLD,
-
-	/* Test Messages */
-	VA_MSGID_TEST1,
-	VA_MSGID_HOST_BE_OPP,
-
-	/*! Sent by the mtx firmware to itself.
-	 */
-	VA_MSGID_RENDER_MC_INTERRUPT,
-
-	VA_MSGID_DEBLOCK_MFLD = FWRK_MSGID_HOST_EMULATED,
-	VA_MSGID_OOLD_MFLD,
-	/*! Sent by the DXVA firmware on the MTX to the host.
-	 */
-	VA_MSGID_CMD_COMPLETED = FWRK_MSGID_START_PSR_MTXHOST_MSG,
-	VA_MSGID_CMD_COMPLETED_BATCH,
-	VA_MSGID_DEBLOCK_REQUIRED,
-	VA_MSGID_TEST_RESPONCE,
-	VA_MSGID_ACK,
-
-	VA_MSGID_CMD_FAILED,
-	VA_MSGID_CMD_CONTIGUITY_WARNING,
-	VA_MSGID_CMD_HW_PANIC,
-};
-
-/* Deblock parameters */
-struct DEBLOCKPARAMS {
-	uint32_t handle;	/* struct ttm_buffer_object * of REGIO */
-	uint32_t buffer_size;
-	uint32_t ctxid;
-
-	uint32_t *pPicparams;
-	struct ttm_bo_kmap_obj *regio_kmap;	/* virtual of regio */
-	uint32_t pad[3];
-};
-
-/* HOST_BE_OPP parameters */
-struct HOST_BE_OPP_PARAMS {
-	uint32_t handle;	/* struct ttm_buffer_object * of REGIO */
-	uint32_t buffer_stride;
-	uint32_t buffer_size;
-	uint32_t picture_width_mb;
-	uint32_t size_mb;
-};
-struct psb_msvdx_deblock_queue {
-
-	struct list_head head;
-	struct DEBLOCKPARAMS dbParams;
-};
-
-typedef struct {
-        union {
-                struct {
-                        uint32_t msg_size       : 8;
-                        uint32_t msg_type       : 8;
-                        uint32_t msg_fence      : 16;
-                } bits;
-                uint32_t value;
-        } header;
-        uint32_t flags;
-        uint32_t operating_mode;
-        union {
-                struct {
-                        uint32_t context        : 8;
-                        uint32_t mmu_ptd        : 24;
-                } bits;
-                uint32_t value;
-        } mmu_context;
-        union {
-                struct {
-                        uint32_t frame_height_mb        : 16;
-                        uint32_t pic_width_mb   : 16;
-                } bits;
-                uint32_t value;
-        } pic_size;
-        uint32_t address_a0;
-        uint32_t address_a1;
-        uint32_t mb_param_address;
-        uint32_t address_b0;
-        uint32_t address_b1;
-        uint32_t rotation_flags;
-} FW_VA_DEBLOCK_MSG;
-
-typedef struct drm_psb_msvdx_frame_info {
-	uint32_t handle;
-	uint32_t surface_id;
-	uint32_t fence;
-	uint32_t buffer_stride;
-	uint32_t buffer_size;
-	uint32_t picture_width_mb;
-	uint32_t fw_status;
-	uint32_t size_mb;
-	drm_psb_msvdx_decode_status_t decode_status;
-} drm_psb_msvdx_frame_info_t;
-
-#define MAX_DECODE_BUFFERS 24
-/* MSVDX private structure */
-struct msvdx_private {
-	int msvdx_needs_reset;
-
-	unsigned int pmstate;
-
-	struct sysfs_dirent *sysfs_pmstate;
-
-	uint32_t msvdx_current_sequence;
-	uint32_t msvdx_last_sequence;
-
-	/*
-	 *MSVDX Rendec Memory
-	 */
-	struct ttm_buffer_object *ccb0;
-	uint32_t base_addr0;
-	struct ttm_buffer_object *ccb1;
-	uint32_t base_addr1;
-
-	struct ttm_buffer_object *fw;
-	uint32_t is_load;
-	uint32_t mtx_mem_size;
-
-	/*
-	 *msvdx command queue
-	 */
-	spinlock_t msvdx_lock;
-	struct mutex msvdx_mutex;
-	struct list_head msvdx_queue;
-	int msvdx_busy;
-	int msvdx_fw_loaded;
-	void *msvdx_fw;
-	int msvdx_fw_size;
-
-	struct list_head deblock_queue; /* deblock parameter list */
-
-	uint32_t msvdx_hw_busy;
-
-	uint32_t *vec_local_mem_data;
-	uint32_t vec_local_mem_size;
-	uint32_t vec_local_mem_saved;
-	uint32_t psb_dash_access_ctrl;
-	uint32_t fw_status;
-
-	drm_psb_msvdx_frame_info_t frame_info[MAX_DECODE_BUFFERS];
-	drm_psb_msvdx_decode_status_t decode_status;
-	uint32_t deblock_enabled;
-	uint32_t host_be_opp_enabled;
-
-	uint32_t ec_fence;
-	uint32_t ref_pic_fence;
-	/*work for error concealment*/
-	struct work_struct ec_work;
-	struct ttm_object_file *tfile;
-};
-
-#define REGISTER(__group__, __reg__ )  (__group__##_##__reg__##_OFFSET)
-/* MSVDX Firmware interface */
-#define FW_VA_INIT_SIZE	        	(8)
-#define FW_VA_DEBUG_TEST2_SIZE		(4)
-
-/*MESSAGE SENT FROM HOST TO FW*/
-/*FW_VA_RENDER MESSAGE*/
-/* FW_VA_RENDER     BUFFER_SIZE */
-#define FW_VA_RENDER_BUFFER_SIZE_TYPE           uint16_t
-#define FW_VA_RENDER_BUFFER_SIZE_MASK           (0x0FFF)
-#define FW_VA_RENDER_BUFFER_SIZE_OFFSET         (0x0002)
-#define FW_VA_RENDER_BUFFER_SIZE_SHIFT          (0)
-
-/* FW_VA_RENDER     MMUPTD */
-#define FW_VA_RENDER_MMUPTD_TYPE		uint32_t
-#define FW_VA_RENDER_MMUPTD_MASK		(0xFFFFFFFF)
-#define FW_VA_RENDER_MMUPTD_OFFSET		(0x0004)
-#define FW_VA_RENDER_MMUPTD_SHIFT		(0)
-
-/* FW_VA_RENDER     LLDMA_ADDRESS */
-#define FW_VA_RENDER_LLDMA_ADDRESS_START_BIT		0
-#define FW_VA_RENDER_LLDMA_ADDRESS_END_BIT		31
-#define FW_VA_RENDER_LLDMA_ADDRESS_ALIGNMENT		(4)
-#define FW_VA_RENDER_LLDMA_ADDRESS_TYPE		uint32_t
-#define FW_VA_RENDER_LLDMA_ADDRESS_MASK		(0xFFFFFFFF)
-#define FW_VA_RENDER_LLDMA_ADDRESS_LSBMASK		(0xFFFFFFFF)
-#define FW_VA_RENDER_LLDMA_ADDRESS_OFFSET		(0x0008)
-#define FW_VA_RENDER_LLDMA_ADDRESS_SHIFT		(0)
-#define FW_VA_RENDER_LLDMA_ADDRESS_SIGNED_FIELD	(0)
-
-/* FW_VA_RENDER     CONTEXT */
-#define FW_VA_RENDER_CONTEXT_START_BIT		0
-#define FW_VA_RENDER_CONTEXT_END_BIT		31
-#define FW_VA_RENDER_CONTEXT_ALIGNMENT		(4)
-#define FW_VA_RENDER_CONTEXT_TYPE		uint32_t
-#define FW_VA_RENDER_CONTEXT_MASK		(0xFFFFFFFF)
-#define FW_VA_RENDER_CONTEXT_LSBMASK		(0xFFFFFFFF)
-#define FW_VA_RENDER_CONTEXT_OFFSET		(0x000C)
-#define FW_VA_RENDER_CONTEXT_SHIFT		(0)
-#define FW_VA_RENDER_CONTEXT_SIGNED_FIELD	(0)
-
-
-/* FW_VA_RENDER     FENCE_VALUE_NO_EC */
-#define FW_VA_RENDER_FENCE_VALUE_TYPE		uint32_t
-#define FW_VA_RENDER_FENCE_VALUE_MASK		(0xFFFFFFFF)
-#define FW_VA_RENDER_FENCE_VALUE_OFFSET		(0x0010)
-#define FW_VA_RENDER_FENCE_VALUE_SHIFT		(0)
-
-/* FW_VA_RENDER     OPERATING_MODE */
-#define FW_VA_RENDER_OPERATING_MODE_ALIGNMENT		(4)
-#define FW_VA_RENDER_OPERATING_MODE_TYPE		uint32_t
-#define FW_VA_RENDER_OPERATING_MODE_MASK		(0xFFFFFFFF)
-#define FW_VA_RENDER_OPERATING_MODE_LSBMASK		(0xFFFFFFFF)
-#define FW_VA_RENDER_OPERATING_MODE_OFFSET		(0x0014)
-#define FW_VA_RENDER_OPERATING_MODE_SHIFT		(0)
-#define FW_VA_RENDER_OPERATING_MODE_SIGNED_FIELD	(0)
-   
-/* FW_VA_RENDER     FIRST_MB_IN_SLICE */
-#define FW_VA_RENDER_FIRST_MB_IN_SLICE_START_BIT		0
-#define FW_VA_RENDER_FIRST_MB_IN_SLICE_END_BIT		15
-#define FW_VA_RENDER_FIRST_MB_IN_SLICE_ALIGNMENT		(2)
-#define FW_VA_RENDER_FIRST_MB_IN_SLICE_TYPE		uint16_t
-#define FW_VA_RENDER_FIRST_MB_IN_SLICE_MASK		(0xFFFF)
-#define FW_VA_RENDER_FIRST_MB_IN_SLICE_LSBMASK		(0xFFFF)
-#define FW_VA_RENDER_FIRST_MB_IN_SLICE_OFFSET		(0x0018)
-#define FW_VA_RENDER_FIRST_MB_IN_SLICE_SHIFT		(0)
-#define FW_VA_RENDER_FIRST_MB_IN_SLICE_SIGNED_FIELD	(0)
-   
-/* FW_VA_RENDER     LAST_MB_IN_FRAME */
-#define FW_VA_RENDER_LAST_MB_IN_FRAME_START_BIT		16
-#define FW_VA_RENDER_LAST_MB_IN_FRAME_END_BIT		31
-#define FW_VA_RENDER_LAST_MB_IN_FRAME_ALIGNMENT		(2)
-#define FW_VA_RENDER_LAST_MB_IN_FRAME_TYPE		uint16_t
-#define FW_VA_RENDER_LAST_MB_IN_FRAME_MASK		(0xFFFF)
-#define FW_VA_RENDER_LAST_MB_IN_FRAME_LSBMASK		(0xFFFF)
-#define FW_VA_RENDER_LAST_MB_IN_FRAME_OFFSET		(0x001A)
-#define FW_VA_RENDER_LAST_MB_IN_FRAME_SHIFT		(0)
-#define FW_VA_RENDER_LAST_MB_IN_FRAME_SIGNED_FIELD	(0)
-  
-/* FW_VA_RENDER     FLAGS */
-#define FW_VA_RENDER_FLAGS_START_BIT		0
-#define FW_VA_RENDER_FLAGS_END_BIT		31
-#define FW_VA_RENDER_FLAGS_ALIGNMENT		(4)
-#define FW_VA_RENDER_FLAGS_TYPE		uint32_t
-#define FW_VA_RENDER_FLAGS_MASK		(0xFFFFFFFF)
-#define FW_VA_RENDER_FLAGS_LSBMASK		(0xFFFFFFFF)
-#define FW_VA_RENDER_FLAGS_OFFSET		(0x001C)
-#define FW_VA_RENDER_FLAGS_SHIFT		(0)
-#define FW_VA_RENDER_FLAGS_SIGNED_FIELD	(0)
-/* FW_VA_DEBUG_TEST2     MSG_SIZE */
-#define FW_VA_DEBUG_TEST2_MSG_SIZE_TYPE		uint8_t
-#define FW_VA_DEBUG_TEST2_MSG_SIZE_MASK		(0xFF)
-#define FW_VA_DEBUG_TEST2_MSG_SIZE_OFFSET	(0x0000)
-#define FW_VA_DEBUG_TEST2_MSG_SIZE_SHIFT	(0)
-
-/* FW_VA_DEBUG_TEST2     ID */
-#define FW_VA_DEBUG_TEST2_ID_TYPE		uint8_t
-#define FW_VA_DEBUG_TEST2_ID_MASK		(0xFF)
-#define FW_VA_DEBUG_TEST2_ID_OFFSET		(0x0001)
-#define FW_VA_DEBUG_TEST2_ID_SHIFT		(0)
-
-/* FW_VA_CMD_FAILED     FENCE_VALUE */
-#define FW_VA_CMD_FAILED_FENCE_VALUE_TYPE	uint32_t
-#define FW_VA_CMD_FAILED_FENCE_VALUE_MASK	(0xFFFFFFFF)
-#define FW_VA_CMD_FAILED_FENCE_VALUE_OFFSET	(0x0004)
-#define FW_VA_CMD_FAILED_FENCE_VALUE_SHIFT	(0)
-
-/* FW_VA_CMD_FAILED     IRQSTATUS */
-#define FW_VA_CMD_FAILED_IRQSTATUS_TYPE		uint32_t
-#define FW_VA_CMD_FAILED_IRQSTATUS_MASK		(0xFFFFFFFF)
-#define FW_VA_CMD_FAILED_IRQSTATUS_OFFSET	(0x0008)
-#define FW_VA_CMD_FAILED_IRQSTATUS_SHIFT	(0)
-/*FW_DXVA_DEBLOCK MESSAGE*/
-/* FW_DXVA_DEBLOCK     MSG_SIZE */
-#define FW_DXVA_DEBLOCK_MSG_SIZE_ALIGNMENT              (1)
-#define FW_DXVA_DEBLOCK_MSG_SIZE_TYPE           uint8_t
-#define FW_DXVA_DEBLOCK_MSG_SIZE_MASK           (0xFF)
-#define FW_DXVA_DEBLOCK_MSG_SIZE_LSBMASK                (0xFF)
-#define FW_DXVA_DEBLOCK_MSG_SIZE_OFFSET         (0x0000)
-#define FW_DXVA_DEBLOCK_MSG_SIZE_SHIFT          (0)
-
-/* FW_DXVA_DEBLOCK     ID */
-#define FW_DXVA_DEBLOCK_ID_ALIGNMENT            (1)
-#define FW_DXVA_DEBLOCK_ID_TYPE         uint8_t
-#define FW_DXVA_DEBLOCK_ID_MASK         (0xFF)
-#define FW_DXVA_DEBLOCK_ID_LSBMASK              (0xFF)
-#define FW_DXVA_DEBLOCK_ID_OFFSET               (0x0001)
-#define FW_DXVA_DEBLOCK_ID_SHIFT                (0)
-
-// FW_DXVA_DEBLOCK     FLAGS
-#define FW_DXVA_DEBLOCK_FLAGS_START_BIT		16
-#define FW_DXVA_DEBLOCK_FLAGS_END_BIT		31
-#define FW_DXVA_DEBLOCK_FLAGS_ALIGNMENT		(2)
-#define FW_DXVA_DEBLOCK_FLAGS_TYPE		uint16_t
-#define FW_DXVA_DEBLOCK_FLAGS_MASK		(0xFFFF)
-#define FW_DXVA_DEBLOCK_FLAGS_LSBMASK		(0xFFFF)
-#define FW_DXVA_DEBLOCK_FLAGS_OFFSET		(0x0002)
-#define FW_DXVA_DEBLOCK_FLAGS_SHIFT		(0)
-#define FW_DXVA_DEBLOCK_FLAGS_SIGNED_FIELD	(0)
-
-/* FW_DXVA_DEBLOCK     CONTEXT */
-#define FW_DXVA_DEBLOCK_CONTEXT_START_BIT		0
-#define FW_DXVA_DEBLOCK_CONTEXT_END_BIT		11
-#define FW_DXVA_DEBLOCK_CONTEXT_ALIGNMENT		(4)
-#define FW_DXVA_DEBLOCK_CONTEXT_TYPE		uint16_t
-#define FW_DXVA_DEBLOCK_CONTEXT_MASK		(0xFFF)
-#define FW_DXVA_DEBLOCK_CONTEXT_LSBMASK		(0xFFF)
-#define FW_DXVA_DEBLOCK_CONTEXT_OFFSET		(0x0004)
-#define FW_DXVA_DEBLOCK_CONTEXT_SHIFT		(0)
-#define FW_DXVA_DEBLOCK_CONTEXT_SIGNED_FIELD	(0)
-   
-   
-/* FW_DXVA_DEBLOCK     CONTEXT_NO_EC */
-#define FW_DXVA_DEBLOCK_CONTEXT_NO_EC_START_BIT		0
-#define FW_DXVA_DEBLOCK_CONTEXT_NO_EC_END_BIT		31
-#define FW_DXVA_DEBLOCK_CONTEXT_NO_EC_ALIGNMENT		(4)
-#define FW_DXVA_DEBLOCK_CONTEXT_NO_EC_TYPE		uint32_t
-#define FW_DXVA_DEBLOCK_CONTEXT_NO_EC_MASK		(0xFFFFFFFF)
-#define FW_DXVA_DEBLOCK_CONTEXT_NO_EC_LSBMASK		(0xFFFFFFFF)
-#define FW_DXVA_DEBLOCK_CONTEXT_NO_EC_OFFSET		(0x0004)
-#define FW_DXVA_DEBLOCK_CONTEXT_SHIFT		(0)
-#define FW_DXVA_DEBLOCK_CONTEXT_SIGNED_FIELD	(0)
-   
-/* FW_DXVA_DEBLOCK     FENCE_VALUE_NO_EC */
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_NO_EC_START_BIT		0
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_NO_EC_END_BIT		31
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_NO_EC_ALIGNMENT		(4)
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_NO_EC_TYPE		uint32_t
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_NO_EC_MASK		(0xFFFFFFFF)
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_NO_EC_LSBMASK		(0xFFFFFFFF)
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_NO_EC_OFFSET		(0x0008)
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_NO_EC_SHIFT		(0)
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_NO_EC_SIGNED_FIELD	(0)
-
-
-/* FW_DXVA_DEBLOCK     MMUPTD */
-#define FW_DXVA_DEBLOCK_MMUPTD_START_BIT		0
-#define FW_DXVA_DEBLOCK_MMUPTD_END_BIT		31
-#define FW_DXVA_DEBLOCK_MMUPTD_ALIGNMENT		(4)
-#define FW_DXVA_DEBLOCK_MMUPTD_TYPE		uint32_t
-#define FW_DXVA_DEBLOCK_MMUPTD_MASK		(0xFFFFFFFF)
-#define FW_DXVA_DEBLOCK_MMUPTD_LSBMASK		(0xFFFFFFFF)
-#define FW_DXVA_DEBLOCK_MMUPTD_OFFSET		(0x000C)
-#define FW_DXVA_DEBLOCK_MMUPTD_SHIFT		(0)
-#define FW_DXVA_DEBLOCK_MMUPTD_SIGNED_FIELD	(0)
-
-
-/* FW_VA_HOST_BE_OPP     MMUPTD */
-#define FW_VA_HOST_BE_OPP_MMUPTD_ALIGNMENT                (4)
-#define FW_VA_HOST_BE_OPP_MMUPTD_TYPE             uint32_t
-#define FW_VA_HOST_BE_OPP_MMUPTD_MASK             (0xFFFFFFFF)
-#define FW_VA_HOST_BE_OPP_MMUPTD_LSBMASK          (0xFFFFFFFF)
-#define FW_VA_HOST_BE_OPP_MMUPTD_OFFSET           (0x000C)
-#define FW_VA_HOST_BE_OPP_MMUPTD_SHIFT            (0)
-
-
-/*MESSAGE SENT FROM FW TO HOST*/
-
-/* FW_VA_CMD_COMPLETED MESSAGE*/
-/* FW_VA_CMD_COMPLETED     LASTMB */
-#define FW_VA_CMD_COMPLETED_LASTMB_ALIGNMENT		(2)
-#define FW_VA_CMD_COMPLETED_LASTMB_TYPE		uint16_t
-#define FW_VA_CMD_COMPLETED_LASTMB_MASK		(0xFFFF)
-#define FW_VA_CMD_COMPLETED_LASTMB_LSBMASK		(0xFFFF)
-#define FW_VA_CMD_COMPLETED_LASTMB_OFFSET		(0x0002)
-#define FW_VA_CMD_COMPLETED_LASTMB_SHIFT		(0)
-#define FW_VA_CMD_COMPLETED_LASTMB_SIGNED_FIELD	(0)
-
-/* FW_VA_CMD_COMPLETED     NO_TICKSNO_EC */
-#define FW_VA_CMD_COMPLETED_NO_TICKS_NO_EC_TYPE	uint16_t
-#define FW_VA_CMD_COMPLETED_NO_TICKS_NO_EC_MASK	(0xFFFF)
-#define FW_VA_CMD_COMPLETED_NO_TICKS_NO_EC_OFFSET	(0x0002)
-#define FW_VA_CMD_COMPLETED_NO_TICKS_NO_EC_SHIFT	(0)
-/* FW_VA_CMD_COMPLETED     FENCE_VALUE */
-#define FW_VA_CMD_COMPLETED_FENCE_VALUE_TYPE	uint32_t
-#define FW_VA_CMD_COMPLETED_FENCE_VALUE_MASK	(0xFFFFFFFF)
-#define FW_VA_CMD_COMPLETED_FENCE_VALUE_OFFSET	(0x0004)
-#define FW_VA_CMD_COMPLETED_FENCE_VALUE_SHIFT	(0)
-
-/* FW_VA_CMD_COMPLETED     FENCE_VALUE_NO_EC */
-#define FW_VA_CMD_COMPLETED_FENCE_VALUE_NO_EC_TYPE	uint32_t
-#define FW_VA_CMD_COMPLETED_FENCE_VALUE_NO_EC_MASK	(0xFFFFFFFF)
-#define FW_VA_CMD_COMPLETED_FENCE_VALUE_NO_EC_OFFSET	(0x0004)
-#define FW_VA_CMD_COMPLETED_FENCE_VALUE_NO_EC_SHIFT	(0)
-
-/* FW_VA_CMD_COMPLETED     FLAGS */
-#define FW_VA_CMD_COMPLETED_FLAGS_ALIGNMENT		(4)
-#define FW_VA_CMD_COMPLETED_FLAGS_TYPE		uint32_t
-#define FW_VA_CMD_COMPLETED_FLAGS_MASK		(0xFFFFFFFF)
-#define FW_VA_CMD_COMPLETED_FLAGS_LSBMASK		(0xFFFFFFFF)
-#define FW_VA_CMD_COMPLETED_FLAGS_OFFSET		(0x0008)
-#define FW_VA_CMD_COMPLETED_FLAGS_SHIFT		(0)
-
-/* FW_VA_CMD_COMPLETED     NO_TICKS */
-#define FW_VA_CMD_COMPLETED_NO_TICKS_TYPE	uint16_t
-#define FW_VA_CMD_COMPLETED_NO_TICKS_MASK	(0xFFFF)
-#define FW_VA_CMD_COMPLETED_NO_TICKS_OFFSET	(0x0002)
-#define FW_VA_CMD_COMPLETED_NO_TICKS_SHIFT	(0)
-
-
-/* FW_VA_DEBLOCK_REQUIRED     CONTEXT */
-#define FW_VA_DEBLOCK_REQUIRED_CONTEXT_TYPE	uint16_t
-#define FW_VA_DEBLOCK_REQUIRED_CONTEXT_MASK	(0xFFF)
-#define FW_VA_DEBLOCK_REQUIRED_CONTEXT_OFFSET	(0x0004)
-#define FW_VA_DEBLOCK_REQUIRED_CONTEXT_SHIFT	(0)
-
-/* FW_VA_INIT     GLOBAL_PTD */
-#define FW_VA_INIT_GLOBAL_PTD_TYPE		uint32_t
-#define FW_VA_INIT_GLOBAL_PTD_MASK		(0xFFFFFFFF)
-#define FW_VA_INIT_GLOBAL_PTD_OFFSET		(0x0004)
-#define FW_VA_INIT_GLOBAL_PTD_SHIFT		(0)
-
-/* FW_VA_RENDER     FENCE_VALUE */
-#define FW_VA_RENDER_FENCE_VALUE_TYPE		uint32_t
-#define FW_VA_RENDER_FENCE_VALUE_MASK		(0xFFFFFFFF)
-#define FW_VA_RENDER_FENCE_VALUE_OFFSET		(0x0010)
-#define FW_VA_RENDER_FENCE_VALUE_SHIFT		(0)
-
-/* FW_DXVA_OOLD     FENCE_VALUE */
-#define FW_DXVA_OOLD_FENCE_VALUE_ALIGNMENT              (4)
-#define FW_DXVA_OOLD_FENCE_VALUE_TYPE           uint32_t
-#define FW_DXVA_OOLD_FENCE_VALUE_MASK           (0xFFFFFFFF)
-#define FW_DXVA_OOLD_FENCE_VALUE_LSBMASK                (0xFFFFFFFF)
-#define FW_DXVA_OOLD_FENCE_VALUE_OFFSET         (0x0008)
-#define FW_DXVA_OOLD_FENCE_VALUE_SHIFT          (0)
-
-
-/* FW_VA_RENDER     MMUPTD */
-#define FW_VA_RENDER_MMUPTD_TYPE		uint32_t
-#define FW_VA_RENDER_MMUPTD_MASK		(0xFFFFFFFF)
-#define FW_VA_RENDER_MMUPTD_OFFSET		(0x0004)
-#define FW_VA_RENDER_MMUPTD_SHIFT		(0)
-
-/* FW_VA_RENDER     BUFFER_ADDRESS */
-#define FW_VA_RENDER_BUFFER_ADDRESS_TYPE	uint32_t
-#define FW_VA_RENDER_BUFFER_ADDRESS_MASK	(0xFFFFFFFF)
-#define FW_VA_RENDER_BUFFER_ADDRESS_OFFSET	(0x0008)
-#define FW_VA_RENDER_BUFFER_ADDRESS_SHIFT	(0)
-
-/* FW_VA_RENDER     BUFFER_SIZE */
-#define FW_VA_RENDER_BUFFER_SIZE_TYPE           uint16_t
-#define FW_VA_RENDER_BUFFER_SIZE_MASK           (0x0FFF)
-#define FW_VA_RENDER_BUFFER_SIZE_OFFSET         (0x0002)
-#define FW_VA_RENDER_BUFFER_SIZE_SHIFT          (0)
-
-/* FW_VA_RENDER	    FLAGS */
-#define FW_VA_RENDER_FLAGS_TYPE                 uint32_t
-#define FW_VA_RENDER_FLAGS_MASK                 (0xFFFFFFFF)
-#define FW_VA_RENDER_FLAGS_OFFSET               (0x001C)
-#define FW_VA_RENDER_FLAGS_SHIFT                (0)
-
-/* FW_DEVA_DECODE     MMUPTD */
-#define FW_VA_DECODE_MMUPTD_TYPE              uint32_t
-#define FW_VA_DECODE_MMUPTD_MASK              (0xFFFFFF00)
-#define FW_VA_DECODE_MMUPTD_OFFSET            (0x000C)
-#define FW_VA_DECODE_MMUPTD_SHIFT             (0)
-
-/* FW_DEVA_DECODE     MSG_ID */
-#define FW_VA_DECODE_MSG_ID_TYPE              uint16_t
-#define FW_VA_DECODE_MSG_ID_MASK              (0xFFFF)
-#define FW_VA_DECODE_MSG_ID_OFFSET            (0x0002)
-#define FW_VA_DECODE_MSG_ID_SHIFT             (0)
-
-/* FW_DEVA_DECODE     FLAGS */
-#define FW_DEVA_DECODE_FLAGS_TYPE               uint16_t
-#define FW_DEVA_DECODE_FLAGS_MASK               (0xFFFF)
-#define FW_DEVA_DECODE_FLAGS_OFFSET             (0x0004)
-#define FW_DEVA_DECODE_FLAGS_SHIFT              (0)
-
-#define FW_DEVA_INVALIDATE_MMU			(0x00000010)
-
-/* FW_DEVA_CMD_COMPLETED     MSG_ID */
-#define FW_VA_CMD_COMPLETED_MSG_ID_TYPE               uint16_t
-#define FW_VA_CMD_COMPLETED_MSG_ID_MASK               (0xFFFF)
-#define FW_VA_CMD_COMPLETED_MSG_ID_OFFSET             (0x0002)
-#define FW_VA_CMD_COMPLETED_MSG_ID_SHIFT              (0)
-
-/* FW_DEVA_CMD_FAILED     MSG_ID */
-#define FW_DEVA_CMD_FAILED_MSG_ID_TYPE          uint16_t
-#define FW_DEVA_CMD_FAILED_MSG_ID_MASK          (0xFFFF)
-#define FW_DEVA_CMD_FAILED_MSG_ID_OFFSET                (0x0002)
-#define FW_DEVA_CMD_FAILED_MSG_ID_SHIFT         (0)
-
-/* FW_DEVA_CMD_FAILED     FLAGS */
-#define FW_DEVA_CMD_FAILED_FLAGS_TYPE           uint32_t
-#define FW_DEVA_CMD_FAILED_FLAGS_MASK           (0xFFFFFFFF)
-#define FW_DEVA_CMD_FAILED_FLAGS_OFFSET         (0x0004)
-#define FW_DEVA_CMD_FAILED_FLAGS_SHIFT          (0)
-
-/* FW_DXVA_DEBLOCK     MSG_SIZE */
-#define FW_DXVA_DEBLOCK_MSG_SIZE_ALIGNMENT              (1)
-#define FW_DXVA_DEBLOCK_MSG_SIZE_TYPE           uint8_t
-#define FW_DXVA_DEBLOCK_MSG_SIZE_MASK           (0xFF)
-#define FW_DXVA_DEBLOCK_MSG_SIZE_LSBMASK                (0xFF)
-#define FW_DXVA_DEBLOCK_MSG_SIZE_OFFSET         (0x0000)
-#define FW_DXVA_DEBLOCK_MSG_SIZE_SHIFT          (0)
-
-/* FW_DXVA_DEBLOCK     ID */
-#define FW_DXVA_DEBLOCK_ID_ALIGNMENT            (1)
-#define FW_DXVA_DEBLOCK_ID_TYPE         uint8_t
-#define FW_DXVA_DEBLOCK_ID_MASK         (0xFF)
-#define FW_DXVA_DEBLOCK_ID_LSBMASK              (0xFF)
-#define FW_DXVA_DEBLOCK_ID_OFFSET               (0x0001)
-#define FW_DXVA_DEBLOCK_ID_SHIFT                (0)
-
-/* FW_DXVA_DEBLOCK     FENCE_VALUE */
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_START_BIT		0
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_END_BIT		15
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_ALIGNMENT		(4)
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_TYPE		uint16_t
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_MASK		(0xFFFF)
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_LSBMASK		(0xFFFF)
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_OFFSET		(0x0008)
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_SHIFT		(0)
-#define FW_DXVA_DEBLOCK_FENCE_VALUE_SIGNED_FIELD	(0)
-
-/* FW_VA_HOST_BE_OPP MESSAGE */
-/* FW_VA_HOST_BE_OPP     FENCE_VALUE */
-#define FW_VA_HOST_BE_OPP_FENCE_VALUE_ALIGNMENT           (4)
-#define FW_VA_HOST_BE_OPP_FENCE_VALUE_TYPE                uint16_t
-#define FW_VA_HOST_BE_OPP_FENCE_VALUE_MASK                (0xFFFF)
-#define FW_VA_HOST_BE_OPP_FENCE_VALUE_LSBMASK             (0xFFFF)
-#define FW_VA_HOST_BE_OPP_FENCE_VALUE_OFFSET              (0x0008)
-#define FW_VA_HOST_BE_OPP_FENCE_VALUE_SHIFT               (0)
-
-
-/* FW_VA_HOST_BE_OPP     MMUPTD */
-#define FW_VA_HOST_BE_OPP_MMUPTD_ALIGNMENT                (4)
-#define FW_VA_HOST_BE_OPP_MMUPTD_TYPE             uint32_t
-#define FW_VA_HOST_BE_OPP_MMUPTD_MASK             (0xFFFFFFFF)
-#define FW_VA_HOST_BE_OPP_MMUPTD_LSBMASK          (0xFFFFFFFF)
-#define FW_VA_HOST_BE_OPP_MMUPTD_OFFSET           (0x000C)
-#define FW_VA_HOST_BE_OPP_MMUPTD_SHIFT            (0)
-
-
-/* FW_DXVA_DEBLOCK     MMUPTD */
-#define FW_DXVA_DEBLOCK_MMUPTD_ALIGNMENT                (4)
-#define FW_DXVA_DEBLOCK_MMUPTD_TYPE             uint32_t
-#define FW_DXVA_DEBLOCK_MMUPTD_MASK             (0xFFFFFFFF)
-#define FW_DXVA_DEBLOCK_MMUPTD_LSBMASK          (0xFFFFFFFF)
-#define FW_DXVA_DEBLOCK_MMUPTD_OFFSET           (0x000C)
-#define FW_DXVA_DEBLOCK_MMUPTD_SHIFT            (0)
-
-#define FW_DXVA_OOLD_SIZE               (40)
-
-
-// FW_VA_CMD_COMPLETED     VDEBCR
-#define FW_VA_CMD_COMPLETED_VDEBCR_START_BIT		0
-#define FW_VA_CMD_COMPLETED_VDEBCR_END_BIT		31
-#define FW_VA_CMD_COMPLETED_VDEBCR_ALIGNMENT		(4)
-#define FW_VA_CMD_COMPLETED_VDEBCR_TYPE		uint32_t
-#define FW_VA_CMD_COMPLETED_VDEBCR_MASK		(0xFFFFFFFF)
-#define FW_VA_CMD_COMPLETED_VDEBCR_LSBMASK		(0xFFFFFFFF)
-#define FW_VA_CMD_COMPLETED_VDEBCR_OFFSET		(0x000C)
-#define FW_VA_CMD_COMPLETED_VDEBCR_SHIFT		(0)
-#define FW_VA_CMD_COMPLETED_VDEBCR_SIGNED_FIELD	(0)
-
-/* FW_VA_CMD_FAILED     FLAGS */
-#define FW_VA_CMD_FAILED_FLAGS_ALIGNMENT		(4)
-#define FW_VA_CMD_FAILED_FLAGS_TYPE		uint32_t
-#define FW_VA_CMD_FAILED_FLAGS_MASK		(0xFFFFFFFF)
-#define FW_VA_CMD_FAILED_FLAGS_LSBMASK		(0xFFFFFFFF)
-#define FW_VA_CMD_FAILED_FLAGS_OFFSET		(0x0004)
-#define FW_VA_CMD_FAILED_FLAGS_SHIFT		(0)
-#define FW_VA_CMD_FAILED_FLAGS_SIGNED_FIELD	(0)
-
-/* FW_VA_CMD_FAILED_NO_EC     FENCE_VALUE */
-#define FW_VA_CMD_FAILED_FENCE_VALUE_NO_EC_TYPE	uint32_t
-#define FW_VA_CMD_FAILED_FENCE_VALUE_NO_EC_MASK	(0xFFFFFFFF)
-#define FW_VA_CMD_FAILED_FENCE_VALUE_NO_EC_OFFSET	(0x0004)
-#define FW_VA_CMD_FAILED_FENCE_VALUE_NO_EC_SHIFT	(0)
-
-/* FW_VA_CMD_FAILED_NO_EC     IRQSTATUS */
-#define FW_VA_CMD_FAILED_IRQSTATUS_NO_EC_TYPE		uint32_t
-#define FW_VA_CMD_FAILED_IRQSTATUS_NO_EC_MASK		(0xFFFFFFFF)
-#define FW_VA_CMD_FAILED_IRQSTATUS_NO_EC_OFFSET	(0x0008)
-#define FW_VA_CMD_FAILED_IRQSTATUS_NO_EC_SHIFT	(0)
-
-/* PANIC MESSAGE */
-// FW_VA_HW_PANIC     FENCE_VALUE
-#define FW_VA_HW_PANIC_FENCE_VALUE_START_BIT		16
-#define FW_VA_HW_PANIC_FENCE_VALUE_END_BIT		31
-#define FW_VA_HW_PANIC_FENCE_VALUE_ALIGNMENT		(2)
-#define FW_VA_HW_PANIC_FENCE_VALUE_TYPE		uint16_t
-#define FW_VA_HW_PANIC_FENCE_VALUE_MASK		(0xFFFF)
-#define FW_VA_HW_PANIC_FENCE_VALUE_LSBMASK		(0xFFFF)
-#define FW_VA_HW_PANIC_FENCE_VALUE_OFFSET		(0x0002)
-#define FW_VA_HW_PANIC_FENCE_VALUE_SHIFT		(0)
-#define FW_VA_HW_PANIC_FENCE_VALUE_SIGNED_FIELD	(0)
-
-/* FW_VA_HW_PANIC     FIRST_MB_NUM */
-#define FW_VA_HW_PANIC_FIRST_MB_NUM_START_BIT		0
-#define FW_VA_HW_PANIC_FIRST_MB_NUM_END_BIT		15
-#define FW_VA_HW_PANIC_FIRST_MB_NUM_ALIGNMENT		(2)
-#define FW_VA_HW_PANIC_FIRST_MB_NUM_TYPE		uint16_t
-#define FW_VA_HW_PANIC_FIRST_MB_NUM_MASK		(0xFFFF)
-#define FW_VA_HW_PANIC_FIRST_MB_NUM_LSBMASK		(0xFFFF)
-#define FW_VA_HW_PANIC_FIRST_MB_NUM_OFFSET		(0x0004)
-#define FW_VA_HW_PANIC_FIRST_MB_NUM_SHIFT		(0)
-#define FW_VA_HW_PANIC_FIRST_MB_NUM_SIGNED_FIELD	(0)
-
-/* FW_VA_HW_PANIC     FAULT_MB_NUM */
-#define FW_VA_HW_PANIC_FAULT_MB_NUM_START_BIT		16
-#define FW_VA_HW_PANIC_FAULT_MB_NUM_END_BIT		31
-#define FW_VA_HW_PANIC_FAULT_MB_NUM_ALIGNMENT		(2)
-#define FW_VA_HW_PANIC_FAULT_MB_NUM_TYPE		uint16_t
-#define FW_VA_HW_PANIC_FAULT_MB_NUM_MASK		(0xFFFF)
-#define FW_VA_HW_PANIC_FAULT_MB_NUM_LSBMASK		(0xFFFF)
-#define FW_VA_HW_PANIC_FAULT_MB_NUM_OFFSET		(0x0006)
-#define FW_VA_HW_PANIC_FAULT_MB_NUM_SHIFT		(0)
-#define FW_VA_HW_PANIC_FAULT_MB_NUM_SIGNED_FIELD	(0)
-
-/* FW_VA_HW_PANIC     FESTATUS */
-#define FW_VA_HW_PANIC_FESTATUS_START_BIT		0
-#define FW_VA_HW_PANIC_FESTATUS_END_BIT		31
-#define FW_VA_HW_PANIC_FESTATUS_ALIGNMENT		(4)
-#define FW_VA_HW_PANIC_FESTATUS_TYPE		uint32_t
-#define FW_VA_HW_PANIC_FESTATUS_MASK		(0xFFFFFFFF)
-#define FW_VA_HW_PANIC_FESTATUS_LSBMASK		(0xFFFFFFFF)
-#define FW_VA_HW_PANIC_FESTATUS_OFFSET		(0x0008)
-#define FW_VA_HW_PANIC_FESTATUS_SHIFT		(0)
-#define FW_VA_HW_PANIC_FESTATUS_SIGNED_FIELD	(0)
-
-/* FW_VA_HW_PANIC     BESTATUS */
-#define FW_VA_HW_PANIC_BESTATUS_START_BIT		0
-#define FW_VA_HW_PANIC_BESTATUS_END_BIT		31
-#define FW_VA_HW_PANIC_BESTATUS_ALIGNMENT		(4)
-#define FW_VA_HW_PANIC_BESTATUS_TYPE		uint32_t
-#define FW_VA_HW_PANIC_BESTATUS_MASK		(0xFFFFFFFF)
-#define FW_VA_HW_PANIC_BESTATUS_LSBMASK		(0xFFFFFFFF)
-#define FW_VA_HW_PANIC_BESTATUS_OFFSET		(0x000C)
-#define FW_VA_HW_PANIC_BESTATUS_SHIFT		(0)
-#define FW_VA_HW_PANIC_BESTATUS_SIGNED_FIELD	(0)
-
-/* FW_VA_DEBLOCK_REQUIRED MESSAGE*/
-/* FW_VA_DEBLOCK_REQUIRED     FENCE_VALUE */
-#define FW_VA_DEBLOCK_REQUIRED_FENCE_VALUE_ALIGNMENT		(2)
-#define FW_VA_DEBLOCK_REQUIRED_FENCE_VALUE_TYPE		uint16_t
-#define FW_VA_DEBLOCK_REQUIRED_FENCE_VALUE_MASK		(0xFFFF)
-#define FW_VA_DEBLOCK_REQUIRED_FENCE_VALUE_LSBMASK		(0xFFFF)
-#define FW_VA_DEBLOCK_REQUIRED_FENCE_VALUE_OFFSET		(0x0002)
-#define FW_VA_DEBLOCK_REQUIRED_FENCE_VALUE_SHIFT		(0)
-#define FW_VA_DEBLOCK_REQUIRED_FENCE_VALUE_SIGNED_FIELD	(0)
-
-
-/* FW_VA_DEBLOCK_REQUIRED     CONTEXTNO_EC */
-#define FW_VA_DEBLOCK_REQUIRED_CONTEXT_NO_EC_TYPE	uint32_t
-#define FW_VA_DEBLOCK_REQUIRED_CONTEXT_NO_EC_MASK	(0xFFFFFFFF)
-#define FW_VA_DEBLOCK_REQUIRED_CONTEXT_NO_EC_OFFSET	(0x0004)
-#define FW_VA_DEBLOCK_REQUIRED_CONTEXT_NO_EC_SHIFT	(0)
-
-/* FW_VA_CONTIGUITY_WARNING MESSAGE */
-#define FW_VA_CONTIGUITY_WARNING_SIZE		(8)
-
-/* FW_VA_CONTIGUITY_WARNING     FENCE_VALUE */
-#define FW_VA_CONTIGUITY_WARNING_FENCE_VALUE_START_BIT		16
-#define FW_VA_CONTIGUITY_WARNING_FENCE_VALUE_END_BIT		31
-#define FW_VA_CONTIGUITY_WARNING_FENCE_VALUE_ALIGNMENT		(2)
-#define FW_VA_CONTIGUITY_WARNING_FENCE_VALUE_TYPE		uint16_t
-#define FW_VA_CONTIGUITY_WARNING_FENCE_VALUE_MASK		(0xFFFF)
-#define FW_VA_CONTIGUITY_WARNING_FENCE_VALUE_LSBMASK		(0xFFFF)
-#define FW_VA_CONTIGUITY_WARNING_FENCE_VALUE_OFFSET		(0x0002)
-#define FW_VA_CONTIGUITY_WARNING_FENCE_VALUE_SHIFT		(0)
-#define FW_VA_CONTIGUITY_WARNING_FENCE_VALUE_SIGNED_FIELD	(0)
-
-/* FW_VA_CONTIGUITY_WARNING     ID */
-#define FW_VA_CONTIGUITY_WARNING_ID_START_BIT		8
-#define FW_VA_CONTIGUITY_WARNING_ID_END_BIT		15
-#define FW_VA_CONTIGUITY_WARNING_ID_ALIGNMENT		(1)
-#define FW_VA_CONTIGUITY_WARNING_ID_TYPE		uint8_t
-#define FW_VA_CONTIGUITY_WARNING_ID_MASK		(0xFF)
-#define FW_VA_CONTIGUITY_WARNING_ID_LSBMASK		(0xFF)
-#define FW_VA_CONTIGUITY_WARNING_ID_OFFSET		(0x0001)
-#define FW_VA_CONTIGUITY_WARNING_ID_SHIFT		(0)
-#define FW_VA_CONTIGUITY_WARNING_ID_SIGNED_FIELD	(0)
-
-/* FW_VA_CONTIGUITY_WARNING     MSG_SIZE */
-#define FW_VA_CONTIGUITY_WARNING_MSG_SIZE_START_BIT		0
-#define FW_VA_CONTIGUITY_WARNING_MSG_SIZE_END_BIT		7
-#define FW_VA_CONTIGUITY_WARNING_MSG_SIZE_ALIGNMENT		(1)
-#define FW_VA_CONTIGUITY_WARNING_MSG_SIZE_TYPE		uint8_t
-#define FW_VA_CONTIGUITY_WARNING_MSG_SIZE_MASK		(0xFF)
-#define FW_VA_CONTIGUITY_WARNING_MSG_SIZE_LSBMASK		(0xFF)
-#define FW_VA_CONTIGUITY_WARNING_MSG_SIZE_OFFSET		(0x0000)
-#define FW_VA_CONTIGUITY_WARNING_MSG_SIZE_SHIFT		(0)
-#define FW_VA_CONTIGUITY_WARNING_MSG_SIZE_SIGNED_FIELD	(0)
-
-/* FW_VA_CONTIGUITY_WARNING     END_MB_NUM */
-#define FW_VA_CONTIGUITY_WARNING_END_MB_NUM_START_BIT		0
-#define FW_VA_CONTIGUITY_WARNING_END_MB_NUM_END_BIT		15
-#define FW_VA_CONTIGUITY_WARNING_END_MB_NUM_ALIGNMENT		(2)
-#define FW_VA_CONTIGUITY_WARNING_END_MB_NUM_TYPE		uint16_t
-#define FW_VA_CONTIGUITY_WARNING_END_MB_NUM_MASK		(0xFFFF)
-#define FW_VA_CONTIGUITY_WARNING_END_MB_NUM_LSBMASK		(0xFFFF)
-#define FW_VA_CONTIGUITY_WARNING_END_MB_NUM_OFFSET		(0x0004)
-#define FW_VA_CONTIGUITY_WARNING_END_MB_NUM_SHIFT		(0)
-#define FW_VA_CONTIGUITY_WARNING_END_MB_NUM_SIGNED_FIELD	(0)
-
-/* FW_VA_CONTIGUITY_WARNING     BEGIN_MB_NUM */
-#define FW_VA_CONTIGUITY_WARNING_BEGIN_MB_NUM_START_BIT		16
-#define FW_VA_CONTIGUITY_WARNING_BEGIN_MB_NUM_END_BIT		31
-#define FW_VA_CONTIGUITY_WARNING_BEGIN_MB_NUM_ALIGNMENT		(2)
-#define FW_VA_CONTIGUITY_WARNING_BEGIN_MB_NUM_TYPE		uint16_t
-#define FW_VA_CONTIGUITY_WARNING_BEGIN_MB_NUM_MASK		(0xFFFF)
-#define FW_VA_CONTIGUITY_WARNING_BEGIN_MB_NUM_LSBMASK		(0xFFFF)
-#define FW_VA_CONTIGUITY_WARNING_BEGIN_MB_NUM_OFFSET		(0x0006)
-#define FW_VA_CONTIGUITY_WARNING_BEGIN_MB_NUM_SHIFT		(0)
-#define FW_VA_CONTIGUITY_WARNING_BEGIN_MB_NUM_SIGNED_FIELD	(0)
-
-/* FW_DXVA_OOLD     FENCE_VALUE */
-#define FW_DXVA_OOLD_FENCE_VALUE_ALIGNMENT              (4)
-#define FW_DXVA_OOLD_FENCE_VALUE_TYPE           uint32_t
-#define FW_DXVA_OOLD_FENCE_VALUE_MASK           (0xFFFFFFFF)
-#define FW_DXVA_OOLD_FENCE_VALUE_LSBMASK                (0xFFFFFFFF)
-#define FW_DXVA_OOLD_FENCE_VALUE_OFFSET         (0x0008)
-#define FW_DXVA_OOLD_FENCE_VALUE_SHIFT          (0)
- 
-/* FW_DXVA_OOLD     MMUPTD */
-#define FW_DXVA_OOLD_MMUPTD_ALIGNMENT           (4)
-#define FW_DXVA_OOLD_MMUPTD_TYPE                IMG_UINT32
-#define FW_DXVA_OOLD_MMUPTD_MASK                (0xFFFFFFFF)
-#define FW_DXVA_OOLD_MMUPTD_LSBMASK             (0xFFFFFFFF)
-#define FW_DXVA_OOLD_MMUPTD_OFFSET              (0x0004)
-#define FW_DXVA_OOLD_MMUPTD_SHIFT               (0)
-
-#define FW_VA_LAST_SLICE_OF_EXT_DMA                                         0x00001000
-
-static inline void psb_msvdx_clearirq(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	unsigned long mtx_int = 0;
-
-	PSB_DEBUG_IRQ("MSVDX: clear IRQ\n");
-
-	/* Clear MTX interrupt */
-	REGIO_WRITE_FIELD_LITE(mtx_int, MSVDX_INTERRUPT_STATUS, CR_MTX_IRQ,
-			       1);
-	PSB_WMSVDX32(mtx_int, MSVDX_INTERRUPT_CLEAR);
-}
-
-
-static inline void psb_msvdx_disableirq(struct drm_device *dev)
-{
-	/* nothing */
-}
-
-
-static inline void psb_msvdx_enableirq(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	unsigned long enables = 0;
-
-	PSB_DEBUG_IRQ("MSVDX: enable MSVDX MTX IRQ\n");
-	REGIO_WRITE_FIELD_LITE(enables, MSVDX_INTERRUPT_STATUS, CR_MTX_IRQ,
-			       1);
-	PSB_WMSVDX32(enables, MSVDX_HOST_INTERRUPT_ENABLE);
-}
-
-#define MSVDX_NEW_PMSTATE(drm_dev, msvdx_priv, new_state)		\
-do {									\
-	msvdx_priv->pmstate = new_state;				\
-	sysfs_notify_dirent(msvdx_priv->sysfs_pmstate);			\
-	PSB_DEBUG_PM("MSVDX: %s\n",					\
-		(new_state == PSB_PMSTATE_POWERUP) ? "powerup"		\
-		: ((new_state == PSB_PMSTATE_POWERDOWN) ? "powerdown"	\
-			: "clockgated"));				\
-} while (0)
-
-#endif
-
-#define IS_FW_UPDATED 1
diff --git a/drivers/staging/cdv/imgv/psb_msvdxinit.c b/drivers/staging/cdv/imgv/psb_msvdxinit.c
deleted file mode 100644
index 5ea5c83..0000000
--- a/drivers/staging/cdv/imgv/psb_msvdxinit.c
+++ /dev/null
@@ -1,1164 +0,0 @@
-/**************************************************************************
- * psb_msvdxinit.c
- * MSVDX initialization and mtx-firmware upload
- *
- * Copyright (c) 2011 Intel Corporation, Hillsboro, OR, USA
- * Copyright (c) Imagination Technologies Limited, UK
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-
-#include <drm/drmP.h>
-#include <drm/drm.h>
-#include "psb_drv.h"
-#include "psb_msvdx.h"
-#include <linux/firmware.h>
-
-#define MSVDX_REG (dev_priv->msvdx_reg)
-#define UPLOAD_FW_BY_DMA 1
-#define STACKGUARDWORD          ( 0x10101010 )
-#define MSVDX_MTX_DATA_LOCATION ( 0x82880000 )
-#define UNINITILISE_MEM 	( 0xcdcdcdcd )
-#define FIRMWAREID		( 0x014d42ab )
-
-uint8_t psb_rev_id;
-/*MSVDX FW header*/
-struct msvdx_fw {
-	uint32_t ver;
-	uint32_t text_size;
-	uint32_t data_size;
-	uint32_t data_location;
-};
-
-int psb_wait_for_register(struct drm_psb_private *dev_priv,
-			  uint32_t offset, uint32_t value, uint32_t enable)
-{
-	uint32_t reg_value;
-	uint32_t poll_cnt = 10000;
-	while (poll_cnt) {
-		reg_value = PSB_RMSVDX32(offset);
-		if (value == (reg_value & enable))	/* All the bits are reset   */
-			return 0;	/* So exit			*/
-
-		/* Wait a bit */
-		DRM_UDELAY(1000);
-		poll_cnt--;
-	}
-	DRM_ERROR("MSVDX: Timeout while waiting for register %08x:"
-		  " expecting %08x (mask %08x), got %08x\n",
-		  offset, value, enable, reg_value);
-
-	return 1;
-}
-
-int psb_poll_mtx_irq(struct drm_psb_private *dev_priv)
-{
-	int ret = 0;
-	uint32_t mtx_int = 0;
-
-	REGIO_WRITE_FIELD_LITE(mtx_int, MSVDX_INTERRUPT_STATUS, CR_MTX_IRQ,
-			       1);
-
-	ret = psb_wait_for_register(dev_priv, MSVDX_INTERRUPT_STATUS,
-				    /* Required value */
-				    mtx_int,
-				    /* Enabled bits */
-				    mtx_int);
-
-	if (ret) {
-		DRM_ERROR("MSVDX: Error Mtx did not return"
-			  " int within a resonable time\n");
-		return ret;
-	}
-
-	PSB_DEBUG_IRQ("MSVDX: Got MTX Int\n");
-
-	/* Got it so clear the bit */
-	PSB_WMSVDX32(mtx_int, MSVDX_INTERRUPT_CLEAR);
-
-	return ret;
-}
-
-void psb_write_mtx_core_reg(struct drm_psb_private *dev_priv,
-			    const uint32_t core_reg, const uint32_t val)
-{
-	uint32_t reg = 0;
-
-	/* Put data in MTX_RW_DATA */
-	PSB_WMSVDX32(val, MSVDX_MTX_REGISTER_READ_WRITE_DATA);
-
-	/* DREADY is set to 0 and request a write */
-	reg = core_reg;
-	REGIO_WRITE_FIELD_LITE(reg, MSVDX_MTX_REGISTER_READ_WRITE_REQUEST,
-			       MTX_RNW, 0);
-	REGIO_WRITE_FIELD_LITE(reg, MSVDX_MTX_REGISTER_READ_WRITE_REQUEST,
-			       MTX_DREADY, 0);
-	PSB_WMSVDX32(reg, MSVDX_MTX_REGISTER_READ_WRITE_REQUEST);
-
-	psb_wait_for_register(dev_priv,
-			      MSVDX_MTX_REGISTER_READ_WRITE_REQUEST,
-			      MSVDX_MTX_REGISTER_READ_WRITE_REQUEST_MTX_DREADY_MASK,
-			      MSVDX_MTX_REGISTER_READ_WRITE_REQUEST_MTX_DREADY_MASK);
-}
-
-#if UPLOAD_FW_BY_DMA
-
-static void psb_get_mtx_control_from_dash(struct drm_psb_private *dev_priv)
-{
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-	int count = 0;
-	uint32_t reg_val = 0;
-
-	REGIO_WRITE_FIELD(reg_val, MSVDX_MTX_DEBUG, MTX_DBG_IS_SLAVE, 1);
-	REGIO_WRITE_FIELD(reg_val, MSVDX_MTX_DEBUG, MTX_DBG_GPIO_IN, 0x02);
-	PSB_WMSVDX32(reg_val, MSVDX_MTX_DEBUG);
-
-	do
-	{
-		reg_val = PSB_RMSVDX32(MSVDX_MTX_DEBUG);
-		count++;
-	} while (((reg_val & 0x18) != 0) && count < 50000);
-
-	if(count >= 50000)
-		PSB_DEBUG_GENERAL("TOPAZ: timeout in get_mtx_control_from_dash\n"); 
-
-	/* Save the access control register...*/
-	msvdx_priv->psb_dash_access_ctrl = PSB_RMSVDX32(MSVDX_MTX_RAM_ACCESS_CONTROL);
-		
-}
-
-static void psb_release_mtx_control_from_dash(struct drm_psb_private *dev_priv)
-{
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-
-	/* restore access control */
-	PSB_WMSVDX32(msvdx_priv->psb_dash_access_ctrl, MSVDX_MTX_RAM_ACCESS_CONTROL);
-	/* release bus */
-	PSB_WMSVDX32(0x4, MSVDX_MTX_DEBUG);
-}
-
-
-
-static void psb_upload_fw(struct drm_psb_private *dev_priv,
-			  uint32_t address, const unsigned int words, int fw_sel)
-{
-	uint32_t reg_val=0;
-	uint32_t cmd;
-	uint32_t uCountReg, offset, mmu_ptd;
-	uint32_t size = (words*4 ); /* byte count */
-	uint32_t dma_channel = 0; /* Setup a Simple DMA for Ch0 */
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-
-	PSB_DEBUG_GENERAL("MSVDX: Upload firmware by DMA\n");
-	psb_get_mtx_control_from_dash(dev_priv);
-
-	// dma transfers to/from the mtx have to be 32-bit aligned and in multiples of 32 bits
-	PSB_WMSVDX32(address, REGISTER(MTX_CORE, CR_MTX_SYSC_CDMAA));
-
-	REGIO_WRITE_FIELD_LITE(reg_val, MTX_CORE_CR_MTX_SYSC_CDMAC, BURSTSIZE,	4 );// burst size in multiples of 64 bits (allowed values are 2 or 4)
-	REGIO_WRITE_FIELD_LITE(reg_val, MTX_CORE_CR_MTX_SYSC_CDMAC, RNW, 0);	// false means write to mtx mem, true means read from mtx mem
-	REGIO_WRITE_FIELD_LITE(reg_val, MTX_CORE_CR_MTX_SYSC_CDMAC, ENABLE,	1);				// begin transfer
-	REGIO_WRITE_FIELD_LITE(reg_val, MTX_CORE_CR_MTX_SYSC_CDMAC, LENGTH,	words  );		// This specifies the transfer size of the DMA operation in terms of 32-bit words
-	PSB_WMSVDX32(reg_val, REGISTER(MTX_CORE, CR_MTX_SYSC_CDMAC));
-
-	// toggle channel 0 usage between mtx and other msvdx peripherals
-	{
-		reg_val = PSB_RMSVDX32(REGISTER(  MSVDX_CORE, CR_MSVDX_CONTROL));
-		REGIO_WRITE_FIELD(reg_val, MSVDX_CORE_CR_MSVDX_CONTROL, DMAC_CH0_SELECT,  0 );
-		PSB_WMSVDX32(reg_val, REGISTER( MSVDX_CORE, CR_MSVDX_CONTROL));
-	}
-
-
-	/* Clear the DMAC Stats */
-	PSB_WMSVDX32(0 , REGISTER(DMAC, DMAC_IRQ_STAT ) + dma_channel);
-
-	offset = msvdx_priv->fw->offset;
-
-	if(fw_sel)
-		offset += ((msvdx_priv->mtx_mem_size + 8192) & ~0xfff);
-
-	/* use bank 0 */
-	cmd = 0;
-	PSB_WMSVDX32(cmd, REGISTER(MSVDX_CORE, CR_MMU_BANK_INDEX));
-
-	/* Write PTD to mmu base 0*/
-	mmu_ptd = psb_get_default_pd_addr(dev_priv->mmu);
-	PSB_WMSVDX32(mmu_ptd, REGISTER( MSVDX_CORE, CR_MMU_DIR_LIST_BASE) + 0);
-
-	/* Invalidate */
-	reg_val = PSB_RMSVDX32(REGISTER(MSVDX_CORE, CR_MMU_CONTROL0));
-	reg_val &= ~0xf;
-	REGIO_WRITE_FIELD(reg_val, MSVDX_CORE_CR_MMU_CONTROL0, CR_MMU_INVALDC, 1 );
-	PSB_WMSVDX32(reg_val, REGISTER(MSVDX_CORE, CR_MMU_CONTROL0 ));
-
-	PSB_WMSVDX32(offset, REGISTER(DMAC, DMAC_SETUP ) + dma_channel);
-
-	/* Only use a single dma - assert that this is valid */
-	if( (size / 4 ) >= (1<<15) ) {
-		DRM_ERROR("psb: DMA size beyond limited, aboart firmware uploading\n");
-		return;
-	}
-		
-
-	uCountReg = PSB_DMAC_VALUE_COUNT(PSB_DMAC_BSWAP_NO_SWAP,
-					 0,  /* 32 bits */
-					 PSB_DMAC_DIR_MEM_TO_PERIPH,
-					 0,
-					 (size / 4 ) );
-	/* Set the number of bytes to dma*/
-	PSB_WMSVDX32(uCountReg, REGISTER(DMAC, 	DMAC_COUNT ) + dma_channel);
-
-	cmd = PSB_DMAC_VALUE_PERIPH_PARAM(PSB_DMAC_ACC_DEL_0, PSB_DMAC_INCR_OFF, PSB_DMAC_BURST_2);
-	PSB_WMSVDX32(cmd, REGISTER(DMAC, DMAC_PERIPH ) + dma_channel);
-
-	/* Set destination port for dma */
-	cmd = 0;
-	REGIO_WRITE_FIELD(cmd, DMAC_DMAC_PERIPHERAL_ADDR, ADDR, MTX_CORE_CR_MTX_SYSC_CDMAT_OFFSET); 
-	PSB_WMSVDX32(cmd, REGISTER(DMAC, DMAC_PERIPHERAL_ADDR ) + dma_channel);
-
-
-	/* Finally, rewrite the count register with the enable bit set*/
-	PSB_WMSVDX32(uCountReg | DMAC_DMAC_COUNT_EN_MASK, REGISTER(DMAC, DMAC_COUNT ) + dma_channel);
-
-	/* Wait for all to be done */
-	if(psb_wait_for_register(dev_priv, 
-				 REGISTER(DMAC, DMAC_IRQ_STAT ) + dma_channel, 
-				 DMAC_DMAC_IRQ_STAT_TRANSFER_FIN_MASK, 
-				 DMAC_DMAC_IRQ_STAT_TRANSFER_FIN_MASK )) {
-		psb_release_mtx_control_from_dash(dev_priv);
-		return;
-	}
-
-	/* Assert that the MTX DMA port is all done aswell */
-	if(psb_wait_for_register(dev_priv, REGISTER(MTX_CORE, CR_MTX_SYSC_CDMAS0), 1, 1)) {
-		psb_release_mtx_control_from_dash(dev_priv);
-		return;
-	}
-
-	psb_release_mtx_control_from_dash(dev_priv);
-	PSB_DEBUG_GENERAL("MSVDX: Upload done\n");
-}
-
-#else
-
-static void psb_upload_fw(struct drm_psb_private *dev_priv,
-			  const uint32_t data_mem, uint32_t ram_bank_size,
-			  uint32_t address, const unsigned int words,
-			  const uint32_t * const data)
-{
-	uint32_t loop, ctrl, ram_id, addr, cur_bank = (uint32_t) ~0;
-	uint32_t access_ctrl;
-
-	PSB_DEBUG_GENERAL("MSVDX: Upload firmware by register interface\n");
-	/* Save the access control register... */
-	access_ctrl = PSB_RMSVDX32(MSVDX_MTX_RAM_ACCESS_CONTROL);
-
-	/* Wait for MCMSTAT to become be idle 1 */
-	psb_wait_for_register(dev_priv, MSVDX_MTX_RAM_ACCESS_STATUS,
-			      1,	/* Required Value */
-			      0xffffffff /* Enables */);
-
-	for (loop = 0; loop < words; loop++) {
-		ram_id = data_mem + (address / ram_bank_size);
-		if (ram_id != cur_bank) {
-			addr = address >> 2;
-			ctrl = 0;
-			REGIO_WRITE_FIELD_LITE(ctrl,
-					       MSVDX_MTX_RAM_ACCESS_CONTROL,
-					       MTX_MCMID, ram_id);
-			REGIO_WRITE_FIELD_LITE(ctrl,
-					       MSVDX_MTX_RAM_ACCESS_CONTROL,
-					       MTX_MCM_ADDR, addr);
-			REGIO_WRITE_FIELD_LITE(ctrl,
-					       MSVDX_MTX_RAM_ACCESS_CONTROL,
-					       MTX_MCMAI, 1);
-			PSB_WMSVDX32(ctrl, MSVDX_MTX_RAM_ACCESS_CONTROL);
-			cur_bank = ram_id;
-		}
-		address += 4;
-
-		PSB_WMSVDX32(data[loop],
-			     MSVDX_MTX_RAM_ACCESS_DATA_TRANSFER);
-
-		/* Wait for MCMSTAT to become be idle 1 */
-		psb_wait_for_register(dev_priv, MSVDX_MTX_RAM_ACCESS_STATUS,
-				      1,	/* Required Value */
-				      0xffffffff /* Enables */);
-	}
-	PSB_DEBUG_GENERAL("MSVDX: Upload done\n");
-
-	/* Restore the access control register... */
-	PSB_WMSVDX32(access_ctrl, MSVDX_MTX_RAM_ACCESS_CONTROL);
-}
-
-#endif
-
-static int psb_verify_fw(struct drm_psb_private *dev_priv,
-			 const uint32_t ram_bank_size,
-			 const uint32_t data_mem, uint32_t address,
-			 const uint32_t words, const uint32_t * const data)
-{
-	uint32_t loop, ctrl, ram_id, addr, cur_bank = (uint32_t) ~0;
-	uint32_t access_ctrl;
-	int ret = 0;
-
-	/* Save the access control register... */
-	access_ctrl = PSB_RMSVDX32(MSVDX_MTX_RAM_ACCESS_CONTROL);
-
-	/* Wait for MCMSTAT to become be idle 1 */
-	psb_wait_for_register(dev_priv, MSVDX_MTX_RAM_ACCESS_STATUS,
-			      1,	/* Required Value */
-			      0xffffffff /* Enables */);
-
-	for (loop = 0; loop < words; loop++) {
-		uint32_t reg_value;
-		ram_id = data_mem + (address / ram_bank_size);
-
-		if (ram_id != cur_bank) {
-			addr = address >> 2;
-			ctrl = 0;
-			REGIO_WRITE_FIELD_LITE(ctrl,
-					       MSVDX_MTX_RAM_ACCESS_CONTROL,
-					       MTX_MCMID, ram_id);
-			REGIO_WRITE_FIELD_LITE(ctrl,
-					       MSVDX_MTX_RAM_ACCESS_CONTROL,
-					       MTX_MCM_ADDR, addr);
-			REGIO_WRITE_FIELD_LITE(ctrl,
-					       MSVDX_MTX_RAM_ACCESS_CONTROL,
-					       MTX_MCMAI, 1);
-			REGIO_WRITE_FIELD_LITE(ctrl,
-					       MSVDX_MTX_RAM_ACCESS_CONTROL,
-					       MTX_MCMR, 1);
-
-			PSB_WMSVDX32(ctrl, MSVDX_MTX_RAM_ACCESS_CONTROL);
-
-			cur_bank = ram_id;
-		}
-		address += 4;
-
-		/* Wait for MCMSTAT to become be idle 1 */
-		psb_wait_for_register(dev_priv, MSVDX_MTX_RAM_ACCESS_STATUS,
-				      1,	/* Required Value */
-				      0xffffffff /* Enables */);
-
-		reg_value = PSB_RMSVDX32(MSVDX_MTX_RAM_ACCESS_DATA_TRANSFER);
-		if (data[loop] != reg_value) {
-			DRM_ERROR("psb: Firmware validation fails"
-				  " at index=%08x\n", loop);
-			ret = 1;
-			break;
-		}
-	}
-
-	/* Restore the access control register... */
-	PSB_WMSVDX32(access_ctrl, MSVDX_MTX_RAM_ACCESS_CONTROL);
-
-	return ret;
-}
-
-static int msvdx_get_fw_bo(struct drm_device *dev,
-			   const struct firmware **raw, uint8_t *name)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	int rc, fw_size;
-	void *ptr = NULL;
-        struct ttm_bo_kmap_obj tmp_kmap;
-        bool is_iomem;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-	void *gpu_addr;
-
-	rc = request_firmware(raw, name, &dev->pdev->dev);
-	if (rc < 0) {
-		DRM_ERROR("MSVDX: %s request_firmware failed: Reason %d\n",
-			  name, rc);
-		return 1;
-	}
-
-	if ((*raw)->size < sizeof(struct msvdx_fw)) {
-		DRM_ERROR("MSVDX: %s is is not correct size(%zd)\n",
-			  name, (*raw)->size);
-		return 1;
-	}
-
-	ptr = (void *) ((*raw))->data;
-
-	if (!ptr) {
-		DRM_ERROR("MSVDX: Failed to load %s\n", name);
-		return 1;
-	}
-
-	/* another sanity check... */
-	fw_size = sizeof(struct msvdx_fw) +
-		sizeof(uint32_t) * ((struct msvdx_fw *) ptr)->text_size +
-		sizeof(uint32_t) * ((struct msvdx_fw *) ptr)->data_size;
-	if ((*raw)->size < fw_size) {
-		DRM_ERROR("MSVDX: %s is is not correct size(%zd)\n",
-			  name, (*raw)->size);
-		return 1;
-	}
-
-	rc = ttm_bo_kmap(msvdx_priv->fw, 0, (msvdx_priv->fw)->num_pages, &tmp_kmap);
-	if (rc) {
-		PSB_DEBUG_GENERAL("drm_bo_kmap failed: %d\n", rc);
-		ttm_bo_unref(&msvdx_priv->fw);
-		ttm_bo_kunmap(&tmp_kmap);
-		return 1;
-	}		
-	else {
-		uint32_t *last_word;
-		gpu_addr = ttm_kmap_obj_virtual(&tmp_kmap, &is_iomem);
-
-		memset(gpu_addr, UNINITILISE_MEM, msvdx_priv->mtx_mem_size);
-
-		memcpy(gpu_addr, ptr + sizeof(struct msvdx_fw),
-			sizeof(uint32_t) * ((struct msvdx_fw *) ptr)->text_size);
-
-		memcpy(gpu_addr + (((struct msvdx_fw *) ptr)->data_location - MSVDX_MTX_DATA_LOCATION),
-			(void *)ptr + sizeof(struct msvdx_fw) + sizeof(uint32_t) * ((struct msvdx_fw *) ptr)->text_size, 
-			sizeof(uint32_t) * ((struct msvdx_fw *) ptr)->data_size);
-
-		last_word = (uint32_t *) (gpu_addr + msvdx_priv->mtx_mem_size -4);
-		/* Write a know value to last word in mtx memory*/
-		/* Usefull for detection of stack overrun */
-		*last_word = STACKGUARDWORD;
-	}
-
-	ttm_bo_kunmap(&tmp_kmap);
-	PSB_DEBUG_GENERAL("MSVDX: releasing firmware resouces\n");
-	PSB_DEBUG_GENERAL("MSVDX: Load firmware into BO successfully\n");
-	release_firmware(*raw);
-	return rc;
-}
-
-
-static uint32_t *msvdx_get_fw(struct drm_device *dev,
-			      const struct firmware **raw, uint8_t *name)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	int rc, fw_size;
-	void *ptr = NULL;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-
-	rc = request_firmware(raw, name, &dev->pdev->dev);
-	if (rc < 0) {
-		DRM_ERROR("MSVDX: %s request_firmware failed: Reason %d\n",
-			  name, rc);
-		return NULL;
-	}
-
-	if ((*raw)->size < sizeof(struct msvdx_fw)) {
-		DRM_ERROR("MSVDX: %s is is not correct size(%zd)\n",
-			  name, (*raw)->size);
-		return NULL;
-	}
-
-	ptr = (int *) ((*raw))->data;
-
-	if (!ptr) {
-		DRM_ERROR("MSVDX: Failed to load %s\n", name);
-		return NULL;
-	}
-
-	/* another sanity check... */
-	fw_size = sizeof(struct msvdx_fw) +
-		sizeof(uint32_t) * ((struct msvdx_fw *) ptr)->text_size +
-		sizeof(uint32_t) * ((struct msvdx_fw *) ptr)->data_size;
-	if ((*raw)->size < fw_size) {
-		DRM_ERROR("MSVDX: %s is is not correct size(%zd)\n",
-			  name, (*raw)->size);
-		return NULL;
-	}
-	else if((*raw)->size > fw_size) { /* there is ec firmware */
-		ptr += ((fw_size + 0xfff) & ~0xfff);
-		fw_size += (sizeof(struct msvdx_fw) +
-			    sizeof(uint32_t) * ((struct msvdx_fw *) ptr)->text_size +
-			    sizeof(uint32_t) * ((struct msvdx_fw *) ptr)->data_size);
-
-		ptr = (int *) ((*raw))->data; /* Resotre ptr to start of the firmware file */
-	}
-
-	msvdx_priv->msvdx_fw = kzalloc(fw_size, GFP_KERNEL);
-	if (msvdx_priv->msvdx_fw == NULL)
-		DRM_ERROR("MSVDX: allocate FW buffer failed\n");
-	else {
-		memcpy(msvdx_priv->msvdx_fw, ptr, fw_size);
-		msvdx_priv->msvdx_fw_size = fw_size;
-	}
-
-	PSB_DEBUG_GENERAL("MSVDX: releasing firmware resouces\n");
-	release_firmware(*raw);
-
-	return msvdx_priv->msvdx_fw;
-}
-
-int psb_setup_fw(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	uint32_t ram_bank_size;
-	struct msvdx_fw *fw;
-	uint32_t *fw_ptr = NULL;
-	uint32_t *text_ptr = NULL;
-	uint32_t *data_ptr = NULL;
-	const struct firmware *raw = NULL;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-	int ec_firmware = 0, ret = 0;
-
-	/* todo : Assert the clock is on - if not turn it on to upload code */
-	PSB_DEBUG_GENERAL("MSVDX: psb_setup_fw\n");
-	PSB_WMSVDX32(clk_enable_all, MSVDX_MAN_CLK_ENABLE);
-
-	/* Reset MTX */
-	PSB_WMSVDX32(MSVDX_MTX_SOFT_RESET_MTX_RESET_MASK,
-		     MSVDX_MTX_SOFT_RESET);
-
-	/* Initialses Communication controll area to 0 */
-/*
-  if (psb_rev_id >= POULSBO_D1) {
-  PSB_DEBUG_GENERAL("MSVDX: Detected Poulsbo D1"
-  " or later revision.\n");
-  PSB_WMSVDX32(MSVDX_DEVICE_NODE_FLAGS_DEFAULT_D1,
-  MSVDX_COMMS_OFFSET_FLAGS);
-  } else {
-  PSB_DEBUG_GENERAL("MSVDX: Detected Poulsbo D0"
-  " or earlier revision.\n");
-  PSB_WMSVDX32(MSVDX_DEVICE_NODE_FLAGS_DEFAULT_D0,
-  MSVDX_COMMS_OFFSET_FLAGS);
-  }
-*/
-
-	if(IS_CDV(dev)) {
-		PSB_WMSVDX32(FIRMWAREID, MSVDX_COMMS_FIRMWARE_ID);
-	}
-
-	PSB_WMSVDX32(0, MSVDX_COMMS_ERROR_TRIG);
-	PSB_WMSVDX32(199, MSVDX_MTX_SYSC_TIMERDIV); /* MTX_SYSC_TIMERDIV */
-	PSB_WMSVDX32(0, MSVDX_EXT_FW_ERROR_STATE); /* EXT_FW_ERROR_STATE */
-
-	PSB_WMSVDX32(0, MSVDX_COMMS_MSG_COUNTER);
-	PSB_WMSVDX32(0, MSVDX_COMMS_SIGNATURE);
-	PSB_WMSVDX32(0, MSVDX_COMMS_TO_HOST_RD_INDEX);
-	PSB_WMSVDX32(0, MSVDX_COMMS_TO_HOST_WRT_INDEX);
-	PSB_WMSVDX32(0, MSVDX_COMMS_TO_MTX_RD_INDEX);
-	PSB_WMSVDX32(0, MSVDX_COMMS_TO_MTX_WRT_INDEX);
-	PSB_WMSVDX32(0, MSVDX_COMMS_FW_STATUS);
-	PSB_WMSVDX32(DSIABLE_IDLE_GPIO_SIG | DSIABLE_Auto_CLOCK_GATING | RETURN_VDEB_DATA_IN_COMPLETION | DSIABLE_FW_WDT,
-		     MSVDX_COMMS_OFFSET_FLAGS);
-	PSB_WMSVDX32(0, MSVDX_COMMS_SIGNATURE);
-	/* read register bank size */
-	{
-		uint32_t bank_size, reg;
-		reg = PSB_RMSVDX32(MSVDX_MTX_RAM_BANK);
-		bank_size =
-			REGIO_READ_FIELD(reg, MSVDX_MTX_RAM_BANK,
-					 CR_MTX_RAM_BANK_SIZE);
-		ram_bank_size = (uint32_t) (1 << (bank_size + 2));
-	}
-
-	PSB_DEBUG_GENERAL("MSVDX: RAM bank size = %d bytes\n",
-			  ram_bank_size);
-
-	/* if FW already loaded from storage */
-	if (msvdx_priv->msvdx_fw)
-		fw_ptr = msvdx_priv->msvdx_fw;
-	else {
-		if (IS_CDV(dev)) {
-			if(IS_FW_UPDATED)
-				fw_ptr = msvdx_get_fw(dev, &raw, "msvdx_fw_mfld_DE2.0.bin");
-			else
-				fw_ptr = msvdx_get_fw(dev, &raw, "msvdx_fw_mfld.bin");
-
-			PSB_DEBUG_GENERAL("MSVDX:load msvdx_fw_mfld_DE2.0.bin by udevd\n");
-		}
-		else
-			DRM_ERROR("MSVDX:HW is neither mrst nor mfld\n");
-	}
-
-	if (!fw_ptr) {
-		DRM_ERROR("MSVDX:load msvdx_fw.bin failed,is udevd running?\n");
-		ret = 1;
-		goto out;
-	}
-
-	if (!msvdx_priv->is_load) {/* Load firmware into BO */
-		PSB_DEBUG_GENERAL("MSVDX:load msvdx_fw.bin by udevd into BO\n");
-		if(IS_CDV(dev)) {
-			if(IS_FW_UPDATED)
-				ret = msvdx_get_fw_bo(dev, &raw, "msvdx_fw_mfld_DE2.0.bin");
-			else
-				ret = msvdx_get_fw_bo(dev, &raw, "msvdx_fw_mfld.bin");
-		}
-		else
-			DRM_ERROR("MSVDX:HW is neither mrst nor mfld\n");
-		msvdx_priv->is_load = 1;
-	}
-
-
-	fw = (struct msvdx_fw *) fw_ptr;
-
-	if(ec_firmware) {
-		fw_ptr += (((sizeof(struct msvdx_fw) + (fw->text_size + fw->data_size)*4 + 0xfff) & ~0xfff)/sizeof(uint32_t));
-		fw = (struct msvdx_fw *) fw_ptr;
-	}
-
-	/*
-	  if (fw->ver != 0x02) {
-	  DRM_ERROR("psb: msvdx_fw.bin firmware version mismatch,"
-	  "got version=%02x expected version=%02x\n",
-	  fw->ver, 0x02);
-	  ret = 1;
-	  goto out;
-	  }
-	*/
-	text_ptr =
-		(uint32_t *) ((uint8_t *) fw_ptr + sizeof(struct msvdx_fw));
-	data_ptr = text_ptr + fw->text_size;
-
-	if (fw->text_size == 2858)
-		PSB_DEBUG_GENERAL(
-			"MSVDX: FW ver 1.00.10.0187 of SliceSwitch variant\n");
-	else if (fw->text_size == 3021)
-		PSB_DEBUG_GENERAL(
-			"MSVDX: FW ver 1.00.10.0187 of FrameSwitch variant\n");
-	else if (fw->text_size == 2841)
-		PSB_DEBUG_GENERAL("MSVDX: FW ver 1.00.10.0788\n");
-	else if (fw->text_size == 3147)
-		PSB_DEBUG_GENERAL("MSVDX: FW ver BUILD_DXVA_FW1.00.10.1042 of SliceSwitch variant\n");
-	else if (fw->text_size == 3097)
-		PSB_DEBUG_GENERAL("MSVDX: FW ver BUILD_DXVA_FW1.00.10.0963.02.0011 of FrameSwitch variant\n");
-	else
-		PSB_DEBUG_GENERAL("MSVDX: FW ver unknown\n");
-
-
-	PSB_DEBUG_GENERAL("MSVDX: Retrieved pointers for firmware\n");
-	PSB_DEBUG_GENERAL("MSVDX: text_size: %d\n", fw->text_size);
-	PSB_DEBUG_GENERAL("MSVDX: data_size: %d\n", fw->data_size);
-	PSB_DEBUG_GENERAL("MSVDX: data_location: 0x%x\n",
-			  fw->data_location);
-	PSB_DEBUG_GENERAL("MSVDX: First 4 bytes of text: 0x%x\n",
-			  *text_ptr);
-	PSB_DEBUG_GENERAL("MSVDX: First 4 bytes of data: 0x%x\n",
-			  *data_ptr);
-
-	PSB_DEBUG_GENERAL("MSVDX: Uploading firmware\n");
-#if UPLOAD_FW_BY_DMA
-	psb_upload_fw(dev_priv, 0, msvdx_priv->mtx_mem_size/4, ec_firmware);
-#else
-	psb_upload_fw(dev_priv, MTX_CORE_CODE_MEM, ram_bank_size,
-		      PC_START_ADDRESS - MTX_CODE_BASE, fw->text_size,
-		      text_ptr);
-	psb_upload_fw(dev_priv, MTX_CORE_DATA_MEM, ram_bank_size,
-		      fw->data_location - MTX_DATA_BASE, fw->data_size,
-		      data_ptr);
-#endif
-#if 0
-	/* todo :  Verify code upload possibly only in debug */
-	ret = psb_verify_fw(dev_priv, ram_bank_size,
-			    MTX_CORE_CODE_MEM,
-			    PC_START_ADDRESS - MTX_CODE_BASE,
-			    fw->text_size, text_ptr);
-	if (ret) {
-		/* Firmware code upload failed */
-		ret = 1;
-		goto out;
-	}
-
-	ret = psb_verify_fw(dev_priv, ram_bank_size, MTX_CORE_DATA_MEM,
-			    fw->data_location - MTX_DATA_BASE,
-			    fw->data_size, data_ptr);
-	if (ret) {
-		/* Firmware data upload failed */
-		ret = 1;
-		goto out;
-	}
-#else
-	(void)psb_verify_fw;
-#endif
-	/*	-- Set starting PC address	*/
-	psb_write_mtx_core_reg(dev_priv, MTX_PC, PC_START_ADDRESS);
-
-	/*	-- Turn on the thread	*/
-	PSB_WMSVDX32(MSVDX_MTX_ENABLE_MTX_ENABLE_MASK, MSVDX_MTX_ENABLE);
-
-	/* Wait for the signature value to be written back */
-	ret = psb_wait_for_register(dev_priv, MSVDX_COMMS_SIGNATURE,
-				    MSVDX_COMMS_SIGNATURE_VALUE, /*Required value*/
-				    0xffffffff /* Enabled bits */);
-	if (ret) {
-		DRM_ERROR("MSVDX: firmware fails to initialize.\n");
-		goto out;
-	}
-
-	PSB_DEBUG_GENERAL("MSVDX: MTX Initial indications OK\n");
-	PSB_DEBUG_GENERAL("MSVDX: MSVDX_COMMS_AREA_ADDR = %08x\n",
-			  MSVDX_COMMS_AREA_ADDR);
-#if 0
-
-	/* Send test message */
-	{
-		uint32_t msg_buf[FW_VA_DEBUG_TEST2_SIZE >> 2];
-
-		MEMIO_WRITE_FIELD(msg_buf, FW_VA_DEBUG_TEST2_MSG_SIZE,
-				  FW_VA_DEBUG_TEST2_SIZE);
-		MEMIO_WRITE_FIELD(msg_buf, FW_VA_DEBUG_TEST2_ID,
-				  VA_MSGID_TEST2);
-
-		ret = psb_mtx_send(dev_priv, msg_buf);
-		if (ret) {
-			DRM_ERROR("psb: MSVDX sending fails.\n");
-			goto out;
-		}
-
-		/* Wait for Mtx to ack this message */
-		psb_poll_mtx_irq(dev_priv);
-
-	}
-#endif
-out:
-
-	return ret;
-}
-
-
-static void psb_free_ccb(struct ttm_buffer_object **ccb)
-{
-	ttm_bo_unref(ccb);
-	*ccb = NULL;
-}
-
-/**
- * Reset chip and disable interrupts.
- * Return 0 success, 1 failure
- */
-int psb_msvdx_reset(struct drm_psb_private *dev_priv)
-{
-	int ret = 0;
-
-	if(IS_PENWELL(dev_priv->dev)) {
-		int loop;
-		/* Enable Clocks */
-		PSB_DEBUG_GENERAL("Enabling clocks\n");
-		PSB_WMSVDX32(clk_enable_all, MSVDX_MAN_CLK_ENABLE);
-
-		/* Always pause the MMU as the core may be still active when resetting.  It is very bad to have memory 
-		   activity at the same time as a reset - Very Very bad */
-		PSB_WMSVDX32(2, MSVDX_MMU_CONTROL0);
-
-		for(loop = 0; loop < 50; loop++)
-			ret = psb_wait_for_register(dev_priv, MSVDX_MMU_MEM_REQ, 0,
-						    0xff);
-		if(ret)
-			return ret;
-	}
-	/* Issue software reset */
-	/* PSB_WMSVDX32(msvdx_sw_reset_all, MSVDX_CONTROL); */
-        PSB_WMSVDX32(MSVDX_CONTROL_CR_MSVDX_SOFT_RESET_MASK, MSVDX_CONTROL);
-
-	ret = psb_wait_for_register(dev_priv, MSVDX_CONTROL, 0,
-				    MSVDX_CONTROL_CR_MSVDX_SOFT_RESET_MASK);
-
-	if (!ret) {
-		/* Clear interrupt enabled flag */
-		PSB_WMSVDX32(0, MSVDX_HOST_INTERRUPT_ENABLE);
-
-		/* Clear any pending interrupt flags */
-		PSB_WMSVDX32(0xFFFFFFFF, MSVDX_INTERRUPT_CLEAR);
-	}
-
-	/* mutex_destroy(&msvdx_priv->msvdx_mutex); */
-
-	return ret;
-}
-
-static int psb_allocate_ccb(struct drm_device *dev,
-			    struct ttm_buffer_object **ccb,
-			    uint32_t *base_addr, unsigned long size)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-	struct ttm_bo_device *bdev = &dev_priv->bdev;
-	int ret;
-	struct ttm_bo_kmap_obj tmp_kmap;
-	bool is_iomem;
-
-	PSB_DEBUG_INIT("MSVDX: allocate CCB\n");
-
-	ret = ttm_buffer_object_create(bdev, size,
-				       ttm_bo_type_kernel,
-				       DRM_PSB_FLAG_MEM_MMU |
-				       TTM_PL_FLAG_NO_EVICT, 0, 0, 0,
-				       NULL, ccb);
-	if (ret) {
-		DRM_ERROR("MSVDX:failed to allocate CCB.\n");
-		*ccb = NULL;
-		return 1;
-	}
-
-	ret = ttm_bo_kmap(*ccb, 0, (*ccb)->num_pages, &tmp_kmap);
-	if (ret) {
-		PSB_DEBUG_GENERAL("ttm_bo_kmap failed ret: %d\n", ret);
-		ttm_bo_unref(ccb);
-		*ccb = NULL;
-		return 1;
-	}
-/*
-  memset(ttm_kmap_obj_virtual(&tmp_kmap, &is_iomem), 0,
-  RENDEC_A_SIZE);
-*/
-	memset(ttm_kmap_obj_virtual(&tmp_kmap, &is_iomem), 0,
-	       size);
-	ttm_bo_kunmap(&tmp_kmap);
-
-	*base_addr = (*ccb)->offset;
-	return 0;
-}
-
-static ssize_t psb_msvdx_pmstate_show(struct device *dev,
-				      struct device_attribute *attr, char *buf)
-{
-	struct drm_device *drm_dev = dev_get_drvdata(dev);
-	struct drm_psb_private *dev_priv;
-	struct msvdx_private *msvdx_priv;
-	unsigned int pmstate;
-	unsigned long flags;
-	int ret = -EINVAL;
-
-	if (drm_dev == NULL)
-		return 0;
-
-	dev_priv = drm_dev->dev_private;
-	msvdx_priv = dev_priv->msvdx_private;
-	pmstate = msvdx_priv->pmstate;
-
-	spin_lock_irqsave(&msvdx_priv->msvdx_lock, flags);
-	ret = snprintf(buf, 64, "%s\n",
-		       (pmstate == PSB_PMSTATE_POWERUP) ? "powerup"
-		       : ((pmstate == PSB_PMSTATE_POWERDOWN) ? "powerdown"
-			  : "clockgated"));
-	spin_unlock_irqrestore(&msvdx_priv->msvdx_lock, flags);
-
-	return ret;
-}
-
-static DEVICE_ATTR(msvdx_pmstate, 0444, psb_msvdx_pmstate_show, NULL);
-
-int psb_msvdx_init(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	/* uint32_t clk_gate_ctrl = clk_enable_all; */
-	uint32_t cmd;
-	int ret;
-	struct msvdx_private *msvdx_priv;
-/*
-	uint32_t reg_value;
-	uint32_t reg_val;
-*/
-	if (!dev_priv->msvdx_private) {
-		msvdx_priv = kmalloc(sizeof(struct msvdx_private), GFP_KERNEL);
-		if (msvdx_priv == NULL)
-			goto err_exit;
-
-		dev_priv->msvdx_private = msvdx_priv;
-		memset(msvdx_priv, 0, sizeof(struct msvdx_private));
-
-		/* get device --> drm_device --> drm_psb_private --> msvdx_priv
-		 * for psb_msvdx_pmstate_show: msvdx_pmpolicy
-		 * if not pci_set_drvdata, can't get drm_device from device
-		 */
-		/* pci_set_drvdata(dev->pdev, dev); */
-		if (device_create_file(&dev->pdev->dev,
-				       &dev_attr_msvdx_pmstate))
-			DRM_ERROR("MSVDX: could not create sysfs file\n");
-		msvdx_priv->sysfs_pmstate = sysfs_get_dirent(
-			dev->pdev->dev.kobj.sd, 
-			NULL,
-			"msvdx_pmstate");
-	}
-
-	msvdx_priv = dev_priv->msvdx_private;
-	if (!msvdx_priv->ccb0) { /* one for the first time */
-		/* Initialize comand msvdx queueing */
-		INIT_LIST_HEAD(&msvdx_priv->msvdx_queue);
-		INIT_LIST_HEAD(&msvdx_priv->deblock_queue);
-		mutex_init(&msvdx_priv->msvdx_mutex);
-		spin_lock_init(&msvdx_priv->msvdx_lock);
-		/*figure out the stepping */
-		pci_read_config_byte(dev->pdev, PSB_REVID_OFFSET, &psb_rev_id);
-	}
-
-	msvdx_priv->vec_local_mem_size = VEC_LOCAL_MEM_BYTE_SIZE;
-	if (!msvdx_priv->vec_local_mem_data) {
-		msvdx_priv->vec_local_mem_data = 
-			kzalloc(msvdx_priv->vec_local_mem_size, GFP_KERNEL);
-		if (msvdx_priv->vec_local_mem_data == NULL) {
-			PSB_DEBUG_GENERAL("Vec local memory fail\n");
-			goto err_exit;
-		}
-	}
-
-	msvdx_priv->msvdx_busy = 0;
-	msvdx_priv->msvdx_hw_busy = 1;
-
-	/* Enable Clocks */
-	PSB_DEBUG_GENERAL("Enabling clocks\n");
-	PSB_WMSVDX32(clk_enable_all, MSVDX_MAN_CLK_ENABLE);
-
-	/* Issue software reset for all but core*/
-/*
-	PSB_WMSVDX32((uint32_t) ~MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_SOFT_RESET_MASK, REGISTER(MSVDX_CORE, CR_MSVDX_CONTROL));
-	reg_value = PSB_RMSVDX32(REGISTER(MSVDX_CORE, CR_MSVDX_CONTROL));
-	PSB_WMSVDX32(0, REGISTER(MSVDX_CORE, CR_MSVDX_CONTROL));
-	PSB_WMSVDX32(MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_SOFT_RESET_MASK, REGISTER(MSVDX_CORE, CR_MSVDX_CONTROL));
-
-	reg_val = 0;
-	REGIO_WRITE_FIELD(reg_val, MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL, FE_WDT_CNT_CTRL, 0x3);
-	REGIO_WRITE_FIELD(reg_val, MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL, FE_WDT_ENABLE, 0);
-	REGIO_WRITE_FIELD(reg_val, MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL, FE_WDT_ACTION0, 1);
-	REGIO_WRITE_FIELD(reg_val, MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL, FE_WDT_CLEAR_SELECT, 1);
-	REGIO_WRITE_FIELD(reg_val, MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL, FE_WDT_CLKDIV_SELECT, 7);
-	PSB_WMSVDX32(820, REGISTER( MSVDX_CORE, CR_FE_MSVDX_WDT_COMPAREMATCH ));
-	PSB_WMSVDX32(reg_val, REGISTER( MSVDX_CORE, CR_FE_MSVDX_WDT_CONTROL ));
-
-	reg_val = 0;
-	REGIO_WRITE_FIELD(reg_val, MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL, BE_WDT_CNT_CTRL, 0x7);
-	REGIO_WRITE_FIELD(reg_val, MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL, BE_WDT_ENABLE, 0);
-	REGIO_WRITE_FIELD(reg_val, MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL, BE_WDT_ACTION0, 1);
-	REGIO_WRITE_FIELD(reg_val, MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL, BE_WDT_CLEAR_SELECT, 0xd);
-	REGIO_WRITE_FIELD(reg_val, MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL, BE_WDT_CLKDIV_SELECT, 7);
-	PSB_WMSVDX32(8200, REGISTER(MSVDX_CORE, CR_BE_MSVDX_WDT_COMPAREMATCH));
-	PSB_WMSVDX32(reg_val, REGISTER(MSVDX_CORE, CR_BE_MSVDX_WDT_CONTROL)); 
-*/
-	/* Enable MMU by removing all bypass bits */
-	PSB_WMSVDX32(0, MSVDX_MMU_CONTROL0);
-
-	/* move firmware loading to the place receiving first command buffer */
-
-	PSB_DEBUG_GENERAL("MSVDX: Setting up RENDEC,allocate CCB 0/1\n");
-	/* Allocate device virtual memory as required by rendec.... */
-	if (!msvdx_priv->ccb0) {
-		ret = psb_allocate_ccb(dev, &msvdx_priv->ccb0,
-				       &msvdx_priv->base_addr0,
-				       RENDEC_A_SIZE);
-		if (ret) {
-			PSB_DEBUG_GENERAL("Allocate Rendec A fail\n");
-			goto err_exit;
-		}
-	}
-
-	if (!msvdx_priv->ccb1) {
-		ret = psb_allocate_ccb(dev, &msvdx_priv->ccb1,
-				       &msvdx_priv->base_addr1,
-				       RENDEC_B_SIZE);
-		if (ret)
-			goto err_exit;
-	}
-
-	if(!msvdx_priv->fw) {
-		uint32_t core_rev;
-		uint32_t fw_bo_size;
-
-		core_rev = PSB_RMSVDX32(MSVDX_CORE_REV);
-
-		if( (core_rev&0xffffff ) < 0x020000 )
-			msvdx_priv->mtx_mem_size = 16*1024;
-		else
-			msvdx_priv->mtx_mem_size = 40*1024;
-
-		if(IS_CDV(dev))
-			fw_bo_size =  msvdx_priv->mtx_mem_size + 4096;
-		else
-			fw_bo_size =  ((msvdx_priv->mtx_mem_size + 8192) & ~0xfff)*2; /* fw + ec_fw */
-
-		PSB_DEBUG_INIT("MSVDX: MTX mem size is 0x%08xbytes  allocate firmware BO size 0x%08x\n", msvdx_priv->mtx_mem_size, 
-			       fw_bo_size);
-
-                ret = ttm_buffer_object_create(&dev_priv->bdev, fw_bo_size, /* DMA may run over a page */
-                                               ttm_bo_type_kernel,
-                                               DRM_PSB_FLAG_MEM_MMU | TTM_PL_FLAG_NO_EVICT,
-                                               0, 0, 0, NULL, &msvdx_priv->fw);
- 
-		if (ret) {
-			PSB_DEBUG_GENERAL("Allocate firmware BO fail\n");
-			goto err_exit;
-		}
-	}
-
-	PSB_DEBUG_GENERAL("MSVDX: RENDEC A: %08x RENDEC B: %08x\n",
-			  msvdx_priv->base_addr0, msvdx_priv->base_addr1);
-
-	PSB_WMSVDX32(msvdx_priv->base_addr0, MSVDX_RENDEC_BASE_ADDR0);
-	PSB_WMSVDX32(msvdx_priv->base_addr1, MSVDX_RENDEC_BASE_ADDR1);
-
-	cmd = 0;
-	REGIO_WRITE_FIELD(cmd, MSVDX_RENDEC_BUFFER_SIZE,
-			  RENDEC_BUFFER_SIZE0, RENDEC_A_SIZE / 4096);
-	REGIO_WRITE_FIELD(cmd, MSVDX_RENDEC_BUFFER_SIZE,
-			  RENDEC_BUFFER_SIZE1, RENDEC_B_SIZE / 4096);
-	PSB_WMSVDX32(cmd, MSVDX_RENDEC_BUFFER_SIZE);
-
-	if(!msvdx_priv->fw) {
-		uint32_t core_rev;
-
-		core_rev = PSB_RMSVDX32(MSVDX_CORE_REV);
-
-		if( (core_rev&0xffffff ) < 0x020000 )
-			msvdx_priv->mtx_mem_size = 16*1024;
-		else
-			msvdx_priv->mtx_mem_size = 40*1024;
-
-		PSB_DEBUG_INIT("MSVDX: MTX mem size is 0x%08xbytes  allocate firmware BO size 0x%08x\n", msvdx_priv->mtx_mem_size, 
-			       msvdx_priv->mtx_mem_size + 4096);
-
-                ret = ttm_buffer_object_create(&dev_priv->bdev, msvdx_priv->mtx_mem_size + 4096, /* DMA may run over a page */
-                                               ttm_bo_type_kernel,
-                                               DRM_PSB_FLAG_MEM_MMU | TTM_PL_FLAG_NO_EVICT,
-                                               0, 0, 0, NULL, &msvdx_priv->fw);
- 
-		if (ret) {
-			PSB_DEBUG_GENERAL("Allocate firmware BO fail\n");
-			goto err_exit;
-		}
-	}
-
-	cmd = 0;
-	REGIO_WRITE_FIELD(cmd, MSVDX_RENDEC_CONTROL1,
-			  RENDEC_DECODE_START_SIZE, 0);
-	REGIO_WRITE_FIELD(cmd, MSVDX_RENDEC_CONTROL1,
-			  RENDEC_BURST_SIZE_W, 1);
-	REGIO_WRITE_FIELD(cmd, MSVDX_RENDEC_CONTROL1,
-			  RENDEC_BURST_SIZE_R, 1);
-	REGIO_WRITE_FIELD(cmd, MSVDX_RENDEC_CONTROL1,
-			  RENDEC_EXTERNAL_MEMORY, 1);
-	PSB_WMSVDX32(cmd, MSVDX_RENDEC_CONTROL1);
-
-	cmd = 0x00101010;
-	PSB_WMSVDX32(cmd, MSVDX_RENDEC_CONTEXT0);
-	PSB_WMSVDX32(cmd, MSVDX_RENDEC_CONTEXT1);
-	PSB_WMSVDX32(cmd, MSVDX_RENDEC_CONTEXT2);
-	PSB_WMSVDX32(cmd, MSVDX_RENDEC_CONTEXT3);
-	PSB_WMSVDX32(cmd, MSVDX_RENDEC_CONTEXT4);
-	PSB_WMSVDX32(cmd, MSVDX_RENDEC_CONTEXT5);
-
-	cmd = 0;
-	REGIO_WRITE_FIELD(cmd, MSVDX_RENDEC_CONTROL0, RENDEC_INITIALISE,
-			  1);
-	PSB_WMSVDX32(cmd, MSVDX_RENDEC_CONTROL0);
-
-	/* PSB_WMSVDX32(clk_enable_minimal, MSVDX_MAN_CLK_ENABLE); */
-	PSB_DEBUG_INIT("MSVDX:defer firmware loading to the"
-		       " place when receiving user space commands\n");
-
-	msvdx_priv->msvdx_fw_loaded = 0; /* need to load firware */
-
-	PSB_WMSVDX32(820, MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH);
-	PSB_WMSVDX32(8200, MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH);
-
-	PSB_WMSVDX32(820, MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH);
-	PSB_WMSVDX32(8200, MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH);
-
-	psb_msvdx_clearirq(dev);
-	psb_msvdx_enableirq(dev);
-
-	if (IS_MSVDX(dev)) {
-		PSB_DEBUG_INIT("MSDVX:old clock gating disable = 0x%08x\n",
-			       PSB_RVDC32(PSB_MSVDX_CLOCKGATING));
-	}
-
-	{
-		cmd = 0;
-		cmd = PSB_RMSVDX32(MSVDX_VEC_SHIFTREG_CONTROL); /* VEC_SHIFTREG_CONTROL */
-		REGIO_WRITE_FIELD(cmd,
-				  VEC_SHIFTREG_CONTROL,
-				  SR_MASTER_SELECT,
-				  1);  /* Host */
-		PSB_WMSVDX32(cmd, MSVDX_VEC_SHIFTREG_CONTROL);
-	}
-
-#if 0
-	ret = psb_setup_fw(dev);
-	if (ret)
-		goto err_exit;
-	/* Send Initialisation message to firmware */
-	if (0) {
-		uint32_t msg_init[FW_VA_INIT_SIZE >> 2];
-		MEMIO_WRITE_FIELD(msg_init, FWRK_GENMSG_SIZE,
-				  FW_VA_INIT_SIZE);
-		MEMIO_WRITE_FIELD(msg_init, FWRK_GENMSG_ID, VA_MSGID_INIT);
-
-		/* Need to set this for all but A0 */
-		MEMIO_WRITE_FIELD(msg_init, FW_VA_INIT_GLOBAL_PTD,
-				  psb_get_default_pd_addr(dev_priv->mmu));
-
-		ret = psb_mtx_send(dev_priv, msg_init);
-		if (ret)
-			goto err_exit;
-
-		psb_poll_mtx_irq(dev_priv);
-	}
-#endif
-
-	return 0;
-
-err_exit:
-	DRM_ERROR("MSVDX: initialization failed\n");
-	if (msvdx_priv && msvdx_priv->ccb0)
-		psb_free_ccb(&msvdx_priv->ccb0);
-	if (msvdx_priv && msvdx_priv->ccb1)
-		psb_free_ccb(&msvdx_priv->ccb1);
-	if (dev_priv->msvdx_private) {
-		kfree(dev_priv->msvdx_private);
-		dev_priv->msvdx_private = NULL;
-	}
-	return 1;
-}
-
-int psb_msvdx_uninit(struct drm_device *dev)
-{
-	struct drm_psb_private *dev_priv = dev->dev_private;
-	struct msvdx_private *msvdx_priv = dev_priv->msvdx_private;
-
-	/* Reset MSVDX chip */
-	psb_msvdx_reset(dev_priv);
-
-	/* PSB_WMSVDX32 (clk_enable_minimal, MSVDX_MAN_CLK_ENABLE); */
-	PSB_DEBUG_INIT("MSVDX:set the msvdx clock to 0\n");
-	PSB_WMSVDX32(0, MSVDX_MAN_CLK_ENABLE);
-
-	if (NULL == msvdx_priv)
-	{
-		DRM_ERROR("MSVDX: psb_msvdx_uninit: msvdx_priv is NULL!\n");
-		return -1;
-	}
-
-	if (msvdx_priv->ccb0)
-		psb_free_ccb(&msvdx_priv->ccb0);
-	if (msvdx_priv->ccb1)
-		psb_free_ccb(&msvdx_priv->ccb1);
-	if (msvdx_priv->msvdx_fw)
-		kfree(msvdx_priv->msvdx_fw
-			);
-	if (msvdx_priv->vec_local_mem_data)
-		kfree(msvdx_priv->vec_local_mem_data);
-
-	if (msvdx_priv) {
-		/* pci_set_drvdata(dev->pdev, NULL); */
-		device_remove_file(&dev->pdev->dev, &dev_attr_msvdx_pmstate);
-		sysfs_put(msvdx_priv->sysfs_pmstate);
-		msvdx_priv->sysfs_pmstate = NULL;
-
-		kfree(msvdx_priv);
-		dev_priv->msvdx_private = NULL;
-	}
-
-	return 0;
-}
diff --git a/drivers/staging/cdv/imgv/psb_ttm_fence.c b/drivers/staging/cdv/imgv/psb_ttm_fence.c
deleted file mode 100644
index c5710c1..0000000
--- a/drivers/staging/cdv/imgv/psb_ttm_fence.c
+++ /dev/null
@@ -1,603 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) 2006-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA
- * All Rights Reserved.
- * Copyright (c) 2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
- */
-
-#include "psb_ttm_fence_api.h"
-#include "psb_ttm_fence_driver.h"
-#include <linux/wait.h>
-#include <linux/sched.h>
-
-#include <drm/drmP.h>
-
-/*
- * Simple implementation for now.
- */
-
-static void ttm_fence_lockup(struct ttm_fence_object *fence, uint32_t mask)
-{
-	struct ttm_fence_class_manager *fc = ttm_fence_fc(fence);
-
-	printk(KERN_ERR "GPU lockup dectected on engine %u "
-	       "fence type 0x%08x\n",
-	       (unsigned int)fence->fence_class, (unsigned int)mask);
-	/*
-	 * Give engines some time to idle?
-	 */
-
-	write_lock(&fc->lock);
-	ttm_fence_handler(fence->fdev, fence->fence_class,
-			  fence->sequence, mask, -EBUSY);
-	write_unlock(&fc->lock);
-}
-
-/*
- * Convenience function to be called by fence::wait methods that
- * need polling.
- */
-
-int ttm_fence_wait_polling(struct ttm_fence_object *fence, bool lazy,
-			   bool interruptible, uint32_t mask)
-{
-	struct ttm_fence_class_manager *fc = ttm_fence_fc(fence);
-	const struct ttm_fence_driver *driver = ttm_fence_driver(fence);
-	uint32_t count = 0;
-	int ret;
-	unsigned long end_jiffies = fence->timeout_jiffies;
-
-	DECLARE_WAITQUEUE(entry, current);
-	add_wait_queue(&fc->fence_queue, &entry);
-
-	ret = 0;
-
-	for (;;) {
-		__set_current_state((interruptible) ?
-				    TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE);
-		if (ttm_fence_object_signaled(fence, mask))
-			break;
-		if (time_after_eq(jiffies, end_jiffies)) {
-			if (driver->lockup)
-				driver->lockup(fence, mask);
-			else
-				ttm_fence_lockup(fence, mask);
-			continue;
-		}
-		if (lazy)
-			schedule_timeout(1);
-		else if ((++count & 0x0F) == 0) {
-			__set_current_state(TASK_RUNNING);
-			schedule();
-			__set_current_state((interruptible) ?
-					    TASK_INTERRUPTIBLE :
-					    TASK_UNINTERRUPTIBLE);
-		}
-		if (interruptible && signal_pending(current)) {
-			ret = -ERESTART;
-			break;
-		}
-	}
-	__set_current_state(TASK_RUNNING);
-	remove_wait_queue(&fc->fence_queue, &entry);
-	return ret;
-}
-
-/*
- * Typically called by the IRQ handler.
- */
-
-void ttm_fence_handler(struct ttm_fence_device *fdev, uint32_t fence_class,
-		       uint32_t sequence, uint32_t type, uint32_t error)
-{
-	int wake = 0;
-	uint32_t diff;
-	uint32_t relevant_type;
-	uint32_t new_type;
-	struct ttm_fence_class_manager *fc = &fdev->fence_class[fence_class];
-	const struct ttm_fence_driver *driver = ttm_fence_driver_from_dev(fdev);
-	struct list_head *head;
-	struct ttm_fence_object *fence, *next;
-	bool found = false;
-
-	if (list_empty(&fc->ring))
-		return;
-
-	list_for_each_entry(fence, &fc->ring, ring) {
-		diff = (sequence - fence->sequence) & fc->sequence_mask;
-		if (diff > fc->wrap_diff) {
-			found = true;
-			break;
-		}
-	}
-
-	fc->waiting_types &= ~type;
-	head = (found) ? &fence->ring : &fc->ring;
-
-	list_for_each_entry_safe_reverse(fence, next, head, ring) {
-		if (&fence->ring == &fc->ring)
-			break;
-
-		DRM_DEBUG("Fence 0x%08lx, sequence 0x%08x, type 0x%08x\n",
-			  (unsigned long)fence, fence->sequence,
-			  fence->fence_type);
-
-		if (error) {
-			fence->info.error = error;
-			fence->info.signaled_types = fence->fence_type;
-			list_del_init(&fence->ring);
-			wake = 1;
-			break;
-		}
-
-		relevant_type = type & fence->fence_type;
-		new_type = (fence->info.signaled_types | relevant_type) ^
-		    fence->info.signaled_types;
-
-		if (new_type) {
-			fence->info.signaled_types |= new_type;
-			DRM_DEBUG("Fence 0x%08lx signaled 0x%08x\n",
-				  (unsigned long)fence,
-				  fence->info.signaled_types);
-
-			if (unlikely(driver->signaled))
-				driver->signaled(fence);
-
-			if (driver->needed_flush)
-				fc->pending_flush |=
-				    driver->needed_flush(fence);
-
-			if (new_type & fence->waiting_types)
-				wake = 1;
-		}
-
-		fc->waiting_types |=
-		    fence->waiting_types & ~fence->info.signaled_types;
-
-		if (!(fence->fence_type & ~fence->info.signaled_types)) {
-			DRM_DEBUG("Fence completely signaled 0x%08lx\n",
-				  (unsigned long)fence);
-			list_del_init(&fence->ring);
-		}
-	}
-
-	/*
-	 * Reinstate lost waiting types.
-	 */
-
-	if ((fc->waiting_types & type) != type) {
-		head = head->prev;
-		list_for_each_entry(fence, head, ring) {
-			if (&fence->ring == &fc->ring)
-				break;
-			diff =
-			    (fc->highest_waiting_sequence -
-			     fence->sequence) & fc->sequence_mask;
-			if (diff > fc->wrap_diff)
-				break;
-
-			fc->waiting_types |=
-			    fence->waiting_types & ~fence->info.signaled_types;
-		}
-	}
-
-	if (wake)
-		wake_up_all(&fc->fence_queue);
-}
-
-static void ttm_fence_unring(struct ttm_fence_object *fence)
-{
-	struct ttm_fence_class_manager *fc = ttm_fence_fc(fence);
-	unsigned long irq_flags;
-
-	write_lock_irqsave(&fc->lock, irq_flags);
-	list_del_init(&fence->ring);
-	write_unlock_irqrestore(&fc->lock, irq_flags);
-}
-
-bool ttm_fence_object_signaled(struct ttm_fence_object *fence, uint32_t mask)
-{
-	unsigned long flags;
-	bool signaled;
-	const struct ttm_fence_driver *driver = ttm_fence_driver(fence);
-	struct ttm_fence_class_manager *fc = ttm_fence_fc(fence);
-
-	mask &= fence->fence_type;
-	read_lock_irqsave(&fc->lock, flags);
-	signaled = (mask & fence->info.signaled_types) == mask;
-	read_unlock_irqrestore(&fc->lock, flags);
-	if (!signaled && driver->poll) {
-		write_lock_irqsave(&fc->lock, flags);
-		driver->poll(fence->fdev, fence->fence_class, mask);
-		signaled = (mask & fence->info.signaled_types) == mask;
-		write_unlock_irqrestore(&fc->lock, flags);
-	}
-	return signaled;
-}
-
-int ttm_fence_object_flush(struct ttm_fence_object *fence, uint32_t type)
-{
-	const struct ttm_fence_driver *driver = ttm_fence_driver(fence);
-	struct ttm_fence_class_manager *fc = ttm_fence_fc(fence);
-	unsigned long irq_flags;
-	uint32_t diff;
-	bool call_flush;
-
-	if (type & ~fence->fence_type) {
-		DRM_ERROR("Flush trying to extend fence type, "
-			  "0x%x, 0x%x\n", type, fence->fence_type);
-		return -EINVAL;
-	}
-
-	write_lock_irqsave(&fc->lock, irq_flags);
-	fence->waiting_types |= type;
-	fc->waiting_types |= fence->waiting_types;
-	diff = (fence->sequence - fc->highest_waiting_sequence) &
-	    fc->sequence_mask;
-
-	if (diff < fc->wrap_diff)
-		fc->highest_waiting_sequence = fence->sequence;
-
-	/*
-	 * fence->waiting_types has changed. Determine whether
-	 * we need to initiate some kind of flush as a result of this.
-	 */
-
-	if (driver->needed_flush)
-		fc->pending_flush |= driver->needed_flush(fence);
-
-	if (driver->poll)
-		driver->poll(fence->fdev, fence->fence_class,
-			     fence->waiting_types);
-
-	call_flush = (fc->pending_flush != 0);
-	write_unlock_irqrestore(&fc->lock, irq_flags);
-
-	if (call_flush && driver->flush)
-		driver->flush(fence->fdev, fence->fence_class);
-
-	return 0;
-}
-
-/*
- * Make sure old fence objects are signaled before their fence sequences are
- * wrapped around and reused.
- */
-
-void ttm_fence_flush_old(struct ttm_fence_device *fdev,
-			 uint32_t fence_class, uint32_t sequence)
-{
-	struct ttm_fence_class_manager *fc = &fdev->fence_class[fence_class];
-	struct ttm_fence_object *fence;
-	unsigned long irq_flags;
-	const struct ttm_fence_driver *driver = fdev->driver;
-	bool call_flush;
-
-	uint32_t diff;
-
-	write_lock_irqsave(&fc->lock, irq_flags);
-
-	list_for_each_entry_reverse(fence, &fc->ring, ring) {
-		diff = (sequence - fence->sequence) & fc->sequence_mask;
-		if (diff <= fc->flush_diff)
-			break;
-
-		fence->waiting_types = fence->fence_type;
-		fc->waiting_types |= fence->fence_type;
-
-		if (driver->needed_flush)
-			fc->pending_flush |= driver->needed_flush(fence);
-	}
-
-	if (driver->poll)
-		driver->poll(fdev, fence_class, fc->waiting_types);
-
-	call_flush = (fc->pending_flush != 0);
-	write_unlock_irqrestore(&fc->lock, irq_flags);
-
-	if (call_flush && driver->flush)
-		driver->flush(fdev, fence->fence_class);
-
-	/*
-	 * FIXME: Shold we implement a wait here for really old fences?
-	 */
-
-}
-
-int ttm_fence_object_wait(struct ttm_fence_object *fence,
-			  bool lazy, bool interruptible, uint32_t mask)
-{
-	const struct ttm_fence_driver *driver = ttm_fence_driver(fence);
-	struct ttm_fence_class_manager *fc = ttm_fence_fc(fence);
-	int ret = 0;
-	unsigned long timeout;
-	unsigned long cur_jiffies;
-	unsigned long to_jiffies;
-
-	if (mask & ~fence->fence_type) {
-		DRM_ERROR("Wait trying to extend fence type"
-			  " 0x%08x 0x%08x\n", mask, fence->fence_type);
-		BUG();
-		return -EINVAL;
-	}
-
-	if (driver->wait)
-		return driver->wait(fence, lazy, interruptible, mask);
-
-	ttm_fence_object_flush(fence, mask);
-retry:
-	if (!driver->has_irq ||
-	    driver->has_irq(fence->fdev, fence->fence_class, mask)) {
-
-		cur_jiffies = jiffies;
-		to_jiffies = fence->timeout_jiffies;
-
-		timeout = (time_after(to_jiffies, cur_jiffies)) ?
-		    to_jiffies - cur_jiffies : 1;
-
-		if (interruptible)
-			ret = wait_event_interruptible_timeout
-			    (fc->fence_queue,
-			     ttm_fence_object_signaled(fence, mask), timeout);
-		else
-			ret = wait_event_timeout
-			    (fc->fence_queue,
-			     ttm_fence_object_signaled(fence, mask), timeout);
-
-		if (unlikely(ret == -ERESTARTSYS))
-			return -ERESTART;
-
-		if (unlikely(ret == 0)) {
-			if (driver->lockup)
-				driver->lockup(fence, mask);
-			else
-				ttm_fence_lockup(fence, mask);
-			goto retry;
-		}
-
-		return 0;
-	}
-
-	return ttm_fence_wait_polling(fence, lazy, interruptible, mask);
-}
-
-int ttm_fence_object_emit(struct ttm_fence_object *fence, uint32_t fence_flags,
-			  uint32_t fence_class, uint32_t type)
-{
-	const struct ttm_fence_driver *driver = ttm_fence_driver(fence);
-	struct ttm_fence_class_manager *fc = ttm_fence_fc(fence);
-	unsigned long flags;
-	uint32_t sequence;
-	unsigned long timeout;
-	int ret;
-
-	ttm_fence_unring(fence);
-	ret = driver->emit(fence->fdev,
-			   fence_class, fence_flags, &sequence, &timeout);
-	if (ret)
-		return ret;
-
-	write_lock_irqsave(&fc->lock, flags);
-	fence->fence_class = fence_class;
-	fence->fence_type = type;
-	fence->waiting_types = 0;
-	fence->info.signaled_types = 0;
-	fence->info.error = 0;
-	fence->sequence = sequence;
-	fence->timeout_jiffies = timeout;
-	if (list_empty(&fc->ring))
-		fc->highest_waiting_sequence = sequence - 1;
-	list_add_tail(&fence->ring, &fc->ring);
-	fc->latest_queued_sequence = sequence;
-	write_unlock_irqrestore(&fc->lock, flags);
-	return 0;
-}
-
-int ttm_fence_object_init(struct ttm_fence_device *fdev,
-			  uint32_t fence_class,
-			  uint32_t type,
-			  uint32_t create_flags,
-			  void (*destroy) (struct ttm_fence_object *),
-			  struct ttm_fence_object *fence)
-{
-	int ret = 0;
-
-	kref_init(&fence->kref);
-	fence->fence_class = fence_class;
-	fence->fence_type = type;
-	fence->info.signaled_types = 0;
-	fence->waiting_types = 0;
-	fence->sequence = 0;
-	fence->info.error = 0;
-	fence->fdev = fdev;
-	fence->destroy = destroy;
-	INIT_LIST_HEAD(&fence->ring);
-	atomic_inc(&fdev->count);
-
-	if (create_flags & TTM_FENCE_FLAG_EMIT) {
-		ret = ttm_fence_object_emit(fence, create_flags,
-					    fence->fence_class, type);
-	}
-
-	return ret;
-}
-
-int ttm_fence_object_create(struct ttm_fence_device *fdev,
-			    uint32_t fence_class,
-			    uint32_t type,
-			    uint32_t create_flags,
-			    struct ttm_fence_object **c_fence)
-{
-	struct ttm_fence_object *fence;
-	int ret;
-
-	ret = ttm_mem_global_alloc(fdev->mem_glob,
-				   sizeof(*fence),
-				   false,
-				   false);
-	if (unlikely(ret != 0)) {
-		printk(KERN_ERR "Out of memory creating fence object\n");
-		return ret;
-	}
-
-	fence = kmalloc(sizeof(*fence), GFP_KERNEL);
-	if (!fence) {
-		printk(KERN_ERR "Out of memory creating fence object\n");
-		ttm_mem_global_free(fdev->mem_glob, sizeof(*fence));
-		return -ENOMEM;
-	}
-
-	ret = ttm_fence_object_init(fdev, fence_class, type,
-				    create_flags, NULL, fence);
-	if (ret) {
-		ttm_fence_object_unref(&fence);
-		return ret;
-	}
-	*c_fence = fence;
-
-	return 0;
-}
-
-static void ttm_fence_object_destroy(struct kref *kref)
-{
-	struct ttm_fence_object *fence =
-	    container_of(kref, struct ttm_fence_object, kref);
-	struct ttm_fence_class_manager *fc = ttm_fence_fc(fence);
-	unsigned long irq_flags;
-
-	write_lock_irqsave(&fc->lock, irq_flags);
-	list_del_init(&fence->ring);
-	write_unlock_irqrestore(&fc->lock, irq_flags);
-
-	atomic_dec(&fence->fdev->count);
-	if (fence->destroy)
-		fence->destroy(fence);
-	else {
-		ttm_mem_global_free(fence->fdev->mem_glob,
-				    sizeof(*fence));
-		kfree(fence);
-	}
-}
-
-void ttm_fence_device_release(struct ttm_fence_device *fdev)
-{
-	kfree(fdev->fence_class);
-}
-
-int
-ttm_fence_device_init(int num_classes,
-		      struct ttm_mem_global *mem_glob,
-		      struct ttm_fence_device *fdev,
-		      const struct ttm_fence_class_init *init,
-		      bool replicate_init,
-		      const struct ttm_fence_driver *driver)
-{
-	struct ttm_fence_class_manager *fc;
-	const struct ttm_fence_class_init *fci;
-	int i;
-
-	fdev->mem_glob = mem_glob;
-	fdev->fence_class = kzalloc(num_classes *
-				    sizeof(*fdev->fence_class), GFP_KERNEL);
-
-	if (unlikely(!fdev->fence_class))
-		return -ENOMEM;
-
-	fdev->num_classes = num_classes;
-	atomic_set(&fdev->count, 0);
-	fdev->driver = driver;
-
-	for (i = 0; i < fdev->num_classes; ++i) {
-		fc = &fdev->fence_class[i];
-		fci = &init[(replicate_init) ? 0 : i];
-
-		fc->wrap_diff = fci->wrap_diff;
-		fc->flush_diff = fci->flush_diff;
-		fc->sequence_mask = fci->sequence_mask;
-
-		rwlock_init(&fc->lock);
-		INIT_LIST_HEAD(&fc->ring);
-		init_waitqueue_head(&fc->fence_queue);
-	}
-
-	return 0;
-}
-
-struct ttm_fence_info ttm_fence_get_info(struct ttm_fence_object *fence)
-{
-	struct ttm_fence_class_manager *fc = ttm_fence_fc(fence);
-	struct ttm_fence_info tmp;
-	unsigned long irq_flags;
-
-	read_lock_irqsave(&fc->lock, irq_flags);
-	tmp = fence->info;
-	read_unlock_irqrestore(&fc->lock, irq_flags);
-
-	return tmp;
-}
-
-void ttm_fence_object_unref(struct ttm_fence_object **p_fence)
-{
-	struct ttm_fence_object *fence = *p_fence;
-
-	*p_fence = NULL;
-	(void)kref_put(&fence->kref, &ttm_fence_object_destroy);
-}
-
-/*
- * Placement / BO sync object glue.
- */
-
-bool ttm_fence_sync_obj_signaled(void *sync_obj, void *sync_arg)
-{
-	struct ttm_fence_object *fence = (struct ttm_fence_object *)sync_obj;
-	uint32_t fence_types = (uint32_t) (unsigned long)sync_arg;
-
-	return ttm_fence_object_signaled(fence, fence_types);
-}
-
-int ttm_fence_sync_obj_wait(void *sync_obj, void *sync_arg,
-			    bool lazy, bool interruptible)
-{
-	struct ttm_fence_object *fence = (struct ttm_fence_object *)sync_obj;
-	uint32_t fence_types = (uint32_t) (unsigned long)sync_arg;
-
-	return ttm_fence_object_wait(fence, lazy, interruptible, fence_types);
-}
-
-int ttm_fence_sync_obj_flush(void *sync_obj, void *sync_arg)
-{
-	struct ttm_fence_object *fence = (struct ttm_fence_object *)sync_obj;
-	uint32_t fence_types = (uint32_t) (unsigned long)sync_arg;
-
-	return ttm_fence_object_flush(fence, fence_types);
-}
-
-void ttm_fence_sync_obj_unref(void **sync_obj)
-{
-	ttm_fence_object_unref((struct ttm_fence_object **)sync_obj);
-}
-
-void *ttm_fence_sync_obj_ref(void *sync_obj)
-{
-	return (void *)
-	    ttm_fence_object_ref((struct ttm_fence_object *)sync_obj);
-}
diff --git a/drivers/staging/cdv/imgv/psb_ttm_fence_api.h b/drivers/staging/cdv/imgv/psb_ttm_fence_api.h
deleted file mode 100644
index d42904c..0000000
--- a/drivers/staging/cdv/imgv/psb_ttm_fence_api.h
+++ /dev/null
@@ -1,272 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) 2006-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA
- * All Rights Reserved.
- * Copyright (c) 2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
- */
-#ifndef _TTM_FENCE_API_H_
-#define _TTM_FENCE_API_H_
-
-#include <linux/list.h>
-#include <linux/kref.h>
-
-#define TTM_FENCE_FLAG_EMIT (1 << 0)
-#define TTM_FENCE_TYPE_EXE  (1 << 0)
-
-struct ttm_fence_device;
-
-/**
- * struct ttm_fence_info
- *
- * @fence_class:    The fence class.
- * @fence_type:     Bitfield indicating types for this fence.
- * @signaled_types: Bitfield indicating which types are signaled.
- * @error:          Last error reported from the device.
- *
- * Used as output from the ttm_fence_get_info
- */
-
-struct ttm_fence_info {
-	uint32_t signaled_types;
-	uint32_t error;
-};
-
-/**
- * struct ttm_fence_object
- *
- * @fdev:            Pointer to the fence device struct.
- * @kref:            Holds the reference count of this fence object.
- * @ring:            List head used for the circular list of not-completely
- *                   signaled fences.
- * @info:            Data for fast retrieval using the ttm_fence_get_info()
- * function.
- * @timeout_jiffies: Absolute jiffies value indicating when this fence
- *                   object times out and, if waited on, calls ttm_fence_lockup
- *                   to check for and resolve a GPU lockup.
- * @sequence:        Fence sequence number.
- * @waiting_types:   Types currently waited on.
- * @destroy:         Called to free the fence object, when its refcount has
- *                   reached zero. If NULL, kfree is used.
- *
- * This struct is provided in the driver interface so that drivers can
- * derive from it and create their own fence implementation. All members
- * are private to the fence implementation and the fence driver callbacks.
- * Otherwise a driver may access the derived object using container_of().
- */
-
-struct ttm_fence_object {
-	struct ttm_fence_device *fdev;
-	struct kref kref;
-	uint32_t fence_class;
-	uint32_t fence_type;
-
-	/*
-	 * The below fields are protected by the fence class
-	 * manager spinlock.
-	 */
-
-	struct list_head ring;
-	struct ttm_fence_info info;
-	unsigned long timeout_jiffies;
-	uint32_t sequence;
-	uint32_t waiting_types;
-	void (*destroy) (struct ttm_fence_object *);
-};
-
-/**
- * ttm_fence_object_init
- *
- * @fdev: Pointer to a struct ttm_fence_device.
- * @fence_class: Fence class for this fence.
- * @type: Fence type for this fence.
- * @create_flags: Flags indicating varios actions at init time. At this point
- * there's only TTM_FENCE_FLAG_EMIT, which triggers a sequence emission to
- * the command stream.
- * @destroy: Destroy function. If NULL, kfree() is used.
- * @fence: The struct ttm_fence_object to initialize.
- *
- * Initialize a pre-allocated fence object. This function, together with the
- * destroy function makes it possible to derive driver-specific fence objects.
- */
-
-extern int
-ttm_fence_object_init(struct ttm_fence_device *fdev,
-		      uint32_t fence_class,
-		      uint32_t type,
-		      uint32_t create_flags,
-		      void (*destroy) (struct ttm_fence_object *fence),
-		      struct ttm_fence_object *fence);
-
-/**
- * ttm_fence_object_create
- *
- * @fdev: Pointer to a struct ttm_fence_device.
- * @fence_class: Fence class for this fence.
- * @type: Fence type for this fence.
- * @create_flags: Flags indicating varios actions at init time. At this point
- * there's only TTM_FENCE_FLAG_EMIT, which triggers a sequence emission to
- * the command stream.
- * @c_fence: On successful termination, *(@c_fence) will point to the created
- * fence object.
- *
- * Create and initialize a struct ttm_fence_object. The destroy function will
- * be set to kfree().
- */
-
-extern int
-ttm_fence_object_create(struct ttm_fence_device *fdev,
-			uint32_t fence_class,
-			uint32_t type,
-			uint32_t create_flags,
-			struct ttm_fence_object **c_fence);
-
-/**
- * ttm_fence_object_wait
- *
- * @fence: The fence object to wait on.
- * @lazy: Allow sleeps to reduce the cpu-usage if polling.
- * @interruptible: Sleep interruptible when waiting.
- * @type_mask: Wait for the given type_mask to signal.
- *
- * Wait for a fence to signal the given type_mask. The function will
- * perform a fence_flush using type_mask. (See ttm_fence_object_flush).
- *
- * Returns
- * -ERESTART if interrupted by a signal.
- * May return driver-specific error codes if timed-out.
- */
-
-extern int
-ttm_fence_object_wait(struct ttm_fence_object *fence,
-		      bool lazy, bool interruptible, uint32_t type_mask);
-
-/**
- * ttm_fence_object_flush
- *
- * @fence: The fence object to flush.
- * @flush_mask: Fence types to flush.
- *
- * Make sure that the given fence eventually signals the
- * types indicated by @flush_mask. Note that this may or may not
- * map to a CPU or GPU flush.
- */
-
-extern int
-ttm_fence_object_flush(struct ttm_fence_object *fence, uint32_t flush_mask);
-
-/**
- * ttm_fence_get_info
- *
- * @fence: The fence object.
- *
- * Copy the info block from the fence while holding relevant locks.
- */
-
-struct ttm_fence_info ttm_fence_get_info(struct ttm_fence_object *fence);
-
-/**
- * ttm_fence_object_ref
- *
- * @fence: The fence object.
- *
- * Return a ref-counted pointer to the fence object indicated by @fence.
- */
-
-static inline struct ttm_fence_object *ttm_fence_object_ref(struct
-							    ttm_fence_object
-							    *fence)
-{
-	kref_get(&fence->kref);
-	return fence;
-}
-
-/**
- * ttm_fence_object_unref
- *
- * @p_fence: Pointer to a ref-counted pinter to a struct ttm_fence_object.
- *
- * Unreference the fence object pointed to by *(@p_fence), clearing
- * *(p_fence).
- */
-
-extern void ttm_fence_object_unref(struct ttm_fence_object **p_fence);
-
-/**
- * ttm_fence_object_signaled
- *
- * @fence: Pointer to the struct ttm_fence_object.
- * @mask: Type mask to check whether signaled.
- *
- * This function checks (without waiting) whether the fence object
- * pointed to by @fence has signaled the types indicated by @mask,
- * and returns 1 if true, 0 if false. This function does NOT perform
- * an implicit fence flush.
- */
-
-extern bool
-ttm_fence_object_signaled(struct ttm_fence_object *fence, uint32_t mask);
-
-/**
- * ttm_fence_class
- *
- * @fence: Pointer to the struct ttm_fence_object.
- *
- * Convenience function that returns the fence class of a
- * struct ttm_fence_object.
- */
-
-static inline uint32_t ttm_fence_class(const struct ttm_fence_object *fence)
-{
-	return fence->fence_class;
-}
-
-/**
- * ttm_fence_types
- *
- * @fence: Pointer to the struct ttm_fence_object.
- *
- * Convenience function that returns the fence types of a
- * struct ttm_fence_object.
- */
-
-static inline uint32_t ttm_fence_types(const struct ttm_fence_object *fence)
-{
-	return fence->fence_type;
-}
-
-/*
- * The functions below are wrappers to the above functions, with
- * similar names but with sync_obj omitted. These wrappers are intended
- * to be plugged directly into the buffer object driver's sync object
- * API, if the driver chooses to use ttm_fence_objects as buffer object
- * sync objects. In the prototypes below, a sync_obj is cast to a
- * struct ttm_fence_object, whereas a sync_arg is cast to an
- * uint32_t representing a fence_type argument.
- */
-
-extern bool ttm_fence_sync_obj_signaled(void *sync_obj, void *sync_arg);
-extern int ttm_fence_sync_obj_wait(void *sync_obj, void *sync_arg,
-				   bool lazy, bool interruptible);
-extern int ttm_fence_sync_obj_flush(void *sync_obj, void *sync_arg);
-extern void ttm_fence_sync_obj_unref(void **sync_obj);
-extern void *ttm_fence_sync_obj_ref(void *sync_obj);
-
-#endif
diff --git a/drivers/staging/cdv/imgv/psb_ttm_fence_driver.h b/drivers/staging/cdv/imgv/psb_ttm_fence_driver.h
deleted file mode 100644
index 233c6ba..0000000
--- a/drivers/staging/cdv/imgv/psb_ttm_fence_driver.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) 2006-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA
- * All Rights Reserved.
- * Copyright (c) 2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
- */
-#ifndef _TTM_FENCE_DRIVER_H_
-#define _TTM_FENCE_DRIVER_H_
-
-#include <linux/kref.h>
-#include <linux/spinlock.h>
-#include <linux/wait.h>
-#include "psb_ttm_fence_api.h"
-#include "ttm/ttm_memory.h"
-
-/** @file ttm_fence_driver.h
- *
- * Definitions needed for a driver implementing the
- * ttm_fence subsystem.
- */
-
-/**
- * struct ttm_fence_class_manager:
- *
- * @wrap_diff: Sequence difference to catch 32-bit wrapping.
- * if (seqa - seqb) > @wrap_diff, then seqa < seqb.
- * @flush_diff: Sequence difference to trigger fence flush.
- * if (cur_seq - seqa) > @flush_diff, then consider fence object with
- * seqa as old an needing a flush.
- * @sequence_mask: Mask of valid bits in a fence sequence.
- * @lock: Lock protecting this struct as well as fence objects
- * associated with this struct.
- * @ring: Circular sequence-ordered list of fence objects.
- * @pending_flush: Fence types currently needing a flush.
- * @waiting_types: Fence types that are currently waited for.
- * @fence_queue: Queue of waiters on fences belonging to this fence class.
- * @highest_waiting_sequence: Sequence number of the fence with highest
- * sequence number and that is waited for.
- * @latest_queued_sequence: Sequence number of the fence latest queued
- * on the ring.
- */
-
-struct ttm_fence_class_manager {
-
-	/*
-	 * Unprotected constant members.
-	 */
-
-	uint32_t wrap_diff;
-	uint32_t flush_diff;
-	uint32_t sequence_mask;
-
-	/*
-	 * The rwlock protects this structure as well as
-	 * the data in all fence objects belonging to this
-	 * class. This should be OK as most fence objects are
-	 * only read from once they're created.
-	 */
-
-	rwlock_t lock;
-	struct list_head ring;
-	uint32_t pending_flush;
-	uint32_t waiting_types;
-	wait_queue_head_t fence_queue;
-	uint32_t highest_waiting_sequence;
-	uint32_t latest_queued_sequence;
-};
-
-/**
- * struct ttm_fence_device
- *
- * @fence_class:  Array of fence class managers.
- * @num_classes:  Array dimension of @fence_class.
- * @count:        Current number of fence objects for statistics.
- * @driver:       Driver struct.
- *
- * Provided in the driver interface so that the driver can derive
- * from this struct for its driver_private, and accordingly
- * access the driver_private from the fence driver callbacks.
- *
- * All members except "count" are initialized at creation and
- * never touched after that. No protection needed.
- *
- * This struct is private to the fence implementation and to the fence
- * driver callbacks, and may otherwise be used by drivers only to
- * obtain the derived device_private object using container_of().
- */
-
-struct ttm_fence_device {
-	struct ttm_mem_global *mem_glob;
-	struct ttm_fence_class_manager *fence_class;
-	uint32_t num_classes;
-	atomic_t count;
-	const struct ttm_fence_driver *driver;
-};
-
-/**
- * struct ttm_fence_class_init
- *
- * @wrap_diff:    Fence sequence number wrap indicator. If
- * (sequence1 - sequence2) > @wrap_diff, then sequence1 is
- * considered to be older than sequence2.
- * @flush_diff:   Fence sequence number flush indicator.
- * If a non-completely-signaled fence has a fence sequence number
- * sequence1 and (sequence1 - current_emit_sequence) > @flush_diff,
- * the fence is considered too old and it will be flushed upon the
- * next call of ttm_fence_flush_old(), to make sure no fences with
- * stale sequence numbers remains unsignaled. @flush_diff should
- * be sufficiently less than @wrap_diff.
- * @sequence_mask: Mask with valid bits of the fence sequence
- * number set to 1.
- *
- * This struct is used as input to ttm_fence_device_init.
- */
-
-struct ttm_fence_class_init {
-	uint32_t wrap_diff;
-	uint32_t flush_diff;
-	uint32_t sequence_mask;
-};
-
-/**
- * struct ttm_fence_driver
- *
- * @has_irq: Called by a potential waiter. Should return 1 if a
- * fence object with indicated parameters is expected to signal
- * automatically, and 0 if the fence implementation needs to
- * repeatedly call @poll to make it signal.
- * @emit:    Make sure a fence with the given parameters is
- * present in the indicated command stream. Return its sequence number
- * in "breadcrumb".
- * @poll:    Check and report sequences of the given "fence_class"
- *           that have signaled "types"
- * @flush:   Make sure that the types indicated by the bitfield
- *           ttm_fence_class_manager::pending_flush will eventually
- *           signal. These bits have been put together using the
- *           result from the needed_flush function described below.
- * @needed_flush: Given the fence_class and fence_types indicated by
- *           "fence", and the last received fence sequence of this
- *           fence class, indicate what types need a fence flush to
- *           signal. Return as a bitfield.
- * @wait:    Set to non-NULL if the driver wants to override the fence
- *           wait implementation. Return 0 on success, -EBUSY on failure,
- *           and -ERESTART if interruptible and a signal is pending.
- * @signaled:  Driver callback that is called whenever a
- *           ttm_fence_object::signaled_types has changed status.
- *           This function is called from atomic context,
- *           with the ttm_fence_class_manager::lock held in write mode.
- * @lockup:  Driver callback that is called whenever a wait has exceeded
- *           the lifetime of a fence object.
- *           If there is a GPU lockup,
- *           this function should, if possible, reset the GPU,
- *           call the ttm_fence_handler with an error status, and
- *           return. If no lockup was detected, simply extend the
- *           fence timeout_jiffies and return. The driver might
- *           want to protect the lockup check with a mutex and cache a
- *           non-locked-up status for a while to avoid an excessive
- *           amount of lockup checks from every waiting thread.
- */
-
-struct ttm_fence_driver {
-	bool (*has_irq) (struct ttm_fence_device *fdev,
-			uint32_t fence_class, uint32_t flags);
-	int (*emit) (struct ttm_fence_device *fdev,
-		     uint32_t fence_class,
-		     uint32_t flags,
-		     uint32_t *breadcrumb, unsigned long *timeout_jiffies);
-	void (*flush) (struct ttm_fence_device *fdev, uint32_t fence_class);
-	void (*poll) (struct ttm_fence_device *fdev,
-		      uint32_t fence_class, uint32_t types);
-	 uint32_t(*needed_flush)
-	 (struct ttm_fence_object *fence);
-	int (*wait) (struct ttm_fence_object *fence, bool lazy,
-		     bool interruptible, uint32_t mask);
-	void (*signaled) (struct ttm_fence_object *fence);
-	void (*lockup) (struct ttm_fence_object *fence, uint32_t fence_types);
-};
-
-/**
- * function ttm_fence_device_init
- *
- * @num_classes:      Number of fence classes for this fence implementation.
- * @mem_global:       Pointer to the global memory accounting info.
- * @fdev:             Pointer to an uninitialised struct ttm_fence_device.
- * @init:             Array of initialization info for each fence class.
- * @replicate_init:   Use the first @init initialization info for all classes.
- * @driver:           Driver callbacks.
- *
- * Initialize a struct ttm_fence_driver structure. Returns -ENOMEM if
- * out-of-memory. Otherwise returns 0.
- */
-extern int
-ttm_fence_device_init(int num_classes,
-		      struct ttm_mem_global *mem_glob,
-		      struct ttm_fence_device *fdev,
-		      const struct ttm_fence_class_init *init,
-		      bool replicate_init,
-		      const struct ttm_fence_driver *driver);
-
-/**
- * function ttm_fence_device_release
- *
- * @fdev:             Pointer to the fence device.
- *
- * Release all resources held by a fence device. Note that before
- * this function is called, the caller must have made sure all fence
- * objects belonging to this fence device are completely signaled.
- */
-
-extern void ttm_fence_device_release(struct ttm_fence_device *fdev);
-
-/**
- * ttm_fence_handler - the fence handler.
- *
- * @fdev:        Pointer to the fence device.
- * @fence_class: Fence class that signals.
- * @sequence:    Signaled sequence.
- * @type:        Types that signal.
- * @error:       Error from the engine.
- *
- * This function signals all fences with a sequence previous to the
- * @sequence argument, and belonging to @fence_class. The signaled fence
- * types are provided in @type. If error is non-zero, the error member
- * of the fence with sequence = @sequence is set to @error. This value
- * may be reported back to user-space, indicating, for example an illegal
- * 3D command or illegal mpeg data.
- *
- * This function is typically called from the driver::poll method when the
- * command sequence preceding the fence marker has executed. It should be
- * called with the ttm_fence_class_manager::lock held in write mode and
- * may be called from interrupt context.
- */
-
-extern void
-ttm_fence_handler(struct ttm_fence_device *fdev,
-		  uint32_t fence_class,
-		  uint32_t sequence, uint32_t type, uint32_t error);
-
-/**
- * ttm_fence_driver_from_dev
- *
- * @fdev:        The ttm fence device.
- *
- * Returns a pointer to the fence driver struct.
- */
-
-static inline const struct ttm_fence_driver *ttm_fence_driver_from_dev(
-						struct ttm_fence_device *fdev)
-{
-	return fdev->driver;
-}
-
-/**
- * ttm_fence_driver
- *
- * @fence:        Pointer to a ttm fence object.
- *
- * Returns a pointer to the fence driver struct.
- */
-
-static inline const struct ttm_fence_driver *ttm_fence_driver(struct
-							      ttm_fence_object
-							      *fence)
-{
-	return ttm_fence_driver_from_dev(fence->fdev);
-}
-
-/**
- * ttm_fence_fc
- *
- * @fence:        Pointer to a ttm fence object.
- *
- * Returns a pointer to the struct ttm_fence_class_manager for the
- * fence class of @fence.
- */
-
-static inline struct ttm_fence_class_manager *ttm_fence_fc(struct
-							   ttm_fence_object
-							   *fence)
-{
-	return &fence->fdev->fence_class[fence->fence_class];
-}
-
-#endif
diff --git a/drivers/staging/cdv/imgv/psb_ttm_fence_user.c b/drivers/staging/cdv/imgv/psb_ttm_fence_user.c
deleted file mode 100644
index 7ada0dd..0000000
--- a/drivers/staging/cdv/imgv/psb_ttm_fence_user.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) 2006-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA
- * All Rights Reserved.
- * Copyright (c) 2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
- */
-
-#include <drm/drmP.h>
-#include "psb_ttm_fence_user.h"
-#include "ttm/ttm_object.h"
-#include "psb_ttm_fence_driver.h"
-#include "psb_ttm_userobj_api.h"
-
-/**
- * struct ttm_fence_user_object
- *
- * @base:    The base object used for user-space visibility and refcounting.
- *
- * @fence:   The fence object itself.
- *
- */
-
-struct ttm_fence_user_object {
-	struct ttm_base_object base;
-	struct ttm_fence_object fence;
-};
-
-static struct ttm_fence_user_object *ttm_fence_user_object_lookup(
-					struct ttm_object_file *tfile,
-					uint32_t handle)
-{
-	struct ttm_base_object *base;
-
-	base = ttm_base_object_lookup(tfile, handle);
-	if (unlikely(base == NULL)) {
-		printk(KERN_ERR "Invalid fence handle 0x%08lx\n",
-		       (unsigned long)handle);
-		return NULL;
-	}
-
-	if (unlikely(base->object_type != ttm_fence_type)) {
-		ttm_base_object_unref(&base);
-		printk(KERN_ERR "Invalid fence handle 0x%08lx\n",
-		       (unsigned long)handle);
-		return NULL;
-	}
-
-	return container_of(base, struct ttm_fence_user_object, base);
-}
-
-/*
- * The fence object destructor.
- */
-
-static void ttm_fence_user_destroy(struct ttm_fence_object *fence)
-{
-	struct ttm_fence_user_object *ufence =
-	    container_of(fence, struct ttm_fence_user_object, fence);
-
-	ttm_mem_global_free(fence->fdev->mem_glob, sizeof(*ufence));
-	kfree(ufence);
-}
-
-/*
- * The base object destructor. We basically unly unreference the
- * attached fence object.
- */
-
-static void ttm_fence_user_release(struct ttm_base_object **p_base)
-{
-	struct ttm_fence_user_object *ufence;
-	struct ttm_base_object *base = *p_base;
-	struct ttm_fence_object *fence;
-
-	*p_base = NULL;
-
-	if (unlikely(base == NULL))
-		return;
-
-	ufence = container_of(base, struct ttm_fence_user_object, base);
-	fence = &ufence->fence;
-	ttm_fence_object_unref(&fence);
-}
-
-int
-ttm_fence_user_create(struct ttm_fence_device *fdev,
-		      struct ttm_object_file *tfile,
-		      uint32_t fence_class,
-		      uint32_t fence_types,
-		      uint32_t create_flags,
-		      struct ttm_fence_object **fence,
-		      uint32_t *user_handle)
-{
-	int ret;
-	struct ttm_fence_object *tmp;
-	struct ttm_fence_user_object *ufence;
-
-	ret = ttm_mem_global_alloc(fdev->mem_glob,
-				   sizeof(*ufence),
-				   false,
-				   false);
-	if (unlikely(ret != 0))
-		return -ENOMEM;
-
-	ufence = kmalloc(sizeof(*ufence), GFP_KERNEL);
-	if (unlikely(ufence == NULL)) {
-		ttm_mem_global_free(fdev->mem_glob, sizeof(*ufence));
-		return -ENOMEM;
-	}
-
-	ret = ttm_fence_object_init(fdev,
-				    fence_class,
-				    fence_types, create_flags,
-				    &ttm_fence_user_destroy, &ufence->fence);
-
-	if (unlikely(ret != 0))
-		goto out_err0;
-
-	/*
-	 * One fence ref is held by the fence ptr we return.
-	 * The other one by the base object. Need to up the
-	 * fence refcount before we publish this object to
-	 * user-space.
-	 */
-
-	tmp = ttm_fence_object_ref(&ufence->fence);
-	ret = ttm_base_object_init(tfile, &ufence->base,
-				   false, ttm_fence_type,
-				   &ttm_fence_user_release, NULL);
-
-	if (unlikely(ret != 0))
-		goto out_err1;
-
-	*fence = &ufence->fence;
-	*user_handle = ufence->base.hash.key;
-
-	return 0;
-out_err1:
-	ttm_fence_object_unref(&tmp);
-	tmp = &ufence->fence;
-	ttm_fence_object_unref(&tmp);
-	return ret;
-out_err0:
-	ttm_mem_global_free(fdev->mem_glob, sizeof(*ufence));
-	kfree(ufence);
-	return ret;
-}
-
-int ttm_fence_signaled_ioctl(struct ttm_object_file *tfile, void *data)
-{
-	int ret;
-	union ttm_fence_signaled_arg *arg = data;
-	struct ttm_fence_object *fence;
-	struct ttm_fence_info info;
-	struct ttm_fence_user_object *ufence;
-	struct ttm_base_object *base;
-	ret = 0;
-
-	ufence = ttm_fence_user_object_lookup(tfile, arg->req.handle);
-	if (unlikely(ufence == NULL))
-		return -EINVAL;
-
-	fence = &ufence->fence;
-
-	if (arg->req.flush) {
-		ret = ttm_fence_object_flush(fence, arg->req.fence_type);
-		if (unlikely(ret != 0))
-			goto out;
-	}
-
-	info = ttm_fence_get_info(fence);
-	arg->rep.signaled_types = info.signaled_types;
-	arg->rep.fence_error = info.error;
-
-out:
-	base = &ufence->base;
-	ttm_base_object_unref(&base);
-	return ret;
-}
-
-int ttm_fence_finish_ioctl(struct ttm_object_file *tfile, void *data)
-{
-	int ret;
-	union ttm_fence_finish_arg *arg = data;
-	struct ttm_fence_user_object *ufence;
-	struct ttm_base_object *base;
-	struct ttm_fence_object *fence;
-	ret = 0;
-
-	ufence = ttm_fence_user_object_lookup(tfile, arg->req.handle);
-	if (unlikely(ufence == NULL))
-		return -EINVAL;
-
-	fence = &ufence->fence;
-
-	ret = ttm_fence_object_wait(fence,
-				    arg->req.mode & TTM_FENCE_FINISH_MODE_LAZY,
-				    true, arg->req.fence_type);
-	if (likely(ret == 0)) {
-		struct ttm_fence_info info = ttm_fence_get_info(fence);
-
-		arg->rep.signaled_types = info.signaled_types;
-		arg->rep.fence_error = info.error;
-	}
-
-	base = &ufence->base;
-	ttm_base_object_unref(&base);
-
-	return ret;
-}
-
-int ttm_fence_unref_ioctl(struct ttm_object_file *tfile, void *data)
-{
-	struct ttm_fence_unref_arg *arg = data;
-	int ret = 0;
-
-	ret = ttm_ref_object_base_unref(tfile, arg->handle, ttm_fence_type);
-	return ret;
-}
diff --git a/drivers/staging/cdv/imgv/psb_ttm_fence_user.h b/drivers/staging/cdv/imgv/psb_ttm_fence_user.h
deleted file mode 100644
index ee95e6a..0000000
--- a/drivers/staging/cdv/imgv/psb_ttm_fence_user.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/**************************************************************************
- *
- * Copyright 2006-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA
- * All Rights Reserved.
- * Copyright (c) 2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-/*
- * Authors
- * Thomas Hellström <thomas-at-tungstengraphics-dot-com>
- */
-
-#ifndef TTM_FENCE_USER_H
-#define TTM_FENCE_USER_H
-
-#if !defined(__KERNEL__) && !defined(_KERNEL)
-#include <stdint.h>
-#endif
-
-#define TTM_FENCE_MAJOR 0
-#define TTM_FENCE_MINOR 1
-#define TTM_FENCE_PL    0
-#define TTM_FENCE_DATE  "080819"
-
-/**
- * struct ttm_fence_signaled_req
- *
- * @handle: Handle to the fence object. Input.
- *
- * @fence_type: Fence types we want to flush. Input.
- *
- * @flush: Boolean. Flush the indicated fence_types. Input.
- *
- * Argument to the TTM_FENCE_SIGNALED ioctl.
- */
-
-struct ttm_fence_signaled_req {
-	uint32_t handle;
-	uint32_t fence_type;
-	int32_t flush;
-	uint32_t pad64;
-};
-
-/**
- * struct ttm_fence_rep
- *
- * @signaled_types: Fence type that has signaled.
- *
- * @fence_error: Command execution error.
- * Hardware errors that are consequences of the execution
- * of the command stream preceding the fence are reported
- * here.
- *
- * Output argument to the TTM_FENCE_SIGNALED and
- * TTM_FENCE_FINISH ioctls.
- */
-
-struct ttm_fence_rep {
-	uint32_t signaled_types;
-	uint32_t fence_error;
-};
-
-union ttm_fence_signaled_arg {
-	struct ttm_fence_signaled_req req;
-	struct ttm_fence_rep rep;
-};
-
-/*
- * Waiting mode flags for the TTM_FENCE_FINISH ioctl.
- *
- * TTM_FENCE_FINISH_MODE_LAZY: Allow for sleeps during polling
- * wait.
- *
- * TTM_FENCE_FINISH_MODE_NO_BLOCK: Don't block waiting for GPU,
- * but return -EBUSY if the buffer is busy.
- */
-
-#define TTM_FENCE_FINISH_MODE_LAZY     (1 << 0)
-#define TTM_FENCE_FINISH_MODE_NO_BLOCK (1 << 1)
-
-/**
- * struct ttm_fence_finish_req
- *
- * @handle: Handle to the fence object. Input.
- *
- * @fence_type: Fence types we want to finish.
- *
- * @mode: Wait mode.
- *
- * Input to the TTM_FENCE_FINISH ioctl.
- */
-
-struct ttm_fence_finish_req {
-	uint32_t handle;
-	uint32_t fence_type;
-	uint32_t mode;
-	uint32_t pad64;
-};
-
-union ttm_fence_finish_arg {
-	struct ttm_fence_finish_req req;
-	struct ttm_fence_rep rep;
-};
-
-/**
- * struct ttm_fence_unref_arg
- *
- * @handle: Handle to the fence object.
- *
- * Argument to the TTM_FENCE_UNREF ioctl.
- */
-
-struct ttm_fence_unref_arg {
-	uint32_t handle;
-	uint32_t pad64;
-};
-
-/*
- * Ioctl offsets frome extenstion start.
- */
-
-#define TTM_FENCE_SIGNALED 0x01
-#define TTM_FENCE_FINISH   0x02
-#define TTM_FENCE_UNREF    0x03
-
-#endif
diff --git a/drivers/staging/cdv/imgv/psb_ttm_glue.c b/drivers/staging/cdv/imgv/psb_ttm_glue.c
deleted file mode 100644
index 57cb6ec..0000000
--- a/drivers/staging/cdv/imgv/psb_ttm_glue.c
+++ /dev/null
@@ -1,376 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
- * Copyright (c) 2008, Tungsten Graphics Inc.  Cedar Park, TX., USA.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-
-
-#include <drm/drmP.h>
-#include "psb_drv.h"
-#include "psb_ttm_userobj_api.h"
-#include <linux/io.h>
-#include "psb_msvdx.h"
-#include "bufferclass_video.h"
-
-/*IMG Headers*/
-#include "private_data.h"
-
-extern int PVRMMap(struct file *pFile, struct vm_area_struct *ps_vma);
-extern unsigned int bc_video_id_usage[BC_VIDEO_DEVICE_MAX_ID];
-int BC_DestroyBuffers (int id);
-
-static struct vm_operations_struct psb_ttm_vm_ops;
-
-/**
- * NOTE: driver_private of drm_file is now a PVRSRV_FILE_PRIVATE_DATA struct
- * pPriv in PVRSRV_FILE_PRIVATE_DATA contains the original psb_fpriv;
- */
-int psb_open(struct inode *inode, struct file *filp)
-{
-	struct drm_file *file_priv;
-	struct drm_psb_private *dev_priv;
-	struct psb_fpriv *psb_fp;
-	PVRSRV_FILE_PRIVATE_DATA *pvr_file_priv;
-	int ret;
-
-	DRM_DEBUG("\n");
-
-	ret = drm_open(inode, filp);
-	if (unlikely(ret))
-		return ret;
-
-	psb_fp = kzalloc(sizeof(*psb_fp), GFP_KERNEL);
-
-	if (unlikely(psb_fp == NULL))
-		goto out_err0;
-
-	file_priv = (struct drm_file *) filp->private_data;
-	dev_priv = psb_priv(file_priv->minor->dev);
-
-	DRM_DEBUG("is_master %d\n", file_priv->is_master ? 1 : 0);
-
-	psb_fp->tfile = ttm_object_file_init(dev_priv->tdev,
-					     PSB_FILE_OBJECT_HASH_ORDER);
-	if (unlikely(psb_fp->tfile == NULL))
-		goto out_err1;
-
-	pvr_file_priv = (PVRSRV_FILE_PRIVATE_DATA *)file_priv->driver_priv;
-	if (!pvr_file_priv) {
-		DRM_ERROR("drm file private is NULL\n");
-		goto out_err1;
-	}
-
-	pvr_file_priv->pPriv = psb_fp;
-	if (unlikely(dev_priv->bdev.dev_mapping == NULL))
-		dev_priv->bdev.dev_mapping = dev_priv->dev->dev_mapping;
-
-	return 0;
-
-out_err1:
-	kfree(psb_fp);
-out_err0:
-	(void) drm_release(inode, filp);
-	return ret;
-}
-
-int psb_release(struct inode *inode, struct file *filp)
-{
-	struct drm_file *file_priv;
-	struct psb_fpriv *psb_fp;
-	struct drm_psb_private *dev_priv;
-	struct msvdx_private *msvdx_priv;
-	int ret;
-	file_priv = (struct drm_file *) filp->private_data;
-	psb_fp = psb_fpriv(file_priv);
-	dev_priv = psb_priv(file_priv->minor->dev);
-	msvdx_priv = (struct msvdx_private *)dev_priv->msvdx_private;
-
-	/*cleanup for msvdx*/
-	if (msvdx_priv->tfile == psb_fpriv(file_priv)->tfile) {
-		msvdx_priv->fw_status = 0;
-		msvdx_priv->host_be_opp_enabled = 0;
-		msvdx_priv->deblock_enabled = 0;
-		memset(&msvdx_priv->frame_info, 0, sizeof(struct drm_psb_msvdx_frame_info) * MAX_DECODE_BUFFERS);
-	}
-
-        if (psb_fp->bcd_index >= 0 &&
-                psb_fp->bcd_index < BC_VIDEO_DEVICE_MAX_ID &&
-                bc_video_id_usage[psb_fp->bcd_index] == 1) {
-            bc_video_id_usage[psb_fp->bcd_index] = 0;
-            BC_DestroyBuffers(psb_fp->bcd_index);
-        }
-
-	ttm_object_file_release(&psb_fp->tfile);
-	kfree(psb_fp);
-
-	/* remove video context */
-	psb_remove_videoctx(dev_priv, filp);
-
-	ret = drm_release(inode, filp);
-
-	return ret;
-}
-
-int psb_fence_signaled_ioctl(struct drm_device *dev, void *data,
-			     struct drm_file *file_priv)
-{
-
-	return ttm_fence_signaled_ioctl(psb_fpriv(file_priv)->tfile, data);
-}
-
-int psb_fence_finish_ioctl(struct drm_device *dev, void *data,
-			   struct drm_file *file_priv)
-{
-	return ttm_fence_finish_ioctl(psb_fpriv(file_priv)->tfile, data);
-}
-
-int psb_fence_unref_ioctl(struct drm_device *dev, void *data,
-			  struct drm_file *file_priv)
-{
-	return ttm_fence_unref_ioctl(psb_fpriv(file_priv)->tfile, data);
-}
-
-int psb_pl_waitidle_ioctl(struct drm_device *dev, void *data,
-			  struct drm_file *file_priv)
-{
-	return ttm_pl_waitidle_ioctl(psb_fpriv(file_priv)->tfile, data);
-}
-
-int psb_pl_setstatus_ioctl(struct drm_device *dev, void *data,
-			   struct drm_file *file_priv)
-{
-	return ttm_pl_setstatus_ioctl(psb_fpriv(file_priv)->tfile,
-				      &psb_priv(dev)->ttm_lock, data);
-
-}
-
-int psb_pl_synccpu_ioctl(struct drm_device *dev, void *data,
-			 struct drm_file *file_priv)
-{
-	return ttm_pl_synccpu_ioctl(psb_fpriv(file_priv)->tfile, data);
-}
-
-int psb_pl_unref_ioctl(struct drm_device *dev, void *data,
-		       struct drm_file *file_priv)
-{
-	return ttm_pl_unref_ioctl(psb_fpriv(file_priv)->tfile, data);
-
-}
-
-int psb_pl_reference_ioctl(struct drm_device *dev, void *data,
-			   struct drm_file *file_priv)
-{
-	return  ttm_pl_reference_ioctl(psb_fpriv(file_priv)->tfile, data);
-
-}
-
-int psb_pl_create_ioctl(struct drm_device *dev, void *data,
-			struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-
-	return ttm_pl_create_ioctl(psb_fpriv(file_priv)->tfile,
-				   &dev_priv->bdev, &dev_priv->ttm_lock, data);
-
-}
-
-int psb_pl_ub_create_ioctl(struct drm_device *dev, void *data,
-			struct drm_file *file_priv)
-{
-	struct drm_psb_private *dev_priv = psb_priv(dev);
-
-	return ttm_pl_ub_create_ioctl(psb_fpriv(file_priv)->tfile,
-				   &dev_priv->bdev, &dev_priv->ttm_lock, data);
-
-}
-/**
- * psb_ttm_fault - Wrapper around the ttm fault method.
- *
- * @vma: The struct vm_area_struct as in the vm fault() method.
- * @vmf: The struct vm_fault as in the vm fault() method.
- *
- * Since ttm_fault() will reserve buffers while faulting,
- * we need to take the ttm read lock around it, as this driver
- * relies on the ttm_lock in write mode to exclude all threads from
- * reserving and thus validating buffers in aperture- and memory shortage
- * situations.
- */
-
-static int psb_ttm_fault(struct vm_area_struct *vma,
-			 struct vm_fault *vmf)
-{
-	struct ttm_buffer_object *bo = (struct ttm_buffer_object *)
-		vma->vm_private_data;
-	struct drm_psb_private *dev_priv =
-		container_of(bo->bdev, struct drm_psb_private, bdev);
-	int ret;
-
-	ret = ttm_read_lock(&dev_priv->ttm_lock, true);
-	if (unlikely(ret != 0))
-		return VM_FAULT_NOPAGE;
-
-	ret = dev_priv->ttm_vm_ops->fault(vma, vmf);
-
-	ttm_read_unlock(&dev_priv->ttm_lock);
-	return ret;
-}
-
-/**
- * if vm_pgoff < DRM_PSB_FILE_PAGE_OFFSET call directly to
- * PVRMMap
- */
-int psb_mmap(struct file *filp, struct vm_area_struct *vma)
-{
-	struct drm_file *file_priv;
-	struct drm_psb_private *dev_priv;
-	int ret;
-
-	if (vma->vm_pgoff < DRM_PSB_FILE_PAGE_OFFSET ||
-	    vma->vm_pgoff > 2 * DRM_PSB_FILE_PAGE_OFFSET)
-		return PVRMMap(filp, vma);
-
-	file_priv = (struct drm_file *) filp->private_data;
-	dev_priv = psb_priv(file_priv->minor->dev);
-
-	ret = ttm_bo_mmap(filp, vma, &dev_priv->bdev);
-	if (unlikely(ret != 0))
-		return ret;
-
-	if (unlikely(dev_priv->ttm_vm_ops == NULL)) {
-		dev_priv->ttm_vm_ops = (struct vm_operations_struct *)vma->vm_ops;
-		psb_ttm_vm_ops = *vma->vm_ops;
-		psb_ttm_vm_ops.fault = &psb_ttm_fault;
-	}
-
-	vma->vm_ops = &psb_ttm_vm_ops;
-
-	return 0;
-}
-/*
-ssize_t psb_ttm_write(struct file *filp, const char __user *buf,
-		      size_t count, loff_t *f_pos)
-{
-	struct drm_file *file_priv = (struct drm_file *)filp->private_data;
-	struct drm_psb_private *dev_priv = psb_priv(file_priv->minor->dev);
-
-	return ttm_bo_io(&dev_priv->bdev, filp, buf, NULL, count, f_pos, 1);
-}
-
-ssize_t psb_ttm_read(struct file *filp, char __user *buf,
-		     size_t count, loff_t *f_pos)
-{
-	struct drm_file *file_priv = (struct drm_file *)filp->private_data;
-	struct drm_psb_private *dev_priv = psb_priv(file_priv->minor->dev);
-
-	return ttm_bo_io(&dev_priv->bdev, filp, NULL, buf, count, f_pos, 1);
-}
-*/
-int psb_verify_access(struct ttm_buffer_object *bo,
-		      struct file *filp)
-{
-	struct drm_file *file_priv = (struct drm_file *)filp->private_data;
-
-	if (capable(CAP_SYS_ADMIN))
-		return 0;
-
-	if (unlikely(!file_priv->authenticated))
-		return -EPERM;
-
-	return ttm_pl_verify_access(bo, psb_fpriv(file_priv)->tfile);
-}
-
-static int psb_ttm_mem_global_init(struct drm_global_reference *ref)
-{
-	return ttm_mem_global_init(ref->object);
-}
-
-static void psb_ttm_mem_global_release(struct drm_global_reference *ref)
-{
-	ttm_mem_global_release(ref->object);
-}
-
-int psb_ttm_global_init(struct drm_psb_private *dev_priv)
-{
-	struct drm_global_reference *global_ref;
-	int ret;
-
-	global_ref = &dev_priv->mem_global_ref;
-	global_ref->global_type = DRM_GLOBAL_TTM_MEM;
-	global_ref->size = sizeof(struct ttm_mem_global);
-	global_ref->init = &psb_ttm_mem_global_init;
-	global_ref->release = &psb_ttm_mem_global_release;
-
-	ret = drm_global_item_ref(global_ref);
-	if (unlikely(ret != 0)) {
-		DRM_ERROR("Failed referencing a global TTM memory object.\n");
-		return ret;
-	}
-
-	dev_priv->bo_global_ref.mem_glob = dev_priv->mem_global_ref.object;
-        global_ref = &dev_priv->bo_global_ref.ref;
-        global_ref->global_type = DRM_GLOBAL_TTM_BO;
-        global_ref->size = sizeof(struct ttm_bo_global);
-        global_ref->init = &ttm_bo_global_init;
-        global_ref->release = &ttm_bo_global_release;
-        ret = drm_global_item_ref(global_ref);
-        if (ret != 0) {
-                DRM_ERROR("Failed setting up TTM BO subsystem.\n");
-                drm_global_item_unref(&dev_priv->mem_global_ref);
-                return ret;
-        }
-
-	return 0;
-}
-
-void psb_ttm_global_release(struct drm_psb_private *dev_priv)
-{
-	drm_global_item_unref(&dev_priv->mem_global_ref);
-}
-
-int psb_getpageaddrs_ioctl(struct drm_device *dev, void *data,
-		struct drm_file *file_priv)
-{
-	struct drm_psb_getpageaddrs_arg *arg = data;
-	struct ttm_buffer_object *bo;
-	struct ttm_tt *ttm;
-	struct page **tt_pages;
-	unsigned long i, num_pages;
-	unsigned long *p = arg->page_addrs;
-	int ret = 0;
-
-	bo = ttm_buffer_object_lookup(psb_fpriv(file_priv)->tfile,
-					arg->handle);
-	if (unlikely(bo == NULL)) {
-		printk(KERN_ERR
-			"Could not find buffer object for getpageaddrs.\n");
-		return -EINVAL;
-	}
-
-	arg->gtt_offset = bo->offset;
-	ttm = bo->ttm;
-	num_pages = ttm->num_pages;
-	tt_pages = ttm->pages;
-
-	for (i = 0; i < num_pages; i++)
-		p[i] = (unsigned long)page_to_phys(tt_pages[i]);
-
-	if (bo)
-		ttm_bo_unref(&bo);
-
-	return ret;
-}
diff --git a/drivers/staging/cdv/imgv/psb_ttm_placement_user.c b/drivers/staging/cdv/imgv/psb_ttm_placement_user.c
deleted file mode 100644
index 7395901..0000000
--- a/drivers/staging/cdv/imgv/psb_ttm_placement_user.c
+++ /dev/null
@@ -1,631 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) 2006-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
- */
-
-#include "psb_ttm_placement_user.h"
-#include "ttm/ttm_bo_driver.h"
-#include "ttm/ttm_object.h"
-#include "psb_ttm_userobj_api.h"
-#include "ttm/ttm_lock.h"
-#include <linux/slab.h>
-#include <linux/sched.h>
-
-struct ttm_bo_user_object {
-	struct ttm_base_object base;
-	struct ttm_buffer_object bo;
-};
-
-static size_t pl_bo_size;
-
-static uint32_t psb_busy_prios[] = {
-	TTM_PL_TT,
-	TTM_PL_PRIV0, /* CI */
-	TTM_PL_PRIV2, /* RAR */
-	TTM_PL_PRIV1, /* DRM_PSB_MEM_MMU */
-	TTM_PL_SYSTEM
-};
-
-const struct ttm_placement default_placement = {0, 0, 0, NULL, 5, psb_busy_prios};
-
-static size_t ttm_pl_size(struct ttm_bo_device *bdev, unsigned long num_pages)
-{
-	size_t page_array_size =
-	    (num_pages * sizeof(void *) + PAGE_SIZE - 1) & PAGE_MASK;
-
-	if (unlikely(pl_bo_size == 0)) {
-		pl_bo_size = bdev->glob->ttm_bo_extra_size +
-		    ttm_round_pot(sizeof(struct ttm_bo_user_object));
-	}
-
-	return bdev->glob->ttm_bo_size + 2 * page_array_size;
-}
-
-static struct ttm_bo_user_object *ttm_bo_user_lookup(struct ttm_object_file
-						     *tfile, uint32_t handle)
-{
-	struct ttm_base_object *base;
-
-	base = ttm_base_object_lookup(tfile, handle);
-	if (unlikely(base == NULL)) {
-		printk(KERN_ERR "Invalid buffer object handle 0x%08lx.\n",
-		       (unsigned long)handle);
-		return NULL;
-	}
-
-	if (unlikely(base->object_type != ttm_buffer_type)) {
-		ttm_base_object_unref(&base);
-		printk(KERN_ERR "Invalid buffer object handle 0x%08lx.\n",
-		       (unsigned long)handle);
-		return NULL;
-	}
-
-	return container_of(base, struct ttm_bo_user_object, base);
-}
-
-struct ttm_buffer_object *ttm_buffer_object_lookup(struct ttm_object_file
-						   *tfile, uint32_t handle)
-{
-	struct ttm_bo_user_object *user_bo;
-	struct ttm_base_object *base;
-
-	user_bo = ttm_bo_user_lookup(tfile, handle);
-	if (unlikely(user_bo == NULL))
-		return NULL;
-
-	(void)ttm_bo_reference(&user_bo->bo);
-	base = &user_bo->base;
-	ttm_base_object_unref(&base);
-	return &user_bo->bo;
-}
-
-static void ttm_bo_user_destroy(struct ttm_buffer_object *bo)
-{
-	struct ttm_bo_user_object *user_bo =
-	    container_of(bo, struct ttm_bo_user_object, bo);
-
-	ttm_mem_global_free(bo->glob->mem_glob, bo->acc_size);
-	kfree(user_bo);
-}
-
-static void ttm_bo_user_release(struct ttm_base_object **p_base)
-{
-	struct ttm_bo_user_object *user_bo;
-	struct ttm_base_object *base = *p_base;
-	struct ttm_buffer_object *bo;
-
-	*p_base = NULL;
-
-	if (unlikely(base == NULL))
-		return;
-
-	user_bo = container_of(base, struct ttm_bo_user_object, base);
-	bo = &user_bo->bo;
-	ttm_bo_unref(&bo);
-}
-
-static void ttm_bo_user_ref_release(struct ttm_base_object *base,
-				    enum ttm_ref_type ref_type)
-{
-	struct ttm_bo_user_object *user_bo =
-	    container_of(base, struct ttm_bo_user_object, base);
-	struct ttm_buffer_object *bo = &user_bo->bo;
-
-	switch (ref_type) {
-	case TTM_REF_SYNCCPU_WRITE:
-		ttm_bo_synccpu_write_release(bo);
-		break;
-	default:
-		BUG();
-	}
-}
-
-static void ttm_pl_fill_rep(struct ttm_buffer_object *bo,
-			    struct ttm_pl_rep *rep)
-{
-	struct ttm_bo_user_object *user_bo =
-	    container_of(bo, struct ttm_bo_user_object, bo);
-
-	rep->gpu_offset = bo->offset;
-	rep->bo_size = bo->num_pages << PAGE_SHIFT;
-	rep->map_handle = bo->addr_space_offset;
-	rep->placement = bo->mem.placement;
-	rep->handle = user_bo->base.hash.key;
-	rep->sync_object_arg = (uint32_t) (unsigned long)bo->sync_obj_arg;
-}
-
-/* FIXME Copy from upstream TTM */
-static inline size_t ttm_bo_size(struct ttm_bo_global *glob,
-				 unsigned long num_pages)
-{
-	size_t page_array_size = (num_pages * sizeof(void *) + PAGE_SIZE - 1) &
-	    PAGE_MASK;
-
-	return glob->ttm_bo_size + 2 * page_array_size;
-}
-
-/* FIXME Copy from upstream TTM "ttm_bo_create", upstream TTM does not export this, so copy it here */
-static int ttm_bo_create_private(struct ttm_bo_device *bdev,
-			unsigned long size,
-			enum ttm_bo_type type,
-			struct ttm_placement *placement,
-			uint32_t page_alignment,
-			unsigned long buffer_start,
-			bool interruptible,
-			struct file *persistant_swap_storage,
-			struct ttm_buffer_object **p_bo)
-{
-	struct ttm_buffer_object *bo;
-	struct ttm_mem_global *mem_glob = bdev->glob->mem_glob;
-	int ret;
-
-	size_t acc_size =
-	    ttm_bo_size(bdev->glob, (size + PAGE_SIZE - 1) >> PAGE_SHIFT);
-	ret = ttm_mem_global_alloc(mem_glob, acc_size, false, false);
-	if (unlikely(ret != 0))
-		return ret;
-
-	bo = kzalloc(sizeof(*bo), GFP_KERNEL);
-
-	if (unlikely(bo == NULL)) {
-		ttm_mem_global_free(mem_glob, acc_size);
-		return -ENOMEM;
-	}
-
-	ret = ttm_bo_init(bdev, bo, size, type, placement, page_alignment,
-				buffer_start, interruptible,
-				persistant_swap_storage, acc_size, NULL);
-	if (likely(ret == 0))
-		*p_bo = bo;
-
-	return ret;
-}
-
-int psb_ttm_bo_check_placement(struct ttm_buffer_object *bo,
-				struct ttm_placement *placement)
-{
-	int i;
-
-	for (i = 0; i < placement->num_placement; i++) {
-		if (!capable(CAP_SYS_ADMIN)) {
-			if (placement->placement[i] & TTM_PL_FLAG_NO_EVICT) {
-				printk(KERN_ERR TTM_PFX "Need to be root to "
-					"modify NO_EVICT status.\n");
-				return -EINVAL;
-			}
-		}
-	}
-	for (i = 0; i < placement->num_busy_placement; i++) {
-		if (!capable(CAP_SYS_ADMIN)) {
-			if (placement->busy_placement[i] & TTM_PL_FLAG_NO_EVICT) {
-				printk(KERN_ERR TTM_PFX "Need to be root to "
-					"modify NO_EVICT status.\n");
-				return -EINVAL;
-			}
-		}
-	}
-	return 0;
-}
-
-int ttm_buffer_object_create(struct ttm_bo_device *bdev,
-			unsigned long size,
-			enum ttm_bo_type type,
-			uint32_t flags,
-			uint32_t page_alignment,
-			unsigned long buffer_start,
-			bool interruptible,
-			struct file *persistant_swap_storage,
-			struct ttm_buffer_object **p_bo)
-{
-	struct ttm_placement placement = default_placement;
-	int ret;
-
-	if ((flags & TTM_PL_MASK_CACHING) == 0)
-		flags |= TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED;
-
-	placement.num_placement = 1;
-	placement.placement = &flags;
-
-        ret = ttm_bo_create_private(bdev,
-	   		size,
-			type,
-			&placement,
-			page_alignment,
-			buffer_start,
-			interruptible,
-			persistant_swap_storage,
-			p_bo);
-
-	return ret;
-}
-
-
-int ttm_pl_create_ioctl(struct ttm_object_file *tfile,
-			struct ttm_bo_device *bdev,
-			struct ttm_lock *lock, void *data)
-{
-	union ttm_pl_create_arg *arg = data;
-	struct ttm_pl_create_req *req = &arg->req;
-	struct ttm_pl_rep *rep = &arg->rep;
-	struct ttm_buffer_object *bo;
-	struct ttm_buffer_object *tmp;
-	struct ttm_bo_user_object *user_bo;
-	uint32_t flags;
-	int ret = 0;
-	struct ttm_mem_global *mem_glob = bdev->glob->mem_glob;
-	struct ttm_placement placement = default_placement;
-	size_t acc_size =
-	    ttm_pl_size(bdev, (req->size + PAGE_SIZE - 1) >> PAGE_SHIFT);
-	ret = ttm_mem_global_alloc(mem_glob, acc_size, false, false);
-	if (unlikely(ret != 0))
-		return ret;
-
-	flags = req->placement;
-	user_bo = kzalloc(sizeof(*user_bo), GFP_KERNEL);
-	if (unlikely(user_bo == NULL)) {
-		ttm_mem_global_free(mem_glob, acc_size);
-		return -ENOMEM;
-	}
-
-	bo = &user_bo->bo;
-	ret = ttm_read_lock(lock, true);
-	if (unlikely(ret != 0)) {
-		ttm_mem_global_free(mem_glob, acc_size);
-		kfree(user_bo);
-		return ret;
-	}
-
-	placement.num_placement = 1;
-	placement.placement = &flags;
-
-	if ((flags & TTM_PL_MASK_CACHING) == 0)
-		flags |=  TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED;
-
-	ret = ttm_bo_init(bdev, bo, req->size,
-				     ttm_bo_type_device, &placement,
-				     req->page_alignment, 0, true,
-				     NULL, acc_size, &ttm_bo_user_destroy);
-	ttm_read_unlock(lock);
-
-	/*
-	 * Note that the ttm_buffer_object_init function
-	 * would've called the destroy function on failure!!
-	 */
-
-	if (unlikely(ret != 0))
-		goto out;
-
-	tmp = ttm_bo_reference(bo);
-	ret = ttm_base_object_init(tfile, &user_bo->base,
-				   flags & TTM_PL_FLAG_SHARED,
-				   ttm_buffer_type,
-				   &ttm_bo_user_release,
-				   &ttm_bo_user_ref_release);
-	if (unlikely(ret != 0))
-		goto out_err;
-
-	spin_lock(&bo->bdev->fence_lock);
-	ttm_pl_fill_rep(bo, rep);
-	spin_unlock(&bo->bdev->fence_lock);
-	ttm_bo_unref(&bo);
-out:
-	return 0;
-out_err:
-	ttm_bo_unref(&tmp);
-	ttm_bo_unref(&bo);
-	return ret;
-}
-
-int ttm_pl_ub_create_ioctl(struct ttm_object_file *tfile,
-			   struct ttm_bo_device *bdev,
-			   struct ttm_lock *lock, void *data)
-{
-	union ttm_pl_create_ub_arg *arg = data;
-	struct ttm_pl_create_ub_req *req = &arg->req;
-	struct ttm_pl_rep *rep = &arg->rep;
-	struct ttm_buffer_object *bo;
-	struct ttm_buffer_object *tmp;
-	struct ttm_bo_user_object *user_bo;
-	uint32_t flags;
-	int ret = 0;
-	struct ttm_mem_global *mem_glob = bdev->glob->mem_glob;
-	struct ttm_placement placement = default_placement;
-	size_t acc_size =
-	    ttm_pl_size(bdev, (req->size + PAGE_SIZE - 1) >> PAGE_SHIFT);
-	ret = ttm_mem_global_alloc(mem_glob, acc_size, false, false);
-	if (unlikely(ret != 0))
-		return ret;
-
-	flags = req->placement;
-	user_bo = kzalloc(sizeof(*user_bo), GFP_KERNEL);
-	if (unlikely(user_bo == NULL)) {
-		ttm_mem_global_free(mem_glob, acc_size);
-		return -ENOMEM;
-	}
-	ret = ttm_read_lock(lock, true);
-	if (unlikely(ret != 0)) {
-		ttm_mem_global_free(mem_glob, acc_size);
-		kfree(user_bo);
-		return ret;
-	}
-	bo = &user_bo->bo;
-
-	placement.num_placement = 1;
-	placement.placement = &flags;
-
-	ret = ttm_bo_init(bdev,
-					bo,
-					req->size,
-					ttm_bo_type_user,
-					&placement,
-					req->page_alignment,
-					req->user_address,
-					true,
-					NULL,
-					acc_size,
-					&ttm_bo_user_destroy);
-
-	/*
-	 * Note that the ttm_buffer_object_init function
-	 * would've called the destroy function on failure!!
-	 */
-	ttm_read_unlock(lock);
-	if (unlikely(ret != 0))
-		goto out;
-
-	tmp = ttm_bo_reference(bo);
-	ret = ttm_base_object_init(tfile, &user_bo->base,
-				   flags & TTM_PL_FLAG_SHARED,
-				   ttm_buffer_type,
-				   &ttm_bo_user_release,
-				   &ttm_bo_user_ref_release);
-	if (unlikely(ret != 0))
-		goto out_err;
-
-	spin_lock(&bo->bdev->fence_lock);
-	ttm_pl_fill_rep(bo, rep);
-	spin_unlock(&bo->bdev->fence_lock);
-	ttm_bo_unref(&bo);
-out:
-	return 0;
-out_err:
-	ttm_bo_unref(&tmp);
-	ttm_bo_unref(&bo);
-	return ret;
-}
-
-int ttm_pl_reference_ioctl(struct ttm_object_file *tfile, void *data)
-{
-	union ttm_pl_reference_arg *arg = data;
-	struct ttm_pl_rep *rep = &arg->rep;
-	struct ttm_bo_user_object *user_bo;
-	struct ttm_buffer_object *bo;
-	struct ttm_base_object *base;
-	int ret;
-
-	user_bo = ttm_bo_user_lookup(tfile, arg->req.handle);
-	if (unlikely(user_bo == NULL)) {
-		printk(KERN_ERR "Could not reference buffer object.\n");
-		return -EINVAL;
-	}
-
-	bo = &user_bo->bo;
-	ret = ttm_ref_object_add(tfile, &user_bo->base, TTM_REF_USAGE, NULL);
-	if (unlikely(ret != 0)) {
-		printk(KERN_ERR
-		       "Could not add a reference to buffer object.\n");
-		goto out;
-	}
-
-	spin_lock(&bo->bdev->fence_lock);
-	ttm_pl_fill_rep(bo, rep);
-	spin_unlock(&bo->bdev->fence_lock);
-
-out:
-	base = &user_bo->base;
-	ttm_base_object_unref(&base);
-	return ret;
-}
-
-int ttm_pl_unref_ioctl(struct ttm_object_file *tfile, void *data)
-{
-	struct ttm_pl_reference_req *arg = data;
-
-	return ttm_ref_object_base_unref(tfile, arg->handle, TTM_REF_USAGE);
-}
-
-int ttm_pl_synccpu_ioctl(struct ttm_object_file *tfile, void *data)
-{
-	struct ttm_pl_synccpu_arg *arg = data;
-	struct ttm_bo_user_object *user_bo;
-	struct ttm_buffer_object *bo;
-	struct ttm_base_object *base;
-	bool existed;
-	int ret;
-
-	switch (arg->op) {
-	case TTM_PL_SYNCCPU_OP_GRAB:
-		user_bo = ttm_bo_user_lookup(tfile, arg->handle);
-		if (unlikely(user_bo == NULL)) {
-			printk(KERN_ERR
-			       "Could not find buffer object for synccpu.\n");
-			return -EINVAL;
-		}
-		bo = &user_bo->bo;
-		base = &user_bo->base;
-		ret = ttm_bo_synccpu_write_grab(bo,
-						arg->access_mode &
-						TTM_PL_SYNCCPU_MODE_NO_BLOCK);
-		if (unlikely(ret != 0)) {
-			ttm_base_object_unref(&base);
-			goto out;
-		}
-		ret = ttm_ref_object_add(tfile, &user_bo->base,
-					 TTM_REF_SYNCCPU_WRITE, &existed);
-		if (existed || ret != 0)
-			ttm_bo_synccpu_write_release(bo);
-		ttm_base_object_unref(&base);
-		break;
-	case TTM_PL_SYNCCPU_OP_RELEASE:
-		ret = ttm_ref_object_base_unref(tfile, arg->handle,
-						TTM_REF_SYNCCPU_WRITE);
-		break;
-	default:
-		ret = -EINVAL;
-		break;
-	}
-out:
-	return ret;
-}
-
-int ttm_pl_setstatus_ioctl(struct ttm_object_file *tfile,
-			   struct ttm_lock *lock, void *data)
-{
-	union ttm_pl_setstatus_arg *arg = data;
-	struct ttm_pl_setstatus_req *req = &arg->req;
-	struct ttm_pl_rep *rep = &arg->rep; 
-	struct ttm_buffer_object *bo;
-	struct ttm_placement placement = default_placement;
-	uint32_t flags[2];
-	int ret;
-
-	bo = ttm_buffer_object_lookup(tfile, req->handle);
-	if (unlikely(bo == NULL)) {
-		printk(KERN_ERR
-		       "Could not find buffer object for setstatus.\n");
-		return -EINVAL;
-	}
-
-	ret = ttm_read_lock(lock, true);
-	if (unlikely(ret != 0))
-		goto out_err0;
-
-	ret = ttm_bo_reserve(bo, true, false, false, 0);
-	if (unlikely(ret != 0))
-		goto out_err1;
-
-	ret = ttm_bo_wait_cpu(bo, false);
-	if (unlikely(ret != 0))
-		goto out_err2;
-
-	flags[0] = req->set_placement;
-	flags[1] = req->clr_placement;
-
-	placement.num_placement = 2;
-	placement.placement = flags;
-
-	spin_lock(&bo->bdev->fence_lock);
-
-	ret = psb_ttm_bo_check_placement(bo, &placement);
-	if (unlikely(ret != 0))
-		goto out_err2;
-
-	placement.num_placement = 1;
-	flags[0] = (req->set_placement | bo->mem.placement) & ~req->clr_placement;
-
-	ret = ttm_bo_validate(bo, &placement, true, false, false);
-	if (unlikely(ret != 0))
-		goto out_err2;
-
-	ttm_pl_fill_rep(bo, rep);
-out_err2:
-	spin_unlock(&bo->bdev->fence_lock);
-	ttm_bo_unreserve(bo);
-out_err1:
-	ttm_read_unlock(lock);
-out_err0:
-	ttm_bo_unref(&bo);
-	return ret;
-}
-
-static int psb_ttm_bo_block_reservation(struct ttm_buffer_object *bo, bool interruptible,
-                             bool no_wait)
-{
-        int ret;
-
-        while (unlikely(atomic_cmpxchg(&bo->reserved, 0, 1) != 0)) {
-                if (no_wait)
-                        return -EBUSY;
-                else if (interruptible) {
-                        ret = wait_event_interruptible
-                            (bo->event_queue, atomic_read(&bo->reserved) == 0);
-                        if (unlikely(ret != 0))
-                                return -ERESTART;
-                } else {
-                        wait_event(bo->event_queue,
-                                   atomic_read(&bo->reserved) == 0);
-                }
-        }
-        return 0;
-}
-
-static void psb_ttm_bo_unblock_reservation(struct ttm_buffer_object *bo)
-{
-        atomic_set(&bo->reserved, 0);
-        wake_up_all(&bo->event_queue);
-}
-
-int ttm_pl_waitidle_ioctl(struct ttm_object_file *tfile, void *data)
-{
-	struct ttm_pl_waitidle_arg *arg = data;
-	struct ttm_buffer_object *bo;
-	int ret;
-
-	bo = ttm_buffer_object_lookup(tfile, arg->handle);
-	if (unlikely(bo == NULL)) {
-		printk(KERN_ERR "Could not find buffer object for waitidle.\n");
-		return -EINVAL;
-	}
-
-	ret =
-	    psb_ttm_bo_block_reservation(bo, true,
-				     arg->mode & TTM_PL_WAITIDLE_MODE_NO_BLOCK);
-	if (unlikely(ret != 0))
-		goto out;
-	spin_lock(&bo->bdev->fence_lock);
-	ret = ttm_bo_wait(bo,
-			  arg->mode & TTM_PL_WAITIDLE_MODE_LAZY,
-			  true, arg->mode & TTM_PL_WAITIDLE_MODE_NO_BLOCK);
-	spin_unlock(&bo->bdev->fence_lock);
-	psb_ttm_bo_unblock_reservation(bo);
-out:
-	ttm_bo_unref(&bo);
-	return ret;
-}
-
-int ttm_pl_verify_access(struct ttm_buffer_object *bo,
-			 struct ttm_object_file *tfile)
-{
-	struct ttm_bo_user_object *ubo;
-
-	/*
-	 * Check bo subclass.
-	 */
-
-	if (unlikely(bo->destroy != &ttm_bo_user_destroy))
-		return -EPERM;
-
-	ubo = container_of(bo, struct ttm_bo_user_object, bo);
-	if (likely(ubo->base.shareable || ubo->base.tfile == tfile))
-		return 0;
-
-	return -EPERM;
-}
diff --git a/drivers/staging/cdv/imgv/psb_ttm_placement_user.h b/drivers/staging/cdv/imgv/psb_ttm_placement_user.h
deleted file mode 100644
index f17bf48..0000000
--- a/drivers/staging/cdv/imgv/psb_ttm_placement_user.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/**************************************************************************
- *
- * Copyright 2006-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA
- * All Rights Reserved.
- * Copyright (c) 2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-/*
- * Authors
- * Thomas Hellström <thomas-at-tungstengraphics-dot-com>
- */
-
-#ifndef _TTM_PLACEMENT_USER_H_
-#define _TTM_PLACEMENT_USER_H_
-
-#if !defined(__KERNEL__) && !defined(_KERNEL)
-#include <stdint.h>
-#else
-#include <linux/kernel.h>
-#endif
-
-#include "ttm/ttm_placement.h"
-
-#define TTM_PLACEMENT_MAJOR 0
-#define TTM_PLACEMENT_MINOR 1
-#define TTM_PLACEMENT_PL    0
-#define TTM_PLACEMENT_DATE  "080819"
-
-/**
- * struct ttm_pl_create_req
- *
- * @size: The buffer object size.
- * @placement: Flags that indicate initial acceptable
- *  placement.
- * @page_alignment: Required alignment in pages.
- *
- * Input to the TTM_BO_CREATE ioctl.
- */
-
-struct ttm_pl_create_req {
-	uint64_t size;
-	uint32_t placement;
-	uint32_t page_alignment;
-};
-
-/**
- * struct ttm_pl_create_ub_req
- *
- * @size: The buffer object size.
- * @user_address: User-space address of the memory area that
- * should be used to back the buffer object cast to 64-bit.
- * @placement: Flags that indicate initial acceptable
- *  placement.
- * @page_alignment: Required alignment in pages.
- *
- * Input to the TTM_BO_CREATE_UB ioctl.
- */
-
-struct ttm_pl_create_ub_req {
-	uint64_t size;
-	uint64_t user_address;
-	uint32_t placement;
-	uint32_t page_alignment;
-};
-
-/**
- * struct ttm_pl_rep
- *
- * @gpu_offset: The current offset into the memory region used.
- * This can be used directly by the GPU if there are no
- * additional GPU mapping procedures used by the driver.
- *
- * @bo_size: Actual buffer object size.
- *
- * @map_handle: Offset into the device address space.
- * Used for map, seek, read, write. This will never change
- * during the lifetime of an object.
- *
- * @placement: Flag indicating the placement status of
- * the buffer object using the TTM_PL flags above.
- *
- * @sync_object_arg: Used for user-space synchronization and
- * depends on the synchronization model used. If fences are
- * used, this is the buffer_object::fence_type_mask
- *
- * Output from the TTM_PL_CREATE and TTM_PL_REFERENCE, and
- * TTM_PL_SETSTATUS ioctls.
- */
-
-struct ttm_pl_rep {
-	uint64_t gpu_offset;
-	uint64_t bo_size;
-	uint64_t map_handle;
-	uint32_t placement;
-	uint32_t handle;
-	uint32_t sync_object_arg;
-	uint32_t pad64;
-};
-
-/**
- * struct ttm_pl_setstatus_req
- *
- * @set_placement: Placement flags to set.
- *
- * @clr_placement: Placement flags to clear.
- *
- * @handle: The object handle
- *
- * Input to the TTM_PL_SETSTATUS ioctl.
- */
-
-struct ttm_pl_setstatus_req {
-	uint32_t set_placement;
-	uint32_t clr_placement;
-	uint32_t handle;
-	uint32_t pad64;
-};
-
-/**
- * struct ttm_pl_reference_req
- *
- * @handle: The object to put a reference on.
- *
- * Input to the TTM_PL_REFERENCE and the TTM_PL_UNREFERENCE ioctls.
- */
-
-struct ttm_pl_reference_req {
-	uint32_t handle;
-	uint32_t pad64;
-};
-
-/*
- * ACCESS mode flags for SYNCCPU.
- *
- * TTM_SYNCCPU_MODE_READ will guarantee that the GPU is not
- * writing to the buffer.
- *
- * TTM_SYNCCPU_MODE_WRITE will guarantee that the GPU is not
- * accessing the buffer.
- *
- * TTM_SYNCCPU_MODE_NO_BLOCK makes sure the call does not wait
- * for GPU accesses to finish but return -EBUSY.
- *
- * TTM_SYNCCPU_MODE_TRYCACHED Try to place the buffer in cacheable
- * memory while synchronized for CPU.
- */
-
-#define TTM_PL_SYNCCPU_MODE_READ      TTM_ACCESS_READ
-#define TTM_PL_SYNCCPU_MODE_WRITE     TTM_ACCESS_WRITE
-#define TTM_PL_SYNCCPU_MODE_NO_BLOCK  (1 << 2)
-#define TTM_PL_SYNCCPU_MODE_TRYCACHED (1 << 3)
-
-/**
- * struct ttm_pl_synccpu_arg
- *
- * @handle: The object to synchronize.
- *
- * @access_mode: access mode indicated by the
- * TTM_SYNCCPU_MODE flags.
- *
- * @op: indicates whether to grab or release the
- * buffer for cpu usage.
- *
- * Input to the TTM_PL_SYNCCPU ioctl.
- */
-
-struct ttm_pl_synccpu_arg {
-	uint32_t handle;
-	uint32_t access_mode;
-	enum {
-		TTM_PL_SYNCCPU_OP_GRAB,
-		TTM_PL_SYNCCPU_OP_RELEASE
-	} op;
-	uint32_t pad64;
-};
-
-/*
- * Waiting mode flags for the TTM_BO_WAITIDLE ioctl.
- *
- * TTM_WAITIDLE_MODE_LAZY: Allow for sleeps during polling
- * wait.
- *
- * TTM_WAITIDLE_MODE_NO_BLOCK: Don't block waiting for GPU,
- * but return -EBUSY if the buffer is busy.
- */
-
-#define TTM_PL_WAITIDLE_MODE_LAZY     (1 << 0)
-#define TTM_PL_WAITIDLE_MODE_NO_BLOCK (1 << 1)
-
-/**
- * struct ttm_waitidle_arg
- *
- * @handle: The object to synchronize.
- *
- * @mode: wait mode indicated by the
- * TTM_SYNCCPU_MODE flags.
- *
- * Argument to the TTM_BO_WAITIDLE ioctl.
- */
-
-struct ttm_pl_waitidle_arg {
-	uint32_t handle;
-	uint32_t mode;
-};
-
-union ttm_pl_create_arg {
-	struct ttm_pl_create_req req;
-	struct ttm_pl_rep rep;
-};
-
-union ttm_pl_reference_arg {
-	struct ttm_pl_reference_req req;
-	struct ttm_pl_rep rep;
-};
-
-union ttm_pl_setstatus_arg {
-	struct ttm_pl_setstatus_req req;
-	struct ttm_pl_rep rep;
-};
-
-union ttm_pl_create_ub_arg {
-	struct ttm_pl_create_ub_req req;
-	struct ttm_pl_rep rep;
-};
-
-/*
- * Ioctl offsets.
- */
-
-#define TTM_PL_CREATE      0x00
-#define TTM_PL_REFERENCE   0x01
-#define TTM_PL_UNREF       0x02
-#define TTM_PL_SYNCCPU     0x03
-#define TTM_PL_WAITIDLE    0x04
-#define TTM_PL_SETSTATUS   0x05
-#define TTM_PL_CREATE_UB   0x06
-
-#endif
diff --git a/drivers/staging/cdv/imgv/psb_ttm_userobj_api.h b/drivers/staging/cdv/imgv/psb_ttm_userobj_api.h
deleted file mode 100644
index c69fa88..0000000
--- a/drivers/staging/cdv/imgv/psb_ttm_userobj_api.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) 2006-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA
- * All Rights Reserved.
- * Copyright (c) 2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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., 
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
- */
-
-#ifndef _TTM_USEROBJ_API_H_
-#define _TTM_USEROBJ_API_H_
-
-#include "psb_ttm_placement_user.h"
-#include "psb_ttm_fence_user.h"
-#include "ttm/ttm_object.h"
-#include "psb_ttm_fence_api.h"
-#include "ttm/ttm_bo_api.h"
-
-struct ttm_lock;
-
-/*
- * User ioctls.
- */
-
-extern int ttm_pl_create_ioctl(struct ttm_object_file *tfile,
-			       struct ttm_bo_device *bdev,
-			       struct ttm_lock *lock, void *data);
-extern int ttm_pl_ub_create_ioctl(struct ttm_object_file *tfile,
-				  struct ttm_bo_device *bdev,
-				  struct ttm_lock *lock, void *data);
-extern int ttm_pl_reference_ioctl(struct ttm_object_file *tfile, void *data);
-extern int ttm_pl_unref_ioctl(struct ttm_object_file *tfile, void *data);
-extern int ttm_pl_synccpu_ioctl(struct ttm_object_file *tfile, void *data);
-extern int ttm_pl_setstatus_ioctl(struct ttm_object_file *tfile,
-				  struct ttm_lock *lock, void *data);
-extern int ttm_pl_waitidle_ioctl(struct ttm_object_file *tfile, void *data);
-extern int ttm_fence_signaled_ioctl(struct ttm_object_file *tfile, void *data);
-extern int ttm_fence_finish_ioctl(struct ttm_object_file *tfile, void *data);
-extern int ttm_fence_unref_ioctl(struct ttm_object_file *tfile, void *data);
-
-extern int
-ttm_fence_user_create(struct ttm_fence_device *fdev,
-		      struct ttm_object_file *tfile,
-		      uint32_t fence_class,
-		      uint32_t fence_types,
-		      uint32_t create_flags,
-		      struct ttm_fence_object **fence, uint32_t * user_handle);
-
-extern struct ttm_buffer_object *ttm_buffer_object_lookup(struct ttm_object_file
-							  *tfile,
-							  uint32_t handle);
-
-extern int
-ttm_pl_verify_access(struct ttm_buffer_object *bo,
-		     struct ttm_object_file *tfile);
-
-extern int ttm_buffer_object_create(struct ttm_bo_device *bdev,
-			unsigned long size,
-			enum ttm_bo_type type,
-			uint32_t flags,
-			uint32_t page_alignment,
-			unsigned long buffer_start,
-			bool interruptible,
-			struct file *persistant_swap_storage,
-			struct ttm_buffer_object **p_bo);
-
-extern int psb_ttm_bo_check_placement(struct ttm_buffer_object *bo,
-				struct ttm_placement *placement);
-#endif
diff --git a/drivers/staging/cdv/pvr/COPYING b/drivers/staging/cdv/pvr/COPYING
deleted file mode 100644
index 80dd76b..0000000
--- a/drivers/staging/cdv/pvr/COPYING
+++ /dev/null
@@ -1,351 +0,0 @@
-
-This software is Copyright (C) 2008 Imagination Technologies Ltd.
-			All rights reserved.
-
-You may use, distribute and copy this software under the terms of
-GNU General Public License version 2, which is displayed below.
-
--------------------------------------------------------------------------
-
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-    59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	Appendix: How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
-
-    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.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) 19yy name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
--------------------------------------------------------------------------
-
diff --git a/drivers/staging/cdv/pvr/INSTALL b/drivers/staging/cdv/pvr/INSTALL
deleted file mode 100644
index e4c1069..0000000
--- a/drivers/staging/cdv/pvr/INSTALL
+++ /dev/null
@@ -1,76 +0,0 @@
-
-SGX Embedded Systems DDK for the Linux kernel.
-Copyright (C) 2008 Imagination Technologies Ltd. All rights reserved.
-======================================================================
-
-This file covers how to build and install the Imagination Technologies
-SGX DDK for the Linux kernel.
-
-
-Build System Environment Variables
--------------------------------------------
-
-The SGX DDK Build scripts depend on a number of environment variables
-being setup before compilation or installation of DDK software can
-commence:
-
-$DISCIMAGE
-The DDK Build scripts install files to the location specified by the
-DISCIMAGE environment variable, when the make install target is used.
-This should point to the target filesystem.
-$ export DISCIMAGE=/path/to/filesystem
-
-$KERNELDIR
-When building the SGX DDK kernel module, the build needs access
-to the headers of the Linux kernel
-$ export KERNELDIR=/path/to/kernel
-
-$PATH
-If a cross compiler is being used make sure the PATH environment variable
-includes the path to the toolchain
-$ export PATH=$PATH:/path/to/toolchain
-
-$CROSS_COMPILE
-Since the SGX DDK Build scripts are geared toward a cross-compilation
-workflow, the CROSS_COMPILE environment variable needs to be set
-$ export CROSS_COMPILE=toolchain-prefix-
-
-
-Build and Install Instructions
--------------------------------------------
-
-The SGX DDK configures different target builds within directories under
-eurasiacon/build/linux/.
-
-The supported build targets are:
-
-	all		Makes everything
-	clean	Removes all intermediate files created by a build.
-	clobber	Removes all binaries for all builds as well.
-	install	Runs the install script generated by the build.
-
-The following variables may be set on the command line to influence a build.
-
-	BUILD	The type of build being performed.
-			Alternatives are release, timing or debug.
-	CFLAGS	Build dependent	optimisations and debug information flags.
-	SILENT	Determines whether text of commands is produced during build.
-
-To build for, change to the appropriate target directory, e.g.:
-$ cd eurasiacon/build/linux/platform/kbuild
-
-Issue the make command:
-$ make BUILD=debug all
-
-The DDK software must be installed by the root user.  Become the root user:
-$ su
-
-Install the DDK software:
-$ make install
-
-Become an ordinary user again:
-$ exit
-
-
-
-
diff --git a/drivers/staging/cdv/pvr/README b/drivers/staging/cdv/pvr/README
deleted file mode 100644
index 8039c39..0000000
--- a/drivers/staging/cdv/pvr/README
+++ /dev/null
@@ -1,48 +0,0 @@
-
-SGX Embedded Systems DDK for Linux kernel.
-Copyright (C) 2008 Imagination Technologies Ltd. All rights reserved.
-======================================================================
-
-
-About
--------------------------------------------
-
-This is the Imagination Technologies SGX DDK for the Linux kernel.
-
-
-License
--------------------------------------------
-
-You may use, distribute and copy this software under the terms of
-GNU General Public License version 2.
-
-The full GNU General Public License version 2 is included in this
-distribution in the file called "COPYING".
-
-
-Build and Install Instructions
--------------------------------------------
-
-For details see the "INSTALL" file.
-
-To build for, change to the appropriate target directory, e.g.:
-$ cd eurasiacon/build/linux/platform/kbuild
-
-Issue the make command:
-$ make BUILD=debug all
-
-The DDK software must be installed by the root user.  Become the root user:
-$ su
-
-Install the DDK software:
-$ make install
-
-Become an ordinary user again:
-$ exit
-
-
-Contact information:
--------------------------------------------
-
-Imagination Technologies Ltd. <gpl-support@imgtec.com>
-Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
diff --git a/drivers/staging/cdv/pvr/eurasiacon/.gitignore b/drivers/staging/cdv/pvr/eurasiacon/.gitignore
deleted file mode 100644
index f558f8b..0000000
--- a/drivers/staging/cdv/pvr/eurasiacon/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin_pc_i686*
-tmp_pc_i686*
-host_pc_i686*
-binary_pc_i686*
-*.o
-*.o.cmd
diff --git a/drivers/staging/cdv/pvr/include4/dbgdrvif.h b/drivers/staging/cdv/pvr/include4/dbgdrvif.h
deleted file mode 100644
index b7614ac..0000000
--- a/drivers/staging/cdv/pvr/include4/dbgdrvif.h
+++ /dev/null
@@ -1,328 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _DBGDRVIF_
-#define _DBGDRVIF_
-
-
-#if defined(__linux__)
-
-#define FILE_DEVICE_UNKNOWN             0
-#define METHOD_BUFFERED                 0
-#define FILE_ANY_ACCESS                 0
-
-#define CTL_CODE( DeviceType, Function, Method, Access ) (Function) 
-#define MAKEIOCTLINDEX(i)	((i) & 0xFFF)
-
-#else
-
-#include "ioctldef.h"
-
-#endif
-
-#define DEBUG_CAPMODE_FRAMED			0x00000001UL
-#define DEBUG_CAPMODE_CONTINUOUS		0x00000002UL
-#define DEBUG_CAPMODE_HOTKEY			0x00000004UL
-
-#define DEBUG_OUTMODE_STANDARDDBG		0x00000001UL
-#define DEBUG_OUTMODE_MONO				0x00000002UL
-#define DEBUG_OUTMODE_STREAMENABLE		0x00000004UL
-#define DEBUG_OUTMODE_ASYNC				0x00000008UL
-#define DEBUG_OUTMODE_SGXVGA            0x00000010UL
-
-#define DEBUG_FLAGS_USE_NONPAGED_MEM	0x00000001UL
-#define DEBUG_FLAGS_NO_BUF_EXPANDSION	0x00000002UL
-#define DEBUG_FLAGS_ENABLESAMPLE		0x00000004UL
-#define DEBUG_FLAGS_READONLY			0x00000008UL
-#define DEBUG_FLAGS_WRITEONLY			0x00000010UL
-
-#define DEBUG_FLAGS_TEXTSTREAM			0x80000000UL
-
-#define DEBUG_LEVEL_0					0x00000001UL
-#define DEBUG_LEVEL_1					0x00000003UL
-#define DEBUG_LEVEL_2					0x00000007UL
-#define DEBUG_LEVEL_3					0x0000000FUL
-#define DEBUG_LEVEL_4					0x0000001FUL
-#define DEBUG_LEVEL_5					0x0000003FUL
-#define DEBUG_LEVEL_6					0x0000007FUL
-#define DEBUG_LEVEL_7					0x000000FFUL
-#define DEBUG_LEVEL_8					0x000001FFUL
-#define DEBUG_LEVEL_9					0x000003FFUL
-#define DEBUG_LEVEL_10					0x000007FFUL
-#define DEBUG_LEVEL_11					0x00000FFFUL
-
-#define DEBUG_LEVEL_SEL0				0x00000001UL
-#define DEBUG_LEVEL_SEL1				0x00000002UL
-#define DEBUG_LEVEL_SEL2				0x00000004UL
-#define DEBUG_LEVEL_SEL3				0x00000008UL
-#define DEBUG_LEVEL_SEL4				0x00000010UL
-#define DEBUG_LEVEL_SEL5				0x00000020UL
-#define DEBUG_LEVEL_SEL6				0x00000040UL
-#define DEBUG_LEVEL_SEL7				0x00000080UL
-#define DEBUG_LEVEL_SEL8				0x00000100UL
-#define DEBUG_LEVEL_SEL9				0x00000200UL
-#define DEBUG_LEVEL_SEL10				0x00000400UL
-#define DEBUG_LEVEL_SEL11				0x00000800UL
-
-#define DEBUG_SERVICE_IOCTL_BASE		0x800UL
-#define DEBUG_SERVICE_CREATESTREAM		CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x01, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_DESTROYSTREAM		CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x02, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_GETSTREAM			CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x03, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_WRITESTRING		CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x04, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_READSTRING		CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x05, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_WRITE				CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x06, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_READ				CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x07, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_SETDEBUGMODE		CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x08, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_SETDEBUGOUTMODE	CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x09, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_SETDEBUGLEVEL		CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0A, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_SETFRAME			CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0B, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_GETFRAME			CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0C, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_OVERRIDEMODE		CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0D, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_DEFAULTMODE		CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0E, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_GETSERVICETABLE	CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0F, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_WRITE2			CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x10, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_WRITESTRINGCM		CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x11, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_WRITECM			CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x12, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_SETMARKER			CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x13, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_GETMARKER			CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x14, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_ISCAPTUREFRAME	CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x15, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_WRITELF			CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x16, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_READLF			CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x17, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_WAITFOREVENT		CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x18, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define DEBUG_SERVICE_SETCONNNOTIFY		CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x19, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-
-typedef enum _DBG_EVENT_
-{
-	DBG_EVENT_STREAM_DATA = 1
-} DBG_EVENT;
-
-
-typedef struct _DBG_IN_CREATESTREAM_
-{
-	union
-	{
-		IMG_CHAR *pszName;
-		IMG_UINT64 ui64Name;
-	} u;
-	IMG_UINT32 ui32Pages;
-	IMG_UINT32 ui32CapMode;
-	IMG_UINT32 ui32OutMode;
-}DBG_IN_CREATESTREAM, *PDBG_IN_CREATESTREAM;
-
-typedef struct _DBG_IN_FINDSTREAM_
-{
-	union
-	{
-		IMG_CHAR *pszName;
-		IMG_UINT64 ui64Name;
-	}u;
-	IMG_BOOL bResetStream;
-}DBG_IN_FINDSTREAM, *PDBG_IN_FINDSTREAM;
-
-typedef struct _DBG_IN_WRITESTRING_
-{
-	union
-	{
-		IMG_CHAR *pszString;
-		IMG_UINT64 ui64String;
-	} u;
-	IMG_SID hStream;
-	IMG_UINT32 ui32Level;
-}DBG_IN_WRITESTRING, *PDBG_IN_WRITESTRING;
-
-typedef struct _DBG_IN_READSTRING_
-{
-	union
-	{
-		IMG_CHAR *pszString;
-		IMG_UINT64 ui64String;
-	} u;
-	IMG_SID hStream;
-	IMG_UINT32 ui32StringLen;
-} DBG_IN_READSTRING, *PDBG_IN_READSTRING;
-
-typedef struct _DBG_IN_SETDEBUGMODE_
-{
-	IMG_SID hStream;
-	IMG_UINT32 ui32Mode;
-	IMG_UINT32 ui32Start;
-	IMG_UINT32 ui32End;
-	IMG_UINT32 ui32SampleRate;
-} DBG_IN_SETDEBUGMODE, *PDBG_IN_SETDEBUGMODE;
-
-typedef struct _DBG_IN_SETDEBUGOUTMODE_
-{
-	IMG_SID hStream;
-	IMG_UINT32 ui32Mode;
-} DBG_IN_SETDEBUGOUTMODE, *PDBG_IN_SETDEBUGOUTMODE;
-
-typedef struct _DBG_IN_SETDEBUGLEVEL_
-{
-	IMG_SID hStream;
-	IMG_UINT32 ui32Level;
-} DBG_IN_SETDEBUGLEVEL, *PDBG_IN_SETDEBUGLEVEL;
-
-typedef struct _DBG_IN_SETFRAME_
-{
-	IMG_SID hStream;
-	IMG_UINT32 ui32Frame;
-} DBG_IN_SETFRAME, *PDBG_IN_SETFRAME;
-
-typedef struct _DBG_IN_WRITE_
-{
-	union
-	{
-		IMG_UINT8 *pui8InBuffer;
-		IMG_UINT64 ui64InBuffer;
-	} u;
-	IMG_SID hStream;
-	IMG_UINT32 ui32Level;
-	IMG_UINT32 ui32TransferSize;
-} DBG_IN_WRITE, *PDBG_IN_WRITE;
-
-typedef struct _DBG_IN_READ_
-{
-	union
-	{
-		IMG_UINT8 *pui8OutBuffer;
-		IMG_UINT64 ui64OutBuffer;
-	} u;
-	IMG_SID hStream;
-	IMG_BOOL bReadInitBuffer;
-	IMG_UINT32 ui32OutBufferSize;
-} DBG_IN_READ, *PDBG_IN_READ;
-
-typedef struct _DBG_IN_OVERRIDEMODE_
-{
-	IMG_SID hStream;
-	IMG_UINT32 ui32Mode;
-} DBG_IN_OVERRIDEMODE, *PDBG_IN_OVERRIDEMODE;
-
-typedef struct _DBG_IN_ISCAPTUREFRAME_
-{
-	IMG_SID hStream;
-	IMG_BOOL bCheckPreviousFrame;
-} DBG_IN_ISCAPTUREFRAME, *PDBG_IN_ISCAPTUREFRAME;
-
-typedef struct _DBG_IN_SETMARKER_
-{
-	IMG_SID hStream;
-	IMG_UINT32 ui32Marker;
-} DBG_IN_SETMARKER, *PDBG_IN_SETMARKER;
-
-typedef struct _DBG_IN_WRITE_LF_
-{
-	union
-	{
-		IMG_UINT8 *pui8InBuffer;
-		IMG_UINT64 ui64InBuffer;
-	} u;
-	IMG_UINT32 ui32Flags;
-	IMG_SID    hStream;
-	IMG_UINT32 ui32Level;
-	IMG_UINT32 ui32BufferSize;
-} DBG_IN_WRITE_LF, *PDBG_IN_WRITE_LF;
-
-#define WRITELF_FLAGS_RESETBUF		0x00000001UL
-
-typedef struct _DBG_STREAM_CONTROL_
-{
-	IMG_BOOL   bInitPhaseComplete;	
-	IMG_UINT32 ui32Flags;			
-
-	IMG_UINT32 ui32CapMode;			
-	IMG_UINT32 ui32OutMode;			
-	IMG_UINT32 ui32DebugLevel;
-	IMG_UINT32 ui32DefaultMode;
-	IMG_UINT32 ui32Start;			
-	IMG_UINT32 ui32End;				
-	IMG_UINT32 ui32Current;			
-	IMG_UINT32 ui32SampleRate;		
-	IMG_UINT32 ui32Reserved;
-} DBG_STREAM_CONTROL, *PDBG_STREAM_CONTROL;
-typedef struct _DBG_STREAM_
-{
-	struct _DBG_STREAM_ *psNext;
-	struct _DBG_STREAM_ *psInitStream;
-	DBG_STREAM_CONTROL *psCtrl;
-	IMG_BOOL   bCircularAllowed;
-	IMG_PVOID  pvBase;
-	IMG_UINT32 ui32Size;
-	IMG_UINT32 ui32RPtr;
-	IMG_UINT32 ui32WPtr;
-	IMG_UINT32 ui32DataWritten;
-	IMG_UINT32 ui32Marker;			
-	IMG_UINT32 ui32InitPhaseWOff;	
-	
-	
-	
-	
-	IMG_CHAR szName[30];		
-} DBG_STREAM,*PDBG_STREAM;
-
-typedef struct _DBGKM_CONNECT_NOTIFIER_
-{
-	IMG_VOID (IMG_CALLCONV *pfnConnectNotifier)		(IMG_VOID);
-} DBGKM_CONNECT_NOTIFIER, *PDBGKM_CONNECT_NOTIFIER;
-
-typedef struct _DBGKM_SERVICE_TABLE_
-{
-	IMG_UINT32 ui32Size;
-	IMG_VOID * 	(IMG_CALLCONV *pfnCreateStream)			(IMG_CHAR * pszName,IMG_UINT32 ui32CapMode,IMG_UINT32 ui32OutMode,IMG_UINT32 ui32Flags,IMG_UINT32 ui32Pages);
-	IMG_VOID 	(IMG_CALLCONV *pfnDestroyStream)		(PDBG_STREAM psStream);
-	IMG_VOID * 	(IMG_CALLCONV *pfnFindStream) 			(IMG_CHAR * pszName, IMG_BOOL bResetInitBuffer);
-	IMG_UINT32 	(IMG_CALLCONV *pfnWriteString) 			(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level);
-	IMG_UINT32 	(IMG_CALLCONV *pfnReadString)			(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Limit);
-	IMG_UINT32 	(IMG_CALLCONV *pfnWriteBIN)				(PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
-	IMG_UINT32 	(IMG_CALLCONV *pfnReadBIN)				(PDBG_STREAM psStream,IMG_BOOL bReadInitBuffer, IMG_UINT32 ui32OutBufferSize,IMG_UINT8 *pui8OutBuf);
-	IMG_VOID 	(IMG_CALLCONV *pfnSetCaptureMode)		(PDBG_STREAM psStream,IMG_UINT32 ui32CapMode,IMG_UINT32 ui32Start,IMG_UINT32 ui32Stop,IMG_UINT32 ui32SampleRate);
-	IMG_VOID 	(IMG_CALLCONV *pfnSetOutputMode)		(PDBG_STREAM psStream,IMG_UINT32 ui32OutMode);
-	IMG_VOID 	(IMG_CALLCONV *pfnSetDebugLevel)		(PDBG_STREAM psStream,IMG_UINT32 ui32DebugLevel);
-	IMG_VOID 	(IMG_CALLCONV *pfnSetFrame)				(PDBG_STREAM psStream,IMG_UINT32 ui32Frame);
-	IMG_UINT32 	(IMG_CALLCONV *pfnGetFrame)				(PDBG_STREAM psStream);
-	IMG_VOID 	(IMG_CALLCONV *pfnOverrideMode)			(PDBG_STREAM psStream,IMG_UINT32 ui32Mode);
-	IMG_VOID 	(IMG_CALLCONV *pfnDefaultMode)			(PDBG_STREAM psStream);
-	IMG_UINT32	(IMG_CALLCONV *pfnDBGDrivWrite2)		(PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
-	IMG_UINT32 	(IMG_CALLCONV *pfnWriteStringCM)		(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level);
-	IMG_UINT32	(IMG_CALLCONV *pfnWriteBINCM)			(PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
-	IMG_VOID 	(IMG_CALLCONV *pfnSetMarker)			(PDBG_STREAM psStream,IMG_UINT32 ui32Marker);
-	IMG_UINT32 	(IMG_CALLCONV *pfnGetMarker)			(PDBG_STREAM psStream);
-	IMG_VOID 	(IMG_CALLCONV *pfnStartInitPhase)		(PDBG_STREAM psStream);
-	IMG_VOID 	(IMG_CALLCONV *pfnStopInitPhase)		(PDBG_STREAM psStream);
-	IMG_BOOL 	(IMG_CALLCONV *pfnIsCaptureFrame)		(PDBG_STREAM psStream, IMG_BOOL bCheckPreviousFrame);
-	IMG_UINT32 	(IMG_CALLCONV *pfnWriteLF)				(PDBG_STREAM psStream, IMG_UINT8 *pui8InBuf, IMG_UINT32 ui32InBuffSize, IMG_UINT32 ui32Level, IMG_UINT32 ui32Flags);
-	IMG_UINT32 	(IMG_CALLCONV *pfnReadLF)				(PDBG_STREAM psStream, IMG_UINT32 ui32OutBuffSize, IMG_UINT8 *pui8OutBuf);
-	IMG_UINT32 	(IMG_CALLCONV *pfnGetStreamOffset)		(PDBG_STREAM psStream);
-	IMG_VOID	(IMG_CALLCONV *pfnSetStreamOffset)		(PDBG_STREAM psStream, IMG_UINT32 ui32StreamOffset);
-	IMG_BOOL 	(IMG_CALLCONV *pfnIsLastCaptureFrame)	(PDBG_STREAM psStream);
-	IMG_VOID 	(IMG_CALLCONV *pfnWaitForEvent)			(DBG_EVENT eEvent);
-	IMG_VOID 	(IMG_CALLCONV *pfnSetConnectNotifier)	(DBGKM_CONNECT_NOTIFIER fn_notifier);
-	IMG_UINT32 	(IMG_CALLCONV *pfnWritePersist)			(PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
-} DBGKM_SERVICE_TABLE, *PDBGKM_SERVICE_TABLE;
-
-
-#endif
diff --git a/drivers/staging/cdv/pvr/include4/img_defs.h b/drivers/staging/cdv/pvr/include4/img_defs.h
deleted file mode 100644
index 79a730f..0000000
--- a/drivers/staging/cdv/pvr/include4/img_defs.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined (__IMG_DEFS_H__)
-#define __IMG_DEFS_H__
-
-#include "img_types.h"
-
-typedef		enum	img_tag_TriStateSwitch
-{
-	IMG_ON		=	0x00,
-	IMG_OFF,
-	IMG_IGNORE
-
-} img_TriStateSwitch, * img_pTriStateSwitch;
-
-#define		IMG_SUCCESS				0
-
-#define		IMG_NO_REG				1
-
-#if defined (NO_INLINE_FUNCS)
-	#define	INLINE
-	#define	FORCE_INLINE
-#else
-#if defined (__cplusplus)
-	#define INLINE					inline
-	#define	FORCE_INLINE			inline
-#else
-#if	!defined(INLINE)
-	#define	INLINE					__inline
-#endif
-	#define	FORCE_INLINE			static __inline
-#endif
-#endif
-
-
-#ifndef PVR_UNREFERENCED_PARAMETER
-#define	PVR_UNREFERENCED_PARAMETER(param) (param) = (param)
-#endif
-
-#ifdef __GNUC__
-#define unref__ __attribute__ ((unused))
-#else
-#define unref__
-#endif
-
-#ifndef _TCHAR_DEFINED
-#if defined(UNICODE)
-typedef unsigned short		TCHAR, *PTCHAR, *PTSTR;
-#else	
-typedef char				TCHAR, *PTCHAR, *PTSTR;
-#endif	
-#define _TCHAR_DEFINED
-#endif 
-
-
-			#if defined(__linux__) || defined(__QNXNTO__) || defined(__METAG)
-
-				#define IMG_CALLCONV
-				#define IMG_INTERNAL	__attribute__((visibility("hidden")))
-				#define IMG_EXPORT		__attribute__((visibility("default")))
-				#define IMG_IMPORT
-				#define IMG_RESTRICT	__restrict__
-
-			#else
-					#error("define an OS")
-			#endif
-
-#ifndef IMG_ABORT
-	#define IMG_ABORT()	abort()
-#endif
-
-#ifndef IMG_MALLOC
-	#define IMG_MALLOC(A)		malloc	(A)
-#endif
-
-#ifndef IMG_FREE
-	#define IMG_FREE(A)			free	(A)
-#endif
-
-#define IMG_CONST const
-
-#if defined(__GNUC__)
-#define IMG_FORMAT_PRINTF(x,y)		__attribute__((format(printf,x,y)))
-#else
-#define IMG_FORMAT_PRINTF(x,y)
-#endif
-
-#define  CLEANUP_WITH_POLL		IMG_FALSE
-#define  FORCE_CLEANUP			IMG_TRUE
-
-#if defined (_WIN64)
-#define IMG_UNDEF	(~0ULL)
-#else
-#define IMG_UNDEF	(~0UL)
-#endif
-
-#endif 
diff --git a/drivers/staging/cdv/pvr/include4/img_types.h b/drivers/staging/cdv/pvr/include4/img_types.h
deleted file mode 100644
index 2431786..0000000
--- a/drivers/staging/cdv/pvr/include4/img_types.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __IMG_TYPES_H__
-#define __IMG_TYPES_H__
-
-#if !defined(IMG_ADDRSPACE_CPUVADDR_BITS)
-#define IMG_ADDRSPACE_CPUVADDR_BITS		32
-#endif
-
-#if !defined(IMG_ADDRSPACE_PHYSADDR_BITS)
-#define IMG_ADDRSPACE_PHYSADDR_BITS		32
-#endif
-
-typedef unsigned int	IMG_UINT,	*IMG_PUINT;
-typedef signed int		IMG_INT,	*IMG_PINT;
-
-typedef unsigned char	IMG_UINT8,	*IMG_PUINT8;
-typedef unsigned char	IMG_BYTE,	*IMG_PBYTE;
-typedef signed char		IMG_INT8,	*IMG_PINT8;
-typedef char			IMG_CHAR,	*IMG_PCHAR;
-
-typedef unsigned short	IMG_UINT16,	*IMG_PUINT16;
-typedef signed short	IMG_INT16,	*IMG_PINT16;
-#if !defined(IMG_UINT32_IS_ULONG)
-typedef unsigned int	IMG_UINT32,	*IMG_PUINT32;
-typedef signed int		IMG_INT32,	*IMG_PINT32;
-#else
-typedef unsigned long	IMG_UINT32,	*IMG_PUINT32;
-typedef signed long		IMG_INT32,	*IMG_PINT32;
-#endif
-#if !defined(IMG_UINT32_MAX)
-	#define IMG_UINT32_MAX 0xFFFFFFFFUL
-#endif
-
-#if defined(USE_CODE)
-
-typedef unsigned __int64	IMG_UINT64, *IMG_PUINT64;
-typedef __int64				IMG_INT64,  *IMG_PINT64;
-
-#else
-	#if ((defined(LINUX) || defined(__METAG)) || defined(__QNXNTO__))
-		typedef unsigned long long		IMG_UINT64,	*IMG_PUINT64;
-		typedef long long 				IMG_INT64,	*IMG_PINT64;
-	#else
-		#error("define an OS")
-	#endif
-#endif
-
-#if !(defined(LINUX) && defined (__KERNEL__))
-typedef float			IMG_FLOAT,	*IMG_PFLOAT;
-typedef double			IMG_DOUBLE, *IMG_PDOUBLE;
-#endif
-
-typedef	enum tag_img_bool
-{
-	IMG_FALSE		= 0,
-	IMG_TRUE		= 1,
-	IMG_FORCE_ALIGN = 0x7FFFFFFF
-} IMG_BOOL, *IMG_PBOOL;
-
-typedef void            IMG_VOID, *IMG_PVOID;
-
-typedef IMG_INT32       IMG_RESULT;
-
-#if defined(_WIN64)
-	typedef unsigned __int64	IMG_UINTPTR_T;
-	typedef signed __int64		IMG_PTRDIFF_T;
-	typedef IMG_UINT64			IMG_SIZE_T;
-#else
-	typedef unsigned int	IMG_UINTPTR_T;
-	typedef IMG_UINT32		IMG_SIZE_T;
-#endif
-
-typedef IMG_PVOID       IMG_HANDLE;
-
-typedef void**          IMG_HVOID,	* IMG_PHVOID;
-
-#define IMG_NULL        0 
-
-typedef IMG_UINT32      IMG_SID;
-
-typedef IMG_UINT32      IMG_EVENTSID;
-
-#if defined(SUPPORT_SID_INTERFACE)
-	typedef IMG_SID IMG_S_HANDLE;
-#else
-	typedef IMG_HANDLE IMG_S_HANDLE;
-#endif
-
-typedef IMG_PVOID IMG_CPU_VIRTADDR;
-
-typedef struct _IMG_DEV_VIRTADDR
-{
-	
-	IMG_UINT32  uiAddr;
-#define IMG_CAST_TO_DEVVADDR_UINT(var)		(IMG_UINT32)(var)
-	
-} IMG_DEV_VIRTADDR;
-
-typedef IMG_UINT32 IMG_DEVMEM_SIZE_T;
-
-typedef struct _IMG_CPU_PHYADDR
-{
-	
-	IMG_UINTPTR_T uiAddr;
-} IMG_CPU_PHYADDR;
-
-typedef struct _IMG_DEV_PHYADDR
-{
-#if IMG_ADDRSPACE_PHYSADDR_BITS == 32
-	
-	IMG_UINTPTR_T uiAddr;
-#else
-	IMG_UINT32 uiAddr;
-	IMG_UINT32 uiHighAddr;
-#endif
-} IMG_DEV_PHYADDR;
-
-typedef struct _IMG_SYS_PHYADDR
-{
-	
-	IMG_UINTPTR_T uiAddr;
-} IMG_SYS_PHYADDR;
-
-#include "img_defs.h"
-
-#endif	
diff --git a/drivers/staging/cdv/pvr/include4/pdumpdefs.h b/drivers/staging/cdv/pvr/include4/pdumpdefs.h
deleted file mode 100644
index 193b464..0000000
--- a/drivers/staging/cdv/pvr/include4/pdumpdefs.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined (__PDUMPDEFS_H__)
-#define __PDUMPDEFS_H__
-
-typedef enum _PDUMP_PIXEL_FORMAT_
-{
-	PVRSRV_PDUMP_PIXEL_FORMAT_UNSUPPORTED = 0,
-	PVRSRV_PDUMP_PIXEL_FORMAT_RGB8 = 1,
-	PVRSRV_PDUMP_PIXEL_FORMAT_RGB332 = 2,
-	PVRSRV_PDUMP_PIXEL_FORMAT_KRGB555 = 3,
-	PVRSRV_PDUMP_PIXEL_FORMAT_RGB565 = 4,
-	PVRSRV_PDUMP_PIXEL_FORMAT_ARGB4444 = 5,
-	PVRSRV_PDUMP_PIXEL_FORMAT_ARGB1555 = 6,
-	PVRSRV_PDUMP_PIXEL_FORMAT_RGB888 = 7,
-	PVRSRV_PDUMP_PIXEL_FORMAT_ARGB8888 = 8,
-	PVRSRV_PDUMP_PIXEL_FORMAT_YUV8 = 9,
-	PVRSRV_PDUMP_PIXEL_FORMAT_AYUV4444 = 10,
-	PVRSRV_PDUMP_PIXEL_FORMAT_VY0UY1_8888 = 11,
-	PVRSRV_PDUMP_PIXEL_FORMAT_UY0VY1_8888 = 12,
-	PVRSRV_PDUMP_PIXEL_FORMAT_Y0UY1V_8888 = 13,
-	PVRSRV_PDUMP_PIXEL_FORMAT_Y0VY1U_8888 = 14,
-	PVRSRV_PDUMP_PIXEL_FORMAT_YUV888 = 15,
-	PVRSRV_PDUMP_PIXEL_FORMAT_UYVY10101010 = 16,
-	PVRSRV_PDUMP_PIXEL_FORMAT_VYAUYA8888 = 17,
-	PVRSRV_PDUMP_PIXEL_FORMAT_AYUV8888 = 18,
-	PVRSRV_PDUMP_PIXEL_FORMAT_AYUV2101010 = 19,
-	PVRSRV_PDUMP_PIXEL_FORMAT_YUV101010 = 20,
-	PVRSRV_PDUMP_PIXEL_FORMAT_PL12Y8 = 21,
-	PVRSRV_PDUMP_PIXEL_FORMAT_YUV_IMC2 = 22,
-	PVRSRV_PDUMP_PIXEL_FORMAT_YUV_YV12 = 23,
-	PVRSRV_PDUMP_PIXEL_FORMAT_YUV_PL8 = 24,
-	PVRSRV_PDUMP_PIXEL_FORMAT_YUV_PL12 = 25,
-	PVRSRV_PDUMP_PIXEL_FORMAT_422PL12YUV8 = 26,
-	PVRSRV_PDUMP_PIXEL_FORMAT_420PL12YUV8 = 27,
-	PVRSRV_PDUMP_PIXEL_FORMAT_PL12Y10 = 28,
-	PVRSRV_PDUMP_PIXEL_FORMAT_422PL12YUV10 = 29,
-	PVRSRV_PDUMP_PIXEL_FORMAT_420PL12YUV10 = 30,
-	PVRSRV_PDUMP_PIXEL_FORMAT_ABGR8888 = 31,
-	PVRSRV_PDUMP_PIXEL_FORMAT_BGRA8888 = 32,
-	PVRSRV_PDUMP_PIXEL_FORMAT_ARGB8332 = 33,
-	PVRSRV_PDUMP_PIXEL_FORMAT_RGB555 = 34,
-	PVRSRV_PDUMP_PIXEL_FORMAT_F16 = 35,
-	PVRSRV_PDUMP_PIXEL_FORMAT_F32 = 36,
-	PVRSRV_PDUMP_PIXEL_FORMAT_L16 = 37,
-	PVRSRV_PDUMP_PIXEL_FORMAT_L32 = 38,
-	PVRSRV_PDUMP_PIXEL_FORMAT_RGBA8888 = 39,
-	PVRSRV_PDUMP_PIXEL_FORMAT_ABGR4444 = 40,
-	PVRSRV_PDUMP_PIXEL_FORMAT_RGBA4444 = 41,
-	PVRSRV_PDUMP_PIXEL_FORMAT_BGRA4444 = 42,
-	PVRSRV_PDUMP_PIXEL_FORMAT_ABGR1555 = 43,
-	PVRSRV_PDUMP_PIXEL_FORMAT_RGBA5551 = 44,
-	PVRSRV_PDUMP_PIXEL_FORMAT_BGRA5551 = 45,
-	PVRSRV_PDUMP_PIXEL_FORMAT_BGR565 = 46,
-	PVRSRV_PDUMP_PIXEL_FORMAT_A8 = 47,
-	
-	PVRSRV_PDUMP_PIXEL_FORMAT_FORCE_I32 = 0x7fffffff
-
-} PDUMP_PIXEL_FORMAT;
-
-typedef enum _PDUMP_MEM_FORMAT_
-{
-	PVRSRV_PDUMP_MEM_FORMAT_STRIDE = 0,
-	PVRSRV_PDUMP_MEM_FORMAT_RESERVED = 1,
-	PVRSRV_PDUMP_MEM_FORMAT_TILED = 8,
-	PVRSRV_PDUMP_MEM_FORMAT_TWIDDLED = 9,
-	PVRSRV_PDUMP_MEM_FORMAT_HYBRID = 10,
-	
-	PVRSRV_PDUMP_MEM_FORMAT_FORCE_I32 = 0x7fffffff
-} PDUMP_MEM_FORMAT;
-
-typedef enum _PDUMP_POLL_OPERATOR
-{
-	PDUMP_POLL_OPERATOR_EQUAL = 0,
-	PDUMP_POLL_OPERATOR_LESS = 1,
-	PDUMP_POLL_OPERATOR_LESSEQUAL = 2,
-	PDUMP_POLL_OPERATOR_GREATER = 3,
-	PDUMP_POLL_OPERATOR_GREATEREQUAL = 4,
-	PDUMP_POLL_OPERATOR_NOTEQUAL = 5,
-} PDUMP_POLL_OPERATOR;
-
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/include4/pvr_debug.h b/drivers/staging/cdv/pvr/include4/pvr_debug.h
deleted file mode 100644
index a9d082e..0000000
--- a/drivers/staging/cdv/pvr/include4/pvr_debug.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
-******************************************************************************/
-
-#ifndef __PVR_DEBUG_H__
-#define __PVR_DEBUG_H__
-
-
-#include "img_types.h"
-
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#define PVR_MAX_DEBUG_MESSAGE_LEN	(512)
-
-/* These are privately used by pvr_debug, use the PVR_DBG_ defines instead */
-#define DBGPRIV_FATAL		0x01UL
-#define DBGPRIV_ERROR		0x02UL
-#define DBGPRIV_WARNING		0x04UL
-#define DBGPRIV_MESSAGE		0x08UL
-#define DBGPRIV_VERBOSE		0x10UL
-#define DBGPRIV_CALLTRACE	0x20UL
-#define DBGPRIV_ALLOC		0x40UL
-
-#define DBGPRIV_DBGDRV_MESSAGE	0x1000UL
-
-#define DBGPRIV_ALLLEVELS	(DBGPRIV_FATAL | DBGPRIV_ERROR | DBGPRIV_WARNING | DBGPRIV_MESSAGE | DBGPRIV_VERBOSE)
-
-
-
-#define PVR_DBG_FATAL		DBGPRIV_FATAL,__FILE__, __LINE__
-#define PVR_DBG_ERROR		DBGPRIV_ERROR,__FILE__, __LINE__
-#define PVR_DBG_WARNING		DBGPRIV_WARNING,__FILE__, __LINE__
-#define PVR_DBG_MESSAGE		DBGPRIV_MESSAGE,__FILE__, __LINE__
-#define PVR_DBG_VERBOSE		DBGPRIV_VERBOSE,__FILE__, __LINE__
-#define PVR_DBG_CALLTRACE	DBGPRIV_CALLTRACE,__FILE__, __LINE__
-#define PVR_DBG_ALLOC		DBGPRIV_ALLOC,__FILE__, __LINE__
-
-/*
- *	Debug driver debugging
- */
-#define PVR_DBGDRIV_MESSAGE		DBGPRIV_DBGDRV_MESSAGE, "", 0
-
-#if !defined(PVRSRV_NEED_PVR_ASSERT) && defined(DEBUG)
-#define PVRSRV_NEED_PVR_ASSERT
-#endif
-
-#if defined(PVRSRV_NEED_PVR_ASSERT) && !defined(PVRSRV_NEED_PVR_DPF)
-#define PVRSRV_NEED_PVR_DPF
-#endif
-
-#if !defined(PVRSRV_NEED_PVR_TRACE) && (defined(DEBUG) || defined(TIMING))
-#define PVRSRV_NEED_PVR_TRACE
-#endif
-
-
-/* PVR_ASSERT() and PVR_DBG_BREAK handling */
-
-#if defined(PVRSRV_NEED_PVR_ASSERT)
-
-	#define PVR_ASSERT(EXPR) if (!(EXPR)) PVRSRVDebugAssertFail(__FILE__, __LINE__);
-
-IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVDebugAssertFail(const IMG_CHAR *pszFile,
-													   IMG_UINT32 ui32Line);
-
-			#if defined(PVR_DBG_BREAK_ASSERT_FAIL)
-				#define PVR_DBG_BREAK	PVRSRVDebugAssertFail("PVR_DBG_BREAK", 0)
-			#else
-				#define PVR_DBG_BREAK
-			#endif
-
-#else  /* defined(PVRSRV_NEED_PVR_ASSERT) */
-
-	#define PVR_ASSERT(EXPR)
-	#define PVR_DBG_BREAK
-
-#endif /* defined(PVRSRV_NEED_PVR_ASSERT) */
-
-
-/* PVR_DPF() handling */
-
-#if defined(PVRSRV_NEED_PVR_DPF)
-
-	#define PVR_DPF(X)		PVRSRVDebugPrintf X
-
-IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVDebugPrintf(IMG_UINT32 ui32DebugLevel,
-												   const IMG_CHAR *pszFileName,
-												   IMG_UINT32 ui32Line,
-												   const IMG_CHAR *pszFormat,
-												   ...) IMG_FORMAT_PRINTF(4, 5);
-
-#else  /* defined(PVRSRV_NEED_PVR_DPF) */
-
-	#define PVR_DPF(X)
-
-#endif /* defined(PVRSRV_NEED_PVR_DPF) */
-
-
-/* PVR_TRACE() handling */
-
-#if defined(PVRSRV_NEED_PVR_TRACE)
-
-	#define PVR_TRACE(X)	PVRSRVTrace X
-
-IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVTrace(const IMG_CHAR* pszFormat, ... )
-	IMG_FORMAT_PRINTF(1, 2);
-
-#else /* defined(PVRSRV_NEED_PVR_TRACE) */
-
-	#define PVR_TRACE(X)
-
-#endif /* defined(PVRSRV_NEED_PVR_TRACE) */
-
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif	/* __PVR_DEBUG_H__ */
-
-/******************************************************************************
- End of file (pvr_debug.h)
-******************************************************************************/
-
diff --git a/drivers/staging/cdv/pvr/include4/pvrmodule.h b/drivers/staging/cdv/pvr/include4/pvrmodule.h
deleted file mode 100644
index 3dd5845..0000000
--- a/drivers/staging/cdv/pvr/include4/pvrmodule.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef	_PVRMODULE_H_
-#define	_PVRMODULE_H_
-MODULE_AUTHOR("Imagination Technologies Ltd. <gpl-support@imgtec.com>");
-MODULE_LICENSE("GPL");
-#endif	
diff --git a/drivers/staging/cdv/pvr/include4/pvrversion.h b/drivers/staging/cdv/pvr/include4/pvrversion.h
deleted file mode 100644
index c92de8f..0000000
--- a/drivers/staging/cdv/pvr/include4/pvrversion.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
- 
-
-
-
-
-
-
-
- 
-
-#ifndef _PVRVERSION_H_
-#define _PVRVERSION_H_
-
-#define PVR_STR(X) #X
-#define PVR_STR2(X) PVR_STR(X)
-
-#define PVRVERSION_MAJ               1
-#define PVRVERSION_MIN               7
-#define PVRVERSION_BRANCH            17
-
-#define PVRVERSION_FAMILY           "sgxddk"
-#define PVRVERSION_BRANCHNAME       "1.7"
-#define PVRVERSION_BUILD             788837
-#define PVRVERSION_BSCONTROL        "pc_i686_linux_XOrg_family"
-
-#define PVRVERSION_STRING           "pc_i686_linux_XOrg_family sgxddk 17 1.7@" PVR_STR2(PVRVERSION_BUILD)
-#define PVRVERSION_STRING_SHORT     "1.7@" PVR_STR2(PVRVERSION_BUILD)
-
-#define COPYRIGHT_TXT               "Copyright (c) Imagination Technologies Ltd. All Rights Reserved."
-
-#define PVRVERSION_BUILD_HI          78
-#define PVRVERSION_BUILD_LO          8837
-#define PVRVERSION_STRING_NUMERIC    PVR_STR2(PVRVERSION_MAJ) "." PVR_STR2(PVRVERSION_MIN) "." PVR_STR2(PVRVERSION_BUILD_HI) "." PVR_STR2(PVRVERSION_BUILD_LO)
-
-#endif 
diff --git a/drivers/staging/cdv/pvr/include4/services.h b/drivers/staging/cdv/pvr/include4/services.h
deleted file mode 100644
index 1d786bf..0000000
--- a/drivers/staging/cdv/pvr/include4/services.h
+++ /dev/null
@@ -1,1235 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __SERVICES_H__
-#define __SERVICES_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#include "img_defs.h"
-#include "servicesext.h"
-#include "pdumpdefs.h"
-
-
-#define PVRSRV_4K_PAGE_SIZE		4096UL
-
-#define PVRSRV_MAX_CMD_SIZE		1024
-
-#define PVRSRV_MAX_DEVICES		16	
-
-#define EVENTOBJNAME_MAXLENGTH (50)
-
-#define PVRSRV_MEM_READ						(1U<<0)
-#define PVRSRV_MEM_WRITE					(1U<<1)
-#define PVRSRV_MEM_CACHE_CONSISTENT			(1U<<2)
-#define PVRSRV_MEM_NO_SYNCOBJ				(1U<<3)
-#define PVRSRV_MEM_INTERLEAVED				(1U<<4)
-#define PVRSRV_MEM_DUMMY					(1U<<5)
-#define PVRSRV_MEM_EDM_PROTECT				(1U<<6)
-#define PVRSRV_MEM_ZERO						(1U<<7)
-#define PVRSRV_MEM_USER_SUPPLIED_DEVVADDR	(1U<<8)
-#define PVRSRV_MEM_RAM_BACKED_ALLOCATION	(1U<<9)
-#define PVRSRV_MEM_NO_RESMAN				(1U<<10)
-#define PVRSRV_MEM_EXPORTED					(1U<<11)
-
-
-#define PVRSRV_HAP_CACHED					(1U<<12)
-#define PVRSRV_HAP_UNCACHED					(1U<<13)
-#define PVRSRV_HAP_WRITECOMBINE				(1U<<14)
-#define PVRSRV_HAP_CACHETYPE_MASK			(PVRSRV_HAP_CACHED|PVRSRV_HAP_UNCACHED|PVRSRV_HAP_WRITECOMBINE)
-#define PVRSRV_HAP_KERNEL_ONLY				(1U<<15)
-#define PVRSRV_HAP_SINGLE_PROCESS			(1U<<16)
-#define PVRSRV_HAP_MULTI_PROCESS			(1U<<17)
-#define PVRSRV_HAP_FROM_EXISTING_PROCESS	(1U<<18)
-#define PVRSRV_HAP_NO_CPU_VIRTUAL			(1U<<19)
-#define PVRSRV_HAP_MAPTYPE_MASK				(PVRSRV_HAP_KERNEL_ONLY \
-                                            |PVRSRV_HAP_SINGLE_PROCESS \
-                                            |PVRSRV_HAP_MULTI_PROCESS \
-                                            |PVRSRV_HAP_FROM_EXISTING_PROCESS \
-                                            |PVRSRV_HAP_NO_CPU_VIRTUAL)
-
-#define PVRSRV_MEM_CACHED					PVRSRV_HAP_CACHED
-#define PVRSRV_MEM_UNCACHED					PVRSRV_HAP_UNCACHED
-#define PVRSRV_MEM_WRITECOMBINE				PVRSRV_HAP_WRITECOMBINE
-
-#define PVRSRV_MEM_BACKINGSTORE_FIELD_SHIFT	(24)
-
-#define PVRSRV_MAP_NOUSERVIRTUAL            (1UL<<27)
-#define PVRSRV_MEM_XPROC  					(1U<<28)
-
-#define PVRSRV_NO_CONTEXT_LOSS					0		
-#define PVRSRV_SEVERE_LOSS_OF_CONTEXT			1		
-#define PVRSRV_PRE_STATE_CHANGE_MASK			0x80	
-
-
-#define PVRSRV_DEFAULT_DEV_COOKIE			(1)	 
-
-
-#define PVRSRV_MISC_INFO_TIMER_PRESENT				(1U<<0)
-#define PVRSRV_MISC_INFO_CLOCKGATE_PRESENT			(1U<<1)
-#define PVRSRV_MISC_INFO_MEMSTATS_PRESENT			(1U<<2)
-#define PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT	(1U<<3)
-#define PVRSRV_MISC_INFO_DDKVERSION_PRESENT			(1U<<4)
-#define PVRSRV_MISC_INFO_CPUCACHEOP_PRESENT			(1U<<5)
-#define PVRSRV_MISC_INFO_FREEMEM_PRESENT			(1U<<6)
-
-#define PVRSRV_MISC_INFO_RESET_PRESENT				(1U<<31)
-
-#define PVRSRV_PDUMP_MAX_FILENAME_SIZE			20
-#define PVRSRV_PDUMP_MAX_COMMENT_SIZE			200
-
-
-#define PVRSRV_CHANGEDEVMEM_ATTRIBS_CACHECOHERENT		0x00000001
-
-#define PVRSRV_MAPEXTMEMORY_FLAGS_ALTERNATEVA			0x00000001
-#define PVRSRV_MAPEXTMEMORY_FLAGS_PHYSCONTIG			0x00000002
-
-#define PVRSRV_MODIFYSYNCOPS_FLAGS_WO_INC			0x00000001
-#define PVRSRV_MODIFYSYNCOPS_FLAGS_RO_INC			0x00000002
-
-#define SRV_FLAGS_PERSIST		0x1
-#define SRV_FLAGS_PDUMP_ACTIVE	0x2
-
-#define PVRSRV_PDUMP_FLAGS_CONTINUOUS		0x1
-
-
-typedef enum _PVRSRV_DEVICE_TYPE_
-{
-	PVRSRV_DEVICE_TYPE_UNKNOWN			= 0 ,
-	PVRSRV_DEVICE_TYPE_MBX1				= 1 ,
-	PVRSRV_DEVICE_TYPE_MBX1_LITE		= 2 ,
-
-	PVRSRV_DEVICE_TYPE_M24VA			= 3,
-	PVRSRV_DEVICE_TYPE_MVDA2			= 4,
-	PVRSRV_DEVICE_TYPE_MVED1			= 5,
-	PVRSRV_DEVICE_TYPE_MSVDX			= 6,
-
-	PVRSRV_DEVICE_TYPE_SGX				= 7,
-
-	PVRSRV_DEVICE_TYPE_VGX				= 8,
-
-	PVRSRV_DEVICE_TYPE_TOPAZ			= 9,
-	
-	PVRSRV_DEVICE_TYPE_EXT				= 10,
-
-	PVRSRV_DEVICE_TYPE_LAST             = 10,
-
-	PVRSRV_DEVICE_TYPE_FORCE_I32		= 0x7fffffff
-
-} PVRSRV_DEVICE_TYPE;
-
-#define HEAP_ID( _dev_ , _dev_heap_idx_ )	(  ((_dev_)<<24) | ((_dev_heap_idx_)&((1<<24)-1))  )
-#define HEAP_IDX( _heap_id_ )				( (_heap_id_)&((1<<24) - 1 ) )
-#define HEAP_DEV( _heap_id_ )				( (_heap_id_)>>24 )
-
-#define PVRSRV_UNDEFINED_HEAP_ID			(~0LU)
-
-typedef enum
-{
-	IMG_EGL				= 0x00000001,
-	IMG_OPENGLES1		= 0x00000002,
-	IMG_OPENGLES2		= 0x00000003,
-	IMG_D3DM			= 0x00000004,
-	IMG_SRV_UM			= 0x00000005,
-	IMG_OPENVG			= 0x00000006,
-	IMG_SRVCLIENT		= 0x00000007,
-	IMG_VISTAKMD		= 0x00000008,
-	IMG_VISTA3DNODE		= 0x00000009,
-	IMG_VISTAMVIDEONODE	= 0x0000000A,
-	IMG_VISTAVPBNODE	= 0x0000000B,
-	IMG_OPENGL			= 0x0000000C,
-	IMG_D3D				= 0x0000000D,
-#if defined(SUPPORT_GRAPHICS_HAL) || defined(SUPPORT_COMPOSER_HAL)
-	IMG_ANDROID_HAL		= 0x0000000E,
-#endif
-#if defined(SUPPORT_OPENCL)
-	IMG_OPENCL			= 0x0000000F,
-#endif
-
-} IMG_MODULE_ID;
-
-
-#define APPHINT_MAX_STRING_SIZE	256
-
-typedef enum
-{
-	IMG_STRING_TYPE		= 1,
-	IMG_FLOAT_TYPE		,
-	IMG_UINT_TYPE		,
-	IMG_INT_TYPE		,
-	IMG_FLAG_TYPE
-}IMG_DATA_TYPE;
-
-
-typedef struct _PVRSRV_DEV_DATA_ *PPVRSRV_DEV_DATA;
-
-typedef struct _PVRSRV_DEVICE_IDENTIFIER_
-{
-	PVRSRV_DEVICE_TYPE		eDeviceType;		
-	PVRSRV_DEVICE_CLASS		eDeviceClass;		
-	IMG_UINT32				ui32DeviceIndex;	
-	IMG_CHAR				*pszPDumpDevName;	
-	IMG_CHAR				*pszPDumpRegName;	
-
-} PVRSRV_DEVICE_IDENTIFIER;
-
-
-typedef struct _PVRSRV_CLIENT_DEV_DATA_
-{
-	IMG_UINT32		ui32NumDevices;				
-	PVRSRV_DEVICE_IDENTIFIER asDevID[PVRSRV_MAX_DEVICES];		
-	PVRSRV_ERROR	(*apfnDevConnect[PVRSRV_MAX_DEVICES])(PPVRSRV_DEV_DATA);	
-	PVRSRV_ERROR	(*apfnDumpTrace[PVRSRV_MAX_DEVICES])(PPVRSRV_DEV_DATA);		
-
-} PVRSRV_CLIENT_DEV_DATA;
-
-
-typedef struct _PVRSRV_CONNECTION_
-{
-	IMG_HANDLE hServices;					
-	IMG_UINT32 ui32ProcessID;				
-	PVRSRV_CLIENT_DEV_DATA	sClientDevData;	
-	IMG_UINT32 ui32SrvFlags;				
-}PVRSRV_CONNECTION;
-
-
-typedef struct _PVRSRV_DEV_DATA_
-{
-	IMG_CONST PVRSRV_CONNECTION	 *psConnection;	
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			hDevCookie;				
-#else
-	IMG_HANDLE			hDevCookie;				
-#endif
-
-} PVRSRV_DEV_DATA;
-
-typedef struct _PVRSRV_MEMUPDATE_
-{
-	IMG_UINT32			ui32UpdateAddr;		
-	IMG_UINT32			ui32UpdateVal;		
-} PVRSRV_MEMUPDATE;
-
-typedef struct _PVRSRV_HWREG_
-{
-	IMG_UINT32			ui32RegAddr;	
-	IMG_UINT32			ui32RegVal;		
-} PVRSRV_HWREG;
-
-typedef struct _PVRSRV_MEMBLK_
-{
-	IMG_DEV_VIRTADDR	sDevVirtAddr;			
-	IMG_HANDLE			hOSMemHandle;			
-	IMG_HANDLE			hOSWrapMem;				
-	IMG_HANDLE			hBuffer;				
-	IMG_HANDLE			hResItem;				
-	IMG_SYS_PHYADDR	 	*psIntSysPAddr;
-
-} PVRSRV_MEMBLK;
-
-typedef struct _PVRSRV_KERNEL_MEM_INFO_ *PPVRSRV_KERNEL_MEM_INFO;
-
-typedef struct _PVRSRV_CLIENT_MEM_INFO_
-{
-	
-	IMG_PVOID				pvLinAddr;
-
-	
-	IMG_PVOID				pvLinAddrKM;
-
-	
-	IMG_DEV_VIRTADDR		sDevVAddr;
-
-	
-
-
-
-
-	IMG_CPU_PHYADDR			sCpuPAddr;
-
-	
-	IMG_UINT32				ui32Flags;
-
-	
-
-
-	IMG_UINT32				ui32ClientFlags;
-
-	
-	IMG_SIZE_T				uAllocSize;
-
-
-	
-	struct _PVRSRV_CLIENT_SYNC_INFO_	*psClientSyncInfo;
-
-#if defined (SUPPORT_SID_INTERFACE)
-	
-	IMG_SID								hMappingInfo;
-
-	
-	IMG_SID								hKernelMemInfo;
-
-	
-	IMG_SID								hResItem;
-#else
-	
-	IMG_HANDLE							hMappingInfo;
-
-	
-	IMG_HANDLE							hKernelMemInfo;
-
-	
-	IMG_HANDLE							hResItem;
-#endif
-
-#if defined(SUPPORT_MEMINFO_IDS)
-	#if !defined(USE_CODE)
-	
-	IMG_UINT64							ui64Stamp;
-	#else 
-	IMG_UINT32							dummy1;
-	IMG_UINT32							dummy2;
-	#endif 
-#endif 
-
-	
-
-
-	struct _PVRSRV_CLIENT_MEM_INFO_		*psNext;
-
-} PVRSRV_CLIENT_MEM_INFO, *PPVRSRV_CLIENT_MEM_INFO;
-
-
-#define PVRSRV_MAX_CLIENT_HEAPS (32)
-typedef struct _PVRSRV_HEAP_INFO_
-{
-	IMG_UINT32			ui32HeapID;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID 			hDevMemHeap;
-#else
-	IMG_HANDLE 			hDevMemHeap;
-#endif
-	IMG_DEV_VIRTADDR	sDevVAddrBase;
-	IMG_UINT32			ui32HeapByteSize;
-	IMG_UINT32			ui32Attribs;
-	IMG_UINT32			ui32XTileStride;
-}PVRSRV_HEAP_INFO;
-
-
-
-
-typedef struct _PVRSRV_EVENTOBJECT_
-{
-	
-	IMG_CHAR	szName[EVENTOBJNAME_MAXLENGTH];
-	
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID     hOSEventKM;
-#else
-	IMG_HANDLE	hOSEventKM;
-#endif
-
-} PVRSRV_EVENTOBJECT;
-
-typedef enum
-{
-	PVRSRV_MISC_INFO_CPUCACHEOP_NONE = 0,
-	PVRSRV_MISC_INFO_CPUCACHEOP_CLEAN,
-	PVRSRV_MISC_INFO_CPUCACHEOP_FLUSH
-} PVRSRV_MISC_INFO_CPUCACHEOP_TYPE;
-
-typedef struct _PVRSRV_MISC_INFO_
-{
-	IMG_UINT32	ui32StateRequest;		
-	IMG_UINT32	ui32StatePresent;		
-
-	
-	IMG_VOID	*pvSOCTimerRegisterKM;
-	IMG_VOID	*pvSOCTimerRegisterUM;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		hSOCTimerRegisterOSMemHandle;
-	IMG_SID		hSOCTimerRegisterMappingInfo;
-#else
-	IMG_HANDLE	hSOCTimerRegisterOSMemHandle;
-	IMG_HANDLE	hSOCTimerRegisterMappingInfo;
-#endif
-
-	
-	IMG_VOID	*pvSOCClockGateRegs;
-	IMG_UINT32	ui32SOCClockGateRegsSize;
-
-	
-	IMG_CHAR	*pszMemoryStr;
-	IMG_UINT32	ui32MemoryStrLen;
-
-	
-	PVRSRV_EVENTOBJECT	sGlobalEventObject;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_EVENTSID		hOSGlobalEvent;
-#else
-	IMG_HANDLE			hOSGlobalEvent;
-#endif
-
-	
-	IMG_UINT32	aui32DDKVersion[4];
-
-	
-	struct
-	{
-		
-		IMG_BOOL bDeferOp;
-
-		
-		PVRSRV_MISC_INFO_CPUCACHEOP_TYPE eCacheOpType;
-
-		
-#if !defined (SUPPORT_SID_INTERFACE)
-		union
-		{
-			
-			PVRSRV_CLIENT_MEM_INFO *psClientMemInfo;
-
-			
-			struct _PVRSRV_KERNEL_MEM_INFO_ *psKernelMemInfo;
-		} u;
-#endif
-
-		
-		IMG_VOID *pvBaseVAddr;
-
-		
-		IMG_UINT32	ui32Length;
-	} sCacheOpCtl;
-} PVRSRV_MISC_INFO;
-
-typedef struct _PVRSRV_SYNC_TOKEN_
-{
-	
-
-	struct
-	{
-#if defined (SUPPORT_SID_INTERFACE)
-		IMG_SID    hKernelSyncInfo;
-#else
-		IMG_HANDLE hKernelSyncInfo;
-#endif
-		IMG_UINT32 ui32ReadOpsPendingSnapshot;
-		IMG_UINT32 ui32WriteOpsPendingSnapshot;
-	} sPrivate;
-} PVRSRV_SYNC_TOKEN;
-
-
-typedef enum _PVRSRV_CLIENT_EVENT_
-{
-	PVRSRV_CLIENT_EVENT_HWTIMEOUT = 0,
-} PVRSRV_CLIENT_EVENT;
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVClientEvent(IMG_CONST PVRSRV_CLIENT_EVENT eEvent,
-											PVRSRV_DEV_DATA *psDevData,
-											IMG_PVOID pvData);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVConnect(PVRSRV_CONNECTION **ppsConnection, IMG_UINT32 ui32SrvFlags);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVDisconnect(IMG_CONST PVRSRV_CONNECTION *psConnection);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumerateDevices(IMG_CONST PVRSRV_CONNECTION 			*psConnection,
-													IMG_UINT32 					*puiNumDevices,
-													PVRSRV_DEVICE_IDENTIFIER 	*puiDevIDs);
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVAcquireDeviceData(IMG_CONST PVRSRV_CONNECTION 	*psConnection,
-													IMG_UINT32			uiDevIndex,
-													PVRSRV_DEV_DATA		*psDevData,
-													PVRSRV_DEVICE_TYPE	eDeviceType);
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfo (IMG_CONST PVRSRV_CONNECTION *psConnection, PVRSRV_MISC_INFO *psMiscInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVReleaseMiscInfo (IMG_CONST PVRSRV_CONNECTION *psConnection, PVRSRV_MISC_INFO *psMiscInfo);
-
-#if 1
-IMG_IMPORT
-IMG_UINT32 ReadHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset);
-
-IMG_IMPORT
-IMG_VOID WriteHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset, IMG_UINT32 ui32Value);
-
-IMG_IMPORT IMG_VOID WriteHWRegs(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Count, PVRSRV_HWREG *psHWRegs);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVPollForValue ( const PVRSRV_CONNECTION *psConnection,
-#if defined (SUPPORT_SID_INTERFACE)
-							IMG_SID    hOSEvent,
-#else
-							IMG_HANDLE hOSEvent,
-#endif
-							volatile IMG_UINT32 *pui32LinMemAddr,
-							IMG_UINT32 ui32Value,
-							IMG_UINT32 ui32Mask,
-							IMG_UINT32 ui32Waitus,
-							IMG_UINT32 ui32Tries);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateDeviceMemContext(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-#if defined (SUPPORT_SID_INTERFACE)
-											IMG_SID    *phDevMemContext,
-#else
-											IMG_HANDLE *phDevMemContext,
-#endif
-											IMG_UINT32 *pui32SharedHeapCount,
-											PVRSRV_HEAP_INFO *psHeapInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyDeviceMemContext(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-#if defined (SUPPORT_SID_INTERFACE)
-											IMG_SID 			hDevMemContext);
-#else
-											IMG_HANDLE 			hDevMemContext);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapInfo(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-#if defined (SUPPORT_SID_INTERFACE)
-											IMG_SID     hDevMemContext,
-#else
-											IMG_HANDLE hDevMemContext,
-#endif
-											IMG_UINT32 *pui32SharedHeapCount,
-											PVRSRV_HEAP_INFO *psHeapInfo);
-
-#if defined(PVRSRV_LOG_MEMORY_ALLOCS)
-	#define PVRSRVAllocDeviceMem_log(psDevData, hDevMemHeap, ui32Attribs, ui32Size, ui32Alignment, ppsMemInfo, logStr) \
-		(PVR_TRACE(("PVRSRVAllocDeviceMem(" #psDevData "," #hDevMemHeap "," #ui32Attribs "," #ui32Size "," #ui32Alignment "," #ppsMemInfo ")" \
-			": " logStr " (size = 0x%lx)", ui32Size)), \
-		PVRSRVAllocDeviceMem(psDevData, hDevMemHeap, ui32Attribs, ui32Size, ui32Alignment, ppsMemInfo))
-#else
-	#define PVRSRVAllocDeviceMem_log(psDevData, hDevMemHeap, ui32Attribs, ui32Size, ui32Alignment, ppsMemInfo, logStr) \
-		PVRSRVAllocDeviceMem(psDevData, hDevMemHeap, ui32Attribs, ui32Size, ui32Alignment, ppsMemInfo)
-#endif
-
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVAllocDeviceMem(IMG_CONST PVRSRV_DEV_DATA	*psDevData,
-#if defined (SUPPORT_SID_INTERFACE)
-									IMG_SID			hDevMemHeap,
-#else
-									IMG_HANDLE		hDevMemHeap,
-#endif
-									IMG_UINT32		ui32Attribs,
-									IMG_SIZE_T		ui32Size,
-									IMG_SIZE_T		ui32Alignment,
-									PVRSRV_CLIENT_MEM_INFO	**ppsMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceMem(IMG_CONST PVRSRV_DEV_DATA	*psDevData,
-								PVRSRV_CLIENT_MEM_INFO		*psMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVExportDeviceMem(IMG_CONST PVRSRV_DEV_DATA	*psDevData,
-												PVRSRV_CLIENT_MEM_INFO		*psMemInfo,
-#if defined (SUPPORT_SID_INTERFACE)
-												IMG_SID						*phMemInfo);
-#else
-												IMG_HANDLE					*phMemInfo);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVReserveDeviceVirtualMem(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-#if defined (SUPPORT_SID_INTERFACE)
-											IMG_SID				hDevMemHeap,
-#else
-											IMG_HANDLE			hDevMemHeap,
-#endif
-											IMG_DEV_VIRTADDR	*psDevVAddr,
-											IMG_SIZE_T			ui32Size,
-											IMG_SIZE_T			ui32Alignment,
-											PVRSRV_CLIENT_MEM_INFO		**ppsMemInfo);
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceVirtualMem(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-													PVRSRV_CLIENT_MEM_INFO *psMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
-#if defined (SUPPORT_SID_INTERFACE)
-									IMG_SID hKernelMemInfo,
-									IMG_SID hDstDevMemHeap,
-#else
-									IMG_HANDLE hKernelMemInfo,
-									IMG_HANDLE hDstDevMemHeap,
-#endif
-									PVRSRV_CLIENT_MEM_INFO **ppsDstMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
-										PVRSRV_CLIENT_MEM_INFO *psMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVMapExtMemory (IMG_CONST PVRSRV_DEV_DATA	*psDevData,
-									PVRSRV_CLIENT_MEM_INFO		*psMemInfo,
-									IMG_SYS_PHYADDR				*psSysPAddr,
-									IMG_UINT32					ui32Flags);
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapExtMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
-									PVRSRV_CLIENT_MEM_INFO		*psMemInfo,
-									IMG_UINT32					ui32Flags);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVWrapExtMemory(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-#if defined (SUPPORT_SID_INTERFACE)
-												IMG_SID					hDevMemContext,
-#else
-												IMG_HANDLE				hDevMemContext,
-#endif
-												IMG_SIZE_T 				ui32ByteSize,
-												IMG_SIZE_T				ui32PageOffset,
-												IMG_BOOL				bPhysContig,
-												IMG_SYS_PHYADDR	 		*psSysPAddr,
-												IMG_VOID 				*pvLinAddr,
-												IMG_UINT32				ui32Flags,
-												PVRSRV_CLIENT_MEM_INFO **ppsMemInfo);
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVUnwrapExtMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
-												PVRSRV_CLIENT_MEM_INFO *psMemInfo);
-
-PVRSRV_ERROR PVRSRVChangeDeviceMemoryAttributes(IMG_CONST PVRSRV_DEV_DATA			*psDevData,
-												PVRSRV_CLIENT_MEM_INFO	*psClientMemInfo,
-												IMG_UINT32				ui32Attribs);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceClassMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
-#if defined (SUPPORT_SID_INTERFACE)
-										IMG_SID hDevMemContext,
-										IMG_SID hDeviceClassBuffer,
-#else
-										IMG_HANDLE hDevMemContext,
-										IMG_HANDLE hDeviceClassBuffer,
-#endif
-										PVRSRV_CLIENT_MEM_INFO **ppsMemInfo);
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceClassMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
-										PVRSRV_CLIENT_MEM_INFO *psMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVMapPhysToUserSpace(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-									  IMG_SYS_PHYADDR sSysPhysAddr,
-									  IMG_UINT32 uiSizeInBytes,
-									  IMG_PVOID *ppvUserAddr,
-									  IMG_UINT32 *puiActualSize,
-									  IMG_PVOID *ppvProcess);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapPhysToUserSpace(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-										IMG_PVOID pvUserAddr,
-										IMG_PVOID pvProcess);
-
-#if defined(LINUX)
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVExportDeviceMem2(IMG_CONST PVRSRV_DEV_DATA	*psDevData,
-												 PVRSRV_CLIENT_MEM_INFO		*psMemInfo,
-												 IMG_INT					*iFd);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceMemory2(IMG_CONST PVRSRV_DEV_DATA	*psDevData,
-												 IMG_INT					iFd,
-#if defined (SUPPORT_SID_INTERFACE)
-												 IMG_SID					hDstDevMemHeap,
-#else
-												 IMG_HANDLE					hDstDevMemHeap,
-#endif
-												 PVRSRV_CLIENT_MEM_INFO		**ppsDstMemInfo);
-#endif 
-
-typedef enum _PVRSRV_SYNCVAL_MODE_
-{
-	PVRSRV_SYNCVAL_READ				= IMG_TRUE,
-	PVRSRV_SYNCVAL_WRITE			= IMG_FALSE,
-
-} PVRSRV_SYNCVAL_MODE, *PPVRSRV_SYNCVAL_MODE;
-
-typedef IMG_UINT32 PVRSRV_SYNCVAL;
-
-IMG_IMPORT PVRSRV_ERROR PVRSRVWaitForOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
-	PVRSRV_SYNCVAL_MODE eMode, PVRSRV_SYNCVAL OpRequired);
-
-IMG_IMPORT PVRSRV_ERROR PVRSRVWaitForAllOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
-	PVRSRV_SYNCVAL_MODE eMode);
-
-IMG_IMPORT IMG_BOOL PVRSRVTestOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
-	PVRSRV_SYNCVAL_MODE eMode, PVRSRV_SYNCVAL OpRequired);
-
-IMG_IMPORT IMG_BOOL PVRSRVTestAllOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
-	PVRSRV_SYNCVAL_MODE eMode);
-
-IMG_IMPORT IMG_BOOL PVRSRVTestOpsNotComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
-	PVRSRV_SYNCVAL_MODE eMode, PVRSRV_SYNCVAL OpRequired);
-
-IMG_IMPORT IMG_BOOL PVRSRVTestAllOpsNotComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
-	PVRSRV_SYNCVAL_MODE eMode);
-
-IMG_IMPORT PVRSRV_SYNCVAL PVRSRVGetPendingOpSyncVal(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
-	PVRSRV_SYNCVAL_MODE eMode);
-
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumerateDeviceClass(IMG_CONST PVRSRV_CONNECTION *psConnection,
-													PVRSRV_DEVICE_CLASS DeviceClass,
-													IMG_UINT32 *pui32DevCount,
-													IMG_UINT32 *pui32DevID);
-
-IMG_IMPORT
-IMG_HANDLE IMG_CALLCONV PVRSRVOpenDCDevice(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-											IMG_UINT32 ui32DeviceID);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVCloseDCDevice(IMG_CONST PVRSRV_CONNECTION	*psConnection, IMG_HANDLE hDevice);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumDCFormats (IMG_HANDLE hDevice,
-											IMG_UINT32		*pui32Count,
-											DISPLAY_FORMAT	*psFormat);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumDCDims (IMG_HANDLE hDevice,
-										IMG_UINT32 		*pui32Count,
-										DISPLAY_FORMAT	*psFormat,
-										DISPLAY_DIMS	*psDims);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDCSystemBuffer(IMG_HANDLE hDevice,
-#if defined (SUPPORT_SID_INTERFACE)
-										IMG_SID *phBuffer);
-#else
-										IMG_HANDLE *phBuffer);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDCInfo(IMG_HANDLE hDevice,
-										DISPLAY_INFO* psDisplayInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateDCSwapChain (IMG_HANDLE				hDevice,
-													IMG_UINT32				ui32Flags,
-													DISPLAY_SURF_ATTRIBUTES	*psDstSurfAttrib,
-													DISPLAY_SURF_ATTRIBUTES	*psSrcSurfAttrib,
-													IMG_UINT32				ui32BufferCount,
-													IMG_UINT32				ui32OEMFlags,
-													IMG_UINT32				*pui32SwapChainID,
-#if defined (SUPPORT_SID_INTERFACE)
-													IMG_SID					*phSwapChain);
-#else
-													IMG_HANDLE				*phSwapChain);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyDCSwapChain (IMG_HANDLE hDevice,
-#if defined (SUPPORT_SID_INTERFACE)
-											IMG_SID hSwapChain);
-#else
-											IMG_HANDLE		hSwapChain);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCDstRect (IMG_HANDLE hDevice,
-#if defined (SUPPORT_SID_INTERFACE)
-										IMG_SID		hSwapChain,
-#else
-										IMG_HANDLE	hSwapChain,
-#endif
-										IMG_RECT	*psDstRect);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCSrcRect (IMG_HANDLE hDevice,
-#if defined (SUPPORT_SID_INTERFACE)
-										IMG_SID		hSwapChain,
-#else
-										IMG_HANDLE	hSwapChain,
-#endif
-										IMG_RECT	*psSrcRect);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCDstColourKey (IMG_HANDLE hDevice,
-#if defined (SUPPORT_SID_INTERFACE)
-											IMG_SID		hSwapChain,
-#else
-											IMG_HANDLE	hSwapChain,
-#endif
-											IMG_UINT32	ui32CKColour);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCSrcColourKey (IMG_HANDLE hDevice,
-#if defined (SUPPORT_SID_INTERFACE)
-											IMG_SID		hSwapChain,
-#else
-											IMG_HANDLE	hSwapChain,
-#endif
-											IMG_UINT32	ui32CKColour);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDCBuffers(IMG_HANDLE hDevice,
-#if defined (SUPPORT_SID_INTERFACE)
-									IMG_SID     hSwapChain,
-									IMG_SID    *phBuffer);
-#else
-									IMG_HANDLE hSwapChain,
-									IMG_HANDLE *phBuffer);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVSwapToDCBuffer (IMG_HANDLE hDevice,
-#if defined (SUPPORT_SID_INTERFACE)
-										IMG_SID    hBuffer,
-#else
-										IMG_HANDLE hBuffer,
-#endif
-										IMG_UINT32 ui32ClipRectCount,
-										IMG_RECT  *psClipRect,
-										IMG_UINT32 ui32SwapInterval,
-#if defined (SUPPORT_SID_INTERFACE)
-										IMG_SID hPrivateTag);
-#else
-										IMG_HANDLE hPrivateTag);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVSwapToDCSystem (IMG_HANDLE hDevice,
-#if defined (SUPPORT_SID_INTERFACE)
-										IMG_SID hSwapChain);
-#else
-										IMG_HANDLE hSwapChain);
-#endif
-
-
-IMG_IMPORT
-IMG_HANDLE IMG_CALLCONV PVRSRVOpenBCDevice(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-											IMG_UINT32 ui32DeviceID);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVCloseBCDevice(IMG_CONST PVRSRV_CONNECTION *psConnection,
-												IMG_HANDLE hDevice);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetBCBufferInfo(IMG_HANDLE hDevice,
-												BUFFER_INFO	*psBuffer);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetBCBuffer(IMG_HANDLE hDevice,
-												IMG_UINT32 ui32BufferIndex,
-#if defined (SUPPORT_SID_INTERFACE)
-												IMG_SID   *phBuffer);
-#else
-												IMG_HANDLE *phBuffer);
-#endif
-
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpInit(IMG_CONST PVRSRV_CONNECTION *psConnection);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpStartInitPhase(IMG_CONST PVRSRV_CONNECTION *psConnection);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpStopInitPhase(IMG_CONST PVRSRV_CONNECTION *psConnection);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpMemPol(IMG_CONST PVRSRV_CONNECTION *psConnection,
-#if defined (SUPPORT_SID_INTERFACE)
-										  IMG_SID    hKernelMemInfo,
-#else
-										  PVRSRV_CLIENT_MEM_INFO *psMemInfo,
-#endif										  
-										  IMG_UINT32 ui32Offset,
-										  IMG_UINT32 ui32Value,
-										  IMG_UINT32 ui32Mask,
-										  PDUMP_POLL_OPERATOR eOperator,
-										  IMG_UINT32 ui32Flags);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpSyncPol(IMG_CONST PVRSRV_CONNECTION *psConnection,
-#if defined (SUPPORT_SID_INTERFACE)
-											 IMG_SID    hKernelSyncInfo,
-#else
-											 PVRSRV_CLIENT_SYNC_INFO *psClientSyncInfo,
-#endif
-											 IMG_BOOL   bIsRead,
-											 IMG_UINT32 ui32Value,
-											 IMG_UINT32 ui32Mask);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpSyncPol2(IMG_CONST PVRSRV_CONNECTION *psConnection,
-#if defined (SUPPORT_SID_INTERFACE)
-											 IMG_SID  hKernelSyncInfo,
-#else
-											 PVRSRV_CLIENT_SYNC_INFO *psClientSyncInfo,
-#endif
-											 IMG_BOOL bIsRead);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpMem(IMG_CONST PVRSRV_CONNECTION *psConnection,
-									IMG_PVOID pvAltLinAddr,
-									PVRSRV_CLIENT_MEM_INFO *psMemInfo,
-									IMG_UINT32 ui32Offset,
-									IMG_UINT32 ui32Bytes,
-									IMG_UINT32 ui32Flags);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpSync(IMG_CONST PVRSRV_CONNECTION *psConnection,
-										IMG_PVOID pvAltLinAddr,
-										PVRSRV_CLIENT_SYNC_INFO *psClientSyncInfo,
-										IMG_UINT32 ui32Offset,
-										IMG_UINT32 ui32Bytes);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpReg(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-										 IMG_CHAR *pszRegRegion,
-											IMG_UINT32 ui32RegAddr,
-											IMG_UINT32 ui32RegValue,
-											IMG_UINT32 ui32Flags);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpRegPolWithFlags(const PVRSRV_DEV_DATA *psDevData,
-													 IMG_CHAR *pszRegRegion,
-													 IMG_UINT32 ui32RegAddr,
-													 IMG_UINT32 ui32RegValue,
-													 IMG_UINT32 ui32Mask,
-													 IMG_UINT32 ui32Flags);
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpRegPol(const PVRSRV_DEV_DATA *psDevData,
-											IMG_CHAR *pszRegRegion,
-											IMG_UINT32 ui32RegAddr,
-											IMG_UINT32 ui32RegValue,
-											IMG_UINT32 ui32Mask);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpPDReg(IMG_CONST PVRSRV_CONNECTION *psConnection,
-											IMG_UINT32 ui32RegAddr,
-											IMG_UINT32 ui32RegValue);
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpPDDevPAddr(IMG_CONST PVRSRV_CONNECTION *psConnection,
-												PVRSRV_CLIENT_MEM_INFO *psMemInfo,
-												IMG_UINT32 ui32Offset,
-												IMG_DEV_PHYADDR sPDDevPAddr);
-
-#if !defined(USE_CODE)
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpMemPages(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-#if defined (SUPPORT_SID_INTERFACE)
-														   IMG_SID				hKernelMemInfo,
-#else
-														   IMG_HANDLE			hKernelMemInfo,
-#endif
-														   IMG_DEV_PHYADDR		*pPages,
-														   IMG_UINT32			ui32NumPages,
-												   		   IMG_DEV_VIRTADDR		sDevVAddr,
-														   IMG_UINT32			ui32Start,
-														   IMG_UINT32			ui32Length,
-														   IMG_UINT32			ui32Flags);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpSetFrame(IMG_CONST PVRSRV_CONNECTION *psConnection,
-											  IMG_UINT32 ui32Frame);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpComment(IMG_CONST PVRSRV_CONNECTION *psConnection,
-											 IMG_CONST IMG_CHAR *pszComment,
-											 IMG_BOOL bContinuous);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpCommentf(IMG_CONST PVRSRV_CONNECTION *psConnection,
-											  IMG_BOOL bContinuous,
-											  IMG_CONST IMG_CHAR *pszFormat, ...)
-#if !defined(USE_CODE)
-											  IMG_FORMAT_PRINTF(3, 4)
-#endif
-;
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpCommentWithFlagsf(IMG_CONST PVRSRV_CONNECTION *psConnection,
-													   IMG_UINT32 ui32Flags,
-													   IMG_CONST IMG_CHAR *pszFormat, ...)
-#if !defined(USE_CODE)
-													   IMG_FORMAT_PRINTF(3, 4)
-#endif
-;
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpDriverInfo(IMG_CONST PVRSRV_CONNECTION *psConnection,
-								 				IMG_CHAR *pszString,
-												IMG_BOOL bContinuous);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpIsCapturing(IMG_CONST PVRSRV_CONNECTION *psConnection,
-								 				IMG_BOOL *pbIsCapturing);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpBitmap(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-								 			IMG_CHAR *pszFileName,
-											IMG_UINT32 ui32FileOffset,
-											IMG_UINT32 ui32Width,
-											IMG_UINT32 ui32Height,
-											IMG_UINT32 ui32StrideInBytes,
-											IMG_DEV_VIRTADDR sDevBaseAddr,
-#if defined (SUPPORT_SID_INTERFACE)
-											IMG_SID    hDevMemContext,
-#else
-											IMG_HANDLE hDevMemContext,
-#endif
-											IMG_UINT32 ui32Size,
-											PDUMP_PIXEL_FORMAT ePixelFormat,
-											PDUMP_MEM_FORMAT eMemFormat,
-											IMG_UINT32 ui32PDumpFlags);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpRegRead(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-											IMG_CONST IMG_CHAR *pszRegRegion,
-								 			IMG_CONST IMG_CHAR *pszFileName,
-											IMG_UINT32 ui32FileOffset,
-											IMG_UINT32 ui32Address,
-											IMG_UINT32 ui32Size,
-											IMG_UINT32 ui32PDumpFlags);
-
-
-IMG_IMPORT
-IMG_BOOL IMG_CALLCONV PVRSRVPDumpIsCapturingTest(IMG_CONST PVRSRV_CONNECTION *psConnection);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpCycleCountRegRead(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-														IMG_UINT32 ui32RegOffset,
-														IMG_BOOL bLastFrame);
-
-IMG_IMPORT IMG_HANDLE	PVRSRVLoadLibrary(const IMG_CHAR *pszLibraryName);
-IMG_IMPORT PVRSRV_ERROR	PVRSRVUnloadLibrary(IMG_HANDLE hExtDrv);
-IMG_IMPORT PVRSRV_ERROR	PVRSRVGetLibFuncAddr(IMG_HANDLE hExtDrv, const IMG_CHAR *pszFunctionName, IMG_VOID **ppvFuncAddr);
-
-IMG_IMPORT IMG_UINT32 PVRSRVClockus (void);
-IMG_IMPORT IMG_VOID PVRSRVWaitus (IMG_UINT32 ui32Timeus);
-IMG_IMPORT IMG_VOID PVRSRVReleaseThreadQuanta (void);
-IMG_IMPORT IMG_UINT32 IMG_CALLCONV PVRSRVGetCurrentProcessID(void);
-IMG_IMPORT IMG_CHAR * IMG_CALLCONV PVRSRVSetLocale(const IMG_CHAR *pszLocale);
-
-
-
-
-
-IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVCreateAppHintState(IMG_MODULE_ID eModuleID,
-														const IMG_CHAR *pszAppName,
-														IMG_VOID **ppvState);
-IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVFreeAppHintState(IMG_MODULE_ID eModuleID,
-										 IMG_VOID *pvHintState);
-
-IMG_IMPORT IMG_BOOL IMG_CALLCONV PVRSRVGetAppHint(IMG_VOID			*pvHintState,
-												  const IMG_CHAR	*pszHintName,
-												  IMG_DATA_TYPE		eDataType,
-												  const IMG_VOID	*pvDefault,
-												  IMG_VOID			*pvReturn);
-
-IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVAllocUserModeMem (IMG_SIZE_T ui32Size);
-IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVCallocUserModeMem (IMG_SIZE_T ui32Size);
-IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVReallocUserModeMem (IMG_PVOID pvBase, IMG_SIZE_T uNewSize);
-IMG_IMPORT IMG_VOID  IMG_CALLCONV PVRSRVFreeUserModeMem (IMG_PVOID pvMem);
-IMG_IMPORT IMG_VOID PVRSRVMemCopy(IMG_VOID *pvDst, const IMG_VOID *pvSrc, IMG_SIZE_T ui32Size);
-IMG_IMPORT IMG_VOID PVRSRVMemSet(IMG_VOID *pvDest, IMG_UINT8 ui8Value, IMG_SIZE_T ui32Size);
-
-struct _PVRSRV_MUTEX_OPAQUE_STRUCT_;
-typedef	struct  _PVRSRV_MUTEX_OPAQUE_STRUCT_ *PVRSRV_MUTEX_HANDLE;
-
-IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateMutex(PVRSRV_MUTEX_HANDLE *phMutex);
-IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyMutex(PVRSRV_MUTEX_HANDLE hMutex);
-IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVLockMutex(PVRSRV_MUTEX_HANDLE hMutex);
-IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVUnlockMutex(PVRSRV_MUTEX_HANDLE hMutex);
-
-IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVLockProcessGlobalMutex(void);
-IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVUnlockProcessGlobalMutex(void);
-
-
-struct _PVRSRV_SEMAPHORE_OPAQUE_STRUCT_;
-typedef	struct  _PVRSRV_SEMAPHORE_OPAQUE_STRUCT_ *PVRSRV_SEMAPHORE_HANDLE;
-
-
-  	#define IMG_SEMAPHORE_WAIT_INFINITE       ((IMG_UINT64)0xFFFFFFFFFFFFFFFFull)
-
-
-#if !defined(USE_CODE)
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVCreateSemaphore)
-#endif
-static INLINE PVRSRV_ERROR PVRSRVCreateSemaphore(PVRSRV_SEMAPHORE_HANDLE *phSemaphore, IMG_INT iInitialCount)
-{
-	PVR_UNREFERENCED_PARAMETER(iInitialCount);
-	*phSemaphore = 0;
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVDestroySemaphore)
-#endif
-static INLINE PVRSRV_ERROR PVRSRVDestroySemaphore(PVRSRV_SEMAPHORE_HANDLE hSemaphore)
-{
-	PVR_UNREFERENCED_PARAMETER(hSemaphore);
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVWaitSemaphore)
-#endif
-static INLINE PVRSRV_ERROR PVRSRVWaitSemaphore(PVRSRV_SEMAPHORE_HANDLE hSemaphore, IMG_UINT64 ui64TimeoutMicroSeconds)
-{
-	PVR_UNREFERENCED_PARAMETER(hSemaphore);
-	PVR_UNREFERENCED_PARAMETER(ui64TimeoutMicroSeconds);
-	return PVRSRV_ERROR_INVALID_PARAMS;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVPostSemaphore)
-#endif
-static INLINE IMG_VOID PVRSRVPostSemaphore(PVRSRV_SEMAPHORE_HANDLE hSemaphore, IMG_INT iPostCount)
-{
-	PVR_UNREFERENCED_PARAMETER(hSemaphore);
-	PVR_UNREFERENCED_PARAMETER(iPostCount);
-}
-
-#endif 
-
-
-#if (defined(DEBUG) && (defined(__linux__) || defined(__QNXNTO__)))
-IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVAllocUserModeMemTracking(IMG_SIZE_T ui32Size, IMG_CHAR *pszFileName, IMG_UINT32 ui32LineNumber);
-
-IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVCallocUserModeMemTracking(IMG_SIZE_T ui32Size, IMG_CHAR *pszFileName, IMG_UINT32 ui32LineNumber);
-
-IMG_IMPORT IMG_VOID  IMG_CALLCONV PVRSRVFreeUserModeMemTracking(IMG_VOID *pvMem);
-
-IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVReallocUserModeMemTracking(IMG_VOID *pvMem, IMG_SIZE_T ui32NewSize, 
-													  IMG_CHAR *pszFileName, IMG_UINT32 ui32LineNumber);
-#endif 
-
-IMG_IMPORT PVRSRV_ERROR PVRSRVEventObjectWait(const PVRSRV_CONNECTION *psConnection,
-#if defined (SUPPORT_SID_INTERFACE)
-									IMG_EVENTSID hOSEvent);
-#else
-									IMG_HANDLE hOSEvent);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateSyncInfoModObj(const PVRSRV_CONNECTION *psConnection,
-#if defined (SUPPORT_SID_INTERFACE)
-													 IMG_SID *phKernelSyncInfoModObj);
-#else
-													 IMG_HANDLE *phKernelSyncInfoModObj);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroySyncInfoModObj(const PVRSRV_CONNECTION *psConnection,
-#if defined (SUPPORT_SID_INTERFACE)
-													  IMG_SID hKernelSyncInfoModObj);
-#else
-													  IMG_HANDLE hKernelSyncInfoModObj);
-#endif
-
-
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVModifyPendingSyncOps(const PVRSRV_CONNECTION *psConnection,
-#if defined (SUPPORT_SID_INTERFACE)
-													  IMG_SID    hKernelSyncInfoModObj,
-#else
-													  IMG_HANDLE hKernelSyncInfoModObj,
-#endif
-													  PVRSRV_CLIENT_SYNC_INFO *psSyncInfo,
-													  IMG_UINT32 ui32ModifyFlags,
-													  IMG_UINT32 *pui32ReadOpsPending,
-													  IMG_UINT32 *pui32WriteOpsPending);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVModifyCompleteSyncOps(const PVRSRV_CONNECTION *psConnection,
-#if defined (SUPPORT_SID_INTERFACE)
-													  IMG_SID hKernelSyncInfoModObj);
-#else
-													  IMG_HANDLE hKernelSyncInfoModObj);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVSyncOpsTakeToken(const PVRSRV_CONNECTION *psConnection,
-#if defined (SUPPORT_SID_INTERFACE)
-												 const IMG_SID      hKernelSyncInfo,
-#else
-												 const PVRSRV_CLIENT_SYNC_INFO *psSyncInfo,
-#endif
-												 PVRSRV_SYNC_TOKEN *psSyncToken);
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVSyncOpsFlushToToken(const PVRSRV_CONNECTION *psConnection,
-#if defined (SUPPORT_SID_INTERFACE)
-													const IMG_SID            hKernelSyncInfo,
-#else
-													const PVRSRV_CLIENT_SYNC_INFO *psSyncInfo,
-#endif
-													const PVRSRV_SYNC_TOKEN *psSyncToken,
-													IMG_BOOL bWait);
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVSyncOpsFlushToModObj(const PVRSRV_CONNECTION *psConnection,
-#if defined (SUPPORT_SID_INTERFACE)
-													 IMG_SID  hKernelSyncInfoModObj,
-#else
-													 IMG_HANDLE hKernelSyncInfoModObj,
-#endif
-													 IMG_BOOL bWait);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVSyncOpsFlushToDelta(const PVRSRV_CONNECTION *psConnection,
-													PVRSRV_CLIENT_SYNC_INFO *psClientSyncInfo,
-													IMG_UINT32 ui32Delta,
-													IMG_BOOL bWait);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVAllocSyncInfo(IMG_CONST PVRSRV_DEV_DATA	*psDevData,
-											  PVRSRV_CLIENT_SYNC_INFO **ppsSyncInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeSyncInfo(IMG_CONST PVRSRV_DEV_DATA *psDevData,
-											 PVRSRV_CLIENT_SYNC_INFO *psSyncInfo);
-
-IMG_IMPORT
-const IMG_CHAR *PVRSRVGetErrorString(PVRSRV_ERROR eError);
-
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVCacheInvalidate(const PVRSRV_CONNECTION *psConnection,
-                                                IMG_PVOID pvLinearAddress,
-	                                            IMG_UINT32 ui32Size);
-
-#define TIME_NOT_PASSED_UINT32(a,b,c)		(((a) - (b)) < (c))
-
-#if defined (__cplusplus)
-}
-#endif
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/include4/servicesext.h b/drivers/staging/cdv/pvr/include4/servicesext.h
deleted file mode 100644
index 54dd4d9..0000000
--- a/drivers/staging/cdv/pvr/include4/servicesext.h
+++ /dev/null
@@ -1,846 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined (__SERVICESEXT_H__)
-#define __SERVICESEXT_H__
-
-#define PVRSRV_LOCKFLG_READONLY     	(1)		
-
-typedef enum _PVRSRV_ERROR_
-{
-	PVRSRV_OK = 0,
-	PVRSRV_ERROR_OUT_OF_MEMORY,
-	PVRSRV_ERROR_TOO_FEW_BUFFERS,
-	PVRSRV_ERROR_INVALID_PARAMS,
-	PVRSRV_ERROR_INIT_FAILURE,
-	PVRSRV_ERROR_CANT_REGISTER_CALLBACK,
-	PVRSRV_ERROR_INVALID_DEVICE,
-	PVRSRV_ERROR_NOT_OWNER,
-	PVRSRV_ERROR_BAD_MAPPING,
-	PVRSRV_ERROR_TIMEOUT,
-	PVRSRV_ERROR_FLIP_CHAIN_EXISTS,
-	PVRSRV_ERROR_INVALID_SWAPINTERVAL,
-	PVRSRV_ERROR_SCENE_INVALID,
-	PVRSRV_ERROR_STREAM_ERROR,
-	PVRSRV_ERROR_FAILED_DEPENDENCIES,
-	PVRSRV_ERROR_CMD_NOT_PROCESSED,
-	PVRSRV_ERROR_CMD_TOO_BIG,
-	PVRSRV_ERROR_DEVICE_REGISTER_FAILED,
-	PVRSRV_ERROR_TOOMANYBUFFERS,
-	PVRSRV_ERROR_NOT_SUPPORTED,
-	PVRSRV_ERROR_PROCESSING_BLOCKED,
-
-	PVRSRV_ERROR_CANNOT_FLUSH_QUEUE,
-	PVRSRV_ERROR_CANNOT_GET_QUEUE_SPACE,
-	PVRSRV_ERROR_CANNOT_GET_RENDERDETAILS,
-	PVRSRV_ERROR_RETRY,
-
-	PVRSRV_ERROR_DDK_VERSION_MISMATCH,
-	PVRSRV_ERROR_BUILD_MISMATCH,
-	PVRSRV_ERROR_CORE_REVISION_MISMATCH,
-
-	PVRSRV_ERROR_UPLOAD_TOO_BIG,
-
-	PVRSRV_ERROR_INVALID_FLAGS,
-	PVRSRV_ERROR_FAILED_TO_REGISTER_PROCESS,
-
-	PVRSRV_ERROR_UNABLE_TO_LOAD_LIBRARY,
-	PVRSRV_ERROR_UNABLE_GET_FUNC_ADDR,
-	PVRSRV_ERROR_UNLOAD_LIBRARY_FAILED,
-
-	PVRSRV_ERROR_BRIDGE_CALL_FAILED,
-	PVRSRV_ERROR_IOCTL_CALL_FAILED,
-
-    PVRSRV_ERROR_MMU_CONTEXT_NOT_FOUND,
-	PVRSRV_ERROR_BUFFER_DEVICE_NOT_FOUND,
-	PVRSRV_ERROR_BUFFER_DEVICE_ALREADY_PRESENT,
-
-	PVRSRV_ERROR_PCI_DEVICE_NOT_FOUND,
-	PVRSRV_ERROR_PCI_CALL_FAILED,
-	PVRSRV_ERROR_PCI_REGION_TOO_SMALL,
-	PVRSRV_ERROR_PCI_REGION_UNAVAILABLE,
-	PVRSRV_ERROR_BAD_REGION_SIZE_MISMATCH,
-
-	PVRSRV_ERROR_REGISTER_BASE_NOT_SET,
-
-    PVRSRV_ERROR_BM_BAD_SHAREMEM_HANDLE,
-
-	PVRSRV_ERROR_FAILED_TO_ALLOC_USER_MEM,
-	PVRSRV_ERROR_FAILED_TO_ALLOC_VP_MEMORY,
-	PVRSRV_ERROR_FAILED_TO_MAP_SHARED_PBDESC,
-	PVRSRV_ERROR_FAILED_TO_GET_PHYS_ADDR,
-
-	PVRSRV_ERROR_FAILED_TO_ALLOC_VIRT_MEMORY,
-	PVRSRV_ERROR_FAILED_TO_COPY_VIRT_MEMORY,
-
-	PVRSRV_ERROR_FAILED_TO_ALLOC_PAGES,
-	PVRSRV_ERROR_FAILED_TO_FREE_PAGES,
-	PVRSRV_ERROR_FAILED_TO_COPY_PAGES,
-	PVRSRV_ERROR_UNABLE_TO_LOCK_PAGES,
-	PVRSRV_ERROR_UNABLE_TO_UNLOCK_PAGES,
-	PVRSRV_ERROR_STILL_MAPPED,
-	PVRSRV_ERROR_MAPPING_NOT_FOUND,
-	PVRSRV_ERROR_PHYS_ADDRESS_EXCEEDS_32BIT,
-	PVRSRV_ERROR_FAILED_TO_MAP_PAGE_TABLE,
-
-	PVRSRV_ERROR_INVALID_SEGMENT_BLOCK,
-	PVRSRV_ERROR_INVALID_SGXDEVDATA,
-	PVRSRV_ERROR_INVALID_DEVINFO,
-	PVRSRV_ERROR_INVALID_MEMINFO,
-	PVRSRV_ERROR_INVALID_MISCINFO,
-	PVRSRV_ERROR_UNKNOWN_IOCTL,
-	PVRSRV_ERROR_INVALID_CONTEXT,
-	PVRSRV_ERROR_UNABLE_TO_DESTROY_CONTEXT,
-	PVRSRV_ERROR_INVALID_HEAP,
-	PVRSRV_ERROR_INVALID_KERNELINFO,
-	PVRSRV_ERROR_UNKNOWN_POWER_STATE,
-	PVRSRV_ERROR_INVALID_HANDLE_TYPE,
-	PVRSRV_ERROR_INVALID_WRAP_TYPE,
-	PVRSRV_ERROR_INVALID_PHYS_ADDR,
-	PVRSRV_ERROR_INVALID_CPU_ADDR,
-	PVRSRV_ERROR_INVALID_HEAPINFO,
-	PVRSRV_ERROR_INVALID_PERPROC,
-	PVRSRV_ERROR_FAILED_TO_RETRIEVE_HEAPINFO,
-	PVRSRV_ERROR_INVALID_MAP_REQUEST,
-	PVRSRV_ERROR_INVALID_UNMAP_REQUEST,
-	PVRSRV_ERROR_UNABLE_TO_FIND_MAPPING_HEAP,
-	PVRSRV_ERROR_MAPPING_STILL_IN_USE,
-
-	PVRSRV_ERROR_EXCEEDED_HW_LIMITS,
-	PVRSRV_ERROR_NO_STAGING_BUFFER_ALLOCATED,
-
-	PVRSRV_ERROR_UNABLE_TO_CREATE_PERPROC_AREA,
-	PVRSRV_ERROR_UNABLE_TO_CREATE_EVENT,
-	PVRSRV_ERROR_UNABLE_TO_ENABLE_EVENT,
-	PVRSRV_ERROR_UNABLE_TO_REGISTER_EVENT,
-	PVRSRV_ERROR_UNABLE_TO_DESTROY_EVENT,
-	PVRSRV_ERROR_UNABLE_TO_CREATE_THREAD,
-	PVRSRV_ERROR_UNABLE_TO_CLOSE_THREAD,
-	PVRSRV_ERROR_THREAD_READ_ERROR,
-	PVRSRV_ERROR_UNABLE_TO_REGISTER_ISR_HANDLER,
-	PVRSRV_ERROR_UNABLE_TO_INSTALL_ISR,
-	PVRSRV_ERROR_UNABLE_TO_UNINSTALL_ISR,
-	PVRSRV_ERROR_ISR_ALREADY_INSTALLED,
-	PVRSRV_ERROR_ISR_NOT_INSTALLED,
-	PVRSRV_ERROR_UNABLE_TO_INITIALISE_INTERRUPT,
-	PVRSRV_ERROR_UNABLE_TO_RETRIEVE_INFO,
-	PVRSRV_ERROR_UNABLE_TO_DO_BACKWARDS_BLIT,
-	PVRSRV_ERROR_UNABLE_TO_CLOSE_SERVICES,
-	PVRSRV_ERROR_UNABLE_TO_REGISTER_CONTEXT,
-	PVRSRV_ERROR_UNABLE_TO_REGISTER_RESOURCE,
-	PVRSRV_ERROR_UNABLE_TO_CLOSE_HANDLE,
-
-	PVRSRV_ERROR_INVALID_CCB_COMMAND,
-
-	PVRSRV_ERROR_UNABLE_TO_LOCK_RESOURCE,
-	PVRSRV_ERROR_INVALID_LOCK_ID,
-	PVRSRV_ERROR_RESOURCE_NOT_LOCKED,
-
-	PVRSRV_ERROR_FLIP_FAILED,
-	PVRSRV_ERROR_UNBLANK_DISPLAY_FAILED,
-
-	PVRSRV_ERROR_TIMEOUT_POLLING_FOR_VALUE,
-
-	PVRSRV_ERROR_CREATE_RENDER_CONTEXT_FAILED,
-	PVRSRV_ERROR_UNKNOWN_PRIMARY_FRAG,
-	PVRSRV_ERROR_UNEXPECTED_SECONDARY_FRAG,
-	PVRSRV_ERROR_UNEXPECTED_PRIMARY_FRAG,
-
-	PVRSRV_ERROR_UNABLE_TO_INSERT_FENCE_ID,
-
-	PVRSRV_ERROR_BLIT_SETUP_FAILED,
-
-	PVRSRV_ERROR_PDUMP_NOT_AVAILABLE,
-	PVRSRV_ERROR_PDUMP_BUFFER_FULL,
-	PVRSRV_ERROR_PDUMP_BUF_OVERFLOW,
-	PVRSRV_ERROR_PDUMP_NOT_ACTIVE,
-	PVRSRV_ERROR_INCOMPLETE_LINE_OVERLAPS_PAGES,
-
-	PVRSRV_ERROR_MUTEX_DESTROY_FAILED,
-	PVRSRV_ERROR_MUTEX_INTERRUPTIBLE_ERROR,
-
-	PVRSRV_ERROR_INSUFFICIENT_SCRIPT_SPACE,
-	PVRSRV_ERROR_INSUFFICIENT_SPACE_FOR_COMMAND,
-
-	PVRSRV_ERROR_PROCESS_NOT_INITIALISED,
-	PVRSRV_ERROR_PROCESS_NOT_FOUND,
-	PVRSRV_ERROR_SRV_CONNECT_FAILED,
-	PVRSRV_ERROR_SRV_DISCONNECT_FAILED,
-	PVRSRV_ERROR_DEINT_PHASE_FAILED,
-	PVRSRV_ERROR_INIT2_PHASE_FAILED,
-
-	PVRSRV_ERROR_UNABLE_TO_FIND_RESOURCE,
-
-	PVRSRV_ERROR_NO_DC_DEVICES_FOUND,
-	PVRSRV_ERROR_UNABLE_TO_OPEN_DC_DEVICE,
-	PVRSRV_ERROR_UNABLE_TO_REMOVE_DEVICE,
-	PVRSRV_ERROR_NO_DEVICEDATA_FOUND,
-	PVRSRV_ERROR_NO_DEVICENODE_FOUND,
-	PVRSRV_ERROR_NO_CLIENTNODE_FOUND,
-	PVRSRV_ERROR_FAILED_TO_PROCESS_QUEUE,
-
-	PVRSRV_ERROR_UNABLE_TO_INIT_TASK,
-	PVRSRV_ERROR_UNABLE_TO_SCHEDULE_TASK,
-	PVRSRV_ERROR_UNABLE_TO_KILL_TASK,
-
-	PVRSRV_ERROR_UNABLE_TO_ENABLE_TIMER,
-	PVRSRV_ERROR_UNABLE_TO_DISABLE_TIMER,
-	PVRSRV_ERROR_UNABLE_TO_REMOVE_TIMER,
-
-	PVRSRV_ERROR_UNKNOWN_PIXEL_FORMAT,
-	PVRSRV_ERROR_UNKNOWN_SCRIPT_OPERATION,
-
-	PVRSRV_ERROR_HANDLE_INDEX_OUT_OF_RANGE,
-	PVRSRV_ERROR_HANDLE_NOT_ALLOCATED,
-	PVRSRV_ERROR_HANDLE_TYPE_MISMATCH,
-	PVRSRV_ERROR_UNABLE_TO_ADD_HANDLE,
-	PVRSRV_ERROR_HANDLE_NOT_SHAREABLE,
-	PVRSRV_ERROR_HANDLE_NOT_FOUND,
-	PVRSRV_ERROR_INVALID_SUBHANDLE,
-	PVRSRV_ERROR_HANDLE_BATCH_IN_USE,
-	PVRSRV_ERROR_HANDLE_BATCH_COMMIT_FAILURE,
-
-	PVRSRV_ERROR_UNABLE_TO_CREATE_HASH_TABLE,
-	PVRSRV_ERROR_INSERT_HASH_TABLE_DATA_FAILED,
-
-	PVRSRV_ERROR_UNSUPPORTED_BACKING_STORE,
-	PVRSRV_ERROR_UNABLE_TO_DESTROY_BM_HEAP,
-
-	PVRSRV_ERROR_UNKNOWN_INIT_SERVER_STATE,
-
-	PVRSRV_ERROR_NO_FREE_DEVICEIDS_AVALIABLE,
-	PVRSRV_ERROR_INVALID_DEVICEID,
-	PVRSRV_ERROR_DEVICEID_NOT_FOUND,
-
-	PVRSRV_ERROR_MEMORY_TEST_FAILED,
-	PVRSRV_ERROR_CPUPADDR_TEST_FAILED,
-	PVRSRV_ERROR_COPY_TEST_FAILED,
-
-	PVRSRV_ERROR_SEMAPHORE_NOT_INITIALISED,
-
-	PVRSRV_ERROR_UNABLE_TO_RELEASE_CLOCK,
-	PVRSRV_ERROR_CLOCK_REQUEST_FAILED,
-	PVRSRV_ERROR_DISABLE_CLOCK_FAILURE,
-	PVRSRV_ERROR_UNABLE_TO_SET_CLOCK_RATE,
-	PVRSRV_ERROR_UNABLE_TO_ROUND_CLOCK_RATE,
-	PVRSRV_ERROR_UNABLE_TO_ENABLE_CLOCK,
-	PVRSRV_ERROR_UNABLE_TO_GET_CLOCK,
-	PVRSRV_ERROR_UNABLE_TO_GET_PARENT_CLOCK,
-	PVRSRV_ERROR_UNABLE_TO_GET_SYSTEM_CLOCK,
-
-	PVRSRV_ERROR_UNKNOWN_SGL_ERROR,
-
-	PVRSRV_ERROR_SYSTEM_POWER_CHANGE_FAILURE,
-	PVRSRV_ERROR_DEVICE_POWER_CHANGE_FAILURE,
-
-	PVRSRV_ERROR_BAD_SYNC_STATE,
-
-	PVRSRV_ERROR_CACHEOP_FAILED,
-
-	PVRSRV_ERROR_CACHE_INVALIDATE_FAILED,
-
-	PVRSRV_ERROR_FORCE_I32 = 0x7fffffff
-
-} PVRSRV_ERROR;
-
-
-typedef enum _PVRSRV_DEVICE_CLASS_
-{
-	PVRSRV_DEVICE_CLASS_3D				= 0 ,
-	PVRSRV_DEVICE_CLASS_DISPLAY			= 1 ,
-	PVRSRV_DEVICE_CLASS_BUFFER			= 2 ,
-	PVRSRV_DEVICE_CLASS_VIDEO			= 3 ,
-
-	PVRSRV_DEVICE_CLASS_FORCE_I32 		= 0x7fffffff
-
-} PVRSRV_DEVICE_CLASS;
-
-
-typedef enum _PVRSRV_SYS_POWER_STATE_
-{
-	PVRSRV_SYS_POWER_STATE_Unspecified		= -1,	
-	PVRSRV_SYS_POWER_STATE_D0				= 0,	
-	PVRSRV_SYS_POWER_STATE_D1				= 1,	
-	PVRSRV_SYS_POWER_STATE_D2				= 2,	
-	PVRSRV_SYS_POWER_STATE_D3				= 3,	
-	PVRSRV_SYS_POWER_STATE_D4				= 4,	
-
-	PVRSRV_SYS_POWER_STATE_FORCE_I32 = 0x7fffffff
-
-} PVRSRV_SYS_POWER_STATE, *PPVRSRV_SYS_POWER_STATE;
-
-
-typedef enum _PVRSRV_DEV_POWER_STATE_
-{
-	PVRSRV_DEV_POWER_STATE_DEFAULT	= -1,	
-	PVRSRV_DEV_POWER_STATE_ON		= 0,	
-	PVRSRV_DEV_POWER_STATE_IDLE		= 1,	
-	PVRSRV_DEV_POWER_STATE_OFF		= 2,	
-
-	PVRSRV_DEV_POWER_STATE_FORCE_I32 = 0x7fffffff
-
-} PVRSRV_DEV_POWER_STATE, *PPVRSRV_DEV_POWER_STATE;	
-
-
-typedef PVRSRV_ERROR (*PFN_PRE_POWER) (IMG_HANDLE				hDevHandle,
-									   PVRSRV_DEV_POWER_STATE	eNewPowerState,
-									   PVRSRV_DEV_POWER_STATE	eCurrentPowerState);
-typedef PVRSRV_ERROR (*PFN_POST_POWER) (IMG_HANDLE				hDevHandle,
-										PVRSRV_DEV_POWER_STATE	eNewPowerState,
-										PVRSRV_DEV_POWER_STATE	eCurrentPowerState);
-
-typedef PVRSRV_ERROR (*PFN_PRE_CLOCKSPEED_CHANGE) (IMG_HANDLE				hDevHandle,
-												   IMG_BOOL					bIdleDevice,
-												   PVRSRV_DEV_POWER_STATE	eCurrentPowerState);
-typedef PVRSRV_ERROR (*PFN_POST_CLOCKSPEED_CHANGE) (IMG_HANDLE				hDevHandle,
-													IMG_BOOL				bIdleDevice,
-													PVRSRV_DEV_POWER_STATE	eCurrentPowerState);
-
-
-typedef enum _PVRSRV_PIXEL_FORMAT_ {
-	
-	PVRSRV_PIXEL_FORMAT_UNKNOWN				=  0,
-	PVRSRV_PIXEL_FORMAT_RGB565				=  1,
-	PVRSRV_PIXEL_FORMAT_RGB555				=  2,
-	PVRSRV_PIXEL_FORMAT_RGB888				=  3,	
-	PVRSRV_PIXEL_FORMAT_BGR888				=  4,	
-	PVRSRV_PIXEL_FORMAT_GREY_SCALE			=  8,
-	PVRSRV_PIXEL_FORMAT_PAL12				= 13,
-	PVRSRV_PIXEL_FORMAT_PAL8				= 14,
-	PVRSRV_PIXEL_FORMAT_PAL4				= 15,
-	PVRSRV_PIXEL_FORMAT_PAL2				= 16,
-	PVRSRV_PIXEL_FORMAT_PAL1				= 17,
-	PVRSRV_PIXEL_FORMAT_ARGB1555			= 18,
-	PVRSRV_PIXEL_FORMAT_ARGB4444			= 19,
-	PVRSRV_PIXEL_FORMAT_ARGB8888			= 20,
-	PVRSRV_PIXEL_FORMAT_ABGR8888			= 21,
-	PVRSRV_PIXEL_FORMAT_YV12				= 22,
-	PVRSRV_PIXEL_FORMAT_I420				= 23,
-    PVRSRV_PIXEL_FORMAT_IMC2				= 25,
-	PVRSRV_PIXEL_FORMAT_XRGB8888			= 26,
-	PVRSRV_PIXEL_FORMAT_XBGR8888			= 27,
-	PVRSRV_PIXEL_FORMAT_BGRA8888			= 28,
-	PVRSRV_PIXEL_FORMAT_XRGB4444			= 29,
-	PVRSRV_PIXEL_FORMAT_ARGB8332			= 30,
-	PVRSRV_PIXEL_FORMAT_A2RGB10				= 31,	
-	PVRSRV_PIXEL_FORMAT_A2BGR10				= 32,	
-	PVRSRV_PIXEL_FORMAT_P8					= 33,
-	PVRSRV_PIXEL_FORMAT_L8					= 34,
-	PVRSRV_PIXEL_FORMAT_A8L8				= 35,
-	PVRSRV_PIXEL_FORMAT_A4L4				= 36,
-	PVRSRV_PIXEL_FORMAT_L16					= 37,
-	PVRSRV_PIXEL_FORMAT_L6V5U5				= 38,
-	PVRSRV_PIXEL_FORMAT_V8U8				= 39,
-	PVRSRV_PIXEL_FORMAT_V16U16				= 40,
-	PVRSRV_PIXEL_FORMAT_QWVU8888			= 41,
-	PVRSRV_PIXEL_FORMAT_XLVU8888			= 42,
-	PVRSRV_PIXEL_FORMAT_QWVU16				= 43,
-	PVRSRV_PIXEL_FORMAT_D16					= 44,
-	PVRSRV_PIXEL_FORMAT_D24S8				= 45,
-	PVRSRV_PIXEL_FORMAT_D24X8				= 46,
-
-	
-	PVRSRV_PIXEL_FORMAT_ABGR16				= 47,
-	PVRSRV_PIXEL_FORMAT_ABGR16F				= 48,
-	PVRSRV_PIXEL_FORMAT_ABGR32				= 49,
-	PVRSRV_PIXEL_FORMAT_ABGR32F				= 50,
-	PVRSRV_PIXEL_FORMAT_B10GR11				= 51,
-	PVRSRV_PIXEL_FORMAT_GR88				= 52,
-	PVRSRV_PIXEL_FORMAT_BGR32				= 53,
-	PVRSRV_PIXEL_FORMAT_GR32				= 54,
-	PVRSRV_PIXEL_FORMAT_E5BGR9				= 55,
-
-	
-	PVRSRV_PIXEL_FORMAT_RESERVED1			= 56,
-	PVRSRV_PIXEL_FORMAT_RESERVED2			= 57,
-	PVRSRV_PIXEL_FORMAT_RESERVED3			= 58,
-	PVRSRV_PIXEL_FORMAT_RESERVED4			= 59,
-	PVRSRV_PIXEL_FORMAT_RESERVED5			= 60,
-
-	
-	PVRSRV_PIXEL_FORMAT_R8G8_B8G8			= 61,
-	PVRSRV_PIXEL_FORMAT_G8R8_G8B8			= 62,
-
-	
-	PVRSRV_PIXEL_FORMAT_NV11				= 63,
-	PVRSRV_PIXEL_FORMAT_NV12				= 64,
-
-	
-	PVRSRV_PIXEL_FORMAT_YUY2				= 65,
-	PVRSRV_PIXEL_FORMAT_YUV420				= 66,
-	PVRSRV_PIXEL_FORMAT_YUV444				= 67,
-	PVRSRV_PIXEL_FORMAT_VUY444				= 68,
-	PVRSRV_PIXEL_FORMAT_YUYV				= 69,
-	PVRSRV_PIXEL_FORMAT_YVYU				= 70,
-	PVRSRV_PIXEL_FORMAT_UYVY				= 71,
-	PVRSRV_PIXEL_FORMAT_VYUY				= 72,
-
-	PVRSRV_PIXEL_FORMAT_FOURCC_ORG_UYVY		= 73,	
-	PVRSRV_PIXEL_FORMAT_FOURCC_ORG_YUYV		= 74,	
-	PVRSRV_PIXEL_FORMAT_FOURCC_ORG_YVYU		= 75,	
-	PVRSRV_PIXEL_FORMAT_FOURCC_ORG_VYUY		= 76,	
-	PVRSRV_PIXEL_FORMAT_FOURCC_ORG_AYUV		= 77,	
-
-	
-	PVRSRV_PIXEL_FORMAT_A32B32G32R32		= 78,	
-	PVRSRV_PIXEL_FORMAT_A32B32G32R32F		= 79,	
-	PVRSRV_PIXEL_FORMAT_A32B32G32R32_UINT	= 80,	
-	PVRSRV_PIXEL_FORMAT_A32B32G32R32_SINT	= 81,	
-
-	
-	PVRSRV_PIXEL_FORMAT_B32G32R32			= 82,	
-	PVRSRV_PIXEL_FORMAT_B32G32R32F			= 83,	
-	PVRSRV_PIXEL_FORMAT_B32G32R32_UINT		= 84,	
-	PVRSRV_PIXEL_FORMAT_B32G32R32_SINT		= 85,	
-
-	
-	PVRSRV_PIXEL_FORMAT_G32R32				= 86,	
-	PVRSRV_PIXEL_FORMAT_G32R32F				= 87,	
-	PVRSRV_PIXEL_FORMAT_G32R32_UINT			= 88,	
-	PVRSRV_PIXEL_FORMAT_G32R32_SINT			= 89,	
-
-	
-	PVRSRV_PIXEL_FORMAT_D32F				= 90,	
-	PVRSRV_PIXEL_FORMAT_R32					= 91,	
-	PVRSRV_PIXEL_FORMAT_R32F				= 92,	
-	PVRSRV_PIXEL_FORMAT_R32_UINT			= 93,	
-	PVRSRV_PIXEL_FORMAT_R32_SINT			= 94,	
-
-	
-	PVRSRV_PIXEL_FORMAT_A16B16G16R16		= 95,	
-	PVRSRV_PIXEL_FORMAT_A16B16G16R16F		= 96,	
-	PVRSRV_PIXEL_FORMAT_A16B16G16R16_SINT	= 97,	
-	PVRSRV_PIXEL_FORMAT_A16B16G16R16_SNORM	= 98,	
-	PVRSRV_PIXEL_FORMAT_A16B16G16R16_UINT	= 99,	
-	PVRSRV_PIXEL_FORMAT_A16B16G16R16_UNORM	= 100,	
-
-	
-	PVRSRV_PIXEL_FORMAT_G16R16				= 101,	
-	PVRSRV_PIXEL_FORMAT_G16R16F				= 102,	
-	PVRSRV_PIXEL_FORMAT_G16R16_UINT			= 103,	
-	PVRSRV_PIXEL_FORMAT_G16R16_UNORM		= 104,	
-	PVRSRV_PIXEL_FORMAT_G16R16_SINT			= 105,	
-	PVRSRV_PIXEL_FORMAT_G16R16_SNORM		= 106,	
-
-	
-	PVRSRV_PIXEL_FORMAT_R16					= 107,	
-	PVRSRV_PIXEL_FORMAT_R16F				= 108,	
-	PVRSRV_PIXEL_FORMAT_R16_UINT			= 109,	
-	PVRSRV_PIXEL_FORMAT_R16_UNORM			= 110,	
-	PVRSRV_PIXEL_FORMAT_R16_SINT			= 111,	
-	PVRSRV_PIXEL_FORMAT_R16_SNORM			= 112,	
-
-	
-	PVRSRV_PIXEL_FORMAT_X8R8G8B8			= 113,	
-	PVRSRV_PIXEL_FORMAT_X8R8G8B8_UNORM		= 114,	
-	PVRSRV_PIXEL_FORMAT_X8R8G8B8_UNORM_SRGB	= 115,	
-
-	PVRSRV_PIXEL_FORMAT_A8R8G8B8			= 116,	
-	PVRSRV_PIXEL_FORMAT_A8R8G8B8_UNORM		= 117,	
-	PVRSRV_PIXEL_FORMAT_A8R8G8B8_UNORM_SRGB	= 118,	
-
-	PVRSRV_PIXEL_FORMAT_A8B8G8R8			= 119,	
-	PVRSRV_PIXEL_FORMAT_A8B8G8R8_UINT		= 120,	
-	PVRSRV_PIXEL_FORMAT_A8B8G8R8_UNORM		= 121,	
-	PVRSRV_PIXEL_FORMAT_A8B8G8R8_UNORM_SRGB	= 122,	
-	PVRSRV_PIXEL_FORMAT_A8B8G8R8_SINT		= 123,	
-	PVRSRV_PIXEL_FORMAT_A8B8G8R8_SNORM		= 124,	
-
-	
-	PVRSRV_PIXEL_FORMAT_G8R8				= 125,	
-	PVRSRV_PIXEL_FORMAT_G8R8_UINT			= 126,	
-	PVRSRV_PIXEL_FORMAT_G8R8_UNORM			= 127,	
-	PVRSRV_PIXEL_FORMAT_G8R8_SINT			= 128,	
-	PVRSRV_PIXEL_FORMAT_G8R8_SNORM			= 129,	
-
-	
-	PVRSRV_PIXEL_FORMAT_A8					= 130,	
-	PVRSRV_PIXEL_FORMAT_R8					= 131,	
-	PVRSRV_PIXEL_FORMAT_R8_UINT				= 132,	
-	PVRSRV_PIXEL_FORMAT_R8_UNORM			= 133,	
-	PVRSRV_PIXEL_FORMAT_R8_SINT				= 134,	
-	PVRSRV_PIXEL_FORMAT_R8_SNORM			= 135,	
-
-	
-	PVRSRV_PIXEL_FORMAT_A2B10G10R10			= 136,	
-	PVRSRV_PIXEL_FORMAT_A2B10G10R10_UNORM	= 137,	
-	PVRSRV_PIXEL_FORMAT_A2B10G10R10_UINT	= 138,	
-
-	
-	PVRSRV_PIXEL_FORMAT_B10G11R11			= 139,	
-	PVRSRV_PIXEL_FORMAT_B10G11R11F			= 140,	
-
-	
-	PVRSRV_PIXEL_FORMAT_X24G8R32			= 141,	
-	PVRSRV_PIXEL_FORMAT_G8R24				= 142,	
-	PVRSRV_PIXEL_FORMAT_X8R24				= 143,
-	PVRSRV_PIXEL_FORMAT_E5B9G9R9			= 144,	
-	PVRSRV_PIXEL_FORMAT_R1					= 145,	
-
-	PVRSRV_PIXEL_FORMAT_RESERVED6			= 146,
-	PVRSRV_PIXEL_FORMAT_RESERVED7			= 147,
-	PVRSRV_PIXEL_FORMAT_RESERVED8			= 148,
-	PVRSRV_PIXEL_FORMAT_RESERVED9			= 149,
-	PVRSRV_PIXEL_FORMAT_RESERVED10			= 150,
-	PVRSRV_PIXEL_FORMAT_RESERVED11			= 151,
-	PVRSRV_PIXEL_FORMAT_RESERVED12			= 152,
-	PVRSRV_PIXEL_FORMAT_RESERVED13			= 153,
-	PVRSRV_PIXEL_FORMAT_RESERVED14			= 154,
-	PVRSRV_PIXEL_FORMAT_RESERVED15			= 155,
-	PVRSRV_PIXEL_FORMAT_RESERVED16			= 156,
-	PVRSRV_PIXEL_FORMAT_RESERVED17			= 157,
-	PVRSRV_PIXEL_FORMAT_RESERVED18			= 158,
-	PVRSRV_PIXEL_FORMAT_RESERVED19			= 159,
-	PVRSRV_PIXEL_FORMAT_RESERVED20			= 160,
-
-	
-	PVRSRV_PIXEL_FORMAT_UBYTE4				= 161,	
-	PVRSRV_PIXEL_FORMAT_SHORT4				= 162,	
-	PVRSRV_PIXEL_FORMAT_SHORT4N				= 163,	
-	PVRSRV_PIXEL_FORMAT_USHORT4N			= 164,	
-	PVRSRV_PIXEL_FORMAT_SHORT2N				= 165,	
-	PVRSRV_PIXEL_FORMAT_SHORT2				= 166,	
-	PVRSRV_PIXEL_FORMAT_USHORT2N			= 167,	
-	PVRSRV_PIXEL_FORMAT_UDEC3				= 168,	
-	PVRSRV_PIXEL_FORMAT_DEC3N				= 169,	
-	PVRSRV_PIXEL_FORMAT_F16_2				= 170,	
-	PVRSRV_PIXEL_FORMAT_F16_4				= 171,	
-
-	
-	PVRSRV_PIXEL_FORMAT_L_F16				= 172,
-	PVRSRV_PIXEL_FORMAT_L_F16_REP			= 173,
-	PVRSRV_PIXEL_FORMAT_L_F16_A_F16			= 174,
-	PVRSRV_PIXEL_FORMAT_A_F16				= 175,
-	PVRSRV_PIXEL_FORMAT_B16G16R16F			= 176,
-
-	PVRSRV_PIXEL_FORMAT_L_F32				= 177,
-	PVRSRV_PIXEL_FORMAT_A_F32				= 178,
-	PVRSRV_PIXEL_FORMAT_L_F32_A_F32			= 179,
-
-	
-	PVRSRV_PIXEL_FORMAT_PVRTC2				= 180,
-	PVRSRV_PIXEL_FORMAT_PVRTC4				= 181,
-	PVRSRV_PIXEL_FORMAT_PVRTCII2			= 182,
-	PVRSRV_PIXEL_FORMAT_PVRTCII4			= 183,
-	PVRSRV_PIXEL_FORMAT_PVRTCIII			= 184,
-	PVRSRV_PIXEL_FORMAT_PVRO8				= 185,
-	PVRSRV_PIXEL_FORMAT_PVRO88				= 186,
-	PVRSRV_PIXEL_FORMAT_PT1					= 187,
-	PVRSRV_PIXEL_FORMAT_PT2					= 188,
-	PVRSRV_PIXEL_FORMAT_PT4					= 189,
-	PVRSRV_PIXEL_FORMAT_PT8					= 190,
-	PVRSRV_PIXEL_FORMAT_PTW					= 191,
-	PVRSRV_PIXEL_FORMAT_PTB					= 192,
-	PVRSRV_PIXEL_FORMAT_MONO8				= 193,
-	PVRSRV_PIXEL_FORMAT_MONO16				= 194,
-
-	
-	PVRSRV_PIXEL_FORMAT_C0_YUYV				= 195,
-	PVRSRV_PIXEL_FORMAT_C0_UYVY				= 196,
-	PVRSRV_PIXEL_FORMAT_C0_YVYU				= 197,
-	PVRSRV_PIXEL_FORMAT_C0_VYUY				= 198,
-	PVRSRV_PIXEL_FORMAT_C1_YUYV				= 199,
-	PVRSRV_PIXEL_FORMAT_C1_UYVY				= 200,
-	PVRSRV_PIXEL_FORMAT_C1_YVYU				= 201,
-	PVRSRV_PIXEL_FORMAT_C1_VYUY				= 202,
-
-	
-	PVRSRV_PIXEL_FORMAT_C0_YUV420_2P_UV		= 203,
-	PVRSRV_PIXEL_FORMAT_C0_YUV420_2P_VU		= 204,
-	PVRSRV_PIXEL_FORMAT_C0_YUV420_3P		= 205,
-	PVRSRV_PIXEL_FORMAT_C1_YUV420_2P_UV		= 206,
-	PVRSRV_PIXEL_FORMAT_C1_YUV420_2P_VU		= 207,
-	PVRSRV_PIXEL_FORMAT_C1_YUV420_3P		= 208,
-
-	PVRSRV_PIXEL_FORMAT_A2B10G10R10F		= 209,
-	PVRSRV_PIXEL_FORMAT_B8G8R8_SINT			= 210,
-	PVRSRV_PIXEL_FORMAT_PVRF32SIGNMASK		= 211,
-	
-	PVRSRV_PIXEL_FORMAT_ABGR4444			= 212,	
-	PVRSRV_PIXEL_FORMAT_ABGR1555			= 213,
-	PVRSRV_PIXEL_FORMAT_BGR565				= 214,			
-
-	
-	PVRSRV_PIXEL_FORMAT_C0_4KYUV420_2P_UV	= 215,
-	PVRSRV_PIXEL_FORMAT_C0_4KYUV420_2P_VU	= 216,
-	PVRSRV_PIXEL_FORMAT_C1_4KYUV420_2P_UV	= 217,
-	PVRSRV_PIXEL_FORMAT_C1_4KYUV420_2P_VU	= 218,
-	PVRSRV_PIXEL_FORMAT_P208				= 219,			
-	PVRSRV_PIXEL_FORMAT_A8P8				= 220,			
-
-	PVRSRV_PIXEL_FORMAT_A4					= 221,
-	PVRSRV_PIXEL_FORMAT_AYUV8888			= 222,
-	PVRSRV_PIXEL_FORMAT_RAW256				= 223,
-	PVRSRV_PIXEL_FORMAT_RAW512				= 224,
-	PVRSRV_PIXEL_FORMAT_RAW1024				= 225,
-
-	PVRSRV_PIXEL_FORMAT_FORCE_I32			= 0x7fffffff
-
-} PVRSRV_PIXEL_FORMAT;
-
-typedef enum _PVRSRV_ALPHA_FORMAT_ {
-	PVRSRV_ALPHA_FORMAT_UNKNOWN		=  0x00000000,
-	PVRSRV_ALPHA_FORMAT_PRE			=  0x00000001,
-	PVRSRV_ALPHA_FORMAT_NONPRE		=  0x00000002,
-	PVRSRV_ALPHA_FORMAT_MASK		=  0x0000000F,
-} PVRSRV_ALPHA_FORMAT;
-
-typedef enum _PVRSRV_COLOURSPACE_FORMAT_ {
-	PVRSRV_COLOURSPACE_FORMAT_UNKNOWN		=  0x00000000,
-	PVRSRV_COLOURSPACE_FORMAT_LINEAR		=  0x00010000,
-	PVRSRV_COLOURSPACE_FORMAT_NONLINEAR		=  0x00020000,
-	PVRSRV_COLOURSPACE_FORMAT_MASK			=  0x000F0000,
-} PVRSRV_COLOURSPACE_FORMAT;
-
-
-typedef enum _PVRSRV_ROTATION_ {
-	PVRSRV_ROTATE_0		=	0,
-	PVRSRV_ROTATE_90	=	1,
-	PVRSRV_ROTATE_180	=	2,
-	PVRSRV_ROTATE_270	=	3,
-	PVRSRV_FLIP_Y
-
-} PVRSRV_ROTATION;
-
-#define PVRSRV_CREATE_SWAPCHAIN_SHARED		(1<<0)
-#define PVRSRV_CREATE_SWAPCHAIN_QUERY		(1<<1)
-#define PVRSRV_CREATE_SWAPCHAIN_OEMOVERLAY	(1<<2)
-
-typedef struct _PVRSRV_SYNC_DATA_
-{
-	
-	IMG_UINT32					ui32WriteOpsPending;
-	volatile IMG_UINT32			ui32WriteOpsComplete;
-
-	
-	IMG_UINT32					ui32ReadOpsPending;
-	volatile IMG_UINT32			ui32ReadOpsComplete;
-
-	
-	IMG_UINT32					ui32LastOpDumpVal;
-	IMG_UINT32					ui32LastReadOpDumpVal;
-
-} PVRSRV_SYNC_DATA;
-
-typedef struct _PVRSRV_CLIENT_SYNC_INFO_
-{
-	
-	PVRSRV_SYNC_DATA		*psSyncData;
-
-	
-
-
-	
-	IMG_DEV_VIRTADDR		sWriteOpsCompleteDevVAddr;
-
-	
-	IMG_DEV_VIRTADDR		sReadOpsCompleteDevVAddr;
-
-	
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hMappingInfo;
-
-	
-	IMG_SID					hKernelSyncInfo;
-#else
-	IMG_HANDLE					hMappingInfo;
-
-	
-	IMG_HANDLE					hKernelSyncInfo;
-#endif
-
-} PVRSRV_CLIENT_SYNC_INFO, *PPVRSRV_CLIENT_SYNC_INFO;
-
-typedef struct PVRSRV_RESOURCE_TAG
-{
-	volatile IMG_UINT32 ui32Lock;
-	IMG_UINT32 			ui32ID;
-}PVRSRV_RESOURCE;
-typedef PVRSRV_RESOURCE PVRSRV_RES_HANDLE;
-
-
-typedef IMG_VOID (*PFN_CMD_COMPLETE) (IMG_HANDLE);
-typedef IMG_VOID (**PPFN_CMD_COMPLETE) (IMG_HANDLE);
-
-typedef IMG_BOOL (*PFN_CMD_PROC) (IMG_HANDLE, IMG_UINT32, IMG_VOID*);
-typedef IMG_BOOL (**PPFN_CMD_PROC) (IMG_HANDLE, IMG_UINT32, IMG_VOID*);
-
-
-typedef struct _IMG_RECT_
-{
-	IMG_INT32	x0;
-	IMG_INT32	y0;
-	IMG_INT32	x1;
-	IMG_INT32	y1;
-}IMG_RECT;
-
-typedef struct _IMG_RECT_16_
-{
-	IMG_INT16	x0;
-	IMG_INT16	y0;
-	IMG_INT16	x1;
-	IMG_INT16	y1;
-}IMG_RECT_16;
-
-
-typedef PVRSRV_ERROR (*PFN_GET_BUFFER_ADDR)(IMG_HANDLE,
-											IMG_HANDLE,
-											IMG_SYS_PHYADDR**,
-											IMG_SIZE_T*,
-											IMG_VOID**,
-											IMG_HANDLE*,
-											IMG_BOOL*,
-											IMG_UINT32*);
-
-
-typedef struct DISPLAY_DIMS_TAG
-{
-	IMG_UINT32	ui32ByteStride;
-	IMG_UINT32	ui32Width;
-	IMG_UINT32	ui32Height;
-} DISPLAY_DIMS;
-
-
-typedef struct DISPLAY_FORMAT_TAG
-{
-	
-	PVRSRV_PIXEL_FORMAT		pixelformat;
-} DISPLAY_FORMAT;
-
-typedef struct DISPLAY_SURF_ATTRIBUTES_TAG
-{
-	
-	PVRSRV_PIXEL_FORMAT		pixelformat;
-	
-	DISPLAY_DIMS			sDims;
-} DISPLAY_SURF_ATTRIBUTES;
-
-
-typedef struct DISPLAY_MODE_INFO_TAG
-{
-	
-	PVRSRV_PIXEL_FORMAT		pixelformat;
-	
-	DISPLAY_DIMS			sDims;
-	
-	IMG_UINT32				ui32RefreshHZ;
-	
-	IMG_UINT32				ui32OEMFlags;
-} DISPLAY_MODE_INFO;
-
-
-
-#define MAX_DISPLAY_NAME_SIZE	(50) 
-
-typedef struct DISPLAY_INFO_TAG
-{
-	
-	IMG_UINT32 ui32MaxSwapChains;
-	
-	IMG_UINT32 ui32MaxSwapChainBuffers;
-	
-	IMG_UINT32 ui32MinSwapInterval;
-	
-	IMG_UINT32 ui32MaxSwapInterval;
-	
-	IMG_UINT32 ui32PhysicalWidthmm;
-	IMG_UINT32 ui32PhysicalHeightmm;
-	
-	IMG_CHAR	szDisplayName[MAX_DISPLAY_NAME_SIZE];
-#if defined(SUPPORT_HW_CURSOR)
-	
-	IMG_UINT16	ui32CursorWidth;
-	IMG_UINT16	ui32CursorHeight;
-#endif
-} DISPLAY_INFO;
-
-typedef struct ACCESS_INFO_TAG
-{
-	IMG_UINT32		ui32Size;
-	IMG_UINT32  	ui32FBPhysBaseAddress;
-	IMG_UINT32		ui32FBMemAvailable;			
-	IMG_UINT32  	ui32SysPhysBaseAddress;
-	IMG_UINT32		ui32SysSize;
-	IMG_UINT32		ui32DevIRQ;
-}ACCESS_INFO;
-
-
-
-#if defined(PDUMP_SUSPEND_IS_PER_THREAD)
-typedef struct {
-	IMG_UINT32 threadId;
-	IMG_INT    suspendCount;
-} PVRSRV_THREAD_SUSPEND_COUNT;
-
-#define PVRSRV_PDUMP_SUSPEND_Q_NAME "PVRSRVPDumpSuspendMsgQ"
-#define PVRSRV_PDUMP_SUSPEND_Q_LENGTH 8
-
-#endif 
-
-
-typedef struct _PVRSRV_REGISTRY_INFO_
-{
-    IMG_UINT32		ui32DevCookie;
-    IMG_PCHAR		pszKey;
-    IMG_PCHAR		pszValue;
-    IMG_PCHAR		pszBuf;
-    IMG_UINT32		ui32BufSize;
-} PVRSRV_REGISTRY_INFO, *PPVRSRV_REGISTRY_INFO;
-
-
-PVRSRV_ERROR IMG_CALLCONV PVRSRVReadRegistryString (PPVRSRV_REGISTRY_INFO psRegInfo);
-PVRSRV_ERROR IMG_CALLCONV PVRSRVWriteRegistryString (PPVRSRV_REGISTRY_INFO psRegInfo);
-
-
-#define PVRSRV_BC_FLAGS_YUVCSC_CONFORMANT_RANGE	(0 << 0)
-#define PVRSRV_BC_FLAGS_YUVCSC_FULL_RANGE		(1 << 0)
-
-#define PVRSRV_BC_FLAGS_YUVCSC_BT601			(0 << 1)
-#define PVRSRV_BC_FLAGS_YUVCSC_BT709			(1 << 1)
-
-#define MAX_BUFFER_DEVICE_NAME_SIZE	(50) 
-
-typedef struct BUFFER_INFO_TAG
-{
-	IMG_UINT32 			ui32BufferCount;
-	IMG_UINT32			ui32BufferDeviceID;
-	PVRSRV_PIXEL_FORMAT	pixelformat;
-	IMG_UINT32			ui32ByteStride;
-	IMG_UINT32			ui32Width;
-	IMG_UINT32			ui32Height;
-	IMG_UINT32			ui32Flags;
-	IMG_CHAR			szDeviceName[MAX_BUFFER_DEVICE_NAME_SIZE];
-} BUFFER_INFO;
-
-typedef enum _OVERLAY_DEINTERLACE_MODE_
-{
-	WEAVE=0x0,
-	BOB_ODD,
-	BOB_EVEN,
-	BOB_EVEN_NONINTERLEAVED
-} OVERLAY_DEINTERLACE_MODE;
-
-#endif 
diff --git a/drivers/staging/cdv/pvr/include4/sgx_options.h b/drivers/staging/cdv/pvr/include4/sgx_options.h
deleted file mode 100644
index d2ddff6..0000000
--- a/drivers/staging/cdv/pvr/include4/sgx_options.h
+++ /dev/null
@@ -1,237 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if defined(DEBUG) || defined (INTERNAL_TEST)
-#define DEBUG_SET_OFFSET	OPTIONS_BIT0
-#define OPTIONS_BIT0		0x1U
-#else
-#define OPTIONS_BIT0		0x0
-#endif 
-
-#if defined(PDUMP) || defined (INTERNAL_TEST)
-#define PDUMP_SET_OFFSET	OPTIONS_BIT1
-#define OPTIONS_BIT1		(0x1U << 1)
-#else
-#define OPTIONS_BIT1		0x0
-#endif 
-
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG) || defined (INTERNAL_TEST)
-#define PVRSRV_USSE_EDM_STATUS_DEBUG_SET_OFFSET		OPTIONS_BIT2
-#define OPTIONS_BIT2		(0x1U << 2)
-#else
-#define OPTIONS_BIT2		0x0
-#endif 
-
-#if defined(SUPPORT_HW_RECOVERY) || defined (INTERNAL_TEST)
-#define SUPPORT_HW_RECOVERY_SET_OFFSET	OPTIONS_BIT3
-#define OPTIONS_BIT3		(0x1U << 3)
-#else
-#define OPTIONS_BIT3		0x0
-#endif 
-
-
-
-#if defined (SUPPORT_SID_INTERFACE)
-#define PVR_SECURE_HANDLES_SET_OFFSET	OPTIONS_BIT4
-#define OPTIONS_BIT4		(0x1U << 4)
-#else
-#if defined(PVR_SECURE_HANDLES) || defined (INTERNAL_TEST)
-#define PVR_SECURE_HANDLES_SET_OFFSET	OPTIONS_BIT4
-#define OPTIONS_BIT4		(0x1U << 4)
-#else
-#define OPTIONS_BIT4		0x0
-#endif 
-#endif
-
-#if defined(SGX_BYPASS_SYSTEM_CACHE) || defined (INTERNAL_TEST)
-#define SGX_BYPASS_SYSTEM_CACHE_SET_OFFSET	OPTIONS_BIT5
-#define OPTIONS_BIT5		(0x1U << 5)
-#else
-#define OPTIONS_BIT5		0x0
-#endif 
-
-#if defined(SGX_DMS_AGE_ENABLE) || defined (INTERNAL_TEST)
-#define SGX_DMS_AGE_ENABLE_SET_OFFSET	OPTIONS_BIT6
-#define OPTIONS_BIT6		(0x1U << 6)
-#else
-#define OPTIONS_BIT6		0x0
-#endif 
-
-#if defined(SGX_FAST_DPM_INIT) || defined (INTERNAL_TEST)
-#define SGX_FAST_DPM_INIT_SET_OFFSET	OPTIONS_BIT8
-#define OPTIONS_BIT8		(0x1U << 8)
-#else
-#define OPTIONS_BIT8		0x0
-#endif 
-
-#if defined(SGX_FEATURE_WRITEBACK_DCU) || defined (INTERNAL_TEST)
-#define SGX_FEATURE_DCU_SET_OFFSET	OPTIONS_BIT9
-#define OPTIONS_BIT9		(0x1U << 9)
-#else
-#define OPTIONS_BIT9		0x0
-#endif 
-
-#if defined(SGX_FEATURE_MP) || defined (INTERNAL_TEST)
-#define SGX_FEATURE_MP_SET_OFFSET	OPTIONS_BIT10
-#define OPTIONS_BIT10		(0x1U << 10)
-#else
-#define OPTIONS_BIT10		0x0
-#endif 
-
-#if defined(SGX_FEATURE_MULTITHREADED_UKERNEL) || defined (INTERNAL_TEST)
-#define SGX_FEATURE_MULTITHREADED_UKERNEL_SET_OFFSET	OPTIONS_BIT11
-#define OPTIONS_BIT11		(0x1U << 11)
-#else
-#define OPTIONS_BIT11		0x0
-#endif 
-
-
-
-#if defined(SGX_FEATURE_OVERLAPPED_SPM) || defined (INTERNAL_TEST)
-#define SGX_FEATURE_OVERLAPPED_SPM_SET_OFFSET	OPTIONS_BIT12
-#define OPTIONS_BIT12		(0x1U << 12)
-#else
-#define OPTIONS_BIT12		0x0
-#endif 
-
-
-#if defined(SGX_FEATURE_SYSTEM_CACHE) || defined (INTERNAL_TEST)
-#define SGX_FEATURE_SYSTEM_CACHE_SET_OFFSET	OPTIONS_BIT13
-#define OPTIONS_BIT13		(0x1U << 13)
-#else
-#define OPTIONS_BIT13		0x0
-#endif 
-
-#if defined(SGX_SUPPORT_HWPROFILING) || defined (INTERNAL_TEST)
-#define SGX_SUPPORT_HWPROFILING_SET_OFFSET	OPTIONS_BIT14
-#define OPTIONS_BIT14		(0x1U << 14)
-#else
-#define OPTIONS_BIT14		0x0
-#endif 
-
-
-
-#if defined(SUPPORT_ACTIVE_POWER_MANAGEMENT) || defined (INTERNAL_TEST)
-#define SUPPORT_ACTIVE_POWER_MANAGEMENT_SET_OFFSET	OPTIONS_BIT15
-#define OPTIONS_BIT15		(0x1U << 15)
-#else
-#define OPTIONS_BIT15		0x0
-#endif 
-
-#if defined(SUPPORT_DISPLAYCONTROLLER_TILING) || defined (INTERNAL_TEST)
-#define SUPPORT_DISPLAYCONTROLLER_TILING_SET_OFFSET	OPTIONS_BIT16
-#define OPTIONS_BIT16		(0x1U << 16)
-#else
-#define OPTIONS_BIT16		0x0
-#endif 
-
-#if defined(SUPPORT_PERCONTEXT_PB) || defined (INTERNAL_TEST)
-#define SUPPORT_PERCONTEXT_PB_SET_OFFSET	OPTIONS_BIT17
-#define OPTIONS_BIT17		(0x1U << 17)
-#else
-#define OPTIONS_BIT17		0x0
-#endif 
-
-#if defined(SUPPORT_SGX_HWPERF) || defined (INTERNAL_TEST)
-#define SUPPORT_SGX_HWPERF_SET_OFFSET	OPTIONS_BIT18
-#define OPTIONS_BIT18		(0x1U << 18)
-#else
-#define OPTIONS_BIT18		0x0
-#endif 
-
-
-
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE) || defined (INTERNAL_TEST)
-#define SUPPORT_SGX_MMU_DUMMY_PAGE_SET_OFFSET	OPTIONS_BIT19
-#define OPTIONS_BIT19		(0x1U << 19)
-#else
-#define OPTIONS_BIT19		0x0
-#endif 
-
-#if defined(SUPPORT_SGX_PRIORITY_SCHEDULING) || defined (INTERNAL_TEST)
-#define SUPPORT_SGX_PRIORITY_SCHEDULING_SET_OFFSET	OPTIONS_BIT20
-#define OPTIONS_BIT20		(0x1U << 20)
-#else
-#define OPTIONS_BIT20		0x0
-#endif 
-
-#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) || defined (INTERNAL_TEST)
-#define SUPPORT_SGX_LOW_LATENCY_SCHEDULING_SET_OFFSET	OPTIONS_BIT21
-#define OPTIONS_BIT21		(0x1U << 21)
-#else
-#define OPTIONS_BIT21		0x0
-#endif 
-
-#if defined(USE_SUPPORT_NO_TA3D_OVERLAP) || defined (INTERNAL_TEST)
-#define USE_SUPPORT_NO_TA3D_OVERLAP_SET_OFFSET	OPTIONS_BIT22
-#define OPTIONS_BIT22		(0x1U << 22)
-#else
-#define OPTIONS_BIT22		0x0
-#endif 
-
-#if defined(SGX_FEATURE_MP) || defined (INTERNAL_TEST)
-#if defined(SGX_FEATURE_MP_CORE_COUNT)
-#define OPTIONS_HIGHBYTE ((SGX_FEATURE_MP_CORE_COUNT-1) << SGX_FEATURE_MP_CORE_COUNT_SET_OFFSET)
-#define SGX_FEATURE_MP_CORE_COUNT_SET_OFFSET	28UL
-#define SGX_FEATURE_MP_CORE_COUNT_SET_MASK		0xFF
-#else
-#define OPTIONS_HIGHBYTE (((SGX_FEATURE_MP_CORE_COUNT_TA-1) << SGX_FEATURE_MP_CORE_COUNT_SET_OFFSET) |\
-		((SGX_FEATURE_MP_CORE_COUNT_3D-1) << SGX_FEATURE_MP_CORE_COUNT_SET_OFFSET_3D))
-#define SGX_FEATURE_MP_CORE_COUNT_SET_OFFSET	24UL
-#define SGX_FEATURE_MP_CORE_COUNT_SET_OFFSET_3D	28UL
-#define SGX_FEATURE_MP_CORE_COUNT_SET_MASK		0xFF
-#endif
-#else 
-#define OPTIONS_HIGHBYTE	0x0
-#endif 
-
-
-
-#define SGX_BUILD_OPTIONS	\
-	OPTIONS_BIT0 |\
-	OPTIONS_BIT1 |\
-	OPTIONS_BIT2 |\
-	OPTIONS_BIT3 |\
-	OPTIONS_BIT4 |\
-	OPTIONS_BIT5 |\
-	OPTIONS_BIT6 |\
-	OPTIONS_BIT8 |\
-	OPTIONS_BIT9 |\
-	OPTIONS_BIT10 |\
-	OPTIONS_BIT11 |\
-	OPTIONS_BIT12 |\
-	OPTIONS_BIT13 |\
-	OPTIONS_BIT14 |\
-	OPTIONS_BIT15 |\
-	OPTIONS_BIT16 |\
-	OPTIONS_BIT17 |\
-	OPTIONS_BIT18 |\
-	OPTIONS_BIT19 |\
-	OPTIONS_BIT20 |\
-	OPTIONS_BIT21 |\
-	OPTIONS_BIT22 |\
-	OPTIONS_HIGHBYTE
-
diff --git a/drivers/staging/cdv/pvr/include4/sgxapi_km.h b/drivers/staging/cdv/pvr/include4/sgxapi_km.h
deleted file mode 100644
index dcbafbf..0000000
--- a/drivers/staging/cdv/pvr/include4/sgxapi_km.h
+++ /dev/null
@@ -1,423 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __SGXAPI_KM_H__
-#define __SGXAPI_KM_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#include "sgxdefs.h"
-
-#if (defined(__linux__) || defined(__QNXNTO__)) && !defined(USE_CODE)
-	#if defined(__KERNEL__)
-		#include <asm/unistd.h>
-	#else
-		#include <unistd.h>
-	#endif
-#endif
-
-#define SGX_UNDEFINED_HEAP_ID					(~0LU)
-#define SGX_GENERAL_HEAP_ID						0
-#define SGX_TADATA_HEAP_ID						1
-#define SGX_KERNEL_CODE_HEAP_ID					2
-#define SGX_KERNEL_DATA_HEAP_ID					3
-#define SGX_PIXELSHADER_HEAP_ID					4
-#define SGX_VERTEXSHADER_HEAP_ID				5
-#define SGX_PDSPIXEL_CODEDATA_HEAP_ID			6
-#define SGX_PDSVERTEX_CODEDATA_HEAP_ID			7
-#define SGX_SYNCINFO_HEAP_ID					8
-#define SGX_SHARED_3DPARAMETERS_HEAP_ID				9
-#define SGX_PERCONTEXT_3DPARAMETERS_HEAP_ID			10
-#if defined(SUPPORT_SGX_GENERAL_MAPPING_HEAP)
-#define SGX_GENERAL_MAPPING_HEAP_ID				11
-#endif
-#if defined(SGX_FEATURE_2D_HARDWARE)
-#define SGX_2D_HEAP_ID							12
-#else
-#if defined(FIX_HW_BRN_26915)
-#define SGX_CGBUFFER_HEAP_ID					13
-#endif
-#endif
-#define SGX_MAX_HEAP_ID							14
-
-#if (defined(SUPPORT_PERCONTEXT_PB) || defined(SUPPORT_HYBRID_PB))
-#define SGX_3DPARAMETERS_HEAP_ID			SGX_PERCONTEXT_3DPARAMETERS_HEAP_ID	
-#else
-#define SGX_3DPARAMETERS_HEAP_ID			SGX_SHARED_3DPARAMETERS_HEAP_ID
-#endif
-#if defined(SGX543) || defined(SGX544) || defined(SGX554)
-#define SGX_USE_CODE_SEGMENT_RANGE_BITS		23
-#else
-#define SGX_USE_CODE_SEGMENT_RANGE_BITS		19
-#endif
-
-#define SGX_MAX_TA_STATUS_VALS	32
-#define SGX_MAX_3D_STATUS_VALS	4
-
-#if defined(SUPPORT_SGX_GENERALISED_SYNCOBJECTS)
-#define SGX_MAX_TA_DST_SYNCS			1
-#define SGX_MAX_TA_SRC_SYNCS			1
-#define SGX_MAX_3D_SRC_SYNCS			4
-#else
-#define SGX_MAX_SRC_SYNCS				8
-#define SGX_MAX_DST_SYNCS				1
-#endif
-
-
-#if defined(SGX_FEATURE_EXTENDED_PERF_COUNTERS)
-#define	PVRSRV_SGX_HWPERF_NUM_COUNTERS	8
-#define	PVRSRV_SGX_HWPERF_NUM_MISC_COUNTERS 11
-#else
-#define	PVRSRV_SGX_HWPERF_NUM_COUNTERS	9
-#define	PVRSRV_SGX_HWPERF_NUM_MISC_COUNTERS 8
-#endif 
-
-#define PVRSRV_SGX_HWPERF_INVALID					0x1
-
-#define PVRSRV_SGX_HWPERF_TRANSFER					0x2
-#define PVRSRV_SGX_HWPERF_TA						0x3
-#define PVRSRV_SGX_HWPERF_3D						0x4
-#define PVRSRV_SGX_HWPERF_2D						0x5
-#define PVRSRV_SGX_HWPERF_POWER						0x6
-#define PVRSRV_SGX_HWPERF_PERIODIC					0x7
-#define PVRSRV_SGX_HWPERF_3DSPM						0x8
-
-#define PVRSRV_SGX_HWPERF_MK_EVENT					0x101
-#define PVRSRV_SGX_HWPERF_MK_TA						0x102
-#define PVRSRV_SGX_HWPERF_MK_3D						0x103
-#define PVRSRV_SGX_HWPERF_MK_2D						0x104
-#define PVRSRV_SGX_HWPERF_MK_TRANSFER_DUMMY				0x105
-#define PVRSRV_SGX_HWPERF_MK_TA_DUMMY					0x106
-#define PVRSRV_SGX_HWPERF_MK_3D_DUMMY					0x107
-#define PVRSRV_SGX_HWPERF_MK_2D_DUMMY					0x108
-#define PVRSRV_SGX_HWPERF_MK_TA_LOCKUP					0x109
-#define PVRSRV_SGX_HWPERF_MK_3D_LOCKUP					0x10A
-#define PVRSRV_SGX_HWPERF_MK_2D_LOCKUP					0x10B
-
-#define PVRSRV_SGX_HWPERF_TYPE_STARTEND_BIT			28
-#define PVRSRV_SGX_HWPERF_TYPE_OP_MASK				((1UL << PVRSRV_SGX_HWPERF_TYPE_STARTEND_BIT) - 1)
-#define PVRSRV_SGX_HWPERF_TYPE_OP_START				(0UL << PVRSRV_SGX_HWPERF_TYPE_STARTEND_BIT)
-#define PVRSRV_SGX_HWPERF_TYPE_OP_END				(1Ul << PVRSRV_SGX_HWPERF_TYPE_STARTEND_BIT)
-
-#define PVRSRV_SGX_HWPERF_TYPE_TRANSFER_START		(PVRSRV_SGX_HWPERF_TRANSFER | PVRSRV_SGX_HWPERF_TYPE_OP_START)
-#define PVRSRV_SGX_HWPERF_TYPE_TRANSFER_END			(PVRSRV_SGX_HWPERF_TRANSFER | PVRSRV_SGX_HWPERF_TYPE_OP_END)
-#define PVRSRV_SGX_HWPERF_TYPE_TA_START				(PVRSRV_SGX_HWPERF_TA | PVRSRV_SGX_HWPERF_TYPE_OP_START)
-#define PVRSRV_SGX_HWPERF_TYPE_TA_END				(PVRSRV_SGX_HWPERF_TA | PVRSRV_SGX_HWPERF_TYPE_OP_END)
-#define PVRSRV_SGX_HWPERF_TYPE_3D_START				(PVRSRV_SGX_HWPERF_3D | PVRSRV_SGX_HWPERF_TYPE_OP_START)
-#define PVRSRV_SGX_HWPERF_TYPE_3D_END				(PVRSRV_SGX_HWPERF_3D | PVRSRV_SGX_HWPERF_TYPE_OP_END)
-#define PVRSRV_SGX_HWPERF_TYPE_2D_START				(PVRSRV_SGX_HWPERF_2D | PVRSRV_SGX_HWPERF_TYPE_OP_START)
-#define PVRSRV_SGX_HWPERF_TYPE_2D_END				(PVRSRV_SGX_HWPERF_2D | PVRSRV_SGX_HWPERF_TYPE_OP_END)
-#define PVRSRV_SGX_HWPERF_TYPE_POWER_START			(PVRSRV_SGX_HWPERF_POWER | PVRSRV_SGX_HWPERF_TYPE_OP_START)
-#define PVRSRV_SGX_HWPERF_TYPE_POWER_END			(PVRSRV_SGX_HWPERF_POWER | PVRSRV_SGX_HWPERF_TYPE_OP_END)
-#define PVRSRV_SGX_HWPERF_TYPE_PERIODIC				(PVRSRV_SGX_HWPERF_PERIODIC)
-#define PVRSRV_SGX_HWPERF_TYPE_3DSPM_START			(PVRSRV_SGX_HWPERF_3DSPM | PVRSRV_SGX_HWPERF_TYPE_OP_START)
-#define PVRSRV_SGX_HWPERF_TYPE_3DSPM_END			(PVRSRV_SGX_HWPERF_3DSPM | PVRSRV_SGX_HWPERF_TYPE_OP_END)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_TRANSFER_DUMMY_START		(PVRSRV_SGX_HWPERF_MK_TRANSFER_DUMMY | PVRSRV_SGX_HWPERF_TYPE_OP_START)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_TRANSFER_DUMMY_END		(PVRSRV_SGX_HWPERF_MK_TRANSFER_DUMMY | PVRSRV_SGX_HWPERF_TYPE_OP_END)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_TA_DUMMY_START		(PVRSRV_SGX_HWPERF_MK_TA_DUMMY | PVRSRV_SGX_HWPERF_TYPE_OP_START)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_TA_DUMMY_END			(PVRSRV_SGX_HWPERF_MK_TA_DUMMY | PVRSRV_SGX_HWPERF_TYPE_OP_END)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_3D_DUMMY_START		(PVRSRV_SGX_HWPERF_MK_3D_DUMMY | PVRSRV_SGX_HWPERF_TYPE_OP_START)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_3D_DUMMY_END			(PVRSRV_SGX_HWPERF_MK_3D_DUMMY | PVRSRV_SGX_HWPERF_TYPE_OP_END)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_2D_DUMMY_START		(PVRSRV_SGX_HWPERF_MK_2D_DUMMY | PVRSRV_SGX_HWPERF_TYPE_OP_START)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_2D_DUMMY_END			(PVRSRV_SGX_HWPERF_MK_2D_DUMMY | PVRSRV_SGX_HWPERF_TYPE_OP_END)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_TA_LOCKUP			(PVRSRV_SGX_HWPERF_MK_TA_LOCKUP)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_3D_LOCKUP			(PVRSRV_SGX_HWPERF_MK_3D_LOCKUP)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_2D_LOCKUP			(PVRSRV_SGX_HWPERF_MK_2D_LOCKUP)
-
-#define PVRSRV_SGX_HWPERF_TYPE_MK_EVENT_START		(PVRSRV_SGX_HWPERF_MK_EVENT | PVRSRV_SGX_HWPERF_TYPE_OP_START)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_EVENT_END			(PVRSRV_SGX_HWPERF_MK_EVENT | PVRSRV_SGX_HWPERF_TYPE_OP_END)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_TA_START			(PVRSRV_SGX_HWPERF_MK_TA | PVRSRV_SGX_HWPERF_TYPE_OP_START)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_TA_END			(PVRSRV_SGX_HWPERF_MK_TA | PVRSRV_SGX_HWPERF_TYPE_OP_END)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_3D_START			(PVRSRV_SGX_HWPERF_MK_3D | PVRSRV_SGX_HWPERF_TYPE_OP_START)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_3D_END			(PVRSRV_SGX_HWPERF_MK_3D | PVRSRV_SGX_HWPERF_TYPE_OP_END)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_2D_START			(PVRSRV_SGX_HWPERF_MK_2D | PVRSRV_SGX_HWPERF_TYPE_OP_START)
-#define PVRSRV_SGX_HWPERF_TYPE_MK_2D_END			(PVRSRV_SGX_HWPERF_MK_2D | PVRSRV_SGX_HWPERF_TYPE_OP_END)
-
-#define PVRSRV_SGX_HWPERF_STATUS_OFF				(0x0)
-#define PVRSRV_SGX_HWPERF_STATUS_RESET_COUNTERS		(1UL << 0)
-#define PVRSRV_SGX_HWPERF_STATUS_GRAPHICS_ON		(1UL << 1)
-#define PVRSRV_SGX_HWPERF_STATUS_PERIODIC_ON		(1UL << 2)
-#define PVRSRV_SGX_HWPERF_STATUS_MK_EXECUTION_ON	(1UL << 3)
-
-
-typedef struct _PVRSRV_SGX_HWPERF_CB_ENTRY_
-{
-	IMG_UINT32	ui32FrameNo;
-	IMG_UINT32	ui32PID;
-	IMG_UINT32	ui32RTData;
-	IMG_UINT32	ui32Type;
-	IMG_UINT32	ui32Ordinal;
-	IMG_UINT32	ui32Info;
-	IMG_UINT32	ui32Clocksx16;
-		
-	IMG_UINT32	ui32Counters[SGX_FEATURE_MP_CORE_COUNT_3D][PVRSRV_SGX_HWPERF_NUM_COUNTERS];
-	IMG_UINT32	ui32MiscCounters[SGX_FEATURE_MP_CORE_COUNT_3D][PVRSRV_SGX_HWPERF_NUM_MISC_COUNTERS];
-} PVRSRV_SGX_HWPERF_CB_ENTRY;
-
-
-typedef struct _CTL_STATUS_
-{
-	IMG_DEV_VIRTADDR	sStatusDevAddr;
-	IMG_UINT32			ui32StatusValue;
-} CTL_STATUS;
-
-
-typedef enum _SGX_MISC_INFO_REQUEST_
-{
-	SGX_MISC_INFO_REQUEST_CLOCKSPEED = 0,
-	SGX_MISC_INFO_REQUEST_SGXREV,
-	SGX_MISC_INFO_REQUEST_DRIVER_SGXREV,
-#if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG)
-	SGX_MISC_INFO_REQUEST_MEMREAD,
-	SGX_MISC_INFO_REQUEST_MEMCOPY,
-#endif 
-	SGX_MISC_INFO_REQUEST_SET_HWPERF_STATUS,
-#if defined(SGX_FEATURE_DATA_BREAKPOINTS)
-	SGX_MISC_INFO_REQUEST_SET_BREAKPOINT,
-	SGX_MISC_INFO_REQUEST_POLL_BREAKPOINT,
-	SGX_MISC_INFO_REQUEST_RESUME_BREAKPOINT,
-#endif 
-	SGX_MISC_INFO_DUMP_DEBUG_INFO,
-	SGX_MISC_INFO_PANIC,
-	SGX_MISC_INFO_REQUEST_SPM,
-	SGX_MISC_INFO_REQUEST_ACTIVEPOWER,
-	SGX_MISC_INFO_REQUEST_LOCKUPS,
-	SGX_MISC_INFO_REQUEST_FORCE_I16 				=  0x7fff
-} SGX_MISC_INFO_REQUEST;
-
-
-typedef struct _PVRSRV_SGX_MISCINFO_FEATURES
-{
-	IMG_UINT32			ui32CoreRev;	
-	IMG_UINT32			ui32CoreID;		
-	IMG_UINT32			ui32DDKVersion;	
-	IMG_UINT32			ui32DDKBuild;	
-	IMG_UINT32			ui32CoreIdSW;	
-	IMG_UINT32			ui32CoreRevSW;	
-	IMG_UINT32			ui32BuildOptions;	
-#if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG)
-	IMG_UINT32			ui32DeviceMemValue;		
-#endif
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
-	IMG_DEV_VIRTADDR	sDevVAEDMStatusBuffer;	
-	IMG_PVOID			pvEDMStatusBuffer;		
-#endif
-} PVRSRV_SGX_MISCINFO_FEATURES;
-
-
-typedef struct _PVRSRV_SGX_MISCINFO_LOCKUPS
-{
-	IMG_UINT32			ui32HostDetectedLockups; 
-	IMG_UINT32			ui32uKernelDetectedLockups; 
-} PVRSRV_SGX_MISCINFO_LOCKUPS;
-
-
-typedef struct _PVRSRV_SGX_MISCINFO_ACTIVEPOWER
-{
-	IMG_UINT32			ui32NumActivePowerEvents; 
-} PVRSRV_SGX_MISCINFO_ACTIVEPOWER;
-
-
-typedef struct _PVRSRV_SGX_MISCINFO_SPM
-{
-	IMG_HANDLE			hRTDataSet;				
-	IMG_UINT32			ui32NumOutOfMemSignals; 
-	IMG_UINT32			ui32NumSPMRenders;	
-} PVRSRV_SGX_MISCINFO_SPM;
-
-
-#if defined(SGX_FEATURE_DATA_BREAKPOINTS)
-typedef struct _SGX_BREAKPOINT_INFO
-{
-	
-	IMG_BOOL					bBPEnable;
-	
-	IMG_UINT32					ui32BPIndex;
-	
-	IMG_UINT32                  ui32DataMasterMask;
-	
-	IMG_DEV_VIRTADDR			sBPDevVAddr, sBPDevVAddrEnd;
-	
-	IMG_BOOL                    bTrapped;
-	
-	IMG_BOOL                    bRead;
-	
-	IMG_BOOL                    bWrite;
-	
-	IMG_BOOL                    bTrappedBP;
-	
-	IMG_UINT32                  ui32CoreNum;
-	IMG_DEV_VIRTADDR            sTrappedBPDevVAddr;
-	IMG_UINT32                  ui32TrappedBPBurstLength;
-	IMG_BOOL                    bTrappedBPRead;
-	IMG_UINT32                  ui32TrappedBPDataMaster;
-	IMG_UINT32                  ui32TrappedBPTag;
-} SGX_BREAKPOINT_INFO;
-#endif 
-
-
-typedef struct _PVRSRV_SGX_MISCINFO_SET_HWPERF_STATUS
-{
-	
-	IMG_UINT32	ui32NewHWPerfStatus;
-	
-	#if defined(SGX_FEATURE_EXTENDED_PERF_COUNTERS)
-	
-	IMG_UINT32	aui32PerfGroup[PVRSRV_SGX_HWPERF_NUM_COUNTERS];
-	
-	IMG_UINT32	aui32PerfBit[PVRSRV_SGX_HWPERF_NUM_COUNTERS];
-	#else
-	
-	IMG_UINT32	ui32PerfGroup;
-	#endif 
-} PVRSRV_SGX_MISCINFO_SET_HWPERF_STATUS;
-
-
-typedef struct _SGX_MISC_INFO_
-{
-	SGX_MISC_INFO_REQUEST	eRequest;	
-	IMG_UINT32				ui32Padding;
-#if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG)
-	IMG_DEV_VIRTADDR			sDevVAddrSrc;		
-	IMG_DEV_VIRTADDR			sDevVAddrDest;		
-	IMG_HANDLE					hDevMemContext;		
-#endif
-	union
-	{
-		IMG_UINT32	reserved;	
-		PVRSRV_SGX_MISCINFO_FEATURES						sSGXFeatures;
-		IMG_UINT32											ui32SGXClockSpeed;
-		PVRSRV_SGX_MISCINFO_ACTIVEPOWER						sActivePower;
-		PVRSRV_SGX_MISCINFO_LOCKUPS							sLockups;
-		PVRSRV_SGX_MISCINFO_SPM								sSPM;
-#if defined(SGX_FEATURE_DATA_BREAKPOINTS)
-		SGX_BREAKPOINT_INFO									sSGXBreakpointInfo;
-#endif
-		PVRSRV_SGX_MISCINFO_SET_HWPERF_STATUS				sSetHWPerfStatus;
-	} uData;
-} SGX_MISC_INFO;
-
-#if defined(SGX_FEATURE_2D_HARDWARE)
-#define PVRSRV_MAX_BLT_SRC_SYNCS		3
-#endif
-
-
-#define SGX_KICKTA_DUMPBITMAP_MAX_NAME_LENGTH		256
-
-typedef struct _SGX_KICKTA_DUMPBITMAP_
-{
-	IMG_DEV_VIRTADDR	sDevBaseAddr;
-	IMG_UINT32			ui32Flags;
-	IMG_UINT32			ui32Width;
-	IMG_UINT32			ui32Height;
-	IMG_UINT32			ui32Stride;
-	IMG_UINT32			ui32PDUMPFormat;
-	IMG_UINT32			ui32BytesPP;
-	IMG_CHAR			pszName[SGX_KICKTA_DUMPBITMAP_MAX_NAME_LENGTH];
-} SGX_KICKTA_DUMPBITMAP, *PSGX_KICKTA_DUMPBITMAP;
-
-#define PVRSRV_SGX_PDUMP_CONTEXT_MAX_BITMAP_ARRAY_SIZE	(16)
-
-typedef struct _PVRSRV_SGX_PDUMP_CONTEXT_
-{
-	
-	IMG_UINT32						ui32CacheControl;
-
-} PVRSRV_SGX_PDUMP_CONTEXT;
-
-
-#if !defined (SUPPORT_SID_INTERFACE)
-typedef struct _SGX_KICKTA_DUMP_ROFF_
-{
-	IMG_HANDLE			hKernelMemInfo;						
-	IMG_UINT32			uiAllocIndex;						
-	IMG_UINT32			ui32Offset;							
-	IMG_UINT32			ui32Value;							
-	IMG_PCHAR			pszName;							
-} SGX_KICKTA_DUMP_ROFF, *PSGX_KICKTA_DUMP_ROFF;
-#endif
-
-#if defined (SUPPORT_SID_INTERFACE)
-typedef struct _SGX_KICKTA_DUMP_BUFFER_KM_
-#else
-typedef struct _SGX_KICKTA_DUMP_BUFFER_
-#endif
-{
-	IMG_UINT32			ui32SpaceUsed;
-	IMG_UINT32			ui32Start;							
-	IMG_UINT32			ui32End;							
-	IMG_UINT32			ui32BufferSize;						
-	IMG_UINT32			ui32BackEndLength;					
-	IMG_UINT32			uiAllocIndex;
-	IMG_HANDLE			hKernelMemInfo;						
-	IMG_PVOID			pvLinAddr;
-#if defined(SUPPORT_SGX_NEW_STATUS_VALS)
-	IMG_HANDLE			hCtrlKernelMemInfo;					
-	IMG_DEV_VIRTADDR	sCtrlDevVAddr;						
-#endif
-	IMG_PCHAR			pszName;							
-#if defined (SUPPORT_SID_INTERFACE)
-} SGX_KICKTA_DUMP_BUFFER_KM, *PSGX_KICKTA_DUMP_BUFFER_KM;
-#else
-} SGX_KICKTA_DUMP_BUFFER, *PSGX_KICKTA_DUMP_BUFFER;
-#endif
-
-#if !defined (SUPPORT_SID_INTERFACE)
-#ifdef PDUMP
-typedef struct _SGX_KICKTA_PDUMP_
-{
-	
-	PSGX_KICKTA_DUMPBITMAP		psPDumpBitmapArray;
-	IMG_UINT32						ui32PDumpBitmapSize;
-
-	
-	PSGX_KICKTA_DUMP_BUFFER	psBufferArray;
-	IMG_UINT32						ui32BufferArraySize;
-
-	
-	PSGX_KICKTA_DUMP_ROFF		psROffArray;
-	IMG_UINT32						ui32ROffArraySize;
-} SGX_KICKTA_PDUMP, *PSGX_KICKTA_PDUMP;
-#endif	
-#endif 
-
-#if defined(TRANSFER_QUEUE)
-#if defined(SGX_FEATURE_2D_HARDWARE)
-#define SGX_MAX_2D_BLIT_CMD_SIZE 		26
-#define SGX_MAX_2D_SRC_SYNC_OPS			3
-#endif
-#define SGX_MAX_TRANSFER_STATUS_VALS	2
-#define SGX_MAX_TRANSFER_SYNC_OPS	5
-#endif
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/include4/sgxscript.h b/drivers/staging/cdv/pvr/include4/sgxscript.h
deleted file mode 100644
index df79e2f..0000000
--- a/drivers/staging/cdv/pvr/include4/sgxscript.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __SGXSCRIPT_H__
-#define __SGXSCRIPT_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#define	SGX_MAX_INIT_COMMANDS	64
-#define	SGX_MAX_DEINIT_COMMANDS	16
-
-typedef	enum _SGX_INIT_OPERATION
-{
-	SGX_INIT_OP_ILLEGAL = 0,
-	SGX_INIT_OP_WRITE_HW_REG,
-#if defined(PDUMP)
-	SGX_INIT_OP_PDUMP_HW_REG,
-#endif
-	SGX_INIT_OP_HALT
-} SGX_INIT_OPERATION;
-
-typedef union _SGX_INIT_COMMAND
-{
-	SGX_INIT_OPERATION eOp;
-	struct {
-		SGX_INIT_OPERATION eOp;
-		IMG_UINT32 ui32Offset;
-		IMG_UINT32 ui32Value;
-	} sWriteHWReg;
-#if defined(PDUMP)
-	struct {
-		SGX_INIT_OPERATION eOp;
-		IMG_UINT32 ui32Offset;
-		IMG_UINT32 ui32Value;
-	} sPDumpHWReg;
-#endif
-#if defined(FIX_HW_BRN_22997) && defined(FIX_HW_BRN_23030) && defined(SGX_FEATURE_HOST_PORT)			
-	struct {
-		SGX_INIT_OPERATION eOp;
-	} sWorkaroundBRN22997;
-#endif	
-} SGX_INIT_COMMAND;
-
-typedef struct _SGX_INIT_SCRIPTS_
-{
-	SGX_INIT_COMMAND asInitCommandsPart1[SGX_MAX_INIT_COMMANDS];
-	SGX_INIT_COMMAND asInitCommandsPart2[SGX_MAX_INIT_COMMANDS];
-	SGX_INIT_COMMAND asDeinitCommands[SGX_MAX_DEINIT_COMMANDS];
-} SGX_INIT_SCRIPTS;
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/.gitignore b/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/.gitignore
deleted file mode 100644
index f558f8b..0000000
--- a/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin_pc_i686*
-tmp_pc_i686*
-host_pc_i686*
-binary_pc_i686*
-*.o
-*.o.cmd
diff --git a/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/makefile.linux.common b/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/makefile.linux.common
deleted file mode 100644
index 3cda2a7..0000000
--- a/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/makefile.linux.common
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms and conditions of the GNU General Public License,
-# version 2, as published by the Free Software Foundation.
-#
-# This program is distributed in the hope it will be useful but, except
-# as otherwise stated in writing, 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.,
-# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# The full GNU General Public License is included in this distribution in
-# the file called "COPYING".
-#
-# Contact Information:
-# Imagination Technologies Ltd. <gpl-support@imgtec.com>
-# Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
-#
-#
-#
-
-DISPLAY_CONTROLLER_SOURCES_ROOT = $(KBUILDROOT)/$(DISPLAY_CONTROLLER_DIR)
-
-INCLUDES += 	-I$(EURASIAROOT)/include4 \
-		-I$(EURASIAROOT)/services4/include \
-		-I$(EURASIAROOT)/services4/system/$(PVR_SYSTEM) \
-		-I$(EURASIAROOT)/services4/system/include \
-		-I$(EURASIAROOT)/services4/srvkm/env/linux/mrst
-
-SOURCES	+=	$(DISPLAY_CONTROLLER_SOURCES_ROOT)/mrstlfb_displayclass.c \
-			$(DISPLAY_CONTROLLER_SOURCES_ROOT)/mrstlfb_linux.c
-MODULE_CFLAGS += -DPVR_MRST_FB_SET_PAR_ON_INIT
diff --git a/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/mrstlfb.h b/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/mrstlfb.h
deleted file mode 100644
index 8780ea0..0000000
--- a/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/mrstlfb.h
+++ /dev/null
@@ -1,303 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful but, except
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
- *
- ******************************************************************************/
-
-#ifndef __MRSTLFB_H__
-#define __MRSTLFB_H__
-
-#include <drm/drmP.h>
-#include "psb_intel_reg.h"
-
-#define MRST_USING_INTERRUPTS
-
-#define PSB_HWSTAM                0x2098
-#define PSB_INSTPM                0x20C0
-#define PSB_INT_IDENTITY_R        0x20A4
-#define _PSB_VSYNC_PIPEB_FLAG     (1<<5)
-#define _PSB_VSYNC_PIPEA_FLAG     (1<<7)
-#define _PSB_IRQ_SGX_FLAG         (1<<18)
-#define _PSB_IRQ_MSVDX_FLAG       (1<<19)
-#define PSB_INT_MASK_R            0x20A8
-#define PSB_INT_ENABLE_R          0x20A0
-
-#define MAX_SWAPCHAINS			  1
-#define MAX_FLIPBUFFERS			  9
-
-/* IPC message and command defines used to enable/disable mipi panel voltages */
-#define	IPC_MSG_PANEL_ON_OFF	0xE9
-#define IPC_CMD_PANEL_ON	1
-#define IPC_CMD_PANEL_OFF	0
-
-typedef void *   MRST_HANDLE;
-
-typedef enum tag_mrst_bool
-{
-	MRST_FALSE = 0,
-	MRST_TRUE  = 1,
-} MRST_BOOL, *MRST_PBOOL;
-
-typedef int(* MRSTLFB_VSYNC_ISR_PFN)(struct drm_device* psDrmDevice, int iPipe);
-
-
-typedef struct MRSTLFB_BUFFER_TAG
-{
-	
-    IMG_UINT32		             	ui32BufferSize;
-	union {
-		
-		IMG_SYS_PHYADDR             *psNonCont;
-		
-		IMG_SYS_PHYADDR				sCont;
-	} uSysAddr;
-	
-	IMG_DEV_VIRTADDR             	sDevVAddr;
-	
-    IMG_CPU_VIRTADDR             	sCPUVAddr;    
-	
-	PVRSRV_SYNC_DATA             	*psSyncData;
-	
-	MRST_BOOL					 	bIsContiguous;
-	
-	MRST_BOOL					 	bIsAllocated;
-
-	IMG_UINT32						ui32OwnerTaskID;
-} MRSTLFB_BUFFER;
-
-typedef struct MRSTLFB_VSYNC_FLIP_ITEM_TAG
-{
-
-
-
-	MRST_HANDLE      hCmdComplete;
-
-	unsigned long    ulSwapInterval;
-
-	MRST_BOOL        bValid;
-
-	MRST_BOOL        bFlipped;
-
-	MRST_BOOL        bCmdCompleted;
-
-
-
-
-
-	MRSTLFB_BUFFER*	psBuffer;
-} MRSTLFB_VSYNC_FLIP_ITEM;
-
-typedef struct MRSTLFB_SWAPCHAIN_TAG
-{
-	
-	unsigned long       ulBufferCount;
-
-	IMG_UINT32			ui32SwapChainID;
-
-	
-	MRSTLFB_BUFFER     **ppsBuffer;
-
-	
-	unsigned long	    ulSwapChainLength;
-
-	
-	MRSTLFB_VSYNC_FLIP_ITEM	*psVSyncFlips;
-
-	
-	unsigned long       ulInsertIndex;
-	
-	
-	unsigned long       ulRemoveIndex;
-
-	
-	PVRSRV_DC_DISP2SRV_KMJTABLE	*psPVRJTable;
-
-	
-	struct drm_driver         *psDrmDriver;
-
-	
-	struct drm_device         *psDrmDev;
-
-	struct MRSTLFB_SWAPCHAIN_TAG *psNext;
-
-	struct MRSTLFB_DEVINFO_TAG *psDevInfo;
-	unsigned long 		ui32Height;
-	unsigned long		ui32Width;
-	unsigned long		ui32ByteStride;
-
-} MRSTLFB_SWAPCHAIN;
-
-typedef struct MRSTLFB_FBINFO_TAG
-{
-	unsigned long       ulFBSize;
-	unsigned long       ulBufferSize;
-	unsigned long       ulRoundedBufferSize;
-	unsigned long       ulWidth;
-	unsigned long       ulHeight;
-	unsigned long       ulByteStride;
-
-
-
-	IMG_SYS_PHYADDR     sSysAddr;
-	IMG_CPU_VIRTADDR    sCPUVAddr;
-        IMG_DEV_VIRTADDR    sDevVAddr;
-
-
-	PVRSRV_PIXEL_FORMAT ePixelFormat;
-}MRSTLFB_FBINFO;
-
-/**
- * If DRI is enable then extemding drm_device
- */
-typedef struct MRSTLFB_DEVINFO_TAG
-{
-	unsigned int           uiDeviceID;
-
-	struct drm_device 	*psDrmDevice;
-
-	
-
-	MRSTLFB_BUFFER          sSystemBuffer;
-
-	
-	PVRSRV_DC_DISP2SRV_KMJTABLE	sPVRJTable;
-	
-	
-	PVRSRV_DC_SRV2DISP_KMJTABLE	sDCJTable;
-
-	
-	unsigned long           ulRefCount;
-
-	MRSTLFB_SWAPCHAIN      *psCurrentSwapChain;
-
-	MRSTLFB_SWAPCHAIN      *apsSwapChains[MAX_SWAPCHAINS];
-
-	IMG_UINT32	   	ui32SwapChainNum;
-
-	
-	void *pvRegs;
-
-	
-	unsigned long ulSetFlushStateRefCount;
-
-	
-	MRST_BOOL           bFlushCommands;
-
-	
-	MRST_BOOL           bBlanked;
-
-	
-	struct fb_info         *psLINFBInfo;
-
-	
-	struct notifier_block   sLINNotifBlock;
-
-	
-	spinlock_t             sSwapChainLock;
-
-	
-
-	
-	IMG_DEV_VIRTADDR	sDisplayDevVAddr;
-
-	DISPLAY_INFO            sDisplayInfo;
-
-	
-	DISPLAY_FORMAT          sDisplayFormat;
-	
-	
-	DISPLAY_DIMS            sDisplayDim;
-
-	IMG_UINT32		ui32MainPipe;
-
-	
-	MRST_BOOL bSuspended;
-
-	
-	MRST_BOOL bLeaveVT;
-
-	
-	unsigned long ulLastFlipAddr;
-
-	
-	MRST_BOOL bLastFlipAddrValid;
-}  MRSTLFB_DEVINFO;
-
-#if 0
-#define	MRSTLFB_PAGE_SIZE 4096
-#define	MRSTLFB_PAGE_MASK (MRSTLFB_PAGE_SIZE - 1)
-#define	MRSTLFB_PAGE_TRUNC (~MRSTLFB_PAGE_MASK)
-
-#define	MRSTLFB_PAGE_ROUNDUP(x) (((x) + MRSTLFB_PAGE_MASK) & MRSTLFB_PAGE_TRUNC)
-#endif
-
-#ifdef	DEBUG
-#define	DEBUG_PRINTK(x) printk x
-#else
-#define	DEBUG_PRINTK(x)
-#endif
-
-#define DISPLAY_DEVICE_NAME "PowerVR Cedartrail Linux Display Driver"
-#define	DRVNAME	"cdvlfb"
-#define	DEVNAME	DRVNAME
-#define	DRIVER_PREFIX DRVNAME
-
-typedef enum _MRST_ERROR_
-{
-	MRST_OK                             =  0,
-	MRST_ERROR_GENERIC                  =  1,
-	MRST_ERROR_OUT_OF_MEMORY            =  2,
-	MRST_ERROR_TOO_FEW_BUFFERS          =  3,
-	MRST_ERROR_INVALID_PARAMS           =  4,
-	MRST_ERROR_INIT_FAILURE             =  5,
-	MRST_ERROR_CANT_REGISTER_CALLBACK   =  6,
-	MRST_ERROR_INVALID_DEVICE           =  7,
-	MRST_ERROR_DEVICE_REGISTER_FAILED   =  8
-} MRST_ERROR;
-
-
-#ifndef UNREFERENCED_PARAMETER
-#define	UNREFERENCED_PARAMETER(param) (param) = (param)
-#endif
-
-MRST_ERROR MRSTLFBInit(struct drm_device * dev);
-MRST_ERROR MRSTLFBDeinit(void);
-
-int MRSTLFBAllocBuffer(struct drm_device *dev, IMG_UINT32 ui32Size, MRSTLFB_BUFFER **ppBuffer);
-int MRSTLFBFreeBuffer(struct drm_device *dev, MRSTLFB_BUFFER **ppBuffer);
-
-void *MRSTLFBAllocKernelMem(unsigned long ulSize);
-void MRSTLFBFreeKernelMem(void *pvMem);
-MRST_ERROR MRSTLFBGetLibFuncAddr(char *szFunctionName, PFN_DC_GET_PVRJTABLE *ppfnFuncTable);
-MRST_ERROR MRSTLFBInstallVSyncISR (MRSTLFB_DEVINFO *psDevInfo, MRSTLFB_VSYNC_ISR_PFN pVsyncHandler);
-MRST_ERROR MRSTLFBUninstallVSyncISR(MRSTLFB_DEVINFO *psDevInfo);
-void MRSTLFBEnableVSyncInterrupt(MRSTLFB_DEVINFO *psDevInfo);
-void MRSTLFBDisableVSyncInterrupt(MRSTLFB_DEVINFO *psDevInfo);
-
-void MRSTLFBFlipToSurface(MRSTLFB_DEVINFO *psDevInfo,  unsigned long uiAddr);
-
-void MRSTLFBSuspend(void);
-void MRSTLFBResume(void);
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/mrstlfb_displayclass.c b/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/mrstlfb_displayclass.c
deleted file mode 100644
index 7d937d7..0000000
--- a/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/mrstlfb_displayclass.c
+++ /dev/null
@@ -1,1652 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful but, except
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
- *
- ******************************************************************************/
-
-#include <linux/version.h>
-#include <linux/kernel.h>
-#include <linux/console.h>
-#include <linux/fb.h>
-#include <linux/module.h>
-#include <linux/string.h>
-#include <linux/notifier.h>
-#include <linux/spinlock.h>
-#include <asm/intel_scu_ipc.h>
-
-#include "img_defs.h"
-#include "servicesext.h"
-#include "kerneldisplay.h"
-#include "mrstlfb.h"
-
-#include "psb_fb.h"
-#include "psb_drv.h"
-#include "psb_powermgmt.h"
-
-IMG_UINT32 gui32MRSTDisplayDeviceID;
-
-PVRSRV_ERROR MRSTLFBPrePowerState(IMG_HANDLE 		 hDevHandle,
-				  PVRSRV_DEV_POWER_STATE eNewPowerState,
-				  PVRSRV_DEV_POWER_STATE eCurrentPowerState);
-
-PVRSRV_ERROR MRSTLFBPostPowerState(IMG_HANDLE 		  hDevHandle,
-				   PVRSRV_DEV_POWER_STATE eNewPowerState,
-				   PVRSRV_DEV_POWER_STATE eCurrentPowerState);
-
-#ifdef MODESET_640x480
-extern int psb_to_640 (struct fb_info* info);
-#endif
-
-extern void mrst_init_LGE_MIPI(struct drm_device *dev);
-extern void mrst_init_NSC_MIPI_bridge(struct drm_device *dev);
-
-struct psbfb_par {
-  struct drm_device *dev;
-  void *psbfb;
-
-  int dpms_state;
-
-  int crtc_count;
-
-  uint32_t crtc_ids[2];
-};
-
-extern void* psbfb_vdc_reg(struct drm_device* dev);
-
-static void *gpvAnchor;
-
-
-#define MRSTLFB_COMMAND_COUNT		1
-
-static PFN_DC_GET_PVRJTABLE pfnGetPVRJTable = 0;
-
-static MRSTLFB_DEVINFO * GetAnchorPtr(void)
-{
-	return (MRSTLFB_DEVINFO *)gpvAnchor;
-}
-
-static void SetAnchorPtr(MRSTLFB_DEVINFO *psDevInfo)
-{
-	gpvAnchor = (void*)psDevInfo;
-}
-
-static int MRSTLFB_dimension_match(MRSTLFB_DEVINFO *psDevInfo, MRSTLFB_SWAPCHAIN *psSwapChain)
-{
-	int dimension_match = 1;
-
-	/* When the psSwapchain is NULL, it means that it will explicitly switch
-	 * to the system buffer. So it is considered as match.
-	 */
-	if (!psSwapChain) 
-		return dimension_match;
-
-	if ((psSwapChain->ui32Height != psDevInfo->sDisplayDim.ui32Height) ||
-		(psSwapChain->ui32ByteStride != psDevInfo->sDisplayDim.ui32ByteStride) ||
-		(psSwapChain->ui32Width != psDevInfo->sDisplayDim.ui32Width))
-		dimension_match = 0;
-
-	return dimension_match;
-}
-
-static void MRSTLFBFlip(MRSTLFB_DEVINFO *psDevInfo, MRSTLFB_BUFFER *psBuffer, int dim_match)
-{
-	unsigned long ulAddr = (unsigned long)psBuffer->sDevVAddr.uiAddr;
-
-	if (!psDevInfo->bSuspended && !psDevInfo->bLeaveVT && dim_match)
-	{
-		MRSTLFBFlipToSurface(psDevInfo, ulAddr);
-	}
-
-	psDevInfo->ulLastFlipAddr = ulAddr;
-	psDevInfo->bLastFlipAddrValid = MRST_TRUE;
-}
-
-static void MRSTLFBRestoreLastFlip(MRSTLFB_DEVINFO *psDevInfo)
-{
-	if (!psDevInfo->bSuspended && !psDevInfo->bLeaveVT)
-	{
-		if (psDevInfo->bLastFlipAddrValid)
-		{
-			MRSTLFBFlipToSurface(psDevInfo, psDevInfo->ulLastFlipAddr);
-		}
-	}
-}
-
-static void MRSTLFBClearSavedFlip(MRSTLFB_DEVINFO *psDevInfo)
-{
-	psDevInfo->bLastFlipAddrValid = MRST_FALSE;
-}
-
-static void FlushInternalVSyncQueue(MRSTLFB_SWAPCHAIN *psSwapChain, MRST_BOOL bFlip, int dim_match)
-{
-	MRSTLFB_VSYNC_FLIP_ITEM *psFlipItem;
-	unsigned long            ulMaxIndex;
-	unsigned long            i;
-	
-	psFlipItem = &psSwapChain->psVSyncFlips[psSwapChain->ulRemoveIndex];
-	ulMaxIndex = psSwapChain->ulSwapChainLength - 1;
-
-	for(i = 0; i < psSwapChain->ulSwapChainLength; i++)
-	{
-		if (psFlipItem->bValid == MRST_FALSE)
-		{
-			continue;
-		}
-
-		DEBUG_PRINTK((KERN_INFO DRIVER_PREFIX ": FlushInternalVSyncQueue: Flushing swap buffer (index %lu)\n", psSwapChain->ulRemoveIndex));
-
-		if(psFlipItem->bFlipped == MRST_FALSE)
-		{
-			if (bFlip)
-			{
-				
-				MRSTLFBFlip(psSwapChain->psDevInfo, psFlipItem->psBuffer, dim_match);
-			}
-		}
-		
-		if(psFlipItem->bCmdCompleted == MRST_FALSE)
-		{
-			DEBUG_PRINTK((KERN_INFO DRIVER_PREFIX ": FlushInternalVSyncQueue: Calling command complete for swap buffer (index %lu)\n", psSwapChain->ulRemoveIndex));
-
-			psSwapChain->psPVRJTable->pfnPVRSRVCmdComplete((IMG_HANDLE)psFlipItem->hCmdComplete, MRST_TRUE);
-		}
-
-		
-		psSwapChain->ulRemoveIndex++;
-		
-		if(psSwapChain->ulRemoveIndex > ulMaxIndex)
-		{
-			psSwapChain->ulRemoveIndex = 0;
-		}
-
-		
-		psFlipItem->bFlipped = MRST_FALSE;
-		psFlipItem->bCmdCompleted = MRST_FALSE;
-		psFlipItem->bValid = MRST_FALSE;
-		
-		
-		psFlipItem = &psSwapChain->psVSyncFlips[psSwapChain->ulRemoveIndex];
-	}
-
-	psSwapChain->ulInsertIndex = 0;
-	psSwapChain->ulRemoveIndex = 0;
-}
-
-static void DRMLFBFlipBuffer(MRSTLFB_DEVINFO *psDevInfo, MRSTLFB_SWAPCHAIN *psSwapChain, MRSTLFB_BUFFER *psBuffer) 
-{
-	int dim_match = MRSTLFB_dimension_match(psDevInfo, psSwapChain);
-	if(psSwapChain != NULL) 
-	{
-		if(psDevInfo->psCurrentSwapChain != NULL)
-		{
-			
-			if(psDevInfo->psCurrentSwapChain != psSwapChain) 
-				FlushInternalVSyncQueue(psDevInfo->psCurrentSwapChain, MRST_FALSE, dim_match);
-		}
-		psDevInfo->psCurrentSwapChain = psSwapChain;
-	}
-
-	MRSTLFBFlip(psDevInfo, psBuffer, dim_match);
-}
-
-static void SetFlushStateNoLock(MRSTLFB_DEVINFO* psDevInfo,
-                                        MRST_BOOL bFlushState)
-{
-	if (bFlushState)
-	{
-		if (psDevInfo->ulSetFlushStateRefCount == 0)
-		{
-			psDevInfo->bFlushCommands = MRST_TRUE;
-			if (psDevInfo->psCurrentSwapChain != NULL)
-			{
-				int dim_match = MRSTLFB_dimension_match(psDevInfo,
-							psDevInfo->psCurrentSwapChain);
-				FlushInternalVSyncQueue(psDevInfo->psCurrentSwapChain, MRST_TRUE, dim_match);
-			}
-		}
-		psDevInfo->ulSetFlushStateRefCount++;
-	}
-	else
-	{
-		if (psDevInfo->ulSetFlushStateRefCount != 0)
-		{
-			psDevInfo->ulSetFlushStateRefCount--;
-			if (psDevInfo->ulSetFlushStateRefCount == 0)
-			{
-				psDevInfo->bFlushCommands = MRST_FALSE;
-			}
-		}
-	}
-}
-
-static IMG_VOID SetFlushState(MRSTLFB_DEVINFO* psDevInfo,
-                                      MRST_BOOL bFlushState)
-{
-	unsigned long ulLockFlags;
-
-	spin_lock_irqsave(&psDevInfo->sSwapChainLock, ulLockFlags);
-
-	SetFlushStateNoLock(psDevInfo, bFlushState);
-
-	spin_unlock_irqrestore(&psDevInfo->sSwapChainLock, ulLockFlags);
-}
-
-static IMG_VOID SetDCState(IMG_HANDLE hDevice, IMG_UINT32 ui32State)
-{
-	MRSTLFB_DEVINFO *psDevInfo = (MRSTLFB_DEVINFO *)hDevice;
-
-	switch (ui32State)
-	{
-		case DC_STATE_FLUSH_COMMANDS:
-			SetFlushState(psDevInfo, MRST_TRUE);
-			break;
-		case DC_STATE_NO_FLUSH_COMMANDS:
-			SetFlushState(psDevInfo, MRST_FALSE);
-			break;
-		default:
-			break;
-	}
-
-	return;
-}
-
-static int FrameBufferEvents(struct notifier_block *psNotif,
-                             unsigned long event, void *data)
-{
-	MRSTLFB_DEVINFO *psDevInfo;
-	struct fb_event *psFBEvent = (struct fb_event *)data;
-	MRST_BOOL bBlanked;
-
-	
-	if (event != FB_EVENT_BLANK)
-	{
-		return 0;
-	}
-
-	psDevInfo = GetAnchorPtr();
-
-	bBlanked = (*(IMG_INT *)psFBEvent->data != 0) ? MRST_TRUE: MRST_FALSE;
-
-	if (bBlanked != psDevInfo->bBlanked)
-	{
-		psDevInfo->bBlanked = bBlanked;
-
-		SetFlushState(psDevInfo, bBlanked);
-	}
-
-	return 0;
-}
-
-
-static MRST_ERROR UnblankDisplay(MRSTLFB_DEVINFO *psDevInfo)
-{
-	int res;
-
-	console_lock();
-	res = fb_blank(psDevInfo->psLINFBInfo, 0);
-	console_unlock();
-	if (res != 0)
-	{
-		printk(KERN_WARNING DRIVER_PREFIX
-			": fb_blank failed (%d)", res);
-		return (MRST_ERROR_GENERIC);
-	}
-
-	return (MRST_OK);
-}
-
-static MRST_ERROR EnableLFBEventNotification(MRSTLFB_DEVINFO *psDevInfo)
-{
-	int                res;
-	MRST_ERROR         eError;
-
-	
-	memset(&psDevInfo->sLINNotifBlock, 0, sizeof(psDevInfo->sLINNotifBlock));
-
-	psDevInfo->sLINNotifBlock.notifier_call = FrameBufferEvents;
-	psDevInfo->bBlanked = MRST_FALSE;
-
-	res = fb_register_client(&psDevInfo->sLINNotifBlock);
-	if (res != 0)
-	{
-		printk(KERN_WARNING DRIVER_PREFIX
-			": fb_register_client failed (%d)", res);
-
-		return (MRST_ERROR_GENERIC);
-	}
-
-	eError = UnblankDisplay(psDevInfo);
-	if (eError != MRST_OK)
-	{
-		DEBUG_PRINTK((KERN_WARNING DRIVER_PREFIX
-			": UnblankDisplay failed (%d)", eError));
-		return eError;
-	}
-
-	return (MRST_OK);
-}
-
-static MRST_ERROR DisableLFBEventNotification(MRSTLFB_DEVINFO *psDevInfo)
-{
-	int res;
-
-
-	res = fb_unregister_client(&psDevInfo->sLINNotifBlock);
-	if (res != 0)
-	{
-		printk(KERN_WARNING DRIVER_PREFIX
-			": fb_unregister_client failed (%d)", res);
-		return (MRST_ERROR_GENERIC);
-	}
-
-	return (MRST_OK);
-}
-
-static PVRSRV_ERROR OpenDCDevice(IMG_UINT32 ui32DeviceID,
-                                 IMG_HANDLE *phDevice,
-                                 PVRSRV_SYNC_DATA* psSystemBufferSyncData)
-{
-	MRSTLFB_DEVINFO *psDevInfo;
-	MRST_ERROR eError;
-
-	UNREFERENCED_PARAMETER(ui32DeviceID);
-
-	psDevInfo = GetAnchorPtr();
-
-	
-	psDevInfo->sSystemBuffer.psSyncData = psSystemBufferSyncData;
-
-	psDevInfo->ulSetFlushStateRefCount = 0;
-	psDevInfo->bFlushCommands = MRST_FALSE;
-
-	eError = EnableLFBEventNotification(psDevInfo);
-	if (eError != MRST_OK)
-	{
-		printk(KERN_WARNING DRIVER_PREFIX ": Couldn't enable framebuffer event notification\n");
-		return PVRSRV_ERROR_UNABLE_TO_OPEN_DC_DEVICE;
-	}
-
-	
-	*phDevice = (IMG_HANDLE)psDevInfo;
-	
-	return (PVRSRV_OK);
-}
-
-static PVRSRV_ERROR CloseDCDevice(IMG_HANDLE hDevice)
-{
-	MRSTLFB_DEVINFO *psDevInfo = (MRSTLFB_DEVINFO *)hDevice;
-	MRST_ERROR eError;
-
-	eError = DisableLFBEventNotification(psDevInfo);
-	if (eError != MRST_OK)
-	{
-		printk(KERN_WARNING DRIVER_PREFIX ": Couldn't disable framebuffer event notification\n");
-		return PVRSRV_ERROR_UNABLE_TO_REMOVE_DEVICE;
-	}
-
-	return (PVRSRV_OK);
-}
-
-static PVRSRV_ERROR EnumDCFormats(IMG_HANDLE hDevice,
-                                  IMG_UINT32 *pui32NumFormats,
-                                  DISPLAY_FORMAT *psFormat)
-{
-	MRSTLFB_DEVINFO	*psDevInfo;
-
-	if(!hDevice || !pui32NumFormats)
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-	psDevInfo = (MRSTLFB_DEVINFO*)hDevice;
-
-	*pui32NumFormats = 1;
-
-	if(psFormat)
-	{
-		psFormat[0] = psDevInfo->sDisplayFormat;
-	}
-
-	return (PVRSRV_OK);
-}
-
-static PVRSRV_ERROR EnumDCDims(IMG_HANDLE hDevice,
-                               DISPLAY_FORMAT *psFormat,
-                               IMG_UINT32 *pui32NumDims,
-                               DISPLAY_DIMS *psDim)
-{
-	MRSTLFB_DEVINFO	*psDevInfo;
-
-	if(!hDevice || !psFormat || !pui32NumDims)
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-	psDevInfo = (MRSTLFB_DEVINFO*)hDevice;
-
-	*pui32NumDims = 1;
-
-
-	if(psDim)
-	{
-		psDim[0] = psDevInfo->sDisplayDim;
-	}
-
-	return (PVRSRV_OK);
-}
-
-
-static PVRSRV_ERROR GetDCSystemBuffer(IMG_HANDLE hDevice, IMG_HANDLE *phBuffer)
-{
-	MRSTLFB_DEVINFO	*psDevInfo;
-
-	if(!hDevice || !phBuffer)
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-	psDevInfo = (MRSTLFB_DEVINFO*)hDevice;
-
-	
-	
-	*phBuffer = (IMG_HANDLE)&psDevInfo->sSystemBuffer;
-
-	return (PVRSRV_OK);
-}
-
-
-static PVRSRV_ERROR GetDCInfo(IMG_HANDLE hDevice, DISPLAY_INFO *psDCInfo)
-{
-	MRSTLFB_DEVINFO	*psDevInfo;
-
-	if(!hDevice || !psDCInfo)
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-	psDevInfo = (MRSTLFB_DEVINFO*)hDevice;
-
-	*psDCInfo = psDevInfo->sDisplayInfo;
-
-	return (PVRSRV_OK);
-}
-
-static PVRSRV_ERROR GetDCBufferAddr(IMG_HANDLE        hDevice,
-                                    IMG_HANDLE        hBuffer, 
-                                    IMG_SYS_PHYADDR   **ppsSysAddr,
-                                    IMG_SIZE_T        *pui32ByteSize,
-                                    IMG_VOID          **ppvCpuVAddr,
-                                    IMG_HANDLE        *phOSMapInfo,
-                                    IMG_BOOL          *pbIsContiguous,
-	                            IMG_UINT32	      *pui32TilingStride)
-{
-	MRSTLFB_BUFFER *psSystemBuffer;
-
-	UNREFERENCED_PARAMETER(pui32TilingStride);
-
-	if(!hDevice)
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-	if(!hBuffer)
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-	psSystemBuffer = (MRSTLFB_BUFFER *)hBuffer;
-
-	if (!ppsSysAddr)
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-	if( psSystemBuffer->bIsContiguous ) 
-		*ppsSysAddr = &psSystemBuffer->uSysAddr.sCont;
-	else
-		*ppsSysAddr = psSystemBuffer->uSysAddr.psNonCont;
-
-	if (!pui32ByteSize)
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-	*pui32ByteSize = psSystemBuffer->ui32BufferSize;
-
-	if (ppvCpuVAddr)
-	{
-		*ppvCpuVAddr = psSystemBuffer->sCPUVAddr;
-	}
-
-	if (phOSMapInfo)
-	{
-		*phOSMapInfo = (IMG_HANDLE)0;
-	}
-
-	if (pbIsContiguous)
-	{
-		*pbIsContiguous = psSystemBuffer->bIsContiguous;
-	}
-
-	return (PVRSRV_OK);
-}
-
-
-
-static PVRSRV_ERROR CreateDCSwapChain(IMG_HANDLE hDevice,
-                                      IMG_UINT32 ui32Flags,
-                                      DISPLAY_SURF_ATTRIBUTES *psDstSurfAttrib,
-                                      DISPLAY_SURF_ATTRIBUTES *psSrcSurfAttrib,
-                                      IMG_UINT32 ui32BufferCount,
-                                      PVRSRV_SYNC_DATA **ppsSyncData,
-                                      IMG_UINT32 ui32OEMFlags,
-                                      IMG_HANDLE *phSwapChain,
-                                      IMG_UINT32 *pui32SwapChainID)
-{
-	MRSTLFB_DEVINFO	*psDevInfo;
-	MRSTLFB_SWAPCHAIN *psSwapChain;
-	MRSTLFB_BUFFER **ppsBuffer;
-	MRSTLFB_VSYNC_FLIP_ITEM *psVSyncFlips;
-	IMG_UINT32 i;
-	IMG_UINT32 iSCId = MAX_SWAPCHAINS;
-	PVRSRV_ERROR eError = PVRSRV_ERROR_NOT_SUPPORTED;
-	unsigned long ulLockFlags;
-	struct drm_device* psDrmDev;
-	unsigned long ulSwapChainLength;
-
-	UNREFERENCED_PARAMETER(ui32OEMFlags);
-	
-	
-	if(!hDevice
-	|| !psDstSurfAttrib
-	|| !psSrcSurfAttrib
-	|| !ppsSyncData
-	|| !phSwapChain)
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-	psDevInfo = (MRSTLFB_DEVINFO*)hDevice;
-		
-	
-	if(ui32BufferCount > psDevInfo->sDisplayInfo.ui32MaxSwapChainBuffers)
-	{
-		return (PVRSRV_ERROR_TOOMANYBUFFERS);
-	}
-	
-	
-	ulSwapChainLength = ui32BufferCount + 1;
-	
-
-	
-	if(psDstSurfAttrib->pixelformat != psDevInfo->sDisplayFormat.pixelformat
-	|| psDstSurfAttrib->sDims.ui32ByteStride != psDevInfo->sDisplayDim.ui32ByteStride
-	|| psDstSurfAttrib->sDims.ui32Width != psDevInfo->sDisplayDim.ui32Width
-	|| psDstSurfAttrib->sDims.ui32Height != psDevInfo->sDisplayDim.ui32Height)
-	{
-
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-	if(psDstSurfAttrib->pixelformat != psSrcSurfAttrib->pixelformat
-	|| psDstSurfAttrib->sDims.ui32ByteStride != psSrcSurfAttrib->sDims.ui32ByteStride
-	|| psDstSurfAttrib->sDims.ui32Width != psSrcSurfAttrib->sDims.ui32Width
-	|| psDstSurfAttrib->sDims.ui32Height != psSrcSurfAttrib->sDims.ui32Height)
-	{
-
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-
-	UNREFERENCED_PARAMETER(ui32Flags);
-
-	 /* If we can't enable the vblank on the corresponding pipe,
-	  * don't create the DC swap chain
-	  */
-        if (psb_enable_vblank(psDevInfo->psDrmDevice, psDevInfo->ui32MainPipe))
-                return (PVRSRV_ERROR_NOT_SUPPORTED);
-
-
-	psSwapChain = (MRSTLFB_SWAPCHAIN*)MRSTLFBAllocKernelMem(sizeof(MRSTLFB_SWAPCHAIN));
-	if(!psSwapChain)
-	{
-		return (PVRSRV_ERROR_OUT_OF_MEMORY);
-	}
-
-	for(iSCId = 0;iSCId < MAX_SWAPCHAINS;++iSCId) 
-	{
-		if( psDevInfo->apsSwapChains[iSCId] == NULL )
-		{
-			psDevInfo->apsSwapChains[iSCId] = psSwapChain;
-			break;
-		}
-	}
-
-	if(iSCId == MAX_SWAPCHAINS) 
-	{
-		eError = PVRSRV_ERROR_OUT_OF_MEMORY;
-		goto ErrorFreeSwapChain;
-	}
-
-	ppsBuffer = (MRSTLFB_BUFFER**)MRSTLFBAllocKernelMem(sizeof(MRSTLFB_BUFFER*) * ui32BufferCount);
-	if(!ppsBuffer)
-	{
-		eError = PVRSRV_ERROR_OUT_OF_MEMORY;
-		goto ErrorFreeSwapChain;
-	}
-
-	psVSyncFlips = (MRSTLFB_VSYNC_FLIP_ITEM *)MRSTLFBAllocKernelMem(sizeof(MRSTLFB_VSYNC_FLIP_ITEM) * ulSwapChainLength);
-	if (!psVSyncFlips)
-	{
-		eError = PVRSRV_ERROR_OUT_OF_MEMORY;
-		goto ErrorFreeBuffers;
-	}
-
-	psSwapChain->ulSwapChainLength = ulSwapChainLength;
-	psSwapChain->ulBufferCount = (unsigned long)ui32BufferCount;
-	psSwapChain->ppsBuffer = ppsBuffer;
-	psSwapChain->psVSyncFlips = psVSyncFlips;
-	psSwapChain->ulInsertIndex = 0;
-	psSwapChain->ulRemoveIndex = 0;
-	psSwapChain->psPVRJTable = &psDevInfo->sPVRJTable;
-	/* save the dimension info of system buffer for the new swapchain*/
-	psSwapChain->ui32Height = psDevInfo->sDisplayDim.ui32Height;
-	psSwapChain->ui32ByteStride = psDevInfo->sDisplayDim.ui32ByteStride;
-	psSwapChain->ui32Width = psDevInfo->sDisplayDim.ui32Width;
-	
-	memset(ppsBuffer, 0, sizeof(MRSTLFB_BUFFER *) * ui32BufferCount);
-	for (i = 0; i < ui32BufferCount; i++)
-	{
-		unsigned long bufSize = psDevInfo->sDisplayDim.ui32ByteStride * psDevInfo->sDisplayDim.ui32Height;
-		if (MRSTLFBAllocBuffer(psDevInfo->psDrmDevice, bufSize, &ppsBuffer[i]) != MRST_OK) {
-			eError = PVRSRV_ERROR_OUT_OF_MEMORY;
-			goto ErrorFreeVSyncFlips;
-		}
-		ppsBuffer[i]->psSyncData = ppsSyncData[i];		
-	}
-
-	
-	for (i = 0; i < ulSwapChainLength; i++)
-	{
-		psVSyncFlips[i].bValid = MRST_FALSE;
-		psVSyncFlips[i].bFlipped = MRST_FALSE;
-		psVSyncFlips[i].bCmdCompleted = MRST_FALSE;
-	}
-
-
-	psDrmDev = psDevInfo->psDrmDevice;
-
-	psSwapChain->psDevInfo = psDevInfo;
-	psSwapChain->psDrmDev = psDrmDev;
-	psSwapChain->psDrmDriver = psDrmDev->driver;
-
-	spin_lock_irqsave(&psDevInfo->sSwapChainLock, ulLockFlags);
-   
-	psSwapChain->ui32SwapChainID = *pui32SwapChainID = iSCId+1;
-
-	if(psDevInfo->psCurrentSwapChain == NULL)
-		psDevInfo->psCurrentSwapChain = psSwapChain;
-
-	psDevInfo->ui32SwapChainNum++;
-	if(psDevInfo->ui32SwapChainNum == 1)
-	{
-		MRSTLFBEnableVSyncInterrupt(psDevInfo);
-	}
-
-	spin_unlock_irqrestore(&psDevInfo->sSwapChainLock, ulLockFlags);
-
-	
-	*phSwapChain = (IMG_HANDLE)psSwapChain;
-
-	return (PVRSRV_OK);
-
-ErrorFreeVSyncFlips:
-	for (i = 0; i < ui32BufferCount; i++) {
-		MRSTLFBFreeBuffer(psDevInfo->psDrmDevice, &ppsBuffer[i]);
-	}
-	MRSTLFBFreeKernelMem(psVSyncFlips);
-ErrorFreeBuffers:
-	MRSTLFBFreeKernelMem(ppsBuffer);
-ErrorFreeSwapChain:
-	if(iSCId != MAX_SWAPCHAINS && psDevInfo->apsSwapChains[iSCId] == psSwapChain ) 
-		psDevInfo->apsSwapChains[iSCId] = NULL;	
-	MRSTLFBFreeKernelMem(psSwapChain);
-
-	return eError;
-}
-
-static PVRSRV_ERROR DestroyDCSwapChain(IMG_HANDLE hDevice,
-	IMG_HANDLE hSwapChain)
-{
-	MRSTLFB_DEVINFO	*psDevInfo;
-	MRSTLFB_SWAPCHAIN *psSwapChain;
-	unsigned long ulLockFlags;
-	int i;
-	int dimension_match;
-
-	
-	if(!hDevice || !hSwapChain)
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-	
-	psDevInfo = (MRSTLFB_DEVINFO*)hDevice;
-	psSwapChain = (MRSTLFB_SWAPCHAIN*)hSwapChain;
-
-	spin_lock_irqsave(&psDevInfo->sSwapChainLock, ulLockFlags);
-	dimension_match =  MRSTLFB_dimension_match(psDevInfo, psSwapChain);
-
-	psDevInfo->ui32SwapChainNum--;
-
-	if(psDevInfo->ui32SwapChainNum == 0) 
-	{
-		MRSTLFBDisableVSyncInterrupt(psDevInfo);
-		psDevInfo->psCurrentSwapChain = NULL;
-	}
-
-	psDevInfo->apsSwapChains[ psSwapChain->ui32SwapChainID -1] = NULL;
-
-	
-	FlushInternalVSyncQueue(psSwapChain, (psDevInfo->ui32SwapChainNum == 0), dimension_match);
-
-	if (psDevInfo->ui32SwapChainNum == 0)
-	{
-		
-		DRMLFBFlipBuffer(psDevInfo, NULL, &psDevInfo->sSystemBuffer);
-		MRSTLFBClearSavedFlip(psDevInfo);
-	}
-
-	if(psDevInfo->psCurrentSwapChain == psSwapChain)
-		psDevInfo->psCurrentSwapChain = NULL;
-
-	spin_unlock_irqrestore(&psDevInfo->sSwapChainLock, ulLockFlags);
-
-	
-	for (i = 0; i < psSwapChain->ulBufferCount; i++)
-	{
-		MRSTLFBFreeBuffer(psDevInfo->psDrmDevice, &psSwapChain->ppsBuffer[i] );
-	}
-	MRSTLFBFreeKernelMem(psSwapChain->psVSyncFlips);
-	MRSTLFBFreeKernelMem(psSwapChain->ppsBuffer);
-	MRSTLFBFreeKernelMem(psSwapChain);
-
-	return (PVRSRV_OK);
-}
-
-static PVRSRV_ERROR SetDCDstRect(IMG_HANDLE hDevice,
-	IMG_HANDLE hSwapChain,
-	IMG_RECT *psRect)
-{
-	UNREFERENCED_PARAMETER(hDevice);
-	UNREFERENCED_PARAMETER(hSwapChain);
-	UNREFERENCED_PARAMETER(psRect);
-
-
-
-	return (PVRSRV_ERROR_NOT_SUPPORTED);
-}
-
-static PVRSRV_ERROR SetDCSrcRect(IMG_HANDLE hDevice,
-                                 IMG_HANDLE hSwapChain,
-                                 IMG_RECT *psRect)
-{
-	UNREFERENCED_PARAMETER(hDevice);
-	UNREFERENCED_PARAMETER(hSwapChain);
-	UNREFERENCED_PARAMETER(psRect);
-
-
-
-	return (PVRSRV_ERROR_NOT_SUPPORTED);
-}
-
-static PVRSRV_ERROR SetDCDstColourKey(IMG_HANDLE hDevice,
-                                      IMG_HANDLE hSwapChain,
-                                      IMG_UINT32 ui32CKColour)
-{
-	UNREFERENCED_PARAMETER(hDevice);
-	UNREFERENCED_PARAMETER(hSwapChain);
-	UNREFERENCED_PARAMETER(ui32CKColour);
-
-
-
-	return (PVRSRV_ERROR_NOT_SUPPORTED);
-}
-
-static PVRSRV_ERROR SetDCSrcColourKey(IMG_HANDLE hDevice,
-                                      IMG_HANDLE hSwapChain,
-                                      IMG_UINT32 ui32CKColour)
-{
-	UNREFERENCED_PARAMETER(hDevice);
-	UNREFERENCED_PARAMETER(hSwapChain);
-	UNREFERENCED_PARAMETER(ui32CKColour);
-
-
-
-	return (PVRSRV_ERROR_NOT_SUPPORTED);
-}
-
-static PVRSRV_ERROR GetDCBuffers(IMG_HANDLE hDevice,
-                                 IMG_HANDLE hSwapChain,
-                                 IMG_UINT32 *pui32BufferCount,
-                                 IMG_HANDLE *phBuffer)
-{
-	MRSTLFB_SWAPCHAIN *psSwapChain;
-	unsigned long      i;
-
-
-	if(!hDevice
-	|| !hSwapChain
-	|| !pui32BufferCount
-	|| !phBuffer)
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-	psSwapChain = (MRSTLFB_SWAPCHAIN*)hSwapChain;
-
-
-	*pui32BufferCount = (IMG_UINT32)psSwapChain->ulBufferCount;
-
-
-	for(i=0; i<psSwapChain->ulBufferCount; i++)
-	{
-		phBuffer[i] = (IMG_HANDLE)psSwapChain->ppsBuffer[i];
-	}
-	
-	return (PVRSRV_OK);
-}
-
-static PVRSRV_ERROR SwapToDCBuffer(IMG_HANDLE hDevice,
-                                   IMG_HANDLE hBuffer,
-                                   IMG_UINT32 ui32SwapInterval,
-                                   IMG_HANDLE hPrivateTag,
-                                   IMG_UINT32 ui32ClipRectCount,
-                                   IMG_RECT *psClipRect)
-{
-	UNREFERENCED_PARAMETER(ui32SwapInterval);
-	UNREFERENCED_PARAMETER(hPrivateTag);
-	UNREFERENCED_PARAMETER(psClipRect);
-
-	if(!hDevice
-	|| !hBuffer
-	|| (ui32ClipRectCount != 0))
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-	return (PVRSRV_OK);
-}
-
-static PVRSRV_ERROR SwapToDCSystem(IMG_HANDLE hDevice,
-                                   IMG_HANDLE hSwapChain)
-{
-	if(!hDevice || !hSwapChain)
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-	
-	return (PVRSRV_OK);
-}
-
-static MRST_BOOL MRSTLFBVSyncIHandler(MRSTLFB_DEVINFO *psDevInfo)
-{
-	MRST_BOOL bStatus = MRST_TRUE;
-	MRSTLFB_VSYNC_FLIP_ITEM *psFlipItem;
-	unsigned long ulMaxIndex;
-	unsigned long ulLockFlags;
-	MRSTLFB_SWAPCHAIN *psSwapChain;
-
-	spin_lock_irqsave(&psDevInfo->sSwapChainLock, ulLockFlags);
-
-	
-	psSwapChain = psDevInfo->psCurrentSwapChain;
-	if (psSwapChain == NULL)
-	{
-		goto ExitUnlock;
-	}
-
-	
-	if (psDevInfo->bFlushCommands || psDevInfo->bSuspended || psDevInfo->bLeaveVT)
-	{
-		goto ExitUnlock;
-	}
-
-	psFlipItem = &psSwapChain->psVSyncFlips[psSwapChain->ulRemoveIndex];
-	ulMaxIndex = psSwapChain->ulSwapChainLength - 1;
-
-	while(psFlipItem->bValid)
-	{	
-		
-		if(psFlipItem->bFlipped)
-		{
-			
-			if(!psFlipItem->bCmdCompleted)
-			{
-				
-				MRST_BOOL bScheduleMISR;
-				
-				bScheduleMISR = MRST_TRUE;
-
-				
-				psSwapChain->psPVRJTable->pfnPVRSRVCmdComplete((IMG_HANDLE)psFlipItem->hCmdComplete, bScheduleMISR);
-
-				
-				psFlipItem->bCmdCompleted = MRST_TRUE;
-			}
-
-			
-			psFlipItem->ulSwapInterval--;
-
-		
-			if(psFlipItem->ulSwapInterval == 0)
-			{	
-				
-				psSwapChain->ulRemoveIndex++;
-				
-				if(psSwapChain->ulRemoveIndex > ulMaxIndex)
-				{
-					psSwapChain->ulRemoveIndex = 0;
-				}
-				
-				
-				psFlipItem->bCmdCompleted = MRST_FALSE;
-				psFlipItem->bFlipped = MRST_FALSE;
-	
-				
-				psFlipItem->bValid = MRST_FALSE;
-			}
-			else
-			{
-				
-				break;
-			}
-		}
-		else
-		{
-			
-			DRMLFBFlipBuffer(psDevInfo, psSwapChain, psFlipItem->psBuffer);
-			
-			
-			psFlipItem->bFlipped = MRST_TRUE;
-			
-			
-			break;
-		}
-		
-		
-		psFlipItem = &psSwapChain->psVSyncFlips[psSwapChain->ulRemoveIndex];
-	}
-		
-ExitUnlock:
-	spin_unlock_irqrestore(&psDevInfo->sSwapChainLock, ulLockFlags);
-
-	return bStatus;
-}
-
-#if defined(MRST_USING_INTERRUPTS)
-static int
-MRSTLFBVSyncISR(struct drm_device *psDrmDevice, int iPipe)
-{
-	MRSTLFB_DEVINFO *psDevInfo = GetAnchorPtr();	
-
-	if (iPipe == psDevInfo->ui32MainPipe)
-		MRSTLFBVSyncIHandler(psDevInfo);
- 	
-	return 0;
-}
-#endif
-
-
-static IMG_BOOL ProcessFlip(IMG_HANDLE  hCmdCookie,
-                            IMG_UINT32  ui32DataSize,
-                            IMG_VOID   *pvData)
-{
-	DISPLAYCLASS_FLIP_COMMAND *psFlipCmd;
-	MRSTLFB_DEVINFO *psDevInfo;
-	MRSTLFB_BUFFER *psBuffer;
-	MRSTLFB_SWAPCHAIN *psSwapChain;
-#if defined(MRST_USING_INTERRUPTS)
-	MRSTLFB_VSYNC_FLIP_ITEM* psFlipItem;
-#endif
-	unsigned long ulLockFlags;
-
-
-	if(!hCmdCookie || !pvData)
-	{
-		return IMG_FALSE;
-	}
-
-
-	psFlipCmd = (DISPLAYCLASS_FLIP_COMMAND*)pvData;
-
-	if (psFlipCmd == IMG_NULL || sizeof(DISPLAYCLASS_FLIP_COMMAND) != ui32DataSize)
-	{
-		return IMG_FALSE;
-	}
-
-
-	psDevInfo = (MRSTLFB_DEVINFO*)psFlipCmd->hExtDevice;
-
-	psBuffer = (MRSTLFB_BUFFER*)psFlipCmd->hExtBuffer;
-	psSwapChain = (MRSTLFB_SWAPCHAIN*) psFlipCmd->hExtSwapChain;
-
-	spin_lock_irqsave(&psDevInfo->sSwapChainLock, ulLockFlags);
-
-#if defined(MRST_USING_INTERRUPTS)
-	
-	if(psFlipCmd->ui32SwapInterval == 0 || psDevInfo->bFlushCommands)
-	{
-#endif
-		DRMLFBFlipBuffer(psDevInfo, psSwapChain, psBuffer);
-
-		
-	
-		psSwapChain->psPVRJTable->pfnPVRSRVCmdComplete(hCmdCookie, IMG_TRUE);
-
-#if defined(MRST_USING_INTERRUPTS)
-		goto ExitTrueUnlock;
-	}
-
-	psFlipItem = &psSwapChain->psVSyncFlips[psSwapChain->ulInsertIndex];
-
-	
-	if(psFlipItem->bValid == MRST_FALSE)
-	{
-		unsigned long ulMaxIndex = psSwapChain->ulSwapChainLength - 1;
-		
-		if(psSwapChain->ulInsertIndex == psSwapChain->ulRemoveIndex)
-		{
-			
-			DRMLFBFlipBuffer(psDevInfo, psSwapChain, psBuffer);
-
-			psFlipItem->bFlipped = MRST_TRUE;
-		}
-		else
-		{
-			psFlipItem->bFlipped = MRST_FALSE;
-		}
-
-		psFlipItem->hCmdComplete = (MRST_HANDLE)hCmdCookie;
-		psFlipItem->ulSwapInterval = (unsigned long)psFlipCmd->ui32SwapInterval;
-		psFlipItem->psBuffer = psBuffer;
-		psFlipItem->bValid = MRST_TRUE;
-
-		psSwapChain->ulInsertIndex++;
-		if(psSwapChain->ulInsertIndex > ulMaxIndex)
-		{
-			psSwapChain->ulInsertIndex = 0;
-		}
-
-		goto ExitTrueUnlock;
-	}
-	
-	spin_unlock_irqrestore(&psDevInfo->sSwapChainLock, ulLockFlags);
-	return IMG_FALSE;
-
-ExitTrueUnlock:
-#endif
-	spin_unlock_irqrestore(&psDevInfo->sSwapChainLock, ulLockFlags);
-	return IMG_TRUE;
-}
-
-
-#if defined(PVR_MRST_FB_SET_PAR_ON_INIT)
-static void MRSTFBSetPar(struct fb_info *psLINFBInfo)
-{
-	console_lock();
-
-	if (psLINFBInfo->fbops->fb_set_par != NULL)
-	{
-		int res;
-
-		res = psLINFBInfo->fbops->fb_set_par(psLINFBInfo);
-		if (res != 0)
-		{
-			printk(KERN_WARNING DRIVER_PREFIX
-				": fb_set_par failed: %d\n", res);
-
-		}
-	}
-	else
-	{
-		printk(KERN_WARNING DRIVER_PREFIX
-			": fb_set_par not set - HW cursor may not work\n");
-	}
-
-	console_unlock();
-}
-#endif
-
-void MRSTLFBSuspend(void)
-{
-	MRSTLFB_DEVINFO *psDevInfo = GetAnchorPtr();
-	unsigned long ulLockFlags;
-
-	spin_lock_irqsave(&psDevInfo->sSwapChainLock, ulLockFlags);
-
-	if (!psDevInfo->bSuspended)
-	{
-#if !defined(PVR_MRST_STYLE_PM)
-		if(psDevInfo->ui32SwapChainNum != 0)
-		{
-			MRSTLFBDisableVSyncInterrupt(psDevInfo);
-		}
-#endif
-		psDevInfo->bSuspended = MRST_TRUE;
-	}
-
-	spin_unlock_irqrestore(&psDevInfo->sSwapChainLock, ulLockFlags);
-}
-
-void MRSTLFBResume(void)
-{
-	MRSTLFB_DEVINFO *psDevInfo = GetAnchorPtr();
-	unsigned long ulLockFlags;
-
-	spin_lock_irqsave(&psDevInfo->sSwapChainLock, ulLockFlags);
-
-	if (psDevInfo->bSuspended)
-	{
-#if !defined(PVR_MRST_STYLE_PM)
-		if(psDevInfo->ui32SwapChainNum != 0)
-		{
-			MRSTLFBEnableVSyncInterrupt(psDevInfo);
-		}
-#endif
-		psDevInfo->bSuspended = MRST_FALSE;
-
-		MRSTLFBRestoreLastFlip(psDevInfo);
-	}
-
-	spin_unlock_irqrestore(&psDevInfo->sSwapChainLock, ulLockFlags);
-
-#if !defined(PVR_MRST_STYLE_PM)
-	(void) UnblankDisplay(psDevInfo);
-#endif
-}
-
-#ifdef DRM_PVR_USE_INTEL_FB
-#include "mm.h"
-int MRSTLFBHandleChangeFB(struct drm_device* dev, struct psb_framebuffer *psbfb)
-{
-	MRSTLFB_DEVINFO *psDevInfo = GetAnchorPtr();
-	int i;
-	struct drm_psb_private * dev_priv = (struct drm_psb_private *)dev->dev_private;
-	struct psb_gtt * pg = dev_priv->pg;
-	LinuxMemArea *psLinuxMemArea = NULL;
-	MRSTLFB_BUFFER *pBuffer;
-
-	if (!psDevInfo->sSystemBuffer.bIsContiguous) {
-		MRSTLFBFreeKernelMem( psDevInfo->sSystemBuffer.uSysAddr.psNonCont );
-		psDevInfo->sSystemBuffer.uSysAddr.psNonCont = NULL;
-	}
-	psDevInfo->sDisplayFormat.pixelformat = (psbfb->base.depth == 16) ? PVRSRV_PIXEL_FORMAT_RGB565 : PVRSRV_PIXEL_FORMAT_ARGB8888;
-
-	psDevInfo->sDisplayDim.ui32ByteStride = psbfb->base.pitch;
-	psDevInfo->sDisplayDim.ui32Width = psbfb->base.width;
-	psDevInfo->sDisplayDim.ui32Height = psbfb->base.height;
-
-	psDevInfo->sSystemBuffer.ui32BufferSize = psbfb->size;
-
-	if (psbfb->pvrBO != NULL)
-	{
-		psDevInfo->sSystemBuffer.sCPUVAddr = psbfb->fbdev->screen_base;
-		psDevInfo->sSystemBuffer.sDevVAddr.uiAddr = psbfb->offset;
-	}
-	else
-	{
-		if (dev_priv->fb_reloc) {
-			/* 
-			 * the frame buffer has been relocated
-			 * because the stolen memory isn't large enough
-			 */
-			pBuffer = (MRSTLFB_BUFFER *)dev_priv->fb_reloc;
-			psDevInfo->sSystemBuffer.sCPUVAddr = pBuffer->sCPUVAddr;
-			psDevInfo->sSystemBuffer.sDevVAddr.uiAddr = pBuffer->sDevVAddr.uiAddr;
-		} else {
-			psDevInfo->sSystemBuffer.sCPUVAddr = pg->vram_addr;
-			psDevInfo->sSystemBuffer.sDevVAddr.uiAddr = 0;
-		}
-	}
-
-	psDevInfo->sSystemBuffer.bIsAllocated = MRST_FALSE;
-
-	if (psbfb->pvrBO != NULL)
-	{
-		psLinuxMemArea = (LinuxMemArea *)psbfb->pvrBO->sMemBlk.hOSMemHandle;
-	}
-
-	if ((dev_priv->fb_reloc == NULL) &&
-	    ((psbfb->pvrBO == NULL) || (psLinuxMemArea->eAreaType != LINUX_MEM_AREA_ALLOC_PAGES)))
-	{
-		psDevInfo->sSystemBuffer.bIsContiguous = MRST_TRUE;
-		psDevInfo->sSystemBuffer.uSysAddr.sCont.uiAddr = pg->stolen_base;
-	} else {
-		psDevInfo->sSystemBuffer.bIsContiguous = MRST_FALSE;
-		psDevInfo->sSystemBuffer.uSysAddr.psNonCont = MRSTLFBAllocKernelMem( sizeof( IMG_SYS_PHYADDR ) * (psbfb->size >> PAGE_SHIFT));	
-		if (psDevInfo->sSystemBuffer.uSysAddr.psNonCont == NULL) {
-			WARN_ON_ONCE(1);
-			printk(KERN_ERR "Out of Memory in HandleChangeFB\n");
-			return -ENOMEM;
-		}
-		if (dev_priv->fb_reloc) {
-			pBuffer = (MRSTLFB_BUFFER *)dev_priv->fb_reloc;
-			for (i = 0; i < psbfb->size >> PAGE_SHIFT; i++)
-				psDevInfo->sSystemBuffer.uSysAddr.psNonCont[i].uiAddr =
-					pBuffer->uSysAddr.psNonCont[i].uiAddr;
-		} else {
-			struct page **page_list = psLinuxMemArea->uData.sPageList.pvPageList;
-			for (i = 0; i < psbfb->size >> PAGE_SHIFT; i++)
-				psDevInfo->sSystemBuffer.uSysAddr.psNonCont[i].uiAddr =
-					page_to_pfn(page_list[i]) << PAGE_SHIFT;
-		}
-	}
-
-	return 0;
-}
-
-
-uint32_t MRSTLFBGetSize(MRSTLFB_BUFFER *pBuffer)
-{
-	return pBuffer->ui32BufferSize;
-}
-
-void* MRSTLFBGetCPUVAddr(MRSTLFB_BUFFER *pBuffer)
-{
-	return pBuffer->sCPUVAddr;
-}
-
-uint32_t MRSTLFBGetDevVAddr(MRSTLFB_BUFFER *pBuffer)
-{
-	return pBuffer->sDevVAddr.uiAddr;
-}
-
-#endif
-
-static int MRSTLFBFindMainPipe(struct drm_device *dev)  
-{
-	struct drm_crtc *crtc;
-
-	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head)  
-	{
-		if ( drm_helper_crtc_in_use(crtc) ) 
-		{
-			struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(crtc);
-			return psb_intel_crtc->pipe;
-		}
-	}	
-	
-	return 0;
-}
-
-
-static MRST_ERROR InitDev(MRSTLFB_DEVINFO *psDevInfo)
-{
-	MRST_ERROR eError = MRST_ERROR_GENERIC;
-	struct fb_info *psLINFBInfo;
-	struct drm_device * psDrmDevice = psDevInfo->psDrmDevice;
-	struct drm_psb_private * psDrmPrivate = (struct drm_psb_private *)psDrmDevice->dev_private;
-	struct psb_fbdev * psPsbFBDev = (struct psb_fbdev *)psDrmPrivate->fbdev;
-	struct drm_framebuffer * psDrmFB;
-	struct psb_framebuffer *psbfb;
-	int i;
-
-	psDrmFB = psPsbFBDev->psb_fb_helper.fb;
-	if(!psDrmFB) {
-		printk(KERN_INFO"%s:Cannot find drm FB", __FUNCTION__);
-		return eError;
-	}
-	psbfb = to_psb_fb(psDrmFB);
-
-	psLINFBInfo = (struct fb_info*)psPsbFBDev->psb_fb_helper.fbdev;
-
-#if defined(PVR_MRST_FB_SET_PAR_ON_INIT)
-	MRSTFBSetPar(psLINFBInfo);
-#endif
-
-	
-	psDevInfo->sSystemBuffer.bIsContiguous = MRST_TRUE;
-	psDevInfo->sSystemBuffer.bIsAllocated = MRST_FALSE;
-
-	MRSTLFBHandleChangeFB(psDrmDevice, psbfb);
-
-    
-	psDevInfo->sDisplayFormat.pixelformat = PVRSRV_PIXEL_FORMAT_ARGB8888;
-	psDevInfo->psLINFBInfo = psLINFBInfo;
-
-	/*
-	 * Ugly. This will always select the pipe B as the main pipe on CDV.
-	 * If the external monitor is connected during loading the gfx kernel driver,
-	 * it will select the pipe A as the main pipe. Then maybe the wrong main pipe
-	 * is selected when the external monitor is explicitly turned off.
-	 * To be simple, currently we only choose the LVDS pipe as the main pipe.
-	 * Otherwise we will have to handle the scenario when the main pipe is switched.
-	 */
-	psDevInfo->ui32MainPipe = MRSTLFBFindMainPipe(psDevInfo->psDrmDevice);
-	psDevInfo->ui32MainPipe = 1;
-	
-	for(i = 0;i < MAX_SWAPCHAINS;++i) 
-	{
-		psDevInfo->apsSwapChains[i] = NULL;
-	}
-
-	
-	
-	
-	psDevInfo->pvRegs = psbfb_vdc_reg(psDevInfo->psDrmDevice);
-
-	if (psDevInfo->pvRegs == NULL)
-	{
-		eError = PVRSRV_ERROR_BAD_MAPPING;
-		printk(KERN_WARNING DRIVER_PREFIX ": Couldn't map registers needed for flipping\n");
-		return eError;
-	}
-
-	return MRST_OK;
-}
-
-static void DeInitDev(MRSTLFB_DEVINFO *psDevInfo)
-{
-
-}
-
-MRST_ERROR MRSTLFBInit(struct drm_device * dev)
-{
-	MRSTLFB_DEVINFO		*psDevInfo;
-	//struct drm_psb_private *psDrmPriv = (struct drm_psb_private *)dev->dev_private;
-
-	psDevInfo = GetAnchorPtr();
-
-	if (psDevInfo == NULL)
-	{
-		PFN_CMD_PROC	 		pfnCmdProcList[MRSTLFB_COMMAND_COUNT];
-		IMG_UINT32				aui32SyncCountList[MRSTLFB_COMMAND_COUNT][2];
-
-		psDevInfo = (MRSTLFB_DEVINFO *)MRSTLFBAllocKernelMem(sizeof(MRSTLFB_DEVINFO));
-
-		if(!psDevInfo)
-		{
-			return (MRST_ERROR_OUT_OF_MEMORY);
-		}
-
-
-		memset(psDevInfo, 0, sizeof(MRSTLFB_DEVINFO));
-
-
-		SetAnchorPtr((void*)psDevInfo);
-
-		psDevInfo->psDrmDevice = dev;
-		psDevInfo->ulRefCount = 0;
-
-
-		if(InitDev(psDevInfo) != MRST_OK)
-		{
-			return (MRST_ERROR_INIT_FAILURE);
-		}
-
-		if(MRSTLFBGetLibFuncAddr ("PVRGetDisplayClassJTable", &pfnGetPVRJTable) != MRST_OK)
-		{
-			return (MRST_ERROR_INIT_FAILURE);
-		}
-
-
-		if(!(*pfnGetPVRJTable)(&psDevInfo->sPVRJTable))
-		{
-			return (MRST_ERROR_INIT_FAILURE);
-		}
-
-
-		spin_lock_init(&psDevInfo->sSwapChainLock);
-
-		psDevInfo->psCurrentSwapChain = NULL;
-		psDevInfo->bFlushCommands = MRST_FALSE;
-
-		psDevInfo->sDisplayInfo.ui32MaxSwapChainBuffers = MAX_FLIPBUFFERS;
-		psDevInfo->sDisplayInfo.ui32MaxSwapChains = MAX_SWAPCHAINS;
-		psDevInfo->sDisplayInfo.ui32MaxSwapInterval = 3;
-		psDevInfo->sDisplayInfo.ui32MinSwapInterval = 0;
-
-		strncpy(psDevInfo->sDisplayInfo.szDisplayName, DISPLAY_DEVICE_NAME, MAX_DISPLAY_NAME_SIZE);
-	
-
-		DEBUG_PRINTK((KERN_INFO DRIVER_PREFIX
-			": Maximum number of swap chain buffers: %u\n",
-			psDevInfo->sDisplayInfo.ui32MaxSwapChainBuffers));
-
-
-		
-
-		psDevInfo->sDCJTable.ui32TableSize = sizeof(PVRSRV_DC_SRV2DISP_KMJTABLE);
-		psDevInfo->sDCJTable.pfnOpenDCDevice = OpenDCDevice;
-		psDevInfo->sDCJTable.pfnCloseDCDevice = CloseDCDevice;
-		psDevInfo->sDCJTable.pfnEnumDCFormats = EnumDCFormats;
-		psDevInfo->sDCJTable.pfnEnumDCDims = EnumDCDims;
-		psDevInfo->sDCJTable.pfnGetDCSystemBuffer = GetDCSystemBuffer;
-		psDevInfo->sDCJTable.pfnGetDCInfo = GetDCInfo;
-		psDevInfo->sDCJTable.pfnGetBufferAddr = GetDCBufferAddr;
-		psDevInfo->sDCJTable.pfnCreateDCSwapChain = CreateDCSwapChain;
-		psDevInfo->sDCJTable.pfnDestroyDCSwapChain = DestroyDCSwapChain;
-		psDevInfo->sDCJTable.pfnSetDCDstRect = SetDCDstRect;
-		psDevInfo->sDCJTable.pfnSetDCSrcRect = SetDCSrcRect;
-		psDevInfo->sDCJTable.pfnSetDCDstColourKey = SetDCDstColourKey;
-		psDevInfo->sDCJTable.pfnSetDCSrcColourKey = SetDCSrcColourKey;
-		psDevInfo->sDCJTable.pfnGetDCBuffers = GetDCBuffers;
-		psDevInfo->sDCJTable.pfnSwapToDCBuffer = SwapToDCBuffer;
-		psDevInfo->sDCJTable.pfnSwapToDCSystem = SwapToDCSystem;
-		psDevInfo->sDCJTable.pfnSetDCState = SetDCState;
-
-
-		if(psDevInfo->sPVRJTable.pfnPVRSRVRegisterDCDevice (
-			&psDevInfo->sDCJTable,
-			&psDevInfo->uiDeviceID ) != PVRSRV_OK)
-		{
-			return (MRST_ERROR_DEVICE_REGISTER_FAILED);
-		}
-
-		printk("Device ID: %d\n", (int)psDevInfo->uiDeviceID);
-
-
-#if defined (MRST_USING_INTERRUPTS)
-	
-	if(MRSTLFBInstallVSyncISR(psDevInfo,MRSTLFBVSyncISR) != MRST_OK)
-	{
-		DEBUG_PRINTK((KERN_INFO DRIVER_PREFIX	"ISR Installation failed\n"));
-		return (MRST_ERROR_INIT_FAILURE);
-	}
-#endif
-
-	
-	pfnCmdProcList[DC_FLIP_COMMAND] = ProcessFlip;
-	
-	
-	aui32SyncCountList[DC_FLIP_COMMAND][0] = 0; 
-	aui32SyncCountList[DC_FLIP_COMMAND][1] = 2; 
-	
-
-	if (psDevInfo->sPVRJTable.pfnPVRSRVRegisterCmdProcList (psDevInfo->uiDeviceID,
-								&pfnCmdProcList[0],
-								aui32SyncCountList,
-								MRSTLFB_COMMAND_COUNT) != PVRSRV_OK)
-	  {
-	    printk(KERN_WARNING DRIVER_PREFIX ": Can't register callback\n");
-	    return (MRST_ERROR_CANT_REGISTER_CALLBACK);
-	  }
-
-
-	}
-
-	
-	//psDrmPriv->psb_change_fb_handler = MRSTLFBHandleChangeFB;	
-
-	//psDrmPriv->psb_leave_vt_handler = DRMLFBLeaveVTHandler;
-	//psDrmPriv->psb_enter_vt_handler = DRMLFBEnterVTHandler;
-	
-	psDevInfo->ulRefCount++;
-
-	
-	return (MRST_OK);	
-}
-
-MRST_ERROR MRSTLFBDeinit(void)
-{
-	MRSTLFB_DEVINFO *psDevInfo, *psDevFirst;
-
-	psDevFirst = GetAnchorPtr();
-	psDevInfo = psDevFirst;
-
-
-	if (psDevInfo == NULL)
-	{
-		return (MRST_ERROR_GENERIC);
-	}
-
-
-	psDevInfo->ulRefCount--;
-
-	psDevInfo->psDrmDevice = NULL;
-	if (psDevInfo->ulRefCount == 0)
-	{
-
-		PVRSRV_DC_DISP2SRV_KMJTABLE	*psJTable = &psDevInfo->sPVRJTable;
-
-		if (psDevInfo->sPVRJTable.pfnPVRSRVRemoveCmdProcList (psDevInfo->uiDeviceID, MRSTLFB_COMMAND_COUNT) != PVRSRV_OK)
-		{
-			return (MRST_ERROR_GENERIC);
-		}
-
-		if (psDevInfo->sPVRJTable.pfnPVRSRVRegisterPowerDevice((IMG_UINT32)psDevInfo->uiDeviceID,
-								       IMG_NULL, IMG_NULL,
-								       IMG_NULL, IMG_NULL, IMG_NULL,
-								       PVRSRV_DEV_POWER_STATE_ON,
-								       PVRSRV_DEV_POWER_STATE_ON) != PVRSRV_OK)
-		{
-			return (MRST_ERROR_GENERIC);
-		}
-
-
-#if defined (MRST_USING_INTERRUPTS)
-		
-		if(MRSTLFBUninstallVSyncISR(psDevInfo) != MRST_OK)
-		{
-			return (MRST_ERROR_GENERIC);
-		}
-#endif
-
-		if (psJTable->pfnPVRSRVRemoveDCDevice(psDevInfo->uiDeviceID) != PVRSRV_OK)
-		{
-			return (MRST_ERROR_GENERIC);
-		}
-
-		DeInitDev(psDevInfo);
-
-
-		MRSTLFBFreeKernelMem(psDevInfo);
-	}
-
-
-	SetAnchorPtr(NULL);
-
-
-	return (MRST_OK);
-}
-
-int MRSTLFBAllocBuffer(struct drm_device *dev, IMG_UINT32 ui32Size, MRSTLFB_BUFFER **ppBuffer)
-
-{
-	IMG_VOID *pvBuf;
-	IMG_UINT32 ulPagesNumber;
-	IMG_UINT32 ulCounter;
-	int i, ret;
-
-	pvBuf = __vmalloc( ui32Size, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, __pgprot((pgprot_val(PAGE_KERNEL ) & ~_PAGE_CACHE_MASK) | _PAGE_CACHE_WC) );
-	if( pvBuf == NULL )
-	{
-		return MRST_ERROR_OUT_OF_MEMORY;
-	}
-
-	ulPagesNumber = (ui32Size + PAGE_SIZE -1) / PAGE_SIZE;
-
-	*ppBuffer = MRSTLFBAllocKernelMem( sizeof( MRSTLFB_BUFFER ) );
-	if (*ppBuffer == NULL) {
-		/* Free the allocated memory */
-		vfree(pvBuf);
-		return MRST_ERROR_OUT_OF_MEMORY;
-	}
-
-	(*ppBuffer)->sCPUVAddr = pvBuf;
-	(*ppBuffer)->ui32BufferSize = ui32Size;
-	(*ppBuffer)->uSysAddr.psNonCont = MRSTLFBAllocKernelMem( sizeof( IMG_SYS_PHYADDR ) * ulPagesNumber);
-
-	if ((*ppBuffer)->uSysAddr.psNonCont == NULL) {
-		/* Free the allocated memory */
-		vfree(pvBuf);
-		MRSTLFBFreeKernelMem(*ppBuffer);
-		*ppBuffer = NULL;
-		return MRST_ERROR_OUT_OF_MEMORY;
-	}
-
-	(*ppBuffer)->bIsAllocated = MRST_TRUE;
-	(*ppBuffer)->bIsContiguous = MRST_FALSE;
-	(*ppBuffer)->ui32OwnerTaskID = task_tgid_nr(current);
-
-	i = 0;
-	for(ulCounter = 0; ulCounter < ui32Size; ulCounter += PAGE_SIZE)
-	{
-		(*ppBuffer)->uSysAddr.psNonCont[i++].uiAddr = vmalloc_to_pfn( pvBuf + ulCounter ) << PAGE_SHIFT;
-	}
-
-	ret = psb_gtt_map_pvr_memory(dev, (unsigned int)*ppBuffer,
-					(*ppBuffer)->ui32OwnerTaskID,
-					(IMG_CPU_PHYADDR*) (*ppBuffer)->uSysAddr.psNonCont,
-					ulPagesNumber, &(*ppBuffer)->sDevVAddr.uiAddr );
-	if (ret == 0) {
-		(*ppBuffer)->sDevVAddr.uiAddr <<= PAGE_SHIFT;
-
-		return MRST_OK;
-	} else {
-		vfree(pvBuf);
-		MRSTLFBFreeKernelMem((*ppBuffer)->uSysAddr.psNonCont);
-		MRSTLFBFreeKernelMem(*ppBuffer);
-		*ppBuffer = NULL;
-		return MRST_ERROR_OUT_OF_MEMORY;	
-	}
-}
-
-int MRSTLFBFreeBuffer(struct drm_device *dev, MRSTLFB_BUFFER **ppBuffer)
-{
-	if((*ppBuffer == NULL) || !(*ppBuffer)->bIsAllocated )
-		return MRST_ERROR_INVALID_PARAMS;
-
-	psb_gtt_unmap_pvr_memory(dev, (unsigned int)*ppBuffer,
-				 (*ppBuffer)->ui32OwnerTaskID);
-
-	vfree( (*ppBuffer)->sCPUVAddr );
-
-	MRSTLFBFreeKernelMem( (*ppBuffer)->uSysAddr.psNonCont );
-
-	MRSTLFBFreeKernelMem( *ppBuffer);
-
-	*ppBuffer = NULL;
-
-	return MRST_OK;
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/mrstlfb_linux.c b/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/mrstlfb_linux.c
deleted file mode 100644
index 080b0cc..0000000
--- a/drivers/staging/cdv/pvr/services4/3rdparty/linux_framebuffer_mrst/mrstlfb_linux.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful but, except
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
- *
- ******************************************************************************/
-
-#include <linux/version.h>
-
-#include <linux/pci.h>
-#include <linux/slab.h>
-#include <linux/errno.h>
-#include <linux/interrupt.h>
-
-#include <drm/drmP.h>
-
-#include <asm/io.h>
-
-#include "img_defs.h"
-#include "servicesext.h"
-#include "kerneldisplay.h"
-#include "pvrmodule.h"
-#include "pvr_drm.h"
-#include "mrstlfb.h"
-#include "kerneldisplay.h"
-#include "psb_irq.h"
-
-#include "psb_drv.h"
-
-#define	MAKESTRING(x) # x
-
-#if !defined(DISPLAY_CONTROLLER)
-#define DISPLAY_CONTROLLER pvrlfb
-#endif
-
-//#define MAKENAME_HELPER(x, y) x ## y
-//#define	MAKENAME2(x, y) MAKENAME_HELPER(x, y)
-//#define	MAKENAME(x) MAKENAME2(DISPLAY_CONTROLLER, x)
-
-#define unref__ __attribute__ ((unused))
-
-
-extern int fb_idx;
-
-void *MRSTLFBAllocKernelMem(unsigned long ulSize)
-{
-	return kmalloc(ulSize, GFP_KERNEL);
-}
-
-void MRSTLFBFreeKernelMem(void *pvMem)
-{
-	kfree(pvMem);
-}
-
-
-MRST_ERROR MRSTLFBGetLibFuncAddr (char *szFunctionName, PFN_DC_GET_PVRJTABLE *ppfnFuncTable)
-{
-	if(strcmp("PVRGetDisplayClassJTable", szFunctionName) != 0)
-	{
-		return (MRST_ERROR_INVALID_PARAMS);
-	}
-
-
-	*ppfnFuncTable = PVRGetDisplayClassJTable;
-
-	return (MRST_OK);
-}
-
-static void MRSTLFBVSyncWriteReg(MRSTLFB_DEVINFO *psDevInfo, unsigned long ulOffset, unsigned long ulValue)
-{
-
-	void *pvRegAddr = (void *)(psDevInfo->pvRegs + ulOffset);
-	mb();
-	iowrite32(ulValue, pvRegAddr);
-}
-
-unsigned long MRSTLFBVSyncReadReg(MRSTLFB_DEVINFO * psDevinfo, unsigned long ulOffset)
-{
-	mb();
-	return ioread32((char *)psDevinfo->pvRegs + ulOffset);
-}
-
-void MRSTLFBEnableVSyncInterrupt(MRSTLFB_DEVINFO * psDevinfo)
-{
-#if defined(MRST_USING_INTERRUPTS)
-    struct drm_psb_private *dev_priv =
-	(struct drm_psb_private *) psDevinfo->psDrmDevice->dev_private;
-    dev_priv->vblanksEnabledForFlips = true;
-    psb_enable_vblank(psDevinfo->psDrmDevice, psDevinfo->ui32MainPipe);
-#endif
-}
-
-void MRSTLFBDisableVSyncInterrupt(MRSTLFB_DEVINFO * psDevinfo)
-{
-#if defined(MRST_USING_INTERRUPTS)
-    struct drm_device * dev = psDevinfo->psDrmDevice;
-    struct drm_psb_private *dev_priv =
-	(struct drm_psb_private *) psDevinfo->psDrmDevice->dev_private;
-    dev_priv->vblanksEnabledForFlips = false;
-    if (!dev->vblank_enabled[psDevinfo->ui32MainPipe])
-	psb_disable_vblank(psDevinfo->psDrmDevice, psDevinfo->ui32MainPipe);
-#endif
-}
-
-#if defined(MRST_USING_INTERRUPTS)
-MRST_ERROR MRSTLFBInstallVSyncISR(MRSTLFB_DEVINFO *psDevInfo, MRSTLFB_VSYNC_ISR_PFN pVsyncHandler)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) psDevInfo->psDrmDevice->dev_private;
-	dev_priv->psb_vsync_handler = pVsyncHandler;
-	return (MRST_OK);
-}
-
-
-MRST_ERROR MRSTLFBUninstallVSyncISR(MRSTLFB_DEVINFO	*psDevInfo)
-{
-	struct drm_psb_private *dev_priv =
-	    (struct drm_psb_private *) psDevInfo->psDrmDevice->dev_private;
-	dev_priv->psb_vsync_handler = NULL;
-	return (MRST_OK);
-}
-#endif 
-
-
-void MRSTLFBFlipToSurface(MRSTLFB_DEVINFO *psDevInfo,  unsigned long uiAddr)
-{
-	int dspbase = (psDevInfo->ui32MainPipe == 0 ? DSPABASE : DSPBBASE);
-	int dspsurf = (psDevInfo->ui32MainPipe == 0 ? DSPASURF : DSPBSURF);
-
-	if (IS_CDV(psDevInfo->psDrmDevice)) {
-		dspsurf = DSPASURF;
-		MRSTLFBVSyncWriteReg(psDevInfo, dspsurf, uiAddr);
-
-		dspsurf = DSPBSURF;
-		MRSTLFBVSyncWriteReg(psDevInfo, dspsurf, uiAddr);
-	} else {
-		MRSTLFBVSyncWriteReg(psDevInfo, dspbase, uiAddr);
-	}
-}
-
-
-int PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Init)(struct drm_device unref__ *dev)
-{
-	if(MRSTLFBInit(dev) != MRST_OK)
-	{
-		printk(KERN_WARNING DRIVER_PREFIX ": MRSTLFB_Init: MRSTLFBInit failed\n");
-		return -ENODEV;
-	}
-
-	return 0;
-}
-
-void PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Cleanup)(struct drm_device unref__ *dev)
-{    
-	if(MRSTLFBDeinit() != MRST_OK)
-	{
-		printk(KERN_WARNING DRIVER_PREFIX "%s: can't deinit device\n", __FUNCTION__);
-	}
-}
-
-int PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Suspend)(struct drm_device unref__ *dev)
-{
-	MRSTLFBSuspend();
-
-	return 0;
-}
-
-int PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Resume)(struct drm_device unref__ *dev)
-{
-	MRSTLFBResume();
-
-	return 0;
-}
diff --git a/drivers/staging/cdv/pvr/services4/include/env/linux-intel/pvr_drm_shared.h b/drivers/staging/cdv/pvr/services4/include/env/linux-intel/pvr_drm_shared.h
deleted file mode 100644
index 5510cf9..0000000
--- a/drivers/staging/cdv/pvr/services4/include/env/linux-intel/pvr_drm_shared.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful but, except
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
- *
- ******************************************************************************/
-
-#if !defined(__PVR_DRM_SHARED_H__)
-#define __PVR_DRM_SHARED_H__
-
-#define PVR_DRM_SRVKM_CMD	0x12
-#define	PVR_DRM_DISP_CMD	0x13
-#define	PVR_DRM_BC_CMD		0x14
-#define PVR_DRM_IS_MASTER_CMD	0x15
-#define PVR_DRM_UNPRIV_CMD	0x16
-#define PVR_DRM_DBGDRV_CMD	0x1E
-
-#define	PVR_DRM_UNPRIV_INIT_SUCCESFUL	0
-#define	PVR_DRM_UNPRIV_BUSID_TYPE	1
-#define	PVR_DRM_UNPRIV_BUSID_FIELD	2
-
-#define	PVR_DRM_BUS_TYPE_PCI		0
-
-#define	PVR_DRM_PCI_DOMAIN		0
-#define	PVR_DRM_PCI_BUS			1
-#define	PVR_DRM_PCI_DEV			2
-#define	PVR_DRM_PCI_FUNC		3
-
-#endif
-
-
diff --git a/drivers/staging/cdv/pvr/services4/include/env/linux/pvr_drm_shared.h b/drivers/staging/cdv/pvr/services4/include/env/linux/pvr_drm_shared.h
deleted file mode 100644
index 5510cf9..0000000
--- a/drivers/staging/cdv/pvr/services4/include/env/linux/pvr_drm_shared.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful but, except
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
- *
- ******************************************************************************/
-
-#if !defined(__PVR_DRM_SHARED_H__)
-#define __PVR_DRM_SHARED_H__
-
-#define PVR_DRM_SRVKM_CMD	0x12
-#define	PVR_DRM_DISP_CMD	0x13
-#define	PVR_DRM_BC_CMD		0x14
-#define PVR_DRM_IS_MASTER_CMD	0x15
-#define PVR_DRM_UNPRIV_CMD	0x16
-#define PVR_DRM_DBGDRV_CMD	0x1E
-
-#define	PVR_DRM_UNPRIV_INIT_SUCCESFUL	0
-#define	PVR_DRM_UNPRIV_BUSID_TYPE	1
-#define	PVR_DRM_UNPRIV_BUSID_FIELD	2
-
-#define	PVR_DRM_BUS_TYPE_PCI		0
-
-#define	PVR_DRM_PCI_DOMAIN		0
-#define	PVR_DRM_PCI_BUS			1
-#define	PVR_DRM_PCI_DEV			2
-#define	PVR_DRM_PCI_FUNC		3
-
-#endif
-
-
diff --git a/drivers/staging/cdv/pvr/services4/include/kernelbuffer.h b/drivers/staging/cdv/pvr/services4/include/kernelbuffer.h
deleted file mode 100644
index 4cd36d2..0000000
--- a/drivers/staging/cdv/pvr/services4/include/kernelbuffer.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined (__KERNELBUFFER_H__)
-#define __KERNELBUFFER_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-typedef PVRSRV_ERROR (*PFN_OPEN_BC_DEVICE)(IMG_UINT32, IMG_HANDLE*);
-typedef PVRSRV_ERROR (*PFN_CLOSE_BC_DEVICE)(IMG_UINT32, IMG_HANDLE);
-typedef PVRSRV_ERROR (*PFN_GET_BC_INFO)(IMG_HANDLE, BUFFER_INFO*);
-typedef PVRSRV_ERROR (*PFN_GET_BC_BUFFER)(IMG_HANDLE, IMG_UINT32, PVRSRV_SYNC_DATA*, IMG_HANDLE*);
-
-typedef struct PVRSRV_BC_SRV2BUFFER_KMJTABLE_TAG
-{
-	IMG_UINT32							ui32TableSize;
-	PFN_OPEN_BC_DEVICE					pfnOpenBCDevice;
-	PFN_CLOSE_BC_DEVICE					pfnCloseBCDevice;
-	PFN_GET_BC_INFO						pfnGetBCInfo;
-	PFN_GET_BC_BUFFER					pfnGetBCBuffer;
-	PFN_GET_BUFFER_ADDR					pfnGetBufferAddr;
-
-} PVRSRV_BC_SRV2BUFFER_KMJTABLE;
-
-
-typedef PVRSRV_ERROR (*PFN_BC_REGISTER_BUFFER_DEV)(PVRSRV_BC_SRV2BUFFER_KMJTABLE*, IMG_UINT32*);
-typedef IMG_VOID (*PFN_BC_SCHEDULE_DEVICES)(IMG_VOID);
-typedef PVRSRV_ERROR (*PFN_BC_REMOVE_BUFFER_DEV)(IMG_UINT32);	
-
-typedef struct PVRSRV_BC_BUFFER2SRV_KMJTABLE_TAG
-{
-	IMG_UINT32							ui32TableSize;
-	PFN_BC_REGISTER_BUFFER_DEV			pfnPVRSRVRegisterBCDevice;
-	PFN_BC_SCHEDULE_DEVICES				pfnPVRSRVScheduleDevices;
-	PFN_BC_REMOVE_BUFFER_DEV			pfnPVRSRVRemoveBCDevice;
-
-} PVRSRV_BC_BUFFER2SRV_KMJTABLE, *PPVRSRV_BC_BUFFER2SRV_KMJTABLE;
-
-typedef IMG_BOOL (*PFN_BC_GET_PVRJTABLE) (PPVRSRV_BC_BUFFER2SRV_KMJTABLE); 
-
-IMG_IMPORT IMG_BOOL PVRGetBufferClassJTable(PVRSRV_BC_BUFFER2SRV_KMJTABLE *psJTable);
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif
diff --git a/drivers/staging/cdv/pvr/services4/include/kerneldisplay.h b/drivers/staging/cdv/pvr/services4/include/kerneldisplay.h
deleted file mode 100644
index cdbef00..0000000
--- a/drivers/staging/cdv/pvr/services4/include/kerneldisplay.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined (__KERNELDISPLAY_H__)
-#define __KERNELDISPLAY_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-typedef PVRSRV_ERROR (*PFN_OPEN_DC_DEVICE)(IMG_UINT32, IMG_HANDLE*, PVRSRV_SYNC_DATA*);
-typedef PVRSRV_ERROR (*PFN_CLOSE_DC_DEVICE)(IMG_HANDLE);
-typedef PVRSRV_ERROR (*PFN_ENUM_DC_FORMATS)(IMG_HANDLE, IMG_UINT32*, DISPLAY_FORMAT*);
-typedef PVRSRV_ERROR (*PFN_ENUM_DC_DIMS)(IMG_HANDLE,
-										 DISPLAY_FORMAT*,
-										 IMG_UINT32*,
-										 DISPLAY_DIMS*);
-typedef PVRSRV_ERROR (*PFN_GET_DC_SYSTEMBUFFER)(IMG_HANDLE, IMG_HANDLE*);
-typedef PVRSRV_ERROR (*PFN_GET_DC_INFO)(IMG_HANDLE, DISPLAY_INFO*);
-typedef PVRSRV_ERROR (*PFN_CREATE_DC_SWAPCHAIN)(IMG_HANDLE,
-												IMG_UINT32, 
-												DISPLAY_SURF_ATTRIBUTES*, 
-												DISPLAY_SURF_ATTRIBUTES*,
-												IMG_UINT32, 
-												PVRSRV_SYNC_DATA**,
-												IMG_UINT32,
-												IMG_HANDLE*, 
-												IMG_UINT32*);
-typedef PVRSRV_ERROR (*PFN_DESTROY_DC_SWAPCHAIN)(IMG_HANDLE, 
-												 IMG_HANDLE);
-typedef PVRSRV_ERROR (*PFN_SET_DC_DSTRECT)(IMG_HANDLE, IMG_HANDLE, IMG_RECT*);
-typedef PVRSRV_ERROR (*PFN_SET_DC_SRCRECT)(IMG_HANDLE, IMG_HANDLE, IMG_RECT*);
-typedef PVRSRV_ERROR (*PFN_SET_DC_DSTCK)(IMG_HANDLE, IMG_HANDLE, IMG_UINT32);
-typedef PVRSRV_ERROR (*PFN_SET_DC_SRCCK)(IMG_HANDLE, IMG_HANDLE, IMG_UINT32);
-typedef PVRSRV_ERROR (*PFN_GET_DC_BUFFERS)(IMG_HANDLE,
-										   IMG_HANDLE,
-										   IMG_UINT32*,
-										   IMG_HANDLE*);
-typedef PVRSRV_ERROR (*PFN_SWAP_TO_DC_BUFFER)(IMG_HANDLE,
-											  IMG_HANDLE,
-											  IMG_UINT32,
-											  IMG_HANDLE,
-											  IMG_UINT32,
-											  IMG_RECT*);
-typedef PVRSRV_ERROR (*PFN_SWAP_TO_DC_SYSTEM)(IMG_HANDLE, IMG_HANDLE);
-typedef IMG_VOID (*PFN_QUERY_SWAP_COMMAND_ID)(IMG_HANDLE, IMG_HANDLE, IMG_HANDLE, IMG_HANDLE, IMG_UINT16*, IMG_BOOL*);
-typedef IMG_VOID (*PFN_SET_DC_STATE)(IMG_HANDLE, IMG_UINT32);
-
-typedef struct PVRSRV_DC_SRV2DISP_KMJTABLE_TAG
-{
-	IMG_UINT32						ui32TableSize;
-	PFN_OPEN_DC_DEVICE				pfnOpenDCDevice;
-	PFN_CLOSE_DC_DEVICE				pfnCloseDCDevice;
-	PFN_ENUM_DC_FORMATS				pfnEnumDCFormats;
-	PFN_ENUM_DC_DIMS				pfnEnumDCDims;
-	PFN_GET_DC_SYSTEMBUFFER			pfnGetDCSystemBuffer;
-	PFN_GET_DC_INFO					pfnGetDCInfo;
-	PFN_GET_BUFFER_ADDR				pfnGetBufferAddr;
-	PFN_CREATE_DC_SWAPCHAIN			pfnCreateDCSwapChain;
-	PFN_DESTROY_DC_SWAPCHAIN		pfnDestroyDCSwapChain;
-	PFN_SET_DC_DSTRECT				pfnSetDCDstRect;
-	PFN_SET_DC_SRCRECT				pfnSetDCSrcRect;
-	PFN_SET_DC_DSTCK				pfnSetDCDstColourKey;
-	PFN_SET_DC_SRCCK				pfnSetDCSrcColourKey;
-	PFN_GET_DC_BUFFERS				pfnGetDCBuffers;
-	PFN_SWAP_TO_DC_BUFFER			pfnSwapToDCBuffer;
-	PFN_SWAP_TO_DC_SYSTEM			pfnSwapToDCSystem;
-	PFN_SET_DC_STATE				pfnSetDCState;
-	PFN_QUERY_SWAP_COMMAND_ID		pfnQuerySwapCommandID;
-
-} PVRSRV_DC_SRV2DISP_KMJTABLE;
-
-typedef IMG_BOOL (*PFN_ISR_HANDLER)(IMG_VOID*);
-
-typedef PVRSRV_ERROR (*PFN_DC_REGISTER_DISPLAY_DEV)(PVRSRV_DC_SRV2DISP_KMJTABLE*, IMG_UINT32*);
-typedef PVRSRV_ERROR (*PFN_DC_REMOVE_DISPLAY_DEV)(IMG_UINT32);
-typedef PVRSRV_ERROR (*PFN_DC_OEM_FUNCTION)(IMG_UINT32, IMG_VOID*, IMG_UINT32, IMG_VOID*, IMG_UINT32);
-typedef PVRSRV_ERROR (*PFN_DC_REGISTER_COMMANDPROCLIST)(IMG_UINT32, PPFN_CMD_PROC,IMG_UINT32[][2], IMG_UINT32);
-typedef PVRSRV_ERROR (*PFN_DC_REMOVE_COMMANDPROCLIST)(IMG_UINT32, IMG_UINT32);
-typedef IMG_VOID (*PFN_DC_CMD_COMPLETE)(IMG_HANDLE, IMG_BOOL);
-typedef PVRSRV_ERROR (*PFN_DC_REGISTER_SYS_ISR)(PFN_ISR_HANDLER, IMG_VOID*, IMG_UINT32, IMG_UINT32);
-typedef PVRSRV_ERROR (*PFN_DC_REGISTER_POWER)(IMG_UINT32, PFN_PRE_POWER, PFN_POST_POWER,
-											  PFN_PRE_CLOCKSPEED_CHANGE, PFN_POST_CLOCKSPEED_CHANGE,
-											  IMG_HANDLE, PVRSRV_DEV_POWER_STATE, PVRSRV_DEV_POWER_STATE);
-
-typedef struct PVRSRV_DC_DISP2SRV_KMJTABLE_TAG
-{
-	IMG_UINT32						ui32TableSize;
-	PFN_DC_REGISTER_DISPLAY_DEV		pfnPVRSRVRegisterDCDevice;
-	PFN_DC_REMOVE_DISPLAY_DEV		pfnPVRSRVRemoveDCDevice;
-	PFN_DC_OEM_FUNCTION				pfnPVRSRVOEMFunction;
-	PFN_DC_REGISTER_COMMANDPROCLIST	pfnPVRSRVRegisterCmdProcList;
-	PFN_DC_REMOVE_COMMANDPROCLIST	pfnPVRSRVRemoveCmdProcList;
-	PFN_DC_CMD_COMPLETE				pfnPVRSRVCmdComplete;
-	PFN_DC_REGISTER_SYS_ISR			pfnPVRSRVRegisterSystemISRHandler;
-	PFN_DC_REGISTER_POWER			pfnPVRSRVRegisterPowerDevice;
-	PFN_DC_CMD_COMPLETE				pfnPVRSRVFreeCmdCompletePacket;
-} PVRSRV_DC_DISP2SRV_KMJTABLE, *PPVRSRV_DC_DISP2SRV_KMJTABLE;
-
-
-typedef struct DISPLAYCLASS_FLIP_COMMAND_TAG
-{
-	
-	IMG_HANDLE hExtDevice;
-
-	
-	IMG_HANDLE hExtSwapChain;
-
-	
-	IMG_HANDLE hExtBuffer;
-
-	
-	IMG_HANDLE hPrivateTag;
-
-	
-	IMG_UINT32 ui32ClipRectCount;
-
-	
-	IMG_RECT *psClipRect;
-
-	
-	IMG_UINT32	ui32SwapInterval;
-
-} DISPLAYCLASS_FLIP_COMMAND;
-
-#define DC_FLIP_COMMAND		0
-
-#define DC_STATE_NO_FLUSH_COMMANDS		0
-#define DC_STATE_FLUSH_COMMANDS			1
-
-
-typedef IMG_BOOL (*PFN_DC_GET_PVRJTABLE)(PPVRSRV_DC_DISP2SRV_KMJTABLE);
-
-IMG_IMPORT IMG_BOOL PVRGetDisplayClassJTable(PVRSRV_DC_DISP2SRV_KMJTABLE *psJTable);
-
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif
-
diff --git a/drivers/staging/cdv/pvr/services4/include/pdump.h b/drivers/staging/cdv/pvr/services4/include/pdump.h
deleted file mode 100644
index c41a6d4..0000000
--- a/drivers/staging/cdv/pvr/services4/include/pdump.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _SERVICES_PDUMP_H_
-#define _SERVICES_PDUMP_H_
-
-#define PDUMP_FLAGS_NEVER			0x08000000U
-#define PDUMP_FLAGS_LASTFRAME		0x10000000U
-#define PDUMP_FLAGS_RESETLFBUFFER	0x20000000U
-#define PDUMP_FLAGS_CONTINUOUS		0x40000000U
-#define PDUMP_FLAGS_PERSISTENT		0x80000000U
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/include/pvr_bridge.h b/drivers/staging/cdv/pvr/services4/include/pvr_bridge.h
deleted file mode 100644
index f170015..0000000
--- a/drivers/staging/cdv/pvr/services4/include/pvr_bridge.h
+++ /dev/null
@@ -1,1784 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __PVR_BRIDGE_H__
-#define __PVR_BRIDGE_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#include "servicesint.h"
-
-#ifdef __linux__
-
-		#include <linux/ioctl.h>
-    
-    #define PVRSRV_IOC_GID      'g'
-    #define PVRSRV_IO(INDEX)    _IO(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE)
-    #define PVRSRV_IOW(INDEX)   _IOW(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE)
-    #define PVRSRV_IOR(INDEX)   _IOR(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE)
-    #define PVRSRV_IOWR(INDEX)  _IOWR(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE)
-
-#else 
-
-		#if defined(__QNXNTO__)
-			#define PVRSRV_IOC_GID      (0x0UL)
-		#else
-			#error Unknown platform: Cannot define ioctls
-		#endif
-
-	#define PVRSRV_IO(INDEX)    (PVRSRV_IOC_GID + (INDEX))
-	#define PVRSRV_IOW(INDEX)   (PVRSRV_IOC_GID + (INDEX))
-	#define PVRSRV_IOR(INDEX)   (PVRSRV_IOC_GID + (INDEX))
-	#define PVRSRV_IOWR(INDEX)  (PVRSRV_IOC_GID + (INDEX))
-
-	#define PVRSRV_BRIDGE_BASE                  PVRSRV_IOC_GID
-#endif 
-
-
-#define PVRSRV_BRIDGE_CORE_CMD_FIRST			0UL
-#define PVRSRV_BRIDGE_ENUM_DEVICES				PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+0)	
-#define PVRSRV_BRIDGE_ACQUIRE_DEVICEINFO		PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+1)	
-#define PVRSRV_BRIDGE_RELEASE_DEVICEINFO		PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+2)	
-#define PVRSRV_BRIDGE_CREATE_DEVMEMCONTEXT		PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+3)	
-#define PVRSRV_BRIDGE_DESTROY_DEVMEMCONTEXT		PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+4)	
-#define PVRSRV_BRIDGE_GET_DEVMEM_HEAPINFO		PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+5)	
-#define PVRSRV_BRIDGE_ALLOC_DEVICEMEM			PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+6)	
-#define PVRSRV_BRIDGE_FREE_DEVICEMEM			PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+7)	
-#define PVRSRV_BRIDGE_GETFREE_DEVICEMEM			PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+8)	
-#define PVRSRV_BRIDGE_CREATE_COMMANDQUEUE		PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+9)	
-#define PVRSRV_BRIDGE_DESTROY_COMMANDQUEUE		PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+10)	
-#define	PVRSRV_BRIDGE_MHANDLE_TO_MMAP_DATA		PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+11)   
-#define PVRSRV_BRIDGE_CONNECT_SERVICES			PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+12)	
-#define PVRSRV_BRIDGE_DISCONNECT_SERVICES		PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+13)	
-#define PVRSRV_BRIDGE_WRAP_DEVICE_MEM			PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+14)	
-#define PVRSRV_BRIDGE_GET_DEVICEMEMINFO			PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+15)	
-#define PVRSRV_BRIDGE_RESERVE_DEV_VIRTMEM		PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+16)
-#define PVRSRV_BRIDGE_FREE_DEV_VIRTMEM			PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+17)
-#define PVRSRV_BRIDGE_MAP_EXT_MEMORY			PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+18)
-#define PVRSRV_BRIDGE_UNMAP_EXT_MEMORY			PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+19)
-#define PVRSRV_BRIDGE_MAP_DEV_MEMORY			PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+20)
-#define PVRSRV_BRIDGE_UNMAP_DEV_MEMORY			PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+21)
-#define PVRSRV_BRIDGE_MAP_DEVICECLASS_MEMORY	PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+22)
-#define PVRSRV_BRIDGE_UNMAP_DEVICECLASS_MEMORY	PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+23)
-#define PVRSRV_BRIDGE_MAP_MEM_INFO_TO_USER		PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+24)
-#define PVRSRV_BRIDGE_UNMAP_MEM_INFO_FROM_USER	PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+25)
-#define PVRSRV_BRIDGE_EXPORT_DEVICEMEM			PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+26)
-#define PVRSRV_BRIDGE_RELEASE_MMAP_DATA			PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+27)
-#define PVRSRV_BRIDGE_CHG_DEV_MEM_ATTRIBS		PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+28)
-#define PVRSRV_BRIDGE_MAP_DEV_MEMORY_2			PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+29)
-#define PVRSRV_BRIDGE_EXPORT_DEVICEMEM_2		PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+30)
-#define PVRSRV_BRIDGE_CORE_CMD_LAST				(PVRSRV_BRIDGE_CORE_CMD_FIRST+30)
-
-#define PVRSRV_BRIDGE_SIM_CMD_FIRST				(PVRSRV_BRIDGE_CORE_CMD_LAST+1)
-#define PVRSRV_BRIDGE_PROCESS_SIMISR_EVENT		PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+0)	
-#define PVRSRV_BRIDGE_REGISTER_SIM_PROCESS		PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+1)	
-#define PVRSRV_BRIDGE_UNREGISTER_SIM_PROCESS	PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+2)	
-#define PVRSRV_BRIDGE_SIM_CMD_LAST				(PVRSRV_BRIDGE_SIM_CMD_FIRST+2)
-
-#define PVRSRV_BRIDGE_MAPPING_CMD_FIRST			(PVRSRV_BRIDGE_SIM_CMD_LAST+1)
-#define PVRSRV_BRIDGE_MAPPHYSTOUSERSPACE		PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+0)	
-#define PVRSRV_BRIDGE_UNMAPPHYSTOUSERSPACE		PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+1)	
-#define PVRSRV_BRIDGE_GETPHYSTOUSERSPACEMAP		PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+2)	
-#define PVRSRV_BRIDGE_MAPPING_CMD_LAST			(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+2)
-
-#define PVRSRV_BRIDGE_STATS_CMD_FIRST			(PVRSRV_BRIDGE_MAPPING_CMD_LAST+1)
-#define	PVRSRV_BRIDGE_GET_FB_STATS				PVRSRV_IOWR(PVRSRV_BRIDGE_STATS_CMD_FIRST+0)	
-#define PVRSRV_BRIDGE_STATS_CMD_LAST			(PVRSRV_BRIDGE_STATS_CMD_FIRST+0)
-
-#define PVRSRV_BRIDGE_MISC_CMD_FIRST			(PVRSRV_BRIDGE_STATS_CMD_LAST+1)
-#define PVRSRV_BRIDGE_GET_MISC_INFO				PVRSRV_IOWR(PVRSRV_BRIDGE_MISC_CMD_FIRST+0)	
-#define PVRSRV_BRIDGE_RELEASE_MISC_INFO			PVRSRV_IOWR(PVRSRV_BRIDGE_MISC_CMD_FIRST+1)	
-#define PVRSRV_BRIDGE_MISC_CMD_LAST				(PVRSRV_BRIDGE_MISC_CMD_FIRST+1)
-
-#if defined (SUPPORT_OVERLAY_ROTATE_BLIT)
-#define PVRSRV_BRIDGE_OVERLAY_CMD_FIRST			(PVRSRV_BRIDGE_MISC_CMD_LAST+1)
-#define PVRSRV_BRIDGE_INIT_3D_OVL_BLT_RES		PVRSRV_IOWR(PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+0)	
-#define PVRSRV_BRIDGE_DEINIT_3D_OVL_BLT_RES		PVRSRV_IOWR(PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+1)	
-#define PVRSRV_BRIDGE_OVERLAY_CMD_LAST			(PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+1)
-#else
-#define PVRSRV_BRIDGE_OVERLAY_CMD_LAST			PVRSRV_BRIDGE_MISC_CMD_LAST
-#endif
-
-#if defined(PDUMP)
-#define PVRSRV_BRIDGE_PDUMP_CMD_FIRST			(PVRSRV_BRIDGE_OVERLAY_CMD_LAST+1)
-#define PVRSRV_BRIDGE_PDUMP_INIT			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+0)	
-#define PVRSRV_BRIDGE_PDUMP_MEMPOL			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+1)	
-#define PVRSRV_BRIDGE_PDUMP_DUMPMEM			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+2)	
-#define PVRSRV_BRIDGE_PDUMP_REG				PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+3)	
-#define PVRSRV_BRIDGE_PDUMP_REGPOL			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+4)	
-#define PVRSRV_BRIDGE_PDUMP_COMMENT			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+5)	
-#define PVRSRV_BRIDGE_PDUMP_SETFRAME			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+6)	
-#define PVRSRV_BRIDGE_PDUMP_ISCAPTURING			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+7)	
-#define PVRSRV_BRIDGE_PDUMP_DUMPBITMAP			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+8)	
-#define PVRSRV_BRIDGE_PDUMP_DUMPREADREG			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+9)	
-#define PVRSRV_BRIDGE_PDUMP_SYNCPOL			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+10)	
-#define PVRSRV_BRIDGE_PDUMP_DUMPSYNC			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+11)	
-#define PVRSRV_BRIDGE_PDUMP_MEMPAGES			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+12)	
-#define PVRSRV_BRIDGE_PDUMP_DRIVERINFO			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+13)	
-#define PVRSRV_BRIDGE_PDUMP_DUMPPDDEVPADDR		PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+15)	
-#define PVRSRV_BRIDGE_PDUMP_CYCLE_COUNT_REG_READ	PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+16)
-#define PVRSRV_BRIDGE_PDUMP_STARTINITPHASE			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+17)
-#define PVRSRV_BRIDGE_PDUMP_STOPINITPHASE			PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+18)
-#define PVRSRV_BRIDGE_PDUMP_CMD_LAST			(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+18)
-#else
-#define PVRSRV_BRIDGE_PDUMP_CMD_LAST			PVRSRV_BRIDGE_OVERLAY_CMD_LAST
-#endif
-
-#define PVRSRV_BRIDGE_OEM_CMD_FIRST				(PVRSRV_BRIDGE_PDUMP_CMD_LAST+1)
-#define PVRSRV_BRIDGE_GET_OEMJTABLE				PVRSRV_IOWR(PVRSRV_BRIDGE_OEM_CMD_FIRST+0)	
-#define PVRSRV_BRIDGE_OEM_CMD_LAST				(PVRSRV_BRIDGE_OEM_CMD_FIRST+0)
-
-#define PVRSRV_BRIDGE_DEVCLASS_CMD_FIRST		(PVRSRV_BRIDGE_OEM_CMD_LAST+1)
-#define PVRSRV_BRIDGE_ENUM_CLASS				PVRSRV_IOWR(PVRSRV_BRIDGE_DEVCLASS_CMD_FIRST+0)
-#define PVRSRV_BRIDGE_DEVCLASS_CMD_LAST			(PVRSRV_BRIDGE_DEVCLASS_CMD_FIRST+0)
-
-#define PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST		(PVRSRV_BRIDGE_DEVCLASS_CMD_LAST+1)
-#define PVRSRV_BRIDGE_OPEN_DISPCLASS_DEVICE		PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+0)
-#define PVRSRV_BRIDGE_CLOSE_DISPCLASS_DEVICE	PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+1)
-#define PVRSRV_BRIDGE_ENUM_DISPCLASS_FORMATS	PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+2)
-#define PVRSRV_BRIDGE_ENUM_DISPCLASS_DIMS		PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+3)
-#define PVRSRV_BRIDGE_GET_DISPCLASS_SYSBUFFER	PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+4)
-#define PVRSRV_BRIDGE_GET_DISPCLASS_INFO		PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+5)
-#define PVRSRV_BRIDGE_CREATE_DISPCLASS_SWAPCHAIN		PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+6)
-#define PVRSRV_BRIDGE_DESTROY_DISPCLASS_SWAPCHAIN		PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+7)
-#define PVRSRV_BRIDGE_SET_DISPCLASS_DSTRECT		PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+8)
-#define PVRSRV_BRIDGE_SET_DISPCLASS_SRCRECT		PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+9)
-#define PVRSRV_BRIDGE_SET_DISPCLASS_DSTCOLOURKEY		PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+10)
-#define PVRSRV_BRIDGE_SET_DISPCLASS_SRCCOLOURKEY		PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+11)
-#define PVRSRV_BRIDGE_GET_DISPCLASS_BUFFERS		PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+12)
-#define PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER	PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+13)
-#define PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_SYSTEM	PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+14)
-#define PVRSRV_BRIDGE_DISPCLASS_CMD_LAST		(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+14)
-
-#define PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST		(PVRSRV_BRIDGE_DISPCLASS_CMD_LAST+1)
-#define PVRSRV_BRIDGE_OPEN_BUFFERCLASS_DEVICE	PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+0)
-#define PVRSRV_BRIDGE_CLOSE_BUFFERCLASS_DEVICE	PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+1)
-#define PVRSRV_BRIDGE_GET_BUFFERCLASS_INFO		PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+2)
-#define PVRSRV_BRIDGE_GET_BUFFERCLASS_BUFFER	PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+3)
-#define PVRSRV_BRIDGE_BUFCLASS_CMD_LAST			(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+3)
-
-#define PVRSRV_BRIDGE_WRAP_CMD_FIRST			(PVRSRV_BRIDGE_BUFCLASS_CMD_LAST+1)
-#define PVRSRV_BRIDGE_WRAP_EXT_MEMORY			PVRSRV_IOWR(PVRSRV_BRIDGE_WRAP_CMD_FIRST+0)
-#define PVRSRV_BRIDGE_UNWRAP_EXT_MEMORY			PVRSRV_IOWR(PVRSRV_BRIDGE_WRAP_CMD_FIRST+1)
-#define PVRSRV_BRIDGE_WRAP_CMD_LAST				(PVRSRV_BRIDGE_WRAP_CMD_FIRST+1)
-
-#define PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST		(PVRSRV_BRIDGE_WRAP_CMD_LAST+1)
-#define PVRSRV_BRIDGE_ALLOC_SHARED_SYS_MEM		PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+0)
-#define PVRSRV_BRIDGE_FREE_SHARED_SYS_MEM		PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+1)
-#define PVRSRV_BRIDGE_MAP_MEMINFO_MEM			PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+2)
-#define PVRSRV_BRIDGE_UNMAP_MEMINFO_MEM			PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+3)
-#define PVRSRV_BRIDGE_SHAREDMEM_CMD_LAST		(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+3)
-
-#define PVRSRV_BRIDGE_SERVICES4_TMP_CMD_FIRST	(PVRSRV_BRIDGE_SHAREDMEM_CMD_LAST+1)
-#define PVRSRV_BRIDGE_GETMMU_PD_DEVPADDR        PVRSRV_IOWR(PVRSRV_BRIDGE_SERVICES4_TMP_CMD_FIRST+0)
-#define PVRSRV_BRIDGE_SERVICES4_TMP_CMD_LAST	(PVRSRV_BRIDGE_SERVICES4_TMP_CMD_FIRST+0)
-
-#define PVRSRV_BRIDGE_INITSRV_CMD_FIRST			(PVRSRV_BRIDGE_SERVICES4_TMP_CMD_LAST+1)
-#define PVRSRV_BRIDGE_INITSRV_CONNECT			PVRSRV_IOWR(PVRSRV_BRIDGE_INITSRV_CMD_FIRST+0)
-#define PVRSRV_BRIDGE_INITSRV_DISCONNECT		PVRSRV_IOWR(PVRSRV_BRIDGE_INITSRV_CMD_FIRST+1)
-#define PVRSRV_BRIDGE_INITSRV_CMD_LAST			(PVRSRV_BRIDGE_INITSRV_CMD_FIRST+1)
-
-#define PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST	(PVRSRV_BRIDGE_INITSRV_CMD_LAST+1)
-#define PVRSRV_BRIDGE_EVENT_OBJECT_WAIT			PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+0)
-#define PVRSRV_BRIDGE_EVENT_OBJECT_OPEN			PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+1)
-#define PVRSRV_BRIDGE_EVENT_OBJECT_CLOSE		PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+2)
-#define PVRSRV_BRIDGE_EVENT_OBJECT_CMD_LAST		(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+2)
-
-#define PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST		(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_LAST+1)
-#define PVRSRV_BRIDGE_CREATE_SYNC_INFO_MOD_OBJ	PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+0)
-#define PVRSRV_BRIDGE_DESTROY_SYNC_INFO_MOD_OBJ	PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+1)
-#define PVRSRV_BRIDGE_MODIFY_PENDING_SYNC_OPS	PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+2)
-#define PVRSRV_BRIDGE_MODIFY_COMPLETE_SYNC_OPS	PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+3)
-#define PVRSRV_BRIDGE_SYNC_OPS_TAKE_TOKEN       PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+4)
-#define PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_TOKEN   PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+5)
-#define PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_MOD_OBJ	PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+6)
-#define PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_DELTA	PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+7)
-#define PVRSRV_BRIDGE_ALLOC_SYNC_INFO           PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+8)
-#define PVRSRV_BRIDGE_FREE_SYNC_INFO            PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+9)
-#define PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST			(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+9)
-
-#define PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD		(PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST+1)
-
-
-#define PVRSRV_KERNEL_MODE_CLIENT				1
-
-typedef struct PVRSRV_BRIDGE_RETURN_TAG
-{
-	PVRSRV_ERROR eError;
-	IMG_VOID *pvData;
-
-}PVRSRV_BRIDGE_RETURN;
-
-
-typedef struct PVRSRV_BRIDGE_PACKAGE_TAG
-{
-	IMG_UINT32				ui32BridgeID;			
-	IMG_UINT32				ui32Size;				
-	IMG_VOID				*pvParamIn;				
-	IMG_UINT32				ui32InBufferSize;		
-	IMG_VOID				*pvParamOut;			
-	IMG_UINT32				ui32OutBufferSize;		
-
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hKernelServices;		
-#else
-	IMG_HANDLE				hKernelServices;		
-#endif
-}PVRSRV_BRIDGE_PACKAGE;
-
-
-typedef struct PVRSRV_BRIDGE_IN_CONNECT_SERVICES_TAG
-{
-	IMG_UINT32		ui32BridgeFlags; 
-	IMG_UINT32		ui32Flags;
-} PVRSRV_BRIDGE_IN_CONNECT_SERVICES;
-
-typedef struct PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-	IMG_UINT32			uiDevIndex;
-	PVRSRV_DEVICE_TYPE	eDeviceType;
-
-} PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO;
-
-
-typedef struct PVRSRV_BRIDGE_IN_ENUMCLASS_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-	PVRSRV_DEVICE_CLASS sDeviceClass;
-} PVRSRV_BRIDGE_IN_ENUMCLASS;
-
-
-typedef struct PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDeviceKM;
-#else
-	IMG_HANDLE			hDeviceKM;
-#endif
-} PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE;
-
-
-typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDeviceKM;
-#else
-	IMG_HANDLE			hDeviceKM;
-#endif
-} PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS;
-
-
-typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDeviceKM;
-#else
-	IMG_HANDLE			hDeviceKM;
-#endif
-} PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER;
-
-
-typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDeviceKM;
-#else
-	IMG_HANDLE			hDeviceKM;
-#endif
-} PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO;
-
-
-typedef struct PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDeviceKM;
-#else
-	IMG_HANDLE			hDeviceKM;
-#endif
-} PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE;
-
-
-typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDeviceKM;
-#else
-	IMG_HANDLE			hDeviceKM;
-#endif
-} PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO;
-
-
-typedef struct PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevCookie;
-#else
-	IMG_HANDLE			hDevCookie;
-#endif
-
-} PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO;
-
-
-typedef struct PVRSRV_BRIDGE_IN_FREE_CLASSDEVICEINFO_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-	PVRSRV_DEVICE_CLASS DeviceClass;
-	IMG_VOID*			pvDevInfo;
-
-}PVRSRV_BRIDGE_IN_FREE_CLASSDEVICEINFO;
-
-
-typedef struct PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevCookie;
-	IMG_SID	 			hDevMemContext;
-#else
-	IMG_HANDLE			hDevCookie;
-	IMG_HANDLE 			hDevMemContext;
-#endif
-
-}PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO;
-
-
-typedef struct PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevCookie;
-#else
-	IMG_HANDLE			hDevCookie;
-#endif
-
-}PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT;
-
-
-typedef struct PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID 			hDevCookie;
-	IMG_SID 			hDevMemContext;
-#else
-	IMG_HANDLE 			hDevCookie;
-	IMG_HANDLE 			hDevMemContext;
-#endif
-
-}PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT;
-
-
-typedef struct PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevCookie;
-	IMG_SID				hDevMemHeap;
-#else
-	IMG_HANDLE			hDevCookie;
-	IMG_HANDLE			hDevMemHeap;
-#endif
-	IMG_UINT32			ui32Attribs;
-	IMG_SIZE_T			ui32Size;
-	IMG_SIZE_T			ui32Alignment;
-
-}PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM;
-
-typedef struct PVRSRV_BRIDGE_IN_MAPMEMINFOTOUSER_TAG
-{
-	IMG_UINT32  ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID     hKernelMemInfo;
-#else
-	PVRSRV_KERNEL_MEM_INFO	*psKernelMemInfo;
-#endif
-
-}PVRSRV_BRIDGE_IN_MAPMEMINFOTOUSER;
-
-typedef struct PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER_TAG
-{
-	IMG_UINT32      ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID         hKernelMemInfo;
-#else
-	PVRSRV_KERNEL_MEM_INFO	*psKernelMemInfo;
-#endif
-	IMG_PVOID				 pvLinAddr;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID         hMappingInfo;
-#else
-	IMG_HANDLE				 hMappingInfo;
-#endif
-
-}PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER;
-
-typedef struct PVRSRV_BRIDGE_IN_FREEDEVICEMEM_TAG
-{
-	IMG_UINT32              ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID                 hDevCookie;
-	IMG_SID                 hKernelMemInfo;
-#else
-	IMG_HANDLE				hDevCookie;
-	PVRSRV_KERNEL_MEM_INFO	*psKernelMemInfo;
-#endif
-	PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
-
-}PVRSRV_BRIDGE_IN_FREEDEVICEMEM;
-
-typedef struct PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM_TAG
-{
-	IMG_UINT32      ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID         hDevCookie;
-	IMG_SID         hKernelMemInfo;
-#else
-	IMG_HANDLE				hDevCookie;
-	PVRSRV_KERNEL_MEM_INFO	*psKernelMemInfo;
-#endif
-
-}PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM;
-
-typedef struct PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-	IMG_UINT32			ui32Flags;
-
-} PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM;
-
-typedef struct PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevCookie;
-#else
-	IMG_HANDLE			hDevCookie;
-#endif
-	IMG_SIZE_T			ui32QueueSize;
-
-}PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE;
-
-
-typedef struct PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevCookie;
-#else
-	IMG_HANDLE			hDevCookie;
-#endif
-	PVRSRV_QUEUE_INFO	*psQueueInfo;
-
-}PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE;
-
-
-typedef struct PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hMHandle;	 
-#else
-	IMG_HANDLE			hMHandle;	 
-#endif
-} PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA;
-
-
-typedef struct PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hMHandle;	 
-#else
-	IMG_HANDLE			hMHandle;	 
-#endif
-} PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA;
-
-
-typedef struct PVRSRV_BRIDGE_IN_RESERVE_DEV_VIRTMEM_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevMemHeap;
-#else
-	IMG_HANDLE			hDevMemHeap;
-#endif
-	IMG_DEV_VIRTADDR	*psDevVAddr;
-	IMG_SIZE_T			ui32Size;
-	IMG_SIZE_T			ui32Alignment;
-
-}PVRSRV_BRIDGE_IN_RESERVE_DEV_VIRTMEM;
-
-typedef struct PVRSRV_BRIDGE_OUT_CONNECT_SERVICES_TAG
-{
-	PVRSRV_ERROR    eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID         hKernelServices;
-#else
-	IMG_HANDLE		hKernelServices;
-#endif
-}PVRSRV_BRIDGE_OUT_CONNECT_SERVICES;
-
-typedef struct PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM_TAG
-{
-	PVRSRV_ERROR            eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID                 hKernelMemInfo;
-	IMG_SID                 hKernelSyncInfo;
-#else
-	PVRSRV_KERNEL_MEM_INFO	*psKernelMemInfo;
-	PVRSRV_KERNEL_SYNC_INFO	*psKernelSyncInfo;
-#endif
-	PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
-	PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
-
-}PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM;
-
-
-typedef struct PVRSRV_BRIDGE_IN_FREE_DEV_VIRTMEM_TAG
-{
-	IMG_UINT32              ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID                 hKernelMemInfo;
-#else
-	PVRSRV_KERNEL_MEM_INFO	*psKernelMemInfo;
-#endif
-	PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
-	PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
-
-}PVRSRV_BRIDGE_IN_FREE_DEV_VIRTMEM;
-
-
-typedef struct PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY_TAG
-{
-	IMG_UINT32				ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hKernelMemInfo;
-	IMG_SID					hDstDevMemHeap;
-#else
-	IMG_HANDLE				hKernelMemInfo;
-	IMG_HANDLE				hDstDevMemHeap;
-#endif
-
-}PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY_TAG
-{
-	PVRSRV_ERROR            eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID                 hDstKernelMemInfo;
-#else
-	PVRSRV_KERNEL_MEM_INFO	*psDstKernelMemInfo;
-#endif
-	PVRSRV_CLIENT_MEM_INFO  sDstClientMemInfo;
-	PVRSRV_CLIENT_SYNC_INFO sDstClientSyncInfo;
-
-}PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY;
-
-
-typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY_TAG
-{
-	IMG_UINT32              ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID                 hKernelMemInfo;
-#else
-	PVRSRV_KERNEL_MEM_INFO		*psKernelMemInfo;
-#endif
-	PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
-	PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
-
-}PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY;
-
-
-typedef struct PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY_TAG
-{
-	IMG_UINT32       ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID          hKernelMemInfo;
-#else
-	PVRSRV_KERNEL_MEM_INFO	*psKernelMemInfo;
-#endif
-	IMG_SYS_PHYADDR *psSysPAddr;
-	IMG_UINT32       ui32Flags;
-
-}PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY;
-
-typedef struct PVRSRV_BRIDGE_IN_UNMAP_EXT_MEMORY_TAG
-{
-	IMG_UINT32					ui32BridgeFlags; 
-	PVRSRV_CLIENT_MEM_INFO		sClientMemInfo;
-	PVRSRV_CLIENT_SYNC_INFO		sClientSyncInfo;
-	IMG_UINT32					ui32Flags;
-
-}PVRSRV_BRIDGE_IN_UNMAP_EXT_MEMORY;
-
-typedef struct PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY_TAG
-{
-	IMG_UINT32		ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			hDeviceClassBuffer;
-	IMG_SID			hDevMemContext;
-#else
-	IMG_HANDLE		hDeviceClassBuffer;
-	IMG_HANDLE		hDevMemContext;
-#endif
-
-}PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY_TAG
-{
-	PVRSRV_ERROR            eError;
-	PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
-	PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID                 hKernelMemInfo;
-	IMG_SID                 hMappingInfo;
-#else
-	PVRSRV_KERNEL_MEM_INFO	*psKernelMemInfo;
-	IMG_HANDLE				hMappingInfo;
-#endif
-
-}PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY;
-
-
-typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY_TAG
-{
-	IMG_UINT32              ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID                 hKernelMemInfo;
-#else
-	PVRSRV_KERNEL_MEM_INFO	*psKernelMemInfo;
-#endif
-	PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
-	PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
-
-}PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY;
-
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPOL_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelMemInfo;
-#else
-	PVRSRV_KERNEL_MEM_INFO	*psKernelMemInfo;
-#endif
-	IMG_UINT32 ui32Offset;
-	IMG_UINT32 ui32Value;
-	IMG_UINT32 ui32Mask;
-	PDUMP_POLL_OPERATOR		eOperator;
-	IMG_UINT32 ui32Flags;
-
-}PVRSRV_BRIDGE_IN_PDUMP_MEMPOL;
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelSyncInfo;
-#else
-	PVRSRV_KERNEL_SYNC_INFO	*psKernelSyncInfo;
-#endif
-	IMG_BOOL   bIsRead;
-	IMG_BOOL   bUseLastOpDumpVal;
-	IMG_UINT32 ui32Value;
-	IMG_UINT32 ui32Mask;
-
-}PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL;
-
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-	IMG_PVOID  pvLinAddr;
-	IMG_PVOID  pvAltLinAddr;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelMemInfo;
-#else
-	PVRSRV_KERNEL_MEM_INFO	*psKernelMemInfo;
-#endif
-	IMG_UINT32 ui32Offset;
-	IMG_UINT32 ui32Bytes;
-	IMG_UINT32 ui32Flags;
-
-}PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM;
-
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-	IMG_PVOID  pvAltLinAddr;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelSyncInfo;
-#else
-	PVRSRV_KERNEL_SYNC_INFO	*psKernelSyncInfo;
-#endif
-	IMG_UINT32 ui32Offset;
-	IMG_UINT32 ui32Bytes;
-
-}PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC;
-
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPREG_TAG
-{
-	IMG_UINT32		ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			hDevCookie;
-#else
-	IMG_HANDLE		hDevCookie;
-#endif
-	PVRSRV_HWREG	sHWReg;
-	IMG_UINT32		ui32Flags;
-	IMG_CHAR		szRegRegion[32];
-
-}PVRSRV_BRIDGE_IN_PDUMP_DUMPREG;
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_REGPOL_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-#else
-	IMG_HANDLE hDevCookie;
-#endif
-	PVRSRV_HWREG sHWReg;
-	IMG_UINT32 ui32Mask;
-	IMG_UINT32 ui32Flags;
-	IMG_CHAR   szRegRegion[32];
-}PVRSRV_BRIDGE_IN_PDUMP_REGPOL;
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDREG_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-	PVRSRV_HWREG sHWReg;
-	IMG_UINT32 ui32Flags;
-
-}PVRSRV_BRIDGE_IN_PDUMP_DUMPPDREG;
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevCookie;
-	IMG_SID				hKernelMemInfo;
-#else
-	IMG_HANDLE			hDevCookie;
-	IMG_HANDLE			hKernelMemInfo;
-#endif
-	IMG_DEV_PHYADDR		*pPages;
-	IMG_UINT32			ui32NumPages;
-	IMG_DEV_VIRTADDR	sDevVAddr;
-	IMG_UINT32			ui32Start;
-	IMG_UINT32			ui32Length;
-	IMG_UINT32			ui32Flags;
-
-}PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES;
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_COMMENT_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-	IMG_CHAR szComment[PVRSRV_PDUMP_MAX_COMMENT_SIZE];
-	IMG_UINT32 ui32Flags;
-
-}PVRSRV_BRIDGE_IN_PDUMP_COMMENT;
-
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_SETFRAME_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-	IMG_UINT32 ui32Frame;
-
-}PVRSRV_BRIDGE_IN_PDUMP_SETFRAME;
-
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_BITMAP_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-#else
-	IMG_HANDLE hDevCookie;
-#endif
-	IMG_CHAR   szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE];
-	IMG_UINT32 ui32FileOffset;
-	IMG_UINT32 ui32Width;
-	IMG_UINT32 ui32Height;
-	IMG_UINT32 ui32StrideInBytes;
-	IMG_DEV_VIRTADDR sDevBaseAddr;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevMemContext;
-#else
-	IMG_HANDLE hDevMemContext;
-#endif
-	IMG_UINT32 ui32Size;
-	PDUMP_PIXEL_FORMAT ePixelFormat;
-	PDUMP_MEM_FORMAT eMemFormat;
-	IMG_UINT32 ui32Flags;
-
-}PVRSRV_BRIDGE_IN_PDUMP_BITMAP;
-
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_READREG_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-#else
-	IMG_HANDLE hDevCookie;
-#endif
-	IMG_CHAR   szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE];
-	IMG_UINT32 ui32FileOffset;
-	IMG_UINT32 ui32Address;
-	IMG_UINT32 ui32Size;
-	IMG_UINT32 ui32Flags;
-	IMG_CHAR   szRegRegion[32];
-
-}PVRSRV_BRIDGE_IN_PDUMP_READREG;
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-	IMG_CHAR szString[PVRSRV_PDUMP_MAX_COMMENT_SIZE];
-	IMG_BOOL bContinuous;
-
-}PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO;
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelMemInfo;
-#else
-	IMG_HANDLE hKernelMemInfo;
-#endif
-	IMG_UINT32 ui32Offset;
-	IMG_DEV_PHYADDR sPDDevPAddr;
-}PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR;
-
-typedef struct PVRSRV_BRIDGE_PDUM_IN_CYCLE_COUNT_REG_READ_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-#else
-	IMG_HANDLE hDevCookie;
-#endif
-	IMG_UINT32 ui32RegOffset;
-	IMG_BOOL bLastFrame;
-}PVRSRV_BRIDGE_IN_PDUMP_CYCLE_COUNT_REG_READ;
-
-typedef struct PVRSRV_BRIDGE_OUT_ENUMDEVICE_TAG
-{
-	PVRSRV_ERROR eError;
-	IMG_UINT32 ui32NumDevices;
-	PVRSRV_DEVICE_IDENTIFIER asDeviceIdentifier[PVRSRV_MAX_DEVICES];
-
-}PVRSRV_BRIDGE_OUT_ENUMDEVICE;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO_TAG
-{
-
-	PVRSRV_ERROR		eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevCookie;
-#else
-	IMG_HANDLE			hDevCookie;
-#endif
-
-} PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_ENUMCLASS_TAG
-{
-	PVRSRV_ERROR eError;
-	IMG_UINT32 ui32NumDevices;
-	IMG_UINT32 ui32DevID[PVRSRV_MAX_DEVICES];
-
-}PVRSRV_BRIDGE_OUT_ENUMCLASS;
-
-
-typedef struct PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE_TAG
-{
-	IMG_UINT32		ui32BridgeFlags; 
-	IMG_UINT32		ui32DeviceID;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			hDevCookie;
-#else
-	IMG_HANDLE		hDevCookie;
-#endif
-
-}PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE;
-
-typedef struct PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE_TAG
-{
-	PVRSRV_ERROR	eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			hDeviceKM;
-#else
-	IMG_HANDLE		hDeviceKM;
-#endif
-
-}PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE;
-
-
-typedef struct PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY_TAG
-{
-	IMG_UINT32				ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID                 hDevCookie;
-	IMG_SID					hDevMemContext;
-#else
-	IMG_HANDLE              hDevCookie;
-	IMG_HANDLE				hDevMemContext;
-#endif
-	IMG_VOID				*pvLinAddr;
-	IMG_SIZE_T              ui32ByteSize;
-	IMG_SIZE_T              ui32PageOffset;
-	IMG_BOOL                bPhysContig;
-	IMG_UINT32				ui32NumPageTableEntries;
-	IMG_SYS_PHYADDR         *psSysPAddr;
-	IMG_UINT32				ui32Flags;
-
-}PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY;
-
-typedef struct PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY_TAG
-{
-	PVRSRV_ERROR	eError;
-	PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
-	PVRSRV_CLIENT_SYNC_INFO	sClientSyncInfo;
-
-}PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY;
-
-typedef struct PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelMemInfo;
-#else
-	IMG_HANDLE hKernelMemInfo;
-#endif
-	PVRSRV_CLIENT_MEM_INFO	sClientMemInfo;
-	PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
-
-}PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY;
-
-
-#define PVRSRV_MAX_DC_DISPLAY_FORMATS			10
-#define PVRSRV_MAX_DC_DISPLAY_DIMENSIONS		10
-#define PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS			9
-#define PVRSRV_MAX_DC_CLIP_RECTS				32
-
-typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS_TAG
-{
-	PVRSRV_ERROR	eError;
-	IMG_UINT32		ui32Count;
-	DISPLAY_FORMAT	asFormat[PVRSRV_MAX_DC_DISPLAY_FORMATS];
-
-}PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS;
-
-
-typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS_TAG
-{
-	IMG_UINT32		ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			hDeviceKM;
-#else
-	IMG_HANDLE		hDeviceKM;
-#endif
-	DISPLAY_FORMAT	sFormat;
-
-}PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS_TAG
-{
-	PVRSRV_ERROR	eError;
-	IMG_UINT32		ui32Count;
-	DISPLAY_DIMS	asDim[PVRSRV_MAX_DC_DISPLAY_DIMENSIONS];
-
-}PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO_TAG
-{
-	PVRSRV_ERROR	eError;
-	DISPLAY_INFO	sDisplayInfo;
-
-}PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER_TAG
-{
-	PVRSRV_ERROR	eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			hBuffer;
-#else
-	IMG_HANDLE		hBuffer;
-#endif
-
-}PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER;
-
-
-typedef struct PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN_TAG
-{
-	IMG_UINT32				ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hDeviceKM;
-#else
-	IMG_HANDLE				hDeviceKM;
-#endif
-	IMG_UINT32				ui32Flags;
-	DISPLAY_SURF_ATTRIBUTES	sDstSurfAttrib;
-	DISPLAY_SURF_ATTRIBUTES	sSrcSurfAttrib;
-	IMG_UINT32				ui32BufferCount;
-	IMG_UINT32				ui32OEMFlags;
-	IMG_UINT32				ui32SwapChainID;
-
-} PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN_TAG
-{
-	PVRSRV_ERROR		eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hSwapChain;
-#else
-	IMG_HANDLE			hSwapChain;
-#endif
-	IMG_UINT32			ui32SwapChainID;
-
-} PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN;
-
-
-typedef struct PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDeviceKM;
-	IMG_SID				hSwapChain;
-#else
-	IMG_HANDLE			hDeviceKM;
-	IMG_HANDLE			hSwapChain;
-#endif
-
-} PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN;
-
-
-typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDeviceKM;
-	IMG_SID				hSwapChain;
-#else
-	IMG_HANDLE			hDeviceKM;
-	IMG_HANDLE			hSwapChain;
-#endif
-	IMG_RECT			sRect;
-
-} PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT;
-
-
-typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDeviceKM;
-	IMG_SID				hSwapChain;
-#else
-	IMG_HANDLE			hDeviceKM;
-	IMG_HANDLE			hSwapChain;
-#endif
-	IMG_UINT32			ui32CKColour;
-
-} PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY;
-
-
-typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDeviceKM;
-	IMG_SID				hSwapChain;
-#else
-	IMG_HANDLE			hDeviceKM;
-	IMG_HANDLE			hSwapChain;
-#endif
-
-} PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS_TAG
-{
-	PVRSRV_ERROR		eError;
-	IMG_UINT32			ui32BufferCount;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				ahBuffer[PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS];
-#else
-	IMG_HANDLE			ahBuffer[PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS];
-#endif
-
-} PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS;
-
-
-typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDeviceKM;
-	IMG_SID				hBuffer;
-#else
-	IMG_HANDLE			hDeviceKM;
-	IMG_HANDLE			hBuffer;
-#endif
-	IMG_UINT32			ui32SwapInterval;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hPrivateTag;
-#else
-	IMG_HANDLE			hPrivateTag;
-#endif
-	IMG_UINT32			ui32ClipRectCount;
-	IMG_RECT			sClipRect[PVRSRV_MAX_DC_CLIP_RECTS];
-
-} PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER;
-
-
-typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDeviceKM;
-	IMG_SID				hSwapChain;
-#else
-	IMG_HANDLE			hDeviceKM;
-	IMG_HANDLE			hSwapChain;
-#endif
-
-} PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM;
-
-
-typedef struct PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-	IMG_UINT32			ui32DeviceID;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevCookie;
-#else
-	IMG_HANDLE			hDevCookie;
-#endif
-
-} PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE_TAG
-{
-	PVRSRV_ERROR eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID      hDeviceKM;
-#else
-	IMG_HANDLE			hDeviceKM;
-#endif
-
-} PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO_TAG
-{
-	PVRSRV_ERROR		eError;
-	BUFFER_INFO			sBufferInfo;
-
-} PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO;
-
-
-typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDeviceKM;
-#else
-	IMG_HANDLE			hDeviceKM;
-#endif
-	IMG_UINT32 ui32BufferIndex;
-
-} PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER_TAG
-{
-	PVRSRV_ERROR eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID      hBuffer;
-#else
-	IMG_HANDLE			hBuffer;
-#endif
-
-} PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO_TAG
-{
-	PVRSRV_ERROR		eError;
-	IMG_UINT32			ui32ClientHeapCount;
-	PVRSRV_HEAP_INFO	sHeapInfo[PVRSRV_MAX_CLIENT_HEAPS];
-
-} PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT_TAG
-{
-	PVRSRV_ERROR		eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevMemContext;
-#else
-	IMG_HANDLE			hDevMemContext;
-#endif
-	IMG_UINT32			ui32ClientHeapCount;
-	PVRSRV_HEAP_INFO	sHeapInfo[PVRSRV_MAX_CLIENT_HEAPS];
-
-} PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP_TAG
-{
-	PVRSRV_ERROR		eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevMemHeap;
-#else
-	IMG_HANDLE			hDevMemHeap;
-#endif
-
-} PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM_TAG
-{
-	PVRSRV_ERROR            eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID                 hKernelMemInfo;
-#else
-	PVRSRV_KERNEL_MEM_INFO	*psKernelMemInfo;
-#endif
-	PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
-	PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
-
-} PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM_TAG
-{
-	PVRSRV_ERROR			eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hMemInfo;
-#else
-	IMG_HANDLE				hMemInfo;
-#endif
-#if defined(SUPPORT_MEMINFO_IDS)
-	IMG_UINT64				ui64Stamp;
-#endif
-
-} PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_MAPMEMINFOTOUSER_TAG
-{
-	PVRSRV_ERROR			eError;
-	IMG_PVOID				pvLinAddr;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hMappingInfo;
-#else
-	IMG_HANDLE				hMappingInfo;
-#endif
-
-}PVRSRV_BRIDGE_OUT_MAPMEMINFOTOUSER;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM_TAG
-{
-	PVRSRV_ERROR eError;
-	IMG_SIZE_T ui32Total;
-	IMG_SIZE_T ui32Free;
-	IMG_SIZE_T ui32LargestBlock;
-
-} PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM;
-
-
-#include "pvrmmap.h"
-typedef struct PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA_TAG
-{
-    PVRSRV_ERROR		eError;
-
-    
-     IMG_UINT32			ui32MMapOffset;
-
-    
-    IMG_UINT32			ui32ByteOffset;
-
-    
-    IMG_UINT32 			ui32RealByteSize;
-
-    
-    IMG_UINT32			ui32UserVAddr;
-
-} PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA;
-
-typedef struct PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA_TAG
-{
-    PVRSRV_ERROR		eError;
-
-    
-    IMG_BOOL			bMUnmap;
-
-    
-    IMG_UINT32			ui32UserVAddr;
-
-    
-    IMG_UINT32			ui32RealByteSize;
-} PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA;
-typedef struct PVRSRV_BRIDGE_IN_GET_MISC_INFO_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-	PVRSRV_MISC_INFO	sMiscInfo;
-
-}PVRSRV_BRIDGE_IN_GET_MISC_INFO;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_GET_MISC_INFO_TAG
-{
-	PVRSRV_ERROR		eError;
-	PVRSRV_MISC_INFO	sMiscInfo;
-
-}PVRSRV_BRIDGE_OUT_GET_MISC_INFO;
-
-
-typedef struct PVRSRV_BRIDGE_IN_RELEASE_MISC_INFO_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-	PVRSRV_MISC_INFO	sMiscInfo;
-
-}PVRSRV_BRIDGE_IN_RELEASE_MISC_INFO;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_RELEASE_MISC_INFO_TAG
-{
-	PVRSRV_ERROR		eError;
-	PVRSRV_MISC_INFO	sMiscInfo;
-
-}PVRSRV_BRIDGE_OUT_RELEASE_MISC_INFO;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING_TAG
-{
-	PVRSRV_ERROR eError;
-	IMG_BOOL bIsCapturing;
-
-} PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING;
-
-typedef struct PVRSRV_BRIDGE_IN_GET_FB_STATS_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-	IMG_SIZE_T ui32Total;
-	IMG_SIZE_T ui32Available;
-
-} PVRSRV_BRIDGE_IN_GET_FB_STATS;
-
-
-typedef struct PVRSRV_BRIDGE_IN_MAPPHYSTOUSERSPACE_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevCookie;
-#else
-	IMG_HANDLE			hDevCookie;
-#endif
-	IMG_SYS_PHYADDR		sSysPhysAddr;
-	IMG_UINT32			uiSizeInBytes;
-
-} PVRSRV_BRIDGE_IN_MAPPHYSTOUSERSPACE;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE_TAG
-{
-	IMG_PVOID			pvUserAddr;
-	IMG_UINT32			uiActualSize;
-	IMG_PVOID			pvProcess;
-
-} PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE;
-
-
-typedef struct PVRSRV_BRIDGE_IN_UNMAPPHYSTOUSERSPACE_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevCookie;
-#else
-	IMG_HANDLE			hDevCookie;
-#endif
-	IMG_PVOID			pvUserAddr;
-	IMG_PVOID			pvProcess;
-
-} PVRSRV_BRIDGE_IN_UNMAPPHYSTOUSERSPACE;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_GETPHYSTOUSERSPACEMAP_TAG
-{
-	IMG_PVOID			*ppvTbl;
-	IMG_UINT32			uiTblSize;
-
-} PVRSRV_BRIDGE_OUT_GETPHYSTOUSERSPACEMAP;
-
-
-#if !defined (SUPPORT_SID_INTERFACE)
-typedef struct PVRSRV_BRIDGE_IN_REGISTER_SIM_PROCESS_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-	IMG_HANDLE			hDevCookie;
-	IMG_PVOID			pvProcess;
-
-} PVRSRV_BRIDGE_IN_REGISTER_SIM_PROCESS;
-
-
-typedef struct PVRSRV_BRIDGE_OUT_REGISTER_SIM_PROCESS_TAG
-{
-	IMG_SYS_PHYADDR		sRegsPhysBase;			
-	IMG_VOID			*pvRegsBase;			
-	IMG_PVOID			pvProcess;
-	IMG_UINT32			ulNoOfEntries;
-	IMG_PVOID			pvTblLinAddr;
-
-} PVRSRV_BRIDGE_OUT_REGISTER_SIM_PROCESS;
-
-
-typedef struct PVRSRV_BRIDGE_IN_UNREGISTER_SIM_PROCESS_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-	IMG_HANDLE			hDevCookie;
-	IMG_PVOID			pvProcess;
-	IMG_VOID			*pvRegsBase;			
-
-} PVRSRV_BRIDGE_IN_UNREGISTER_SIM_PROCESS;
-
-typedef struct PVRSRV_BRIDGE_IN_PROCESS_SIMISR_EVENT_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-	IMG_HANDLE			hDevCookie;
-	IMG_UINT32			ui32StatusAndMask;
-	PVRSRV_ERROR 		eError;
-
-} PVRSRV_BRIDGE_IN_PROCESS_SIMISR_EVENT;
-#endif 
-
-typedef struct PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-	IMG_BOOL			bInitSuccesful;
-} PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT;
-
-
-typedef struct PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-    IMG_UINT32 ui32Flags;
-    IMG_SIZE_T ui32Size;
-}PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM;
-
-typedef struct PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM_TAG
-{
-	PVRSRV_ERROR            eError;
-#if defined (SUPPORT_SID_INTERFACE)
-#else
-	PVRSRV_KERNEL_MEM_INFO	*psKernelMemInfo;
-#endif
-	PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
-}PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM;
-
-typedef struct PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM_TAG
-{
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID                 hKernelMemInfo;
-	IMG_SID                 hMappingInfo;
-#else
-	IMG_UINT32              ui32BridgeFlags; 
-	PVRSRV_KERNEL_MEM_INFO	*psKernelMemInfo;
-#endif
-	PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
-}PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM;
-
-typedef struct PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM_TAG
-{
-	PVRSRV_ERROR eError;
-}PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM;
-
-typedef struct PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelMemInfo;
-#else
-	IMG_HANDLE hKernelMemInfo;
-#endif
-}PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM;
-
-typedef struct PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM_TAG
-{
-	PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
-	PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID                 hKernelMemInfo;
-#else
-	PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
-#endif
-	PVRSRV_ERROR eError;
-}PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM;
-
-typedef struct PVRSRV_BRIDGE_IN_UNMAP_MEMINFO_MEM_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-	PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
-}PVRSRV_BRIDGE_IN_UNMAP_MEMINFO_MEM;
-
-typedef struct PVRSRV_BRIDGE_OUT_UNMAP_MEMINFO_MEM_TAG
-{
-	PVRSRV_ERROR eError;
-}PVRSRV_BRIDGE_OUT_UNMAP_MEMINFO_MEM;
-
-typedef struct PVRSRV_BRIDGE_IN_GETMMU_PD_DEVPADDR_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-    IMG_SID    hDevMemContext;
-#else
-    IMG_HANDLE hDevMemContext;
-#endif
-}PVRSRV_BRIDGE_IN_GETMMU_PD_DEVPADDR;
-
-typedef struct PVRSRV_BRIDGE_OUT_GETMMU_PD_DEVPADDR_TAG
-{
-    IMG_DEV_PHYADDR sPDDevPAddr;
-	PVRSRV_ERROR eError;
-}PVRSRV_BRIDGE_OUT_GETMMU_PD_DEVPADDR;
-
-typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAI_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		hOSEventKM;
-#else
-	IMG_HANDLE	hOSEventKM;
-#endif
-} PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAIT;
-
-typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN_TAG
-{
-	PVRSRV_EVENTOBJECT sEventObject;
-} PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN;
-
-typedef struct	PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN_TAG
-{
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_UINT32   hOSEvent;
-#else
-	IMG_HANDLE hOSEvent;
-#endif
-	PVRSRV_ERROR eError;
-} PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN;
-
-typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE_TAG
-{
-	PVRSRV_EVENTOBJECT sEventObject;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hOSEventKM;
-#else
-	IMG_HANDLE hOSEventKM;
-#endif
-} PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE;
-
-typedef struct PVRSRV_BRIDGE_OUT_CREATE_SYNC_INFO_MOD_OBJ_TAG
-{
-	PVRSRV_ERROR eError;
-
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelSyncInfoModObj;
-#else
-	IMG_HANDLE hKernelSyncInfoModObj;
-#endif
-
-} PVRSRV_BRIDGE_OUT_CREATE_SYNC_INFO_MOD_OBJ;
-
-typedef struct PVRSRV_BRIDGE_IN_DESTROY_SYNC_INFO_MOD_OBJ
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelSyncInfoModObj;
-#else
-	IMG_HANDLE hKernelSyncInfoModObj;
-#endif
-} PVRSRV_BRIDGE_IN_DESTROY_SYNC_INFO_MOD_OBJ;
-
-typedef struct PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelSyncInfoModObj;
-	IMG_SID    hKernelSyncInfo;
-#else
-	IMG_HANDLE hKernelSyncInfoModObj;
-	IMG_HANDLE hKernelSyncInfo;
-#endif
-	IMG_UINT32 ui32ModifyFlags;
-
-} PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS;
-
-typedef struct PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelSyncInfoModObj;
-#else
-	IMG_HANDLE hKernelSyncInfoModObj;
-#endif
-} PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS;
-
-typedef struct PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS_TAG
-{
-	PVRSRV_ERROR eError;
-
-	
-	IMG_UINT32 ui32ReadOpsPending;
-	IMG_UINT32 ui32WriteOpsPending;
-
-} PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS;
-
-typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_TAKE_TOKEN_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelSyncInfo;
-#else
-	IMG_HANDLE hKernelSyncInfo;
-#endif
-
-} PVRSRV_BRIDGE_IN_SYNC_OPS_TAKE_TOKEN;
-
-typedef struct PVRSRV_BRIDGE_OUT_SYNC_OPS_TAKE_TOKEN_TAG
-{
-	PVRSRV_ERROR eError;
-
-	IMG_UINT32 ui32ReadOpsPending;
-	IMG_UINT32 ui32WriteOpsPending;
-
-} PVRSRV_BRIDGE_OUT_SYNC_OPS_TAKE_TOKEN;
-
-typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_TOKEN_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelSyncInfo;
-#else
-	IMG_HANDLE hKernelSyncInfo;
-#endif
-	IMG_UINT32 ui32ReadOpsPendingSnapshot;
-	IMG_UINT32 ui32WriteOpsPendingSnapshot;
-} PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_TOKEN;
-
-typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_MOD_OBJ_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelSyncInfoModObj;
-#else
-	IMG_HANDLE hKernelSyncInfoModObj;
-#endif
-} PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_MOD_OBJ;
-
-typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_DELTA_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelSyncInfo;
-#else
-	IMG_HANDLE hKernelSyncInfo;
-#endif
-	IMG_UINT32 ui32Delta;
-} PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_DELTA;
-
-typedef struct PVRSRV_BRIDGE_IN_ALLOC_SYNC_INFO_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-#else
-	IMG_HANDLE hDevCookie;
-#endif
-} PVRSRV_BRIDGE_IN_ALLOC_SYNC_INFO;
-
-typedef struct PVRSRV_BRIDGE_OUT_ALLOC_SYNC_INFO_TAG
-{
-	PVRSRV_ERROR eError;
-
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelSyncInfo;
-#else
-	IMG_HANDLE hKernelSyncInfo;
-#endif
-} PVRSRV_BRIDGE_OUT_ALLOC_SYNC_INFO;
-
-typedef struct PVRSRV_BRIDGE_IN_FREE_SYNC_INFO_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hKernelSyncInfo;
-#else
-	IMG_HANDLE hKernelSyncInfo;
-#endif
-} PVRSRV_BRIDGE_IN_FREE_SYNC_INFO;
-
-typedef struct PVRSRV_BRIDGE_IN_CHG_DEV_MEM_ATTRIBS_TAG
-{
-	IMG_SID				hKernelMemInfo;
-	IMG_UINT32			ui32Attribs;
-} PVRSRV_BRIDGE_IN_CHG_DEV_MEM_ATTRIBS;
-
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/include/pvr_bridge_km.h b/drivers/staging/cdv/pvr/services4/include/pvr_bridge_km.h
deleted file mode 100644
index 1175b76..0000000
--- a/drivers/staging/cdv/pvr/services4/include/pvr_bridge_km.h
+++ /dev/null
@@ -1,305 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __PVR_BRIDGE_KM_H_
-#define __PVR_BRIDGE_KM_H_
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#include "pvr_bridge.h"
-#include "perproc.h"
-
-#if defined(__linux__)
-PVRSRV_ERROR LinuxBridgeInit(IMG_VOID);
-IMG_VOID LinuxBridgeDeInit(IMG_VOID);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumerateDevicesKM(IMG_UINT32 *pui32NumDevices,
-												   PVRSRV_DEVICE_IDENTIFIER *psDevIdList);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVAcquireDeviceDataKM(IMG_UINT32			uiDevIndex,
-													PVRSRV_DEVICE_TYPE	eDeviceType,
-													IMG_HANDLE			*phDevCookie);
-							
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateCommandQueueKM(IMG_SIZE_T ui32QueueSize,
-													 PVRSRV_QUEUE_INFO **ppsQueueInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyCommandQueueKM(PVRSRV_QUEUE_INFO *psQueueInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapsKM(IMG_HANDLE hDevCookie,
-#if defined (SUPPORT_SID_INTERFACE)
-													PVRSRV_HEAP_INFO_KM *psHeapInfo);
-#else
-													PVRSRV_HEAP_INFO *psHeapInfo);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateDeviceMemContextKM(IMG_HANDLE					hDevCookie,
-														 PVRSRV_PER_PROCESS_DATA	*psPerProc,
-														 IMG_HANDLE					*phDevMemContext,
-														 IMG_UINT32					*pui32ClientHeapCount,
-#if defined (SUPPORT_SID_INTERFACE)
-														 PVRSRV_HEAP_INFO_KM		*psHeapInfo,
-#else
-														 PVRSRV_HEAP_INFO			*psHeapInfo,
-#endif
-														 IMG_BOOL					*pbCreated,
-														 IMG_BOOL					*pbShared);
-
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyDeviceMemContextKM(IMG_HANDLE hDevCookie,
-														  IMG_HANDLE hDevMemContext,
-														  IMG_BOOL *pbDestroyed);
-
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapInfoKM(IMG_HANDLE				hDevCookie,
-															IMG_HANDLE			hDevMemContext,
-															IMG_UINT32			*pui32ClientHeapCount,
-#if defined (SUPPORT_SID_INTERFACE)
-															PVRSRV_HEAP_INFO_KM	*psHeapInfo,
-#else
-															PVRSRV_HEAP_INFO	*psHeapInfo,
-#endif
-															IMG_BOOL 			*pbShared
-					);
-
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV _PVRSRVAllocDeviceMemKM(IMG_HANDLE					hDevCookie,
-												 PVRSRV_PER_PROCESS_DATA	*psPerProc,
-												 IMG_HANDLE					hDevMemHeap,
-												 IMG_UINT32					ui32Flags,
-												 IMG_SIZE_T					ui32Size,
-												 IMG_SIZE_T					ui32Alignment,
-												 PVRSRV_KERNEL_MEM_INFO		**ppsMemInfo);
-
-
-#if defined(PVRSRV_LOG_MEMORY_ALLOCS)
-	#define PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, memInfo, logStr) \
-		(PVR_TRACE(("PVRSRVAllocDeviceMemKM(" #devCookie ", " #perProc ", " #devMemHeap ", " #flags ", " #size \
-			", " #alignment "," #memInfo "): " logStr " (size = 0x%x)", size)),\
-			_PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, memInfo))
-#else
-	#define PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, memInfo, logStr) \
-			_PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, memInfo)
-#endif
-
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceMemKM(IMG_HANDLE			hDevCookie,
-												PVRSRV_KERNEL_MEM_INFO	*psMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVDissociateDeviceMemKM(IMG_HANDLE			hDevCookie,
-												PVRSRV_KERNEL_MEM_INFO	*psMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVReserveDeviceVirtualMemKM(IMG_HANDLE		hDevMemHeap,
-														 IMG_DEV_VIRTADDR	*psDevVAddr,
-														 IMG_SIZE_T			ui32Size,
-														 IMG_SIZE_T			ui32Alignment,
-														 PVRSRV_KERNEL_MEM_INFO	**ppsMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceVirtualMemKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceMemoryKM(PVRSRV_PER_PROCESS_DATA	*psPerProc,
-												  PVRSRV_KERNEL_MEM_INFO	*psSrcMemInfo,
-												  IMG_HANDLE				hDstDevMemHeap,
-												  PVRSRV_KERNEL_MEM_INFO	**ppsDstMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceMemoryKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVWrapExtMemoryKM(IMG_HANDLE				hDevCookie,
-												PVRSRV_PER_PROCESS_DATA	*psPerProc,
-												IMG_HANDLE				hDevMemContext,
-												IMG_SIZE_T 				ui32ByteSize, 
-												IMG_SIZE_T				ui32PageOffset,
-												IMG_BOOL				bPhysContig,
-												IMG_SYS_PHYADDR	 		*psSysAddr,
-												IMG_VOID 				*pvLinAddr,
-												IMG_UINT32				ui32Flags,
-												PVRSRV_KERNEL_MEM_INFO **ppsMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVUnwrapExtMemoryKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVEnumerateDCKM(PVRSRV_DEVICE_CLASS DeviceClass,
-								 IMG_UINT32 *pui32DevCount,
-								 IMG_UINT32 *pui32DevID );
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVOpenDCDeviceKM(PVRSRV_PER_PROCESS_DATA	*psPerProc,
-								  IMG_UINT32				ui32DeviceID,
-								  IMG_HANDLE 				hDevCookie,
-								  IMG_HANDLE 				*phDeviceKM);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVCloseDCDeviceKM(IMG_HANDLE hDeviceKM, IMG_BOOL bResManCallback);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVEnumDCFormatsKM(IMG_HANDLE hDeviceKM,
-								   IMG_UINT32 *pui32Count,
-								   DISPLAY_FORMAT *psFormat);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVEnumDCDimsKM(IMG_HANDLE hDeviceKM,
-								DISPLAY_FORMAT *psFormat,
-								IMG_UINT32 *pui32Count,
-								DISPLAY_DIMS *psDim);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVGetDCSystemBufferKM(IMG_HANDLE hDeviceKM,
-									   IMG_HANDLE *phBuffer);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVGetDCInfoKM(IMG_HANDLE hDeviceKM,
-							   DISPLAY_INFO *psDisplayInfo);
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVCreateDCSwapChainKM(PVRSRV_PER_PROCESS_DATA	*psPerProc,
-									   IMG_HANDLE				hDeviceKM,
-									   IMG_UINT32				ui32Flags,
-									   DISPLAY_SURF_ATTRIBUTES	*psDstSurfAttrib,
-									   DISPLAY_SURF_ATTRIBUTES	*psSrcSurfAttrib,
-									   IMG_UINT32				ui32BufferCount,
-									   IMG_UINT32				ui32OEMFlags,
-									   IMG_HANDLE				*phSwapChain,
-									   IMG_UINT32				*pui32SwapChainID);
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVDestroyDCSwapChainKM(IMG_HANDLE	hSwapChain);
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVSetDCDstRectKM(IMG_HANDLE	hDeviceKM,
-								  IMG_HANDLE	hSwapChain,
-								  IMG_RECT	*psRect);
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVSetDCSrcRectKM(IMG_HANDLE	hDeviceKM,
-								  IMG_HANDLE	hSwapChain,
-								  IMG_RECT	*psRect);
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVSetDCDstColourKeyKM(IMG_HANDLE	hDeviceKM,
-									   IMG_HANDLE	hSwapChain,
-									   IMG_UINT32	ui32CKColour);
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVSetDCSrcColourKeyKM(IMG_HANDLE	hDeviceKM,
-									IMG_HANDLE		hSwapChain,
-									IMG_UINT32		ui32CKColour);
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVGetDCBuffersKM(IMG_HANDLE	hDeviceKM,
-								  IMG_HANDLE	hSwapChain,
-								  IMG_UINT32	*pui32BufferCount,
-								  IMG_HANDLE	*phBuffer);
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVSwapToDCBufferKM(IMG_HANDLE	hDeviceKM,
-									IMG_HANDLE	hBuffer,
-									IMG_UINT32	ui32SwapInterval,
-									IMG_HANDLE	hPrivateTag,
-									IMG_UINT32	ui32ClipRectCount,
-									IMG_RECT	*psClipRect);
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVSwapToDCSystemKM(IMG_HANDLE	hDeviceKM,
-									IMG_HANDLE	hSwapChain);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVOpenBCDeviceKM(PVRSRV_PER_PROCESS_DATA	*psPerProc,
-								  IMG_UINT32				ui32DeviceID,
-								  IMG_HANDLE				hDevCookie,
-								  IMG_HANDLE				*phDeviceKM);
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVCloseBCDeviceKM(IMG_HANDLE hDeviceKM, IMG_BOOL bResManCallback);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVGetBCInfoKM(IMG_HANDLE	hDeviceKM,
-							   BUFFER_INFO	*psBufferInfo);
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVGetBCBufferKM(IMG_HANDLE	hDeviceKM,
-								 IMG_UINT32	ui32BufferIndex,
-								 IMG_HANDLE	*phBuffer);
-
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceClassMemoryKM(PVRSRV_PER_PROCESS_DATA	*psPerProc,
-													   IMG_HANDLE				hDevMemContext,
-													   IMG_HANDLE				hDeviceClassBuffer,
-													   PVRSRV_KERNEL_MEM_INFO	**ppsMemInfo,
-													   IMG_HANDLE				*phOSMapInfo);
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVChangeDeviceMemoryAttributesKM(IMG_HANDLE hKernelMemInfo,
-															   IMG_UINT32 ui32Attribs);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceClassMemoryKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetFreeDeviceMemKM(IMG_UINT32 ui32Flags,
-												   IMG_SIZE_T *pui32Total,
-												   IMG_SIZE_T *pui32Free,
-												   IMG_SIZE_T *pui32LargestBlock);
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVAllocSyncInfoKM(IMG_HANDLE					hDevCookie,
-												IMG_HANDLE					hDevMemContext,
-												PVRSRV_KERNEL_SYNC_INFO	**ppsKernelSyncInfo);
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeSyncInfoKM(PVRSRV_KERNEL_SYNC_INFO	*psKernelSyncInfo);
-
-IMG_IMPORT
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO_KM *psMiscInfo);
-#else
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO *psMiscInfo);
-#endif
-
-IMG_IMPORT PVRSRV_ERROR
-PVRSRVAllocSharedSysMemoryKM(PVRSRV_PER_PROCESS_DATA	*psPerProc,
-							 IMG_UINT32 				ui32Flags,
-							 IMG_SIZE_T 				ui32Size,
-							 PVRSRV_KERNEL_MEM_INFO		**ppsKernelMemInfo);
-
-IMG_IMPORT PVRSRV_ERROR
-PVRSRVFreeSharedSysMemoryKM(PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo);
-
-IMG_IMPORT PVRSRV_ERROR
-PVRSRVDissociateMemFromResmanKM(PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo);
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/include/pvrmmap.h b/drivers/staging/cdv/pvr/services4/include/pvrmmap.h
deleted file mode 100644
index 242d953..0000000
--- a/drivers/staging/cdv/pvr/services4/include/pvrmmap.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __PVRMMAP_H__
-#define __PVRMMAP_H__
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR PVRPMapKMem(IMG_HANDLE hModule, IMG_VOID **ppvLinAddr, IMG_VOID *pvLinAddrKM, IMG_SID *phMappingInfo, IMG_SID hMHandle);
-#else
-PVRSRV_ERROR PVRPMapKMem(IMG_HANDLE hModule, IMG_VOID **ppvLinAddr, IMG_VOID *pvLinAddrKM, IMG_HANDLE *phMappingInfo, IMG_HANDLE hMHandle);
-#endif
-
-
-#if defined (SUPPORT_SID_INTERFACE)
-IMG_BOOL PVRUnMapKMem(IMG_HANDLE hModule, IMG_SID hMappingInfo, IMG_SID hMHandle);
-#else
-IMG_BOOL PVRUnMapKMem(IMG_HANDLE hModule, IMG_HANDLE hMappingInfo, IMG_HANDLE hMHandle);
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/include/pvrsrv_errors.h b/drivers/staging/cdv/pvr/services4/include/pvrsrv_errors.h
deleted file mode 100644
index 5474984..0000000
--- a/drivers/staging/cdv/pvr/services4/include/pvrsrv_errors.h
+++ /dev/null
@@ -1,266 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined (__PVRSRV_ERRORS_H__)
-#define __PVRSRV_ERRORS_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-	switch (eError)
-	{
-		case PVRSRV_OK:									return "No Errors";
-		case PVRSRV_ERROR_OUT_OF_MEMORY:				return "PVRSRV_ERROR_OUT_OF_MEMORY - Unable to allocate required memory";
-		case PVRSRV_ERROR_TOO_FEW_BUFFERS:				return "PVRSRV_ERROR_TOO_FEW_BUFFERS";
-		case PVRSRV_ERROR_INVALID_PARAMS:				return "PVRSRV_ERROR_INVALID_PARAMS";
-		case PVRSRV_ERROR_INIT_FAILURE:					return "PVRSRV_ERROR_INIT_FAILURE";
-		case PVRSRV_ERROR_CANT_REGISTER_CALLBACK:		return "PVRSRV_ERROR_CANT_REGISTER_CALLBACK";
-		case PVRSRV_ERROR_INVALID_DEVICE:				return "PVRSRV_ERROR_INVALID_DEVICE";
-		case PVRSRV_ERROR_NOT_OWNER:					return "PVRSRV_ERROR_NOT_OWNER";
-		case PVRSRV_ERROR_BAD_MAPPING:					return "PVRSRV_ERROR_BAD_MAPPING";
-		case PVRSRV_ERROR_TIMEOUT:						return "PVRSRV_ERROR_TIMEOUT";
-		case PVRSRV_ERROR_FLIP_CHAIN_EXISTS:			return "PVRSRV_ERROR_FLIP_CHAIN_EXISTS";
-		case PVRSRV_ERROR_INVALID_SWAPINTERVAL:			return "PVRSRV_ERROR_INVALID_SWAPINTERVAL";
-		case PVRSRV_ERROR_SCENE_INVALID:				return "PVRSRV_ERROR_SCENE_INVALID";
-		case PVRSRV_ERROR_STREAM_ERROR:					return "PVRSRV_ERROR_STREAM_ERROR";
-		case PVRSRV_ERROR_FAILED_DEPENDENCIES:			return "PVRSRV_ERROR_FAILED_DEPENDENCIES";
-		case PVRSRV_ERROR_CMD_NOT_PROCESSED:			return "PVRSRV_ERROR_CMD_NOT_PROCESSED";
-		case PVRSRV_ERROR_CMD_TOO_BIG:					return "PVRSRV_ERROR_CMD_TOO_BIG";
-		case PVRSRV_ERROR_DEVICE_REGISTER_FAILED:		return "PVRSRV_ERROR_DEVICE_REGISTER_FAILED";
-		case PVRSRV_ERROR_TOOMANYBUFFERS:				return "PVRSRV_ERROR_TOOMANYBUFFERS";
-		case PVRSRV_ERROR_NOT_SUPPORTED:				return "PVRSRV_ERROR_NOT_SUPPORTED - fix";
-		case PVRSRV_ERROR_PROCESSING_BLOCKED:			return "PVRSRV_ERROR_PROCESSING_BLOCKED";
-
-		case PVRSRV_ERROR_CANNOT_FLUSH_QUEUE:			return "PVRSRV_ERROR_CANNOT_FLUSH_QUEUE";
-		case PVRSRV_ERROR_CANNOT_GET_QUEUE_SPACE:		return "PVRSRV_ERROR_CANNOT_GET_QUEUE_SPACE";
-		case PVRSRV_ERROR_CANNOT_GET_RENDERDETAILS:		return "PVRSRV_ERROR_CANNOT_GET_RENDERDETAILS";
-		case PVRSRV_ERROR_RETRY:						return "PVRSRV_ERROR_RETRY";
-
-		case PVRSRV_ERROR_DDK_VERSION_MISMATCH:			return "PVRSRV_ERROR_DDK_VERSION_MISMATCH";
-		case PVRSRV_ERROR_BUILD_MISMATCH:				return "PVRSRV_ERROR_BUILD_MISMATCH";
-		case PVRSRV_ERROR_CORE_REVISION_MISMATCH:		return "PVRSRV_ERROR_CORE_REVISION_MISMATCH";
-
-		case PVRSRV_ERROR_UPLOAD_TOO_BIG:				return "PVRSRV_ERROR_UPLOAD_TOO_BIG";
-
-		case PVRSRV_ERROR_INVALID_FLAGS:				return "PVRSRV_ERROR_INVALID_FLAGS";
-		case PVRSRV_ERROR_FAILED_TO_REGISTER_PROCESS:	return "PVRSRV_ERROR_FAILED_TO_REGISTER_PROCESS";
-
-		case PVRSRV_ERROR_UNABLE_TO_LOAD_LIBRARY:		return "PVRSRV_ERROR_UNABLE_TO_LOAD_LIBRARY";
-		case PVRSRV_ERROR_UNABLE_GET_FUNC_ADDR:			return "PVRSRV_ERROR_UNABLE_GET_FUNC_ADDR";
-		case PVRSRV_ERROR_UNLOAD_LIBRARY_FAILED:		return "PVRSRV_ERROR_UNLOAD_LIBRARY_FAILED";
-
-		case PVRSRV_ERROR_BRIDGE_CALL_FAILED:			return "PVRSRV_ERROR_BRIDGE_CALL_FAILED";
-		case PVRSRV_ERROR_IOCTL_CALL_FAILED:			return "PVRSRV_ERROR_IOCTL_CALL_FAILED";
-
-		case PVRSRV_ERROR_MMU_CONTEXT_NOT_FOUND:		return "PVRSRV_ERROR_MMU_CONTEXT_NOT_FOUND";
-		case PVRSRV_ERROR_BUFFER_DEVICE_NOT_FOUND:		return "PVRSRV_ERROR_BUFFER_DEVICE_NOT_FOUND";
-		case PVRSRV_ERROR_BUFFER_DEVICE_ALREADY_PRESENT:return "PVRSRV_ERROR_BUFFER_DEVICE_ALREADY_PRESENT";
-
-		case PVRSRV_ERROR_PCI_DEVICE_NOT_FOUND:			return "PVRSRV_ERROR_PCI_DEVICE_NOT_FOUND";
-		case PVRSRV_ERROR_PCI_CALL_FAILED:				return "PVRSRV_ERROR_PCI_CALL_FAILED";
-		case PVRSRV_ERROR_PCI_REGION_TOO_SMALL:			return "PVRSRV_ERROR_PCI_REGION_TOO_SMALL";
-		case PVRSRV_ERROR_PCI_REGION_UNAVAILABLE:		return "PVRSRV_ERROR_PCI_REGION_UNAVAILABLE";
-		case PVRSRV_ERROR_BAD_REGION_SIZE_MISMATCH:		return "PVRSRV_ERROR_BAD_REGION_SIZE_MISMATCH";
-
-		case PVRSRV_ERROR_REGISTER_BASE_NOT_SET:		return "PVRSRV_ERROR_REGISTER_BASE_NOT_SET";
-
-        case PVRSRV_ERROR_BM_BAD_SHAREMEM_HANDLE:       return "PVRSRV_ERROR_BM_BAD_SHAREMEM_HANDLE";
-
-		case PVRSRV_ERROR_FAILED_TO_ALLOC_USER_MEM:		return "PVRSRV_ERROR_FAILED_TO_ALLOC_USER_MEM";
-		case PVRSRV_ERROR_FAILED_TO_ALLOC_VP_MEMORY:	return "PVRSRV_ERROR_FAILED_TO_ALLOC_VP_MEMORY";
-		case PVRSRV_ERROR_FAILED_TO_MAP_SHARED_PBDESC:	return "PVRSRV_ERROR_FAILED_TO_MAP_SHARED_PBDESC";
-		case PVRSRV_ERROR_FAILED_TO_GET_PHYS_ADDR:		return "PVRSRV_ERROR_FAILED_TO_GET_PHYS_ADDR";
-
-		case PVRSRV_ERROR_FAILED_TO_ALLOC_VIRT_MEMORY:	return "PVRSRV_ERROR_FAILED_TO_ALLOC_VIRT_MEMORY";
-		case PVRSRV_ERROR_FAILED_TO_COPY_VIRT_MEMORY:	return "PVRSRV_ERROR_FAILED_TO_COPY_VIRT_MEMORY";
-
-		case PVRSRV_ERROR_FAILED_TO_ALLOC_PAGES:		return "PVRSRV_ERROR_FAILED_TO_ALLOC_PAGES";
-		case PVRSRV_ERROR_FAILED_TO_FREE_PAGES:			return "PVRSRV_ERROR_FAILED_TO_FREE_PAGES";
-		case PVRSRV_ERROR_FAILED_TO_COPY_PAGES:			return "PVRSRV_ERROR_FAILED_TO_COPY_PAGES";
-		case PVRSRV_ERROR_UNABLE_TO_LOCK_PAGES:			return "PVRSRV_ERROR_UNABLE_TO_LOCK_PAGES";
-		case PVRSRV_ERROR_UNABLE_TO_UNLOCK_PAGES:		return "PVRSRV_ERROR_UNABLE_TO_UNLOCK_PAGES";
-		case PVRSRV_ERROR_STILL_MAPPED:					return "PVRSRV_ERROR_STILL_MAPPED";
-		case PVRSRV_ERROR_MAPPING_NOT_FOUND:			return "PVRSRV_ERROR_MAPPING_NOT_FOUND";
-		case PVRSRV_ERROR_PHYS_ADDRESS_EXCEEDS_32BIT:	return "PVRSRV_ERROR_PHYS_ADDRESS_EXCEEDS_32BIT";
-		case PVRSRV_ERROR_FAILED_TO_MAP_PAGE_TABLE:		return "PVRSRV_ERROR_FAILED_TO_MAP_PAGE_TABLE";
-
-		case PVRSRV_ERROR_INVALID_SEGMENT_BLOCK:		return "PVRSRV_ERROR_INVALID_SEGMENT_BLOCK";
-		case PVRSRV_ERROR_INVALID_SGXDEVDATA:			return "PVRSRV_ERROR_INVALID_SGXDEVDATA";
-		case PVRSRV_ERROR_INVALID_DEVINFO:				return "PVRSRV_ERROR_INVALID_DEVINFO";
-		case PVRSRV_ERROR_INVALID_MEMINFO:				return "PVRSRV_ERROR_INVALID_MEMINFO";
-		case PVRSRV_ERROR_INVALID_MISCINFO:				return "PVRSRV_ERROR_INVALID_MISCINFO";
-		case PVRSRV_ERROR_UNKNOWN_IOCTL:				return "PVRSRV_ERROR_UNKNOWN_IOCTL";
-		case PVRSRV_ERROR_INVALID_CONTEXT:				return "PVRSRV_ERROR_INVALID_CONTEXT";
-		case PVRSRV_ERROR_UNABLE_TO_DESTROY_CONTEXT:	return "PVRSRV_ERROR_UNABLE_TO_DESTROY_CONTEXT";
-		case PVRSRV_ERROR_INVALID_HEAP:					return "PVRSRV_ERROR_INVALID_HEAP";
-		case PVRSRV_ERROR_INVALID_KERNELINFO:			return "PVRSRV_ERROR_INVALID_KERNELINFO";
-		case PVRSRV_ERROR_UNKNOWN_POWER_STATE:			return "PVRSRV_ERROR_UNKNOWN_POWER_STATE";
-		case PVRSRV_ERROR_INVALID_HANDLE_TYPE:			return "PVRSRV_ERROR_INVALID_HANDLE_TYPE";
-		case PVRSRV_ERROR_INVALID_WRAP_TYPE:			return "PVRSRV_ERROR_INVALID_WRAP_TYPE";
-		case PVRSRV_ERROR_INVALID_PHYS_ADDR:			return "PVRSRV_ERROR_INVALID_PHYS_ADDR";
-		case PVRSRV_ERROR_INVALID_CPU_ADDR:				return "PVRSRV_ERROR_INVALID_CPU_ADDR";
-		case PVRSRV_ERROR_INVALID_HEAPINFO:				return "PVRSRV_ERROR_INVALID_HEAPINFO";
-		case PVRSRV_ERROR_INVALID_PERPROC:				return "PVRSRV_ERROR_INVALID_PERPROC";
-		case PVRSRV_ERROR_FAILED_TO_RETRIEVE_HEAPINFO:	return "PVRSRV_ERROR_FAILED_TO_RETRIEVE_HEAPINFO";
-		case PVRSRV_ERROR_INVALID_MAP_REQUEST:			return "PVRSRV_ERROR_INVALID_MAP_REQUEST";
-		case PVRSRV_ERROR_INVALID_UNMAP_REQUEST:		return "PVRSRV_ERROR_INVALID_UNMAP_REQUEST";
-		case PVRSRV_ERROR_UNABLE_TO_FIND_MAPPING_HEAP:	return "PVRSRV_ERROR_UNABLE_TO_FIND_MAPPING_HEAP";
-		case PVRSRV_ERROR_MAPPING_STILL_IN_USE:			return "PVRSRV_ERROR_MAPPING_STILL_IN_USE";
-
-		case PVRSRV_ERROR_EXCEEDED_HW_LIMITS:			return "PVRSRV_ERROR_EXCEEDED_HW_LIMITS";
-		case PVRSRV_ERROR_NO_STAGING_BUFFER_ALLOCATED:	return "PVRSRV_ERROR_NO_STAGING_BUFFER_ALLOCATED";
-
-		case PVRSRV_ERROR_UNABLE_TO_CREATE_PERPROC_AREA:return "PVRSRV_ERROR_UNABLE_TO_CREATE_PERPROC_AREA";
-		case PVRSRV_ERROR_UNABLE_TO_CREATE_EVENT:		return "PVRSRV_ERROR_UNABLE_TO_CREATE_EVENT";
-		case PVRSRV_ERROR_UNABLE_TO_ENABLE_EVENT:		return "PVRSRV_ERROR_UNABLE_TO_ENABLE_EVENT";
-		case PVRSRV_ERROR_UNABLE_TO_REGISTER_EVENT:		return "PVRSRV_ERROR_UNABLE_TO_REGISTER_EVENT";
-		case PVRSRV_ERROR_UNABLE_TO_DESTROY_EVENT:		return "PVRSRV_ERROR_UNABLE_TO_DESTROY_EVENT";
-		case PVRSRV_ERROR_UNABLE_TO_CREATE_THREAD:		return "PVRSRV_ERROR_UNABLE_TO_CREATE_THREAD";
-		case PVRSRV_ERROR_UNABLE_TO_CLOSE_THREAD:		return "PVRSRV_ERROR_UNABLE_TO_CLOSE_THREAD";
-		case PVRSRV_ERROR_THREAD_READ_ERROR:			return "PVRSRV_ERROR_THREAD_READ_ERROR";
-		case PVRSRV_ERROR_UNABLE_TO_REGISTER_ISR_HANDLER:return "PVRSRV_ERROR_UNABLE_TO_REGISTER_ISR_HANDLER";
-		case PVRSRV_ERROR_UNABLE_TO_INSTALL_ISR:		return "PVRSRV_ERROR_UNABLE_TO_INSTALL_ISR";
-		case PVRSRV_ERROR_UNABLE_TO_UNINSTALL_ISR:		return "PVRSRV_ERROR_UNABLE_TO_UNINSTALL_ISR";
-		case PVRSRV_ERROR_ISR_ALREADY_INSTALLED:		return "PVRSRV_ERROR_ISR_ALREADY_INSTALLED";
-		case PVRSRV_ERROR_ISR_NOT_INSTALLED:			return "PVRSRV_ERROR_ISR_NOT_INSTALLED";
-		case PVRSRV_ERROR_UNABLE_TO_INITIALISE_INTERRUPT:return "PVRSRV_ERROR_UNABLE_TO_INITIALISE_INTERRUPT";
-		case PVRSRV_ERROR_UNABLE_TO_RETRIEVE_INFO:		return "PVRSRV_ERROR_UNABLE_TO_RETRIEVE_INFO";
-		case PVRSRV_ERROR_UNABLE_TO_DO_BACKWARDS_BLIT:	return "PVRSRV_ERROR_UNABLE_TO_DO_BACKWARDS_BLIT";
-		case PVRSRV_ERROR_UNABLE_TO_CLOSE_SERVICES:		return "PVRSRV_ERROR_UNABLE_TO_CLOSE_SERVICES";
-		case PVRSRV_ERROR_UNABLE_TO_REGISTER_CONTEXT:	return "PVRSRV_ERROR_UNABLE_TO_REGISTER_CONTEXT";
-		case PVRSRV_ERROR_UNABLE_TO_REGISTER_RESOURCE:	return "PVRSRV_ERROR_UNABLE_TO_REGISTER_RESOURCE";
-
-		case PVRSRV_ERROR_INVALID_CCB_COMMAND:			return "PVRSRV_ERROR_INVALID_CCB_COMMAND";
-
-		case PVRSRV_ERROR_UNABLE_TO_LOCK_RESOURCE:		return "PVRSRV_ERROR_UNABLE_TO_LOCK_RESOURCE";
-		case PVRSRV_ERROR_INVALID_LOCK_ID:				return "PVRSRV_ERROR_INVALID_LOCK_ID";
-		case PVRSRV_ERROR_RESOURCE_NOT_LOCKED:			return "PVRSRV_ERROR_RESOURCE_NOT_LOCKED";
-
-		case PVRSRV_ERROR_FLIP_FAILED:					return "PVRSRV_ERROR_FLIP_FAILED";
-		case PVRSRV_ERROR_UNBLANK_DISPLAY_FAILED:		return "PVRSRV_ERROR_UNBLANK_DISPLAY_FAILED";
-
-		case PVRSRV_ERROR_TIMEOUT_POLLING_FOR_VALUE:	return "PVRSRV_ERROR_TIMEOUT_POLLING_FOR_VALUE";
-
-		case PVRSRV_ERROR_CREATE_RENDER_CONTEXT_FAILED:	return "PVRSRV_ERROR_CREATE_RENDER_CONTEXT_FAILED";
-		case PVRSRV_ERROR_UNKNOWN_PRIMARY_FRAG:			return "PVRSRV_ERROR_UNKNOWN_PRIMARY_FRAG";
-		case PVRSRV_ERROR_UNEXPECTED_SECONDARY_FRAG:	return "PVRSRV_ERROR_UNEXPECTED_SECONDARY_FRAG";
-		case PVRSRV_ERROR_UNEXPECTED_PRIMARY_FRAG:		return "PVRSRV_ERROR_UNEXPECTED_PRIMARY_FRAG";
-
-		case PVRSRV_ERROR_UNABLE_TO_INSERT_FENCE_ID:	return "PVRSRV_ERROR_UNABLE_TO_INSERT_FENCE_ID";
-
-		case PVRSRV_ERROR_BLIT_SETUP_FAILED:			return "PVRSRV_ERROR_BLIT_SETUP_FAILED";
-
-		case PVRSRV_ERROR_PDUMP_NOT_AVAILABLE:			return "PVRSRV_ERROR_PDUMP_NOT_AVAILABLE";
-		case PVRSRV_ERROR_PDUMP_BUFFER_FULL:			return "PVRSRV_ERROR_PDUMP_BUFFER_FULL";
-		case PVRSRV_ERROR_PDUMP_BUF_OVERFLOW:			return "PVRSRV_ERROR_PDUMP_BUF_OVERFLOW";
-		case PVRSRV_ERROR_PDUMP_NOT_ACTIVE:				return "PVRSRV_ERROR_PDUMP_NOT_ACTIVE";
-		case PVRSRV_ERROR_INCOMPLETE_LINE_OVERLAPS_PAGES:return "PVRSRV_ERROR_INCOMPLETE_LINE_OVERLAPS_PAGES";
-
-		case PVRSRV_ERROR_MUTEX_DESTROY_FAILED:			return "PVRSRV_ERROR_MUTEX_DESTROY_FAILED";
-		case PVRSRV_ERROR_MUTEX_INTERRUPTIBLE_ERROR:	return "PVRSRV_ERROR_MUTEX_INTERRUPTIBLE_ERROR";
-
-		case PVRSRV_ERROR_INSUFFICIENT_SCRIPT_SPACE:	return "PVRSRV_ERROR_INSUFFICIENT_SCRIPT_SPACE";
-		case PVRSRV_ERROR_INSUFFICIENT_SPACE_FOR_COMMAND:return "PVRSRV_ERROR_INSUFFICIENT_SPACE_FOR_COMMAND";
-
-		case PVRSRV_ERROR_PROCESS_NOT_INITIALISED:		return "PVRSRV_ERROR_PROCESS_NOT_INITIALISED";
-		case PVRSRV_ERROR_PROCESS_NOT_FOUND:			return "PVRSRV_ERROR_PROCESS_NOT_FOUND";
-		case PVRSRV_ERROR_SRV_CONNECT_FAILED:			return "PVRSRV_ERROR_SRV_CONNECT_FAILED";
-		case PVRSRV_ERROR_SRV_DISCONNECT_FAILED:		return "PVRSRV_ERROR_SRV_DISCONNECT_FAILED";
-		case PVRSRV_ERROR_DEINT_PHASE_FAILED:			return "PVRSRV_ERROR_DEINT_PHASE_FAILED";
-		case PVRSRV_ERROR_INIT2_PHASE_FAILED:			return "PVRSRV_ERROR_INIT2_PHASE_FAILED";
-
-		case PVRSRV_ERROR_NO_DC_DEVICES_FOUND:			return "PVRSRV_ERROR_NO_DC_DEVICES_FOUND";
-		case PVRSRV_ERROR_UNABLE_TO_OPEN_DC_DEVICE:		return "PVRSRV_ERROR_UNABLE_TO_OPEN_DC_DEVICE";
-		case PVRSRV_ERROR_UNABLE_TO_REMOVE_DEVICE:		return "PVRSRV_ERROR_UNABLE_TO_REMOVE_DEVICE";
-		case PVRSRV_ERROR_NO_DEVICEDATA_FOUND:			return "PVRSRV_ERROR_NO_DEVICEDATA_FOUND";
-		case PVRSRV_ERROR_NO_DEVICENODE_FOUND:			return "PVRSRV_ERROR_NO_DEVICENODE_FOUND";
-		case PVRSRV_ERROR_NO_CLIENTNODE_FOUND:			return "PVRSRV_ERROR_NO_CLIENTNODE_FOUND";
-		case PVRSRV_ERROR_FAILED_TO_PROCESS_QUEUE:		return "PVRSRV_ERROR_FAILED_TO_PROCESS_QUEUE";
-
-		case PVRSRV_ERROR_UNABLE_TO_INIT_TASK:			return "PVRSRV_ERROR_UNABLE_TO_INIT_TASK";
-		case PVRSRV_ERROR_UNABLE_TO_SCHEDULE_TASK:		return "PVRSRV_ERROR_UNABLE_TO_SCHEDULE_TASK";
-		case PVRSRV_ERROR_UNABLE_TO_KILL_TASK:			return "PVRSRV_ERROR_UNABLE_TO_KILL_TASK";
-
-		case PVRSRV_ERROR_UNABLE_TO_ENABLE_TIMER:		return "PVRSRV_ERROR_UNABLE_TO_ENABLE_TIMER";
-		case PVRSRV_ERROR_UNABLE_TO_DISABLE_TIMER:		return "PVRSRV_ERROR_UNABLE_TO_DISABLE_TIMER";
-		case PVRSRV_ERROR_UNABLE_TO_REMOVE_TIMER:		return "PVRSRV_ERROR_UNABLE_TO_REMOVE_TIMER";
-
-		case PVRSRV_ERROR_UNKNOWN_PIXEL_FORMAT:			return "PVRSRV_ERROR_UNKNOWN_PIXEL_FORMAT";
-		case PVRSRV_ERROR_UNKNOWN_SCRIPT_OPERATION:		return "PVRSRV_ERROR_UNKNOWN_SCRIPT_OPERATION";
-
-		case PVRSRV_ERROR_HANDLE_INDEX_OUT_OF_RANGE:	return "PVRSRV_ERROR_HANDLE_INDEX_OUT_OF_RANGE";
-		case PVRSRV_ERROR_HANDLE_NOT_ALLOCATED:			return "PVRSRV_ERROR_HANDLE_NOT_ALLOCATED";
-		case PVRSRV_ERROR_HANDLE_TYPE_MISMATCH:			return "PVRSRV_ERROR_HANDLE_TYPE_MISMATCH";
-		case PVRSRV_ERROR_UNABLE_TO_ADD_HANDLE:			return "PVRSRV_ERROR_UNABLE_TO_ADD_HANDLE";
-		case PVRSRV_ERROR_HANDLE_NOT_SHAREABLE:			return "PVRSRV_ERROR_HANDLE_NOT_SHAREABLE";
-		case PVRSRV_ERROR_HANDLE_NOT_FOUND:				return "PVRSRV_ERROR_HANDLE_NOT_FOUND";
-		case PVRSRV_ERROR_INVALID_SUBHANDLE:			return "PVRSRV_ERROR_INVALID_SUBHANDLE";
-		case PVRSRV_ERROR_HANDLE_BATCH_IN_USE:			return "PVRSRV_ERROR_HANDLE_BATCH_IN_USE";
-		case PVRSRV_ERROR_HANDLE_BATCH_COMMIT_FAILURE:	return "PVRSRV_ERROR_HANDLE_BATCH_COMMIT_FAILURE";
-
-		case PVRSRV_ERROR_UNABLE_TO_CREATE_HASH_TABLE:	return "PVRSRV_ERROR_UNABLE_TO_CREATE_HASH_TABLE";
-		case PVRSRV_ERROR_INSERT_HASH_TABLE_DATA_FAILED:return "PVRSRV_ERROR_INSERT_HASH_TABLE_DATA_FAILED";
-
-		case PVRSRV_ERROR_UNSUPPORTED_BACKING_STORE:	return "PVRSRV_ERROR_UNSUPPORTED_BACKING_STORE";
-		case PVRSRV_ERROR_UNABLE_TO_DESTROY_BM_HEAP:	return "PVRSRV_ERROR_UNABLE_TO_DESTROY_BM_HEAP";
-
-		case PVRSRV_ERROR_UNKNOWN_INIT_SERVER_STATE:	return "PVRSRV_ERROR_UNKNOWN_INIT_SERVER_STATE";
-
-		case PVRSRV_ERROR_NO_FREE_DEVICEIDS_AVALIABLE:	return "PVRSRV_ERROR_NO_FREE_DEVICEIDS_AVALIABLE";
-		case PVRSRV_ERROR_INVALID_DEVICEID:				return "PVRSRV_ERROR_INVALID_DEVICEID";
-		case PVRSRV_ERROR_DEVICEID_NOT_FOUND:			return "PVRSRV_ERROR_DEVICEID_NOT_FOUND";
-
-		case PVRSRV_ERROR_MEMORY_TEST_FAILED:			return "PVRSRV_ERROR_MEMORY_TEST_FAILED";
-		case PVRSRV_ERROR_CPUPADDR_TEST_FAILED:			return "PVRSRV_ERROR_CPUPADDR_TEST_FAILED";
-		case PVRSRV_ERROR_COPY_TEST_FAILED:				return "PVRSRV_ERROR_COPY_TEST_FAILED";
-
-		case PVRSRV_ERROR_SEMAPHORE_NOT_INITIALISED:	return "PVRSRV_ERROR_SEMAPHORE_NOT_INITIALISED";
-
-		case PVRSRV_ERROR_UNABLE_TO_RELEASE_CLOCK:		return "PVRSRV_ERROR_UNABLE_TO_RELEASE_CLOCK";
-		case PVRSRV_ERROR_CLOCK_REQUEST_FAILED:			return "PVRSRV_ERROR_CLOCK_REQUEST_FAILED";
-		case PVRSRV_ERROR_DISABLE_CLOCK_FAILURE:		return "PVRSRV_ERROR_DISABLE_CLOCK_FAILURE";
-		case PVRSRV_ERROR_UNABLE_TO_SET_CLOCK_RATE:		return "PVRSRV_ERROR_UNABLE_TO_SET_CLOCK_RATE";
-		case PVRSRV_ERROR_UNABLE_TO_ROUND_CLOCK_RATE:	return "PVRSRV_ERROR_UNABLE_TO_ROUND_CLOCK_RATE";
-		case PVRSRV_ERROR_UNABLE_TO_ENABLE_CLOCK:		return "PVRSRV_ERROR_UNABLE_TO_ENABLE_CLOCK";
-		case PVRSRV_ERROR_UNABLE_TO_GET_CLOCK:			return "PVRSRV_ERROR_UNABLE_TO_GET_CLOCK";
-		case PVRSRV_ERROR_UNABLE_TO_GET_PARENT_CLOCK:	return "PVRSRV_ERROR_UNABLE_TO_GET_PARENT_CLOCK";
-		case PVRSRV_ERROR_UNABLE_TO_GET_SYSTEM_CLOCK:	return "PVRSRV_ERROR_UNABLE_TO_GET_SYSTEM_CLOCK";
-
-		case PVRSRV_ERROR_UNKNOWN_SGL_ERROR:			return "PVRSRV_ERROR_UNKNOWN_SGL_ERROR";
-	    case PVRSRV_ERROR_BAD_SYNC_STATE:               return "PVRSRV_ERROR_BAD_SYNC_STATE";
-
-		case PVRSRV_ERROR_FORCE_I32:					return "PVRSRV_ERROR_FORCE_I32";
-
-		default:
-			return "Unknown PVRSRV error number";
-	}
-
-#if defined (__cplusplus)
-}
-#endif
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/include/servicesint.h b/drivers/staging/cdv/pvr/services4/include/servicesint.h
deleted file mode 100644
index 813a391..0000000
--- a/drivers/staging/cdv/pvr/services4/include/servicesint.h
+++ /dev/null
@@ -1,391 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined (__SERVICESINT_H__)
-#define __SERVICESINT_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#include "services.h"
-#include "sysinfo.h"
-
-#define HWREC_DEFAULT_TIMEOUT	(500)
-
-#define DRIVERNAME_MAXLENGTH	(100)
-
-#define	ALIGNSIZE(size, alignshift)	(((size) + ((1UL << (alignshift))-1)) & ~((1UL << (alignshift))-1))
-
-#ifndef MAX
-#define MAX(a,b) 					(((a) > (b)) ? (a) : (b))
-#endif
-#ifndef MIN
-#define MIN(a,b) 					(((a) < (b)) ? (a) : (b))
-#endif
-
-typedef enum _PVRSRV_MEMTYPE_
-{
-	PVRSRV_MEMTYPE_UNKNOWN		= 0,
-	PVRSRV_MEMTYPE_DEVICE		= 1,
-	PVRSRV_MEMTYPE_DEVICECLASS	= 2,
-	PVRSRV_MEMTYPE_WRAPPED		= 3,
-	PVRSRV_MEMTYPE_MAPPED		= 4,
-} PVRSRV_MEMTYPE;
-
-typedef struct _PVRSRV_KERNEL_MEM_INFO_
-{
-	
-	IMG_PVOID				pvLinAddrKM;
-
-	
-	IMG_DEV_VIRTADDR		sDevVAddr;
-
-	
-	IMG_UINT32				ui32Flags;
-
-	
-	IMG_SIZE_T				uAllocSize;
-
-	
-	PVRSRV_MEMBLK			sMemBlk;
-
-	
-	IMG_PVOID				pvSysBackupBuffer;
-
-	
-	IMG_UINT32				ui32RefCount;
-
-	
-	IMG_BOOL				bPendingFree;
-
-
-#if defined(SUPPORT_MEMINFO_IDS)
-	#if !defined(USE_CODE)
-	
-	IMG_UINT64				ui64Stamp;
-	#else 
-	IMG_UINT32				dummy1;
-	IMG_UINT32				dummy2;
-	#endif 
-#endif 
-
-	
-	struct _PVRSRV_KERNEL_SYNC_INFO_	*psKernelSyncInfo;
-
-	PVRSRV_MEMTYPE				memType;
-
-    
-
-
-
-
-
-
-	struct {
-        
-
-		IMG_BOOL bInUse;
-
-        
-		IMG_HANDLE hDevCookieInt;
-
-        
-		IMG_UINT32 ui32ShareIndex;
-
-        
-
-		IMG_UINT32 ui32OrigReqAttribs;
-		IMG_UINT32 ui32OrigReqSize;
-		IMG_UINT32 ui32OrigReqAlignment;
-	} sShareMemWorkaround;
-} PVRSRV_KERNEL_MEM_INFO;
-
-
-typedef struct _PVRSRV_KERNEL_SYNC_INFO_
-{
-	
-	PVRSRV_SYNC_DATA		*psSyncData;
-
-	
-	IMG_DEV_VIRTADDR		sWriteOpsCompleteDevVAddr;
-
-	
-	IMG_DEV_VIRTADDR		sReadOpsCompleteDevVAddr;
-
-	
-	PVRSRV_KERNEL_MEM_INFO	*psSyncDataMemInfoKM;
-
-	
-	
-	IMG_UINT32              ui32RefCount;
-
-	
-	IMG_HANDLE hResItem;
-
-	
-	IMG_UINT32		ui32UID;
-} PVRSRV_KERNEL_SYNC_INFO;
-
-typedef struct _PVRSRV_DEVICE_SYNC_OBJECT_
-{
-	
-	IMG_UINT32			ui32ReadOpsPendingVal;
-	IMG_DEV_VIRTADDR	sReadOpsCompleteDevVAddr;
-	IMG_UINT32			ui32WriteOpsPendingVal;
-	IMG_DEV_VIRTADDR	sWriteOpsCompleteDevVAddr;
-} PVRSRV_DEVICE_SYNC_OBJECT;
-
-typedef struct _PVRSRV_SYNC_OBJECT
-{
-	PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfoKM;
-	IMG_UINT32				ui32WriteOpsPending;
-	IMG_UINT32				ui32ReadOpsPending;
-
-}PVRSRV_SYNC_OBJECT, *PPVRSRV_SYNC_OBJECT;
-
-typedef struct _PVRSRV_COMMAND
-{
-	IMG_SIZE_T			uCmdSize;		
-	IMG_UINT32			ui32DevIndex;		
-	IMG_UINT32			CommandType;		
-	IMG_UINT32			ui32DstSyncCount;	
-	IMG_UINT32			ui32SrcSyncCount;	
-	PVRSRV_SYNC_OBJECT	*psDstSync;			
-	PVRSRV_SYNC_OBJECT	*psSrcSync;			
-	IMG_SIZE_T			uDataSize;		
-	IMG_UINT32			ui32ProcessID;		
-	IMG_VOID			*pvData;			
-}PVRSRV_COMMAND, *PPVRSRV_COMMAND;
-
-
-typedef struct _PVRSRV_QUEUE_INFO_
-{
-	IMG_VOID			*pvLinQueueKM;			
-	IMG_VOID			*pvLinQueueUM;			
-	volatile IMG_SIZE_T	ui32ReadOffset;			
-	volatile IMG_SIZE_T	ui32WriteOffset;		
-	IMG_UINT32			*pui32KickerAddrKM;		
-	IMG_UINT32			*pui32KickerAddrUM;		
-	IMG_SIZE_T			ui32QueueSize;			
-
-	IMG_UINT32			ui32ProcessID;			
-
-	IMG_HANDLE			hMemBlock[2];
-
-	struct _PVRSRV_QUEUE_INFO_ *psNextKM;		
-}PVRSRV_QUEUE_INFO;
-
-
-typedef struct _PVRSRV_HEAP_INFO_KM_
-{
-	IMG_UINT32			ui32HeapID;
-	IMG_DEV_VIRTADDR	sDevVAddrBase;
-
-	IMG_HANDLE 			hDevMemHeap;
-	IMG_UINT32			ui32HeapByteSize;
-	IMG_UINT32			ui32Attribs;
-	IMG_UINT32			ui32XTileStride;
-}PVRSRV_HEAP_INFO_KM;
-
-
-typedef struct _PVRSRV_EVENTOBJECT_KM_
-{
-	
-	IMG_CHAR	szName[EVENTOBJNAME_MAXLENGTH];
-	
-	IMG_HANDLE	hOSEventKM;
-
-} PVRSRV_EVENTOBJECT_KM;
-
-
-typedef struct _PVRSRV_MISC_INFO_KM_
-{
-	IMG_UINT32	ui32StateRequest;		
-	IMG_UINT32	ui32StatePresent;		
-
-	
-	IMG_VOID	*pvSOCTimerRegisterKM;
-	IMG_VOID	*pvSOCTimerRegisterUM;
-	IMG_HANDLE	hSOCTimerRegisterOSMemHandle;
-	IMG_HANDLE	hSOCTimerRegisterMappingInfo;
-
-	
-	IMG_VOID	*pvSOCClockGateRegs;
-	IMG_UINT32	ui32SOCClockGateRegsSize;
-
-	
-	IMG_CHAR	*pszMemoryStr;
-	IMG_UINT32	ui32MemoryStrLen;
-
-	
-	PVRSRV_EVENTOBJECT_KM	sGlobalEventObject;
-	IMG_HANDLE				hOSGlobalEvent;
-
-	
-	IMG_UINT32	aui32DDKVersion[4];
-
-	
-	struct
-	{
-		
-		IMG_BOOL bDeferOp;
-
-		
-		PVRSRV_MISC_INFO_CPUCACHEOP_TYPE eCacheOpType;
-
-		PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
-
-		
-		IMG_VOID *pvBaseVAddr;
-
-		
-		IMG_UINT32	ui32Length;
-	} sCacheOpCtl;
-} PVRSRV_MISC_INFO_KM;
-
-
-typedef PVRSRV_ERROR (*PFN_INSERT_CMD) (PVRSRV_QUEUE_INFO*,
-										PVRSRV_COMMAND**,
-										IMG_UINT32,
-										IMG_UINT16,
-										IMG_UINT32,
-										PVRSRV_KERNEL_SYNC_INFO*[],
-										IMG_UINT32,
-										PVRSRV_KERNEL_SYNC_INFO*[],
-										IMG_UINT32);
-typedef PVRSRV_ERROR (*PFN_SUBMIT_CMD) (PVRSRV_QUEUE_INFO*, PVRSRV_COMMAND*, IMG_BOOL);
-
-
-typedef struct PVRSRV_DEVICECLASS_BUFFER_TAG
-{
-	PFN_GET_BUFFER_ADDR		pfnGetBufferAddr;
-	IMG_HANDLE				hDevMemContext;
-	IMG_HANDLE				hExtDevice;
-	IMG_HANDLE				hExtBuffer;
-	PVRSRV_KERNEL_SYNC_INFO	*psKernelSyncInfo;
-	IMG_UINT32				ui32MemMapRefCount;
-} PVRSRV_DEVICECLASS_BUFFER;
-
-
-typedef struct PVRSRV_CLIENT_DEVICECLASS_INFO_TAG
-{
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID     hDeviceKM;
-#else
-	IMG_HANDLE hDeviceKM;
-#endif
-	IMG_HANDLE	hServices;
-} PVRSRV_CLIENT_DEVICECLASS_INFO;
-
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVGetWriteOpsPending)
-#endif
-static INLINE
-IMG_UINT32 PVRSRVGetWriteOpsPending(PVRSRV_KERNEL_SYNC_INFO *psSyncInfo, IMG_BOOL bIsReadOp)
-{
-	IMG_UINT32 ui32WriteOpsPending;
-
-	if(bIsReadOp)
-	{
-		ui32WriteOpsPending = psSyncInfo->psSyncData->ui32WriteOpsPending;
-	}
-	else
-	{
-		
-
-
-		ui32WriteOpsPending = psSyncInfo->psSyncData->ui32WriteOpsPending++;
-	}
-
-	return ui32WriteOpsPending;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVGetReadOpsPending)
-#endif
-static INLINE
-IMG_UINT32 PVRSRVGetReadOpsPending(PVRSRV_KERNEL_SYNC_INFO *psSyncInfo, IMG_BOOL bIsReadOp)
-{
-	IMG_UINT32 ui32ReadOpsPending;
-
-	if(bIsReadOp)
-	{
-		ui32ReadOpsPending = psSyncInfo->psSyncData->ui32ReadOpsPending++;
-	}
-	else
-	{
-		ui32ReadOpsPending = psSyncInfo->psSyncData->ui32ReadOpsPending;
-	}
-
-	return ui32ReadOpsPending;
-}
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVQueueCommand(IMG_HANDLE hQueueInfo,
-								PVRSRV_COMMAND *psCommand);
-
-
-
-IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV
-PVRSRVGetMMUContextPDDevPAddr(const PVRSRV_CONNECTION *psConnection,
-#if defined (SUPPORT_SID_INTERFACE)
-                              IMG_SID hDevMemContext,
-#else
-                              IMG_HANDLE hDevMemContext,
-#endif
-                              IMG_DEV_PHYADDR *sPDDevPAddr);
-
-IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV
-PVRSRVAllocSharedSysMem(const PVRSRV_CONNECTION *psConnection,
-						IMG_UINT32 ui32Flags,
-						IMG_SIZE_T ui32Size,
-						PVRSRV_CLIENT_MEM_INFO **ppsClientMemInfo);
-
-IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV
-PVRSRVFreeSharedSysMem(const PVRSRV_CONNECTION *psConnection,
-					   PVRSRV_CLIENT_MEM_INFO *psClientMemInfo);
-
-IMG_IMPORT PVRSRV_ERROR
-PVRSRVUnrefSharedSysMem(const PVRSRV_CONNECTION *psConnection,
-                        PVRSRV_CLIENT_MEM_INFO *psClientMemInfo);
-
-IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV
-PVRSRVMapMemInfoMem(const PVRSRV_CONNECTION *psConnection,
-#if defined (SUPPORT_SID_INTERFACE)
-                    IMG_SID hKernelMemInfo,
-#else
-                    IMG_HANDLE hKernelMemInfo,
-#endif
-                    PVRSRV_CLIENT_MEM_INFO **ppsClientMemInfo);
-
-
-#if defined (__cplusplus)
-}
-#endif
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/include/sgx_bridge.h b/drivers/staging/cdv/pvr/services4/include/sgx_bridge.h
deleted file mode 100644
index 204189c..0000000
--- a/drivers/staging/cdv/pvr/services4/include/sgx_bridge.h
+++ /dev/null
@@ -1,644 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined(__SGX_BRIDGE_H__)
-#define __SGX_BRIDGE_H__
-
-#if defined (SUPPORT_SID_INTERFACE)
-#include "sgxapi.h"
-#else
-#include "sgxapi_km.h"
-#endif
-#include "sgxinfo.h"
-#include "pvr_bridge.h"
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-
-#define PVRSRV_BRIDGE_SGX_CMD_BASE (PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD+1)
-#define PVRSRV_BRIDGE_SGX_GETCLIENTINFO			PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+0)
-#define PVRSRV_BRIDGE_SGX_RELEASECLIENTINFO		PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+1)
-#define PVRSRV_BRIDGE_SGX_GETINTERNALDEVINFO	PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+2)
-#define PVRSRV_BRIDGE_SGX_DOKICK				PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+3)
-#define PVRSRV_BRIDGE_SGX_GETPHYSPAGEADDR		PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+4)
-#define PVRSRV_BRIDGE_SGX_READREGISTRYDWORD		PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+5)
-
-#define PVRSRV_BRIDGE_SGX_2DQUERYBLTSCOMPLETE   PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+9)
-
-#define PVRSRV_BRIDGE_SGX_GETMMUPDADDR  		PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+10)  
-
-#if defined(TRANSFER_QUEUE)
-#define PVRSRV_BRIDGE_SGX_SUBMITTRANSFER			PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+13)
-#endif
-#define PVRSRV_BRIDGE_SGX_GETMISCINFO				PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+14)
-#define PVRSRV_BRIDGE_SGXINFO_FOR_SRVINIT			PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+15)
-#define PVRSRV_BRIDGE_SGX_DEVINITPART2				PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+16)
-
-#define PVRSRV_BRIDGE_SGX_FINDSHAREDPBDESC			PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+17)
-#define PVRSRV_BRIDGE_SGX_UNREFSHAREDPBDESC			PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+18)
-#define PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC			PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+19)
-#define PVRSRV_BRIDGE_SGX_REGISTER_HW_RENDER_CONTEXT	PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+20)
-#define PVRSRV_BRIDGE_SGX_FLUSH_HW_RENDER_TARGET	PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+21)
-#define PVRSRV_BRIDGE_SGX_UNREGISTER_HW_RENDER_CONTEXT	PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+22)
-#if defined(SGX_FEATURE_2D_HARDWARE)
-#define PVRSRV_BRIDGE_SGX_SUBMIT2D					PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+23)
-#define PVRSRV_BRIDGE_SGX_REGISTER_HW_2D_CONTEXT	PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+24)
-#define PVRSRV_BRIDGE_SGX_UNREGISTER_HW_2D_CONTEXT	PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+25)
-#endif
-#define PVRSRV_BRIDGE_SGX_REGISTER_HW_TRANSFER_CONTEXT	PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+26)
-#define PVRSRV_BRIDGE_SGX_UNREGISTER_HW_TRANSFER_CONTEXT	PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+27)
-
-#define PVRSRV_BRIDGE_SGX_SCHEDULE_PROCESS_QUEUES		PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+28)
-
-#define PVRSRV_BRIDGE_SGX_READ_HWPERF_CB			PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+30)
-
-#if defined(PDUMP)
-#define PVRSRV_BRIDGE_SGX_PDUMP_BUFFER_ARRAY		PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+31)
-#define PVRSRV_BRIDGE_SGX_PDUMP_3D_SIGNATURE_REGISTERS	PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+32)
-#define PVRSRV_BRIDGE_SGX_PDUMP_COUNTER_REGISTERS	PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+33)
-#define PVRSRV_BRIDGE_SGX_PDUMP_TA_SIGNATURE_REGISTERS	PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+34)
-#define PVRSRV_BRIDGE_SGX_PDUMP_HWPERFCB				PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+35)
-#define PVRSRV_BRIDGE_SGX_PDUMP_SAVEMEM					PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+36)
-#endif
-
-
-
-#define PVRSRV_BRIDGE_LAST_SGX_CMD (PVRSRV_BRIDGE_SGX_CMD_BASE+36)
-
- 
-typedef struct PVRSRV_BRIDGE_IN_GETPHYSPAGEADDR
-{
-	IMG_UINT32 ui32BridgeFlags; 
-	IMG_HANDLE hDevMemHeap;
-	IMG_DEV_VIRTADDR sDevVAddr;
-}PVRSRV_BRIDGE_IN_GETPHYSPAGEADDR;
-
- 
-typedef struct PVRSRV_BRIDGE_OUT_GETPHYSPAGEADDR
-{
-	PVRSRV_ERROR		eError;
-	IMG_DEV_PHYADDR		DevPAddr;
-	IMG_CPU_PHYADDR		CpuPAddr;
-}PVRSRV_BRIDGE_OUT_GETPHYSPAGEADDR;
-
- 
-typedef struct PVRSRV_BRIDGE_IN_SGX_GETMMU_PDADDR_TAG
-{
-	IMG_UINT32				ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hDevCookie;
-	IMG_SID					hDevMemContext;
-#else
-	IMG_HANDLE				hDevCookie;
-	IMG_HANDLE				hDevMemContext;
-#endif
-}PVRSRV_BRIDGE_IN_SGX_GETMMU_PDADDR;
-
- 
-typedef struct PVRSRV_BRIDGE_OUT_SGX_GETMMU_PDADDR_TAG
-{
-	IMG_DEV_PHYADDR 		sPDDevPAddr;
-	PVRSRV_ERROR			eError;
-}PVRSRV_BRIDGE_OUT_SGX_GETMMU_PDADDR;
-
- 
-typedef struct PVRSRV_BRIDGE_IN_GETCLIENTINFO_TAG
-{
-	IMG_UINT32					ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID						hDevCookie;
-#else
-	IMG_HANDLE					hDevCookie;
-#endif
-}PVRSRV_BRIDGE_IN_GETCLIENTINFO;
-
- 
-typedef struct PVRSRV_BRIDGE_OUT_GETINTERNALDEVINFO_TAG
-{
-	SGX_INTERNAL_DEVINFO	sSGXInternalDevInfo;
-	PVRSRV_ERROR				eError;
-}PVRSRV_BRIDGE_OUT_GETINTERNALDEVINFO;
-
- 
-typedef struct PVRSRV_BRIDGE_IN_GETINTERNALDEVINFO_TAG
-{
-	IMG_UINT32				ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hDevCookie;
-#else
-	IMG_HANDLE				hDevCookie;
-#endif
-}PVRSRV_BRIDGE_IN_GETINTERNALDEVINFO;
-
- 
-typedef struct PVRSRV_BRIDGE_OUT_GETCLIENTINFO_TAG
-{
-	SGX_CLIENT_INFO  	sClientInfo;
-	PVRSRV_ERROR			eError;
-}PVRSRV_BRIDGE_OUT_GETCLIENTINFO;
-
- 
-typedef struct PVRSRV_BRIDGE_IN_RELEASECLIENTINFO_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevCookie;
-#else
-	IMG_HANDLE			hDevCookie;
-#endif
-	SGX_CLIENT_INFO  	sClientInfo;
-}PVRSRV_BRIDGE_IN_RELEASECLIENTINFO;
-
- 
-typedef struct PVRSRV_BRIDGE_IN_ISPBREAKPOLL_TAG
-{
-	IMG_UINT32				ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hDevCookie;
-#else
-	IMG_HANDLE				hDevCookie;
-#endif
-}PVRSRV_BRIDGE_IN_ISPBREAKPOLL;
-
- 
-typedef struct PVRSRV_BRIDGE_IN_DOKICK_TAG
-{
-	IMG_UINT32				ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hDevCookie;
-#else
-	IMG_HANDLE				hDevCookie;
-#endif
-	SGX_CCB_KICK			sCCBKick;
-}PVRSRV_BRIDGE_IN_DOKICK;
-
- 
-typedef struct PVRSRV_BRIDGE_IN_SGX_SCHEDULE_PROCESS_QUEUES_TAG
-{
-	IMG_UINT32				ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hDevCookie;
-#else
-	IMG_HANDLE				hDevCookie;
-#endif
-}PVRSRV_BRIDGE_IN_SGX_SCHEDULE_PROCESS_QUEUES;
-
-
-#if defined(TRANSFER_QUEUE)
- 
-typedef struct PVRSRV_BRIDGE_IN_SUBMITTRANSFER_TAG
-{
-	IMG_UINT32				ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hDevCookie;
-#else
-	IMG_HANDLE				hDevCookie;
-#endif
-	PVRSRV_TRANSFER_SGX_KICK 			sKick;
-}PVRSRV_BRIDGE_IN_SUBMITTRANSFER;
-
-#if defined(SGX_FEATURE_2D_HARDWARE)
- 
-typedef struct PVRSRV_BRIDGE_IN_SUBMIT2D_TAG
-{
-	IMG_UINT32				ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hDevCookie;
-#else
-	IMG_HANDLE				hDevCookie;
-#endif
-	PVRSRV_2D_SGX_KICK 		sKick;
-} PVRSRV_BRIDGE_IN_SUBMIT2D;
-#endif
-#endif
-
- 
-typedef struct PVRSRV_BRIDGE_IN_READREGDWORD_TAG
-{
-	IMG_UINT32				ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hDevCookie;
-#else
-	IMG_HANDLE				hDevCookie;
-#endif
-    IMG_PCHAR				pszKey;
-    IMG_PCHAR				pszValue;
-}PVRSRV_BRIDGE_IN_READREGDWORD;
-
- 
-typedef struct PVRSRV_BRIDGE_OUT_READREGDWORD_TAG
-{
-	PVRSRV_ERROR	eError;
-	IMG_UINT32		ui32Data;
-}PVRSRV_BRIDGE_OUT_READREGDWORD;
-
-
-typedef struct PVRSRV_BRIDGE_IN_SGXGETMISCINFO_TAG
-{
-	IMG_UINT32		ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			hDevCookie;
-#else
-	IMG_HANDLE		hDevCookie;
-#endif
-	SGX_MISC_INFO	*psMiscInfo;
-}PVRSRV_BRIDGE_IN_SGXGETMISCINFO;
-
-typedef struct PVRSRV_BRIDGE_IN_SGXINFO_FOR_SRVINIT_TAG
-{
-	IMG_UINT32		ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			hDevCookie;
-#else
-	IMG_HANDLE		hDevCookie;
-#endif
-}PVRSRV_BRIDGE_IN_SGXINFO_FOR_SRVINIT;
-
-typedef struct PVRSRV_BRIDGE_OUT_SGXINFO_FOR_SRVINIT_TAG
-{
-	PVRSRV_ERROR			eError;
-	SGX_BRIDGE_INFO_FOR_SRVINIT	sInitInfo;
-}PVRSRV_BRIDGE_OUT_SGXINFO_FOR_SRVINIT;
-
-typedef struct PVRSRV_BRIDGE_IN_SGXDEVINITPART2_TAG
-{
-	IMG_UINT32		ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			hDevCookie;
-#else
-	IMG_HANDLE		hDevCookie;
-#endif
-	SGX_BRIDGE_INIT_INFO	sInitInfo;
-}PVRSRV_BRIDGE_IN_SGXDEVINITPART2;
-
-typedef struct PVRSRV_BRIDGE_OUT_SGXDEVINITPART2_TAG
-{
-	PVRSRV_ERROR 	eError;
-	IMG_UINT32 		ui32KMBuildOptions;
-
-}PVRSRV_BRIDGE_OUT_SGXDEVINITPART2;
-
- 
-typedef struct PVRSRV_BRIDGE_IN_2DQUERYBLTSCOMPLETE_TAG
-{
-	IMG_UINT32				ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hDevCookie;
-	IMG_SID					hKernSyncInfo;
-#else
-	IMG_HANDLE				hDevCookie;
-	IMG_HANDLE				hKernSyncInfo;
-#endif
-	IMG_BOOL				bWaitForComplete;
-}PVRSRV_BRIDGE_IN_2DQUERYBLTSCOMPLETE;
-
-
-#define PVRSRV_BRIDGE_SGX_SHAREDPBDESC_MAX_SUBMEMINFOS 10
-
-typedef struct PVRSRV_BRIDGE_IN_SGXFINDSHAREDPBDESC_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-#else
-	IMG_HANDLE hDevCookie;
-#endif
-	IMG_BOOL   bLockOnFailure;
-	IMG_UINT32 ui32TotalPBSize;
-}PVRSRV_BRIDGE_IN_SGXFINDSHAREDPBDESC;
-
-typedef struct PVRSRV_BRIDGE_OUT_SGXFINDSHAREDPBDESC_TAG
-{
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID hKernelMemInfo;
-	IMG_SID hSharedPBDesc;
-	IMG_SID hSharedPBDescKernelMemInfoHandle;
-	IMG_SID hHWPBDescKernelMemInfoHandle;
-	IMG_SID hBlockKernelMemInfoHandle;
-	IMG_SID hHWBlockKernelMemInfoHandle;
-	IMG_SID ahSharedPBDescSubKernelMemInfoHandles[PVRSRV_BRIDGE_SGX_SHAREDPBDESC_MAX_SUBMEMINFOS];
-#else
-	IMG_HANDLE hKernelMemInfo;
-	IMG_HANDLE hSharedPBDesc;
-	IMG_HANDLE hSharedPBDescKernelMemInfoHandle;
-	IMG_HANDLE hHWPBDescKernelMemInfoHandle;
-	IMG_HANDLE hBlockKernelMemInfoHandle;
-	IMG_HANDLE hHWBlockKernelMemInfoHandle;
-	IMG_HANDLE ahSharedPBDescSubKernelMemInfoHandles[PVRSRV_BRIDGE_SGX_SHAREDPBDESC_MAX_SUBMEMINFOS];
-#endif
-	IMG_UINT32 ui32SharedPBDescSubKernelMemInfoHandlesCount;
-	PVRSRV_ERROR eError;
-}PVRSRV_BRIDGE_OUT_SGXFINDSHAREDPBDESC;
-
-typedef struct PVRSRV_BRIDGE_IN_SGXUNREFSHAREDPBDESC_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hSharedPBDesc;
-#else
-	IMG_HANDLE hSharedPBDesc;
-#endif
-}PVRSRV_BRIDGE_IN_SGXUNREFSHAREDPBDESC;
-
-typedef struct PVRSRV_BRIDGE_OUT_SGXUNREFSHAREDPBDESC_TAG
-{
-	PVRSRV_ERROR eError;
-}PVRSRV_BRIDGE_OUT_SGXUNREFSHAREDPBDESC;
-
-
-typedef struct PVRSRV_BRIDGE_IN_SGXADDSHAREDPBDESC_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-	IMG_UINT32 ui32TotalPBSize;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-	IMG_SID    hSharedPBDescKernelMemInfo;
-	IMG_SID    hHWPBDescKernelMemInfo;
-	IMG_SID    hBlockKernelMemInfo;
-	IMG_SID    hHWBlockKernelMemInfo;
-	IMG_SID    *phKernelMemInfoHandles;
-#else
-	IMG_HANDLE hDevCookie;
-	IMG_HANDLE hSharedPBDescKernelMemInfo;
-	IMG_HANDLE hHWPBDescKernelMemInfo;
-	IMG_HANDLE hBlockKernelMemInfo;
-	IMG_HANDLE hHWBlockKernelMemInfo;
-	IMG_HANDLE *phKernelMemInfoHandles;
-#endif
-	IMG_UINT32 ui32KernelMemInfoHandlesCount;
-	IMG_DEV_VIRTADDR sHWPBDescDevVAddr;
-}PVRSRV_BRIDGE_IN_SGXADDSHAREDPBDESC;
-
-typedef struct PVRSRV_BRIDGE_OUT_SGXADDSHAREDPBDESC_TAG
-{
-	PVRSRV_ERROR eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID      hSharedPBDesc;
-#else
-	IMG_HANDLE hSharedPBDesc;
-#endif
-}PVRSRV_BRIDGE_OUT_SGXADDSHAREDPBDESC;
-
-
-#ifdef	PDUMP
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_BUFFER_ARRAY_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-	SGX_KICKTA_DUMP_BUFFER *psBufferArray;
-	IMG_UINT32 ui32BufferArrayLength;
-	IMG_BOOL bDumpPolls;
-} PVRSRV_BRIDGE_IN_PDUMP_BUFFER_ARRAY;
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_3D_SIGNATURE_REGISTERS_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-	IMG_SID    hDevMemContext;
-#else
-	IMG_HANDLE hDevCookie;
-	IMG_HANDLE hDevMemContext;
-#endif
-	IMG_UINT32 ui32DumpFrameNum;
-	IMG_BOOL   bLastFrame;
-	IMG_UINT32 *pui32Registers;
-	IMG_UINT32 ui32NumRegisters;
-}PVRSRV_BRIDGE_IN_PDUMP_3D_SIGNATURE_REGISTERS;
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMPCOUNTER_REGISTERS_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-#else
-	IMG_HANDLE hDevCookie;
-#endif
-	IMG_UINT32 ui32DumpFrameNum;
-	IMG_BOOL bLastFrame;
-	IMG_UINT32 *pui32Registers;
-	IMG_UINT32 ui32NumRegisters;
-}PVRSRV_BRIDGE_IN_PDUMP_COUNTER_REGISTERS;
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_TA_SIGNATURE_REGISTERS_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-#else
-	IMG_HANDLE hDevCookie;
-#endif
-	IMG_UINT32 ui32DumpFrameNum;
-	IMG_UINT32 ui32TAKickCount;
-	IMG_BOOL bLastFrame;
-	IMG_UINT32 *pui32Registers;
-	IMG_UINT32 ui32NumRegisters;
-}PVRSRV_BRIDGE_IN_PDUMP_TA_SIGNATURE_REGISTERS;
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_HWPERFCB_TAG
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevCookie;
-	IMG_SID				hDevMemContext;
-#else
-	IMG_HANDLE			hDevCookie;
-	IMG_HANDLE			hDevMemContext;
-#endif
-	IMG_CHAR			szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE];
-	IMG_UINT32			ui32FileOffset;
-	IMG_UINT32			ui32PDumpFlags;
-
-}PVRSRV_BRIDGE_IN_PDUMP_HWPERFCB;
-
-typedef struct PVRSRV_BRIDGE_IN_PDUMP_SAVEMEM
-{
-	IMG_UINT32			ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hDevCookie;
-	IMG_SID				hDevMemContext;
-#else
-	IMG_HANDLE			hDevCookie;
-#endif
-	IMG_CHAR			szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE];
-	IMG_UINT32			ui32FileOffset;
-	IMG_DEV_VIRTADDR 	sDevVAddr;
-	IMG_UINT32			ui32Size;
-#if !defined (SUPPORT_SID_INTERFACE)
-	IMG_HANDLE			hDevMemContext;
-#endif
-	IMG_UINT32			ui32PDumpFlags;
-
-}PVRSRV_BRIDGE_IN_PDUMP_SAVEMEM;
-
-#endif
-
-typedef struct PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_RENDER_CONTEXT_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-#else
-	IMG_HANDLE hDevCookie;
-#endif
-	IMG_DEV_VIRTADDR sHWRenderContextDevVAddr;
-}PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_RENDER_CONTEXT;
-
-typedef struct PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_RENDER_CONTEXT_TAG
-{
-	PVRSRV_ERROR eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hHWRenderContext;
-#else
-	IMG_HANDLE hHWRenderContext;
-#endif
-}PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_RENDER_CONTEXT;
-
-typedef struct PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_RENDER_CONTEXT_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-	IMG_BOOL   bForceCleanup;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-	IMG_SID    hHWRenderContext;
-#else
-	IMG_HANDLE hDevCookie;
-	IMG_HANDLE hHWRenderContext;
-#endif
-}PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_RENDER_CONTEXT;
-
-typedef struct PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_TRANSFER_CONTEXT_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-#else
-	IMG_HANDLE hDevCookie;
-#endif
-	IMG_DEV_VIRTADDR sHWTransferContextDevVAddr;
-}PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_TRANSFER_CONTEXT;
-
-typedef struct PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_TRANSFER_CONTEXT_TAG
-{
-	PVRSRV_ERROR eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID      hHWTransferContext;
-#else
-	IMG_HANDLE hHWTransferContext;
-#endif
-}PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_TRANSFER_CONTEXT;
-
-typedef struct PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_TRANSFER_CONTEXT_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-	IMG_BOOL   bForceCleanup;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-	IMG_SID    hHWTransferContext;
-#else
-	IMG_HANDLE hDevCookie;
-	IMG_HANDLE hHWTransferContext;
-#endif
-}PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_TRANSFER_CONTEXT;
-
-typedef struct PVRSRV_BRIDGE_IN_SGX_FLUSH_HW_RENDER_TARGET_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-#else
-	IMG_HANDLE hDevCookie;
-#endif
-	IMG_DEV_VIRTADDR sHWRTDataSetDevVAddr;
-}PVRSRV_BRIDGE_IN_SGX_FLUSH_HW_RENDER_TARGET;
-
- 
-#if defined(SGX_FEATURE_2D_HARDWARE)
-typedef struct PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_2D_CONTEXT_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-#else
-	IMG_HANDLE hDevCookie;
-#endif
-	IMG_DEV_VIRTADDR sHW2DContextDevVAddr;
-}PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_2D_CONTEXT;
-
-typedef struct PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_2D_CONTEXT_TAG
-{
-	PVRSRV_ERROR eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hHW2DContext;
-#else
-	IMG_HANDLE hHW2DContext;
-#endif
-}PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_2D_CONTEXT;
-
-typedef struct PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_2D_CONTEXT_TAG
-{
-	IMG_UINT32 ui32BridgeFlags; 
-	IMG_BOOL   bForceCleanup;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID    hDevCookie;
-	IMG_SID    hHW2DContext;
-#else
-	IMG_HANDLE hDevCookie;
-	IMG_HANDLE hHW2DContext;
-#endif
-}PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_2D_CONTEXT;
-
-#define	SGX2D_MAX_BLT_CMD_SIZ		256	
-#endif 
-
-
-typedef struct PVRSRV_BRIDGE_IN_SGX_READ_HWPERF_CB_TAG
-{
-	IMG_UINT32					ui32BridgeFlags; 
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID						hDevCookie;
-#else
-	IMG_HANDLE					hDevCookie;
-#endif
-	IMG_UINT32					ui32ArraySize;
-	PVRSRV_SGX_HWPERF_CB_ENTRY	*psHWPerfCBData;
-} PVRSRV_BRIDGE_IN_SGX_READ_HWPERF_CB;
-
-typedef struct PVRSRV_BRIDGE_OUT_SGX_READ_HWPERF_CB_TAG
-{
-	PVRSRV_ERROR		eError;
-	IMG_UINT32			ui32DataCount;
-	IMG_UINT32			ui32ClockSpeed;
-	IMG_UINT32			ui32HostTimeStamp;
-} PVRSRV_BRIDGE_OUT_SGX_READ_HWPERF_CB;
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/include/sgx_mkif_km.h b/drivers/staging/cdv/pvr/services4/include/sgx_mkif_km.h
deleted file mode 100644
index d5cffdb..0000000
--- a/drivers/staging/cdv/pvr/services4/include/sgx_mkif_km.h
+++ /dev/null
@@ -1,347 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined (__SGX_MKIF_KM_H__)
-#define __SGX_MKIF_KM_H__
-
-#include "img_types.h"
-#include "servicesint.h"
-#include "sgxapi_km.h"
-
-
-#if !defined (SGX_MP_CORE_SELECT)
-#if defined(SGX_FEATURE_MP)
-	#define SGX_REG_BANK_SHIFT 			(14)
-	#define SGX_REG_BANK_SIZE 			(1 << SGX_REG_BANK_SHIFT)
-	#define SGX_REG_BANK_BASE_INDEX		(2)
-	#define	SGX_REG_BANK_MASTER_INDEX	(1)
-	#define SGX_MP_CORE_SELECT(x,i) 	(x + ((i + SGX_REG_BANK_BASE_INDEX) * SGX_REG_BANK_SIZE))
-	#define SGX_MP_MASTER_SELECT(x) 	(x + (SGX_REG_BANK_MASTER_INDEX * SGX_REG_BANK_SIZE))
-#else
-	#define SGX_MP_CORE_SELECT(x,i) 	(x)
-#endif 
-#endif
-
-
-typedef struct _SGXMKIF_COMMAND_
-{
-	IMG_UINT32				ui32ServiceAddress;		
-	IMG_UINT32				ui32CacheControl;		
-	IMG_UINT32				ui32Data[6];			
-} SGXMKIF_COMMAND;
-
-
-typedef struct _PVRSRV_SGX_KERNEL_CCB_
-{
-	SGXMKIF_COMMAND		asCommands[256];		
-} PVRSRV_SGX_KERNEL_CCB;
-
-
-typedef struct _PVRSRV_SGX_CCB_CTL_
-{
-	IMG_UINT32				ui32WriteOffset;		
-	IMG_UINT32				ui32ReadOffset;			
-} PVRSRV_SGX_CCB_CTL;
-
-
-typedef struct _SGXMKIF_HOST_CTL_
-{
-#if defined(PVRSRV_USSE_EDM_BREAKPOINTS)
-	IMG_UINT32				ui32BreakpointDisable;
-	IMG_UINT32				ui32Continue;
-#endif
-
-	volatile IMG_UINT32		ui32InitStatus;				
-	volatile IMG_UINT32		ui32PowerStatus;			
-	volatile IMG_UINT32		ui32CleanupStatus;			
-#if defined(FIX_HW_BRN_28889)
-	volatile IMG_UINT32		ui32InvalStatus;			
-#endif
-#if defined(SUPPORT_HW_RECOVERY)
-	IMG_UINT32				ui32uKernelDetectedLockups;	
-	IMG_UINT32				ui32HostDetectedLockups;	
-	IMG_UINT32				ui32HWRecoverySampleRate;	
-#endif 
-	IMG_UINT32				ui32uKernelTimerClock;		
-	IMG_UINT32				ui32ActivePowManSampleRate;	
-	IMG_UINT32				ui32InterruptFlags; 		
-	IMG_UINT32				ui32InterruptClearFlags; 	
-	IMG_UINT32				ui32BPSetClearSignal;		
-
-	IMG_UINT32				ui32NumActivePowerEvents;	
-
-	IMG_UINT32				ui32TimeWraps;				
-	IMG_UINT32				ui32HostClock;				
-	IMG_UINT32				ui32AssertFail;				
-
-#if defined(SGX_FEATURE_EXTENDED_PERF_COUNTERS)
-	IMG_UINT32				aui32PerfGroup[PVRSRV_SGX_HWPERF_NUM_COUNTERS];	
-	IMG_UINT32				aui32PerfBit[PVRSRV_SGX_HWPERF_NUM_COUNTERS];	
-#else
-	IMG_UINT32				ui32PerfGroup;									
-#endif 
-
-#if defined(FIX_HW_BRN_31939)
-	IMG_UINT32				ui32BRN31939Mem;
-#endif
-
-	IMG_UINT32				ui32OpenCLDelayCount;			
-} SGXMKIF_HOST_CTL;
-
-#define	SGXMKIF_CMDTA_CTRLFLAGS_READY			0x00000001
-typedef struct _SGXMKIF_CMDTA_SHARED_
-{
-	IMG_UINT32			ui32CtrlFlags;
-	
-	IMG_UINT32			ui32NumTAStatusVals;
-	IMG_UINT32			ui32Num3DStatusVals;
-
-	
-	IMG_UINT32			ui32TATQSyncWriteOpsPendingVal;
-	IMG_DEV_VIRTADDR	sTATQSyncWriteOpsCompleteDevVAddr;
-	IMG_UINT32			ui32TATQSyncReadOpsPendingVal;
-	IMG_DEV_VIRTADDR	sTATQSyncReadOpsCompleteDevVAddr;
-
-	
-	IMG_UINT32			ui323DTQSyncWriteOpsPendingVal;
-	IMG_DEV_VIRTADDR	s3DTQSyncWriteOpsCompleteDevVAddr;
-	IMG_UINT32			ui323DTQSyncReadOpsPendingVal;
-	IMG_DEV_VIRTADDR	s3DTQSyncReadOpsCompleteDevVAddr;
-
-
-#if defined(SUPPORT_SGX_GENERALISED_SYNCOBJECTS)
-	
-	IMG_UINT32					ui32NumTASrcSyncs;
-	PVRSRV_DEVICE_SYNC_OBJECT	asTASrcSyncs[SGX_MAX_TA_SRC_SYNCS];
-	IMG_UINT32					ui32NumTADstSyncs;
-	PVRSRV_DEVICE_SYNC_OBJECT	asTADstSyncs[SGX_MAX_TA_DST_SYNCS];
-	IMG_UINT32					ui32Num3DSrcSyncs;
-	PVRSRV_DEVICE_SYNC_OBJECT	as3DSrcSyncs[SGX_MAX_3D_SRC_SYNCS];
-#else
-	
-	IMG_UINT32			ui32NumSrcSyncs;
-	PVRSRV_DEVICE_SYNC_OBJECT	asSrcSyncs[SGX_MAX_SRC_SYNCS];
-#endif
-
-	
-	PVRSRV_DEVICE_SYNC_OBJECT	sTA3DDependency;
-
-	CTL_STATUS			sCtlTAStatusInfo[SGX_MAX_TA_STATUS_VALS];
-	CTL_STATUS			sCtl3DStatusInfo[SGX_MAX_3D_STATUS_VALS];
-
-} SGXMKIF_CMDTA_SHARED;
-
-#define SGXTQ_MAX_STATUS						SGX_MAX_TRANSFER_STATUS_VALS + 2
-
-#define SGXMKIF_TQFLAGS_NOSYNCUPDATE			0x00000001
-#define SGXMKIF_TQFLAGS_KEEPPENDING				0x00000002
-#define SGXMKIF_TQFLAGS_TATQ_SYNC				0x00000004
-#define SGXMKIF_TQFLAGS_3DTQ_SYNC				0x00000008
-#if defined(SGX_FEATURE_FAST_RENDER_CONTEXT_SWITCH)
-#define SGXMKIF_TQFLAGS_CTXSWITCH				0x00000010
-#endif
-#define SGXMKIF_TQFLAGS_DUMMYTRANSFER			0x00000020
-
-typedef struct _SGXMKIF_TRANSFERCMD_SHARED_
-{
-	
-
- 	IMG_UINT32			ui32NumSrcSyncs;
- 	PVRSRV_DEVICE_SYNC_OBJECT	asSrcSyncs[SGX_MAX_SRC_SYNCS];
-	
-
- 	IMG_UINT32			ui32NumDstSyncs;
- 	PVRSRV_DEVICE_SYNC_OBJECT	asDstSyncs[SGX_MAX_DST_SYNCS];	
-	
-	IMG_UINT32		ui32TASyncWriteOpsPendingVal;
-	IMG_DEV_VIRTADDR	sTASyncWriteOpsCompleteDevVAddr;
-	IMG_UINT32		ui32TASyncReadOpsPendingVal;
-	IMG_DEV_VIRTADDR	sTASyncReadOpsCompleteDevVAddr;
-
-	
-	IMG_UINT32		ui323DSyncWriteOpsPendingVal;
-	IMG_DEV_VIRTADDR	s3DSyncWriteOpsCompleteDevVAddr;
-	IMG_UINT32		ui323DSyncReadOpsPendingVal;
-	IMG_DEV_VIRTADDR	s3DSyncReadOpsCompleteDevVAddr;
-
-	IMG_UINT32 		ui32NumStatusVals;
-	CTL_STATUS  	sCtlStatusInfo[SGXTQ_MAX_STATUS];
-} SGXMKIF_TRANSFERCMD_SHARED, *PSGXMKIF_TRANSFERCMD_SHARED;
-
-
-#if defined(SGX_FEATURE_2D_HARDWARE)
-typedef struct _SGXMKIF_2DCMD_SHARED_ {
-	
-	IMG_UINT32			ui32NumSrcSync;
-	PVRSRV_DEVICE_SYNC_OBJECT	sSrcSyncData[SGX_MAX_2D_SRC_SYNC_OPS];
-
-	
-	PVRSRV_DEVICE_SYNC_OBJECT	sDstSyncData;
-
-	
-	PVRSRV_DEVICE_SYNC_OBJECT	sTASyncData;
-
-	
-	PVRSRV_DEVICE_SYNC_OBJECT	s3DSyncData;
-} SGXMKIF_2DCMD_SHARED, *PSGXMKIF_2DCMD_SHARED;
-#endif 
-
-
-typedef struct _SGXMKIF_HWDEVICE_SYNC_LIST_
-{
-	IMG_DEV_VIRTADDR	sAccessDevAddr;
-	IMG_UINT32			ui32NumSyncObjects;
-	
-	PVRSRV_DEVICE_SYNC_OBJECT	asSyncData[1];
-} SGXMKIF_HWDEVICE_SYNC_LIST, *PSGXMKIF_HWDEVICE_SYNC_LIST;
-
-
-#define PVRSRV_USSE_EDM_INIT_COMPLETE			(1UL << 0)	
-
-#define PVRSRV_USSE_EDM_POWMAN_IDLE_COMPLETE				(1UL << 2)	
-#define PVRSRV_USSE_EDM_POWMAN_POWEROFF_COMPLETE			(1UL << 3)	
-#define PVRSRV_USSE_EDM_POWMAN_POWEROFF_RESTART_IMMEDIATE	(1UL << 4)	
-#define PVRSRV_USSE_EDM_POWMAN_NO_WORK						(1UL << 5)	
-
-#define PVRSRV_USSE_EDM_INTERRUPT_HWR			(1UL << 0)	
-#define PVRSRV_USSE_EDM_INTERRUPT_ACTIVE_POWER	(1UL << 1)	
-
-#define PVRSRV_USSE_EDM_CLEANUPCMD_COMPLETE 	(1UL << 0)	
-
-#if defined(FIX_HW_BRN_28889)
-#define PVRSRV_USSE_EDM_BIF_INVAL_COMPLETE 		(1UL << 0)	
-#endif
-
-#define PVRSRV_USSE_MISCINFO_READY		0x1UL
-#define PVRSRV_USSE_MISCINFO_GET_STRUCT_SIZES	0x2UL	
-#if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG)
-#define PVRSRV_USSE_MISCINFO_MEMREAD			0x4UL	
-#define PVRSRV_USSE_MISCINFO_MEMWRITE			0x8UL	
-#if !defined(SGX_FEATURE_MULTIPLE_MEM_CONTEXTS)
-#define PVRSRV_USSE_MISCINFO_MEMREAD_FAIL		0x1UL << 31	
-#endif
-#endif
-
-
-#define	PVRSRV_CLEANUPCMD_RT		0x1U
-#define	PVRSRV_CLEANUPCMD_RC		0x2U
-#define	PVRSRV_CLEANUPCMD_TC		0x3U
-#define	PVRSRV_CLEANUPCMD_2DC		0x4U
-#define	PVRSRV_CLEANUPCMD_PB		0x5U
-
-#define PVRSRV_POWERCMD_POWEROFF	0x1U
-#define PVRSRV_POWERCMD_IDLE		0x2U
-#define PVRSRV_POWERCMD_RESUME		0x3U
-
-#define PVRSRV_CTXSUSPCMD_SUSPEND	0x1U
-#define PVRSRV_CTXSUSPCMD_RESUME	0x2U
-
-
-#if defined(SGX_FEATURE_MULTIPLE_MEM_CONTEXTS)
-#define SGX_BIF_DIR_LIST_INDEX_EDM	(SGX_FEATURE_BIF_NUM_DIRLISTS - 1)
-#else
-#define SGX_BIF_DIR_LIST_INDEX_EDM	(0)
-#endif
-
-#define	SGXMKIF_CC_INVAL_BIF_PT	0x1
-#define	SGXMKIF_CC_INVAL_BIF_PD	0x2
-#define SGXMKIF_CC_INVAL_BIF_SL	0x4
-#define SGXMKIF_CC_INVAL_DATA	0x8
-
-
-typedef struct _SGX_MISCINFO_STRUCT_SIZES_
-{
-#if defined (SGX_FEATURE_2D_HARDWARE)
-	IMG_UINT32	ui32Sizeof_2DCMD;
-	IMG_UINT32	ui32Sizeof_2DCMD_SHARED;
-#endif
-	IMG_UINT32	ui32Sizeof_CMDTA;
-	IMG_UINT32	ui32Sizeof_CMDTA_SHARED;
-	IMG_UINT32	ui32Sizeof_TRANSFERCMD;
-	IMG_UINT32	ui32Sizeof_TRANSFERCMD_SHARED;
-	IMG_UINT32	ui32Sizeof_3DREGISTERS;
-	IMG_UINT32	ui32Sizeof_HWPBDESC;
-	IMG_UINT32	ui32Sizeof_HWRENDERCONTEXT;
-	IMG_UINT32	ui32Sizeof_HWRENDERDETAILS;
-	IMG_UINT32	ui32Sizeof_HWRTDATA;
-	IMG_UINT32	ui32Sizeof_HWRTDATASET;
-	IMG_UINT32	ui32Sizeof_HWTRANSFERCONTEXT;
-	IMG_UINT32	ui32Sizeof_HOST_CTL;
-	IMG_UINT32	ui32Sizeof_COMMAND;
-} SGX_MISCINFO_STRUCT_SIZES;
-
-
-#if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG)
-typedef struct _PVRSRV_SGX_MISCINFO_MEMACCESS
-{
-	IMG_DEV_VIRTADDR	sDevVAddr;		
-	IMG_DEV_PHYADDR		sPDDevPAddr;	
-} PVRSRV_SGX_MISCINFO_MEMACCESS;
-#endif
-
-typedef struct _PVRSRV_SGX_MISCINFO_INFO
-{
-	IMG_UINT32						ui32MiscInfoFlags;
-	PVRSRV_SGX_MISCINFO_FEATURES	sSGXFeatures;		
-	SGX_MISCINFO_STRUCT_SIZES		sSGXStructSizes;	
-#if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG)
-	PVRSRV_SGX_MISCINFO_MEMACCESS	sSGXMemAccessSrc;	
-	PVRSRV_SGX_MISCINFO_MEMACCESS	sSGXMemAccessDest;	
-#endif
-} PVRSRV_SGX_MISCINFO_INFO;
-
-#ifdef PVRSRV_USSE_EDM_STATUS_DEBUG
-#define SGXMK_TRACE_BUFFER_SIZE 512
-#endif 
-
-#define SGXMKIF_HWPERF_CB_SIZE					0x100	
-
-typedef struct _SGXMKIF_HWPERF_CB_ENTRY_
-{
-	IMG_UINT32	ui32FrameNo;
-	IMG_UINT32	ui32PID;
-	IMG_UINT32	ui32RTData;
-	IMG_UINT32	ui32Type;
-	IMG_UINT32	ui32Ordinal;
-	IMG_UINT32	ui32Info;
-	IMG_UINT32	ui32TimeWraps;
-	IMG_UINT32	ui32Time;
-	
-	IMG_UINT32	ui32Counters[SGX_FEATURE_MP_CORE_COUNT_3D][PVRSRV_SGX_HWPERF_NUM_COUNTERS];
-	IMG_UINT32	ui32MiscCounters[SGX_FEATURE_MP_CORE_COUNT_3D][PVRSRV_SGX_HWPERF_NUM_MISC_COUNTERS];
-} SGXMKIF_HWPERF_CB_ENTRY;
-
-typedef struct _SGXMKIF_HWPERF_CB_
-{
-	IMG_UINT32				ui32Woff;
-	IMG_UINT32				ui32Roff;
-	IMG_UINT32				ui32Ordinal;
-	SGXMKIF_HWPERF_CB_ENTRY psHWPerfCBData[SGXMKIF_HWPERF_CB_SIZE];
-} SGXMKIF_HWPERF_CB;
-
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/include/sgxinfo.h b/drivers/staging/cdv/pvr/services4/include/sgxinfo.h
deleted file mode 100644
index c32dc31..0000000
--- a/drivers/staging/cdv/pvr/services4/include/sgxinfo.h
+++ /dev/null
@@ -1,470 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined (__SGXINFO_H__)
-#define __SGXINFO_H__
-
-#include "sgxscript.h"
-#include "servicesint.h"
-#include "services.h"
-#if !defined (SUPPORT_SID_INTERFACE)
-#include "sgxapi_km.h"
-#endif
-#include "sgx_mkif_km.h"
-
-
-#define SGX_MAX_DEV_DATA			24
-#define	SGX_MAX_INIT_MEM_HANDLES	18
-
-
-typedef struct _SGX_BRIDGE_INFO_FOR_SRVINIT
-{
-	IMG_DEV_PHYADDR sPDDevPAddr;
-	PVRSRV_HEAP_INFO asHeapInfo[PVRSRV_MAX_CLIENT_HEAPS];
-} SGX_BRIDGE_INFO_FOR_SRVINIT;
-
-
-typedef enum _SGXMKIF_CMD_TYPE_
-{
-	SGXMKIF_CMD_TA				= 0,
-	SGXMKIF_CMD_TRANSFER		= 1,
-	SGXMKIF_CMD_2D				= 2,
-	SGXMKIF_CMD_POWER			= 3,
-	SGXMKIF_CMD_CONTEXTSUSPEND	= 4,
-	SGXMKIF_CMD_CLEANUP			= 5,
-	SGXMKIF_CMD_GETMISCINFO		= 6,
-	SGXMKIF_CMD_PROCESS_QUEUES	= 7,
-	SGXMKIF_CMD_DATABREAKPOINT	= 8,
-	SGXMKIF_CMD_SETHWPERFSTATUS	= 9,
- 	SGXMKIF_CMD_FLUSHPDCACHE	= 10,
- 	SGXMKIF_CMD_MAX				= 11,
-
-	SGXMKIF_CMD_FORCE_I32   	= -1,
-
-} SGXMKIF_CMD_TYPE;
-
-
-typedef struct _SGX_BRIDGE_INIT_INFO_
-{
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		hKernelCCBMemInfo;
-	IMG_SID		hKernelCCBCtlMemInfo;
-	IMG_SID		hKernelCCBEventKickerMemInfo;
-	IMG_SID		hKernelSGXHostCtlMemInfo;
-	IMG_SID		hKernelSGXTA3DCtlMemInfo;
-#if defined(FIX_HW_BRN_31272) || defined(FIX_HW_BRN_31780) || defined(FIX_HW_BRN_33920)
-	IMG_SID		hKernelSGXPTLAWriteBackMemInfo;
-#endif
-	IMG_SID		hKernelSGXMiscMemInfo;
-#else
-	IMG_HANDLE	hKernelCCBMemInfo;
-	IMG_HANDLE	hKernelCCBCtlMemInfo;
-	IMG_HANDLE	hKernelCCBEventKickerMemInfo;
-	IMG_HANDLE	hKernelSGXHostCtlMemInfo;
-	IMG_HANDLE	hKernelSGXTA3DCtlMemInfo;
-#if defined(FIX_HW_BRN_31272) || defined(FIX_HW_BRN_31780) || defined(FIX_HW_BRN_33920)
-	IMG_HANDLE	hKernelSGXPTLAWriteBackMemInfo;
-#endif
-	IMG_HANDLE	hKernelSGXMiscMemInfo;
-#endif
-
-	IMG_UINT32	aui32HostKickAddr[SGXMKIF_CMD_MAX];
-
-	SGX_INIT_SCRIPTS sScripts;
-
-	IMG_UINT32	ui32ClientBuildOptions;
-	SGX_MISCINFO_STRUCT_SIZES	sSGXStructSizes;
-
-#if defined(SGX_SUPPORT_HWPROFILING)
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		hKernelHWProfilingMemInfo;
-#else
-	IMG_HANDLE	hKernelHWProfilingMemInfo;
-#endif
-#endif
-#if defined(SUPPORT_SGX_HWPERF)
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		hKernelHWPerfCBMemInfo;
-#else
-	IMG_HANDLE	hKernelHWPerfCBMemInfo;
-#endif
-#endif
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		hKernelTASigBufferMemInfo;
-	IMG_SID		hKernel3DSigBufferMemInfo;
-#else
-	IMG_HANDLE	hKernelTASigBufferMemInfo;
-	IMG_HANDLE	hKernel3DSigBufferMemInfo;
-#endif
-
-#if defined(FIX_HW_BRN_29702)
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		hKernelCFIMemInfo;
-#else
-	IMG_HANDLE	hKernelCFIMemInfo;
-#endif
-#endif
-#if defined(FIX_HW_BRN_29823)
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		hKernelDummyTermStreamMemInfo;
-#else
-	IMG_HANDLE	hKernelDummyTermStreamMemInfo;
-#endif
-#endif
-
-#if defined(FIX_HW_BRN_31542)
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID hKernelClearClipWAVDMStreamMemInfo;
-	IMG_SID hKernelClearClipWAIndexStreamMemInfo;
-	IMG_SID hKernelClearClipWAPDSMemInfo;
-	IMG_SID hKernelClearClipWAUSEMemInfo;
-	IMG_SID hKernelClearClipWAParamMemInfo;
-	IMG_SID hKernelClearClipWAPMPTMemInfo;
-	IMG_SID hKernelClearClipWATPCMemInfo;
-	IMG_SID hKernelClearClipWAPSGRgnHdrMemInfo;
-#else
-	IMG_HANDLE hKernelClearClipWAVDMStreamMemInfo;
-	IMG_HANDLE hKernelClearClipWAIndexStreamMemInfo;
-	IMG_HANDLE hKernelClearClipWAPDSMemInfo;
-	IMG_HANDLE hKernelClearClipWAUSEMemInfo;
-	IMG_HANDLE hKernelClearClipWAParamMemInfo;
-	IMG_HANDLE hKernelClearClipWAPMPTMemInfo;
-	IMG_HANDLE hKernelClearClipWATPCMemInfo;
-	IMG_HANDLE hKernelClearClipWAPSGRgnHdrMemInfo;
-#endif
-#endif
-
-#if defined(SGX_FEATURE_VDM_CONTEXT_SWITCH) && defined(FIX_HW_BRN_31425)
-	IMG_HANDLE	hKernelVDMSnapShotBufferMemInfo;
-	IMG_HANDLE	hKernelVDMCtrlStreamBufferMemInfo;
-#endif
-#if defined(SGX_FEATURE_VDM_CONTEXT_SWITCH) && \
-	defined(FIX_HW_BRN_33657) && defined(SUPPORT_SECURE_33657_FIX)
-	IMG_HANDLE	hKernelVDMStateUpdateBufferMemInfo;
-#endif
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		hKernelEDMStatusBufferMemInfo;
-#else
-	IMG_HANDLE	hKernelEDMStatusBufferMemInfo;
-#endif
-#endif
-#if defined(SGX_FEATURE_OVERLAPPED_SPM)
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		hKernelTmpRgnHeaderMemInfo;
-#else
-	IMG_HANDLE hKernelTmpRgnHeaderMemInfo;
-#endif
-#endif
-
-	IMG_UINT32 ui32EDMTaskReg0;
-	IMG_UINT32 ui32EDMTaskReg1;
-
-	IMG_UINT32 ui32ClkGateCtl;
-	IMG_UINT32 ui32ClkGateCtl2;
-	IMG_UINT32 ui32ClkGateStatusReg;
-	IMG_UINT32 ui32ClkGateStatusMask;
-#if defined(SGX_FEATURE_MP)
-	IMG_UINT32 ui32MasterClkGateStatusReg;
-	IMG_UINT32 ui32MasterClkGateStatusMask;
-	IMG_UINT32 ui32MasterClkGateStatus2Reg;
-	IMG_UINT32 ui32MasterClkGateStatus2Mask;
-#endif 
-
-	IMG_UINT32 ui32CacheControl;
-
-	IMG_UINT32	asInitDevData[SGX_MAX_DEV_DATA];
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		asInitMemHandles[SGX_MAX_INIT_MEM_HANDLES];
-#else
-	IMG_HANDLE	asInitMemHandles[SGX_MAX_INIT_MEM_HANDLES];
-#endif
-
-} SGX_BRIDGE_INIT_INFO;
-
-
-typedef struct _SGX_DEVICE_SYNC_LIST_
-{
-	PSGXMKIF_HWDEVICE_SYNC_LIST	psHWDeviceSyncList;
-
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hKernelHWSyncListMemInfo;
-#else
-	IMG_HANDLE				hKernelHWSyncListMemInfo;
-#endif
-	PVRSRV_CLIENT_MEM_INFO	*psHWDeviceSyncListClientMemInfo;
-	PVRSRV_CLIENT_MEM_INFO	*psAccessResourceClientMemInfo;
-
-	volatile IMG_UINT32		*pui32Lock;
-
-	struct _SGX_DEVICE_SYNC_LIST_	*psNext;
-
-	
-	IMG_UINT32			ui32NumSyncObjects;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				ahSyncHandles[1];
-#else
-	IMG_HANDLE			ahSyncHandles[1];
-#endif
-} SGX_DEVICE_SYNC_LIST, *PSGX_DEVICE_SYNC_LIST;
-
-
-typedef struct _SGX_INTERNEL_STATUS_UPDATE_
-{
-	CTL_STATUS				sCtlStatus;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID					hKernelMemInfo;
-#else
-	IMG_HANDLE				hKernelMemInfo;
-#endif
-} SGX_INTERNEL_STATUS_UPDATE;
-
-
-typedef struct _SGX_CCB_KICK_
-{
-	SGXMKIF_COMMAND		sCommand;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		hCCBKernelMemInfo;
-#else
-	IMG_HANDLE	hCCBKernelMemInfo;
-#endif
-
-	IMG_UINT32	ui32NumDstSyncObjects;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		hKernelHWSyncListMemInfo;
-#else
-	IMG_HANDLE	hKernelHWSyncListMemInfo;
-#endif
-
-	
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		*pahDstSyncHandles;
-#else
-	IMG_HANDLE	*pahDstSyncHandles;
-#endif
-
-	IMG_UINT32	ui32NumTAStatusVals;
-	IMG_UINT32	ui32Num3DStatusVals;
-
-#if defined(SUPPORT_SGX_NEW_STATUS_VALS)
-	SGX_INTERNEL_STATUS_UPDATE	asTAStatusUpdate[SGX_MAX_TA_STATUS_VALS];
-	SGX_INTERNEL_STATUS_UPDATE	as3DStatusUpdate[SGX_MAX_3D_STATUS_VALS];
-#else
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		ahTAStatusSyncInfo[SGX_MAX_TA_STATUS_VALS];
-	IMG_SID		ah3DStatusSyncInfo[SGX_MAX_3D_STATUS_VALS];
-#else
-	IMG_HANDLE	ahTAStatusSyncInfo[SGX_MAX_TA_STATUS_VALS];
-	IMG_HANDLE	ah3DStatusSyncInfo[SGX_MAX_3D_STATUS_VALS];
-#endif
-#endif
-
-	IMG_BOOL	bFirstKickOrResume;
-#if (defined(NO_HARDWARE) || defined(PDUMP))
-	IMG_BOOL	bTerminateOrAbort;
-#endif
-	IMG_BOOL	bLastInScene;
-
-	
-	IMG_UINT32	ui32CCBOffset;
-
-#if defined(SUPPORT_SGX_GENERALISED_SYNCOBJECTS)
-	
-	IMG_UINT32	ui32NumTASrcSyncs;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		ahTASrcKernelSyncInfo[SGX_MAX_TA_SRC_SYNCS];
-#else
-	IMG_HANDLE	ahTASrcKernelSyncInfo[SGX_MAX_TA_SRC_SYNCS];
-#endif
-	IMG_UINT32	ui32NumTADstSyncs;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		ahTADstKernelSyncInfo[SGX_MAX_TA_DST_SYNCS];
-#else
-	IMG_HANDLE	ahTADstKernelSyncInfo[SGX_MAX_TA_DST_SYNCS];
-#endif
-	IMG_UINT32	ui32Num3DSrcSyncs;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		ah3DSrcKernelSyncInfo[SGX_MAX_3D_SRC_SYNCS];
-#else
-	IMG_HANDLE	ah3DSrcKernelSyncInfo[SGX_MAX_3D_SRC_SYNCS];
-#endif
-#else
-	
-	IMG_UINT32	ui32NumSrcSyncs;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		ahSrcKernelSyncInfo[SGX_MAX_SRC_SYNCS];
-#else
-	IMG_HANDLE	ahSrcKernelSyncInfo[SGX_MAX_SRC_SYNCS];
-#endif
-#endif
-
-	
-	IMG_BOOL	bTADependency;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID		hTA3DSyncInfo;
-
-	IMG_SID		hTASyncInfo;
-	IMG_SID		h3DSyncInfo;
-#else
-	IMG_HANDLE	hTA3DSyncInfo;
-
-	IMG_HANDLE	hTASyncInfo;
-	IMG_HANDLE	h3DSyncInfo;
-#endif
-#if defined(PDUMP)
-	IMG_UINT32	ui32CCBDumpWOff;
-#endif
-#if defined(NO_HARDWARE)
-	IMG_UINT32	ui32WriteOpsPendingVal;
-#endif
-	IMG_HANDLE	hDevMemContext;
-} SGX_CCB_KICK;
-
-
-#define SGX_KERNEL_USE_CODE_BASE_INDEX		15
-
-
-typedef struct _SGX_CLIENT_INFO_
-{
-	IMG_UINT32					ui32ProcessID;			
-	IMG_VOID					*pvProcess;				
-	PVRSRV_MISC_INFO			sMiscInfo;				
-
-	IMG_UINT32					asDevData[SGX_MAX_DEV_DATA];
-
-} SGX_CLIENT_INFO;
-
-typedef struct _SGX_INTERNAL_DEVINFO_
-{
-	IMG_UINT32			ui32Flags;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID				hHostCtlKernelMemInfoHandle;
-#else
-	IMG_HANDLE			hHostCtlKernelMemInfoHandle;
-#endif
-	IMG_BOOL			bForcePTOff;
-} SGX_INTERNAL_DEVINFO;
-
-
-typedef struct _SGX_INTERNAL_DEVINFO_KM_
-{
-	IMG_UINT32			ui32Flags;
-	IMG_HANDLE			hHostCtlKernelMemInfoHandle;
-	IMG_BOOL			bForcePTOff;
-} SGX_INTERNAL_DEVINFO_KM;
-
-
-#if defined(TRANSFER_QUEUE)
-typedef struct _PVRSRV_TRANSFER_SGX_KICK_
-{
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			hCCBMemInfo;
-#else
-	IMG_HANDLE		hCCBMemInfo;
-#endif
-	IMG_UINT32		ui32SharedCmdCCBOffset;
-
-	IMG_DEV_VIRTADDR 	sHWTransferContextDevVAddr;
-
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			hTASyncInfo;
-	IMG_SID			h3DSyncInfo;
-#else
-	IMG_HANDLE		hTASyncInfo;
-	IMG_HANDLE		h3DSyncInfo;
-#endif
-
-	IMG_UINT32		ui32NumSrcSync;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			ahSrcSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS];
-#else
-	IMG_HANDLE		ahSrcSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS];
-#endif
-
-	IMG_UINT32		ui32NumDstSync;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			ahDstSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS];
-#else
-	IMG_HANDLE		ahDstSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS];
-#endif
-
-	IMG_UINT32		ui32Flags;
-
-	IMG_UINT32		ui32PDumpFlags;
-#if defined(PDUMP)
-	IMG_UINT32		ui32CCBDumpWOff;
-#endif
-	IMG_HANDLE		hDevMemContext;
-} PVRSRV_TRANSFER_SGX_KICK, *PPVRSRV_TRANSFER_SGX_KICK;
-
-#if defined(SGX_FEATURE_2D_HARDWARE)
-typedef struct _PVRSRV_2D_SGX_KICK_
-{
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			hCCBMemInfo;
-#else
-	IMG_HANDLE		hCCBMemInfo;
-#endif
-	IMG_UINT32		ui32SharedCmdCCBOffset;
-
-	IMG_DEV_VIRTADDR 	sHW2DContextDevVAddr;
-
-	IMG_UINT32		ui32NumSrcSync;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			ahSrcSyncInfo[SGX_MAX_2D_SRC_SYNC_OPS];
-
-	
-	IMG_SID	 		hDstSyncInfo;
-
-	
-	IMG_SID			hTASyncInfo;
-
-	
-	IMG_SID			h3DSyncInfo;
-#else
-	IMG_HANDLE		ahSrcSyncInfo[SGX_MAX_2D_SRC_SYNC_OPS];
-
-	
-	IMG_HANDLE 		hDstSyncInfo;
-
-	
-	IMG_HANDLE		hTASyncInfo;
-
-	
-	IMG_HANDLE		h3DSyncInfo;
-#endif
-
-	IMG_UINT32		ui32PDumpFlags;
-#if defined(PDUMP)
-	IMG_UINT32		ui32CCBDumpWOff;
-#endif
-	IMG_HANDLE		hDevMemContext;
-} PVRSRV_2D_SGX_KICK, *PPVRSRV_2D_SGX_KICK;
-#endif	
-#endif	
-
-
-#endif 
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/bridged/.gitignore b/drivers/staging/cdv/pvr/services4/srvkm/bridged/.gitignore
deleted file mode 100644
index 2f89523..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/bridged/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin_pc_i686*
-tmp_pc_i686*
-host_pc_i686*
-*.o
-*.o.cmd
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_pvr_bridge.c b/drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_pvr_bridge.c
deleted file mode 100644
index 8cfbe23..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_pvr_bridge.c
+++ /dev/null
@@ -1,4782 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-
-
-#include <stddef.h>
-
-#include "img_defs.h"
-#include "services.h"
-#include "pvr_bridge_km.h"
-#include "pvr_debug.h"
-#include "ra.h"
-#include "pvr_bridge.h"
-#if defined(SUPPORT_SGX)
-#include "sgx_bridge.h"
-#endif
-#if defined(SUPPORT_VGX)
-#include "vgx_bridge.h"
-#endif
-#if defined(SUPPORT_MSVDX)
-#include "msvdx_bridge.h"
-#endif
-#include "perproc.h"
-#include "device.h"
-#include "buffer_manager.h"
-
-#include "pdump_km.h"
-#include "syscommon.h"
-
-#include "bridged_pvr_bridge.h"
-#if defined(SUPPORT_SGX)
-#include "bridged_sgx_bridge.h"
-#endif
-#if defined(SUPPORT_VGX)
-#include "bridged_vgx_bridge.h"
-#endif
-#if defined(SUPPORT_MSVDX)
-#include "bridged_msvdx_bridge.h"
-#endif
-
-#include "env_data.h"
-
-#if defined (__linux__) || defined(__QNXNTO__)
-#include "mmap.h"
-#endif
-
-
-#include "srvkm.h" 
-
-PVRSRV_BRIDGE_DISPATCH_TABLE_ENTRY g_BridgeDispatchTable[BRIDGE_DISPATCH_TABLE_ENTRY_COUNT];
-
-#if defined(DEBUG_BRIDGE_KM)
-PVRSRV_BRIDGE_GLOBAL_STATS g_BridgeGlobalStats;
-#endif
-
-#if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-static IMG_BOOL abSharedDeviceMemHeap[PVRSRV_MAX_CLIENT_HEAPS];
-static IMG_BOOL *pbSharedDeviceMemHeap = abSharedDeviceMemHeap;
-#else
-static IMG_BOOL *pbSharedDeviceMemHeap = (IMG_BOOL*)IMG_NULL;
-#endif
-
-
-#if defined(DEBUG_BRIDGE_KM)
-PVRSRV_ERROR
-CopyFromUserWrapper(PVRSRV_PER_PROCESS_DATA *pProcData,
-                    IMG_UINT32 ui32BridgeID,
-                    IMG_VOID *pvDest,
-                    IMG_VOID *pvSrc,
-                    IMG_UINT32 ui32Size)
-{
-	PVRSRV_ERROR ret;
-	ret = OSCopyFromUser(pProcData, pvDest, pvSrc, ui32Size);
-
-	if (ret == PVRSRV_OK) {
-		g_BridgeDispatchTable[ui32BridgeID].ui32CopyFromUserTotalBytes += ui32Size;
-		g_BridgeGlobalStats.ui32TotalCopyFromUserBytes += ui32Size;
-	}
-	return ret;
-}
-PVRSRV_ERROR
-CopyToUserWrapper(PVRSRV_PER_PROCESS_DATA *pProcData,
-                  IMG_UINT32 ui32BridgeID,
-                  IMG_VOID *pvDest,
-                  IMG_VOID *pvSrc,
-                  IMG_UINT32 ui32Size)
-{
-	PVRSRV_ERROR ret;
-	ret = OSCopyToUser(pProcData, pvDest, pvSrc, ui32Size);
-	if (ret == PVRSRV_OK) {
-		g_BridgeDispatchTable[ui32BridgeID].ui32CopyToUserTotalBytes += ui32Size;
-		g_BridgeGlobalStats.ui32TotalCopyToUserBytes += ui32Size;
-	}
-	return ret;
-}
-#endif
-
-
-static IMG_INT
-PVRSRVEnumerateDevicesBW(IMG_UINT32 ui32BridgeID,
-                         IMG_VOID *psBridgeIn,
-                         PVRSRV_BRIDGE_OUT_ENUMDEVICE *psEnumDeviceOUT,
-                         PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ENUM_DEVICES);
-
-    PVR_UNREFERENCED_PARAMETER(psPerProc);
-    PVR_UNREFERENCED_PARAMETER(psBridgeIn);
-
-    psEnumDeviceOUT->eError =
-        PVRSRVEnumerateDevicesKM(&psEnumDeviceOUT->ui32NumDevices,
-                                 psEnumDeviceOUT->asDeviceIdentifier);
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVAcquireDeviceDataBW(IMG_UINT32 ui32BridgeID,
-                          PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO *psAcquireDevInfoIN,
-                          PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO *psAcquireDevInfoOUT,
-                          PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_HANDLE hDevCookieInt;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ACQUIRE_DEVICEINFO);
-
-    psAcquireDevInfoOUT->eError =
-        PVRSRVAcquireDeviceDataKM(psAcquireDevInfoIN->uiDevIndex,
-                                  psAcquireDevInfoIN->eDeviceType,
-                                  &hDevCookieInt);
-    if(psAcquireDevInfoOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    
-        psAcquireDevInfoOUT->eError =
-        PVRSRVAllocHandle(psPerProc->psHandleBase,
-                          &psAcquireDevInfoOUT->hDevCookie,
-                          hDevCookieInt,
-                          PVRSRV_HANDLE_TYPE_DEV_NODE,
-                          PVRSRV_HANDLE_ALLOC_FLAG_SHARED);
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVCreateDeviceMemContextBW(IMG_UINT32 ui32BridgeID,
-                               PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT *psCreateDevMemContextIN,
-                               PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT *psCreateDevMemContextOUT,
-                               PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_HANDLE hDevCookieInt;
-    IMG_HANDLE hDevMemContextInt;
-    IMG_UINT32 i;
-    IMG_BOOL bCreated;
-#if defined (SUPPORT_SID_INTERFACE)
-    PVRSRV_HEAP_INFO_KM asHeapInfo[PVRSRV_MAX_CLIENT_HEAPS];
-#endif
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CREATE_DEVMEMCONTEXT);
-
-    
-    NEW_HANDLE_BATCH_OR_ERROR(psCreateDevMemContextOUT->eError, psPerProc, PVRSRV_MAX_CLIENT_HEAPS + 1)
-
-    psCreateDevMemContextOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt,
-                           psCreateDevMemContextIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-    if(psCreateDevMemContextOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psCreateDevMemContextOUT->eError =
-        PVRSRVCreateDeviceMemContextKM(hDevCookieInt,
-                                       psPerProc,
-                                       &hDevMemContextInt,
-                                       &psCreateDevMemContextOUT->ui32ClientHeapCount,
-#if defined (SUPPORT_SID_INTERFACE)
-                                       &asHeapInfo[0],
-#else
-                                       &psCreateDevMemContextOUT->sHeapInfo[0],
-#endif
-                                       &bCreated,
-                                       pbSharedDeviceMemHeap);
-
-    if(psCreateDevMemContextOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    
-    if(bCreated)
-    {
-        PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-                          &psCreateDevMemContextOUT->hDevMemContext,
-                          hDevMemContextInt,
-                          PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT,
-                          PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-    }
-    else
-    {
-        psCreateDevMemContextOUT->eError =
-            PVRSRVFindHandle(psPerProc->psHandleBase,
-                             &psCreateDevMemContextOUT->hDevMemContext,
-                             hDevMemContextInt,
-                             PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-        if(psCreateDevMemContextOUT->eError != PVRSRV_OK)
-        {
-            return 0;
-        }
-    }
-
-    for(i = 0; i < psCreateDevMemContextOUT->ui32ClientHeapCount; i++)
-    {
-#if defined (SUPPORT_SID_INTERFACE)
-        IMG_SID hDevMemHeapExt;
-#else
-        IMG_HANDLE hDevMemHeapExt;
-#endif
-
-#if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-        if(abSharedDeviceMemHeap[i])
-#endif
-        {
-            
-#if defined (SUPPORT_SID_INTERFACE)
-            PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-                              &hDevMemHeapExt,
-                              asHeapInfo[i].hDevMemHeap,
-                              PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP,
-                              PVRSRV_HANDLE_ALLOC_FLAG_SHARED);
-#else
-            PVRSRVAllocHandleNR(psPerProc->psHandleBase, &hDevMemHeapExt,
-                              psCreateDevMemContextOUT->sHeapInfo[i].hDevMemHeap,
-                              PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP,
-                              PVRSRV_HANDLE_ALLOC_FLAG_SHARED);
-#endif
-        }
-#if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-        else
-        {
-            
-            if(bCreated)
-            {
-#if defined (SUPPORT_SID_INTERFACE)
-                PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                                     &hDevMemHeapExt,
-                                     asHeapInfo[i].hDevMemHeap,
-                                     PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP,
-                                     PVRSRV_HANDLE_ALLOC_FLAG_NONE,
-                                     psCreateDevMemContextOUT->hDevMemContext);
-#else
-                PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, &hDevMemHeapExt,
-                                     psCreateDevMemContextOUT->sHeapInfo[i].hDevMemHeap,
-                                     PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP,
-                                     PVRSRV_HANDLE_ALLOC_FLAG_NONE,
-                                     psCreateDevMemContextOUT->hDevMemContext);
-#endif
-            }
-            else
-            {
-                psCreateDevMemContextOUT->eError =
-                    PVRSRVFindHandle(psPerProc->psHandleBase,
-                                     &hDevMemHeapExt,
-#if defined (SUPPORT_SID_INTERFACE)
-                                     asHeapInfo[i].hDevMemHeap,
-#else
-                                   psCreateDevMemContextOUT->sHeapInfo[i].hDevMemHeap,
-#endif
-                                     PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP);
-                if(psCreateDevMemContextOUT->eError != PVRSRV_OK)
-                {
-                    return 0;
-                }
-            }
-        }
-#endif
-        psCreateDevMemContextOUT->sHeapInfo[i].hDevMemHeap      = hDevMemHeapExt;
-#if defined (SUPPORT_SID_INTERFACE)
-        psCreateDevMemContextOUT->sHeapInfo[i].ui32HeapID       = asHeapInfo[i].ui32HeapID;
-        psCreateDevMemContextOUT->sHeapInfo[i].sDevVAddrBase    = asHeapInfo[i].sDevVAddrBase;
-        psCreateDevMemContextOUT->sHeapInfo[i].ui32HeapByteSize = asHeapInfo[i].ui32HeapByteSize;
-        psCreateDevMemContextOUT->sHeapInfo[i].ui32Attribs      = asHeapInfo[i].ui32Attribs;
-        psCreateDevMemContextOUT->sHeapInfo[i].ui32XTileStride  = asHeapInfo[i].ui32XTileStride;
-#endif
-    }
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psCreateDevMemContextOUT->eError, psPerProc)
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVDestroyDeviceMemContextBW(IMG_UINT32 ui32BridgeID,
-                                PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT *psDestroyDevMemContextIN,
-                                PVRSRV_BRIDGE_RETURN *psRetOUT,
-                                PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_HANDLE hDevCookieInt;
-    IMG_HANDLE hDevMemContextInt;
-    IMG_BOOL bDestroyed;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_DESTROY_DEVMEMCONTEXT);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt,
-                           psDestroyDevMemContextIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemContextInt,
-                           psDestroyDevMemContextIN->hDevMemContext,
-                           PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVDestroyDeviceMemContextKM(hDevCookieInt, hDevMemContextInt, &bDestroyed);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    if(bDestroyed)
-    {
-        psRetOUT->eError =
-            PVRSRVReleaseHandle(psPerProc->psHandleBase,
-                                psDestroyDevMemContextIN->hDevMemContext,
-                                PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-    }
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVGetDeviceMemHeapInfoBW(IMG_UINT32 ui32BridgeID,
-                               PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO *psGetDevMemHeapInfoIN,
-                               PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO *psGetDevMemHeapInfoOUT,
-                               PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_HANDLE hDevCookieInt;
-    IMG_HANDLE hDevMemContextInt;
-    IMG_UINT32 i;
-#if defined (SUPPORT_SID_INTERFACE)
-    PVRSRV_HEAP_INFO_KM asHeapInfo[PVRSRV_MAX_CLIENT_HEAPS];
-#endif
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_DEVMEM_HEAPINFO);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psGetDevMemHeapInfoOUT->eError, psPerProc, PVRSRV_MAX_CLIENT_HEAPS)
-
-    psGetDevMemHeapInfoOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt,
-                           psGetDevMemHeapInfoIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-    if(psGetDevMemHeapInfoOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psGetDevMemHeapInfoOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemContextInt,
-                           psGetDevMemHeapInfoIN->hDevMemContext,
-                           PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-
-    if(psGetDevMemHeapInfoOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psGetDevMemHeapInfoOUT->eError =
-        PVRSRVGetDeviceMemHeapInfoKM(hDevCookieInt,
-                                       hDevMemContextInt,
-                                       &psGetDevMemHeapInfoOUT->ui32ClientHeapCount,
-#if defined (SUPPORT_SID_INTERFACE)
-                                       &asHeapInfo[0],
-#else
-                                       &psGetDevMemHeapInfoOUT->sHeapInfo[0],
-#endif
-                                       pbSharedDeviceMemHeap);
-
-    if(psGetDevMemHeapInfoOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    for(i = 0; i < psGetDevMemHeapInfoOUT->ui32ClientHeapCount; i++)
-    {
-#if defined (SUPPORT_SID_INTERFACE)
-        IMG_SID hDevMemHeapExt;
-#else
-        IMG_HANDLE hDevMemHeapExt;
-#endif
-
-#if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-        if(abSharedDeviceMemHeap[i])
-#endif
-        {
-            
-#if defined (SUPPORT_SID_INTERFACE)
-            PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-                                &hDevMemHeapExt,
-                                asHeapInfo[i].hDevMemHeap,
-                                PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP,
-                                PVRSRV_HANDLE_ALLOC_FLAG_SHARED);
-#else
-            PVRSRVAllocHandleNR(psPerProc->psHandleBase, &hDevMemHeapExt,
-                                psGetDevMemHeapInfoOUT->sHeapInfo[i].hDevMemHeap,
-                                PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP,
-                                PVRSRV_HANDLE_ALLOC_FLAG_SHARED);
-#endif
-        }
-#if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-        else
-        {
-            
-            psGetDevMemHeapInfoOUT->eError =
-                PVRSRVFindHandle(psPerProc->psHandleBase,
-                                 &hDevMemHeapExt,
-#if defined (SUPPORT_SID_INTERFACE)
-                                 asHeapInfo[i].hDevMemHeap,
-#else
-                                 psGetDevMemHeapInfoOUT->sHeapInfo[i].hDevMemHeap,
-#endif
-                                 PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP);
-            if(psGetDevMemHeapInfoOUT->eError != PVRSRV_OK)
-            {
-                return 0;
-            }
-        }
-#endif
-        psGetDevMemHeapInfoOUT->sHeapInfo[i].hDevMemHeap      = hDevMemHeapExt;
-#if defined (SUPPORT_SID_INTERFACE)
-        psGetDevMemHeapInfoOUT->sHeapInfo[i].ui32HeapID       = asHeapInfo[i].ui32HeapID;
-        psGetDevMemHeapInfoOUT->sHeapInfo[i].sDevVAddrBase    = asHeapInfo[i].sDevVAddrBase;
-        psGetDevMemHeapInfoOUT->sHeapInfo[i].ui32HeapByteSize = asHeapInfo[i].ui32HeapByteSize;
-        psGetDevMemHeapInfoOUT->sHeapInfo[i].ui32Attribs      = asHeapInfo[i].ui32Attribs;
-        psGetDevMemHeapInfoOUT->sHeapInfo[i].ui32XTileStride  = asHeapInfo[i].ui32XTileStride;
-#endif
-    }
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psGetDevMemHeapInfoOUT->eError, psPerProc)
-
-    return 0;
-}
-
-
-#if defined(OS_PVRSRV_ALLOC_DEVICE_MEM_BW)
-IMG_INT
-PVRSRVAllocDeviceMemBW(IMG_UINT32 ui32BridgeID,
-                       PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM *psAllocDeviceMemIN,
-                       PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM *psAllocDeviceMemOUT,
-                       PVRSRV_PER_PROCESS_DATA *psPerProc);
-#else
-static IMG_INT
-PVRSRVAllocDeviceMemBW(IMG_UINT32 ui32BridgeID,
-                       PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM *psAllocDeviceMemIN,
-                       PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM *psAllocDeviceMemOUT,
-                       PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_KERNEL_MEM_INFO *psMemInfo;
-    IMG_HANDLE hDevCookieInt;
-    IMG_HANDLE hDevMemHeapInt;
-    IMG_UINT32 ui32ShareIndex;
-    IMG_BOOL bUseShareMemWorkaround;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ALLOC_DEVICEMEM);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psAllocDeviceMemOUT->eError, psPerProc, 2)
-
-    psAllocDeviceMemOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt,
-                           psAllocDeviceMemIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-    if(psAllocDeviceMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psAllocDeviceMemOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemHeapInt,
-                           psAllocDeviceMemIN->hDevMemHeap,
-                           PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP);
-
-    if(psAllocDeviceMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    
-
-    bUseShareMemWorkaround = ((psAllocDeviceMemIN->ui32Attribs & PVRSRV_MEM_XPROC) != 0) ? IMG_TRUE : IMG_FALSE;
-    ui32ShareIndex = 7654321; 
-
-    if (bUseShareMemWorkaround)
-    {
-        
-        
-
-        psAllocDeviceMemOUT->eError =
-            BM_XProcWorkaroundFindNewBufferAndSetShareIndex(&ui32ShareIndex);
-        if(psAllocDeviceMemOUT->eError != PVRSRV_OK)
-        {
-            return 0;
-        }
-    }
-
-    psAllocDeviceMemOUT->eError =
-        PVRSRVAllocDeviceMemKM(hDevCookieInt,
-                               psPerProc,
-                               hDevMemHeapInt,
-                               psAllocDeviceMemIN->ui32Attribs,
-                               psAllocDeviceMemIN->ui32Size,
-                               psAllocDeviceMemIN->ui32Alignment,
-                               &psMemInfo,
-                               "" );
-
-    if (bUseShareMemWorkaround)
-    {
-        PVR_ASSERT(ui32ShareIndex != 7654321);
-        BM_XProcWorkaroundUnsetShareIndex(ui32ShareIndex);
-    }
-
-    if(psAllocDeviceMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psMemInfo->sShareMemWorkaround.bInUse = bUseShareMemWorkaround;
-    if (bUseShareMemWorkaround)
-    {
-        PVR_ASSERT(ui32ShareIndex != 7654321);
-        psMemInfo->sShareMemWorkaround.ui32ShareIndex = ui32ShareIndex;
-        psMemInfo->sShareMemWorkaround.hDevCookieInt = hDevCookieInt;
-        psMemInfo->sShareMemWorkaround.ui32OrigReqAttribs = psAllocDeviceMemIN->ui32Attribs;
-        psMemInfo->sShareMemWorkaround.ui32OrigReqSize = (IMG_UINT32)psAllocDeviceMemIN->ui32Size;
-        psMemInfo->sShareMemWorkaround.ui32OrigReqAlignment = (IMG_UINT32)psAllocDeviceMemIN->ui32Alignment;
-    }
-
-    OSMemSet(&psAllocDeviceMemOUT->sClientMemInfo,
-             0,
-             sizeof(psAllocDeviceMemOUT->sClientMemInfo));
-
-    psAllocDeviceMemOUT->sClientMemInfo.pvLinAddrKM =
-            psMemInfo->pvLinAddrKM;
-
-#if defined (__linux__)
-    psAllocDeviceMemOUT->sClientMemInfo.pvLinAddr = 0;
-#else
-    psAllocDeviceMemOUT->sClientMemInfo.pvLinAddr = psMemInfo->pvLinAddrKM;
-#endif
-    psAllocDeviceMemOUT->sClientMemInfo.sDevVAddr = psMemInfo->sDevVAddr;
-    psAllocDeviceMemOUT->sClientMemInfo.ui32Flags = psMemInfo->ui32Flags;
-    psAllocDeviceMemOUT->sClientMemInfo.uAllocSize = psMemInfo->uAllocSize;
-#if defined (SUPPORT_SID_INTERFACE)
-#else
-  psAllocDeviceMemOUT->sClientMemInfo.hMappingInfo = psMemInfo->sMemBlk.hOSMemHandle;
-#endif
-
-    PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-                      &psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo,
-                      psMemInfo,
-                      PVRSRV_HANDLE_TYPE_MEM_INFO,
-                      PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-
- #if defined (SUPPORT_SID_INTERFACE)
-   PVR_ASSERT(psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo != 0);
-
-    if (psMemInfo->sMemBlk.hOSMemHandle != IMG_NULL)
-    {
-        PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                      &psAllocDeviceMemOUT->sClientMemInfo.hMappingInfo,
-                      psMemInfo->sMemBlk.hOSMemHandle,
-                      PVRSRV_HANDLE_TYPE_MEM_INFO,
-                      PVRSRV_HANDLE_ALLOC_FLAG_NONE,
-                      psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo);
-    }
-    else
-    {
-        psAllocDeviceMemOUT->sClientMemInfo.hMappingInfo = 0;
-    }
-#endif
-
-    if(psAllocDeviceMemIN->ui32Attribs & PVRSRV_MEM_NO_SYNCOBJ)
-    {
-        
-        OSMemSet(&psAllocDeviceMemOUT->sClientSyncInfo,
-                 0,
-                 sizeof (PVRSRV_CLIENT_SYNC_INFO));
-        psAllocDeviceMemOUT->sClientMemInfo.psClientSyncInfo = IMG_NULL;
-    }
-    else
-    {
-        
-
-#if !defined(PVRSRV_DISABLE_UM_SYNCOBJ_MAPPINGS)
-        psAllocDeviceMemOUT->sClientSyncInfo.psSyncData =
-            psMemInfo->psKernelSyncInfo->psSyncData;
-        psAllocDeviceMemOUT->sClientSyncInfo.sWriteOpsCompleteDevVAddr =
-            psMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr;
-        psAllocDeviceMemOUT->sClientSyncInfo.sReadOpsCompleteDevVAddr =
-            psMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr;
-
-#if defined (SUPPORT_SID_INTERFACE)
-        if (psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != IMG_NULL)
-        {
-                PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                                     &psAllocDeviceMemOUT->sClientSyncInfo.hMappingInfo,
-                                     psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle,
-                                     PVRSRV_HANDLE_TYPE_SYNC_INFO,
-                                     PVRSRV_HANDLE_ALLOC_FLAG_NONE,
-                                     psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo);
-        }
-        else
-        {
-            psAllocDeviceMemOUT->sClientSyncInfo.hMappingInfo = 0;
-        }
-#else
-        psAllocDeviceMemOUT->sClientSyncInfo.hMappingInfo =
-            psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle;
-#endif
-#endif
-
-        PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                             &psAllocDeviceMemOUT->sClientSyncInfo.hKernelSyncInfo,
-                             psMemInfo->psKernelSyncInfo,
-                             PVRSRV_HANDLE_TYPE_SYNC_INFO,
-                             PVRSRV_HANDLE_ALLOC_FLAG_NONE,
-                             psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo);
-
-        psAllocDeviceMemOUT->sClientMemInfo.psClientSyncInfo =
-            &psAllocDeviceMemOUT->sClientSyncInfo;
-
-    }
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psAllocDeviceMemOUT->eError, psPerProc)
-
-    return 0;
-}
-
-#endif 
-
-static IMG_INT
-PVRSRVFreeDeviceMemBW(IMG_UINT32 ui32BridgeID,
-                      PVRSRV_BRIDGE_IN_FREEDEVICEMEM *psFreeDeviceMemIN,
-                      PVRSRV_BRIDGE_RETURN *psRetOUT,
-                      PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_HANDLE hDevCookieInt;
-    IMG_VOID *pvKernelMemInfo;
-
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_FREE_DEVICEMEM);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt,
-                           psFreeDeviceMemIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvKernelMemInfo,
-#if defined (SUPPORT_SID_INTERFACE)
-                           psFreeDeviceMemIN->hKernelMemInfo,
-#else
-                           psFreeDeviceMemIN->psKernelMemInfo,
-#endif
-                           PVRSRV_HANDLE_TYPE_MEM_INFO);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError = PVRSRVFreeDeviceMemKM(hDevCookieInt, pvKernelMemInfo);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-                            psFreeDeviceMemIN->hKernelMemInfo,
-#else
-                            psFreeDeviceMemIN->psKernelMemInfo,
-#endif
-                            PVRSRV_HANDLE_TYPE_MEM_INFO);
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVExportDeviceMemBW(IMG_UINT32 ui32BridgeID,
-                      PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM *psExportDeviceMemIN,
-                      PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM *psExportDeviceMemOUT,
-                      PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_HANDLE hDevCookieInt;
-#if defined (SUPPORT_SID_INTERFACE)
-    PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo = IMG_NULL;
-#else
-    PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
-#endif
-
-    PVR_ASSERT(ui32BridgeID == PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_EXPORT_DEVICEMEM) ||
-               ui32BridgeID == PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_EXPORT_DEVICEMEM_2));
-    PVR_UNREFERENCED_PARAMETER(ui32BridgeID);
-
-    
-    psExportDeviceMemOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &hDevCookieInt,
-                           psExportDeviceMemIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-    if(psExportDeviceMemOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVExportDeviceMemBW: can't find devcookie"));
-        return 0;
-    }
-
-    
-    psExportDeviceMemOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           (IMG_PVOID *)&psKernelMemInfo,
-#if defined (SUPPORT_SID_INTERFACE)
-                           psExportDeviceMemIN->hKernelMemInfo,
-#else
-                           psExportDeviceMemIN->psKernelMemInfo,
-#endif
-                           PVRSRV_HANDLE_TYPE_MEM_INFO);
-
-    if(psExportDeviceMemOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVExportDeviceMemBW: can't find kernel meminfo"));
-        return 0;
-    }
-
-    
-    psExportDeviceMemOUT->eError =
-        PVRSRVFindHandle(KERNEL_HANDLE_BASE,
-                             &psExportDeviceMemOUT->hMemInfo,
-                             psKernelMemInfo,
-                             PVRSRV_HANDLE_TYPE_MEM_INFO);
-    if(psExportDeviceMemOUT->eError == PVRSRV_OK)
-    {
-        
-        PVR_DPF((PVR_DBG_MESSAGE, "PVRSRVExportDeviceMemBW: allocation is already exported"));
-        return 0;
-    }
-
-    
-    psExportDeviceMemOUT->eError = PVRSRVAllocHandle(KERNEL_HANDLE_BASE,
-                                                    &psExportDeviceMemOUT->hMemInfo,
-                                                    psKernelMemInfo,
-                                                    PVRSRV_HANDLE_TYPE_MEM_INFO,
-                                                    PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-    if (psExportDeviceMemOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVExportDeviceMemBW: failed to allocate handle from global handle list"));
-        return 0;
-    }
-
-    
-    psKernelMemInfo->ui32Flags |= PVRSRV_MEM_EXPORTED;
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVMapDeviceMemoryBW(IMG_UINT32 ui32BridgeID,
-                             PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY *psMapDevMemIN,
-                             PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY *psMapDevMemOUT,
-                             PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_KERNEL_MEM_INFO  *psSrcKernelMemInfo = IMG_NULL;
-    PVRSRV_KERNEL_MEM_INFO  *psDstKernelMemInfo = IMG_NULL;
-    IMG_HANDLE              hDstDevMemHeap = IMG_NULL;
-
-    PVR_ASSERT(ui32BridgeID == PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_MAP_DEV_MEMORY) ||
-               ui32BridgeID == PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_MAP_DEV_MEMORY_2));
-    PVR_UNREFERENCED_PARAMETER(ui32BridgeID);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psMapDevMemOUT->eError, psPerProc, 2)
-
-    
-    psMapDevMemOUT->eError = PVRSRVLookupHandle(KERNEL_HANDLE_BASE,
-                                                (IMG_VOID**)&psSrcKernelMemInfo,
-                                                psMapDevMemIN->hKernelMemInfo,
-                                                PVRSRV_HANDLE_TYPE_MEM_INFO);
-    if(psMapDevMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    
-    psMapDevMemOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-                                                &hDstDevMemHeap,
-                                                psMapDevMemIN->hDstDevMemHeap,
-                                                PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP);
-    if(psMapDevMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    
-    if (psSrcKernelMemInfo->sShareMemWorkaround.bInUse)
-    {
-        PVR_DPF((PVR_DBG_MESSAGE, "using the mem wrap workaround."));
-
-        
-
-
-
-
-
-
-
-        psMapDevMemOUT->eError = BM_XProcWorkaroundSetShareIndex(psSrcKernelMemInfo->sShareMemWorkaround.ui32ShareIndex);
-        if(psMapDevMemOUT->eError != PVRSRV_OK)
-        {
-            PVR_DPF((PVR_DBG_ERROR, "PVRSRVMapDeviceMemoryBW(): failed to recycle shared buffer"));
-            return 0;
-        }
-
-        psMapDevMemOUT->eError =
-            PVRSRVAllocDeviceMemKM(psSrcKernelMemInfo->sShareMemWorkaround.hDevCookieInt,
-                                   psPerProc,
-                                   hDstDevMemHeap,
-                                   psSrcKernelMemInfo->sShareMemWorkaround.ui32OrigReqAttribs | PVRSRV_MEM_NO_SYNCOBJ,
-                                   psSrcKernelMemInfo->sShareMemWorkaround.ui32OrigReqSize,
-                                   psSrcKernelMemInfo->sShareMemWorkaround.ui32OrigReqAlignment,
-                                   &psDstKernelMemInfo,
-                                   "" );
-        
-
-        BM_XProcWorkaroundUnsetShareIndex(psSrcKernelMemInfo->sShareMemWorkaround.ui32ShareIndex);
-        if(psMapDevMemOUT->eError != PVRSRV_OK)
-        {
-            PVR_DPF((PVR_DBG_ERROR, "lakjgfgewjlrgebhe"));
-            return 0;
-        }
-
-        if(psSrcKernelMemInfo->psKernelSyncInfo)
-        {
-            psSrcKernelMemInfo->psKernelSyncInfo->ui32RefCount++;
-        }
-
-        psDstKernelMemInfo->psKernelSyncInfo = psSrcKernelMemInfo->psKernelSyncInfo;
-    }
-    else
-    {
-    
-    psMapDevMemOUT->eError = PVRSRVMapDeviceMemoryKM(psPerProc,
-                                                  psSrcKernelMemInfo,
-                                                  hDstDevMemHeap,
-                                                  &psDstKernelMemInfo);
-    if(psMapDevMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-    }
-
-    
-    psDstKernelMemInfo->sShareMemWorkaround = psSrcKernelMemInfo->sShareMemWorkaround;
-
-    OSMemSet(&psMapDevMemOUT->sDstClientMemInfo,
-             0,
-             sizeof(psMapDevMemOUT->sDstClientMemInfo));
-    OSMemSet(&psMapDevMemOUT->sDstClientSyncInfo,
-             0,
-             sizeof(psMapDevMemOUT->sDstClientSyncInfo));
-
-    psMapDevMemOUT->sDstClientMemInfo.pvLinAddrKM =
-            psDstKernelMemInfo->pvLinAddrKM;
-
-    psMapDevMemOUT->sDstClientMemInfo.pvLinAddr = 0;
-    psMapDevMemOUT->sDstClientMemInfo.sDevVAddr = psDstKernelMemInfo->sDevVAddr;
-    psMapDevMemOUT->sDstClientMemInfo.ui32Flags = psDstKernelMemInfo->ui32Flags;
-    psMapDevMemOUT->sDstClientMemInfo.uAllocSize = psDstKernelMemInfo->uAllocSize;
-#if defined (SUPPORT_SID_INTERFACE)
-#else
-    psMapDevMemOUT->sDstClientMemInfo.hMappingInfo = psDstKernelMemInfo->sMemBlk.hOSMemHandle;
-#endif
-
-    
-    PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-                      &psMapDevMemOUT->sDstClientMemInfo.hKernelMemInfo,
-                      psDstKernelMemInfo,
-                      PVRSRV_HANDLE_TYPE_MEM_INFO,
-                      PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-    psMapDevMemOUT->sDstClientSyncInfo.hKernelSyncInfo = IMG_NULL;
-
-#if defined (SUPPORT_SID_INTERFACE)
-    
-    if (psDstKernelMemInfo->sMemBlk.hOSMemHandle != IMG_NULL)
-    {
-        PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                      &psMapDevMemOUT->sDstClientMemInfo.hMappingInfo,
-                      psDstKernelMemInfo->sMemBlk.hOSMemHandle,
-                      PVRSRV_HANDLE_TYPE_MEM_INFO,
-                      PVRSRV_HANDLE_ALLOC_FLAG_NONE,
-                      psMapDevMemOUT->sDstClientMemInfo.hKernelMemInfo);
-    }
-    else
-    {
-        psMapDevMemOUT->sDstClientMemInfo.hMappingInfo = 0;
-    }
-#endif
-
-    
-    if(psDstKernelMemInfo->psKernelSyncInfo)
-    {
-#if !defined(PVRSRV_DISABLE_UM_SYNCOBJ_MAPPINGS)
-        psMapDevMemOUT->sDstClientSyncInfo.psSyncData =
-            psDstKernelMemInfo->psKernelSyncInfo->psSyncData;
-        psMapDevMemOUT->sDstClientSyncInfo.sWriteOpsCompleteDevVAddr =
-            psDstKernelMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr;
-        psMapDevMemOUT->sDstClientSyncInfo.sReadOpsCompleteDevVAddr =
-            psDstKernelMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr;
-
-#if defined (SUPPORT_SID_INTERFACE)
-        
-        if (psDstKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != IMG_NULL)
-        {
-            PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                          &psMapDevMemOUT->sDstClientSyncInfo.hMappingInfo,
-                          psDstKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle,
-                          PVRSRV_HANDLE_TYPE_MEM_INFO,
-                          PVRSRV_HANDLE_ALLOC_FLAG_NONE,
-                          psMapDevMemOUT->sDstClientMemInfo.hKernelMemInfo);
-        }
-        else
-        {
-            psMapDevMemOUT->sDstClientSyncInfo.hMappingInfo = 0;
-        }
-#else
-      psMapDevMemOUT->sDstClientSyncInfo.hMappingInfo =
-          psDstKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle;
-#endif
-#endif
-
-        psMapDevMemOUT->sDstClientMemInfo.psClientSyncInfo = &psMapDevMemOUT->sDstClientSyncInfo;
-        
-        PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                      &psMapDevMemOUT->sDstClientSyncInfo.hKernelSyncInfo,
-                      psDstKernelMemInfo->psKernelSyncInfo,
-                      PVRSRV_HANDLE_TYPE_SYNC_INFO,
-                      PVRSRV_HANDLE_ALLOC_FLAG_MULTI,
-                      psMapDevMemOUT->sDstClientMemInfo.hKernelMemInfo);
-    }
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psMapDevMemOUT->eError, psPerProc)
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVUnmapDeviceMemoryBW(IMG_UINT32 ui32BridgeID,
-                             PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY *psUnmapDevMemIN,
-                             PVRSRV_BRIDGE_RETURN *psRetOUT,
-                             PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo = IMG_NULL;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_UNMAP_DEV_MEMORY);
-
-    psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-                                            (IMG_VOID**)&psKernelMemInfo,
-#if defined (SUPPORT_SID_INTERFACE)
-                                            psUnmapDevMemIN->hKernelMemInfo,
-#else
-                                            psUnmapDevMemIN->psKernelMemInfo,
-#endif
-                                            PVRSRV_HANDLE_TYPE_MEM_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    if (psKernelMemInfo->sShareMemWorkaround.bInUse)
-    {
-        psRetOUT->eError = PVRSRVFreeDeviceMemKM(psKernelMemInfo->sShareMemWorkaround.hDevCookieInt, psKernelMemInfo);
-        if(psRetOUT->eError != PVRSRV_OK)
-        {
-            PVR_DPF((PVR_DBG_ERROR, "PVRSRVUnmapDeviceMemoryBW: internal error, should expect FreeDeviceMem to fail"));
-            return 0;
-        }
-    }
-    else
-    {
-        psRetOUT->eError = PVRSRVUnmapDeviceMemoryKM(psKernelMemInfo);
-        if(psRetOUT->eError != PVRSRV_OK)
-        {
-            return 0;
-        }
-    }
-
-    psRetOUT->eError = PVRSRVReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-                            psUnmapDevMemIN->hKernelMemInfo,
-#else
-                            psUnmapDevMemIN->psKernelMemInfo,
-#endif
-                            PVRSRV_HANDLE_TYPE_MEM_INFO);
-
-    return 0;
-}
-
-
-
-static IMG_INT
-PVRSRVMapDeviceClassMemoryBW(IMG_UINT32 ui32BridgeID,
-                             PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY *psMapDevClassMemIN,
-                             PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY *psMapDevClassMemOUT,
-                             PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_KERNEL_MEM_INFO *psMemInfo;
-    IMG_HANDLE hOSMapInfo;
-    IMG_HANDLE hDeviceClassBufferInt;
-    IMG_HANDLE hDevMemContextInt;
-    PVRSRV_HANDLE_TYPE eHandleType;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MAP_DEVICECLASS_MEMORY);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psMapDevClassMemOUT->eError, psPerProc, 2)
-
-    
-    psMapDevClassMemOUT->eError =
-        PVRSRVLookupHandleAnyType(psPerProc->psHandleBase,
-                                  &hDeviceClassBufferInt,
-                                  &eHandleType,
-                                  psMapDevClassMemIN->hDeviceClassBuffer);
-
-    if(psMapDevClassMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    
-    psMapDevClassMemOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &hDevMemContextInt,
-                           psMapDevClassMemIN->hDevMemContext,
-                           PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-
-    if(psMapDevClassMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    
-    switch(eHandleType)
-    {
-#if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-       case PVRSRV_HANDLE_TYPE_DISP_BUFFER:
-        case PVRSRV_HANDLE_TYPE_BUF_BUFFER:
-#else
-        case PVRSRV_HANDLE_TYPE_NONE:
-#endif
-            break;
-        default:
-            psMapDevClassMemOUT->eError = PVRSRV_ERROR_INVALID_HANDLE_TYPE;
-            return 0;
-    }
-
-    psMapDevClassMemOUT->eError =
-        PVRSRVMapDeviceClassMemoryKM(psPerProc,
-                                     hDevMemContextInt,
-                                     hDeviceClassBufferInt,
-                                     &psMemInfo,
-                                     &hOSMapInfo);
-    if(psMapDevClassMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    OSMemSet(&psMapDevClassMemOUT->sClientMemInfo,
-             0,
-             sizeof(psMapDevClassMemOUT->sClientMemInfo));
-    OSMemSet(&psMapDevClassMemOUT->sClientSyncInfo,
-             0,
-             sizeof(psMapDevClassMemOUT->sClientSyncInfo));
-
-    psMapDevClassMemOUT->sClientMemInfo.pvLinAddrKM =
-            psMemInfo->pvLinAddrKM;
-
-    psMapDevClassMemOUT->sClientMemInfo.pvLinAddr = 0;
-    psMapDevClassMemOUT->sClientMemInfo.sDevVAddr = psMemInfo->sDevVAddr;
-    psMapDevClassMemOUT->sClientMemInfo.ui32Flags = psMemInfo->ui32Flags;
-    psMapDevClassMemOUT->sClientMemInfo.uAllocSize = psMemInfo->uAllocSize;
-#if defined (SUPPORT_SID_INTERFACE)
-    if (psMemInfo->sMemBlk.hOSMemHandle != 0)
-    {
-        PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                      &psMapDevClassMemOUT->sClientMemInfo.hMappingInfo,
-                      psMemInfo->sMemBlk.hOSMemHandle,
-                      PVRSRV_HANDLE_TYPE_MEM_INFO,
-                      PVRSRV_HANDLE_ALLOC_FLAG_NONE,
-                      psMapDevClassMemIN->hDeviceClassBuffer);
-    }
-    else
-    {
-         psMapDevClassMemOUT->sClientMemInfo.hMappingInfo = 0;
-    }
-#else
-  psMapDevClassMemOUT->sClientMemInfo.hMappingInfo = psMemInfo->sMemBlk.hOSMemHandle;
-#endif
-
-    PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                      &psMapDevClassMemOUT->sClientMemInfo.hKernelMemInfo,
-                      psMemInfo,
-                      PVRSRV_HANDLE_TYPE_MEM_INFO,
-                      PVRSRV_HANDLE_ALLOC_FLAG_NONE,
-                      psMapDevClassMemIN->hDeviceClassBuffer);
-
-    psMapDevClassMemOUT->sClientSyncInfo.hKernelSyncInfo = IMG_NULL;
-
-    
-    if(psMemInfo->psKernelSyncInfo)
-    {
-#if !defined(PVRSRV_DISABLE_UM_SYNCOBJ_MAPPINGS)
-        psMapDevClassMemOUT->sClientSyncInfo.psSyncData =
-            psMemInfo->psKernelSyncInfo->psSyncData;
-        psMapDevClassMemOUT->sClientSyncInfo.sWriteOpsCompleteDevVAddr =
-            psMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr;
-        psMapDevClassMemOUT->sClientSyncInfo.sReadOpsCompleteDevVAddr =
-            psMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr;
-
-#if defined (SUPPORT_SID_INTERFACE)
-       if (psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != 0)
-        {
-            PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                              &psMapDevClassMemOUT->sClientSyncInfo.hMappingInfo,
-                              psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle,
-                              PVRSRV_HANDLE_TYPE_SYNC_INFO,
-                              PVRSRV_HANDLE_ALLOC_FLAG_MULTI,
-                              psMapDevClassMemOUT->sClientMemInfo.hKernelMemInfo);
-        }
-        else
-        {
-            psMapDevClassMemOUT->sClientSyncInfo.hMappingInfo = 0;
-        }
-#else
-      psMapDevClassMemOUT->sClientSyncInfo.hMappingInfo =
-          psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle;
-#endif
-#endif
-
-        psMapDevClassMemOUT->sClientMemInfo.psClientSyncInfo = &psMapDevClassMemOUT->sClientSyncInfo;
-        
-        PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                          &psMapDevClassMemOUT->sClientSyncInfo.hKernelSyncInfo,
-                          psMemInfo->psKernelSyncInfo,
-                          PVRSRV_HANDLE_TYPE_SYNC_INFO,
-                          PVRSRV_HANDLE_ALLOC_FLAG_MULTI,
-                          psMapDevClassMemOUT->sClientMemInfo.hKernelMemInfo);
-    }
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psMapDevClassMemOUT->eError, psPerProc)
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVUnmapDeviceClassMemoryBW(IMG_UINT32 ui32BridgeID,
-                               PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY *psUnmapDevClassMemIN,
-                               PVRSRV_BRIDGE_RETURN *psRetOUT,
-                               PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvKernelMemInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_UNMAP_DEVICECLASS_MEMORY);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, &pvKernelMemInfo,
-#if defined (SUPPORT_SID_INTERFACE)
-                           psUnmapDevClassMemIN->hKernelMemInfo,
-#else
-                           psUnmapDevClassMemIN->psKernelMemInfo,
-#endif
-                           PVRSRV_HANDLE_TYPE_MEM_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError = PVRSRVUnmapDeviceClassMemoryKM(pvKernelMemInfo);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-                            psUnmapDevClassMemIN->hKernelMemInfo,
-#else
-                            psUnmapDevClassMemIN->psKernelMemInfo,
-#endif
-                            PVRSRV_HANDLE_TYPE_MEM_INFO);
-
-    return 0;
-}
-
-
-#if defined(OS_PVRSRV_WRAP_EXT_MEM_BW)
-IMG_INT
-PVRSRVWrapExtMemoryBW(IMG_UINT32 ui32BridgeID,
-                      PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY *psWrapExtMemIN,
-                      PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY *psWrapExtMemOUT,
-                      PVRSRV_PER_PROCESS_DATA *psPerProc);
-#else 
-static IMG_INT
-PVRSRVWrapExtMemoryBW(IMG_UINT32 ui32BridgeID,
-                      PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY *psWrapExtMemIN,
-                      PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY *psWrapExtMemOUT,
-                      PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_HANDLE hDevCookieInt;
-    IMG_HANDLE hDevMemContextInt;
-    PVRSRV_KERNEL_MEM_INFO *psMemInfo;
-    IMG_SYS_PHYADDR *psSysPAddr = IMG_NULL;
-        IMG_UINT32 ui32PageTableSize = 0;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_WRAP_EXT_MEMORY);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psWrapExtMemOUT->eError, psPerProc, 2)
-
-    
-    psWrapExtMemOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt,
-                           psWrapExtMemIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-    if(psWrapExtMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    
-    psWrapExtMemOUT->eError =
-    PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemContextInt,
-                   psWrapExtMemIN->hDevMemContext,
-                   PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-
-    if(psWrapExtMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    if(psWrapExtMemIN->ui32NumPageTableEntries)
-    {
-        ui32PageTableSize = psWrapExtMemIN->ui32NumPageTableEntries
-                        * sizeof(IMG_SYS_PHYADDR);
-
-        ASSIGN_AND_EXIT_ON_ERROR(psWrapExtMemOUT->eError,
-                  OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-                  ui32PageTableSize,
-                  (IMG_VOID **)&psSysPAddr, 0,
-                  "Page Table"));
-
-        if(CopyFromUserWrapper(psPerProc,
-                               ui32BridgeID,
-                               psSysPAddr,
-                               psWrapExtMemIN->psSysPAddr,
-                               ui32PageTableSize) != PVRSRV_OK)
-        {
-            OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,  ui32PageTableSize, (IMG_VOID *)psSysPAddr, 0);
-            
-            return -EFAULT;
-        }
-    }
-
-    psWrapExtMemOUT->eError =
-        PVRSRVWrapExtMemoryKM(hDevCookieInt,
-                              psPerProc,
-                              hDevMemContextInt,
-                              psWrapExtMemIN->ui32ByteSize,
-                              psWrapExtMemIN->ui32PageOffset,
-                              psWrapExtMemIN->bPhysContig,
-                              psSysPAddr,
-                              psWrapExtMemIN->pvLinAddr,
-                              psWrapExtMemIN->ui32Flags,
-                              &psMemInfo);
-
-    if(psWrapExtMemIN->ui32NumPageTableEntries)
-    {
-        OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-              ui32PageTableSize,
-              (IMG_VOID *)psSysPAddr, 0);
-        
-    }
-
-    if(psWrapExtMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psWrapExtMemOUT->sClientMemInfo.pvLinAddrKM =
-            psMemInfo->pvLinAddrKM;
-
-    
-    psWrapExtMemOUT->sClientMemInfo.pvLinAddr = 0;
-    psWrapExtMemOUT->sClientMemInfo.sDevVAddr = psMemInfo->sDevVAddr;
-    psWrapExtMemOUT->sClientMemInfo.ui32Flags = psMemInfo->ui32Flags;
-    psWrapExtMemOUT->sClientMemInfo.uAllocSize = psMemInfo->uAllocSize;
-#if defined (SUPPORT_SID_INTERFACE)
-#else
-    psWrapExtMemOUT->sClientMemInfo.hMappingInfo = psMemInfo->sMemBlk.hOSMemHandle;
-#endif
-
-    PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-                      &psWrapExtMemOUT->sClientMemInfo.hKernelMemInfo,
-                      psMemInfo,
-                      PVRSRV_HANDLE_TYPE_MEM_INFO,
-                      PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-
-#if defined (SUPPORT_SID_INTERFACE)
-    
-    if (psMemInfo->sMemBlk.hOSMemHandle != IMG_NULL)
-    {
-        PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                      &psWrapExtMemOUT->sClientMemInfo.hMappingInfo,
-                      psMemInfo->sMemBlk.hOSMemHandle,
-                      PVRSRV_HANDLE_TYPE_MEM_INFO,
-                      PVRSRV_HANDLE_ALLOC_FLAG_NONE,
-                      psWrapExtMemOUT->sClientMemInfo.hKernelMemInfo);
-    }
-    else
-    {
-        psWrapExtMemOUT->sClientMemInfo.hMappingInfo = 0;
-    }
-#endif
-
-    
-#if !defined(PVRSRV_DISABLE_UM_SYNCOBJ_MAPPINGS)
-    psWrapExtMemOUT->sClientSyncInfo.psSyncData =
-        psMemInfo->psKernelSyncInfo->psSyncData;
-    psWrapExtMemOUT->sClientSyncInfo.sWriteOpsCompleteDevVAddr =
-        psMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr;
-    psWrapExtMemOUT->sClientSyncInfo.sReadOpsCompleteDevVAddr =
-        psMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr;
-
-#if defined (SUPPORT_SID_INTERFACE)
-    
-    if (psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != IMG_NULL)
-    {
-        PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                      &psWrapExtMemOUT->sClientSyncInfo.hMappingInfo,
-                      psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle,
-                      PVRSRV_HANDLE_TYPE_MEM_INFO,
-                      PVRSRV_HANDLE_ALLOC_FLAG_NONE,
-                      psWrapExtMemOUT->sClientMemInfo.hKernelMemInfo);
-    }
-    else
-    {
-        psWrapExtMemOUT->sClientSyncInfo.hMappingInfo = 0;
-    }
-#else
-    psWrapExtMemOUT->sClientSyncInfo.hMappingInfo =
-        psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle;
-#endif
-#endif
-
-    psWrapExtMemOUT->sClientMemInfo.psClientSyncInfo = &psWrapExtMemOUT->sClientSyncInfo;
-
-    PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                      &psWrapExtMemOUT->sClientSyncInfo.hKernelSyncInfo,
-                      (IMG_HANDLE)psMemInfo->psKernelSyncInfo,
-                      PVRSRV_HANDLE_TYPE_SYNC_INFO,
-                      PVRSRV_HANDLE_ALLOC_FLAG_NONE,
-                      psWrapExtMemOUT->sClientMemInfo.hKernelMemInfo);
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psWrapExtMemOUT->eError, psPerProc)
-
-    return 0;
-}
-#endif 
-
-static IMG_INT
-PVRSRVUnwrapExtMemoryBW(IMG_UINT32 ui32BridgeID,
-                        PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY *psUnwrapExtMemIN,
-                        PVRSRV_BRIDGE_RETURN *psRetOUT,
-                        PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvMemInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_UNWRAP_EXT_MEMORY);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvMemInfo,
-                           psUnwrapExtMemIN->hKernelMemInfo,
-                           PVRSRV_HANDLE_TYPE_MEM_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVUnwrapExtMemoryKM((PVRSRV_KERNEL_MEM_INFO *)pvMemInfo);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVReleaseHandle(psPerProc->psHandleBase,
-                           psUnwrapExtMemIN->hKernelMemInfo,
-                           PVRSRV_HANDLE_TYPE_MEM_INFO);
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVGetFreeDeviceMemBW(IMG_UINT32 ui32BridgeID,
-                         PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM *psGetFreeDeviceMemIN,
-                         PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM *psGetFreeDeviceMemOUT,
-                         PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GETFREE_DEVICEMEM);
-
-    PVR_UNREFERENCED_PARAMETER(psPerProc);
-
-    psGetFreeDeviceMemOUT->eError =
-        PVRSRVGetFreeDeviceMemKM(psGetFreeDeviceMemIN->ui32Flags,
-                                 &psGetFreeDeviceMemOUT->ui32Total,
-                                 &psGetFreeDeviceMemOUT->ui32Free,
-                                 &psGetFreeDeviceMemOUT->ui32LargestBlock);
-
-    return 0;
-}
-
-static IMG_INT
-PVRMMapOSMemHandleToMMapDataBW(IMG_UINT32 ui32BridgeID,
-                                  PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA *psMMapDataIN,
-                                  PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA *psMMapDataOUT,
-                                  PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MHANDLE_TO_MMAP_DATA);
-
-#if defined (__linux__) || defined(__QNXNTO__)
-    psMMapDataOUT->eError =
-        PVRMMapOSMemHandleToMMapData(psPerProc,
-                                        psMMapDataIN->hMHandle,
-                                        &psMMapDataOUT->ui32MMapOffset,
-                                        &psMMapDataOUT->ui32ByteOffset,
-                                        &psMMapDataOUT->ui32RealByteSize,
-                                        &psMMapDataOUT->ui32UserVAddr);
-#else
-    PVR_UNREFERENCED_PARAMETER(psPerProc);
-    PVR_UNREFERENCED_PARAMETER(psMMapDataIN);
-
-    psMMapDataOUT->eError = PVRSRV_ERROR_NOT_SUPPORTED;
-#endif
-    return 0;
-}
-
-
-static IMG_INT
-PVRMMapReleaseMMapDataBW(IMG_UINT32 ui32BridgeID,
-                                  PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA *psMMapDataIN,
-                                  PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA *psMMapDataOUT,
-                                  PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_RELEASE_MMAP_DATA);
-
-#if defined (__linux__) || defined(__QNXNTO__)
-    psMMapDataOUT->eError =
-        PVRMMapReleaseMMapData(psPerProc,
-                                        psMMapDataIN->hMHandle,
-                                        &psMMapDataOUT->bMUnmap,
-                                        &psMMapDataOUT->ui32RealByteSize,
-                                        &psMMapDataOUT->ui32UserVAddr);
-#else
-
-    PVR_UNREFERENCED_PARAMETER(psPerProc);
-    PVR_UNREFERENCED_PARAMETER(psMMapDataIN);
-
-    psMMapDataOUT->eError = PVRSRV_ERROR_NOT_SUPPORTED;
-#endif
-    return 0;
-}
-
-
-#if defined (SUPPORT_SID_INTERFACE)
-static IMG_INT
-PVRSRVChangeDeviceMemoryAttributesBW(IMG_UINT32 ui32BridgeID,
-                                     PVRSRV_BRIDGE_IN_CHG_DEV_MEM_ATTRIBS *psChgMemAttribIN,
-                                     PVRSRV_BRIDGE_RETURN *psRetOUT,
-                                     PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_HANDLE hKernelMemInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CHG_DEV_MEM_ATTRIBS);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &hKernelMemInfo,
-                           psChgMemAttribIN->hKernelMemInfo,
-                           PVRSRV_HANDLE_TYPE_MEM_INFO);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVChangeDeviceMemoryAttributesKM(hKernelMemInfo, psChgMemAttribIN->ui32Attribs);
-
-    return 0;
-}
-#else
-static IMG_INT
-PVRSRVChangeDeviceMemoryAttributesBW(IMG_UINT32 ui32BridgeID,
-                                     PVRSRV_BRIDGE_IN_CHG_DEV_MEM_ATTRIBS *psChgMemAttribIN,
-                                     PVRSRV_BRIDGE_RETURN *psRetOUT,
-                                     PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVR_UNREFERENCED_PARAMETER(ui32BridgeID);
-    PVR_UNREFERENCED_PARAMETER(psChgMemAttribIN);
-    PVR_UNREFERENCED_PARAMETER(psRetOUT);
-    PVR_UNREFERENCED_PARAMETER(psPerProc);
-
-    return 0;
-}
-#endif
-
-#ifdef PDUMP
-static IMG_INT
-PDumpIsCaptureFrameBW(IMG_UINT32 ui32BridgeID,
-                      IMG_VOID *psBridgeIn,
-                      PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING *psPDumpIsCapturingOUT,
-                      PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_ISCAPTURING);
-    PVR_UNREFERENCED_PARAMETER(psBridgeIn);
-    PVR_UNREFERENCED_PARAMETER(psPerProc);
-
-    psPDumpIsCapturingOUT->bIsCapturing = PDumpIsCaptureFrameKM();
-    psPDumpIsCapturingOUT->eError = PVRSRV_OK;
-
-    return 0;
-}
-
-static IMG_INT
-PDumpCommentBW(IMG_UINT32 ui32BridgeID,
-               PVRSRV_BRIDGE_IN_PDUMP_COMMENT *psPDumpCommentIN,
-               PVRSRV_BRIDGE_RETURN *psRetOUT,
-               PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_COMMENT);
-    PVR_UNREFERENCED_PARAMETER(psPerProc);
-
-    psRetOUT->eError = PDumpCommentKM(&psPDumpCommentIN->szComment[0],
-                                      psPDumpCommentIN->ui32Flags);
-    return 0;
-}
-
-static IMG_INT
-PDumpSetFrameBW(IMG_UINT32 ui32BridgeID,
-                PVRSRV_BRIDGE_IN_PDUMP_SETFRAME *psPDumpSetFrameIN,
-                PVRSRV_BRIDGE_RETURN *psRetOUT,
-                PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_SETFRAME);
-    PVR_UNREFERENCED_PARAMETER(psPerProc);
-
-    psRetOUT->eError = PDumpSetFrameKM(psPDumpSetFrameIN->ui32Frame);
-
-    return 0;
-}
-
-static IMG_INT
-PDumpRegWithFlagsBW(IMG_UINT32 ui32BridgeID,
-                    PVRSRV_BRIDGE_IN_PDUMP_DUMPREG *psPDumpRegDumpIN,
-                    PVRSRV_BRIDGE_RETURN *psRetOUT,
-                    PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_DEVICE_NODE *psDeviceNode;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_REG);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           (IMG_VOID **)&psDeviceNode,
-                           psPDumpRegDumpIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError = PDumpRegWithFlagsKM (psPDumpRegDumpIN->szRegRegion,
-                                            psPDumpRegDumpIN->sHWReg.ui32RegAddr,
-                                            psPDumpRegDumpIN->sHWReg.ui32RegVal,
-                                            psPDumpRegDumpIN->ui32Flags);
-
-    return 0;
-}
-
-static IMG_INT
-PDumpRegPolBW(IMG_UINT32 ui32BridgeID,
-              PVRSRV_BRIDGE_IN_PDUMP_REGPOL *psPDumpRegPolIN,
-              PVRSRV_BRIDGE_RETURN *psRetOUT,
-              PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_DEVICE_NODE *psDeviceNode;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_REGPOL);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           (IMG_VOID **)&psDeviceNode,
-                           psPDumpRegPolIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-
-    psRetOUT->eError =
-        PDumpRegPolWithFlagsKM(psPDumpRegPolIN->szRegRegion,
-                               psPDumpRegPolIN->sHWReg.ui32RegAddr,
-                               psPDumpRegPolIN->sHWReg.ui32RegVal,
-                               psPDumpRegPolIN->ui32Mask,
-                               psPDumpRegPolIN->ui32Flags,
-                               PDUMP_POLL_OPERATOR_EQUAL);
-
-    return 0;
-}
-
-static IMG_INT
-PDumpMemPolBW(IMG_UINT32 ui32BridgeID,
-              PVRSRV_BRIDGE_IN_PDUMP_MEMPOL *psPDumpMemPolIN,
-              PVRSRV_BRIDGE_RETURN *psRetOUT,
-              PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvMemInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_MEMPOL);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvMemInfo,
-#if defined (SUPPORT_SID_INTERFACE)
-                           psPDumpMemPolIN->hKernelMemInfo,
-#else
-                           psPDumpMemPolIN->psKernelMemInfo,
-#endif
-                           PVRSRV_HANDLE_TYPE_MEM_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PDumpMemPolKM(((PVRSRV_KERNEL_MEM_INFO *)pvMemInfo),
-                      psPDumpMemPolIN->ui32Offset,
-                      psPDumpMemPolIN->ui32Value,
-                      psPDumpMemPolIN->ui32Mask,
-                      psPDumpMemPolIN->eOperator,
-                      psPDumpMemPolIN->ui32Flags,
-                      MAKEUNIQUETAG(pvMemInfo));
-
-    return 0;
-}
-
-static IMG_INT
-PDumpMemBW(IMG_UINT32 ui32BridgeID,
-           PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM *psPDumpMemDumpIN,
-           PVRSRV_BRIDGE_RETURN *psRetOUT,
-           PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvMemInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DUMPMEM);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvMemInfo,
-#if defined (SUPPORT_SID_INTERFACE)
-                           psPDumpMemDumpIN->hKernelMemInfo,
-#else
-                           psPDumpMemDumpIN->psKernelMemInfo,
-#endif
-                           PVRSRV_HANDLE_TYPE_MEM_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PDumpMemUM(psPerProc,
-                   psPDumpMemDumpIN->pvAltLinAddr,
-                   psPDumpMemDumpIN->pvLinAddr,
-                   pvMemInfo,
-                   psPDumpMemDumpIN->ui32Offset,
-                   psPDumpMemDumpIN->ui32Bytes,
-                   psPDumpMemDumpIN->ui32Flags,
-                   MAKEUNIQUETAG(pvMemInfo));
-
-    return 0;
-}
-
-static IMG_INT
-PDumpBitmapBW(IMG_UINT32 ui32BridgeID,
-              PVRSRV_BRIDGE_IN_PDUMP_BITMAP *psPDumpBitmapIN,
-              PVRSRV_BRIDGE_RETURN *psRetOUT,
-              PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_DEVICE_NODE *psDeviceNode;
-    IMG_HANDLE hDevMemContextInt;
-
-    PVR_UNREFERENCED_PARAMETER(ui32BridgeID);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, (IMG_VOID **)&psDeviceNode,
-                           psPDumpBitmapIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle( psPerProc->psHandleBase,
-                            &hDevMemContextInt,
-                            psPDumpBitmapIN->hDevMemContext,
-                            PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PDumpBitmapKM(psDeviceNode,
-                      &psPDumpBitmapIN->szFileName[0],
-                      psPDumpBitmapIN->ui32FileOffset,
-                      psPDumpBitmapIN->ui32Width,
-                      psPDumpBitmapIN->ui32Height,
-                      psPDumpBitmapIN->ui32StrideInBytes,
-                      psPDumpBitmapIN->sDevBaseAddr,
-                      hDevMemContextInt,
-                      psPDumpBitmapIN->ui32Size,
-                      psPDumpBitmapIN->ePixelFormat,
-                      psPDumpBitmapIN->eMemFormat,
-                      psPDumpBitmapIN->ui32Flags);
-
-    return 0;
-}
-
-static IMG_INT
-PDumpReadRegBW(IMG_UINT32 ui32BridgeID,
-               PVRSRV_BRIDGE_IN_PDUMP_READREG *psPDumpReadRegIN,
-               PVRSRV_BRIDGE_RETURN *psRetOUT,
-               PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_DEVICE_NODE *psDeviceNode;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DUMPREADREG);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, (IMG_VOID **)&psDeviceNode,
-                           psPDumpReadRegIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-    psRetOUT->eError =
-        PDumpReadRegKM(&psPDumpReadRegIN->szRegRegion[0],
-                       &psPDumpReadRegIN->szFileName[0],
-                       psPDumpReadRegIN->ui32FileOffset,
-                       psPDumpReadRegIN->ui32Address,
-                       psPDumpReadRegIN->ui32Size,
-                       psPDumpReadRegIN->ui32Flags);
-
-    return 0;
-}
-
-static IMG_INT
-PDumpMemPagesBW(IMG_UINT32 ui32BridgeID,
-                  PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES *psPDumpMemPagesIN,
-                  PVRSRV_BRIDGE_RETURN *psRetOUT,
-                  PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_DEVICE_NODE *psDeviceNode;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_MEMPAGES);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           (IMG_VOID **)&psDeviceNode,
-                           psPDumpMemPagesIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-
-    return 0;
-}
-
-static IMG_INT
-PDumpDriverInfoBW(IMG_UINT32 ui32BridgeID,
-                  PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO *psPDumpDriverInfoIN,
-                  PVRSRV_BRIDGE_RETURN *psRetOUT,
-                  PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_UINT32 ui32PDumpFlags;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DRIVERINFO);
-    PVR_UNREFERENCED_PARAMETER(psPerProc);
-
-    ui32PDumpFlags = 0;
-    if(psPDumpDriverInfoIN->bContinuous)
-    {
-        ui32PDumpFlags |= PDUMP_FLAGS_CONTINUOUS;
-    }
-    psRetOUT->eError =
-        PDumpDriverInfoKM(&psPDumpDriverInfoIN->szString[0],
-                          ui32PDumpFlags);
-
-    return 0;
-}
-
-static IMG_INT
-PDumpSyncDumpBW(IMG_UINT32 ui32BridgeID,
-                PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC *psPDumpSyncDumpIN,
-                PVRSRV_BRIDGE_RETURN *psRetOUT,
-                PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_UINT32 ui32Bytes = psPDumpSyncDumpIN->ui32Bytes;
-    IMG_VOID *pvSyncInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DUMPSYNC);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, &pvSyncInfo,
-#if defined (SUPPORT_SID_INTERFACE)
-                           psPDumpSyncDumpIN->hKernelSyncInfo,
-#else
-                           psPDumpSyncDumpIN->psKernelSyncInfo,
-#endif
-                           PVRSRV_HANDLE_TYPE_SYNC_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PDumpMemUM(psPerProc,
-                   psPDumpSyncDumpIN->pvAltLinAddr,
-                   IMG_NULL,
-                   ((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncDataMemInfoKM,
-                   psPDumpSyncDumpIN->ui32Offset,
-                   ui32Bytes,
-                   0,
-                   MAKEUNIQUETAG(((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncDataMemInfoKM));
-
-    return 0;
-}
-
-static IMG_INT
-PDumpSyncPolBW(IMG_UINT32 ui32BridgeID,
-               PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL *psPDumpSyncPolIN,
-               PVRSRV_BRIDGE_RETURN *psRetOUT,
-               PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_UINT32 ui32Offset;
-    IMG_VOID *pvSyncInfo;
-    IMG_UINT32 ui32Value;
-    IMG_UINT32 ui32Mask;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_SYNCPOL);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvSyncInfo,
-#if defined (SUPPORT_SID_INTERFACE)
-                           psPDumpSyncPolIN->hKernelSyncInfo,
-#else
-                           psPDumpSyncPolIN->psKernelSyncInfo,
-#endif
-                           PVRSRV_HANDLE_TYPE_SYNC_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    if(psPDumpSyncPolIN->bIsRead)
-    {
-        ui32Offset = offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete);
-    }
-    else
-    {
-        ui32Offset = offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete);
-    }
-
-    
-    if (psPDumpSyncPolIN->bUseLastOpDumpVal)
-    {
-        if(psPDumpSyncPolIN->bIsRead)
-        {
-            ui32Value = ((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncData->ui32LastReadOpDumpVal;
-        }
-        else
-        {
-            ui32Value = ((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncData->ui32LastOpDumpVal;
-        }
-        ui32Mask = 0xffffffff;
-    }
-    else
-    {
-        ui32Value = psPDumpSyncPolIN->ui32Value;
-        ui32Mask =  psPDumpSyncPolIN->ui32Mask;
-    }
-
-    psRetOUT->eError =
-        PDumpMemPolKM(((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncDataMemInfoKM,
-                      ui32Offset,
-                      ui32Value,
-                      ui32Mask,
-                      PDUMP_POLL_OPERATOR_EQUAL,
-                      0,
-                      MAKEUNIQUETAG(((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncDataMemInfoKM));
-
-    return 0;
-}
-
-
-static IMG_INT
-PDumpCycleCountRegReadBW(IMG_UINT32 ui32BridgeID,
-                         PVRSRV_BRIDGE_IN_PDUMP_CYCLE_COUNT_REG_READ *psPDumpCycleCountRegReadIN,
-                         PVRSRV_BRIDGE_RETURN *psRetOUT,
-                         PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_DEVICE_NODE *psDeviceNode;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_CYCLE_COUNT_REG_READ);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           (IMG_VOID **)&psDeviceNode,
-                           psPDumpCycleCountRegReadIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    PDumpCycleCountRegRead(&psDeviceNode->sDevId,
-                           psPDumpCycleCountRegReadIN->ui32RegOffset,
-                           psPDumpCycleCountRegReadIN->bLastFrame);
-
-    psRetOUT->eError = PVRSRV_OK;
-
-    return 0;
-}
-
-static IMG_INT
-PDumpPDDevPAddrBW(IMG_UINT32 ui32BridgeID,
-                  PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR *psPDumpPDDevPAddrIN,
-                  PVRSRV_BRIDGE_RETURN *psRetOUT,
-                  PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvMemInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DUMPPDDEVPADDR);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, &pvMemInfo,
-                           psPDumpPDDevPAddrIN->hKernelMemInfo,
-                           PVRSRV_HANDLE_TYPE_MEM_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PDumpPDDevPAddrKM((PVRSRV_KERNEL_MEM_INFO *)pvMemInfo,
-                          psPDumpPDDevPAddrIN->ui32Offset,
-                          psPDumpPDDevPAddrIN->sPDDevPAddr,
-                          MAKEUNIQUETAG(pvMemInfo),
-                          PDUMP_PD_UNIQUETAG);
-    return 0;
-}
-
-static IMG_INT
-PDumpStartInitPhaseBW(IMG_UINT32 ui32BridgeID,
-                      IMG_VOID *psBridgeIn,
-                      PVRSRV_BRIDGE_RETURN *psRetOUT,
-                      PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_STARTINITPHASE);
-    PVR_UNREFERENCED_PARAMETER(psBridgeIn);
-    PVR_UNREFERENCED_PARAMETER(psPerProc);
-
-    psRetOUT->eError = PDumpStartInitPhaseKM();
-
-    return 0;
-}
-
-static IMG_INT
-PDumpStopInitPhaseBW(IMG_UINT32 ui32BridgeID,
-                      IMG_VOID *psBridgeIn,
-                      PVRSRV_BRIDGE_RETURN *psRetOUT,
-                      PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_STOPINITPHASE);
-    PVR_UNREFERENCED_PARAMETER(psBridgeIn);
-    PVR_UNREFERENCED_PARAMETER(psPerProc);
-
-    psRetOUT->eError = PDumpStopInitPhaseKM();
-
-    return 0;
-}
-
-#endif 
-
-
-static IMG_INT
-PVRSRVGetMiscInfoBW(IMG_UINT32 ui32BridgeID,
-                    PVRSRV_BRIDGE_IN_GET_MISC_INFO *psGetMiscInfoIN,
-                    PVRSRV_BRIDGE_OUT_GET_MISC_INFO *psGetMiscInfoOUT,
-                    PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-#if defined (SUPPORT_SID_INTERFACE)
-    PVRSRV_MISC_INFO_KM sMiscInfo = {0};
-#endif
-    PVRSRV_ERROR eError;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_MISC_INFO);
-#if defined (SUPPORT_SID_INTERFACE)
-    sMiscInfo.ui32StateRequest = psGetMiscInfoIN->sMiscInfo.ui32StateRequest;
-    sMiscInfo.ui32StatePresent = psGetMiscInfoIN->sMiscInfo.ui32StatePresent;
-    sMiscInfo.ui32MemoryStrLen = psGetMiscInfoIN->sMiscInfo.ui32MemoryStrLen;
-    sMiscInfo.pszMemoryStr     = psGetMiscInfoIN->sMiscInfo.pszMemoryStr;
-
-    OSMemCopy(&sMiscInfo.sCacheOpCtl,
-              &psGetMiscInfoIN->sMiscInfo.sCacheOpCtl,
-              sizeof(sMiscInfo.sCacheOpCtl));
-#else
-
-    OSMemCopy(&psGetMiscInfoOUT->sMiscInfo,
-              &psGetMiscInfoIN->sMiscInfo,
-              sizeof(PVRSRV_MISC_INFO));
-#endif
-
-    if (((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_MEMSTATS_PRESENT) != 0) &&
-        ((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_DDKVERSION_PRESENT) != 0) &&
-        ((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_FREEMEM_PRESENT) != 0))
-    {
-        
-        psGetMiscInfoOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-        return 0;
-    }
-
-    if (((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_MEMSTATS_PRESENT) != 0) ||
-        ((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_DDKVERSION_PRESENT) != 0) ||
-        ((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_FREEMEM_PRESENT) != 0))
-    {
-        
-#if defined (SUPPORT_SID_INTERFACE)
-        ASSIGN_AND_EXIT_ON_ERROR(psGetMiscInfoOUT->eError,
-                    OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-                            psGetMiscInfoOUT->sMiscInfo.ui32MemoryStrLen,
-                            (IMG_VOID **)&sMiscInfo.pszMemoryStr, 0,
-                            "Output string buffer"));
-        psGetMiscInfoOUT->eError = PVRSRVGetMiscInfoKM(&sMiscInfo);
-
-        
-        eError = CopyToUserWrapper(psPerProc, ui32BridgeID,
-                                   psGetMiscInfoIN->sMiscInfo.pszMemoryStr,
-                                   sMiscInfo.pszMemoryStr,
-                                   sMiscInfo.ui32MemoryStrLen);
-#else
-        ASSIGN_AND_EXIT_ON_ERROR(psGetMiscInfoOUT->eError,
-                    OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-                            psGetMiscInfoOUT->sMiscInfo.ui32MemoryStrLen,
-                            (IMG_VOID **)&psGetMiscInfoOUT->sMiscInfo.pszMemoryStr, 0,
-                            "Output string buffer"));
-
-        psGetMiscInfoOUT->eError = PVRSRVGetMiscInfoKM(&psGetMiscInfoOUT->sMiscInfo);
-
-        
-        eError = CopyToUserWrapper(psPerProc, ui32BridgeID,
-                                   psGetMiscInfoIN->sMiscInfo.pszMemoryStr,
-                                   psGetMiscInfoOUT->sMiscInfo.pszMemoryStr,
-                                   psGetMiscInfoOUT->sMiscInfo.ui32MemoryStrLen);
-#endif
-
-        
-#if defined (SUPPORT_SID_INTERFACE)
-        OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-                  sMiscInfo.ui32MemoryStrLen,
-                 (IMG_VOID *)sMiscInfo.pszMemoryStr, 0);
-#else
-        OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-                  psGetMiscInfoOUT->sMiscInfo.ui32MemoryStrLen,
-                 (IMG_VOID *)psGetMiscInfoOUT->sMiscInfo.pszMemoryStr, 0);
-#endif
-
-        
-        psGetMiscInfoOUT->sMiscInfo.pszMemoryStr = psGetMiscInfoIN->sMiscInfo.pszMemoryStr;
-
-        if(eError != PVRSRV_OK)
-        {
-            
-            PVR_DPF((PVR_DBG_ERROR, "PVRSRVGetMiscInfoBW Error copy to user"));
-            return -EFAULT;
-        }
-    }
-    else
-    {
-#if defined (SUPPORT_SID_INTERFACE)
-        psGetMiscInfoOUT->eError = PVRSRVGetMiscInfoKM(&sMiscInfo);
-#else
-        psGetMiscInfoOUT->eError = PVRSRVGetMiscInfoKM(&psGetMiscInfoOUT->sMiscInfo);
-#endif
-    }
-
-    
-    if (psGetMiscInfoOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    
-#if defined (SUPPORT_SID_INTERFACE)
-    if (sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT)
-#else
-    if (psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT)
-#endif
-    {
-        psGetMiscInfoOUT->eError = PVRSRVAllocHandle(psPerProc->psHandleBase,
-                                                    &psGetMiscInfoOUT->sMiscInfo.sGlobalEventObject.hOSEventKM,
-#if defined (SUPPORT_SID_INTERFACE)
-                                                    sMiscInfo.sGlobalEventObject.hOSEventKM,
-#else
-                                                    psGetMiscInfoOUT->sMiscInfo.sGlobalEventObject.hOSEventKM,
-#endif
-                                                    PVRSRV_HANDLE_TYPE_SHARED_EVENT_OBJECT,
-                                                    PVRSRV_HANDLE_ALLOC_FLAG_SHARED);
-
-        if (psGetMiscInfoOUT->eError != PVRSRV_OK)
-        {
-            return 0;
-        }
-
-#if defined (SUPPORT_SID_INTERFACE)
-        OSMemCopy(&psGetMiscInfoOUT->sMiscInfo.sGlobalEventObject.szName,
-                           sMiscInfo.sGlobalEventObject.szName,
-                           EVENTOBJNAME_MAXLENGTH);
-
-#endif
-    }
-
-#if defined (SUPPORT_SID_INTERFACE)
-    if (sMiscInfo.hSOCTimerRegisterOSMemHandle)
-#else
-    if (psGetMiscInfoOUT->sMiscInfo.hSOCTimerRegisterOSMemHandle)
-#endif
-    {
-        
-        psGetMiscInfoOUT->eError = PVRSRVAllocHandle(psPerProc->psHandleBase,
-                          &psGetMiscInfoOUT->sMiscInfo.hSOCTimerRegisterOSMemHandle,
-#if defined (SUPPORT_SID_INTERFACE)
-                          sMiscInfo.hSOCTimerRegisterOSMemHandle,
-#else
-                          psGetMiscInfoOUT->sMiscInfo.hSOCTimerRegisterOSMemHandle,
-#endif
-                          PVRSRV_HANDLE_TYPE_SOC_TIMER,
-                          PVRSRV_HANDLE_ALLOC_FLAG_SHARED);
-
-        if (psGetMiscInfoOUT->eError != PVRSRV_OK)
-        {
-            return 0;
-        }
-    }
-#if defined (SUPPORT_SID_INTERFACE)
-    else
-    {
-        psGetMiscInfoOUT->sMiscInfo.hSOCTimerRegisterOSMemHandle = 0;
-    }
-
-    
-    psGetMiscInfoOUT->sMiscInfo.ui32StateRequest = sMiscInfo.ui32StateRequest;
-    psGetMiscInfoOUT->sMiscInfo.ui32StatePresent = sMiscInfo.ui32StatePresent;
-
-    psGetMiscInfoOUT->sMiscInfo.pvSOCTimerRegisterKM = sMiscInfo.pvSOCTimerRegisterKM;
-    psGetMiscInfoOUT->sMiscInfo.pvSOCTimerRegisterUM = sMiscInfo.pvSOCTimerRegisterUM;
-    psGetMiscInfoOUT->sMiscInfo.pvSOCClockGateRegs   = sMiscInfo.pvSOCClockGateRegs;
-
-    psGetMiscInfoOUT->sMiscInfo.ui32SOCClockGateRegsSize = sMiscInfo.ui32SOCClockGateRegsSize;
-
-    OSMemCopy(&psGetMiscInfoOUT->sMiscInfo.aui32DDKVersion,
-              &sMiscInfo.aui32DDKVersion,
-              sizeof(psGetMiscInfoOUT->sMiscInfo.aui32DDKVersion));
-    OSMemCopy(&psGetMiscInfoOUT->sMiscInfo.sCacheOpCtl,
-              &sMiscInfo.sCacheOpCtl,
-              sizeof(psGetMiscInfoOUT->sMiscInfo.sCacheOpCtl));
-#endif
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVConnectBW(IMG_UINT32 ui32BridgeID,
-                PVRSRV_BRIDGE_IN_CONNECT_SERVICES *psConnectServicesIN,
-                PVRSRV_BRIDGE_OUT_CONNECT_SERVICES *psConnectServicesOUT,
-                PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CONNECT_SERVICES);
-
-#if defined(PDUMP)
-    
-	if ((psConnectServicesIN->ui32Flags & SRV_FLAGS_PERSIST) != 0)
-	{
-    	psPerProc->bPDumpPersistent = IMG_TRUE;
-	}
-
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-    
-	if ((psConnectServicesIN->ui32Flags & SRV_FLAGS_PDUMP_ACTIVE) != 0)
-	{
-    	psPerProc->bPDumpActive = IMG_TRUE;
-	}
-#endif 
-#else
-    PVR_UNREFERENCED_PARAMETER(psConnectServicesIN);
-#endif
-    psConnectServicesOUT->hKernelServices = psPerProc->hPerProcData;
-    psConnectServicesOUT->eError = PVRSRV_OK;
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVDisconnectBW(IMG_UINT32 ui32BridgeID,
-                   IMG_VOID *psBridgeIn,
-                   PVRSRV_BRIDGE_RETURN *psRetOUT,
-                   PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVR_UNREFERENCED_PARAMETER(psPerProc);
-    PVR_UNREFERENCED_PARAMETER(psBridgeIn);
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_DISCONNECT_SERVICES);
-
-    
-    psRetOUT->eError = PVRSRV_OK;
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVEnumerateDCBW(IMG_UINT32 ui32BridgeID,
-                    PVRSRV_BRIDGE_IN_ENUMCLASS *psEnumDispClassIN,
-                    PVRSRV_BRIDGE_OUT_ENUMCLASS *psEnumDispClassOUT,
-                    PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVR_UNREFERENCED_PARAMETER(psPerProc);
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ENUM_CLASS);
-
-    psEnumDispClassOUT->eError =
-        PVRSRVEnumerateDCKM(psEnumDispClassIN->sDeviceClass,
-                            &psEnumDispClassOUT->ui32NumDevices,
-                            &psEnumDispClassOUT->ui32DevID[0]);
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVOpenDCDeviceBW(IMG_UINT32 ui32BridgeID,
-                     PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE *psOpenDispClassDeviceIN,
-                     PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE *psOpenDispClassDeviceOUT,
-                     PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_HANDLE hDevCookieInt;
-    IMG_HANDLE hDispClassInfoInt;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_OPEN_DISPCLASS_DEVICE);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psOpenDispClassDeviceOUT->eError, psPerProc, 1)
-
-    psOpenDispClassDeviceOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &hDevCookieInt,
-                           psOpenDispClassDeviceIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-    if(psOpenDispClassDeviceOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psOpenDispClassDeviceOUT->eError =
-        PVRSRVOpenDCDeviceKM(psPerProc,
-                             psOpenDispClassDeviceIN->ui32DeviceID,
-                             hDevCookieInt,
-                             &hDispClassInfoInt);
-
-    if(psOpenDispClassDeviceOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-                      &psOpenDispClassDeviceOUT->hDeviceKM,
-                      hDispClassInfoInt,
-                      PVRSRV_HANDLE_TYPE_DISP_INFO,
-                      PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-    COMMIT_HANDLE_BATCH_OR_ERROR(psOpenDispClassDeviceOUT->eError, psPerProc)
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVCloseDCDeviceBW(IMG_UINT32 ui32BridgeID,
-                      PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE *psCloseDispClassDeviceIN,
-                      PVRSRV_BRIDGE_RETURN *psRetOUT,
-                      PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvDispClassInfoInt;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CLOSE_DISPCLASS_DEVICE);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvDispClassInfoInt,
-                           psCloseDispClassDeviceIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_DISP_INFO);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError = PVRSRVCloseDCDeviceKM(pvDispClassInfoInt, IMG_FALSE);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVReleaseHandle(psPerProc->psHandleBase,
-                            psCloseDispClassDeviceIN->hDeviceKM,
-                            PVRSRV_HANDLE_TYPE_DISP_INFO);
-    return 0;
-}
-
-static IMG_INT
-PVRSRVEnumDCFormatsBW(IMG_UINT32 ui32BridgeID,
-                      PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS *psEnumDispClassFormatsIN,
-                      PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS *psEnumDispClassFormatsOUT,
-                      PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvDispClassInfoInt;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ENUM_DISPCLASS_FORMATS);
-
-    psEnumDispClassFormatsOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvDispClassInfoInt,
-                           psEnumDispClassFormatsIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_DISP_INFO);
-    if(psEnumDispClassFormatsOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psEnumDispClassFormatsOUT->eError =
-        PVRSRVEnumDCFormatsKM(pvDispClassInfoInt,
-                              &psEnumDispClassFormatsOUT->ui32Count,
-                              psEnumDispClassFormatsOUT->asFormat);
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVEnumDCDimsBW(IMG_UINT32 ui32BridgeID,
-                   PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS *psEnumDispClassDimsIN,
-                   PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS *psEnumDispClassDimsOUT,
-                   PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvDispClassInfoInt;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ENUM_DISPCLASS_DIMS);
-
-    psEnumDispClassDimsOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvDispClassInfoInt,
-                           psEnumDispClassDimsIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_DISP_INFO);
-
-    if(psEnumDispClassDimsOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psEnumDispClassDimsOUT->eError =
-        PVRSRVEnumDCDimsKM(pvDispClassInfoInt,
-                           &psEnumDispClassDimsIN->sFormat,
-                           &psEnumDispClassDimsOUT->ui32Count,
-                           psEnumDispClassDimsOUT->asDim);
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVGetDCSystemBufferBW(IMG_UINT32 ui32BridgeID,
-                          PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER *psGetDispClassSysBufferIN,  
-                          PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER *psGetDispClassSysBufferOUT,
-                          PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_HANDLE hBufferInt;
-    IMG_VOID *pvDispClassInfoInt;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_DISPCLASS_SYSBUFFER);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psGetDispClassSysBufferOUT->eError, psPerProc, 1)
-
-    psGetDispClassSysBufferOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvDispClassInfoInt,
-                           psGetDispClassSysBufferIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_DISP_INFO);
-    if(psGetDispClassSysBufferOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psGetDispClassSysBufferOUT->eError =
-        PVRSRVGetDCSystemBufferKM(pvDispClassInfoInt,
-                                  &hBufferInt);
-
-    if(psGetDispClassSysBufferOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-     
-    PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                         &psGetDispClassSysBufferOUT->hBuffer,
-                         hBufferInt,
-                         PVRSRV_HANDLE_TYPE_DISP_BUFFER,
-                         (PVRSRV_HANDLE_ALLOC_FLAG)(PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE | PVRSRV_HANDLE_ALLOC_FLAG_SHARED),
-                         psGetDispClassSysBufferIN->hDeviceKM);
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psGetDispClassSysBufferOUT->eError, psPerProc)
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVGetDCInfoBW(IMG_UINT32 ui32BridgeID,
-                  PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO *psGetDispClassInfoIN,
-                  PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO *psGetDispClassInfoOUT,
-                  PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvDispClassInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_DISPCLASS_INFO);
-
-    psGetDispClassInfoOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvDispClassInfo,
-                           psGetDispClassInfoIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_DISP_INFO);
-    if(psGetDispClassInfoOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psGetDispClassInfoOUT->eError =
-        PVRSRVGetDCInfoKM(pvDispClassInfo,
-                          &psGetDispClassInfoOUT->sDisplayInfo);
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVCreateDCSwapChainBW(IMG_UINT32 ui32BridgeID,
-                          PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN *psCreateDispClassSwapChainIN,
-                          PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN *psCreateDispClassSwapChainOUT,
-                          PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvDispClassInfo;
-    IMG_HANDLE hSwapChainInt;
-    IMG_UINT32  ui32SwapChainID;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CREATE_DISPCLASS_SWAPCHAIN);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psCreateDispClassSwapChainOUT->eError, psPerProc, 1)
-
-    psCreateDispClassSwapChainOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvDispClassInfo,
-                           psCreateDispClassSwapChainIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_DISP_INFO);
-
-    if(psCreateDispClassSwapChainOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    
-    ui32SwapChainID = psCreateDispClassSwapChainIN->ui32SwapChainID;
-
-    psCreateDispClassSwapChainOUT->eError =
-        PVRSRVCreateDCSwapChainKM(psPerProc, pvDispClassInfo,
-                                  psCreateDispClassSwapChainIN->ui32Flags,
-                                  &psCreateDispClassSwapChainIN->sDstSurfAttrib,
-                                  &psCreateDispClassSwapChainIN->sSrcSurfAttrib,
-                                  psCreateDispClassSwapChainIN->ui32BufferCount,
-                                  psCreateDispClassSwapChainIN->ui32OEMFlags,
-                                  &hSwapChainInt,
-                                  &ui32SwapChainID);
-
-    if(psCreateDispClassSwapChainOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    
-    psCreateDispClassSwapChainOUT->ui32SwapChainID = ui32SwapChainID;
-
-    PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                      &psCreateDispClassSwapChainOUT->hSwapChain,
-                      hSwapChainInt,
-                      PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN,
-                      PVRSRV_HANDLE_ALLOC_FLAG_NONE,
-                      psCreateDispClassSwapChainIN->hDeviceKM);
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psCreateDispClassSwapChainOUT->eError, psPerProc)
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVDestroyDCSwapChainBW(IMG_UINT32 ui32BridgeID,
-                           PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN *psDestroyDispClassSwapChainIN,
-                           PVRSRV_BRIDGE_RETURN *psRetOUT,
-                           PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvSwapChain;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_DESTROY_DISPCLASS_SWAPCHAIN);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, &pvSwapChain,
-                           psDestroyDispClassSwapChainIN->hSwapChain,
-                           PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVDestroyDCSwapChainKM(pvSwapChain);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVReleaseHandle(psPerProc->psHandleBase,
-                            psDestroyDispClassSwapChainIN->hSwapChain,
-                            PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN);
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVSetDCDstRectBW(IMG_UINT32 ui32BridgeID,
-                     PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT *psSetDispClassDstRectIN,
-                     PVRSRV_BRIDGE_RETURN *psRetOUT,
-                     PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvDispClassInfo;
-    IMG_VOID *pvSwapChain;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SET_DISPCLASS_DSTRECT);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvDispClassInfo,
-                           psSetDispClassDstRectIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_DISP_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvSwapChain,
-                           psSetDispClassDstRectIN->hSwapChain,
-                           PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVSetDCDstRectKM(pvDispClassInfo,
-                             pvSwapChain,
-                             &psSetDispClassDstRectIN->sRect);
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVSetDCSrcRectBW(IMG_UINT32 ui32BridgeID,
-                     PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT *psSetDispClassSrcRectIN,
-                     PVRSRV_BRIDGE_RETURN *psRetOUT,
-                     PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvDispClassInfo;
-    IMG_VOID *pvSwapChain;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SET_DISPCLASS_SRCRECT);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvDispClassInfo,
-                           psSetDispClassSrcRectIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_DISP_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvSwapChain,
-                           psSetDispClassSrcRectIN->hSwapChain,
-                           PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVSetDCSrcRectKM(pvDispClassInfo,
-                             pvSwapChain,
-                             &psSetDispClassSrcRectIN->sRect);
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVSetDCDstColourKeyBW(IMG_UINT32 ui32BridgeID,
-                          PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY *psSetDispClassColKeyIN,
-                          PVRSRV_BRIDGE_RETURN *psRetOUT,
-                          PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvDispClassInfo;
-    IMG_VOID *pvSwapChain;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SET_DISPCLASS_DSTCOLOURKEY);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvDispClassInfo,
-                           psSetDispClassColKeyIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_DISP_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvSwapChain,
-                           psSetDispClassColKeyIN->hSwapChain,
-                           PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVSetDCDstColourKeyKM(pvDispClassInfo,
-                                  pvSwapChain,
-                                  psSetDispClassColKeyIN->ui32CKColour);
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVSetDCSrcColourKeyBW(IMG_UINT32 ui32BridgeID,
-                          PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY *psSetDispClassColKeyIN,
-                          PVRSRV_BRIDGE_RETURN *psRetOUT,
-                          PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvDispClassInfo;
-    IMG_VOID *pvSwapChain;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SET_DISPCLASS_SRCCOLOURKEY);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvDispClassInfo,
-                           psSetDispClassColKeyIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_DISP_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvSwapChain,
-                           psSetDispClassColKeyIN->hSwapChain,
-                           PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVSetDCSrcColourKeyKM(pvDispClassInfo,
-                                  pvSwapChain,
-                                  psSetDispClassColKeyIN->ui32CKColour);
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVGetDCBuffersBW(IMG_UINT32 ui32BridgeID,
-                     PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS *psGetDispClassBuffersIN,
-                     PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS *psGetDispClassBuffersOUT,
-                     PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID    *pvDispClassInfo;
-    IMG_VOID    *pvSwapChain;
-    IMG_UINT32   i;
-#if defined (SUPPORT_SID_INTERFACE)
-    IMG_HANDLE  *pahBuffer;
-#endif
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_DISPCLASS_BUFFERS);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psGetDispClassBuffersOUT->eError, psPerProc, PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS)
-
-    psGetDispClassBuffersOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvDispClassInfo,
-                           psGetDispClassBuffersIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_DISP_INFO);
-    if(psGetDispClassBuffersOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psGetDispClassBuffersOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvSwapChain,
-                           psGetDispClassBuffersIN->hSwapChain,
-                           PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN);
-    if(psGetDispClassBuffersOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-#if defined (SUPPORT_SID_INTERFACE)
-    psGetDispClassBuffersOUT->eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-                                                  sizeof(IMG_HANDLE) * PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS,
-                                                  (IMG_PVOID *)&pahBuffer, 0,
-                                                  "Temp Swapchain Buffers");
-
-    if (psGetDispClassBuffersOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-#endif
-
-    psGetDispClassBuffersOUT->eError =
-        PVRSRVGetDCBuffersKM(pvDispClassInfo,
-                             pvSwapChain,
-                             &psGetDispClassBuffersOUT->ui32BufferCount,
-#if defined (SUPPORT_SID_INTERFACE)
-                             pahBuffer);
-#else
-                             psGetDispClassBuffersOUT->ahBuffer);
-#endif
-    if (psGetDispClassBuffersOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    PVR_ASSERT(psGetDispClassBuffersOUT->ui32BufferCount <= PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS);
-
-    for(i = 0; i < psGetDispClassBuffersOUT->ui32BufferCount; i++)
-    {
-#if defined (SUPPORT_SID_INTERFACE)
-        IMG_SID hBufferExt;
-#else
-        IMG_HANDLE hBufferExt;
-#endif
-
-         
-#if defined (SUPPORT_SID_INTERFACE)
-        PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                             &hBufferExt,
-                             pahBuffer[i],
-                             PVRSRV_HANDLE_TYPE_DISP_BUFFER,
-                             (PVRSRV_HANDLE_ALLOC_FLAG)(PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE | PVRSRV_HANDLE_ALLOC_FLAG_SHARED),
-                             psGetDispClassBuffersIN->hSwapChain);
-#else
-        PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                             &hBufferExt,
-                             psGetDispClassBuffersOUT->ahBuffer[i],
-                             PVRSRV_HANDLE_TYPE_DISP_BUFFER,
-                             (PVRSRV_HANDLE_ALLOC_FLAG)(PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE | PVRSRV_HANDLE_ALLOC_FLAG_SHARED),
-                             psGetDispClassBuffersIN->hSwapChain);
-#endif
-
-        psGetDispClassBuffersOUT->ahBuffer[i] = hBufferExt;
-    }
-
-#if defined (SUPPORT_SID_INTERFACE)
-    OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-              sizeof(IMG_HANDLE) * PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS,
-              (IMG_PVOID)pahBuffer, 0);
-#endif
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psGetDispClassBuffersOUT->eError, psPerProc)
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVSwapToDCBufferBW(IMG_UINT32 ui32BridgeID,
-                       PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER *psSwapDispClassBufferIN,
-                       PVRSRV_BRIDGE_RETURN *psRetOUT,
-                       PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID  *pvDispClassInfo;
-    IMG_VOID  *pvSwapChainBuf;
-#if defined (SUPPORT_SID_INTERFACE)
-    IMG_HANDLE hPrivateTag;
-#endif
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvDispClassInfo,
-                           psSwapDispClassBufferIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_DISP_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVLookupSubHandle(psPerProc->psHandleBase,
-                           &pvSwapChainBuf,
-                           psSwapDispClassBufferIN->hBuffer,
-                           PVRSRV_HANDLE_TYPE_DISP_BUFFER,
-                           psSwapDispClassBufferIN->hDeviceKM);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-#if defined (SUPPORT_SID_INTERFACE)
-    if (psSwapDispClassBufferIN->hPrivateTag != 0)
-    {
-        psRetOUT->eError =
-            PVRSRVLookupSubHandle(psPerProc->psHandleBase,
-                               &hPrivateTag,
-                               psSwapDispClassBufferIN->hPrivateTag,
-                               PVRSRV_HANDLE_TYPE_DISP_BUFFER,
-                               psSwapDispClassBufferIN->hDeviceKM);
-        if(psRetOUT->eError != PVRSRV_OK)
-        {
-            return 0;
-        }
-    }
-    else
-    {
-        hPrivateTag = IMG_NULL;
-    }
-#endif
-
-
-    psRetOUT->eError =
-        PVRSRVSwapToDCBufferKM(pvDispClassInfo,
-                               pvSwapChainBuf,
-                               psSwapDispClassBufferIN->ui32SwapInterval,
-#if defined (SUPPORT_SID_INTERFACE)
-                               hPrivateTag,
-#else
-                               psSwapDispClassBufferIN->hPrivateTag,
-#endif
-                               psSwapDispClassBufferIN->ui32ClipRectCount,
-                               psSwapDispClassBufferIN->sClipRect);
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVSwapToDCSystemBW(IMG_UINT32 ui32BridgeID,
-                       PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM *psSwapDispClassSystemIN,
-                       PVRSRV_BRIDGE_RETURN *psRetOUT,
-                       PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvDispClassInfo;
-    IMG_VOID *pvSwapChain;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_SYSTEM);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvDispClassInfo,
-                           psSwapDispClassSystemIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_DISP_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVLookupSubHandle(psPerProc->psHandleBase,
-                           &pvSwapChain,
-                           psSwapDispClassSystemIN->hSwapChain,
-                           PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN,
-                           psSwapDispClassSystemIN->hDeviceKM);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-    psRetOUT->eError =
-        PVRSRVSwapToDCSystemKM(pvDispClassInfo,
-                               pvSwapChain);
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVOpenBCDeviceBW(IMG_UINT32 ui32BridgeID,
-                     PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE *psOpenBufferClassDeviceIN,
-                     PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE *psOpenBufferClassDeviceOUT,
-                     PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_HANDLE hDevCookieInt;
-    IMG_HANDLE hBufClassInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_OPEN_BUFFERCLASS_DEVICE);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psOpenBufferClassDeviceOUT->eError, psPerProc, 1)
-
-    psOpenBufferClassDeviceOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &hDevCookieInt,
-                           psOpenBufferClassDeviceIN->hDevCookie,
-                           PVRSRV_HANDLE_TYPE_DEV_NODE);
-    if(psOpenBufferClassDeviceOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psOpenBufferClassDeviceOUT->eError =
-        PVRSRVOpenBCDeviceKM(psPerProc,
-                             psOpenBufferClassDeviceIN->ui32DeviceID,
-                             hDevCookieInt,
-                             &hBufClassInfo);
-    if(psOpenBufferClassDeviceOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-                      &psOpenBufferClassDeviceOUT->hDeviceKM,
-                      hBufClassInfo,
-                      PVRSRV_HANDLE_TYPE_BUF_INFO,
-                      PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psOpenBufferClassDeviceOUT->eError, psPerProc)
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVCloseBCDeviceBW(IMG_UINT32 ui32BridgeID,
-                      PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE *psCloseBufferClassDeviceIN,
-                      PVRSRV_BRIDGE_RETURN *psRetOUT,
-                      PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvBufClassInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CLOSE_BUFFERCLASS_DEVICE);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvBufClassInfo,
-                           psCloseBufferClassDeviceIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_BUF_INFO);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError =
-        PVRSRVCloseBCDeviceKM(pvBufClassInfo, IMG_FALSE);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError = PVRSRVReleaseHandle(psPerProc->psHandleBase,
-                                           psCloseBufferClassDeviceIN->hDeviceKM,
-                                           PVRSRV_HANDLE_TYPE_BUF_INFO);
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVGetBCInfoBW(IMG_UINT32 ui32BridgeID,
-                  PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO *psGetBufferClassInfoIN,
-                  PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO *psGetBufferClassInfoOUT,
-                  PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvBufClassInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_BUFFERCLASS_INFO);
-
-    psGetBufferClassInfoOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvBufClassInfo,
-                           psGetBufferClassInfoIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_BUF_INFO);
-    if(psGetBufferClassInfoOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psGetBufferClassInfoOUT->eError =
-        PVRSRVGetBCInfoKM(pvBufClassInfo,
-                          &psGetBufferClassInfoOUT->sBufferInfo);
-    return 0;
-}
-
-static IMG_INT
-PVRSRVGetBCBufferBW(IMG_UINT32 ui32BridgeID,
-                    PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER *psGetBufferClassBufferIN,
-                    PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER *psGetBufferClassBufferOUT,
-                    PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_VOID *pvBufClassInfo;
-    IMG_HANDLE hBufferInt;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_BUFFERCLASS_BUFFER);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psGetBufferClassBufferOUT->eError, psPerProc, 1)
-
-    psGetBufferClassBufferOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &pvBufClassInfo,
-                           psGetBufferClassBufferIN->hDeviceKM,
-                           PVRSRV_HANDLE_TYPE_BUF_INFO);
-    if(psGetBufferClassBufferOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psGetBufferClassBufferOUT->eError =
-        PVRSRVGetBCBufferKM(pvBufClassInfo,
-                            psGetBufferClassBufferIN->ui32BufferIndex,
-                            &hBufferInt);
-
-    if(psGetBufferClassBufferOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-     
-    PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                         &psGetBufferClassBufferOUT->hBuffer,
-                         hBufferInt,
-                         PVRSRV_HANDLE_TYPE_BUF_BUFFER,
-                         (PVRSRV_HANDLE_ALLOC_FLAG)(PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE |  PVRSRV_HANDLE_ALLOC_FLAG_SHARED),
-                         psGetBufferClassBufferIN->hDeviceKM);
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psGetBufferClassBufferOUT->eError, psPerProc)
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVAllocSharedSysMemoryBW(IMG_UINT32 ui32BridgeID,
-                             PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM *psAllocSharedSysMemIN,
-                             PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM *psAllocSharedSysMemOUT,
-                             PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ALLOC_SHARED_SYS_MEM);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psAllocSharedSysMemOUT->eError, psPerProc, 1)
-
-    psAllocSharedSysMemOUT->eError =
-        PVRSRVAllocSharedSysMemoryKM(psPerProc,
-                                     psAllocSharedSysMemIN->ui32Flags,
-                                     psAllocSharedSysMemIN->ui32Size,
-                                     &psKernelMemInfo);
-    if(psAllocSharedSysMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    OSMemSet(&psAllocSharedSysMemOUT->sClientMemInfo,
-             0,
-             sizeof(psAllocSharedSysMemOUT->sClientMemInfo));
-
-    psAllocSharedSysMemOUT->sClientMemInfo.pvLinAddrKM =
-            psKernelMemInfo->pvLinAddrKM;
-
-    psAllocSharedSysMemOUT->sClientMemInfo.pvLinAddr = 0;
-    psAllocSharedSysMemOUT->sClientMemInfo.ui32Flags =
-        psKernelMemInfo->ui32Flags;
-    psAllocSharedSysMemOUT->sClientMemInfo.uAllocSize =
-        psKernelMemInfo->uAllocSize;
-#if defined (SUPPORT_SID_INTERFACE)
-    if (psKernelMemInfo->sMemBlk.hOSMemHandle != IMG_NULL)
-    {
-        PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-                          &psAllocSharedSysMemOUT->sClientMemInfo.hMappingInfo,
-                          psKernelMemInfo->sMemBlk.hOSMemHandle,
-                          PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO,
-                          PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-    }
-    else
-    {
-        psAllocSharedSysMemOUT->sClientMemInfo.hMappingInfo = 0;
-    }
-#else
-    psAllocSharedSysMemOUT->sClientMemInfo.hMappingInfo = psKernelMemInfo->sMemBlk.hOSMemHandle;
-#endif
-
-    PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-                      &psAllocSharedSysMemOUT->sClientMemInfo.hKernelMemInfo,
-                      psKernelMemInfo,
-                      PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO,
-                      PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psAllocSharedSysMemOUT->eError, psPerProc)
-
-    return 0;
-}
-
-static IMG_INT
-PVRSRVFreeSharedSysMemoryBW(IMG_UINT32 ui32BridgeID,
-                            PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM *psFreeSharedSysMemIN,
-                            PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM *psFreeSharedSysMemOUT,
-                            PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_FREE_SHARED_SYS_MEM);
-
-    psFreeSharedSysMemOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           (IMG_VOID **)&psKernelMemInfo,
-#if defined (SUPPORT_SID_INTERFACE)
-                           psFreeSharedSysMemIN->hKernelMemInfo,
-#else
-                           psFreeSharedSysMemIN->psKernelMemInfo,
-#endif
-                           PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO);
-
-    if(psFreeSharedSysMemOUT->eError != PVRSRV_OK)
-        return 0;
-
-    psFreeSharedSysMemOUT->eError =
-        PVRSRVFreeSharedSysMemoryKM(psKernelMemInfo);
-    if(psFreeSharedSysMemOUT->eError != PVRSRV_OK)
-        return 0;
-#if defined (SUPPORT_SID_INTERFACE)
-    if (psFreeSharedSysMemIN->hMappingInfo != 0)
-    {
-        psFreeSharedSysMemOUT->eError =
-            PVRSRVReleaseHandle(psPerProc->psHandleBase,
-                                psFreeSharedSysMemIN->hMappingInfo,
-                                PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO);
-        if(psFreeSharedSysMemOUT->eError != PVRSRV_OK)
-        {
-            return 0;
-        }
-    }
-#endif
-
-    psFreeSharedSysMemOUT->eError =
-        PVRSRVReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-                            psFreeSharedSysMemIN->hKernelMemInfo,
-#else
-                            psFreeSharedSysMemIN->psKernelMemInfo,
-#endif
-                            PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO);
-    return 0;
-}
-
-static IMG_INT
-PVRSRVMapMemInfoMemBW(IMG_UINT32 ui32BridgeID,
-                      PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM *psMapMemInfoMemIN,
-                      PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM *psMapMemInfoMemOUT,
-                      PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
-    PVRSRV_HANDLE_TYPE eHandleType;
-#if defined (SUPPORT_SID_INTERFACE)
-    IMG_SID     hParent;
-#else
-    IMG_HANDLE  hParent;
-#endif
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MAP_MEMINFO_MEM);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psMapMemInfoMemOUT->eError, psPerProc, 2)
-
-    psMapMemInfoMemOUT->eError =
-        PVRSRVLookupHandleAnyType(psPerProc->psHandleBase,
-                           (IMG_VOID **)&psKernelMemInfo,
-                           &eHandleType,
-                           psMapMemInfoMemIN->hKernelMemInfo);
-    if(psMapMemInfoMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    switch (eHandleType)
-    {
-#if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-        case PVRSRV_HANDLE_TYPE_MEM_INFO:
-        case PVRSRV_HANDLE_TYPE_MEM_INFO_REF:
-        case PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO:
-#else
-        case PVRSRV_HANDLE_TYPE_NONE:
-#endif
-            break;
-        default:
-            psMapMemInfoMemOUT->eError = PVRSRV_ERROR_INVALID_HANDLE_TYPE;
-            return 0;
-    }
-
-    
-    psMapMemInfoMemOUT->eError =
-        PVRSRVGetParentHandle(psPerProc->psHandleBase,
-                    &hParent,
-                    psMapMemInfoMemIN->hKernelMemInfo,
-                    eHandleType);
-    if (psMapMemInfoMemOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-#if defined (SUPPORT_SID_INTERFACE)
-    if (hParent == 0)
-#else
-    if (hParent == IMG_NULL)
-#endif
-    {
-        hParent = psMapMemInfoMemIN->hKernelMemInfo;
-    }
-
-    OSMemSet(&psMapMemInfoMemOUT->sClientMemInfo,
-             0,
-             sizeof(psMapMemInfoMemOUT->sClientMemInfo));
-
-    psMapMemInfoMemOUT->sClientMemInfo.pvLinAddrKM =
-            psKernelMemInfo->pvLinAddrKM;
-
-    psMapMemInfoMemOUT->sClientMemInfo.pvLinAddr = 0;
-    psMapMemInfoMemOUT->sClientMemInfo.sDevVAddr =
-        psKernelMemInfo->sDevVAddr;
-    psMapMemInfoMemOUT->sClientMemInfo.ui32Flags =
-        psKernelMemInfo->ui32Flags;
-    psMapMemInfoMemOUT->sClientMemInfo.uAllocSize =
-        psKernelMemInfo->uAllocSize;
-#if defined (SUPPORT_SID_INTERFACE)
-    if (psKernelMemInfo->sMemBlk.hOSMemHandle != IMG_NULL)
-    {
-        PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                          &psMapMemInfoMemOUT->sClientMemInfo.hMappingInfo,
-                          psKernelMemInfo->sMemBlk.hOSMemHandle,
-                          PVRSRV_HANDLE_TYPE_MEM_INFO_REF,
-                          PVRSRV_HANDLE_ALLOC_FLAG_MULTI,
-                          hParent);
-    }
-    else
-    {
-        psMapMemInfoMemOUT->sClientMemInfo.hMappingInfo = 0;
-    }
-#else
-    psMapMemInfoMemOUT->sClientMemInfo.hMappingInfo = psKernelMemInfo->sMemBlk.hOSMemHandle;
-#endif
-
-    PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                      &psMapMemInfoMemOUT->sClientMemInfo.hKernelMemInfo,
-                      psKernelMemInfo,
-                      PVRSRV_HANDLE_TYPE_MEM_INFO_REF,
-                      PVRSRV_HANDLE_ALLOC_FLAG_MULTI,
-                      hParent);
-
-    if(psKernelMemInfo->ui32Flags & PVRSRV_MEM_NO_SYNCOBJ)
-    {
-        
-        OSMemSet(&psMapMemInfoMemOUT->sClientSyncInfo,
-                 0,
-                 sizeof (PVRSRV_CLIENT_SYNC_INFO));
-    }
-    else
-    {
-        
-#if !defined(PVRSRV_DISABLE_UM_SYNCOBJ_MAPPINGS)
-        psMapMemInfoMemOUT->sClientSyncInfo.psSyncData =
-            psKernelMemInfo->psKernelSyncInfo->psSyncData;
-        psMapMemInfoMemOUT->sClientSyncInfo.sWriteOpsCompleteDevVAddr =
-            psKernelMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr;
-        psMapMemInfoMemOUT->sClientSyncInfo.sReadOpsCompleteDevVAddr =
-            psKernelMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr;
-
-#if defined (SUPPORT_SID_INTERFACE)
-    if (psKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != IMG_NULL)
-    {
-        PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                             &psMapMemInfoMemOUT->sClientSyncInfo.hMappingInfo,
-                             psKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle,
-                             PVRSRV_HANDLE_TYPE_SYNC_INFO,
-                             PVRSRV_HANDLE_ALLOC_FLAG_MULTI,
-                             psMapMemInfoMemOUT->sClientMemInfo.hKernelMemInfo);
-    }
-    else
-    {
-        psMapMemInfoMemOUT->sClientSyncInfo.hMappingInfo = 0;
-    }
-#else
-        psMapMemInfoMemOUT->sClientSyncInfo.hMappingInfo =
-            psKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle;
-#endif
-#endif
-
-        psMapMemInfoMemOUT->sClientMemInfo.psClientSyncInfo = &psMapMemInfoMemOUT->sClientSyncInfo;
-
-        PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-                               &psMapMemInfoMemOUT->sClientSyncInfo.hKernelSyncInfo,
-                               psKernelMemInfo->psKernelSyncInfo,
-                               PVRSRV_HANDLE_TYPE_SYNC_INFO,
-                               PVRSRV_HANDLE_ALLOC_FLAG_MULTI,
-                               psMapMemInfoMemOUT->sClientMemInfo.hKernelMemInfo);
-    }
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psMapMemInfoMemOUT->eError, psPerProc)
-
-    return 0;
-}
-
-
-
-static IMG_INT
-MMU_GetPDDevPAddrBW(IMG_UINT32 ui32BridgeID,
-                    PVRSRV_BRIDGE_IN_GETMMU_PD_DEVPADDR *psGetMmuPDDevPAddrIN,
-                    PVRSRV_BRIDGE_OUT_GETMMU_PD_DEVPADDR *psGetMmuPDDevPAddrOUT,
-                    PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_HANDLE hDevMemContextInt;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GETMMU_PD_DEVPADDR);
-
-    psGetMmuPDDevPAddrOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemContextInt,
-                           psGetMmuPDDevPAddrIN->hDevMemContext,
-                           PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-    if(psGetMmuPDDevPAddrOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psGetMmuPDDevPAddrOUT->sPDDevPAddr =
-        BM_GetDeviceNode(hDevMemContextInt)->pfnMMUGetPDDevPAddr(BM_GetMMUContextFromMemContext(hDevMemContextInt));
-    if(psGetMmuPDDevPAddrOUT->sPDDevPAddr.uiAddr)
-    {
-        psGetMmuPDDevPAddrOUT->eError = PVRSRV_OK;
-    }
-    else
-    {
-        psGetMmuPDDevPAddrOUT->eError = PVRSRV_ERROR_INVALID_PHYS_ADDR;
-    }
-    return 0;
-}
-
-
-
-IMG_INT
-DummyBW(IMG_UINT32 ui32BridgeID,
-        IMG_VOID *psBridgeIn,
-        IMG_VOID *psBridgeOut,
-        PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-#if !defined(DEBUG)
-    PVR_UNREFERENCED_PARAMETER(ui32BridgeID);
-#endif
-    PVR_UNREFERENCED_PARAMETER(psBridgeIn);
-    PVR_UNREFERENCED_PARAMETER(psBridgeOut);
-    PVR_UNREFERENCED_PARAMETER(psPerProc);
-
-#if defined(DEBUG_BRIDGE_KM)
-    PVR_DPF((PVR_DBG_ERROR, "%s: BRIDGE ERROR: BridgeID %u (%s) mapped to "
-             "Dummy Wrapper (probably not what you want!)",
-             __FUNCTION__, ui32BridgeID, g_BridgeDispatchTable[ui32BridgeID].pszIOCName));
-#else
-    PVR_DPF((PVR_DBG_ERROR, "%s: BRIDGE ERROR: BridgeID %u mapped to "
-             "Dummy Wrapper (probably not what you want!)",
-             __FUNCTION__, ui32BridgeID));
-#endif
-    return -ENOTTY;
-}
-
-
-IMG_VOID
-_SetDispatchTableEntry(IMG_UINT32 ui32Index,
-                       const IMG_CHAR *pszIOCName,
-                       BridgeWrapperFunction pfFunction,
-                       const IMG_CHAR *pszFunctionName,
-		       size_t in_size, size_t out_size)
-{
-    static IMG_UINT32 ui32PrevIndex = ~0UL;     
-#if !defined(DEBUG)
-    PVR_UNREFERENCED_PARAMETER(pszIOCName);
-#endif
-#if !defined(DEBUG_BRIDGE_KM_DISPATCH_TABLE) && !defined(DEBUG_BRIDGE_KM)
-    PVR_UNREFERENCED_PARAMETER(pszFunctionName);
-#endif
-
-#if defined(DEBUG_BRIDGE_KM_DISPATCH_TABLE)
-    
-    PVR_DPF((PVR_DBG_WARNING, "%s: %d %s %s", __FUNCTION__, ui32Index, pszIOCName, pszFunctionName));
-#endif
-
-    
-    if(g_BridgeDispatchTable[ui32Index].pfFunction)
-    {
-#if defined(DEBUG_BRIDGE_KM)
-        PVR_DPF((PVR_DBG_ERROR,
-                 "%s: BUG!: Adding dispatch table entry for %s clobbers an existing entry for %s",
-                 __FUNCTION__, pszIOCName, g_BridgeDispatchTable[ui32Index].pszIOCName));
-#else
-        PVR_DPF((PVR_DBG_ERROR,
-                 "%s: BUG!: Adding dispatch table entry for %s clobbers an existing entry (index=%u)",
-                 __FUNCTION__, pszIOCName, ui32Index));
-#endif
-        PVR_DPF((PVR_DBG_ERROR, "NOTE: Enabling DEBUG_BRIDGE_KM_DISPATCH_TABLE may help debug this issue."));
-    }
-
-    
-    if((ui32PrevIndex != ~0UL) &&
-       ((ui32Index >= ui32PrevIndex + DISPATCH_TABLE_GAP_THRESHOLD) ||
-        (ui32Index <= ui32PrevIndex)))
-    {
-#if defined(DEBUG_BRIDGE_KM)
-        PVR_DPF((PVR_DBG_WARNING,
-                 "%s: There is a gap in the dispatch table between indices %u (%s) and %u (%s)",
-                 __FUNCTION__, ui32PrevIndex, g_BridgeDispatchTable[ui32PrevIndex].pszIOCName,
-                 ui32Index, pszIOCName));
-#else
-        PVR_DPF((PVR_DBG_WARNING,
-                 "%s: There is a gap in the dispatch table between indices %u and %u (%s)",
-                 __FUNCTION__, (IMG_UINT)ui32PrevIndex, (IMG_UINT)ui32Index, pszIOCName));
-#endif
-        PVR_DPF((PVR_DBG_ERROR, "NOTE: Enabling DEBUG_BRIDGE_KM_DISPATCH_TABLE may help debug this issue."));
-    }
-
-    g_BridgeDispatchTable[ui32Index].pfFunction = pfFunction;
-    g_BridgeDispatchTable[ui32Index].in_size = in_size;
-    g_BridgeDispatchTable[ui32Index].out_size = out_size;
-#if defined(DEBUG_BRIDGE_KM)
-    g_BridgeDispatchTable[ui32Index].pszIOCName = pszIOCName;
-    g_BridgeDispatchTable[ui32Index].pszFunctionName = pszFunctionName;
-    g_BridgeDispatchTable[ui32Index].ui32CallCount = 0;
-    g_BridgeDispatchTable[ui32Index].ui32CopyFromUserTotalBytes = 0;
-#endif
-
-    ui32PrevIndex = ui32Index;
-}
-
-static IMG_INT
-PVRSRVInitSrvConnectBW(IMG_UINT32 ui32BridgeID,
-                       IMG_VOID *psBridgeIn,
-                       PVRSRV_BRIDGE_RETURN *psRetOUT,
-                       PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVR_UNREFERENCED_PARAMETER(psBridgeIn);
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_INITSRV_CONNECT);
-    PVR_UNREFERENCED_PARAMETER(psBridgeIn);
-
-     
-    if((OSProcHasPrivSrvInit() == IMG_FALSE) || PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_RUNNING) || PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_RAN))
-    {
-        psRetOUT->eError = PVRSRV_ERROR_SRV_CONNECT_FAILED;
-        return 0;
-    }
-
-#if defined (__linux__) || defined(__QNXNTO__)
-    PVRSRVSetInitServerState(PVRSRV_INIT_SERVER_RUNNING, IMG_TRUE);
-#endif
-    psPerProc->bInitProcess = IMG_TRUE;
-
-    psRetOUT->eError = PVRSRV_OK;
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVInitSrvDisconnectBW(IMG_UINT32 ui32BridgeID,
-                          PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT *psInitSrvDisconnectIN,
-                          PVRSRV_BRIDGE_RETURN *psRetOUT,
-                          PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_INITSRV_DISCONNECT);
-
-    if(!psPerProc->bInitProcess)
-    {
-        psRetOUT->eError = PVRSRV_ERROR_SRV_DISCONNECT_FAILED;
-        return 0;
-    }
-
-    psPerProc->bInitProcess = IMG_FALSE;
-
-    PVRSRVSetInitServerState(PVRSRV_INIT_SERVER_RUNNING, IMG_FALSE);
-    PVRSRVSetInitServerState(PVRSRV_INIT_SERVER_RAN, IMG_TRUE);
-
-    psRetOUT->eError = PVRSRVFinaliseSystem(psInitSrvDisconnectIN->bInitSuccesful);
-
-    PVRSRVSetInitServerState( PVRSRV_INIT_SERVER_SUCCESSFUL ,
-                ((psRetOUT->eError == PVRSRV_OK) && (psInitSrvDisconnectIN->bInitSuccesful))
-                ? IMG_TRUE : IMG_FALSE);
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVEventObjectWaitBW(IMG_UINT32 ui32BridgeID,
-                          PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAIT *psEventObjectWaitIN,
-                          PVRSRV_BRIDGE_RETURN *psRetOUT,
-                          PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_HANDLE hOSEventKM;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_EVENT_OBJECT_WAIT);
-
-    psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-                           &hOSEventKM,
-                           psEventObjectWaitIN->hOSEventKM,
-                           PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError = OSEventObjectWaitKM(hOSEventKM);
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVEventObjectOpenBW(IMG_UINT32 ui32BridgeID,
-                          PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN *psEventObjectOpenIN,
-                          PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN *psEventObjectOpenOUT,
-                          PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-#if defined (SUPPORT_SID_INTERFACE)
-    PVRSRV_EVENTOBJECT_KM sEventObject;
-    IMG_HANDLE hOSEvent;
-#endif
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_EVENT_OBJECT_OPEN);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psEventObjectOpenOUT->eError, psPerProc, 1)
-
-    psEventObjectOpenOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-                           &sEventObject.hOSEventKM,
-#else
-                           &psEventObjectOpenIN->sEventObject.hOSEventKM,
-#endif
-                           psEventObjectOpenIN->sEventObject.hOSEventKM,
-                           PVRSRV_HANDLE_TYPE_SHARED_EVENT_OBJECT);
-
-    if(psEventObjectOpenOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-#if defined (SUPPORT_SID_INTERFACE)
-    OSMemCopy(&sEventObject.szName,
-                           &psEventObjectOpenIN->sEventObject.szName,
-              EVENTOBJNAME_MAXLENGTH);
-
-    psEventObjectOpenOUT->eError = OSEventObjectOpenKM(&sEventObject, &hOSEvent);
-#else
-    psEventObjectOpenOUT->eError = OSEventObjectOpenKM(&psEventObjectOpenIN->sEventObject, &psEventObjectOpenOUT->hOSEvent);
-#endif
-
-    if(psEventObjectOpenOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-#if defined (SUPPORT_SID_INTERFACE)
-    PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-                      &psEventObjectOpenOUT->hOSEvent,
-                      hOSEvent,
-                      PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT,
-                      PVRSRV_HANDLE_ALLOC_FLAG_MULTI);
-#else
-    PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-                      &psEventObjectOpenOUT->hOSEvent,
-                      psEventObjectOpenOUT->hOSEvent,
-                      PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT,
-                      PVRSRV_HANDLE_ALLOC_FLAG_MULTI);
-#endif
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psEventObjectOpenOUT->eError, psPerProc)
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVEventObjectCloseBW(IMG_UINT32 ui32BridgeID,
-                          PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE *psEventObjectCloseIN,
-                          PVRSRV_BRIDGE_RETURN *psRetOUT,
-                          PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-    IMG_HANDLE hOSEventKM;
-#if defined (SUPPORT_SID_INTERFACE)
-    PVRSRV_EVENTOBJECT_KM sEventObject;
-#endif
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_EVENT_OBJECT_CLOSE);
-
-    psRetOUT->eError =
-        PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-                           &sEventObject.hOSEventKM,
-#else
-                           &psEventObjectCloseIN->sEventObject.hOSEventKM,
-#endif
-                           psEventObjectCloseIN->sEventObject.hOSEventKM,
-                           PVRSRV_HANDLE_TYPE_SHARED_EVENT_OBJECT);
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psRetOUT->eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-                           &hOSEventKM,
-                           psEventObjectCloseIN->hOSEventKM,
-                           PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT);
-
-    if(psRetOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-#if defined (SUPPORT_SID_INTERFACE)
-    if(CopyFromUserWrapper(psPerProc, ui32BridgeID,
-                           &sEventObject.szName,
-                           &psEventObjectCloseIN->sEventObject.szName,
-                           EVENTOBJNAME_MAXLENGTH) != PVRSRV_OK)
-    {
-        
-        return -EFAULT;
-    }
-
-    psRetOUT->eError = OSEventObjectCloseKM(&sEventObject, hOSEventKM);
-#else
-    psRetOUT->eError = OSEventObjectCloseKM(&psEventObjectCloseIN->sEventObject, hOSEventKM);
-#endif
-
-    return 0;
-}
-
-
-typedef struct _MODIFY_SYNC_OP_INFO
-{
-    IMG_HANDLE  hResItem;
-    PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
-    IMG_UINT32  ui32ModifyFlags;
-    IMG_UINT32  ui32ReadOpsPendingSnapShot;
-    IMG_UINT32  ui32WriteOpsPendingSnapShot;
-} MODIFY_SYNC_OP_INFO;
-
-
-static PVRSRV_ERROR DoQuerySyncOpsSatisfied(PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo,
-                                            IMG_UINT32 ui32ReadOpsPendingSnapShot,
-                                            IMG_UINT32 ui32WriteOpsPendingSnapShot)
-{
-    IMG_UINT32 ui32WriteOpsPending;
-    IMG_UINT32 ui32ReadOpsPending;
-
-    
-    if (!psKernelSyncInfo)
-    {
-        return PVRSRV_ERROR_INVALID_PARAMS;
-    }
-
-    
-
-
-
-
-
-
-
-
-
-    ui32WriteOpsPending = psKernelSyncInfo->psSyncData->ui32WriteOpsPending;
-    ui32ReadOpsPending = psKernelSyncInfo->psSyncData->ui32ReadOpsPending;
-
-    if((ui32WriteOpsPending - ui32WriteOpsPendingSnapShot >=
-        ui32WriteOpsPending - psKernelSyncInfo->psSyncData->ui32WriteOpsComplete) &&
-       (ui32ReadOpsPending - ui32ReadOpsPendingSnapShot >=
-        ui32ReadOpsPending - psKernelSyncInfo->psSyncData->ui32ReadOpsComplete))
-    {
-#if defined(PDUMP) && !defined(SUPPORT_VGX)
-        
-        PDumpComment("Poll for read ops complete to reach value (pdump: %u, actual snapshot: %u)",
-                     psKernelSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-                     ui32ReadOpsPendingSnapShot);
-        PDumpMemPolKM(psKernelSyncInfo->psSyncDataMemInfoKM,
-                          offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete),
-                      psKernelSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-                          0xFFFFFFFF,
-                      PDUMP_POLL_OPERATOR_EQUAL, 
-                          0,
-                          MAKEUNIQUETAG(psKernelSyncInfo->psSyncDataMemInfoKM));
-
-        
-        PDumpComment("Poll for write ops complete to reach value (pdump: %u, actual snapshot: %u)",
-                     psKernelSyncInfo->psSyncData->ui32LastOpDumpVal,
-                     ui32WriteOpsPendingSnapShot);
-        PDumpMemPolKM(psKernelSyncInfo->psSyncDataMemInfoKM,
-                          offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete),
-                      psKernelSyncInfo->psSyncData->ui32LastOpDumpVal,
-                          0xFFFFFFFF,
-                      PDUMP_POLL_OPERATOR_EQUAL, 
-                          0,
-                          MAKEUNIQUETAG(psKernelSyncInfo->psSyncDataMemInfoKM));
-        
-
-#endif
-        return PVRSRV_OK;
-    }
-    else
-    {
-        return PVRSRV_ERROR_RETRY;
-    }
-}
-
-
-static PVRSRV_ERROR DoModifyCompleteSyncOps(MODIFY_SYNC_OP_INFO *psModSyncOpInfo)
-{
-    PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
-
-    psKernelSyncInfo = psModSyncOpInfo->psKernelSyncInfo;
-
-    if (!psKernelSyncInfo)
-    {
-        return PVRSRV_ERROR_INVALID_PARAMS;
-    }
-
-    
-    if((psModSyncOpInfo->ui32WriteOpsPendingSnapShot != psKernelSyncInfo->psSyncData->ui32WriteOpsComplete)
-       || (psModSyncOpInfo->ui32ReadOpsPendingSnapShot != psKernelSyncInfo->psSyncData->ui32ReadOpsComplete))
-    {
-        return PVRSRV_ERROR_BAD_SYNC_STATE;
-    }
-
-    
-    if(psModSyncOpInfo->ui32ModifyFlags & PVRSRV_MODIFYSYNCOPS_FLAGS_WO_INC)
-    {
-        psKernelSyncInfo->psSyncData->ui32WriteOpsComplete++;
-    }
-
-    
-    if(psModSyncOpInfo->ui32ModifyFlags & PVRSRV_MODIFYSYNCOPS_FLAGS_RO_INC)
-    {
-        psKernelSyncInfo->psSyncData->ui32ReadOpsComplete++;
-    }
-
-    return PVRSRV_OK;
-}
-
-
-static PVRSRV_ERROR ModifyCompleteSyncOpsCallBack(IMG_PVOID     pvParam,
-                                                    IMG_UINT32  ui32Param,
-                                                    IMG_BOOL    bDummy)
-{
-    MODIFY_SYNC_OP_INFO     *psModSyncOpInfo;
-
-    PVR_UNREFERENCED_PARAMETER(ui32Param);
-    PVR_UNREFERENCED_PARAMETER(bDummy);
-
-    if (!pvParam)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "ModifyCompleteSyncOpsCallBack: invalid parameter"));
-        return PVRSRV_ERROR_INVALID_PARAMS;
-    }
-
-    psModSyncOpInfo = (MODIFY_SYNC_OP_INFO*)pvParam;
-
-    if (psModSyncOpInfo->psKernelSyncInfo)
-    {
-        
-        LOOP_UNTIL_TIMEOUT(MAX_HW_TIME_US)
-        {
-            if (DoQuerySyncOpsSatisfied(psModSyncOpInfo->psKernelSyncInfo,
-                                        psModSyncOpInfo->ui32ReadOpsPendingSnapShot,
-                                        psModSyncOpInfo->ui32WriteOpsPendingSnapShot) == PVRSRV_OK)
-            {
-                goto OpFlushedComplete;
-            }
-            PVR_DPF((PVR_DBG_WARNING, "ModifyCompleteSyncOpsCallBack: waiting for current Ops to flush"));
-            OSSleepms(1);
-        } END_LOOP_UNTIL_TIMEOUT();
-
-        PVR_DPF((PVR_DBG_ERROR, "ModifyCompleteSyncOpsCallBack: timeout whilst waiting for current Ops to flush."));
-        PVR_DPF((PVR_DBG_ERROR, "  Write ops pending snapshot = %d, write ops complete = %d",
-                 psModSyncOpInfo->ui32WriteOpsPendingSnapShot,
-                 psModSyncOpInfo->psKernelSyncInfo->psSyncData->ui32WriteOpsComplete));
-        PVR_DPF((PVR_DBG_ERROR, "  Read ops pending snapshot = %d, write ops complete = %d",
-                 psModSyncOpInfo->ui32ReadOpsPendingSnapShot,
-                 psModSyncOpInfo->psKernelSyncInfo->psSyncData->ui32ReadOpsComplete));
-
-        return PVRSRV_ERROR_TIMEOUT;
-
-    OpFlushedComplete:
-
-        DoModifyCompleteSyncOps(psModSyncOpInfo);
-    }
-
-    OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,  sizeof(MODIFY_SYNC_OP_INFO), (IMG_VOID *)psModSyncOpInfo, 0);
-    
-
-    
-    PVRSRVScheduleDeviceCallbacks();
-
-    return PVRSRV_OK;
-}
-
-
-static IMG_INT
-PVRSRVCreateSyncInfoModObjBW(IMG_UINT32                                         ui32BridgeID,
-                                     IMG_VOID                                           *psBridgeIn,
-                                     PVRSRV_BRIDGE_OUT_CREATE_SYNC_INFO_MOD_OBJ  *psCreateSyncInfoModObjOUT,
-                                     PVRSRV_PER_PROCESS_DATA                            *psPerProc)
-{
-    MODIFY_SYNC_OP_INFO     *psModSyncOpInfo;
-
-    PVR_UNREFERENCED_PARAMETER(psBridgeIn);
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CREATE_SYNC_INFO_MOD_OBJ);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psCreateSyncInfoModObjOUT->eError, psPerProc, 1)
-
-    ASSIGN_AND_EXIT_ON_ERROR(psCreateSyncInfoModObjOUT->eError,
-              OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-              sizeof(MODIFY_SYNC_OP_INFO),
-              (IMG_VOID **)&psModSyncOpInfo, 0,
-              "ModSyncOpInfo (MODIFY_SYNC_OP_INFO)"));
-
-    psModSyncOpInfo->psKernelSyncInfo = IMG_NULL; 
-
-    psCreateSyncInfoModObjOUT->eError = PVRSRVAllocHandle(psPerProc->psHandleBase,
-                                                                  &psCreateSyncInfoModObjOUT->hKernelSyncInfoModObj,
-                                                                  psModSyncOpInfo,
-                                                                  PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ,
-                                                                  PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE);
-
-    if (psCreateSyncInfoModObjOUT->eError != PVRSRV_OK)
-    {
-        return 0;
-    }
-
-    psModSyncOpInfo->hResItem = ResManRegisterRes(psPerProc->hResManContext,
-                                                  RESMAN_TYPE_MODIFY_SYNC_OPS,
-                                                  psModSyncOpInfo,
-                                                  0,
-                                                  &ModifyCompleteSyncOpsCallBack);
-
-    COMMIT_HANDLE_BATCH_OR_ERROR(psCreateSyncInfoModObjOUT->eError, psPerProc)
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVDestroySyncInfoModObjBW(IMG_UINT32                                          ui32BridgeID,
-                              PVRSRV_BRIDGE_IN_DESTROY_SYNC_INFO_MOD_OBJ          *psDestroySyncInfoModObjIN,
-                              PVRSRV_BRIDGE_RETURN                                *psDestroySyncInfoModObjOUT,
-                              PVRSRV_PER_PROCESS_DATA                             *psPerProc)
-{
-    MODIFY_SYNC_OP_INFO     *psModSyncOpInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_DESTROY_SYNC_INFO_MOD_OBJ);
-
-    psDestroySyncInfoModObjOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-                                                                    (IMG_VOID**)&psModSyncOpInfo,
-                                                                    psDestroySyncInfoModObjIN->hKernelSyncInfoModObj,
-                                                                    PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ);
-    if (psDestroySyncInfoModObjOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVDestroySyncInfoModObjBW: PVRSRVLookupHandle failed"));
-        return 0;
-    }
-
-    if(psModSyncOpInfo->psKernelSyncInfo != IMG_NULL)
-    {
-        
-        psDestroySyncInfoModObjOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-        return 0;
-    }
-
-    psDestroySyncInfoModObjOUT->eError = PVRSRVReleaseHandle(psPerProc->psHandleBase,
-                                                                     psDestroySyncInfoModObjIN->hKernelSyncInfoModObj,
-                                                                     PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ);
-
-    if (psDestroySyncInfoModObjOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVDestroySyncInfoModObjBW: PVRSRVReleaseHandle failed"));
-        return 0;
-    }
-
-    psDestroySyncInfoModObjOUT->eError = ResManFreeResByPtr(psModSyncOpInfo->hResItem, CLEANUP_WITH_POLL);
-    if (psDestroySyncInfoModObjOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVDestroySyncInfoModObjBW: ResManFreeResByPtr failed"));
-        return 0;
-    }
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVModifyPendingSyncOpsBW(IMG_UINT32                                 ui32BridgeID,
-                              PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS  *psModifySyncOpsIN,
-                              PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS *psModifySyncOpsOUT,
-                              PVRSRV_PER_PROCESS_DATA                   *psPerProc)
-{
-    PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
-    MODIFY_SYNC_OP_INFO     *psModSyncOpInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MODIFY_PENDING_SYNC_OPS);
-
-    psModifySyncOpsOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-                                                    (IMG_VOID**)&psModSyncOpInfo,
-                                                    psModifySyncOpsIN->hKernelSyncInfoModObj,
-                                                    PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ);
-    if (psModifySyncOpsOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyPendingSyncOpsBW: PVRSRVLookupHandle failed"));
-        return 0;
-    }
-
-    psModifySyncOpsOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-                                                    (IMG_VOID**)&psKernelSyncInfo,
-                                                    psModifySyncOpsIN->hKernelSyncInfo,
-                                                    PVRSRV_HANDLE_TYPE_SYNC_INFO);
-    if (psModifySyncOpsOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyPendingSyncOpsBW: PVRSRVLookupHandle failed"));
-        return 0;
-    }
-
-    if(psModSyncOpInfo->psKernelSyncInfo)
-    {
-        
-        psModifySyncOpsOUT->eError = PVRSRV_ERROR_RETRY;
-        PVR_DPF((PVR_DBG_VERBOSE, "PVRSRVModifyPendingSyncOpsBW: SyncInfo Modification object is not empty"));
-        return 0;
-    }
-
-    
-    psModSyncOpInfo->psKernelSyncInfo = psKernelSyncInfo;
-    psModSyncOpInfo->ui32ModifyFlags = psModifySyncOpsIN->ui32ModifyFlags;
-    psModSyncOpInfo->ui32ReadOpsPendingSnapShot = psKernelSyncInfo->psSyncData->ui32ReadOpsPending;
-    psModSyncOpInfo->ui32WriteOpsPendingSnapShot = psKernelSyncInfo->psSyncData->ui32WriteOpsPending;
-
-    
-
-    psModifySyncOpsOUT->ui32ReadOpsPending = psKernelSyncInfo->psSyncData->ui32ReadOpsPending;
-    psModifySyncOpsOUT->ui32WriteOpsPending = psKernelSyncInfo->psSyncData->ui32WriteOpsPending;
-
-    if(psModifySyncOpsIN->ui32ModifyFlags & PVRSRV_MODIFYSYNCOPS_FLAGS_WO_INC)
-    {
-        psKernelSyncInfo->psSyncData->ui32WriteOpsPending++;
-    }
-
-    if(psModifySyncOpsIN->ui32ModifyFlags & PVRSRV_MODIFYSYNCOPS_FLAGS_RO_INC)
-    {
-        psKernelSyncInfo->psSyncData->ui32ReadOpsPending++;
-    }
-
-    
-    psModifySyncOpsOUT->eError = ResManDissociateRes(psModSyncOpInfo->hResItem,
-                                                     psPerProc->hResManContext);
-
-    if (psModifySyncOpsOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyPendingSyncOpsBW: PVRSRVLookupHandle failed"));
-        return 0;
-    }
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVModifyCompleteSyncOpsBW(IMG_UINT32                            ui32BridgeID,
-                      PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS     *psModifySyncOpsIN,
-                      PVRSRV_BRIDGE_RETURN                          *psModifySyncOpsOUT,
-                      PVRSRV_PER_PROCESS_DATA                       *psPerProc)
-{
-    MODIFY_SYNC_OP_INFO     *psModSyncOpInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MODIFY_COMPLETE_SYNC_OPS);
-
-    psModifySyncOpsOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-                                                    (IMG_VOID**)&psModSyncOpInfo,
-                                                    psModifySyncOpsIN->hKernelSyncInfoModObj,
-                                                    PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ);
-    if (psModifySyncOpsOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyCompleteSyncOpsBW: PVRSRVLookupHandle failed"));
-        return 0;
-    }
-
-    if(psModSyncOpInfo->psKernelSyncInfo == IMG_NULL)
-    {
-        
-        psModifySyncOpsOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-        return 0;
-    }
-
-    psModifySyncOpsOUT->eError = DoModifyCompleteSyncOps(psModSyncOpInfo);
-
-    if (psModifySyncOpsOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyCompleteSyncOpsBW: DoModifyCompleteSyncOps failed"));
-        return 0;
-    }
-
-    psModSyncOpInfo->psKernelSyncInfo = IMG_NULL;
-
-    
-    PVRSRVScheduleDeviceCallbacks();
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVSyncOpsTakeTokenBW(IMG_UINT32                                 ui32BridgeID,
-                         PVRSRV_BRIDGE_IN_SYNC_OPS_TAKE_TOKEN       *psSyncOpsTakeTokenIN,
-                         PVRSRV_BRIDGE_OUT_SYNC_OPS_TAKE_TOKEN      *psSyncOpsTakeTokenOUT,
-                         PVRSRV_PER_PROCESS_DATA                    *psPerProc)
-{
-    PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SYNC_OPS_TAKE_TOKEN);
-
-    psSyncOpsTakeTokenOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-                                                       (IMG_VOID**)&psKernelSyncInfo,
-                                                       psSyncOpsTakeTokenIN->hKernelSyncInfo,
-                                                       PVRSRV_HANDLE_TYPE_SYNC_INFO);
-    if (psSyncOpsTakeTokenOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsTakeTokenBW: PVRSRVLookupHandle failed"));
-        return 0;
-    }
-
-    
-
-    psSyncOpsTakeTokenOUT->ui32ReadOpsPending = psKernelSyncInfo->psSyncData->ui32ReadOpsPending;
-    psSyncOpsTakeTokenOUT->ui32WriteOpsPending = psKernelSyncInfo->psSyncData->ui32WriteOpsPending;
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVSyncOpsFlushToTokenBW(IMG_UINT32                                         ui32BridgeID,
-                            PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_TOKEN           *psSyncOpsFlushToTokenIN,
-                            PVRSRV_BRIDGE_RETURN                               *psSyncOpsFlushToTokenOUT,
-                            PVRSRV_PER_PROCESS_DATA                            *psPerProc)
-{
-    PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
-    IMG_UINT32 ui32ReadOpsPendingSnapshot;
-    IMG_UINT32 ui32WriteOpsPendingSnapshot;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_TOKEN);
-
-    psSyncOpsFlushToTokenOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-                                                          (IMG_VOID**)&psKernelSyncInfo,
-                                                          psSyncOpsFlushToTokenIN->hKernelSyncInfo,
-                                                          PVRSRV_HANDLE_TYPE_SYNC_INFO);
-    if (psSyncOpsFlushToTokenOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToTokenBW: PVRSRVLookupHandle failed"));
-        return 0;
-    }
-
-    ui32ReadOpsPendingSnapshot = psSyncOpsFlushToTokenIN->ui32ReadOpsPendingSnapshot;
-    ui32WriteOpsPendingSnapshot = psSyncOpsFlushToTokenIN->ui32WriteOpsPendingSnapshot;
-
-    psSyncOpsFlushToTokenOUT->eError = DoQuerySyncOpsSatisfied(psKernelSyncInfo,
-                                                               ui32ReadOpsPendingSnapshot,
-                                                               ui32WriteOpsPendingSnapshot);
-
-    if (psSyncOpsFlushToTokenOUT->eError != PVRSRV_OK && psSyncOpsFlushToTokenOUT->eError != PVRSRV_ERROR_RETRY)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToTokenBW: DoQuerySyncOpsSatisfied failed"));
-        return 0;
-    }
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVSyncOpsFlushToModObjBW(IMG_UINT32                                         ui32BridgeID,
-                             PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_MOD_OBJ         *psSyncOpsFlushToModObjIN,
-                             PVRSRV_BRIDGE_RETURN                               *psSyncOpsFlushToModObjOUT,
-                             PVRSRV_PER_PROCESS_DATA                            *psPerProc)
-{
-    MODIFY_SYNC_OP_INFO     *psModSyncOpInfo;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_MOD_OBJ);
-
-    psSyncOpsFlushToModObjOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-                                                           (IMG_VOID**)&psModSyncOpInfo,
-                                                           psSyncOpsFlushToModObjIN->hKernelSyncInfoModObj,
-                                                           PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ);
-    if (psSyncOpsFlushToModObjOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToModObjBW: PVRSRVLookupHandle failed"));
-        return 0;
-    }
-
-    if(psModSyncOpInfo->psKernelSyncInfo == IMG_NULL)
-    {
-        
-        psSyncOpsFlushToModObjOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-        return 0;
-    }
-
-    psSyncOpsFlushToModObjOUT->eError = DoQuerySyncOpsSatisfied(psModSyncOpInfo->psKernelSyncInfo,
-                                                                psModSyncOpInfo->ui32ReadOpsPendingSnapShot,
-                                                                psModSyncOpInfo->ui32WriteOpsPendingSnapShot);
-
-    if (psSyncOpsFlushToModObjOUT->eError != PVRSRV_OK && psSyncOpsFlushToModObjOUT->eError != PVRSRV_ERROR_RETRY)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToModObjBW: DoQuerySyncOpsSatisfied failed"));
-        return 0;
-    }
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVSyncOpsFlushToDeltaBW(IMG_UINT32                                         ui32BridgeID,
-                            PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_DELTA           *psSyncOpsFlushToDeltaIN,
-                            PVRSRV_BRIDGE_RETURN                               *psSyncOpsFlushToDeltaOUT,
-                            PVRSRV_PER_PROCESS_DATA                            *psPerProc)
-{
-    PVRSRV_KERNEL_SYNC_INFO     *psSyncInfo;
-    IMG_UINT32 ui32DeltaRead;
-    IMG_UINT32 ui32DeltaWrite;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_DELTA);
-
-    psSyncOpsFlushToDeltaOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-                                                          (IMG_VOID**)&psSyncInfo,
-                                                          psSyncOpsFlushToDeltaIN->hKernelSyncInfo,
-                                                          PVRSRV_HANDLE_TYPE_SYNC_INFO);
-    if (psSyncOpsFlushToDeltaOUT->eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToDeltaBW: PVRSRVLookupHandle failed"));
-        return 0;
-    }
-
-    
-    ui32DeltaRead = psSyncInfo->psSyncData->ui32ReadOpsPending - psSyncInfo->psSyncData->ui32ReadOpsComplete;
-    ui32DeltaWrite = psSyncInfo->psSyncData->ui32WriteOpsPending - psSyncInfo->psSyncData->ui32WriteOpsComplete;
-
-    if (ui32DeltaRead <= psSyncOpsFlushToDeltaIN->ui32Delta && ui32DeltaWrite <= psSyncOpsFlushToDeltaIN->ui32Delta)
-    {
-#if defined(PDUMP) && !defined(SUPPORT_VGX)
-        
-        PDumpComment("Poll for read ops complete to delta (%u)",
-                     psSyncOpsFlushToDeltaIN->ui32Delta);
-        psSyncOpsFlushToDeltaOUT->eError =
-            PDumpMemPolKM(psSyncInfo->psSyncDataMemInfoKM,
-                          offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete),
-                          psSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-                          0xFFFFFFFF,
-                          PDUMP_POLL_OPERATOR_GREATEREQUAL,
-                          0,
-                          MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM));
-
-        
-        PDumpComment("Poll for write ops complete to delta (%u)",
-                     psSyncOpsFlushToDeltaIN->ui32Delta);
-        psSyncOpsFlushToDeltaOUT->eError =
-            PDumpMemPolKM(psSyncInfo->psSyncDataMemInfoKM,
-                          offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete),
-                          psSyncInfo->psSyncData->ui32LastOpDumpVal,
-                          0xFFFFFFFF,
-                          PDUMP_POLL_OPERATOR_GREATEREQUAL,
-                          0,
-                          MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM));
-#endif
-
-        psSyncOpsFlushToDeltaOUT->eError = PVRSRV_OK;
-    }
-    else
-    {
-        psSyncOpsFlushToDeltaOUT->eError = PVRSRV_ERROR_RETRY;
-    }
-
-    return 0;
-}
-
-
-static PVRSRV_ERROR
-FreeSyncInfoCallback(IMG_PVOID  pvParam,
-                     IMG_UINT32 ui32Param,
-                     IMG_BOOL	bDummy)
-{
-    PVRSRV_KERNEL_SYNC_INFO *psSyncInfo;
-    PVRSRV_ERROR eError;
-
-    PVR_UNREFERENCED_PARAMETER(ui32Param);
-    PVR_UNREFERENCED_PARAMETER(bDummy);
-
-    psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)pvParam;
-
-    eError = PVRSRVFreeSyncInfoKM(psSyncInfo);
-    if (eError != PVRSRV_OK)
-    {
-        return eError;
-    }
-
-    return PVRSRV_OK;
-}
-
-
-static IMG_INT
-PVRSRVAllocSyncInfoBW(IMG_UINT32                                         ui32BridgeID,
-                      PVRSRV_BRIDGE_IN_ALLOC_SYNC_INFO                  *psAllocSyncInfoIN,
-                      PVRSRV_BRIDGE_OUT_ALLOC_SYNC_INFO                 *psAllocSyncInfoOUT,
-                      PVRSRV_PER_PROCESS_DATA                           *psPerProc)
-{
-    PVRSRV_KERNEL_SYNC_INFO     *psSyncInfo;
-    PVRSRV_ERROR eError;
-    PVRSRV_DEVICE_NODE *psDeviceNode;
-    IMG_HANDLE hDevMemContext;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ALLOC_SYNC_INFO);
-
-    NEW_HANDLE_BATCH_OR_ERROR(psAllocSyncInfoOUT->eError, psPerProc, 1)
-
-    eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-                                (IMG_HANDLE *)&psDeviceNode,
-                                psAllocSyncInfoIN->hDevCookie,
-                                PVRSRV_HANDLE_TYPE_DEV_NODE);
-    if(eError != PVRSRV_OK)
-    {
-        goto allocsyncinfo_errorexit;
-    }
-
-    hDevMemContext = psDeviceNode->sDevMemoryInfo.pBMKernelContext;
-
-    eError = PVRSRVAllocSyncInfoKM(psDeviceNode,
-                                   hDevMemContext,
-                                   &psSyncInfo);
-
-    if (eError != PVRSRV_OK)
-    {
-        goto allocsyncinfo_errorexit;
-    }
-
-    eError = PVRSRVAllocHandle(psPerProc->psHandleBase,
-                               &psAllocSyncInfoOUT->hKernelSyncInfo,
-                               psSyncInfo,
-                               PVRSRV_HANDLE_TYPE_SYNC_INFO,
-                               PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE);
-
-    if(eError != PVRSRV_OK)
-    {
-        goto allocsyncinfo_errorexit_freesyncinfo;
-    }
-
-    psSyncInfo->hResItem = ResManRegisterRes(psPerProc->hResManContext,
-                                               RESMAN_TYPE_SYNC_INFO,
-                                               psSyncInfo,
-                                               0,
-                                               FreeSyncInfoCallback);
-
-    
-    goto allocsyncinfo_commit;
-
-    
- allocsyncinfo_errorexit_freesyncinfo:
-    PVRSRVFreeSyncInfoKM(psSyncInfo);
-
- allocsyncinfo_errorexit:
-
-    
- allocsyncinfo_commit:
-    psAllocSyncInfoOUT->eError = eError;
-    COMMIT_HANDLE_BATCH_OR_ERROR(eError, psPerProc);
-
-    return 0;
-}
-
-
-static IMG_INT
-PVRSRVFreeSyncInfoBW(IMG_UINT32                                          ui32BridgeID,
-                     PVRSRV_BRIDGE_IN_FREE_SYNC_INFO                     *psFreeSyncInfoIN,
-                     PVRSRV_BRIDGE_RETURN                                *psFreeSyncInfoOUT,
-                     PVRSRV_PER_PROCESS_DATA                             *psPerProc)
-{
-    PVRSRV_KERNEL_SYNC_INFO *psSyncInfo;
-    PVRSRV_ERROR eError;
-
-    PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_FREE_SYNC_INFO);
-
-    eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-                                (IMG_VOID**)&psSyncInfo,
-                                psFreeSyncInfoIN->hKernelSyncInfo,
-                                PVRSRV_HANDLE_TYPE_SYNC_INFO);
-    if (eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVFreeSyncInfoBW: PVRSRVLookupHandle failed"));
-        psFreeSyncInfoOUT->eError = eError;
-        return 0;
-    }
-
-    eError = PVRSRVReleaseHandle(psPerProc->psHandleBase,
-                                 psFreeSyncInfoIN->hKernelSyncInfo,
-                                 PVRSRV_HANDLE_TYPE_SYNC_INFO);
-
-    if (eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVFreeSyncInfoBW: PVRSRVReleaseHandle failed"));
-        psFreeSyncInfoOUT->eError = eError;
-        return 0;
-    }
-
-    eError = ResManFreeResByPtr(psSyncInfo->hResItem, CLEANUP_WITH_POLL);
-    if (eError != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "PVRSRVFreeSyncInfoBW: ResManFreeResByPtr failed"));
-        psFreeSyncInfoOUT->eError = eError;
-        return 0;
-    }
-
-    return 0;
-}
-
-
-PVRSRV_ERROR
-CommonBridgeInit(IMG_VOID)
-{
-    IMG_UINT32 i;
-
-    PVR_IO_NSTD(ENUM_DEVICES, PVRSRVEnumerateDevicesBW, 0, sizeof(PVRSRV_BRIDGE_OUT_ENUMDEVICE));
-    PVR_IO_RW(ACQUIRE_DEVICEINFO, PVRSRVAcquireDeviceDataBW);
-    PVR_IO_INV(RELEASE_DEVICEINFO);
-    PVR_IO_RW(CREATE_DEVMEMCONTEXT, PVRSRVCreateDeviceMemContextBW);
-    PVR_IO_W(DESTROY_DEVMEMCONTEXT, PVRSRVDestroyDeviceMemContextBW);
-    PVR_IO_RW(GET_DEVMEM_HEAPINFO, PVRSRVGetDeviceMemHeapInfoBW);
-    PVR_IO_NSTD(ALLOC_DEVICEMEM, PVRSRVAllocDeviceMemBW,
-		sizeof(PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM),
-		sizeof(PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM));
-
-    PVR_IO_NSTD(FREE_DEVICEMEM, PVRSRVFreeDeviceMemBW,
-		sizeof(PVRSRV_BRIDGE_IN_FREEDEVICEMEM),
-		sizeof(PVRSRV_BRIDGE_RETURN));
-
-    PVR_IO_NSTD(GETFREE_DEVICEMEM, PVRSRVGetFreeDeviceMemBW,
-		sizeof(PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM),
-		sizeof(PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM));
-    PVR_IO_INV(CREATE_COMMANDQUEUE);
-    PVR_IO_INV(DESTROY_COMMANDQUEUE);
-    PVR_IO_RW(MHANDLE_TO_MMAP_DATA, PVRMMapOSMemHandleToMMapDataBW);
-    PVR_IO_RW(CONNECT_SERVICES, PVRSRVConnectBW);
-    PVR_IO_NSTD(DISCONNECT_SERVICES, PVRSRVDisconnectBW,
-		0, sizeof(PVRSRV_BRIDGE_RETURN));
-    PVR_IO_INV(WRAP_DEVICE_MEM);
-    PVR_IO_INV(GET_DEVICEMEMINFO);
-    PVR_IO_INV(RESERVE_DEV_VIRTMEM);
-    PVR_IO_INV(FREE_DEV_VIRTMEM);
-    PVR_IO_INV(MAP_EXT_MEMORY);
-    PVR_IO_INV(UNMAP_EXT_MEMORY);
-    PVR_IO_RW(MAP_DEV_MEMORY, PVRSRVMapDeviceMemoryBW);
-    PVR_IO_W(UNMAP_DEV_MEMORY, PVRSRVUnmapDeviceMemoryBW);
-    PVR_IO_RW(MAP_DEVICECLASS_MEMORY, PVRSRVMapDeviceClassMemoryBW);
-    PVR_IO_W(UNMAP_DEVICECLASS_MEMORY, PVRSRVUnmapDeviceClassMemoryBW);
-    PVR_IO_INV(MAP_MEM_INFO_TO_USER);
-    PVR_IO_INV(UNMAP_MEM_INFO_FROM_USER);
-    PVR_IO_NSTD(EXPORT_DEVICEMEM, PVRSRVExportDeviceMemBW,
-		sizeof(PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM),
-		sizeof(PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM));
-    PVR_IO_RW(RELEASE_MMAP_DATA, PVRMMapReleaseMMapDataBW);
-
-    PVR_IO_W(CHG_DEV_MEM_ATTRIBS, PVRSRVChangeDeviceMemoryAttributesBW);
-    PVR_IO_NSTD(MAP_DEV_MEMORY_2, PVRSRVMapDeviceMemoryBW,
-		sizeof(PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY),
-                sizeof(PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY));
-    PVR_IO_NSTD(EXPORT_DEVICEMEM_2, PVRSRVExportDeviceMemBW,
-		sizeof(PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM),
-		sizeof(PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM));
-
-    PVR_IO_INV(PROCESS_SIMISR_EVENT);
-    PVR_IO_INV(REGISTER_SIM_PROCESS);
-    PVR_IO_INV(UNREGISTER_SIM_PROCESS);
-    PVR_IO_INV(MAPPHYSTOUSERSPACE);
-    PVR_IO_INV(UNMAPPHYSTOUSERSPACE);
-    PVR_IO_INV(GETPHYSTOUSERSPACEMAP);
-    PVR_IO_INV(GET_FB_STATS);
-    PVR_IO_RW(GET_MISC_INFO, PVRSRVGetMiscInfoBW);
-    PVR_IO_INV(RELEASE_MISC_INFO);
-    
-#if defined (SUPPORT_OVERLAY_ROTATE_BLIT)
-    PVR_IO_INV(INIT_3D_OVL_BLT_RES);
-    PVR_IO_INV(DEINIT_3D_OVL_BLT_RES);
-#endif
-
-
-    
-#if defined(PDUMP)
-    PVR_IO_INV(PDUMP_INIT);
-    PVR_IO_W(PDUMP_MEMPOL, PDumpMemPolBW);
-    PVR_IO_W(PDUMP_DUMPMEM, PDumpMemBW);
-    PVR_IO_NSTD(PDUMP_REG, PDumpRegWithFlagsBW,
-		sizeof(PVRSRV_BRIDGE_IN_PDUMP_DUMPREG),
-		sizeof(PVRSRV_BRIDGE_RETURN));
-    PVR_IO_W(PDUMP_REGPOL, PDumpRegPolBW);
-    PVR_IO_W(PDUMP_COMMENT, PDumpCommentBW);
-    PVR_IO_W(PDUMP_SETFRAME, PDumpSetFrameBW);
-    PVR_IO_R(PDUMP_ISCAPTURING, PDumpIsCaptureFrameBW);
-    PVR_IO_NSTD(PDUMP_DUMPBITMAP, PDumpBitmapBW,
-		sizeof(PVRSRV_BRIDGE_IN_PDUMP_BITMAP),
-		sizeof(PVRSRV_BRIDGE_RETURN));
-    PVR_IO_NSTD(PDUMP_DUMPREADREG, PDumpReadRegBW,
-		sizeof(PVRSRV_BRIDGE_IN_PDUMP_READREG),
-		sizeof(PVRSRV_BRIDGE_RETURN));
-    PVR_IO_W(PDUMP_SYNCPOL, PDumpSyncPolBW);
-    PVR_IO_W(PDUMP_DUMPSYNC, PDumpSyncDumpBW);
-    PVR_IO_W(PDUMP_MEMPAGES, PDumpMemPagesBW);
-    PVR_IO_W(PDUMP_DRIVERINFO, PDumpDriverInfoBW);
-    PVR_IO_W(PDUMP_DUMPPDDEVPADDR, PDumpPDDevPAddrBW);
-    PVR_IO_W(PDUMP_CYCLE_COUNT_REG_READ, PDumpCycleCountRegReadBW);
-    PVR_IO_NSTD(PDUMP_STARTINITPHASE, PDumpStartInitPhaseBW,
-		0, sizeof(PVRSRV_BRIDGE_RETURN));
-    PVR_IO_NSTD(PDUMP_STOPINITPHASE, PDumpStopInitPhaseBW,
-		0, sizeof(PVRSRV_BRIDGE_RETURN));
-#endif 
-
-    PVR_IO_INV(GET_OEMJTABLE);
-    PVR_IO_NSTD(ENUM_CLASS, PVRSRVEnumerateDCBW,
-		sizeof(PVRSRV_BRIDGE_IN_ENUMCLASS),
-		sizeof(PVRSRV_BRIDGE_OUT_ENUMCLASS));
-    PVR_IO_RW(OPEN_DISPCLASS_DEVICE, PVRSRVOpenDCDeviceBW);
-    PVR_IO_W(CLOSE_DISPCLASS_DEVICE, PVRSRVCloseDCDeviceBW);
-    PVR_IO_RW(ENUM_DISPCLASS_FORMATS, PVRSRVEnumDCFormatsBW);
-    PVR_IO_RW(ENUM_DISPCLASS_DIMS, PVRSRVEnumDCDimsBW);
-    PVR_IO_RW(GET_DISPCLASS_SYSBUFFER, PVRSRVGetDCSystemBufferBW);
-    PVR_IO_RW(GET_DISPCLASS_INFO, PVRSRVGetDCInfoBW);
-    PVR_IO_RW(CREATE_DISPCLASS_SWAPCHAIN, PVRSRVCreateDCSwapChainBW);
-    PVR_IO_W(DESTROY_DISPCLASS_SWAPCHAIN, PVRSRVDestroyDCSwapChainBW);
-    PVR_IO_NSTD(SET_DISPCLASS_DSTRECT, PVRSRVSetDCDstRectBW,
-		sizeof(PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT),
-		sizeof(PVRSRV_BRIDGE_RETURN));
-    PVR_IO_NSTD(SET_DISPCLASS_SRCRECT, PVRSRVSetDCSrcRectBW,
-		sizeof(PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT),
-		sizeof(PVRSRV_BRIDGE_RETURN));
-    PVR_IO_NSTD(SET_DISPCLASS_DSTCOLOURKEY, PVRSRVSetDCDstColourKeyBW,
-		sizeof(PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY),
-		sizeof(PVRSRV_BRIDGE_RETURN));
-    PVR_IO_NSTD(SET_DISPCLASS_SRCCOLOURKEY, PVRSRVSetDCSrcColourKeyBW,
-		sizeof(PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY),
-		sizeof(PVRSRV_BRIDGE_RETURN));
-    PVR_IO_RW(GET_DISPCLASS_BUFFERS, PVRSRVGetDCBuffersBW);
-    PVR_IO_W(SWAP_DISPCLASS_TO_BUFFER, PVRSRVSwapToDCBufferBW);
-    PVR_IO_W(SWAP_DISPCLASS_TO_SYSTEM, PVRSRVSwapToDCSystemBW);
-    PVR_IO_RW(OPEN_BUFFERCLASS_DEVICE, PVRSRVOpenBCDeviceBW);
-    PVR_IO_W(CLOSE_BUFFERCLASS_DEVICE, PVRSRVCloseBCDeviceBW);
-    PVR_IO_RW(GET_BUFFERCLASS_INFO, PVRSRVGetBCInfoBW);
-    PVR_IO_RW(GET_BUFFERCLASS_BUFFER, PVRSRVGetBCBufferBW);
-    PVR_IO_RW(WRAP_EXT_MEMORY, PVRSRVWrapExtMemoryBW);
-    PVR_IO_W(UNWRAP_EXT_MEMORY, PVRSRVUnwrapExtMemoryBW);
-    PVR_IO_RW(ALLOC_SHARED_SYS_MEM, PVRSRVAllocSharedSysMemoryBW);
-    PVR_IO_RW(FREE_SHARED_SYS_MEM, PVRSRVFreeSharedSysMemoryBW);
-    PVR_IO_RW(MAP_MEMINFO_MEM, PVRSRVMapMemInfoMemBW);
-    PVR_IO_RW(GETMMU_PD_DEVPADDR, MMU_GetPDDevPAddrBW);
-    PVR_IO_NSTD(INITSRV_CONNECT, PVRSRVInitSrvConnectBW,
-		0, sizeof(PVRSRV_BRIDGE_RETURN));
-    PVR_IO_W(INITSRV_DISCONNECT, PVRSRVInitSrvDisconnectBW);
-    PVR_IO_W(EVENT_OBJECT_WAIT, PVRSRVEventObjectWaitBW);
-    PVR_IO_RW(EVENT_OBJECT_OPEN, PVRSRVEventObjectOpenBW);
-    PVR_IO_W(EVENT_OBJECT_CLOSE, PVRSRVEventObjectCloseBW);
-    PVR_IO_NSTD(CREATE_SYNC_INFO_MOD_OBJ, PVRSRVCreateSyncInfoModObjBW,
-		0, sizeof(PVRSRV_BRIDGE_OUT_CREATE_SYNC_INFO_MOD_OBJ));
-    PVR_IO_W(DESTROY_SYNC_INFO_MOD_OBJ, PVRSRVDestroySyncInfoModObjBW);
-    PVR_IO_RW(MODIFY_PENDING_SYNC_OPS, PVRSRVModifyPendingSyncOpsBW);
-    PVR_IO_W(MODIFY_COMPLETE_SYNC_OPS, PVRSRVModifyCompleteSyncOpsBW);
-    PVR_IO_RW(SYNC_OPS_TAKE_TOKEN, PVRSRVSyncOpsTakeTokenBW);
-    PVR_IO_W(SYNC_OPS_FLUSH_TO_TOKEN, PVRSRVSyncOpsFlushToTokenBW);
-    PVR_IO_W(SYNC_OPS_FLUSH_TO_MOD_OBJ, PVRSRVSyncOpsFlushToModObjBW);
-    PVR_IO_W(SYNC_OPS_FLUSH_TO_DELTA, PVRSRVSyncOpsFlushToDeltaBW);
-    PVR_IO_RW(ALLOC_SYNC_INFO, PVRSRVAllocSyncInfoBW);
-    PVR_IO_W(FREE_SYNC_INFO, PVRSRVFreeSyncInfoBW);
-
-#if defined (SUPPORT_SGX)
-    SetSGXDispatchTableEntry();
-#endif
-#if defined (SUPPORT_VGX)
-    SetVGXDispatchTableEntry();
-#endif
-#if defined (SUPPORT_MSVDX)
-    SetMSVDXDispatchTableEntry();
-#endif
-
-
-    
-    
-    for(i=0;i<BRIDGE_DISPATCH_TABLE_ENTRY_COUNT;i++)
-    {
-        if(!g_BridgeDispatchTable[i].pfFunction)
-        {
-            g_BridgeDispatchTable[i].pfFunction = &DummyBW;
-#if defined(DEBUG_BRIDGE_KM)
-            g_BridgeDispatchTable[i].pszIOCName = "_PVRSRV_BRIDGE_DUMMY";
-            g_BridgeDispatchTable[i].pszFunctionName = "DummyBW";
-            g_BridgeDispatchTable[i].ui32CallCount = 0;
-            g_BridgeDispatchTable[i].ui32CopyFromUserTotalBytes = 0;
-            g_BridgeDispatchTable[i].ui32CopyToUserTotalBytes = 0;
-#endif
-        }
-    }
-
-    return PVRSRV_OK;
-}
-
-IMG_INT BridgedDispatchKM(PVRSRV_PER_PROCESS_DATA * psPerProc,
-                      PVRSRV_BRIDGE_PACKAGE   * psBridgePackageKM)
-{
-
-    IMG_VOID   * psBridgeIn;
-    IMG_VOID   * psBridgeOut;
-    BridgeWrapperFunction pfBridgeHandler;
-    PVRSRV_BRIDGE_DISPATCH_TABLE_ENTRY *dte;
-    IMG_UINT32   ui32BridgeID = psBridgePackageKM->ui32BridgeID;
-    IMG_INT      err          = -EFAULT;
-
-    if(ui32BridgeID >= (BRIDGE_DISPATCH_TABLE_ENTRY_COUNT))
-    {
-        PVR_DPF((PVR_DBG_ERROR, "%s: ui32BridgeID = %d is out if range!",
-                 __FUNCTION__, ui32BridgeID));
-        goto return_fault;
-    }
-   
-    dte = &g_BridgeDispatchTable[ui32BridgeID];
-
-#if defined(DEBUG_TRACE_BRIDGE_KM)
-    PVR_DPF((PVR_DBG_ERROR, "%s: %s",
-             __FUNCTION__,
-             dte->pszIOCName));
-#endif
-
-#if defined(DEBUG_BRIDGE_KM)
-    dte->ui32CallCount++;
-    g_BridgeGlobalStats.ui32IOCTLCount++;
-#endif
-
-    if (psBridgePackageKM->ui32InBufferSize != dte->in_size ||
-	psBridgePackageKM->ui32OutBufferSize != dte->out_size) {
-	    PVR_DPF((PVR_DBG_ERROR, "pvr: invalid param size for IOCTL#%d:\n"
-				    "     kern/user in,out: %d/%d,%d/%d\n",
-		      ui32BridgeID,
-		      dte->in_size, psBridgePackageKM->ui32InBufferSize,
-		      dte->out_size, psBridgePackageKM->ui32OutBufferSize));
-	    err = -EINVAL;
-	    goto return_fault;
-    }
-
-    if(!psPerProc->bInitProcess)
-    {
-        if(PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_RAN))
-        {
-            if(!PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_SUCCESSFUL))
-            {
-                PVR_DPF((PVR_DBG_ERROR, "%s: Initialisation failed.  Driver unusable.",
-                         __FUNCTION__));
-                goto return_fault;
-            }
-        }
-        else
-        {
-            if(PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_RUNNING))
-            {
-                PVR_DPF((PVR_DBG_ERROR, "%s: Initialisation is in progress",
-                         __FUNCTION__));
-                goto return_fault;
-            }
-            else
-            {
-                
-                switch(ui32BridgeID)
-                {
-                    case PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_CONNECT_SERVICES):
-                    case PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_DISCONNECT_SERVICES):
-                    case PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_INITSRV_CONNECT):
-                    case PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_INITSRV_DISCONNECT):
-                        break;
-                    default:
-                        PVR_DPF((PVR_DBG_ERROR, "%s: Driver initialisation not completed yet.",
-                                 __FUNCTION__));
-                        goto return_fault;
-                }
-            }
-        }
-    }
-
-
-
-#if defined(__linux__)
-    {
-        
-        SYS_DATA *psSysData;
-
-        SysAcquireData(&psSysData);
-
-        
-        psBridgeIn = ((ENV_DATA *)psSysData->pvEnvSpecificData)->pvBridgeData;
-        psBridgeOut = (IMG_PVOID)((IMG_PBYTE)psBridgeIn + PVRSRV_MAX_BRIDGE_IN_SIZE);
-
-		
-		if((psBridgePackageKM->ui32InBufferSize > PVRSRV_MAX_BRIDGE_IN_SIZE) || 
-			(psBridgePackageKM->ui32OutBufferSize > PVRSRV_MAX_BRIDGE_OUT_SIZE))
-		{
-			goto return_fault;
-		}
-
-
-        if(psBridgePackageKM->ui32InBufferSize > 0)
-        {
-            if(!OSAccessOK(PVR_VERIFY_READ,
-                            psBridgePackageKM->pvParamIn,
-                            psBridgePackageKM->ui32InBufferSize))
-            {
-                PVR_DPF((PVR_DBG_ERROR, "%s: Invalid pvParamIn pointer", __FUNCTION__));
-            }
-
-            if(CopyFromUserWrapper(psPerProc,
-                                   ui32BridgeID,
-                                   psBridgeIn,
-                                   psBridgePackageKM->pvParamIn,
-                                   psBridgePackageKM->ui32InBufferSize)
-              != PVRSRV_OK)
-            {
-                goto return_fault;
-            }
-        }
-    }
-#else
-    psBridgeIn  = psBridgePackageKM->pvParamIn;
-    psBridgeOut = psBridgePackageKM->pvParamOut;
-#endif
-
-    pfBridgeHandler = (BridgeWrapperFunction)dte->pfFunction;
-    err = pfBridgeHandler(ui32BridgeID,
-                          psBridgeIn,
-                          psBridgeOut,
-                          psPerProc);
-    if(err < 0)
-    {
-        goto return_fault;
-    }
-
-
-#if defined(__linux__)
-    
-    if(CopyToUserWrapper(psPerProc,
-                         ui32BridgeID,
-                         psBridgePackageKM->pvParamOut,
-                         psBridgeOut,
-                         psBridgePackageKM->ui32OutBufferSize)
-       != PVRSRV_OK)
-    {
-        goto return_fault;
-    }
-#endif
-
-    err = 0;
-return_fault:
-
-    ReleaseHandleBatch(psPerProc);
-
-    if (err)
-	    PVR_DPF((PVR_DBG_ERROR, "pvr: ioctl#%d failed (%d)\n",
-		      ui32BridgeID, err));
-
-    return err;
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_pvr_bridge.h b/drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_pvr_bridge.h
deleted file mode 100644
index 9a7b577..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_pvr_bridge.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __BRIDGED_PVR_BRIDGE_H__
-#define __BRIDGED_PVR_BRIDGE_H__
-
-#include "pvr_bridge.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#if defined(__linux__)
-#define PVRSRV_GET_BRIDGE_ID(X)	_IOC_NR(X)
-#else
-#define PVRSRV_GET_BRIDGE_ID(X)	((X) - PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST))
-#endif
-
-#ifndef ENOMEM
-#define ENOMEM	12
-#endif
-#ifndef EFAULT
-#define EFAULT	14
-#endif
-#ifndef ENOTTY
-#define ENOTTY	25
-#endif
-
-#if defined(DEBUG_BRIDGE_KM)
-PVRSRV_ERROR
-CopyFromUserWrapper(PVRSRV_PER_PROCESS_DATA *pProcData,
-					IMG_UINT32 ui32BridgeID,
-					IMG_VOID *pvDest,
-					IMG_VOID *pvSrc,
-					IMG_UINT32 ui32Size);
-PVRSRV_ERROR
-CopyToUserWrapper(PVRSRV_PER_PROCESS_DATA *pProcData, 
-				  IMG_UINT32 ui32BridgeID,
-				  IMG_VOID *pvDest,
-				  IMG_VOID *pvSrc,
-				  IMG_UINT32 ui32Size);
-#else
-#define CopyFromUserWrapper(pProcData, ui32BridgeID, pvDest, pvSrc, ui32Size) \
-	OSCopyFromUser(pProcData, pvDest, pvSrc, ui32Size)
-#define CopyToUserWrapper(pProcData, ui32BridgeID, pvDest, pvSrc, ui32Size) \
-	OSCopyToUser(pProcData, pvDest, pvSrc, ui32Size)
-#endif
-
-
-#define ASSIGN_AND_RETURN_ON_ERROR(error, src, res)		\
-	do							\
-	{							\
-		(error) = (src);				\
-		if ((error) != PVRSRV_OK) 			\
-		{						\
-			return (res);				\
-		}						\
-	} while ((error) != PVRSRV_OK);
-
-#define ASSIGN_AND_EXIT_ON_ERROR(error, src)		\
-	ASSIGN_AND_RETURN_ON_ERROR(error, src, 0)
-
-#if defined (PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(NewHandleBatch)
-#endif
-static INLINE PVRSRV_ERROR
-NewHandleBatch(PVRSRV_PER_PROCESS_DATA *psPerProc,
-					IMG_UINT32 ui32BatchSize)
-{
-	PVRSRV_ERROR eError;
-
-	PVR_ASSERT(!psPerProc->bHandlesBatched);
-
-	eError = PVRSRVNewHandleBatch(psPerProc->psHandleBase, ui32BatchSize);
-
-	if (eError == PVRSRV_OK)
-	{
-		psPerProc->bHandlesBatched = IMG_TRUE;
-	}
-
-	return eError;
-}
-
-#define NEW_HANDLE_BATCH_OR_ERROR(error, psPerProc, ui32BatchSize)	\
-	ASSIGN_AND_EXIT_ON_ERROR(error, NewHandleBatch(psPerProc, ui32BatchSize))
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(CommitHandleBatch)
-#endif
-static INLINE PVRSRV_ERROR
-CommitHandleBatch(PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	PVR_ASSERT(psPerProc->bHandlesBatched);
-
-	psPerProc->bHandlesBatched = IMG_FALSE;
-
-	return PVRSRVCommitHandleBatch(psPerProc->psHandleBase);
-}
-
-
-#define COMMIT_HANDLE_BATCH_OR_ERROR(error, psPerProc) 			\
-	ASSIGN_AND_EXIT_ON_ERROR(error, CommitHandleBatch(psPerProc))
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(ReleaseHandleBatch)
-#endif
-static INLINE IMG_VOID
-ReleaseHandleBatch(PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	if (psPerProc->bHandlesBatched)
-	{
-		psPerProc->bHandlesBatched = IMG_FALSE;
-
-		PVRSRVReleaseHandleBatch(psPerProc->psHandleBase);
-	}
-}
-#else	
-#define NEW_HANDLE_BATCH_OR_ERROR(error, psPerProc, ui32BatchSize)
-#define COMMIT_HANDLE_BATCH_OR_ERROR(error, psPerProc)
-#define ReleaseHandleBatch(psPerProc)
-#endif	
-
-IMG_INT
-DummyBW(IMG_UINT32 ui32BridgeID,
-		IMG_VOID *psBridgeIn,
-		IMG_VOID *psBridgeOut,
-		PVRSRV_PER_PROCESS_DATA *psPerProc);
-
-typedef IMG_INT (*BridgeWrapperFunction)(IMG_UINT32 ui32BridgeID,
-									 IMG_VOID *psBridgeIn,
-									 IMG_VOID *psBridgeOut,
-									 PVRSRV_PER_PROCESS_DATA *psPerProc);
-
-typedef struct _PVRSRV_BRIDGE_DISPATCH_TABLE_ENTRY
-{
-	BridgeWrapperFunction pfFunction; 
-	size_t in_size;
-	size_t out_size;
-#if defined(DEBUG_BRIDGE_KM)
-	const IMG_CHAR *pszIOCName; 
-	const IMG_CHAR *pszFunctionName; 
-	IMG_UINT32 ui32CallCount; 
-	IMG_UINT32 ui32CopyFromUserTotalBytes; 
-	IMG_UINT32 ui32CopyToUserTotalBytes; 
-#endif
-}PVRSRV_BRIDGE_DISPATCH_TABLE_ENTRY;
-
-#if defined(SUPPORT_VGX) || defined(SUPPORT_MSVDX)
-	#if defined(SUPPORT_VGX)
-		#define BRIDGE_DISPATCH_TABLE_ENTRY_COUNT (PVRSRV_BRIDGE_LAST_VGX_CMD+1)
-		#define PVRSRV_BRIDGE_LAST_DEVICE_CMD	   PVRSRV_BRIDGE_LAST_VGX_CMD
-	#else
-		#define BRIDGE_DISPATCH_TABLE_ENTRY_COUNT (PVRSRV_BRIDGE_LAST_MSVDX_CMD+1)
-		#define PVRSRV_BRIDGE_LAST_DEVICE_CMD	   PVRSRV_BRIDGE_LAST_MSVDX_CMD
-	#endif
-#else
-	#if defined(SUPPORT_SGX)
-		#define BRIDGE_DISPATCH_TABLE_ENTRY_COUNT (PVRSRV_BRIDGE_LAST_SGX_CMD+1)
-		#define PVRSRV_BRIDGE_LAST_DEVICE_CMD	   PVRSRV_BRIDGE_LAST_SGX_CMD
-	#else
-		#define BRIDGE_DISPATCH_TABLE_ENTRY_COUNT (PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD+1)
-		#define PVRSRV_BRIDGE_LAST_DEVICE_CMD	   PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD
-	#endif
-#endif
-
-extern PVRSRV_BRIDGE_DISPATCH_TABLE_ENTRY g_BridgeDispatchTable[BRIDGE_DISPATCH_TABLE_ENTRY_COUNT];
-
-IMG_VOID
-_SetDispatchTableEntry(IMG_UINT32 ui32Index,
-					   const IMG_CHAR *pszIOCName,
-					   BridgeWrapperFunction pfFunction,
-					   const IMG_CHAR *pszFunctionName,
-					   size_t in_size, size_t out_size);
-
-#define __set_table(id, fn, in_size, out_size)					\
-	_SetDispatchTableEntry(PVRSRV_GET_BRIDGE_ID(id), #id,			\
-				(BridgeWrapperFunction)fn, #fn,			\
-				in_size, out_size)
-
-#define PVR_IO_RW(id, fn)							\
-	__set_table(PVRSRV_BRIDGE_##id, fn,					\
-		    sizeof(PVRSRV_BRIDGE_IN_##id), sizeof(PVRSRV_BRIDGE_OUT_##id))
-
-#define PVR_IO_R(id, fn)							\
-	__set_table(PVRSRV_BRIDGE_##id, fn, 0, sizeof(PVRSRV_BRIDGE_OUT_##id))
-
-#define PVR_IO_W(id, fn)							\
-	__set_table(PVRSRV_BRIDGE_##id, fn, sizeof(PVRSRV_BRIDGE_IN_##id), 	\
-		    sizeof(PVRSRV_BRIDGE_RETURN))
-
-#define PVR_IO_NSTD(id, fn, in_size, out_size)					\
-	__set_table(PVRSRV_BRIDGE_##id, fn, in_size, out_size)
-
-#define PVR_IO_INV(id)								\
-	__set_table(PVRSRV_BRIDGE_##id, DummyBW, 0, 0)
- 
-#define DISPATCH_TABLE_GAP_THRESHOLD 5
-
-#if defined(DEBUG)
-#define PVRSRV_BRIDGE_ASSERT_CMD(X, Y) PVR_ASSERT(X == PVRSRV_GET_BRIDGE_ID(Y))
-#else
-#define PVRSRV_BRIDGE_ASSERT_CMD(X, Y) PVR_UNREFERENCED_PARAMETER(X)
-#endif
-
-
-#if defined(DEBUG_BRIDGE_KM)
-typedef struct _PVRSRV_BRIDGE_GLOBAL_STATS
-{
-	IMG_UINT32 ui32IOCTLCount;
-	IMG_UINT32 ui32TotalCopyFromUserBytes;
-	IMG_UINT32 ui32TotalCopyToUserBytes;
-}PVRSRV_BRIDGE_GLOBAL_STATS;
-
-extern PVRSRV_BRIDGE_GLOBAL_STATS g_BridgeGlobalStats;
-#endif
-
-
-PVRSRV_ERROR CommonBridgeInit(IMG_VOID);
-
-IMG_INT BridgedDispatchKM(PVRSRV_PER_PROCESS_DATA * psPerProc,
-					  PVRSRV_BRIDGE_PACKAGE   * psBridgePackageKM);
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_support.c b/drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_support.c
deleted file mode 100644
index dad0800..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_support.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "img_defs.h"
-#include "servicesint.h"
-#include "bridged_support.h"
-
-
-PVRSRV_ERROR
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRVLookupOSMemHandle(PVRSRV_HANDLE_BASE *psHandleBase, IMG_HANDLE *phOSMemHandle, IMG_SID hMHandle)
-#else
-PVRSRVLookupOSMemHandle(PVRSRV_HANDLE_BASE *psHandleBase, IMG_HANDLE *phOSMemHandle, IMG_HANDLE hMHandle)
-#endif
-{
-	IMG_HANDLE hMHandleInt;
-	PVRSRV_HANDLE_TYPE eHandleType;
-	PVRSRV_ERROR eError;
-
-	
-	eError = PVRSRVLookupHandleAnyType(psHandleBase, &hMHandleInt,
-							  &eHandleType,
-							  hMHandle);
-	if(eError != PVRSRV_OK)
-	{
-		return eError;
-	}
-
-	switch(eHandleType)
-	{
-#if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-		case PVRSRV_HANDLE_TYPE_MEM_INFO:
-		case PVRSRV_HANDLE_TYPE_MEM_INFO_REF:
-		case PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO:
-		{
-			PVRSRV_KERNEL_MEM_INFO *psMemInfo = (PVRSRV_KERNEL_MEM_INFO *)hMHandleInt;
-
-			*phOSMemHandle = psMemInfo->sMemBlk.hOSMemHandle;
-
-			break;
-		}
-		case PVRSRV_HANDLE_TYPE_SYNC_INFO:
-		{
-			PVRSRV_KERNEL_SYNC_INFO *psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)hMHandleInt;
-			PVRSRV_KERNEL_MEM_INFO *psMemInfo = psSyncInfo->psSyncDataMemInfoKM;
-			
-			*phOSMemHandle = psMemInfo->sMemBlk.hOSMemHandle;
-
-			break;
-		}
-		case  PVRSRV_HANDLE_TYPE_SOC_TIMER:
-		{
-			*phOSMemHandle = (IMG_VOID *)hMHandleInt;
-			break;
-		}
-#else
-		case  PVRSRV_HANDLE_TYPE_NONE:
-			*phOSMemHandle = (IMG_VOID *)hMHandleInt;
-			break;
-#endif
-		default:
-			return PVRSRV_ERROR_BAD_MAPPING;
-	}
-
-	return PVRSRV_OK;
-}
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_support.h b/drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_support.h
deleted file mode 100644
index d027290..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/bridged/bridged_support.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __BRIDGED_SUPPORT_H__
-#define __BRIDGED_SUPPORT_H__
-
-#include "handle.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR PVRSRVLookupOSMemHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phOSMemHandle, IMG_SID hMHandle);
-#else
-PVRSRV_ERROR PVRSRVLookupOSMemHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phOSMemHandle, IMG_HANDLE hMHandle);
-#endif
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c b/drivers/staging/cdv/pvr/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c
deleted file mode 100644
index 1e53295..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c
+++ /dev/null
@@ -1,3744 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-
-
-#include <stddef.h>
-
-#include "img_defs.h"
-
-#if defined(SUPPORT_SGX)
-
-#include "services.h"
-#include "pvr_debug.h"
-#include "pvr_bridge.h"
-#include "sgx_bridge.h"
-#include "perproc.h"
-#include "power.h"
-#include "pvr_bridge_km.h"
-#include "sgx_bridge_km.h"
-#include "sgx_options.h"
-
-#if defined(SUPPORT_MSVDX)
-	#include "msvdx_bridge.h"
-#endif
-
-#include "bridged_pvr_bridge.h"
-#include "bridged_sgx_bridge.h"
-#include "sgxutils.h"
-#include "buffer_manager.h"
-#include "pdump_km.h"
-
-static IMG_INT
-SGXGetClientInfoBW(IMG_UINT32 ui32BridgeID,
-				   PVRSRV_BRIDGE_IN_GETCLIENTINFO *psGetClientInfoIN,
-				   PVRSRV_BRIDGE_OUT_GETCLIENTINFO *psGetClientInfoOUT,
-				   PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_GETCLIENTINFO);
-
-	psGetClientInfoOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDevCookieInt,
-						   psGetClientInfoIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psGetClientInfoOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psGetClientInfoOUT->eError =
-		SGXGetClientInfoKM(hDevCookieInt,
-						   &psGetClientInfoOUT->sClientInfo);
-	return 0;
-}
-
-static IMG_INT
-SGXReleaseClientInfoBW(IMG_UINT32 ui32BridgeID,
-					   PVRSRV_BRIDGE_IN_RELEASECLIENTINFO *psReleaseClientInfoIN,
-					   PVRSRV_BRIDGE_RETURN *psRetOUT,
-					   PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	PVRSRV_SGXDEV_INFO *psDevInfo;
-	IMG_HANDLE hDevCookieInt;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_RELEASECLIENTINFO);
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDevCookieInt,
-						   psReleaseClientInfoIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psDevInfo = (PVRSRV_SGXDEV_INFO *)((PVRSRV_DEVICE_NODE *)hDevCookieInt)->pvDevice;
-
-	PVR_ASSERT(psDevInfo->ui32ClientRefCount > 0);
-
-	
-	if (psDevInfo->ui32ClientRefCount > 0)
-	{
-		psDevInfo->ui32ClientRefCount--;
-	}
-	
-	psRetOUT->eError = PVRSRV_OK;
-
-	return 0;
-}
-
-
-static IMG_INT
-SGXGetInternalDevInfoBW(IMG_UINT32 ui32BridgeID,
-						PVRSRV_BRIDGE_IN_GETINTERNALDEVINFO *psSGXGetInternalDevInfoIN,
-						PVRSRV_BRIDGE_OUT_GETINTERNALDEVINFO *psSGXGetInternalDevInfoOUT,
-						PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-#if defined (SUPPORT_SID_INTERFACE)
-	SGX_INTERNAL_DEVINFO_KM sSGXInternalDevInfo;
-#endif
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_GETINTERNALDEVINFO);
-
-	psSGXGetInternalDevInfoOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDevCookieInt,
-						   psSGXGetInternalDevInfoIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psSGXGetInternalDevInfoOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psSGXGetInternalDevInfoOUT->eError =
-		SGXGetInternalDevInfoKM(hDevCookieInt,
-#if defined (SUPPORT_SID_INTERFACE)
-								&sSGXInternalDevInfo);
-#else
-								&psSGXGetInternalDevInfoOUT->sSGXInternalDevInfo);
-#endif
-
-	
-	psSGXGetInternalDevInfoOUT->eError =
-		PVRSRVAllocHandle(psPerProc->psHandleBase,
-						  &psSGXGetInternalDevInfoOUT->sSGXInternalDevInfo.hHostCtlKernelMemInfoHandle,
-#if defined (SUPPORT_SID_INTERFACE)
-						  sSGXInternalDevInfo.hHostCtlKernelMemInfoHandle,
-#else
-						  psSGXGetInternalDevInfoOUT->sSGXInternalDevInfo.hHostCtlKernelMemInfoHandle,
-#endif
-						  PVRSRV_HANDLE_TYPE_MEM_INFO,
-						  PVRSRV_HANDLE_ALLOC_FLAG_SHARED);
-
-	return 0;
-}
-
-
-static IMG_INT
-SGXDoKickBW(IMG_UINT32 ui32BridgeID,
-			PVRSRV_BRIDGE_IN_DOKICK *psDoKickIN,
-			PVRSRV_BRIDGE_RETURN *psRetOUT,
-			PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-	IMG_UINT32 i;
-	IMG_INT ret = 0;
-	IMG_UINT32 ui32NumDstSyncs;
-#if defined (SUPPORT_SID_INTERFACE)
-	SGX_CCB_KICK_KM sCCBKickKM = {{0}};
-	IMG_HANDLE	ahSyncInfoHandles[16];
-#else
-	IMG_HANDLE *phKernelSyncInfoHandles = IMG_NULL;
-#endif
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_DOKICK);
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDevCookieInt,
-						   psDoKickIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &sCCBKickKM.hCCBKernelMemInfo,
-#else
-						   &psDoKickIN->sCCBKick.hCCBKernelMemInfo,
-#endif
-						   psDoKickIN->sCCBKick.hCCBKernelMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	if (psDoKickIN->sCCBKick.ui32NumDstSyncObjects > 16)
-	{
-		return 0;
-	}
-			
-	if(psDoKickIN->sCCBKick.hTA3DSyncInfo != 0)
-#else
-	if(psDoKickIN->sCCBKick.hTA3DSyncInfo != IMG_NULL)
-#endif
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sCCBKickKM.hTA3DSyncInfo,
-#else
-							   &psDoKickIN->sCCBKick.hTA3DSyncInfo,
-#endif
-							   psDoKickIN->sCCBKick.hTA3DSyncInfo,
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	if(psDoKickIN->sCCBKick.hTASyncInfo != 0)
-#else
-	if(psDoKickIN->sCCBKick.hTASyncInfo != IMG_NULL)
-#endif
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sCCBKickKM.hTASyncInfo,
-#else
-							   &psDoKickIN->sCCBKick.hTASyncInfo,
-#endif
-							   psDoKickIN->sCCBKick.hTASyncInfo,
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-
-#if defined(FIX_HW_BRN_31620)
-	
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &psDoKickIN->sCCBKick.hDevMemContext,
-						   psDoKickIN->sCCBKick.hDevMemContext,
-						   PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-#endif
-
-#if defined (SUPPORT_SID_INTERFACE)
-	if(psDoKickIN->sCCBKick.h3DSyncInfo != 0)
-#else
-	if(psDoKickIN->sCCBKick.h3DSyncInfo != IMG_NULL)
-#endif
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sCCBKickKM.h3DSyncInfo,
-#else
-							   &psDoKickIN->sCCBKick.h3DSyncInfo,
-#endif
-							   psDoKickIN->sCCBKick.h3DSyncInfo,
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-
-
-#if defined(SUPPORT_SGX_GENERALISED_SYNCOBJECTS)
-	
-	if (psDoKickIN->sCCBKick.ui32NumTASrcSyncs > SGX_MAX_TA_SRC_SYNCS)
-	{
-		psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-		return 0;
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	sCCBKickKM.ui32NumTASrcSyncs = psDoKickIN->sCCBKick.ui32NumTASrcSyncs;
-#endif
-	for(i=0; i<psDoKickIN->sCCBKick.ui32NumTASrcSyncs; i++)
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sCCBKickKM.ahTASrcKernelSyncInfo[i],
-#else
-							   &psDoKickIN->sCCBKick.ahTASrcKernelSyncInfo[i],
-#endif
-							   psDoKickIN->sCCBKick.ahTASrcKernelSyncInfo[i],
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-
-	if (psDoKickIN->sCCBKick.ui32NumTADstSyncs > SGX_MAX_TA_DST_SYNCS)
-	{
-		psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-		return 0;
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	sCCBKickKM.ui32NumTADstSyncs = psDoKickIN->sCCBKick.ui32NumTADstSyncs;
-#endif
-	for(i=0; i<psDoKickIN->sCCBKick.ui32NumTADstSyncs; i++)
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sCCBKickKM.ahTADstKernelSyncInfo[i],
-#else
-							   &psDoKickIN->sCCBKick.ahTADstKernelSyncInfo[i],
-#endif
-							   psDoKickIN->sCCBKick.ahTADstKernelSyncInfo[i],
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-
-	if (psDoKickIN->sCCBKick.ui32Num3DSrcSyncs > SGX_MAX_3D_SRC_SYNCS)
-	{
-		psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-		return 0;
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	sCCBKickKM.ui32Num3DSrcSyncs = psDoKickIN->sCCBKick.ui32Num3DSrcSyncs;
-#endif
-	for(i=0; i<psDoKickIN->sCCBKick.ui32Num3DSrcSyncs; i++)
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sCCBKickKM.ah3DSrcKernelSyncInfo[i],
-#else
-							   &psDoKickIN->sCCBKick.ah3DSrcKernelSyncInfo[i],
-#endif
-							   psDoKickIN->sCCBKick.ah3DSrcKernelSyncInfo[i],
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-#else
-	
-	if (psDoKickIN->sCCBKick.ui32NumSrcSyncs > SGX_MAX_SRC_SYNCS)
-	{
-		psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-		return 0;
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	sCCBKickKM.ui32NumSrcSyncs = psDoKickIN->sCCBKick.ui32NumSrcSyncs;
-#endif
-	for(i=0; i<psDoKickIN->sCCBKick.ui32NumSrcSyncs; i++)
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sCCBKickKM.ahSrcKernelSyncInfo[i],
-#else
-							   &psDoKickIN->sCCBKick.ahSrcKernelSyncInfo[i],
-#endif
-							   psDoKickIN->sCCBKick.ahSrcKernelSyncInfo[i],
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-#endif
-
-	if (psDoKickIN->sCCBKick.ui32NumTAStatusVals > SGX_MAX_TA_STATUS_VALS)
-	{
-		psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-		return 0;
-	}
-	for (i = 0; i < psDoKickIN->sCCBKick.ui32NumTAStatusVals; i++)
-	{
-		psRetOUT->eError =
-#if defined(SUPPORT_SGX_NEW_STATUS_VALS)
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sCCBKickKM.asTAStatusUpdate[i].hKernelMemInfo,
-#else
-							   &psDoKickIN->sCCBKick.asTAStatusUpdate[i].hKernelMemInfo,
-#endif
-							   psDoKickIN->sCCBKick.asTAStatusUpdate[i].hKernelMemInfo,
-							   PVRSRV_HANDLE_TYPE_MEM_INFO);
-
-#if defined (SUPPORT_SID_INTERFACE)
-		sCCBKickKM.asTAStatusUpdate[i].sCtlStatus = psDoKickIN->sCCBKick.asTAStatusUpdate[i].sCtlStatus;
-#endif
-
-#else
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sCCBKickKM.ahTAStatusSyncInfo[i],
-#else
-							   &psDoKickIN->sCCBKick.ahTAStatusSyncInfo[i],
-#endif
-							   psDoKickIN->sCCBKick.ahTAStatusSyncInfo[i],
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-#endif
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-
-	if (psDoKickIN->sCCBKick.ui32Num3DStatusVals > SGX_MAX_3D_STATUS_VALS)
-	{
-		psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-		return 0;
-	}
-	for(i = 0; i < psDoKickIN->sCCBKick.ui32Num3DStatusVals; i++)
-	{
-		psRetOUT->eError =
-#if defined(SUPPORT_SGX_NEW_STATUS_VALS)
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sCCBKickKM.as3DStatusUpdate[i].hKernelMemInfo,
-#else
-							   &psDoKickIN->sCCBKick.as3DStatusUpdate[i].hKernelMemInfo,
-#endif
-							   psDoKickIN->sCCBKick.as3DStatusUpdate[i].hKernelMemInfo,
-							   PVRSRV_HANDLE_TYPE_MEM_INFO);
-							   
-#if defined (SUPPORT_SID_INTERFACE)
-		sCCBKickKM.as3DStatusUpdate[i].sCtlStatus = psDoKickIN->sCCBKick.as3DStatusUpdate[i].sCtlStatus;
-#endif
-#else
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sCCBKickKM.ah3DStatusSyncInfo[i],
-#else
-							   &psDoKickIN->sCCBKick.ah3DStatusSyncInfo[i],
-#endif
-							   psDoKickIN->sCCBKick.ah3DStatusSyncInfo[i],
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-#endif
-
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-
-	ui32NumDstSyncs = psDoKickIN->sCCBKick.ui32NumDstSyncObjects;
-
-	if(ui32NumDstSyncs > 0)
-	{
-		if(!OSAccessOK(PVR_VERIFY_READ,
-						psDoKickIN->sCCBKick.pahDstSyncHandles,
-						ui32NumDstSyncs * sizeof(IMG_HANDLE)))
-		{
-			PVR_DPF((PVR_DBG_ERROR, "%s: SGXDoKickBW:"
-					" Invalid pasDstSyncHandles pointer", __FUNCTION__));
-			return -EFAULT;
-		}
-
-		psRetOUT->eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-										ui32NumDstSyncs * sizeof(IMG_HANDLE),
-										(IMG_VOID **)&phKernelSyncInfoHandles,
-										0,
-										"Array of Synchronization Info Handles");
-		if (psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-
-#if defined (SUPPORT_SID_INTERFACE)
-		sCCBKickKM.pahDstSyncHandles = phKernelSyncInfoHandles;
-#else
-		if(CopyFromUserWrapper(psPerProc,
-							ui32BridgeID,
-							phKernelSyncInfoHandles,
-							psDoKickIN->sCCBKick.pahDstSyncHandles,
-							ui32NumDstSyncs * sizeof(IMG_HANDLE)) != PVRSRV_OK)
-		{
-			ret = -EFAULT;
-			goto PVRSRV_BRIDGE_SGX_DOKICK_RETURN_RESULT;
-		}
-
-		
-		psDoKickIN->sCCBKick.pahDstSyncHandles = phKernelSyncInfoHandles;
-#endif
-
-		for( i = 0; i < ui32NumDstSyncs; i++)
-		{
-			psRetOUT->eError =
-				PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-									&sCCBKickKM.pahDstSyncHandles[i],
-#else
-									&psDoKickIN->sCCBKick.pahDstSyncHandles[i],
-#endif
-									psDoKickIN->sCCBKick.pahDstSyncHandles[i],
-									PVRSRV_HANDLE_TYPE_SYNC_INFO);
-
-			if(psRetOUT->eError != PVRSRV_OK)
-			{
-				goto PVRSRV_BRIDGE_SGX_DOKICK_RETURN_RESULT;
-			}
-
-		}
-
-		psRetOUT->eError =
-					PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-									   &sCCBKickKM.hKernelHWSyncListMemInfo,
-#else
-									   &psDoKickIN->sCCBKick.hKernelHWSyncListMemInfo,
-#endif
-									   psDoKickIN->sCCBKick.hKernelHWSyncListMemInfo,
-									   PVRSRV_HANDLE_TYPE_MEM_INFO);
-
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			goto PVRSRV_BRIDGE_SGX_DOKICK_RETURN_RESULT;
-		}
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	OSMemCopy(&sCCBKickKM.sCommand, &psDoKickIN->sCCBKick.sCommand, sizeof(sCCBKickKM.sCommand));
-
-	sCCBKickKM.ui32NumDstSyncObjects = psDoKickIN->sCCBKick.ui32NumDstSyncObjects;
-	sCCBKickKM.ui32NumTAStatusVals   = psDoKickIN->sCCBKick.ui32NumTAStatusVals;
-	sCCBKickKM.ui32Num3DStatusVals   = psDoKickIN->sCCBKick.ui32Num3DStatusVals;
-	sCCBKickKM.bFirstKickOrResume    = psDoKickIN->sCCBKick.bFirstKickOrResume;
-	sCCBKickKM.ui32CCBOffset         = psDoKickIN->sCCBKick.ui32CCBOffset;
-	sCCBKickKM.bTADependency         = psDoKickIN->sCCBKick.bTADependency;
-
-#if (defined(NO_HARDWARE) || defined(PDUMP))
-	sCCBKickKM.bTerminateOrAbort = psDoKickIN->sCCBKick.bTerminateOrAbort;
-#endif
-#if defined(PDUMP)
-	sCCBKickKM.ui32CCBDumpWOff = psDoKickIN->sCCBKick.ui32CCBDumpWOff;
-#endif
-
-#if defined(NO_HARDWARE)
-	sCCBKickKM.ui32WriteOpsPendingVal = psDoKickIN->sCCBKick.ui32WriteOpsPendingVal;
-#endif
-#endif 
-	psRetOUT->eError =
-		SGXDoKickKM(hDevCookieInt,
-#if defined (SUPPORT_SID_INTERFACE)
-					&sCCBKickKM);
-#else
-					&psDoKickIN->sCCBKick);
-#endif
-
-PVRSRV_BRIDGE_SGX_DOKICK_RETURN_RESULT:
-
-	if(phKernelSyncInfoHandles)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  ui32NumDstSyncs * sizeof(IMG_HANDLE),
-				  (IMG_VOID *)phKernelSyncInfoHandles,
-				  0);
-		
-	}
-	return ret;
-}
-
-
-static IMG_INT
-SGXScheduleProcessQueuesBW(IMG_UINT32 ui32BridgeID,
-			PVRSRV_BRIDGE_IN_SGX_SCHEDULE_PROCESS_QUEUES *psScheduleProcQIN,
-			PVRSRV_BRIDGE_RETURN *psRetOUT,
-			PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_SCHEDULE_PROCESS_QUEUES);
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDevCookieInt,
-						   psScheduleProcQIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psRetOUT->eError = SGXScheduleProcessQueuesKM(hDevCookieInt);
-
-	return 0;
-}
-
-
-#if defined(TRANSFER_QUEUE)
-static IMG_INT
-SGXSubmitTransferBW(IMG_UINT32 ui32BridgeID,
-			PVRSRV_BRIDGE_IN_SUBMITTRANSFER *psSubmitTransferIN,
-			PVRSRV_BRIDGE_RETURN *psRetOUT,
-			PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-	PVRSRV_TRANSFER_SGX_KICK *psKick;
-#if defined (SUPPORT_SID_INTERFACE)
-	PVRSRV_TRANSFER_SGX_KICK_KM sKickKM = {0};
-#endif
-	IMG_UINT32 i;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_SUBMITTRANSFER);
-	PVR_UNREFERENCED_PARAMETER(ui32BridgeID);
-
-	psKick = &psSubmitTransferIN->sKick;
-
-#if defined(FIX_HW_BRN_31620)
-	
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &psKick->hDevMemContext,
-						   psKick->hDevMemContext,
-						   PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-#endif
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDevCookieInt,
-						   psSubmitTransferIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &sKickKM.hCCBMemInfo,
-#else
-						   &psKick->hCCBMemInfo,
-#endif
-						   psKick->hCCBMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	if (psKick->hTASyncInfo != IMG_NULL)
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sKickKM.hTASyncInfo,
-#else
-							   &psKick->hTASyncInfo,
-#endif
-							   psKick->hTASyncInfo,
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-
-	if (psKick->h3DSyncInfo != IMG_NULL)
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sKickKM.h3DSyncInfo,
-#else
-							   &psKick->h3DSyncInfo,
-#endif
-							   psKick->h3DSyncInfo,
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-
-	if (psKick->ui32NumSrcSync > SGX_MAX_TRANSFER_SYNC_OPS)
-	{
-		psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-		return 0;
-	}
-	for (i = 0; i < psKick->ui32NumSrcSync; i++)
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sKickKM.ahSrcSyncInfo[i],
-#else
-							   &psKick->ahSrcSyncInfo[i],
-#endif
-							   psKick->ahSrcSyncInfo[i],
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-
-	if (psKick->ui32NumDstSync > SGX_MAX_TRANSFER_SYNC_OPS)
-	{
-		psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-		return 0;
-	}
-	for (i = 0; i < psKick->ui32NumDstSync; i++)
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sKickKM.ahDstSyncInfo[i],
-#else
-							   &psKick->ahDstSyncInfo[i],
-#endif
-							   psKick->ahDstSyncInfo[i],
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	sKickKM.sHWTransferContextDevVAddr = psKick->sHWTransferContextDevVAddr;
-	sKickKM.ui32SharedCmdCCBOffset = psKick->ui32SharedCmdCCBOffset;
-	sKickKM.ui32NumSrcSync         = psKick->ui32NumSrcSync;
-	sKickKM.ui32NumDstSync         = psKick->ui32NumDstSync;
-	sKickKM.ui32Flags              = psKick->ui32Flags;
-	sKickKM.ui32PDumpFlags         = psKick->ui32PDumpFlags;
-#if defined(PDUMP)
-	sKickKM.ui32CCBDumpWOff        = psKick->ui32CCBDumpWOff;
-#endif
-
-	psRetOUT->eError = SGXSubmitTransferKM(hDevCookieInt, &sKickKM);
-#else
-	psRetOUT->eError = SGXSubmitTransferKM(hDevCookieInt, psKick);
-#endif
-
-	return 0;
-}
-
-
-#if defined(SGX_FEATURE_2D_HARDWARE)
-static IMG_INT
-SGXSubmit2DBW(IMG_UINT32 ui32BridgeID,
-			PVRSRV_BRIDGE_IN_SUBMIT2D *psSubmit2DIN,
-			PVRSRV_BRIDGE_RETURN *psRetOUT,
-			PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-	PVRSRV_2D_SGX_KICK   *psKick;
-#if defined (SUPPORT_SID_INTERFACE)
-	PVRSRV_2D_SGX_KICK_KM sKickKM;
-#endif
-	IMG_UINT32 i;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_SUBMIT2D);
-	PVR_UNREFERENCED_PARAMETER(ui32BridgeID);
-
-	psKick = &psSubmit2DIN->sKick;
-
-#if defined(FIX_HW_BRN_31620)
-	
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &psKick->hDevMemContext,
-						   psKick->hDevMemContext,
-						   PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-#endif
-
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDevCookieInt,
-						   psSubmit2DIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &sKickKM.hCCBMemInfo,
-#else
-						   &psKick->hCCBMemInfo,
-#endif
-						   psKick->hCCBMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	if (psKick->hTASyncInfo != 0)
-#else
-	if (psKick->hTASyncInfo != IMG_NULL)
-#endif
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sKickKM.hTASyncInfo,
-#else
-							   &psKick->hTASyncInfo,
-#endif
-							   psKick->hTASyncInfo,
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-#if defined (SUPPORT_SID_INTERFACE)
-	else
-	{
-		sKickKM.hTASyncInfo = IMG_NULL;
-	}
-#endif
-
-	if (psKick->h3DSyncInfo != IMG_NULL)
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sKickKM.h3DSyncInfo,
-#else
-							   &psKick->h3DSyncInfo,
-#endif
-							   psKick->h3DSyncInfo,
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-#if defined (SUPPORT_SID_INTERFACE)
-	else
-	{
-		sKickKM.h3DSyncInfo = IMG_NULL;
-	}
-#endif
-
-	if (psKick->ui32NumSrcSync > SGX_MAX_2D_SRC_SYNC_OPS)
-	{
-		psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-		return 0;
-	}
-#if defined (SUPPORT_SID_INTERFACE)
-	for (i = 0; i < SGX_MAX_2D_SRC_SYNC_OPS; i++)
-	{
-		if (i < psKick->ui32NumSrcSync)
-		{
-			psRetOUT->eError =
-				PVRSRVLookupHandle(psPerProc->psHandleBase,
-								   &sKickKM.ahSrcSyncInfo[i],
-								   psKick->ahSrcSyncInfo[i],
-								   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-			if(psRetOUT->eError != PVRSRV_OK)
-			{
-				return 0;
-			}
-		}
-		else
-		{
-			sKickKM.ahSrcSyncInfo[i] = IMG_NULL;
-		}
-	}
-#else
-	for (i = 0; i < psKick->ui32NumSrcSync; i++)
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-							   &psKick->ahSrcSyncInfo[i],
-							   psKick->ahSrcSyncInfo[i],
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-#endif
-
-	if (psKick->hDstSyncInfo != IMG_NULL)
-	{
-		psRetOUT->eError =
-			PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &sKickKM.hDstSyncInfo,
-#else
-							   &psKick->hDstSyncInfo,
-#endif
-							   psKick->hDstSyncInfo,
-							   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-#if defined (SUPPORT_SID_INTERFACE)
-	else
-	{
-		sKickKM.hDstSyncInfo = IMG_NULL;
-	}
-
-	
-	sKickKM.ui32SharedCmdCCBOffset = psKick->ui32SharedCmdCCBOffset;
-	sKickKM.ui32NumSrcSync         = psKick->ui32NumSrcSync;
-	sKickKM.ui32PDumpFlags         = psKick->ui32PDumpFlags;
-	sKickKM.sHW2DContextDevVAddr   = psKick->sHW2DContextDevVAddr;
-#if defined(PDUMP)
-	sKickKM.ui32CCBDumpWOff        = psKick->ui32CCBDumpWOff;
-#endif
-#endif
-
-	psRetOUT->eError =
-#if defined (SUPPORT_SID_INTERFACE)
-		SGXSubmit2DKM(hDevCookieInt, &sKickKM);
-#else
-		SGXSubmit2DKM(hDevCookieInt, psKick);
-#endif
-
-	return 0;
-}
-#endif 
-#endif 
-
-
-static IMG_INT
-SGXGetMiscInfoBW(IMG_UINT32 ui32BridgeID,
-				 PVRSRV_BRIDGE_IN_SGXGETMISCINFO *psSGXGetMiscInfoIN,
-				 PVRSRV_BRIDGE_RETURN *psRetOUT,
-				 PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-	IMG_HANDLE hDevMemContextInt = 0;
-	PVRSRV_SGXDEV_INFO *psDevInfo;
-	SGX_MISC_INFO        sMiscInfo;
- 	PVRSRV_DEVICE_NODE *psDeviceNode;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID,
-							PVRSRV_BRIDGE_SGX_GETMISCINFO);
-
-	psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-							&hDevCookieInt,
-							psSGXGetMiscInfoIN->hDevCookie,
-							PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-#if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG)
-	
-	if (psSGXGetMiscInfoIN->psMiscInfo->eRequest == SGX_MISC_INFO_REQUEST_MEMREAD)
-	{
-		psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-								&hDevMemContextInt,
-								psSGXGetMiscInfoIN->psMiscInfo->hDevMemContext,
-								PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-
-		if(psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-#endif
-	
-	psDeviceNode = hDevCookieInt;
-	PVR_ASSERT(psDeviceNode != IMG_NULL);
-	if (psDeviceNode == IMG_NULL)
-	{
-		return -EFAULT;
-	}
-
-	psDevInfo = psDeviceNode->pvDevice;
-
-	
-	psRetOUT->eError = CopyFromUserWrapper(psPerProc,
-			                               ui32BridgeID,
-			                               &sMiscInfo,
-			                               psSGXGetMiscInfoIN->psMiscInfo,
-			                               sizeof(SGX_MISC_INFO));
-	if (psRetOUT->eError != PVRSRV_OK)
-	{
-		return -EFAULT;
-	}
-
-	{
-		psRetOUT->eError = SGXGetMiscInfoKM(psDevInfo, &sMiscInfo, psDeviceNode, hDevMemContextInt);
-
-		if (psRetOUT->eError != PVRSRV_OK)
-		{
-			return 0;
-		}
-	}
-
-	
-	psRetOUT->eError = CopyToUserWrapper(psPerProc,
-		                             ui32BridgeID,
-		                             psSGXGetMiscInfoIN->psMiscInfo,
-		                             &sMiscInfo,
-		                             sizeof(SGX_MISC_INFO));
-	if (psRetOUT->eError != PVRSRV_OK)
-	{
-		return -EFAULT;
-	}
-	return 0;
-}
-
-
-static IMG_INT
-SGXReadHWPerfCBBW(IMG_UINT32							ui32BridgeID,
-				  PVRSRV_BRIDGE_IN_SGX_READ_HWPERF_CB	*psSGXReadHWPerfCBIN,
-				  PVRSRV_BRIDGE_OUT_SGX_READ_HWPERF_CB	*psSGXReadHWPerfCBOUT,
-				  PVRSRV_PER_PROCESS_DATA				*psPerProc)
-{
-	IMG_HANDLE					hDevCookieInt;
-	PVRSRV_SGX_HWPERF_CB_ENTRY	*psAllocated;
-	IMG_HANDLE					hAllocatedHandle;
-	IMG_UINT32					ui32AllocatedSize;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_READ_HWPERF_CB);
-
-	psSGXReadHWPerfCBOUT->eError =PVRSRVLookupHandle(psPerProc->psHandleBase,
-							&hDevCookieInt,
-							psSGXReadHWPerfCBIN->hDevCookie,
-							PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-	if(psSGXReadHWPerfCBOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	ui32AllocatedSize = psSGXReadHWPerfCBIN->ui32ArraySize *
-							sizeof(psSGXReadHWPerfCBIN->psHWPerfCBData[0]);
-	ASSIGN_AND_EXIT_ON_ERROR(psSGXReadHWPerfCBOUT->eError,
-	                    OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-	                    ui32AllocatedSize,
-	                    (IMG_VOID **)&psAllocated,
-	                    &hAllocatedHandle,
-						"Array of Hardware Performance Circular Buffer Data"));
-
-	psSGXReadHWPerfCBOUT->eError = SGXReadHWPerfCBKM(hDevCookieInt,
-													 psSGXReadHWPerfCBIN->ui32ArraySize,
-													 psAllocated,
-													 &psSGXReadHWPerfCBOUT->ui32DataCount,
-													 &psSGXReadHWPerfCBOUT->ui32ClockSpeed,
-													 &psSGXReadHWPerfCBOUT->ui32HostTimeStamp);
-	if (psSGXReadHWPerfCBOUT->eError == PVRSRV_OK)
-	{
-		psSGXReadHWPerfCBOUT->eError = CopyToUserWrapper(psPerProc,
-		                                                 ui32BridgeID,
-		                                                 psSGXReadHWPerfCBIN->psHWPerfCBData,
-		                                                 psAllocated,
-		                                                 ui32AllocatedSize);
-	}
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-			  ui32AllocatedSize,
-			  psAllocated,
-			  hAllocatedHandle);
-	
-
-	return 0;
-}
-
-
-static IMG_INT
-SGXDevInitPart2BW(IMG_UINT32 ui32BridgeID,
-				  PVRSRV_BRIDGE_IN_SGXDEVINITPART2 *psSGXDevInitPart2IN,
-				  PVRSRV_BRIDGE_OUT_SGXDEVINITPART2 *psSGXDevInitPart2OUT,
-				  PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-#if defined (SUPPORT_SID_INTERFACE)
-	PVRSRV_ERROR eError = PVRSRV_OK;
-#else
-	PVRSRV_ERROR eError;
-#endif
-	IMG_BOOL bDissociateFailed = IMG_FALSE;
-	IMG_BOOL bLookupFailed = IMG_FALSE;
-	IMG_BOOL bReleaseFailed = IMG_FALSE;
-	IMG_HANDLE hDummy;
-	IMG_UINT32 i;
-#if defined (SUPPORT_SID_INTERFACE)
-	SGX_BRIDGE_INIT_INFO_KM asInitInfoKM = {0};
-#endif
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_DEVINITPART2);
-
-	
-	psSGXDevInitPart2OUT->ui32KMBuildOptions = SGX_BUILD_OPTIONS;
-
-	if(!psPerProc->bInitProcess)
-	{
-		psSGXDevInitPart2OUT->eError = PVRSRV_ERROR_PROCESS_NOT_INITIALISED;
-		return 0;
-	}
-
-	psSGXDevInitPart2OUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDevCookieInt,
-						   psSGXDevInitPart2IN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psSGXDevInitPart2OUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelCCBMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelCCBCtlMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelCCBEventKickerMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelSGXHostCtlMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelSGXTA3DCtlMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-
-#if defined(FIX_HW_BRN_31272) || defined(FIX_HW_BRN_31780) || defined(FIX_HW_BRN_33920)
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelSGXPTLAWriteBackMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-#endif
-
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelSGXMiscMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-
-#if defined(SGX_SUPPORT_HWPROFILING)
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelHWProfilingMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-#endif
-
-#if defined(SUPPORT_SGX_HWPERF)
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelHWPerfCBMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-#endif
-
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-								&hDummy,
-								psSGXDevInitPart2IN->sInitInfo.hKernelTASigBufferMemInfo,
-								PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-								&hDummy,
-								psSGXDevInitPart2IN->sInitInfo.hKernel3DSigBufferMemInfo,
-								PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-
-#if defined(FIX_HW_BRN_29702)
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelCFIMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-#endif
-
-#if defined(FIX_HW_BRN_29823)
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelDummyTermStreamMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-#endif
-
-
-#if defined(FIX_HW_BRN_31542)
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAVDMStreamMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAIndexStreamMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAPDSMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAUSEMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAParamMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAPMPTMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-	
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWATPCMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAPSGRgnHdrMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-#endif
-
-#if defined(SGX_FEATURE_VDM_CONTEXT_SWITCH) && defined(FIX_HW_BRN_31425)
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelVDMSnapShotBufferMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelVDMCtrlStreamBufferMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-#endif
-#if defined(SGX_FEATURE_VDM_CONTEXT_SWITCH) && \
-	defined(FIX_HW_BRN_33657) && defined(SUPPORT_SECURE_33657_FIX)
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelVDMStateUpdateBufferMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-#endif
-
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDummy,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelEDMStatusBufferMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-#endif
-
-	for (i = 0; i < SGX_MAX_INIT_MEM_HANDLES; i++)
-	{
-#if defined (SUPPORT_SID_INTERFACE)
-		IMG_SID hHandle = psSGXDevInitPart2IN->sInitInfo.asInitMemHandles[i];
-#else
-		IMG_HANDLE hHandle = psSGXDevInitPart2IN->sInitInfo.asInitMemHandles[i];
-#endif
-
-#if defined (SUPPORT_SID_INTERFACE)
-		if (hHandle == 0)
-#else
-		if (hHandle == IMG_NULL)
-#endif
-		{
-			continue;
-		}
-
-		eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-							   &hDummy,
-							   hHandle,
-							   PVRSRV_HANDLE_TYPE_MEM_INFO);
-		if (eError != PVRSRV_OK)
-		{
-			bLookupFailed = IMG_TRUE;
-		}
-	}
-
-	if (bLookupFailed)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "DevInitSGXPart2BW: A handle lookup failed"));
-		psSGXDevInitPart2OUT->eError = PVRSRV_ERROR_INIT2_PHASE_FAILED;
-		return 0;
-	}
-
-	
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelCCBMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelCCBMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelCCBMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelCCBCtlMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelCCBCtlMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelCCBCtlMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelCCBEventKickerMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelCCBEventKickerMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelCCBEventKickerMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-
-
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelSGXHostCtlMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelSGXHostCtlMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelSGXHostCtlMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelSGXTA3DCtlMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelSGXTA3DCtlMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelSGXTA3DCtlMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-
-#if defined(FIX_HW_BRN_31272) || defined(FIX_HW_BRN_31780) || defined(FIX_HW_BRN_33920)
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelSGXPTLAWriteBackMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelSGXPTLAWriteBackMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelSGXPTLAWriteBackMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-#endif
-
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelSGXMiscMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelSGXMiscMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelSGXMiscMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-
-
-#if defined(SGX_SUPPORT_HWPROFILING)
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelHWProfilingMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelHWProfilingMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelHWProfilingMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-#endif
-
-#if defined(SUPPORT_SGX_HWPERF)
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelHWPerfCBMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelHWPerfCBMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelHWPerfCBMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-#endif
-
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-										  &asInitInfoKM.hKernelTASigBufferMemInfo,
-#else
-										  &psSGXDevInitPart2IN->sInitInfo.hKernelTASigBufferMemInfo,
-#endif
-										  psSGXDevInitPart2IN->sInitInfo.hKernelTASigBufferMemInfo,
-										  PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-										  &asInitInfoKM.hKernel3DSigBufferMemInfo,
-#else
-										  &psSGXDevInitPart2IN->sInitInfo.hKernel3DSigBufferMemInfo,
-#endif
-										  psSGXDevInitPart2IN->sInitInfo.hKernel3DSigBufferMemInfo,
-										  PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-
-#if defined(FIX_HW_BRN_29702)
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelCFIMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelCFIMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelCFIMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bLookupFailed = IMG_TRUE;
-	}
-#endif
-
-#if defined(FIX_HW_BRN_29823)
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelDummyTermStreamMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelDummyTermStreamMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelDummyTermStreamMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-#endif
-
-
-#if defined(FIX_HW_BRN_31542)
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelClearClipWAVDMStreamMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAVDMStreamMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAVDMStreamMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelClearClipWAIndexStreamMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAIndexStreamMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAIndexStreamMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelClearClipWAPDSMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAPDSMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAPDSMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelClearClipWAUSEMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAUSEMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAUSEMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelClearClipWAParamMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAParamMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAParamMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelClearClipWAPMPTMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAPMPTMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAPMPTMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelClearClipWATPCMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWATPCMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWATPCMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelClearClipWAPSGRgnHdrMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAPSGRgnHdrMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAPSGRgnHdrMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-#endif
-#if defined(SGX_FEATURE_VDM_CONTEXT_SWITCH) && defined(FIX_HW_BRN_31425)
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelVDMSnapShotBufferMemInfo,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelVDMSnapShotBufferMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelVDMCtrlStreamBufferMemInfo,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelVDMCtrlStreamBufferMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-#endif
-#if defined(SGX_FEATURE_VDM_CONTEXT_SWITCH) && \
-	defined(FIX_HW_BRN_33657) && defined(SUPPORT_SECURE_33657_FIX)
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelVDMStateUpdateBufferMemInfo,
-						   psSGXDevInitPart2IN->sInitInfo.hKernelVDMStateUpdateBufferMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-#endif
-
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
-	eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-						   &asInitInfoKM.hKernelEDMStatusBufferMemInfo,
-#else
-						   &psSGXDevInitPart2IN->sInitInfo.hKernelEDMStatusBufferMemInfo,
-#endif
-						   psSGXDevInitPart2IN->sInitInfo.hKernelEDMStatusBufferMemInfo,
-						   PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if (eError != PVRSRV_OK)
-	{
-		bReleaseFailed = IMG_TRUE;
-	}
-#endif
-
-	for (i = 0; i < SGX_MAX_INIT_MEM_HANDLES; i++)
-	{
-#if defined (SUPPORT_SID_INTERFACE)
-		IMG_SID hHandle = psSGXDevInitPart2IN->sInitInfo.asInitMemHandles[i];
-		IMG_HANDLE *phHandleKM = &asInitInfoKM.asInitMemHandles[i];
-
-		if (hHandle == 0)
-#else
-		IMG_HANDLE *phHandle = &psSGXDevInitPart2IN->sInitInfo.asInitMemHandles[i];
-
-		if (*phHandle == IMG_NULL)
-#endif
-			continue;
-
-		eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase,
-#if defined (SUPPORT_SID_INTERFACE)
-							   phHandleKM,
-							   hHandle,
-#else
-							   phHandle,
-							   *phHandle,
-#endif
-							   PVRSRV_HANDLE_TYPE_MEM_INFO);
-		if (eError != PVRSRV_OK)
-		{
-			bReleaseFailed = IMG_TRUE;
-		}
-	}
-
-	if (bReleaseFailed)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "DevInitSGXPart2BW: A handle release failed"));
-		psSGXDevInitPart2OUT->eError = PVRSRV_ERROR_INIT2_PHASE_FAILED;
-		
-		PVR_DBG_BREAK;
-		return 0;
-	}
-
-	
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelCCBMemInfo);
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelCCBMemInfo);
-#endif
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelCCBCtlMemInfo);
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelCCBCtlMemInfo);
-#endif
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelCCBEventKickerMemInfo);
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelCCBEventKickerMemInfo);
-#endif
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelSGXHostCtlMemInfo);
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelSGXHostCtlMemInfo);
-#endif
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelSGXTA3DCtlMemInfo);
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelSGXTA3DCtlMemInfo);
-#endif
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-
-#if defined(FIX_HW_BRN_31272) || defined(FIX_HW_BRN_31780) || defined(FIX_HW_BRN_33920)
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelSGXPTLAWriteBackMemInfo);
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelSGXPTLAWriteBackMemInfo);
-#endif
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-#endif
-
-	
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelSGXMiscMemInfo);
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelSGXMiscMemInfo);
-#endif
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-
-
-#if defined(SGX_SUPPORT_HWPROFILING)
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelHWProfilingMemInfo);
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelHWProfilingMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
-#endif
-
-#if defined(SUPPORT_SGX_HWPERF)
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelHWPerfCBMemInfo);
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelHWPerfCBMemInfo);
-#endif
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-#endif
-
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelTASigBufferMemInfo);
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelTASigBufferMemInfo);
-#endif
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernel3DSigBufferMemInfo);
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernel3DSigBufferMemInfo);
-#endif
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-
-#if defined(FIX_HW_BRN_29702)
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelCFIMemInfo);
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelCFIMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
-#endif
-
-#if defined(FIX_HW_BRN_29823)
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelDummyTermStreamMemInfo);
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelDummyTermStreamMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
-#endif
-
-#if defined(FIX_HW_BRN_31542)
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelClearClipWAVDMStreamMemInfo);
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAVDMStreamMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelClearClipWAIndexStreamMemInfo);
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAIndexStreamMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelClearClipWAPDSMemInfo);
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAPDSMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelClearClipWAUSEMemInfo);
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAUSEMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelClearClipWAParamMemInfo);
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAParamMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelClearClipWAPMPTMemInfo);
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAPMPTMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelClearClipWATPCMemInfo);
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWATPCMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelClearClipWAPSGRgnHdrMemInfo);
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelClearClipWAPSGRgnHdrMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
-#endif
-
-#if defined(SGX_FEATURE_VDM_CONTEXT_SWITCH) && defined(FIX_HW_BRN_31425)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelVDMSnapShotBufferMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-	
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelVDMCtrlStreamBufferMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
-#if defined(SGX_FEATURE_VDM_CONTEXT_SWITCH) && \
-	defined(FIX_HW_BRN_33657) && defined(SUPPORT_SECURE_33657_FIX)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelVDMStateUpdateBufferMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
-
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
-#if defined (SUPPORT_SID_INTERFACE)
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelEDMStatusBufferMemInfo);
-	if (eError != PVRSRV_OK)
-	{
-		bDissociateFailed = IMG_TRUE;
-	}
-#else
-	eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelEDMStatusBufferMemInfo);
-	bDissociateFailed |= (IMG_BOOL)(eError != PVRSRV_OK);
-#endif
-#endif
-
-	for (i = 0; i < SGX_MAX_INIT_MEM_HANDLES; i++)
-	{
-#if defined (SUPPORT_SID_INTERFACE)
-		IMG_HANDLE hHandle = asInitInfoKM.asInitMemHandles[i];
-#else
-		IMG_HANDLE hHandle = psSGXDevInitPart2IN->sInitInfo.asInitMemHandles[i];
-#endif
-
-		if (hHandle == IMG_NULL)
-			continue;
-
-		eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, hHandle);
-		if (eError != PVRSRV_OK)
-		{
-			bDissociateFailed = IMG_TRUE;
-		}
-	}
-
-	
-	if(bDissociateFailed)
-	{
-#if defined (SUPPORT_SID_INTERFACE)
-		PVRSRVFreeDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelCCBMemInfo);
-		PVRSRVFreeDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelCCBCtlMemInfo);
-		PVRSRVFreeDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelSGXHostCtlMemInfo);
-		PVRSRVFreeDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelSGXTA3DCtlMemInfo);
-#if defined(FIX_HW_BRN_31272) || defined(FIX_HW_BRN_31780) || defined(FIX_HW_BRN_33920)
-		PVRSRVFreeDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelSGXPTLAWriteBackMemInfo);
-#endif
-		PVRSRVFreeDeviceMemKM(hDevCookieInt, asInitInfoKM.hKernelSGXMiscMemInfo);
-#else
-		PVRSRVFreeDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelCCBMemInfo);
-		PVRSRVFreeDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelCCBCtlMemInfo);
-		PVRSRVFreeDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelSGXHostCtlMemInfo);
-		PVRSRVFreeDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelSGXTA3DCtlMemInfo);
-#if defined(FIX_HW_BRN_31272) || defined(FIX_HW_BRN_31780) || defined(FIX_HW_BRN_33920)
-		PVRSRVFreeDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelSGXPTLAWriteBackMemInfo);
-#endif
-		PVRSRVFreeDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelSGXMiscMemInfo);
-#endif
-
-		for (i = 0; i < SGX_MAX_INIT_MEM_HANDLES; i++)
-		{
-#if defined (SUPPORT_SID_INTERFACE)
-			IMG_HANDLE hHandle = asInitInfoKM.asInitMemHandles[i];
-
-			if (hHandle == 0)
-#else
-			IMG_HANDLE hHandle = psSGXDevInitPart2IN->sInitInfo.asInitMemHandles[i];
-
-			if (hHandle == IMG_NULL)
-#endif
-				continue;
-
-			PVRSRVFreeDeviceMemKM(hDevCookieInt, (PVRSRV_KERNEL_MEM_INFO *)hHandle);
-
-		}
-
-		PVR_DPF((PVR_DBG_ERROR, "DevInitSGXPart2BW: A dissociate failed"));
-
-		psSGXDevInitPart2OUT->eError = PVRSRV_ERROR_INIT2_PHASE_FAILED;
-
-		
-		PVR_DBG_BREAK;
-		return 0;
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	asInitInfoKM.sScripts               = psSGXDevInitPart2IN->sInitInfo.sScripts;
-	asInitInfoKM.ui32ClientBuildOptions = psSGXDevInitPart2IN->sInitInfo.ui32ClientBuildOptions;
-	asInitInfoKM.sSGXStructSizes        = psSGXDevInitPart2IN->sInitInfo.sSGXStructSizes;
-	asInitInfoKM.ui32CacheControl       = psSGXDevInitPart2IN->sInitInfo.ui32CacheControl;
-	asInitInfoKM.ui32EDMTaskReg0        = psSGXDevInitPart2IN->sInitInfo.ui32EDMTaskReg0;
-	asInitInfoKM.ui32EDMTaskReg1        = psSGXDevInitPart2IN->sInitInfo.ui32EDMTaskReg1;
-	asInitInfoKM.ui32ClkGateStatusReg   = psSGXDevInitPart2IN->sInitInfo.ui32ClkGateStatusReg;
-	asInitInfoKM.ui32ClkGateStatusMask  = psSGXDevInitPart2IN->sInitInfo.ui32ClkGateStatusMask;
-
-	OSMemCopy(&asInitInfoKM.asInitDevData ,
-			  &psSGXDevInitPart2IN->sInitInfo.asInitDevData,
-			  sizeof(asInitInfoKM.asInitDevData));
-	OSMemCopy(&asInitInfoKM.aui32HostKickAddr,
-			  &psSGXDevInitPart2IN->sInitInfo.aui32HostKickAddr,
-			  sizeof(asInitInfoKM.aui32HostKickAddr));
-
-	psSGXDevInitPart2OUT->eError =
-		DevInitSGXPart2KM(psPerProc,
-						  hDevCookieInt,
-						  &asInitInfoKM);
-#else
-	psSGXDevInitPart2OUT->eError =
-		DevInitSGXPart2KM(psPerProc,
-						  hDevCookieInt,
-						  &psSGXDevInitPart2IN->sInitInfo);
-#endif
-
-	return 0;
-}
-
-
-static IMG_INT
-SGXRegisterHWRenderContextBW(IMG_UINT32 ui32BridgeID,
-							 PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_RENDER_CONTEXT *psSGXRegHWRenderContextIN,
-							 PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_RENDER_CONTEXT *psSGXRegHWRenderContextOUT,
-							 PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-	IMG_HANDLE hHWRenderContextInt;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_REGISTER_HW_RENDER_CONTEXT);
-
-	NEW_HANDLE_BATCH_OR_ERROR(psSGXRegHWRenderContextOUT->eError, psPerProc, 1);
-
-	psSGXRegHWRenderContextOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDevCookieInt,
-						   psSGXRegHWRenderContextIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psSGXRegHWRenderContextOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	hHWRenderContextInt =
-		SGXRegisterHWRenderContextKM(hDevCookieInt,
-									 &psSGXRegHWRenderContextIN->sHWRenderContextDevVAddr,
-									 psPerProc);
-
-	if (hHWRenderContextInt == IMG_NULL)
-	{
-		psSGXRegHWRenderContextOUT->eError = PVRSRV_ERROR_UNABLE_TO_REGISTER_CONTEXT;
-		return 0;
-	}
-
-	PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-					  &psSGXRegHWRenderContextOUT->hHWRenderContext,
-					  hHWRenderContextInt,
-					  PVRSRV_HANDLE_TYPE_SGX_HW_RENDER_CONTEXT,
-					  PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-
-	COMMIT_HANDLE_BATCH_OR_ERROR(psSGXRegHWRenderContextOUT->eError, psPerProc);
-
-	return 0;
-}
-
-
-static IMG_INT
-SGXUnregisterHWRenderContextBW(IMG_UINT32 ui32BridgeID,
-							   PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_RENDER_CONTEXT *psSGXUnregHWRenderContextIN,
-							   PVRSRV_BRIDGE_RETURN *psRetOUT,
-							   PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hHWRenderContextInt;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_UNREGISTER_HW_RENDER_CONTEXT);
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hHWRenderContextInt,
-						   psSGXUnregHWRenderContextIN->hHWRenderContext,
-						   PVRSRV_HANDLE_TYPE_SGX_HW_RENDER_CONTEXT);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psRetOUT->eError = SGXUnregisterHWRenderContextKM(hHWRenderContextInt,
-													  psSGXUnregHWRenderContextIN->bForceCleanup);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psRetOUT->eError =
-		PVRSRVReleaseHandle(psPerProc->psHandleBase,
-							psSGXUnregHWRenderContextIN->hHWRenderContext,
-							PVRSRV_HANDLE_TYPE_SGX_HW_RENDER_CONTEXT);
-
-	return 0;
-}
-
-
-static IMG_INT
-SGXRegisterHWTransferContextBW(IMG_UINT32 ui32BridgeID,
-							 PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_TRANSFER_CONTEXT *psSGXRegHWTransferContextIN,
-							 PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_TRANSFER_CONTEXT *psSGXRegHWTransferContextOUT,
-							 PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-	IMG_HANDLE hHWTransferContextInt;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_REGISTER_HW_TRANSFER_CONTEXT);
-
-	NEW_HANDLE_BATCH_OR_ERROR(psSGXRegHWTransferContextOUT->eError, psPerProc, 1);
-
-	psSGXRegHWTransferContextOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDevCookieInt,
-						   psSGXRegHWTransferContextIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psSGXRegHWTransferContextOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	hHWTransferContextInt =
-		SGXRegisterHWTransferContextKM(hDevCookieInt,
-									   &psSGXRegHWTransferContextIN->sHWTransferContextDevVAddr,
-									   psPerProc);
-
-	if (hHWTransferContextInt == IMG_NULL)
-	{
-		psSGXRegHWTransferContextOUT->eError = PVRSRV_ERROR_UNABLE_TO_REGISTER_CONTEXT;
-		return 0;
-	}
-
-	PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-					  &psSGXRegHWTransferContextOUT->hHWTransferContext,
-					  hHWTransferContextInt,
-					  PVRSRV_HANDLE_TYPE_SGX_HW_TRANSFER_CONTEXT,
-					  PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-
-	COMMIT_HANDLE_BATCH_OR_ERROR(psSGXRegHWTransferContextOUT->eError, psPerProc);
-
-	return 0;
-}
-
-
-static IMG_INT
-SGXUnregisterHWTransferContextBW(IMG_UINT32 ui32BridgeID,
-							   PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_TRANSFER_CONTEXT *psSGXUnregHWTransferContextIN,
-							   PVRSRV_BRIDGE_RETURN *psRetOUT,
-							   PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_HANDLE hHWTransferContextInt = 0;
-#else
-	IMG_HANDLE hHWTransferContextInt;
-#endif
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_UNREGISTER_HW_TRANSFER_CONTEXT);
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hHWTransferContextInt,
-						   psSGXUnregHWTransferContextIN->hHWTransferContext,
-						   PVRSRV_HANDLE_TYPE_SGX_HW_TRANSFER_CONTEXT);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psRetOUT->eError = SGXUnregisterHWTransferContextKM(hHWTransferContextInt,
-														psSGXUnregHWTransferContextIN->bForceCleanup);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psRetOUT->eError =
-		PVRSRVReleaseHandle(psPerProc->psHandleBase,
-							psSGXUnregHWTransferContextIN->hHWTransferContext,
-							PVRSRV_HANDLE_TYPE_SGX_HW_TRANSFER_CONTEXT);
-
-	return 0;
-}
-
-
-#if defined(SGX_FEATURE_2D_HARDWARE)
-static IMG_INT
-SGXRegisterHW2DContextBW(IMG_UINT32 ui32BridgeID,
-							 PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_2D_CONTEXT *psSGXRegHW2DContextIN,
-							 PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_2D_CONTEXT *psSGXRegHW2DContextOUT,
-							 PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-	IMG_HANDLE hHW2DContextInt;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_REGISTER_HW_2D_CONTEXT);
-
-	NEW_HANDLE_BATCH_OR_ERROR(psSGXRegHW2DContextOUT->eError, psPerProc, 1);
-
-	psSGXRegHW2DContextOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDevCookieInt,
-						   psSGXRegHW2DContextIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psSGXRegHW2DContextOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	hHW2DContextInt =
-		SGXRegisterHW2DContextKM(hDevCookieInt,
-								 &psSGXRegHW2DContextIN->sHW2DContextDevVAddr,
-								 psPerProc);
-
-	if (hHW2DContextInt == IMG_NULL)
-	{
-		psSGXRegHW2DContextOUT->eError = PVRSRV_ERROR_UNABLE_TO_REGISTER_CONTEXT;
-		return 0;
-	}
-
-	PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-					  &psSGXRegHW2DContextOUT->hHW2DContext,
-					  hHW2DContextInt,
-					  PVRSRV_HANDLE_TYPE_SGX_HW_2D_CONTEXT,
-					  PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-
-	COMMIT_HANDLE_BATCH_OR_ERROR(psSGXRegHW2DContextOUT->eError, psPerProc);
-
-	return 0;
-}
-
-
-static IMG_INT
-SGXUnregisterHW2DContextBW(IMG_UINT32 ui32BridgeID,
-							   PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_2D_CONTEXT *psSGXUnregHW2DContextIN,
-							   PVRSRV_BRIDGE_RETURN *psRetOUT,
-							   PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hHW2DContextInt;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_UNREGISTER_HW_2D_CONTEXT);
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hHW2DContextInt,
-						   psSGXUnregHW2DContextIN->hHW2DContext,
-						   PVRSRV_HANDLE_TYPE_SGX_HW_2D_CONTEXT);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psRetOUT->eError = SGXUnregisterHW2DContextKM(hHW2DContextInt,
-												  psSGXUnregHW2DContextIN->bForceCleanup);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psRetOUT->eError =
-		PVRSRVReleaseHandle(psPerProc->psHandleBase,
-							psSGXUnregHW2DContextIN->hHW2DContext,
-							PVRSRV_HANDLE_TYPE_SGX_HW_2D_CONTEXT);
-
-	return 0;
-}
-#endif 
-
-static IMG_INT
-SGXFlushHWRenderTargetBW(IMG_UINT32 ui32BridgeID,
-						  PVRSRV_BRIDGE_IN_SGX_FLUSH_HW_RENDER_TARGET *psSGXFlushHWRenderTargetIN,
-						  PVRSRV_BRIDGE_RETURN *psRetOUT,
-						  PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_FLUSH_HW_RENDER_TARGET);
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDevCookieInt,
-						   psSGXFlushHWRenderTargetIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psRetOUT->eError = SGXFlushHWRenderTargetKM(hDevCookieInt, psSGXFlushHWRenderTargetIN->sHWRTDataSetDevVAddr, IMG_FALSE);
-
-	return 0;
-}
-
-
-static IMG_INT
-SGX2DQueryBlitsCompleteBW(IMG_UINT32 ui32BridgeID,
-						  PVRSRV_BRIDGE_IN_2DQUERYBLTSCOMPLETE *ps2DQueryBltsCompleteIN,
-						  PVRSRV_BRIDGE_RETURN *psRetOUT,
-						  PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-	IMG_VOID *pvSyncInfo;
-	PVRSRV_SGXDEV_INFO *psDevInfo;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_2DQUERYBLTSCOMPLETE);
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDevCookieInt,
-						   ps2DQueryBltsCompleteIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &pvSyncInfo,
-						   ps2DQueryBltsCompleteIN->hKernSyncInfo,
-						   PVRSRV_HANDLE_TYPE_SYNC_INFO);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psDevInfo = (PVRSRV_SGXDEV_INFO *)((PVRSRV_DEVICE_NODE *)hDevCookieInt)->pvDevice;
-
-	psRetOUT->eError =
-		SGX2DQueryBlitsCompleteKM(psDevInfo,
-								  (PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo,
-								  ps2DQueryBltsCompleteIN->bWaitForComplete);
-
-	return 0;
-}
-
-
-static IMG_INT
-SGXFindSharedPBDescBW(IMG_UINT32 ui32BridgeID,
-					  PVRSRV_BRIDGE_IN_SGXFINDSHAREDPBDESC *psSGXFindSharedPBDescIN,
-					  PVRSRV_BRIDGE_OUT_SGXFINDSHAREDPBDESC *psSGXFindSharedPBDescOUT,
-					  PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-	PVRSRV_KERNEL_MEM_INFO *psSharedPBDescKernelMemInfo;
-	PVRSRV_KERNEL_MEM_INFO *psHWPBDescKernelMemInfo;
-	PVRSRV_KERNEL_MEM_INFO *psBlockKernelMemInfo;
-	PVRSRV_KERNEL_MEM_INFO *psHWBlockKernelMemInfo;
-	PVRSRV_KERNEL_MEM_INFO **ppsSharedPBDescSubKernelMemInfos = IMG_NULL;
-	IMG_UINT32 ui32SharedPBDescSubKernelMemInfosCount = 0;
-	IMG_UINT32 i;
-	IMG_HANDLE hSharedPBDesc = IMG_NULL;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_FINDSHAREDPBDESC);
-
-	NEW_HANDLE_BATCH_OR_ERROR(psSGXFindSharedPBDescOUT->eError, psPerProc, PVRSRV_BRIDGE_SGX_SHAREDPBDESC_MAX_SUBMEMINFOS + 4);
-
-	psSGXFindSharedPBDescOUT->hSharedPBDesc = IMG_NULL;
-
-	psSGXFindSharedPBDescOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hDevCookieInt,
-						   psSGXFindSharedPBDescIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psSGXFindSharedPBDescOUT->eError != PVRSRV_OK)
-		goto PVRSRV_BRIDGE_SGX_FINDSHAREDPBDESC_EXIT;
-
-	psSGXFindSharedPBDescOUT->eError =
-		SGXFindSharedPBDescKM(psPerProc, hDevCookieInt,
-							  psSGXFindSharedPBDescIN->bLockOnFailure,
-							  psSGXFindSharedPBDescIN->ui32TotalPBSize,
-							  &hSharedPBDesc,
-							  &psSharedPBDescKernelMemInfo,
-							  &psHWPBDescKernelMemInfo,
-							  &psBlockKernelMemInfo,
-							  &psHWBlockKernelMemInfo,
-							  &ppsSharedPBDescSubKernelMemInfos,
-							  &ui32SharedPBDescSubKernelMemInfosCount);
-	if(psSGXFindSharedPBDescOUT->eError != PVRSRV_OK)
-		goto PVRSRV_BRIDGE_SGX_FINDSHAREDPBDESC_EXIT;
-
-	PVR_ASSERT(ui32SharedPBDescSubKernelMemInfosCount
-			   <= PVRSRV_BRIDGE_SGX_SHAREDPBDESC_MAX_SUBMEMINFOS);
-
-	psSGXFindSharedPBDescOUT->ui32SharedPBDescSubKernelMemInfoHandlesCount =
-		ui32SharedPBDescSubKernelMemInfosCount;
-
-	if(hSharedPBDesc == IMG_NULL)
-	{
-		psSGXFindSharedPBDescOUT->hSharedPBDescKernelMemInfoHandle = 0;
-		
-		goto PVRSRV_BRIDGE_SGX_FINDSHAREDPBDESC_EXIT;
-	}
-
-	PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-					  &psSGXFindSharedPBDescOUT->hSharedPBDesc,
-					  hSharedPBDesc,
-					  PVRSRV_HANDLE_TYPE_SHARED_PB_DESC,
-					  PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-
-	
-	PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-					  &psSGXFindSharedPBDescOUT->hSharedPBDescKernelMemInfoHandle,
-					  psSharedPBDescKernelMemInfo,
-					  PVRSRV_HANDLE_TYPE_MEM_INFO_REF,
-					  PVRSRV_HANDLE_ALLOC_FLAG_MULTI,
-					  psSGXFindSharedPBDescOUT->hSharedPBDesc);
-
-	PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-					  &psSGXFindSharedPBDescOUT->hHWPBDescKernelMemInfoHandle,
-					  psHWPBDescKernelMemInfo,
-					  PVRSRV_HANDLE_TYPE_MEM_INFO_REF,
-					  PVRSRV_HANDLE_ALLOC_FLAG_MULTI,
-					  psSGXFindSharedPBDescOUT->hSharedPBDesc);
-
-	PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-				  &psSGXFindSharedPBDescOUT->hBlockKernelMemInfoHandle,
-				  psBlockKernelMemInfo,
-				  PVRSRV_HANDLE_TYPE_MEM_INFO_REF,
-				  PVRSRV_HANDLE_ALLOC_FLAG_MULTI,
-				  psSGXFindSharedPBDescOUT->hSharedPBDesc);
-
-	PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-				  &psSGXFindSharedPBDescOUT->hHWBlockKernelMemInfoHandle,
-				  psHWBlockKernelMemInfo,
-				  PVRSRV_HANDLE_TYPE_MEM_INFO_REF,
-				  PVRSRV_HANDLE_ALLOC_FLAG_MULTI,
-				  psSGXFindSharedPBDescOUT->hSharedPBDesc);
-
-
-	for(i=0; i<ui32SharedPBDescSubKernelMemInfosCount; i++)
-	{
-		PVRSRV_BRIDGE_OUT_SGXFINDSHAREDPBDESC *psSGXFindSharedPBDescOut =
-			psSGXFindSharedPBDescOUT;
-
-			PVRSRVAllocSubHandleNR(psPerProc->psHandleBase,
-							  &psSGXFindSharedPBDescOut->ahSharedPBDescSubKernelMemInfoHandles[i],
-							  ppsSharedPBDescSubKernelMemInfos[i],
-							  PVRSRV_HANDLE_TYPE_MEM_INFO_REF,
-							  PVRSRV_HANDLE_ALLOC_FLAG_MULTI,
-							  psSGXFindSharedPBDescOUT->hSharedPBDescKernelMemInfoHandle);
-	}
-
-PVRSRV_BRIDGE_SGX_FINDSHAREDPBDESC_EXIT:
-	if (ppsSharedPBDescSubKernelMemInfos != IMG_NULL)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  sizeof(PVRSRV_KERNEL_MEM_INFO *) * ui32SharedPBDescSubKernelMemInfosCount,
-				  ppsSharedPBDescSubKernelMemInfos,
-				  IMG_NULL);
-	}
-
-	if(psSGXFindSharedPBDescOUT->eError != PVRSRV_OK)
-	{
-		if(hSharedPBDesc != IMG_NULL)
-		{
-			SGXUnrefSharedPBDescKM(hSharedPBDesc);
-		}
-	}
-	else
-	{
-		COMMIT_HANDLE_BATCH_OR_ERROR(psSGXFindSharedPBDescOUT->eError, psPerProc);
-	}
-
-	return 0;
-}
-
-
-static IMG_INT
-SGXUnrefSharedPBDescBW(IMG_UINT32 ui32BridgeID,
-					   PVRSRV_BRIDGE_IN_SGXUNREFSHAREDPBDESC *psSGXUnrefSharedPBDescIN,
-					   PVRSRV_BRIDGE_OUT_SGXUNREFSHAREDPBDESC *psSGXUnrefSharedPBDescOUT,
-					   PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hSharedPBDesc;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_UNREFSHAREDPBDESC);
-
-	psSGXUnrefSharedPBDescOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   &hSharedPBDesc,
-						   psSGXUnrefSharedPBDescIN->hSharedPBDesc,
-						   PVRSRV_HANDLE_TYPE_SHARED_PB_DESC);
-	if(psSGXUnrefSharedPBDescOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psSGXUnrefSharedPBDescOUT->eError =
-		SGXUnrefSharedPBDescKM(hSharedPBDesc);
-
-	if(psSGXUnrefSharedPBDescOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psSGXUnrefSharedPBDescOUT->eError =
-		PVRSRVReleaseHandle(psPerProc->psHandleBase,
-						   psSGXUnrefSharedPBDescIN->hSharedPBDesc,
-						   PVRSRV_HANDLE_TYPE_SHARED_PB_DESC);
-
-	return 0;
-}
-
-
-static IMG_INT
-SGXAddSharedPBDescBW(IMG_UINT32 ui32BridgeID,
-					 PVRSRV_BRIDGE_IN_SGXADDSHAREDPBDESC *psSGXAddSharedPBDescIN,
-					 PVRSRV_BRIDGE_OUT_SGXADDSHAREDPBDESC *psSGXAddSharedPBDescOUT,
-					 PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-	PVRSRV_KERNEL_MEM_INFO *psSharedPBDescKernelMemInfo;
-	PVRSRV_KERNEL_MEM_INFO *psHWPBDescKernelMemInfo;
-	PVRSRV_KERNEL_MEM_INFO *psBlockKernelMemInfo;
-	PVRSRV_KERNEL_MEM_INFO *psHWBlockKernelMemInfo;
-	IMG_UINT32 ui32KernelMemInfoHandlesCount =
-		psSGXAddSharedPBDescIN->ui32KernelMemInfoHandlesCount;
-	IMG_INT ret = 0;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID *phKernelMemInfoHandles = 0;
-#else
-	IMG_HANDLE *phKernelMemInfoHandles = IMG_NULL;
-#endif
-	PVRSRV_KERNEL_MEM_INFO **ppsKernelMemInfos = IMG_NULL;
-	IMG_UINT32 i;
-	PVRSRV_ERROR eError;
-	IMG_HANDLE hSharedPBDesc = IMG_NULL;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC);
-
-	NEW_HANDLE_BATCH_OR_ERROR(psSGXAddSharedPBDescOUT->eError, psPerProc, 1);
-
-	psSGXAddSharedPBDescOUT->hSharedPBDesc = IMG_NULL;
-
-	PVR_ASSERT(ui32KernelMemInfoHandlesCount
-			   <= PVRSRV_BRIDGE_SGX_SHAREDPBDESC_MAX_SUBMEMINFOS);
-
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-								&hDevCookieInt,
-								psSGXAddSharedPBDescIN->hDevCookie,
-								PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(eError != PVRSRV_OK)
-	{
-		goto PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC_RETURN_RESULT;
-	}
-
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-								(IMG_VOID **)&psSharedPBDescKernelMemInfo,
-								psSGXAddSharedPBDescIN->hSharedPBDescKernelMemInfo,
-								PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO);
-	if(eError != PVRSRV_OK)
-	{
-		goto PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC_RETURN_RESULT;
-	}
-
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-								(IMG_VOID **)&psHWPBDescKernelMemInfo,
-								psSGXAddSharedPBDescIN->hHWPBDescKernelMemInfo,
-								PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if(eError != PVRSRV_OK)
-	{
-		goto PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC_RETURN_RESULT;
-	}
-
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-								(IMG_VOID **)&psBlockKernelMemInfo,
-								psSGXAddSharedPBDescIN->hBlockKernelMemInfo,
-								PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO);
-	if(eError != PVRSRV_OK)
-	{
-		goto PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC_RETURN_RESULT;
-	}
-
-	eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-								(IMG_VOID **)&psHWBlockKernelMemInfo,
-								psSGXAddSharedPBDescIN->hHWBlockKernelMemInfo,
-								PVRSRV_HANDLE_TYPE_MEM_INFO);
-	if(eError != PVRSRV_OK)
-	{
-		goto PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC_RETURN_RESULT;
-	}
-
-
-	if(!OSAccessOK(PVR_VERIFY_READ,
-				   psSGXAddSharedPBDescIN->phKernelMemInfoHandles,
-				   ui32KernelMemInfoHandlesCount * sizeof(IMG_HANDLE)))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "%s: PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC:"
-				 " Invalid phKernelMemInfos pointer", __FUNCTION__));
-		ret = -EFAULT;
-		goto PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC_RETURN_RESULT;
-	}
-
-	eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  ui32KernelMemInfoHandlesCount * sizeof(IMG_HANDLE),
-				  (IMG_VOID **)&phKernelMemInfoHandles,
-				  0,
-				  "Array of Handles");
-	if (eError != PVRSRV_OK)
-	{
-		goto PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC_RETURN_RESULT;
-	}
-
-	if(CopyFromUserWrapper(psPerProc,
-			               ui32BridgeID,
-			               phKernelMemInfoHandles,
-						   psSGXAddSharedPBDescIN->phKernelMemInfoHandles,
-						   ui32KernelMemInfoHandlesCount * sizeof(IMG_HANDLE))
-	   != PVRSRV_OK)
-	{
-		ret = -EFAULT;
-		goto PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC_RETURN_RESULT;
-	}
-
-	eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  ui32KernelMemInfoHandlesCount * sizeof(PVRSRV_KERNEL_MEM_INFO *),
-				  (IMG_VOID **)&ppsKernelMemInfos,
-				  0,
-				  "Array of pointers to Kernel Memory Info");
-	if (eError != PVRSRV_OK)
-	{
-		goto PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC_RETURN_RESULT;
-	}
-
-	for(i=0; i<ui32KernelMemInfoHandlesCount; i++)
-	{
-		eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-									(IMG_VOID **)&ppsKernelMemInfos[i],
-									phKernelMemInfoHandles[i],
-									PVRSRV_HANDLE_TYPE_MEM_INFO);
-		if(eError != PVRSRV_OK)
-		{
-			goto PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC_RETURN_RESULT;
-		}
-	}
-
-	
-	 
-	eError = PVRSRVReleaseHandle(psPerProc->psHandleBase,
-								psSGXAddSharedPBDescIN->hSharedPBDescKernelMemInfo,
-								PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO);
-	PVR_ASSERT(eError == PVRSRV_OK);
-
-	 
-	eError = PVRSRVReleaseHandle(psPerProc->psHandleBase,
-								psSGXAddSharedPBDescIN->hHWPBDescKernelMemInfo,
-								PVRSRV_HANDLE_TYPE_MEM_INFO);
-	PVR_ASSERT(eError == PVRSRV_OK);
-
-	 
-	eError = PVRSRVReleaseHandle(psPerProc->psHandleBase,
-								psSGXAddSharedPBDescIN->hBlockKernelMemInfo,
-								PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO);
-	PVR_ASSERT(eError == PVRSRV_OK);
-
-	 
-	eError = PVRSRVReleaseHandle(psPerProc->psHandleBase,
-								psSGXAddSharedPBDescIN->hHWBlockKernelMemInfo,
-								PVRSRV_HANDLE_TYPE_MEM_INFO);
-	PVR_ASSERT(eError == PVRSRV_OK);
-
-	for(i=0; i<ui32KernelMemInfoHandlesCount; i++)
-	{
-		 
-		eError = PVRSRVReleaseHandle(psPerProc->psHandleBase,
-									phKernelMemInfoHandles[i],
-									PVRSRV_HANDLE_TYPE_MEM_INFO);
-		PVR_ASSERT(eError == PVRSRV_OK);
-	}
-
-	eError = SGXAddSharedPBDescKM(psPerProc, hDevCookieInt,
-								  psSharedPBDescKernelMemInfo,
-								  psHWPBDescKernelMemInfo,
-								  psBlockKernelMemInfo,
-								  psHWBlockKernelMemInfo,
-								  psSGXAddSharedPBDescIN->ui32TotalPBSize,
-								  &hSharedPBDesc,
-								  ppsKernelMemInfos,
-								  ui32KernelMemInfoHandlesCount,
-								  psSGXAddSharedPBDescIN->sHWPBDescDevVAddr);
-
-
-	if (eError != PVRSRV_OK)
-	{
-		goto PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC_RETURN_RESULT;
-	}
-
-	PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-				  &psSGXAddSharedPBDescOUT->hSharedPBDesc,
-				  hSharedPBDesc,
-				  PVRSRV_HANDLE_TYPE_SHARED_PB_DESC,
-				  PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-
-PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC_RETURN_RESULT:
-
-	if(phKernelMemInfoHandles)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  psSGXAddSharedPBDescIN->ui32KernelMemInfoHandlesCount * sizeof(IMG_HANDLE),
-				  (IMG_VOID *)phKernelMemInfoHandles,
-				  0);
-	}
-	if(ppsKernelMemInfos)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  psSGXAddSharedPBDescIN->ui32KernelMemInfoHandlesCount * sizeof(PVRSRV_KERNEL_MEM_INFO *),
-				  (IMG_VOID *)ppsKernelMemInfos,
-				  0);
-	}
-
-	if(ret == 0 && eError == PVRSRV_OK)
-	{
-		COMMIT_HANDLE_BATCH_OR_ERROR(psSGXAddSharedPBDescOUT->eError, psPerProc);
-	}
-
-	psSGXAddSharedPBDescOUT->eError = eError;
-
-	return ret;
-}
-
-static IMG_INT
-SGXGetInfoForSrvinitBW(IMG_UINT32 ui32BridgeID,
-					   PVRSRV_BRIDGE_IN_SGXINFO_FOR_SRVINIT *psSGXInfoForSrvinitIN,
-					   PVRSRV_BRIDGE_OUT_SGXINFO_FOR_SRVINIT *psSGXInfoForSrvinitOUT,
-					   PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_HANDLE hDevCookieInt;
-	IMG_UINT32 i;
-#if defined (SUPPORT_SID_INTERFACE)
-	PVRSRV_HEAP_INFO_KM asHeapInfo[PVRSRV_MAX_CLIENT_HEAPS];
-#endif
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGXINFO_FOR_SRVINIT);
-
-	NEW_HANDLE_BATCH_OR_ERROR(psSGXInfoForSrvinitOUT->eError, psPerProc, PVRSRV_MAX_CLIENT_HEAPS);
-
-	if(!psPerProc->bInitProcess)
-	{
-		psSGXInfoForSrvinitOUT->eError = PVRSRV_ERROR_PROCESS_NOT_INITIALISED;
-		return 0;
-	}
-
-	psSGXInfoForSrvinitOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt,
-						   psSGXInfoForSrvinitIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-
-	if(psSGXInfoForSrvinitOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psSGXInfoForSrvinitOUT->eError =
-		SGXGetInfoForSrvinitKM(hDevCookieInt,
-#if defined (SUPPORT_SID_INTERFACE)
-							   &asHeapInfo[0],
-							   &psSGXInfoForSrvinitOUT->sInitInfo.sPDDevPAddr);
-#else
-							   &psSGXInfoForSrvinitOUT->sInitInfo);
-#endif
-
-	if(psSGXInfoForSrvinitOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	for(i = 0; i < PVRSRV_MAX_CLIENT_HEAPS; i++)
-	{
-		PVRSRV_HEAP_INFO *psHeapInfo;
-
-		psHeapInfo = &psSGXInfoForSrvinitOUT->sInitInfo.asHeapInfo[i];
-
-#if defined (SUPPORT_SID_INTERFACE)
-		if ((asHeapInfo[i].ui32HeapID != (IMG_UINT32)SGX_UNDEFINED_HEAP_ID) &&
-			(asHeapInfo[i].hDevMemHeap != IMG_NULL))
-		{
-			
-			PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-							  &psHeapInfo->hDevMemHeap,
-							  asHeapInfo[i].hDevMemHeap,
-							  PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP,
-							  PVRSRV_HANDLE_ALLOC_FLAG_SHARED);
-		}
-		else
-		{
-			psHeapInfo->hDevMemHeap = 0;
-		}
-
-		psHeapInfo->ui32HeapID       = asHeapInfo[i].ui32HeapID;
-		psHeapInfo->sDevVAddrBase    = asHeapInfo[i].sDevVAddrBase;
-		psHeapInfo->ui32HeapByteSize = asHeapInfo[i].ui32HeapByteSize;
-		psHeapInfo->ui32Attribs      = asHeapInfo[i].ui32Attribs;
-		psHeapInfo->ui32XTileStride  = asHeapInfo[i].ui32XTileStride;
-#else
-		if (psHeapInfo->ui32HeapID != (IMG_UINT32)SGX_UNDEFINED_HEAP_ID)
-		{
-			IMG_HANDLE hDevMemHeapExt;
-
-			if (psHeapInfo->hDevMemHeap != IMG_NULL)
-			{
-				
-				PVRSRVAllocHandleNR(psPerProc->psHandleBase,
-								  &hDevMemHeapExt,
-								  psHeapInfo->hDevMemHeap,
-								  PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP,
-								  PVRSRV_HANDLE_ALLOC_FLAG_SHARED);
-				psHeapInfo->hDevMemHeap = hDevMemHeapExt;
-			}
-		}
-#endif
-	}
-
-	COMMIT_HANDLE_BATCH_OR_ERROR(psSGXInfoForSrvinitOUT->eError, psPerProc);
-
-	return 0;
-}
-
-#if defined(PDUMP)
-static IMG_VOID
-DumpBufferArray(PVRSRV_PER_PROCESS_DATA   *psPerProc,
-#if defined (SUPPORT_SID_INTERFACE)
-				PSGX_KICKTA_DUMP_BUFFER_KM psBufferArray,
-#else
-				PSGX_KICKTA_DUMP_BUFFER	psBufferArray,
-#endif
-				IMG_UINT32                 ui32BufferArrayLength,
-				IMG_BOOL                   bDumpPolls)
-{
-	IMG_UINT32	i;
-
-	for (i=0; i<ui32BufferArrayLength; i++)
-	{
-#if defined (SUPPORT_SID_INTERFACE)
-		PSGX_KICKTA_DUMP_BUFFER_KM psBuffer;
-#else
-		PSGX_KICKTA_DUMP_BUFFER	psBuffer;
-#endif
-		PVRSRV_KERNEL_MEM_INFO    *psCtrlMemInfoKM;
-		IMG_CHAR * pszName;
-		IMG_HANDLE hUniqueTag;
-		IMG_UINT32	ui32Offset;
-
-		psBuffer = &psBufferArray[i];
-		pszName = psBuffer->pszName;
-		if (!pszName)
-		{
-			pszName = "Nameless buffer";
-		}
-
-		hUniqueTag = MAKEUNIQUETAG((PVRSRV_KERNEL_MEM_INFO *)psBuffer->hKernelMemInfo);
-
-	#if defined(SUPPORT_SGX_NEW_STATUS_VALS)
-		psCtrlMemInfoKM	= ((PVRSRV_KERNEL_MEM_INFO *)psBuffer->hCtrlKernelMemInfo);
-		ui32Offset =  psBuffer->sCtrlDevVAddr.uiAddr - psCtrlMemInfoKM->sDevVAddr.uiAddr;
-	#else
-		psCtrlMemInfoKM = ((PVRSRV_KERNEL_MEM_INFO *)psBuffer->hKernelMemInfo)->psKernelSyncInfo->psSyncDataMemInfoKM;
-		ui32Offset = offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete);
-	#endif
-
-		if (psBuffer->ui32Start <= psBuffer->ui32End)
-		{
-			if (bDumpPolls)
-			{
-				PDUMPCOMMENTWITHFLAGS(0, "Wait for %s space\r\n", pszName);
-				PDUMPCBP(psCtrlMemInfoKM,
-						 ui32Offset,
-						 psBuffer->ui32Start,
-						 psBuffer->ui32SpaceUsed,
-						 psBuffer->ui32BufferSize,
-						 0,
-						 MAKEUNIQUETAG(psCtrlMemInfoKM));
-			}
-
-			PDUMPCOMMENTWITHFLAGS(0, "%s\r\n", pszName);
-			PDUMPMEMUM(psPerProc,
-					 IMG_NULL,
-					 psBuffer->pvLinAddr,
-					 (PVRSRV_KERNEL_MEM_INFO*)psBuffer->hKernelMemInfo,
-					 psBuffer->ui32Start,
-					 psBuffer->ui32End - psBuffer->ui32Start,
-					 0,
-					 hUniqueTag);
-		}
-		else
-		{
-			
-
-			if (bDumpPolls)
-			{
-				PDUMPCOMMENTWITHFLAGS(0, "Wait for %s space\r\n", pszName);
-				PDUMPCBP(psCtrlMemInfoKM,
-						 ui32Offset,
-						 psBuffer->ui32Start,
-						 psBuffer->ui32BackEndLength,
-						 psBuffer->ui32BufferSize,
-						 0,
-						 MAKEUNIQUETAG(psCtrlMemInfoKM));
-			}
-			PDUMPCOMMENTWITHFLAGS(0, "%s (part 1)\r\n", pszName);
-			PDUMPMEMUM(psPerProc,
-					 IMG_NULL,
-					 psBuffer->pvLinAddr,
-					 (PVRSRV_KERNEL_MEM_INFO*)psBuffer->hKernelMemInfo,
-					 psBuffer->ui32Start,
-					 psBuffer->ui32BackEndLength,
-					 0,
-					 hUniqueTag);
-
-			if (bDumpPolls)
-			{
-				PDUMPMEMPOL(psCtrlMemInfoKM,
-							ui32Offset,
-							0,
-							0xFFFFFFFF,
-							PDUMP_POLL_OPERATOR_NOTEQUAL,
-							0,
-							MAKEUNIQUETAG(psCtrlMemInfoKM));
-
-				PDUMPCOMMENTWITHFLAGS(0, "Wait for %s space\r\n", pszName);
-				PDUMPCBP(psCtrlMemInfoKM,
-						 ui32Offset,
-						 0,
-						 psBuffer->ui32End,
-						 psBuffer->ui32BufferSize,
-						 0,
-						 MAKEUNIQUETAG(psCtrlMemInfoKM));
-			}
-			PDUMPCOMMENTWITHFLAGS(0, "%s (part 2)\r\n", pszName);
-			PDUMPMEMUM(psPerProc,
-					 IMG_NULL,
-					 psBuffer->pvLinAddr,
-					 (PVRSRV_KERNEL_MEM_INFO*)psBuffer->hKernelMemInfo,
-					 0,
-					 psBuffer->ui32End,
-					 0,
-					 hUniqueTag);
-		}
-	}
-}
-static IMG_INT
-SGXPDumpBufferArrayBW(IMG_UINT32 ui32BridgeID,
-				   PVRSRV_BRIDGE_IN_PDUMP_BUFFER_ARRAY *psPDumpBufferArrayIN,
-				   IMG_VOID *psBridgeOut,
-				   PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_UINT32 i;
-#if defined (SUPPORT_SID_INTERFACE)
-	SGX_KICKTA_DUMP_BUFFER *psUMPtr;
-	SGX_KICKTA_DUMP_BUFFER_KM *psKickTADumpBufferKM, *psKMPtr;
-#else
-	SGX_KICKTA_DUMP_BUFFER *psKickTADumpBuffer;
-#endif
-	IMG_UINT32 ui32BufferArrayLength =
-		psPDumpBufferArrayIN->ui32BufferArrayLength;
-	IMG_UINT32 ui32BufferArraySize =
-		ui32BufferArrayLength * sizeof(SGX_KICKTA_DUMP_BUFFER);
-	PVRSRV_ERROR eError = PVRSRV_ERROR_TOO_FEW_BUFFERS;
-
-#if defined (__QNXNTO__)
-    const IMG_UINT32 MAX_BUFFER_NAME_SIZE = 30;
-    IMG_PCHAR pszNamesBuffer, pszName;
-    IMG_UINT32 ui32NameBufferArraySize;
-#endif
-
-	PVR_UNREFERENCED_PARAMETER(psBridgeOut);
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_PDUMP_BUFFER_ARRAY);
-
-#if defined (SUPPORT_SID_INTERFACE)
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  ui32BufferArraySize,
-				  (IMG_PVOID *)&psKickTADumpBufferKM, 0,
-				  "Array of Kick Tile Accelerator Dump Buffer") != PVRSRV_OK)
-#else
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  ui32BufferArraySize,
-				  (IMG_PVOID *)&psKickTADumpBuffer, 0,
-				  "Array of Kick Tile Accelerator Dump Buffer") != PVRSRV_OK)
-#endif				  
-	{
-		return -ENOMEM;
-	}
-
-#if !defined (SUPPORT_SID_INTERFACE)
-	if(CopyFromUserWrapper(psPerProc,
-			               ui32BridgeID,
-						   psKickTADumpBuffer,
-						   psPDumpBufferArrayIN->psBufferArray,
-						   ui32BufferArraySize) != PVRSRV_OK)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, ui32BufferArraySize, psKickTADumpBuffer, 0);
-		
-		return -EFAULT;
-	}
-#endif
-
-#if defined (__QNXNTO__)
-    ui32NameBufferArraySize = ui32BufferArrayLength * MAX_BUFFER_NAME_SIZE;
-    if (OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, ui32NameBufferArraySize,
-            (IMG_PVOID *)&pszNamesBuffer, 0,
-            "Kick Tile Accelerator Dump Buffer names") != PVRSRV_OK)
-    {
-        OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, ui32BufferArraySize, psKickTADumpBuffer, 0);
-        return -ENOMEM;
-    }
-
-    pszName = pszNamesBuffer;
-    for (i=0; i<ui32BufferArrayLength; i++)
-    {
-        if (CopyFromUserWrapper(psPerProc, ui32BridgeID, 
-                pszName, psKickTADumpBuffer[i].pszName,
-                MAX_BUFFER_NAME_SIZE) != PVRSRV_OK)
-        {
-            PVR_DPF((PVR_DBG_WARNING, "Failed to read pdump buffer name"));
-            psKickTADumpBuffer[i].pszName = 0;
-        }
-        else 
-        {
-            pszName[MAX_BUFFER_NAME_SIZE-1] = 0;
-            psKickTADumpBuffer[i].pszName = pszName;
-        }
-        pszName += MAX_BUFFER_NAME_SIZE;
-    }
-#endif
-
-	for(i = 0; i < ui32BufferArrayLength; i++)
-	{
-#if defined (SUPPORT_SID_INTERFACE)
-		IMG_VOID *pvMemInfo = IMG_NULL;
-		psUMPtr = &psPDumpBufferArrayIN->psBufferArray[i];
-		psKMPtr = &psKickTADumpBufferKM[i];
-#else
-		IMG_VOID *pvMemInfo;
-#endif
-
-		eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-									&pvMemInfo,
-#if defined (SUPPORT_SID_INTERFACE)
-									psUMPtr->hKernelMemInfo,
-#else
-									psKickTADumpBuffer[i].hKernelMemInfo,
-#endif
-									PVRSRV_HANDLE_TYPE_MEM_INFO);
-
-		if(eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "PVRSRV_BRIDGE_SGX_PDUMP_BUFFER_ARRAY: "
-					 "PVRSRVLookupHandle failed (%d)", eError));
-			break;
-		}
-#if defined (SUPPORT_SID_INTERFACE)
-		psKMPtr->hKernelMemInfo = pvMemInfo;
-#else
-		psKickTADumpBuffer[i].hKernelMemInfo = pvMemInfo;
-#endif
-
-#if defined(SUPPORT_SGX_NEW_STATUS_VALS)
-		eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-									&pvMemInfo,
-#if defined (SUPPORT_SID_INTERFACE)
-									psUMPtr->hCtrlKernelMemInfo,
-#else
-									psKickTADumpBuffer[i].hCtrlKernelMemInfo,
-#endif
-									PVRSRV_HANDLE_TYPE_MEM_INFO);
-
-		if(eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "PVRSRV_BRIDGE_SGX_PDUMP_BUFFER_ARRAY: "
-					 "PVRSRVLookupHandle failed (%d)", eError));
-			break;
-		}
-#if defined (SUPPORT_SID_INTERFACE)
-		psKMPtr->hCtrlKernelMemInfo = pvMemInfo;
-		psKMPtr->sCtrlDevVAddr = psUMPtr->sCtrlDevVAddr;
-#else
-		psKickTADumpBuffer[i].hCtrlKernelMemInfo = pvMemInfo;
-#endif
-#endif
-
-#if defined (SUPPORT_SID_INTERFACE)
-		psKMPtr->ui32SpaceUsed     = psUMPtr->ui32SpaceUsed;
-		psKMPtr->ui32Start         = psUMPtr->ui32Start;
-		psKMPtr->ui32End           = psUMPtr->ui32End;
-		psKMPtr->ui32BufferSize    = psUMPtr->ui32BufferSize;
-		psKMPtr->ui32BackEndLength = psUMPtr->ui32BackEndLength;
-		psKMPtr->uiAllocIndex      = psUMPtr->uiAllocIndex;
-		psKMPtr->pvLinAddr         = psUMPtr->pvLinAddr;
-		psKMPtr->pszName           = psUMPtr->pszName;
-#endif
-	}
-
-	if(eError == PVRSRV_OK)
-	{
-		DumpBufferArray(psPerProc,
-#if defined (SUPPORT_SID_INTERFACE)
-						psKickTADumpBufferKM,
-#else
-						psKickTADumpBuffer,
-#endif
-						ui32BufferArrayLength,
-						psPDumpBufferArrayIN->bDumpPolls);
-	}
-
-#if defined (SUPPORT_SID_INTERFACE)
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, ui32BufferArraySize, psKickTADumpBufferKM, 0);
-#else
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, ui32BufferArraySize, psKickTADumpBuffer, 0);
-#endif
-	
-
-#if defined (__QNXNTO__)
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, ui32NameBufferArraySize, pszNamesBuffer, 0);
-#endif
-
-	return 0;
-}
-
-static IMG_INT
-SGXPDump3DSignatureRegistersBW(IMG_UINT32 ui32BridgeID,
-				   PVRSRV_BRIDGE_IN_PDUMP_3D_SIGNATURE_REGISTERS *psPDump3DSignatureRegistersIN,
-				   PVRSRV_BRIDGE_RETURN *psRetOUT,
-				   PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_UINT32 ui32RegisterArraySize =  psPDump3DSignatureRegistersIN->ui32NumRegisters * sizeof(IMG_UINT32);
-	IMG_UINT32 *pui32Registers = IMG_NULL;
-	PVRSRV_SGXDEV_INFO	*psDevInfo;
-#if defined(SGX_FEATURE_MP)	&& defined(FIX_HW_BRN_27270)
-	IMG_UINT32	ui32RegVal = 0;
-#endif
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	IMG_HANDLE hDevMemContextInt = 0;
-	IMG_UINT32 ui32MMUContextID;
-	IMG_INT ret = -EFAULT;
-
-	PVR_UNREFERENCED_PARAMETER(psRetOUT);
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_PDUMP_3D_SIGNATURE_REGISTERS);
-
-	if (ui32RegisterArraySize == 0)
-	{
-		goto ExitNoError;
-	}
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   (IMG_VOID**)&psDeviceNode,
-						   psPDump3DSignatureRegistersIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PDumpTASignatureRegistersBW: hDevCookie lookup failed"));
-		goto Exit;
-	}
-
-	psDevInfo = (PVRSRV_SGXDEV_INFO*)psDeviceNode->pvDevice;
-
-#if defined(SGX_FEATURE_MP)	&& defined(FIX_HW_BRN_27270)
-	
-	ui32RegVal = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_CORE);
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_CORE, (SGX_FEATURE_MP_CORE_COUNT - 1) << EUR_CR_MASTER_CORE_ENABLE_SHIFT);
-#if defined(PDUMP)
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_MASTER_CORE, (SGX_FEATURE_MP_CORE_COUNT - 1) << EUR_CR_MASTER_CORE_ENABLE_SHIFT,
-						psPDump3DSignatureRegistersIN->bLastFrame ? PDUMP_FLAGS_LASTFRAME : 0);
-#endif
-#endif
-
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  ui32RegisterArraySize,
-				  (IMG_PVOID *)&pui32Registers, 0,
-				  "Array of Registers") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PDump3DSignatureRegistersBW: OSAllocMem failed"));
-		goto Exit;
-	}
-
-	if(CopyFromUserWrapper(psPerProc,
-			        	ui32BridgeID,
-					pui32Registers,
-					psPDump3DSignatureRegistersIN->pui32Registers,
-					ui32RegisterArraySize) != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PDump3DSignatureRegistersBW: CopyFromUserWrapper failed"));
-		goto Exit;
-	}
-
-	PDump3DSignatureRegisters(&psDeviceNode->sDevId,
-					psPDump3DSignatureRegistersIN->ui32DumpFrameNum,
-					psPDump3DSignatureRegistersIN->bLastFrame,
-					pui32Registers,
-					psPDump3DSignatureRegistersIN->ui32NumRegisters);
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(	psPerProc->psHandleBase,
-							&hDevMemContextInt,
-							psPDump3DSignatureRegistersIN->hDevMemContext,
-							PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	
-	PVR_ASSERT(psDeviceNode->pfnMMUGetContextID != IMG_NULL)
-	ui32MMUContextID = psDeviceNode->pfnMMUGetContextID((IMG_HANDLE)psDeviceNode->sDevMemoryInfo.pBMKernelContext);
-
-	PDumpSignatureBuffer(&psDeviceNode->sDevId,
-						 "out.tasig", "TA", 0,
-						 psDevInfo->psKernelTASigBufferMemInfo->sDevVAddr,
-						 (IMG_UINT32)psDevInfo->psKernelTASigBufferMemInfo->uAllocSize,
-						 ui32MMUContextID,
-						 0 );
-	PDumpSignatureBuffer(&psDeviceNode->sDevId,
-						 "out.3dsig", "3D", 0,
-						 psDevInfo->psKernel3DSigBufferMemInfo->sDevVAddr,
-						 (IMG_UINT32)psDevInfo->psKernel3DSigBufferMemInfo->uAllocSize,
-						 ui32MMUContextID,
-						 0 );
-
-ExitNoError:
-	psRetOUT->eError = PVRSRV_OK;
-	ret = 0;
-Exit:
-	if (pui32Registers != IMG_NULL)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, ui32RegisterArraySize, pui32Registers, 0);
-	}
-
-#if defined(SGX_FEATURE_MP)	&& defined(FIX_HW_BRN_27270)
-	if (psDevInfo != IMG_NULL)
-	{
-		OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_CORE, ui32RegVal);
-#if defined(PDUMP)
-		PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_MASTER_CORE, ui32RegVal,
-							psPDump3DSignatureRegistersIN->bLastFrame ? PDUMP_FLAGS_LASTFRAME : 0);
-#endif
-	}
-#endif
-
-	return ret;
-}
-
-static IMG_INT
-SGXPDumpCounterRegistersBW(IMG_UINT32 ui32BridgeID,
-				   PVRSRV_BRIDGE_IN_PDUMP_COUNTER_REGISTERS *psPDumpCounterRegistersIN,
-				   IMG_VOID *psBridgeOut,
-				   PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_UINT32 ui32RegisterArraySize =  psPDumpCounterRegistersIN->ui32NumRegisters * sizeof(IMG_UINT32);
-	IMG_UINT32 *pui32Registers = IMG_NULL;
-	PVRSRV_DEVICE_NODE *psDeviceNode ;
-	IMG_INT ret = -EFAULT;
-
-	PVR_UNREFERENCED_PARAMETER(psBridgeOut);
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_PDUMP_COUNTER_REGISTERS);
-
-	if (ui32RegisterArraySize == 0)
-	{
-		goto ExitNoError;
-	}
-
-	if(PVRSRVLookupHandle(psPerProc->psHandleBase,
-						  (IMG_VOID**)&psDeviceNode,
-						  psPDumpCounterRegistersIN->hDevCookie,
-						  PVRSRV_HANDLE_TYPE_DEV_NODE) != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXPDumpCounterRegistersBW: hDevCookie lookup failed"));
-		ret = -ENOMEM;
-		goto Exit;
-	}
-
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  ui32RegisterArraySize,
-				  (IMG_PVOID *)&pui32Registers, 0,
-				  "Array of Registers") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PDumpCounterRegistersBW: OSAllocMem failed"));
-		ret = -ENOMEM;
-		goto Exit;
-	}
-
-	if(CopyFromUserWrapper(psPerProc,
-			        	ui32BridgeID,
-					pui32Registers,
-					psPDumpCounterRegistersIN->pui32Registers,
-					ui32RegisterArraySize) != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PDumpCounterRegistersBW: CopyFromUserWrapper failed"));
-		goto Exit;
-	}
-
-	PDumpCounterRegisters(&psDeviceNode->sDevId,
-					psPDumpCounterRegistersIN->ui32DumpFrameNum,
-					psPDumpCounterRegistersIN->bLastFrame,
-					pui32Registers,
-					psPDumpCounterRegistersIN->ui32NumRegisters);
-
-ExitNoError:
-	ret = 0;
-Exit:
-	if (pui32Registers != IMG_NULL)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, ui32RegisterArraySize, pui32Registers, 0);
-	}
-
-	return ret;
-}
-
-static IMG_INT
-SGXPDumpTASignatureRegistersBW(IMG_UINT32 ui32BridgeID,
-				   PVRSRV_BRIDGE_IN_PDUMP_TA_SIGNATURE_REGISTERS *psPDumpTASignatureRegistersIN,
-				   PVRSRV_BRIDGE_RETURN *psRetOUT,
-				   PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	IMG_UINT32 ui32RegisterArraySize =  psPDumpTASignatureRegistersIN->ui32NumRegisters * sizeof(IMG_UINT32);
-	IMG_UINT32 *pui32Registers = IMG_NULL;
-#if defined(SGX_FEATURE_MP)	&& defined(FIX_HW_BRN_27270)
-	PVRSRV_SGXDEV_INFO	*psDevInfo = IMG_NULL;
-	IMG_UINT32	ui32RegVal = 0;
-#endif
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	IMG_INT ret = -EFAULT;
-
-	PVR_UNREFERENCED_PARAMETER(psRetOUT);
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_PDUMP_TA_SIGNATURE_REGISTERS);
-
-	if (ui32RegisterArraySize == 0)
-	{
-		goto ExitNoError;
-	}
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase, (IMG_VOID**)&psDeviceNode,
-						   psPDumpTASignatureRegistersIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PDumpTASignatureRegistersBW: hDevCookie lookup failed"));
-		goto Exit;
-	}
-
-#if defined(SGX_FEATURE_MP)	&& defined(FIX_HW_BRN_27270)
-
-	psDevInfo = (PVRSRV_SGXDEV_INFO*)psDeviceNode->pvDevice;
-
-	
-	ui32RegVal = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_CORE);
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_CORE, (SGX_FEATURE_MP_CORE_COUNT - 1) << EUR_CR_MASTER_CORE_ENABLE_SHIFT);
-#if defined(PDUMP)
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_MASTER_CORE, (SGX_FEATURE_MP_CORE_COUNT - 1) << EUR_CR_MASTER_CORE_ENABLE_SHIFT,
-						psPDumpTASignatureRegistersIN->bLastFrame ? PDUMP_FLAGS_LASTFRAME : 0);
-#endif
-#endif
-
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  ui32RegisterArraySize,
-				  (IMG_PVOID *)&pui32Registers, 0,
-				  "Array of Registers") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PDumpTASignatureRegistersBW: OSAllocMem failed"));
-		ret = -ENOMEM;
-		goto Exit;
-	}
-
-	if(CopyFromUserWrapper(psPerProc,
-			        	ui32BridgeID,
-					pui32Registers,
-					psPDumpTASignatureRegistersIN->pui32Registers,
-					ui32RegisterArraySize) != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PDumpTASignatureRegistersBW: CopyFromUserWrapper failed"));
-		goto Exit;
-	}
-
-	PDumpTASignatureRegisters(&psDeviceNode->sDevId,
-					psPDumpTASignatureRegistersIN->ui32DumpFrameNum,
-					psPDumpTASignatureRegistersIN->ui32TAKickCount,
-					psPDumpTASignatureRegistersIN->bLastFrame,
-					pui32Registers,
-					psPDumpTASignatureRegistersIN->ui32NumRegisters);
-
-ExitNoError:
-	psRetOUT->eError = PVRSRV_OK;
-	ret = 0;
-Exit:
-	if (pui32Registers != IMG_NULL)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, ui32RegisterArraySize, pui32Registers, 0);
-	}
-
-#if defined(SGX_FEATURE_MP)	&& defined(FIX_HW_BRN_27270)
-	if (psDevInfo != IMG_NULL)
-	{
-		OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_CORE, ui32RegVal);
-#if defined(PDUMP)
-		PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_MASTER_CORE, ui32RegVal,
-							psPDumpTASignatureRegistersIN->bLastFrame ? PDUMP_FLAGS_LASTFRAME : 0);
-#endif
-	}
-#endif
-
-	return ret;
-}
-static IMG_INT
-SGXPDumpHWPerfCBBW(IMG_UINT32						ui32BridgeID,
-				   PVRSRV_BRIDGE_IN_PDUMP_HWPERFCB	*psPDumpHWPerfCBIN,
-				   PVRSRV_BRIDGE_RETURN 			*psRetOUT,
-				   PVRSRV_PER_PROCESS_DATA 			*psPerProc)
-{
-#if defined(SUPPORT_SGX_HWPERF)
-#if defined(__linux__)
-	PVRSRV_SGXDEV_INFO	*psDevInfo;
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	IMG_HANDLE hDevMemContextInt = 0;
-	IMG_UINT32 ui32MMUContextID = 0;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_PDUMP_HWPERFCB);
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase, (IMG_VOID**)&psDeviceNode,
-						   psPDumpHWPerfCBIN->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psDevInfo = psDeviceNode->pvDevice;
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(	psPerProc->psHandleBase,
-							&hDevMemContextInt,
-							psPDumpHWPerfCBIN->hDevMemContext,
-							PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	
-	PVR_ASSERT(psDeviceNode->pfnMMUGetContextID != IMG_NULL)
-	ui32MMUContextID = psDeviceNode->pfnMMUGetContextID(hDevMemContextInt);
-
-	PDumpHWPerfCBKM(&psDeviceNode->sDevId,
-					&psPDumpHWPerfCBIN->szFileName[0],
-					psPDumpHWPerfCBIN->ui32FileOffset,
-					psDevInfo->psKernelHWPerfCBMemInfo->sDevVAddr,
-					psDevInfo->psKernelHWPerfCBMemInfo->uAllocSize,
-					ui32MMUContextID,
-					psPDumpHWPerfCBIN->ui32PDumpFlags);
-
-	return 0;
-#else
-	PVR_UNREFERENCED_PARAMETER(ui32BridgeID);
-	PVR_UNREFERENCED_PARAMETER(psPDumpHWPerfCBIN);
-	PVR_UNREFERENCED_PARAMETER(psRetOUT);
-	PVR_UNREFERENCED_PARAMETER(psPerProc);
-	return 0;
-#endif 
-#else
-	PVR_UNREFERENCED_PARAMETER(ui32BridgeID);
-	PVR_UNREFERENCED_PARAMETER(psPDumpHWPerfCBIN);
-	PVR_UNREFERENCED_PARAMETER(psRetOUT);
-	PVR_UNREFERENCED_PARAMETER(psPerProc);
-	return -EFAULT;
-#endif 
-}
-
-
-static IMG_INT
-SGXPDumpSaveMemBW(IMG_UINT32						ui32BridgeID,
-				  PVRSRV_BRIDGE_IN_PDUMP_SAVEMEM	*psPDumpSaveMem,
-				  PVRSRV_BRIDGE_RETURN 				*psRetOUT,
-				  PVRSRV_PER_PROCESS_DATA 			*psPerProc)
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	IMG_HANDLE hDevMemContextInt = 0;
-	IMG_UINT32 ui32MMUContextID;
-
-	PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_PDUMP_SAVEMEM);
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(psPerProc->psHandleBase,
-						   (IMG_VOID**)&psDeviceNode,
-						   psPDumpSaveMem->hDevCookie,
-						   PVRSRV_HANDLE_TYPE_DEV_NODE);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	psRetOUT->eError =
-		PVRSRVLookupHandle(	psPerProc->psHandleBase,
-							&hDevMemContextInt,
-							psPDumpSaveMem->hDevMemContext,
-							PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT);
-	if(psRetOUT->eError != PVRSRV_OK)
-	{
-		return 0;
-	}
-
-	
-	PVR_ASSERT(psDeviceNode->pfnMMUGetContextID != IMG_NULL)
-	ui32MMUContextID = psDeviceNode->pfnMMUGetContextID(hDevMemContextInt);
-
-	PDumpSaveMemKM(&psDeviceNode->sDevId,
-				   &psPDumpSaveMem->szFileName[0],
-				   psPDumpSaveMem->ui32FileOffset,
-				   psPDumpSaveMem->sDevVAddr,
-				   psPDumpSaveMem->ui32Size,
-				   ui32MMUContextID,
-				   psPDumpSaveMem->ui32PDumpFlags);
-	return 0;
-}
-
-#endif 
-
-
- 
-IMG_VOID SetSGXDispatchTableEntry(IMG_VOID)
-{
-
-	PVR_IO_NSTD(SGX_GETCLIENTINFO, SGXGetClientInfoBW,
-			sizeof(PVRSRV_BRIDGE_IN_GETCLIENTINFO),
-			sizeof(PVRSRV_BRIDGE_OUT_GETCLIENTINFO));
-	PVR_IO_NSTD(SGX_RELEASECLIENTINFO, SGXReleaseClientInfoBW,
-			sizeof(PVRSRV_BRIDGE_IN_RELEASECLIENTINFO),
-			sizeof(PVRSRV_BRIDGE_RETURN));
-	PVR_IO_NSTD(SGX_GETINTERNALDEVINFO, SGXGetInternalDevInfoBW,
-			sizeof(PVRSRV_BRIDGE_IN_GETINTERNALDEVINFO),
-			sizeof(PVRSRV_BRIDGE_OUT_GETINTERNALDEVINFO));
-
-	PVR_IO_NSTD(SGX_DOKICK, SGXDoKickBW,
-			sizeof(PVRSRV_BRIDGE_IN_DOKICK),
-			sizeof(PVRSRV_BRIDGE_RETURN));
-	PVR_IO_NSTD(SGX_GETPHYSPAGEADDR, DummyBW,
-			sizeof(PVRSRV_BRIDGE_IN_GETPHYSPAGEADDR),
-			sizeof(PVRSRV_BRIDGE_OUT_GETPHYSPAGEADDR));
-	PVR_IO_INV(SGX_READREGISTRYDWORD);
-	PVR_IO_NSTD(SGX_2DQUERYBLTSCOMPLETE, SGX2DQueryBlitsCompleteBW,
-			sizeof(PVRSRV_BRIDGE_IN_2DQUERYBLTSCOMPLETE),
-			sizeof(PVRSRV_BRIDGE_RETURN));
-	PVR_IO_INV(SGX_GETMMUPDADDR);
-
-#if defined(TRANSFER_QUEUE)
-	PVR_IO_NSTD(SGX_SUBMITTRANSFER, SGXSubmitTransferBW,
-			sizeof(PVRSRV_BRIDGE_IN_SUBMITTRANSFER),
-			sizeof(PVRSRV_BRIDGE_RETURN));
-#endif
-	PVR_IO_NSTD(SGX_GETMISCINFO, SGXGetMiscInfoBW,
-		sizeof(PVRSRV_BRIDGE_IN_SGXGETMISCINFO),
-		sizeof(PVRSRV_BRIDGE_RETURN));
-	PVR_IO_NSTD(SGXINFO_FOR_SRVINIT, SGXGetInfoForSrvinitBW,
-		sizeof(PVRSRV_BRIDGE_IN_SGXINFO_FOR_SRVINIT),
-		sizeof(PVRSRV_BRIDGE_OUT_SGXINFO_FOR_SRVINIT));
-	PVR_IO_NSTD(SGX_DEVINITPART2, SGXDevInitPart2BW,
-		sizeof(PVRSRV_BRIDGE_IN_SGXDEVINITPART2),
-		sizeof(PVRSRV_BRIDGE_RETURN));
-	PVR_IO_NSTD(SGX_FINDSHAREDPBDESC, SGXFindSharedPBDescBW,
-		sizeof(PVRSRV_BRIDGE_IN_SGXFINDSHAREDPBDESC),
-		sizeof(PVRSRV_BRIDGE_OUT_SGXFINDSHAREDPBDESC));
-	PVR_IO_NSTD(SGX_UNREFSHAREDPBDESC, SGXUnrefSharedPBDescBW,
-		sizeof(PVRSRV_BRIDGE_IN_SGXUNREFSHAREDPBDESC),
-		sizeof(PVRSRV_BRIDGE_OUT_SGXUNREFSHAREDPBDESC));
-	PVR_IO_NSTD(SGX_ADDSHAREDPBDESC, SGXAddSharedPBDescBW,
-		sizeof(PVRSRV_BRIDGE_IN_SGXADDSHAREDPBDESC),
-		sizeof(PVRSRV_BRIDGE_OUT_SGXADDSHAREDPBDESC));
-	PVR_IO_RW(SGX_REGISTER_HW_RENDER_CONTEXT, SGXRegisterHWRenderContextBW);
-	PVR_IO_W(SGX_FLUSH_HW_RENDER_TARGET, SGXFlushHWRenderTargetBW);
-	PVR_IO_W(SGX_UNREGISTER_HW_RENDER_CONTEXT, SGXUnregisterHWRenderContextBW);
-#if defined(SGX_FEATURE_2D_HARDWARE)
-	PVR_IO_NSTD(SGX_SUBMIT2D, SGXSubmit2DBW,
-		sizeof(PVRSRV_BRIDGE_IN_SUBMIT2D),
-		sizeof(PVRSRV_BRIDGE_OUT_SUBMIT2D));
-	PVR_IO_NSTD(SGX_REGISTER_HW_2D_CONTEXT, SGXRegisterHW2DContextBW,
-		sizeof(PVRSRV_BRIDGE_IN_REGISTER_HW_2D_CONTEXT),
-		sizeof(PVRSRV_BRIDGE_OUT_REGISTER_HW_2D_CONTEXT));
-	PVR_IO_NSTD(SGX_UNREGISTER_HW_2D_CONTEXT, SGXUnregisterHW2DContextBW,
-		sizeof(PVRSRV_BRIDGE_IN_UNREGISTER_HW_2D_CONTEXT),
-		sizeof(PVRSRV_BRIDGE_OUT_UNREGISTER_HW_2D_CONTEXT));
-#endif
-	PVR_IO_RW(SGX_REGISTER_HW_TRANSFER_CONTEXT, SGXRegisterHWTransferContextBW);
-	PVR_IO_W(SGX_UNREGISTER_HW_TRANSFER_CONTEXT, SGXUnregisterHWTransferContextBW);
-	PVR_IO_W(SGX_SCHEDULE_PROCESS_QUEUES, SGXScheduleProcessQueuesBW);
-	PVR_IO_RW(SGX_READ_HWPERF_CB, SGXReadHWPerfCBBW);
-#if defined(PDUMP)
-	PVR_IO_NSTD(SGX_PDUMP_BUFFER_ARRAY, SGXPDumpBufferArrayBW,
-		    sizeof(PVRSRV_BRIDGE_IN_PDUMP_BUFFER_ARRAY), 0);
-	PVR_IO_NSTD(SGX_PDUMP_3D_SIGNATURE_REGISTERS, SGXPDump3DSignatureRegistersBW,
-		    sizeof(PVRSRV_BRIDGE_IN_PDUMP_3D_SIGNATURE_REGISTERS),
-		    sizeof(PVRSRV_BRIDGE_RETURN));
-	PVR_IO_NSTD(SGX_PDUMP_COUNTER_REGISTERS, SGXPDumpCounterRegistersBW,
-		    sizeof(PVRSRV_BRIDGE_IN_PDUMP_COUNTER_REGISTERS), 0);
-	PVR_IO_NSTD(SGX_PDUMP_TA_SIGNATURE_REGISTERS, SGXPDumpTASignatureRegistersBW,
-		    sizeof(PVRSRV_BRIDGE_IN_PDUMP_TA_SIGNATURE_REGISTERS),
-		    sizeof(PVRSRV_BRIDGE_RETURN));
-	PVR_IO_NSTD(SGX_PDUMP_HWPERFCB, SGXPDumpHWPerfCBBW,
-		    sizeof(PVRSRV_BRIDGE_IN_PDUMP_HWPERFCB),
-		    sizeof(PVRSRV_BRIDGE_RETURN));
-	PVR_IO_NSTD(SGX_PDUMP_SAVEMEM, SGXPDumpSaveMemBW,
-		    sizeof(PVRSRV_BRIDGE_IN_PDUMP_SAVEMEM),
-		    sizeof(PVRSRV_BRIDGE_RETURN));
-#endif
-}
- 
-
-#endif 
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/bridged/sgx/bridged_sgx_bridge.h b/drivers/staging/cdv/pvr/services4/srvkm/bridged/sgx/bridged_sgx_bridge.h
deleted file mode 100644
index 204450c..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/bridged/sgx/bridged_sgx_bridge.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __BRIDGED_SGX_BRIDGE_H__
-#define __BRIDGED_SGX_BRIDGE_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-
-IMG_VOID SetSGXDispatchTableEntry(IMG_VOID);
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/.gitignore b/drivers/staging/cdv/pvr/services4/srvkm/common/.gitignore
deleted file mode 100644
index 2f89523..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin_pc_i686*
-tmp_pc_i686*
-host_pc_i686*
-*.o
-*.o.cmd
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/buffer_manager.c b/drivers/staging/cdv/pvr/services4/srvkm/common/buffer_manager.c
deleted file mode 100644
index 3f8e527..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/buffer_manager.c
+++ /dev/null
@@ -1,2531 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "services_headers.h"
-
-#include "sysconfig.h"
-#include "hash.h"
-#include "ra.h"
-#include "pdump_km.h"
-#include "lists.h"
-
-static IMG_BOOL
-ZeroBuf(BM_BUF *pBuf, BM_MAPPING *pMapping, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags);
-static IMG_VOID
-BM_FreeMemory (IMG_VOID *pH, IMG_UINTPTR_T base, BM_MAPPING *psMapping);
-static IMG_BOOL
-BM_ImportMemory(IMG_VOID *pH, IMG_SIZE_T uSize,
-					IMG_SIZE_T *pActualSize, BM_MAPPING **ppsMapping,
-					IMG_UINT32 uFlags, IMG_UINTPTR_T *pBase);
-
-static IMG_BOOL
-DevMemoryAlloc (BM_CONTEXT *pBMContext,
-				BM_MAPPING *pMapping,
-				IMG_SIZE_T *pActualSize,
-				IMG_UINT32 uFlags,
-				IMG_UINT32 dev_vaddr_alignment,
-				IMG_DEV_VIRTADDR *pDevVAddr);
-static IMG_VOID
-DevMemoryFree (BM_MAPPING *pMapping);
-
-static IMG_BOOL
-AllocMemory (BM_CONTEXT				*pBMContext,
-				BM_HEAP				*psBMHeap,
-				IMG_DEV_VIRTADDR	*psDevVAddr,
-				IMG_SIZE_T			uSize,
-				IMG_UINT32			uFlags,
-				IMG_UINT32			uDevVAddrAlignment,
-				BM_BUF				*pBuf)
-{
-	BM_MAPPING			*pMapping;
-	IMG_UINTPTR_T		uOffset;
-	RA_ARENA			*pArena = IMG_NULL;
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-			  "AllocMemory (uSize=0x%x, uFlags=0x%x, align=0x%x)",
-			  uSize, uFlags, uDevVAddrAlignment));
-
-	
-
-
-	if(uFlags & PVRSRV_MEM_RAM_BACKED_ALLOCATION)
-	{
-		if(uFlags & PVRSRV_MEM_USER_SUPPLIED_DEVVADDR)
-		{
-			
-			PVR_DPF ((PVR_DBG_ERROR, "AllocMemory: combination of DevVAddr management and RAM backing mode unsupported"));
-			return IMG_FALSE;
-		}
-
-		
-
-		
-		if(psBMHeap->ui32Attribs
-		   &	(PVRSRV_BACKINGSTORE_SYSMEM_NONCONTIG
-		   |PVRSRV_BACKINGSTORE_LOCALMEM_CONTIG))
-		{
-			
-			pArena = psBMHeap->pImportArena;
-			PVR_ASSERT(psBMHeap->sDevArena.psDeviceMemoryHeapInfo->ui32Attribs & PVRSRV_MEM_RAM_BACKED_ALLOCATION);
-		}
-		else
-		{
-			PVR_DPF ((PVR_DBG_ERROR, "AllocMemory: backing store type doesn't match heap"));
-			return IMG_FALSE;
-		}
-
-		
-		if (!RA_Alloc(pArena,
-					  uSize,
-					  IMG_NULL,
-					  (IMG_VOID*) &pMapping,
-					  uFlags,
-					  uDevVAddrAlignment,
-					  0,
-					  (IMG_UINTPTR_T *)&(pBuf->DevVAddr.uiAddr)))
-		{
-			PVR_DPF((PVR_DBG_ERROR, "AllocMemory: RA_Alloc(0x%x) FAILED", uSize));
-			return IMG_FALSE;
-		}
-
-		uOffset = pBuf->DevVAddr.uiAddr - pMapping->DevVAddr.uiAddr;
-		if(pMapping->CpuVAddr)
-		{
-			pBuf->CpuVAddr = (IMG_VOID*) ((IMG_UINTPTR_T)pMapping->CpuVAddr + uOffset);
-		}
-		else
-		{
-			pBuf->CpuVAddr = IMG_NULL;
-		}
-
-		if(uSize == pMapping->uSize)
-		{
-			pBuf->hOSMemHandle = pMapping->hOSMemHandle;
-		}
-		else
-		{
-			if(OSGetSubMemHandle(pMapping->hOSMemHandle,
-								 uOffset,
-								 uSize,
-								 psBMHeap->ui32Attribs,
-								 &pBuf->hOSMemHandle)!=PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "AllocMemory: OSGetSubMemHandle FAILED"));
-				return IMG_FALSE;
-			}
-		}
-
-		
-		pBuf->CpuPAddr.uiAddr = pMapping->CpuPAddr.uiAddr + uOffset;
-
-		if(uFlags & PVRSRV_MEM_ZERO)
-		{
-			if(!ZeroBuf(pBuf, pMapping, uSize, psBMHeap->ui32Attribs | uFlags))
-			{
-				return IMG_FALSE;
-			}
-		}
-	}
-	else
-	{
-		if(uFlags & PVRSRV_MEM_USER_SUPPLIED_DEVVADDR)
-		{
-			
-			PVR_ASSERT(psDevVAddr != IMG_NULL);
-
-			if (psDevVAddr == IMG_NULL)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "AllocMemory: invalid parameter - psDevVAddr"));
-				return IMG_FALSE;
-			}
-
-			
-			pBMContext->psDeviceNode->pfnMMUAlloc (psBMHeap->pMMUHeap,
-													uSize,
-													IMG_NULL,
-													PVRSRV_MEM_USER_SUPPLIED_DEVVADDR,
-													uDevVAddrAlignment,
-													psDevVAddr);
-
-			
-			pBuf->DevVAddr = *psDevVAddr;
-		}
-		else
-		{
-			
-
-			
-			pBMContext->psDeviceNode->pfnMMUAlloc (psBMHeap->pMMUHeap,
-													uSize,
-													IMG_NULL,
-													0,
-													uDevVAddrAlignment,
-													&pBuf->DevVAddr);
-		}
-
-		
-		if (OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-							sizeof (struct _BM_MAPPING_),
-							(IMG_PVOID *)&pMapping, IMG_NULL,
-							"Buffer Manager Mapping") != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "AllocMemory: OSAllocMem(0x%x) FAILED", sizeof(*pMapping)));
-			return IMG_FALSE;
-		}
-
-		
-		pBuf->CpuVAddr = IMG_NULL;
-		pBuf->hOSMemHandle = 0;
-		pBuf->CpuPAddr.uiAddr = 0;
-
-		
-		pMapping->CpuVAddr = IMG_NULL;
-		pMapping->CpuPAddr.uiAddr = 0;
-		pMapping->DevVAddr = pBuf->DevVAddr;
-		pMapping->psSysAddr = IMG_NULL;
-		pMapping->uSize = uSize;
-		pMapping->hOSMemHandle = 0;
-	}
-
-	
-	pMapping->pArena = pArena;
-
-	
-	pMapping->pBMHeap = psBMHeap;
-	pBuf->pMapping = pMapping;
-
-	
-	PVR_DPF ((PVR_DBG_MESSAGE,
-				"AllocMemory: pMapping=%08x: DevV=%08X CpuV=%08x CpuP=%08X uSize=0x%x",
-				(IMG_UINTPTR_T)pMapping,
-				pMapping->DevVAddr.uiAddr,
-				(IMG_UINTPTR_T)pMapping->CpuVAddr,
-				pMapping->CpuPAddr.uiAddr,
-				pMapping->uSize));
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-				"AllocMemory: pBuf=%08x: DevV=%08X CpuV=%08x CpuP=%08X uSize=0x%x",
-				(IMG_UINTPTR_T)pBuf,
-				pBuf->DevVAddr.uiAddr,
-				(IMG_UINTPTR_T)pBuf->CpuVAddr,
-				pBuf->CpuPAddr.uiAddr,
-				uSize));
-
-	
-	PVR_ASSERT(((pBuf->DevVAddr.uiAddr) & (uDevVAddrAlignment - 1)) == 0);
-
-	return IMG_TRUE;
-}
-
-
-static IMG_BOOL
-WrapMemory (BM_HEAP *psBMHeap,
-			IMG_SIZE_T uSize,
-			IMG_SIZE_T ui32BaseOffset,
-			IMG_BOOL bPhysContig,
-			IMG_SYS_PHYADDR *psAddr,
-			IMG_VOID *pvCPUVAddr,
-			IMG_UINT32 uFlags,
-			BM_BUF *pBuf)
-{
-	IMG_DEV_VIRTADDR DevVAddr = {0};
-	BM_MAPPING *pMapping;
-	IMG_BOOL bResult;
-	IMG_SIZE_T const ui32PageSize = HOST_PAGESIZE();
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-			  "WrapMemory(psBMHeap=%08X, size=0x%x, offset=0x%x, bPhysContig=0x%x, pvCPUVAddr = 0x%08x, flags=0x%x)",
-			  (IMG_UINTPTR_T)psBMHeap, uSize, ui32BaseOffset, bPhysContig, (IMG_UINTPTR_T)pvCPUVAddr, uFlags));
-
-	PVR_ASSERT((psAddr->uiAddr & (ui32PageSize - 1)) == 0);
-	
-	PVR_ASSERT(((IMG_UINTPTR_T)pvCPUVAddr & (ui32PageSize - 1)) == 0);
-
-	uSize += ui32BaseOffset;
-	uSize = HOST_PAGEALIGN (uSize);
-
-	
-	if (OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-						sizeof(*pMapping),
-						(IMG_PVOID *)&pMapping, IMG_NULL,
-						"Mocked-up mapping") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "WrapMemory: OSAllocMem(0x%x) FAILED",sizeof(*pMapping)));
-		return IMG_FALSE;
-	}
-
-	OSMemSet(pMapping, 0, sizeof (*pMapping));
-
-	pMapping->uSize = uSize;
-	pMapping->pBMHeap = psBMHeap;
-
-	if(pvCPUVAddr)
-	{
-		pMapping->CpuVAddr = pvCPUVAddr;
-
-		if (bPhysContig)
-		{
-			pMapping->eCpuMemoryOrigin = hm_wrapped_virtaddr;
-			pMapping->CpuPAddr = SysSysPAddrToCpuPAddr(psAddr[0]);
-
-			if(OSRegisterMem(pMapping->CpuPAddr,
-							pMapping->CpuVAddr,
-							pMapping->uSize,
-							uFlags,
-							&pMapping->hOSMemHandle) != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,	"WrapMemory: OSRegisterMem Phys=0x%08X, Size=%d) failed",
-					pMapping->CpuPAddr.uiAddr, pMapping->uSize));
-				goto fail_cleanup;
-			}
-		}
-		else
-		{
-			pMapping->eCpuMemoryOrigin = hm_wrapped_scatter_virtaddr;
-			pMapping->psSysAddr = psAddr;
-
-			if(OSRegisterDiscontigMem(pMapping->psSysAddr,
-							pMapping->CpuVAddr,
-							pMapping->uSize,
-							uFlags,
-							&pMapping->hOSMemHandle) != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,	"WrapMemory: OSRegisterDiscontigMem Size=%d) failed",
-					pMapping->uSize));
-				goto fail_cleanup;
-			}
-		}
-	}
-	else
-	{
-		if (bPhysContig)
-		{
-			pMapping->eCpuMemoryOrigin = hm_wrapped;
-			pMapping->CpuPAddr = SysSysPAddrToCpuPAddr(psAddr[0]);
-
-			if(OSReservePhys(pMapping->CpuPAddr,
-							 pMapping->uSize,
-							 uFlags,
-							 &pMapping->CpuVAddr,
-							 &pMapping->hOSMemHandle) != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,	"WrapMemory: OSReservePhys Phys=0x%08X, Size=%d) failed",
-					pMapping->CpuPAddr.uiAddr, pMapping->uSize));
-				goto fail_cleanup;
-			}
-		}
-		else
-		{
-			pMapping->eCpuMemoryOrigin = hm_wrapped_scatter;
-			pMapping->psSysAddr = psAddr;
-
-			if(OSReserveDiscontigPhys(pMapping->psSysAddr,
-							 pMapping->uSize,
-							 uFlags,
-							 &pMapping->CpuVAddr,
-							 &pMapping->hOSMemHandle) != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,	"WrapMemory: OSReserveDiscontigPhys Size=%d) failed",
-					pMapping->uSize));
-				goto fail_cleanup;
-			}
-		}
-	}
-
-	
-	bResult = DevMemoryAlloc(psBMHeap->pBMContext,
-							 pMapping,
-							 IMG_NULL,
-							 uFlags | PVRSRV_MEM_READ | PVRSRV_MEM_WRITE,
-							 IMG_CAST_TO_DEVVADDR_UINT(ui32PageSize),
-							 &DevVAddr);
-	if (!bResult)
-	{
-		PVR_DPF((PVR_DBG_ERROR,
-				"WrapMemory: DevMemoryAlloc(0x%x) failed",
-				pMapping->uSize));
-		goto fail_cleanup;
-	}
-
-	
-	pBuf->CpuPAddr.uiAddr = pMapping->CpuPAddr.uiAddr + ui32BaseOffset;
-	if(!ui32BaseOffset)
-	{
-		pBuf->hOSMemHandle = pMapping->hOSMemHandle;
-	}
-	else
-	{
-		if(OSGetSubMemHandle(pMapping->hOSMemHandle,
-							 ui32BaseOffset,
-							 (pMapping->uSize-ui32BaseOffset),
-							 uFlags,
-							 &pBuf->hOSMemHandle)!=PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "WrapMemory: OSGetSubMemHandle failed"));
-			goto fail_cleanup;
-		}
-	}
-	if(pMapping->CpuVAddr)
-	{
-		pBuf->CpuVAddr = (IMG_VOID*) ((IMG_UINTPTR_T)pMapping->CpuVAddr + ui32BaseOffset);
-	}
-	pBuf->DevVAddr.uiAddr = pMapping->DevVAddr.uiAddr + IMG_CAST_TO_DEVVADDR_UINT(ui32BaseOffset);
-
-	if(uFlags & PVRSRV_MEM_ZERO)
-	{
-		if(!ZeroBuf(pBuf, pMapping, uSize, uFlags))
-		{
-			return IMG_FALSE;
-		}
-	}
-
-	PVR_DPF ((PVR_DBG_MESSAGE, "DevVaddr.uiAddr=%08X", DevVAddr.uiAddr));
-	PVR_DPF ((PVR_DBG_MESSAGE,
-				"WrapMemory: DevV=%08X CpuP=%08X uSize=0x%x",
-				pMapping->DevVAddr.uiAddr, pMapping->CpuPAddr.uiAddr, pMapping->uSize));
-	PVR_DPF ((PVR_DBG_MESSAGE,
-				"WrapMemory: DevV=%08X CpuP=%08X uSize=0x%x",
-				pBuf->DevVAddr.uiAddr, pBuf->CpuPAddr.uiAddr, uSize));
-
-	pBuf->pMapping = pMapping;
-	return IMG_TRUE;
-
-fail_cleanup:
-	if(ui32BaseOffset && pBuf->hOSMemHandle)
-	{
-		OSReleaseSubMemHandle(pBuf->hOSMemHandle, uFlags);
-	}
-
-	if(pMapping && (pMapping->CpuVAddr || pMapping->hOSMemHandle))
-	{
-		switch(pMapping->eCpuMemoryOrigin)
-		{
-			case hm_wrapped:
-				OSUnReservePhys(pMapping->CpuVAddr, pMapping->uSize, uFlags, pMapping->hOSMemHandle);
-				break;
-			case hm_wrapped_virtaddr:
-				OSUnRegisterMem(pMapping->CpuVAddr, pMapping->uSize, uFlags, pMapping->hOSMemHandle);
-				break;
-			case hm_wrapped_scatter:
-				OSUnReserveDiscontigPhys(pMapping->CpuVAddr, pMapping->uSize, uFlags, pMapping->hOSMemHandle);
-				break;
-			case hm_wrapped_scatter_virtaddr:
-				OSUnRegisterDiscontigMem(pMapping->CpuVAddr, pMapping->uSize, uFlags, pMapping->hOSMemHandle);
-				break;
-			default:
-				break;
-		}
-
-	}
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BM_MAPPING), pMapping, IMG_NULL);
-	
-
-	return IMG_FALSE;
-}
-
-
-static IMG_BOOL
-ZeroBuf(BM_BUF *pBuf, BM_MAPPING *pMapping, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags)
-{
-	IMG_VOID *pvCpuVAddr;
-
-	if(pBuf->CpuVAddr)
-	{
-		OSMemSet(pBuf->CpuVAddr, 0, ui32Bytes);
-	}
-	else if(pMapping->eCpuMemoryOrigin == hm_contiguous
-			|| pMapping->eCpuMemoryOrigin == hm_wrapped)
-	{
-		pvCpuVAddr = OSMapPhysToLin(pBuf->CpuPAddr,
-									ui32Bytes,
-									PVRSRV_HAP_KERNEL_ONLY
-									| (ui32Flags & PVRSRV_HAP_CACHETYPE_MASK),
-									IMG_NULL);
-		if(!pvCpuVAddr)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "ZeroBuf: OSMapPhysToLin for contiguous buffer failed"));
-			return IMG_FALSE;
-		}
-		OSMemSet(pvCpuVAddr, 0, ui32Bytes);
-		OSUnMapPhysToLin(pvCpuVAddr,
-						 ui32Bytes,
-						 PVRSRV_HAP_KERNEL_ONLY
-						 | (ui32Flags & PVRSRV_HAP_CACHETYPE_MASK),
-						 IMG_NULL);
-	}
-	else
-	{
-		IMG_SIZE_T ui32BytesRemaining = ui32Bytes;
-		IMG_SIZE_T ui32CurrentOffset = 0;
-		IMG_CPU_PHYADDR CpuPAddr;
-
-		
-		PVR_ASSERT(pBuf->hOSMemHandle);
-
-		while(ui32BytesRemaining > 0)
-		{
-			IMG_SIZE_T ui32BlockBytes = MIN(ui32BytesRemaining, HOST_PAGESIZE());
-			CpuPAddr = OSMemHandleToCpuPAddr(pBuf->hOSMemHandle, ui32CurrentOffset);
-			
-			if(CpuPAddr.uiAddr & (HOST_PAGESIZE() -1))
-			{
-				ui32BlockBytes =
-					MIN(ui32BytesRemaining, (IMG_UINT32)(HOST_PAGEALIGN(CpuPAddr.uiAddr) - CpuPAddr.uiAddr));
-			}
-
-			pvCpuVAddr = OSMapPhysToLin(CpuPAddr,
-										ui32BlockBytes,
-										PVRSRV_HAP_KERNEL_ONLY
-										| (ui32Flags & PVRSRV_HAP_CACHETYPE_MASK),
-										IMG_NULL);
-			if(!pvCpuVAddr)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "ZeroBuf: OSMapPhysToLin while zeroing non-contiguous memory FAILED"));
-				return IMG_FALSE;
-			}
-			OSMemSet(pvCpuVAddr, 0, ui32BlockBytes);
-			OSUnMapPhysToLin(pvCpuVAddr,
-							 ui32BlockBytes,
-							 PVRSRV_HAP_KERNEL_ONLY
-							 | (ui32Flags & PVRSRV_HAP_CACHETYPE_MASK),
-							 IMG_NULL);
-
-			ui32BytesRemaining -= ui32BlockBytes;
-			ui32CurrentOffset += ui32BlockBytes;
-		}
-	}
-
-	return IMG_TRUE;
-}
-
-static IMG_VOID
-FreeBuf (BM_BUF *pBuf, IMG_UINT32 ui32Flags, IMG_BOOL bFromAllocator)
-{
-	BM_MAPPING *pMapping;
-	/* PVRSRV_DEVICE_NODE *psDeviceNode; */
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-			"FreeBuf: pBuf=0x%x: DevVAddr=%08X CpuVAddr=0x%x CpuPAddr=%08X",
-			(IMG_UINTPTR_T)pBuf, pBuf->DevVAddr.uiAddr,
-			(IMG_UINTPTR_T)pBuf->CpuVAddr, pBuf->CpuPAddr.uiAddr));
-
-	
-	pMapping = pBuf->pMapping;
-
-	/* XXX even below cache invalidate op is noop on SGX545, be better
-	 * to check why under high GPU/mem load, below object reference could
-	 * go madness.
-	 */
-#if 0
-	psDeviceNode = pMapping->pBMHeap->pBMContext->psDeviceNode;
-	if (psDeviceNode->pfnCacheInvalidate)
-	{
-		psDeviceNode->pfnCacheInvalidate(psDeviceNode);
-	}
-#endif
-
-	if(ui32Flags & PVRSRV_MEM_USER_SUPPLIED_DEVVADDR)
-	{
-		
-		if ((pBuf->ui32ExportCount == 0) && (pBuf->ui32RefCount == 0))
-		{
-			
-			if(ui32Flags & PVRSRV_MEM_RAM_BACKED_ALLOCATION)
-			{
-				
-				PVR_DPF ((PVR_DBG_ERROR, "FreeBuf: combination of DevVAddr management and RAM backing mode unsupported"));
-			}
-			else
-			{
-				
-				OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BM_MAPPING), pMapping, IMG_NULL);
-				pBuf->pMapping = IMG_NULL; 
-			}
-		}
-	}
-	else
-	{
-		
-		if(pBuf->hOSMemHandle != pMapping->hOSMemHandle)
-		{
-            
-			if ((pBuf->ui32ExportCount == 0) && (pBuf->ui32RefCount == 0))
-			{
-				
-				OSReleaseSubMemHandle(pBuf->hOSMemHandle, ui32Flags);
-			}
-		}
-		if(ui32Flags & PVRSRV_MEM_RAM_BACKED_ALLOCATION)
-		{
-			
-            
-			if ((pBuf->ui32ExportCount == 0) && (pBuf->ui32RefCount == 0))
-			{
-				
-
-
-				PVR_ASSERT(pBuf->ui32ExportCount == 0)
-				RA_Free (pBuf->pMapping->pArena, pBuf->DevVAddr.uiAddr, IMG_FALSE);
-			}
-		}
-		else
-		{
-			if ((pBuf->ui32ExportCount == 0) && (pBuf->ui32RefCount == 0))
-			{
-				switch (pMapping->eCpuMemoryOrigin)
-				{
-					case hm_wrapped:
-						OSUnReservePhys(pMapping->CpuVAddr, pMapping->uSize, ui32Flags, pMapping->hOSMemHandle);
-						break;
-					case hm_wrapped_virtaddr:
-						OSUnRegisterMem(pMapping->CpuVAddr, pMapping->uSize, ui32Flags, pMapping->hOSMemHandle);
-						break;
-					case hm_wrapped_scatter:
-						OSUnReserveDiscontigPhys(pMapping->CpuVAddr, pMapping->uSize, ui32Flags, pMapping->hOSMemHandle);
-						break;
-					case hm_wrapped_scatter_virtaddr:
-						OSUnRegisterDiscontigMem(pMapping->CpuVAddr, pMapping->uSize, ui32Flags, pMapping->hOSMemHandle);
-						break;
-					default:
-						break;
-				}
-			}
-			if (bFromAllocator)
-				DevMemoryFree (pMapping);
-
-			if ((pBuf->ui32ExportCount == 0) && (pBuf->ui32RefCount == 0))
-			{
-				
-				OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BM_MAPPING), pMapping, IMG_NULL);
-				pBuf->pMapping = IMG_NULL; 
-			}
-		}
-	}
-
-
-	if ((pBuf->ui32ExportCount == 0) && (pBuf->ui32RefCount == 0))
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BM_BUF), pBuf, IMG_NULL);
-		
-	}
-}
-
-static PVRSRV_ERROR BM_DestroyContext_AnyCb(BM_HEAP *psBMHeap)
-{
-	if(psBMHeap->ui32Attribs
-	& 	(PVRSRV_BACKINGSTORE_SYSMEM_NONCONTIG
-		|PVRSRV_BACKINGSTORE_LOCALMEM_CONTIG))
-	{
-		if (psBMHeap->pImportArena)
-		{
-			IMG_BOOL bTestDelete = RA_TestDelete(psBMHeap->pImportArena);
-			if (!bTestDelete)
-			{
-				PVR_DPF ((PVR_DBG_ERROR, "BM_DestroyContext_AnyCb: RA_TestDelete failed"));
-				return PVRSRV_ERROR_UNABLE_TO_DESTROY_BM_HEAP;
-			}
-		}
-	}
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR
-BM_DestroyContext(IMG_HANDLE	hBMContext,
-				  IMG_BOOL		*pbDestroyed)
-{
-	PVRSRV_ERROR eError;
-	BM_CONTEXT *pBMContext = (BM_CONTEXT*)hBMContext;
-
-	PVR_DPF ((PVR_DBG_MESSAGE, "BM_DestroyContext"));
-
-	if (pbDestroyed != IMG_NULL)
-	{
-		*pbDestroyed = IMG_FALSE;
-	}
-
-	
-
-	if (pBMContext == IMG_NULL)
-	{
-		PVR_DPF ((PVR_DBG_ERROR, "BM_DestroyContext: Invalid handle"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	pBMContext->ui32RefCount--;
-
-	if (pBMContext->ui32RefCount > 0)
-	{
-		
-		return PVRSRV_OK;
-	}
-
-	
-
-
-	eError = List_BM_HEAP_PVRSRV_ERROR_Any(pBMContext->psBMHeap, &BM_DestroyContext_AnyCb);
-	if(eError != PVRSRV_OK)
-	{
-		PVR_DPF ((PVR_DBG_ERROR, "BM_DestroyContext: List_BM_HEAP_PVRSRV_ERROR_Any failed"));
-#if 0
-		
-		
-		
-		
-		PVR_DPF ((PVR_DBG_ERROR, "BM_DestroyContext: Cleaning up with ResManFreeSpecial"));
-		if(ResManFreeSpecial() != PVRSRV_OK)
-		{
-			PVR_DPF ((PVR_DBG_ERROR, "BM_DestroyContext: ResManFreeSpecial failed %d",eError));
-		}
-		
-#endif
-		return eError;
-	}
-	else
-	{
-		
-		eError = ResManFreeResByPtr(pBMContext->hResItem, CLEANUP_WITH_POLL);
-		if(eError != PVRSRV_OK)
-		{
-			PVR_DPF ((PVR_DBG_ERROR, "BM_DestroyContext: ResManFreeResByPtr failed %d",eError));
-			return eError;
-		}
-
-		
-		if (pbDestroyed != IMG_NULL)
-		{
-			*pbDestroyed = IMG_TRUE;
-		}
-	}
-
-	return PVRSRV_OK;
-}
-
-
-static PVRSRV_ERROR BM_DestroyContextCallBack_AnyVaCb(BM_HEAP *psBMHeap, va_list va)
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	psDeviceNode = va_arg(va, PVRSRV_DEVICE_NODE*);
-
-	
-	if(psBMHeap->ui32Attribs
-	& 	(PVRSRV_BACKINGSTORE_SYSMEM_NONCONTIG
-		|PVRSRV_BACKINGSTORE_LOCALMEM_CONTIG))
-	{
-		if (psBMHeap->pImportArena)
-		{
-			RA_Delete (psBMHeap->pImportArena);
-		}
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_DestroyContext: backing store type unsupported"));
-		return PVRSRV_ERROR_UNSUPPORTED_BACKING_STORE;
-	}
-
-	
-	psDeviceNode->pfnMMUDelete(psBMHeap->pMMUHeap);
-
-	
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BM_HEAP), psBMHeap, IMG_NULL);
-	
-
-	return PVRSRV_OK;
-}
-
-
-static PVRSRV_ERROR BM_DestroyContextCallBack(IMG_PVOID   pvParam,
-											  IMG_UINT32  ui32Param,
-											  IMG_BOOL    bDummy)
-{
-	BM_CONTEXT *pBMContext = pvParam;
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	PVRSRV_ERROR eError;
-	PVR_UNREFERENCED_PARAMETER(ui32Param);
-	PVR_UNREFERENCED_PARAMETER(bDummy);
-
-	
-
-	psDeviceNode = pBMContext->psDeviceNode;
-
-	
-
-	eError = List_BM_HEAP_PVRSRV_ERROR_Any_va(pBMContext->psBMHeap,
-										&BM_DestroyContextCallBack_AnyVaCb,
-										psDeviceNode);
-	if (eError != PVRSRV_OK)
-	{
-		return eError;
-	}
-	
-
-	if (pBMContext->psMMUContext)
-	{
-		psDeviceNode->pfnMMUFinalise(pBMContext->psMMUContext);
-	}
-
-	
-
-	if (pBMContext->pBufferHash)
-	{
-		HASH_Delete(pBMContext->pBufferHash);
-	}
-
-	if (pBMContext == psDeviceNode->sDevMemoryInfo.pBMKernelContext)
-	{
-		
-		psDeviceNode->sDevMemoryInfo.pBMKernelContext = IMG_NULL;
-	}
-	else
-	{
-	    if (pBMContext->ppsThis != IMG_NULL)
-	    {
-		    
-		    List_BM_CONTEXT_Remove(pBMContext);
-		}
-	}
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BM_CONTEXT), pBMContext, IMG_NULL);
-	
-
-	return PVRSRV_OK;
-}
-
-
-static IMG_HANDLE BM_CreateContext_IncRefCount_AnyVaCb(BM_CONTEXT *pBMContext, va_list va)
-{
-	PRESMAN_CONTEXT	hResManContext;
-	hResManContext = va_arg(va, PRESMAN_CONTEXT);
-	if(ResManFindResourceByPtr(hResManContext, pBMContext->hResItem) == PVRSRV_OK)
-	{
-		
-		pBMContext->ui32RefCount++;
-		return pBMContext;
-	}
-	return IMG_NULL;
-}
-
-static IMG_VOID BM_CreateContext_InsertHeap_ForEachVaCb(BM_HEAP *psBMHeap, va_list va)
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	BM_CONTEXT *pBMContext;
-	psDeviceNode = va_arg(va, PVRSRV_DEVICE_NODE*);
-	pBMContext = va_arg(va, BM_CONTEXT*);
-	switch(psBMHeap->sDevArena.DevMemHeapType)
-	{
-		case DEVICE_MEMORY_HEAP_SHARED:
-		case DEVICE_MEMORY_HEAP_SHARED_EXPORTED:
-		{
-			
-			psDeviceNode->pfnMMUInsertHeap(pBMContext->psMMUContext, psBMHeap->pMMUHeap);
-			break;
-		}
-	}
-}
-
-IMG_HANDLE
-BM_CreateContext(PVRSRV_DEVICE_NODE			*psDeviceNode,
-				 IMG_DEV_PHYADDR			*psPDDevPAddr,
-				 PVRSRV_PER_PROCESS_DATA	*psPerProc,
-				 IMG_BOOL					*pbCreated)
-{
-	BM_CONTEXT			*pBMContext;
-	DEVICE_MEMORY_INFO	*psDevMemoryInfo;
-	IMG_BOOL			bKernelContext;
-	PRESMAN_CONTEXT		hResManContext;
-
-	PVR_DPF((PVR_DBG_MESSAGE, "BM_CreateContext"));
-
-	if (psPerProc == IMG_NULL)
-	{
-		bKernelContext = IMG_TRUE;
-		hResManContext = psDeviceNode->hResManContext;
-	}
-	else
-	{
-		bKernelContext = IMG_FALSE;
-		hResManContext = psPerProc->hResManContext;
-	}
-
-	if (pbCreated != IMG_NULL)
-	{
-		*pbCreated = IMG_FALSE;
-	}
-
-	
-	psDevMemoryInfo = &psDeviceNode->sDevMemoryInfo;
-
-	if (bKernelContext == IMG_FALSE)
-	{
-		IMG_HANDLE res = (IMG_HANDLE) List_BM_CONTEXT_Any_va(psDevMemoryInfo->pBMContext,
-															&BM_CreateContext_IncRefCount_AnyVaCb,
-															hResManContext);
-		if (res)
-		{
-			return res;
-		}
-	}
-
-	
-	if (OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-					 sizeof (struct _BM_CONTEXT_),
-					 (IMG_PVOID *)&pBMContext, IMG_NULL,
-					 "Buffer Manager Context") != PVRSRV_OK)
-	{
-		PVR_DPF ((PVR_DBG_ERROR, "BM_CreateContext: Alloc failed"));
-		return IMG_NULL;
-	}
-	OSMemSet(pBMContext, 0, sizeof (BM_CONTEXT));
-
-	
-	pBMContext->psDeviceNode = psDeviceNode;
-
-	
-	
-	pBMContext->pBufferHash = HASH_Create(32);
-	if (pBMContext->pBufferHash==IMG_NULL)
-	{
-		PVR_DPF ((PVR_DBG_ERROR, "BM_CreateContext: HASH_Create failed"));
-		goto cleanup;
-	}
-
-	if((IMG_NULL == psDeviceNode->pfnMMUInitialise) || (psDeviceNode->pfnMMUInitialise(psDeviceNode,
-											&pBMContext->psMMUContext,
-											psPDDevPAddr) != PVRSRV_OK))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_CreateContext: MMUInitialise failed"));
-		goto cleanup;
-	}
-
-	if(bKernelContext)
-	{
-		
-		PVR_ASSERT(psDevMemoryInfo->pBMKernelContext == IMG_NULL);
-		psDevMemoryInfo->pBMKernelContext = pBMContext;
-	}
-	else
-	{
-		
-
-
-
-
-		PVR_ASSERT(psDevMemoryInfo->pBMKernelContext);
-
-		if (psDevMemoryInfo->pBMKernelContext == IMG_NULL)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "BM_CreateContext: psDevMemoryInfo->pBMKernelContext invalid"));
-			goto cleanup;
-		}
-
-		PVR_ASSERT(psDevMemoryInfo->pBMKernelContext->psBMHeap);
-
-		
-
-
-
-		pBMContext->psBMSharedHeap = psDevMemoryInfo->pBMKernelContext->psBMHeap;
-
-		
-
-
-		List_BM_HEAP_ForEach_va(pBMContext->psBMSharedHeap,
-								&BM_CreateContext_InsertHeap_ForEachVaCb,
-								psDeviceNode,
-								pBMContext);
-
-		
-		List_BM_CONTEXT_Insert(&psDevMemoryInfo->pBMContext, pBMContext);
-	}
-
-	
-	pBMContext->ui32RefCount++;
-
-	
-	pBMContext->hResItem = ResManRegisterRes(hResManContext,
-											RESMAN_TYPE_DEVICEMEM_CONTEXT,
-											pBMContext,
-											0,
-											&BM_DestroyContextCallBack);
-	if (pBMContext->hResItem == IMG_NULL)
-	{
-		PVR_DPF ((PVR_DBG_ERROR, "BM_CreateContext: ResManRegisterRes failed"));
-		goto cleanup;
-	}
-
-	if (pbCreated != IMG_NULL)
-	{
-		*pbCreated = IMG_TRUE;
-	}
-	return (IMG_HANDLE)pBMContext;
-
-cleanup:
-	(IMG_VOID)BM_DestroyContextCallBack(pBMContext, 0, CLEANUP_WITH_POLL);
-
-	return IMG_NULL;
-}
-
-
-static IMG_VOID *BM_CreateHeap_AnyVaCb(BM_HEAP *psBMHeap, va_list va)
-{
-	DEVICE_MEMORY_HEAP_INFO *psDevMemHeapInfo;
-	psDevMemHeapInfo = va_arg(va, DEVICE_MEMORY_HEAP_INFO*);
-	if (psBMHeap->sDevArena.ui32HeapID ==  psDevMemHeapInfo->ui32HeapID)
-	{
-		
-		return psBMHeap;
-	}
-	else
-	{
-		return IMG_NULL;
-	}
-}
-
-IMG_HANDLE
-BM_CreateHeap (IMG_HANDLE hBMContext,
-			   DEVICE_MEMORY_HEAP_INFO *psDevMemHeapInfo)
-{
-	BM_CONTEXT *pBMContext = (BM_CONTEXT*)hBMContext;
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	BM_HEAP *psBMHeap;
-
-	PVR_DPF((PVR_DBG_MESSAGE, "BM_CreateHeap"));
-
-	if(!pBMContext)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_CreateHeap: BM_CONTEXT null"));
-		return IMG_NULL;
-	}
-
-	psDeviceNode = pBMContext->psDeviceNode;
-
-	
- 
-	PVR_ASSERT((psDevMemHeapInfo->ui32HeapSize & (psDevMemHeapInfo->ui32DataPageSize - 1)) == 0);
-	PVR_ASSERT(psDevMemHeapInfo->ui32HeapSize > 0);
-
-	
-
-
-
-
-	if(pBMContext->ui32RefCount > 0)
-	{
-		psBMHeap = (BM_HEAP*)List_BM_HEAP_Any_va(pBMContext->psBMHeap,
-												 &BM_CreateHeap_AnyVaCb,
-												 psDevMemHeapInfo);
-
-		if (psBMHeap)
-		{
-			return psBMHeap;
-		}
-	}
-
-
-	if (OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-						sizeof (BM_HEAP),
-						(IMG_PVOID *)&psBMHeap, IMG_NULL,
-						"Buffer Manager Heap") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_CreateHeap: Alloc failed"));
-		return IMG_NULL;
-	}
-
-	OSMemSet (psBMHeap, 0, sizeof (BM_HEAP));
-
-	psBMHeap->sDevArena.ui32HeapID = psDevMemHeapInfo->ui32HeapID;
-	psBMHeap->sDevArena.pszName = psDevMemHeapInfo->pszName;
-	psBMHeap->sDevArena.BaseDevVAddr = psDevMemHeapInfo->sDevVAddrBase;
-	psBMHeap->sDevArena.ui32Size = psDevMemHeapInfo->ui32HeapSize;
-	psBMHeap->sDevArena.DevMemHeapType = psDevMemHeapInfo->DevMemHeapType;
-	psBMHeap->sDevArena.ui32DataPageSize = psDevMemHeapInfo->ui32DataPageSize;
-	psBMHeap->sDevArena.psDeviceMemoryHeapInfo = psDevMemHeapInfo;
-	psBMHeap->ui32Attribs = psDevMemHeapInfo->ui32Attribs;
-
-	
-	psBMHeap->pBMContext = pBMContext;
-
-	psBMHeap->pMMUHeap = psDeviceNode->pfnMMUCreate (pBMContext->psMMUContext,
-													&psBMHeap->sDevArena,
-													&psBMHeap->pVMArena,
-													&psBMHeap->psMMUAttrib);
-	if (!psBMHeap->pMMUHeap)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_CreateHeap: MMUCreate failed"));
-		goto ErrorExit;
-	}
-
-	
-	psBMHeap->pImportArena = RA_Create (psDevMemHeapInfo->pszBSName,
-										0, 0, IMG_NULL,
-										MAX(HOST_PAGESIZE(), psBMHeap->sDevArena.ui32DataPageSize),
-										&BM_ImportMemory,
-										&BM_FreeMemory,
-										IMG_NULL,
-										psBMHeap);
-	if(psBMHeap->pImportArena == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_CreateHeap: RA_Create failed"));
-		goto ErrorExit;
-	}
-
-	if(psBMHeap->ui32Attribs & PVRSRV_BACKINGSTORE_LOCALMEM_CONTIG)
-	{
-		
-
-
-
-		psBMHeap->pLocalDevMemArena = psDevMemHeapInfo->psLocalDevMemArena;
-		if(psBMHeap->pLocalDevMemArena == IMG_NULL)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "BM_CreateHeap: LocalDevMemArena null"));
-			goto ErrorExit;
-		}
-	}
-
-	
-	List_BM_HEAP_Insert(&pBMContext->psBMHeap, psBMHeap);
-
-	return (IMG_HANDLE)psBMHeap;
-
-	
-ErrorExit:
-
-	
-	if (psBMHeap->pMMUHeap != IMG_NULL)
-	{
-		psDeviceNode->pfnMMUDelete (psBMHeap->pMMUHeap);
-		
-	}
-
-	
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BM_HEAP), psBMHeap, IMG_NULL);
-	
-
-	return IMG_NULL;
-}
-
-IMG_VOID
-BM_DestroyHeap (IMG_HANDLE hDevMemHeap)
-{
-	BM_HEAP* psBMHeap = (BM_HEAP*)hDevMemHeap;
-	PVRSRV_DEVICE_NODE *psDeviceNode = psBMHeap->pBMContext->psDeviceNode;
-
-	PVR_DPF((PVR_DBG_MESSAGE, "BM_DestroyHeap"));
-
-	if(psBMHeap)
-	{
-		
-		if(psBMHeap->ui32Attribs
-		&	(PVRSRV_BACKINGSTORE_SYSMEM_NONCONTIG
-			|PVRSRV_BACKINGSTORE_LOCALMEM_CONTIG))
-		{
-			if (psBMHeap->pImportArena)
-			{
-				RA_Delete (psBMHeap->pImportArena);
-			}
-		}
-		else
-		{
-			PVR_DPF((PVR_DBG_ERROR, "BM_DestroyHeap: backing store type unsupported"));
-			return;
-		}
-
-		
-		psDeviceNode->pfnMMUDelete (psBMHeap->pMMUHeap);
-
-		
-		List_BM_HEAP_Remove(psBMHeap);
-		
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BM_HEAP), psBMHeap, IMG_NULL);
-		
-	}
-	else
-	{
-		PVR_DPF ((PVR_DBG_ERROR, "BM_DestroyHeap: invalid heap handle"));
-	}
-}
-
-
-IMG_BOOL
-BM_Reinitialise (PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-
-	PVR_DPF((PVR_DBG_MESSAGE, "BM_Reinitialise"));
-	PVR_UNREFERENCED_PARAMETER(psDeviceNode);
-
-
-	return IMG_TRUE;
-}
-
-IMG_BOOL
-BM_Alloc (  IMG_HANDLE			hDevMemHeap,
-			IMG_DEV_VIRTADDR	*psDevVAddr,
-			IMG_SIZE_T			uSize,
-			IMG_UINT32			*pui32Flags,
-			IMG_UINT32			uDevVAddrAlignment,
-			BM_HANDLE			*phBuf)
-{
-	BM_BUF *pBuf;
-	BM_CONTEXT *pBMContext;
-	BM_HEAP *psBMHeap;
-	SYS_DATA *psSysData;
-	IMG_UINT32 uFlags;
-
-	if (pui32Flags == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_Alloc: invalid parameter"));
-		PVR_DBG_BREAK;
-		return IMG_FALSE;
-	}
-
-	uFlags = *pui32Flags;
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-		  "BM_Alloc (uSize=0x%x, uFlags=0x%x, uDevVAddrAlignment=0x%x)",
-			uSize, uFlags, uDevVAddrAlignment));
-
-	SysAcquireData(&psSysData);
-
-	psBMHeap = (BM_HEAP*)hDevMemHeap;
-	pBMContext = psBMHeap->pBMContext;
-
-	if(uDevVAddrAlignment == 0)
-	{
-		uDevVAddrAlignment = 1;
-	}
-
-	
-	if (OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-				   sizeof (BM_BUF),
-				   (IMG_PVOID *)&pBuf, IMG_NULL,
-				   "Buffer Manager buffer") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_Alloc: BM_Buf alloc FAILED"));
-		return IMG_FALSE;
-	}
-	OSMemSet(pBuf, 0, sizeof (BM_BUF));
-
-	
-	if (AllocMemory(pBMContext,
-					psBMHeap,
-					psDevVAddr,
-					uSize,
-					uFlags,
-					uDevVAddrAlignment,
-					pBuf) != IMG_TRUE)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof (BM_BUF), pBuf, IMG_NULL);
-		
-		PVR_DPF((PVR_DBG_ERROR, "BM_Alloc: AllocMemory FAILED"));
-		return IMG_FALSE;
-	}
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-		  "BM_Alloc (uSize=0x%x, uFlags=0x%x)",
-		  uSize, uFlags));
-
-	
-	pBuf->ui32RefCount = 1;
-	*phBuf = (BM_HANDLE)pBuf;
-	*pui32Flags = uFlags | psBMHeap->ui32Attribs;
-
-	
-	if(uFlags & PVRSRV_HAP_CACHETYPE_MASK)
-	{
-		*pui32Flags &= ~PVRSRV_HAP_CACHETYPE_MASK;
-		*pui32Flags |= (uFlags & PVRSRV_HAP_CACHETYPE_MASK);
-	}
-
-	return IMG_TRUE;
-}
-
-
-
-#if defined(PVR_LMA)
-static IMG_BOOL
-ValidSysPAddrArrayForDev(PVRSRV_DEVICE_NODE *psDeviceNode, IMG_SYS_PHYADDR *psSysPAddr, IMG_UINT32 ui32PageCount, IMG_SIZE_T ui32PageSize)
-{
-	IMG_UINT32 i;
-
-	for (i = 0; i < ui32PageCount; i++)
-	{
-		IMG_SYS_PHYADDR sStartSysPAddr = psSysPAddr[i];
-		IMG_SYS_PHYADDR sEndSysPAddr;
-
-		if (!SysVerifySysPAddrToDevPAddr(psDeviceNode->sDevId.eDeviceType, sStartSysPAddr))
-		{
-			return IMG_FALSE;
-		}
-
-		sEndSysPAddr.uiAddr = sStartSysPAddr.uiAddr + ui32PageSize;
-
-		if (!SysVerifySysPAddrToDevPAddr(psDeviceNode->sDevId.eDeviceType, sEndSysPAddr))
-		{
-			return IMG_FALSE;
-		}
-	}
-
-	return IMG_TRUE;
-}
-
-static IMG_BOOL
-ValidSysPAddrRangeForDev(PVRSRV_DEVICE_NODE *psDeviceNode, IMG_SYS_PHYADDR sStartSysPAddr, IMG_SIZE_T ui32Range)
-{
-	IMG_SYS_PHYADDR sEndSysPAddr;
-
-	if (!SysVerifySysPAddrToDevPAddr(psDeviceNode->sDevId.eDeviceType, sStartSysPAddr))
-	{
-		return IMG_FALSE;
-	}
-
-	sEndSysPAddr.uiAddr = sStartSysPAddr.uiAddr + ui32Range;
-
-	if (!SysVerifySysPAddrToDevPAddr(psDeviceNode->sDevId.eDeviceType, sEndSysPAddr))
-	{
-		return IMG_FALSE;
-	}
-
-	return IMG_TRUE;
-}
-
-#define	WRAP_MAPPING_SIZE(ui32ByteSize, ui32PageOffset) HOST_PAGEALIGN((ui32ByteSize) + (ui32PageOffset))
-
-#define	WRAP_PAGE_COUNT(ui32ByteSize, ui32PageOffset, ui32HostPageSize)	(WRAP_MAPPING_SIZE(ui32ByteSize, ui32PageOffset) / (ui32HostPageSize))
-
-#endif
-
-
-IMG_BOOL
-BM_Wrap (	IMG_HANDLE hDevMemHeap,
-			IMG_SIZE_T ui32Size,
-			IMG_SIZE_T ui32Offset,
-			IMG_BOOL bPhysContig,
-			IMG_SYS_PHYADDR *psSysAddr,
-			IMG_VOID *pvCPUVAddr,
-			IMG_UINT32 *pui32Flags,
-			BM_HANDLE *phBuf)
-{
-	BM_BUF *pBuf;
-	BM_CONTEXT *psBMContext;
-	BM_HEAP *psBMHeap;
-	SYS_DATA *psSysData;
-	IMG_SYS_PHYADDR sHashAddress;
-	IMG_UINT32 uFlags;
-
-	psBMHeap = (BM_HEAP*)hDevMemHeap;
-	psBMContext = psBMHeap->pBMContext;
-
-	uFlags = psBMHeap->ui32Attribs & (PVRSRV_HAP_CACHETYPE_MASK | PVRSRV_HAP_MAPTYPE_MASK);
-
-	if ((pui32Flags != IMG_NULL) && ((*pui32Flags & PVRSRV_HAP_CACHETYPE_MASK) != 0))
-	{
-		uFlags &= ~PVRSRV_HAP_CACHETYPE_MASK;
-		uFlags |= *pui32Flags & PVRSRV_HAP_CACHETYPE_MASK;
-	}
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-		  "BM_Wrap (uSize=0x%x, uOffset=0x%x, bPhysContig=0x%x, pvCPUVAddr=0x%x, uFlags=0x%x)",
-			ui32Size, ui32Offset, bPhysContig, (IMG_UINTPTR_T)pvCPUVAddr, uFlags));
-
-	SysAcquireData(&psSysData);
-
-#if defined(PVR_LMA)
-	if (bPhysContig)
-	{
-		if (!ValidSysPAddrRangeForDev(psBMContext->psDeviceNode, *psSysAddr, WRAP_MAPPING_SIZE(ui32Size, ui32Offset)))
-		{
-			PVR_DPF((PVR_DBG_ERROR, "BM_Wrap: System address range invalid for device"));
-			return IMG_FALSE;
-		}
-	}
-	else
-	{
-		IMG_SIZE_T ui32HostPageSize = HOST_PAGESIZE();
-
-		if (!ValidSysPAddrArrayForDev(psBMContext->psDeviceNode, psSysAddr, WRAP_PAGE_COUNT(ui32Size, ui32Offset, ui32HostPageSize), ui32HostPageSize))
-		{
-			PVR_DPF((PVR_DBG_ERROR, "BM_Wrap: Array of system addresses invalid for device"));
-			return IMG_FALSE;
-		}
-	}
-#endif
-	
-	sHashAddress = psSysAddr[0];
-
-	
-	sHashAddress.uiAddr += ui32Offset;
-
-	
-	pBuf = (BM_BUF *)HASH_Retrieve(psBMContext->pBufferHash, sHashAddress.uiAddr);
-
-	if(pBuf)
-	{
-		IMG_SIZE_T ui32MappingSize = HOST_PAGEALIGN (ui32Size + ui32Offset);
-
-		
-		if(pBuf->pMapping->uSize == ui32MappingSize && (pBuf->pMapping->eCpuMemoryOrigin == hm_wrapped ||
-														pBuf->pMapping->eCpuMemoryOrigin == hm_wrapped_virtaddr))
-		{
-			PVR_DPF((PVR_DBG_MESSAGE,
-					"BM_Wrap (Matched previous Wrap! uSize=0x%x, uOffset=0x%x, SysAddr=%08X)",
-					ui32Size, ui32Offset, sHashAddress.uiAddr));
-
-			pBuf->ui32RefCount++;
-			*phBuf = (BM_HANDLE)pBuf;
-			if(pui32Flags)
-				*pui32Flags = uFlags;
-
-			return IMG_TRUE;
-		}
-		else
-		{
-		  
-			HASH_Remove(psBMContext->pBufferHash, (IMG_UINTPTR_T)sHashAddress.uiAddr);
-		}	
-	}
-
-	
-	if (OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-						sizeof (BM_BUF),
-						(IMG_PVOID *)&pBuf, IMG_NULL,
-						"Buffer Manager buffer") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_Wrap: BM_Buf alloc FAILED"));
-		return IMG_FALSE;
-	}
-	OSMemSet(pBuf, 0, sizeof (BM_BUF));
-
-	
-	if (WrapMemory (psBMHeap, ui32Size, ui32Offset, bPhysContig, psSysAddr, pvCPUVAddr, uFlags, pBuf) != IMG_TRUE)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_Wrap: WrapMemory FAILED"));
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof (BM_BUF), pBuf, IMG_NULL);
-		
-		return IMG_FALSE;
-	}
-
-	
-	if(pBuf->pMapping->eCpuMemoryOrigin == hm_wrapped || pBuf->pMapping->eCpuMemoryOrigin == hm_wrapped_virtaddr)
-	{
-		
-		PVR_ASSERT(SysSysPAddrToCpuPAddr(sHashAddress).uiAddr == pBuf->CpuPAddr.uiAddr);
-
-		if (!HASH_Insert (psBMContext->pBufferHash, sHashAddress.uiAddr, (IMG_UINTPTR_T)pBuf))
-		{
-			FreeBuf (pBuf, uFlags, IMG_TRUE);
-			PVR_DPF((PVR_DBG_ERROR, "BM_Wrap: HASH_Insert FAILED"));
-			return IMG_FALSE;
-		}
-	}
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-			"BM_Wrap (uSize=0x%x, uFlags=0x%x, devVAddr=%08X)",
-			ui32Size, uFlags, pBuf->DevVAddr.uiAddr));
-
-	
-	pBuf->ui32RefCount = 1;
-	*phBuf = (BM_HANDLE)pBuf;
-	if(pui32Flags)
-	{
-		
-		*pui32Flags = (uFlags & ~PVRSRV_HAP_MAPTYPE_MASK) | PVRSRV_HAP_MULTI_PROCESS;
-	}
-
-	return IMG_TRUE;
-}
-
-IMG_VOID
-BM_Export (BM_HANDLE hBuf)
-{
-	BM_BUF *pBuf = (BM_BUF *)hBuf;
-
-	pBuf->ui32ExportCount++;
-}
-
-IMG_VOID
-BM_FreeExport(BM_HANDLE hBuf,
-		IMG_UINT32 ui32Flags)
-{
-	BM_BUF *pBuf = (BM_BUF *)hBuf;
-
-	pBuf->ui32ExportCount--;
-	FreeBuf (pBuf, ui32Flags, IMG_FALSE);
-}
-
-IMG_VOID
-BM_Free (BM_HANDLE hBuf,
-		IMG_UINT32 ui32Flags)
-{
-	BM_BUF *pBuf = (BM_BUF *)hBuf;
-	SYS_DATA *psSysData;
-	IMG_SYS_PHYADDR sHashAddr;
-
-	PVR_DPF ((PVR_DBG_MESSAGE, "BM_Free (h=0x%x)", (IMG_UINTPTR_T)hBuf));
-	PVR_ASSERT (pBuf!=IMG_NULL);
-
-	if (pBuf == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_Free: invalid parameter"));
-		return;
-	}
-
-	SysAcquireData(&psSysData);
-
-	pBuf->ui32RefCount--;
-
-	if(pBuf->ui32RefCount == 0)
-	{
-		if(pBuf->pMapping->eCpuMemoryOrigin == hm_wrapped || pBuf->pMapping->eCpuMemoryOrigin == hm_wrapped_virtaddr)
-		{
-			sHashAddr = SysCpuPAddrToSysPAddr(pBuf->CpuPAddr);
-
-			HASH_Remove (pBuf->pMapping->pBMHeap->pBMContext->pBufferHash,	(IMG_UINTPTR_T)sHashAddr.uiAddr);
-		}
-		FreeBuf (pBuf, ui32Flags, IMG_TRUE);
-	}
-}
-
-
-IMG_CPU_VIRTADDR
-BM_HandleToCpuVaddr (BM_HANDLE hBuf)
-{
-	BM_BUF *pBuf = (BM_BUF *)hBuf;
-
-	PVR_ASSERT (pBuf != IMG_NULL);
-	if (pBuf == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_HandleToCpuVaddr: invalid parameter"));
-		return IMG_NULL;
-	}
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-				"BM_HandleToCpuVaddr(h=0x%x)=0x%x",
-				(IMG_UINTPTR_T)hBuf, (IMG_UINTPTR_T)pBuf->CpuVAddr));
-	return pBuf->CpuVAddr;
-}
-
-
-IMG_DEV_VIRTADDR
-BM_HandleToDevVaddr (BM_HANDLE hBuf)
-{
-	BM_BUF *pBuf = (BM_BUF *)hBuf;
-
-	PVR_ASSERT (pBuf != IMG_NULL);
-	if (pBuf == IMG_NULL)
-	{
-		IMG_DEV_VIRTADDR	DevVAddr = {0};
-		PVR_DPF((PVR_DBG_ERROR, "BM_HandleToDevVaddr: invalid parameter"));
-		return DevVAddr;
-	}
-
-	PVR_DPF ((PVR_DBG_MESSAGE, "BM_HandleToDevVaddr(h=0x%x)=%08X", (IMG_UINTPTR_T)hBuf, pBuf->DevVAddr.uiAddr));
-	return pBuf->DevVAddr;
-}
-
-
-IMG_SYS_PHYADDR
-BM_HandleToSysPaddr (BM_HANDLE hBuf)
-{
-	BM_BUF *pBuf = (BM_BUF *)hBuf;
-
-	PVR_ASSERT (pBuf != IMG_NULL);
-
-	if (pBuf == IMG_NULL)
-	{
-		IMG_SYS_PHYADDR	PhysAddr = {0};
-		PVR_DPF((PVR_DBG_ERROR, "BM_HandleToSysPaddr: invalid parameter"));
-		return PhysAddr;
-	}
-
-	PVR_DPF ((PVR_DBG_MESSAGE, "BM_HandleToSysPaddr(h=0x%x)=%08X", (IMG_UINTPTR_T)hBuf, pBuf->CpuPAddr.uiAddr));
-	return SysCpuPAddrToSysPAddr (pBuf->CpuPAddr);
-}
-
-IMG_HANDLE
-BM_HandleToOSMemHandle(BM_HANDLE hBuf)
-{
-	BM_BUF *pBuf = (BM_BUF *)hBuf;
-
-	PVR_ASSERT (pBuf != IMG_NULL);
-
-	if (pBuf == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_HandleToOSMemHandle: invalid parameter"));
-		return IMG_NULL;
-	}
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-				"BM_HandleToOSMemHandle(h=0x%x)=0x%x",
-				(IMG_UINTPTR_T)hBuf, (IMG_UINTPTR_T)pBuf->hOSMemHandle));
-	return pBuf->hOSMemHandle;
-}
-
-static IMG_BOOL
-DevMemoryAlloc (BM_CONTEXT *pBMContext,
-				BM_MAPPING *pMapping,
-				IMG_SIZE_T *pActualSize,
-				IMG_UINT32 uFlags,
-				IMG_UINT32 dev_vaddr_alignment,
-				IMG_DEV_VIRTADDR *pDevVAddr)
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-#ifdef PDUMP
-	IMG_UINT32 ui32PDumpSize = (IMG_UINT32)pMapping->uSize;
-#endif
-
-	psDeviceNode = pBMContext->psDeviceNode;
-
-	if(uFlags & PVRSRV_MEM_INTERLEAVED)
-	{
-		
-		pMapping->uSize *= 2;
-	}
-
-#ifdef PDUMP
-	if(uFlags & PVRSRV_MEM_DUMMY)
-	{
-		
-		ui32PDumpSize = pMapping->pBMHeap->sDevArena.ui32DataPageSize;
-	}
-#endif
-
-	
-	if (!psDeviceNode->pfnMMUAlloc (pMapping->pBMHeap->pMMUHeap,
-									pMapping->uSize,
-									pActualSize,
-									0,
-									dev_vaddr_alignment,
-									&(pMapping->DevVAddr)))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "DevMemoryAlloc ERROR MMU_Alloc"));
-		return IMG_FALSE;
-	}
-
-#ifdef SUPPORT_SGX_MMU_BYPASS
-	EnableHostAccess(pBMContext->psMMUContext);
-#endif
-
-#if defined(PDUMP)
-	
-	PDUMPMALLOCPAGES(&psDeviceNode->sDevId,
-					 pMapping->DevVAddr.uiAddr,
-					 pMapping->CpuVAddr,
-					 pMapping->hOSMemHandle,
-					 ui32PDumpSize,
-					 pMapping->pBMHeap->sDevArena.ui32DataPageSize,
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-					 psDeviceNode->pfnMMUIsHeapShared(pMapping->pBMHeap->pMMUHeap),
-#else
-					 IMG_FALSE, 
-#endif 
-					 (IMG_HANDLE)pMapping);
-#endif
-
-	switch (pMapping->eCpuMemoryOrigin)
-	{
-		case hm_wrapped:
-		case hm_wrapped_virtaddr:
-		case hm_contiguous:
-		{
-			psDeviceNode->pfnMMUMapPages (	pMapping->pBMHeap->pMMUHeap,
-							pMapping->DevVAddr,
-							SysCpuPAddrToSysPAddr (pMapping->CpuPAddr),
-							pMapping->uSize,
-							uFlags,
-							(IMG_HANDLE)pMapping);
-
-			*pDevVAddr = pMapping->DevVAddr;
-			break;
-		}
-		case hm_env:
-		{
-			psDeviceNode->pfnMMUMapShadow (	pMapping->pBMHeap->pMMUHeap,
-							pMapping->DevVAddr,
-							pMapping->uSize,
-							pMapping->CpuVAddr,
-							pMapping->hOSMemHandle,
-							pDevVAddr,
-							uFlags,
-							(IMG_HANDLE)pMapping);
-			break;
-		}
-		case hm_wrapped_scatter:
-		case hm_wrapped_scatter_virtaddr:
-		{
-			psDeviceNode->pfnMMUMapScatter (pMapping->pBMHeap->pMMUHeap,
-							pMapping->DevVAddr,
-							pMapping->psSysAddr,
-							pMapping->uSize,
-							uFlags,
-							(IMG_HANDLE)pMapping);
-
-			*pDevVAddr = pMapping->DevVAddr;
-			break;
-		}
-		default:
-			PVR_DPF((PVR_DBG_ERROR,
-				"Illegal value %d for pMapping->eCpuMemoryOrigin",
-				pMapping->eCpuMemoryOrigin));
-			return IMG_FALSE;
-	}
-
-#ifdef SUPPORT_SGX_MMU_BYPASS
-	DisableHostAccess(pBMContext->psMMUContext);
-#endif
-
-	return IMG_TRUE;
-}
-
-static IMG_VOID
-DevMemoryFree (BM_MAPPING *pMapping)
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	IMG_DEV_PHYADDR     sDevPAddr;
-#ifdef PDUMP
-	IMG_UINT32 ui32PSize;
-#endif
-
-	psDeviceNode = pMapping->pBMHeap->pBMContext->psDeviceNode;
-	sDevPAddr = psDeviceNode->pfnMMUGetPhysPageAddr(pMapping->pBMHeap->pMMUHeap, pMapping->DevVAddr);
-
-	if (sDevPAddr.uiAddr != 0)
-	{
-#ifdef PDUMP
-		
-		if(pMapping->ui32Flags & PVRSRV_MEM_DUMMY)
-		{
-			
-			ui32PSize = pMapping->pBMHeap->sDevArena.ui32DataPageSize;
-		}
-		else
-		{
-			ui32PSize = (IMG_UINT32)pMapping->uSize;
-		}
-	
-		PDUMPFREEPAGES(pMapping->pBMHeap,
-	                    pMapping->DevVAddr,
-	                    ui32PSize,
-	                    pMapping->pBMHeap->sDevArena.ui32DataPageSize,
-	                    (IMG_HANDLE)pMapping,
-	                    (pMapping->ui32Flags & PVRSRV_MEM_INTERLEAVED) ? IMG_TRUE : IMG_FALSE);
-#endif
-	}
-	psDeviceNode->pfnMMUFree (pMapping->pBMHeap->pMMUHeap, pMapping->DevVAddr, IMG_CAST_TO_DEVVADDR_UINT(pMapping->uSize));
-}
-
-#ifndef XPROC_WORKAROUND_NUM_SHAREABLES
-#define XPROC_WORKAROUND_NUM_SHAREABLES 4096
-#endif
-
-#define XPROC_WORKAROUND_BAD_SHAREINDEX 0773407734
-
-static IMG_UINT32 gXProcWorkaroundShareIndex = XPROC_WORKAROUND_BAD_SHAREINDEX;
-
- 
-static struct BM_XProcWorkaround {
-	IMG_UINT32 ui32RefCount;
-	IMG_UINT32 ui32AllocFlags;
-	IMG_UINT32 ui32Size;
-	IMG_UINT32 ui32PageSize;
-	RA_ARENA *psArena;
-	IMG_SYS_PHYADDR sSysPAddr;
-	IMG_VOID *pvCpuVAddr;
-	IMG_HANDLE hOSMemHandle;
-} *gXProcWorkaroundShareData;
-
-static IMG_UINT32 gXProcWorkaroundShareSize;
-static IMG_UINT32 gXProcWorkaroundShareCount;
-
-PVRSRV_ERROR BM_XProcWorkaroundShareInit(void)
-{
-	if (OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-		       XPROC_WORKAROUND_NUM_SHAREABLES * sizeof(struct BM_XProcWorkaround),
-		       (IMG_PVOID *)&gXProcWorkaroundShareData, IMG_NULL,
-		       "XProc Workaround") != PVRSRV_OK)
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-
-	gXProcWorkaroundShareSize = XPROC_WORKAROUND_NUM_SHAREABLES;
-	gXProcWorkaroundShareCount = 0;
-	return PVRSRV_OK;
-}
-
-void BM_XProcWorkaroundShareDestroy(void)
-{
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, gXProcWorkaroundShareSize * sizeof(struct BM_XProcWorkaround),
-		  gXProcWorkaroundShareData, IMG_NULL);
-}
-
-void XProcWorkaroundShareCheck(void)
-{
-	if (gXProcWorkaroundShareCount == gXProcWorkaroundShareSize) {
-		struct BM_XProcWorkaround *temp, *p;
-		IMG_UINT32 new_size = gXProcWorkaroundShareSize + gXProcWorkaroundShareSize / 2;
-
-		if (OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-			       new_size * sizeof(struct BM_XProcWorkaround),
-			       (IMG_PVOID *)&p, IMG_NULL,
-			       "XProc Workaround") != PVRSRV_OK)
-			return;
-		memset(p, 0, new_size * sizeof(struct BM_XProcWorkaround));
-
-		memcpy(p, gXProcWorkaroundShareData, gXProcWorkaroundShareSize * sizeof(struct BM_XProcWorkaround));
-
-		temp = gXProcWorkaroundShareData;
-		gXProcWorkaroundShareData = p;
-
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, gXProcWorkaroundShareSize * sizeof(struct BM_XProcWorkaround),
-				temp, IMG_NULL);
-
-		gXProcWorkaroundShareSize = new_size;
-	}
-}
-
-PVRSRV_ERROR BM_XProcWorkaroundSetShareIndex(IMG_UINT32 ui32Index)
-{
-	
-
-
-	if (gXProcWorkaroundShareIndex != XPROC_WORKAROUND_BAD_SHAREINDEX)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "No, it's already set!"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	gXProcWorkaroundShareIndex = ui32Index;
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR BM_XProcWorkaroundUnsetShareIndex(IMG_UINT32 ui32Index)
-{
-	
-
-
-	if (gXProcWorkaroundShareIndex == XPROC_WORKAROUND_BAD_SHAREINDEX)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "huh?   how can it be bad??"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-	if (gXProcWorkaroundShareIndex != ui32Index)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "gXProcWorkaroundShareIndex == 0x%08x != 0x%08x == ui32Index", gXProcWorkaroundShareIndex, ui32Index));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	gXProcWorkaroundShareIndex = XPROC_WORKAROUND_BAD_SHAREINDEX;
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR BM_XProcWorkaroundFindNewBufferAndSetShareIndex(IMG_UINT32 *pui32Index)
-{
-	
-
-
-	if (gXProcWorkaroundShareIndex != XPROC_WORKAROUND_BAD_SHAREINDEX)
-	{
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	for (*pui32Index = 0; *pui32Index < gXProcWorkaroundShareSize; (*pui32Index)++)
-	{
-		if (gXProcWorkaroundShareData[*pui32Index].ui32RefCount == 0)
-		{
-			gXProcWorkaroundShareIndex = *pui32Index;
-			return PVRSRV_OK;
-		}
-	}
-
-	PVR_DPF((PVR_DBG_ERROR, "ran out of shared buffers"));
-	return PVRSRV_ERROR_OUT_OF_MEMORY;
-}
-
-IMG_UINT32 BM_XProcWorkaroundGetRefCount(IMG_UINT32 ui32Index)
-{
-	return gXProcWorkaroundShareData[ui32Index].ui32RefCount;
-}
-
-static PVRSRV_ERROR
-XProcWorkaroundAllocShareable(RA_ARENA *psArena,
-                              IMG_UINT32 ui32AllocFlags,
-                              IMG_UINT32 ui32Size,
-                              IMG_UINT32 ui32PageSize,
-                              IMG_VOID **ppvCpuVAddr,
-                              IMG_HANDLE *phOSMemHandle)
-{
-	if ((ui32AllocFlags & PVRSRV_MEM_XPROC) == 0)
-	{
-		PVR_DPF((PVR_DBG_VERBOSE, "XProcWorkaroundAllocShareable: bad flags"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	if (gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].ui32RefCount > 0)
-	{
-		PVR_DPF((PVR_DBG_VERBOSE,
-				 "XProcWorkaroundAllocShareable: re-using previously allocated pages"));
-
-		ui32AllocFlags &= ~PVRSRV_HAP_MAPTYPE_MASK;
-		ui32AllocFlags |= PVRSRV_HAP_SINGLE_PROCESS;
-
-		if (ui32AllocFlags != gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].ui32AllocFlags)
-		{
-			PVR_DPF((PVR_DBG_ERROR,
-					 "Can't!  Flags don't match! (I had 0x%08x, you gave 0x%08x)",
-					 gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].ui32AllocFlags,
-					 ui32AllocFlags));
-			return PVRSRV_ERROR_INVALID_PARAMS;
-		}
-
-		if (ui32Size != gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].ui32Size)
-		{
-			PVR_DPF((PVR_DBG_ERROR,
-					 "Can't!  Size doesn't match!"));
-			return PVRSRV_ERROR_INVALID_PARAMS;
-		}
-
-		if (ui32PageSize != gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].ui32PageSize)
-		{
-			PVR_DPF((PVR_DBG_ERROR,
-					 "Can't!  Page Size doesn't match!"));
-			return PVRSRV_ERROR_INVALID_PARAMS;
-		}
-
-		*ppvCpuVAddr = gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].pvCpuVAddr;
-		*phOSMemHandle = gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].hOSMemHandle;
-
-		gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].ui32RefCount ++;
-
-		return PVRSRV_OK;
-	}
-	else
-	{
-		if (psArena != IMG_NULL)
-		{
-			IMG_CPU_PHYADDR sCpuPAddr;
-			IMG_SYS_PHYADDR sSysPAddr;
-
-			PVR_DPF((PVR_DBG_VERBOSE,
-					 "XProcWorkaroundAllocShareable: making a NEW allocation from local mem"));
-
-			if (!RA_Alloc (psArena,
-						   ui32Size,
-						   IMG_NULL,
-						   IMG_NULL,
-						   0,
-						   ui32PageSize,
-						   0,
-						   (IMG_UINTPTR_T *)&sSysPAddr.uiAddr))
-			{
-				PVR_DPF((PVR_DBG_ERROR, "XProcWorkaroundAllocShareable: RA_Alloc(0x%x) FAILED", ui32Size));
-				return PVRSRV_ERROR_OUT_OF_MEMORY;
-			}
-
-			sCpuPAddr = SysSysPAddrToCpuPAddr(sSysPAddr);
-			if(OSReservePhys(sCpuPAddr,
-							 ui32Size,
-							 ui32AllocFlags,
-							 (IMG_VOID **)&gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].pvCpuVAddr,
-                             &gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].hOSMemHandle) != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,	"XProcWorkaroundAllocShareable: OSReservePhys failed"));
-				return PVRSRV_ERROR_OUT_OF_MEMORY;
-			}
-			gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].sSysPAddr = sSysPAddr;
-		}
-		else
-		{
-			PVR_DPF((PVR_DBG_VERBOSE, "XProcWorkaroundAllocShareable: making a NEW allocation from OS"));
-
-			ui32AllocFlags &= ~PVRSRV_HAP_MAPTYPE_MASK;
-			ui32AllocFlags |= PVRSRV_HAP_SINGLE_PROCESS;
-
-            
-			if (OSAllocPages(ui32AllocFlags,
-					 ui32Size,
-					 ui32PageSize,
-					 (IMG_VOID **)&gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].pvCpuVAddr,
-					 &gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].hOSMemHandle) != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "XProcWorkaroundAllocShareable: OSAllocPages(0x%x) failed",
-							ui32PageSize));
-				return PVRSRV_ERROR_OUT_OF_MEMORY;
-			}
-		}
-
-		gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].psArena = psArena;
-		gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].ui32AllocFlags = ui32AllocFlags;
-		gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].ui32Size = ui32Size;
-		gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].ui32PageSize = ui32PageSize;
-
-		*ppvCpuVAddr = gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].pvCpuVAddr;
-		*phOSMemHandle = gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].hOSMemHandle;
-
-		gXProcWorkaroundShareData[gXProcWorkaroundShareIndex].ui32RefCount ++;
-
-		gXProcWorkaroundShareCount++;
-
-		XProcWorkaroundShareCheck();
-
-		return PVRSRV_OK;
-	}
-}
-
-static PVRSRV_ERROR XProcWorkaroundHandleToSI(IMG_HANDLE hOSMemHandle, IMG_UINT32 *pui32SI)
-{
-	
-	IMG_UINT32 ui32SI;
-	IMG_BOOL bFound;
-	IMG_BOOL bErrorDups;
-
-	bFound = IMG_FALSE;
-	bErrorDups = IMG_FALSE;
-
-	for (ui32SI = 0; ui32SI < gXProcWorkaroundShareSize; ui32SI++)
-	{
-		if (gXProcWorkaroundShareData[ui32SI].ui32RefCount>0 && gXProcWorkaroundShareData[ui32SI].hOSMemHandle == hOSMemHandle)
-		{
-			if (bFound)
-			{
-				bErrorDups = IMG_TRUE;
-			}
-			else
-			{
-				*pui32SI = ui32SI;
-				bFound = IMG_TRUE;
-			}
-		}
-	}
-
-	if (bErrorDups || !bFound)
-	{
-		return PVRSRV_ERROR_BM_BAD_SHAREMEM_HANDLE;
-	}
-
-	return PVRSRV_OK;
-}
-
-static IMG_VOID XProcWorkaroundFreeShareable(IMG_HANDLE hOSMemHandle)
-{
-	IMG_UINT32 ui32SI = (IMG_UINT32)((IMG_UINTPTR_T)hOSMemHandle & 0xffffU);
-	PVRSRV_ERROR eError;
-
-	eError = XProcWorkaroundHandleToSI(hOSMemHandle, &ui32SI);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "bad handle"));
-		return;
-	}
-
-	gXProcWorkaroundShareData[ui32SI].ui32RefCount --;
-
-	PVR_DPF((PVR_DBG_VERBOSE, "Reduced refcount of SI[%d] from %d to %d",
-			 ui32SI, gXProcWorkaroundShareData[ui32SI].ui32RefCount+1, gXProcWorkaroundShareData[ui32SI].ui32RefCount));
-
-	if (gXProcWorkaroundShareData[ui32SI].ui32RefCount == 0)
-	{
-		if (gXProcWorkaroundShareData[ui32SI].psArena != IMG_NULL)
-		{
-			IMG_SYS_PHYADDR sSysPAddr;
-
-			if (gXProcWorkaroundShareData[ui32SI].pvCpuVAddr != IMG_NULL)
-			{
-				OSUnReservePhys(gXProcWorkaroundShareData[ui32SI].pvCpuVAddr,
-								gXProcWorkaroundShareData[ui32SI].ui32Size,
-								gXProcWorkaroundShareData[ui32SI].ui32AllocFlags,
-								gXProcWorkaroundShareData[ui32SI].hOSMemHandle);
-			}
-			sSysPAddr = gXProcWorkaroundShareData[ui32SI].sSysPAddr;
-			RA_Free (gXProcWorkaroundShareData[ui32SI].psArena,
-					 sSysPAddr.uiAddr,
-					 IMG_FALSE);
-		}
-		else
-		{
-			PVR_DPF((PVR_DBG_VERBOSE, "freeing OS memory"));
-			OSFreePages(gXProcWorkaroundShareData[ui32SI].ui32AllocFlags,
-						gXProcWorkaroundShareData[ui32SI].ui32PageSize,
-						gXProcWorkaroundShareData[ui32SI].pvCpuVAddr,
-						gXProcWorkaroundShareData[ui32SI].hOSMemHandle);
-		}
-		gXProcWorkaroundShareCount--;
-	}
-}
-
-
-static IMG_BOOL
-BM_ImportMemory (IMG_VOID *pH,
-			  IMG_SIZE_T uRequestSize,
-			  IMG_SIZE_T *pActualSize,
-			  BM_MAPPING **ppsMapping,
-			  IMG_UINT32 uFlags,
-			  IMG_UINTPTR_T *pBase)
-{
-	BM_MAPPING *pMapping;
-	BM_HEAP *pBMHeap = pH;
-	BM_CONTEXT *pBMContext = pBMHeap->pBMContext;
-	IMG_BOOL bResult;
-	IMG_SIZE_T uSize;
-	IMG_SIZE_T uPSize;
-	IMG_SIZE_T uDevVAddrAlignment = 0; 
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-			  "BM_ImportMemory (pBMContext=0x%x, uRequestSize=0x%x, uFlags=0x%x, uAlign=0x%x)",
-			  (IMG_UINTPTR_T)pBMContext, uRequestSize, uFlags, uDevVAddrAlignment));
-
-	PVR_ASSERT (ppsMapping != IMG_NULL);
-	PVR_ASSERT (pBMContext != IMG_NULL);
-
-	if (ppsMapping == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_ImportMemory: invalid parameter"));
-		goto fail_exit;
-	}
-
-	uSize = HOST_PAGEALIGN (uRequestSize);
-	PVR_ASSERT (uSize >= uRequestSize);
-
-	if (OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-						sizeof (BM_MAPPING),
-						(IMG_PVOID *)&pMapping, IMG_NULL,
-						"Buffer Manager Mapping") != PVRSRV_OK)
-	{
-		PVR_DPF ((PVR_DBG_ERROR, "BM_ImportMemory: failed BM_MAPPING alloc"));
-		goto fail_exit;
-	}
-
-	pMapping->hOSMemHandle = 0;
-	pMapping->CpuVAddr = 0;
-	pMapping->DevVAddr.uiAddr = 0;
-	pMapping->CpuPAddr.uiAddr = 0;
-	pMapping->uSize = uSize;
-	pMapping->pBMHeap = pBMHeap;
-	pMapping->ui32Flags = uFlags;
-
-	
-	if (pActualSize)
-	{
-		*pActualSize = uSize;
-	}
-
-	
-	if(pMapping->ui32Flags & PVRSRV_MEM_DUMMY)
-	{
-		uPSize = pBMHeap->sDevArena.ui32DataPageSize;
-	}
-	else
-	{
-		uPSize = pMapping->uSize;
-	}
-
-	if (uFlags & PVRSRV_MEM_XPROC)
-	{
-		IMG_UINT32 ui32Attribs = pBMHeap->ui32Attribs | PVRSRV_MEM_XPROC;
-        IMG_BOOL bBadBackingStoreType;
-
-        bBadBackingStoreType = IMG_TRUE; 
-
-		if ((ui32Attribs & PVRSRV_BACKINGSTORE_SYSMEM_NONCONTIG) != 0)
-        {
-#ifndef MAX
-#define MAX(a,b) ((a) > (b) ? (a) : (b))
-#endif
-		uDevVAddrAlignment = MAX(pBMHeap->sDevArena.ui32DataPageSize, HOST_PAGESIZE());
-
-
-		if (uPSize % uDevVAddrAlignment != 0)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "Cannot use use this memory sharing workaround with allocations that might be suballocated"));
-			goto fail_mapping_alloc;
-		}
-		uDevVAddrAlignment = 0; 
-
-		
-		if (pMapping->ui32Flags & PVRSRV_HAP_CACHETYPE_MASK)
-		{
-			ui32Attribs &= ~PVRSRV_HAP_CACHETYPE_MASK;
-			ui32Attribs |= (pMapping->ui32Flags & PVRSRV_HAP_CACHETYPE_MASK);
-		}
-
-		
-		if (XProcWorkaroundAllocShareable(IMG_NULL,
-                                          ui32Attribs,
-							   (IMG_UINT32)uPSize,
-                                          pBMHeap->sDevArena.ui32DataPageSize,
-                                          (IMG_VOID **)&pMapping->CpuVAddr,
-                                          &pMapping->hOSMemHandle) != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,
-					"BM_ImportMemory: XProcWorkaroundAllocShareable(0x%x) failed",
-					uPSize));
-			goto fail_mapping_alloc;
-		}
-
-		
-		
-
-		pMapping->eCpuMemoryOrigin = hm_env;
-        bBadBackingStoreType = IMG_FALSE;
-        }
-
-		if ((ui32Attribs & PVRSRV_BACKINGSTORE_LOCALMEM_CONTIG) != 0)
-        {
-			uDevVAddrAlignment = pBMHeap->sDevArena.ui32DataPageSize;
-
-            if (uPSize % uDevVAddrAlignment != 0)
-            {
-                PVR_DPF((PVR_DBG_ERROR, "Cannot use use this memory sharing workaround with allocations that might be suballocated"));
-                goto fail_mapping_alloc;
-            }
-            uDevVAddrAlignment = 0; 
-
-            
-            if (pMapping->ui32Flags & PVRSRV_HAP_CACHETYPE_MASK)
-            {
-                ui32Attribs &= ~PVRSRV_HAP_CACHETYPE_MASK;
-                ui32Attribs |= (pMapping->ui32Flags & PVRSRV_HAP_CACHETYPE_MASK);
-            }
-
-            
-            if (XProcWorkaroundAllocShareable(pBMHeap->pLocalDevMemArena,
-                                              ui32Attribs,
-                                              (IMG_UINT32)uPSize,
-                                              pBMHeap->sDevArena.ui32DataPageSize,
-                                              (IMG_VOID **)&pMapping->CpuVAddr,
-                                              &pMapping->hOSMemHandle) != PVRSRV_OK)
-            {
-                PVR_DPF((PVR_DBG_ERROR,
-                         "BM_ImportMemory: XProcWorkaroundAllocShareable(0x%x) failed",
-                         uPSize));
-                goto fail_mapping_alloc;
-            }
-
-            
-            
-
-            pMapping->eCpuMemoryOrigin = hm_env;
-            bBadBackingStoreType = IMG_FALSE;
-        }
-
-        if (bBadBackingStoreType)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "Cannot use this memory sharing workaround with this type of backing store"));
-			goto fail_mapping_alloc;
-		}
-	}
-	else
-
-	
-
-	if(pBMHeap->ui32Attribs & PVRSRV_BACKINGSTORE_SYSMEM_NONCONTIG)
-	{
-		IMG_UINT32 ui32Attribs = pBMHeap->ui32Attribs;
-
-		
-		if (pMapping->ui32Flags & PVRSRV_HAP_CACHETYPE_MASK)
-		{
-			ui32Attribs &= ~PVRSRV_HAP_CACHETYPE_MASK;
-			ui32Attribs |= (pMapping->ui32Flags & PVRSRV_HAP_CACHETYPE_MASK);
-		}
-
-		
-		if (OSAllocPages(ui32Attribs,
-						 uPSize,
-						 pBMHeap->sDevArena.ui32DataPageSize,
-						 (IMG_VOID **)&pMapping->CpuVAddr,
-						 &pMapping->hOSMemHandle) != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,
-					"BM_ImportMemory: OSAllocPages(0x%x) failed",
-					uPSize));
-			goto fail_mapping_alloc;
-		}
-
-		
-		pMapping->eCpuMemoryOrigin = hm_env;
-	}
-	else if(pBMHeap->ui32Attribs & PVRSRV_BACKINGSTORE_LOCALMEM_CONTIG)
-	{
-		IMG_SYS_PHYADDR sSysPAddr;
-		IMG_UINT32 ui32Attribs = pBMHeap->ui32Attribs;
-
-		
-		PVR_ASSERT(pBMHeap->pLocalDevMemArena != IMG_NULL);
-
-		
-		if (pMapping->ui32Flags & PVRSRV_HAP_CACHETYPE_MASK)
-		{
-			ui32Attribs &= ~PVRSRV_HAP_CACHETYPE_MASK;
-			ui32Attribs |= (pMapping->ui32Flags & PVRSRV_HAP_CACHETYPE_MASK);
-		}
-
-		if (!RA_Alloc (pBMHeap->pLocalDevMemArena,
-					   uPSize,
-					   IMG_NULL,
-					   IMG_NULL,
-					   0,
-					   pBMHeap->sDevArena.ui32DataPageSize,
-					   0,
-					   (IMG_UINTPTR_T *)&sSysPAddr.uiAddr))
-		{
-			PVR_DPF((PVR_DBG_ERROR, "BM_ImportMemory: RA_Alloc(0x%x) FAILED", uPSize));
-			goto fail_mapping_alloc;
-		}
-
-		
-		pMapping->CpuPAddr = SysSysPAddrToCpuPAddr(sSysPAddr);
-		if(OSReservePhys(pMapping->CpuPAddr,
-						 uPSize,
-						 ui32Attribs,
-						 &pMapping->CpuVAddr,
-						 &pMapping->hOSMemHandle) != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,	"BM_ImportMemory: OSReservePhys failed"));
-			goto fail_dev_mem_alloc;
-		}
-
-		
-		pMapping->eCpuMemoryOrigin = hm_contiguous;
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_ERROR,	"BM_ImportMemory: Invalid backing store type"));
-		goto fail_mapping_alloc;
-	}
-
-	
-	bResult = DevMemoryAlloc (pBMContext,
-								pMapping,
-								IMG_NULL,
-								uFlags,
-								(IMG_UINT32)uDevVAddrAlignment,
-								&pMapping->DevVAddr);
-	if (!bResult)
-	{
-		PVR_DPF((PVR_DBG_ERROR,
-				"BM_ImportMemory: DevMemoryAlloc(0x%x) failed",
-				pMapping->uSize));
-		goto fail_dev_mem_alloc;
-	}
-
-	
-	
-	PVR_ASSERT (uDevVAddrAlignment>1?(pMapping->DevVAddr.uiAddr%uDevVAddrAlignment)==0:1);
-
-	*pBase = pMapping->DevVAddr.uiAddr;
-	*ppsMapping = pMapping;
-
-	PVR_DPF ((PVR_DBG_MESSAGE, "BM_ImportMemory: IMG_TRUE"));
-	return IMG_TRUE;
-
-fail_dev_mem_alloc:
-	if (pMapping && (pMapping->CpuVAddr || pMapping->hOSMemHandle))
-	{
-		
-		if(pMapping->ui32Flags & PVRSRV_MEM_INTERLEAVED)
-		{
-			pMapping->uSize /= 2;
-		}
-
-		if(pMapping->ui32Flags & PVRSRV_MEM_DUMMY)
-		{
-			uPSize = pBMHeap->sDevArena.ui32DataPageSize;
-		}
-		else
-		{
-			uPSize = pMapping->uSize;
-		}
-
-		if (uFlags & PVRSRV_MEM_XPROC)
-		{
-			XProcWorkaroundFreeShareable(pMapping->hOSMemHandle);
-		}
-		else
-        if(pBMHeap->ui32Attribs & PVRSRV_BACKINGSTORE_SYSMEM_NONCONTIG)
-		{
-			OSFreePages(pBMHeap->ui32Attribs,
-						  uPSize,
-						  (IMG_VOID *)pMapping->CpuVAddr,
-						  pMapping->hOSMemHandle);
-		}
-		else
-		{
-			IMG_SYS_PHYADDR sSysPAddr;
-
-			if(pMapping->CpuVAddr)
-			{
-				OSUnReservePhys(pMapping->CpuVAddr,
-								uPSize,
-								pBMHeap->ui32Attribs,
-								pMapping->hOSMemHandle);
-			}
-			sSysPAddr = SysCpuPAddrToSysPAddr(pMapping->CpuPAddr);
-			RA_Free (pBMHeap->pLocalDevMemArena, sSysPAddr.uiAddr, IMG_FALSE);
-		}
-	}
-fail_mapping_alloc:
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BM_MAPPING), pMapping, IMG_NULL);
-	
-fail_exit:
-	return IMG_FALSE;
-}
-
-
-static IMG_VOID
-BM_FreeMemory (IMG_VOID *h, IMG_UINTPTR_T _base, BM_MAPPING *psMapping)
-{
-	BM_HEAP *pBMHeap = h;
-	IMG_SIZE_T uPSize;
-
-	PVR_UNREFERENCED_PARAMETER (_base);
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-			  "BM_FreeMemory (h=0x%x, base=0x%x, psMapping=0x%x)",
-			  (IMG_UINTPTR_T)h, _base, (IMG_UINTPTR_T)psMapping));
-
-	PVR_ASSERT (psMapping != IMG_NULL);
-
-	if (psMapping == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "BM_FreeMemory: invalid parameter"));
-		return;
-	}
-
-	DevMemoryFree (psMapping);
-
-	
-	if((psMapping->ui32Flags & PVRSRV_MEM_INTERLEAVED) != 0)
-	{
-		psMapping->uSize /= 2;
-	}
-
-	if(psMapping->ui32Flags & PVRSRV_MEM_DUMMY)
-	{
-		uPSize = psMapping->pBMHeap->sDevArena.ui32DataPageSize;
-	}
-	else
-	{
-		uPSize = psMapping->uSize;
-	}
-
-	if (psMapping->ui32Flags & PVRSRV_MEM_XPROC)
-	{
-		XProcWorkaroundFreeShareable(psMapping->hOSMemHandle);
-	}
-	else
-    if(pBMHeap->ui32Attribs & PVRSRV_BACKINGSTORE_SYSMEM_NONCONTIG)
-	{
-		OSFreePages(pBMHeap->ui32Attribs,
-						uPSize,
-						(IMG_VOID *) psMapping->CpuVAddr,
-						psMapping->hOSMemHandle);
-	}
-	else if(pBMHeap->ui32Attribs & PVRSRV_BACKINGSTORE_LOCALMEM_CONTIG)
-	{
-		IMG_SYS_PHYADDR sSysPAddr;
-
-		OSUnReservePhys(psMapping->CpuVAddr, uPSize, pBMHeap->ui32Attribs, psMapping->hOSMemHandle);
-
-		sSysPAddr = SysCpuPAddrToSysPAddr(psMapping->CpuPAddr);
-
-		RA_Free (pBMHeap->pLocalDevMemArena, sSysPAddr.uiAddr, IMG_FALSE);
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_ERROR,	"BM_FreeMemory: Invalid backing store type"));
-	}
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BM_MAPPING), psMapping, IMG_NULL);
-	
-
-	PVR_DPF((PVR_DBG_MESSAGE,
-			"..BM_FreeMemory (h=0x%x, base=0x%x)",
-			(IMG_UINTPTR_T)h, _base));
-}
-
-IMG_VOID BM_GetPhysPageAddr(PVRSRV_KERNEL_MEM_INFO *psMemInfo,
-								IMG_DEV_VIRTADDR sDevVPageAddr,
-								IMG_DEV_PHYADDR *psDevPAddr)
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-
-	PVR_DPF((PVR_DBG_MESSAGE, "BM_GetPhysPageAddr"));
-
-	PVR_ASSERT (psMemInfo && psDevPAddr)
-
-	
-	PVR_ASSERT((sDevVPageAddr.uiAddr & 0xFFF) == 0);
-
-	 
-	psDeviceNode = ((BM_BUF*)psMemInfo->sMemBlk.hBuffer)->pMapping->pBMHeap->pBMContext->psDeviceNode;
-
-	*psDevPAddr = psDeviceNode->pfnMMUGetPhysPageAddr(((BM_BUF*)psMemInfo->sMemBlk.hBuffer)->pMapping->pBMHeap->pMMUHeap,
-												sDevVPageAddr);
-}
-
-
-MMU_CONTEXT* BM_GetMMUContext(IMG_HANDLE hDevMemHeap)
-{
-	BM_HEAP *pBMHeap = (BM_HEAP*)hDevMemHeap;
-
-	PVR_DPF((PVR_DBG_VERBOSE, "BM_GetMMUContext"));
-
-	return pBMHeap->pBMContext->psMMUContext;
-}
-
-MMU_CONTEXT* BM_GetMMUContextFromMemContext(IMG_HANDLE hDevMemContext)
-{
-	BM_CONTEXT *pBMContext = (BM_CONTEXT*)hDevMemContext;
-
-	PVR_DPF ((PVR_DBG_VERBOSE, "BM_GetMMUContextFromMemContext"));
-
-	return pBMContext->psMMUContext;
-}
-
-IMG_HANDLE BM_GetMMUHeap(IMG_HANDLE hDevMemHeap)
-{
-	PVR_DPF((PVR_DBG_VERBOSE, "BM_GetMMUHeap"));
-
-	return (IMG_HANDLE)((BM_HEAP*)hDevMemHeap)->pMMUHeap;
-}
-
-
-PVRSRV_DEVICE_NODE* BM_GetDeviceNode(IMG_HANDLE hDevMemContext)
-{
-	PVR_DPF((PVR_DBG_VERBOSE, "BM_GetDeviceNode"));
-
-	return ((BM_CONTEXT*)hDevMemContext)->psDeviceNode;
-}
-
-
-IMG_HANDLE BM_GetMappingHandle(PVRSRV_KERNEL_MEM_INFO *psMemInfo)
-{
-	PVR_DPF((PVR_DBG_VERBOSE, "BM_GetMappingHandle"));
-
-	return ((BM_BUF*)psMemInfo->sMemBlk.hBuffer)->pMapping->hOSMemHandle;
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/deviceclass.c b/drivers/staging/cdv/pvr/services4/srvkm/common/deviceclass.c
deleted file mode 100644
index 13bfa8d..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/deviceclass.c
+++ /dev/null
@@ -1,2013 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "services_headers.h"
-#include "buffer_manager.h"
-#include "kernelbuffer.h"
-#include "kerneldisplay.h"
-#include "pvr_bridge_km.h"
-#include "pdump_km.h"
-#include "deviceid.h"
-
-#include "lists.h"
-
-PVRSRV_ERROR AllocateDeviceID(SYS_DATA *psSysData, IMG_UINT32 *pui32DevID);
-PVRSRV_ERROR FreeDeviceID(SYS_DATA *psSysData, IMG_UINT32 ui32DevID);
-
-#if defined(SUPPORT_MISR_IN_THREAD)
-void OSVSyncMISR(IMG_HANDLE, IMG_BOOL);
-#endif
-
-#if defined(SUPPORT_CUSTOM_SWAP_OPERATIONS)
-IMG_VOID PVRSRVFreeCommandCompletePacketKM(IMG_HANDLE	hCmdCookie,
-										   IMG_BOOL		bScheduleMISR);
-#endif
-typedef struct PVRSRV_DC_SRV2DISP_KMJTABLE_TAG *PPVRSRV_DC_SRV2DISP_KMJTABLE;
-
-typedef struct PVRSRV_DC_BUFFER_TAG
-{
-	
-	PVRSRV_DEVICECLASS_BUFFER sDeviceClassBuffer;
-
-	struct PVRSRV_DISPLAYCLASS_INFO_TAG *psDCInfo;
-	struct PVRSRV_DC_SWAPCHAIN_TAG *psSwapChain;
-} PVRSRV_DC_BUFFER;
-
-typedef struct PVRSRV_DC_SWAPCHAIN_TAG
-{
-	IMG_HANDLE							hExtSwapChain;
-	IMG_UINT32							ui32SwapChainID;
-	IMG_UINT32							ui32RefCount;
-	IMG_UINT32							ui32Flags;
-	PVRSRV_QUEUE_INFO					*psQueue;
-	PVRSRV_DC_BUFFER					asBuffer[PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS];
-	IMG_UINT32							ui32BufferCount;
-	PVRSRV_DC_BUFFER					*psLastFlipBuffer;
-	IMG_UINT32							ui32MinSwapInterval;
-	IMG_UINT32							ui32MaxSwapInterval;
-	struct PVRSRV_DISPLAYCLASS_INFO_TAG *psDCInfo;
-	struct PVRSRV_DC_SWAPCHAIN_TAG		*psNext;
-} PVRSRV_DC_SWAPCHAIN;
-
-
-typedef struct PVRSRV_DC_SWAPCHAIN_REF_TAG
-{
-	struct PVRSRV_DC_SWAPCHAIN_TAG		*psSwapChain;
-	IMG_HANDLE							hResItem;	
-} PVRSRV_DC_SWAPCHAIN_REF;
-
-
-typedef struct PVRSRV_DISPLAYCLASS_INFO_TAG
-{
-	IMG_UINT32 							ui32RefCount;
-	IMG_UINT32							ui32DeviceID;
-	IMG_HANDLE							hExtDevice;
-	PPVRSRV_DC_SRV2DISP_KMJTABLE		psFuncTable;
-	IMG_HANDLE							hDevMemContext;
-	PVRSRV_DC_BUFFER 					sSystemBuffer;
-	struct PVRSRV_DC_SWAPCHAIN_TAG		*psDCSwapChainShared;
-} PVRSRV_DISPLAYCLASS_INFO;
-
-
-typedef struct PVRSRV_DISPLAYCLASS_PERCONTEXT_INFO_TAG
-{
-	PVRSRV_DISPLAYCLASS_INFO			*psDCInfo;
-	PRESMAN_ITEM						hResItem;
-} PVRSRV_DISPLAYCLASS_PERCONTEXT_INFO;
-
-
-typedef struct PVRSRV_BC_SRV2BUFFER_KMJTABLE_TAG *PPVRSRV_BC_SRV2BUFFER_KMJTABLE;
-
-typedef struct PVRSRV_BC_BUFFER_TAG
-{
-	
-	PVRSRV_DEVICECLASS_BUFFER sDeviceClassBuffer;
-
-	struct PVRSRV_BUFFERCLASS_INFO_TAG *psBCInfo;
-} PVRSRV_BC_BUFFER;
-
-
-typedef struct PVRSRV_BUFFERCLASS_INFO_TAG
-{
-	IMG_UINT32 							ui32RefCount;
-	IMG_UINT32							ui32DeviceID;
-	IMG_HANDLE							hExtDevice;
-	PPVRSRV_BC_SRV2BUFFER_KMJTABLE		psFuncTable;
-	IMG_HANDLE							hDevMemContext;
-	
-	IMG_UINT32							ui32BufferCount;
-	PVRSRV_BC_BUFFER 					*psBuffer;
-
-} PVRSRV_BUFFERCLASS_INFO;
-
-
-typedef struct PVRSRV_BUFFERCLASS_PERCONTEXT_INFO_TAG
-{
-	PVRSRV_BUFFERCLASS_INFO				*psBCInfo;
-	IMG_HANDLE							hResItem;
-} PVRSRV_BUFFERCLASS_PERCONTEXT_INFO;
-
-
-static PVRSRV_DISPLAYCLASS_INFO* DCDeviceHandleToDCInfo (IMG_HANDLE hDeviceKM)
-{
-	PVRSRV_DISPLAYCLASS_PERCONTEXT_INFO *psDCPerContextInfo;
-
-	psDCPerContextInfo = (PVRSRV_DISPLAYCLASS_PERCONTEXT_INFO *)hDeviceKM;
-
-	return psDCPerContextInfo->psDCInfo;
-}
-
-
-static PVRSRV_BUFFERCLASS_INFO* BCDeviceHandleToBCInfo (IMG_HANDLE hDeviceKM)
-{
-	PVRSRV_BUFFERCLASS_PERCONTEXT_INFO *psBCPerContextInfo;
-
-	psBCPerContextInfo = (PVRSRV_BUFFERCLASS_PERCONTEXT_INFO *)hDeviceKM;
-
-	return psBCPerContextInfo->psBCInfo;
-}
-
-static IMG_VOID PVRSRVEnumerateDCKM_ForEachVaCb(PVRSRV_DEVICE_NODE *psDeviceNode, va_list va)
-{
-	IMG_UINT *pui32DevCount;
-	IMG_UINT32 **ppui32DevID;
-	PVRSRV_DEVICE_CLASS peDeviceClass;
-
-	pui32DevCount = va_arg(va, IMG_UINT*);
-	ppui32DevID = va_arg(va, IMG_UINT32**);
-	peDeviceClass = va_arg(va, PVRSRV_DEVICE_CLASS);
-
-	if	((psDeviceNode->sDevId.eDeviceClass == peDeviceClass)
-	&&	(psDeviceNode->sDevId.eDeviceType == PVRSRV_DEVICE_TYPE_EXT))
-	{
-		(*pui32DevCount)++;
-		if(*ppui32DevID)
-		{
-			*(*ppui32DevID)++ = psDeviceNode->sDevId.ui32DeviceIndex;
-		}
-	}
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVEnumerateDCKM (PVRSRV_DEVICE_CLASS DeviceClass,
-								  IMG_UINT32 *pui32DevCount,
-								  IMG_UINT32 *pui32DevID )
-{
-	
-	IMG_UINT			ui32DevCount = 0;
-	SYS_DATA 			*psSysData;
-
-	SysAcquireData(&psSysData);
-
-	
-	List_PVRSRV_DEVICE_NODE_ForEach_va(psSysData->psDeviceNodeList,
-										&PVRSRVEnumerateDCKM_ForEachVaCb,
-										&ui32DevCount,
-										&pui32DevID,
-										DeviceClass);
-
-	if(pui32DevCount)
-	{
-		*pui32DevCount = ui32DevCount;
-	}
-	else if(pui32DevID == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVEnumerateDCKM: Invalid parameters"));
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-	return PVRSRV_OK;
-}
-
-
-static
-PVRSRV_ERROR PVRSRVRegisterDCDeviceKM (PVRSRV_DC_SRV2DISP_KMJTABLE *psFuncTable,
-									   IMG_UINT32 *pui32DeviceID)
-{
-	PVRSRV_DISPLAYCLASS_INFO 	*psDCInfo = IMG_NULL;
-	PVRSRV_DEVICE_NODE			*psDeviceNode;
-	SYS_DATA					*psSysData;
-
-	
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	SysAcquireData(&psSysData);
-
-	
-
-
-	
-	if(OSAllocMem( PVRSRV_OS_PAGEABLE_HEAP,
-					 sizeof(*psDCInfo),
-					 (IMG_VOID **)&psDCInfo, IMG_NULL,
-					 "Display Class Info") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRegisterDCDeviceKM: Failed psDCInfo alloc"));
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-	OSMemSet (psDCInfo, 0, sizeof(*psDCInfo));
-
-	
-	if(OSAllocMem( PVRSRV_OS_PAGEABLE_HEAP,
-					 sizeof(PVRSRV_DC_SRV2DISP_KMJTABLE),
-					 (IMG_VOID **)&psDCInfo->psFuncTable, IMG_NULL,
-					 "Function table for SRVKM->DISPLAY") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRegisterDCDeviceKM: Failed psFuncTable alloc"));
-		goto ErrorExit;
-	}
-	OSMemSet (psDCInfo->psFuncTable, 0, sizeof(PVRSRV_DC_SRV2DISP_KMJTABLE));
-
-	
-	*psDCInfo->psFuncTable = *psFuncTable;
-
-	
-	if(OSAllocMem( PVRSRV_OS_NON_PAGEABLE_HEAP,
-					 sizeof(PVRSRV_DEVICE_NODE),
-					 (IMG_VOID **)&psDeviceNode, IMG_NULL,
-					 "Device Node") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRegisterDCDeviceKM: Failed psDeviceNode alloc"));
-		goto ErrorExit;
-	}
-	OSMemSet (psDeviceNode, 0, sizeof(PVRSRV_DEVICE_NODE));
-
-	psDeviceNode->pvDevice = (IMG_VOID*)psDCInfo;
-	psDeviceNode->ui32pvDeviceSize = sizeof(*psDCInfo);
-	psDeviceNode->ui32RefCount = 1;
-	psDeviceNode->sDevId.eDeviceType = PVRSRV_DEVICE_TYPE_EXT;
-	psDeviceNode->sDevId.eDeviceClass = PVRSRV_DEVICE_CLASS_DISPLAY;
-	psDeviceNode->psSysData = psSysData;
-
-	
-	if (AllocateDeviceID(psSysData, &psDeviceNode->sDevId.ui32DeviceIndex) != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRegisterBCDeviceKM: Failed to allocate Device ID"));
-		goto ErrorExit;
-	}
-	psDCInfo->ui32DeviceID = psDeviceNode->sDevId.ui32DeviceIndex;
-	if (pui32DeviceID)
-	{
-		*pui32DeviceID = psDeviceNode->sDevId.ui32DeviceIndex;
-	}
-
-	
-	SysRegisterExternalDevice(psDeviceNode);
-
-	
-	List_PVRSRV_DEVICE_NODE_Insert(&psSysData->psDeviceNodeList, psDeviceNode);
-
-	return PVRSRV_OK;
-
-ErrorExit:
-
-	if(psDCInfo->psFuncTable)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_DC_SRV2DISP_KMJTABLE), psDCInfo->psFuncTable, IMG_NULL);
-		psDCInfo->psFuncTable = IMG_NULL;
-	}
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_DISPLAYCLASS_INFO), psDCInfo, IMG_NULL);
-	
-
-	return PVRSRV_ERROR_OUT_OF_MEMORY;
-}
-
-static PVRSRV_ERROR PVRSRVRemoveDCDeviceKM(IMG_UINT32 ui32DevIndex)
-{
-	SYS_DATA					*psSysData;
-	PVRSRV_DEVICE_NODE			*psDeviceNode;
-	PVRSRV_DISPLAYCLASS_INFO	*psDCInfo;
-
-	SysAcquireData(&psSysData);
-
-	
-	psDeviceNode = (PVRSRV_DEVICE_NODE*)
-		List_PVRSRV_DEVICE_NODE_Any_va(psSysData->psDeviceNodeList,
-									   &MatchDeviceKM_AnyVaCb,
-									   ui32DevIndex,
-									   IMG_FALSE,
-									   PVRSRV_DEVICE_CLASS_DISPLAY);
-	if (!psDeviceNode)
-	{
-		
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRemoveDCDeviceKM: requested device %d not present", ui32DevIndex));
-		return PVRSRV_ERROR_NO_DEVICENODE_FOUND;
-	}
-
-	
-	psDCInfo = (PVRSRV_DISPLAYCLASS_INFO*)psDeviceNode->pvDevice;
-
-	
-
-
-	if(psDCInfo->ui32RefCount == 0)
-	{
-		
-
-		List_PVRSRV_DEVICE_NODE_Remove(psDeviceNode);
-
-		
-		SysRemoveExternalDevice(psDeviceNode);
-
-		
-
-
-		PVR_ASSERT(psDCInfo->ui32RefCount == 0);
-		(IMG_VOID)FreeDeviceID(psSysData, ui32DevIndex);
-		(IMG_VOID)OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_DC_SRV2DISP_KMJTABLE), psDCInfo->psFuncTable, IMG_NULL);
-		psDCInfo->psFuncTable = IMG_NULL;
-		(IMG_VOID)OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_DISPLAYCLASS_INFO), psDCInfo, IMG_NULL);
-		
-		(IMG_VOID)OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_DEVICE_NODE), psDeviceNode, IMG_NULL);
-		
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRemoveDCDeviceKM: failed as %d Services DC API connections are still open", psDCInfo->ui32RefCount));
-		return PVRSRV_ERROR_UNABLE_TO_REMOVE_DEVICE;
-	}
-
-	return PVRSRV_OK;
-}
-
-
-static
-PVRSRV_ERROR PVRSRVRegisterBCDeviceKM (PVRSRV_BC_SRV2BUFFER_KMJTABLE *psFuncTable,
-									   IMG_UINT32	*pui32DeviceID)
-{
-	PVRSRV_BUFFERCLASS_INFO	*psBCInfo = IMG_NULL;
-	PVRSRV_DEVICE_NODE		*psDeviceNode;
-	SYS_DATA				*psSysData;
-	
-
-
-
-
-
-
-
-
-
-
-
-
-
-	SysAcquireData(&psSysData);
-
-	
-
-
-	
-	if(OSAllocMem( PVRSRV_OS_PAGEABLE_HEAP,
-					 sizeof(*psBCInfo),
-					 (IMG_VOID **)&psBCInfo, IMG_NULL,
-					 "Buffer Class Info") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRegisterBCDeviceKM: Failed psBCInfo alloc"));
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-	OSMemSet (psBCInfo, 0, sizeof(*psBCInfo));
-
-	
-	if(OSAllocMem( PVRSRV_OS_PAGEABLE_HEAP,
-					 sizeof(PVRSRV_BC_SRV2BUFFER_KMJTABLE),
-					 (IMG_VOID **)&psBCInfo->psFuncTable, IMG_NULL,
-					 "Function table for SRVKM->BUFFER") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRegisterBCDeviceKM: Failed psFuncTable alloc"));
-		goto ErrorExit;
-	}
-	OSMemSet (psBCInfo->psFuncTable, 0, sizeof(PVRSRV_BC_SRV2BUFFER_KMJTABLE));
-
-	
-	*psBCInfo->psFuncTable = *psFuncTable;
-
-	
-	if(OSAllocMem( PVRSRV_OS_NON_PAGEABLE_HEAP,
-					 sizeof(PVRSRV_DEVICE_NODE),
-					 (IMG_VOID **)&psDeviceNode, IMG_NULL,
-					 "Device Node") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRegisterBCDeviceKM: Failed psDeviceNode alloc"));
-		goto ErrorExit;
-	}
-	OSMemSet (psDeviceNode, 0, sizeof(PVRSRV_DEVICE_NODE));
-
-	psDeviceNode->pvDevice = (IMG_VOID*)psBCInfo;
-	psDeviceNode->ui32pvDeviceSize = sizeof(*psBCInfo);
-	psDeviceNode->ui32RefCount = 1;
-	psDeviceNode->sDevId.eDeviceType = PVRSRV_DEVICE_TYPE_EXT;
-	psDeviceNode->sDevId.eDeviceClass = PVRSRV_DEVICE_CLASS_BUFFER;
-	psDeviceNode->psSysData = psSysData;
-
-	
-	if (AllocateDeviceID(psSysData, &psDeviceNode->sDevId.ui32DeviceIndex) != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRegisterBCDeviceKM: Failed to allocate Device ID"));
-		goto ErrorExit;
-	}
-	psBCInfo->ui32DeviceID = psDeviceNode->sDevId.ui32DeviceIndex;
-	if (pui32DeviceID)
-	{
-		*pui32DeviceID = psDeviceNode->sDevId.ui32DeviceIndex;
-	}
-
-	
-	List_PVRSRV_DEVICE_NODE_Insert(&psSysData->psDeviceNodeList, psDeviceNode);
-
-	return PVRSRV_OK;
-
-ErrorExit:
-
-	if(psBCInfo->psFuncTable)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PPVRSRV_BC_SRV2BUFFER_KMJTABLE), psBCInfo->psFuncTable, IMG_NULL);
-		psBCInfo->psFuncTable = IMG_NULL;
-	}
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_BUFFERCLASS_INFO), psBCInfo, IMG_NULL);
-	
-
-	return PVRSRV_ERROR_OUT_OF_MEMORY;
-}
-
-
-static PVRSRV_ERROR PVRSRVRemoveBCDeviceKM(IMG_UINT32 ui32DevIndex)
-{
-	SYS_DATA					*psSysData;
-	PVRSRV_DEVICE_NODE			*psDevNode;
-	PVRSRV_BUFFERCLASS_INFO		*psBCInfo;
-
-	SysAcquireData(&psSysData);
-
-	
-	psDevNode = (PVRSRV_DEVICE_NODE*)
-		List_PVRSRV_DEVICE_NODE_Any_va(psSysData->psDeviceNodeList,
-									   &MatchDeviceKM_AnyVaCb,
-									   ui32DevIndex,
-									   IMG_FALSE,
-									   PVRSRV_DEVICE_CLASS_BUFFER);
-
-	if (!psDevNode)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRemoveBCDeviceKM: requested device %d not present", ui32DevIndex));
-		return PVRSRV_ERROR_NO_DEVICENODE_FOUND;
-	}
-
-	
-	
-	psBCInfo = (PVRSRV_BUFFERCLASS_INFO*)psDevNode->pvDevice;
-
-	
-
-
-	if(psBCInfo->ui32RefCount == 0)
-	{
-		
-
-		List_PVRSRV_DEVICE_NODE_Remove(psDevNode);
-
-		
-
-
-		(IMG_VOID)FreeDeviceID(psSysData, ui32DevIndex);
-		
-		
-		(IMG_VOID)OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_BC_SRV2BUFFER_KMJTABLE), psBCInfo->psFuncTable, IMG_NULL);
-		psBCInfo->psFuncTable = IMG_NULL;
-		(IMG_VOID)OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_BUFFERCLASS_INFO), psBCInfo, IMG_NULL);
-		
-		(IMG_VOID)OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_DEVICE_NODE), psDevNode, IMG_NULL);
-		
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRemoveBCDeviceKM: failed as %d Services BC API connections are still open", psBCInfo->ui32RefCount));
-		return PVRSRV_ERROR_UNABLE_TO_REMOVE_DEVICE;
-	}
-
-	return PVRSRV_OK;
-}
-
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVCloseDCDeviceKM (IMG_HANDLE	hDeviceKM,
-									IMG_BOOL	bResManCallback)
-{
-	PVRSRV_ERROR eError;
-	PVRSRV_DISPLAYCLASS_PERCONTEXT_INFO *psDCPerContextInfo;
-
-	PVR_UNREFERENCED_PARAMETER(bResManCallback);
-
-	psDCPerContextInfo = (PVRSRV_DISPLAYCLASS_PERCONTEXT_INFO *)hDeviceKM;
-
-	
-	eError = ResManFreeResByPtr(psDCPerContextInfo->hResItem, CLEANUP_WITH_POLL);
-
-	return eError;
-}
-
-
-static PVRSRV_ERROR CloseDCDeviceCallBack(IMG_PVOID  pvParam,
-										  IMG_UINT32 ui32Param,
-										  IMG_BOOL   bDummy)
-{
-	PVRSRV_DISPLAYCLASS_PERCONTEXT_INFO *psDCPerContextInfo;
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-
-	PVR_UNREFERENCED_PARAMETER(ui32Param);
-	PVR_UNREFERENCED_PARAMETER(bDummy);
-
-	psDCPerContextInfo = (PVRSRV_DISPLAYCLASS_PERCONTEXT_INFO *)pvParam;
-	psDCInfo = psDCPerContextInfo->psDCInfo;
-
-	if(psDCInfo->sSystemBuffer.sDeviceClassBuffer.ui32MemMapRefCount != 0)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"CloseDCDeviceCallBack: system buffer (0x%p) still mapped (refcount = %d)",
-				&psDCInfo->sSystemBuffer.sDeviceClassBuffer,
-				psDCInfo->sSystemBuffer.sDeviceClassBuffer.ui32MemMapRefCount));
-
-#if 0
-		
-		return PVRSRV_ERROR_STILL_MAPPED;
-#endif
-	}
-
-	psDCInfo->ui32RefCount--;
-	if(psDCInfo->ui32RefCount == 0)
-	{
-		
-		psDCInfo->psFuncTable->pfnCloseDCDevice(psDCInfo->hExtDevice);
-
-		if (--psDCInfo->sSystemBuffer.sDeviceClassBuffer.psKernelSyncInfo->ui32RefCount == 0)
-		{
-			PVRSRVFreeSyncInfoKM(psDCInfo->sSystemBuffer.sDeviceClassBuffer.psKernelSyncInfo);
-		}
-
-		psDCInfo->hDevMemContext = IMG_NULL;
-		psDCInfo->hExtDevice = IMG_NULL;
-	}
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_DISPLAYCLASS_PERCONTEXT_INFO), psDCPerContextInfo, IMG_NULL);
-	
-
-	return PVRSRV_OK;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVOpenDCDeviceKM (PVRSRV_PER_PROCESS_DATA	*psPerProc,
-								   IMG_UINT32				ui32DeviceID,
-								   IMG_HANDLE				hDevCookie,
-								   IMG_HANDLE				*phDeviceKM)
-{
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-	PVRSRV_DISPLAYCLASS_PERCONTEXT_INFO *psDCPerContextInfo;
-	PVRSRV_DEVICE_NODE	*psDeviceNode;
-	SYS_DATA			*psSysData;
-	PVRSRV_ERROR eError;
-
-	if(!phDeviceKM || !hDevCookie)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVOpenDCDeviceKM: Invalid params"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	SysAcquireData(&psSysData);
-
-	
-	psDeviceNode = (PVRSRV_DEVICE_NODE*)
-			List_PVRSRV_DEVICE_NODE_Any_va(psSysData->psDeviceNodeList,
-										   &MatchDeviceKM_AnyVaCb,
-										   ui32DeviceID,
-										   IMG_FALSE,
-										   PVRSRV_DEVICE_CLASS_DISPLAY);
-	if (!psDeviceNode)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVOpenDCDeviceKM: no devnode matching index %d", ui32DeviceID));
-		return PVRSRV_ERROR_NO_DEVICENODE_FOUND;
-	}
-	psDCInfo = (PVRSRV_DISPLAYCLASS_INFO*)psDeviceNode->pvDevice;
-
-	
-
-
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  sizeof(*psDCPerContextInfo),
-				  (IMG_VOID **)&psDCPerContextInfo, IMG_NULL,
-				  "Display Class per Context Info") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVOpenDCDeviceKM: Failed psDCPerContextInfo alloc"));
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-	OSMemSet(psDCPerContextInfo, 0, sizeof(*psDCPerContextInfo));
-
-	if(psDCInfo->ui32RefCount++ == 0)
-	{
-
-		psDeviceNode = (PVRSRV_DEVICE_NODE *)hDevCookie;
-
-		
-		psDCInfo->hDevMemContext = (IMG_HANDLE)psDeviceNode->sDevMemoryInfo.pBMKernelContext;
-
-		
-		eError = PVRSRVAllocSyncInfoKM(IMG_NULL,
-									(IMG_HANDLE)psDeviceNode->sDevMemoryInfo.pBMKernelContext,
-									&psDCInfo->sSystemBuffer.sDeviceClassBuffer.psKernelSyncInfo);
-		if(eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"PVRSRVOpenDCDeviceKM: Failed sync info alloc"));
-			psDCInfo->ui32RefCount--;
-			return eError;
-		}
-
-		
-		eError = psDCInfo->psFuncTable->pfnOpenDCDevice(ui32DeviceID,
-                                                        	&psDCInfo->hExtDevice,
-								(PVRSRV_SYNC_DATA*)psDCInfo->sSystemBuffer.sDeviceClassBuffer.psKernelSyncInfo->psSyncDataMemInfoKM->pvLinAddrKM);
-		if(eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"PVRSRVOpenDCDeviceKM: Failed to open external DC device"));
-			psDCInfo->ui32RefCount--;
-			PVRSRVFreeSyncInfoKM(psDCInfo->sSystemBuffer.sDeviceClassBuffer.psKernelSyncInfo);
-			return eError;
-		}
-
-		psDCInfo->sSystemBuffer.sDeviceClassBuffer.psKernelSyncInfo->ui32RefCount++;
-		psDCInfo->sSystemBuffer.sDeviceClassBuffer.ui32MemMapRefCount = 0;
-	}
-
-	psDCPerContextInfo->psDCInfo = psDCInfo;
-	psDCPerContextInfo->hResItem = ResManRegisterRes(psPerProc->hResManContext,
-													 RESMAN_TYPE_DISPLAYCLASS_DEVICE,
-													 psDCPerContextInfo,
-													 0,
-													 &CloseDCDeviceCallBack);
-
-	
-	*phDeviceKM = (IMG_HANDLE)psDCPerContextInfo;
-
-	return PVRSRV_OK;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVEnumDCFormatsKM (IMG_HANDLE hDeviceKM,
-									IMG_UINT32 *pui32Count,
-									DISPLAY_FORMAT *psFormat)
-{
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-
-	if(!hDeviceKM || !pui32Count || !psFormat)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVEnumDCFormatsKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psDCInfo = DCDeviceHandleToDCInfo(hDeviceKM);
-
-	
-	return psDCInfo->psFuncTable->pfnEnumDCFormats(psDCInfo->hExtDevice, pui32Count, psFormat);
-}
-
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVEnumDCDimsKM (IMG_HANDLE hDeviceKM,
-								 DISPLAY_FORMAT *psFormat,
-								 IMG_UINT32 *pui32Count,
-								 DISPLAY_DIMS *psDim)
-{
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-
-	if(!hDeviceKM || !pui32Count || !psFormat)	
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVEnumDCDimsKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psDCInfo = DCDeviceHandleToDCInfo(hDeviceKM);
-
-	
-	return psDCInfo->psFuncTable->pfnEnumDCDims(psDCInfo->hExtDevice, psFormat, pui32Count, psDim);
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVGetDCSystemBufferKM (IMG_HANDLE hDeviceKM,
-										IMG_HANDLE *phBuffer)
-{
-	PVRSRV_ERROR eError;
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-	IMG_HANDLE hExtBuffer;
-
-	if(!hDeviceKM || !phBuffer)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVGetDCSystemBufferKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psDCInfo = DCDeviceHandleToDCInfo(hDeviceKM);
-
-	
-	eError = psDCInfo->psFuncTable->pfnGetDCSystemBuffer(psDCInfo->hExtDevice, &hExtBuffer);
-	if(eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVGetDCSystemBufferKM: Failed to get valid buffer handle from external driver"));
-		return eError;
-	}
-
-	
-	psDCInfo->sSystemBuffer.sDeviceClassBuffer.pfnGetBufferAddr = psDCInfo->psFuncTable->pfnGetBufferAddr;
-	psDCInfo->sSystemBuffer.sDeviceClassBuffer.hDevMemContext = psDCInfo->hDevMemContext;
-	psDCInfo->sSystemBuffer.sDeviceClassBuffer.hExtDevice = psDCInfo->hExtDevice;
-	psDCInfo->sSystemBuffer.sDeviceClassBuffer.hExtBuffer = hExtBuffer;
-
-	psDCInfo->sSystemBuffer.psDCInfo = psDCInfo;
-
-	
-	*phBuffer = (IMG_HANDLE)&(psDCInfo->sSystemBuffer);
-
-	return PVRSRV_OK;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVGetDCInfoKM (IMG_HANDLE hDeviceKM,
-								DISPLAY_INFO *psDisplayInfo)
-{
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-	PVRSRV_ERROR eError;
-
-	if(!hDeviceKM || !psDisplayInfo)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVGetDCInfoKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psDCInfo = DCDeviceHandleToDCInfo(hDeviceKM);
-
-	
-	eError = psDCInfo->psFuncTable->pfnGetDCInfo(psDCInfo->hExtDevice, psDisplayInfo);
-	if (eError != PVRSRV_OK)
-	{
-		return eError;
-	}
-
-	if (psDisplayInfo->ui32MaxSwapChainBuffers > PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS)
-	{
-		psDisplayInfo->ui32MaxSwapChainBuffers = PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS;
-	}
-
-	return PVRSRV_OK;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVDestroyDCSwapChainKM(IMG_HANDLE hSwapChainRef)
-{
-	PVRSRV_ERROR eError;
-	PVRSRV_DC_SWAPCHAIN_REF *psSwapChainRef;
-
-	if(!hSwapChainRef)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVDestroyDCSwapChainKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psSwapChainRef = hSwapChainRef;
-
-	eError = ResManFreeResByPtr(psSwapChainRef->hResItem, CLEANUP_WITH_POLL);
-
-	return eError;
-}
-
-
-static PVRSRV_ERROR DestroyDCSwapChain(PVRSRV_DC_SWAPCHAIN *psSwapChain)
-{
-	PVRSRV_ERROR				eError;
-	PVRSRV_DISPLAYCLASS_INFO	*psDCInfo = psSwapChain->psDCInfo;
-	IMG_UINT32 i;
-
-	
-	if( psDCInfo->psDCSwapChainShared )
-	{
-		if( psDCInfo->psDCSwapChainShared == psSwapChain )
-		{
-			psDCInfo->psDCSwapChainShared = psSwapChain->psNext;
-		}
-		else 
-		{
-			PVRSRV_DC_SWAPCHAIN *psCurrentSwapChain;
-			psCurrentSwapChain = psDCInfo->psDCSwapChainShared; 		
-			while( psCurrentSwapChain->psNext )
-			{
-				if( psCurrentSwapChain->psNext != psSwapChain ) 
-				{
-					psCurrentSwapChain = psCurrentSwapChain->psNext;
-					continue;
-				}
-				psCurrentSwapChain->psNext = psSwapChain->psNext;
-				break;				
-			}
-		}
-	}
-
-	
-	PVRSRVDestroyCommandQueueKM(psSwapChain->psQueue);
-
-	
-	eError = psDCInfo->psFuncTable->pfnDestroyDCSwapChain(psDCInfo->hExtDevice,
-															psSwapChain->hExtSwapChain);
-
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"DestroyDCSwapChainCallBack: Failed to destroy DC swap chain"));
-		return eError;
-	}
-
-	
-	for(i=0; i<psSwapChain->ui32BufferCount; i++)
-	{
-		if(psSwapChain->asBuffer[i].sDeviceClassBuffer.psKernelSyncInfo)
-		{
-			if (--psSwapChain->asBuffer[i].sDeviceClassBuffer.psKernelSyncInfo->ui32RefCount == 0)
-			{
-				PVRSRVFreeSyncInfoKM(psSwapChain->asBuffer[i].sDeviceClassBuffer.psKernelSyncInfo);
-			}
-		}
-	}
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_DC_SWAPCHAIN), psSwapChain, IMG_NULL);
-	
-
-	return eError;
-}
-
-
-static PVRSRV_ERROR DestroyDCSwapChainRefCallBack(IMG_PVOID pvParam,
-												  IMG_UINT32 ui32Param,
-												  IMG_BOOL bDummy)
-{
-	PVRSRV_DC_SWAPCHAIN_REF *psSwapChainRef = (PVRSRV_DC_SWAPCHAIN_REF *) pvParam;
-	PVRSRV_ERROR eError = PVRSRV_OK;
-	IMG_UINT32 i;
-
-	PVR_UNREFERENCED_PARAMETER(ui32Param);
-	PVR_UNREFERENCED_PARAMETER(bDummy);
-
-	for (i = 0; i < psSwapChainRef->psSwapChain->ui32BufferCount; i++)
-	{
-		if (psSwapChainRef->psSwapChain->asBuffer[i].sDeviceClassBuffer.ui32MemMapRefCount != 0)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "DestroyDCSwapChainRefCallBack: swapchain (0x%p) still mapped (ui32MemMapRefCount = %d)",
-					&psSwapChainRef->psSwapChain->asBuffer[i].sDeviceClassBuffer,
-					psSwapChainRef->psSwapChain->asBuffer[i].sDeviceClassBuffer.ui32MemMapRefCount));
-#if 0
-			
-			return PVRSRV_ERROR_STILL_MAPPED;
-#endif
-		}
-	}
-
-	if(--psSwapChainRef->psSwapChain->ui32RefCount == 0) 
-	{
-		eError = DestroyDCSwapChain(psSwapChainRef->psSwapChain);
-	}
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_DC_SWAPCHAIN_REF), psSwapChainRef, IMG_NULL);
-	return eError;
-}
-
-static PVRSRV_DC_SWAPCHAIN* PVRSRVFindSharedDCSwapChainKM(PVRSRV_DISPLAYCLASS_INFO *psDCInfo,
-														 IMG_UINT32 ui32SwapChainID)
-{
-	PVRSRV_DC_SWAPCHAIN *psCurrentSwapChain;
-
-	for(psCurrentSwapChain = psDCInfo->psDCSwapChainShared; 
-		psCurrentSwapChain; 
-		psCurrentSwapChain = psCurrentSwapChain->psNext) 
-	{
-		if(psCurrentSwapChain->ui32SwapChainID == ui32SwapChainID)
-			return psCurrentSwapChain;
-	}
-	return IMG_NULL;
-}
-
-static PVRSRV_ERROR PVRSRVCreateDCSwapChainRefKM(PVRSRV_PER_PROCESS_DATA	*psPerProc,
-												 PVRSRV_DC_SWAPCHAIN 		*psSwapChain, 
-												 PVRSRV_DC_SWAPCHAIN_REF 	**ppsSwapChainRef)
-{
-	PVRSRV_DC_SWAPCHAIN_REF *psSwapChainRef = IMG_NULL;
-
-	
-	if(OSAllocMem( PVRSRV_OS_PAGEABLE_HEAP,
-					 sizeof(PVRSRV_DC_SWAPCHAIN_REF),
-					 (IMG_VOID **)&psSwapChainRef, IMG_NULL,
-					 "Display Class Swapchain Reference") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateDCSwapChainRefKM: Failed psSwapChainRef alloc"));
-		return  PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-	OSMemSet (psSwapChainRef, 0, sizeof(PVRSRV_DC_SWAPCHAIN_REF));
-
-	
-	psSwapChain->ui32RefCount++;
-
-	
-	psSwapChainRef->psSwapChain = psSwapChain;
-	psSwapChainRef->hResItem = ResManRegisterRes(psPerProc->hResManContext,
-												  RESMAN_TYPE_DISPLAYCLASS_SWAPCHAIN_REF,
-												  psSwapChainRef,
-												  0,
-												  &DestroyDCSwapChainRefCallBack);
-	*ppsSwapChainRef = psSwapChainRef;
-
-	return PVRSRV_OK;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVCreateDCSwapChainKM (PVRSRV_PER_PROCESS_DATA	*psPerProc,
-										IMG_HANDLE				hDeviceKM,
-										IMG_UINT32				ui32Flags,
-										DISPLAY_SURF_ATTRIBUTES	*psDstSurfAttrib,
-										DISPLAY_SURF_ATTRIBUTES *psSrcSurfAttrib,
-										IMG_UINT32				ui32BufferCount,
-										IMG_UINT32				ui32OEMFlags,
-										IMG_HANDLE				*phSwapChainRef,
-										IMG_UINT32				*pui32SwapChainID)
-{
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-	PVRSRV_DC_SWAPCHAIN *psSwapChain = IMG_NULL;
-	PVRSRV_DC_SWAPCHAIN_REF *psSwapChainRef = IMG_NULL;
-	PVRSRV_SYNC_DATA *apsSyncData[PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS];
-	PVRSRV_QUEUE_INFO *psQueue = IMG_NULL;
-	PVRSRV_ERROR eError;
-	IMG_UINT32 i;
-	DISPLAY_INFO sDisplayInfo;
-
-
-	if(!hDeviceKM
-	|| !psDstSurfAttrib
-	|| !psSrcSurfAttrib
-	|| !phSwapChainRef
-	|| !pui32SwapChainID)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateDCSwapChainKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	if (ui32BufferCount > PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateDCSwapChainKM: Too many buffers"));
-		return PVRSRV_ERROR_TOOMANYBUFFERS;
-	}
-
-	if (ui32BufferCount < 2)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateDCSwapChainKM: Too few buffers"));
-		return PVRSRV_ERROR_TOO_FEW_BUFFERS;
-	}
-
-	psDCInfo = DCDeviceHandleToDCInfo(hDeviceKM);
-
-	if( ui32Flags & PVRSRV_CREATE_SWAPCHAIN_QUERY )
-	{
-		
-		psSwapChain = PVRSRVFindSharedDCSwapChainKM(psDCInfo, *pui32SwapChainID );
-		if( psSwapChain  ) 
-		{	
-					   
-			eError = PVRSRVCreateDCSwapChainRefKM(psPerProc, 
-												  psSwapChain, 
-												  &psSwapChainRef);
-			if( eError != PVRSRV_OK ) 
-			{
-				PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateDCSwapChainKM: Couldn't create swap chain reference"));
-				return eError;
-			}
-
-			*phSwapChainRef = (IMG_HANDLE)psSwapChainRef;
-			return PVRSRV_OK;
-		}
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateDCSwapChainKM: No shared SwapChain found for query"));
-		return PVRSRV_ERROR_FLIP_CHAIN_EXISTS;		
-	}
-
-	
-	if(OSAllocMem( PVRSRV_OS_PAGEABLE_HEAP,
-					 sizeof(PVRSRV_DC_SWAPCHAIN),
-					 (IMG_VOID **)&psSwapChain, IMG_NULL,
-					 "Display Class Swapchain") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateDCSwapChainKM: Failed psSwapChain alloc"));
-		eError = PVRSRV_ERROR_OUT_OF_MEMORY;
-		goto ErrorExit;
-	}
-	OSMemSet (psSwapChain, 0, sizeof(PVRSRV_DC_SWAPCHAIN));
-
-	
-	eError = PVRSRVCreateCommandQueueKM(1024, &psQueue);
-	if(eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateDCSwapChainKM: Failed to create CmdQueue"));
-		goto ErrorExit;
-	}
-
-	
-	psSwapChain->psQueue = psQueue;
-
-	
-	for(i=0; i<ui32BufferCount; i++)
-	{
-		eError = PVRSRVAllocSyncInfoKM(IMG_NULL,
-										psDCInfo->hDevMemContext,
-										&psSwapChain->asBuffer[i].sDeviceClassBuffer.psKernelSyncInfo);
-		if(eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateDCSwapChainKM: Failed to alloc syninfo for psSwapChain"));
-			goto ErrorExit;
-		}
-
-		psSwapChain->asBuffer[i].sDeviceClassBuffer.psKernelSyncInfo->ui32RefCount++;
-
-		
-		psSwapChain->asBuffer[i].sDeviceClassBuffer.pfnGetBufferAddr = psDCInfo->psFuncTable->pfnGetBufferAddr;
-		psSwapChain->asBuffer[i].sDeviceClassBuffer.hDevMemContext = psDCInfo->hDevMemContext;
-		psSwapChain->asBuffer[i].sDeviceClassBuffer.hExtDevice = psDCInfo->hExtDevice;
-
-		
-		psSwapChain->asBuffer[i].psDCInfo = psDCInfo;
-		psSwapChain->asBuffer[i].psSwapChain = psSwapChain;
-
-		
-		apsSyncData[i] = (PVRSRV_SYNC_DATA*)psSwapChain->asBuffer[i].sDeviceClassBuffer.psKernelSyncInfo->psSyncDataMemInfoKM->pvLinAddrKM;
-	}
-
-	psSwapChain->ui32BufferCount = ui32BufferCount;
-	psSwapChain->psDCInfo = psDCInfo;
-
-#if defined(PDUMP)
-	PDUMPCOMMENT("Allocate DC swap chain (SwapChainID == %u, BufferCount == %u)",
-			*pui32SwapChainID,
-			ui32BufferCount);
-	PDUMPCOMMENT("  Src surface dimensions == %u x %u",
-			psSrcSurfAttrib->sDims.ui32Width,
-			psSrcSurfAttrib->sDims.ui32Height);
-	PDUMPCOMMENT("  Dst surface dimensions == %u x %u",
-			psDstSurfAttrib->sDims.ui32Width,
-			psDstSurfAttrib->sDims.ui32Height);
-#endif
-
-	eError = psDCInfo->psFuncTable->pfnGetDCInfo(psDCInfo->hExtDevice, &sDisplayInfo);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateDCSwapChainKM: Failed to get DC info"));
-		return eError;
-	}
-	
-	psSwapChain->ui32MinSwapInterval = sDisplayInfo.ui32MinSwapInterval;
-	psSwapChain->ui32MaxSwapInterval = sDisplayInfo.ui32MaxSwapInterval;
-
-	
-	eError =  psDCInfo->psFuncTable->pfnCreateDCSwapChain(psDCInfo->hExtDevice,
-														ui32Flags,
-														psDstSurfAttrib,
-														psSrcSurfAttrib,
-														ui32BufferCount,
-														apsSyncData,
-														ui32OEMFlags,
-														&psSwapChain->hExtSwapChain,
-														&psSwapChain->ui32SwapChainID);
-	if(eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateDCSwapChainKM: Failed to create 3rd party SwapChain"));
-		PDUMPCOMMENT("Swapchain allocation failed.");
-		goto ErrorExit;
-	}
-
-			   
-	eError = PVRSRVCreateDCSwapChainRefKM(psPerProc, 
-										  psSwapChain, 
-										  &psSwapChainRef);
-	if( eError != PVRSRV_OK ) 
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateDCSwapChainKM: Couldn't create swap chain reference"));
-		PDUMPCOMMENT("Swapchain allocation failed.");
-		goto ErrorExit;
-	}
-
-	psSwapChain->ui32RefCount = 1;
-	psSwapChain->ui32Flags = ui32Flags;
-
-	
-	if( ui32Flags & PVRSRV_CREATE_SWAPCHAIN_SHARED )
-	{
-   		if(! psDCInfo->psDCSwapChainShared ) 
-		{
-			psDCInfo->psDCSwapChainShared = psSwapChain;
-		} 
-		else 
-		{	
-			PVRSRV_DC_SWAPCHAIN *psOldHead = psDCInfo->psDCSwapChainShared;
-			psDCInfo->psDCSwapChainShared = psSwapChain;
-			psSwapChain->psNext = psOldHead;
-		}
-	}
-
-	
-	*pui32SwapChainID = psSwapChain->ui32SwapChainID;
-
-	
-	*phSwapChainRef= (IMG_HANDLE)psSwapChainRef;
-
-	return eError;
-
-ErrorExit:
-
-	for(i=0; i<ui32BufferCount; i++)
-	{
-		if(psSwapChain->asBuffer[i].sDeviceClassBuffer.psKernelSyncInfo)
-		{
-			if (--psSwapChain->asBuffer[i].sDeviceClassBuffer.psKernelSyncInfo->ui32RefCount == 0)
-			{
-				PVRSRVFreeSyncInfoKM(psSwapChain->asBuffer[i].sDeviceClassBuffer.psKernelSyncInfo);
-			}
-		}
-	}
-
-	if(psQueue)
-	{
-		PVRSRVDestroyCommandQueueKM(psQueue);
-	}
-
-	if(psSwapChain)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_DC_SWAPCHAIN), psSwapChain, IMG_NULL);
-		
-	}
-
-	return eError;
-}
-
-
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVSetDCDstRectKM(IMG_HANDLE	hDeviceKM,
-								  IMG_HANDLE	hSwapChainRef,
-								  IMG_RECT		*psRect)
-{
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-	PVRSRV_DC_SWAPCHAIN *psSwapChain;
-
-	if(!hDeviceKM || !hSwapChainRef)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVSetDCDstRectKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psDCInfo = DCDeviceHandleToDCInfo(hDeviceKM);
-	psSwapChain = ((PVRSRV_DC_SWAPCHAIN_REF*)hSwapChainRef)->psSwapChain;
-
-	return psDCInfo->psFuncTable->pfnSetDCDstRect(psDCInfo->hExtDevice,
-													psSwapChain->hExtSwapChain,
-													psRect);
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVSetDCSrcRectKM(IMG_HANDLE	hDeviceKM,
-								  IMG_HANDLE	hSwapChainRef,
-								  IMG_RECT		*psRect)
-{
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-	PVRSRV_DC_SWAPCHAIN *psSwapChain;
-
-	if(!hDeviceKM || !hSwapChainRef)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVSetDCSrcRectKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psDCInfo = DCDeviceHandleToDCInfo(hDeviceKM);
-	psSwapChain = ((PVRSRV_DC_SWAPCHAIN_REF*)hSwapChainRef)->psSwapChain;
-
-	return psDCInfo->psFuncTable->pfnSetDCSrcRect(psDCInfo->hExtDevice,
-													psSwapChain->hExtSwapChain,
-													psRect);
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVSetDCDstColourKeyKM(IMG_HANDLE	hDeviceKM,
-									   IMG_HANDLE	hSwapChainRef,
-									   IMG_UINT32	ui32CKColour)
-{
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-	PVRSRV_DC_SWAPCHAIN *psSwapChain;
-
-	if(!hDeviceKM || !hSwapChainRef)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVSetDCDstColourKeyKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psDCInfo = DCDeviceHandleToDCInfo(hDeviceKM);
-	psSwapChain = ((PVRSRV_DC_SWAPCHAIN_REF*)hSwapChainRef)->psSwapChain;
-
-	return psDCInfo->psFuncTable->pfnSetDCDstColourKey(psDCInfo->hExtDevice,
-														psSwapChain->hExtSwapChain,
-														ui32CKColour);
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVSetDCSrcColourKeyKM(IMG_HANDLE	hDeviceKM,
-									   IMG_HANDLE	hSwapChainRef,
-									   IMG_UINT32	ui32CKColour)
-{
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-	PVRSRV_DC_SWAPCHAIN *psSwapChain;
-
-	if(!hDeviceKM || !hSwapChainRef)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVSetDCSrcColourKeyKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psDCInfo = DCDeviceHandleToDCInfo(hDeviceKM);
-	psSwapChain = ((PVRSRV_DC_SWAPCHAIN_REF*)hSwapChainRef)->psSwapChain;
-
-	return psDCInfo->psFuncTable->pfnSetDCSrcColourKey(psDCInfo->hExtDevice,
-														psSwapChain->hExtSwapChain,
-														ui32CKColour);
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVGetDCBuffersKM(IMG_HANDLE	hDeviceKM,
-								  IMG_HANDLE	hSwapChainRef,
-								  IMG_UINT32	*pui32BufferCount,
-								  IMG_HANDLE	*phBuffer)
-{
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-	PVRSRV_DC_SWAPCHAIN *psSwapChain;
-	IMG_HANDLE ahExtBuffer[PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS];
-	PVRSRV_ERROR eError;
-	IMG_UINT32 i;
-
-	if(!hDeviceKM || !hSwapChainRef || !phBuffer)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVGetDCBuffersKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psDCInfo = DCDeviceHandleToDCInfo(hDeviceKM);
-	psSwapChain = ((PVRSRV_DC_SWAPCHAIN_REF*)hSwapChainRef)->psSwapChain;
-
-	
-	eError = psDCInfo->psFuncTable->pfnGetDCBuffers(psDCInfo->hExtDevice,
-													psSwapChain->hExtSwapChain,
-													pui32BufferCount,
-													ahExtBuffer);
-
-	PVR_ASSERT(*pui32BufferCount <= PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS);
-
-	
-
-
-	for(i=0; i<*pui32BufferCount; i++)
-	{
-		psSwapChain->asBuffer[i].sDeviceClassBuffer.hExtBuffer = ahExtBuffer[i];
-		phBuffer[i] = (IMG_HANDLE)&psSwapChain->asBuffer[i];
-	}
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVSwapToDCBufferKM(IMG_HANDLE	hDeviceKM,
-									IMG_HANDLE	hBuffer,
-									IMG_UINT32	ui32SwapInterval,
-									IMG_HANDLE	hPrivateTag,
-									IMG_UINT32	ui32ClipRectCount,
-									IMG_RECT	*psClipRect)
-{
-	PVRSRV_ERROR eError;
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-	PVRSRV_DC_BUFFER *psBuffer;
-	PVRSRV_QUEUE_INFO *psQueue;
-	DISPLAYCLASS_FLIP_COMMAND *psFlipCmd;
-	IMG_UINT32 i;
-	IMG_BOOL bAddReferenceToLast = IMG_TRUE;
-	IMG_UINT16 ui16SwapCommandID = DC_FLIP_COMMAND;
-	IMG_UINT32 ui32NumSrcSyncs = 1;
-	PVRSRV_KERNEL_SYNC_INFO *apsSrcSync[2];
-	PVRSRV_COMMAND *psCommand;
-	SYS_DATA *psSysData;
-
-	if(!hDeviceKM || !hBuffer || !psClipRect)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCBufferKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psBuffer = (PVRSRV_DC_BUFFER*)hBuffer;
-	psDCInfo = DCDeviceHandleToDCInfo(hDeviceKM);
-
-	
-	if(ui32SwapInterval < psBuffer->psSwapChain->ui32MinSwapInterval ||
-		ui32SwapInterval > psBuffer->psSwapChain->ui32MaxSwapInterval)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCBufferKM: Invalid swap interval. Requested %u, Allowed range %u-%u",
-				 ui32SwapInterval, psBuffer->psSwapChain->ui32MinSwapInterval, psBuffer->psSwapChain->ui32MaxSwapInterval));
-		return PVRSRV_ERROR_INVALID_SWAPINTERVAL;
-	}
-
-#if defined(SUPPORT_CUSTOM_SWAP_OPERATIONS)
-
-	if(psDCInfo->psFuncTable->pfnQuerySwapCommandID != IMG_NULL)
-	{
-		psDCInfo->psFuncTable->pfnQuerySwapCommandID(psDCInfo->hExtDevice,
-													 psBuffer->psSwapChain->hExtSwapChain,
-													 psBuffer->sDeviceClassBuffer.hExtBuffer, 
-													 hPrivateTag, 
-													 &ui16SwapCommandID,
-													 &bAddReferenceToLast);
-		
-	}
-
-#endif
-
-	
-	psQueue = psBuffer->psSwapChain->psQueue;
-
-	
-	apsSrcSync[0] = psBuffer->sDeviceClassBuffer.psKernelSyncInfo;
-	
-
-
-	if(bAddReferenceToLast && psBuffer->psSwapChain->psLastFlipBuffer &&
-		psBuffer != psBuffer->psSwapChain->psLastFlipBuffer)
-	{
-		apsSrcSync[1] = psBuffer->psSwapChain->psLastFlipBuffer->sDeviceClassBuffer.psKernelSyncInfo;
-		
-
-
-		ui32NumSrcSyncs++;
-	}
-
-	
-	eError = PVRSRVInsertCommandKM (psQueue,
-									&psCommand,
-									psDCInfo->ui32DeviceID,
-									ui16SwapCommandID,
-									0,
-									IMG_NULL,
-									ui32NumSrcSyncs,
-									apsSrcSync,
-									sizeof(DISPLAYCLASS_FLIP_COMMAND) + (sizeof(IMG_RECT) * ui32ClipRectCount));
-	if(eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCBufferKM: Failed to get space in queue"));
-		goto Exit;
-	}
-
-	
-	psFlipCmd = (DISPLAYCLASS_FLIP_COMMAND*)psCommand->pvData;
-
-	
-	psFlipCmd->hExtDevice = psDCInfo->hExtDevice;
-
-	
-	psFlipCmd->hExtSwapChain = psBuffer->psSwapChain->hExtSwapChain;
-
-	
-	psFlipCmd->hExtBuffer = psBuffer->sDeviceClassBuffer.hExtBuffer;
-
-	
-	psFlipCmd->hPrivateTag = hPrivateTag;
-
-	
-	psFlipCmd->ui32ClipRectCount = ui32ClipRectCount;
-	
-	psFlipCmd->psClipRect = (IMG_RECT*)((IMG_UINT8*)psFlipCmd + sizeof(DISPLAYCLASS_FLIP_COMMAND));	
-	
-	for(i=0; i<ui32ClipRectCount; i++)
-	{
-		psFlipCmd->psClipRect[i] = psClipRect[i];
-	}
-
-	
-	psFlipCmd->ui32SwapInterval = ui32SwapInterval;
-
-	
-	eError = PVRSRVSubmitCommandKM (psQueue, psCommand);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCBufferKM: Failed to submit command"));
-		goto Exit;
-	}
-
-	
-
-	SysAcquireData(&psSysData);
-    eError = OSScheduleMISR(psSysData);
-
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCBufferKM: Failed to schedule MISR"));
-		goto Exit;
-	}
-
-	
-	psBuffer->psSwapChain->psLastFlipBuffer = psBuffer;
-
-Exit:
-
-	if(eError == PVRSRV_ERROR_CANNOT_GET_QUEUE_SPACE)
-	{
-		eError = PVRSRV_ERROR_RETRY;
-	}
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVSwapToDCSystemKM(IMG_HANDLE	hDeviceKM,
-									IMG_HANDLE	hSwapChainRef)
-{
-	PVRSRV_ERROR eError;
-	PVRSRV_QUEUE_INFO *psQueue;
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-	PVRSRV_DC_SWAPCHAIN *psSwapChain;
-	PVRSRV_DC_SWAPCHAIN_REF *psSwapChainRef;
-	DISPLAYCLASS_FLIP_COMMAND *psFlipCmd;
-	IMG_UINT32 ui32NumSrcSyncs = 1;
-	PVRSRV_KERNEL_SYNC_INFO *apsSrcSync[2];
-	PVRSRV_COMMAND *psCommand;
-	IMG_BOOL bAddReferenceToLast = IMG_TRUE;
-	IMG_UINT16 ui16SwapCommandID = DC_FLIP_COMMAND;
-    SYS_DATA *psSysData;
-
-	if(!hDeviceKM || !hSwapChainRef)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCSystemKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psDCInfo = DCDeviceHandleToDCInfo(hDeviceKM);
-	psSwapChainRef = (PVRSRV_DC_SWAPCHAIN_REF*)hSwapChainRef;
-	psSwapChain = psSwapChainRef->psSwapChain;
-
-	
-	psQueue = psSwapChain->psQueue;
-
-#if defined(SUPPORT_CUSTOM_SWAP_OPERATIONS)
-
-	if(psDCInfo->psFuncTable->pfnQuerySwapCommandID != IMG_NULL)
-	{
-		psDCInfo->psFuncTable->pfnQuerySwapCommandID(psDCInfo->hExtDevice,
-													 psSwapChain->hExtSwapChain,
-													 psDCInfo->sSystemBuffer.sDeviceClassBuffer.hExtBuffer, 
-													 0, 
-													 &ui16SwapCommandID,
-													 &bAddReferenceToLast);
-		
-	}
-
-#endif
-
-	
-	apsSrcSync[0] = psDCInfo->sSystemBuffer.sDeviceClassBuffer.psKernelSyncInfo;
-	
-
-
-	if(bAddReferenceToLast && psSwapChain->psLastFlipBuffer)
-	{
-		
-		if (apsSrcSync[0] != psSwapChain->psLastFlipBuffer->sDeviceClassBuffer.psKernelSyncInfo)
-		{
-			apsSrcSync[1] = psSwapChain->psLastFlipBuffer->sDeviceClassBuffer.psKernelSyncInfo;
-			
-
-
-			ui32NumSrcSyncs++;
-		}
-	}
-
-	
-	eError = PVRSRVInsertCommandKM (psQueue,
-									&psCommand,
-									psDCInfo->ui32DeviceID,
-									ui16SwapCommandID,
-									0,
-									IMG_NULL,
-									ui32NumSrcSyncs,
-									apsSrcSync,
-									sizeof(DISPLAYCLASS_FLIP_COMMAND));
-	if(eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCSystemKM: Failed to get space in queue"));
-		goto Exit;
-	}
-
-	
-	psFlipCmd = (DISPLAYCLASS_FLIP_COMMAND*)psCommand->pvData;
-
-	
-	psFlipCmd->hExtDevice = psDCInfo->hExtDevice;
-
-	
-	psFlipCmd->hExtSwapChain = psSwapChain->hExtSwapChain;
-
-	
-	psFlipCmd->hExtBuffer = psDCInfo->sSystemBuffer.sDeviceClassBuffer.hExtBuffer;
-
-	
-	psFlipCmd->hPrivateTag = IMG_NULL;
-
-	
-	psFlipCmd->ui32ClipRectCount = 0;
-
-	psFlipCmd->ui32SwapInterval = 1;
-
-	
-	eError = PVRSRVSubmitCommandKM (psQueue, psCommand);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCSystemKM: Failed to submit command"));
-		goto Exit;
-	}
-
-	
-	SysAcquireData(&psSysData);
-    eError = OSScheduleMISR(psSysData);
-
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCSystemKM: Failed to schedule MISR"));
-		goto Exit;
-	}
-
-	
-	psSwapChain->psLastFlipBuffer = &psDCInfo->sSystemBuffer;
-
-	eError = PVRSRV_OK;
-
-Exit:
-
-	if(eError == PVRSRV_ERROR_CANNOT_GET_QUEUE_SPACE)
-	{
-		eError = PVRSRV_ERROR_RETRY;
-	}
-
-	return eError;
-}
-
-
-static
-PVRSRV_ERROR PVRSRVRegisterSystemISRHandler (PFN_ISR_HANDLER	pfnISRHandler,
-											 IMG_VOID			*pvISRHandlerData,
-											 IMG_UINT32			ui32ISRSourceMask,
-											 IMG_UINT32			ui32DeviceID)
-{
-	SYS_DATA 			*psSysData;
-	PVRSRV_DEVICE_NODE	*psDevNode;
-
-	PVR_UNREFERENCED_PARAMETER(ui32ISRSourceMask);
-
-	SysAcquireData(&psSysData);
-
-	
-	psDevNode = (PVRSRV_DEVICE_NODE*)
-				List_PVRSRV_DEVICE_NODE_Any_va(psSysData->psDeviceNodeList,
-												&MatchDeviceKM_AnyVaCb,
-												ui32DeviceID,
-												IMG_TRUE);
-
-	if (psDevNode == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRegisterSystemISRHandler: Failed to get psDevNode"));
-		PVR_DBG_BREAK;
-		return PVRSRV_ERROR_NO_DEVICENODE_FOUND;
-	}
-
-	
-	psDevNode->pvISRData = (IMG_VOID*) pvISRHandlerData;
-
-	
-	psDevNode->pfnDeviceISR	= pfnISRHandler;
-
-	return PVRSRV_OK;
-}
-
-static
-IMG_VOID PVRSRVSetDCState_ForEachVaCb(PVRSRV_DEVICE_NODE *psDeviceNode, va_list va)
-{
-	PVRSRV_DISPLAYCLASS_INFO *psDCInfo;
-	IMG_UINT32 ui32State;
-	ui32State = va_arg(va, IMG_UINT32);
-
-	if (psDeviceNode->sDevId.eDeviceClass == PVRSRV_DEVICE_CLASS_DISPLAY)
-	{
-		psDCInfo = (PVRSRV_DISPLAYCLASS_INFO *)psDeviceNode->pvDevice;
-		if (psDCInfo->psFuncTable->pfnSetDCState && psDCInfo->hExtDevice)
-		{
-			psDCInfo->psFuncTable->pfnSetDCState(psDCInfo->hExtDevice, ui32State);
-		}
-	}
-}
-
-
-IMG_VOID IMG_CALLCONV PVRSRVSetDCState(IMG_UINT32 ui32State)
-{
-	SYS_DATA					*psSysData;
-
-	SysAcquireData(&psSysData);
-
-	List_PVRSRV_DEVICE_NODE_ForEach_va(psSysData->psDeviceNodeList,
-										&PVRSRVSetDCState_ForEachVaCb,
-										ui32State);
-}
-
-
-IMG_EXPORT
-IMG_BOOL PVRGetDisplayClassJTable(PVRSRV_DC_DISP2SRV_KMJTABLE *psJTable)
-{
-	psJTable->ui32TableSize = sizeof(PVRSRV_DC_DISP2SRV_KMJTABLE);
-	psJTable->pfnPVRSRVRegisterDCDevice = &PVRSRVRegisterDCDeviceKM;
-	psJTable->pfnPVRSRVRemoveDCDevice = &PVRSRVRemoveDCDeviceKM;
-	psJTable->pfnPVRSRVOEMFunction = &SysOEMFunction;
-	psJTable->pfnPVRSRVRegisterCmdProcList = &PVRSRVRegisterCmdProcListKM;
-	psJTable->pfnPVRSRVRemoveCmdProcList = &PVRSRVRemoveCmdProcListKM;
-#if defined(SUPPORT_MISR_IN_THREAD)
-        psJTable->pfnPVRSRVCmdComplete = &OSVSyncMISR;
-#else
-        psJTable->pfnPVRSRVCmdComplete = &PVRSRVCommandCompleteKM;
-#endif
-	psJTable->pfnPVRSRVRegisterSystemISRHandler = &PVRSRVRegisterSystemISRHandler;
-	psJTable->pfnPVRSRVRegisterPowerDevice = &PVRSRVRegisterPowerDevice;
-#if defined(SUPPORT_CUSTOM_SWAP_OPERATIONS)
-	psJTable->pfnPVRSRVFreeCmdCompletePacket = &PVRSRVFreeCommandCompletePacketKM;
-#endif
-
-	return IMG_TRUE;
-}
-
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVCloseBCDeviceKM (IMG_HANDLE	hDeviceKM,
-									IMG_BOOL	bResManCallback)
-{
-	PVRSRV_ERROR eError;
-	PVRSRV_BUFFERCLASS_PERCONTEXT_INFO *psBCPerContextInfo;
-
-	PVR_UNREFERENCED_PARAMETER(bResManCallback);
-
-	psBCPerContextInfo = (PVRSRV_BUFFERCLASS_PERCONTEXT_INFO *)hDeviceKM;
-
-	
-	eError = ResManFreeResByPtr(psBCPerContextInfo->hResItem, CLEANUP_WITH_POLL);
-
-	return eError;
-}
-
-
-static PVRSRV_ERROR CloseBCDeviceCallBack(IMG_PVOID  pvParam,
-										  IMG_UINT32 ui32Param,
-										  IMG_BOOL   bDummy)
-{
-	PVRSRV_BUFFERCLASS_PERCONTEXT_INFO *psBCPerContextInfo;
-	PVRSRV_BUFFERCLASS_INFO *psBCInfo;
-	IMG_UINT32 i;
-
-	PVR_UNREFERENCED_PARAMETER(ui32Param);
-	PVR_UNREFERENCED_PARAMETER(bDummy);
-
-	psBCPerContextInfo = (PVRSRV_BUFFERCLASS_PERCONTEXT_INFO *)pvParam;
-
-	psBCInfo = psBCPerContextInfo->psBCInfo;
-
-	for (i = 0; i < psBCInfo->ui32BufferCount; i++)
-	{
-		if (psBCInfo->psBuffer[i].sDeviceClassBuffer.ui32MemMapRefCount != 0)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "CloseBCDeviceCallBack: buffer %d (0x%p) still mapped (ui32MemMapRefCount = %d)",
-					i,
-					&psBCInfo->psBuffer[i].sDeviceClassBuffer,
-					psBCInfo->psBuffer[i].sDeviceClassBuffer.ui32MemMapRefCount));
-			return PVRSRV_ERROR_STILL_MAPPED;
-		}
-	}
-
-	psBCInfo->ui32RefCount--;
-	if(psBCInfo->ui32RefCount == 0)
-	{
-		
-		psBCInfo->psFuncTable->pfnCloseBCDevice(psBCInfo->ui32DeviceID, psBCInfo->hExtDevice);
-
-		
-		for(i=0; i<psBCInfo->ui32BufferCount; i++)
-		{
-			if(psBCInfo->psBuffer[i].sDeviceClassBuffer.psKernelSyncInfo)
-			{
-				if (--psBCInfo->psBuffer[i].sDeviceClassBuffer.psKernelSyncInfo->ui32RefCount == 0)
-				{
-					PVRSRVFreeSyncInfoKM(psBCInfo->psBuffer[i].sDeviceClassBuffer.psKernelSyncInfo);
-				}
-			}
-		}
-
-		
-		if(psBCInfo->psBuffer)
-		{
-			OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_BC_BUFFER) * psBCInfo->ui32BufferCount, psBCInfo->psBuffer, IMG_NULL);
-			psBCInfo->psBuffer = IMG_NULL;
-		}
-	}
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_BUFFERCLASS_PERCONTEXT_INFO), psBCPerContextInfo, IMG_NULL);
-	
-
-	return PVRSRV_OK;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVOpenBCDeviceKM (PVRSRV_PER_PROCESS_DATA	*psPerProc,
-								   IMG_UINT32				ui32DeviceID,
-								   IMG_HANDLE				hDevCookie,
-								   IMG_HANDLE				*phDeviceKM)
-{
-	PVRSRV_BUFFERCLASS_INFO	*psBCInfo;
-	PVRSRV_BUFFERCLASS_PERCONTEXT_INFO	*psBCPerContextInfo;
-	PVRSRV_DEVICE_NODE		*psDeviceNode;
-	SYS_DATA 				*psSysData;
-	IMG_UINT32 				i;
-	PVRSRV_ERROR			eError;
-
-	if(!phDeviceKM || !hDevCookie)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVOpenBCDeviceKM: Invalid params"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	SysAcquireData(&psSysData);
-
-	
-	psDeviceNode = (PVRSRV_DEVICE_NODE*)
-			List_PVRSRV_DEVICE_NODE_Any_va(psSysData->psDeviceNodeList,
-										   &MatchDeviceKM_AnyVaCb,
-										   ui32DeviceID,
-										   IMG_FALSE,
-										   PVRSRV_DEVICE_CLASS_BUFFER);
-	if (!psDeviceNode)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVOpenBCDeviceKM: No devnode matching index %d", ui32DeviceID));
-		return PVRSRV_ERROR_NO_DEVICENODE_FOUND;
-	}
-	psBCInfo = (PVRSRV_BUFFERCLASS_INFO*)psDeviceNode->pvDevice;
-
-	
-
-
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  sizeof(*psBCPerContextInfo),
-				  (IMG_VOID **)&psBCPerContextInfo, IMG_NULL,
-				  "Buffer Class per Context Info") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVOpenBCDeviceKM: Failed psBCPerContextInfo alloc"));
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-	OSMemSet(psBCPerContextInfo, 0, sizeof(*psBCPerContextInfo));
-
-	if(psBCInfo->ui32RefCount++ == 0)
-	{
-		BUFFER_INFO sBufferInfo;
-
-		psDeviceNode = (PVRSRV_DEVICE_NODE *)hDevCookie;
-
-		
-		psBCInfo->hDevMemContext = (IMG_HANDLE)psDeviceNode->sDevMemoryInfo.pBMKernelContext;
-
-		
-		eError = psBCInfo->psFuncTable->pfnOpenBCDevice(ui32DeviceID, &psBCInfo->hExtDevice);
-		if(eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"PVRSRVOpenBCDeviceKM: Failed to open external BC device"));
-			return eError;
-		}
-
-		
-		eError = psBCInfo->psFuncTable->pfnGetBCInfo(psBCInfo->hExtDevice, &sBufferInfo);
-		if(eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"PVRSRVOpenBCDeviceKM : Failed to get BC Info"));
-			return eError;
-		}
-
-		
-		psBCInfo->ui32BufferCount = sBufferInfo.ui32BufferCount;
-		
-
-		
-		eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-							  sizeof(PVRSRV_BC_BUFFER) * sBufferInfo.ui32BufferCount,
-							  (IMG_VOID **)&psBCInfo->psBuffer,
-						 	  IMG_NULL,
-							  "Array of Buffer Class Buffer");
-		if(eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"PVRSRVOpenBCDeviceKM: Failed to allocate BC buffers"));
-			return eError;
-		}
-		OSMemSet (psBCInfo->psBuffer,
-					0,
-					sizeof(PVRSRV_BC_BUFFER) * sBufferInfo.ui32BufferCount);
-
-		for(i=0; i<psBCInfo->ui32BufferCount; i++)
-		{
-			
-			eError = PVRSRVAllocSyncInfoKM(IMG_NULL,
-										psBCInfo->hDevMemContext,
-										&psBCInfo->psBuffer[i].sDeviceClassBuffer.psKernelSyncInfo);
-			if(eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,"PVRSRVOpenBCDeviceKM: Failed sync info alloc"));
-				goto ErrorExit;
-			}
-
-			psBCInfo->psBuffer[i].sDeviceClassBuffer.psKernelSyncInfo->ui32RefCount++;
-			
-			
-
-
-			eError = psBCInfo->psFuncTable->pfnGetBCBuffer(psBCInfo->hExtDevice,
-															i,
-															psBCInfo->psBuffer[i].sDeviceClassBuffer.psKernelSyncInfo->psSyncData,
-															&psBCInfo->psBuffer[i].sDeviceClassBuffer.hExtBuffer);
-			if(eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,"PVRSRVOpenBCDeviceKM: Failed to get BC buffers"));
-				goto ErrorExit;
-			}
-
-			
-			psBCInfo->psBuffer[i].sDeviceClassBuffer.pfnGetBufferAddr = psBCInfo->psFuncTable->pfnGetBufferAddr;
-			psBCInfo->psBuffer[i].sDeviceClassBuffer.hDevMemContext = psBCInfo->hDevMemContext;
-			psBCInfo->psBuffer[i].sDeviceClassBuffer.hExtDevice = psBCInfo->hExtDevice;
-			psBCInfo->psBuffer[i].sDeviceClassBuffer.ui32MemMapRefCount = 0;
-		}
-	}
-
-	psBCPerContextInfo->psBCInfo = psBCInfo;
-	psBCPerContextInfo->hResItem = ResManRegisterRes(psPerProc->hResManContext,
-													 RESMAN_TYPE_BUFFERCLASS_DEVICE,
-													 psBCPerContextInfo,
-													 0,
-													 &CloseBCDeviceCallBack);
-
-	
-	*phDeviceKM = (IMG_HANDLE)psBCPerContextInfo;
-
-	return PVRSRV_OK;
-
-ErrorExit:
-
-	
-	for(i=0; i<psBCInfo->ui32BufferCount; i++)
-	{
-		if(psBCInfo->psBuffer[i].sDeviceClassBuffer.psKernelSyncInfo)
-		{
-			if (--psBCInfo->psBuffer[i].sDeviceClassBuffer.psKernelSyncInfo->ui32RefCount == 0)
-			{
-				PVRSRVFreeSyncInfoKM(psBCInfo->psBuffer[i].sDeviceClassBuffer.psKernelSyncInfo);
-			}
-		}
-	}
-
-	
-	if(psBCInfo->psBuffer)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_BC_BUFFER), psBCInfo->psBuffer, IMG_NULL);
-		psBCInfo->psBuffer = IMG_NULL;
-	}
-
-	return eError;
-}
-
-
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVGetBCInfoKM (IMG_HANDLE hDeviceKM,
-								BUFFER_INFO *psBufferInfo)
-{
-	PVRSRV_BUFFERCLASS_INFO *psBCInfo;
-	PVRSRV_ERROR 			eError;
-
-	if(!hDeviceKM || !psBufferInfo)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVGetBCInfoKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psBCInfo = BCDeviceHandleToBCInfo(hDeviceKM);
-
-	eError = psBCInfo->psFuncTable->pfnGetBCInfo(psBCInfo->hExtDevice, psBufferInfo);
-
-	if(eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVGetBCInfoKM : Failed to get BC Info"));
-		return eError;
-	}
-
-	return PVRSRV_OK;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVGetBCBufferKM (IMG_HANDLE hDeviceKM,
-								  IMG_UINT32 ui32BufferIndex,
-								  IMG_HANDLE *phBuffer)
-{
-	PVRSRV_BUFFERCLASS_INFO *psBCInfo;
-
-	if(!hDeviceKM || !phBuffer)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVGetBCBufferKM: Invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psBCInfo = BCDeviceHandleToBCInfo(hDeviceKM);
-
-	if(ui32BufferIndex < psBCInfo->ui32BufferCount)
-	{
-		*phBuffer = (IMG_HANDLE)&psBCInfo->psBuffer[ui32BufferIndex];
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVGetBCBufferKM: Buffer index %d out of range (%d)", ui32BufferIndex,psBCInfo->ui32BufferCount));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	return PVRSRV_OK;
-}
-
-
-IMG_EXPORT
-IMG_BOOL PVRGetBufferClassJTable(PVRSRV_BC_BUFFER2SRV_KMJTABLE *psJTable)
-{
-	psJTable->ui32TableSize = sizeof(PVRSRV_BC_BUFFER2SRV_KMJTABLE);
-
-	psJTable->pfnPVRSRVRegisterBCDevice = &PVRSRVRegisterBCDeviceKM;
-	psJTable->pfnPVRSRVScheduleDevices = &PVRSRVScheduleDevicesKM;
-	psJTable->pfnPVRSRVRemoveBCDevice = &PVRSRVRemoveBCDeviceKM;
-
-	return IMG_TRUE;
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/deviceid.h b/drivers/staging/cdv/pvr/services4/srvkm/common/deviceid.h
deleted file mode 100644
index 9a7bdb3..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/deviceid.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __DEVICEID_H__
-#define __DEVICEID_H__
-
-#include "services.h"
-#include "syscommon.h"
-
-PVRSRV_ERROR AllocateDeviceID(SYS_DATA *psSysData, IMG_UINT32 *pui32DevID);
-PVRSRV_ERROR FreeDeviceID(SYS_DATA *psSysData, IMG_UINT32 ui32DevID);
-
-#endif 
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/devicemem.c b/drivers/staging/cdv/pvr/services4/srvkm/common/devicemem.c
deleted file mode 100644
index cb8dccb..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/devicemem.c
+++ /dev/null
@@ -1,1797 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <stddef.h>
-
-#include "services_headers.h"
-#include "buffer_manager.h"
-#include "pdump_km.h"
-#include "pvr_bridge_km.h"
-#include "osfunc.h"
-
-static PVRSRV_ERROR AllocDeviceMem(IMG_HANDLE		hDevCookie,
-									IMG_HANDLE		hDevMemHeap,
-									IMG_UINT32		ui32Flags,
-									IMG_SIZE_T		ui32Size,
-									IMG_SIZE_T		ui32Alignment,
-									PVRSRV_KERNEL_MEM_INFO	**ppsMemInfo);
-
-typedef struct _RESMAN_MAP_DEVICE_MEM_DATA_
-{
-	
-	PVRSRV_KERNEL_MEM_INFO	*psMemInfo;
-	
-	PVRSRV_KERNEL_MEM_INFO	*psSrcMemInfo;
-} RESMAN_MAP_DEVICE_MEM_DATA;
-
-typedef struct _PVRSRV_DC_MAPINFO_
-{
-	PVRSRV_KERNEL_MEM_INFO	*psMemInfo;
-	PVRSRV_DEVICE_NODE		*psDeviceNode;
-	IMG_UINT32				ui32RangeIndex;
-	IMG_UINT32				ui32TilingStride;
-	PVRSRV_DEVICECLASS_BUFFER	*psDeviceClassBuffer;
-} PVRSRV_DC_MAPINFO;
-
-static IMG_UINT32 g_ui32SyncUID = 0;
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapsKM(IMG_HANDLE hDevCookie,
-#if defined (SUPPORT_SID_INTERFACE)
-													PVRSRV_HEAP_INFO_KM *psHeapInfo)
-#else
-													PVRSRV_HEAP_INFO *psHeapInfo)
-#endif
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	IMG_UINT32 ui32HeapCount;
-	DEVICE_MEMORY_HEAP_INFO *psDeviceMemoryHeap;
-	IMG_UINT32 i;
-
-	if (hDevCookie == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVGetDeviceMemHeapsKM: hDevCookie invalid"));
-		PVR_DBG_BREAK;
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psDeviceNode = (PVRSRV_DEVICE_NODE *)hDevCookie;
-
-	
-	ui32HeapCount = psDeviceNode->sDevMemoryInfo.ui32HeapCount;
-	psDeviceMemoryHeap = psDeviceNode->sDevMemoryInfo.psDeviceMemoryHeap;
-
-	
-	PVR_ASSERT(ui32HeapCount <= PVRSRV_MAX_CLIENT_HEAPS);
-
-	
-	for(i=0; i<ui32HeapCount; i++)
-	{
-		
-		psHeapInfo[i].ui32HeapID = psDeviceMemoryHeap[i].ui32HeapID;
-		psHeapInfo[i].hDevMemHeap = psDeviceMemoryHeap[i].hDevMemHeap;
-		psHeapInfo[i].sDevVAddrBase = psDeviceMemoryHeap[i].sDevVAddrBase;
-		psHeapInfo[i].ui32HeapByteSize = psDeviceMemoryHeap[i].ui32HeapSize;
-		psHeapInfo[i].ui32Attribs = psDeviceMemoryHeap[i].ui32Attribs;
-	}
-
-	for(; i < PVRSRV_MAX_CLIENT_HEAPS; i++)
-	{
-		OSMemSet(psHeapInfo + i, 0, sizeof(*psHeapInfo));
-		psHeapInfo[i].ui32HeapID = (IMG_UINT32)PVRSRV_UNDEFINED_HEAP_ID;
-	}
-
-	return PVRSRV_OK;
-}
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateDeviceMemContextKM(IMG_HANDLE					hDevCookie,
-														 PVRSRV_PER_PROCESS_DATA	*psPerProc,
-														 IMG_HANDLE 				*phDevMemContext,
-														 IMG_UINT32 				*pui32ClientHeapCount,
-#if defined (SUPPORT_SID_INTERFACE)
-														 PVRSRV_HEAP_INFO_KM		*psHeapInfo,
-#else
-														 PVRSRV_HEAP_INFO			*psHeapInfo,
-#endif
-														 IMG_BOOL					*pbCreated,
-														 IMG_BOOL 					*pbShared)
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	IMG_UINT32 ui32HeapCount, ui32ClientHeapCount=0;
-	DEVICE_MEMORY_HEAP_INFO *psDeviceMemoryHeap;
-	IMG_HANDLE hDevMemContext;
-	IMG_HANDLE hDevMemHeap;
-	IMG_DEV_PHYADDR sPDDevPAddr;
-	IMG_UINT32 i;
-
-#if !defined(PVR_SECURE_HANDLES) && !defined (SUPPORT_SID_INTERFACE)
-	PVR_UNREFERENCED_PARAMETER(pbShared);
-#endif
-
-	if (hDevCookie == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVCreateDeviceMemContextKM: hDevCookie invalid"));
-		PVR_DBG_BREAK;
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psDeviceNode = (PVRSRV_DEVICE_NODE *)hDevCookie;
-
-	
-
-	ui32HeapCount = psDeviceNode->sDevMemoryInfo.ui32HeapCount;
-	psDeviceMemoryHeap = psDeviceNode->sDevMemoryInfo.psDeviceMemoryHeap;
-
-	
-
-	PVR_ASSERT(ui32HeapCount <= PVRSRV_MAX_CLIENT_HEAPS);
-
-	
-
-	hDevMemContext = BM_CreateContext(psDeviceNode,
-									  &sPDDevPAddr,
-									  psPerProc,
-									  pbCreated);
-	if (hDevMemContext == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateDeviceMemContextKM: Failed BM_CreateContext"));
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-
-	
-	for(i=0; i<ui32HeapCount; i++)
-	{
-		switch(psDeviceMemoryHeap[i].DevMemHeapType)
-		{
-			case DEVICE_MEMORY_HEAP_SHARED_EXPORTED:
-			{
-				
-				psHeapInfo[ui32ClientHeapCount].ui32HeapID = psDeviceMemoryHeap[i].ui32HeapID;
-				psHeapInfo[ui32ClientHeapCount].hDevMemHeap = psDeviceMemoryHeap[i].hDevMemHeap;
-				psHeapInfo[ui32ClientHeapCount].sDevVAddrBase = psDeviceMemoryHeap[i].sDevVAddrBase;
-				psHeapInfo[ui32ClientHeapCount].ui32HeapByteSize = psDeviceMemoryHeap[i].ui32HeapSize;
-				psHeapInfo[ui32ClientHeapCount].ui32Attribs = psDeviceMemoryHeap[i].ui32Attribs;
-#if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-				pbShared[ui32ClientHeapCount] = IMG_TRUE;
-#endif
-				ui32ClientHeapCount++;
-				break;
-			}
-			case DEVICE_MEMORY_HEAP_PERCONTEXT:
-			{
-				if (psDeviceMemoryHeap[i].ui32HeapSize > 0)
-				{
-					hDevMemHeap = BM_CreateHeap(hDevMemContext,
-												&psDeviceMemoryHeap[i]);
-					if (hDevMemHeap == IMG_NULL)
-					{
-						BM_DestroyContext(hDevMemContext, IMG_NULL);
-						return PVRSRV_ERROR_OUT_OF_MEMORY;
-					}
-				}
-				else
-				{
-					hDevMemHeap = IMG_NULL;
-				}
-
-				
-				psHeapInfo[ui32ClientHeapCount].ui32HeapID = psDeviceMemoryHeap[i].ui32HeapID;
-				psHeapInfo[ui32ClientHeapCount].hDevMemHeap = hDevMemHeap;
-				psHeapInfo[ui32ClientHeapCount].sDevVAddrBase = psDeviceMemoryHeap[i].sDevVAddrBase;
-				psHeapInfo[ui32ClientHeapCount].ui32HeapByteSize = psDeviceMemoryHeap[i].ui32HeapSize;
-				psHeapInfo[ui32ClientHeapCount].ui32Attribs = psDeviceMemoryHeap[i].ui32Attribs;
-#if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-				pbShared[ui32ClientHeapCount] = IMG_FALSE;
-#endif
-
-				ui32ClientHeapCount++;
-				break;
-			}
-		}
-	}
-
-	
-	*pui32ClientHeapCount = ui32ClientHeapCount;
-	*phDevMemContext = hDevMemContext;
-
-	return PVRSRV_OK;
-}
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyDeviceMemContextKM(IMG_HANDLE hDevCookie,
-														  IMG_HANDLE hDevMemContext,
-														  IMG_BOOL *pbDestroyed)
-{
-	PVR_UNREFERENCED_PARAMETER(hDevCookie);
-
-	return BM_DestroyContext(hDevMemContext, pbDestroyed);
-}
-
-
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapInfoKM(IMG_HANDLE					hDevCookie,
-														 IMG_HANDLE 				hDevMemContext,
-														 IMG_UINT32 				*pui32ClientHeapCount,
-#if defined (SUPPORT_SID_INTERFACE)
-														 PVRSRV_HEAP_INFO_KM		*psHeapInfo,
-#else
-														 PVRSRV_HEAP_INFO			*psHeapInfo,
-#endif
-														 IMG_BOOL 					*pbShared)
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	IMG_UINT32 ui32HeapCount, ui32ClientHeapCount=0;
-	DEVICE_MEMORY_HEAP_INFO *psDeviceMemoryHeap;
-	IMG_HANDLE hDevMemHeap;
-	IMG_UINT32 i;
-
-#if !defined(PVR_SECURE_HANDLES) && !defined (SUPPORT_SID_INTERFACE)
-	PVR_UNREFERENCED_PARAMETER(pbShared);
-#endif
-
-	if (hDevCookie == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVGetDeviceMemHeapInfoKM: hDevCookie invalid"));
-		PVR_DBG_BREAK;
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psDeviceNode = (PVRSRV_DEVICE_NODE *)hDevCookie;
-
-	
-
-	ui32HeapCount = psDeviceNode->sDevMemoryInfo.ui32HeapCount;
-	psDeviceMemoryHeap = psDeviceNode->sDevMemoryInfo.psDeviceMemoryHeap;
-
-	
-
-	PVR_ASSERT(ui32HeapCount <= PVRSRV_MAX_CLIENT_HEAPS);
-
-	
-	for(i=0; i<ui32HeapCount; i++)
-	{
-		switch(psDeviceMemoryHeap[i].DevMemHeapType)
-		{
-			case DEVICE_MEMORY_HEAP_SHARED_EXPORTED:
-			{
-				
-				psHeapInfo[ui32ClientHeapCount].ui32HeapID = psDeviceMemoryHeap[i].ui32HeapID;
-				psHeapInfo[ui32ClientHeapCount].hDevMemHeap = psDeviceMemoryHeap[i].hDevMemHeap;
-				psHeapInfo[ui32ClientHeapCount].sDevVAddrBase = psDeviceMemoryHeap[i].sDevVAddrBase;
-				psHeapInfo[ui32ClientHeapCount].ui32HeapByteSize = psDeviceMemoryHeap[i].ui32HeapSize;
-				psHeapInfo[ui32ClientHeapCount].ui32Attribs = psDeviceMemoryHeap[i].ui32Attribs;
-#if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-				pbShared[ui32ClientHeapCount] = IMG_TRUE;
-#endif
-				ui32ClientHeapCount++;
-				break;
-			}
-			case DEVICE_MEMORY_HEAP_PERCONTEXT:
-			{
-				if (psDeviceMemoryHeap[i].ui32HeapSize > 0)
-				{
-					hDevMemHeap = BM_CreateHeap(hDevMemContext,
-												&psDeviceMemoryHeap[i]);
-				
-					if (hDevMemHeap == IMG_NULL)
-					{
-						return PVRSRV_ERROR_OUT_OF_MEMORY;
-					}
-				}
-				else
-				{
-					hDevMemHeap = IMG_NULL;
-				}
-
-				
-				psHeapInfo[ui32ClientHeapCount].ui32HeapID = psDeviceMemoryHeap[i].ui32HeapID;
-				psHeapInfo[ui32ClientHeapCount].hDevMemHeap = hDevMemHeap;
-				psHeapInfo[ui32ClientHeapCount].sDevVAddrBase = psDeviceMemoryHeap[i].sDevVAddrBase;
-				psHeapInfo[ui32ClientHeapCount].ui32HeapByteSize = psDeviceMemoryHeap[i].ui32HeapSize;
-				psHeapInfo[ui32ClientHeapCount].ui32Attribs = psDeviceMemoryHeap[i].ui32Attribs;
-#if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-				pbShared[ui32ClientHeapCount] = IMG_FALSE;
-#endif
-
-				ui32ClientHeapCount++;
-				break;
-			}
-		}
-	}
-
-	
-	*pui32ClientHeapCount = ui32ClientHeapCount;
-
-	return PVRSRV_OK;
-}
-
-
-static PVRSRV_ERROR AllocDeviceMem(IMG_HANDLE		hDevCookie,
-									IMG_HANDLE		hDevMemHeap,
-									IMG_UINT32		ui32Flags,
-									IMG_SIZE_T		ui32Size,
-									IMG_SIZE_T		ui32Alignment,
-									PVRSRV_KERNEL_MEM_INFO	**ppsMemInfo)
-{
- 	PVRSRV_KERNEL_MEM_INFO	*psMemInfo;
-	BM_HANDLE 		hBuffer;
-	
-	PVRSRV_MEMBLK	*psMemBlock;
-	IMG_BOOL		bBMError;
-
-	PVR_UNREFERENCED_PARAMETER(hDevCookie);
-
-	*ppsMemInfo = IMG_NULL;
-
-	if(OSAllocMem(PVRSRV_PAGEABLE_SELECT,
-					sizeof(PVRSRV_KERNEL_MEM_INFO),
-					(IMG_VOID **)&psMemInfo, IMG_NULL,
-					"Kernel Memory Info") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"AllocDeviceMem: Failed to alloc memory for block"));
-		return (PVRSRV_ERROR_OUT_OF_MEMORY);
-	}
-
-	OSMemSet(psMemInfo, 0, sizeof(*psMemInfo));
-
-	psMemBlock = &(psMemInfo->sMemBlk);
-
-	
-	psMemInfo->ui32Flags = ui32Flags | PVRSRV_MEM_RAM_BACKED_ALLOCATION;
-
-	bBMError = BM_Alloc (hDevMemHeap,
-							IMG_NULL,
-							ui32Size,
-							&psMemInfo->ui32Flags,
-							IMG_CAST_TO_DEVVADDR_UINT(ui32Alignment),
-							&hBuffer);
-
-	if (!bBMError)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"AllocDeviceMem: BM_Alloc Failed"));
-		OSFreeMem(PVRSRV_PAGEABLE_SELECT, sizeof(PVRSRV_KERNEL_MEM_INFO), psMemInfo, IMG_NULL);
-		
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-
-	
-	psMemBlock->sDevVirtAddr = BM_HandleToDevVaddr(hBuffer);
-	psMemBlock->hOSMemHandle = BM_HandleToOSMemHandle(hBuffer);
-
-	
-	psMemBlock->hBuffer = (IMG_HANDLE)hBuffer;
-
-	
-
-	psMemInfo->pvLinAddrKM = BM_HandleToCpuVaddr(hBuffer);
-
-	psMemInfo->sDevVAddr = psMemBlock->sDevVirtAddr;
-
-	psMemInfo->uAllocSize = ui32Size;
-
-	
-	psMemInfo->pvSysBackupBuffer = IMG_NULL;
-
-	
-	*ppsMemInfo = psMemInfo;
-
-	
-	return (PVRSRV_OK);
-}
-
-static PVRSRV_ERROR FreeDeviceMem2(PVRSRV_KERNEL_MEM_INFO *psMemInfo, IMG_BOOL bFromAllocator)
-{
-	BM_HANDLE		hBuffer;
-
-	if (!psMemInfo)
-	{
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	hBuffer = psMemInfo->sMemBlk.hBuffer;
-
-	
-	if (bFromAllocator)
-		BM_Free(hBuffer, psMemInfo->ui32Flags);
-	else
-		BM_FreeExport(hBuffer, psMemInfo->ui32Flags);
-
-	
-	if ((psMemInfo->pvSysBackupBuffer) && bFromAllocator)
-	{
-		
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, psMemInfo->uAllocSize, psMemInfo->pvSysBackupBuffer, IMG_NULL);
-		psMemInfo->pvSysBackupBuffer = IMG_NULL;
-	}
-
-	if (psMemInfo->ui32RefCount == 0)
-		OSFreeMem(PVRSRV_PAGEABLE_SELECT, sizeof(PVRSRV_KERNEL_MEM_INFO), psMemInfo, IMG_NULL);
-	
-
-	return(PVRSRV_OK);
-}
-
-static PVRSRV_ERROR FreeDeviceMem(PVRSRV_KERNEL_MEM_INFO *psMemInfo)
-{
-	BM_HANDLE		hBuffer;
-
-	if (!psMemInfo)
-	{
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	hBuffer = psMemInfo->sMemBlk.hBuffer;
-
-	
-	BM_Free(hBuffer, psMemInfo->ui32Flags);
-
-	if(psMemInfo->pvSysBackupBuffer)
-	{
-		
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, psMemInfo->uAllocSize, psMemInfo->pvSysBackupBuffer, IMG_NULL);
-		psMemInfo->pvSysBackupBuffer = IMG_NULL;
-	}
-
-	OSFreeMem(PVRSRV_PAGEABLE_SELECT, sizeof(PVRSRV_KERNEL_MEM_INFO), psMemInfo, IMG_NULL);
-	
-
-	return(PVRSRV_OK);
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVAllocSyncInfoKM(IMG_HANDLE					hDevCookie,
-												IMG_HANDLE					hDevMemContext,
-												PVRSRV_KERNEL_SYNC_INFO		**ppsKernelSyncInfo)
-{
-	IMG_HANDLE hSyncDevMemHeap;
-	DEVICE_MEMORY_INFO *psDevMemoryInfo;
-	BM_CONTEXT *pBMContext;
-	PVRSRV_ERROR eError;
-	PVRSRV_KERNEL_SYNC_INFO	*psKernelSyncInfo;
-	PVRSRV_SYNC_DATA *psSyncData;
-
-	eError = OSAllocMem(PVRSRV_PAGEABLE_SELECT,
-						sizeof(PVRSRV_KERNEL_SYNC_INFO),
-						(IMG_VOID **)&psKernelSyncInfo, IMG_NULL,
-						"Kernel Synchronization Info");
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVAllocSyncInfoKM: Failed to alloc memory"));
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-
-	psKernelSyncInfo->ui32RefCount = 0;
-
-	
-	pBMContext = (BM_CONTEXT*)hDevMemContext;
-	psDevMemoryInfo = &pBMContext->psDeviceNode->sDevMemoryInfo;
-
-	
-	hSyncDevMemHeap = psDevMemoryInfo->psDeviceMemoryHeap[psDevMemoryInfo->ui32SyncHeapID].hDevMemHeap;
-
-	
-
-
-	eError = AllocDeviceMem(hDevCookie,
-							hSyncDevMemHeap,
-							PVRSRV_MEM_CACHE_CONSISTENT,
-							sizeof(PVRSRV_SYNC_DATA),
-							sizeof(IMG_UINT32),
-							&psKernelSyncInfo->psSyncDataMemInfoKM);
-
-	if (eError != PVRSRV_OK)
-	{
-
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVAllocSyncInfoKM: Failed to alloc memory"));
-		OSFreeMem(PVRSRV_PAGEABLE_SELECT, sizeof(PVRSRV_KERNEL_SYNC_INFO), psKernelSyncInfo, IMG_NULL);
-		
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-
-	
-	psKernelSyncInfo->psSyncData = psKernelSyncInfo->psSyncDataMemInfoKM->pvLinAddrKM;
-	psSyncData = psKernelSyncInfo->psSyncData;
-
-	psSyncData->ui32WriteOpsPending = 0;
-	psSyncData->ui32WriteOpsComplete = 0;
-	psSyncData->ui32ReadOpsPending = 0;
-	psSyncData->ui32ReadOpsComplete = 0;
-	psSyncData->ui32LastOpDumpVal = 0;
-	psSyncData->ui32LastReadOpDumpVal = 0;
-
-#if defined(PDUMP)
-	PDUMPCOMMENT("Allocating kernel sync object");
-	PDUMPMEM(psKernelSyncInfo->psSyncDataMemInfoKM->pvLinAddrKM,
-			psKernelSyncInfo->psSyncDataMemInfoKM,
-			0,
-			(IMG_UINT32)psKernelSyncInfo->psSyncDataMemInfoKM->uAllocSize,
-			PDUMP_FLAGS_CONTINUOUS,
-			MAKEUNIQUETAG(psKernelSyncInfo->psSyncDataMemInfoKM));
-#endif
-
-	psKernelSyncInfo->sWriteOpsCompleteDevVAddr.uiAddr = psKernelSyncInfo->psSyncDataMemInfoKM->sDevVAddr.uiAddr + offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete);
-	psKernelSyncInfo->sReadOpsCompleteDevVAddr.uiAddr = psKernelSyncInfo->psSyncDataMemInfoKM->sDevVAddr.uiAddr + offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete);
-	psKernelSyncInfo->ui32UID = g_ui32SyncUID++;
-
-	
-	psKernelSyncInfo->psSyncDataMemInfoKM->psKernelSyncInfo = IMG_NULL;
-
-	
-	*ppsKernelSyncInfo = psKernelSyncInfo;
-
-	return PVRSRV_OK;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeSyncInfoKM(PVRSRV_KERNEL_SYNC_INFO	*psKernelSyncInfo)
-{
-	PVRSRV_ERROR eError;
-
-	if (psKernelSyncInfo->ui32RefCount != 0)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "oops: sync info ref count not zero at destruction"));
-		
-		return PVRSRV_ERROR_OUT_OF_MEMORY; 
-	}
-
-	eError = FreeDeviceMem(psKernelSyncInfo->psSyncDataMemInfoKM);
-	(IMG_VOID)OSFreeMem(PVRSRV_PAGEABLE_SELECT, sizeof(PVRSRV_KERNEL_SYNC_INFO), psKernelSyncInfo, IMG_NULL);
-	
-
-	return eError;
-}
-
-static IMG_VOID freeWrapped(PVRSRV_KERNEL_MEM_INFO *psMemInfo)
-{
-	IMG_HANDLE hOSWrapMem = psMemInfo->sMemBlk.hOSWrapMem;
-
-	
-	if(psMemInfo->sMemBlk.psIntSysPAddr)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(IMG_SYS_PHYADDR), psMemInfo->sMemBlk.psIntSysPAddr, IMG_NULL);
-		psMemInfo->sMemBlk.psIntSysPAddr = IMG_NULL;
-	}
-
-	if(hOSWrapMem)
-	{
-		OSReleasePhysPageAddr(hOSWrapMem);
-	}
-}
-
-
-#if defined (PVRSRV_FLUSH_KERNEL_OPS_LAST_ONLY)
-static
-PVRSRV_ERROR _PollUntilAtLeast(volatile IMG_UINT32* pui32WatchedValue,
-                               IMG_UINT32 ui32MinimumValue,
-                               IMG_UINT32 ui32Waitus,
-                               IMG_UINT32 ui32Tries)
-{
-	PVRSRV_ERROR eError;
-	IMG_INT32 iDiff;
-
-	for(;;)
-	{
-		SYS_DATA *psSysData = SysAcquireDataNoCheck();
-		iDiff = *pui32WatchedValue - ui32MinimumValue;
-
-		if (iDiff >= 0)
-		{
-			eError = PVRSRV_OK;
-			break;
-		}
-
-		if(!ui32Tries)
-		{
-			eError = PVRSRV_ERROR_TIMEOUT_POLLING_FOR_VALUE;
-			break;
-		}
-
-		ui32Tries--;
-
-		
-		if (psSysData->psGlobalEventObject)
-		{
-			IMG_HANDLE hOSEventKM;
-			if(psSysData->psGlobalEventObject)
-			{
-				eError = OSEventObjectOpenKM(psSysData->psGlobalEventObject, &hOSEventKM);
-				if (eError |= PVRSRV_OK)
-				{
-					PVR_DPF((PVR_DBG_ERROR,
-								"_PollUntilAtLeast: OSEventObjectOpen failed"));
-					goto Exit;
-				}
-				eError = OSEventObjectWaitKM(hOSEventKM);
-				if (eError != PVRSRV_OK)
-				{
-					PVR_DPF((PVR_DBG_ERROR,
-								"_PollUntilAtLeast: PVRSRVEventObjectWait failed"));
-					goto Exit;
-				}
-				eError = OSEventObjectCloseKM(psSysData->psGlobalEventObject, hOSEventKM);
-				if (eError != PVRSRV_OK)
-				{
-					PVR_DPF((PVR_DBG_ERROR,
-								"_PollUntilAtLeast: OSEventObjectClose failed"));
-				}
-			}
-		}
-	}
-Exit:
-	return eError;
-}
-
-static PVRSRV_ERROR FlushKernelOps(PVRSRV_SYNC_DATA *psSyncData)
-{
-	PVRSRV_ERROR eError;
-
-	if(!psSyncData)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "FlushKernelOps: invalid psSyncData"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	
-
-
-
-
-
-
-
-
-	eError = _PollUntilAtLeast(&psSyncData->ui32ReadOpsComplete,
-                               psSyncData->ui32ReadOpsPending,
-                               MAX_HW_TIME_US/WAIT_TRY_COUNT,
-                               WAIT_TRY_COUNT);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "FlushClientOps: Read ops pending timeout"));
-		PVR_DBG_BREAK; 
-		return eError;
-	}
-
-	eError = _PollUntilAtLeast(&psSyncData->ui32WriteOpsComplete,
-                               psSyncData->ui32WriteOpsPending,
-                               MAX_HW_TIME_US/WAIT_TRY_COUNT,
-                               WAIT_TRY_COUNT);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "FlushClientOps: Write ops pending timeout"));
-		PVR_DBG_BREAK; 
-	}
-
-	return eError;
-}
-#endif 
-
-static PVRSRV_ERROR FreeMemCallBackCommon(PVRSRV_KERNEL_MEM_INFO *psMemInfo,
-										  IMG_UINT32	ui32Param,
-										  IMG_BOOL	bFromAllocator)
-{
-	PVRSRV_ERROR eError = PVRSRV_OK;
-
-	PVR_UNREFERENCED_PARAMETER(ui32Param);
-
-	
-	psMemInfo->ui32RefCount--;
-
-	if (psMemInfo->ui32RefCount == 0)
-	{
-		if(psMemInfo->ui32Flags & PVRSRV_MEM_EXPORTED)
-		{
-#if defined (SUPPORT_SID_INTERFACE)
-			IMG_SID hMemInfo = 0;
-#else
-			IMG_HANDLE hMemInfo = IMG_NULL;
-#endif
-
-
-			eError = PVRSRVFindHandle(KERNEL_HANDLE_BASE,
-					&hMemInfo,
-					psMemInfo,
-					PVRSRV_HANDLE_TYPE_MEM_INFO);
-			if(eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "FreeMemCallBackCommon: can't find exported meminfo in the global handle list"));
-				return eError;
-			}
-
-
-			eError = PVRSRVReleaseHandle(KERNEL_HANDLE_BASE,
-					hMemInfo,
-					PVRSRV_HANDLE_TYPE_MEM_INFO);
-			if(eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "FreeMemCallBackCommon: PVRSRVReleaseHandle failed for exported meminfo"));
-				return eError;
-			}
-		}
-
-#if defined (PVRSRV_FLUSH_KERNEL_OPS_LAST_ONLY)
-		if (psMemInfo->psKernelSyncInfo)
-		{
-			if (psMemInfo->sShareMemWorkaround.bInUse)
-			{
-				
-				if (BM_XProcWorkaroundGetRefCount(psMemInfo->sShareMemWorkaround.ui32ShareIndex)
-						== 1)
-				{
-					FlushKernelOps(psMemInfo->psKernelSyncInfo->psSyncData);
-				}
-			}
-			else
-			{
-				
-
-
-
-
-
-
-
-				FlushKernelOps(psMemInfo->psKernelSyncInfo->psSyncData);
-			}
-		}
-#endif
-
-		switch(psMemInfo->memType)
-		{
-			
-			case PVRSRV_MEMTYPE_WRAPPED:
-				freeWrapped(psMemInfo);
-			case PVRSRV_MEMTYPE_DEVICE:
-				if (psMemInfo->psKernelSyncInfo)
-				{
-					psMemInfo->psKernelSyncInfo->ui32RefCount--;
-
-					if (psMemInfo->psKernelSyncInfo->ui32RefCount == 0)
-					{
-						eError = PVRSRVFreeSyncInfoKM(psMemInfo->psKernelSyncInfo);
-					}
-				}
-			case PVRSRV_MEMTYPE_DEVICECLASS:
-				break;
-			default:
-				PVR_DPF((PVR_DBG_ERROR, "FreeMemCallBackCommon: Unknown memType"));
-				eError = PVRSRV_ERROR_INVALID_MEMINFO;
-		}
-	}
-
-	
-	if (eError == PVRSRV_OK)
-	{
-		eError = FreeDeviceMem2(psMemInfo, bFromAllocator);
-	}
-
-	return eError;
-}
-
-static PVRSRV_ERROR FreeDeviceMemCallBack(IMG_PVOID  pvParam,
-										  IMG_UINT32 ui32Param,
-										  IMG_BOOL   bDummy)
-{
-	PVRSRV_KERNEL_MEM_INFO	*psMemInfo = (PVRSRV_KERNEL_MEM_INFO *)pvParam;
-	
-	PVR_UNREFERENCED_PARAMETER(bDummy);
-
-	return FreeMemCallBackCommon(psMemInfo, ui32Param, IMG_TRUE);
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceMemKM(IMG_HANDLE				hDevCookie,
-												PVRSRV_KERNEL_MEM_INFO	*psMemInfo)
-{
-	PVRSRV_ERROR eError;
-
-	PVR_UNREFERENCED_PARAMETER(hDevCookie);
-
-	if (!psMemInfo)
-	{
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	if (psMemInfo->sMemBlk.hResItem != IMG_NULL)
-	{
-		eError = ResManFreeResByPtr(psMemInfo->sMemBlk.hResItem, CLEANUP_WITH_POLL);
-	}
-	else
-	{
-		
-		eError = FreeDeviceMemCallBack(psMemInfo, 0, CLEANUP_WITH_POLL);
-	}
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV _PVRSRVAllocDeviceMemKM(IMG_HANDLE					hDevCookie,
-												 PVRSRV_PER_PROCESS_DATA	*psPerProc,
-												 IMG_HANDLE					hDevMemHeap,
-												 IMG_UINT32					ui32Flags,
-												 IMG_SIZE_T					ui32Size,
-												 IMG_SIZE_T					ui32Alignment,
-												 PVRSRV_KERNEL_MEM_INFO		**ppsMemInfo)
-{
-	PVRSRV_KERNEL_MEM_INFO	*psMemInfo;
-	PVRSRV_ERROR 			eError;
-	BM_HEAP					*psBMHeap;
-	IMG_HANDLE				hDevMemContext;
-
-	if (!hDevMemHeap ||
-		(ui32Size == 0))
-	{
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	
-	if (ui32Flags & PVRSRV_HAP_CACHETYPE_MASK)
-	{
-		 
-		if (((ui32Size % HOST_PAGESIZE()) != 0) ||
-			((ui32Alignment % HOST_PAGESIZE()) != 0))
-		{
-			return PVRSRV_ERROR_INVALID_PARAMS;
-		}
-	}
-
-	eError = AllocDeviceMem(hDevCookie,
-							hDevMemHeap,
-							ui32Flags,
-							ui32Size,
-							ui32Alignment,
-							&psMemInfo);
-
-	if (eError != PVRSRV_OK)
-	{
-		return eError;
-	}
-
-	if (ui32Flags & PVRSRV_MEM_NO_SYNCOBJ)
-	{
-		psMemInfo->psKernelSyncInfo = IMG_NULL;
-	}
-	else
-	{
-		
-
-
-		psBMHeap = (BM_HEAP*)hDevMemHeap;
-		hDevMemContext = (IMG_HANDLE)psBMHeap->pBMContext;
-		eError = PVRSRVAllocSyncInfoKM(hDevCookie,
-									   hDevMemContext,
-									   &psMemInfo->psKernelSyncInfo);
-		if(eError != PVRSRV_OK)
-		{
-			goto free_mainalloc;
-		}
-		psMemInfo->psKernelSyncInfo->ui32RefCount++;
-	}
-
-	
-	*ppsMemInfo = psMemInfo;
-
-	if (ui32Flags & PVRSRV_MEM_NO_RESMAN)
-	{
-		psMemInfo->sMemBlk.hResItem = IMG_NULL;
-	}
-	else
-	{
-		
-		psMemInfo->sMemBlk.hResItem = ResManRegisterRes(psPerProc->hResManContext,
-														RESMAN_TYPE_DEVICEMEM_ALLOCATION,
-														psMemInfo,
-														0,
-														&FreeDeviceMemCallBack);
-		if (psMemInfo->sMemBlk.hResItem == IMG_NULL)
-		{
-			
-			eError = PVRSRV_ERROR_OUT_OF_MEMORY;
-			goto free_mainalloc;
-		}
-	}
-
-	
-	psMemInfo->ui32RefCount++;
-
-	psMemInfo->memType = PVRSRV_MEMTYPE_DEVICE;
-
-	
-	return (PVRSRV_OK);
-
-free_mainalloc:
-	FreeDeviceMem(psMemInfo);
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVDissociateDeviceMemKM(IMG_HANDLE              hDevCookie,
-													  PVRSRV_KERNEL_MEM_INFO *psMemInfo)
-{
-	PVRSRV_ERROR		eError;
-	PVRSRV_DEVICE_NODE	*psDeviceNode = hDevCookie;
-
-	PVR_UNREFERENCED_PARAMETER(hDevCookie);
-
-	if (!psMemInfo)
-	{
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	eError = ResManDissociateRes(psMemInfo->sMemBlk.hResItem, psDeviceNode->hResManContext);
-
-	PVR_ASSERT(eError == PVRSRV_OK);
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetFreeDeviceMemKM(IMG_UINT32 ui32Flags,
-												   IMG_SIZE_T *pui32Total,
-												   IMG_SIZE_T *pui32Free,
-												   IMG_SIZE_T *pui32LargestBlock)
-{
-	
-
-	PVR_UNREFERENCED_PARAMETER(ui32Flags);
-	PVR_UNREFERENCED_PARAMETER(pui32Total);
-	PVR_UNREFERENCED_PARAMETER(pui32Free);
-	PVR_UNREFERENCED_PARAMETER(pui32LargestBlock);
-
-	return PVRSRV_OK;
-}
-
-
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVUnwrapExtMemoryKM (PVRSRV_KERNEL_MEM_INFO	*psMemInfo)
-{
-	if (!psMemInfo)
-	{
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	return ResManFreeResByPtr(psMemInfo->sMemBlk.hResItem, CLEANUP_WITH_POLL);
-}
-
-
-static PVRSRV_ERROR UnwrapExtMemoryCallBack(IMG_PVOID  pvParam,
-											IMG_UINT32 ui32Param,
-											IMG_BOOL   bDummy)
-{
-	PVRSRV_KERNEL_MEM_INFO	*psMemInfo = (PVRSRV_KERNEL_MEM_INFO *)pvParam;
-	
-	PVR_UNREFERENCED_PARAMETER(bDummy);
-
-	return FreeMemCallBackCommon(psMemInfo, ui32Param, IMG_TRUE);
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVWrapExtMemoryKM(IMG_HANDLE				hDevCookie,
-												PVRSRV_PER_PROCESS_DATA	*psPerProc,
-												IMG_HANDLE				hDevMemContext,
-												IMG_SIZE_T 				uByteSize,
-												IMG_SIZE_T				uPageOffset,
-												IMG_BOOL				bPhysContig,
-												IMG_SYS_PHYADDR	 		*psExtSysPAddr,
-												IMG_VOID 				*pvLinAddr,
-												IMG_UINT32				ui32Flags,
-												PVRSRV_KERNEL_MEM_INFO	**ppsMemInfo)
-{
-	PVRSRV_KERNEL_MEM_INFO *psMemInfo = IMG_NULL;
-	DEVICE_MEMORY_INFO  *psDevMemoryInfo;
-	IMG_SIZE_T			ui32HostPageSize = HOST_PAGESIZE();
-	IMG_HANDLE			hDevMemHeap = IMG_NULL;
-	PVRSRV_DEVICE_NODE* psDeviceNode;
-	BM_HANDLE 			hBuffer;
-	PVRSRV_MEMBLK		*psMemBlock;
-	IMG_BOOL			bBMError;
-	BM_HEAP				*psBMHeap;
-	PVRSRV_ERROR		eError;
-	IMG_VOID 			*pvPageAlignedCPUVAddr;
-	IMG_SYS_PHYADDR	 	*psIntSysPAddr = IMG_NULL;
-	IMG_HANDLE			hOSWrapMem = IMG_NULL;
-	DEVICE_MEMORY_HEAP_INFO *psDeviceMemoryHeap;
-	IMG_UINT32		i;
-	IMG_SIZE_T          uPageCount = 0;
-
-
-	psDeviceNode = (PVRSRV_DEVICE_NODE*)hDevCookie;
-	PVR_ASSERT(psDeviceNode != IMG_NULL);
-
-	if (psDeviceNode == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVWrapExtMemoryKM: invalid parameter"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	if(pvLinAddr)
-	{
-		
-		uPageOffset = (IMG_UINTPTR_T)pvLinAddr & (ui32HostPageSize - 1);
-
-		
-		uPageCount = HOST_PAGEALIGN(uByteSize + uPageOffset) / ui32HostPageSize;
-		pvPageAlignedCPUVAddr = (IMG_VOID *)((IMG_UINTPTR_T)pvLinAddr - uPageOffset);
-
-		
-		if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-						uPageCount * sizeof(IMG_SYS_PHYADDR),
-						(IMG_VOID **)&psIntSysPAddr, IMG_NULL,
-						"Array of Page Addresses") != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"PVRSRVWrapExtMemoryKM: Failed to alloc memory for block"));
-			return PVRSRV_ERROR_OUT_OF_MEMORY;
-		}
-
-		eError = OSAcquirePhysPageAddr(pvPageAlignedCPUVAddr,
-										uPageCount * ui32HostPageSize,
-										psIntSysPAddr,
-										&hOSWrapMem);
-		if(eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"PVRSRVWrapExtMemoryKM: Failed to alloc memory for block"));
-			eError = PVRSRV_ERROR_OUT_OF_MEMORY;
-			goto ErrorExitPhase1;
-		}
-
-		
-		psExtSysPAddr = psIntSysPAddr;
-
-		
-
-		bPhysContig = IMG_FALSE;
-	}
-	else
-	{
-		
-	}
-
-	
-	psDevMemoryInfo = &((BM_CONTEXT*)hDevMemContext)->psDeviceNode->sDevMemoryInfo;
-	psDeviceMemoryHeap = psDevMemoryInfo->psDeviceMemoryHeap;
-	for(i=0; i<PVRSRV_MAX_CLIENT_HEAPS; i++)
-	{
-		if(HEAP_IDX(psDeviceMemoryHeap[i].ui32HeapID) == psDevMemoryInfo->ui32MappingHeapID)
-		{
-			if(psDeviceMemoryHeap[i].DevMemHeapType == DEVICE_MEMORY_HEAP_PERCONTEXT)
-			{
-				
-				if (psDeviceMemoryHeap[i].ui32HeapSize > 0)
-				{
-					hDevMemHeap = BM_CreateHeap(hDevMemContext, &psDeviceMemoryHeap[i]);
-				}
-				else
-				{
-					hDevMemHeap = IMG_NULL;
-				}
-			}
-			else
-			{
-				hDevMemHeap = psDevMemoryInfo->psDeviceMemoryHeap[i].hDevMemHeap;
-			}
-			break;
-		}
-	}
-
-	if(hDevMemHeap == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVWrapExtMemoryKM: unable to find mapping heap"));
-		eError = PVRSRV_ERROR_UNABLE_TO_FIND_MAPPING_HEAP;
-		goto ErrorExitPhase2;
-	}
-
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-					sizeof(PVRSRV_KERNEL_MEM_INFO),
-					(IMG_VOID **)&psMemInfo, IMG_NULL,
-					"Kernel Memory Info") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVWrapExtMemoryKM: Failed to alloc memory for block"));
-		eError = PVRSRV_ERROR_OUT_OF_MEMORY;
-		goto ErrorExitPhase2;
-	}
-
-	OSMemSet(psMemInfo, 0, sizeof(*psMemInfo));
-	psMemInfo->ui32Flags = ui32Flags;
-
-	psMemBlock = &(psMemInfo->sMemBlk);
-
-	bBMError = BM_Wrap(hDevMemHeap,
-					   uByteSize,
-					   uPageOffset,
-					   bPhysContig,
-					   psExtSysPAddr,
-					   IMG_NULL,
-					   &psMemInfo->ui32Flags,
-					   &hBuffer);
-	if (!bBMError)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVWrapExtMemoryKM: BM_Wrap Failed"));
-		eError = PVRSRV_ERROR_BAD_MAPPING;
-		goto ErrorExitPhase3;
-	}
-
-	
-	psMemBlock->sDevVirtAddr = BM_HandleToDevVaddr(hBuffer);
-	psMemBlock->hOSMemHandle = BM_HandleToOSMemHandle(hBuffer);
-	psMemBlock->hOSWrapMem = hOSWrapMem;
-	psMemBlock->psIntSysPAddr = psIntSysPAddr;
-
-	
-	psMemBlock->hBuffer = (IMG_HANDLE)hBuffer;
-
-	
-	psMemInfo->pvLinAddrKM = BM_HandleToCpuVaddr(hBuffer);
-	psMemInfo->sDevVAddr = psMemBlock->sDevVirtAddr;
-	psMemInfo->uAllocSize = uByteSize;
-
-	
-
-	psMemInfo->pvSysBackupBuffer = IMG_NULL;
-
-	
-
-
-	psBMHeap = (BM_HEAP*)hDevMemHeap;
-	hDevMemContext = (IMG_HANDLE)psBMHeap->pBMContext;
-	eError = PVRSRVAllocSyncInfoKM(hDevCookie,
-									hDevMemContext,
-									&psMemInfo->psKernelSyncInfo);
-	if(eError != PVRSRV_OK)
-	{
-		goto ErrorExitPhase4;
-	}
-
-	psMemInfo->psKernelSyncInfo->ui32RefCount++;
-
-	
-	psMemInfo->ui32RefCount++;
-
-	psMemInfo->memType = PVRSRV_MEMTYPE_WRAPPED;
-
-	
-	psMemInfo->sMemBlk.hResItem = ResManRegisterRes(psPerProc->hResManContext,
-													RESMAN_TYPE_DEVICEMEM_WRAP,
-													psMemInfo,
-													0,
-													&UnwrapExtMemoryCallBack);
-
-	
-	*ppsMemInfo = psMemInfo;
-
-	return PVRSRV_OK;
-
-	
-
-ErrorExitPhase4:
-	if(psMemInfo)
-	{
-		FreeDeviceMem(psMemInfo);
-		
-
-
-		psMemInfo = IMG_NULL;
-	}
-
-ErrorExitPhase3:
-	if(psMemInfo)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_KERNEL_MEM_INFO), psMemInfo, IMG_NULL);
-		
-	}
-
-ErrorExitPhase2:
-	if(psIntSysPAddr)
-	{
-		OSReleasePhysPageAddr(hOSWrapMem);
-	}
-
-ErrorExitPhase1:
-	if(psIntSysPAddr)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, uPageCount * sizeof(IMG_SYS_PHYADDR), psIntSysPAddr, IMG_NULL);
-		
-	}
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceMemoryKM (PVRSRV_KERNEL_MEM_INFO *psMemInfo)
-{
-	if (!psMemInfo)
-	{
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	return ResManFreeResByPtr(psMemInfo->sMemBlk.hResItem, CLEANUP_WITH_POLL);
-}
-
-
-static PVRSRV_ERROR UnmapDeviceMemoryCallBack(IMG_PVOID  pvParam,
-											  IMG_UINT32 ui32Param,
-											  IMG_BOOL   bDummy)
-{
-	PVRSRV_ERROR				eError;
-	RESMAN_MAP_DEVICE_MEM_DATA	*psMapData = pvParam;
-
-	PVR_UNREFERENCED_PARAMETER(ui32Param);
-	PVR_UNREFERENCED_PARAMETER(bDummy);
-
-	if(psMapData->psMemInfo->sMemBlk.psIntSysPAddr)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(IMG_SYS_PHYADDR), psMapData->psMemInfo->sMemBlk.psIntSysPAddr, IMG_NULL);
-		psMapData->psMemInfo->sMemBlk.psIntSysPAddr = IMG_NULL;
-	}
-
-	if( psMapData->psMemInfo->psKernelSyncInfo )
-	{
-		psMapData->psMemInfo->psKernelSyncInfo->ui32RefCount--;
-		if (psMapData->psMemInfo->psKernelSyncInfo->ui32RefCount == 0)
-		{
-			eError = PVRSRVFreeSyncInfoKM(psMapData->psMemInfo->psKernelSyncInfo);
-			if(eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,"UnmapDeviceMemoryCallBack: Failed to free sync info"));
-				return eError;
-			}
-		}
-	}
-
-	eError = FreeDeviceMem(psMapData->psMemInfo);
-	if(eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"UnmapDeviceMemoryCallBack: Failed to free DST meminfo"));
-		return eError;
-	}
-
-	
-	eError = FreeMemCallBackCommon(psMapData->psSrcMemInfo, 0, IMG_FALSE);
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(RESMAN_MAP_DEVICE_MEM_DATA), psMapData, IMG_NULL);
-	
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceMemoryKM(PVRSRV_PER_PROCESS_DATA	*psPerProc,
-												  PVRSRV_KERNEL_MEM_INFO	*psSrcMemInfo,
-												  IMG_HANDLE				hDstDevMemHeap,
-												  PVRSRV_KERNEL_MEM_INFO	**ppsDstMemInfo)
-{
-	PVRSRV_ERROR				eError;
-	IMG_UINT32					i;
-	IMG_SIZE_T					uPageCount, uPageOffset;
-	IMG_SIZE_T					ui32HostPageSize = HOST_PAGESIZE();
-	IMG_SYS_PHYADDR				*psSysPAddr = IMG_NULL;
-	IMG_DEV_PHYADDR				sDevPAddr;
-	BM_BUF						*psBuf;
-	IMG_DEV_VIRTADDR			sDevVAddr;
-	PVRSRV_KERNEL_MEM_INFO		*psMemInfo = IMG_NULL;
-	BM_HANDLE 					hBuffer;
-	PVRSRV_MEMBLK				*psMemBlock;
-	IMG_BOOL					bBMError;
-	PVRSRV_DEVICE_NODE			*psDeviceNode;
-	IMG_VOID 					*pvPageAlignedCPUVAddr;
-	RESMAN_MAP_DEVICE_MEM_DATA	*psMapData = IMG_NULL;
-
-	
-	if(!psSrcMemInfo || !hDstDevMemHeap || !ppsDstMemInfo)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVMapDeviceMemoryKM: invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	
-	*ppsDstMemInfo = IMG_NULL;
-
-	uPageOffset = psSrcMemInfo->sDevVAddr.uiAddr & (ui32HostPageSize - 1);
-	uPageCount = HOST_PAGEALIGN(psSrcMemInfo->uAllocSize + uPageOffset) / ui32HostPageSize;
-	pvPageAlignedCPUVAddr = (IMG_VOID *)((IMG_UINTPTR_T)psSrcMemInfo->pvLinAddrKM - uPageOffset);
-
-	
-
-
-
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-					uPageCount*sizeof(IMG_SYS_PHYADDR),
-					(IMG_VOID **)&psSysPAddr, IMG_NULL,
-					"Array of Page Addresses") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVMapDeviceMemoryKM: Failed to alloc memory for block"));
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-
-	psBuf = psSrcMemInfo->sMemBlk.hBuffer;
-
-	
-	psDeviceNode = psBuf->pMapping->pBMHeap->pBMContext->psDeviceNode;
-
-	
-	sDevVAddr.uiAddr = psSrcMemInfo->sDevVAddr.uiAddr - IMG_CAST_TO_DEVVADDR_UINT(uPageOffset);
-	for(i=0; i<uPageCount; i++)
-	{
-		BM_GetPhysPageAddr(psSrcMemInfo, sDevVAddr, &sDevPAddr);
-
-		
-		psSysPAddr[i] = SysDevPAddrToSysPAddr (psDeviceNode->sDevId.eDeviceType, sDevPAddr);
-
-		
-		sDevVAddr.uiAddr += IMG_CAST_TO_DEVVADDR_UINT(ui32HostPageSize);
-	}
-
-	
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-					sizeof(RESMAN_MAP_DEVICE_MEM_DATA),
-					(IMG_VOID **)&psMapData, IMG_NULL,
-					"Resource Manager Map Data") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVMapDeviceMemoryKM: Failed to alloc resman map data"));
-		eError = PVRSRV_ERROR_OUT_OF_MEMORY;
-		goto ErrorExit;
-	}
-
-	if(OSAllocMem(PVRSRV_PAGEABLE_SELECT,
-					sizeof(PVRSRV_KERNEL_MEM_INFO),
-					(IMG_VOID **)&psMemInfo, IMG_NULL,
-					"Kernel Memory Info") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVMapDeviceMemoryKM: Failed to alloc memory for block"));
-		eError = PVRSRV_ERROR_OUT_OF_MEMORY;
-		goto ErrorExit;
-	}
-
-	OSMemSet(psMemInfo, 0, sizeof(*psMemInfo));
-	psMemInfo->ui32Flags = psSrcMemInfo->ui32Flags;
-
-	psMemBlock = &(psMemInfo->sMemBlk);
-
-	bBMError = BM_Wrap(hDstDevMemHeap,
-					   psSrcMemInfo->uAllocSize,
-					   uPageOffset,
-					   IMG_FALSE,
-					   psSysPAddr,
-					   pvPageAlignedCPUVAddr,
-					   &psMemInfo->ui32Flags,
-					   &hBuffer);
-
-	if (!bBMError)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVMapDeviceMemoryKM: BM_Wrap Failed"));
-		eError = PVRSRV_ERROR_BAD_MAPPING;
-		goto ErrorExit;
-	}
-
-	
-	psMemBlock->sDevVirtAddr = BM_HandleToDevVaddr(hBuffer);
-	psMemBlock->hOSMemHandle = BM_HandleToOSMemHandle(hBuffer);
-
-	
-	psMemBlock->hBuffer = (IMG_HANDLE)hBuffer;
-
-	
-	psMemBlock->psIntSysPAddr = psSysPAddr;
-
-	
-	psMemInfo->pvLinAddrKM = psSrcMemInfo->pvLinAddrKM;
-
-	
-	psMemInfo->sDevVAddr = psMemBlock->sDevVirtAddr;
-	psMemInfo->uAllocSize = psSrcMemInfo->uAllocSize;
-	psMemInfo->psKernelSyncInfo = psSrcMemInfo->psKernelSyncInfo;
-
-	
-	if(psMemInfo->psKernelSyncInfo)
-	{
-		psMemInfo->psKernelSyncInfo->ui32RefCount++;
-	}
-
-	
-
-	psMemInfo->pvSysBackupBuffer = IMG_NULL;
-
-	
-	psMemInfo->ui32RefCount++;
-
-	
-	psSrcMemInfo->ui32RefCount++;
-
-	
-	BM_Export(psSrcMemInfo->sMemBlk.hBuffer);
-
-	psMemInfo->memType = PVRSRV_MEMTYPE_MAPPED;
-
-	
-	psMapData->psMemInfo = psMemInfo;
-	psMapData->psSrcMemInfo = psSrcMemInfo;
-
-	
-	psMemInfo->sMemBlk.hResItem = ResManRegisterRes(psPerProc->hResManContext,
-													RESMAN_TYPE_DEVICEMEM_MAPPING,
-													psMapData,
-													0,
-													&UnmapDeviceMemoryCallBack);
-
-	*ppsDstMemInfo = psMemInfo;
-
-	return PVRSRV_OK;
-
-	
-
-ErrorExit:
-
-	if(psSysPAddr)
-	{
-		
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(IMG_SYS_PHYADDR), psSysPAddr, IMG_NULL);
-		
-	}
-
-	if(psMemInfo)
-	{
-		
-		OSFreeMem(PVRSRV_PAGEABLE_SELECT, sizeof(PVRSRV_KERNEL_MEM_INFO), psMemInfo, IMG_NULL);
-		
-	}
-
-	if(psMapData)
-	{
-		
-		OSFreeMem(PVRSRV_PAGEABLE_SELECT, sizeof(RESMAN_MAP_DEVICE_MEM_DATA), psMapData, IMG_NULL);
-		
-	}
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceClassMemoryKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo)
-{
-	if (!psMemInfo)
-	{
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	return ResManFreeResByPtr(psMemInfo->sMemBlk.hResItem, CLEANUP_WITH_POLL);
-}
-
-
-static PVRSRV_ERROR UnmapDeviceClassMemoryCallBack(IMG_PVOID  pvParam,
-												   IMG_UINT32 ui32Param,
-												   IMG_BOOL   bDummy)
-{
-	PVRSRV_DC_MAPINFO *psDCMapInfo = pvParam;
-	PVRSRV_KERNEL_MEM_INFO *psMemInfo;
-
-	PVR_UNREFERENCED_PARAMETER(ui32Param);
-	PVR_UNREFERENCED_PARAMETER(bDummy);
-
-	psMemInfo = psDCMapInfo->psMemInfo;
-
-#if defined(SUPPORT_MEMORY_TILING)
-	if(psDCMapInfo->ui32TilingStride > 0)
-	{
-		PVRSRV_DEVICE_NODE *psDeviceNode = psDCMapInfo->psDeviceNode;
-
-		if (psDeviceNode->pfnFreeMemTilingRange(psDeviceNode,
-												psDCMapInfo->ui32RangeIndex) != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"UnmapDeviceClassMemoryCallBack: FreeMemTilingRange failed"));
-		}
-	}
-#endif
-
-	(psDCMapInfo->psDeviceClassBuffer->ui32MemMapRefCount)--;
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_DC_MAPINFO), psDCMapInfo, IMG_NULL);
-
-	return FreeMemCallBackCommon(psMemInfo, ui32Param, IMG_TRUE);
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceClassMemoryKM(PVRSRV_PER_PROCESS_DATA	*psPerProc,
-													   IMG_HANDLE				hDevMemContext,
-													   IMG_HANDLE				hDeviceClassBuffer,
-													   PVRSRV_KERNEL_MEM_INFO	**ppsMemInfo,
-													   IMG_HANDLE				*phOSMapInfo)
-{
-	PVRSRV_ERROR eError;
-	PVRSRV_DEVICE_NODE* psDeviceNode;
-	PVRSRV_KERNEL_MEM_INFO *psMemInfo = IMG_NULL;
-	PVRSRV_DEVICECLASS_BUFFER *psDeviceClassBuffer;
-	IMG_SYS_PHYADDR *psSysPAddr;
-	IMG_VOID *pvCPUVAddr, *pvPageAlignedCPUVAddr;
-	IMG_BOOL bPhysContig;
-	BM_CONTEXT *psBMContext;
-	DEVICE_MEMORY_INFO *psDevMemoryInfo;
-	DEVICE_MEMORY_HEAP_INFO *psDeviceMemoryHeap;
-	IMG_HANDLE hDevMemHeap = IMG_NULL;
-	IMG_SIZE_T uByteSize;
-	IMG_SIZE_T ui32Offset;
-	IMG_SIZE_T ui32PageSize = HOST_PAGESIZE();
-	BM_HANDLE		hBuffer;
-	PVRSRV_MEMBLK	*psMemBlock;
-	IMG_BOOL		bBMError;
-	IMG_UINT32 i;
-	PVRSRV_DC_MAPINFO *psDCMapInfo = IMG_NULL;
-
-	if(!hDeviceClassBuffer || !ppsMemInfo || !phOSMapInfo || !hDevMemContext)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVMapDeviceClassMemoryKM: invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-					sizeof(PVRSRV_DC_MAPINFO),
-					(IMG_VOID **)&psDCMapInfo, IMG_NULL,
-					"PVRSRV_DC_MAPINFO") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVMapDeviceClassMemoryKM: Failed to alloc memory for psDCMapInfo"));
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-	OSMemSet(psDCMapInfo, 0, sizeof(PVRSRV_DC_MAPINFO));
-
-	psDeviceClassBuffer = (PVRSRV_DEVICECLASS_BUFFER*)hDeviceClassBuffer;
-
-	
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	eError = psDeviceClassBuffer->pfnGetBufferAddr(psDeviceClassBuffer->hExtDevice,
-												   psDeviceClassBuffer->hExtBuffer,
-												   &psSysPAddr,
-												   &uByteSize,
-												   &pvCPUVAddr,
-												   phOSMapInfo,
-												   &bPhysContig,
-												   &psDCMapInfo->ui32TilingStride);
-	if(eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVMapDeviceClassMemoryKM: unable to get buffer address"));
-		goto ErrorExitPhase1;
-	}
-
-	
-	psBMContext = (BM_CONTEXT*)psDeviceClassBuffer->hDevMemContext;
-	psDeviceNode = psBMContext->psDeviceNode;
-	psDevMemoryInfo = &psDeviceNode->sDevMemoryInfo;
-	psDeviceMemoryHeap = psDevMemoryInfo->psDeviceMemoryHeap;
-	for(i=0; i<PVRSRV_MAX_CLIENT_HEAPS; i++)
-	{
-		if(HEAP_IDX(psDeviceMemoryHeap[i].ui32HeapID) == psDevMemoryInfo->ui32MappingHeapID)
-		{
-			if(psDeviceMemoryHeap[i].DevMemHeapType == DEVICE_MEMORY_HEAP_PERCONTEXT)
-			{
-				
-				if (psDeviceMemoryHeap[i].ui32HeapSize > 0)
-				{
-					hDevMemHeap = BM_CreateHeap(hDevMemContext, &psDeviceMemoryHeap[i]);
-				}
-				else
-				{
-					hDevMemHeap = IMG_NULL;
-				}
-			}
-			else
-			{
-				hDevMemHeap = psDevMemoryInfo->psDeviceMemoryHeap[i].hDevMemHeap;
-			}
-			break;
-		}
-	}
-
-	if(hDevMemHeap == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVMapDeviceClassMemoryKM: unable to find mapping heap"));
-		eError = PVRSRV_ERROR_UNABLE_TO_FIND_RESOURCE;
-		goto ErrorExitPhase1;
-	}
-
-	
-	ui32Offset = ((IMG_UINTPTR_T)pvCPUVAddr) & (ui32PageSize - 1);
-	pvPageAlignedCPUVAddr = (IMG_VOID *)((IMG_UINTPTR_T)pvCPUVAddr - ui32Offset);
-
-	eError = OSAllocMem(PVRSRV_PAGEABLE_SELECT,
-					sizeof(PVRSRV_KERNEL_MEM_INFO),
-					(IMG_VOID **)&psMemInfo, IMG_NULL,
-					"Kernel Memory Info");
-	if(eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVMapDeviceClassMemoryKM: Failed to alloc memory for block"));
-		goto ErrorExitPhase1;
-	}
-
-	OSMemSet(psMemInfo, 0, sizeof(*psMemInfo));
-
-	psMemBlock = &(psMemInfo->sMemBlk);
-
-	bBMError = BM_Wrap(hDevMemHeap,
-					   uByteSize,
-					   ui32Offset,
-					   bPhysContig,
-					   psSysPAddr,
-					   pvPageAlignedCPUVAddr,
-					   &psMemInfo->ui32Flags,
-					   &hBuffer);
-
-	if (!bBMError)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVMapDeviceClassMemoryKM: BM_Wrap Failed"));
-		
-		eError = PVRSRV_ERROR_BAD_MAPPING;
-		goto ErrorExitPhase2;
-	}
-
-	
-	psMemBlock->sDevVirtAddr = BM_HandleToDevVaddr(hBuffer);
-	psMemBlock->hOSMemHandle = BM_HandleToOSMemHandle(hBuffer);
-
-	
-	psMemBlock->hBuffer = (IMG_HANDLE)hBuffer;
-
-	
-
-	psMemInfo->pvLinAddrKM = BM_HandleToCpuVaddr(hBuffer);
-
-	
-	psMemInfo->sDevVAddr = psMemBlock->sDevVirtAddr;
-	psMemInfo->uAllocSize = uByteSize;
-	psMemInfo->psKernelSyncInfo = psDeviceClassBuffer->psKernelSyncInfo;
-
-	
-
-	psMemInfo->pvSysBackupBuffer = IMG_NULL;
-
-	
-	psDCMapInfo->psMemInfo = psMemInfo;
-	psDCMapInfo->psDeviceClassBuffer = psDeviceClassBuffer;
-
-#if defined(SUPPORT_MEMORY_TILING)
-	psDCMapInfo->psDeviceNode = psDeviceNode;
-
-	if(psDCMapInfo->ui32TilingStride > 0)
-	{
-		
-		eError = psDeviceNode->pfnAllocMemTilingRange(psDeviceNode,
-														psMemInfo,
-														psDCMapInfo->ui32TilingStride,
-														&psDCMapInfo->ui32RangeIndex);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"PVRSRVMapDeviceClassMemoryKM: AllocMemTilingRange failed"));
-			goto ErrorExitPhase3;
-		}
-	}
-#endif
-
-	
-	psMemInfo->sMemBlk.hResItem = ResManRegisterRes(psPerProc->hResManContext,
-													RESMAN_TYPE_DEVICECLASSMEM_MAPPING,
-													psDCMapInfo,
-													0,
-													&UnmapDeviceClassMemoryCallBack);
-
-	(psDeviceClassBuffer->ui32MemMapRefCount)++;
-	psMemInfo->ui32RefCount++;
-
-	psMemInfo->memType = PVRSRV_MEMTYPE_DEVICECLASS;
-
-	
-	*ppsMemInfo = psMemInfo;
-
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-	
-	PDUMPCOMMENT("Dump display surface");
-	PDUMPMEM(IMG_NULL, psMemInfo, ui32Offset, psMemInfo->uAllocSize, PDUMP_FLAGS_CONTINUOUS, ((BM_BUF*)psMemInfo->sMemBlk.hBuffer)->pMapping);
-#endif
-	return PVRSRV_OK;
-
-#if defined(SUPPORT_MEMORY_TILING)
-ErrorExitPhase3:
-	if(psMemInfo)
-	{
-		FreeDeviceMem(psMemInfo);
-		
-
-
-		psMemInfo = IMG_NULL;
-	}
-#endif
-
-ErrorExitPhase2:
-	if(psMemInfo)
-	{
-		OSFreeMem(PVRSRV_PAGEABLE_SELECT, sizeof(PVRSRV_KERNEL_MEM_INFO), psMemInfo, IMG_NULL);
-	}
-
-ErrorExitPhase1:
-	if(psDCMapInfo)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_KERNEL_MEM_INFO), psDCMapInfo, IMG_NULL);
-	}
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVChangeDeviceMemoryAttributesKM(IMG_HANDLE hKernelMemInfo, IMG_UINT32 ui32Attribs)
-{
-	PVRSRV_KERNEL_MEM_INFO		*psKMMemInfo;
-
-	if (hKernelMemInfo == IMG_NULL)
-	{
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psKMMemInfo = (PVRSRV_KERNEL_MEM_INFO *)hKernelMemInfo;
-
-	if (ui32Attribs & PVRSRV_CHANGEDEVMEM_ATTRIBS_CACHECOHERENT)
-	{
-		psKMMemInfo->ui32Flags |= PVRSRV_MEM_CACHE_CONSISTENT;
-	}
-	else
-	{
-		psKMMemInfo->ui32Flags &= ~PVRSRV_MEM_CACHE_CONSISTENT;
-	}
-
-	return PVRSRV_OK;
-}
-
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/handle.c b/drivers/staging/cdv/pvr/services4/srvkm/common/handle.c
deleted file mode 100644
index d911b38..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/handle.c
+++ /dev/null
@@ -1,1873 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-#include <stddef.h>
-
-#include "services_headers.h"
-#include "handle.h"
-
-#ifdef	DEBUG
-#define	HANDLE_BLOCK_SHIFT	2
-#else
-#define	HANDLE_BLOCK_SHIFT	8
-#endif
-
-#define	DIVIDE_BY_BLOCK_SIZE(i)		(((IMG_UINT32)(i)) >> HANDLE_BLOCK_SHIFT)
-#define	MULTIPLY_BY_BLOCK_SIZE(i)	(((IMG_UINT32)(i)) << HANDLE_BLOCK_SHIFT)
-
-#define HANDLE_BLOCK_SIZE       MULTIPLY_BY_BLOCK_SIZE(1)
-#define	HANDLE_SUB_BLOCK_MASK	(HANDLE_BLOCK_SIZE - 1)
-#define	HANDLE_BLOCK_MASK	(~(HANDLE_SUB_BLOCK_MASK))
-
-#define	HANDLE_HASH_TAB_INIT_SIZE	32
-
-#define	INDEX_IS_VALID(psBase, i) ((i) < (psBase)->ui32TotalHandCount)
-
-#if defined (SUPPORT_SID_INTERFACE)
-#define	INDEX_TO_HANDLE(i) ((IMG_SID)((i) + 1))
-#define	HANDLE_TO_INDEX(h) ((IMG_UINT32)(h) - 1)
-#else
-#define	INDEX_TO_HANDLE(i) ((IMG_HANDLE)((IMG_UINTPTR_T)(i) + 1))
-#define	HANDLE_TO_INDEX(h) ((IMG_UINT32)(IMG_UINTPTR_T)(h) - 1)
-
-#endif
-
-#define	INDEX_TO_BLOCK_INDEX(i)		DIVIDE_BY_BLOCK_SIZE(i)
-#define BLOCK_INDEX_TO_INDEX(i)		MULTIPLY_BY_BLOCK_SIZE(i)
-#define INDEX_TO_SUB_BLOCK_INDEX(i)	((i) & HANDLE_SUB_BLOCK_MASK)
-
-#define INDEX_TO_INDEX_STRUCT_PTR(psArray, i) (&((psArray)[INDEX_TO_BLOCK_INDEX(i)]))
-#define	BASE_AND_INDEX_TO_INDEX_STRUCT_PTR(psBase, i) INDEX_TO_INDEX_STRUCT_PTR((psBase)->psHandleArray, i)
-
-#define	INDEX_TO_FREE_HAND_BLOCK_COUNT(psBase, i) (BASE_AND_INDEX_TO_INDEX_STRUCT_PTR(psBase, i)->ui32FreeHandBlockCount)
-
-#define INDEX_TO_HANDLE_STRUCT_PTR(psBase, i) (BASE_AND_INDEX_TO_INDEX_STRUCT_PTR(psBase, i)->psHandle + INDEX_TO_SUB_BLOCK_INDEX(i))
-
-#define	HANDLE_TO_HANDLE_STRUCT_PTR(psBase, h) (INDEX_TO_HANDLE_STRUCT_PTR(psBase, HANDLE_TO_INDEX(h)))
-
-#define	HANDLE_PTR_TO_INDEX(psHandle) ((psHandle)->ui32Index)
-#define	HANDLE_PTR_TO_HANDLE(psHandle) INDEX_TO_HANDLE(HANDLE_PTR_TO_INDEX(psHandle))
-
-#define	ROUND_DOWN_TO_MULTIPLE_OF_BLOCK_SIZE(a) (HANDLE_BLOCK_MASK & (a))
-#define	ROUND_UP_TO_MULTIPLE_OF_BLOCK_SIZE(a) ROUND_DOWN_TO_MULTIPLE_OF_BLOCK_SIZE((a) + HANDLE_BLOCK_SIZE - 1)
-
-#define	DEFAULT_MAX_HANDLE		0x7fffffffu
-#define	DEFAULT_MAX_INDEX_PLUS_ONE	ROUND_DOWN_TO_MULTIPLE_OF_BLOCK_SIZE(DEFAULT_MAX_HANDLE)
-
-#define	HANDLES_BATCHED(psBase) ((psBase)->ui32HandBatchSize != 0)
-
-#define HANDLE_ARRAY_SIZE(handleCount) DIVIDE_BY_BLOCK_SIZE(ROUND_UP_TO_MULTIPLE_OF_BLOCK_SIZE(handleCount))
-
-#define	SET_FLAG(v, f) ((IMG_VOID)((v) |= (f)))
-#define	CLEAR_FLAG(v, f) ((IMG_VOID)((v) &= ~(f)))
-#define	TEST_FLAG(v, f) ((IMG_BOOL)(((v) & (f)) != 0))
-
-#define	TEST_ALLOC_FLAG(psHandle, f) TEST_FLAG((psHandle)->eFlag, f)
-
-#define	SET_INTERNAL_FLAG(psHandle, f) SET_FLAG((psHandle)->eInternalFlag, f)
-#define	CLEAR_INTERNAL_FLAG(psHandle, f) CLEAR_FLAG((psHandle)->eInternalFlag, f)
-#define	TEST_INTERNAL_FLAG(psHandle, f) TEST_FLAG((psHandle)->eInternalFlag, f)
-
-#define	BATCHED_HANDLE(psHandle) TEST_INTERNAL_FLAG(psHandle, INTERNAL_HANDLE_FLAG_BATCHED)
-
-#define	SET_BATCHED_HANDLE(psHandle) SET_INTERNAL_FLAG(psHandle, INTERNAL_HANDLE_FLAG_BATCHED)
-
-#define	SET_UNBATCHED_HANDLE(psHandle) CLEAR_INTERNAL_FLAG(psHandle, INTERNAL_HANDLE_FLAG_BATCHED)
-
-#define	BATCHED_HANDLE_PARTIALLY_FREE(psHandle) TEST_INTERNAL_FLAG(psHandle, INTERNAL_HANDLE_FLAG_BATCHED_PARTIALLY_FREE)
-
-#define SET_BATCHED_HANDLE_PARTIALLY_FREE(psHandle) SET_INTERNAL_FLAG(psHandle, INTERNAL_HANDLE_FLAG_BATCHED_PARTIALLY_FREE)
-
-#define	HANDLE_STRUCT_IS_FREE(psHandle) ((psHandle)->eType == PVRSRV_HANDLE_TYPE_NONE && (psHandle)->eInternalFlag == INTERNAL_HANDLE_FLAG_NONE)
-
-#ifdef	MIN
-#undef MIN
-#endif
-
-#define	MIN(x, y) (((x) < (y)) ? (x) : (y))
-
-struct sHandleList
-{
-	IMG_UINT32 ui32Prev;
-	IMG_UINT32 ui32Next;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID hParent;
-#else
-	IMG_HANDLE hParent;
-#endif
-};
-
-enum ePVRSRVInternalHandleFlag
-{
-	INTERNAL_HANDLE_FLAG_NONE = 0x00,
-	INTERNAL_HANDLE_FLAG_BATCHED = 0x01,
-	INTERNAL_HANDLE_FLAG_BATCHED_PARTIALLY_FREE = 0x02,
-};
-
-struct sHandle
-{
-	
-	PVRSRV_HANDLE_TYPE eType;
-
-	
-	IMG_VOID *pvData;
-
-	
-	IMG_UINT32 ui32NextIndexPlusOne;
-
-	
-	enum ePVRSRVInternalHandleFlag eInternalFlag;
-
-	
-	PVRSRV_HANDLE_ALLOC_FLAG eFlag;
-
-	
-	IMG_UINT32 ui32Index;
-
-	
-	struct sHandleList sChildren;
-
-	
-	struct sHandleList sSiblings;
-};
-
-struct sHandleIndex
-{
-	
-	struct sHandle *psHandle;
-
-	
-	IMG_HANDLE hBlockAlloc;
-
-	
-	IMG_UINT32 ui32FreeHandBlockCount;
-};
-
-struct _PVRSRV_HANDLE_BASE_
-{
-	
-	IMG_HANDLE hBaseBlockAlloc;
-
-	
-	IMG_HANDLE hArrayBlockAlloc;
-
-	
-	struct sHandleIndex *psHandleArray;
-
-	
-	HASH_TABLE *psHashTab;
-
-	
-	IMG_UINT32 ui32FreeHandCount;
-
-	
-	IMG_UINT32 ui32FirstFreeIndex;
-
-	
-	IMG_UINT32 ui32MaxIndexPlusOne;
-
-	
-	IMG_UINT32 ui32TotalHandCount;
-
-	
-	IMG_UINT32 ui32LastFreeIndexPlusOne;
-
-	
-	IMG_UINT32 ui32HandBatchSize;
-
-	
-	IMG_UINT32 ui32TotalHandCountPreBatch;
-
-	
-	IMG_UINT32 ui32FirstBatchIndexPlusOne;
-
-	
-	IMG_UINT32 ui32BatchHandAllocFailures;
-
-	
-	IMG_BOOL bPurgingEnabled;
-};
-
-enum eHandKey {
-	HAND_KEY_DATA = 0,
-	HAND_KEY_TYPE,
-	HAND_KEY_PARENT,
-	HAND_KEY_LEN			
-};
-
-PVRSRV_HANDLE_BASE *gpsKernelHandleBase = IMG_NULL;
-
-typedef IMG_UINTPTR_T HAND_KEY[HAND_KEY_LEN];
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(HandleListInit)
-#endif
-static INLINE
-#if defined (SUPPORT_SID_INTERFACE)
-IMG_VOID HandleListInit(IMG_UINT32 ui32Index, struct sHandleList *psList, IMG_SID hParent)
-#else
-IMG_VOID HandleListInit(IMG_UINT32 ui32Index, struct sHandleList *psList, IMG_HANDLE hParent)
-#endif
-{
-	psList->ui32Next = ui32Index;
-	psList->ui32Prev = ui32Index;
-	psList->hParent = hParent;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(InitParentList)
-#endif
-static INLINE
-IMG_VOID InitParentList(struct sHandle *psHandle)
-{
-	IMG_UINT32 ui32Parent = HANDLE_PTR_TO_INDEX(psHandle);
-
-	HandleListInit(ui32Parent, &psHandle->sChildren, INDEX_TO_HANDLE(ui32Parent));
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(InitChildEntry)
-#endif
-static INLINE
-IMG_VOID InitChildEntry(struct sHandle *psHandle)
-{
-	HandleListInit(HANDLE_PTR_TO_INDEX(psHandle), &psHandle->sSiblings, IMG_NULL);
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(HandleListIsEmpty)
-#endif
-static INLINE
-IMG_BOOL HandleListIsEmpty(IMG_UINT32 ui32Index, struct sHandleList *psList)
-{
-	IMG_BOOL bIsEmpty;
-
-	bIsEmpty = (IMG_BOOL)(psList->ui32Next == ui32Index);
-
-#ifdef	DEBUG
-	{
-		IMG_BOOL bIsEmpty2;
-
-		bIsEmpty2 = (IMG_BOOL)(psList->ui32Prev == ui32Index);
-		PVR_ASSERT(bIsEmpty == bIsEmpty2)
-	}
-#endif
-
-	return bIsEmpty;
-}
-
-#ifdef DEBUG
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(NoChildren)
-#endif
-static INLINE
-IMG_BOOL NoChildren(struct sHandle *psHandle)
-{
-	PVR_ASSERT(psHandle->sChildren.hParent == HANDLE_PTR_TO_HANDLE(psHandle))
-
-	return HandleListIsEmpty(HANDLE_PTR_TO_INDEX(psHandle), &psHandle->sChildren);
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(NoParent)
-#endif
-static INLINE
-IMG_BOOL NoParent(struct sHandle *psHandle)
-{
-	if (HandleListIsEmpty(HANDLE_PTR_TO_INDEX(psHandle), &psHandle->sSiblings))
-	{
-		PVR_ASSERT(psHandle->sSiblings.hParent == IMG_NULL)
-
-		return IMG_TRUE;
-	}
-	else
-	{
-		PVR_ASSERT(psHandle->sSiblings.hParent != IMG_NULL)
-	}
-	return IMG_FALSE;
-}
-#endif 
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(ParentHandle)
-#endif
-static INLINE
-#if defined (SUPPORT_SID_INTERFACE)
-IMG_SID ParentHandle(struct sHandle *psHandle)
-#else
-IMG_HANDLE ParentHandle(struct sHandle *psHandle)
-#endif
-{
-	return psHandle->sSiblings.hParent;
-}
-
-#define	LIST_PTR_FROM_INDEX_AND_OFFSET(psBase, i, p, po, eo) \
-		((struct sHandleList *)((IMG_CHAR *)(INDEX_TO_HANDLE_STRUCT_PTR(psBase, i)) + (((i) == (p)) ? (po) : (eo))))
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(HandleListInsertBefore)
-#endif
-static INLINE
-IMG_VOID HandleListInsertBefore(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32InsIndex, struct sHandleList *psIns, IMG_SIZE_T uiParentOffset, IMG_UINT32 ui32EntryIndex, struct sHandleList *psEntry, IMG_SIZE_T uiEntryOffset, IMG_UINT32 ui32ParentIndex)
-{
-	 
-	struct sHandleList *psPrevIns = LIST_PTR_FROM_INDEX_AND_OFFSET(psBase, psIns->ui32Prev, ui32ParentIndex, uiParentOffset, uiEntryOffset);
-
-	PVR_ASSERT(psEntry->hParent == IMG_NULL)
-	PVR_ASSERT(ui32InsIndex == psPrevIns->ui32Next)
-	PVR_ASSERT(LIST_PTR_FROM_INDEX_AND_OFFSET(psBase, ui32ParentIndex, ui32ParentIndex, uiParentOffset, uiParentOffset)->hParent == INDEX_TO_HANDLE(ui32ParentIndex))
-
-	psEntry->ui32Prev = psIns->ui32Prev;
-	psIns->ui32Prev = ui32EntryIndex;
-	psEntry->ui32Next = ui32InsIndex;
-	psPrevIns->ui32Next = ui32EntryIndex;
-
-	psEntry->hParent = INDEX_TO_HANDLE(ui32ParentIndex);
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(AdoptChild)
-#endif
-static INLINE
-IMG_VOID AdoptChild(PVRSRV_HANDLE_BASE *psBase, struct sHandle *psParent, struct sHandle *psChild)
-{
-	IMG_UINT32 ui32Parent = HANDLE_TO_INDEX(psParent->sChildren.hParent);
-
-	PVR_ASSERT(ui32Parent == HANDLE_PTR_TO_INDEX(psParent))
-
-	HandleListInsertBefore(psBase, ui32Parent, &psParent->sChildren, offsetof(struct sHandle, sChildren), HANDLE_PTR_TO_INDEX(psChild), &psChild->sSiblings, offsetof(struct sHandle, sSiblings), ui32Parent);
-
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(HandleListRemove)
-#endif
-static INLINE
-IMG_VOID HandleListRemove(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32EntryIndex, struct sHandleList *psEntry, IMG_SIZE_T uiEntryOffset, IMG_SIZE_T uiParentOffset)
-{
-	if (!HandleListIsEmpty(ui32EntryIndex, psEntry))
-	{
-		 
-		struct sHandleList *psPrev = LIST_PTR_FROM_INDEX_AND_OFFSET(psBase, psEntry->ui32Prev, HANDLE_TO_INDEX(psEntry->hParent), uiParentOffset, uiEntryOffset);
-		struct sHandleList *psNext = LIST_PTR_FROM_INDEX_AND_OFFSET(psBase, psEntry->ui32Next, HANDLE_TO_INDEX(psEntry->hParent), uiParentOffset, uiEntryOffset);
-
-		
-		PVR_ASSERT(psEntry->hParent != IMG_NULL)
-
-		psPrev->ui32Next = psEntry->ui32Next;
-		psNext->ui32Prev = psEntry->ui32Prev;
-
-		HandleListInit(ui32EntryIndex, psEntry, IMG_NULL);
-	}
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(UnlinkFromParent)
-#endif
-static INLINE
-IMG_VOID UnlinkFromParent(PVRSRV_HANDLE_BASE *psBase, struct sHandle *psHandle)
-{
-	HandleListRemove(psBase, HANDLE_PTR_TO_INDEX(psHandle), &psHandle->sSiblings, offsetof(struct sHandle, sSiblings), offsetof(struct sHandle, sChildren));
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(HandleListIterate)
-#endif
-static INLINE
-PVRSRV_ERROR HandleListIterate(PVRSRV_HANDLE_BASE *psBase, struct sHandleList *psHead, IMG_SIZE_T uiParentOffset, IMG_SIZE_T uiEntryOffset, PVRSRV_ERROR (*pfnIterFunc)(PVRSRV_HANDLE_BASE *, struct sHandle *))
-{
-	IMG_UINT32 ui32Index;
-	IMG_UINT32 ui32Parent = HANDLE_TO_INDEX(psHead->hParent);
-
-	PVR_ASSERT(psHead->hParent != IMG_NULL)
-
-	
-	for(ui32Index = psHead->ui32Next; ui32Index != ui32Parent; )
-	{
-		struct sHandle *psHandle = INDEX_TO_HANDLE_STRUCT_PTR(psBase, ui32Index);
-		 
-		struct sHandleList *psEntry = LIST_PTR_FROM_INDEX_AND_OFFSET(psBase, ui32Index, ui32Parent, uiParentOffset, uiEntryOffset);
-		PVRSRV_ERROR eError;
-
-		PVR_ASSERT(psEntry->hParent == psHead->hParent)
-		
-		ui32Index = psEntry->ui32Next;
-
-		eError = (*pfnIterFunc)(psBase, psHandle);
-		if (eError != PVRSRV_OK)
-		{
-			return eError;
-		}
-	}
-
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(IterateOverChildren)
-#endif
-static INLINE
-PVRSRV_ERROR IterateOverChildren(PVRSRV_HANDLE_BASE *psBase, struct sHandle *psParent, PVRSRV_ERROR (*pfnIterFunc)(PVRSRV_HANDLE_BASE *, struct sHandle *))
-{
-	 return HandleListIterate(psBase, &psParent->sChildren, offsetof(struct sHandle, sChildren), offsetof(struct sHandle, sSiblings), pfnIterFunc);
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(GetHandleStructure)
-#endif
-static INLINE
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR GetHandleStructure(PVRSRV_HANDLE_BASE *psBase, struct sHandle **ppsHandle, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType)
-#else
-PVRSRV_ERROR GetHandleStructure(PVRSRV_HANDLE_BASE *psBase, struct sHandle **ppsHandle, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType)
-#endif
-{
-	IMG_UINT32 ui32Index = HANDLE_TO_INDEX(hHandle);
-	struct sHandle *psHandle;
-
-	
-	if (!INDEX_IS_VALID(psBase, ui32Index))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "GetHandleStructure: Handle index out of range (%u >= %u)", ui32Index, psBase->ui32TotalHandCount));
-#if defined (SUPPORT_SID_INTERFACE)
-		PVR_DBG_BREAK
-#endif
-		return PVRSRV_ERROR_HANDLE_INDEX_OUT_OF_RANGE;
-	}
-
-	psHandle =  INDEX_TO_HANDLE_STRUCT_PTR(psBase, ui32Index);
-	if (psHandle->eType == PVRSRV_HANDLE_TYPE_NONE)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "GetHandleStructure: Handle not allocated (index: %u)", ui32Index));
-#if defined (SUPPORT_SID_INTERFACE)
-		PVR_DBG_BREAK
-#endif
-		return PVRSRV_ERROR_HANDLE_NOT_ALLOCATED;
-	}
-
-	
-	if (eType != PVRSRV_HANDLE_TYPE_NONE && eType != psHandle->eType)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "GetHandleStructure: Handle type mismatch (%d != %d)", eType, psHandle->eType));
-#if defined (SUPPORT_SID_INTERFACE)
-		PVR_DBG_BREAK
-#endif
-		return PVRSRV_ERROR_HANDLE_TYPE_MISMATCH;
-	}
-
-	
-	*ppsHandle = psHandle;
-
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(ParentIfPrivate)
-#endif
-static INLINE
-#if defined (SUPPORT_SID_INTERFACE)
-IMG_SID ParentIfPrivate(struct sHandle *psHandle)
-#else
-IMG_HANDLE ParentIfPrivate(struct sHandle *psHandle)
-#endif
-{
-	return TEST_ALLOC_FLAG(psHandle, PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE) ?
-			ParentHandle(psHandle) : IMG_NULL;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(InitKey)
-#endif
-static INLINE
-#if defined (SUPPORT_SID_INTERFACE)
-IMG_VOID InitKey(HAND_KEY aKey, PVRSRV_HANDLE_BASE *psBase, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, IMG_SID hParent)
-#else
-IMG_VOID InitKey(HAND_KEY aKey, PVRSRV_HANDLE_BASE *psBase, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, IMG_HANDLE hParent)
-#endif
-{
-	PVR_UNREFERENCED_PARAMETER(psBase);
-
-	aKey[HAND_KEY_DATA] = (IMG_UINTPTR_T)pvData;
-	aKey[HAND_KEY_TYPE] = (IMG_UINTPTR_T)eType;
-	aKey[HAND_KEY_PARENT] = (IMG_UINTPTR_T)hParent;
-}
-
-static
-PVRSRV_ERROR ReallocHandleArray(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32NewCount)
-{
-	struct sHandleIndex *psOldArray = psBase->psHandleArray;
-	IMG_HANDLE hOldArrayBlockAlloc = psBase->hArrayBlockAlloc;
-	IMG_UINT32 ui32OldCount = psBase->ui32TotalHandCount;
-	struct sHandleIndex *psNewArray = IMG_NULL;
-	IMG_HANDLE hNewArrayBlockAlloc = IMG_NULL;
-	PVRSRV_ERROR eError;
-	PVRSRV_ERROR eReturn = PVRSRV_OK;
-	IMG_UINT32 ui32Index;
-
-	if (ui32NewCount == ui32OldCount)
-	{
-		return PVRSRV_OK;
-	}
-
-	if (ui32NewCount != 0 && !psBase->bPurgingEnabled &&
-		 ui32NewCount < ui32OldCount)
-	{
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	if (((ui32OldCount % HANDLE_BLOCK_SIZE) != 0) ||
-		((ui32NewCount % HANDLE_BLOCK_SIZE) != 0))
-	{
-		PVR_ASSERT((ui32OldCount % HANDLE_BLOCK_SIZE) == 0)
-		PVR_ASSERT((ui32NewCount % HANDLE_BLOCK_SIZE) == 0)
-
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	if (ui32NewCount != 0)
-	{
-		
-		eError = OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-			HANDLE_ARRAY_SIZE(ui32NewCount) * sizeof(struct sHandleIndex),
-			(IMG_VOID **)&psNewArray,
-			&hNewArrayBlockAlloc,
-			"Memory Area");
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "ReallocHandleArray: Couldn't allocate new handle array (%d)", eError));
-			eReturn = eError;
-			goto error;
-		}
-
-		if (ui32OldCount != 0)
-		{
-			OSMemCopy(psNewArray, psOldArray, HANDLE_ARRAY_SIZE(MIN(ui32NewCount, ui32OldCount)) * sizeof(struct sHandleIndex));
-		}
-	}
-
-	
-	for(ui32Index = ui32NewCount; ui32Index < ui32OldCount; ui32Index += HANDLE_BLOCK_SIZE)
-	{
-		struct sHandleIndex *psIndex = INDEX_TO_INDEX_STRUCT_PTR(psOldArray, ui32Index);
-
-		eError = OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-				sizeof(struct sHandle) * HANDLE_BLOCK_SIZE,
-				psIndex->psHandle,
-				psIndex->hBlockAlloc);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "ReallocHandleArray: Couldn't free handle structures (%d)", eError));
-		}
-	}
-
-	
-	for(ui32Index = ui32OldCount; ui32Index < ui32NewCount; ui32Index += HANDLE_BLOCK_SIZE)
-	{
-		 
-		struct sHandleIndex *psIndex = INDEX_TO_INDEX_STRUCT_PTR(psNewArray, ui32Index);
-
-		eError = OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-				sizeof(struct sHandle) * HANDLE_BLOCK_SIZE,
-				(IMG_VOID **)&psIndex->psHandle,
-				&psIndex->hBlockAlloc,
-				"Memory Area");
-		if (eError != PVRSRV_OK)
-		{
-			psIndex->psHandle = IMG_NULL;
-			PVR_DPF((PVR_DBG_ERROR, "ReallocHandleArray: Couldn't allocate handle structures (%d)", eError));
-			eReturn = eError;
-		}
-		else
-		{
-			IMG_UINT32 ui32SubIndex;
-
-			psIndex->ui32FreeHandBlockCount = HANDLE_BLOCK_SIZE;
-
-			for(ui32SubIndex = 0; ui32SubIndex < HANDLE_BLOCK_SIZE; ui32SubIndex++)
-			{
-				struct sHandle *psHandle = psIndex->psHandle + ui32SubIndex;
-
-
-				psHandle->ui32Index = ui32SubIndex + ui32Index;
-				psHandle->eType = PVRSRV_HANDLE_TYPE_NONE;
-				psHandle->eInternalFlag = INTERNAL_HANDLE_FLAG_NONE;
-				psHandle->ui32NextIndexPlusOne  = 0;
-			}
-		}
-	}
-	if (eReturn != PVRSRV_OK)
-	{
-		goto error;
-	}
-
-#ifdef	DEBUG_MAX_HANDLE_COUNT
-	
-	if (ui32NewCount > DEBUG_MAX_HANDLE_COUNT)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "ReallocHandleArray: Max handle count (%u) reached", DEBUG_MAX_HANDLE_COUNT));
-		eReturn = PVRSRV_ERROR_OUT_OF_MEMORY;
-		goto error;
-	}
-#endif
-
-	if (psOldArray != IMG_NULL)
-	{
-		
-		eError = OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-			HANDLE_ARRAY_SIZE(ui32OldCount) * sizeof(struct sHandleIndex),
-			psOldArray,
-			hOldArrayBlockAlloc);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "ReallocHandleArray: Couldn't free old handle array (%d)", eError));
-		}
-	}
-
-	psBase->psHandleArray = psNewArray;
-	psBase->hArrayBlockAlloc = hNewArrayBlockAlloc;
-	psBase->ui32TotalHandCount = ui32NewCount;
-
-	if (ui32NewCount > ui32OldCount)
-	{
-		
-		PVR_ASSERT(psBase->ui32FreeHandCount + (ui32NewCount - ui32OldCount) > psBase->ui32FreeHandCount)
-
-		 
-		psBase->ui32FreeHandCount += (ui32NewCount - ui32OldCount);
-
-		
-		if (psBase->ui32FirstFreeIndex == 0)
-		{
-			PVR_ASSERT(psBase->ui32LastFreeIndexPlusOne == 0)
-
-			psBase->ui32FirstFreeIndex = ui32OldCount;
-		}
-		else
-		{
-			if (!psBase->bPurgingEnabled)
-			{
-				PVR_ASSERT(psBase->ui32LastFreeIndexPlusOne != 0)
-				PVR_ASSERT(INDEX_TO_HANDLE_STRUCT_PTR(psBase, psBase->ui32LastFreeIndexPlusOne - 1)->ui32NextIndexPlusOne == 0)
-
-				INDEX_TO_HANDLE_STRUCT_PTR(psBase, psBase->ui32LastFreeIndexPlusOne - 1)->ui32NextIndexPlusOne = ui32OldCount + 1;
-			}
-		}
-
-		if (!psBase->bPurgingEnabled)
-		{
-			psBase->ui32LastFreeIndexPlusOne = ui32NewCount;
-		}
-	}
-	else
-	{
-		PVR_ASSERT(ui32NewCount == 0 || psBase->bPurgingEnabled)
-		PVR_ASSERT(ui32NewCount == 0 || psBase->ui32FirstFreeIndex <= ui32NewCount)
-		PVR_ASSERT(psBase->ui32FreeHandCount - (ui32OldCount - ui32NewCount) < psBase->ui32FreeHandCount)
-
-		 
-		psBase->ui32FreeHandCount -= (ui32OldCount - ui32NewCount);
-
-		if (ui32NewCount == 0)
-		{
-			psBase->ui32FirstFreeIndex = 0;
-			psBase->ui32LastFreeIndexPlusOne = 0;
-		}
-	}
-
-	PVR_ASSERT(psBase->ui32FirstFreeIndex <= psBase->ui32TotalHandCount)
-
-	return PVRSRV_OK;
-
-error:
-	PVR_ASSERT(eReturn != PVRSRV_OK)
-
-	if (psNewArray != IMG_NULL)
-	{
-		
-		for(ui32Index = ui32OldCount; ui32Index < ui32NewCount; ui32Index += HANDLE_BLOCK_SIZE)
-		{
-			struct sHandleIndex *psIndex = INDEX_TO_INDEX_STRUCT_PTR(psNewArray, ui32Index);
-			if (psIndex->psHandle != IMG_NULL)
-			{
-				eError = OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-						sizeof(struct sHandle) * HANDLE_BLOCK_SIZE,
-						psIndex->psHandle,
-						psIndex->hBlockAlloc);
-				if (eError != PVRSRV_OK)
-				{
-					PVR_DPF((PVR_DBG_ERROR, "ReallocHandleArray: Couldn't free handle structures (%d)", eError));
-				}
-			}
-		}
-
-		
-		eError = OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-			HANDLE_ARRAY_SIZE(ui32NewCount) * sizeof(struct sHandleIndex),
-			psNewArray,
-			hNewArrayBlockAlloc);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "ReallocHandleArray: Couldn't free new handle array (%d)", eError));
-		}
-	}
-
-	return eReturn;
-}
-
-static PVRSRV_ERROR FreeHandleArray(PVRSRV_HANDLE_BASE *psBase)
-{
-	return ReallocHandleArray(psBase, 0);
-}
-
-static PVRSRV_ERROR FreeHandle(PVRSRV_HANDLE_BASE *psBase, struct sHandle *psHandle)
-{
-	HAND_KEY aKey;
-	IMG_UINT32 ui32Index = HANDLE_PTR_TO_INDEX(psHandle);
-	PVRSRV_ERROR eError;
-
-	
-	InitKey(aKey, psBase, psHandle->pvData, psHandle->eType, ParentIfPrivate(psHandle));
-
-	if (!TEST_ALLOC_FLAG(psHandle, PVRSRV_HANDLE_ALLOC_FLAG_MULTI) && !BATCHED_HANDLE_PARTIALLY_FREE(psHandle))
-	{
-#if defined (SUPPORT_SID_INTERFACE)
-		IMG_SID hHandle;
-		hHandle = (IMG_SID) HASH_Remove_Extended(psBase->psHashTab, aKey);
-#else
-		IMG_HANDLE hHandle;
-		hHandle = (IMG_HANDLE) HASH_Remove_Extended(psBase->psHashTab, aKey);
-
-#endif
-
-		PVR_ASSERT(hHandle != IMG_NULL)
-		PVR_ASSERT(hHandle == INDEX_TO_HANDLE(ui32Index))
-		PVR_UNREFERENCED_PARAMETER(hHandle);
-	}
-
-	
-	UnlinkFromParent(psBase, psHandle);
-
-	
-	eError = IterateOverChildren(psBase, psHandle, FreeHandle);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "FreeHandle: Error whilst freeing subhandles (%d)", eError));
-		return eError;
-	}
-
-	
-	psHandle->eType = PVRSRV_HANDLE_TYPE_NONE;
-
-	if (BATCHED_HANDLE(psHandle) && !BATCHED_HANDLE_PARTIALLY_FREE(psHandle))
-	{
-		 
-        SET_BATCHED_HANDLE_PARTIALLY_FREE(psHandle);
-		
-		return PVRSRV_OK;
-	}
-
-	
-	if (!psBase->bPurgingEnabled)
-	{
-		if (psBase->ui32FreeHandCount == 0)
-		{
-			PVR_ASSERT(psBase->ui32FirstFreeIndex == 0)
-			PVR_ASSERT(psBase->ui32LastFreeIndexPlusOne == 0)
-
-			psBase->ui32FirstFreeIndex =  ui32Index;
-		}
-		else
-		{
-			
-			PVR_ASSERT(psBase->ui32LastFreeIndexPlusOne != 0)
-			PVR_ASSERT(INDEX_TO_HANDLE_STRUCT_PTR(psBase, psBase->ui32LastFreeIndexPlusOne - 1)->ui32NextIndexPlusOne == 0)
-			INDEX_TO_HANDLE_STRUCT_PTR(psBase, psBase->ui32LastFreeIndexPlusOne - 1)->ui32NextIndexPlusOne =  ui32Index + 1;
-		}
-
-		PVR_ASSERT(psHandle->ui32NextIndexPlusOne == 0)
-
-		
-		psBase->ui32LastFreeIndexPlusOne = ui32Index + 1;
-	}
-
-	psBase->ui32FreeHandCount++;
-	INDEX_TO_FREE_HAND_BLOCK_COUNT(psBase, ui32Index)++;
-
-	PVR_ASSERT(INDEX_TO_FREE_HAND_BLOCK_COUNT(psBase, ui32Index)<= HANDLE_BLOCK_SIZE)
-
-#ifdef DEBUG
-	{
-		IMG_UINT32 ui32BlockedIndex;
-		IMG_UINT32 ui32FreeHandCount = 0;
-
-		for (ui32BlockedIndex = 0; ui32BlockedIndex < psBase->ui32TotalHandCount; ui32BlockedIndex += HANDLE_BLOCK_SIZE)
-		{
-			ui32FreeHandCount += INDEX_TO_FREE_HAND_BLOCK_COUNT(psBase, ui32BlockedIndex);
-		}
-
-		PVR_ASSERT(ui32FreeHandCount == psBase->ui32FreeHandCount)
-	}
-#endif
-
-	return PVRSRV_OK;
-}
-
-static PVRSRV_ERROR FreeAllHandles(PVRSRV_HANDLE_BASE *psBase)
-{
-	IMG_UINT32 i;
-	PVRSRV_ERROR eError = PVRSRV_OK;
-
-	if (psBase->ui32FreeHandCount == psBase->ui32TotalHandCount)
-	{
-		return eError;
-	}
-
-	for (i = 0; i < psBase->ui32TotalHandCount; i++)
-	{
-		struct sHandle *psHandle;
-
-		psHandle = INDEX_TO_HANDLE_STRUCT_PTR(psBase, i);
-
-		if (psHandle->eType != PVRSRV_HANDLE_TYPE_NONE)
-		{
-			eError = FreeHandle(psBase, psHandle);
-			if (eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "FreeAllHandles: FreeHandle failed (%d)", eError));
-				break;
-			}
-
-			
-			if (psBase->ui32FreeHandCount == psBase->ui32TotalHandCount)
-			{
-				break;
-			}
-		}
-	}
-
-	return eError;
-}
-
-static PVRSRV_ERROR FreeHandleBase(PVRSRV_HANDLE_BASE *psBase)
-{
-	PVRSRV_ERROR eError;
-
-	if (HANDLES_BATCHED(psBase))
-	{
-		PVR_DPF((PVR_DBG_WARNING, "FreeHandleBase: Uncommitted/Unreleased handle batch"));
-		PVRSRVReleaseHandleBatch(psBase);
-	}
-
-	
-	eError = FreeAllHandles(psBase);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "FreeHandleBase: Couldn't free handles (%d)", eError));
-		return eError;
-	}
-
-	
-	eError = FreeHandleArray(psBase);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "FreeHandleBase: Couldn't free handle array (%d)", eError));
-		return eError;
-	}
-
-	if (psBase->psHashTab != IMG_NULL)
-	{
-		
-		HASH_Delete(psBase->psHashTab);
-	}
-
-	eError = OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-		sizeof(*psBase),
-		psBase,
-		psBase->hBaseBlockAlloc);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "FreeHandleBase: Couldn't free handle base (%d)", eError));
-		return eError;
-	}
-
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(FindHandle)
-#endif
-static INLINE
-#if defined (SUPPORT_SID_INTERFACE)
-IMG_SID FindHandle(PVRSRV_HANDLE_BASE *psBase, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, IMG_SID hParent)
-#else
-IMG_HANDLE FindHandle(PVRSRV_HANDLE_BASE *psBase, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, IMG_HANDLE hParent)
-#endif
-{
-	HAND_KEY aKey;
-
-	PVR_ASSERT(eType != PVRSRV_HANDLE_TYPE_NONE)
-
-	InitKey(aKey, psBase, pvData, eType, hParent);
-
-#if defined (SUPPORT_SID_INTERFACE)
-	return (IMG_SID) HASH_Retrieve_Extended(psBase->psHashTab, aKey);
-#else
-	return (IMG_HANDLE) HASH_Retrieve_Extended(psBase->psHashTab, aKey);
-#endif
-}
-
-static PVRSRV_ERROR IncreaseHandleArraySize(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32Delta)
-{
-	PVRSRV_ERROR eError;
-	IMG_UINT32 ui32DeltaAdjusted = ROUND_UP_TO_MULTIPLE_OF_BLOCK_SIZE(ui32Delta);
-	IMG_UINT32 ui32NewTotalHandCount = psBase->ui32TotalHandCount + ui32DeltaAdjusted;
-;
-
-	PVR_ASSERT(ui32Delta != 0)
-
-	
-	if (ui32NewTotalHandCount > psBase->ui32MaxIndexPlusOne || ui32NewTotalHandCount <= psBase->ui32TotalHandCount)
-	{
-		ui32NewTotalHandCount = psBase->ui32MaxIndexPlusOne;
-
-		ui32DeltaAdjusted = ui32NewTotalHandCount - psBase->ui32TotalHandCount;
-
-		if (ui32DeltaAdjusted < ui32Delta)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "IncreaseHandleArraySize: Maximum handle limit reached (%d)", psBase->ui32MaxIndexPlusOne));
-			return PVRSRV_ERROR_OUT_OF_MEMORY;
-		}
-	}
-
-	PVR_ASSERT(ui32DeltaAdjusted >= ui32Delta)
-
-	
-	eError = ReallocHandleArray(psBase, ui32NewTotalHandCount);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "IncreaseHandleArraySize: ReallocHandleArray failed (%d)", eError));
-		return eError;
-	}
-
-	return PVRSRV_OK;
-}
-
-static PVRSRV_ERROR EnsureFreeHandles(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32Free)
-{
-	PVRSRV_ERROR eError;
-
-	if (ui32Free > psBase->ui32FreeHandCount)
-	{
-		IMG_UINT32 ui32FreeHandDelta = ui32Free - psBase->ui32FreeHandCount;
-		eError = IncreaseHandleArraySize(psBase, ui32FreeHandDelta);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "EnsureFreeHandles: Couldn't allocate %u handles to ensure %u free handles (IncreaseHandleArraySize failed with error %d)", ui32FreeHandDelta, ui32Free, eError));
-
-			return eError;
-		}
-	}
-
-	return PVRSRV_OK;
-}
-
-#if defined (SUPPORT_SID_INTERFACE)
-static PVRSRV_ERROR AllocHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag, IMG_SID hParent)
-#else
-static PVRSRV_ERROR AllocHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag, IMG_HANDLE hParent)
-#endif
-{
-	IMG_UINT32 ui32NewIndex = DEFAULT_MAX_INDEX_PLUS_ONE;
-	struct sHandle *psNewHandle = IMG_NULL;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID hHandle;
-#else
-	IMG_HANDLE hHandle;
-#endif
-	HAND_KEY aKey;
-	PVRSRV_ERROR eError;
-
-	
-	PVR_ASSERT(eType != PVRSRV_HANDLE_TYPE_NONE)
-	PVR_ASSERT(psBase != IMG_NULL)
-	PVR_ASSERT(psBase->psHashTab != IMG_NULL)
-
-	if (!TEST_FLAG(eFlag, PVRSRV_HANDLE_ALLOC_FLAG_MULTI))
-	{
-		
-		PVR_ASSERT(FindHandle(psBase, pvData, eType, hParent) == IMG_NULL)
-	}
-
-	if (psBase->ui32FreeHandCount == 0 && HANDLES_BATCHED(psBase))
-	{
-		 PVR_DPF((PVR_DBG_WARNING, "AllocHandle: Handle batch size (%u) was too small, allocating additional space", psBase->ui32HandBatchSize)); 
-	}
-
-	
-	eError = EnsureFreeHandles(psBase, 1);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "AllocHandle: EnsureFreeHandles failed (%d)", eError));
-		return eError;
-	}
-	PVR_ASSERT(psBase->ui32FreeHandCount != 0)
-
-	if (!psBase->bPurgingEnabled)
-	{
-		
-		ui32NewIndex = psBase->ui32FirstFreeIndex;
-
-		
-		psNewHandle = INDEX_TO_HANDLE_STRUCT_PTR(psBase, ui32NewIndex);
-	}
-	else
-	{
-		IMG_UINT32 ui32BlockedIndex;
-
-		
-		
-		PVR_ASSERT((psBase->ui32FirstFreeIndex % HANDLE_BLOCK_SIZE) == 0)
-
-		for (ui32BlockedIndex = ROUND_DOWN_TO_MULTIPLE_OF_BLOCK_SIZE(psBase->ui32FirstFreeIndex); ui32BlockedIndex < psBase->ui32TotalHandCount; ui32BlockedIndex += HANDLE_BLOCK_SIZE)
-		{
-			struct sHandleIndex *psIndex = BASE_AND_INDEX_TO_INDEX_STRUCT_PTR(psBase, ui32BlockedIndex);
-
-			if (psIndex->ui32FreeHandBlockCount == 0)
-			{
-				continue;
-			}
-
-			for (ui32NewIndex = ui32BlockedIndex; ui32NewIndex < ui32BlockedIndex + HANDLE_BLOCK_SIZE; ui32NewIndex++)
-			{
-				psNewHandle = INDEX_TO_HANDLE_STRUCT_PTR(psBase, ui32NewIndex);
-				if (HANDLE_STRUCT_IS_FREE(psNewHandle))
-				{
-					break;
-				}
-			}
-		}
-		psBase->ui32FirstFreeIndex = 0;
-		PVR_ASSERT(ui32NewIndex < psBase->ui32TotalHandCount)
-	}
-	PVR_ASSERT(psNewHandle != IMG_NULL)
-
-	
-	hHandle = INDEX_TO_HANDLE(ui32NewIndex);
-
-	
-	if (!TEST_FLAG(eFlag, PVRSRV_HANDLE_ALLOC_FLAG_MULTI))
-	{
-		
-		InitKey(aKey, psBase, pvData, eType, hParent);
-
-		
-		if (!HASH_Insert_Extended(psBase->psHashTab, aKey, (IMG_UINTPTR_T)hHandle))
-		{
-			PVR_DPF((PVR_DBG_ERROR, "AllocHandle: Couldn't add handle to hash table"));
-
-			return PVRSRV_ERROR_UNABLE_TO_ADD_HANDLE;
-		}
-	}
-
-	psBase->ui32FreeHandCount--;
-
-	PVR_ASSERT(INDEX_TO_FREE_HAND_BLOCK_COUNT(psBase, ui32NewIndex) <= HANDLE_BLOCK_SIZE)
-	PVR_ASSERT(INDEX_TO_FREE_HAND_BLOCK_COUNT(psBase, ui32NewIndex) > 0)
-
-	INDEX_TO_FREE_HAND_BLOCK_COUNT(psBase, ui32NewIndex)--;
-
-	
-	if (!psBase->bPurgingEnabled)
-	{
-		
-		if (psBase->ui32FreeHandCount == 0)
-		{
-			PVR_ASSERT(psBase->ui32FirstFreeIndex == ui32NewIndex)
-			PVR_ASSERT(psBase->ui32LastFreeIndexPlusOne == (ui32NewIndex + 1))
-
-			psBase->ui32LastFreeIndexPlusOne = 0;
-			psBase->ui32FirstFreeIndex = 0;
-		}
-		else
-		{
-			
-			psBase->ui32FirstFreeIndex = (psNewHandle->ui32NextIndexPlusOne == 0) ?
-				ui32NewIndex + 1 :
-				psNewHandle->ui32NextIndexPlusOne - 1;
-		}
-	}
-
-	
-	PVR_ASSERT(psNewHandle->ui32Index == ui32NewIndex)
-
-	 
-	psNewHandle->eType = eType;
-	psNewHandle->pvData = pvData;
-	psNewHandle->eInternalFlag = INTERNAL_HANDLE_FLAG_NONE;
-	psNewHandle->eFlag = eFlag;
-
-	InitParentList(psNewHandle);
-#if defined(DEBUG)
-	PVR_ASSERT(NoChildren(psNewHandle))
-#endif
-
-	InitChildEntry(psNewHandle);
-#if defined(DEBUG)
-	PVR_ASSERT(NoParent(psNewHandle))
-#endif
-
-	if (HANDLES_BATCHED(psBase))
-	{
-		
-		psNewHandle->ui32NextIndexPlusOne = psBase->ui32FirstBatchIndexPlusOne;
-
-		psBase->ui32FirstBatchIndexPlusOne = ui32NewIndex + 1;
-
-		 
-		SET_BATCHED_HANDLE(psNewHandle);
-	}
-	else
-	{
-		psNewHandle->ui32NextIndexPlusOne = 0;
-	}
-
-	
-	*phHandle = hHandle;
-
-	return PVRSRV_OK;
-}
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR PVRSRVAllocHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag)
-#else
-PVRSRV_ERROR PVRSRVAllocHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag)
-#endif
-{
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID hHandle;
-#else
-	IMG_HANDLE hHandle;
-#endif
-	PVRSRV_ERROR eError;
-
-#if defined (SUPPORT_SID_INTERFACE)
-	*phHandle = 0;
-#else
-	*phHandle = IMG_NULL;
-#endif
-
-	if (HANDLES_BATCHED(psBase))
-	{
-		
-		psBase->ui32BatchHandAllocFailures++;
-	}
-
-	
-	PVR_ASSERT(eType != PVRSRV_HANDLE_TYPE_NONE)
-
-	if (!TEST_FLAG(eFlag, PVRSRV_HANDLE_ALLOC_FLAG_MULTI))
-	{
-		
-		hHandle = FindHandle(psBase, pvData, eType, IMG_NULL);
-#if defined (SUPPORT_SID_INTERFACE)
-		if (hHandle != 0)
-#else
-		if (hHandle != IMG_NULL)
-#endif
-		{
-			struct sHandle *psHandle;
-
-			eError = GetHandleStructure(psBase, &psHandle, hHandle, eType);
-			if (eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "PVRSRVAllocHandle: Lookup of existing handle failed"));
-				return eError;
-			}
-
-			
-			if (TEST_FLAG(psHandle->eFlag & eFlag, PVRSRV_HANDLE_ALLOC_FLAG_SHARED))
-			{
-				*phHandle = hHandle;
-				eError = PVRSRV_OK;
-				goto exit_ok;
-			}
-			
-#if defined (SUPPORT_SID_INTERFACE)
-			PVR_DBG_BREAK
-#endif
-			return PVRSRV_ERROR_HANDLE_NOT_SHAREABLE;
-		}
-	}
-
-	eError = AllocHandle(psBase, phHandle, pvData, eType, eFlag, IMG_NULL);
-	
-exit_ok:
-	if (HANDLES_BATCHED(psBase) && (eError == PVRSRV_OK))
-	{
-		psBase->ui32BatchHandAllocFailures--;
-	}
-
-	return eError;
-}
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR PVRSRVAllocSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag, IMG_SID hParent)
-#else
-PVRSRV_ERROR PVRSRVAllocSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag, IMG_HANDLE hParent)
-#endif
-{
-	struct sHandle *psPHand;
-	struct sHandle *psCHand;
-	PVRSRV_ERROR eError;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID hParentKey;
-	IMG_SID hHandle;
-
-	*phHandle = 0;
-#else
-	IMG_HANDLE hParentKey;
-	IMG_HANDLE hHandle;
-
-	*phHandle = IMG_NULL;
-#endif
-
-	if (HANDLES_BATCHED(psBase))
-	{
-		
-		psBase->ui32BatchHandAllocFailures++;
-	}
-
-	
-	PVR_ASSERT(eType != PVRSRV_HANDLE_TYPE_NONE)
-
-	hParentKey = TEST_FLAG(eFlag, PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE) ?
-			hParent : IMG_NULL;
-
-	
-	eError = GetHandleStructure(psBase, &psPHand, hParent, PVRSRV_HANDLE_TYPE_NONE);
-	if (eError != PVRSRV_OK)
-	{
-		return eError;
-	}
-
-	if (!TEST_FLAG(eFlag, PVRSRV_HANDLE_ALLOC_FLAG_MULTI))
-	{
-		
-		hHandle = FindHandle(psBase, pvData, eType, hParentKey);
-#if defined (SUPPORT_SID_INTERFACE)
-		if (hHandle != 0)
-#else
-		if (hHandle != IMG_NULL)
-#endif
-		{
-			struct sHandle *psCHandle;
-			PVRSRV_ERROR eErr;
-
-			eErr = GetHandleStructure(psBase, &psCHandle, hHandle, eType);
-			if (eErr != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "PVRSRVAllocSubHandle: Lookup of existing handle failed"));
-				return eErr;
-			}
-
-			PVR_ASSERT(hParentKey != IMG_NULL && ParentHandle(HANDLE_TO_HANDLE_STRUCT_PTR(psBase, hHandle)) == hParent)
-
-			
-			if (TEST_FLAG(psCHandle->eFlag & eFlag, PVRSRV_HANDLE_ALLOC_FLAG_SHARED) && ParentHandle(HANDLE_TO_HANDLE_STRUCT_PTR(psBase, hHandle)) == hParent)
-			{
-				*phHandle = hHandle;
-				goto exit_ok;
-			}
-#if defined (SUPPORT_SID_INTERFACE)
-			PVR_DBG_BREAK
-#endif
-			return PVRSRV_ERROR_HANDLE_NOT_SHAREABLE;
-		}
-	}
-
-	eError = AllocHandle(psBase, &hHandle, pvData, eType, eFlag, hParentKey);
-	if (eError != PVRSRV_OK)
-	{
-		return eError;
-	}
-
-	
-	psPHand = HANDLE_TO_HANDLE_STRUCT_PTR(psBase, hParent);
-
-	psCHand = HANDLE_TO_HANDLE_STRUCT_PTR(psBase, hHandle);
-
-	AdoptChild(psBase, psPHand, psCHand);
-
-	*phHandle = hHandle;
-
-exit_ok:
-	if (HANDLES_BATCHED(psBase))
-	{
-		psBase->ui32BatchHandAllocFailures--;
-	}
-
-	return PVRSRV_OK;
-}
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR PVRSRVFindHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType)
-#else
-PVRSRV_ERROR PVRSRVFindHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType)
-#endif
-{
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID hHandle;
-#else
-	IMG_HANDLE hHandle;
-#endif
-
-	PVR_ASSERT(eType != PVRSRV_HANDLE_TYPE_NONE)
-
-	
-#if defined (SUPPORT_SID_INTERFACE)
-	hHandle = (IMG_SID) FindHandle(psBase, pvData, eType, IMG_NULL);
-#else
-	hHandle = (IMG_HANDLE) FindHandle(psBase, pvData, eType, IMG_NULL);
-#endif
-	if (hHandle == IMG_NULL)
-	{
-		return PVRSRV_ERROR_HANDLE_NOT_FOUND;
-	}
-
-	*phHandle = hHandle;
-
-	return PVRSRV_OK;
-}
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR PVRSRVLookupHandleAnyType(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, PVRSRV_HANDLE_TYPE *peType, IMG_SID hHandle)
-#else
-PVRSRV_ERROR PVRSRVLookupHandleAnyType(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, PVRSRV_HANDLE_TYPE *peType, IMG_HANDLE hHandle)
-#endif
-{
-	struct sHandle *psHandle;
-	PVRSRV_ERROR eError;
-
-	eError = GetHandleStructure(psBase, &psHandle, hHandle, PVRSRV_HANDLE_TYPE_NONE);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVLookupHandleAnyType: Error looking up handle (%d)", eError));
-#if defined (SUPPORT_SID_INTERFACE)
-		PVR_DBG_BREAK
-#endif
-		return eError;
-	}
-
-	*ppvData = psHandle->pvData;
-	*peType = psHandle->eType;
-
-	return PVRSRV_OK;
-}
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR PVRSRVLookupHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType)
-#else
-PVRSRV_ERROR PVRSRVLookupHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType)
-#endif
-{
-	struct sHandle *psHandle;
-	PVRSRV_ERROR eError;
-
-	PVR_ASSERT(eType != PVRSRV_HANDLE_TYPE_NONE)
-#if defined (SUPPORT_SID_INTERFACE)
-	PVR_ASSERT(hHandle != 0)
-#endif
-
-	eError = GetHandleStructure(psBase, &psHandle, hHandle, eType);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVLookupHandle: Error looking up handle (%d)", eError));
-#if defined (SUPPORT_SID_INTERFACE)
-		PVR_DBG_BREAK
-#endif
-		return eError;
-	}
-
-	*ppvData = psHandle->pvData;
-
-	return PVRSRV_OK;
-}
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR PVRSRVLookupSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType, IMG_SID hAncestor)
-#else
-PVRSRV_ERROR PVRSRVLookupSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType, IMG_HANDLE hAncestor)
-#endif
-{
-	struct sHandle *psPHand;
-	struct sHandle *psCHand;
-	PVRSRV_ERROR eError;
-
-	PVR_ASSERT(eType != PVRSRV_HANDLE_TYPE_NONE)
-#if defined (SUPPORT_SID_INTERFACE)
-	PVR_ASSERT(hHandle != 0)
-#endif
-
-	eError = GetHandleStructure(psBase, &psCHand, hHandle, eType);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVLookupSubHandle: Error looking up subhandle (%d)", eError));
-		return eError;
-	}
-
-	
-	for (psPHand = psCHand; ParentHandle(psPHand) != hAncestor; )
-	{
-		eError = GetHandleStructure(psBase, &psPHand, ParentHandle(psPHand), PVRSRV_HANDLE_TYPE_NONE);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "PVRSRVLookupSubHandle: Subhandle doesn't belong to given ancestor"));
-			return PVRSRV_ERROR_INVALID_SUBHANDLE;
-		}
-	}
-
-	*ppvData = psCHand->pvData;
-
-	return PVRSRV_OK;
-}
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR PVRSRVGetParentHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phParent, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType)
-#else
-PVRSRV_ERROR PVRSRVGetParentHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *phParent, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType)
-#endif
-{
-	struct sHandle *psHandle;
-	PVRSRV_ERROR eError;
-
-	PVR_ASSERT(eType != PVRSRV_HANDLE_TYPE_NONE)
-
-	eError = GetHandleStructure(psBase, &psHandle, hHandle, eType);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVGetParentHandle: Error looking up subhandle (%d)", eError));
-		return eError;
-	}
-
-	*phParent = ParentHandle(psHandle);
-
-	return PVRSRV_OK;
-}
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR PVRSRVLookupAndReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType)
-#else
-PVRSRV_ERROR PVRSRVLookupAndReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType)
-#endif
-{
-	struct sHandle *psHandle;
-	PVRSRV_ERROR eError;
-
-	PVR_ASSERT(eType != PVRSRV_HANDLE_TYPE_NONE)
-
-	eError = GetHandleStructure(psBase, &psHandle, hHandle, eType);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVLookupAndReleaseHandle: Error looking up handle (%d)", eError));
-#if defined (SUPPORT_SID_INTERFACE)
-		PVR_DBG_BREAK
-#endif
-		return eError;
-	}
-
-	*ppvData = psHandle->pvData;
-
-	eError = FreeHandle(psBase, psHandle);
-
-	return eError;
-}
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR PVRSRVReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType)
-#else
-PVRSRV_ERROR PVRSRVReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType)
-#endif
-{
-	struct sHandle *psHandle;
-	PVRSRV_ERROR eError;
-
-	PVR_ASSERT(eType != PVRSRV_HANDLE_TYPE_NONE)
-
-	eError = GetHandleStructure(psBase, &psHandle, hHandle, eType);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVReleaseHandle: Error looking up handle (%d)", eError));
-		return eError;
-	}
-
-	eError = FreeHandle(psBase, psHandle);
-
-	return eError;
-}
-
-PVRSRV_ERROR PVRSRVNewHandleBatch(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32BatchSize)
-{
-	PVRSRV_ERROR eError;
-
-	if (HANDLES_BATCHED(psBase))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVNewHandleBatch: There is a handle batch already in use (size %u)", psBase->ui32HandBatchSize));
-		return  PVRSRV_ERROR_HANDLE_BATCH_IN_USE;
-	}
-
-	if (ui32BatchSize == 0)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVNewHandleBatch: Invalid batch size (%u)", ui32BatchSize));
-		return  PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	eError = EnsureFreeHandles(psBase, ui32BatchSize);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVNewHandleBatch: EnsureFreeHandles failed (error %d)", eError));
-		return eError;
-	}
-
-	psBase->ui32HandBatchSize = ui32BatchSize;
-
-	
-	psBase->ui32TotalHandCountPreBatch = psBase->ui32TotalHandCount;
-
-	PVR_ASSERT(psBase->ui32BatchHandAllocFailures == 0)
-
-	PVR_ASSERT(psBase->ui32FirstBatchIndexPlusOne == 0)
-
-	PVR_ASSERT(HANDLES_BATCHED(psBase))
-
-	return PVRSRV_OK;
-}
-
-static PVRSRV_ERROR PVRSRVHandleBatchCommitOrRelease(PVRSRV_HANDLE_BASE *psBase, IMG_BOOL bCommit)
-{
-
-	IMG_UINT32 ui32IndexPlusOne;
-	IMG_BOOL bCommitBatch = bCommit;
-
-	if (!HANDLES_BATCHED(psBase))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVHandleBatchCommitOrRelease: There is no handle batch"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-
-	}
-
-	if (psBase->ui32BatchHandAllocFailures != 0)
-	{
-		if (bCommit)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "PVRSRVHandleBatchCommitOrRelease: Attempting to commit batch with handle allocation failures."));
-		}
-		bCommitBatch = IMG_FALSE;
-	}
-	
-	PVR_ASSERT(psBase->ui32BatchHandAllocFailures == 0 || !bCommit)
-
-	ui32IndexPlusOne = psBase->ui32FirstBatchIndexPlusOne;
-	while(ui32IndexPlusOne != 0)
-	{
-		struct sHandle *psHandle = INDEX_TO_HANDLE_STRUCT_PTR(psBase, ui32IndexPlusOne - 1);
-		IMG_UINT32 ui32NextIndexPlusOne = psHandle->ui32NextIndexPlusOne;
-		PVR_ASSERT(BATCHED_HANDLE(psHandle))
-
-		psHandle->ui32NextIndexPlusOne = 0;
-
-		if (!bCommitBatch || BATCHED_HANDLE_PARTIALLY_FREE(psHandle))
-		{
-			PVRSRV_ERROR eError;
-
-			
-			if (!BATCHED_HANDLE_PARTIALLY_FREE(psHandle))
-			{
-				 
-				SET_UNBATCHED_HANDLE(psHandle);  
-			}
-
-			eError = FreeHandle(psBase, psHandle);
-			if (eError != PVRSRV_OK)
-			{
-				 PVR_DPF((PVR_DBG_ERROR, "PVRSRVHandleBatchCommitOrRelease: Error freeing handle (%d)", eError));
-			}
-			PVR_ASSERT(eError == PVRSRV_OK)
-		}
-		else
-		{
-			 
-			SET_UNBATCHED_HANDLE(psHandle);
-		}
-
-		ui32IndexPlusOne = ui32NextIndexPlusOne;
-	}
-
-#ifdef DEBUG
-	if (psBase->ui32TotalHandCountPreBatch != psBase->ui32TotalHandCount)
-	{
-		IMG_UINT32 ui32Delta = psBase->ui32TotalHandCount - psBase->ui32TotalHandCountPreBatch;
-
-		PVR_ASSERT(psBase->ui32TotalHandCount > psBase->ui32TotalHandCountPreBatch)
-
-		PVR_DPF((PVR_DBG_WARNING, "PVRSRVHandleBatchCommitOrRelease: The batch size was too small.  Batch size was %u, but needs to be %u", psBase->ui32HandBatchSize,  psBase->ui32HandBatchSize + ui32Delta));
-
-	}
-#endif
-
-	psBase->ui32HandBatchSize = 0;
-	psBase->ui32FirstBatchIndexPlusOne = 0;
-	psBase->ui32TotalHandCountPreBatch = 0;
-	psBase->ui32BatchHandAllocFailures = 0;
-
-	if (psBase->ui32BatchHandAllocFailures != 0 && bCommit)
-	{
-		PVR_ASSERT(!bCommitBatch)
-
-		return PVRSRV_ERROR_HANDLE_BATCH_COMMIT_FAILURE;
-	}
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PVRSRVCommitHandleBatch(PVRSRV_HANDLE_BASE *psBase)
-{
-	return PVRSRVHandleBatchCommitOrRelease(psBase, IMG_TRUE);
-}
-
-IMG_VOID PVRSRVReleaseHandleBatch(PVRSRV_HANDLE_BASE *psBase)
-{
-	(IMG_VOID) PVRSRVHandleBatchCommitOrRelease(psBase, IMG_FALSE);
-}
-
-PVRSRV_ERROR PVRSRVSetMaxHandle(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32MaxHandle)
-{
-	IMG_UINT32 ui32MaxHandleRounded;
-
-	if (HANDLES_BATCHED(psBase))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVSetMaxHandle: Limit cannot be set whilst in batch mode"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	
-	if (ui32MaxHandle  == 0 || ui32MaxHandle > DEFAULT_MAX_HANDLE)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVSetMaxHandle: Limit must be between %u and %u, inclusive", 0, DEFAULT_MAX_HANDLE));
-
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	
-	if (psBase->ui32TotalHandCount != 0)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVSetMaxHandle: Limit cannot be set because handles have already been allocated"));
-
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	ui32MaxHandleRounded = ROUND_DOWN_TO_MULTIPLE_OF_BLOCK_SIZE(ui32MaxHandle);
-
-	
-	if (ui32MaxHandleRounded != 0 && ui32MaxHandleRounded < psBase->ui32MaxIndexPlusOne)
-	{
-		psBase->ui32MaxIndexPlusOne = ui32MaxHandleRounded;
-	}
-
-	PVR_ASSERT(psBase->ui32MaxIndexPlusOne != 0)
-	PVR_ASSERT(psBase->ui32MaxIndexPlusOne <= DEFAULT_MAX_INDEX_PLUS_ONE)
-	PVR_ASSERT((psBase->ui32MaxIndexPlusOne % HANDLE_BLOCK_SIZE) == 0)
-
-	return PVRSRV_OK;
-}
-
-IMG_UINT32 PVRSRVGetMaxHandle(PVRSRV_HANDLE_BASE *psBase)
-{
-	return psBase->ui32MaxIndexPlusOne;
-}
-
-PVRSRV_ERROR PVRSRVEnableHandlePurging(PVRSRV_HANDLE_BASE *psBase)
-{
-	if (psBase->bPurgingEnabled)
-	{
-		PVR_DPF((PVR_DBG_WARNING, "PVRSRVEnableHandlePurging: Purging already enabled"));
-		return PVRSRV_OK;
-	}
-
-	
-	if (psBase->ui32TotalHandCount != 0)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVEnableHandlePurging: Handles have already been allocated"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psBase->bPurgingEnabled = IMG_TRUE;
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PVRSRVPurgeHandles(PVRSRV_HANDLE_BASE *psBase)
-{
-	IMG_UINT32 ui32BlockIndex;
-	IMG_UINT32 ui32NewHandCount;
-
-	if (!psBase->bPurgingEnabled)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVPurgeHandles: Purging not enabled for this handle base"));
-		return PVRSRV_ERROR_NOT_SUPPORTED;
-	}
-
-	if (HANDLES_BATCHED(psBase))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVPurgeHandles: Purging not allowed whilst in batch mode"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	PVR_ASSERT((psBase->ui32TotalHandCount % HANDLE_BLOCK_SIZE) == 0)
-
-	for (ui32BlockIndex = INDEX_TO_BLOCK_INDEX(psBase->ui32TotalHandCount); ui32BlockIndex != 0; ui32BlockIndex--)
-	{
-		if (psBase->psHandleArray[ui32BlockIndex - 1].ui32FreeHandBlockCount != HANDLE_BLOCK_SIZE)
-		{
-			break;
-		}
-	}
-	ui32NewHandCount = BLOCK_INDEX_TO_INDEX(ui32BlockIndex);
-
-	
-	if (ui32NewHandCount <= (psBase->ui32TotalHandCount/2))
-	{
-		PVRSRV_ERROR eError;
-
-		
-
-		eError = ReallocHandleArray(psBase, ui32NewHandCount);
-		if (eError != PVRSRV_OK)
-		{
-			return eError;
-		}
-	}
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PVRSRVAllocHandleBase(PVRSRV_HANDLE_BASE **ppsBase)
-{
-	PVRSRV_HANDLE_BASE *psBase;
-	IMG_HANDLE hBlockAlloc;
-	PVRSRV_ERROR eError;
-
-	eError = OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-		sizeof(*psBase),
-		(IMG_PVOID *)&psBase,
-		&hBlockAlloc,
-		"Handle Base");
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVAllocHandleBase: Couldn't allocate handle base (%d)", eError));
-		return eError;
-	}
-	OSMemSet(psBase, 0, sizeof(*psBase));
-
-	
-	psBase->psHashTab = HASH_Create_Extended(HANDLE_HASH_TAB_INIT_SIZE, sizeof(HAND_KEY), HASH_Func_Default, HASH_Key_Comp_Default);
-	if (psBase->psHashTab == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVAllocHandleBase: Couldn't create data pointer hash table\n"));
-		(IMG_VOID)PVRSRVFreeHandleBase(psBase);
-		return PVRSRV_ERROR_UNABLE_TO_CREATE_HASH_TABLE;
-	}
-
-	psBase->hBaseBlockAlloc = hBlockAlloc;
-
-	psBase->ui32MaxIndexPlusOne = DEFAULT_MAX_INDEX_PLUS_ONE;
-
-	*ppsBase = psBase;
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PVRSRVFreeHandleBase(PVRSRV_HANDLE_BASE *psBase)
-{
-	PVRSRV_ERROR eError;
-
-	PVR_ASSERT(psBase != gpsKernelHandleBase)
-
-	eError = FreeHandleBase(psBase);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVFreeHandleBase: FreeHandleBase failed (%d)", eError));
-	}
-
-	return eError;
-}
-
-PVRSRV_ERROR PVRSRVHandleInit(IMG_VOID)
-{
-	PVRSRV_ERROR eError;
-
-	PVR_ASSERT(gpsKernelHandleBase == IMG_NULL)
-
-	eError = PVRSRVAllocHandleBase(&gpsKernelHandleBase);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVHandleInit: PVRSRVAllocHandleBase failed (%d)", eError));
-		goto error;
-	}
-
-	eError = PVRSRVEnableHandlePurging(gpsKernelHandleBase);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVHandleInit: PVRSRVEnableHandlePurging failed (%d)", eError));
-		goto error;
-	}
-
-	return PVRSRV_OK;
-error:
-	(IMG_VOID) PVRSRVHandleDeInit();
-	return eError;
-}
-
-PVRSRV_ERROR PVRSRVHandleDeInit(IMG_VOID)
-{
-	PVRSRV_ERROR eError = PVRSRV_OK;
-
-	if (gpsKernelHandleBase != IMG_NULL)
-	{
-		eError = FreeHandleBase(gpsKernelHandleBase);
-		if (eError == PVRSRV_OK)
-		{
-			gpsKernelHandleBase = IMG_NULL;
-		}
-		else
-		{
-			PVR_DPF((PVR_DBG_ERROR, "PVRSRVHandleDeInit: FreeHandleBase failed (%d)", eError));
-		}
-	}
-
-	return eError;
-}
-#else
-#endif	
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/hash.c b/drivers/staging/cdv/pvr/services4/srvkm/common/hash.c
deleted file mode 100644
index e5dd781..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/hash.c
+++ /dev/null
@@ -1,506 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "pvr_debug.h"
-#include "img_defs.h"
-#include "services.h"
-#include "servicesint.h"
-#include "hash.h"
-#include "osfunc.h"
-
-#define PRIVATE_MAX(a,b) ((a)>(b)?(a):(b))
-
-#define	KEY_TO_INDEX(pHash, key, uSize) \
-	((pHash)->pfnHashFunc((pHash)->uKeySize, (key), (uSize)) % (uSize))
-
-#define	KEY_COMPARE(pHash, pKey1, pKey2) \
-	((pHash)->pfnKeyComp((pHash)->uKeySize, (pKey1), (pKey2)))
-
-struct _BUCKET_
-{
-	
-	struct _BUCKET_ *pNext;
-
-	
-	IMG_UINTPTR_T v;
-
-	
-	IMG_UINTPTR_T k[];		 
-};
-typedef struct _BUCKET_ BUCKET;
-
-struct _HASH_TABLE_
-{
-	
-	BUCKET **ppBucketTable;
-
-	
-	IMG_UINT32 uSize;
-
-	
-	IMG_UINT32 uCount;
-
-	
-	IMG_UINT32 uMinimumSize;
-
-	
-	IMG_UINT32 uKeySize;
-
-	
-	HASH_FUNC *pfnHashFunc;
-
-	
-	HASH_KEY_COMP *pfnKeyComp;
-};
-
-IMG_UINT32
-HASH_Func_Default (IMG_SIZE_T uKeySize, IMG_VOID *pKey, IMG_UINT32 uHashTabLen)
-{
-	IMG_UINTPTR_T *p = (IMG_UINTPTR_T *)pKey;
-	IMG_UINT32 uKeyLen = (IMG_UINT32)(uKeySize / sizeof(IMG_UINTPTR_T));
-	IMG_UINT32 ui;
-	IMG_UINT32 uHashKey = 0;
-
-	PVR_UNREFERENCED_PARAMETER(uHashTabLen);
-
-	PVR_ASSERT((uKeySize % sizeof(IMG_UINTPTR_T)) == 0);
-
-	for (ui = 0; ui < uKeyLen; ui++)
-	{
-		IMG_UINT32 uHashPart = (IMG_UINT32)*p++;
-
-		uHashPart += (uHashPart << 12);
-		uHashPart ^= (uHashPart >> 22);
-		uHashPart += (uHashPart << 4);
-		uHashPart ^= (uHashPart >> 9);
-		uHashPart += (uHashPart << 10);
-		uHashPart ^= (uHashPart >> 2);
-		uHashPart += (uHashPart << 7);
-		uHashPart ^= (uHashPart >> 12);
-
-		uHashKey += uHashPart;
-	}
-
-	return uHashKey;
-}
-
-IMG_BOOL
-HASH_Key_Comp_Default (IMG_SIZE_T uKeySize, IMG_VOID *pKey1, IMG_VOID *pKey2)
-{
-	IMG_UINTPTR_T *p1 = (IMG_UINTPTR_T *)pKey1;
-	IMG_UINTPTR_T *p2 = (IMG_UINTPTR_T *)pKey2;
-	IMG_UINT32 uKeyLen = (IMG_UINT32)(uKeySize / sizeof(IMG_UINTPTR_T));
-	IMG_UINT32 ui;
-
-	PVR_ASSERT((uKeySize % sizeof(IMG_UINTPTR_T)) == 0);
-
-	for (ui = 0; ui < uKeyLen; ui++)
-	{
-		if (*p1++ != *p2++)
-			return IMG_FALSE;
-	}
-
-	return IMG_TRUE;
-}
-
-static PVRSRV_ERROR
-_ChainInsert (HASH_TABLE *pHash, BUCKET *pBucket, BUCKET **ppBucketTable, IMG_UINT32 uSize)
-{
-	IMG_UINT32 uIndex;
-
-	PVR_ASSERT (pBucket != IMG_NULL);
-	PVR_ASSERT (ppBucketTable != IMG_NULL);
-	PVR_ASSERT (uSize != 0);
-
-	if ((pBucket == IMG_NULL) || (ppBucketTable == IMG_NULL) || (uSize == 0))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "_ChainInsert: invalid parameter"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	uIndex = KEY_TO_INDEX(pHash, pBucket->k, uSize);	 
-	pBucket->pNext = ppBucketTable[uIndex];
-	ppBucketTable[uIndex] = pBucket;
-
-	return PVRSRV_OK;
-}
-
-static PVRSRV_ERROR
-_Rehash (HASH_TABLE *pHash,
-	 BUCKET **ppOldTable, IMG_UINT32 uOldSize,
-         BUCKET **ppNewTable, IMG_UINT32 uNewSize)
-{
-	IMG_UINT32 uIndex;
-	for (uIndex=0; uIndex< uOldSize; uIndex++)
-    {
-		BUCKET *pBucket;
-		pBucket = ppOldTable[uIndex];
-		while (pBucket != IMG_NULL)
-		{
-			PVRSRV_ERROR eError;
-			BUCKET *pNextBucket = pBucket->pNext;
-			eError = _ChainInsert (pHash, pBucket, ppNewTable, uNewSize);
-			if (eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "_Rehash: call to _ChainInsert failed"));
-				return eError;
-			}
-			pBucket = pNextBucket;
-		}
-    }
-	return PVRSRV_OK;
-}
-
-static IMG_BOOL
-_Resize (HASH_TABLE *pHash, IMG_UINT32 uNewSize)
-{
-	if (uNewSize != pHash->uSize)
-    {
-		BUCKET **ppNewTable;
-		IMG_UINT32 uIndex;
-
-		PVR_DPF ((PVR_DBG_MESSAGE,
-                  "HASH_Resize: oldsize=0x%x  newsize=0x%x  count=0x%x",
-				pHash->uSize, uNewSize, pHash->uCount));
-
-		OSAllocMem(PVRSRV_PAGEABLE_SELECT,
-                      sizeof (BUCKET *) * uNewSize,
-                      (IMG_PVOID*)&ppNewTable, IMG_NULL,
-					  "Hash Table Buckets");
-		if (ppNewTable == IMG_NULL)
-			return IMG_FALSE;
-
-        for (uIndex=0; uIndex<uNewSize; uIndex++)
-            ppNewTable[uIndex] = IMG_NULL;
-
-        if (_Rehash (pHash, pHash->ppBucketTable, pHash->uSize, ppNewTable, uNewSize) != PVRSRV_OK)
-		{
-			OSFreeMem(PVRSRV_PAGEABLE_SELECT, sizeof(BUCKET*) * uNewSize, ppNewTable, IMG_NULL);
-			return IMG_FALSE;
-		}
-
-        OSFreeMem (PVRSRV_PAGEABLE_SELECT, sizeof(BUCKET *)*pHash->uSize, pHash->ppBucketTable, IMG_NULL);
-        
-        pHash->ppBucketTable = ppNewTable;
-        pHash->uSize = uNewSize;
-    }
-    return IMG_TRUE;
-}
-
-
-HASH_TABLE * HASH_Create_Extended (IMG_UINT32 uInitialLen, IMG_SIZE_T uKeySize, HASH_FUNC *pfnHashFunc, HASH_KEY_COMP *pfnKeyComp)
-{
-	HASH_TABLE *pHash;
-	IMG_UINT32 uIndex;
-
-	PVR_DPF ((PVR_DBG_MESSAGE, "HASH_Create_Extended: InitialSize=0x%x", uInitialLen));
-
-	if(OSAllocMem(PVRSRV_PAGEABLE_SELECT,
-					sizeof(HASH_TABLE),
-					(IMG_VOID **)&pHash, IMG_NULL,
-					"Hash Table") != PVRSRV_OK)
-	{
-		return IMG_NULL;
-	}
-
-	pHash->uCount = 0;
-	pHash->uSize = uInitialLen;
-	pHash->uMinimumSize = uInitialLen;
-	pHash->uKeySize = (IMG_UINT32)uKeySize;
-	pHash->pfnHashFunc = pfnHashFunc;
-	pHash->pfnKeyComp = pfnKeyComp;
-
-	OSAllocMem(PVRSRV_PAGEABLE_SELECT,
-                  sizeof (BUCKET *) * pHash->uSize,
-                  (IMG_PVOID*)&pHash->ppBucketTable, IMG_NULL,
-				  "Hash Table Buckets");
-
-	if (pHash->ppBucketTable == IMG_NULL)
-    {
-		OSFreeMem(PVRSRV_PAGEABLE_SELECT, sizeof(HASH_TABLE), pHash, IMG_NULL);
-		
-		return IMG_NULL;
-    }
-
-	for (uIndex=0; uIndex<pHash->uSize; uIndex++)
-		pHash->ppBucketTable[uIndex] = IMG_NULL;
-	return pHash;
-}
-
-HASH_TABLE * HASH_Create (IMG_UINT32 uInitialLen)
-{
-	return HASH_Create_Extended(uInitialLen, sizeof(IMG_UINTPTR_T),
-		&HASH_Func_Default, &HASH_Key_Comp_Default);
-}
-
-IMG_VOID
-HASH_Delete (HASH_TABLE *pHash)
-{
-	if (pHash != IMG_NULL)
-    {
-		PVR_DPF ((PVR_DBG_MESSAGE, "HASH_Delete"));
-
-		PVR_ASSERT (pHash->uCount==0);
-		if(pHash->uCount != 0)
-		{
-			PVR_DPF ((PVR_DBG_ERROR, "HASH_Delete: leak detected in hash table!"));
-			PVR_DPF ((PVR_DBG_ERROR, "Likely Cause: client drivers not freeing alocations before destroying devmemcontext"));
-		}
-		OSFreeMem(PVRSRV_PAGEABLE_SELECT, sizeof(BUCKET *)*pHash->uSize, pHash->ppBucketTable, IMG_NULL);
-		pHash->ppBucketTable = IMG_NULL;
-		OSFreeMem(PVRSRV_PAGEABLE_SELECT, sizeof(HASH_TABLE), pHash, IMG_NULL);
-		
-    }
-}
-
-IMG_BOOL
-HASH_Insert_Extended (HASH_TABLE *pHash, IMG_VOID *pKey, IMG_UINTPTR_T v)
-{
-	BUCKET *pBucket;
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-              "HASH_Insert_Extended: Hash=0x%08x, pKey=0x%08x, v=0x%x",
-              (IMG_UINTPTR_T)pHash, (IMG_UINTPTR_T)pKey, v));
-
-	PVR_ASSERT (pHash != IMG_NULL);
-
-	if (pHash == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "HASH_Insert_Extended: invalid parameter"));
-		return IMG_FALSE;
-	}
-
-	if(OSAllocMem(PVRSRV_PAGEABLE_SELECT,
-					sizeof(BUCKET) + pHash->uKeySize,
-					(IMG_VOID **)&pBucket, IMG_NULL,
-					"Hash Table entry") != PVRSRV_OK)
-	{
-		return IMG_FALSE;
-	}
-
-	pBucket->v = v;
-	 
-	OSMemCopy(pBucket->k, pKey, pHash->uKeySize);
-	if (_ChainInsert (pHash, pBucket, pHash->ppBucketTable, pHash->uSize) != PVRSRV_OK)
-	{
-		OSFreeMem(PVRSRV_PAGEABLE_SELECT,
-				  sizeof(BUCKET) + pHash->uKeySize,
-				  pBucket, IMG_NULL);
-		return IMG_FALSE;
-	}
-
-	pHash->uCount++;
-
-	
-	if (pHash->uCount << 1 > pHash->uSize)
-    {
-        
-
-        _Resize (pHash, pHash->uSize << 1);
-    }
-
-
-	return IMG_TRUE;
-}
-
-IMG_BOOL
-HASH_Insert (HASH_TABLE *pHash, IMG_UINTPTR_T k, IMG_UINTPTR_T v)
-{
-	PVR_DPF ((PVR_DBG_MESSAGE,
-              "HASH_Insert: Hash=0x%x, k=0x%x, v=0x%x",
-              (IMG_UINTPTR_T)pHash, k, v));
-
-	return HASH_Insert_Extended(pHash, &k, v);
-}
-
-IMG_UINTPTR_T
-HASH_Remove_Extended(HASH_TABLE *pHash, IMG_VOID *pKey)
-{
-	BUCKET **ppBucket;
-	IMG_UINT32 uIndex;
-
-	PVR_DPF ((PVR_DBG_MESSAGE, "HASH_Remove_Extended: Hash=0x%x, pKey=0x%x",
-			(IMG_UINTPTR_T)pHash, (IMG_UINTPTR_T)pKey));
-
-	PVR_ASSERT (pHash != IMG_NULL);
-
-	if (pHash == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "HASH_Remove_Extended: Null hash table"));
-		return 0;
-	}
-
-	uIndex = KEY_TO_INDEX(pHash, pKey, pHash->uSize);
-
-	for (ppBucket = &(pHash->ppBucketTable[uIndex]); ppBucket && *ppBucket != IMG_NULL; ppBucket = &((*ppBucket)->pNext))
-	{
-		 
-		if (KEY_COMPARE(pHash, (*ppBucket)->k, pKey))
-		{
-			BUCKET *pBucket = *ppBucket;
-			IMG_UINTPTR_T v = pBucket->v;
-			(*ppBucket) = pBucket->pNext;
-
-			OSFreeMem(PVRSRV_PAGEABLE_SELECT, sizeof(BUCKET) + pHash->uKeySize, pBucket, IMG_NULL);
-			
-
-			pHash->uCount--;
-
-			
-			if (pHash->uSize > (pHash->uCount << 2) &&
-                pHash->uSize > pHash->uMinimumSize)
-            {
-                
-
-				_Resize (pHash,
-                         PRIVATE_MAX (pHash->uSize >> 1,
-                                      pHash->uMinimumSize));
-            }
-
-			PVR_DPF ((PVR_DBG_MESSAGE,
-                      "HASH_Remove_Extended: Hash=0x%x, pKey=0x%x = 0x%x",
-                      (IMG_UINTPTR_T)pHash, (IMG_UINTPTR_T)pKey, v));
-			return v;
-		}
-	}
-	PVR_DPF ((PVR_DBG_MESSAGE,
-              "HASH_Remove_Extended: Hash=0x%x, pKey=0x%x = 0x0 !!!!",
-              (IMG_UINTPTR_T)pHash, (IMG_UINTPTR_T)pKey));
-	return 0;
-}
-
-IMG_UINTPTR_T
-HASH_Remove (HASH_TABLE *pHash, IMG_UINTPTR_T k)
-{
-	PVR_DPF ((PVR_DBG_MESSAGE, "HASH_Remove: Hash=0x%x, k=0x%x",
-			(IMG_UINTPTR_T)pHash, k));
-
-	return HASH_Remove_Extended(pHash, &k);
-}
-
-IMG_UINTPTR_T
-HASH_Retrieve_Extended (HASH_TABLE *pHash, IMG_VOID *pKey)
-{
-	BUCKET **ppBucket;
-	IMG_UINT32 uIndex;
-
-	PVR_DPF ((PVR_DBG_MESSAGE, "HASH_Retrieve_Extended: Hash=0x%x, pKey=0x%x",
-			(IMG_UINTPTR_T)pHash, (IMG_UINTPTR_T)pKey));
-
-	PVR_ASSERT (pHash != IMG_NULL);
-
-	if (pHash == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "HASH_Retrieve_Extended: Null hash table"));
-		return 0;
-	}
-
-	uIndex = KEY_TO_INDEX(pHash, pKey, pHash->uSize);
-
-	for (ppBucket = &(pHash->ppBucketTable[uIndex]); *ppBucket != IMG_NULL; ppBucket = &((*ppBucket)->pNext))
-	{
-		 
-		if (KEY_COMPARE(pHash, (*ppBucket)->k, pKey))
-		{
-			BUCKET *pBucket = *ppBucket;
-			IMG_UINTPTR_T v = pBucket->v;
-
-			PVR_DPF ((PVR_DBG_MESSAGE,
-                      "HASH_Retrieve: Hash=0x%x, pKey=0x%x = 0x%x",
-                      (IMG_UINTPTR_T)pHash, (IMG_UINTPTR_T)pKey, v));
-			return v;
-		}
-	}
-	PVR_DPF ((PVR_DBG_MESSAGE,
-              "HASH_Retrieve: Hash=0x%x, pKey=0x%x = 0x0 !!!!",
-              (IMG_UINTPTR_T)pHash, (IMG_UINTPTR_T)pKey));
-	return 0;
-}
-
-IMG_UINTPTR_T
-HASH_Retrieve (HASH_TABLE *pHash, IMG_UINTPTR_T k)
-{
-	PVR_DPF ((PVR_DBG_MESSAGE, "HASH_Retrieve: Hash=0x%x, k=0x%x",
-			(IMG_UINTPTR_T)pHash, k));
-	return HASH_Retrieve_Extended(pHash, &k);
-}
-
-PVRSRV_ERROR
-HASH_Iterate(HASH_TABLE *pHash, HASH_pfnCallback pfnCallback)
-{
-	IMG_UINT32 uIndex;
-	for (uIndex=0; uIndex < pHash->uSize; uIndex++)
-	{
-		BUCKET *pBucket;
-		pBucket = pHash->ppBucketTable[uIndex];
-		while (pBucket != IMG_NULL)
-		{
-			PVRSRV_ERROR eError;
-			BUCKET *pNextBucket = pBucket->pNext;
-			
-			eError = pfnCallback((IMG_UINTPTR_T) ((IMG_VOID *) *(pBucket->k)), (IMG_UINTPTR_T) pBucket->v);
-
-			
-			if (eError != PVRSRV_OK)
-				return eError;
-
-			pBucket = pNextBucket;
-		}
-	}
-	return PVRSRV_OK;
-}
-
-#ifdef HASH_TRACE
-IMG_VOID
-HASH_Dump (HASH_TABLE *pHash)
-{
-	IMG_UINT32 uIndex;
-	IMG_UINT32 uMaxLength=0;
-	IMG_UINT32 uEmptyCount=0;
-
-	PVR_ASSERT (pHash != IMG_NULL);
-	for (uIndex=0; uIndex<pHash->uSize; uIndex++)
-	{
-		BUCKET *pBucket;
-		IMG_UINT32 uLength = 0;
-		if (pHash->ppBucketTable[uIndex] == IMG_NULL)
-		{
-			uEmptyCount++;
-		}
-		for (pBucket=pHash->ppBucketTable[uIndex];
-				pBucket != IMG_NULL;
-				pBucket = pBucket->pNext)
-		{
-			uLength++;
-		}
-		uMaxLength = PRIVATE_MAX (uMaxLength, uLength);
-	}
-
-	PVR_TRACE(("hash table: uMinimumSize=%d  size=%d  count=%d",
-			pHash->uMinimumSize, pHash->uSize, pHash->uCount));
-	PVR_TRACE(("  empty=%d  max=%d", uEmptyCount, uMaxLength));
-}
-#endif
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/lists.c b/drivers/staging/cdv/pvr/services4/srvkm/common/lists.c
deleted file mode 100644
index 1081781..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/lists.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "lists.h"
-#include "services_headers.h"
-
-IMPLEMENT_LIST_ANY_VA(BM_HEAP)
-IMPLEMENT_LIST_ANY_2(BM_HEAP, PVRSRV_ERROR, PVRSRV_OK)
-IMPLEMENT_LIST_ANY_VA_2(BM_HEAP, PVRSRV_ERROR, PVRSRV_OK)
-IMPLEMENT_LIST_FOR_EACH_VA(BM_HEAP)
-IMPLEMENT_LIST_REMOVE(BM_HEAP)
-IMPLEMENT_LIST_INSERT(BM_HEAP)
-
-IMPLEMENT_LIST_ANY_VA(BM_CONTEXT)
-IMPLEMENT_LIST_ANY_VA_2(BM_CONTEXT, IMG_HANDLE, IMG_NULL)
-IMPLEMENT_LIST_ANY_VA_2(BM_CONTEXT, PVRSRV_ERROR, PVRSRV_OK)
-IMPLEMENT_LIST_FOR_EACH(BM_CONTEXT)
-IMPLEMENT_LIST_REMOVE(BM_CONTEXT)
-IMPLEMENT_LIST_INSERT(BM_CONTEXT)
-
-IMPLEMENT_LIST_ANY_2(PVRSRV_DEVICE_NODE, PVRSRV_ERROR, PVRSRV_OK)
-IMPLEMENT_LIST_ANY_VA(PVRSRV_DEVICE_NODE)
-IMPLEMENT_LIST_ANY_VA_2(PVRSRV_DEVICE_NODE, PVRSRV_ERROR, PVRSRV_OK)
-IMPLEMENT_LIST_FOR_EACH(PVRSRV_DEVICE_NODE)
-IMPLEMENT_LIST_FOR_EACH_VA(PVRSRV_DEVICE_NODE)
-IMPLEMENT_LIST_INSERT(PVRSRV_DEVICE_NODE)
-IMPLEMENT_LIST_REMOVE(PVRSRV_DEVICE_NODE)
-
-IMPLEMENT_LIST_ANY_VA(PVRSRV_POWER_DEV)
-IMPLEMENT_LIST_ANY_VA_2(PVRSRV_POWER_DEV, PVRSRV_ERROR, PVRSRV_OK)
-IMPLEMENT_LIST_INSERT(PVRSRV_POWER_DEV)
-IMPLEMENT_LIST_REMOVE(PVRSRV_POWER_DEV)
-
-
-IMG_VOID* MatchDeviceKM_AnyVaCb(PVRSRV_DEVICE_NODE* psDeviceNode, va_list va)
-{
-	IMG_UINT32 ui32DevIndex;
-	IMG_BOOL bIgnoreClass;
-	PVRSRV_DEVICE_CLASS eDevClass;
-
-	ui32DevIndex = va_arg(va, IMG_UINT32);
-	bIgnoreClass = va_arg(va, IMG_BOOL);
-	if (!bIgnoreClass)
-	{
-		eDevClass = va_arg(va, PVRSRV_DEVICE_CLASS);
-	}
-	else
-	{
-		
-
-		eDevClass = PVRSRV_DEVICE_CLASS_FORCE_I32;
-	}
-
-	if ((bIgnoreClass || psDeviceNode->sDevId.eDeviceClass == eDevClass) &&
-		psDeviceNode->sDevId.ui32DeviceIndex == ui32DevIndex)
-	{
-		return psDeviceNode;
-	}
-	return IMG_NULL;
-}
-
-IMG_VOID* MatchPowerDeviceIndex_AnyVaCb(PVRSRV_POWER_DEV *psPowerDev, va_list va)
-{
-	IMG_UINT32 ui32DeviceIndex;
-
-	ui32DeviceIndex = va_arg(va, IMG_UINT32);
-
-	if (psPowerDev->ui32DeviceIndex == ui32DeviceIndex)
-	{
-		return psPowerDev;
-	}
-	else
-	{
-		return IMG_NULL;
-	}
-}
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/mem.c b/drivers/staging/cdv/pvr/services4/srvkm/common/mem.c
deleted file mode 100644
index 5b5d1ac..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/mem.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "services_headers.h"
-#include "pvr_bridge_km.h"
-
-
-static PVRSRV_ERROR
-FreeSharedSysMemCallBack(IMG_PVOID  pvParam,
-						 IMG_UINT32 ui32Param,
-						 IMG_BOOL   bDummy)
-{
-	PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo = pvParam;
-
-	PVR_UNREFERENCED_PARAMETER(ui32Param);
-	PVR_UNREFERENCED_PARAMETER(bDummy);
-
-	OSFreePages(psKernelMemInfo->ui32Flags,
-				psKernelMemInfo->uAllocSize,
-				psKernelMemInfo->pvLinAddrKM,
-				psKernelMemInfo->sMemBlk.hOSMemHandle);
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-			  sizeof(PVRSRV_KERNEL_MEM_INFO),
-			  psKernelMemInfo,
-			  IMG_NULL);
-	
-
-	return PVRSRV_OK;
-}
-
-
-IMG_EXPORT PVRSRV_ERROR
-PVRSRVAllocSharedSysMemoryKM(PVRSRV_PER_PROCESS_DATA	*psPerProc,
-							 IMG_UINT32					ui32Flags,
-							 IMG_SIZE_T 				uSize,
-							 PVRSRV_KERNEL_MEM_INFO 	**ppsKernelMemInfo)
-{
-	PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
-
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  sizeof(PVRSRV_KERNEL_MEM_INFO),
-				  (IMG_VOID **)&psKernelMemInfo, IMG_NULL,
-				  "Kernel Memory Info") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVAllocSharedSysMemoryKM: Failed to alloc memory for meminfo"));
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-
-	OSMemSet(psKernelMemInfo, 0, sizeof(*psKernelMemInfo));
-
-	ui32Flags &= ~PVRSRV_HAP_MAPTYPE_MASK;
-	ui32Flags |= PVRSRV_HAP_MULTI_PROCESS;
-	psKernelMemInfo->ui32Flags = ui32Flags;
-	psKernelMemInfo->uAllocSize = uSize;
-
-	if(OSAllocPages(psKernelMemInfo->ui32Flags,
-					psKernelMemInfo->uAllocSize,
-					(IMG_UINT32)HOST_PAGESIZE(),
-					&psKernelMemInfo->pvLinAddrKM,
-					&psKernelMemInfo->sMemBlk.hOSMemHandle)
-		!= PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVAllocSharedSysMemoryKM: Failed to alloc memory for block"));
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  sizeof(PVRSRV_KERNEL_MEM_INFO),
-				  psKernelMemInfo,
-				  0);
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-
-	
-	psKernelMemInfo->sMemBlk.hResItem =
-				ResManRegisterRes(psPerProc->hResManContext,
-								  RESMAN_TYPE_SHARED_MEM_INFO,
-								  psKernelMemInfo,
-								  0,
-								  &FreeSharedSysMemCallBack);
-
-	*ppsKernelMemInfo = psKernelMemInfo;
-
-	return PVRSRV_OK; 
-}
-
-
-IMG_EXPORT PVRSRV_ERROR
-PVRSRVFreeSharedSysMemoryKM(PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo)
-{
-	PVRSRV_ERROR eError;
-
-	if(psKernelMemInfo->sMemBlk.hResItem)
-	{
-		eError = ResManFreeResByPtr(psKernelMemInfo->sMemBlk.hResItem, CLEANUP_WITH_POLL);
-	}
-	else
-	{
-		eError = FreeSharedSysMemCallBack(psKernelMemInfo, 0, CLEANUP_WITH_POLL);
-	}
-
-	return eError;
-}
-
-
-IMG_EXPORT PVRSRV_ERROR
-PVRSRVDissociateMemFromResmanKM(PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo)
-{
-	PVRSRV_ERROR eError = PVRSRV_OK;
-
-	if(!psKernelMemInfo)
-	{
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	if(psKernelMemInfo->sMemBlk.hResItem)
-	{
-		eError = ResManDissociateRes(psKernelMemInfo->sMemBlk.hResItem, IMG_NULL);
-
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"PVRSRVDissociateMemFromResmanKM: ResManDissociateRes failed"));
-			PVR_DBG_BREAK;
-			return eError;
-		}
-
-		psKernelMemInfo->sMemBlk.hResItem = IMG_NULL;
-	}
-
-	return eError;
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/mem_debug.c b/drivers/staging/cdv/pvr/services4/srvkm/common/mem_debug.c
deleted file mode 100644
index e721fb3..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/mem_debug.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef MEM_DEBUG_C
-#define MEM_DEBUG_C
-
-#if defined(PVRSRV_DEBUG_OS_MEMORY)
-
-#include "img_types.h"
-#include "services_headers.h"
-
-#if defined (__cplusplus)
-extern "C"
-{
-#endif
-
-#define STOP_ON_ERROR 0
-
-	
-
-	
-
-
-
-
-
-	IMG_BOOL MemCheck(const IMG_PVOID pvAddr, const IMG_UINT8 ui8Pattern, IMG_SIZE_T uSize)
-	{
-		IMG_UINT8 *pui8Addr;
-		for (pui8Addr = (IMG_UINT8*)pvAddr; uSize > 0; uSize--, pui8Addr++)
-		{
-			if (*pui8Addr != ui8Pattern)
-			{
-				return IMG_FALSE;
-			}
-		}
-		return IMG_TRUE;
-	}
-
-	
-
-	IMG_VOID OSCheckMemDebug(IMG_PVOID pvCpuVAddr, IMG_SIZE_T uSize, const IMG_CHAR *pszFileName, const IMG_UINT32 uLine)
-	{
-		OSMEM_DEBUG_INFO const *psInfo = (OSMEM_DEBUG_INFO *)((IMG_UINT32)pvCpuVAddr - TEST_BUFFER_PADDING_STATUS);
-
-		
-		if (pvCpuVAddr == IMG_NULL)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "Pointer 0x%X : null pointer"
-					 " - referenced %s:%d - allocated %s:%d",
-					 pvCpuVAddr,
-					 pszFileName, uLine,
-					 psInfo->sFileName, psInfo->uLineNo));
-			while (STOP_ON_ERROR);
-		}
-
-		
-		if (((IMG_UINT32)pvCpuVAddr&3) != 0)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "Pointer 0x%X : invalid alignment"
-					 " - referenced %s:%d - allocated %s:%d",
-					 pvCpuVAddr,
-					 pszFileName, uLine,
-					 psInfo->sFileName, psInfo->uLineNo));
-			while (STOP_ON_ERROR);
-		}
-
-		
-		if (!MemCheck((IMG_PVOID)psInfo->sGuardRegionBefore, 0xB1, sizeof(psInfo->sGuardRegionBefore)))
-		{
-			PVR_DPF((PVR_DBG_ERROR, "Pointer 0x%X : guard region before overwritten"
-					 " - referenced %s:%d - allocated %s:%d",
-					 pvCpuVAddr,
-					 pszFileName, uLine,
-					 psInfo->sFileName, psInfo->uLineNo));
-			while (STOP_ON_ERROR);
-		}
-
-		
-		if (uSize != psInfo->uSize)
-		{
-			PVR_DPF((PVR_DBG_WARNING, "Pointer 0x%X : supplied size was different to stored size (0x%X != 0x%X)"
-					 " - referenced %s:%d - allocated %s:%d",
-					 pvCpuVAddr, uSize, psInfo->uSize,
-					 pszFileName, uLine,
-					 psInfo->sFileName, psInfo->uLineNo));
-			while (STOP_ON_ERROR);
-		}
-
-		
-		if ((0x01234567 ^ psInfo->uSizeParityCheck) != psInfo->uSize)
-		{
-			PVR_DPF((PVR_DBG_WARNING, "Pointer 0x%X : stored size parity error (0x%X != 0x%X)"
-					 " - referenced %s:%d - allocated %s:%d",
-					 pvCpuVAddr, psInfo->uSize, 0x01234567 ^ psInfo->uSizeParityCheck,
-					 pszFileName, uLine,
-					 psInfo->sFileName, psInfo->uLineNo));
-			while (STOP_ON_ERROR);
-		}
-		else
-		{
-			
-			uSize = psInfo->uSize;
-		}
-
-		
-		if (uSize)
-		{
-			if (!MemCheck((IMG_VOID*)((IMG_UINT32)pvCpuVAddr + uSize), 0xB2, TEST_BUFFER_PADDING_AFTER))
-			{
-				PVR_DPF((PVR_DBG_ERROR, "Pointer 0x%X : guard region after overwritten"
-						 " - referenced from %s:%d - allocated from %s:%d",
-						 pvCpuVAddr,
-						 pszFileName, uLine,
-						 psInfo->sFileName, psInfo->uLineNo));
-			}
-		}
-
-		
-		if (psInfo->eValid != isAllocated)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "Pointer 0x%X : not allocated (freed? %d)"
-					 " - referenced %s:%d - freed %s:%d",
-					 pvCpuVAddr, psInfo->eValid == isFree,
-					 pszFileName, uLine,
-					 psInfo->sFileName, psInfo->uLineNo));
-			while (STOP_ON_ERROR);
-		}
-	}
-
-	IMG_VOID debug_strcpy(IMG_CHAR *pDest, const IMG_CHAR *pSrc)
-	{
-		IMG_SIZE_T i = 0;
-
-		for (; i < 128; i++) 
-		{
-			*pDest = *pSrc;
-			if (*pSrc == '\0') break;
-			pDest++;
-			pSrc++;
-		}
-	}
-
-	PVRSRV_ERROR OSAllocMem_Debug_Wrapper(IMG_UINT32 ui32Flags,
-										  IMG_UINT32 ui32Size,
-										  IMG_PVOID *ppvCpuVAddr,
-										  IMG_HANDLE *phBlockAlloc,
-										  IMG_CHAR *pszFilename,
-										  IMG_UINT32 ui32Line)
-	{
-		OSMEM_DEBUG_INFO *psInfo;
-
-		PVRSRV_ERROR eError;
-
-		eError = OSAllocMem_Debug_Linux_Memory_Allocations(ui32Flags,
-				 ui32Size + TEST_BUFFER_PADDING,
-				 ppvCpuVAddr,
-				 phBlockAlloc,
-				 pszFilename,
-				 ui32Line);
-
-		if (eError != PVRSRV_OK)
-		{
-			return eError;
-		}
-
-		
-		OSMemSet((IMG_CHAR *)(*ppvCpuVAddr) + TEST_BUFFER_PADDING_STATUS, 0xBB, ui32Size);
-		OSMemSet((IMG_CHAR *)(*ppvCpuVAddr) + ui32Size + TEST_BUFFER_PADDING_STATUS, 0xB2, TEST_BUFFER_PADDING_AFTER);
-
-		
-		psInfo = (OSMEM_DEBUG_INFO *)(*ppvCpuVAddr);
-
-		OSMemSet(psInfo->sGuardRegionBefore, 0xB1, sizeof(psInfo->sGuardRegionBefore));
-		debug_strcpy(psInfo->sFileName, pszFilename);
-		psInfo->uLineNo = ui32Line;
-		psInfo->eValid = isAllocated;
-		psInfo->uSize = ui32Size;
-		psInfo->uSizeParityCheck = 0x01234567 ^ ui32Size;
-
-		
-		*ppvCpuVAddr = (IMG_PVOID) ((IMG_UINT32)*ppvCpuVAddr)+TEST_BUFFER_PADDING_STATUS;
-
-#ifdef PVRSRV_LOG_MEMORY_ALLOCS
-		
-		PVR_TRACE(("Allocated pointer (after debug info): 0x%X from %s:%d", *ppvCpuVAddr, pszFilename, ui32Line));
-#endif
-
-		return PVRSRV_OK;
-	}
-
-	PVRSRV_ERROR OSFreeMem_Debug_Wrapper(IMG_UINT32 ui32Flags,
-										 IMG_UINT32 ui32Size,
-										 IMG_PVOID pvCpuVAddr,
-										 IMG_HANDLE hBlockAlloc,
-										 IMG_CHAR *pszFilename,
-										 IMG_UINT32 ui32Line)
-	{
-		OSMEM_DEBUG_INFO *psInfo;
-
-		
-		OSCheckMemDebug(pvCpuVAddr, ui32Size, pszFilename, ui32Line);
-
-		
-		OSMemSet(pvCpuVAddr, 0xBF, ui32Size + TEST_BUFFER_PADDING_AFTER);  
-
-		
-		psInfo = (OSMEM_DEBUG_INFO *)((IMG_UINT32) pvCpuVAddr - TEST_BUFFER_PADDING_STATUS);
-
-		
-		psInfo->uSize = 0;
-		psInfo->uSizeParityCheck = 0;
-		psInfo->eValid = isFree;
-		psInfo->uLineNo = ui32Line;
-		debug_strcpy(psInfo->sFileName, pszFilename);
-
-		return OSFreeMem_Debug_Linux_Memory_Allocations(ui32Flags, ui32Size + TEST_BUFFER_PADDING, psInfo, hBlockAlloc, pszFilename, ui32Line);
-	}
-
-#if defined (__cplusplus)
-
-}
-#endif
-
-#endif 
-
-#endif        
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/metrics.c b/drivers/staging/cdv/pvr/services4/srvkm/common/metrics.c
deleted file mode 100644
index 640eb04..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/metrics.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "services_headers.h"
-#include "metrics.h"
-
-#if defined(SUPPORT_VGX)
-#include "vgxapi_km.h"
-#endif
-
-#if defined(SUPPORT_SGX)
-#include "sgxapi_km.h"
-#endif
-
-#if defined(DEBUG) || defined(TIMING)
-
-static volatile IMG_UINT32 *pui32TimerRegister = 0;
-
-#define PVRSRV_TIMER_TOTAL_IN_TICKS(X)	asTimers[X].ui32Total
-#define PVRSRV_TIMER_TOTAL_IN_MS(X)		((1000*asTimers[X].ui32Total)/ui32TicksPerMS)
-#define PVRSRV_TIMER_COUNT(X)			asTimers[X].ui32Count
-
-
-Temporal_Data asTimers[PVRSRV_NUM_TIMERS]; 
-
-
-IMG_UINT32 PVRSRVTimeNow(IMG_VOID)
-{
-	if (!pui32TimerRegister)
-	{
-		static IMG_BOOL bFirstTime = IMG_TRUE;
-
-		if (bFirstTime)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"PVRSRVTimeNow: No timer register set up"));
-
-			bFirstTime = IMG_FALSE;
-		}
-
-		return 0;
-	}
-
-#if defined(__sh__)
-
-	return (0xffffffff-*pui32TimerRegister);
-
-#else 
-
-	return 0;
-
-#endif 
-}
-
-
-static IMG_UINT32 PVRSRVGetCPUFreq(IMG_VOID)
-{
-	IMG_UINT32 ui32Time1, ui32Time2;
-
-	ui32Time1 = PVRSRVTimeNow();
-
-	OSWaitus(1000000);
-
-	ui32Time2 = PVRSRVTimeNow();
-
-	PVR_DPF((PVR_DBG_WARNING, "PVRSRVGetCPUFreq: timer frequency = %d Hz", ui32Time2 - ui32Time1));
-
-	return (ui32Time2 - ui32Time1);
-}
-
-
-IMG_VOID PVRSRVSetupMetricTimers(IMG_VOID *pvDevInfo)
-{
-	IMG_UINT32 ui32Loop;
-
-	PVR_UNREFERENCED_PARAMETER(pvDevInfo);
-
-	for(ui32Loop=0; ui32Loop < (PVRSRV_NUM_TIMERS); ui32Loop++)
-	{
-		asTimers[ui32Loop].ui32Total = 0;
-		asTimers[ui32Loop].ui32Count = 0;
-	}
-
-
-	#if defined(__sh__)
-
-		
-		
-		
-		
-		*TCR_2 = TIMER_DIVISOR;
-
-		
-		*TCOR_2 = *TCNT_2 = (IMG_UINT)0xffffffff;
-
-		
-		*TST_REG |= (IMG_UINT8)0x04;
-
-		pui32TimerRegister = (IMG_UINT32 *)TCNT_2;
-
-	#else 
-
-		pui32TimerRegister = 0;
-
-	#endif 
-
-}
-
-
-IMG_VOID PVRSRVOutputMetricTotals(IMG_VOID)
-{
-	IMG_UINT32 ui32TicksPerMS, ui32Loop;
-
-	ui32TicksPerMS = PVRSRVGetCPUFreq();
-
-	if (!ui32TicksPerMS)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVOutputMetricTotals: Failed to get CPU Freq"));
-		return;
-	}
-
-	for(ui32Loop=0; ui32Loop < (PVRSRV_NUM_TIMERS); ui32Loop++)
-	{
-		if (asTimers[ui32Loop].ui32Count & 0x80000000L)
-		{
-			PVR_DPF((PVR_DBG_WARNING,"PVRSRVOutputMetricTotals: Timer %u is still ON", ui32Loop));
-		}
-	}
-#if 0
-	
-	PVR_DPF((PVR_DBG_ERROR," Timer(%u): Total = %u",PVRSRV_TIMER_EXAMPLE_1, PVRSRV_TIMER_TOTAL_IN_TICKS(PVRSRV_TIMER_EXAMPLE_1)));
-	PVR_DPF((PVR_DBG_ERROR," Timer(%u): Time = %ums",PVRSRV_TIMER_EXAMPLE_1, PVRSRV_TIMER_TOTAL_IN_MS(PVRSRV_TIMER_EXAMPLE_1)));
-	PVR_DPF((PVR_DBG_ERROR," Timer(%u): Count = %u",PVRSRV_TIMER_EXAMPLE_1, PVRSRV_TIMER_COUNT(PVRSRV_TIMER_EXAMPLE_1)));
-#endif
-}
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/osfunc_common.c b/drivers/staging/cdv/pvr/services4/srvkm/common/osfunc_common.c
deleted file mode 100644
index e0a46da..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/osfunc_common.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "img_types.h"
-#include "services_headers.h"
-#include "osfunc.h"
-
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/pdump_common.c b/drivers/staging/cdv/pvr/services4/srvkm/common/pdump_common.c
deleted file mode 100644
index fbec2a1..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/pdump_common.c
+++ /dev/null
@@ -1,2371 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if defined(PDUMP)
-#include <stdarg.h>
-
-#include "services_headers.h"
-#include "perproc.h"
-
-#include "pdump_km.h"
-#include "pdump_int.h"
-
-#if !defined(PDUMP_TEMP_BUFFER_SIZE)
-#define PDUMP_TEMP_BUFFER_SIZE (64 * 1024U)
-#endif
-
-#if 1
-#define PDUMP_DBG(a)   PDumpOSDebugPrintf (a)
-#else
-#define PDUMP_DBG(a)
-#endif
-
-
-#define	PTR_PLUS(t, p, x) ((t)(((IMG_CHAR *)(p)) + (x)))
-#define	VPTR_PLUS(p, x) PTR_PLUS(IMG_VOID *, p, x)
-#define	VPTR_INC(p, x) ((p) = VPTR_PLUS(p, x))
-#define MAX_PDUMP_MMU_CONTEXTS	(32)
-static IMG_VOID *gpvTempBuffer = IMG_NULL;
-static IMG_HANDLE ghTempBufferBlockAlloc;
-static IMG_UINT16 gui16MMUContextUsage = 0;
-
-#if defined(PDUMP_DEBUG_OUTFILES)
-IMG_UINT32 g_ui32EveryLineCounter = 1U;
-#endif
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(_PDumpIsPersistent)
-#endif
-static INLINE
-IMG_BOOL _PDumpIsPersistent(IMG_VOID)
-{
-	PVRSRV_PER_PROCESS_DATA* psPerProc = PVRSRVFindPerProcessData();
-
-	if(psPerProc == IMG_NULL)
-	{
-		
-		return IMG_FALSE;
-	}
-	return psPerProc->bPDumpPersistent;
-}
-
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-
-
-static INLINE
-IMG_BOOL _PDumpIsProcessActive(IMG_VOID)
-{
-	PVRSRV_PER_PROCESS_DATA* psPerProc = PVRSRVFindPerProcessData();
-	if(psPerProc == IMG_NULL)
-	{
-		
-		return IMG_TRUE;
-	}
-	return psPerProc->bPDumpActive;
-}
-
-#endif 
-
-#if defined(PDUMP_DEBUG_OUTFILES)
-static INLINE
-IMG_UINT32 _PDumpGetPID(IMG_VOID)
-{
-	PVRSRV_PER_PROCESS_DATA* psPerProc = PVRSRVFindPerProcessData();
-	if(psPerProc == IMG_NULL)
-	{
-		
-		return 0;
-	}
-	return psPerProc->ui32PID;
-}
-#endif 
-
-static IMG_VOID *GetTempBuffer(IMG_VOID)
-{
-	
-	if (gpvTempBuffer == IMG_NULL)
-	{
-		PVRSRV_ERROR eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-					  PDUMP_TEMP_BUFFER_SIZE,
-					  &gpvTempBuffer,
-					  &ghTempBufferBlockAlloc,
-					  "PDUMP Temporary Buffer");
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "GetTempBuffer: OSAllocMem failed: %d", eError));
-		}
-	}
-
-	return gpvTempBuffer;
-}
-
-static IMG_VOID FreeTempBuffer(IMG_VOID)
-{
-
-	if (gpvTempBuffer != IMG_NULL)
-	{
-		PVRSRV_ERROR eError = OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-					  PDUMP_TEMP_BUFFER_SIZE,
-					  gpvTempBuffer,
-					  ghTempBufferBlockAlloc);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "FreeTempBuffer: OSFreeMem failed: %d", eError));
-		}
-		else
-		{
-			gpvTempBuffer = IMG_NULL;
-		}
-	}
-}
-
-IMG_VOID PDumpInitCommon(IMG_VOID)
-{
-	
-	(IMG_VOID) GetTempBuffer();
-
-	
-	PDumpInit();
-}
-
-IMG_VOID PDumpDeInitCommon(IMG_VOID)
-{
-	
-	FreeTempBuffer();
-
-	
-	PDumpDeInit();
-}
-
-IMG_BOOL PDumpIsSuspended(IMG_VOID)
-{
-	return PDumpOSIsSuspended();
-}
-
-IMG_BOOL PDumpIsCaptureFrameKM(IMG_VOID)
-{
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-	if( _PDumpIsProcessActive() )
-	{
-		return PDumpOSIsCaptureFrameKM();
-	}
-	return IMG_FALSE;
-#else
-	return PDumpOSIsCaptureFrameKM();
-#endif
-}
-
-PVRSRV_ERROR PDumpSetFrameKM(IMG_UINT32 ui32Frame)
-{
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-	if( _PDumpIsProcessActive() )
-	{
-		return PDumpOSSetFrameKM(ui32Frame);
-	}
-	return PVRSRV_OK;
-#else
-	return PDumpOSSetFrameKM(ui32Frame);
-#endif
-}
-
-PVRSRV_ERROR PDumpRegWithFlagsKM(IMG_CHAR *pszPDumpRegName,
-								IMG_UINT32 ui32Reg,
-								IMG_UINT32 ui32Data,
-								IMG_UINT32 ui32Flags)
-{
-	PVRSRV_ERROR eErr;
-	PDUMP_GET_SCRIPT_STRING()
-	PDUMP_DBG(("PDumpRegWithFlagsKM"));
-
-	eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "WRW :%s:0x%08X 0x%08X\r\n",
-								pszPDumpRegName, ui32Reg, ui32Data);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpRegKM(IMG_CHAR *pszPDumpRegName,
-						IMG_UINT32 ui32Reg,
-						IMG_UINT32 ui32Data)
-{
-	return PDumpRegWithFlagsKM(pszPDumpRegName, ui32Reg, ui32Data, PDUMP_FLAGS_CONTINUOUS);
-}
-
-PVRSRV_ERROR PDumpRegPolWithFlagsKM(IMG_CHAR *pszPDumpRegName,
-									IMG_UINT32 ui32RegAddr, 
-									IMG_UINT32 ui32RegValue, 
-									IMG_UINT32 ui32Mask,
-									IMG_UINT32 ui32Flags,
-									PDUMP_POLL_OPERATOR	eOperator)
-{
-	
-	#define POLL_DELAY			1000U
-	#define POLL_COUNT_LONG		(2000000000U / POLL_DELAY)
-	#define POLL_COUNT_SHORT	(1000000U / POLL_DELAY)
-
-	PVRSRV_ERROR eErr;
-	IMG_UINT32	ui32PollCount;
-
-	PDUMP_GET_SCRIPT_STRING();
-	PDUMP_DBG(("PDumpRegPolWithFlagsKM"));
-	if ( _PDumpIsPersistent() )
-	{
-		
-		return PVRSRV_OK;
-	}
-
-#if 0
-	if (((ui32RegAddr == EUR_CR_EVENT_STATUS) &&
-		(ui32RegValue & ui32Mask & EUR_CR_EVENT_STATUS_TA_FINISHED_MASK) != 0) ||
-	    ((ui32RegAddr == EUR_CR_EVENT_STATUS) &&
-		(ui32RegValue & ui32Mask & EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_MASK) != 0) ||
-	    ((ui32RegAddr == EUR_CR_EVENT_STATUS) &&
-		(ui32RegValue & ui32Mask & EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_MASK) != 0))
-	{
-		ui32PollCount = POLL_COUNT_LONG;
-	}
-	else
-#endif
-	{
-		ui32PollCount = POLL_COUNT_LONG;
-	}
-
-	eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "POL :%s:0x%08X 0x%08X 0x%08X %d %u %d\r\n",
-							pszPDumpRegName, ui32RegAddr, ui32RegValue,
-							ui32Mask, eOperator, ui32PollCount, POLL_DELAY);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR PDumpRegPolKM(IMG_CHAR *pszPDumpRegName, IMG_UINT32 ui32RegAddr, IMG_UINT32 ui32RegValue, IMG_UINT32 ui32Mask, PDUMP_POLL_OPERATOR	eOperator)
-{
-	return PDumpRegPolWithFlagsKM(pszPDumpRegName, ui32RegAddr, ui32RegValue, ui32Mask, PDUMP_FLAGS_CONTINUOUS, eOperator);
-}
-
-PVRSRV_ERROR PDumpMallocPages (PVRSRV_DEVICE_IDENTIFIER	*psDevID,
-                           IMG_UINT32         ui32DevVAddr,
-                           IMG_CPU_VIRTADDR   pvLinAddr,
-                           IMG_HANDLE         hOSMemHandle,
-                           IMG_UINT32         ui32NumBytes,
-                           IMG_UINT32         ui32PageSize,
-                           IMG_BOOL			  bShared,
-                           IMG_HANDLE         hUniqueTag)
-{
-	PVRSRV_ERROR eErr;
-	IMG_PUINT8		pui8LinAddr;
-    IMG_UINT32      ui32Offset;
-	IMG_UINT32		ui32NumPages;
-	IMG_DEV_PHYADDR	sDevPAddr;
-	IMG_UINT32		ui32Page;
-	IMG_UINT32		ui32Flags = PDUMP_FLAGS_CONTINUOUS;
-
-	PDUMP_GET_SCRIPT_STRING();
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-	
-	ui32Flags |= ( _PDumpIsPersistent() || bShared ) ? PDUMP_FLAGS_PERSISTENT : 0;
-#else
-	PVR_UNREFERENCED_PARAMETER(bShared);
-	ui32Flags |= ( _PDumpIsPersistent() ) ? PDUMP_FLAGS_PERSISTENT : 0;
-#endif
-
-	
-#if !defined(LINUX)
-	PVR_ASSERT(((IMG_UINTPTR_T)pvLinAddr & HOST_PAGEMASK) == 0);
-#endif
-
-	PVR_ASSERT(((IMG_UINT32) ui32DevVAddr & HOST_PAGEMASK) == 0);
-	PVR_ASSERT(((IMG_UINT32) ui32NumBytes & HOST_PAGEMASK) == 0);
-
-	
-
-	eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "-- MALLOC :%s:VA_%08X 0x%08X %u\r\n",
-			psDevID->pszPDumpDevName, ui32DevVAddr, ui32NumBytes, ui32PageSize);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-
-	
-
-	pui8LinAddr = (IMG_PUINT8) pvLinAddr;
-	ui32Offset = 0;
-	ui32NumPages = ui32NumBytes / ui32PageSize;
-	while (ui32NumPages)
-	{ 
-		ui32NumPages--;
-
-		
-
-
-
-
-
-
-		
-		
- 		
-		PDumpOSCPUVAddrToDevPAddr(psDevID->eDeviceType,
-				hOSMemHandle,
-				ui32Offset,
-				pui8LinAddr,
-				ui32PageSize,
-				&sDevPAddr);
-		ui32Page = (IMG_UINT32)(sDevPAddr.uiAddr / ui32PageSize);
-		
-		pui8LinAddr	+= ui32PageSize;
-		ui32Offset += ui32PageSize;
-
-		eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "MALLOC :%s:PA_%08X%08X %u %u 0x%08X\r\n",
-												psDevID->pszPDumpDevName,
-												(IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag,
-												ui32Page * ui32PageSize,
-												ui32PageSize,
-												ui32PageSize,
-												ui32Page * ui32PageSize);
-		if(eErr != PVRSRV_OK)
-		{
-			return eErr;
-		}
-		PDumpOSWriteString2(hScript, ui32Flags);
-	}
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR PDumpMallocPageTable (PVRSRV_DEVICE_IDENTIFIER	*psDevId,
-								   IMG_HANDLE hOSMemHandle,
-								   IMG_UINT32 ui32Offset,
-                              	   IMG_CPU_VIRTADDR pvLinAddr,
-								   IMG_UINT32 ui32PTSize,
-								   IMG_UINT32 ui32Flags,
-								   IMG_HANDLE hUniqueTag)
-{
-	PVRSRV_ERROR eErr;
-	IMG_DEV_PHYADDR	sDevPAddr;
-
-	PDUMP_GET_SCRIPT_STRING();
-
-	PVR_ASSERT(((IMG_UINTPTR_T)pvLinAddr & (ui32PTSize - 1)) == 0);
-	ui32Flags |= PDUMP_FLAGS_CONTINUOUS;
-	ui32Flags |= ( _PDumpIsPersistent() ) ? PDUMP_FLAGS_PERSISTENT : 0;
-	
-	
-
-	eErr = PDumpOSBufprintf(hScript,
-							ui32MaxLen,
-							"-- MALLOC :%s:PAGE_TABLE 0x%08X %u\r\n",
-							psDevId->pszPDumpDevName,
-							ui32PTSize,
-							ui32PTSize);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-
-	
-
-	
-	
-	
-	
-
-	PDumpOSCPUVAddrToDevPAddr(psDevId->eDeviceType,
-			hOSMemHandle, 
-			ui32Offset,
-			(IMG_PUINT8) pvLinAddr,
-			ui32PTSize,
-			&sDevPAddr);
-
-	eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "MALLOC :%s:PA_%08X%08X 0x%X %u 0x%08X\r\n",
-											psDevId->pszPDumpDevName,
-											(IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag,
-											sDevPAddr.uiAddr,
-											ui32PTSize,
-											ui32PTSize,
-											sDevPAddr.uiAddr);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpFreePages	(BM_HEAP 			*psBMHeap,
-                         IMG_DEV_VIRTADDR  sDevVAddr,
-                         IMG_UINT32        ui32NumBytes,
-                         IMG_UINT32        ui32PageSize,
-                         IMG_HANDLE        hUniqueTag,
-						 IMG_BOOL		   bInterleaved)
-{
-	PVRSRV_ERROR eErr;
-	IMG_UINT32 ui32NumPages, ui32PageCounter;
-	IMG_DEV_PHYADDR	sDevPAddr;
-	IMG_UINT32 ui32Flags = PDUMP_FLAGS_CONTINUOUS;
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-
-	PDUMP_GET_SCRIPT_STRING();
-
-	PVR_ASSERT(((IMG_UINT32) sDevVAddr.uiAddr & (ui32PageSize - 1)) == 0);
-	PVR_ASSERT(((IMG_UINT32) ui32NumBytes & (ui32PageSize - 1)) == 0);
-
-	psDeviceNode = psBMHeap->pBMContext->psDeviceNode;
-	ui32Flags |= ( _PDumpIsPersistent() ) ? PDUMP_FLAGS_PERSISTENT : 0;
-
-	
-
-	eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "-- FREE :%s:VA_%08X\r\n", 
-							psDeviceNode->sDevId.pszPDumpDevName, sDevVAddr.uiAddr);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-	
-	{
-		PVRSRV_DEVICE_NODE *psDeviceNode = psBMHeap->pBMContext->psDeviceNode;
-		
-		if( psDeviceNode->pfnMMUIsHeapShared(psBMHeap->pMMUHeap) )
-		{
-			ui32Flags |= PDUMP_FLAGS_PERSISTENT;
-		}
-	}
-#endif
-	PDumpOSWriteString2(hScript, ui32Flags);
-
-	
-
-	ui32NumPages = ui32NumBytes / ui32PageSize;
-	for (ui32PageCounter = 0; ui32PageCounter < ui32NumPages; ui32PageCounter++)
-	{
-		if (!bInterleaved || (ui32PageCounter % 2) == 0)
-		{
-			sDevPAddr = psDeviceNode->pfnMMUGetPhysPageAddr(psBMHeap->pMMUHeap, sDevVAddr);
-
-			PVR_ASSERT(sDevPAddr.uiAddr != 0)
-
-			eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "FREE :%s:PA_%08X%08X\r\n",
-									psDeviceNode->sDevId.pszPDumpDevName, (IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag, sDevPAddr.uiAddr);
-			if(eErr != PVRSRV_OK)
-			{
-				return eErr;
-			}
-			PDumpOSWriteString2(hScript, ui32Flags);
-		}
-		else
-		{
-			
-		}
-
-		sDevVAddr.uiAddr += ui32PageSize;
-	}
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpFreePageTable	(PVRSRV_DEVICE_IDENTIFIER *psDevID,
-								 IMG_HANDLE hOSMemHandle,
-								 IMG_CPU_VIRTADDR   pvLinAddr,
-								 IMG_UINT32         ui32PTSize,
-								 IMG_UINT32			ui32Flags,
-								 IMG_HANDLE         hUniqueTag)
-{
-	PVRSRV_ERROR eErr;
-	IMG_DEV_PHYADDR	sDevPAddr;
-
-	PDUMP_GET_SCRIPT_STRING();
-
-	PVR_UNREFERENCED_PARAMETER(ui32PTSize);
-	ui32Flags |= PDUMP_FLAGS_CONTINUOUS;
-	ui32Flags |= ( _PDumpIsPersistent() ) ? PDUMP_FLAGS_PERSISTENT : 0;
-
-	
-	PVR_ASSERT(((IMG_UINTPTR_T)pvLinAddr & (ui32PTSize-1UL)) == 0);	
-
-	
-
-	eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "-- FREE :%s:PAGE_TABLE\r\n", psDevID->pszPDumpDevName);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-
-	
-
-	
-	
-	
-	
-
-	PDumpOSCPUVAddrToDevPAddr(psDevID->eDeviceType,
-							  hOSMemHandle, 
-			0,
-			(IMG_PUINT8) pvLinAddr,
-			ui32PTSize,
-			&sDevPAddr);
-
-	{
-		eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "FREE :%s:PA_%08X%08X\r\n",
-								psDevID->pszPDumpDevName,
-								(IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag,
-								sDevPAddr.uiAddr);
-		if(eErr != PVRSRV_OK)
-		{
-			return eErr;
-		}
-		PDumpOSWriteString2(hScript, ui32Flags);
-	}
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpPDRegWithFlags(PDUMP_MMU_ATTRIB *psMMUAttrib,
-							IMG_UINT32 ui32Reg,
-							 IMG_UINT32 ui32Data,
-							 IMG_UINT32	ui32Flags,
-							 IMG_HANDLE hUniqueTag)
-{
-	PVRSRV_ERROR eErr;
-	IMG_CHAR *pszRegString;
-	PDUMP_GET_SCRIPT_STRING()
-	
-	if(psMMUAttrib->pszPDRegRegion != IMG_NULL)
-	{	
-		pszRegString = psMMUAttrib->pszPDRegRegion;
-	}
-	else
-	{
-		pszRegString = psMMUAttrib->sDevId.pszPDumpRegName;
-	}
-
-	
-
-#if defined(SGX_FEATURE_36BIT_MMU)
-	eErr = PDumpOSBufprintf(hScript, ui32MaxLen,
-			 "WRW :%s:$1 :%s:PA_%08X%08X:0x0\r\n",
-			 psMMUAttrib->sDevId.pszPDumpDevName,
-			 psMMUAttrib->sDevId.pszPDumpDevName,
-			 (IMG_UINT32)hUniqueTag,
-			 (ui32Data & psMMUAttrib->ui32PDEMask) << psMMUAttrib->ui32PDEAlignShift);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-	eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "SHR :%s:$1 :%s:$1 0x4\r\n", 
-			psMMUAttrib->sDevId.pszPDumpDevName,
-			psMMUAttrib->sDevId.pszPDumpDevName);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-	eErr = PDumpOSBufprintf(hScript, ui32MaxLen,
-			 "WRW :%s:0x%08X: %s:$1\r\n",
-			 pszRegString,
-			 ui32Reg,
-			 psMMUAttrib->sDevId.pszPDumpDevName);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-#else
-	eErr = PDumpOSBufprintf(hScript,
-				ui32MaxLen,
-				"WRW :%s:0x%08X :%s:PA_%08X%08X:0x%08X\r\n",
-				pszRegString,
-				ui32Reg,
-				psMMUAttrib->sDevId.pszPDumpDevName,
-				(IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag,
-				(ui32Data & psMMUAttrib->ui32PDEMask) << psMMUAttrib->ui32PDEAlignShift,
-				ui32Data & ~psMMUAttrib->ui32PDEMask);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-#endif
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpPDReg	(PDUMP_MMU_ATTRIB *psMMUAttrib, 
-					 IMG_UINT32 ui32Reg,
-					 IMG_UINT32 ui32Data,
-					 IMG_HANDLE hUniqueTag)
-{
-	return PDumpPDRegWithFlags(psMMUAttrib, ui32Reg, ui32Data, PDUMP_FLAGS_CONTINUOUS, hUniqueTag);
-}
-
-PVRSRV_ERROR PDumpMemPolKM(PVRSRV_KERNEL_MEM_INFO		*psMemInfo,
-						   IMG_UINT32			ui32Offset,
-						   IMG_UINT32			ui32Value,
-						   IMG_UINT32			ui32Mask,
-						   PDUMP_POLL_OPERATOR	eOperator,
-						   IMG_UINT32			ui32Flags,
-						   IMG_HANDLE			hUniqueTag)
-{
-	#define MEMPOLL_DELAY		(1000)
-	#define MEMPOLL_COUNT		(2000000000 / MEMPOLL_DELAY)
-
-	PVRSRV_ERROR eErr;
-	IMG_UINT32			ui32PageOffset;
-	IMG_UINT8			*pui8LinAddr;
-	IMG_DEV_PHYADDR		sDevPAddr;
-	IMG_DEV_VIRTADDR	sDevVPageAddr;
-	PDUMP_MMU_ATTRIB	*psMMUAttrib;
-
-	PDUMP_GET_SCRIPT_STRING();
-
-	if (PDumpOSIsSuspended())
-	{
-		return PVRSRV_OK;
-	}
-
-	if ( _PDumpIsPersistent() )
-	{
-		
-		return PVRSRV_OK;
-	}
-
-	
-	PVR_ASSERT((ui32Offset + sizeof(IMG_UINT32)) <= psMemInfo->uAllocSize);
-
-	psMMUAttrib = ((BM_BUF*)psMemInfo->sMemBlk.hBuffer)->pMapping->pBMHeap->psMMUAttrib;
-
-	
-
-	eErr = PDumpOSBufprintf(hScript,
-			 ui32MaxLen,
-			 "-- POL :%s:VA_%08X 0x%08X 0x%08X %d %d %d\r\n",
-			 psMMUAttrib->sDevId.pszPDumpDevName,
-			 psMemInfo->sDevVAddr.uiAddr + ui32Offset,
-			 ui32Value,
-			 ui32Mask,
-			 eOperator,
-			 MEMPOLL_COUNT,
-			 MEMPOLL_DELAY);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-
-
-	pui8LinAddr = psMemInfo->pvLinAddrKM;
-
-	
-	pui8LinAddr += ui32Offset;
-
-	
-
-
-	PDumpOSCPUVAddrToPhysPages(psMemInfo->sMemBlk.hOSMemHandle,
-			ui32Offset,
-			pui8LinAddr,
-			psMMUAttrib->ui32DataPageMask,
-			&ui32PageOffset);
-
-	
-	sDevVPageAddr.uiAddr = psMemInfo->sDevVAddr.uiAddr + ui32Offset - ui32PageOffset;
-
-	PVR_ASSERT((sDevVPageAddr.uiAddr & psMMUAttrib->ui32DataPageMask) == 0);
-
-	
-	BM_GetPhysPageAddr(psMemInfo, sDevVPageAddr, &sDevPAddr);
-
-	
-	sDevPAddr.uiAddr += ui32PageOffset;
-
-	eErr = PDumpOSBufprintf(hScript,
-			 ui32MaxLen,
-			 "POL :%s:PA_%08X%08X:0x%08X 0x%08X 0x%08X %d %d %d\r\n",
-			 psMMUAttrib->sDevId.pszPDumpDevName,
-			 (IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag,
-			 sDevPAddr.uiAddr & ~(psMMUAttrib->ui32DataPageMask),
-			 sDevPAddr.uiAddr & (psMMUAttrib->ui32DataPageMask),
-			 ui32Value,
-			 ui32Mask,
-			 eOperator,
-			 MEMPOLL_COUNT,
-			 MEMPOLL_DELAY);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpMemKM(IMG_PVOID pvAltLinAddr,
-						PVRSRV_KERNEL_MEM_INFO *psMemInfo,
-						IMG_UINT32 ui32Offset,
-						IMG_UINT32 ui32Bytes,
-						IMG_UINT32 ui32Flags,
-						IMG_HANDLE hUniqueTag)
-{
-	PVRSRV_ERROR eErr;
-	IMG_UINT32 ui32NumPages;
-	IMG_UINT32 ui32PageByteOffset;
-	IMG_UINT32 ui32BlockBytes;
-	IMG_UINT8* pui8LinAddr;
-	IMG_UINT8* pui8DataLinAddr = IMG_NULL;
-	IMG_DEV_VIRTADDR sDevVPageAddr;
-	IMG_DEV_VIRTADDR sDevVAddr;
-	IMG_DEV_PHYADDR sDevPAddr;
-	IMG_UINT32 ui32ParamOutPos;
-	PDUMP_MMU_ATTRIB *psMMUAttrib;
-	IMG_UINT32 ui32DataPageSize;
-
-	PDUMP_GET_SCRIPT_AND_FILE_STRING();
-	
-	 
-	if (ui32Bytes == 0 || PDumpOSIsSuspended())
-	{
-		return PVRSRV_OK;
-	}
-
-	psMMUAttrib = ((BM_BUF*)psMemInfo->sMemBlk.hBuffer)->pMapping->pBMHeap->psMMUAttrib;
-	
-	
-
-	PVR_ASSERT((ui32Offset + ui32Bytes) <= psMemInfo->uAllocSize);
-
-	if (!PDumpOSJTInitialised())
-	{
-		return PVRSRV_ERROR_PDUMP_NOT_AVAILABLE;
-	}
-
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-	
-	{
-		BM_HEAP *pHeap = ((BM_BUF*)psMemInfo->sMemBlk.hBuffer)->pMapping->pBMHeap;
-		PVRSRV_DEVICE_NODE *psDeviceNode = pHeap->pBMContext->psDeviceNode;
-		
-		if( psDeviceNode->pfnMMUIsHeapShared(pHeap->pMMUHeap) )
-		{
-			ui32Flags |= PDUMP_FLAGS_PERSISTENT;
-		}
-	}
-#endif
-
-	
-	if(pvAltLinAddr)
-	{
-		pui8DataLinAddr = pvAltLinAddr;
-	}
-	else if(psMemInfo->pvLinAddrKM)
-	{
-		pui8DataLinAddr = (IMG_UINT8 *)psMemInfo->pvLinAddrKM + ui32Offset;
-	}
-	pui8LinAddr = (IMG_UINT8 *)psMemInfo->pvLinAddrKM;
-	sDevVAddr = psMemInfo->sDevVAddr;
-
-	
-	sDevVAddr.uiAddr += ui32Offset;
-	pui8LinAddr += ui32Offset;
-
-	PVR_ASSERT(pui8DataLinAddr);
-
-	PDumpOSCheckForSplitting(PDumpOSGetStream(PDUMP_STREAM_PARAM2), ui32Bytes, ui32Flags);
-
-	ui32ParamOutPos = PDumpOSGetStreamOffset(PDUMP_STREAM_PARAM2);
-
-	
-
-	if(!PDumpOSWriteString(PDumpOSGetStream(PDUMP_STREAM_PARAM2),
-						pui8DataLinAddr,
-						ui32Bytes,
-						ui32Flags))
-	{
-		return PVRSRV_ERROR_PDUMP_BUFFER_FULL;
-	}
-
-	if (PDumpOSGetParamFileNum() == 0)
-	{
-		eErr = PDumpOSSprintf(pszFileName, ui32MaxLenFileName, "%%0%%.prm");
-	}
-	else
-	{
-		eErr = PDumpOSSprintf(pszFileName, ui32MaxLenFileName, "%%0%%_%u.prm", PDumpOSGetParamFileNum());
-	}
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-
-	
-
-	eErr = PDumpOSBufprintf(hScript,
-			 ui32MaxLenScript,
-			 "-- LDB :%s:VA_%08X%08X:0x%08X 0x%08X 0x%08X %s\r\n",
-			 psMMUAttrib->sDevId.pszPDumpDevName,
-			 (IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag,
-			 psMemInfo->sDevVAddr.uiAddr,
-			 ui32Offset,
-			 ui32Bytes,
-			 ui32ParamOutPos,
-			 pszFileName);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-
-	
-
-
-	PDumpOSCPUVAddrToPhysPages(psMemInfo->sMemBlk.hOSMemHandle,
-			ui32Offset,
-			pui8LinAddr,
-			psMMUAttrib->ui32DataPageMask,
-			&ui32PageByteOffset);
-	ui32DataPageSize = psMMUAttrib->ui32DataPageMask + 1;
-	ui32NumPages = (ui32PageByteOffset + ui32Bytes + psMMUAttrib->ui32DataPageMask) / ui32DataPageSize;
-
-	while(ui32NumPages)
-	{
-		ui32NumPages--;
-	
-		
-		sDevVPageAddr.uiAddr = sDevVAddr.uiAddr - ui32PageByteOffset;
-
-		if (ui32DataPageSize <= PDUMP_TEMP_BUFFER_SIZE)
-		{
-			
-			PVR_ASSERT((sDevVPageAddr.uiAddr & psMMUAttrib->ui32DataPageMask) == 0);
-		}
-
-		
-		BM_GetPhysPageAddr(psMemInfo, sDevVPageAddr, &sDevPAddr);
-
-		
-		sDevPAddr.uiAddr += ui32PageByteOffset;
-
-		
-		if (ui32PageByteOffset + ui32Bytes > ui32DataPageSize)
-		{
-			
-			ui32BlockBytes = ui32DataPageSize - ui32PageByteOffset;
-		}
-		else
-		{
-			
-			ui32BlockBytes = ui32Bytes;
-		}
-
-		eErr = PDumpOSBufprintf(hScript,
-					 ui32MaxLenScript,
-					 "LDB :%s:PA_%08X%08X:0x%08X 0x%08X 0x%08X %s\r\n",
-					 psMMUAttrib->sDevId.pszPDumpDevName,
-					 (IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag,
-					 sDevPAddr.uiAddr & ~(psMMUAttrib->ui32DataPageMask),
-					 sDevPAddr.uiAddr & (psMMUAttrib->ui32DataPageMask),
-					 ui32BlockBytes,
-					 ui32ParamOutPos,
-					 pszFileName);
-		if(eErr != PVRSRV_OK)
-		{
-			return eErr;
-		}
-		PDumpOSWriteString2(hScript, ui32Flags);
-
-		
-
-#if defined(SGX_FEATURE_VARIABLE_MMU_PAGE_SIZE)
-		
-		ui32PageByteOffset = (ui32PageByteOffset + ui32BlockBytes) % ui32DataPageSize;
-#else
-		
-		ui32PageByteOffset = 0;
-#endif
-		
-		ui32Bytes -= ui32BlockBytes;	 
-		
-		sDevVAddr.uiAddr += ui32BlockBytes;
-		
-		pui8LinAddr += ui32BlockBytes;
-		
-		ui32ParamOutPos += ui32BlockBytes;
-	}
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpMemPDEntriesKM(PDUMP_MMU_ATTRIB *psMMUAttrib,
-								 IMG_HANDLE hOSMemHandle,
-								 IMG_CPU_VIRTADDR pvLinAddr,
-								 IMG_UINT32 ui32Bytes,
-								 IMG_UINT32 ui32Flags,
-								 IMG_BOOL bInitialisePages,
-								 IMG_HANDLE hUniqueTag1,
-								 IMG_HANDLE hUniqueTag2)
-{
-	PDUMP_MMU_ATTRIB sMMUAttrib;
-	
-	
-	sMMUAttrib = *psMMUAttrib;
-	sMMUAttrib.ui32PTSize = (IMG_UINT32)HOST_PAGESIZE();
-	return PDumpMemPTEntriesKM(	&sMMUAttrib,
-								hOSMemHandle,
-								pvLinAddr,
-								ui32Bytes,
-								ui32Flags,
-								bInitialisePages,
-								hUniqueTag1,
-								hUniqueTag2);
-}
-
-PVRSRV_ERROR PDumpMemPTEntriesKM(PDUMP_MMU_ATTRIB *psMMUAttrib,
-								 IMG_HANDLE hOSMemHandle,
-								 IMG_CPU_VIRTADDR pvLinAddr,
-								 IMG_UINT32 ui32Bytes,
-								 IMG_UINT32 ui32Flags,
-								 IMG_BOOL bInitialisePages,
-								 IMG_HANDLE hUniqueTag1,
-								 IMG_HANDLE hUniqueTag2)
-{
-	PVRSRV_ERROR eErr;
-	IMG_UINT32 ui32NumPages;
-	IMG_UINT32 ui32PageOffset;
-	IMG_UINT32 ui32BlockBytes;
-	IMG_UINT8* pui8LinAddr;
-	IMG_DEV_PHYADDR sDevPAddr;
-	IMG_CPU_PHYADDR sCpuPAddr;
-	IMG_UINT32 ui32Offset;
-	IMG_UINT32 ui32ParamOutPos;
-	IMG_UINT32 ui32PageMask; 
-
-	PDUMP_GET_SCRIPT_AND_FILE_STRING();
-	ui32Flags |= ( _PDumpIsPersistent() ) ? PDUMP_FLAGS_PERSISTENT : 0;
-
-	if (PDumpOSIsSuspended())
-	{
-		return PVRSRV_OK;
-	}
-
-	if (!PDumpOSJTInitialised())
-	{
-		return PVRSRV_ERROR_PDUMP_NOT_AVAILABLE;
-	}
-
-	if (!pvLinAddr)
-	{
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	PDumpOSCheckForSplitting(PDumpOSGetStream(PDUMP_STREAM_PARAM2), ui32Bytes, ui32Flags);
-
-	ui32ParamOutPos = PDumpOSGetStreamOffset(PDUMP_STREAM_PARAM2);
-
-	if (bInitialisePages)
-	{
-		
-
-
-		if (!PDumpOSWriteString(PDumpOSGetStream(PDUMP_STREAM_PARAM2),
-							pvLinAddr,
-							ui32Bytes,
-							ui32Flags | PDUMP_FLAGS_CONTINUOUS))
-		{
-			return PVRSRV_ERROR_PDUMP_BUFFER_FULL;
-		}
-
-		if (PDumpOSGetParamFileNum() == 0)
-		{
-			eErr = PDumpOSSprintf(pszFileName, ui32MaxLenFileName, "%%0%%.prm");
-		}
-		else
-		{
-			eErr = PDumpOSSprintf(pszFileName, ui32MaxLenFileName, "%%0%%_%u.prm", PDumpOSGetParamFileNum());
-		}
-		if(eErr != PVRSRV_OK)
-		{
-			return eErr;
-		}
-	}
-
-	
-
-
-
-
-	ui32PageMask = psMMUAttrib->ui32PTSize - 1;
-
-	
-
-	
- 	ui32PageOffset	= (IMG_UINT32)((IMG_UINTPTR_T)pvLinAddr & (psMMUAttrib->ui32PTSize - 1));
- 	ui32NumPages	= (ui32PageOffset + ui32Bytes + psMMUAttrib->ui32PTSize - 1) / psMMUAttrib->ui32PTSize;
-	pui8LinAddr		= (IMG_UINT8*) pvLinAddr;
-
-	while (ui32NumPages)
-	{
-		ui32NumPages--;
-		
-
-
-
-
-
-		sCpuPAddr = OSMapLinToCPUPhys(hOSMemHandle, pui8LinAddr);
-		sDevPAddr = SysCpuPAddrToDevPAddr(psMMUAttrib->sDevId.eDeviceType, sCpuPAddr);
-
-		
-		if (ui32PageOffset + ui32Bytes > psMMUAttrib->ui32PTSize)
-		{
-			
-			ui32BlockBytes = psMMUAttrib->ui32PTSize - ui32PageOffset;
-		}
-		else
-		{
-			
-			ui32BlockBytes = ui32Bytes;
-		}
-
-		
-
-		
-		if (bInitialisePages)
-		{
-			eErr = PDumpOSBufprintf(hScript,
-					 ui32MaxLenScript,
-					 "LDB :%s:PA_%08X%08X:0x%08X 0x%08X 0x%08X %s\r\n",
-					 psMMUAttrib->sDevId.pszPDumpDevName,
-					 (IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag1,
-					 sDevPAddr.uiAddr & ~ui32PageMask,
-					 sDevPAddr.uiAddr & ui32PageMask,
-					 ui32BlockBytes,
-					 ui32ParamOutPos,
-					 pszFileName);
-			if(eErr != PVRSRV_OK)
-			{
-				return eErr;
-			}
-			PDumpOSWriteString2(hScript, ui32Flags | PDUMP_FLAGS_CONTINUOUS);
-		}
-		else
-		{
-			for (ui32Offset = 0; ui32Offset < ui32BlockBytes; ui32Offset += sizeof(IMG_UINT32))
-			{
-				IMG_UINT32 ui32PTE = *((IMG_UINT32 *)(IMG_UINTPTR_T)(pui8LinAddr + ui32Offset));  
-
-				if ((ui32PTE & psMMUAttrib->ui32PDEMask) != 0)
-				{
-					
-#if defined(SGX_FEATURE_36BIT_MMU)
-					eErr = PDumpOSBufprintf(hScript,
-							ui32MaxLenScript,
-							 "WRW :%s:$1 :%s:PA_%08X%08X:0x0\r\n",
-							 psMMUAttrib->sDevId.pszPDumpDevName,
-							 psMMUAttrib->sDevId.pszPDumpDevName,
-							 (IMG_UINT32)hUniqueTag2,
-							 (ui32PTE & psMMUAttrib->ui32PDEMask) << psMMUAttrib->ui32PTEAlignShift);
-					if(eErr != PVRSRV_OK)
-					{
-						return eErr;
-					}
-					PDumpOSWriteString2(hScript, ui32Flags | PDUMP_FLAGS_CONTINUOUS);
-					eErr = PDumpOSBufprintf(hScript, ui32MaxLenScript, "SHR :%s:$1 :%s:$1 0x4\r\n",
-								psMMUAttrib->sDevId.pszPDumpDevName,
-								psMMUAttrib->sDevId.pszPDumpDevName);
-					if(eErr != PVRSRV_OK)
-					{
-						return eErr;
-					}
-					PDumpOSWriteString2(hScript, ui32Flags | PDUMP_FLAGS_CONTINUOUS);
-					eErr = PDumpOSBufprintf(hScript, ui32MaxLenScript, "OR :%s:$1 :%s:$1 0x%08X\r\n",
-								psMMUAttrib->sDevId.pszPDumpDevName,
-								psMMUAttrib->sDevId.pszPDumpDevName,
-								ui32PTE & ~psMMUAttrib->ui32PDEMask);
-					if(eErr != PVRSRV_OK)
-					{
-						return eErr;
-					}
-					PDumpOSWriteString2(hScript, ui32Flags | PDUMP_FLAGS_CONTINUOUS);
-					eErr = PDumpOSBufprintf(hScript,
-							ui32MaxLenScript,
-							 "WRW :%s:PA_%08X%08X:0x%08X :%s:$1\r\n",
-							 psMMUAttrib->sDevId.pszPDumpDevName,
-							 (IMG_UINT32)hUniqueTag1,
-							 (sDevPAddr.uiAddr + ui32Offset) & ~ui32PageMask,
-							 (sDevPAddr.uiAddr + ui32Offset) & ui32PageMask,
-							 psMMUAttrib->sDevId.pszPDumpDevName);
-					if(eErr != PVRSRV_OK)
-					{
-						return eErr;
-					}
-					PDumpOSWriteString2(hScript, ui32Flags | PDUMP_FLAGS_CONTINUOUS);
-#else
-					eErr = PDumpOSBufprintf(hScript,
-							ui32MaxLenScript,
-							 "WRW :%s:PA_%08X%08X:0x%08X :%s:PA_%08X%08X:0x%08X\r\n",
-							 psMMUAttrib->sDevId.pszPDumpDevName,
-							 (IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag1,
-							 (sDevPAddr.uiAddr + ui32Offset) & ~ui32PageMask,
-							 (sDevPAddr.uiAddr + ui32Offset) & ui32PageMask,
-							 psMMUAttrib->sDevId.pszPDumpDevName,
-							 (IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag2,
-							 (ui32PTE & psMMUAttrib->ui32PDEMask) << psMMUAttrib->ui32PTEAlignShift,
-							 ui32PTE & ~psMMUAttrib->ui32PDEMask);
-					if(eErr != PVRSRV_OK)
-					{
-						return eErr;
-					}
-					PDumpOSWriteString2(hScript, ui32Flags | PDUMP_FLAGS_CONTINUOUS);
-#endif
-				}
-				else
-				{
-#if !defined(FIX_HW_BRN_31620)
-					PVR_ASSERT((ui32PTE & psMMUAttrib->ui32PTEValid) == 0UL);
-#endif
-					eErr = PDumpOSBufprintf(hScript,
-							ui32MaxLenScript,
-							 "WRW :%s:PA_%08X%08X:0x%08X 0x%08X%08X\r\n",
-							 psMMUAttrib->sDevId.pszPDumpDevName,
-							 (IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag1,
-							 (sDevPAddr.uiAddr + ui32Offset) & ~ui32PageMask,
-							 (sDevPAddr.uiAddr + ui32Offset) & ui32PageMask,
-							 (ui32PTE << psMMUAttrib->ui32PTEAlignShift),
-							 (IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag2);
-					if(eErr != PVRSRV_OK)
-					{
-						return eErr;
-					}
-					PDumpOSWriteString2(hScript, ui32Flags | PDUMP_FLAGS_CONTINUOUS);
-				}
-			}
-		}
-
-		
-
-		
-		ui32PageOffset = 0;
-		
-		ui32Bytes -= ui32BlockBytes;
-		
-		pui8LinAddr += ui32BlockBytes;
-		
-		ui32ParamOutPos += ui32BlockBytes;
-	}
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpPDDevPAddrKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo,
-							   IMG_UINT32 ui32Offset,
-							   IMG_DEV_PHYADDR sPDDevPAddr,
-							   IMG_HANDLE hUniqueTag1,
-							   IMG_HANDLE hUniqueTag2)
-{
-	PVRSRV_ERROR eErr;
-	IMG_UINT32 ui32PageByteOffset;
-	IMG_DEV_VIRTADDR sDevVAddr;
-	IMG_DEV_VIRTADDR sDevVPageAddr;
-	IMG_DEV_PHYADDR sDevPAddr;
-	IMG_UINT32 ui32Flags = PDUMP_FLAGS_CONTINUOUS;
-	IMG_UINT32 ui32ParamOutPos;
-	PDUMP_MMU_ATTRIB *psMMUAttrib;
-	IMG_UINT32 ui32PageMask; 
-
-	PDUMP_GET_SCRIPT_AND_FILE_STRING();
-
-	if (!PDumpOSJTInitialised())
-	{
-		return PVRSRV_ERROR_PDUMP_NOT_AVAILABLE;
-	}
-
-	psMMUAttrib = ((BM_BUF*)psMemInfo->sMemBlk.hBuffer)->pMapping->pBMHeap->psMMUAttrib;
-	ui32PageMask = psMMUAttrib->ui32PTSize - 1;
-
-	ui32ParamOutPos = PDumpOSGetStreamOffset(PDUMP_STREAM_PARAM2);
-
-	
-	if(!PDumpOSWriteString(PDumpOSGetStream(PDUMP_STREAM_PARAM2),
-						(IMG_UINT8 *)&sPDDevPAddr,
-						sizeof(IMG_DEV_PHYADDR),
-						ui32Flags))
-	{
-		return PVRSRV_ERROR_PDUMP_BUFFER_FULL;
-	}
-
-	if (PDumpOSGetParamFileNum() == 0)
-	{
-		eErr = PDumpOSSprintf(pszFileName, ui32MaxLenFileName, "%%0%%.prm");
-	}
-	else
-	{
-		eErr = PDumpOSSprintf(pszFileName, ui32MaxLenFileName, "%%0%%_%u.prm", PDumpOSGetParamFileNum());
-	}
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-
-	
-	eErr = PDumpOSBufprintf(hScript,
-			ui32MaxLenScript,
-			"-- LDB :%s:PA_0x%08X%08X:0x%08X 0x%08X 0x%08X %s\r\n",
-			psMMUAttrib->sDevId.pszPDumpDevName,
-			(IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag1,
-			sPDDevPAddr.uiAddr & ~ui32PageMask,
-			sPDDevPAddr.uiAddr & ui32PageMask,
-			sizeof(IMG_DEV_PHYADDR),
-			ui32ParamOutPos,
-			pszFileName);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-
-	
-	sDevVAddr = psMemInfo->sDevVAddr;
-	ui32PageByteOffset = sDevVAddr.uiAddr & ui32PageMask;
-
-	sDevVPageAddr.uiAddr = sDevVAddr.uiAddr - ui32PageByteOffset;
-	PVR_ASSERT((sDevVPageAddr.uiAddr & 0xFFF) == 0);
-
-	BM_GetPhysPageAddr(psMemInfo, sDevVPageAddr, &sDevPAddr);
-	sDevPAddr.uiAddr += ui32PageByteOffset + ui32Offset;
-
-	if ((sPDDevPAddr.uiAddr & psMMUAttrib->ui32PDEMask) != 0UL)
-	{
-#if defined(SGX_FEATURE_36BIT_MMU)
-		eErr = PDumpOSBufprintf(hScript,
-				ui32MaxLenScript,
-				 "WRW :%s:$1 :%s:PA_%08X%08X:0x0\r\n",
-				 psMMUAttrib->sDevId.pszPDumpDevName,
-				 psMMUAttrib->sDevId.pszPDumpDevName,
-				 (IMG_UINT32)hUniqueTag2,
-				 sPDDevPAddr.uiAddr);
-		if(eErr != PVRSRV_OK)
-		{
-			return eErr;
-		}
-		PDumpOSWriteString2(hScript, ui32Flags);
-
-		eErr = PDumpOSBufprintf(hScript, ui32MaxLenScript, "AND  :%s:$2 :%s:$1 0xFFFFFFFF\r\n",
-					psMMUAttrib->sDevId.pszPDumpDevName,
-					psMMUAttrib->sDevId.pszPDumpDevName);
-		if(eErr != PVRSRV_OK)
-		{
-			return eErr;
-		}
-		PDumpOSWriteString2(hScript, ui32Flags);
-
-		eErr = PDumpOSBufprintf(hScript,
-				ui32MaxLenScript,
-				 "WRW :%s:PA_%08X%08X:0x%08X :%s:$2\r\n",
-				 psMMUAttrib->sDevId.pszPDumpDevName,
-				 (IMG_UINT32)hUniqueTag1,
-				 (sDevPAddr.uiAddr) & ~(psMMUAttrib->ui32DataPageMask),
-				 (sDevPAddr.uiAddr) & (psMMUAttrib->ui32DataPageMask),
-				 psMMUAttrib->sDevId.pszPDumpDevName);
-		if(eErr != PVRSRV_OK)
-		{
-			return eErr;
-		}
-		PDumpOSWriteString2(hScript, ui32Flags);
-
-		eErr = PDumpOSBufprintf(hScript, ui32MaxLenScript, "SHR :%s:$2 :%s:$1 0x20\r\n",
-				psMMUAttrib->sDevId.pszPDumpDevName,
-				psMMUAttrib->sDevId.pszPDumpDevName);
-		if(eErr != PVRSRV_OK)
-		{
-			return eErr;
-		}
-		PDumpOSWriteString2(hScript, ui32Flags);
-
-		eErr = PDumpOSBufprintf(hScript,
-				ui32MaxLenScript,
-				 "WRW :%s:PA_%08X%08X:0x%08X :%s:$2\r\n",
-				 psMMUAttrib->sDevId.pszPDumpDevName,
-				 (IMG_UINT32)hUniqueTag1,
-				 (sDevPAddr.uiAddr + 4) & ~(psMMUAttrib->ui32DataPageMask),
-				 (sDevPAddr.uiAddr + 4) & (psMMUAttrib->ui32DataPageMask),
-				 psMMUAttrib->sDevId.pszPDumpDevName);
-		if(eErr != PVRSRV_OK)
-		{
-			return eErr;
-		}
-		PDumpOSWriteString2(hScript, ui32Flags);
-#else
-		eErr = PDumpOSBufprintf(hScript,
-				 ui32MaxLenScript,
-				 "WRW :%s:PA_%08X%08X:0x%08X :%s:PA_%08X%08X:0x%08X\r\n",
-				 psMMUAttrib->sDevId.pszPDumpDevName,
-				 (IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag1,
-				 sDevPAddr.uiAddr & ~ui32PageMask,
-				 sDevPAddr.uiAddr & ui32PageMask,
-				 psMMUAttrib->sDevId.pszPDumpDevName,
-				 (IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag2,
-				 sPDDevPAddr.uiAddr & psMMUAttrib->ui32PDEMask,
-				 sPDDevPAddr.uiAddr & ~psMMUAttrib->ui32PDEMask);
-		if(eErr != PVRSRV_OK)
-		{
-			return eErr;
-		}
-#endif
-	}
-	else
-	{
-		PVR_ASSERT(!(sDevPAddr.uiAddr & psMMUAttrib->ui32PTEValid));
-		eErr = PDumpOSBufprintf(hScript,
-				 ui32MaxLenScript,
-				 "WRW :%s:PA_%08X%08X:0x%08X 0x%08X\r\n",
-				 psMMUAttrib->sDevId.pszPDumpDevName,
-				 (IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag1,
-				 sDevPAddr.uiAddr & ~ui32PageMask,
-				 sDevPAddr.uiAddr & ui32PageMask,
-				 sPDDevPAddr.uiAddr);
-		if(eErr != PVRSRV_OK)
-		{
-			return eErr;
-		}
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-
-	return PVRSRV_OK;
-}
-
-
-
-
-PVRSRV_ERROR PDumpCommentKM(IMG_CHAR *pszComment, IMG_UINT32 ui32Flags)
-{
-	PVRSRV_ERROR eErr;
-	IMG_CHAR pszCommentPrefix[] = "-- "; 
-#if defined(PDUMP_DEBUG_OUTFILES)
-	IMG_CHAR pszTemp[256];
-#endif
-	IMG_UINT32 ui32LenCommentPrefix;
-	PDUMP_GET_SCRIPT_STRING();
-	PDUMP_DBG(("PDumpCommentKM"));
-#if defined(PDUMP_DEBUG_OUTFILES)
-	
-	ui32Flags |= ( _PDumpIsPersistent() ) ? PDUMP_FLAGS_PERSISTENT : 0;
-#endif
-	
-	PDumpOSVerifyLineEnding(pszComment, ui32MaxLen);
-
-	
-	ui32LenCommentPrefix = PDumpOSBuflen(pszCommentPrefix, sizeof(pszCommentPrefix));
-
-	
-	
-	if (!PDumpOSWriteString(PDumpOSGetStream(PDUMP_STREAM_SCRIPT2),
-			  (IMG_UINT8*)pszCommentPrefix,
-			  ui32LenCommentPrefix,
-			  ui32Flags))
-	{
-#if defined(PDUMP_DEBUG_OUTFILES)
-		if(ui32Flags & PDUMP_FLAGS_CONTINUOUS)
-		{
-			PVR_DPF((PVR_DBG_WARNING, "Incomplete comment, %d: %s (continuous set)",
-					 g_ui32EveryLineCounter, pszComment));
-			return PVRSRV_ERROR_PDUMP_BUFFER_FULL;
-		}
-		else if(ui32Flags & PDUMP_FLAGS_PERSISTENT)
-		{
-			PVR_DPF((PVR_DBG_WARNING, "Incomplete comment, %d: %s (persistent set)",
-					 g_ui32EveryLineCounter, pszComment));
-			return PVRSRV_ERROR_CMD_NOT_PROCESSED;
-		}
-		else
-		{
-			PVR_DPF((PVR_DBG_WARNING, "Incomplete comment, %d: %s",
-					 g_ui32EveryLineCounter, pszComment));
-			return PVRSRV_ERROR_CMD_NOT_PROCESSED;
-		}
-#else
-		PVR_DPF((PVR_DBG_WARNING, "Incomplete comment, %s",
-					 pszComment));
-		return PVRSRV_ERROR_CMD_NOT_PROCESSED;
-#endif
-	}
-
-#if defined(PDUMP_DEBUG_OUTFILES)
-	
-	eErr = PDumpOSSprintf(pszTemp, 256, "%d-%d %s",
-		_PDumpGetPID(),
-		g_ui32EveryLineCounter,
-		pszComment);
-
-	
-	eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "%s",
-		pszTemp);
-#else
-	eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "%s",
-		pszComment);
-#endif
-	if( (eErr != PVRSRV_OK) &&
-		(eErr != PVRSRV_ERROR_PDUMP_BUF_OVERFLOW))
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR PDumpCommentWithFlags(IMG_UINT32 ui32Flags, IMG_CHAR * pszFormat, ...)
-{
-	PVRSRV_ERROR eErr;
-	PDUMP_va_list ap;
-	PDUMP_GET_MSG_STRING();
-
-	
-	PDUMP_va_start(ap, pszFormat);
-	eErr = PDumpOSVSprintf(pszMsg, ui32MaxLen, pszFormat, ap);
-	PDUMP_va_end(ap);
-
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	return PDumpCommentKM(pszMsg, ui32Flags);
-}
-
-PVRSRV_ERROR PDumpComment(IMG_CHAR *pszFormat, ...)
-{
-	PVRSRV_ERROR eErr;
-	PDUMP_va_list ap;
-	PDUMP_GET_MSG_STRING();
-
-	
-	PDUMP_va_start(ap, pszFormat);
-	eErr = PDumpOSVSprintf(pszMsg, ui32MaxLen, pszFormat, ap);
-	PDUMP_va_end(ap);
-
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	return PDumpCommentKM(pszMsg, PDUMP_FLAGS_CONTINUOUS);
-}
-
-PVRSRV_ERROR PDumpDriverInfoKM(IMG_CHAR *pszString, IMG_UINT32 ui32Flags)
-{
-	PVRSRV_ERROR eErr;
-	IMG_UINT32	ui32MsgLen;
-	PDUMP_GET_MSG_STRING();
-
-	
-	eErr = PDumpOSSprintf(pszMsg, ui32MaxLen, "%s", pszString);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-
-	
-	PDumpOSVerifyLineEnding(pszMsg, ui32MaxLen);
-	ui32MsgLen = PDumpOSBuflen(pszMsg, ui32MaxLen);
-
-	if	(!PDumpOSWriteString(PDumpOSGetStream(PDUMP_STREAM_DRIVERINFO),
-						  (IMG_UINT8*)pszMsg,
-						  ui32MsgLen,
-						  ui32Flags))
-	{
-		if	(ui32Flags & PDUMP_FLAGS_CONTINUOUS)
-		{
-			return PVRSRV_ERROR_PDUMP_BUFFER_FULL;
-		}
-		else
-		{
-			return PVRSRV_ERROR_CMD_NOT_PROCESSED;
-		}
-	}
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpBitmapKM(	PVRSRV_DEVICE_NODE *psDeviceNode,
-							IMG_CHAR *pszFileName,
-							IMG_UINT32 ui32FileOffset,
-							IMG_UINT32 ui32Width,
-							IMG_UINT32 ui32Height,
-							IMG_UINT32 ui32StrideInBytes,
-							IMG_DEV_VIRTADDR sDevBaseAddr,
-							IMG_HANDLE hDevMemContext,
-							IMG_UINT32 ui32Size,
-							PDUMP_PIXEL_FORMAT ePixelFormat,
-							PDUMP_MEM_FORMAT eMemFormat,
-							IMG_UINT32 ui32PDumpFlags)
-{
-	PVRSRV_DEVICE_IDENTIFIER *psDevId = &psDeviceNode->sDevId;
-	IMG_UINT32 ui32MMUContextID;
-	PVRSRV_ERROR eErr;
-	PDUMP_GET_SCRIPT_STRING();
-
-	if ( _PDumpIsPersistent() )
-	{
-		return PVRSRV_OK;
-	}
-
-	PDumpCommentWithFlags(ui32PDumpFlags, "\r\n-- Dump bitmap of render\r\n");
-
-	
-	ui32MMUContextID = psDeviceNode->pfnMMUGetContextID( hDevMemContext );
-
-	eErr = PDumpOSBufprintf(hScript,
-				ui32MaxLen,
-				"SII %s %s.bin :%s:v%x:0x%08X 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\r\n",
-				pszFileName,
-				pszFileName,
-				psDevId->pszPDumpDevName,
-				ui32MMUContextID,
-				sDevBaseAddr.uiAddr,
-				ui32Size,
-				ui32FileOffset,
-				ePixelFormat,
-				ui32Width,
-				ui32Height,
-				ui32StrideInBytes,
-				eMemFormat);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-
-	PDumpOSWriteString2( hScript, ui32PDumpFlags);
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpReadRegKM		(	IMG_CHAR *pszPDumpRegName,
-									IMG_CHAR *pszFileName,
-									IMG_UINT32 ui32FileOffset,
-									IMG_UINT32 ui32Address,
-									IMG_UINT32 ui32Size,
-									IMG_UINT32 ui32PDumpFlags)
-{
-	PVRSRV_ERROR eErr;
-	PDUMP_GET_SCRIPT_STRING();
-
-	PVR_UNREFERENCED_PARAMETER(ui32Size);
-
-	eErr = PDumpOSBufprintf(hScript,
-			ui32MaxLen,
-			"SAB :%s:0x%08X 0x%08X %s\r\n",
-			pszPDumpRegName,
-			ui32Address,
-			ui32FileOffset,
-			pszFileName);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-
-	PDumpOSWriteString2( hScript, ui32PDumpFlags);
-
-	return PVRSRV_OK;
-}
-
-IMG_BOOL PDumpTestNextFrame(IMG_UINT32 ui32CurrentFrame)
-{
-	IMG_BOOL	bFrameDumped;
-
-	
-
-	(IMG_VOID) PDumpSetFrameKM(ui32CurrentFrame + 1);
-	bFrameDumped = PDumpIsCaptureFrameKM();
-	(IMG_VOID) PDumpSetFrameKM(ui32CurrentFrame);
-
-	return bFrameDumped;
-}
-
-static PVRSRV_ERROR PDumpSignatureRegister	(PVRSRV_DEVICE_IDENTIFIER *psDevId,
-									 IMG_CHAR	*pszFileName,
-									 IMG_UINT32		ui32Address,
-									 IMG_UINT32		ui32Size,
-									 IMG_UINT32		*pui32FileOffset,
-									 IMG_UINT32		ui32Flags)
-{
-	PVRSRV_ERROR eErr;
-	PDUMP_GET_SCRIPT_STRING();
-
-	eErr = PDumpOSBufprintf(hScript,
-			ui32MaxLen,
-			"SAB :%s:0x%08X 0x%08X %s\r\n",
-			psDevId->pszPDumpRegName,
-			ui32Address,
-			*pui32FileOffset,
-			pszFileName);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-
-	PDumpOSWriteString2(hScript, ui32Flags);
-	*pui32FileOffset += ui32Size;
-	return PVRSRV_OK;
-}
-
-static IMG_VOID PDumpRegisterRange(PVRSRV_DEVICE_IDENTIFIER *psDevId,
-									IMG_CHAR *pszFileName,
-									IMG_UINT32 *pui32Registers,
-									IMG_UINT32  ui32NumRegisters,
-									IMG_UINT32 *pui32FileOffset,
-									IMG_UINT32	ui32Size,
-									IMG_UINT32	ui32Flags)
-{
-	IMG_UINT32 i;
-	for (i = 0; i < ui32NumRegisters; i++)
-	{
-		PDumpSignatureRegister(psDevId, pszFileName, pui32Registers[i], ui32Size, pui32FileOffset, ui32Flags);
-	}
-}
-
-PVRSRV_ERROR PDump3DSignatureRegisters(PVRSRV_DEVICE_IDENTIFIER *psDevId,
-										IMG_UINT32 ui32DumpFrameNum,
-										IMG_BOOL bLastFrame,
-										IMG_UINT32 *pui32Registers,
-										IMG_UINT32 ui32NumRegisters)
-{
-	PVRSRV_ERROR eErr;
-	IMG_UINT32	ui32FileOffset, ui32Flags;
-
-	PDUMP_GET_FILE_STRING();
-
-	ui32Flags = bLastFrame ? PDUMP_FLAGS_LASTFRAME : 0;
-	ui32FileOffset = 0;
-
-	PDumpCommentWithFlags(ui32Flags, "\r\n-- Dump 3D signature registers\r\n");
-	eErr = PDumpOSSprintf(pszFileName, ui32MaxLen, "out%u_3d.sig", ui32DumpFrameNum);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-
-	PDumpRegisterRange(psDevId,
-						pszFileName,
-						pui32Registers,
-						ui32NumRegisters,
-						&ui32FileOffset,
-						sizeof(IMG_UINT32),
-						ui32Flags);
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpTASignatureRegisters	(PVRSRV_DEVICE_IDENTIFIER *psDevId,
-			 IMG_UINT32 ui32DumpFrameNum,
-			 IMG_UINT32	ui32TAKickCount,
-			 IMG_BOOL	bLastFrame,
-			 IMG_UINT32 *pui32Registers,
-			 IMG_UINT32 ui32NumRegisters)
-{
-	PVRSRV_ERROR eErr;
-	IMG_UINT32	ui32FileOffset, ui32Flags;
-
-	PDUMP_GET_FILE_STRING();
-
-	ui32Flags = bLastFrame ? PDUMP_FLAGS_LASTFRAME : 0;
-	ui32FileOffset = ui32TAKickCount * ui32NumRegisters * sizeof(IMG_UINT32);
-
-	PDumpCommentWithFlags(ui32Flags, "\r\n-- Dump TA signature registers\r\n");
-	eErr = PDumpOSSprintf(pszFileName, ui32MaxLen, "out%u_ta.sig", ui32DumpFrameNum);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-
-	PDumpRegisterRange(psDevId,
-						pszFileName, 
-						pui32Registers, 
-						ui32NumRegisters, 
-						&ui32FileOffset, 
-						sizeof(IMG_UINT32), 
-						ui32Flags);
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpCounterRegisters (PVRSRV_DEVICE_IDENTIFIER *psDevId,
-								IMG_UINT32 ui32DumpFrameNum,
-								IMG_BOOL	bLastFrame,
-								IMG_UINT32 *pui32Registers,
-								IMG_UINT32 ui32NumRegisters)
-{
-	PVRSRV_ERROR eErr;
-	IMG_UINT32	ui32FileOffset, ui32Flags;
-
-	PDUMP_GET_FILE_STRING();
-
-	ui32Flags = bLastFrame ? PDUMP_FLAGS_LASTFRAME : 0UL;
-	ui32FileOffset = 0UL;
-
-	PDumpCommentWithFlags(ui32Flags, "\r\n-- Dump counter registers\r\n");
-	eErr = PDumpOSSprintf(pszFileName, ui32MaxLen, "out%u.perf", ui32DumpFrameNum);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-
-	PDumpRegisterRange(psDevId,
-						pszFileName,
-						pui32Registers,
-						ui32NumRegisters,
-						&ui32FileOffset,
-						sizeof(IMG_UINT32),
-						ui32Flags);
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpRegRead(IMG_CHAR *pszPDumpRegName,
-							const IMG_UINT32 ui32RegOffset,
-							IMG_UINT32 ui32Flags)
-{
-	PVRSRV_ERROR eErr;
-	PDUMP_GET_SCRIPT_STRING();
-
-	eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "RDW :%s:0x%X\r\n",
-							pszPDumpRegName, 
-							ui32RegOffset);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpSaveMemKM (PVRSRV_DEVICE_IDENTIFIER *psDevId,
-							 IMG_CHAR			*pszFileName,
-							 IMG_UINT32			ui32FileOffset,
-							 IMG_DEV_VIRTADDR	sDevBaseAddr,
-							 IMG_UINT32 		ui32Size,
-							 IMG_UINT32			ui32MMUContextID,
-							 IMG_UINT32 		ui32PDumpFlags)
-{
-	PVRSRV_ERROR eErr;
-	PDUMP_GET_SCRIPT_STRING();
-	
-	eErr = PDumpOSBufprintf(hScript,
-							ui32MaxLen,
-							"SAB :%s:v%x:0x%08X 0x%08X 0x%08X %s.bin\r\n",
-							psDevId->pszPDumpDevName,
-							ui32MMUContextID,
-							sDevBaseAddr.uiAddr,
-							ui32Size,
-							ui32FileOffset,
-							pszFileName);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-
-	PDumpOSWriteString2(hScript, ui32PDumpFlags);
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpCycleCountRegRead(PVRSRV_DEVICE_IDENTIFIER *psDevId,
-									const IMG_UINT32 ui32RegOffset,
-									IMG_BOOL bLastFrame)
-{
-	PVRSRV_ERROR eErr;
-	PDUMP_GET_SCRIPT_STRING();
-
-	eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "RDW :%s:0x%X\r\n", 
-							psDevId->pszPDumpRegName,
-							ui32RegOffset);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, bLastFrame ? PDUMP_FLAGS_LASTFRAME : 0);
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR PDumpSignatureBuffer (PVRSRV_DEVICE_IDENTIFIER *psDevId,
-								   IMG_CHAR			*pszFileName,
-								   IMG_CHAR			*pszBufferType,
-								   IMG_UINT32		ui32FileOffset,
-								   IMG_DEV_VIRTADDR	sDevBaseAddr,
-								   IMG_UINT32 		ui32Size,
-								   IMG_UINT32		ui32MMUContextID,
-								   IMG_UINT32 		ui32PDumpFlags)
-{
-	PDumpCommentWithFlags(ui32PDumpFlags, "\r\n-- Dump microkernel %s signature Buffer\r\n",
-						  pszBufferType);
-	PDumpCommentWithFlags(ui32PDumpFlags, "Buffer format (sizes in 32-bit words):\r\n");
-	PDumpCommentWithFlags(ui32PDumpFlags, "\tNumber of signatures per sample (1)\r\n");
-	PDumpCommentWithFlags(ui32PDumpFlags, "\tNumber of samples (1)\r\n");
-	PDumpCommentWithFlags(ui32PDumpFlags, "\tSignature register offsets (1 * number of signatures)\r\n");
-	PDumpCommentWithFlags(ui32PDumpFlags, "\tSignature sample values (number of samples * number of signatures)\r\n");
-	PDumpCommentWithFlags(ui32PDumpFlags, "Note: If buffer is full, last sample is final state after test completed\r\n");
-	return PDumpSaveMemKM(psDevId, pszFileName, ui32FileOffset, sDevBaseAddr, ui32Size,
-						  ui32MMUContextID, ui32PDumpFlags);
-}
-
-
-PVRSRV_ERROR PDumpHWPerfCBKM (PVRSRV_DEVICE_IDENTIFIER *psDevId,
-							  IMG_CHAR			*pszFileName,
-							  IMG_UINT32		ui32FileOffset,
-							  IMG_DEV_VIRTADDR	sDevBaseAddr,
-							  IMG_UINT32 		ui32Size,
-							  IMG_UINT32		ui32MMUContextID,
-							  IMG_UINT32 		ui32PDumpFlags)
-{
-	PDumpCommentWithFlags(ui32PDumpFlags, "\r\n-- Dump Hardware Performance Circular Buffer\r\n");
-	return PDumpSaveMemKM(psDevId, pszFileName, ui32FileOffset, sDevBaseAddr, ui32Size,
-						  ui32MMUContextID, ui32PDumpFlags);
-}
-
-
-PVRSRV_ERROR PDumpCBP(PPVRSRV_KERNEL_MEM_INFO		psROffMemInfo,
-			  IMG_UINT32					ui32ROffOffset,
-			  IMG_UINT32					ui32WPosVal,
-			  IMG_UINT32					ui32PacketSize,
-			  IMG_UINT32					ui32BufferSize,
-			  IMG_UINT32					ui32Flags,
-			  IMG_HANDLE					hUniqueTag)
-{
-	PVRSRV_ERROR eErr;
-	IMG_UINT32			ui32PageOffset;
-	IMG_UINT8			*pui8LinAddr;
-	IMG_DEV_VIRTADDR	sDevVAddr;
-	IMG_DEV_PHYADDR		sDevPAddr;
-	IMG_DEV_VIRTADDR 	sDevVPageAddr;
-    
-	PDUMP_MMU_ATTRIB *psMMUAttrib;
-
-	PDUMP_GET_SCRIPT_STRING();
-
-	psMMUAttrib = ((BM_BUF*)psROffMemInfo->sMemBlk.hBuffer)->pMapping->pBMHeap->psMMUAttrib;
-
-	
-	PVR_ASSERT((ui32ROffOffset + sizeof(IMG_UINT32)) <= psROffMemInfo->uAllocSize);
-
-	pui8LinAddr = psROffMemInfo->pvLinAddrKM;
-	sDevVAddr = psROffMemInfo->sDevVAddr;
-
-	
-	pui8LinAddr += ui32ROffOffset;
-	sDevVAddr.uiAddr += ui32ROffOffset;
-
-	
-
-
-	PDumpOSCPUVAddrToPhysPages(psROffMemInfo->sMemBlk.hOSMemHandle,
-			ui32ROffOffset,
-			pui8LinAddr,
-			psMMUAttrib->ui32DataPageMask,
-			&ui32PageOffset);
-
-	
-	sDevVPageAddr.uiAddr = sDevVAddr.uiAddr - ui32PageOffset;
-
-	PVR_ASSERT((sDevVPageAddr.uiAddr & 0xFFF) == 0);
-
-	
-	BM_GetPhysPageAddr(psROffMemInfo, sDevVPageAddr, &sDevPAddr);
-
-	
-	sDevPAddr.uiAddr += ui32PageOffset;
-
-	eErr = PDumpOSBufprintf(hScript,
-			 ui32MaxLen,
-			 "CBP :%s:PA_%08X%08X:0x%08X 0x%08X 0x%08X 0x%08X\r\n",
-			 psMMUAttrib->sDevId.pszPDumpDevName,
-			 (IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag,
-			 sDevPAddr.uiAddr & ~(psMMUAttrib->ui32DataPageMask),
-			 sDevPAddr.uiAddr & (psMMUAttrib->ui32DataPageMask),
-			 ui32WPosVal,
-			 ui32PacketSize,
-			 ui32BufferSize);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR PDumpIDLWithFlags(IMG_UINT32 ui32Clocks, IMG_UINT32 ui32Flags)
-{
-	PVRSRV_ERROR eErr;
-	PDUMP_GET_SCRIPT_STRING();
-	PDUMP_DBG(("PDumpIDLWithFlags"));
-
-	eErr = PDumpOSBufprintf(hScript, ui32MaxLen, "IDL %u\r\n", ui32Clocks);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, ui32Flags);
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR PDumpIDL(IMG_UINT32 ui32Clocks)
-{
-	return PDumpIDLWithFlags(ui32Clocks, PDUMP_FLAGS_CONTINUOUS);
-}
-
-PVRSRV_ERROR PDumpMemUM(PVRSRV_PER_PROCESS_DATA *psPerProc,
-						IMG_PVOID pvAltLinAddrUM,
-						IMG_PVOID pvLinAddrUM,
-						PVRSRV_KERNEL_MEM_INFO *psMemInfo,
-						IMG_UINT32 ui32Offset,
-						IMG_UINT32 ui32Bytes,
-						IMG_UINT32 ui32Flags,
-						IMG_HANDLE hUniqueTag)
-{
-	IMG_VOID *pvAddrUM;
-	IMG_VOID *pvAddrKM;
-	IMG_UINT32 ui32BytesDumped;
-	IMG_UINT32 ui32CurrentOffset;
-
-	if (psMemInfo->pvLinAddrKM != IMG_NULL && pvAltLinAddrUM == IMG_NULL)
-	{
-		
-		return PDumpMemKM(IMG_NULL,
-					   psMemInfo,
-					   ui32Offset,
-					   ui32Bytes,
-					   ui32Flags,
-					   hUniqueTag);
-	}
-
-	pvAddrUM = (pvAltLinAddrUM != IMG_NULL) ? pvAltLinAddrUM : ((pvLinAddrUM != IMG_NULL) ? VPTR_PLUS(pvLinAddrUM, ui32Offset) : IMG_NULL);
-
-	pvAddrKM = GetTempBuffer();
-
-	
-	PVR_ASSERT(pvAddrUM != IMG_NULL && pvAddrKM != IMG_NULL);
-	if (pvAddrUM == IMG_NULL || pvAddrKM == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PDumpMemUM: Nothing to dump"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	if (ui32Bytes > PDUMP_TEMP_BUFFER_SIZE)
-	{
-		PDumpCommentWithFlags(ui32Flags, "Dumping 0x%08x bytes of memory, in blocks of 0x%08x bytes", ui32Bytes, (IMG_UINT32)PDUMP_TEMP_BUFFER_SIZE);
-	}
-
-	ui32CurrentOffset = ui32Offset;
-	for (ui32BytesDumped = 0; ui32BytesDumped < ui32Bytes;)
-	{
-		PVRSRV_ERROR eError;
-		IMG_UINT32 ui32BytesToDump = MIN(PDUMP_TEMP_BUFFER_SIZE, ui32Bytes - ui32BytesDumped);
-
-		eError = OSCopyFromUser(psPerProc,
-					   pvAddrKM,
-					   pvAddrUM,
-					   ui32BytesToDump);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "PDumpMemUM: OSCopyFromUser failed (%d)", eError));
-			return eError;
-		}
-
-		eError = PDumpMemKM(pvAddrKM,
-					   psMemInfo,
-					   ui32CurrentOffset,
-					   ui32BytesToDump,
-					   ui32Flags,
-					   hUniqueTag);
-
-		if (eError != PVRSRV_OK)
-		{
-			
-			if (ui32BytesDumped != 0)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "PDumpMemUM: PDumpMemKM failed (%d)", eError));
-			}
-			return eError;
-		}
-
-		VPTR_INC(pvAddrUM, ui32BytesToDump);
-		ui32CurrentOffset += ui32BytesToDump;
-		ui32BytesDumped += ui32BytesToDump;
-	}
-
-	return PVRSRV_OK;
-}
-
-
-static PVRSRV_ERROR _PdumpAllocMMUContext(IMG_UINT32 *pui32MMUContextID)
-{
-	IMG_UINT32 i;
-
-	
-	for(i=0; i<MAX_PDUMP_MMU_CONTEXTS; i++)
-	{
-		if((gui16MMUContextUsage & (1U << i)) == 0)
-		{
-			
-			gui16MMUContextUsage |= 1U << i;
-			*pui32MMUContextID = i;
-			return PVRSRV_OK;
-		}
-	}
-
-	PVR_DPF((PVR_DBG_ERROR, "_PdumpAllocMMUContext: no free MMU context ids"));
-
-	return PVRSRV_ERROR_MMU_CONTEXT_NOT_FOUND;
-}
-
-
-static PVRSRV_ERROR _PdumpFreeMMUContext(IMG_UINT32 ui32MMUContextID)
-{
-	if(ui32MMUContextID < MAX_PDUMP_MMU_CONTEXTS)
-	{
-		
-		gui16MMUContextUsage &= ~(1U << ui32MMUContextID);
-		return PVRSRV_OK;
-	}
-
-	PVR_DPF((PVR_DBG_ERROR, "_PdumpFreeMMUContext: MMU context ids invalid"));
-
-	return PVRSRV_ERROR_MMU_CONTEXT_NOT_FOUND;
-}
-
-
-PVRSRV_ERROR PDumpSetMMUContext(PVRSRV_DEVICE_TYPE eDeviceType,
-								IMG_CHAR *pszMemSpace,
-								IMG_UINT32 *pui32MMUContextID,
-								IMG_UINT32 ui32MMUType,
-								IMG_HANDLE hUniqueTag1,
-								IMG_HANDLE hOSMemHandle, 
-								IMG_VOID *pvPDCPUAddr)
-{
-	IMG_UINT8 *pui8LinAddr = (IMG_UINT8 *)pvPDCPUAddr;
-	IMG_CPU_PHYADDR sCpuPAddr;
-	IMG_DEV_PHYADDR sDevPAddr;
-	IMG_UINT32 ui32MMUContextID;
-	PVRSRV_ERROR eErr;
-	PDUMP_GET_SCRIPT_STRING();
-
-	eErr = _PdumpAllocMMUContext(&ui32MMUContextID);
-	if(eErr != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PDumpSetMMUContext: _PdumpAllocMMUContext failed: %d", eErr));
-		return eErr;
-	}
-
-	
-	
-	sCpuPAddr = OSMapLinToCPUPhys(hOSMemHandle, pui8LinAddr);
-	sDevPAddr = SysCpuPAddrToDevPAddr(eDeviceType, sCpuPAddr);
-	
-	sDevPAddr.uiAddr &= ~((PVRSRV_4K_PAGE_SIZE) -1);
-
-	eErr = PDumpOSBufprintf(hScript,
-						ui32MaxLen, 
-						"MMU :%s:v%d %d :%s:PA_%08X%08X\r\n",
-						pszMemSpace,
-						ui32MMUContextID,
-						ui32MMUType,
-						pszMemSpace,
-						(IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag1,
-						sDevPAddr.uiAddr);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, PDUMP_FLAGS_CONTINUOUS);
-
-	
-	*pui32MMUContextID = ui32MMUContextID;
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR PDumpClearMMUContext(PVRSRV_DEVICE_TYPE eDeviceType,
-								IMG_CHAR *pszMemSpace,
-								IMG_UINT32 ui32MMUContextID,
-								IMG_UINT32 ui32MMUType)
-{
-	PVRSRV_ERROR eErr;
-	PDUMP_GET_SCRIPT_STRING();
-	PVR_UNREFERENCED_PARAMETER(eDeviceType);
-	PVR_UNREFERENCED_PARAMETER(ui32MMUType);
-
-	
-	PDumpComment("Clear MMU Context for memory space %s\r\n", pszMemSpace);
-	eErr = PDumpOSBufprintf(hScript,
-						ui32MaxLen, 
-						"MMU :%s:v%d\r\n",
-						pszMemSpace,
-						ui32MMUContextID);
-	if(eErr != PVRSRV_OK)
-	{
-		return eErr;
-	}
-	PDumpOSWriteString2(hScript, PDUMP_FLAGS_CONTINUOUS);
-
-	eErr = _PdumpFreeMMUContext(ui32MMUContextID);
-	if(eErr != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PDumpClearMMUContext: _PdumpFreeMMUContext failed: %d", eErr));
-		return eErr;
-	}
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpStoreMemToFile(PDUMP_MMU_ATTRIB *psMMUAttrib,
-						         IMG_CHAR *pszFileName,
-								 IMG_UINT32 ui32FileOffset, 
-								 PVRSRV_KERNEL_MEM_INFO *psMemInfo,
-								 IMG_UINT32 uiAddr, 
-								 IMG_UINT32 ui32Size,
-								 IMG_UINT32 ui32PDumpFlags,
-								 IMG_HANDLE hUniqueTag)
-{
-	IMG_DEV_PHYADDR		sDevPAddr;
-	IMG_DEV_VIRTADDR	sDevVPageAddr;
-	IMG_UINT32			ui32PageOffset;
-
-	PDUMP_GET_SCRIPT_STRING();
-
-	
-
-
-	ui32PageOffset = (IMG_UINT32)((IMG_UINTPTR_T)psMemInfo->pvLinAddrKM & psMMUAttrib->ui32DataPageMask);
-	
-	
-	sDevVPageAddr.uiAddr = uiAddr - ui32PageOffset;
-	
-	
-	BM_GetPhysPageAddr(psMemInfo, sDevVPageAddr, &sDevPAddr);
-	
-	
-	sDevPAddr.uiAddr += ui32PageOffset;
-
-	PDumpOSBufprintf(hScript,
-			 ui32MaxLen,
-			 "SAB :%s:PA_%08X%08X:0x%08X 0x%08X 0x%08X %s\r\n",
-			 psMMUAttrib->sDevId.pszPDumpDevName,
-			 (IMG_UINT32)(IMG_UINTPTR_T)hUniqueTag,
-			 sDevPAddr.uiAddr & ~psMMUAttrib->ui32DataPageMask,
-			 sDevPAddr.uiAddr & psMMUAttrib->ui32DataPageMask,
-			 ui32Size,
-			 ui32FileOffset,
-			 pszFileName);
-
-	PDumpOSWriteString2(hScript, ui32PDumpFlags);
-	
-	return PVRSRV_OK;	
-}
-
-PVRSRV_ERROR PDumpRegBasedCBP(IMG_CHAR		*pszPDumpRegName,
-							  IMG_UINT32	ui32RegOffset,
-							  IMG_UINT32	ui32WPosVal,
-							  IMG_UINT32	ui32PacketSize,
-							  IMG_UINT32	ui32BufferSize,
-							  IMG_UINT32	ui32Flags)
-{
-	PDUMP_GET_SCRIPT_STRING();
-
-	PDumpOSBufprintf(hScript,
-			 ui32MaxLen,
-			 "CBP :%s:0x%08X 0x%08X 0x%08X 0x%08X\r\n",
-			 pszPDumpRegName,
-			 ui32RegOffset,
-			 ui32WPosVal,
-			 ui32PacketSize,
-			 ui32BufferSize);
-	PDumpOSWriteString2(hScript, ui32Flags);
-	
-	return PVRSRV_OK;		
-}
-
-
- 
-#include "syscommon.h"
-
-IMG_EXPORT IMG_VOID PDumpConnectionNotify(IMG_VOID)
-{
-	SYS_DATA			*psSysData;
-	PVRSRV_DEVICE_NODE	*psThis;
-	PVR_DPF((PVR_DBG_WARNING, "PDump has connected."));
-	
-	
-	SysAcquireData(&psSysData);
-	
-	psThis = psSysData->psDeviceNodeList;
-	while (psThis)
-	{
-		if (psThis->pfnPDumpInitDevice)
-		{
-			
-			psThis->pfnPDumpInitDevice(psThis);
-		}
-		psThis = psThis->psNext;
-	}
-}
-
-IMG_UINT32 DbgWrite(PDBG_STREAM psStream, IMG_UINT8 *pui8Data, IMG_UINT32 ui32BCount, IMG_UINT32 ui32Flags)
-{
-	IMG_UINT32	ui32BytesWritten = 0;
-	IMG_UINT32	ui32Off = 0;
-	PDBG_STREAM_CONTROL psCtrl = psStream->psCtrl;
-
-	
-	if ((ui32Flags & PDUMP_FLAGS_NEVER) != 0)
-	{
-		return ui32BCount;
-	}
-	
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-	
-	if ( (_PDumpIsProcessActive() == IMG_FALSE ) &&
-		 ((ui32Flags & PDUMP_FLAGS_PERSISTENT) == 0) )
-	{
-		return ui32BCount;
-	}
-#endif
-
-	
-	if ( ((ui32Flags & PDUMP_FLAGS_PERSISTENT) != 0) && (psCtrl->bInitPhaseComplete) )
-	{
-		while (ui32BCount > 0)
-		{
-			
-
-
-			ui32BytesWritten = PDumpOSDebugDriverWrite(	psStream,
-														PDUMP_WRITE_MODE_PERSISTENT,
-														&pui8Data[ui32Off], ui32BCount, 1, 0);
-
-			if (ui32BytesWritten == 0)
-			{
-				PDumpOSReleaseExecution();
-			}
-
-			if (ui32BytesWritten != 0xFFFFFFFFU)
-			{
-				ui32Off += ui32BytesWritten;
-				ui32BCount -= ui32BytesWritten;
-			}
-			else
-			{
-				PVR_DPF((PVR_DBG_ERROR, "DbgWrite: Failed to send persistent data"));
-				if( (psCtrl->ui32Flags & DEBUG_FLAGS_READONLY) != 0)
-				{
-					
-					PDumpSuspendKM();
-				}
-				return 0xFFFFFFFFU;
-			}
-		}
-		
-		
-		ui32BCount = ui32Off; ui32Off = 0; ui32BytesWritten = 0;
-	}
-
-	while (((IMG_UINT32) ui32BCount > 0) && (ui32BytesWritten != 0xFFFFFFFFU))
-	{
-		if ((ui32Flags & PDUMP_FLAGS_CONTINUOUS) != 0)
-		{
-			
-
-			if (((psCtrl->ui32CapMode & DEBUG_CAPMODE_FRAMED) != 0) &&
-				 (psCtrl->ui32Start == 0xFFFFFFFFU) &&
-				 (psCtrl->ui32End == 0xFFFFFFFFU) &&
-				  psCtrl->bInitPhaseComplete)
-			{
-				ui32BytesWritten = ui32BCount;
-			}
-			else
-			{
-				ui32BytesWritten = PDumpOSDebugDriverWrite(	psStream, 
-															PDUMP_WRITE_MODE_CONTINUOUS,
-															&pui8Data[ui32Off], ui32BCount, 1, 0);
-			}
-		}
-		else
-		{
-			if (ui32Flags & PDUMP_FLAGS_LASTFRAME)
-			{
-				IMG_UINT32	ui32DbgFlags;
-	
-				ui32DbgFlags = 0;
-				if (ui32Flags & PDUMP_FLAGS_RESETLFBUFFER)
-				{
-					ui32DbgFlags |= WRITELF_FLAGS_RESETBUF;
-				}
-	
-				ui32BytesWritten = PDumpOSDebugDriverWrite(	psStream,
-															PDUMP_WRITE_MODE_LASTFRAME,
-															&pui8Data[ui32Off], ui32BCount, 1, ui32DbgFlags);
-			}
-			else
-			{
-				ui32BytesWritten = PDumpOSDebugDriverWrite(	psStream, 
-															PDUMP_WRITE_MODE_BINCM,
-															&pui8Data[ui32Off], ui32BCount, 1, 0);
-			}
-		}
-
-		
-
-
-		if (ui32BytesWritten == 0)
-		{
-			PDumpOSReleaseExecution();
-		}
-
-		if (ui32BytesWritten != 0xFFFFFFFFU)
-		{
-			ui32Off += ui32BytesWritten;
-			ui32BCount -= ui32BytesWritten;
-		}
-
-		
-	}
-
-
-	
-	return ui32BytesWritten;
-}
-
-
-
-#else	
-#endif	
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/perproc.c b/drivers/staging/cdv/pvr/services4/srvkm/common/perproc.c
deleted file mode 100644
index eb73166..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/perproc.c
+++ /dev/null
@@ -1,305 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "services_headers.h"
-#include "resman.h"
-#include "handle.h"
-#include "perproc.h"
-#include "osperproc.h"
-#if defined(TTRACE)
-#include "ttrace.h"
-#endif
-
-#define	HASH_TAB_INIT_SIZE 32
-
-static HASH_TABLE *psHashTab = IMG_NULL;
-
-static PVRSRV_ERROR FreePerProcessData(PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	PVRSRV_ERROR eError;
-	IMG_UINTPTR_T uiPerProc;
-
-	PVR_ASSERT(psPerProc != IMG_NULL);
-
-	if (psPerProc == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "FreePerProcessData: invalid parameter"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	uiPerProc = HASH_Remove(psHashTab, (IMG_UINTPTR_T)psPerProc->ui32PID);
-	if (uiPerProc == 0)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "FreePerProcessData: Couldn't find process in per-process data hash table"));
-		
-		PVR_ASSERT(psPerProc->ui32PID == 0);
-	}
-	else
-	{
-		PVR_ASSERT((PVRSRV_PER_PROCESS_DATA *)uiPerProc == psPerProc);
-		PVR_ASSERT(((PVRSRV_PER_PROCESS_DATA *)uiPerProc)->ui32PID == psPerProc->ui32PID);
-	}
-
-	
-	if (psPerProc->psHandleBase != IMG_NULL)
-	{
-		eError = PVRSRVFreeHandleBase(psPerProc->psHandleBase);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "FreePerProcessData: Couldn't free handle base for process (%d)", eError));
-			return eError;
-		}
-	}
-
-	
-	if (psPerProc->hPerProcData != IMG_NULL)
-	{
-		eError = PVRSRVReleaseHandle(KERNEL_HANDLE_BASE, psPerProc->hPerProcData, PVRSRV_HANDLE_TYPE_PERPROC_DATA);
-
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "FreePerProcessData: Couldn't release per-process data handle (%d)", eError));
-			return eError;
-		}
-	}
-
-	
-	eError = OSPerProcessPrivateDataDeInit(psPerProc->hOsPrivateData);
-	if (eError != PVRSRV_OK)
-	{
-		 PVR_DPF((PVR_DBG_ERROR, "FreePerProcessData: OSPerProcessPrivateDataDeInit failed (%d)", eError));
-		return eError;
-	}
-
-	eError = OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-		sizeof(*psPerProc),
-		psPerProc,
-		psPerProc->hBlockAlloc);
-	
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "FreePerProcessData: Couldn't free per-process data (%d)", eError));
-		return eError;
-	}
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_PER_PROCESS_DATA *PVRSRVPerProcessData(IMG_UINT32 ui32PID)
-{
-	PVRSRV_PER_PROCESS_DATA *psPerProc;
-
-	PVR_ASSERT(psHashTab != IMG_NULL);
-
-	
-	psPerProc = (PVRSRV_PER_PROCESS_DATA *)HASH_Retrieve(psHashTab, (IMG_UINTPTR_T)ui32PID);
-	return psPerProc;
-}
-
-
-PVRSRV_ERROR PVRSRVPerProcessDataConnect(IMG_UINT32	ui32PID, IMG_UINT32 ui32Flags)
-{
-	PVRSRV_PER_PROCESS_DATA *psPerProc;
-	IMG_HANDLE hBlockAlloc;
-	PVRSRV_ERROR eError = PVRSRV_OK;
-
-	if (psHashTab == IMG_NULL)
-	{
-		return PVRSRV_ERROR_INIT_FAILURE;
-	}
-
-	
-	psPerProc = (PVRSRV_PER_PROCESS_DATA *)HASH_Retrieve(psHashTab, (IMG_UINTPTR_T)ui32PID);
-
-	if (psPerProc == IMG_NULL)
-	{
-		
-		eError = OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-							sizeof(*psPerProc),
-							(IMG_PVOID *)&psPerProc,
-							&hBlockAlloc,
-							"Per Process Data");
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "PVRSRVPerProcessDataConnect: Couldn't allocate per-process data (%d)", eError));
-			return eError;
-		}
-		OSMemSet(psPerProc, 0, sizeof(*psPerProc));
-		psPerProc->hBlockAlloc = hBlockAlloc;
-
-		if (!HASH_Insert(psHashTab, (IMG_UINTPTR_T)ui32PID, (IMG_UINTPTR_T)psPerProc))
-		{
-			PVR_DPF((PVR_DBG_ERROR, "PVRSRVPerProcessDataConnect: Couldn't insert per-process data into hash table"));
-			eError = PVRSRV_ERROR_INSERT_HASH_TABLE_DATA_FAILED;
-			goto failure;
-		}
-
-		psPerProc->ui32PID = ui32PID;
-		psPerProc->ui32RefCount = 0;
-
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-		if (ui32Flags == SRV_FLAGS_PDUMP_ACTIVE)
-		{
-			psPerProc->bPDumpActive = IMG_TRUE;
-		}
-#else
-		PVR_UNREFERENCED_PARAMETER(ui32Flags);
-#endif
-
-		
-		eError = OSPerProcessPrivateDataInit(&psPerProc->hOsPrivateData);
-		if (eError != PVRSRV_OK)
-		{
-			 PVR_DPF((PVR_DBG_ERROR, "PVRSRVPerProcessDataConnect: OSPerProcessPrivateDataInit failed (%d)", eError));
-			goto failure;
-		}
-
-		
-		eError = PVRSRVAllocHandle(KERNEL_HANDLE_BASE,
-								   &psPerProc->hPerProcData,
-								   psPerProc,
-								   PVRSRV_HANDLE_TYPE_PERPROC_DATA,
-								   PVRSRV_HANDLE_ALLOC_FLAG_NONE);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "PVRSRVPerProcessDataConnect: Couldn't allocate handle for per-process data (%d)", eError));
-			goto failure;
-		}
-
-		
-		eError = PVRSRVAllocHandleBase(&psPerProc->psHandleBase);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "PVRSRVPerProcessDataConnect: Couldn't allocate handle base for process (%d)", eError));
-			goto failure;
-		}
-
-		
-		eError = OSPerProcessSetHandleOptions(psPerProc->psHandleBase);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "PVRSRVPerProcessDataConnect: Couldn't set handle options (%d)", eError));
-			goto failure;
-		}
-		
-		
-		eError = PVRSRVResManConnect(psPerProc, &psPerProc->hResManContext);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "PVRSRVPerProcessDataConnect: Couldn't register with the resource manager"));
-			goto failure;
-		}
-#if defined (TTRACE)
-		PVRSRVTimeTraceBufferCreate(ui32PID);
-#endif
-	}
-	
-	psPerProc->ui32RefCount++;
-	PVR_DPF((PVR_DBG_MESSAGE,
-			"PVRSRVPerProcessDataConnect: Process 0x%x has ref-count %d",
-			ui32PID, psPerProc->ui32RefCount));
-
-	return eError;
-
-failure:
-	(IMG_VOID)FreePerProcessData(psPerProc);
-	return eError;
-}
-
-
-IMG_VOID PVRSRVPerProcessDataDisconnect(IMG_UINT32	ui32PID)
-{
-	PVRSRV_ERROR eError;
-	PVRSRV_PER_PROCESS_DATA *psPerProc;
-
-	PVR_ASSERT(psHashTab != IMG_NULL);
-
-	psPerProc = (PVRSRV_PER_PROCESS_DATA *)HASH_Retrieve(psHashTab, (IMG_UINTPTR_T)ui32PID);
-	if (psPerProc == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVPerProcessDataDealloc: Couldn't locate per-process data for PID %u", ui32PID));
-	}
-	else
-	{
-		psPerProc->ui32RefCount--;
-		if (psPerProc->ui32RefCount == 0)
-		{
-			PVR_DPF((PVR_DBG_MESSAGE, "PVRSRVPerProcessDataDisconnect: "
-					"Last close from process 0x%x received", ui32PID));
-
-#if defined (TTRACE)
-			PVRSRVTimeTraceBufferDestroy(ui32PID);
-#endif
-
-			
-			PVRSRVResManDisconnect(psPerProc->hResManContext, IMG_FALSE);
-			
-			
-			eError = FreePerProcessData(psPerProc);
-			if (eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "PVRSRVPerProcessDataDisconnect: Error freeing per-process data"));
-			}
-		}
-	}
-
-	eError = PVRSRVPurgeHandles(KERNEL_HANDLE_BASE);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVPerProcessDataDisconnect: Purge of global handle pool failed (%d)", eError));
-	}
-}
-
-
-PVRSRV_ERROR PVRSRVPerProcessDataInit(IMG_VOID)
-{
-	PVR_ASSERT(psHashTab == IMG_NULL);
-
-	
-	psHashTab = HASH_Create(HASH_TAB_INIT_SIZE);
-	if (psHashTab == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVPerProcessDataInit: Couldn't create per-process data hash table"));
-		return PVRSRV_ERROR_UNABLE_TO_CREATE_HASH_TABLE;
-	}
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PVRSRVPerProcessDataDeInit(IMG_VOID)
-{
-	
-	if (psHashTab != IMG_NULL)
-	{
-		
-		HASH_Delete(psHashTab);
-		psHashTab = IMG_NULL;
-	}
-
-	return PVRSRV_OK;
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/power.c b/drivers/staging/cdv/pvr/services4/srvkm/common/power.c
deleted file mode 100644
index 21d7ad4..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/power.c
+++ /dev/null
@@ -1,719 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "services_headers.h"
-#include "pdump_km.h"
-
-#include "lists.h"
-
-static IMG_BOOL gbInitServerRunning = IMG_FALSE;
-static IMG_BOOL gbInitServerRan = IMG_FALSE;
-static IMG_BOOL gbInitSuccessful = IMG_FALSE;
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVSetInitServerState(PVRSRV_INIT_SERVER_STATE eInitServerState, IMG_BOOL bState)
-{
-
-	switch(eInitServerState)
-	{
-		case PVRSRV_INIT_SERVER_RUNNING:
-			gbInitServerRunning	= bState;
-			break;
-		case PVRSRV_INIT_SERVER_RAN:
-			gbInitServerRan	= bState;
-			break;
-		case PVRSRV_INIT_SERVER_SUCCESSFUL:
-			gbInitSuccessful = bState;
-			break;
-		default:
-			PVR_DPF((PVR_DBG_ERROR,
-				"PVRSRVSetInitServerState : Unknown state %x", eInitServerState));
-			return PVRSRV_ERROR_UNKNOWN_INIT_SERVER_STATE;
-	}
-
-	return PVRSRV_OK;
-}
-
-IMG_EXPORT
-IMG_BOOL PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_STATE eInitServerState)
-{
-	IMG_BOOL	bReturnVal;
-
-	switch(eInitServerState)
-	{
-		case PVRSRV_INIT_SERVER_RUNNING:
-			bReturnVal = gbInitServerRunning;
-			break;
-		case PVRSRV_INIT_SERVER_RAN:
-			bReturnVal = gbInitServerRan;
-			break;
-		case PVRSRV_INIT_SERVER_SUCCESSFUL:
-			bReturnVal = gbInitSuccessful;
-			break;
-		default:
-			PVR_DPF((PVR_DBG_ERROR,
-				"PVRSRVGetInitServerState : Unknown state %x", eInitServerState));
-			bReturnVal = IMG_FALSE;
-	}
-
-	return bReturnVal;
-}
-
-static IMG_BOOL _IsSystemStatePowered(PVRSRV_SYS_POWER_STATE eSystemPowerState)
-{
-	return (IMG_BOOL)(eSystemPowerState < PVRSRV_SYS_POWER_STATE_D2);
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVPowerLock(IMG_UINT32	ui32CallerID,
-							 IMG_BOOL	bSystemPowerEvent)
-{
-	PVRSRV_ERROR	eError;
-	SYS_DATA	*psSysData;
-	IMG_UINT32	ui32Timeout = 1000000;
-	IMG_BOOL	bTryLock = (ui32CallerID == ISR_ID);
-
-	SysAcquireData(&psSysData);
-
-	eError = OSPowerLockWrap(bTryLock);
-	if (eError != PVRSRV_OK)
-	{
-		return eError;
-	}
-
-	do
-	{
-		eError = OSLockResource(&psSysData->sPowerStateChangeResource,
-								ui32CallerID);
-		if (eError == PVRSRV_OK)
-		{
-			break;
-		}
-		else if (bTryLock)
-		{
-			
-
-			eError = PVRSRV_ERROR_RETRY;
-			break;
-		}
-
-		OSWaitus(1);
-		ui32Timeout--;
-	} while (ui32Timeout > 0);
-
-	if (eError != PVRSRV_OK)
-	{
-		OSPowerLockUnwrap();
-	}
-
-	 
-	if ((eError == PVRSRV_OK) &&
-		!bSystemPowerEvent &&
-		!_IsSystemStatePowered(psSysData->eCurrentPowerState))
-	{
-		
-		PVRSRVPowerUnlock(ui32CallerID);
-		eError = PVRSRV_ERROR_RETRY;
-	}
-
-	return eError;
-}
-
-
-IMG_EXPORT
-IMG_VOID PVRSRVPowerUnlock(IMG_UINT32	ui32CallerID)
-{
-	OSUnlockResource(&gpsSysData->sPowerStateChangeResource, ui32CallerID);
-	OSPowerLockUnwrap();
-}
-
-
-static PVRSRV_ERROR PVRSRVDevicePrePowerStateKM_AnyVaCb(PVRSRV_POWER_DEV *psPowerDevice, va_list va)
-{
-	PVRSRV_DEV_POWER_STATE	eNewDevicePowerState;
-	PVRSRV_ERROR			eError;
-
-	
-	IMG_BOOL				bAllDevices;
-	IMG_UINT32				ui32DeviceIndex;
-	PVRSRV_DEV_POWER_STATE	eNewPowerState;
-
-	
-	bAllDevices = va_arg(va, IMG_BOOL);
-	ui32DeviceIndex = va_arg(va, IMG_UINT32);
-	eNewPowerState = va_arg(va, PVRSRV_DEV_POWER_STATE);
-
-	if (bAllDevices || (ui32DeviceIndex == psPowerDevice->ui32DeviceIndex))
-	{
-		eNewDevicePowerState = (eNewPowerState == PVRSRV_DEV_POWER_STATE_DEFAULT) ?
-							psPowerDevice->eDefaultPowerState : eNewPowerState;
-
-		if (psPowerDevice->eCurrentPowerState != eNewDevicePowerState)
-		{
-			if (psPowerDevice->pfnPrePower != IMG_NULL)
-			{
-				
-				eError = psPowerDevice->pfnPrePower(psPowerDevice->hDevCookie,
-													eNewDevicePowerState,
-													psPowerDevice->eCurrentPowerState);
-				if (eError != PVRSRV_OK)
-				{
-					return eError;
-				}
-			}
-
-			
-			eError = SysDevicePrePowerState(psPowerDevice->ui32DeviceIndex,
-											eNewDevicePowerState,
-											psPowerDevice->eCurrentPowerState);
-			if (eError != PVRSRV_OK)
-			{
-				return eError;
-			}
-		}
-	}
-
-	return  PVRSRV_OK;
-}
-
-static
-PVRSRV_ERROR PVRSRVDevicePrePowerStateKM(IMG_BOOL				bAllDevices,
-										 IMG_UINT32				ui32DeviceIndex,
-										 PVRSRV_DEV_POWER_STATE	eNewPowerState)
-{
-	PVRSRV_ERROR		eError;
-	SYS_DATA			*psSysData;
-
-	SysAcquireData(&psSysData);
-
-	
-	eError = List_PVRSRV_POWER_DEV_PVRSRV_ERROR_Any_va(psSysData->psPowerDeviceList,
-														&PVRSRVDevicePrePowerStateKM_AnyVaCb,
-														bAllDevices,
-														ui32DeviceIndex,
-														eNewPowerState);
-
-	return eError;
-}
-
-static PVRSRV_ERROR PVRSRVDevicePostPowerStateKM_AnyVaCb(PVRSRV_POWER_DEV *psPowerDevice, va_list va)
-{
-	PVRSRV_DEV_POWER_STATE	eNewDevicePowerState;
-	PVRSRV_ERROR			eError;
-
-	
-	IMG_BOOL				bAllDevices;
-	IMG_UINT32				ui32DeviceIndex;
-	PVRSRV_DEV_POWER_STATE	eNewPowerState;
-
-	
-	bAllDevices = va_arg(va, IMG_BOOL);
-	ui32DeviceIndex = va_arg(va, IMG_UINT32);
-	eNewPowerState = va_arg(va, PVRSRV_DEV_POWER_STATE);
-
-	if (bAllDevices || (ui32DeviceIndex == psPowerDevice->ui32DeviceIndex))
-	{
-		eNewDevicePowerState = (eNewPowerState == PVRSRV_DEV_POWER_STATE_DEFAULT) ?
-								psPowerDevice->eDefaultPowerState : eNewPowerState;
-
-		if (psPowerDevice->eCurrentPowerState != eNewDevicePowerState)
-		{
-			
-			eError = SysDevicePostPowerState(psPowerDevice->ui32DeviceIndex,
-											 eNewDevicePowerState,
-											 psPowerDevice->eCurrentPowerState);
-			if (eError != PVRSRV_OK)
-			{
-				return eError;
-			}
-
-			if (psPowerDevice->pfnPostPower != IMG_NULL)
-			{
-				
-				eError = psPowerDevice->pfnPostPower(psPowerDevice->hDevCookie,
-													 eNewDevicePowerState,
-													 psPowerDevice->eCurrentPowerState);
-				if (eError != PVRSRV_OK)
-				{
-					return eError;
-				}
-			}
-
-			psPowerDevice->eCurrentPowerState = eNewDevicePowerState;
-		}
-	}
-	return PVRSRV_OK;
-}
-
-static
-PVRSRV_ERROR PVRSRVDevicePostPowerStateKM(IMG_BOOL					bAllDevices,
-										  IMG_UINT32				ui32DeviceIndex,
-										  PVRSRV_DEV_POWER_STATE	eNewPowerState)
-{
-	PVRSRV_ERROR		eError;
-	SYS_DATA			*psSysData;
-
-	SysAcquireData(&psSysData);
-
-	
-	eError = List_PVRSRV_POWER_DEV_PVRSRV_ERROR_Any_va(psSysData->psPowerDeviceList,
-														&PVRSRVDevicePostPowerStateKM_AnyVaCb,
-														bAllDevices,
-														ui32DeviceIndex,
-														eNewPowerState);
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVSetDevicePowerStateKM(IMG_UINT32				ui32DeviceIndex,
-										 PVRSRV_DEV_POWER_STATE	eNewPowerState,
-										 IMG_UINT32				ui32CallerID,
-										 IMG_BOOL				bRetainMutex)
-{
-	PVRSRV_ERROR	eError;
-	SYS_DATA		*psSysData;
-
-	SysAcquireData(&psSysData);
-
-	eError = PVRSRVPowerLock(ui32CallerID, IMG_FALSE);
-	if(eError != PVRSRV_OK)
-	{
-		return eError;
-	}
-
-	#if defined(PDUMP)
-	if (eNewPowerState == PVRSRV_DEV_POWER_STATE_DEFAULT)
-	{
-		
-
-
-
-		eError = PVRSRVDevicePrePowerStateKM(IMG_FALSE, ui32DeviceIndex, PVRSRV_DEV_POWER_STATE_ON);
-		if(eError != PVRSRV_OK)
-		{
-			goto Exit;
-		}
-
-		eError = PVRSRVDevicePostPowerStateKM(IMG_FALSE, ui32DeviceIndex, PVRSRV_DEV_POWER_STATE_ON);
-
-		if (eError != PVRSRV_OK)
-		{
-			goto Exit;
-		}
-
-		PDUMPSUSPEND();
-	}
-	#endif 
-
-	eError = PVRSRVDevicePrePowerStateKM(IMG_FALSE, ui32DeviceIndex, eNewPowerState);
-	if(eError != PVRSRV_OK)
-	{
-		if (eNewPowerState == PVRSRV_DEV_POWER_STATE_DEFAULT)
-		{
-			PDUMPRESUME();
-		}
-		goto Exit;
-	}
-
-	eError = PVRSRVDevicePostPowerStateKM(IMG_FALSE, ui32DeviceIndex, eNewPowerState);
-
-	if (eNewPowerState == PVRSRV_DEV_POWER_STATE_DEFAULT)
-	{
-		PDUMPRESUME();
-	}
-
-Exit:
-
-	if(eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,
-				"PVRSRVSetDevicePowerStateKM : Transition to %d FAILED 0x%x", eNewPowerState, eError));
-	}
-
-	if (!bRetainMutex || (eError != PVRSRV_OK))
-	{
-		PVRSRVPowerUnlock(ui32CallerID);
-	}
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVSystemPrePowerStateKM(PVRSRV_SYS_POWER_STATE eNewSysPowerState)
-{
-	PVRSRV_ERROR			eError;
-	SYS_DATA				*psSysData;
-	PVRSRV_DEV_POWER_STATE	eNewDevicePowerState;
-
-	SysAcquireData(&psSysData);
-
-	
-	eError = PVRSRVPowerLock(KERNEL_ID, IMG_TRUE);
-	if(eError != PVRSRV_OK)
-	{
-		return eError;
-	}
-
-	if (_IsSystemStatePowered(eNewSysPowerState) !=
-		_IsSystemStatePowered(psSysData->eCurrentPowerState))
-	{
-		if (_IsSystemStatePowered(eNewSysPowerState))
-		{
-			
-			eNewDevicePowerState = PVRSRV_DEV_POWER_STATE_DEFAULT;
-		}
-		else
-		{
-			eNewDevicePowerState = PVRSRV_DEV_POWER_STATE_OFF;
-		}
-
-		
-		eError = PVRSRVDevicePrePowerStateKM(IMG_TRUE, 0, eNewDevicePowerState);
-		if (eError != PVRSRV_OK)
-		{
-			goto ErrorExit;
-		}
-	}
-
-	if (eNewSysPowerState != psSysData->eCurrentPowerState)
-	{
-		
-		eError = SysSystemPrePowerState(eNewSysPowerState);
-		if (eError != PVRSRV_OK)
-		{
-			goto ErrorExit;
-		}
-	}
-
-	return eError;
-
-ErrorExit:
-
-	PVR_DPF((PVR_DBG_ERROR,
-			"PVRSRVSystemPrePowerStateKM: Transition from %d to %d FAILED 0x%x",
-			psSysData->eCurrentPowerState, eNewSysPowerState, eError));
-
-	
-	psSysData->eFailedPowerState = eNewSysPowerState;
-
-	PVRSRVPowerUnlock(KERNEL_ID);
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVSystemPostPowerStateKM(PVRSRV_SYS_POWER_STATE eNewSysPowerState)
-{
-	PVRSRV_ERROR			eError = PVRSRV_OK;
-	SYS_DATA				*psSysData;
-	PVRSRV_DEV_POWER_STATE	eNewDevicePowerState;
-
-	SysAcquireData(&psSysData);
-
-	if (eNewSysPowerState != psSysData->eCurrentPowerState)
-	{
-		
-		eError = SysSystemPostPowerState(eNewSysPowerState);
-		if (eError != PVRSRV_OK)
-		{
-			goto Exit;
-		}
-	}
-
-	if (_IsSystemStatePowered(eNewSysPowerState) !=
-		_IsSystemStatePowered(psSysData->eCurrentPowerState))
-	{
-		if (_IsSystemStatePowered(eNewSysPowerState))
-		{
-			
-			eNewDevicePowerState = PVRSRV_DEV_POWER_STATE_DEFAULT;
-		}
-		else
-		{
-			eNewDevicePowerState = PVRSRV_DEV_POWER_STATE_OFF;
-		}
-
-		
-		eError = PVRSRVDevicePostPowerStateKM(IMG_TRUE, 0, eNewDevicePowerState);
-		if (eError != PVRSRV_OK)
-		{
-			goto Exit;
-		}
-	}
-
-	PVR_DPF((PVR_DBG_MESSAGE,
-			"PVRSRVSystemPostPowerStateKM: System Power Transition from %d to %d OK",
-			psSysData->eCurrentPowerState, eNewSysPowerState));
-
-	psSysData->eCurrentPowerState = eNewSysPowerState;
-
-Exit:
-
-	PVRSRVPowerUnlock(KERNEL_ID);
-
-	 
-	if (_IsSystemStatePowered(eNewSysPowerState) &&
-			PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_SUCCESSFUL))
-	{
-		
-
-
-		PVRSRVScheduleDeviceCallbacks();
-	}
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE eNewSysPowerState)
-{
-	PVRSRV_ERROR	eError;
-	SYS_DATA		*psSysData;
-
-	SysAcquireData(&psSysData);
-
-	eError = PVRSRVSystemPrePowerStateKM(eNewSysPowerState);
-	if(eError != PVRSRV_OK)
-	{
-		goto ErrorExit;
-	}
-
-	eError = PVRSRVSystemPostPowerStateKM(eNewSysPowerState);
-	if(eError != PVRSRV_OK)
-	{
-		goto ErrorExit;
-	}
-
-	
-	psSysData->eFailedPowerState = PVRSRV_SYS_POWER_STATE_Unspecified;
-
-	return PVRSRV_OK;
-
-ErrorExit:
-
-	PVR_DPF((PVR_DBG_ERROR,
-			"PVRSRVSetPowerStateKM: Transition from %d to %d FAILED 0x%x",
-			psSysData->eCurrentPowerState, eNewSysPowerState, eError));
-
-	
-	psSysData->eFailedPowerState = eNewSysPowerState;
-
-	return eError;
-}
-
-
-PVRSRV_ERROR PVRSRVRegisterPowerDevice(IMG_UINT32					ui32DeviceIndex,
-									   PFN_PRE_POWER				pfnPrePower,
-									   PFN_POST_POWER				pfnPostPower,
-									   PFN_PRE_CLOCKSPEED_CHANGE	pfnPreClockSpeedChange,
-									   PFN_POST_CLOCKSPEED_CHANGE	pfnPostClockSpeedChange,
-									   IMG_HANDLE					hDevCookie,
-									   PVRSRV_DEV_POWER_STATE		eCurrentPowerState,
-									   PVRSRV_DEV_POWER_STATE		eDefaultPowerState)
-{
-	PVRSRV_ERROR		eError;
-	SYS_DATA			*psSysData;
-	PVRSRV_POWER_DEV	*psPowerDevice;
-
-	if (pfnPrePower == IMG_NULL &&
-		pfnPostPower == IMG_NULL)
-	{
-		return PVRSRVRemovePowerDevice(ui32DeviceIndex);
-	}
-
-	SysAcquireData(&psSysData);
-
-	eError = OSAllocMem( PVRSRV_OS_NON_PAGEABLE_HEAP,
-						 sizeof(PVRSRV_POWER_DEV),
-						 (IMG_VOID **)&psPowerDevice, IMG_NULL,
-						 "Power Device");
-	if(eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRegisterPowerDevice: Failed to alloc PVRSRV_POWER_DEV"));
-		return eError;
-	}
-
-	
-	psPowerDevice->pfnPrePower = pfnPrePower;
-	psPowerDevice->pfnPostPower = pfnPostPower;
-	psPowerDevice->pfnPreClockSpeedChange = pfnPreClockSpeedChange;
-	psPowerDevice->pfnPostClockSpeedChange = pfnPostClockSpeedChange;
-	psPowerDevice->hDevCookie = hDevCookie;
-	psPowerDevice->ui32DeviceIndex = ui32DeviceIndex;
-	psPowerDevice->eCurrentPowerState = eCurrentPowerState;
-	psPowerDevice->eDefaultPowerState = eDefaultPowerState;
-
-	
-	List_PVRSRV_POWER_DEV_Insert(&(psSysData->psPowerDeviceList), psPowerDevice);
-
-	return (PVRSRV_OK);
-}
-
-
-PVRSRV_ERROR PVRSRVRemovePowerDevice (IMG_UINT32 ui32DeviceIndex)
-{
-	SYS_DATA			*psSysData;
-	PVRSRV_POWER_DEV	*psPowerDev;
-
-	SysAcquireData(&psSysData);
-
-	
-	psPowerDev = (PVRSRV_POWER_DEV*)
-					List_PVRSRV_POWER_DEV_Any_va(psSysData->psPowerDeviceList,
-												 &MatchPowerDeviceIndex_AnyVaCb,
-												 ui32DeviceIndex);
-
-	if (psPowerDev)
-	{
-		List_PVRSRV_POWER_DEV_Remove(psPowerDev);
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_POWER_DEV), psPowerDev, IMG_NULL);
-		
-	}
-
-	return (PVRSRV_OK);
-}
-
-
-IMG_EXPORT
-IMG_BOOL PVRSRVIsDevicePowered(IMG_UINT32 ui32DeviceIndex)
-{
-	SYS_DATA			*psSysData;
-	PVRSRV_POWER_DEV	*psPowerDevice;
-
-	SysAcquireData(&psSysData);
-
-	 
-	if (OSIsResourceLocked(&psSysData->sPowerStateChangeResource, KERNEL_ID) ||
-		OSIsResourceLocked(&psSysData->sPowerStateChangeResource, ISR_ID))
-	{
-		return IMG_FALSE;
-	}
-
-	psPowerDevice = (PVRSRV_POWER_DEV*)
-					List_PVRSRV_POWER_DEV_Any_va(psSysData->psPowerDeviceList,
-												 &MatchPowerDeviceIndex_AnyVaCb,
-												 ui32DeviceIndex);
-	return (psPowerDevice && (psPowerDevice->eCurrentPowerState == PVRSRV_DEV_POWER_STATE_ON))
-			? IMG_TRUE : IMG_FALSE;
-}
-
-
-PVRSRV_ERROR PVRSRVDevicePreClockSpeedChange(IMG_UINT32	ui32DeviceIndex,
-											 IMG_BOOL	bIdleDevice,
-											 IMG_VOID	*pvInfo)
-{
-	PVRSRV_ERROR		eError = PVRSRV_OK;
-	SYS_DATA			*psSysData;
-	PVRSRV_POWER_DEV	*psPowerDevice;
-
-	PVR_UNREFERENCED_PARAMETER(pvInfo);
-
-	SysAcquireData(&psSysData);
-
-	if (bIdleDevice)
-	{
-		
-		eError = PVRSRVPowerLock(KERNEL_ID, IMG_FALSE);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,	"PVRSRVDevicePreClockSpeedChange : failed to acquire lock, error:0x%x", eError));
-			return eError;
-		}
-	}
-
-	
-	psPowerDevice = (PVRSRV_POWER_DEV*)
-					List_PVRSRV_POWER_DEV_Any_va(psSysData->psPowerDeviceList,
-												 &MatchPowerDeviceIndex_AnyVaCb,
-												 ui32DeviceIndex);
-
-	if (psPowerDevice && psPowerDevice->pfnPostClockSpeedChange)
-	{
-			eError = psPowerDevice->pfnPreClockSpeedChange(psPowerDevice->hDevCookie,
-														   bIdleDevice,
-														   psPowerDevice->eCurrentPowerState);
-			if (eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,
-						"PVRSRVDevicePreClockSpeedChange : Device %u failed, error:0x%x",
-						ui32DeviceIndex, eError));
-			}
-	}
-
-	if (bIdleDevice && eError != PVRSRV_OK)
-	{
-		PVRSRVPowerUnlock(KERNEL_ID);
-	}
-
-	return eError;
-}
-
-
-IMG_VOID PVRSRVDevicePostClockSpeedChange(IMG_UINT32	ui32DeviceIndex,
-										  IMG_BOOL		bIdleDevice,
-										  IMG_VOID		*pvInfo)
-{
-	PVRSRV_ERROR		eError;
-	SYS_DATA			*psSysData;
-	PVRSRV_POWER_DEV	*psPowerDevice;
-
-	PVR_UNREFERENCED_PARAMETER(pvInfo);
-
-	SysAcquireData(&psSysData);
-
-	
-	psPowerDevice = (PVRSRV_POWER_DEV*)
-					List_PVRSRV_POWER_DEV_Any_va(psSysData->psPowerDeviceList,
-												 &MatchPowerDeviceIndex_AnyVaCb,
-												 ui32DeviceIndex);
-
-	if (psPowerDevice && psPowerDevice->pfnPostClockSpeedChange)
-	{
-		eError = psPowerDevice->pfnPostClockSpeedChange(psPowerDevice->hDevCookie,
-														bIdleDevice,
-														psPowerDevice->eCurrentPowerState);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,
-					"PVRSRVDevicePostClockSpeedChange : Device %u failed, error:0x%x",
-					ui32DeviceIndex, eError));
-		}
-	}
-
-
-	if (bIdleDevice)
-	{
-		
-		PVRSRVPowerUnlock(KERNEL_ID);
-	}
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/pvrsrv.c b/drivers/staging/cdv/pvr/services4/srvkm/common/pvrsrv.c
deleted file mode 100644
index 968144f..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/pvrsrv.c
+++ /dev/null
@@ -1,1338 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "services_headers.h"
-#include "buffer_manager.h"
-#include "pvr_bridge_km.h"
-#include "handle.h"
-#include "perproc.h"
-#include "pdump_km.h"
-#include "deviceid.h"
-#include "ra.h"
-#if defined(TTRACE)
-#include "ttrace.h"
-#endif
-
-#include "pvrversion.h"
-
-#include "lists.h"
-
-IMG_UINT32	g_ui32InitFlags;
-
-#define		INIT_DATA_ENABLE_PDUMPINIT	0x1U
-#define		INIT_DATA_ENABLE_TTARCE		0x2U
-
-PVRSRV_ERROR AllocateDeviceID(SYS_DATA *psSysData, IMG_UINT32 *pui32DevID)
-{
-	SYS_DEVICE_ID* psDeviceWalker;
-	SYS_DEVICE_ID* psDeviceEnd;
-
-	psDeviceWalker = &psSysData->sDeviceID[0];
-	psDeviceEnd = psDeviceWalker + psSysData->ui32NumDevices;
-
-	
-	while (psDeviceWalker < psDeviceEnd)
-	{
-		if (!psDeviceWalker->bInUse)
-		{
-			psDeviceWalker->bInUse = IMG_TRUE;
-			*pui32DevID = psDeviceWalker->uiID;
-			return PVRSRV_OK;
-		}
-		psDeviceWalker++;
-	}
-
-	PVR_DPF((PVR_DBG_ERROR,"AllocateDeviceID: No free and valid device IDs available!"));
-
-	
-	PVR_ASSERT(psDeviceWalker < psDeviceEnd);
-
-	return PVRSRV_ERROR_NO_FREE_DEVICEIDS_AVALIABLE;
-}
-
-
-PVRSRV_ERROR FreeDeviceID(SYS_DATA *psSysData, IMG_UINT32 ui32DevID)
-{
-	SYS_DEVICE_ID* psDeviceWalker;
-	SYS_DEVICE_ID* psDeviceEnd;
-
-	psDeviceWalker = &psSysData->sDeviceID[0];
-	psDeviceEnd = psDeviceWalker + psSysData->ui32NumDevices;
-
-	
-	while (psDeviceWalker < psDeviceEnd)
-	{
-		
-		if	(
-				(psDeviceWalker->uiID == ui32DevID) &&
-				(psDeviceWalker->bInUse)
-			)
-		{
-			psDeviceWalker->bInUse = IMG_FALSE;
-			return PVRSRV_OK;
-		}
-		psDeviceWalker++;
-	}
-
-	PVR_DPF((PVR_DBG_ERROR,"FreeDeviceID: no matching dev ID that is in use!"));
-
-	
-	PVR_ASSERT(psDeviceWalker < psDeviceEnd);
-
-	return PVRSRV_ERROR_INVALID_DEVICEID;
-}
-
-
-#ifndef ReadHWReg
-IMG_EXPORT
-IMG_UINT32 ReadHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset)
-{
-	return *(volatile IMG_UINT32*)((IMG_UINTPTR_T)pvLinRegBaseAddr+ui32Offset);
-}
-#endif
-
-
-#ifndef WriteHWReg
-IMG_EXPORT
-IMG_VOID WriteHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset, IMG_UINT32 ui32Value)
-{
-	PVR_DPF((PVR_DBG_MESSAGE,"WriteHWReg Base:%x, Offset: %x, Value %x",
-			(IMG_UINTPTR_T)pvLinRegBaseAddr,ui32Offset,ui32Value));
-
-	*(IMG_UINT32*)((IMG_UINTPTR_T)pvLinRegBaseAddr+ui32Offset) = ui32Value;
-}
-#endif
-
-
-#ifndef WriteHWRegs
-IMG_EXPORT
-IMG_VOID WriteHWRegs(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Count, PVRSRV_HWREG *psHWRegs)
-{
-	while (ui32Count)
-	{
-		WriteHWReg (pvLinRegBaseAddr, psHWRegs->ui32RegAddr, psHWRegs->ui32RegVal);
-		psHWRegs++;
-		ui32Count--;
-	}
-}
-#endif
-
-static IMG_VOID PVRSRVEnumerateDevicesKM_ForEachVaCb(PVRSRV_DEVICE_NODE *psDeviceNode, va_list va)
-{
-	IMG_UINT *pui32DevCount;
-	PVRSRV_DEVICE_IDENTIFIER **ppsDevIdList;
-
-	pui32DevCount = va_arg(va, IMG_UINT*);
-	ppsDevIdList = va_arg(va, PVRSRV_DEVICE_IDENTIFIER**);
-
-	if (psDeviceNode->sDevId.eDeviceType != PVRSRV_DEVICE_TYPE_EXT)
-	{
-		*(*ppsDevIdList) = psDeviceNode->sDevId;
-		(*ppsDevIdList)++;
-		(*pui32DevCount)++;
-	}
-}
-
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumerateDevicesKM(IMG_UINT32 *pui32NumDevices,
-											 	   PVRSRV_DEVICE_IDENTIFIER *psDevIdList)
-{
-	SYS_DATA			*psSysData;
-	IMG_UINT32 			i;
-
-	if (!pui32NumDevices || !psDevIdList)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVEnumerateDevicesKM: Invalid params"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	SysAcquireData(&psSysData);
-
-	
-
-	for (i=0; i<PVRSRV_MAX_DEVICES; i++)
-	{
-		psDevIdList[i].eDeviceType = PVRSRV_DEVICE_TYPE_UNKNOWN;
-	}
-
-	
-	*pui32NumDevices = 0;
-
-	
-
-
-
-	List_PVRSRV_DEVICE_NODE_ForEach_va(psSysData->psDeviceNodeList,
-									   &PVRSRVEnumerateDevicesKM_ForEachVaCb,
-									   pui32NumDevices,
-									   &psDevIdList);
-
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR IMG_CALLCONV PVRSRVInit(PSYS_DATA psSysData)
-{
-	PVRSRV_ERROR	eError;
-
-	eError = BM_XProcWorkaroundShareInit();
-	if (eError != PVRSRV_OK)
-	{
-		goto Error;
-	}
-	
-	eError = ResManInit();
-	if (eError != PVRSRV_OK)
-	{
-		goto Error;
-	}
-
-	eError = PVRSRVPerProcessDataInit();
-	if(eError != PVRSRV_OK)
-	{
-		goto Error;
-	}
-
-	
-	eError = PVRSRVHandleInit();
-	if(eError != PVRSRV_OK)
-	{
-		goto Error;
-	}
-
-	
-	eError = OSCreateResource(&psSysData->sPowerStateChangeResource);
-	if (eError != PVRSRV_OK)
-	{
-		goto Error;
-	}
-
-	
-	psSysData->eCurrentPowerState = PVRSRV_SYS_POWER_STATE_D0;
-	psSysData->eFailedPowerState = PVRSRV_SYS_POWER_STATE_Unspecified;
-
-	
-	if(OSAllocMem( PVRSRV_PAGEABLE_SELECT,
-					 sizeof(PVRSRV_EVENTOBJECT) ,
-					 (IMG_VOID **)&psSysData->psGlobalEventObject, 0,
-					 "Event Object") != PVRSRV_OK)
-	{
-
-		goto Error;
-	}
-
-	if(OSEventObjectCreateKM("PVRSRV_GLOBAL_EVENTOBJECT", psSysData->psGlobalEventObject) != PVRSRV_OK)
-	{
-		goto Error;
-	}
-
-	
-	psSysData->pfnHighResTimerCreate = OSFuncHighResTimerCreate;
-	psSysData->pfnHighResTimerGetus = OSFuncHighResTimerGetus;
-	psSysData->pfnHighResTimerDestroy = OSFuncHighResTimerDestroy;
-
-#if defined(TTRACE)
-	eError = PVRSRVTimeTraceInit();
-	if (eError != PVRSRV_OK)
-		goto Error;
-	g_ui32InitFlags |= INIT_DATA_ENABLE_TTARCE;
-#endif
-
-	
-	PDUMPINIT();
-	g_ui32InitFlags |= INIT_DATA_ENABLE_PDUMPINIT;
-
-	return eError;
-
-Error:
-	PVRSRVDeInit(psSysData);
-	return eError;
-}
-
-
-
-IMG_VOID IMG_CALLCONV PVRSRVDeInit(PSYS_DATA psSysData)
-{
-	PVRSRV_ERROR	eError;
-
-	PVR_UNREFERENCED_PARAMETER(psSysData);
-
-	if (psSysData == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVDeInit: PVRSRVHandleDeInit failed - invalid param"));
-		return;
-	}
-#if defined(TTRACE)
-	
-	if ((g_ui32InitFlags & INIT_DATA_ENABLE_TTARCE) > 0)
-	{
-		PVRSRVTimeTraceDeinit();
-	}
-#endif
-	
-	if( (g_ui32InitFlags & INIT_DATA_ENABLE_PDUMPINIT) > 0)
-	{
-		PDUMPDEINIT();
-	}
-	
-	
-	if(psSysData->psGlobalEventObject)
-	{
-		OSEventObjectDestroyKM(psSysData->psGlobalEventObject);
-		OSFreeMem( PVRSRV_PAGEABLE_SELECT,
-						 sizeof(PVRSRV_EVENTOBJECT),
-						 psSysData->psGlobalEventObject,
-						 0);
-		psSysData->psGlobalEventObject = IMG_NULL;
-	}
-
-	eError = PVRSRVHandleDeInit();
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVDeInit: PVRSRVHandleDeInit failed"));
-	}
-
-	eError = PVRSRVPerProcessDataDeInit();
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVDeInit: PVRSRVPerProcessDataDeInit failed"));
-	}
-
-	ResManDeInit();
-
-	BM_XProcWorkaroundShareDestroy();
-}
-
-
-PVRSRV_ERROR IMG_CALLCONV PVRSRVRegisterDevice(PSYS_DATA psSysData,
-											  PVRSRV_ERROR (*pfnRegisterDevice)(PVRSRV_DEVICE_NODE*),
-											  IMG_UINT32 ui32SOCInterruptBit,
-			 								  IMG_UINT32 *pui32DeviceIndex)
-{
-	PVRSRV_ERROR		eError;
-	PVRSRV_DEVICE_NODE	*psDeviceNode;
-
-	
-	if(OSAllocMem( PVRSRV_OS_NON_PAGEABLE_HEAP,
-					 sizeof(PVRSRV_DEVICE_NODE),
-					 (IMG_VOID **)&psDeviceNode, IMG_NULL,
-					 "Device Node") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRegisterDevice : Failed to alloc memory for psDeviceNode"));
-		return (PVRSRV_ERROR_OUT_OF_MEMORY);
-	}
-	OSMemSet (psDeviceNode, 0, sizeof(PVRSRV_DEVICE_NODE));
-
-	eError = pfnRegisterDevice(psDeviceNode);
-	if (eError != PVRSRV_OK)
-	{
-		OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-					sizeof(PVRSRV_DEVICE_NODE), psDeviceNode, IMG_NULL);
-		
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRegisterDevice : Failed to register device"));
-		return (PVRSRV_ERROR_DEVICE_REGISTER_FAILED);
-	}
-
-	
-
-
-
-
-	psDeviceNode->ui32RefCount = 1;
-	psDeviceNode->psSysData = psSysData;
-	psDeviceNode->ui32SOCInterruptBit = ui32SOCInterruptBit;
-
-	
-	AllocateDeviceID(psSysData, &psDeviceNode->sDevId.ui32DeviceIndex);
-
-	
-	List_PVRSRV_DEVICE_NODE_Insert(&psSysData->psDeviceNodeList, psDeviceNode);
-
-	
-	*pui32DeviceIndex = psDeviceNode->sDevId.ui32DeviceIndex;
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR IMG_CALLCONV PVRSRVInitialiseDevice (IMG_UINT32 ui32DevIndex)
-{
-	PVRSRV_DEVICE_NODE	*psDeviceNode;
-	SYS_DATA			*psSysData;
-	PVRSRV_ERROR		eError;
-
-	PVR_DPF((PVR_DBG_MESSAGE, "PVRSRVInitialiseDevice"));
-
-	SysAcquireData(&psSysData);
-
-	
-	psDeviceNode = (PVRSRV_DEVICE_NODE*)
-					 List_PVRSRV_DEVICE_NODE_Any_va(psSysData->psDeviceNodeList,
-													&MatchDeviceKM_AnyVaCb,
-													ui32DevIndex,
-													IMG_TRUE);
-	if(!psDeviceNode)
-	{
-		
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVInitialiseDevice: requested device is not present"));
-		return PVRSRV_ERROR_INIT_FAILURE;
-	}
-	PVR_ASSERT (psDeviceNode->ui32RefCount > 0);
-
-	
-
-	eError = PVRSRVResManConnect(IMG_NULL, &psDeviceNode->hResManContext);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVInitialiseDevice: Failed PVRSRVResManConnect call"));
-		return eError;
-	}
-
-	
-	if(psDeviceNode->pfnInitDevice != IMG_NULL)
-	{
-		eError = psDeviceNode->pfnInitDevice(psDeviceNode);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"PVRSRVInitialiseDevice: Failed InitDevice call"));
-			return eError;
-		}
-	}
-
-	return PVRSRV_OK;
-}
-
-
-static PVRSRV_ERROR PVRSRVFinaliseSystem_SetPowerState_AnyCb(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	PVRSRV_ERROR eError;
-	eError = PVRSRVSetDevicePowerStateKM(psDeviceNode->sDevId.ui32DeviceIndex,
-										 PVRSRV_DEV_POWER_STATE_DEFAULT,
-										 KERNEL_ID, IMG_FALSE);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVFinaliseSystem: Failed PVRSRVSetDevicePowerStateKM call (device index: %d)", psDeviceNode->sDevId.ui32DeviceIndex));
-	}
-	return eError;
-}
-
-static PVRSRV_ERROR PVRSRVFinaliseSystem_CompatCheck_AnyCb(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	PVRSRV_ERROR eError;
-	eError = PVRSRVDevInitCompatCheck(psDeviceNode);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVFinaliseSystem: Failed PVRSRVDevInitCompatCheck call (device index: %d)", psDeviceNode->sDevId.ui32DeviceIndex));
-	}
-	return eError;
-}
-
-
-PVRSRV_ERROR IMG_CALLCONV PVRSRVFinaliseSystem(IMG_BOOL bInitSuccessful)
-{
-	SYS_DATA		*psSysData;
-	PVRSRV_ERROR		eError;
-
-	PVR_DPF((PVR_DBG_MESSAGE, "PVRSRVFinaliseSystem"));
-
-	SysAcquireData(&psSysData);
-
-	if (bInitSuccessful)
-	{
-		eError = SysFinalise();
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"PVRSRVFinaliseSystem: SysFinalise failed (%d)", eError));
-			return eError;
-		}
-
-		
-		eError = List_PVRSRV_DEVICE_NODE_PVRSRV_ERROR_Any(psSysData->psDeviceNodeList,
-														&PVRSRVFinaliseSystem_SetPowerState_AnyCb);
-		if (eError != PVRSRV_OK)
-		{
-			return eError;
-		}
-
-		
-		eError = List_PVRSRV_DEVICE_NODE_PVRSRV_ERROR_Any(psSysData->psDeviceNodeList,
-													&PVRSRVFinaliseSystem_CompatCheck_AnyCb);
-		if (eError != PVRSRV_OK)
-		{
-			return eError;
-		}
-	}
-
-	
-
-
-
-#if !defined(__QNXNTO__)
-	PDUMPENDINITPHASE();
-#endif
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR PVRSRVDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	
-	if (psDeviceNode->pfnInitDeviceCompatCheck)
-		return psDeviceNode->pfnInitDeviceCompatCheck(psDeviceNode);
-	else
-		return PVRSRV_OK;
-}
-
-static IMG_VOID * PVRSRVAcquireDeviceDataKM_Match_AnyVaCb(PVRSRV_DEVICE_NODE *psDeviceNode, va_list va)
-{
-	PVRSRV_DEVICE_TYPE eDeviceType;
-	IMG_UINT32 ui32DevIndex;
-
-	eDeviceType = va_arg(va, PVRSRV_DEVICE_TYPE);
-	ui32DevIndex = va_arg(va, IMG_UINT32);
-
-	if ((eDeviceType != PVRSRV_DEVICE_TYPE_UNKNOWN &&
-		psDeviceNode->sDevId.eDeviceType == eDeviceType) ||
-		(eDeviceType == PVRSRV_DEVICE_TYPE_UNKNOWN &&
-		 psDeviceNode->sDevId.ui32DeviceIndex == ui32DevIndex))
-	{
-		return psDeviceNode;
-	}
-	else
-	{
-		return IMG_NULL;
-	}
-}
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVAcquireDeviceDataKM (IMG_UINT32			ui32DevIndex,
-													 PVRSRV_DEVICE_TYPE	eDeviceType,
-													 IMG_HANDLE			*phDevCookie)
-{
-	PVRSRV_DEVICE_NODE	*psDeviceNode;
-	SYS_DATA			*psSysData;
-
-	PVR_DPF((PVR_DBG_MESSAGE, "PVRSRVAcquireDeviceDataKM"));
-
-	SysAcquireData(&psSysData);
-
-	
-	psDeviceNode = List_PVRSRV_DEVICE_NODE_Any_va(psSysData->psDeviceNodeList,
-												&PVRSRVAcquireDeviceDataKM_Match_AnyVaCb,
-												eDeviceType,
-												ui32DevIndex);
-
-
-	if (!psDeviceNode)
-	{
-		
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVAcquireDeviceDataKM: requested device is not present"));
-		return PVRSRV_ERROR_INIT_FAILURE;
-	}
-
-	PVR_ASSERT (psDeviceNode->ui32RefCount > 0);
-
-	
-	if (phDevCookie)
-	{
-		*phDevCookie = (IMG_HANDLE)psDeviceNode;
-	}
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR IMG_CALLCONV PVRSRVDeinitialiseDevice(IMG_UINT32 ui32DevIndex)
-{
-	PVRSRV_DEVICE_NODE	*psDeviceNode;
-	SYS_DATA			*psSysData;
-	PVRSRV_ERROR		eError;
-
-	SysAcquireData(&psSysData);
-
-	psDeviceNode = (PVRSRV_DEVICE_NODE*)
-					 List_PVRSRV_DEVICE_NODE_Any_va(psSysData->psDeviceNodeList,
-													&MatchDeviceKM_AnyVaCb,
-													ui32DevIndex,
-													IMG_TRUE);
-
-	if (!psDeviceNode)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVDeinitialiseDevice: requested device %d is not present", ui32DevIndex));
-		return PVRSRV_ERROR_DEVICEID_NOT_FOUND;
-	}
-
-	
-
-	eError = PVRSRVSetDevicePowerStateKM(ui32DevIndex,
-										 PVRSRV_DEV_POWER_STATE_OFF,
-										 KERNEL_ID,
-										 IMG_FALSE);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVDeinitialiseDevice: Failed PVRSRVSetDevicePowerStateKM call"));
-		return eError;
-	}
-
-	
-
-	eError = ResManFreeResByCriteria(psDeviceNode->hResManContext,
-									 RESMAN_CRITERIA_RESTYPE,
-									 RESMAN_TYPE_DEVICEMEM_ALLOCATION,
-									 IMG_NULL, 0);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVDeinitialiseDevice: Failed ResManFreeResByCriteria call"));
-		return eError;
-	}
-
-	
-
-	if(psDeviceNode->pfnDeInitDevice != IMG_NULL)
-	{
-		eError = psDeviceNode->pfnDeInitDevice(psDeviceNode);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"PVRSRVDeinitialiseDevice: Failed DeInitDevice call"));
-			return eError;
-		}
-	}
-
-	
-
-	PVRSRVResManDisconnect(psDeviceNode->hResManContext, IMG_TRUE);
-	psDeviceNode->hResManContext = IMG_NULL;
-
-	
-	List_PVRSRV_DEVICE_NODE_Remove(psDeviceNode);
-
-	
-	(IMG_VOID)FreeDeviceID(psSysData, ui32DevIndex);
-	OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-				sizeof(PVRSRV_DEVICE_NODE), psDeviceNode, IMG_NULL);
-	
-
-	return (PVRSRV_OK);
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PollForValueKM (volatile IMG_UINT32*	pui32LinMemAddr,
-										  IMG_UINT32			ui32Value,
-										  IMG_UINT32			ui32Mask,
-										  IMG_UINT32			ui32Timeoutus,
-										  IMG_UINT32			ui32PollPeriodus,
-										  IMG_BOOL				bAllowPreemption)
-{
-#if defined (EMULATOR)
-	{
-		PVR_UNREFERENCED_PARAMETER(bAllowPreemption);
-		#if !defined(__linux__)
-		PVR_UNREFERENCED_PARAMETER(ui32PollPeriodus);
-		#endif	
-		
-		
-		
-		do
-		{
-			if((*pui32LinMemAddr & ui32Mask) == ui32Value)
-			{
-				return PVRSRV_OK;
-			}
-
-			#if defined(__linux__)
-			OSWaitus(ui32PollPeriodus);
-			#else
-			OSReleaseThreadQuanta();
-			#endif	
-
-		} while (ui32Timeoutus); 
-	}
-#else
-	{
-		IMG_UINT32	ui32ActualValue = 0xFFFFFFFFU; 
-
-		if (bAllowPreemption)
-		{
-			PVR_ASSERT(ui32PollPeriodus >= 1000);
-		}
-
-		 
-		LOOP_UNTIL_TIMEOUT(ui32Timeoutus)
-		{
-			ui32ActualValue = (*pui32LinMemAddr & ui32Mask);
-			if(ui32ActualValue == ui32Value)
-			{
-				return PVRSRV_OK;
-			}
-			
-			if (bAllowPreemption)
-			{
-				OSSleepms(ui32PollPeriodus / 1000);
-			}
-			else
-			{
-				OSWaitus(ui32PollPeriodus);
-			}
-		} END_LOOP_UNTIL_TIMEOUT();
-	
-		PVR_DPF((PVR_DBG_ERROR,"PollForValueKM: Timeout. Expected 0x%x but found 0x%x (mask 0x%x).",
-				ui32Value, ui32ActualValue, ui32Mask));
-	}
-#endif 
-
-	return PVRSRV_ERROR_TIMEOUT;
-}
-
-
-static IMG_VOID PVRSRVGetMiscInfoKM_RA_GetStats_ForEachVaCb(BM_HEAP *psBMHeap, va_list va)
-{
-	IMG_CHAR **ppszStr;
-	IMG_UINT32 *pui32StrLen;
-	IMG_UINT32 ui32Mode;
-	PVRSRV_ERROR (*pfnGetStats)(RA_ARENA *, IMG_CHAR **, IMG_UINT32 *);
-
-	ppszStr = va_arg(va, IMG_CHAR**);
-	pui32StrLen = va_arg(va, IMG_UINT32*);
-	ui32Mode = va_arg(va, IMG_UINT32);
-
-	
-	switch(ui32Mode)
-	{
-		case PVRSRV_MISC_INFO_MEMSTATS_PRESENT:
-			pfnGetStats = &RA_GetStats;
-			break;
-		case PVRSRV_MISC_INFO_FREEMEM_PRESENT:
-			pfnGetStats = &RA_GetStatsFreeMem;
-			break;
-		default:
-			return;
-	}
-
-	if(psBMHeap->pImportArena)
-	{
-		pfnGetStats(psBMHeap->pImportArena,
-					ppszStr,
-					pui32StrLen);
-	}
-
-	if(psBMHeap->pVMArena)
-	{
-		pfnGetStats(psBMHeap->pVMArena,
-					ppszStr,
-					pui32StrLen);
-	}
-}
-
-static PVRSRV_ERROR PVRSRVGetMiscInfoKM_BMContext_AnyVaCb(BM_CONTEXT *psBMContext, va_list va)
-{
-
-	IMG_UINT32 *pui32StrLen;
-	IMG_INT32 *pi32Count;
-	IMG_CHAR **ppszStr;
-	IMG_UINT32 ui32Mode;
-
-	pui32StrLen = va_arg(va, IMG_UINT32*);
-	pi32Count = va_arg(va, IMG_INT32*);
-	ppszStr = va_arg(va, IMG_CHAR**);
-	ui32Mode = va_arg(va, IMG_UINT32);
-
-	CHECK_SPACE(*pui32StrLen);
-	*pi32Count = OSSNPrintf(*ppszStr, 100, "\nApplication Context (hDevMemContext) %p:\n",
-							(IMG_HANDLE)psBMContext);
-	UPDATE_SPACE(*ppszStr, *pi32Count, *pui32StrLen);
-
-	List_BM_HEAP_ForEach_va(psBMContext->psBMHeap,
-							&PVRSRVGetMiscInfoKM_RA_GetStats_ForEachVaCb,
-							ppszStr,
-							pui32StrLen,
-							ui32Mode);
-	return PVRSRV_OK;
-}
-
-
-static PVRSRV_ERROR PVRSRVGetMiscInfoKM_Device_AnyVaCb(PVRSRV_DEVICE_NODE *psDeviceNode, va_list va)
-{
-	IMG_UINT32 *pui32StrLen;
-	IMG_INT32 *pi32Count;
-	IMG_CHAR **ppszStr;
-	IMG_UINT32 ui32Mode;
-
-	pui32StrLen = va_arg(va, IMG_UINT32*);
-	pi32Count = va_arg(va, IMG_INT32*);
-	ppszStr = va_arg(va, IMG_CHAR**);
-	ui32Mode = va_arg(va, IMG_UINT32);
-
-	CHECK_SPACE(*pui32StrLen);
-	*pi32Count = OSSNPrintf(*ppszStr, 100, "\n\nDevice Type %d:\n", psDeviceNode->sDevId.eDeviceType);
-	UPDATE_SPACE(*ppszStr, *pi32Count, *pui32StrLen);
-
-	
-	if(psDeviceNode->sDevMemoryInfo.pBMKernelContext)
-	{
-		CHECK_SPACE(*pui32StrLen);
-		*pi32Count = OSSNPrintf(*ppszStr, 100, "\nKernel Context:\n");
-		UPDATE_SPACE(*ppszStr, *pi32Count, *pui32StrLen);
-
-		List_BM_HEAP_ForEach_va(psDeviceNode->sDevMemoryInfo.pBMKernelContext->psBMHeap,
-								&PVRSRVGetMiscInfoKM_RA_GetStats_ForEachVaCb,
-								ppszStr,
-								pui32StrLen,
-								ui32Mode);
-	}
-
-	
-	return List_BM_CONTEXT_PVRSRV_ERROR_Any_va(psDeviceNode->sDevMemoryInfo.pBMContext,
-												&PVRSRVGetMiscInfoKM_BMContext_AnyVaCb,
-							 					pui32StrLen,
-												pi32Count,
-												ppszStr,
-												ui32Mode);
-}
-
-
-IMG_EXPORT
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO_KM *psMiscInfo)
-#else
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO *psMiscInfo)
-#endif
-{
-	SYS_DATA *psSysData;
-
-	if(!psMiscInfo)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVGetMiscInfoKM: invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	psMiscInfo->ui32StatePresent = 0;
-
-	
-	if(psMiscInfo->ui32StateRequest & ~(PVRSRV_MISC_INFO_TIMER_PRESENT
-										|PVRSRV_MISC_INFO_CLOCKGATE_PRESENT
-										|PVRSRV_MISC_INFO_MEMSTATS_PRESENT
-										|PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT
-										|PVRSRV_MISC_INFO_DDKVERSION_PRESENT
-										|PVRSRV_MISC_INFO_CPUCACHEOP_PRESENT
-										|PVRSRV_MISC_INFO_RESET_PRESENT
-										|PVRSRV_MISC_INFO_FREEMEM_PRESENT))
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVGetMiscInfoKM: invalid state request flags"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	SysAcquireData(&psSysData);
-
-	
-	if(((psMiscInfo->ui32StateRequest & PVRSRV_MISC_INFO_TIMER_PRESENT) != 0UL) &&
-		(psSysData->pvSOCTimerRegisterKM != IMG_NULL))
-	{
-		psMiscInfo->ui32StatePresent |= PVRSRV_MISC_INFO_TIMER_PRESENT;
-		psMiscInfo->pvSOCTimerRegisterKM = psSysData->pvSOCTimerRegisterKM;
-		psMiscInfo->hSOCTimerRegisterOSMemHandle = psSysData->hSOCTimerRegisterOSMemHandle;
-	}
-	else
-	{
-		psMiscInfo->pvSOCTimerRegisterKM = IMG_NULL;
-		psMiscInfo->hSOCTimerRegisterOSMemHandle = IMG_NULL;
-	}
-
-	
-	if(((psMiscInfo->ui32StateRequest & PVRSRV_MISC_INFO_CLOCKGATE_PRESENT) != 0UL) &&
-		(psSysData->pvSOCClockGateRegsBase != IMG_NULL))
-	{
-		psMiscInfo->ui32StatePresent |= PVRSRV_MISC_INFO_CLOCKGATE_PRESENT;
-		psMiscInfo->pvSOCClockGateRegs = psSysData->pvSOCClockGateRegsBase;
-		psMiscInfo->ui32SOCClockGateRegsSize = psSysData->ui32SOCClockGateRegsSize;
-	}
-
-	
-	if(((psMiscInfo->ui32StateRequest & PVRSRV_MISC_INFO_MEMSTATS_PRESENT) != 0UL) &&
-		(psMiscInfo->pszMemoryStr != IMG_NULL))
-	{
-		RA_ARENA			**ppArena;
-		IMG_CHAR			*pszStr;
-		IMG_UINT32			ui32StrLen;
-		IMG_INT32			i32Count;
-
-		pszStr = psMiscInfo->pszMemoryStr;
-		ui32StrLen = psMiscInfo->ui32MemoryStrLen;
-
-		psMiscInfo->ui32StatePresent |= PVRSRV_MISC_INFO_MEMSTATS_PRESENT;
-
-		
-		ppArena = &psSysData->apsLocalDevMemArena[0];
-		while(*ppArena)
-		{
-			CHECK_SPACE(ui32StrLen);
-			i32Count = OSSNPrintf(pszStr, 100, "\nLocal Backing Store:\n");
-			UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-
-			RA_GetStats(*ppArena,
-							&pszStr,
-							&ui32StrLen);
-			
-			ppArena++;
-		}
-
-		
-		
-		List_PVRSRV_DEVICE_NODE_PVRSRV_ERROR_Any_va(psSysData->psDeviceNodeList,
-													&PVRSRVGetMiscInfoKM_Device_AnyVaCb,
-													&ui32StrLen,
-													&i32Count,
-													&pszStr,
-													PVRSRV_MISC_INFO_MEMSTATS_PRESENT);
-
-		
-		i32Count = OSSNPrintf(pszStr, 100, "\n");
-		UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-	}
-
-	
-	if(((psMiscInfo->ui32StateRequest & PVRSRV_MISC_INFO_FREEMEM_PRESENT) != 0)
-		&& psMiscInfo->pszMemoryStr)
-	{
-		IMG_CHAR			*pszStr;
-		IMG_UINT32			ui32StrLen;
-		IMG_INT32			i32Count;
-		
-		pszStr = psMiscInfo->pszMemoryStr;
-		ui32StrLen = psMiscInfo->ui32MemoryStrLen;
-  
-		psMiscInfo->ui32StatePresent |= PVRSRV_MISC_INFO_FREEMEM_PRESENT;
-
-		
-		List_PVRSRV_DEVICE_NODE_PVRSRV_ERROR_Any_va(psSysData->psDeviceNodeList,
-													&PVRSRVGetMiscInfoKM_Device_AnyVaCb,
-													&ui32StrLen,
-													&i32Count,
-													&pszStr,
-													PVRSRV_MISC_INFO_FREEMEM_PRESENT);
-		
-		i32Count = OSSNPrintf(pszStr, 100, "\n");
-		UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-	}
-
-	if(((psMiscInfo->ui32StateRequest & PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT) != 0UL) &&
-		(psSysData->psGlobalEventObject != IMG_NULL))
-	{
-		psMiscInfo->ui32StatePresent |= PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT;
-		psMiscInfo->sGlobalEventObject = *psSysData->psGlobalEventObject;
-	}
-
-	
-
-	if (((psMiscInfo->ui32StateRequest & PVRSRV_MISC_INFO_DDKVERSION_PRESENT) != 0UL)
-		&& ((psMiscInfo->ui32StateRequest & PVRSRV_MISC_INFO_MEMSTATS_PRESENT) == 0UL)
-		&& (psMiscInfo->pszMemoryStr != IMG_NULL))
-	{
-		IMG_CHAR	*pszStr;
-		IMG_UINT32	ui32StrLen;
-		IMG_UINT32 	ui32LenStrPerNum = 12; 
-		IMG_INT32	i32Count;
-		IMG_INT i;
-		psMiscInfo->ui32StatePresent |= PVRSRV_MISC_INFO_DDKVERSION_PRESENT;
-
-		
-		psMiscInfo->aui32DDKVersion[0] = PVRVERSION_MAJ;
-		psMiscInfo->aui32DDKVersion[1] = PVRVERSION_MIN;
-		psMiscInfo->aui32DDKVersion[2] = PVRVERSION_BRANCH;
-		psMiscInfo->aui32DDKVersion[3] = PVRVERSION_BUILD;
-
-		pszStr = psMiscInfo->pszMemoryStr;
-		ui32StrLen = psMiscInfo->ui32MemoryStrLen;
-
-		for (i=0; i<4; i++)
-		{
-			if (ui32StrLen < ui32LenStrPerNum)
-			{
-				return PVRSRV_ERROR_INVALID_PARAMS;
-			}
-
-			i32Count = OSSNPrintf(pszStr, ui32LenStrPerNum, "%u", psMiscInfo->aui32DDKVersion[i]);
-			UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-			if (i != 3)
-			{
-				i32Count = OSSNPrintf(pszStr, 2, ".");
-				UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-			}
-		}
-	}
-
-	if((psMiscInfo->ui32StateRequest & PVRSRV_MISC_INFO_CPUCACHEOP_PRESENT) != 0UL)
-	{
-		psMiscInfo->ui32StatePresent |= PVRSRV_MISC_INFO_CPUCACHEOP_PRESENT;
-
-		if(psMiscInfo->sCacheOpCtl.bDeferOp)
-		{
-			
-			psSysData->ePendingCacheOpType = psMiscInfo->sCacheOpCtl.eCacheOpType;
-		}
-		else
-		{
-#if defined (SUPPORT_SID_INTERFACE)
-			PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo = psMiscInfo->sCacheOpCtl.psKernelMemInfo;
-
-			if(!psMiscInfo->sCacheOpCtl.psKernelMemInfo)
-#else
-			PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
-			PVRSRV_PER_PROCESS_DATA *psPerProc;
-
-			if(!psMiscInfo->sCacheOpCtl.u.psKernelMemInfo)
-#endif
-			{
-				PVR_DPF((PVR_DBG_WARNING, "PVRSRVGetMiscInfoKM: "
-						 "Ignoring non-deferred cache op with no meminfo"));
-				return PVRSRV_ERROR_INVALID_PARAMS;
-			}
-
-			if(psSysData->ePendingCacheOpType != PVRSRV_MISC_INFO_CPUCACHEOP_NONE)
-			{
-				PVR_DPF((PVR_DBG_WARNING, "PVRSRVGetMiscInfoKM: "
-						 "Deferred cache op is pending. It is unlikely you want "
-						 "to combine deferred cache ops with immediate ones"));
-			}
-
-#if defined (SUPPORT_SID_INTERFACE)
-			PVR_DBG_BREAK
-#else
-			
-			psPerProc = PVRSRVFindPerProcessData();
-
-			if(PVRSRVLookupHandle(psPerProc->psHandleBase,
-								  (IMG_PVOID *)&psKernelMemInfo,
-								  psMiscInfo->sCacheOpCtl.u.psKernelMemInfo,
-								  PVRSRV_HANDLE_TYPE_MEM_INFO) != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "PVRSRVGetMiscInfoKM: "
-						 "Can't find kernel meminfo"));
-				return PVRSRV_ERROR_INVALID_PARAMS;
-			}
-#endif
-
-			if(psMiscInfo->sCacheOpCtl.eCacheOpType == PVRSRV_MISC_INFO_CPUCACHEOP_FLUSH)
-			{
-				if(!OSFlushCPUCacheRangeKM(psKernelMemInfo->sMemBlk.hOSMemHandle,
-										   psMiscInfo->sCacheOpCtl.pvBaseVAddr,
-										   psMiscInfo->sCacheOpCtl.ui32Length))
-				{
-					return PVRSRV_ERROR_CACHEOP_FAILED;
-				}
-			}
-			else if(psMiscInfo->sCacheOpCtl.eCacheOpType == PVRSRV_MISC_INFO_CPUCACHEOP_CLEAN)
-			{
-				if(!OSCleanCPUCacheRangeKM(psKernelMemInfo->sMemBlk.hOSMemHandle,
-										   psMiscInfo->sCacheOpCtl.pvBaseVAddr,
-										   psMiscInfo->sCacheOpCtl.ui32Length))
-				{
-					return PVRSRV_ERROR_CACHEOP_FAILED;
-				}
-			}
-		}
-	}
-
-#if defined(PVRSRV_RESET_ON_HWTIMEOUT)
-	if((psMiscInfo->ui32StateRequest & PVRSRV_MISC_INFO_RESET_PRESENT) != 0UL)
-	{
-		PVR_LOG(("User requested OS reset"));
-		OSPanic();
-	}
-#endif 
-
-	return PVRSRV_OK;
-}
-
-
-IMG_BOOL IMG_CALLCONV PVRSRVDeviceLISR(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	SYS_DATA			*psSysData;
-	IMG_BOOL			bStatus = IMG_FALSE;
-	IMG_UINT32			ui32InterruptSource;
-
-	if(!psDeviceNode)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVDeviceLISR: Invalid params\n"));
-		goto out;
-	}
-	psSysData = psDeviceNode->psSysData;
-
-	
-	ui32InterruptSource = SysGetInterruptSource(psSysData, psDeviceNode);
-	if(ui32InterruptSource & psDeviceNode->ui32SOCInterruptBit)
-	{
-		if(psDeviceNode->pfnDeviceISR != IMG_NULL)
-		{
-			bStatus = (*psDeviceNode->pfnDeviceISR)(psDeviceNode->pvISRData);
-		}
-
-		SysClearInterrupts(psSysData, psDeviceNode->ui32SOCInterruptBit);
-	}
-
-out:
-	return bStatus;
-}
-
-static IMG_VOID PVRSRVSystemLISR_ForEachVaCb(PVRSRV_DEVICE_NODE *psDeviceNode, va_list va)
-{
-
-	IMG_BOOL *pbStatus;
-	IMG_UINT32 *pui32InterruptSource;
-	IMG_UINT32 *pui32ClearInterrupts;
-
-	pbStatus = va_arg(va, IMG_BOOL*);
-	pui32InterruptSource = va_arg(va, IMG_UINT32*);
-	pui32ClearInterrupts = va_arg(va, IMG_UINT32*);
-
-
-	if(psDeviceNode->pfnDeviceISR != IMG_NULL)
-	{
-		if(*pui32InterruptSource & psDeviceNode->ui32SOCInterruptBit)
-		{
-			if((*psDeviceNode->pfnDeviceISR)(psDeviceNode->pvISRData))
-			{
-				
-				*pbStatus = IMG_TRUE;
-			}
-			
-			*pui32ClearInterrupts |= psDeviceNode->ui32SOCInterruptBit;
-		}
-	}
-}
-
-IMG_BOOL IMG_CALLCONV PVRSRVSystemLISR(IMG_VOID *pvSysData)
-{
-	SYS_DATA			*psSysData = pvSysData;
-	IMG_BOOL			bStatus = IMG_FALSE;
-	IMG_UINT32			ui32InterruptSource;
-	IMG_UINT32			ui32ClearInterrupts = 0;
-	if(!psSysData)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVSystemLISR: Invalid params\n"));
-	}
-	else
-	{
-		
-		ui32InterruptSource = SysGetInterruptSource(psSysData, IMG_NULL);
-
-		
-		if(ui32InterruptSource)
-		{
-			
-			List_PVRSRV_DEVICE_NODE_ForEach_va(psSysData->psDeviceNodeList,
-												&PVRSRVSystemLISR_ForEachVaCb,
-												&bStatus,
-												&ui32InterruptSource,
-												&ui32ClearInterrupts);
-
-			SysClearInterrupts(psSysData, ui32ClearInterrupts);
-		}
-	}
-	return bStatus;
-}
-
-
-static IMG_VOID PVRSRVMISR_ForEachCb(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	if(psDeviceNode->pfnDeviceMISR != IMG_NULL)
-	{
-		(*psDeviceNode->pfnDeviceMISR)(psDeviceNode->pvISRData);
-	}
-}
-
-IMG_VOID IMG_CALLCONV PVRSRVMISR(IMG_VOID *pvSysData)
-{
-	SYS_DATA			*psSysData = pvSysData;
-	if(!psSysData)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVMISR: Invalid params\n"));
-		return;
-	}
-
-	
-	List_PVRSRV_DEVICE_NODE_ForEach(psSysData->psDeviceNodeList,
-									&PVRSRVMISR_ForEachCb);
-
-	
-	if (PVRSRVProcessQueues(IMG_FALSE) == PVRSRV_ERROR_PROCESSING_BLOCKED)
-	{
-		PVRSRVProcessQueues(IMG_FALSE);
-	}
-
-	
-	if (psSysData->psGlobalEventObject)
-	{
-		IMG_HANDLE hOSEventKM = psSysData->psGlobalEventObject->hOSEventKM;
-		if(hOSEventKM)
-		{
-			OSEventObjectSignalKM(hOSEventKM);
-		}
-	}
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVProcessConnect(IMG_UINT32	ui32PID, IMG_UINT32 ui32Flags)
-{
-	return PVRSRVPerProcessDataConnect(ui32PID, ui32Flags);
-}
-
-
-IMG_EXPORT
-IMG_VOID IMG_CALLCONV PVRSRVProcessDisconnect(IMG_UINT32	ui32PID)
-{
-	PVRSRVPerProcessDataDisconnect(ui32PID);
-}
-
-
-PVRSRV_ERROR IMG_CALLCONV PVRSRVSaveRestoreLiveSegments(IMG_HANDLE hArena, IMG_PBYTE pbyBuffer,
-														IMG_SIZE_T *puiBufSize, IMG_BOOL bSave)
-{
-	IMG_SIZE_T         uiBytesSaved = 0;
-	IMG_PVOID          pvLocalMemCPUVAddr;
-	RA_SEGMENT_DETAILS sSegDetails;
-
-	if (hArena == IMG_NULL)
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-	sSegDetails.uiSize = 0;
-	sSegDetails.sCpuPhyAddr.uiAddr = 0;
-	sSegDetails.hSegment = 0;
-
-	
-	while (RA_GetNextLiveSegment(hArena, &sSegDetails))
-	{
-		if (pbyBuffer == IMG_NULL)
-		{
-			
-			uiBytesSaved += sizeof(sSegDetails.uiSize) + sSegDetails.uiSize;
-		}
-		else
-		{
-			if ((uiBytesSaved + sizeof(sSegDetails.uiSize) + sSegDetails.uiSize) > *puiBufSize)
-			{
-				return (PVRSRV_ERROR_OUT_OF_MEMORY);
-			}
-
-			PVR_DPF((PVR_DBG_MESSAGE, "PVRSRVSaveRestoreLiveSegments: Base %08x size %08x", sSegDetails.sCpuPhyAddr.uiAddr, sSegDetails.uiSize));
-
-			
-			pvLocalMemCPUVAddr = OSMapPhysToLin(sSegDetails.sCpuPhyAddr,
-									sSegDetails.uiSize,
-									PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-									IMG_NULL);
-			if (pvLocalMemCPUVAddr == IMG_NULL)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "PVRSRVSaveRestoreLiveSegments: Failed to map local memory to host"));
-				return (PVRSRV_ERROR_OUT_OF_MEMORY);
-			}
-
-			if (bSave)
-			{
-				
-				OSMemCopy(pbyBuffer, &sSegDetails.uiSize, sizeof(sSegDetails.uiSize));
-				pbyBuffer += sizeof(sSegDetails.uiSize);
-
-				OSMemCopy(pbyBuffer, pvLocalMemCPUVAddr, sSegDetails.uiSize);
-				pbyBuffer += sSegDetails.uiSize;
-			}
-			else
-			{
-				IMG_UINT32 uiSize;
-				
-				OSMemCopy(&uiSize, pbyBuffer, sizeof(sSegDetails.uiSize));
-
-				if (uiSize != sSegDetails.uiSize)
-				{
-					PVR_DPF((PVR_DBG_ERROR, "PVRSRVSaveRestoreLiveSegments: Segment size error"));
-				}
-				else
-				{
-					pbyBuffer += sizeof(sSegDetails.uiSize);
-
-					OSMemCopy(pvLocalMemCPUVAddr, pbyBuffer, sSegDetails.uiSize);
-					pbyBuffer += sSegDetails.uiSize;
-				}
-			}
-
-
-			uiBytesSaved += sizeof(sSegDetails.uiSize) + sSegDetails.uiSize;
-
-			OSUnMapPhysToLin(pvLocalMemCPUVAddr,
-		                     sSegDetails.uiSize,
-		                     PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-		                     IMG_NULL);
-		}
-	}
-
-	if (pbyBuffer == IMG_NULL)
-	{
-		*puiBufSize = uiBytesSaved;
-	}
-
-	return (PVRSRV_OK);
-}
-
-
-IMG_EXPORT
-const IMG_CHAR *PVRSRVGetErrorStringKM(PVRSRV_ERROR eError)
-{ 
- 
-#include "pvrsrv_errors.h"
-}
-
-static IMG_VOID PVRSRVCommandCompleteCallbacks_ForEachCb(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	if(psDeviceNode->pfnDeviceCommandComplete != IMG_NULL)
-	{
-		
-		(*psDeviceNode->pfnDeviceCommandComplete)(psDeviceNode);
-	}
-}
-
-IMG_VOID PVRSRVScheduleDeviceCallbacks(IMG_VOID)
-{
-	SYS_DATA				*psSysData;
-	SysAcquireData(&psSysData);
-
-	
-	List_PVRSRV_DEVICE_NODE_ForEach(psSysData->psDeviceNodeList,
-									&PVRSRVCommandCompleteCallbacks_ForEachCb);
-}
-
-IMG_EXPORT
-IMG_VOID PVRSRVScheduleDevicesKM(IMG_VOID)
-{
-	PVRSRVScheduleDeviceCallbacks();
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/queue.c b/drivers/staging/cdv/pvr/services4/srvkm/common/queue.c
deleted file mode 100644
index 8925d3c..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/queue.c
+++ /dev/null
@@ -1,1079 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "services_headers.h"
-
-#include "lists.h"
-#include "ttrace.h"
-
-#define DC_NUM_COMMANDS_PER_TYPE		1
-
-typedef struct _DEVICE_COMMAND_DATA_
-{
-	PFN_CMD_PROC			pfnCmdProc;
-	PCOMMAND_COMPLETE_DATA	apsCmdCompleteData[DC_NUM_COMMANDS_PER_TYPE];
-	IMG_UINT32				ui32CCBOffset;
-} DEVICE_COMMAND_DATA;
-
-
-#if defined(__linux__) && defined(__KERNEL__)
-
-#include "proc.h"
-
-void ProcSeqShowQueue(struct seq_file *sfile,void* el)
-{
-	PVRSRV_QUEUE_INFO *psQueue = (PVRSRV_QUEUE_INFO*)el;
-	IMG_INT cmds = 0;
-	IMG_SIZE_T ui32ReadOffset;
-	IMG_SIZE_T ui32WriteOffset;
-	PVRSRV_COMMAND *psCmd;
-
-	if(el == PVR_PROC_SEQ_START_TOKEN)
-	{
-		seq_printf( sfile,
-					"Command Queues\n"
-					"Queue    CmdPtr      Pid Command Size DevInd  DSC  SSC  #Data ...\n");
-		return;
-	}
-
-	ui32ReadOffset = psQueue->ui32ReadOffset;
-	ui32WriteOffset = psQueue->ui32WriteOffset;
-
-	while (ui32ReadOffset != ui32WriteOffset)
-	{
-		psCmd= (PVRSRV_COMMAND *)((IMG_UINTPTR_T)psQueue->pvLinQueueKM + ui32ReadOffset);
-
-		seq_printf(sfile, "%x %x  %5u  %6u  %3u  %5u   %2u   %2u    %3u  \n",
-							(IMG_UINTPTR_T)psQueue,
-							(IMG_UINTPTR_T)psCmd,
-					 		psCmd->ui32ProcessID,
-							psCmd->CommandType,
-							psCmd->uCmdSize,
-							psCmd->ui32DevIndex,
-							psCmd->ui32DstSyncCount,
-							psCmd->ui32SrcSyncCount,
-							psCmd->uDataSize);
-		{
-			IMG_UINT32 i;
-			for (i = 0; i < psCmd->ui32SrcSyncCount; i++)
-			{
-				PVRSRV_SYNC_DATA *psSyncData = psCmd->psSrcSync[i].psKernelSyncInfoKM->psSyncData;
-				seq_printf(sfile, "  Sync %u: ROP/ROC: 0x%x/0x%x WOP/WOC: 0x%x/0x%x ROC-VA: 0x%x WOC-VA: 0x%x\n",
-									i,
-									psCmd->psSrcSync[i].ui32ReadOpsPending,
-									psSyncData->ui32ReadOpsComplete,
-									psCmd->psSrcSync[i].ui32WriteOpsPending,
-									psSyncData->ui32WriteOpsComplete,
-									psCmd->psSrcSync[i].psKernelSyncInfoKM->sReadOpsCompleteDevVAddr.uiAddr,
-									psCmd->psSrcSync[i].psKernelSyncInfoKM->sWriteOpsCompleteDevVAddr.uiAddr);
-			}
-		}
-
-		
-		ui32ReadOffset += psCmd->uCmdSize;
-		ui32ReadOffset &= psQueue->ui32QueueSize - 1;
-		cmds++;
-	}
-
-	if (cmds == 0)
-	{
-		seq_printf(sfile, "%x <empty>\n", (IMG_UINTPTR_T)psQueue);
-	}
-}
-
-void* ProcSeqOff2ElementQueue(struct seq_file * sfile, loff_t off)
-{
-	PVRSRV_QUEUE_INFO *psQueue = IMG_NULL;
-	SYS_DATA *psSysData;
-
-	PVR_UNREFERENCED_PARAMETER(sfile);
-
-	if(!off)
-	{
-		return PVR_PROC_SEQ_START_TOKEN;
-	}
-
-
-	psSysData = SysAcquireDataNoCheck();
-	if (psSysData != IMG_NULL)
-	{
-		for (psQueue = psSysData->psQueueList; (((--off) > 0) && (psQueue != IMG_NULL)); psQueue = psQueue->psNextKM);
-	}
-
-	return psQueue;
-}
-#endif 
-
-#define GET_SPACE_IN_CMDQ(psQueue)										\
-	((((psQueue)->ui32ReadOffset - (psQueue)->ui32WriteOffset)				\
-	+ ((psQueue)->ui32QueueSize - 1)) & ((psQueue)->ui32QueueSize - 1))
-
-#define UPDATE_QUEUE_WOFF(psQueue, ui32Size)							\
-	(psQueue)->ui32WriteOffset = ((psQueue)->ui32WriteOffset + (ui32Size))	\
-	& ((psQueue)->ui32QueueSize - 1);
-
-#define SYNCOPS_STALE(ui32OpsComplete, ui32OpsPending)					\
-	((ui32OpsComplete) >= (ui32OpsPending))
-
-
-static IMG_VOID QueueDumpCmdComplete(COMMAND_COMPLETE_DATA *psCmdCompleteData,
-									 IMG_UINT32				i,
-									 IMG_BOOL				bIsSrc)
-{
-	PVRSRV_SYNC_OBJECT	*psSyncObject;
-
-	psSyncObject = bIsSrc ? psCmdCompleteData->psSrcSync : psCmdCompleteData->psDstSync;
-
-	if (psCmdCompleteData->bInUse)
-	{
-		PVR_LOG(("\t%s %u: ROC DevVAddr:0x%X ROP:0x%x ROC:0x%x, WOC DevVAddr:0x%X WOP:0x%x WOC:0x%x",
-				bIsSrc ? "SRC" : "DEST", i,
-				psSyncObject[i].psKernelSyncInfoKM->sReadOpsCompleteDevVAddr.uiAddr,
-				psSyncObject[i].psKernelSyncInfoKM->psSyncData->ui32ReadOpsPending,
-				psSyncObject[i].psKernelSyncInfoKM->psSyncData->ui32ReadOpsComplete,
-				psSyncObject[i].psKernelSyncInfoKM->sWriteOpsCompleteDevVAddr.uiAddr,
-				psSyncObject[i].psKernelSyncInfoKM->psSyncData->ui32WriteOpsPending,
-				psSyncObject[i].psKernelSyncInfoKM->psSyncData->ui32WriteOpsComplete))
-	}
-	else
-	{
-		PVR_LOG(("\t%s %u: (Not in use)", bIsSrc ? "SRC" : "DEST", i))
-	}
-}
-
-
-static IMG_VOID QueueDumpDebugInfo_ForEachCb(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	if (psDeviceNode->sDevId.eDeviceClass == PVRSRV_DEVICE_CLASS_DISPLAY)
-	{
-		IMG_UINT32				ui32CmdCounter, ui32SyncCounter;
-		SYS_DATA				*psSysData;
-		DEVICE_COMMAND_DATA		*psDeviceCommandData;
-		PCOMMAND_COMPLETE_DATA	psCmdCompleteData;
-
-		SysAcquireData(&psSysData);
-
-		psDeviceCommandData = psSysData->apsDeviceCommandData[psDeviceNode->sDevId.ui32DeviceIndex];
-
-		if (psDeviceCommandData != IMG_NULL)
-		{
-			for (ui32CmdCounter = 0; ui32CmdCounter < DC_NUM_COMMANDS_PER_TYPE; ui32CmdCounter++)
-			{
-				psCmdCompleteData = psDeviceCommandData[DC_FLIP_COMMAND].apsCmdCompleteData[ui32CmdCounter];
-
-				PVR_LOG(("Flip Command Complete Data %u for display device %u:",
-						ui32CmdCounter, psDeviceNode->sDevId.ui32DeviceIndex))
-
-				for (ui32SyncCounter = 0;
-					 ui32SyncCounter < psCmdCompleteData->ui32SrcSyncCount;
-					 ui32SyncCounter++)
-				{
-					QueueDumpCmdComplete(psCmdCompleteData, ui32SyncCounter, IMG_TRUE);
-				}
-
-				for (ui32SyncCounter = 0;
-					 ui32SyncCounter < psCmdCompleteData->ui32DstSyncCount;
-					 ui32SyncCounter++)
-				{
-					QueueDumpCmdComplete(psCmdCompleteData, ui32SyncCounter, IMG_FALSE);
-				}
-			}
-		}
-		else
-		{
-			PVR_LOG(("There is no Command Complete Data for display device %u", psDeviceNode->sDevId.ui32DeviceIndex))
-		}
-	}
-}
-
-
-IMG_VOID QueueDumpDebugInfo(IMG_VOID)
-{
-	SYS_DATA	*psSysData;
-	SysAcquireData(&psSysData);
-	List_PVRSRV_DEVICE_NODE_ForEach(psSysData->psDeviceNodeList, &QueueDumpDebugInfo_ForEachCb);
-}
-
-
-static IMG_SIZE_T NearestPower2(IMG_SIZE_T ui32Value)
-{
-	IMG_SIZE_T ui32Temp, ui32Result = 1;
-
-	if(!ui32Value)
-		return 0;
-
-	ui32Temp = ui32Value - 1;
-	while(ui32Temp)
-	{
-		ui32Result <<= 1;
-		ui32Temp >>= 1;
-	}
-
-	return ui32Result;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateCommandQueueKM(IMG_SIZE_T ui32QueueSize,
-													 PVRSRV_QUEUE_INFO **ppsQueueInfo)
-{
-	PVRSRV_QUEUE_INFO	*psQueueInfo;
-	IMG_SIZE_T			ui32Power2QueueSize = NearestPower2(ui32QueueSize);
-	SYS_DATA			*psSysData;
-	PVRSRV_ERROR		eError;
-	IMG_HANDLE			hMemBlock;
-
-	SysAcquireData(&psSysData);
-
-	
-	eError = OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-					 sizeof(PVRSRV_QUEUE_INFO),
-					 (IMG_VOID **)&psQueueInfo, &hMemBlock,
-					 "Queue Info");
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateCommandQueueKM: Failed to alloc queue struct"));
-		goto ErrorExit;
-	}
-	OSMemSet(psQueueInfo, 0, sizeof(PVRSRV_QUEUE_INFO));
-
-	psQueueInfo->hMemBlock[0] = hMemBlock;
-	psQueueInfo->ui32ProcessID = OSGetCurrentProcessIDKM();
-
-	
-	eError = OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-					 ui32Power2QueueSize + PVRSRV_MAX_CMD_SIZE,
-					 &psQueueInfo->pvLinQueueKM, &hMemBlock,
-					 "Command Queue");
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVCreateCommandQueueKM: Failed to alloc queue buffer"));
-		goto ErrorExit;
-	}
-
-	psQueueInfo->hMemBlock[1] = hMemBlock;
-	psQueueInfo->pvLinQueueUM = psQueueInfo->pvLinQueueKM;
-
-	
-	PVR_ASSERT(psQueueInfo->ui32ReadOffset == 0);
-	PVR_ASSERT(psQueueInfo->ui32WriteOffset == 0);
-
-	psQueueInfo->ui32QueueSize = ui32Power2QueueSize;
-
-	
-	if (psSysData->psQueueList == IMG_NULL)
-	{
-		eError = OSCreateResource(&psSysData->sQProcessResource);
-		if (eError != PVRSRV_OK)
-		{
-			goto ErrorExit;
-		}
-	}
-
-	
-	eError = OSLockResource(&psSysData->sQProcessResource,
-							KERNEL_ID);
-	if (eError != PVRSRV_OK)
-	{
-		goto ErrorExit;
-	}
-
-	psQueueInfo->psNextKM = psSysData->psQueueList;
-	psSysData->psQueueList = psQueueInfo;
-
-	eError = OSUnlockResource(&psSysData->sQProcessResource, KERNEL_ID);
-	if (eError != PVRSRV_OK)
-	{
-		goto ErrorExit;
-	}
-
-	*ppsQueueInfo = psQueueInfo;
-
-	return PVRSRV_OK;
-
-ErrorExit:
-
-	if(psQueueInfo)
-	{
-		if(psQueueInfo->pvLinQueueKM)
-		{
-			OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-						psQueueInfo->ui32QueueSize,
-						psQueueInfo->pvLinQueueKM,
-						psQueueInfo->hMemBlock[1]);
-			psQueueInfo->pvLinQueueKM = IMG_NULL;
-		}
-
-		OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-					sizeof(PVRSRV_QUEUE_INFO),
-					psQueueInfo,
-					psQueueInfo->hMemBlock[0]);
-		
-	}
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyCommandQueueKM(PVRSRV_QUEUE_INFO *psQueueInfo)
-{
-	PVRSRV_QUEUE_INFO	*psQueue;
-	SYS_DATA			*psSysData;
-	PVRSRV_ERROR		eError;
-	IMG_BOOL			bTimeout = IMG_TRUE;
-
-	SysAcquireData(&psSysData);
-
-	psQueue = psSysData->psQueueList;
-
-	 
-	LOOP_UNTIL_TIMEOUT(MAX_HW_TIME_US)
-	{
-		if(psQueueInfo->ui32ReadOffset == psQueueInfo->ui32WriteOffset)
-		{
-			bTimeout = IMG_FALSE;
-			break;
-		}
-		OSSleepms(1);
-	} END_LOOP_UNTIL_TIMEOUT();
-
-	if (bTimeout)
-	{
-		
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVDestroyCommandQueueKM : Failed to empty queue"));
-		eError = PVRSRV_ERROR_CANNOT_FLUSH_QUEUE;
-		goto ErrorExit;
-	}
-
-	
-	eError = OSLockResource(&psSysData->sQProcessResource,
-								KERNEL_ID);
-	if (eError != PVRSRV_OK)
-	{
-		goto ErrorExit;
-	}
-
-	if(psQueue == psQueueInfo)
-	{
-		psSysData->psQueueList = psQueueInfo->psNextKM;
-
-		OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-					NearestPower2(psQueueInfo->ui32QueueSize) + PVRSRV_MAX_CMD_SIZE,
-					psQueueInfo->pvLinQueueKM,
-					psQueueInfo->hMemBlock[1]);
-		psQueueInfo->pvLinQueueKM = IMG_NULL;
-		OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-					sizeof(PVRSRV_QUEUE_INFO),
-					psQueueInfo,
-					psQueueInfo->hMemBlock[0]);
-		 
-		psQueueInfo = IMG_NULL; 
-	}
-	else
-	{
-		while(psQueue)
-		{
-			if(psQueue->psNextKM == psQueueInfo)
-			{
-				psQueue->psNextKM = psQueueInfo->psNextKM;
-
-				OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-							psQueueInfo->ui32QueueSize,
-							psQueueInfo->pvLinQueueKM,
-							psQueueInfo->hMemBlock[1]);
-				psQueueInfo->pvLinQueueKM = IMG_NULL;
-				OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-							sizeof(PVRSRV_QUEUE_INFO),
-							psQueueInfo,
-							psQueueInfo->hMemBlock[0]);
-				 
-				psQueueInfo = IMG_NULL; 
-				break;
-			}
-			psQueue = psQueue->psNextKM;
-		}
-
-		if(!psQueue)
-		{
-			eError = OSUnlockResource(&psSysData->sQProcessResource, KERNEL_ID);
-			if (eError != PVRSRV_OK)
-			{
-				goto ErrorExit;
-			}
-			eError = PVRSRV_ERROR_INVALID_PARAMS;
-			goto ErrorExit;
-		}
-	}
-
-	
-	eError = OSUnlockResource(&psSysData->sQProcessResource, KERNEL_ID);
-	if (eError != PVRSRV_OK)
-	{
-		goto ErrorExit;
-	}
-
-	
-	if (psSysData->psQueueList == IMG_NULL)
-	{
-		eError = OSDestroyResource(&psSysData->sQProcessResource);
-		if (eError != PVRSRV_OK)
-		{
-			goto ErrorExit;
-		}
-	}
-
-ErrorExit:
-
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetQueueSpaceKM(PVRSRV_QUEUE_INFO *psQueue,
-												IMG_SIZE_T ui32ParamSize,
-												IMG_VOID **ppvSpace)
-{
-	IMG_BOOL bTimeout = IMG_TRUE;
-
-	
-	ui32ParamSize =  (ui32ParamSize+3) & 0xFFFFFFFC;
-
-	if (ui32ParamSize > PVRSRV_MAX_CMD_SIZE)
-	{
-		PVR_DPF((PVR_DBG_WARNING,"PVRSRVGetQueueSpace: max command size is %d bytes", PVRSRV_MAX_CMD_SIZE));
-		return PVRSRV_ERROR_CMD_TOO_BIG;
-	}
-
-	 
-	LOOP_UNTIL_TIMEOUT(MAX_HW_TIME_US)
-	{
-		if (GET_SPACE_IN_CMDQ(psQueue) > ui32ParamSize)
-		{
-			bTimeout = IMG_FALSE;
-			break;
-		}
-		OSSleepms(1);
-	} END_LOOP_UNTIL_TIMEOUT();
-
-	if (bTimeout == IMG_TRUE)
-	{
-		*ppvSpace = IMG_NULL;
-
-		return PVRSRV_ERROR_CANNOT_GET_QUEUE_SPACE;
-	}
-	else
-	{
-		*ppvSpace = (IMG_VOID *)((IMG_UINTPTR_T)psQueue->pvLinQueueUM + psQueue->ui32WriteOffset);
-	}
-
-	return PVRSRV_OK;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVInsertCommandKM(PVRSRV_QUEUE_INFO	*psQueue,
-												PVRSRV_COMMAND		**ppsCommand,
-												IMG_UINT32			ui32DevIndex,
-												IMG_UINT16			CommandType,
-												IMG_UINT32			ui32DstSyncCount,
-												PVRSRV_KERNEL_SYNC_INFO	*apsDstSync[],
-												IMG_UINT32			ui32SrcSyncCount,
-												PVRSRV_KERNEL_SYNC_INFO	*apsSrcSync[],
-												IMG_SIZE_T			ui32DataByteSize )
-{
-	PVRSRV_ERROR 	eError;
-	PVRSRV_COMMAND	*psCommand;
-	IMG_SIZE_T		ui32CommandSize;
-	IMG_UINT32		i;
-
-	
-	ui32DataByteSize = (ui32DataByteSize + 3UL) & ~3UL;
-
-	
-	ui32CommandSize = sizeof(PVRSRV_COMMAND)
-					+ ((ui32DstSyncCount + ui32SrcSyncCount) * sizeof(PVRSRV_SYNC_OBJECT))
-					+ ui32DataByteSize;
-
-	
-	eError = PVRSRVGetQueueSpaceKM (psQueue, ui32CommandSize, (IMG_VOID**)&psCommand);
-	if(eError != PVRSRV_OK)
-	{
-		return eError;
-	}
-
-	psCommand->ui32ProcessID	= OSGetCurrentProcessIDKM();
-
-	
-	psCommand->uCmdSize		= ui32CommandSize; 
-	psCommand->ui32DevIndex 	= ui32DevIndex;
-	psCommand->CommandType 		= CommandType;
-	psCommand->ui32DstSyncCount	= ui32DstSyncCount;
-	psCommand->ui32SrcSyncCount	= ui32SrcSyncCount;
-	
-	
-	psCommand->psDstSync		= (PVRSRV_SYNC_OBJECT*)(((IMG_UINTPTR_T)psCommand) + sizeof(PVRSRV_COMMAND));
-
-
-	psCommand->psSrcSync		= (PVRSRV_SYNC_OBJECT*)(((IMG_UINTPTR_T)psCommand->psDstSync)
-								+ (ui32DstSyncCount * sizeof(PVRSRV_SYNC_OBJECT)));
-
-	psCommand->pvData			= (PVRSRV_SYNC_OBJECT*)(((IMG_UINTPTR_T)psCommand->psSrcSync)
-								+ (ui32SrcSyncCount * sizeof(PVRSRV_SYNC_OBJECT)));
-	psCommand->uDataSize		= ui32DataByteSize;
-
-	PVR_TTRACE(PVRSRV_TRACE_GROUP_QUEUE, PVRSRV_TRACE_CLASS_CMD_START, QUEUE_TOKEN_INSERTKM);
-	PVR_TTRACE_UI32(PVRSRV_TRACE_GROUP_QUEUE, PVRSRV_TRACE_CLASS_NONE,
-			QUEUE_TOKEN_COMMAND_TYPE, CommandType);
-
-	
-	for (i=0; i<ui32DstSyncCount; i++)
-	{
-		PVR_TTRACE_SYNC_OBJECT(PVRSRV_TRACE_GROUP_QUEUE, QUEUE_TOKEN_DST_SYNC,
-						apsDstSync[i], PVRSRV_SYNCOP_SAMPLE);
-
-		psCommand->psDstSync[i].psKernelSyncInfoKM = apsDstSync[i];
-		psCommand->psDstSync[i].ui32WriteOpsPending = PVRSRVGetWriteOpsPending(apsDstSync[i], IMG_FALSE);
-		psCommand->psDstSync[i].ui32ReadOpsPending = PVRSRVGetReadOpsPending(apsDstSync[i], IMG_FALSE);
-
-		PVR_DPF((PVR_DBG_MESSAGE, "PVRSRVInsertCommandKM: Dst %u RO-VA:0x%x WO-VA:0x%x ROP:0x%x WOP:0x%x",
-				i, psCommand->psDstSync[i].psKernelSyncInfoKM->sReadOpsCompleteDevVAddr.uiAddr,
-				psCommand->psDstSync[i].psKernelSyncInfoKM->sWriteOpsCompleteDevVAddr.uiAddr,
-				psCommand->psDstSync[i].ui32ReadOpsPending,
-				psCommand->psDstSync[i].ui32WriteOpsPending));
-	}
-
-	
-	for (i=0; i<ui32SrcSyncCount; i++)
-	{
-		PVR_TTRACE_SYNC_OBJECT(PVRSRV_TRACE_GROUP_QUEUE, QUEUE_TOKEN_DST_SYNC,
-						apsSrcSync[i], PVRSRV_SYNCOP_SAMPLE);
-
-		psCommand->psSrcSync[i].psKernelSyncInfoKM = apsSrcSync[i];
-		psCommand->psSrcSync[i].ui32WriteOpsPending = PVRSRVGetWriteOpsPending(apsSrcSync[i], IMG_TRUE);
-		psCommand->psSrcSync[i].ui32ReadOpsPending = PVRSRVGetReadOpsPending(apsSrcSync[i], IMG_TRUE);
-
-		PVR_DPF((PVR_DBG_MESSAGE, "PVRSRVInsertCommandKM: Src %u RO-VA:0x%x WO-VA:0x%x ROP:0x%x WOP:0x%x",
-				i, psCommand->psSrcSync[i].psKernelSyncInfoKM->sReadOpsCompleteDevVAddr.uiAddr,
-				psCommand->psSrcSync[i].psKernelSyncInfoKM->sWriteOpsCompleteDevVAddr.uiAddr,
-				psCommand->psSrcSync[i].ui32ReadOpsPending,
-				psCommand->psSrcSync[i].ui32WriteOpsPending));
-	}
-	PVR_TTRACE(PVRSRV_TRACE_GROUP_QUEUE, PVRSRV_TRACE_CLASS_CMD_END, QUEUE_TOKEN_INSERTKM);
-
-	
-	*ppsCommand = psCommand;
-
-	return PVRSRV_OK;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVSubmitCommandKM(PVRSRV_QUEUE_INFO *psQueue,
-												PVRSRV_COMMAND *psCommand)
-{
-	
-	
-	
-	if (psCommand->ui32DstSyncCount > 0)
-	{
-		psCommand->psDstSync = (PVRSRV_SYNC_OBJECT*)(((IMG_UINTPTR_T)psQueue->pvLinQueueKM)
-									+ psQueue->ui32WriteOffset + sizeof(PVRSRV_COMMAND));
-	}
-
-	if (psCommand->ui32SrcSyncCount > 0)
-	{
-		psCommand->psSrcSync = (PVRSRV_SYNC_OBJECT*)(((IMG_UINTPTR_T)psQueue->pvLinQueueKM)
-									+ psQueue->ui32WriteOffset + sizeof(PVRSRV_COMMAND)
-									+ (psCommand->ui32DstSyncCount * sizeof(PVRSRV_SYNC_OBJECT)));
-	}
-
-	psCommand->pvData = (PVRSRV_SYNC_OBJECT*)(((IMG_UINTPTR_T)psQueue->pvLinQueueKM)
-									+ psQueue->ui32WriteOffset + sizeof(PVRSRV_COMMAND)
-									+ (psCommand->ui32DstSyncCount * sizeof(PVRSRV_SYNC_OBJECT))
-									+ (psCommand->ui32SrcSyncCount * sizeof(PVRSRV_SYNC_OBJECT)));
-
-	
-	UPDATE_QUEUE_WOFF(psQueue, psCommand->uCmdSize);
-
-	return PVRSRV_OK;
-}
-
-
-
-static
-PVRSRV_ERROR PVRSRVProcessCommand(SYS_DATA			*psSysData,
-								  PVRSRV_COMMAND	*psCommand,
-								  IMG_BOOL			bFlush)
-{
-	PVRSRV_SYNC_OBJECT		*psWalkerObj;
-	PVRSRV_SYNC_OBJECT		*psEndObj;
-	IMG_UINT32				i;
-	COMMAND_COMPLETE_DATA	*psCmdCompleteData;
-	PVRSRV_ERROR			eError = PVRSRV_OK;
-	IMG_UINT32				ui32WriteOpsComplete;
-	IMG_UINT32				ui32ReadOpsComplete;
-	DEVICE_COMMAND_DATA		*psDeviceCommandData;
-	IMG_UINT32				ui32CCBOffset;
-
-	
-	psWalkerObj = psCommand->psDstSync;
-	psEndObj = psWalkerObj + psCommand->ui32DstSyncCount;
-	while (psWalkerObj < psEndObj)
-	{
-		PVRSRV_SYNC_DATA *psSyncData = psWalkerObj->psKernelSyncInfoKM->psSyncData;
-
-		ui32WriteOpsComplete = psSyncData->ui32WriteOpsComplete;
-		ui32ReadOpsComplete = psSyncData->ui32ReadOpsComplete;
-		
-		if ((ui32WriteOpsComplete != psWalkerObj->ui32WriteOpsPending)
-		||	(ui32ReadOpsComplete != psWalkerObj->ui32ReadOpsPending))
-		{
-			if (!bFlush ||
-				!SYNCOPS_STALE(ui32WriteOpsComplete, psWalkerObj->ui32WriteOpsPending) ||
-				!SYNCOPS_STALE(ui32ReadOpsComplete, psWalkerObj->ui32ReadOpsPending))
-			{
-				return PVRSRV_ERROR_FAILED_DEPENDENCIES;
-			}
-		}
-
-		psWalkerObj++;
-	}
-
-	
-	psWalkerObj = psCommand->psSrcSync;
-	psEndObj = psWalkerObj + psCommand->ui32SrcSyncCount;
-	while (psWalkerObj < psEndObj)
-	{
-		PVRSRV_SYNC_DATA *psSyncData = psWalkerObj->psKernelSyncInfoKM->psSyncData;
-
-		ui32ReadOpsComplete = psSyncData->ui32ReadOpsComplete;
-		ui32WriteOpsComplete = psSyncData->ui32WriteOpsComplete;
-		
-		if ((ui32WriteOpsComplete != psWalkerObj->ui32WriteOpsPending)
-		|| (ui32ReadOpsComplete != psWalkerObj->ui32ReadOpsPending))
-		{
-			if (!bFlush &&
-				SYNCOPS_STALE(ui32WriteOpsComplete, psWalkerObj->ui32WriteOpsPending) &&
-				SYNCOPS_STALE(ui32ReadOpsComplete, psWalkerObj->ui32ReadOpsPending))
-			{
-				PVR_DPF((PVR_DBG_WARNING,
-						"PVRSRVProcessCommand: Stale syncops psSyncData:0x%x ui32WriteOpsComplete:0x%x ui32WriteOpsPending:0x%x",
-						(IMG_UINTPTR_T)psSyncData, ui32WriteOpsComplete, psWalkerObj->ui32WriteOpsPending));
-			}
-
-			if (!bFlush ||
-				!SYNCOPS_STALE(ui32WriteOpsComplete, psWalkerObj->ui32WriteOpsPending) ||
-				!SYNCOPS_STALE(ui32ReadOpsComplete, psWalkerObj->ui32ReadOpsPending))
-			{
-				return PVRSRV_ERROR_FAILED_DEPENDENCIES;
-			}
-		}
-		psWalkerObj++;
-	}
-
-	
-	if (psCommand->ui32DevIndex >= SYS_DEVICE_COUNT)
-	{
-		PVR_DPF((PVR_DBG_ERROR,
-					"PVRSRVProcessCommand: invalid DeviceType 0x%x",
-					psCommand->ui32DevIndex));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	
-	psDeviceCommandData = psSysData->apsDeviceCommandData[psCommand->ui32DevIndex];
-	ui32CCBOffset = psDeviceCommandData[psCommand->CommandType].ui32CCBOffset;
-	psCmdCompleteData = psDeviceCommandData[psCommand->CommandType].apsCmdCompleteData[ui32CCBOffset];
-	if (psCmdCompleteData->bInUse)
-	{
-		
-		return PVRSRV_ERROR_FAILED_DEPENDENCIES;
-	}
-
-	
-	psCmdCompleteData->bInUse = IMG_TRUE;
-
-	
-	psCmdCompleteData->ui32DstSyncCount = psCommand->ui32DstSyncCount;
-	for (i=0; i<psCommand->ui32DstSyncCount; i++)
-	{
-		psCmdCompleteData->psDstSync[i] = psCommand->psDstSync[i];
-
-		PVR_DPF((PVR_DBG_MESSAGE, "PVRSRVProcessCommand: Dst %u RO-VA:0x%x WO-VA:0x%x ROP:0x%x WOP:0x%x (CCB:%u)",
-				i, psCmdCompleteData->psDstSync[i].psKernelSyncInfoKM->sReadOpsCompleteDevVAddr.uiAddr,
-				psCmdCompleteData->psDstSync[i].psKernelSyncInfoKM->sWriteOpsCompleteDevVAddr.uiAddr,
-				psCmdCompleteData->psDstSync[i].ui32ReadOpsPending,
-				psCmdCompleteData->psDstSync[i].ui32WriteOpsPending,
-				ui32CCBOffset));
-	}
-
-
-	
-	psCmdCompleteData->ui32SrcSyncCount = psCommand->ui32SrcSyncCount;
-	for (i=0; i<psCommand->ui32SrcSyncCount; i++)
-	{
-		psCmdCompleteData->psSrcSync[i] = psCommand->psSrcSync[i];
-
-		PVR_DPF((PVR_DBG_MESSAGE, "PVRSRVProcessCommand: Src %u RO-VA:0x%x WO-VA:0x%x ROP:0x%x WOP:0x%x (CCB:%u)",
-				i, psCmdCompleteData->psSrcSync[i].psKernelSyncInfoKM->sReadOpsCompleteDevVAddr.uiAddr,
-				psCmdCompleteData->psSrcSync[i].psKernelSyncInfoKM->sWriteOpsCompleteDevVAddr.uiAddr,
-				psCmdCompleteData->psSrcSync[i].ui32ReadOpsPending,
-				psCmdCompleteData->psSrcSync[i].ui32WriteOpsPending,
-				ui32CCBOffset));
-	}
-
-	
-
-
-
-
-
-
-
-
-
-	if (psDeviceCommandData[psCommand->CommandType].pfnCmdProc((IMG_HANDLE)psCmdCompleteData,
-															   (IMG_UINT32)psCommand->uDataSize,
-															   psCommand->pvData) == IMG_FALSE)
-	{
-		
-
-
-		psCmdCompleteData->bInUse = IMG_FALSE;
-		eError = PVRSRV_ERROR_CMD_NOT_PROCESSED;
-	}
-	
-	
-	psDeviceCommandData[psCommand->CommandType].ui32CCBOffset = (ui32CCBOffset + 1) % DC_NUM_COMMANDS_PER_TYPE;
-
-	return eError;
-}
-
-
-static IMG_VOID PVRSRVProcessQueues_ForEachCb(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	if (psDeviceNode->bReProcessDeviceCommandComplete &&
-		psDeviceNode->pfnDeviceCommandComplete != IMG_NULL)
-	{
-		(*psDeviceNode->pfnDeviceCommandComplete)(psDeviceNode);
-	}
-}
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVProcessQueues(IMG_BOOL	bFlush)
-{
-	PVRSRV_QUEUE_INFO 	*psQueue;
-	SYS_DATA			*psSysData;
-	PVRSRV_COMMAND 		*psCommand;
-	SysAcquireData(&psSysData);
-
-	
-
-	while (OSLockResource(&psSysData->sQProcessResource, ISR_ID) != PVRSRV_OK)
-	{
-		OSWaitus(1);
-	};
-	
-	psQueue = psSysData->psQueueList;
-
-	if(!psQueue)
-	{
-		PVR_DPF((PVR_DBG_MESSAGE,"No Queues installed - cannot process commands"));
-	}
-
-	if (bFlush)
-	{
-		PVRSRVSetDCState(DC_STATE_FLUSH_COMMANDS);
-	}
-
-	while (psQueue)
-	{
-		while (psQueue->ui32ReadOffset != psQueue->ui32WriteOffset)
-		{
-			psCommand = (PVRSRV_COMMAND*)((IMG_UINTPTR_T)psQueue->pvLinQueueKM + psQueue->ui32ReadOffset);
-
-			if (PVRSRVProcessCommand(psSysData, psCommand, bFlush) == PVRSRV_OK)
-			{
-				
-				UPDATE_QUEUE_ROFF(psQueue, psCommand->uCmdSize)
-				continue;
-			}
-
-			break;
-		}
-		psQueue = psQueue->psNextKM;
-	}
-
-	if (bFlush)
-	{
-		PVRSRVSetDCState(DC_STATE_NO_FLUSH_COMMANDS);
-	}
-
-	
-	List_PVRSRV_DEVICE_NODE_ForEach(psSysData->psDeviceNodeList,
-									&PVRSRVProcessQueues_ForEachCb);
-
-	OSUnlockResource(&psSysData->sQProcessResource, ISR_ID);
-
-	return PVRSRV_OK;
-}
-
-#if defined(SUPPORT_CUSTOM_SWAP_OPERATIONS)
-IMG_INTERNAL
-IMG_VOID PVRSRVFreeCommandCompletePacketKM(IMG_HANDLE	hCmdCookie,
-										   IMG_BOOL		bScheduleMISR)
-{
-	COMMAND_COMPLETE_DATA	*psCmdCompleteData = (COMMAND_COMPLETE_DATA *)hCmdCookie;
-	SYS_DATA				*psSysData;
-
-	SysAcquireData(&psSysData);
-
-	
-	psCmdCompleteData->bInUse = IMG_FALSE;
-
-	
-	PVRSRVScheduleDeviceCallbacks();
-
-	if(bScheduleMISR)
-	{
-		OSScheduleMISR(psSysData);
-	}
-}
-
-#endif 
-
-
-IMG_EXPORT
-IMG_VOID PVRSRVCommandCompleteKM(IMG_HANDLE	hCmdCookie,
-								 IMG_BOOL	bScheduleMISR)
-{
-	IMG_UINT32				i;
-	COMMAND_COMPLETE_DATA	*psCmdCompleteData = (COMMAND_COMPLETE_DATA *)hCmdCookie;
-	SYS_DATA				*psSysData;
-
-	SysAcquireData(&psSysData);
-
-	PVR_TTRACE(PVRSRV_TRACE_GROUP_QUEUE, PVRSRV_TRACE_CLASS_CMD_COMP_START,
-			QUEUE_TOKEN_COMMAND_COMPLETE);
-
-	
-	for (i=0; i<psCmdCompleteData->ui32DstSyncCount; i++)
-	{
-		psCmdCompleteData->psDstSync[i].psKernelSyncInfoKM->psSyncData->ui32WriteOpsComplete++;
-
-		PVR_TTRACE_SYNC_OBJECT(PVRSRV_TRACE_GROUP_QUEUE, QUEUE_TOKEN_UPDATE_DST,
-					  psCmdCompleteData->psDstSync[i].psKernelSyncInfoKM,
-					  PVRSRV_SYNCOP_COMPLETE);
-
-		PVR_DPF((PVR_DBG_MESSAGE, "PVRSRVCommandCompleteKM: Dst %u RO-VA:0x%x WO-VA:0x%x ROP:0x%x WOP:0x%x",
-				i, psCmdCompleteData->psDstSync[i].psKernelSyncInfoKM->sReadOpsCompleteDevVAddr.uiAddr,
-				psCmdCompleteData->psDstSync[i].psKernelSyncInfoKM->sWriteOpsCompleteDevVAddr.uiAddr,
-				psCmdCompleteData->psDstSync[i].ui32ReadOpsPending,
-				psCmdCompleteData->psDstSync[i].ui32WriteOpsPending));
-	}
-
-	
-	for (i=0; i<psCmdCompleteData->ui32SrcSyncCount; i++)
-	{
-		psCmdCompleteData->psSrcSync[i].psKernelSyncInfoKM->psSyncData->ui32ReadOpsComplete++;
-
-		PVR_TTRACE_SYNC_OBJECT(PVRSRV_TRACE_GROUP_QUEUE, QUEUE_TOKEN_UPDATE_SRC,
-					  psCmdCompleteData->psSrcSync[i].psKernelSyncInfoKM,
-					  PVRSRV_SYNCOP_COMPLETE);
-
-		PVR_DPF((PVR_DBG_MESSAGE, "PVRSRVCommandCompleteKM: Src %u RO-VA:0x%x WO-VA:0x%x ROP:0x%x WOP:0x%x",
-				i, psCmdCompleteData->psSrcSync[i].psKernelSyncInfoKM->sReadOpsCompleteDevVAddr.uiAddr,
-				psCmdCompleteData->psSrcSync[i].psKernelSyncInfoKM->sWriteOpsCompleteDevVAddr.uiAddr,
-				psCmdCompleteData->psSrcSync[i].ui32ReadOpsPending,
-				psCmdCompleteData->psSrcSync[i].ui32WriteOpsPending));
-	}
-
-	PVR_TTRACE(PVRSRV_TRACE_GROUP_QUEUE, PVRSRV_TRACE_CLASS_CMD_COMP_END,
-			QUEUE_TOKEN_COMMAND_COMPLETE);
-
-	
-	psCmdCompleteData->bInUse = IMG_FALSE;
-
-	
-	PVRSRVScheduleDeviceCallbacks();
-
-	if(bScheduleMISR)
-	{
-		OSScheduleMISR(psSysData);
-	}
-}
-
-
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVRegisterCmdProcListKM(IMG_UINT32		ui32DevIndex,
-										 PFN_CMD_PROC	*ppfnCmdProcList,
-										 IMG_UINT32		ui32MaxSyncsPerCmd[][2],
-										 IMG_UINT32		ui32CmdCount)
-{
-	SYS_DATA				*psSysData;
-	PVRSRV_ERROR			eError;
-	IMG_UINT32				ui32CmdCounter, ui32CmdTypeCounter;
-	IMG_SIZE_T				ui32AllocSize;
-	DEVICE_COMMAND_DATA		*psDeviceCommandData;
-	COMMAND_COMPLETE_DATA	*psCmdCompleteData;
-
-	
-	if(ui32DevIndex >= SYS_DEVICE_COUNT)
-	{
-		PVR_DPF((PVR_DBG_ERROR,
-					"PVRSRVRegisterCmdProcListKM: invalid DeviceType 0x%x",
-					ui32DevIndex));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	
-	SysAcquireData(&psSysData);
-
-	
-	ui32AllocSize = ui32CmdCount * sizeof(*psDeviceCommandData);
-	eError = OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-						ui32AllocSize,
-						(IMG_VOID **)&psDeviceCommandData, IMG_NULL,
-						"Array of Pointers for Command Store");
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PVRSRVRegisterCmdProcListKM: Failed to alloc CC data"));
-		goto ErrorExit;
-	}
-
-	psSysData->apsDeviceCommandData[ui32DevIndex] = psDeviceCommandData;
-
-	for (ui32CmdTypeCounter = 0; ui32CmdTypeCounter < ui32CmdCount; ui32CmdTypeCounter++)
-	{
-		psDeviceCommandData[ui32CmdTypeCounter].pfnCmdProc = ppfnCmdProcList[ui32CmdTypeCounter];
-		psDeviceCommandData[ui32CmdTypeCounter].ui32CCBOffset = 0;
-		
-		for (ui32CmdCounter = 0; ui32CmdCounter < DC_NUM_COMMANDS_PER_TYPE; ui32CmdCounter++)
-		{
-			
-
-			ui32AllocSize = sizeof(COMMAND_COMPLETE_DATA) 
-						  + ((ui32MaxSyncsPerCmd[ui32CmdTypeCounter][0]
-						  +	ui32MaxSyncsPerCmd[ui32CmdTypeCounter][1])
-						  * sizeof(PVRSRV_SYNC_OBJECT));	 
-
-			eError = OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-								ui32AllocSize,
-								(IMG_VOID **)&psCmdCompleteData,
-								IMG_NULL,
-								"Command Complete Data");
-			if (eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,"PVRSRVRegisterCmdProcListKM: Failed to alloc cmd %d", ui32CmdTypeCounter));
-				goto ErrorExit;
-			}
-			
-			psDeviceCommandData[ui32CmdTypeCounter].apsCmdCompleteData[ui32CmdCounter] = psCmdCompleteData;
-			
-			
-			OSMemSet(psCmdCompleteData, 0x00, ui32AllocSize);
-
-			
-			psCmdCompleteData->psDstSync = (PVRSRV_SYNC_OBJECT*)
-											(((IMG_UINTPTR_T)psCmdCompleteData)
-											+ sizeof(COMMAND_COMPLETE_DATA));
-			psCmdCompleteData->psSrcSync = (PVRSRV_SYNC_OBJECT*)
-											(((IMG_UINTPTR_T)psCmdCompleteData->psDstSync)
-											+ (sizeof(PVRSRV_SYNC_OBJECT) * ui32MaxSyncsPerCmd[ui32CmdTypeCounter][0]));
-
-			psCmdCompleteData->ui32AllocSize = (IMG_UINT32)ui32AllocSize;
-		}
-	}
-
-	return PVRSRV_OK;
-
-ErrorExit:
-
-	
-	if (PVRSRVRemoveCmdProcListKM(ui32DevIndex, ui32CmdCount) != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,
-				"PVRSRVRegisterCmdProcListKM: Failed to clean up after error, device 0x%x",
-				ui32DevIndex));
-	}
-	
-	return eError;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVRemoveCmdProcListKM(IMG_UINT32 ui32DevIndex,
-									   IMG_UINT32 ui32CmdCount)
-{
-	SYS_DATA				*psSysData;
-	IMG_UINT32				ui32CmdTypeCounter, ui32CmdCounter;
-	DEVICE_COMMAND_DATA		*psDeviceCommandData;
-	COMMAND_COMPLETE_DATA	*psCmdCompleteData;
-	IMG_SIZE_T				ui32AllocSize;
-
-	
-	if(ui32DevIndex >= SYS_DEVICE_COUNT)
-	{
-		PVR_DPF((PVR_DBG_ERROR,
-				"PVRSRVRemoveCmdProcListKM: invalid DeviceType 0x%x",
-				ui32DevIndex));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	
-	SysAcquireData(&psSysData);
-
-	psDeviceCommandData = psSysData->apsDeviceCommandData[ui32DevIndex];
-	if(psDeviceCommandData != IMG_NULL)
-	{
-		for (ui32CmdTypeCounter = 0; ui32CmdTypeCounter < ui32CmdCount; ui32CmdTypeCounter++)
-		{
-			for (ui32CmdCounter = 0; ui32CmdCounter < DC_NUM_COMMANDS_PER_TYPE; ui32CmdCounter++)
-			{
-				psCmdCompleteData = psDeviceCommandData[ui32CmdTypeCounter].apsCmdCompleteData[ui32CmdCounter];
-				
-				
-				if (psCmdCompleteData != IMG_NULL)
-				{
-					OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP, psCmdCompleteData->ui32AllocSize,
-							  psCmdCompleteData, IMG_NULL);
-					psDeviceCommandData[ui32CmdTypeCounter].apsCmdCompleteData[ui32CmdCounter] = IMG_NULL;
-				}
-			}
-		}
-
-		
-		ui32AllocSize = ui32CmdCount * sizeof(*psDeviceCommandData);
-		OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP, ui32AllocSize, psDeviceCommandData, IMG_NULL);
-		psSysData->apsDeviceCommandData[ui32DevIndex] = IMG_NULL;
-	}
-
-	return PVRSRV_OK;
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/ra.c b/drivers/staging/cdv/pvr/services4/srvkm/common/ra.c
deleted file mode 100644
index e93f05f..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/ra.c
+++ /dev/null
@@ -1,1725 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "services_headers.h"
-#include "hash.h"
-#include "ra.h"
-#include "buffer_manager.h"
-#include "osfunc.h"
-
-#ifdef __linux__
-#include <linux/kernel.h>
-#include "proc.h"
-#endif
-
-#ifdef USE_BM_FREESPACE_CHECK
-#include <stdio.h>
-#endif
-
-#define MINIMUM_HASH_SIZE (64)
-
-#if defined(VALIDATE_ARENA_TEST)
-
-typedef enum RESOURCE_DESCRIPTOR_TAG {
-
-	RESOURCE_SPAN_LIVE				= 10,
-	RESOURCE_SPAN_FREE,
-	IMPORTED_RESOURCE_SPAN_START,
-	IMPORTED_RESOURCE_SPAN_LIVE,
-	IMPORTED_RESOURCE_SPAN_FREE,
-	IMPORTED_RESOURCE_SPAN_END,
-
-} RESOURCE_DESCRIPTOR;
-
-typedef enum RESOURCE_TYPE_TAG {
-
-	IMPORTED_RESOURCE_TYPE		= 20,
-	NON_IMPORTED_RESOURCE_TYPE
-
-} RESOURCE_TYPE;
-
-
-static IMG_UINT32 ui32BoundaryTagID = 0;
-
-IMG_UINT32 ValidateArena(RA_ARENA *pArena);
-#endif
-
-struct _BT_
-{
-	enum bt_type
-	{
-		btt_span,				
-		btt_free,				
-		btt_live				
-	} type;
-
-	
-	IMG_UINTPTR_T base;
-	IMG_SIZE_T uSize;
-
-	
-	struct _BT_ *pNextSegment;
-	struct _BT_ *pPrevSegment;
-	
-	struct _BT_ *pNextFree;
-	struct _BT_ *pPrevFree;
-	
-	BM_MAPPING *psMapping;
-
-#if defined(VALIDATE_ARENA_TEST)
-	RESOURCE_DESCRIPTOR eResourceSpan;
-	RESOURCE_TYPE		eResourceType;
-
-	
-	IMG_UINT32			ui32BoundaryTagID;
-#endif
-
-};
-typedef struct _BT_ BT;
-
-
-struct _RA_ARENA_
-{
-	
-	IMG_CHAR *name;
-
-	
-	IMG_SIZE_T uQuantum;
-
-	
-	IMG_BOOL (*pImportAlloc)(IMG_VOID *,
-							 IMG_SIZE_T uSize,
-							 IMG_SIZE_T *pActualSize,
-							 BM_MAPPING **ppsMapping,
-							 IMG_UINT32 uFlags,
-							 IMG_UINTPTR_T *pBase);
-	IMG_VOID (*pImportFree) (IMG_VOID *,
-						 IMG_UINTPTR_T,
-						 BM_MAPPING *psMapping);
-	IMG_VOID (*pBackingStoreFree) (IMG_VOID *, IMG_SIZE_T, IMG_SIZE_T, IMG_HANDLE);
-
-	
-	IMG_VOID *pImportHandle;
-
-	
-#define FREE_TABLE_LIMIT 32
-
-	
-	BT *aHeadFree [FREE_TABLE_LIMIT];
-
-	
-	BT *pHeadSegment;
-	BT *pTailSegment;
-
-	
-	HASH_TABLE *pSegmentHash;
-
-#ifdef RA_STATS
-	RA_STATISTICS sStatistics;
-#endif
-
-#if defined(CONFIG_PROC_FS) && defined(DEBUG)
-#define PROC_NAME_SIZE		64
-
-	struct proc_dir_entry* pProcInfo;
-	struct proc_dir_entry* pProcSegs;
-
-	IMG_BOOL bInitProcEntry;
-#endif
-};
-#if defined(ENABLE_RA_DUMP)
-IMG_VOID RA_Dump (RA_ARENA *pArena);
-#endif
-
-#if defined(CONFIG_PROC_FS) && defined(DEBUG)
-
-static void RA_ProcSeqShowInfo(struct seq_file *sfile, void* el);
-static void* RA_ProcSeqOff2ElementInfo(struct seq_file * sfile, loff_t off);
-
-static void RA_ProcSeqShowRegs(struct seq_file *sfile, void* el);
-static void* RA_ProcSeqOff2ElementRegs(struct seq_file * sfile, loff_t off);
-
-#endif 
-
-#ifdef USE_BM_FREESPACE_CHECK
-IMG_VOID CheckBMFreespace(IMG_VOID);
-#endif
-
-#if defined(CONFIG_PROC_FS) && defined(DEBUG)
-static IMG_CHAR *ReplaceSpaces(IMG_CHAR * const pS)
-{
-	IMG_CHAR *pT;
-
-	for(pT = pS; *pT != 0; pT++)
-	{
-		if (*pT == ' ' || *pT == '\t')
-		{
-			*pT = '_';
-		}
-	}
-
-	return pS;
-}
-#endif
-
-static IMG_BOOL
-_RequestAllocFail (IMG_VOID *_h,
-				  IMG_SIZE_T _uSize,
-				  IMG_SIZE_T *_pActualSize,
-				  BM_MAPPING **_ppsMapping,
-				  IMG_UINT32 _uFlags,
-				  IMG_UINTPTR_T *_pBase)
-{
-	PVR_UNREFERENCED_PARAMETER (_h);
-	PVR_UNREFERENCED_PARAMETER (_uSize);
-	PVR_UNREFERENCED_PARAMETER (_pActualSize);
-	PVR_UNREFERENCED_PARAMETER (_ppsMapping);
-	PVR_UNREFERENCED_PARAMETER (_uFlags);
-	PVR_UNREFERENCED_PARAMETER (_pBase);
-
-	return IMG_FALSE;
-}
-
-static IMG_UINT32
-pvr_log2 (IMG_SIZE_T n)
-{
-	IMG_UINT32 l = 0;
-	n>>=1;
-	while (n>0)
-	{
-		n>>=1;
-		l++;
-	}
-	return l;
-}
-
-static PVRSRV_ERROR
-_SegmentListInsertAfter (RA_ARENA *pArena,
-						 BT *pInsertionPoint,
-						 BT *pBT)
-{
-	PVR_ASSERT (pArena != IMG_NULL);
-	PVR_ASSERT (pInsertionPoint != IMG_NULL);
-
-	if ((pInsertionPoint == IMG_NULL) || (pArena == IMG_NULL))
-	{
-		PVR_DPF ((PVR_DBG_ERROR,"_SegmentListInsertAfter: invalid parameters"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	pBT->pNextSegment = pInsertionPoint->pNextSegment;
-	pBT->pPrevSegment = pInsertionPoint;
-	if (pInsertionPoint->pNextSegment == IMG_NULL)
-		pArena->pTailSegment = pBT;
-	else
-		pInsertionPoint->pNextSegment->pPrevSegment = pBT;
-	pInsertionPoint->pNextSegment = pBT;
-
-	return PVRSRV_OK;
-}
-
-static PVRSRV_ERROR
-_SegmentListInsert (RA_ARENA *pArena, BT *pBT)
-{
-	PVRSRV_ERROR eError = PVRSRV_OK;
-
-	
-	if (pArena->pHeadSegment == IMG_NULL)
-	{
-		pArena->pHeadSegment = pArena->pTailSegment = pBT;
-		pBT->pNextSegment = pBT->pPrevSegment = IMG_NULL;
-	}
-	else
-	{
-		BT *pBTScan;
-
-		if (pBT->base < pArena->pHeadSegment->base)
-		{
-			
-			pBT->pNextSegment = pArena->pHeadSegment;
-			pArena->pHeadSegment->pPrevSegment = pBT;
-			pArena->pHeadSegment = pBT;
-			pBT->pPrevSegment = IMG_NULL;
-		}
-		else
-		{
-
-			
-
-
-			pBTScan = pArena->pHeadSegment;
-
-			while ((pBTScan->pNextSegment != IMG_NULL)  && (pBT->base >= pBTScan->pNextSegment->base))
-			{
-				pBTScan = pBTScan->pNextSegment;
-			}
-
-			eError = _SegmentListInsertAfter (pArena, pBTScan, pBT);
-			if (eError != PVRSRV_OK)
-			{
-				return eError;
-			}
-		}
-	}
-	return eError;
-}
-
-static IMG_VOID
-_SegmentListRemove (RA_ARENA *pArena, BT *pBT)
-{
-	if (pBT->pPrevSegment == IMG_NULL)
-		pArena->pHeadSegment = pBT->pNextSegment;
-	else
-		pBT->pPrevSegment->pNextSegment = pBT->pNextSegment;
-
-	if (pBT->pNextSegment == IMG_NULL)
-		pArena->pTailSegment = pBT->pPrevSegment;
-	else
-		pBT->pNextSegment->pPrevSegment = pBT->pPrevSegment;
-}
-
-static BT *
-_SegmentSplit (RA_ARENA *pArena, BT *pBT, IMG_SIZE_T uSize)
-{
-	BT *pNeighbour;
-
-	PVR_ASSERT (pArena != IMG_NULL);
-
-	if (pArena == IMG_NULL)
-	{
-		PVR_DPF ((PVR_DBG_ERROR,"_SegmentSplit: invalid parameter - pArena"));
-		return IMG_NULL;
-	}
-
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-					sizeof(BT),
-					(IMG_VOID **)&pNeighbour, IMG_NULL,
-					"Boundary Tag") != PVRSRV_OK)
-	{
-		return IMG_NULL;
-	}
-
-	OSMemSet(pNeighbour, 0, sizeof(BT));
-
-#if defined(VALIDATE_ARENA_TEST)
-	pNeighbour->ui32BoundaryTagID = ++ui32BoundaryTagID;
-#endif
-
-	pNeighbour->pPrevSegment = pBT;
-	pNeighbour->pNextSegment = pBT->pNextSegment;
-	if (pBT->pNextSegment == IMG_NULL)
-		pArena->pTailSegment = pNeighbour;
-	else
-		pBT->pNextSegment->pPrevSegment = pNeighbour;
-	pBT->pNextSegment = pNeighbour;
-
-	pNeighbour->type = btt_free;
-	pNeighbour->uSize = pBT->uSize - uSize;
-	pNeighbour->base = pBT->base + uSize;
-	pNeighbour->psMapping = pBT->psMapping;
-	pBT->uSize = uSize;
-
-#if defined(VALIDATE_ARENA_TEST)
-	if (pNeighbour->pPrevSegment->eResourceType == IMPORTED_RESOURCE_TYPE)
-	{
-		pNeighbour->eResourceType = IMPORTED_RESOURCE_TYPE;
-		pNeighbour->eResourceSpan = IMPORTED_RESOURCE_SPAN_FREE;
-	}
-	else if (pNeighbour->pPrevSegment->eResourceType == NON_IMPORTED_RESOURCE_TYPE)
-	{
-		pNeighbour->eResourceType = NON_IMPORTED_RESOURCE_TYPE;
-		pNeighbour->eResourceSpan = RESOURCE_SPAN_FREE;
-	}
-	else
-	{
-		PVR_DPF ((PVR_DBG_ERROR,"_SegmentSplit: pNeighbour->pPrevSegment->eResourceType unrecognized"));
-		PVR_DBG_BREAK;
-	}
-#endif
-
-	return pNeighbour;
-}
-
-static IMG_VOID
-_FreeListInsert (RA_ARENA *pArena, BT *pBT)
-{
-	IMG_UINT32 uIndex;
-	uIndex = pvr_log2 (pBT->uSize);
-	pBT->type = btt_free;
-	pBT->pNextFree = pArena->aHeadFree [uIndex];
-	pBT->pPrevFree = IMG_NULL;
-	if (pArena->aHeadFree[uIndex] != IMG_NULL)
-		pArena->aHeadFree[uIndex]->pPrevFree = pBT;
-	pArena->aHeadFree [uIndex] = pBT;
-}
-
-static IMG_VOID
-_FreeListRemove (RA_ARENA *pArena, BT *pBT)
-{
-	IMG_UINT32 uIndex;
-	uIndex = pvr_log2 (pBT->uSize);
-	if (pBT->pNextFree != IMG_NULL)
-		pBT->pNextFree->pPrevFree = pBT->pPrevFree;
-	if (pBT->pPrevFree == IMG_NULL)
-		pArena->aHeadFree[uIndex] = pBT->pNextFree;
-	else
-		pBT->pPrevFree->pNextFree = pBT->pNextFree;
-}
-
-static BT *
-_BuildSpanMarker (IMG_UINTPTR_T base, IMG_SIZE_T uSize)
-{
-	BT *pBT;
-
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-					sizeof(BT),
-					(IMG_VOID **)&pBT, IMG_NULL,
-					"Boundary Tag") != PVRSRV_OK)
-	{
-		return IMG_NULL;
-	}
-
-	OSMemSet(pBT, 0, sizeof(BT));
-
-#if defined(VALIDATE_ARENA_TEST)
-	pBT->ui32BoundaryTagID = ++ui32BoundaryTagID;
-#endif
-
-	pBT->type = btt_span;
-	pBT->base = base;
-	pBT->uSize = uSize;
-	pBT->psMapping = IMG_NULL;
-
-	return pBT;
-}
-
-static BT *
-_BuildBT (IMG_UINTPTR_T base, IMG_SIZE_T uSize)
-{
-	BT *pBT;
-
-	if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-					sizeof(BT),
-					(IMG_VOID **)&pBT, IMG_NULL,
-					"Boundary Tag") != PVRSRV_OK)
-	{
-		return IMG_NULL;
-	}
-
-	OSMemSet(pBT, 0, sizeof(BT));
-
-#if defined(VALIDATE_ARENA_TEST)
-	pBT->ui32BoundaryTagID = ++ui32BoundaryTagID;
-#endif
-
-	pBT->type = btt_free;
-	pBT->base = base;
-	pBT->uSize = uSize;
-
-	return pBT;
-}
-
-static BT *
-_InsertResource (RA_ARENA *pArena, IMG_UINTPTR_T base, IMG_SIZE_T uSize)
-{
-	BT *pBT;
-	PVR_ASSERT (pArena!=IMG_NULL);
-	if (pArena == IMG_NULL)
-	{
-		PVR_DPF ((PVR_DBG_ERROR,"_InsertResource: invalid parameter - pArena"));
-		return IMG_NULL;
-	}
-
-	pBT = _BuildBT (base, uSize);
-	if (pBT != IMG_NULL)
-	{
-
-#if defined(VALIDATE_ARENA_TEST)
-		pBT->eResourceSpan = RESOURCE_SPAN_FREE;
-		pBT->eResourceType = NON_IMPORTED_RESOURCE_TYPE;
-#endif
-
-		if (_SegmentListInsert (pArena, pBT) != PVRSRV_OK)
-		{
-			PVR_DPF ((PVR_DBG_ERROR,"_InsertResource: call to _SegmentListInsert failed"));
-			return IMG_NULL;
-		}
-		_FreeListInsert (pArena, pBT);
-#ifdef RA_STATS
-		pArena->sStatistics.uTotalResourceCount+=uSize;
-		pArena->sStatistics.uFreeResourceCount+=uSize;
-		pArena->sStatistics.uSpanCount++;
-#endif
-	}
-	return pBT;
-}
-
-static BT *
-_InsertResourceSpan (RA_ARENA *pArena, IMG_UINTPTR_T base, IMG_SIZE_T uSize)
-{
-	PVRSRV_ERROR eError;
-	BT *pSpanStart;
-	BT *pSpanEnd;
-	BT *pBT;
-
-	PVR_ASSERT (pArena != IMG_NULL);
-	if (pArena == IMG_NULL)
-	{
-		PVR_DPF ((PVR_DBG_ERROR,"_InsertResourceSpan: invalid parameter - pArena"));
-		return IMG_NULL;
-	}
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-			  "RA_InsertResourceSpan: arena='%s', base=0x%x, size=0x%x",
-			  pArena->name, base, uSize));
-
-	pSpanStart = _BuildSpanMarker (base, uSize);
-	if (pSpanStart == IMG_NULL)
-	{
-		goto fail_start;
-	}
-
-#if defined(VALIDATE_ARENA_TEST)
-	pSpanStart->eResourceSpan = IMPORTED_RESOURCE_SPAN_START;
-	pSpanStart->eResourceType = IMPORTED_RESOURCE_TYPE;
-#endif
-
-	pSpanEnd = _BuildSpanMarker (base + uSize, 0);
-	if (pSpanEnd == IMG_NULL)
-	{
-		goto fail_end;
-	}
-
-#if defined(VALIDATE_ARENA_TEST)
-	pSpanEnd->eResourceSpan = IMPORTED_RESOURCE_SPAN_END;
-	pSpanEnd->eResourceType = IMPORTED_RESOURCE_TYPE;
-#endif
-
-	pBT = _BuildBT (base, uSize);
-	if (pBT == IMG_NULL)
-	{
-		goto fail_bt;
-	}
-
-#if defined(VALIDATE_ARENA_TEST)
-	pBT->eResourceSpan = IMPORTED_RESOURCE_SPAN_FREE;
-	pBT->eResourceType = IMPORTED_RESOURCE_TYPE;
-#endif
-
-	eError = _SegmentListInsert (pArena, pSpanStart);
-	if (eError != PVRSRV_OK)
-	{
-		goto fail_SegListInsert;
-	}
-
-	eError = _SegmentListInsertAfter (pArena, pSpanStart, pBT);
-	if (eError != PVRSRV_OK)
-	{
-		goto fail_SegListInsert;
-	}
-
-	_FreeListInsert (pArena, pBT);
-
-	eError = _SegmentListInsertAfter (pArena, pBT, pSpanEnd);
-	if (eError != PVRSRV_OK)
-	{
-		goto fail_SegListInsert;
-	}
-
-#ifdef RA_STATS
-	pArena->sStatistics.uTotalResourceCount+=uSize;
-#endif
-	return pBT;
-
-  fail_SegListInsert:
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BT), pBT, IMG_NULL);
-	
-  fail_bt:
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BT), pSpanEnd, IMG_NULL);
-	
-  fail_end:
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BT), pSpanStart, IMG_NULL);
-	
-  fail_start:
-	return IMG_NULL;
-}
-
-static IMG_VOID
-_FreeBT (RA_ARENA *pArena, BT *pBT, IMG_BOOL bFreeBackingStore)
-{
-	BT *pNeighbour;
-	IMG_UINTPTR_T uOrigBase;
-	IMG_SIZE_T uOrigSize;
-
-	PVR_ASSERT (pArena!=IMG_NULL);
-	PVR_ASSERT (pBT!=IMG_NULL);
-
-	if ((pArena == IMG_NULL) || (pBT == IMG_NULL))
-	{
-		PVR_DPF ((PVR_DBG_ERROR,"_FreeBT: invalid parameter"));
-		return;
-	}
-
-#ifdef RA_STATS
-	pArena->sStatistics.uLiveSegmentCount--;
-	pArena->sStatistics.uFreeSegmentCount++;
-	pArena->sStatistics.uFreeResourceCount+=pBT->uSize;
-#endif
-
-	uOrigBase = pBT->base;
-	uOrigSize = pBT->uSize;
-
-	
-	pNeighbour = pBT->pPrevSegment;
-	if (pNeighbour!=IMG_NULL
-		&& pNeighbour->type == btt_free
-		&& pNeighbour->base + pNeighbour->uSize == pBT->base)
-	{
-		_FreeListRemove (pArena, pNeighbour);
-		_SegmentListRemove (pArena, pNeighbour);
-		pBT->base = pNeighbour->base;
-		pBT->uSize += pNeighbour->uSize;
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BT), pNeighbour, IMG_NULL);
-		
-#ifdef RA_STATS
-		pArena->sStatistics.uFreeSegmentCount--;
-#endif
-	}
-
-	
-	pNeighbour = pBT->pNextSegment;
-	if (pNeighbour!=IMG_NULL
-		&& pNeighbour->type == btt_free
-		&& pBT->base + pBT->uSize == pNeighbour->base)
-	{
-		_FreeListRemove (pArena, pNeighbour);
-		_SegmentListRemove (pArena, pNeighbour);
-		pBT->uSize += pNeighbour->uSize;
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BT), pNeighbour, IMG_NULL);
-		
-#ifdef RA_STATS
-		pArena->sStatistics.uFreeSegmentCount--;
-#endif
-	}
-
-	
-	if (pArena->pBackingStoreFree != IMG_NULL && bFreeBackingStore)
-	{
-		IMG_UINTPTR_T	uRoundedStart, uRoundedEnd;
-
-		
-		uRoundedStart = (uOrigBase / pArena->uQuantum) * pArena->uQuantum;
-		
-		if (uRoundedStart < pBT->base)
-		{
-			uRoundedStart += pArena->uQuantum;
-		}
-
-		
-		uRoundedEnd = ((uOrigBase + uOrigSize + pArena->uQuantum - 1) / pArena->uQuantum) * pArena->uQuantum;
-		
-		if (uRoundedEnd > (pBT->base + pBT->uSize))
-		{
-			uRoundedEnd -= pArena->uQuantum;
-		}
-
-		if (uRoundedStart < uRoundedEnd)
-		{
-			pArena->pBackingStoreFree(pArena->pImportHandle, (IMG_SIZE_T)uRoundedStart, (IMG_SIZE_T)uRoundedEnd, (IMG_HANDLE)0);
-		}
-	}
-
-	if (pBT->pNextSegment!=IMG_NULL && pBT->pNextSegment->type == btt_span
-		&& pBT->pPrevSegment!=IMG_NULL && pBT->pPrevSegment->type == btt_span)
-	{
-		BT *next = pBT->pNextSegment;
-		BT *prev = pBT->pPrevSegment;
-		_SegmentListRemove (pArena, next);
-		_SegmentListRemove (pArena, prev);
-		_SegmentListRemove (pArena, pBT);
-		pArena->pImportFree (pArena->pImportHandle, pBT->base, pBT->psMapping);
-#ifdef RA_STATS
-		pArena->sStatistics.uSpanCount--;
-		pArena->sStatistics.uExportCount++;
-		pArena->sStatistics.uFreeSegmentCount--;
-		pArena->sStatistics.uFreeResourceCount-=pBT->uSize;
-		pArena->sStatistics.uTotalResourceCount-=pBT->uSize;
-#endif
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BT), next, IMG_NULL);
-		
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BT), prev, IMG_NULL);
-		
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BT), pBT, IMG_NULL);
-		
-	}
-	else
-		_FreeListInsert (pArena, pBT);
-}
-
-
-static IMG_BOOL
-_AttemptAllocAligned (RA_ARENA *pArena,
-					  IMG_SIZE_T uSize,
-					  BM_MAPPING **ppsMapping,
-					  IMG_UINT32 uFlags,
-					  IMG_UINT32 uAlignment,
-					  IMG_UINT32 uAlignmentOffset,
-					  IMG_UINTPTR_T *base)
-{
-	IMG_UINT32 uIndex;
-	PVR_ASSERT (pArena!=IMG_NULL);
-	if (pArena == IMG_NULL)
-	{
-		PVR_DPF ((PVR_DBG_ERROR,"_AttemptAllocAligned: invalid parameter - pArena"));
-		return IMG_FALSE;
-	}
-
-	if (uAlignment>1)
-		uAlignmentOffset %= uAlignment;
-
-	
-
-	uIndex = pvr_log2 (uSize);
-
-#if 0
-	
-	if (1u<<uIndex < uSize)
-		uIndex++;
-#endif
-
-	while (uIndex < FREE_TABLE_LIMIT && pArena->aHeadFree[uIndex]==IMG_NULL)
-		uIndex++;
-
-	while (uIndex < FREE_TABLE_LIMIT)
-	{
-		if (pArena->aHeadFree[uIndex]!=IMG_NULL)
-		{
-			
-			BT *pBT;
-
-			pBT = pArena->aHeadFree [uIndex];
-			while (pBT!=IMG_NULL)
-			{
-				IMG_UINTPTR_T aligned_base;
-
-				if (uAlignment>1)
-					aligned_base = (pBT->base + uAlignmentOffset + uAlignment - 1) / uAlignment * uAlignment - uAlignmentOffset;
-				else
-					aligned_base = pBT->base;
-				PVR_DPF ((PVR_DBG_MESSAGE,
-						  "RA_AttemptAllocAligned: pBT-base=0x%x "
-						  "pBT-size=0x%x alignedbase=0x%x size=0x%x",
-						pBT->base, pBT->uSize, aligned_base, uSize));
-
-				if (pBT->base + pBT->uSize >= aligned_base + uSize)
-				{
-					if(!pBT->psMapping || pBT->psMapping->ui32Flags == uFlags)
-					{
-						_FreeListRemove (pArena, pBT);
-
-						PVR_ASSERT (pBT->type == btt_free);
-
-#ifdef RA_STATS
-						pArena->sStatistics.uLiveSegmentCount++;
-						pArena->sStatistics.uFreeSegmentCount--;
-						pArena->sStatistics.uFreeResourceCount-=pBT->uSize;
-#endif
-
-						
-						if (aligned_base > pBT->base)
-						{
-							BT *pNeighbour;
-							pNeighbour = _SegmentSplit (pArena, pBT, (IMG_SIZE_T)(aligned_base - pBT->base));
-							
-							if (pNeighbour==IMG_NULL)
-							{
-								PVR_DPF ((PVR_DBG_ERROR,"_AttemptAllocAligned: Front split failed"));
-								
-								_FreeListInsert (pArena, pBT);
-								return IMG_FALSE;
-							}
-
-							_FreeListInsert (pArena, pBT);
-	#ifdef RA_STATS
-							pArena->sStatistics.uFreeSegmentCount++;
-							pArena->sStatistics.uFreeResourceCount+=pBT->uSize;
-	#endif
-							pBT = pNeighbour;
-						}
-
-						
-						if (pBT->uSize > uSize)
-						{
-							BT *pNeighbour;
-							pNeighbour = _SegmentSplit (pArena, pBT, uSize);
-							
-							if (pNeighbour==IMG_NULL)
-							{
-								PVR_DPF ((PVR_DBG_ERROR,"_AttemptAllocAligned: Back split failed"));
-								
-								_FreeListInsert (pArena, pBT);
-								return IMG_FALSE;
-							}
-
-							_FreeListInsert (pArena, pNeighbour);
-	#ifdef RA_STATS
-							pArena->sStatistics.uFreeSegmentCount++;
-							pArena->sStatistics.uFreeResourceCount+=pNeighbour->uSize;
-	#endif
-						}
-
-						pBT->type = btt_live;
-
-#if defined(VALIDATE_ARENA_TEST)
-						if (pBT->eResourceType == IMPORTED_RESOURCE_TYPE)
-						{
-							pBT->eResourceSpan = IMPORTED_RESOURCE_SPAN_LIVE;
-						}
-						else if (pBT->eResourceType == NON_IMPORTED_RESOURCE_TYPE)
-						{
-							pBT->eResourceSpan = RESOURCE_SPAN_LIVE;
-						}
-						else
-						{
-							PVR_DPF ((PVR_DBG_ERROR,"_AttemptAllocAligned ERROR: pBT->eResourceType unrecognized"));
-							PVR_DBG_BREAK;
-						}
-#endif
-						if (!HASH_Insert (pArena->pSegmentHash, pBT->base, (IMG_UINTPTR_T) pBT))
-						{
-							_FreeBT (pArena, pBT, IMG_FALSE);
-							return IMG_FALSE;
-						}
-
-						if (ppsMapping!=IMG_NULL)
-							*ppsMapping = pBT->psMapping;
-
-						*base = pBT->base;
-
-						return IMG_TRUE;
-					}
-					else
-					{
-						PVR_DPF ((PVR_DBG_MESSAGE,
-								"AttemptAllocAligned: mismatch in flags. Import has %x, request was %x", pBT->psMapping->ui32Flags, uFlags));
-
-					}
-				}
-				pBT = pBT->pNextFree;
-			}
-
-		}
-		uIndex++;
-	}
-
-	return IMG_FALSE;
-}
-
-
-
-RA_ARENA *
-RA_Create (IMG_CHAR *name,
-		   IMG_UINTPTR_T base,
-		   IMG_SIZE_T uSize,
-		   BM_MAPPING *psMapping,
-		   IMG_SIZE_T uQuantum,
-		   IMG_BOOL (*imp_alloc)(IMG_VOID *, IMG_SIZE_T uSize, IMG_SIZE_T *pActualSize,
-		                     BM_MAPPING **ppsMapping, IMG_UINT32 _flags, IMG_UINTPTR_T *pBase),
-		   IMG_VOID (*imp_free) (IMG_VOID *, IMG_UINTPTR_T, BM_MAPPING *),
-		   IMG_VOID (*backingstore_free) (IMG_VOID*, IMG_SIZE_T, IMG_SIZE_T, IMG_HANDLE),
-		   IMG_VOID *pImportHandle)
-{
-	RA_ARENA *pArena;
-	BT *pBT;
-	IMG_INT i;
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-			  "RA_Create: name='%s', base=0x%x, uSize=0x%x, alloc=0x%x, free=0x%x",
-			  name, base, uSize, (IMG_UINTPTR_T)imp_alloc, (IMG_UINTPTR_T)imp_free));
-
-
-	if (OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-					 sizeof (*pArena),
-					 (IMG_VOID **)&pArena, IMG_NULL,
-					 "Resource Arena") != PVRSRV_OK)
-	{
-		goto arena_fail;
-	}
-
-	pArena->name = name;
-	pArena->pImportAlloc = (imp_alloc!=IMG_NULL) ? imp_alloc : &_RequestAllocFail;
-	pArena->pImportFree = imp_free;
-	pArena->pBackingStoreFree = backingstore_free;
-	pArena->pImportHandle = pImportHandle;
-	for (i=0; i<FREE_TABLE_LIMIT; i++)
-		pArena->aHeadFree[i] = IMG_NULL;
-	pArena->pHeadSegment = IMG_NULL;
-	pArena->pTailSegment = IMG_NULL;
-	pArena->uQuantum = uQuantum;
-
-#ifdef RA_STATS
-	pArena->sStatistics.uSpanCount = 0;
-	pArena->sStatistics.uLiveSegmentCount = 0;
-	pArena->sStatistics.uFreeSegmentCount = 0;
-	pArena->sStatistics.uFreeResourceCount = 0;
-	pArena->sStatistics.uTotalResourceCount = 0;
-	pArena->sStatistics.uCumulativeAllocs = 0;
-	pArena->sStatistics.uCumulativeFrees = 0;
-	pArena->sStatistics.uImportCount = 0;
-	pArena->sStatistics.uExportCount = 0;
-#endif
-
-#if defined(CONFIG_PROC_FS) && defined(DEBUG)
-	if(strcmp(pArena->name,"") != 0)
-	{
-		IMG_INT ret;
-		IMG_CHAR szProcInfoName[PROC_NAME_SIZE];
-		IMG_CHAR szProcSegsName[PROC_NAME_SIZE];
-		struct proc_dir_entry* (*pfnCreateProcEntrySeq)(const IMG_CHAR *,
-										 IMG_VOID*,
-										 pvr_next_proc_seq_t,
-										 pvr_show_proc_seq_t,
-										 pvr_off2element_proc_seq_t,
-										 pvr_startstop_proc_seq_t,
-										 write_proc_t);
-
-		pArena->bInitProcEntry = !PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_SUCCESSFUL);
-
-		
-		pfnCreateProcEntrySeq = pArena->bInitProcEntry ? CreateProcEntrySeq : CreatePerProcessProcEntrySeq;
-
-		ret = snprintf(szProcInfoName, sizeof(szProcInfoName), "ra_info_%s", pArena->name);
-		if (ret > 0 && ret < sizeof(szProcInfoName))
-		{
-			pArena->pProcInfo =  pfnCreateProcEntrySeq(ReplaceSpaces(szProcInfoName), pArena, NULL,
-											 RA_ProcSeqShowInfo, RA_ProcSeqOff2ElementInfo, NULL, NULL);
-		}
-		else
-		{
-			pArena->pProcInfo = 0;
-			PVR_DPF((PVR_DBG_ERROR, "RA_Create: couldn't create ra_info proc entry for arena %s", pArena->name));
-		}
-
-		ret = snprintf(szProcSegsName, sizeof(szProcSegsName), "ra_segs_%s", pArena->name);
-		if (ret > 0 && ret < sizeof(szProcInfoName))
-		{
-			pArena->pProcSegs = pfnCreateProcEntrySeq(ReplaceSpaces(szProcSegsName), pArena, NULL,
-											 RA_ProcSeqShowRegs, RA_ProcSeqOff2ElementRegs, NULL, NULL);
-		}
-		else
-		{
-			pArena->pProcSegs = 0;
-			PVR_DPF((PVR_DBG_ERROR, "RA_Create: couldn't create ra_segs proc entry for arena %s", pArena->name));
-		}
-	}
-#endif 
-
-	pArena->pSegmentHash = HASH_Create (MINIMUM_HASH_SIZE);
-	if (pArena->pSegmentHash==IMG_NULL)
-	{
-		goto hash_fail;
-	}
-	if (uSize>0)
-	{
-		uSize = (uSize + uQuantum - 1) / uQuantum * uQuantum;
-		pBT = _InsertResource (pArena, base, uSize);
-		if (pBT == IMG_NULL)
-		{
-			goto insert_fail;
-		}
-		pBT->psMapping = psMapping;
-
-	}
-	return pArena;
-
-insert_fail:
-	HASH_Delete (pArena->pSegmentHash);
-hash_fail:
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(RA_ARENA), pArena, IMG_NULL);
-	
-arena_fail:
-	return IMG_NULL;
-}
-
-IMG_VOID
-RA_Delete (RA_ARENA *pArena)
-{
-	IMG_UINT32 uIndex;
-
-	PVR_ASSERT(pArena != IMG_NULL);
-
-	if (pArena == IMG_NULL)
-	{
-		PVR_DPF ((PVR_DBG_ERROR,"RA_Delete: invalid parameter - pArena"));
-		return;
-	}
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-			  "RA_Delete: name='%s'", pArena->name));
-
-	for (uIndex=0; uIndex<FREE_TABLE_LIMIT; uIndex++)
-		pArena->aHeadFree[uIndex] = IMG_NULL;
-
-	while (pArena->pHeadSegment != IMG_NULL)
-	{
-		BT *pBT = pArena->pHeadSegment;
-
-		if (pBT->type != btt_free)
-		{
-			PVR_DPF ((PVR_DBG_ERROR,"RA_Delete: allocations still exist in the arena that is being destroyed"));
-			PVR_DPF ((PVR_DBG_ERROR,"Likely Cause: client drivers not freeing alocations before destroying devmemcontext"));
-			PVR_DPF ((PVR_DBG_ERROR,"RA_Delete: base = 0x%x size=0x%x", pBT->base, pBT->uSize));
-		}
-
-		_SegmentListRemove (pArena, pBT);
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(BT), pBT, IMG_NULL);
-		
-#ifdef RA_STATS
-		pArena->sStatistics.uSpanCount--;
-#endif
-	}
-#if defined(CONFIG_PROC_FS) && defined(DEBUG)
-	{
-		IMG_VOID (*pfnRemoveProcEntrySeq)(struct proc_dir_entry*);
-
-		pfnRemoveProcEntrySeq = pArena->bInitProcEntry ? RemoveProcEntrySeq : RemovePerProcessProcEntrySeq;
-
-		if (pArena->pProcInfo != 0)
-		{
-			pfnRemoveProcEntrySeq( pArena->pProcInfo );
-		}
-
-		if (pArena->pProcSegs != 0)
-		{
-			pfnRemoveProcEntrySeq( pArena->pProcSegs );
-		}
-	}
-#endif
-	HASH_Delete (pArena->pSegmentHash);
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(RA_ARENA), pArena, IMG_NULL);
-	
-}
-
-IMG_BOOL
-RA_TestDelete (RA_ARENA *pArena)
-{
-	PVR_ASSERT(pArena != IMG_NULL);
-
-	if (pArena != IMG_NULL)
-	{
-		while (pArena->pHeadSegment != IMG_NULL)
-		{
-			BT *pBT = pArena->pHeadSegment;
-			if (pBT->type != btt_free)
-			{
-				PVR_DPF ((PVR_DBG_ERROR,"RA_TestDelete: detected resource leak!"));
-				PVR_DPF ((PVR_DBG_ERROR,"RA_TestDelete: base = 0x%x size=0x%x", pBT->base, pBT->uSize));
-				return IMG_FALSE;
-			}
-		}
-	}
-
-	return IMG_TRUE;
-}
-
-IMG_BOOL
-RA_Add (RA_ARENA *pArena, IMG_UINTPTR_T base, IMG_SIZE_T uSize)
-{
-	PVR_ASSERT (pArena != IMG_NULL);
-
-	if (pArena == IMG_NULL)
-	{
-		PVR_DPF ((PVR_DBG_ERROR,"RA_Add: invalid parameter - pArena"));
-		return IMG_FALSE;
-	}
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-			  "RA_Add: name='%s', base=0x%x, size=0x%x", pArena->name, base, uSize));
-
-	uSize = (uSize + pArena->uQuantum - 1) / pArena->uQuantum * pArena->uQuantum;
-	return ((IMG_BOOL)(_InsertResource (pArena, base, uSize) != IMG_NULL));
-}
-
-IMG_BOOL
-RA_Alloc (RA_ARENA *pArena,
-		  IMG_SIZE_T uRequestSize,
-		  IMG_SIZE_T *pActualSize,
-		  BM_MAPPING **ppsMapping,
-		  IMG_UINT32 uFlags,
-		  IMG_UINT32 uAlignment,
-		  IMG_UINT32 uAlignmentOffset,
-		  IMG_UINTPTR_T *base)
-{
-	IMG_BOOL bResult;
-	IMG_SIZE_T uSize = uRequestSize;
-
-	PVR_ASSERT (pArena!=IMG_NULL);
-
-	if (pArena == IMG_NULL)
-	{
-		PVR_DPF ((PVR_DBG_ERROR,"RA_Alloc: invalid parameter - pArena"));
-		return IMG_FALSE;
-	}
-
-#if defined(VALIDATE_ARENA_TEST)
-	ValidateArena(pArena);
-#endif
-
-#ifdef USE_BM_FREESPACE_CHECK
-	CheckBMFreespace();
-#endif
-
-	if (pActualSize != IMG_NULL)
-	{
-		*pActualSize = uSize;
-	}
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-			  "RA_Alloc: arena='%s', size=0x%x(0x%x), alignment=0x%x, offset=0x%x",
-		   pArena->name, uSize, uRequestSize, uAlignment, uAlignmentOffset));
-
-	
-
-	bResult = _AttemptAllocAligned (pArena, uSize, ppsMapping, uFlags,
-									uAlignment, uAlignmentOffset, base);
-	if (!bResult)
-	{
-		BM_MAPPING *psImportMapping;
-		IMG_UINTPTR_T import_base;
-		IMG_SIZE_T uImportSize = uSize;
-
-		
-
-
-		if (uAlignment > pArena->uQuantum)
-		{
-			uImportSize += (uAlignment - 1);
-		}
-
-		
-		uImportSize = ((uImportSize + pArena->uQuantum - 1)/pArena->uQuantum)*pArena->uQuantum;
-
-		bResult =
-			pArena->pImportAlloc (pArena->pImportHandle, uImportSize, &uImportSize,
-								 &psImportMapping, uFlags, &import_base);
-		if (bResult)
-		{
-			BT *pBT;
-			pBT = _InsertResourceSpan (pArena, import_base, uImportSize);
-			
-			if (pBT == IMG_NULL)
-			{
-				
-				pArena->pImportFree(pArena->pImportHandle, import_base,
-									psImportMapping);
-				PVR_DPF ((PVR_DBG_MESSAGE,
-						  "RA_Alloc: name='%s', size=0x%x failed!",
-						  pArena->name, uSize));
-				
-				return IMG_FALSE;
-			}
-			pBT->psMapping = psImportMapping;
-#ifdef RA_STATS
-			pArena->sStatistics.uFreeSegmentCount++;
-			pArena->sStatistics.uFreeResourceCount += uImportSize;
-			pArena->sStatistics.uImportCount++;
-			pArena->sStatistics.uSpanCount++;
-#endif
-			bResult = _AttemptAllocAligned(pArena, uSize, ppsMapping, uFlags,
-										   uAlignment, uAlignmentOffset,
-										   base);
-			if (!bResult)
-			{
-				PVR_DPF ((PVR_DBG_MESSAGE,
-						  "RA_Alloc: name='%s' uAlignment failed!",
-						  pArena->name));
-			}
-		}
-	}
-#ifdef RA_STATS
-	if (bResult)
-		pArena->sStatistics.uCumulativeAllocs++;
-#endif
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-			  "RA_Alloc: name='%s', size=0x%x, *base=0x%x = %d",
-			  pArena->name, uSize, *base, bResult));
-
-	
-
-#if defined(VALIDATE_ARENA_TEST)
-	ValidateArena(pArena);
-#endif
-
-	return bResult;
-}
-
-
-#if defined(VALIDATE_ARENA_TEST)
-
-IMG_UINT32 ValidateArena(RA_ARENA *pArena)
-{
-	BT* pSegment;
-	RESOURCE_DESCRIPTOR eNextSpan;
-
-	pSegment = pArena->pHeadSegment;
-
-	if (pSegment == IMG_NULL)
-	{
-		return 0;
-	}
-
-	if (pSegment->eResourceType == IMPORTED_RESOURCE_TYPE)
-	{
-		PVR_ASSERT(pSegment->eResourceSpan == IMPORTED_RESOURCE_SPAN_START);
-
-		while (pSegment->pNextSegment)
-		{
-			eNextSpan = pSegment->pNextSegment->eResourceSpan;
-
-			switch (pSegment->eResourceSpan)
-			{
-				case IMPORTED_RESOURCE_SPAN_LIVE:
-
-					if (!((eNextSpan == IMPORTED_RESOURCE_SPAN_LIVE) ||
-						  (eNextSpan == IMPORTED_RESOURCE_SPAN_FREE) ||
-						  (eNextSpan == IMPORTED_RESOURCE_SPAN_END)))
-					{
-						
-						PVR_DPF((PVR_DBG_ERROR, "ValidateArena ERROR: adjacent boundary tags %d (base=0x%x) and %d (base=0x%x) are incompatible (arena: %s)",
-								pSegment->ui32BoundaryTagID, pSegment->base, pSegment->pNextSegment->ui32BoundaryTagID, pSegment->pNextSegment->base, pArena->name));
-
-						PVR_DBG_BREAK;
-					}
-				break;
-
-				case IMPORTED_RESOURCE_SPAN_FREE:
-
-					if (!((eNextSpan == IMPORTED_RESOURCE_SPAN_LIVE) ||
-						  (eNextSpan == IMPORTED_RESOURCE_SPAN_END)))
-					{
-						
-						PVR_DPF((PVR_DBG_ERROR, "ValidateArena ERROR: adjacent boundary tags %d (base=0x%x) and %d (base=0x%x) are incompatible (arena: %s)",
-								pSegment->ui32BoundaryTagID, pSegment->base, pSegment->pNextSegment->ui32BoundaryTagID, pSegment->pNextSegment->base, pArena->name));
-
-						PVR_DBG_BREAK;
-					}
-				break;
-
-				case IMPORTED_RESOURCE_SPAN_END:
-
-					if ((eNextSpan == IMPORTED_RESOURCE_SPAN_LIVE) ||
-						(eNextSpan == IMPORTED_RESOURCE_SPAN_FREE) ||
-						(eNextSpan == IMPORTED_RESOURCE_SPAN_END))
-					{
-						
-						PVR_DPF((PVR_DBG_ERROR, "ValidateArena ERROR: adjacent boundary tags %d (base=0x%x) and %d (base=0x%x) are incompatible (arena: %s)",
-								pSegment->ui32BoundaryTagID, pSegment->base, pSegment->pNextSegment->ui32BoundaryTagID, pSegment->pNextSegment->base, pArena->name));
-
-						PVR_DBG_BREAK;
-					}
-				break;
-
-
-				case IMPORTED_RESOURCE_SPAN_START:
-
-					if (!((eNextSpan == IMPORTED_RESOURCE_SPAN_LIVE) ||
-						  (eNextSpan == IMPORTED_RESOURCE_SPAN_FREE)))
-					{
-						
-						PVR_DPF((PVR_DBG_ERROR, "ValidateArena ERROR: adjacent boundary tags %d (base=0x%x) and %d (base=0x%x) are incompatible (arena: %s)",
-								pSegment->ui32BoundaryTagID, pSegment->base, pSegment->pNextSegment->ui32BoundaryTagID, pSegment->pNextSegment->base, pArena->name));
-
-						PVR_DBG_BREAK;
-					}
-				break;
-
-				default:
-					PVR_DPF((PVR_DBG_ERROR, "ValidateArena ERROR: adjacent boundary tags %d (base=0x%x) and %d (base=0x%x) are incompatible (arena: %s)",
-								pSegment->ui32BoundaryTagID, pSegment->base, pSegment->pNextSegment->ui32BoundaryTagID, pSegment->pNextSegment->base, pArena->name));
-
-					PVR_DBG_BREAK;
-				break;
-			}
-			pSegment = pSegment->pNextSegment;
-		}
-	}
-	else if (pSegment->eResourceType == NON_IMPORTED_RESOURCE_TYPE)
-	{
-		PVR_ASSERT((pSegment->eResourceSpan == RESOURCE_SPAN_FREE) || (pSegment->eResourceSpan == RESOURCE_SPAN_LIVE));
-
-		while (pSegment->pNextSegment)
-		{
-			eNextSpan = pSegment->pNextSegment->eResourceSpan;
-
-			switch (pSegment->eResourceSpan)
-			{
-				case RESOURCE_SPAN_LIVE:
-
-					if (!((eNextSpan == RESOURCE_SPAN_FREE) ||
-						  (eNextSpan == RESOURCE_SPAN_LIVE)))
-					{
-						
-						PVR_DPF((PVR_DBG_ERROR, "ValidateArena ERROR: adjacent boundary tags %d (base=0x%x) and %d (base=0x%x) are incompatible (arena: %s)",
-								pSegment->ui32BoundaryTagID, pSegment->base, pSegment->pNextSegment->ui32BoundaryTagID, pSegment->pNextSegment->base, pArena->name));
-
-						PVR_DBG_BREAK;
-					}
-				break;
-
-				case RESOURCE_SPAN_FREE:
-
-					if (!((eNextSpan == RESOURCE_SPAN_FREE) ||
-						  (eNextSpan == RESOURCE_SPAN_LIVE)))
-					{
-						
-						PVR_DPF((PVR_DBG_ERROR, "ValidateArena ERROR: adjacent boundary tags %d (base=0x%x) and %d (base=0x%x) are incompatible (arena: %s)",
-								pSegment->ui32BoundaryTagID, pSegment->base, pSegment->pNextSegment->ui32BoundaryTagID, pSegment->pNextSegment->base, pArena->name));
-
-						PVR_DBG_BREAK;
-					}
-				break;
-
-				default:
-					PVR_DPF((PVR_DBG_ERROR, "ValidateArena ERROR: adjacent boundary tags %d (base=0x%x) and %d (base=0x%x) are incompatible (arena: %s)",
-								pSegment->ui32BoundaryTagID, pSegment->base, pSegment->pNextSegment->ui32BoundaryTagID, pSegment->pNextSegment->base, pArena->name));
-
-					PVR_DBG_BREAK;
-				break;
-			}
-			pSegment = pSegment->pNextSegment;
-		}
-
-	}
-	else
-	{
-		PVR_DPF ((PVR_DBG_ERROR,"ValidateArena ERROR: pSegment->eResourceType unrecognized"));
-
-		PVR_DBG_BREAK;
-	}
-
-	return 0;
-}
-
-#endif
-
-
-IMG_VOID
-RA_Free (RA_ARENA *pArena, IMG_UINTPTR_T base, IMG_BOOL bFreeBackingStore)
-{
-	BT *pBT;
-
-	PVR_ASSERT (pArena != IMG_NULL);
-
-	if (pArena == IMG_NULL)
-	{
-		PVR_DPF ((PVR_DBG_ERROR,"RA_Free: invalid parameter - pArena"));
-		return;
-	}
-
-#ifdef USE_BM_FREESPACE_CHECK
-	CheckBMFreespace();
-#endif
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-			  "RA_Free: name='%s', base=0x%x", pArena->name, base));
-
-	pBT = (BT *) HASH_Remove (pArena->pSegmentHash, base);
-	PVR_ASSERT (pBT != IMG_NULL);
-
-	if (pBT)
-	{
-		PVR_ASSERT (pBT->base == base);
-
-#ifdef RA_STATS
-		pArena->sStatistics.uCumulativeFrees++;
-#endif
-
-#ifdef USE_BM_FREESPACE_CHECK
-{
-	IMG_BYTE* p;
-	IMG_BYTE* endp;
-
-	p = (IMG_BYTE*)pBT->base + SysGetDevicePhysOffset();
-	endp = (IMG_BYTE*)((IMG_UINT32)(p + pBT->uSize));
-	while ((IMG_UINT32)p & 3)
-	{
-		*p++ = 0xAA;
-	}
-	while (p < (IMG_BYTE*)((IMG_UINT32)endp & 0xfffffffc))
-	{
-		*(IMG_UINT32*)p = 0xAAAAAAAA;
-		p += sizeof(IMG_UINT32);
-	}
-	while (p < endp)
-	{
-		*p++ = 0xAA;
-	}
-	PVR_DPF((PVR_DBG_MESSAGE,"BM_FREESPACE_CHECK: RA_Free Cleared %08X to %08X (size=0x%x)",(IMG_BYTE*)pBT->base + SysGetDevicePhysOffset(),endp-1,pBT->uSize));
-}
-#endif
-		_FreeBT (pArena, pBT, bFreeBackingStore);
-	}
-}
-
-
-IMG_BOOL RA_GetNextLiveSegment(IMG_HANDLE hArena, RA_SEGMENT_DETAILS *psSegDetails)
-{
-	BT        *pBT;
-
-	if (psSegDetails->hSegment)
-	{
-		pBT = (BT *)psSegDetails->hSegment;
-	}
-	else
-	{
-		RA_ARENA *pArena = (RA_ARENA *)hArena;
-
-		pBT = pArena->pHeadSegment;
-	}
-	
-	while (pBT != IMG_NULL)
-	{
-		if (pBT->type == btt_live)
-		{
-			psSegDetails->uiSize = pBT->uSize;
-			psSegDetails->sCpuPhyAddr.uiAddr = pBT->base;
-			psSegDetails->hSegment = (IMG_HANDLE)pBT->pNextSegment;
-
-			return IMG_TRUE;
-		}
-
-		pBT = pBT->pNextSegment;
-	}
-
-	psSegDetails->uiSize = 0;
-	psSegDetails->sCpuPhyAddr.uiAddr = 0;
-	psSegDetails->hSegment = (IMG_HANDLE)IMG_UNDEF;
-
-	return IMG_FALSE;
-}
-
-
-#ifdef USE_BM_FREESPACE_CHECK
-RA_ARENA* pJFSavedArena = IMG_NULL;
-
-IMG_VOID CheckBMFreespace(IMG_VOID)
-{
-	BT *pBT;
-	IMG_BYTE* p;
-	IMG_BYTE* endp;
-
-	if (pJFSavedArena != IMG_NULL)
-	{
-		for (pBT=pJFSavedArena->pHeadSegment; pBT!=IMG_NULL; pBT=pBT->pNextSegment)
-		{
-			if (pBT->type == btt_free)
-			{
-				p = (IMG_BYTE*)pBT->base + SysGetDevicePhysOffset();
-				endp = (IMG_BYTE*)((IMG_UINT32)(p + pBT->uSize) & 0xfffffffc);
-
-				while ((IMG_UINT32)p & 3)
-				{
-					if (*p++ != 0xAA)
-					{
-						fprintf(stderr,"BM_FREESPACE_CHECK: Blank space at %08X has changed to 0x%x\n",p,*(IMG_UINT32*)p);
-						for (;;);
-						break;
-					}
-				}
-				while (p < endp)
-				{
-					if (*(IMG_UINT32*)p != 0xAAAAAAAA)
-					{
-						fprintf(stderr,"BM_FREESPACE_CHECK: Blank space at %08X has changed to 0x%x\n",p,*(IMG_UINT32*)p);
-						for (;;);
-						break;
-					}
-					p += 4;
-				}
-			}
-		}
-	}
-}
-#endif
-
-
-#if (defined(CONFIG_PROC_FS) && defined(DEBUG)) || defined (RA_STATS)
-static IMG_CHAR *
-_BTType (IMG_INT eType)
-{
-	switch (eType)
-	{
-	case btt_span: return "span";
-	case btt_free: return "free";
-	case btt_live: return "live";
-	}
-	return "junk";
-}
-#endif 
-
-#if defined(ENABLE_RA_DUMP)
-IMG_VOID
-RA_Dump (RA_ARENA *pArena)
-{
-	BT *pBT;
-	PVR_ASSERT (pArena != IMG_NULL);
-	PVR_DPF ((PVR_DBG_MESSAGE,"Arena '%s':", pArena->name));
-	PVR_DPF ((PVR_DBG_MESSAGE,"  alloc=%08X free=%08X handle=%08X quantum=%d",
-			 pArena->pImportAlloc, pArena->pImportFree, pArena->pImportHandle,
-			 pArena->uQuantum));
-	PVR_DPF ((PVR_DBG_MESSAGE,"  segment Chain:"));
-	if (pArena->pHeadSegment != IMG_NULL &&
-	    pArena->pHeadSegment->pPrevSegment != IMG_NULL)
-		PVR_DPF ((PVR_DBG_MESSAGE,"  error: head boundary tag has invalid pPrevSegment"));
-	if (pArena->pTailSegment != IMG_NULL &&
-	    pArena->pTailSegment->pNextSegment != IMG_NULL)
-		PVR_DPF ((PVR_DBG_MESSAGE,"  error: tail boundary tag has invalid pNextSegment"));
-
-	for (pBT=pArena->pHeadSegment; pBT!=IMG_NULL; pBT=pBT->pNextSegment)
-	{
-		PVR_DPF ((PVR_DBG_MESSAGE,"\tbase=0x%x size=0x%x type=%s ref=%08X",
-				 (IMG_UINT32) pBT->base, pBT->uSize, _BTType (pBT->type),
-				 pBT->pRef));
-	}
-
-#ifdef HASH_TRACE
-	HASH_Dump (pArena->pSegmentHash);
-#endif
-}
-#endif 
-
-
-#if defined(CONFIG_PROC_FS) && defined(DEBUG)
-
-
-static void RA_ProcSeqShowInfo(struct seq_file *sfile, void* el)
-{
-	PVR_PROC_SEQ_HANDLERS *handlers = (PVR_PROC_SEQ_HANDLERS*)sfile->private;
-	RA_ARENA *pArena = (RA_ARENA *)handlers->data;
-	IMG_INT off = (IMG_INT)el;
-
-	switch (off)
-	{
-	case 1:
-		seq_printf(sfile, "quantum\t\t\t%u\n", pArena->uQuantum);
-		break;
-	case 2:
-		seq_printf(sfile, "import_handle\t\t%08X\n", (IMG_UINT)pArena->pImportHandle);
-		break;
-#ifdef RA_STATS
-	case 3:
-		seq_printf(sfile,"span count\t\t%u\n", pArena->sStatistics.uSpanCount);
-		break;
-	case 4:
-		seq_printf(sfile, "live segment count\t%u\n", pArena->sStatistics.uLiveSegmentCount);
-		break;
-	case 5:
-		seq_printf(sfile, "free segment count\t%u\n", pArena->sStatistics.uFreeSegmentCount);
-		break;
-	case 6:
-		seq_printf(sfile, "free resource count\t%u (0x%x)\n",
-							pArena->sStatistics.uFreeResourceCount,
-							(IMG_UINT)pArena->sStatistics.uFreeResourceCount);
-		break;
-	case 7:
-		seq_printf(sfile, "total allocs\t\t%u\n", pArena->sStatistics.uCumulativeAllocs);
-		break;
-	case 8:
-		seq_printf(sfile, "total frees\t\t%u\n", pArena->sStatistics.uCumulativeFrees);
-		break;
-	case 9:
-		seq_printf(sfile, "import count\t\t%u\n", pArena->sStatistics.uImportCount);
-		break;
-	case 10:
-		seq_printf(sfile, "export count\t\t%u\n", pArena->sStatistics.uExportCount);
-		break;
-#endif
-	}
-
-}
-
-static void* RA_ProcSeqOff2ElementInfo(struct seq_file * sfile, loff_t off)
-{
-#ifdef RA_STATS
-	if(off <= 9)
-#else
-	if(off <= 1)
-#endif
-		return (void*)(IMG_INT)(off+1);
-	return 0;
-}
-
-static void RA_ProcSeqShowRegs(struct seq_file *sfile, void* el)
-{
-	PVR_PROC_SEQ_HANDLERS *handlers = (PVR_PROC_SEQ_HANDLERS*)sfile->private;
-	RA_ARENA *pArena = (RA_ARENA *)handlers->data;
-	BT *pBT = (BT*)el;
-
-	if (el == PVR_PROC_SEQ_START_TOKEN)
-	{
-		seq_printf(sfile, "Arena \"%s\"\nBase         Size Type Ref\n", pArena->name);
-		return;
-	}
-
-	if (pBT)
-	{
-		seq_printf(sfile, "%08x %8x %4s %08x\n",
-				   (IMG_UINT)pBT->base, (IMG_UINT)pBT->uSize, _BTType (pBT->type),
-			       (IMG_UINT)pBT->psMapping);
-	}
-}
-
-static void* RA_ProcSeqOff2ElementRegs(struct seq_file * sfile, loff_t off)
-{
-	PVR_PROC_SEQ_HANDLERS *handlers = (PVR_PROC_SEQ_HANDLERS*)sfile->private;
-	RA_ARENA *pArena = (RA_ARENA *)handlers->data;
-	BT *pBT = 0;
-
-	if(off == 0)
-		return PVR_PROC_SEQ_START_TOKEN;
-
-	for (pBT=pArena->pHeadSegment; --off && pBT; pBT=pBT->pNextSegment);
-
-	return (void*)pBT;
-}
-
-#endif 
-
-
-#ifdef RA_STATS
-PVRSRV_ERROR RA_GetStats(RA_ARENA *pArena,
-							IMG_CHAR **ppszStr,
-							IMG_UINT32 *pui32StrLen)
-{
-	IMG_CHAR 	*pszStr = *ppszStr;
-	IMG_UINT32 	ui32StrLen = *pui32StrLen;
-	IMG_INT32	i32Count;
-	BT 			*pBT;
-
-	CHECK_SPACE(ui32StrLen);
-	i32Count = OSSNPrintf(pszStr, 100, "\nArena '%s':\n", pArena->name);
-	UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-
-
-	CHECK_SPACE(ui32StrLen);
-	i32Count = OSSNPrintf(pszStr, 100, "  allocCB=%p freeCB=%p handle=%p quantum=%d\n",
-							 pArena->pImportAlloc,
-							 pArena->pImportFree,
-							 pArena->pImportHandle,
-							 pArena->uQuantum);
-	UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-
-	CHECK_SPACE(ui32StrLen);
-	i32Count = OSSNPrintf(pszStr, 100, "span count\t\t%u\n", pArena->sStatistics.uSpanCount);
-	UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-
-	CHECK_SPACE(ui32StrLen);
-	i32Count = OSSNPrintf(pszStr, 100, "live segment count\t%u\n", pArena->sStatistics.uLiveSegmentCount);
-	UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-
-	CHECK_SPACE(ui32StrLen);
-	i32Count = OSSNPrintf(pszStr, 100, "free segment count\t%u\n", pArena->sStatistics.uFreeSegmentCount);
-	UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-
-	CHECK_SPACE(ui32StrLen);
-	i32Count = OSSNPrintf(pszStr, 100, "free resource count\t%u (0x%x)\n",
-							pArena->sStatistics.uFreeResourceCount,
-							(IMG_UINT)pArena->sStatistics.uFreeResourceCount);
-	UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-
-	CHECK_SPACE(ui32StrLen);
-	i32Count = OSSNPrintf(pszStr, 100, "total allocs\t\t%u\n", pArena->sStatistics.uCumulativeAllocs);
-	UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-
-	CHECK_SPACE(ui32StrLen);
-	i32Count = OSSNPrintf(pszStr, 100, "total frees\t\t%u\n", pArena->sStatistics.uCumulativeFrees);
-	UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-
-	CHECK_SPACE(ui32StrLen);
-	i32Count = OSSNPrintf(pszStr, 100, "import count\t\t%u\n", pArena->sStatistics.uImportCount);
-	UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-
-	CHECK_SPACE(ui32StrLen);
-	i32Count = OSSNPrintf(pszStr, 100, "export count\t\t%u\n", pArena->sStatistics.uExportCount);
-	UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-
-	CHECK_SPACE(ui32StrLen);
-	i32Count = OSSNPrintf(pszStr, 100, "  segment Chain:\n");
-	UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-
-	if (pArena->pHeadSegment != IMG_NULL &&
-	    pArena->pHeadSegment->pPrevSegment != IMG_NULL)
-	{
-		CHECK_SPACE(ui32StrLen);
-		i32Count = OSSNPrintf(pszStr, 100, "  error: head boundary tag has invalid pPrevSegment\n");
-		UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-	}
-
-	if (pArena->pTailSegment != IMG_NULL &&
-	    pArena->pTailSegment->pNextSegment != IMG_NULL)
-	{
-		CHECK_SPACE(ui32StrLen);
-		i32Count = OSSNPrintf(pszStr, 100, "  error: tail boundary tag has invalid pNextSegment\n");
-		UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-	}
-
-	for (pBT=pArena->pHeadSegment; pBT!=IMG_NULL; pBT=pBT->pNextSegment)
-	{
-		CHECK_SPACE(ui32StrLen);
-		i32Count = OSSNPrintf(pszStr, 100, "\tbase=0x%x size=0x%x type=%s ref=%p\n",
-											 (IMG_UINT32) pBT->base,
-											 pBT->uSize,
-											 _BTType(pBT->type),
-											 pBT->psMapping);
-		UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-	}
-
-	*ppszStr = pszStr;
-	*pui32StrLen = ui32StrLen;
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR RA_GetStatsFreeMem(RA_ARENA *pArena,
-								IMG_CHAR **ppszStr, 
-								IMG_UINT32 *pui32StrLen)
-{
-	IMG_CHAR 	*pszStr = *ppszStr;
-	IMG_UINT32 	ui32StrLen = *pui32StrLen;
-	IMG_INT32	i32Count;
-	CHECK_SPACE(ui32StrLen);
-	i32Count = OSSNPrintf(pszStr, 100, "Bytes free: Arena %-30s: %u (0x%x)\n", pArena->name,
-		pArena->sStatistics.uFreeResourceCount,
-		pArena->sStatistics.uFreeResourceCount);
-	UPDATE_SPACE(pszStr, i32Count, ui32StrLen);
-	*ppszStr = pszStr;
-	*pui32StrLen = ui32StrLen;
-	
-	return PVRSRV_OK;
-}
-#endif
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/common/resman.c b/drivers/staging/cdv/pvr/services4/srvkm/common/resman.c
deleted file mode 100644
index 5088c7f..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/common/resman.c
+++ /dev/null
@@ -1,751 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "services_headers.h"
-#include "resman.h"
-
-#ifdef __linux__
-#include <linux/version.h>
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38))
-#ifndef AUTOCONF_INCLUDED
-#include <linux/config.h>
-#endif
-#endif
-
-#include <linux/sched.h>
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,9)
-#include <linux/hardirq.h>
-#else
-#include <asm/hardirq.h>
-#endif
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
-#include <linux/mutex.h>
-#else
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
-#include <linux/semaphore.h>
-#else
-#include <asm/semaphore.h>
-#endif
-#endif
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
-static DEFINE_MUTEX(lock);
-#define	DOWN(m) mutex_lock(m)
-#define	UP(m) mutex_unlock(m)
-#else
-static DECLARE_MUTEX(lock);
-#define	DOWN(m) down(m)
-#define	UP(m) up(m)
-#endif
-
-#define ACQUIRE_SYNC_OBJ  do {							\
-		if (in_interrupt()) { 							\
-			printk("ISR cannot take RESMAN mutex\n"); 	\
-			BUG(); 										\
-		} 												\
-		else DOWN(&lock); 								\
-} while (0)
-#define RELEASE_SYNC_OBJ UP(&lock)
-
-#else
-
-#define ACQUIRE_SYNC_OBJ
-#define RELEASE_SYNC_OBJ
-
-#endif
-
-#define RESMAN_SIGNATURE 0x12345678
-
-typedef struct _RESMAN_ITEM_
-{
-#ifdef DEBUG
-	IMG_UINT32				ui32Signature;
-#endif
-	struct _RESMAN_ITEM_	**ppsThis;	
-	struct _RESMAN_ITEM_	*psNext;	
-
-	IMG_UINT32				ui32Flags;	
-	IMG_UINT32				ui32ResType;
-
-	IMG_PVOID				pvParam;	
-	IMG_UINT32				ui32Param;	
-
-	RESMAN_FREE_FN			pfnFreeResource;
-} RESMAN_ITEM;
-
-
-typedef struct _RESMAN_CONTEXT_
-{
-#ifdef DEBUG
-	IMG_UINT32					ui32Signature;
-#endif
-	struct	_RESMAN_CONTEXT_	**ppsThis;
-	struct	_RESMAN_CONTEXT_	*psNext;
-
-	PVRSRV_PER_PROCESS_DATA		*psPerProc; 
-
-	RESMAN_ITEM					*psResItemList;
-
-} RESMAN_CONTEXT;
-
-
-typedef struct
-{
-	RESMAN_CONTEXT	*psContextList; 
-
-} RESMAN_LIST, *PRESMAN_LIST;	
-
-
-PRESMAN_LIST	gpsResList = IMG_NULL;
-
-#include "lists.h"	 
-
-static IMPLEMENT_LIST_ANY_VA(RESMAN_ITEM)
-static IMPLEMENT_LIST_ANY_VA_2(RESMAN_ITEM, IMG_BOOL, IMG_FALSE)
-static IMPLEMENT_LIST_INSERT(RESMAN_ITEM)
-static IMPLEMENT_LIST_REMOVE(RESMAN_ITEM)
-static IMPLEMENT_LIST_REVERSE(RESMAN_ITEM)
-
-static IMPLEMENT_LIST_REMOVE(RESMAN_CONTEXT)
-static IMPLEMENT_LIST_INSERT(RESMAN_CONTEXT)
-
-
-#define PRINT_RESLIST(x, y, z)
-
-static PVRSRV_ERROR FreeResourceByPtr(RESMAN_ITEM *psItem, IMG_BOOL bExecuteCallback, IMG_BOOL bForceCleanup);
-
-static PVRSRV_ERROR FreeResourceByCriteria(PRESMAN_CONTEXT	psContext,
-										   IMG_UINT32		ui32SearchCriteria,
-										   IMG_UINT32		ui32ResType,
-										   IMG_PVOID		pvParam,
-										   IMG_UINT32		ui32Param,
-										   IMG_BOOL			bExecuteCallback);
-
-
-#ifdef DEBUG
-	static IMG_VOID ValidateResList(PRESMAN_LIST psResList);
-	#define VALIDATERESLIST() ValidateResList(gpsResList)
-#else
-	#define VALIDATERESLIST()
-#endif
-
-
-
-
-
-
-PVRSRV_ERROR ResManInit(IMG_VOID)
-{
-	if (gpsResList == IMG_NULL)
-	{
-		
-		if (OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-						sizeof(*gpsResList),
-						(IMG_VOID **)&gpsResList, IMG_NULL,
-						"Resource Manager List") != PVRSRV_OK)
-		{
-			return PVRSRV_ERROR_OUT_OF_MEMORY;
-		}
-
-		
-		gpsResList->psContextList = IMG_NULL;
-
-		
-		VALIDATERESLIST();
-	}
-
-	return PVRSRV_OK;
-}
-
-
-IMG_VOID ResManDeInit(IMG_VOID)
-{
-	if (gpsResList != IMG_NULL)
-	{
-		
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(*gpsResList), gpsResList, IMG_NULL);
-		gpsResList = IMG_NULL;
-	}
-}
-
-
-PVRSRV_ERROR PVRSRVResManConnect(IMG_HANDLE			hPerProc,
-								 PRESMAN_CONTEXT	*phResManContext)
-{
-	PVRSRV_ERROR	eError;
-	PRESMAN_CONTEXT	psResManContext;
-
-	
-	ACQUIRE_SYNC_OBJ;
-
-	
-	VALIDATERESLIST();
-
-	
-	eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(*psResManContext),
-						(IMG_VOID **)&psResManContext, IMG_NULL,
-						"Resource Manager Context");
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRSRVResManConnect: ERROR allocating new RESMAN context struct"));
-
-		
-		VALIDATERESLIST();
-
-		
-		RELEASE_SYNC_OBJ;
-
-		return eError;
-	}
-
-#ifdef DEBUG
-	psResManContext->ui32Signature = RESMAN_SIGNATURE;
-#endif 
-	psResManContext->psResItemList	= IMG_NULL;
-	psResManContext->psPerProc = hPerProc;
-
-	
-	List_RESMAN_CONTEXT_Insert(&gpsResList->psContextList, psResManContext);
-
-	
-	VALIDATERESLIST();
-
-	
-	RELEASE_SYNC_OBJ;
-
-	*phResManContext = psResManContext;
-
-	return PVRSRV_OK;
-}
-
-
-IMG_VOID PVRSRVResManDisconnect(PRESMAN_CONTEXT psResManContext,
-								IMG_BOOL		bKernelContext)
-{
-	
-	ACQUIRE_SYNC_OBJ;
-
-	
-	VALIDATERESLIST();
-
-	
-	PRINT_RESLIST(gpsResList, psResManContext, IMG_TRUE);
-
-	
-
-	if (!bKernelContext)
-	{
-		
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_OS_USERMODE_MAPPING, 0, 0, IMG_TRUE);
-
-		
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_DMA_CLIENT_FIFO_DATA, 0, 0, IMG_TRUE);
-
-		
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_EVENT_OBJECT, 0, 0, IMG_TRUE);
-
-		
-		
-		List_RESMAN_ITEM_Reverse(&psResManContext->psResItemList);
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_MODIFY_SYNC_OPS, 0, 0, IMG_TRUE);
-		List_RESMAN_ITEM_Reverse(&psResManContext->psResItemList);  
-
-		
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_HW_RENDER_CONTEXT, 0, 0, IMG_TRUE);
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_HW_TRANSFER_CONTEXT, 0, 0, IMG_TRUE);
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_HW_2D_CONTEXT, 0, 0, IMG_TRUE);
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_TRANSFER_CONTEXT, 0, 0, IMG_TRUE);
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_SHARED_PB_DESC_CREATE_LOCK, 0, 0, IMG_TRUE);
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_SHARED_PB_DESC, 0, 0, IMG_TRUE);
-		
-		
-
-		
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_SYNC_INFO, 0, 0, IMG_TRUE);
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_DEVICECLASSMEM_MAPPING, 0, 0, IMG_TRUE);
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_DEVICEMEM_WRAP, 0, 0, IMG_TRUE);
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_DEVICEMEM_MAPPING, 0, 0, IMG_TRUE);
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_KERNEL_DEVICEMEM_ALLOCATION, 0, 0, IMG_TRUE);
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_DEVICEMEM_ALLOCATION, 0, 0, IMG_TRUE);
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_DEVICEMEM_CONTEXT, 0, 0, IMG_TRUE);
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_SHARED_MEM_INFO, 0, 0, IMG_TRUE);
-
-		
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_DISPLAYCLASS_SWAPCHAIN_REF, 0, 0, IMG_TRUE);
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_DISPLAYCLASS_DEVICE, 0, 0, IMG_TRUE);
-
-		
-		FreeResourceByCriteria(psResManContext, RESMAN_CRITERIA_RESTYPE, RESMAN_TYPE_BUFFERCLASS_DEVICE, 0, 0, IMG_TRUE);
-	}
-
-	
-	PVR_ASSERT(psResManContext->psResItemList == IMG_NULL);
-
-	
-	List_RESMAN_CONTEXT_Remove(psResManContext);
-
-	
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(RESMAN_CONTEXT), psResManContext, IMG_NULL);
-	
-
-
-	
-	VALIDATERESLIST();
-
-	
-	PRINT_RESLIST(gpsResList, psResManContext, IMG_FALSE);
-
-	
-	RELEASE_SYNC_OBJ;
-}
-
-
-PRESMAN_ITEM ResManRegisterRes(PRESMAN_CONTEXT	psResManContext,
-							   IMG_UINT32		ui32ResType,
-							   IMG_PVOID		pvParam,
-							   IMG_UINT32		ui32Param,
-							   RESMAN_FREE_FN	pfnFreeResource)
-{
-	PRESMAN_ITEM	psNewResItem;
-
-	PVR_ASSERT(psResManContext != IMG_NULL);
-	PVR_ASSERT(ui32ResType != 0);
-
-	if (psResManContext == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "ResManRegisterRes: invalid parameter - psResManContext"));
-		return (PRESMAN_ITEM) IMG_NULL;
-	}
-
-	
-	ACQUIRE_SYNC_OBJ;
-
-	
-	VALIDATERESLIST();
-
-	PVR_DPF((PVR_DBG_MESSAGE, "ResManRegisterRes: register resource "
-			"Context 0x%x, ResType 0x%x, pvParam 0x%x, ui32Param 0x%x, "
-			"FreeFunc %08X",
-			(IMG_UINTPTR_T)psResManContext,
-			ui32ResType,
-			(IMG_UINTPTR_T)pvParam,
-			ui32Param,
-			(IMG_UINTPTR_T)pfnFreeResource));
-
-	
-	if (OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-				   sizeof(RESMAN_ITEM), (IMG_VOID **)&psNewResItem,
-				   IMG_NULL,
-				   "Resource Manager Item") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "ResManRegisterRes: "
-				"ERROR allocating new resource item"));
-
-		
-		RELEASE_SYNC_OBJ;
-
-		return((PRESMAN_ITEM)IMG_NULL);
-	}
-
-	
-#ifdef DEBUG
-	psNewResItem->ui32Signature		= RESMAN_SIGNATURE;
-#endif 
-	psNewResItem->ui32ResType		= ui32ResType;
-	psNewResItem->pvParam			= pvParam;
-	psNewResItem->ui32Param			= ui32Param;
-	psNewResItem->pfnFreeResource	= pfnFreeResource;
-	psNewResItem->ui32Flags		    = 0;
-
-	
-	List_RESMAN_ITEM_Insert(&psResManContext->psResItemList, psNewResItem);
-
-	
-	VALIDATERESLIST();
-
-	
-	RELEASE_SYNC_OBJ;
-
-	return(psNewResItem);
-}
-
-PVRSRV_ERROR ResManFreeResByPtr(RESMAN_ITEM	*psResItem, IMG_BOOL bForceCleanup)
-{
-	PVRSRV_ERROR eError;
-
-	PVR_ASSERT(psResItem != IMG_NULL);
-
-	if (psResItem == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_MESSAGE, "ResManFreeResByPtr: NULL ptr - nothing to do"));
-		return PVRSRV_OK;
-	}
-
-	PVR_DPF((PVR_DBG_MESSAGE, "ResManFreeResByPtr: freeing resource at %08X",
-			(IMG_UINTPTR_T)psResItem));
-
-	
-	ACQUIRE_SYNC_OBJ;
-
-	
-	VALIDATERESLIST();
-
-	
-	eError = FreeResourceByPtr(psResItem, IMG_TRUE, bForceCleanup);
-
-	
-	VALIDATERESLIST();
-
-	
-	RELEASE_SYNC_OBJ;
-
-	return(eError);
-}
-
-
-PVRSRV_ERROR ResManFreeResByCriteria(PRESMAN_CONTEXT	psResManContext,
-									 IMG_UINT32			ui32SearchCriteria,
-									 IMG_UINT32			ui32ResType,
-									 IMG_PVOID			pvParam,
-									 IMG_UINT32			ui32Param)
-{
-	PVRSRV_ERROR	eError;
-
-	PVR_ASSERT(psResManContext != IMG_NULL);
-
-	
-	ACQUIRE_SYNC_OBJ;
-
-	
-	VALIDATERESLIST();
-
-	PVR_DPF((PVR_DBG_MESSAGE, "ResManFreeResByCriteria: "
-			"Context 0x%x, Criteria 0x%x, Type 0x%x, Addr 0x%x, Param 0x%x",
-			(IMG_UINTPTR_T)psResManContext, ui32SearchCriteria, ui32ResType,
-			(IMG_UINTPTR_T)pvParam, ui32Param));
-
-	
-	eError = FreeResourceByCriteria(psResManContext, ui32SearchCriteria,
-									ui32ResType, pvParam, ui32Param,
-									IMG_TRUE);
-
-	
-	VALIDATERESLIST();
-
-	
-	RELEASE_SYNC_OBJ;
-
-	return eError;
-}
-
-
-PVRSRV_ERROR ResManDissociateRes(RESMAN_ITEM		*psResItem,
-							 PRESMAN_CONTEXT	psNewResManContext)
-{
-	PVRSRV_ERROR eError = PVRSRV_OK;
-
-	PVR_ASSERT(psResItem != IMG_NULL);
-
-	if (psResItem == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "ResManDissociateRes: invalid parameter - psResItem"));
-		PVR_DBG_BREAK;
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-#ifdef DEBUG 
-	PVR_ASSERT(psResItem->ui32Signature == RESMAN_SIGNATURE);
-#endif
-
-	if (psNewResManContext != IMG_NULL)
-	{
-		
-		List_RESMAN_ITEM_Remove(psResItem);
-
-		
-		List_RESMAN_ITEM_Insert(&psNewResManContext->psResItemList, psResItem);
-
-	}
-	else
-	{
-		eError = FreeResourceByPtr(psResItem, IMG_FALSE, CLEANUP_WITH_POLL);
-		if(eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "ResManDissociateRes: failed to free resource by pointer"));
-			return eError;
-		}
-	}
-
-	return eError;
-}
-
-static IMG_BOOL ResManFindResourceByPtr_AnyVaCb(RESMAN_ITEM *psCurItem, va_list va)
-{
-	RESMAN_ITEM		*psItem;
-
-	psItem = va_arg(va, RESMAN_ITEM*);
-
-	return (IMG_BOOL)(psCurItem == psItem);
-}
-
-
-IMG_INTERNAL PVRSRV_ERROR ResManFindResourceByPtr(PRESMAN_CONTEXT	psResManContext,
-												  RESMAN_ITEM		*psItem)
-{
-	PVRSRV_ERROR	eResult;
-
-	PVR_ASSERT(psResManContext != IMG_NULL);
-	PVR_ASSERT(psItem != IMG_NULL);
-
-	if ((psItem == IMG_NULL) || (psResManContext == IMG_NULL))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "ResManFindResourceByPtr: invalid parameter"));
-		PVR_DBG_BREAK;
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-#ifdef DEBUG	
-	PVR_ASSERT(psItem->ui32Signature == RESMAN_SIGNATURE);
-#endif
-
-	
-	ACQUIRE_SYNC_OBJ;
-
-	PVR_DPF((PVR_DBG_MESSAGE,
-			"FindResourceByPtr: psItem=%08X, psItem->psNext=%08X",
-			(IMG_UINTPTR_T)psItem, (IMG_UINTPTR_T)psItem->psNext));
-
-	PVR_DPF((PVR_DBG_MESSAGE,
-			"FindResourceByPtr: Resource Ctx 0x%x, Type 0x%x, Addr 0x%x, "
-			"Param 0x%x, FnCall %08X, Flags 0x%x",
-			(IMG_UINTPTR_T)psResManContext,
-			psItem->ui32ResType,
-			(IMG_UINTPTR_T)psItem->pvParam,
-			psItem->ui32Param,
-			(IMG_UINTPTR_T)psItem->pfnFreeResource,
-			psItem->ui32Flags));
-
-	
-	if(List_RESMAN_ITEM_IMG_BOOL_Any_va(psResManContext->psResItemList,
-										&ResManFindResourceByPtr_AnyVaCb,
-										psItem))
-	{
-		eResult = PVRSRV_OK;
-	}
-	else
-	{
-		eResult = PVRSRV_ERROR_NOT_OWNER;
-	}
-
-	
-	RELEASE_SYNC_OBJ;
-
-	return eResult;
-}
-
-static PVRSRV_ERROR FreeResourceByPtr(RESMAN_ITEM	*psItem,
-									  IMG_BOOL		bExecuteCallback,
-									  IMG_BOOL		bForceCleanup)
-{
-	PVRSRV_ERROR eError = PVRSRV_OK;
-
-	PVR_ASSERT(psItem != IMG_NULL);
-
-	if (psItem == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "FreeResourceByPtr: invalid parameter"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-#ifdef DEBUG	
-	PVR_ASSERT(psItem->ui32Signature == RESMAN_SIGNATURE);
-#endif
-
-	PVR_DPF((PVR_DBG_MESSAGE,
-			"FreeResourceByPtr: psItem=%08X, psItem->psNext=%08X",
-			(IMG_UINTPTR_T)psItem, (IMG_UINTPTR_T)psItem->psNext));
-
-	PVR_DPF((PVR_DBG_MESSAGE,
-			"FreeResourceByPtr: Type 0x%x, Addr 0x%x, "
-			"Param 0x%x, FnCall %08X, Flags 0x%x",
-			psItem->ui32ResType,
-			(IMG_UINTPTR_T)psItem->pvParam, psItem->ui32Param,
-			(IMG_UINTPTR_T)psItem->pfnFreeResource, psItem->ui32Flags));
-
-	
-	List_RESMAN_ITEM_Remove(psItem);
-
-
-	
-	RELEASE_SYNC_OBJ;
-
-	
-	if (bExecuteCallback)
-	{
-		eError = psItem->pfnFreeResource(psItem->pvParam, psItem->ui32Param, bForceCleanup);
-	 	if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "FreeResourceByPtr: ERROR calling FreeResource function"));
-		}
-	}
-
-	
-	ACQUIRE_SYNC_OBJ;
-
-	
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(RESMAN_ITEM), psItem, IMG_NULL);
-
-	return(eError);
-}
-
-static IMG_VOID* FreeResourceByCriteria_AnyVaCb(RESMAN_ITEM *psCurItem, va_list va)
-{
-	IMG_UINT32 ui32SearchCriteria;
-	IMG_UINT32 ui32ResType;
-	IMG_PVOID pvParam;
-	IMG_UINT32 ui32Param;
-
-	ui32SearchCriteria = va_arg(va, IMG_UINT32);
-	ui32ResType = va_arg(va, IMG_UINT32);
-	pvParam = va_arg(va, IMG_PVOID);
-	ui32Param = va_arg(va, IMG_UINT32);
-
-	
-	if(
-	
-		(((ui32SearchCriteria & RESMAN_CRITERIA_RESTYPE) == 0UL) ||
-		(psCurItem->ui32ResType == ui32ResType))
-	&&
-	
-		(((ui32SearchCriteria & RESMAN_CRITERIA_PVOID_PARAM) == 0UL) ||
-			 (psCurItem->pvParam == pvParam))
-	&&
-	
-		(((ui32SearchCriteria & RESMAN_CRITERIA_UI32_PARAM) == 0UL) ||
-			 (psCurItem->ui32Param == ui32Param))
-		)
-	{
-		return psCurItem;
-	}
-	else
-	{
-		return IMG_NULL;
-	}
-}
-
-static PVRSRV_ERROR FreeResourceByCriteria(PRESMAN_CONTEXT	psResManContext,
-										   IMG_UINT32		ui32SearchCriteria,
-										   IMG_UINT32		ui32ResType,
-										   IMG_PVOID		pvParam,
-										   IMG_UINT32		ui32Param,
-										   IMG_BOOL			bExecuteCallback)
-{
-	PRESMAN_ITEM	psCurItem;
-	PVRSRV_ERROR	eError = PVRSRV_OK;
-
-	
-	
-	while((psCurItem = (PRESMAN_ITEM)
-				List_RESMAN_ITEM_Any_va(psResManContext->psResItemList,
-										&FreeResourceByCriteria_AnyVaCb,
-										ui32SearchCriteria,
-										ui32ResType,
-						 				pvParam,
-						 				ui32Param)) != IMG_NULL
-		  	&& eError == PVRSRV_OK)
-	{
-		eError = FreeResourceByPtr(psCurItem, bExecuteCallback, CLEANUP_WITH_POLL);
-	}
-
-	return eError;
-}
-
-
-#ifdef DEBUG
-static IMG_VOID ValidateResList(PRESMAN_LIST psResList)
-{
-	PRESMAN_ITEM	psCurItem, *ppsThisItem;
-	PRESMAN_CONTEXT	psCurContext, *ppsThisContext;
-
-	
-	if (psResList == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_MESSAGE, "ValidateResList: resman not initialised yet"));
-		return;
-	}
-
-	psCurContext = psResList->psContextList;
-	ppsThisContext = &psResList->psContextList;
-
-	
-	while(psCurContext != IMG_NULL)
-	{
-		
-		PVR_ASSERT(psCurContext->ui32Signature == RESMAN_SIGNATURE);
-		if (psCurContext->ppsThis != ppsThisContext)
-		{
-			PVR_DPF((PVR_DBG_WARNING,
-					"psCC=%08X psCC->ppsThis=%08X psCC->psNext=%08X ppsTC=%08X",
-					(IMG_UINTPTR_T)psCurContext,
-					(IMG_UINTPTR_T)psCurContext->ppsThis,
-					(IMG_UINTPTR_T)psCurContext->psNext,
-					(IMG_UINTPTR_T)ppsThisContext));
-			PVR_ASSERT(psCurContext->ppsThis == ppsThisContext);
-		}
-
-		
-		psCurItem = psCurContext->psResItemList;
-		ppsThisItem = &psCurContext->psResItemList;
-		while(psCurItem != IMG_NULL)
-		{
-			
-			PVR_ASSERT(psCurItem->ui32Signature == RESMAN_SIGNATURE);
-			if (psCurItem->ppsThis != ppsThisItem)
-			{
-				PVR_DPF((PVR_DBG_WARNING,
-						"psCurItem=%08X psCurItem->ppsThis=%08X psCurItem->psNext=%08X ppsThisItem=%08X",
-						(IMG_UINTPTR_T)psCurItem,
-						(IMG_UINTPTR_T)psCurItem->ppsThis,
-						(IMG_UINTPTR_T)psCurItem->psNext,
-						(IMG_UINTPTR_T)ppsThisItem));
-				PVR_ASSERT(psCurItem->ppsThis == ppsThisItem);
-			}
-
-			
-			ppsThisItem = &psCurItem->psNext;
-			psCurItem = psCurItem->psNext;
-		}
-
-		
-		ppsThisContext = &psCurContext->psNext;
-		psCurContext = psCurContext->psNext;
-	}
-}
-#endif 
-
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/.gitignore b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/.gitignore
deleted file mode 100644
index 2f89523..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin_pc_i686*
-tmp_pc_i686*
-host_pc_i686*
-*.o
-*.o.cmd
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/mmu.c b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/mmu.c
deleted file mode 100644
index 22b9ffb..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/mmu.c
+++ /dev/null
@@ -1,3696 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "sgxdefs.h"
-#include "sgxmmu.h"
-#include "services_headers.h"
-#include "buffer_manager.h"
-#include "hash.h"
-#include "ra.h"
-#include "pdump_km.h"
-#include "sgxapi_km.h"
-#include "sgxinfo.h"
-#include "sgxinfokm.h"
-#include "mmu.h"
-#include "sgxconfig.h"
-#include "sgx_bridge_km.h"
-#include "pdump_osfunc.h"
-
-#define UINT32_MAX_VALUE	0xFFFFFFFFUL
-
-#define SGX_MAX_PD_ENTRIES	(1<<(SGX_FEATURE_ADDRESS_SPACE_SIZE - SGX_MMU_PT_SHIFT - SGX_MMU_PAGE_SHIFT))
-
-#if defined(FIX_HW_BRN_31620)
-#define SGX_MMU_PDE_DUMMY_PAGE		(0)
-#define SGX_MMU_PTE_DUMMY_PAGE		(0)
-
-#define BRN31620_PT_ADDRESS_RANGE_SHIFT		22
-#define BRN31620_PT_ADDRESS_RANGE_SIZE		(1 << BRN31620_PT_ADDRESS_RANGE_SHIFT)
-
-#define BRN31620_PDE_CACHE_FILL_SHIFT		26
-#define BRN31620_PDE_CACHE_FILL_SIZE		(1 << BRN31620_PDE_CACHE_FILL_SHIFT)
-#define BRN31620_PDE_CACHE_FILL_MASK		(BRN31620_PDE_CACHE_FILL_SIZE - 1)
-
-#define BRN31620_PDES_PER_CACHE_LINE_SHIFT	(BRN31620_PDE_CACHE_FILL_SHIFT - BRN31620_PT_ADDRESS_RANGE_SHIFT)
-#define BRN31620_PDES_PER_CACHE_LINE_SIZE	(1 << BRN31620_PDES_PER_CACHE_LINE_SHIFT)
-#define BRN31620_PDES_PER_CACHE_LINE_MASK	(BRN31620_PDES_PER_CACHE_LINE_SIZE - 1)
-
-#define BRN31620_DUMMY_PAGE_OFFSET	(1 * SGX_MMU_PAGE_SIZE)
-#define BRN31620_DUMMY_PDE_INDEX	(BRN31620_DUMMY_PAGE_OFFSET / BRN31620_PT_ADDRESS_RANGE_SIZE)
-#define BRN31620_DUMMY_PTE_INDEX	((BRN31620_DUMMY_PAGE_OFFSET - (BRN31620_DUMMY_PDE_INDEX * BRN31620_PT_ADDRESS_RANGE_SIZE))/SGX_MMU_PAGE_SIZE)
-
-#define BRN31620_CACHE_FLUSH_SHIFT		(32 - BRN31620_PDE_CACHE_FILL_SHIFT)
-#define BRN31620_CACHE_FLUSH_SIZE		(1 << BRN31620_CACHE_FLUSH_SHIFT)
-
-#define BRN31620_CACHE_FLUSH_BITS_SHIFT		5
-#define BRN31620_CACHE_FLUSH_BITS_SIZE		(1 << BRN31620_CACHE_FLUSH_BITS_SHIFT)
-#define BRN31620_CACHE_FLUSH_BITS_MASK		(BRN31620_CACHE_FLUSH_BITS_SIZE - 1)
-
-#define BRN31620_CACHE_FLUSH_INDEX_BITS		(BRN31620_CACHE_FLUSH_SHIFT - BRN31620_CACHE_FLUSH_BITS_SHIFT)
-#define BRN31620_CACHE_FLUSH_INDEX_SIZE		(1 << BRN31620_CACHE_FLUSH_INDEX_BITS)
-
-#define BRN31620_DUMMY_PAGE_SIGNATURE	0xFEEBEE01
-#endif
-
-typedef struct _MMU_PT_INFO_
-{
-	
-	IMG_VOID *hPTPageOSMemHandle;
-	IMG_CPU_VIRTADDR PTPageCpuVAddr;
-	
-	
-	IMG_UINT32 ui32ValidPTECount;
-} MMU_PT_INFO;
-
-struct _MMU_CONTEXT_
-{
-	
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-
-	
-	IMG_CPU_VIRTADDR pvPDCpuVAddr;
-	IMG_DEV_PHYADDR sPDDevPAddr;
-
-	IMG_VOID *hPDOSMemHandle;
-
-	
-	MMU_PT_INFO *apsPTInfoList[SGX_MAX_PD_ENTRIES];
-
-	PVRSRV_SGXDEV_INFO *psDevInfo;
-
-#if defined(PDUMP)
-	IMG_UINT32 ui32PDumpMMUContextID;
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-	IMG_BOOL bPDumpActive;
-#endif
-#endif
-
-#if defined (FIX_HW_BRN_31620)
-	IMG_UINT32 ui32PDChangeMask[BRN31620_CACHE_FLUSH_INDEX_SIZE];
-	IMG_UINT32 ui32PDCacheRangeRefCount[BRN31620_CACHE_FLUSH_SIZE];
-	MMU_PT_INFO *apsPTInfoListSave[SGX_MAX_PD_ENTRIES];
-#endif
-	struct _MMU_CONTEXT_ *psNext;
-};
-
-struct _MMU_HEAP_
-{
-	
-	MMU_CONTEXT			*psMMUContext;
-
-	
-
-	
-	IMG_UINT32			ui32PDBaseIndex;
-	
-	IMG_UINT32			ui32PageTableCount;
-	
-	IMG_UINT32			ui32PTETotalUsable;
-	
-	IMG_UINT32			ui32PDEPageSizeCtrl;
-
-	
-
-	
-	IMG_UINT32			ui32DataPageSize;
-	
-	IMG_UINT32			ui32DataPageBitWidth;
-	
-	IMG_UINT32			ui32DataPageMask;
-
-	
-
-	
-	IMG_UINT32			ui32PTShift;
-	
-	IMG_UINT32			ui32PTBitWidth;
-	
-	IMG_UINT32			ui32PTMask;
-	
-	IMG_UINT32			ui32PTSize;
-	
-	IMG_UINT32			ui32PTNumEntriesAllocated;
-	
-	IMG_UINT32			ui32PTNumEntriesUsable;
-
-	
-
-	
-	IMG_UINT32			ui32PDShift;
-	
-	IMG_UINT32			ui32PDBitWidth;
-	
-	IMG_UINT32			ui32PDMask;
-
-	
-
-	RA_ARENA *psVMArena;
-	DEV_ARENA_DESCRIPTOR *psDevArena;
-#if defined(PDUMP)
-	PDUMP_MMU_ATTRIB sMMUAttrib;
-#endif
-};
-
-
-
-#if defined (SUPPORT_SGX_MMU_DUMMY_PAGE)
-#define DUMMY_DATA_PAGE_SIGNATURE	0xDEADBEEF
-#endif
-
-static IMG_VOID
-_DeferredFreePageTable (MMU_HEAP *pMMUHeap, IMG_UINT32 ui32PTIndex, IMG_BOOL bOSFreePT);
-
-#if defined(PDUMP)
-static IMG_VOID
-MMU_PDumpPageTables	(MMU_HEAP *pMMUHeap,
-					 IMG_DEV_VIRTADDR DevVAddr,
-					 IMG_SIZE_T uSize,
-					 IMG_BOOL bForUnmap,
-					 IMG_HANDLE hUniqueTag);
-#endif 
-
-#define PAGE_TEST					0
-#if PAGE_TEST
-static IMG_VOID PageTest(IMG_VOID* pMem, IMG_DEV_PHYADDR sDevPAddr);
-#endif
-
-#define PT_DEBUG 0
-#if PT_DEBUG
-static IMG_VOID DumpPT(MMU_PT_INFO *psPTInfoList)
-{
-	IMG_UINT32 *p = (IMG_UINT32*)psPTInfoList->PTPageCpuVAddr;
-	IMG_UINT32 i;
-
-	
-	for(i = 0; i < 1024; i += 8)
-	{
-		PVR_DPF((PVR_DBG_WARNING,
-				 "%08X %08X %08X %08X %08X %08X %08X %08X\n",
-				 p[i + 0], p[i + 1], p[i + 2], p[i + 3],
-				 p[i + 4], p[i + 5], p[i + 6], p[i + 7]));
-	}
-}
-
-static IMG_VOID CheckPT(MMU_PT_INFO *psPTInfoList)
-{
-	IMG_UINT32 *p = (IMG_UINT32*) psPTInfoList->PTPageCpuVAddr;
-	IMG_UINT32 i, ui32Count = 0;
-
-	
-	for(i = 0; i < 1024; i++)
-		if(p[i] & SGX_MMU_PTE_VALID)
-			ui32Count++;
-
-	if(psPTInfoList->ui32ValidPTECount != ui32Count)
-	{
-		PVR_DPF((PVR_DBG_WARNING, "ui32ValidPTECount: %u ui32Count: %u\n",
-				 psPTInfoList->ui32ValidPTECount, ui32Count));
-		DumpPT(psPTInfoList);
-		BUG();
-	}
-}
-#else 
-static INLINE IMG_VOID DumpPT(MMU_PT_INFO *psPTInfoList)
-{
-	PVR_UNREFERENCED_PARAMETER(psPTInfoList);
-}
-
-static INLINE IMG_VOID CheckPT(MMU_PT_INFO *psPTInfoList)
-{
-	PVR_UNREFERENCED_PARAMETER(psPTInfoList);
-}
-#endif 
-
-
-IMG_BOOL MMU_IsHeapShared(MMU_HEAP* pMMUHeap)
-{
-	switch(pMMUHeap->psDevArena->DevMemHeapType)
-	{
-		case DEVICE_MEMORY_HEAP_SHARED :
-		case DEVICE_MEMORY_HEAP_SHARED_EXPORTED :
-			return IMG_TRUE;
-		case DEVICE_MEMORY_HEAP_PERCONTEXT :
-		case DEVICE_MEMORY_HEAP_KERNEL :
-			return IMG_FALSE;
-		default:
-		{
-			PVR_DPF((PVR_DBG_ERROR, "MMU_IsHeapShared: ERROR invalid heap type"));
-			return IMG_FALSE;
-		}
-	}
-}
-
-#ifdef SUPPORT_SGX_MMU_BYPASS
-IMG_VOID
-EnableHostAccess (MMU_CONTEXT *psMMUContext)
-{
-	IMG_UINT32 ui32RegVal;
-	IMG_VOID *pvRegsBaseKM = psMMUContext->psDevInfo->pvRegsBaseKM;
-
-	
-
-
-	ui32RegVal = OSReadHWReg(pvRegsBaseKM, EUR_CR_BIF_CTRL);
-
-	OSWriteHWReg(pvRegsBaseKM,
-				EUR_CR_BIF_CTRL,
-				ui32RegVal | EUR_CR_BIF_CTRL_MMU_BYPASS_HOST_MASK);
-	
-	PDUMPREG(SGX_PDUMPREG_NAME, EUR_CR_BIF_CTRL, EUR_CR_BIF_CTRL_MMU_BYPASS_HOST_MASK);
-}
-
-IMG_VOID
-DisableHostAccess (MMU_CONTEXT *psMMUContext)
-{
-	IMG_UINT32 ui32RegVal;
-	IMG_VOID *pvRegsBaseKM = psMMUContext->psDevInfo->pvRegsBaseKM;
-
-	
-
-
-
-	OSWriteHWReg(pvRegsBaseKM,
-				EUR_CR_BIF_CTRL,
-				ui32RegVal & ~EUR_CR_BIF_CTRL_MMU_BYPASS_HOST_MASK);
-	
-	PDUMPREG(SGX_PDUMPREG_NAME, EUR_CR_BIF_CTRL, 0);
-}
-#endif
-
-
-#if defined(SGX_FEATURE_SYSTEM_CACHE)
-static IMG_VOID MMU_InvalidateSystemLevelCache(PVRSRV_SGXDEV_INFO *psDevInfo)
-{
-	#if defined(SGX_FEATURE_MP)
-	psDevInfo->ui32CacheControl |= SGXMKIF_CC_INVAL_BIF_SL;
-	#else
-	
-	PVR_UNREFERENCED_PARAMETER(psDevInfo);
-	#endif 
-}
-#endif 
-
-IMG_VOID MMU_InvalidateDirectoryCache(PVRSRV_SGXDEV_INFO *psDevInfo)
-{
-	psDevInfo->ui32CacheControl |= SGXMKIF_CC_INVAL_BIF_PD;
-	#if defined(SGX_FEATURE_SYSTEM_CACHE)
-	MMU_InvalidateSystemLevelCache(psDevInfo);
-	#endif 
-}
-
-
-static IMG_VOID MMU_InvalidatePageTableCache(PVRSRV_SGXDEV_INFO *psDevInfo)
-{
-	psDevInfo->ui32CacheControl |= SGXMKIF_CC_INVAL_BIF_PT;
-	#if defined(SGX_FEATURE_SYSTEM_CACHE)
-	MMU_InvalidateSystemLevelCache(psDevInfo);
-	#endif 
-}
-
-#if defined(FIX_HW_BRN_31620)
-static IMG_VOID BRN31620InvalidatePageTableEntry(MMU_CONTEXT *psMMUContext, IMG_UINT32 ui32PDIndex, IMG_UINT32 ui32PTIndex, IMG_UINT32 *pui32PTE)
-{
-	PVRSRV_SGXDEV_INFO *psDevInfo = psMMUContext->psDevInfo;
-
-	
-	if (((ui32PDIndex % (BRN31620_PDE_CACHE_FILL_SIZE/BRN31620_PT_ADDRESS_RANGE_SIZE)) == BRN31620_DUMMY_PDE_INDEX)
-		&& (ui32PTIndex == BRN31620_DUMMY_PTE_INDEX))
-	{
-		*pui32PTE = (psDevInfo->sBRN31620DummyPageDevPAddr.uiAddr>>SGX_MMU_PTE_ADDR_ALIGNSHIFT)
-								| SGX_MMU_PTE_DUMMY_PAGE
-								| SGX_MMU_PTE_READONLY
-								| SGX_MMU_PTE_VALID;
-	}
-	else
-	{
-		*pui32PTE = 0;
-	}
-}
-
-static IMG_BOOL BRN31620FreePageTable(MMU_HEAP *psMMUHeap, IMG_UINT32 ui32PDIndex)
-{
-	MMU_CONTEXT *psMMUContext = psMMUHeap->psMMUContext;
-	PVRSRV_SGXDEV_INFO *psDevInfo = psMMUContext->psDevInfo;
-	IMG_UINT32 ui32PDCacheLine = ui32PDIndex >> BRN31620_PDES_PER_CACHE_LINE_SHIFT;
-	IMG_UINT32 bFreePTs = IMG_FALSE;
-	IMG_UINT32 *pui32Tmp;
-
-	PVR_ASSERT(psMMUHeap != IMG_NULL);
-
-	
-	PVR_ASSERT(psMMUContext->apsPTInfoListSave[ui32PDIndex] == IMG_NULL);
-
-	psMMUContext->apsPTInfoListSave[ui32PDIndex] = psMMUContext->apsPTInfoList[ui32PDIndex];
-	psMMUContext->apsPTInfoList[ui32PDIndex] = IMG_NULL;
-
-	
-	if (--psMMUContext->ui32PDCacheRangeRefCount[ui32PDCacheLine] == 0)
-	{
-		IMG_UINT32 i;
-		IMG_UINT32 ui32PDIndexStart = ui32PDCacheLine * BRN31620_PDES_PER_CACHE_LINE_SIZE;
-		IMG_UINT32 ui32PDIndexEnd = ui32PDIndexStart + BRN31620_PDES_PER_CACHE_LINE_SIZE;
-		IMG_UINT32 ui32PDBitMaskIndex, ui32PDBitMaskShift;
-
-		
-		for (i=ui32PDIndexStart;i<ui32PDIndexEnd;i++)
-		{
-			
-			psMMUContext->apsPTInfoList[i] = psMMUContext->apsPTInfoListSave[i];
-			psMMUContext->apsPTInfoListSave[i] = IMG_NULL;
-			_DeferredFreePageTable(psMMUHeap, i - psMMUHeap->ui32PDBaseIndex, IMG_TRUE);
-		}
-
-		ui32PDBitMaskIndex = ui32PDCacheLine >> BRN31620_CACHE_FLUSH_BITS_SHIFT;
-		ui32PDBitMaskShift = ui32PDCacheLine & BRN31620_CACHE_FLUSH_BITS_MASK;
-
-		
-		if (MMU_IsHeapShared(psMMUHeap))
-		{
-			
-			MMU_CONTEXT *psMMUContextWalker = (MMU_CONTEXT*) psMMUHeap->psMMUContext->psDevInfo->pvMMUContextList;
-
-			while(psMMUContextWalker)
-			{
-				psMMUContextWalker->ui32PDChangeMask[ui32PDBitMaskIndex] |= 1 << ui32PDBitMaskShift;
-
-				
-				pui32Tmp = (IMG_UINT32 *) psMMUContextWalker->pvPDCpuVAddr;
-				pui32Tmp[ui32PDIndexStart + BRN31620_DUMMY_PDE_INDEX] = (psDevInfo->sBRN31620DummyPTDevPAddr.uiAddr>>SGX_MMU_PDE_ADDR_ALIGNSHIFT)
-												| SGX_MMU_PDE_PAGE_SIZE_4K
-												| SGX_MMU_PDE_DUMMY_PAGE
-												| SGX_MMU_PDE_VALID;
-
-				PDUMPCOMMENT("BRN31620 Re-wire dummy PT due to releasing PT allocation block");
-				PDUMPPDENTRIES(&psMMUHeap->sMMUAttrib, psMMUContextWalker->hPDOSMemHandle, (IMG_VOID*)&pui32Tmp[ui32PDIndexStart + BRN31620_DUMMY_PDE_INDEX], sizeof(IMG_UINT32), 0, IMG_FALSE, PDUMP_PT_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-				psMMUContextWalker = psMMUContextWalker->psNext;
-			}
-		}
-		else
-		{
-			psMMUContext->ui32PDChangeMask[ui32PDBitMaskIndex] |= 1 << ui32PDBitMaskShift;
-
-			
-			pui32Tmp = (IMG_UINT32 *) psMMUContext->pvPDCpuVAddr;
-			pui32Tmp[ui32PDIndexStart + BRN31620_DUMMY_PDE_INDEX] = (psDevInfo->sBRN31620DummyPTDevPAddr.uiAddr>>SGX_MMU_PDE_ADDR_ALIGNSHIFT)
-											| SGX_MMU_PDE_PAGE_SIZE_4K
-											| SGX_MMU_PDE_DUMMY_PAGE
-											| SGX_MMU_PDE_VALID;
-
-			PDUMPCOMMENT("BRN31620 Re-wire dummy PT due to releasing PT allocation block");
-			PDUMPPDENTRIES(&psMMUHeap->sMMUAttrib, psMMUContext->hPDOSMemHandle, (IMG_VOID*)&pui32Tmp[ui32PDIndexStart + BRN31620_DUMMY_PDE_INDEX], sizeof(IMG_UINT32), 0, IMG_FALSE, PDUMP_PT_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-		}
-		
-		bFreePTs = IMG_TRUE;
-	}
-
-	return bFreePTs;
-}
-#endif
-
-static IMG_BOOL
-_AllocPageTableMemory (MMU_HEAP *pMMUHeap,
-						MMU_PT_INFO *psPTInfoList,
-						IMG_DEV_PHYADDR	*psDevPAddr)
-{
-	IMG_DEV_PHYADDR	sDevPAddr;
-	IMG_CPU_PHYADDR sCpuPAddr;
-
-	
-
-
-	if(pMMUHeap->psDevArena->psDeviceMemoryHeapInfo->psLocalDevMemArena == IMG_NULL)
-	{
-		
-		if (OSAllocPages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-						   pMMUHeap->ui32PTSize,
-						   SGX_MMU_PAGE_SIZE,
-						   (IMG_VOID **)&psPTInfoList->PTPageCpuVAddr,
-						   &psPTInfoList->hPTPageOSMemHandle) != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "_AllocPageTableMemory: ERROR call to OSAllocPages failed"));
-			return IMG_FALSE;
-		}
-
-		
-		if(psPTInfoList->PTPageCpuVAddr)
-		{
-			sCpuPAddr = OSMapLinToCPUPhys(psPTInfoList->hPTPageOSMemHandle,
-										  psPTInfoList->PTPageCpuVAddr);
-		}
-		else
-		{
-			
-			sCpuPAddr = OSMemHandleToCpuPAddr(psPTInfoList->hPTPageOSMemHandle, 0);
-		}
-
-		sDevPAddr = SysCpuPAddrToDevPAddr (PVRSRV_DEVICE_TYPE_SGX, sCpuPAddr);
-	}
-	else
-	{
-		IMG_SYS_PHYADDR sSysPAddr;
-
-		
-
-
-		
-		if(RA_Alloc(pMMUHeap->psDevArena->psDeviceMemoryHeapInfo->psLocalDevMemArena,
-					SGX_MMU_PAGE_SIZE,
-					IMG_NULL,
-					IMG_NULL,
-					0,
-					SGX_MMU_PAGE_SIZE,
-					0,
-					&(sSysPAddr.uiAddr))!= IMG_TRUE)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "_AllocPageTableMemory: ERROR call to RA_Alloc failed"));
-			return IMG_FALSE;
-		}
-
-		
-		sCpuPAddr = SysSysPAddrToCpuPAddr(sSysPAddr);
-		
-		psPTInfoList->PTPageCpuVAddr = OSMapPhysToLin(sCpuPAddr,
-													SGX_MMU_PAGE_SIZE,
-													PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-													&psPTInfoList->hPTPageOSMemHandle);
-		if(!psPTInfoList->PTPageCpuVAddr)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "_AllocPageTableMemory: ERROR failed to map page tables"));
-			return IMG_FALSE;
-		}
-
-		
-		sDevPAddr = SysCpuPAddrToDevPAddr (PVRSRV_DEVICE_TYPE_SGX, sCpuPAddr);
-
-		#if PAGE_TEST
-		PageTest(psPTInfoList->PTPageCpuVAddr, sDevPAddr);
-		#endif
-	}
-
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
-	{
-		IMG_UINT32 *pui32Tmp;
-		IMG_UINT32 i;
-
-		pui32Tmp = (IMG_UINT32*)psPTInfoList->PTPageCpuVAddr;
-		
-		for(i=0; i<pMMUHeap->ui32PTNumEntriesUsable; i++)
-		{
-			pui32Tmp[i] = (pMMUHeap->psMMUContext->psDevInfo->sDummyDataDevPAddr.uiAddr>>SGX_MMU_PTE_ADDR_ALIGNSHIFT)
-						| SGX_MMU_PTE_VALID;
-		}
-		
-		for(; i<pMMUHeap->ui32PTNumEntriesAllocated; i++)
-		{
-			pui32Tmp[i] = 0;
-		}
-	}
-#else
-	
-	OSMemSet(psPTInfoList->PTPageCpuVAddr, 0, pMMUHeap->ui32PTSize);
-#endif
-
-#if defined(PDUMP)
-	{
-		IMG_UINT32 ui32Flags = 0;
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-		
-		ui32Flags |= ( MMU_IsHeapShared(pMMUHeap) ) ? PDUMP_FLAGS_PERSISTENT : 0;
-#endif
-		
-		PDUMPMALLOCPAGETABLE(&pMMUHeap->psMMUContext->psDeviceNode->sDevId, psPTInfoList->hPTPageOSMemHandle, 0, psPTInfoList->PTPageCpuVAddr, pMMUHeap->ui32PTSize, ui32Flags, PDUMP_PT_UNIQUETAG);
-		
-		PDUMPMEMPTENTRIES(&pMMUHeap->sMMUAttrib, psPTInfoList->hPTPageOSMemHandle, psPTInfoList->PTPageCpuVAddr, pMMUHeap->ui32PTSize, ui32Flags, IMG_TRUE, PDUMP_PT_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-	}
-#endif
-	
-	
-	*psDevPAddr = sDevPAddr;
-
-	return IMG_TRUE;
-}
-
-
-static IMG_VOID
-_FreePageTableMemory (MMU_HEAP *pMMUHeap, MMU_PT_INFO *psPTInfoList)
-{
-	
-
-
-
-	if(pMMUHeap->psDevArena->psDeviceMemoryHeapInfo->psLocalDevMemArena == IMG_NULL)
-	{
-		
-		OSFreePages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-					  pMMUHeap->ui32PTSize,
-					  psPTInfoList->PTPageCpuVAddr,
-					  psPTInfoList->hPTPageOSMemHandle);
-	}
-	else
-	{
-		IMG_SYS_PHYADDR sSysPAddr;
-		IMG_CPU_PHYADDR sCpuPAddr;
-
-		
-		sCpuPAddr = OSMapLinToCPUPhys(psPTInfoList->hPTPageOSMemHandle, 
-									  psPTInfoList->PTPageCpuVAddr);
-		sSysPAddr = SysCpuPAddrToSysPAddr (sCpuPAddr);
-
-		
-		
-		OSUnMapPhysToLin(psPTInfoList->PTPageCpuVAddr,
-                         SGX_MMU_PAGE_SIZE,
-                         PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-                         psPTInfoList->hPTPageOSMemHandle);
-
-		
-
-
-		RA_Free (pMMUHeap->psDevArena->psDeviceMemoryHeapInfo->psLocalDevMemArena, sSysPAddr.uiAddr, IMG_FALSE);
-	}
-}
-
-
-
-static IMG_VOID
-_DeferredFreePageTable (MMU_HEAP *pMMUHeap, IMG_UINT32 ui32PTIndex, IMG_BOOL bOSFreePT)
-{
-	IMG_UINT32 *pui32PDEntry;
-	IMG_UINT32 i;
-	IMG_UINT32 ui32PDIndex;
-	SYS_DATA *psSysData;
-	MMU_PT_INFO **ppsPTInfoList;
-
-	SysAcquireData(&psSysData);
-
-	
-	ui32PDIndex = pMMUHeap->psDevArena->BaseDevVAddr.uiAddr >> pMMUHeap->ui32PDShift;
-
-	
-	ppsPTInfoList = &pMMUHeap->psMMUContext->apsPTInfoList[ui32PDIndex];
-
-	{
-#if PT_DEBUG
-		if(ppsPTInfoList[ui32PTIndex] && ppsPTInfoList[ui32PTIndex]->ui32ValidPTECount > 0)
-		{
-			DumpPT(ppsPTInfoList[ui32PTIndex]);
-			
-		}
-#endif
-
-		
-		PVR_ASSERT(ppsPTInfoList[ui32PTIndex] == IMG_NULL || ppsPTInfoList[ui32PTIndex]->ui32ValidPTECount == 0);
-	}
-
-#if defined(PDUMP)
-	{
-		IMG_UINT32 ui32Flags = 0;
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-		ui32Flags |= ( MMU_IsHeapShared(pMMUHeap) ) ? PDUMP_FLAGS_PERSISTENT : 0;
-#endif
-		
-		PDUMPCOMMENT("Free page table (page count == %08X)", pMMUHeap->ui32PageTableCount);
-		if(ppsPTInfoList[ui32PTIndex] && ppsPTInfoList[ui32PTIndex]->PTPageCpuVAddr)
-		{
-			PDUMPFREEPAGETABLE(&pMMUHeap->psMMUContext->psDeviceNode->sDevId, ppsPTInfoList[ui32PTIndex]->hPTPageOSMemHandle, ppsPTInfoList[ui32PTIndex]->PTPageCpuVAddr, pMMUHeap->ui32PTSize, ui32Flags, PDUMP_PT_UNIQUETAG);
-		}
-	}
-#endif
-
-	switch(pMMUHeap->psDevArena->DevMemHeapType)
-	{
-		case DEVICE_MEMORY_HEAP_SHARED :
-		case DEVICE_MEMORY_HEAP_SHARED_EXPORTED :
-		{
-			
-			MMU_CONTEXT *psMMUContext = (MMU_CONTEXT*)pMMUHeap->psMMUContext->psDevInfo->pvMMUContextList;
-
-			while(psMMUContext)
-			{
-				
-				pui32PDEntry = (IMG_UINT32*)psMMUContext->pvPDCpuVAddr;
-				pui32PDEntry += ui32PDIndex;
-
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
-				
-				pui32PDEntry[ui32PTIndex] = (psMMUContext->psDevInfo->sDummyPTDevPAddr.uiAddr
-											>>SGX_MMU_PDE_ADDR_ALIGNSHIFT)
-											| SGX_MMU_PDE_PAGE_SIZE_4K
-											| SGX_MMU_PDE_VALID;
-#else
-				
-				if(bOSFreePT)
-				{
-					pui32PDEntry[ui32PTIndex] = 0;
-				}
-#endif
-			#if defined(PDUMP)
-				
-			#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-				if(psMMUContext->bPDumpActive)
-			#endif
-				{
-					PDUMPPDENTRIES(&pMMUHeap->sMMUAttrib, psMMUContext->hPDOSMemHandle, (IMG_VOID*)&pui32PDEntry[ui32PTIndex], sizeof(IMG_UINT32), 0, IMG_FALSE, PDUMP_PT_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-				}
-			#endif
-				
-				psMMUContext = psMMUContext->psNext;
-			}
-			break;
-		}
-		case DEVICE_MEMORY_HEAP_PERCONTEXT :
-		case DEVICE_MEMORY_HEAP_KERNEL :
-		{
-			
-			pui32PDEntry = (IMG_UINT32*)pMMUHeap->psMMUContext->pvPDCpuVAddr;
-			pui32PDEntry += ui32PDIndex;
-
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
-			
-			pui32PDEntry[ui32PTIndex] = (pMMUHeap->psMMUContext->psDevInfo->sDummyPTDevPAddr.uiAddr
-										>>SGX_MMU_PDE_ADDR_ALIGNSHIFT)
-										| SGX_MMU_PDE_PAGE_SIZE_4K
-										| SGX_MMU_PDE_VALID;
-#else
-			
-			if(bOSFreePT)
-			{
-				pui32PDEntry[ui32PTIndex] = 0;
-			}
-#endif
-
-			
-			PDUMPPDENTRIES(&pMMUHeap->sMMUAttrib, pMMUHeap->psMMUContext->hPDOSMemHandle, (IMG_VOID*)&pui32PDEntry[ui32PTIndex], sizeof(IMG_UINT32), 0, IMG_FALSE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-			break;
-		}
-		default:
-		{
-			PVR_DPF((PVR_DBG_ERROR, "_DeferredFreePagetable: ERROR invalid heap type"));
-			return;
-		}
-	}
-
-	
-	if(ppsPTInfoList[ui32PTIndex] != IMG_NULL)
-	{
-		if(ppsPTInfoList[ui32PTIndex]->PTPageCpuVAddr != IMG_NULL)
-		{
-			IMG_PUINT32 pui32Tmp;
-
-			pui32Tmp = (IMG_UINT32*)ppsPTInfoList[ui32PTIndex]->PTPageCpuVAddr;
-
-			
-			for(i=0;
-				(i<pMMUHeap->ui32PTETotalUsable) && (i<pMMUHeap->ui32PTNumEntriesUsable);
-				 i++)
-			{
-				
-				pui32Tmp[i] = 0;
-			}
-
-			
-
-			if(bOSFreePT)
-			{
-				_FreePageTableMemory(pMMUHeap, ppsPTInfoList[ui32PTIndex]);
-			}
-
-			
-
-
-			pMMUHeap->ui32PTETotalUsable -= i;
-		}
-		else
-		{
-			
-			pMMUHeap->ui32PTETotalUsable -= pMMUHeap->ui32PTNumEntriesUsable;
-		}
-
-		if(bOSFreePT)
-		{
-			
-			OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-						sizeof(MMU_PT_INFO),
-						ppsPTInfoList[ui32PTIndex],
-						IMG_NULL);
-			ppsPTInfoList[ui32PTIndex] = IMG_NULL;
-		}
-	}
-	else
-	{
-		
-		pMMUHeap->ui32PTETotalUsable -= pMMUHeap->ui32PTNumEntriesUsable;
-	}
-
-	PDUMPCOMMENT("Finished free page table (page count == %08X)", pMMUHeap->ui32PageTableCount);
-}
-
-static IMG_VOID
-_DeferredFreePageTables (MMU_HEAP *pMMUHeap)
-{
-	IMG_UINT32 i;
-#if defined(FIX_HW_BRN_31620)
-	MMU_CONTEXT *psMMUContext = pMMUHeap->psMMUContext;
-	IMG_BOOL bInvalidateDirectoryCache = IMG_FALSE;
-	IMG_UINT32 ui32PDIndex;
-	IMG_UINT32 *pui32Tmp;
-	IMG_UINT32 j;
-#endif
-#if defined(PDUMP)
-	PDUMPCOMMENT("Free PTs (MMU Context ID == %u, PDBaseIndex == %u, PT count == 0x%x)",
-			pMMUHeap->psMMUContext->ui32PDumpMMUContextID,
-			pMMUHeap->ui32PDBaseIndex,
-			pMMUHeap->ui32PageTableCount);
-#endif
-#if defined(FIX_HW_BRN_31620)
-	for(i=0; i<pMMUHeap->ui32PageTableCount; i++)
-	{
-		ui32PDIndex = (pMMUHeap->ui32PDBaseIndex + i);
-
-		if (psMMUContext->apsPTInfoList[ui32PDIndex])
-		{
-			if (psMMUContext->apsPTInfoList[ui32PDIndex]->PTPageCpuVAddr)
-			{
-				
-				for (j=0;j<SGX_MMU_PT_SIZE;j++)
-				{
-					pui32Tmp = (IMG_UINT32 *) psMMUContext->apsPTInfoList[ui32PDIndex]->PTPageCpuVAddr;
-					BRN31620InvalidatePageTableEntry(psMMUContext, ui32PDIndex, j, &pui32Tmp[j]);
-				}
-			}
-			
-			if (BRN31620FreePageTable(pMMUHeap, ui32PDIndex) == IMG_TRUE)
-			{
-				bInvalidateDirectoryCache = IMG_TRUE;
-			}
-		}
-	}
-
-	
-	if (bInvalidateDirectoryCache)
-	{
-		MMU_InvalidateDirectoryCache(pMMUHeap->psMMUContext->psDevInfo);
-	}
-	else
-	{
-		MMU_InvalidatePageTableCache(pMMUHeap->psMMUContext->psDevInfo);
-	}
-#else
-	for(i=0; i<pMMUHeap->ui32PageTableCount; i++)
-	{
-		_DeferredFreePageTable(pMMUHeap, i, IMG_TRUE);
-	}
-	MMU_InvalidateDirectoryCache(pMMUHeap->psMMUContext->psDevInfo);
-#endif
-}
-
-
-static IMG_BOOL
-_DeferredAllocPagetables(MMU_HEAP *pMMUHeap, IMG_DEV_VIRTADDR DevVAddr, IMG_UINT32 ui32Size)
-{
-	IMG_UINT32 ui32PageTableCount;
-	IMG_UINT32 ui32PDIndex;
-	IMG_UINT32 i;
-	IMG_UINT32 *pui32PDEntry;
-	MMU_PT_INFO **ppsPTInfoList;
-	SYS_DATA *psSysData;
-	IMG_DEV_VIRTADDR sHighDevVAddr;
-#if defined(FIX_HW_BRN_31620)
-	IMG_BOOL bFlushSystemCache = IMG_FALSE;
-	IMG_BOOL bSharedPT = IMG_FALSE;
-	IMG_DEV_VIRTADDR sDevVAddrRequestStart;
-	IMG_DEV_VIRTADDR sDevVAddrRequestEnd;
-	IMG_UINT32 ui32PDRequestStart;
-	IMG_UINT32 ui32PDRequestEnd;
-	IMG_UINT32 ui32ModifiedCachelines[BRN31620_CACHE_FLUSH_INDEX_SIZE];
-#endif
-
-	
-#if SGX_FEATURE_ADDRESS_SPACE_SIZE < 32
-	PVR_ASSERT(DevVAddr.uiAddr < (1<<SGX_FEATURE_ADDRESS_SPACE_SIZE));
-#endif
-
-	
-	SysAcquireData(&psSysData);
-
-	
-	ui32PDIndex = DevVAddr.uiAddr >> pMMUHeap->ui32PDShift;
-
-	
-	
-	if((UINT32_MAX_VALUE - DevVAddr.uiAddr)
-		< (ui32Size + pMMUHeap->ui32DataPageMask + pMMUHeap->ui32PTMask))
-	{
-		
-		sHighDevVAddr.uiAddr = UINT32_MAX_VALUE;
-	}
-	else
-	{
-		sHighDevVAddr.uiAddr = DevVAddr.uiAddr
-								+ ui32Size
-								+ pMMUHeap->ui32DataPageMask
-								+ pMMUHeap->ui32PTMask;
-	}
-
-	ui32PageTableCount = sHighDevVAddr.uiAddr >> pMMUHeap->ui32PDShift;
-
-	
-	if (ui32PageTableCount == 0)
-		ui32PageTableCount = 1024;
-
-#if defined(FIX_HW_BRN_31620)
-	for (i=0;i<BRN31620_CACHE_FLUSH_INDEX_SIZE;i++)
-	{
-		ui32ModifiedCachelines[i] = 0;
-	}
-
-	
-	
-	
-	sDevVAddrRequestStart = DevVAddr;
-	ui32PDRequestStart = ui32PDIndex;
-	sDevVAddrRequestEnd = sHighDevVAddr;
-	ui32PDRequestEnd = ui32PageTableCount - 1;
-
-	
-	DevVAddr.uiAddr = DevVAddr.uiAddr & (~BRN31620_PDE_CACHE_FILL_MASK);
-
-	
-	sHighDevVAddr.uiAddr = ((sHighDevVAddr.uiAddr + (BRN31620_PDE_CACHE_FILL_SIZE - 1)) & (~BRN31620_PDE_CACHE_FILL_MASK));
-
-	ui32PDIndex = DevVAddr.uiAddr >> pMMUHeap->ui32PDShift;
-	ui32PageTableCount = sHighDevVAddr.uiAddr >> pMMUHeap->ui32PDShift;
-
-	
-	if (ui32PageTableCount == 0)
-		ui32PageTableCount = 1024;
-#endif
-
-	ui32PageTableCount -= ui32PDIndex;
-
-	
-	pui32PDEntry = (IMG_UINT32*)pMMUHeap->psMMUContext->pvPDCpuVAddr;
-	pui32PDEntry += ui32PDIndex;
-
-	
-	ppsPTInfoList = &pMMUHeap->psMMUContext->apsPTInfoList[ui32PDIndex];
-
-#if defined(PDUMP)
-	{
-		IMG_UINT32 ui32Flags = 0;
-		
-		
-		if( MMU_IsHeapShared(pMMUHeap) )
-		{
-			ui32Flags |= PDUMP_FLAGS_CONTINUOUS;
-		}
-		PDUMPCOMMENTWITHFLAGS(ui32Flags, "Alloc PTs (MMU Context ID == %u, PDBaseIndex == %u, Size == 0x%x)",
-				pMMUHeap->psMMUContext->ui32PDumpMMUContextID,
-				pMMUHeap->ui32PDBaseIndex,
-				ui32Size);
-		PDUMPCOMMENTWITHFLAGS(ui32Flags, "Alloc page table (page count == %08X)", ui32PageTableCount);
-		PDUMPCOMMENTWITHFLAGS(ui32Flags, "Page directory mods (page count == %08X)", ui32PageTableCount);
-	}
-#endif
-	
-	for(i=0; i<ui32PageTableCount; i++)
-	{
-		if(ppsPTInfoList[i] == IMG_NULL)
-		{
-#if defined(FIX_HW_BRN_31620)
-			
-			if (pMMUHeap->psMMUContext->apsPTInfoListSave[ui32PDIndex + i])
-			{
-				
-				if (((ui32PDIndex + i) >= ui32PDRequestStart) && ((ui32PDIndex + i) <= ui32PDRequestEnd))
-				{
-					IMG_UINT32 ui32PDCacheLine = (ui32PDIndex + i) >> BRN31620_PDES_PER_CACHE_LINE_SHIFT;
-
-					ppsPTInfoList[i] = pMMUHeap->psMMUContext->apsPTInfoListSave[ui32PDIndex + i];
-					pMMUHeap->psMMUContext->apsPTInfoListSave[ui32PDIndex + i] = IMG_NULL;
-
-					pMMUHeap->psMMUContext->ui32PDCacheRangeRefCount[ui32PDCacheLine]++;
-				}
-			}
-			else
-			{
-#endif
-			OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-						 sizeof (MMU_PT_INFO),
-						 (IMG_VOID **)&ppsPTInfoList[i], IMG_NULL,
-						 "MMU Page Table Info");
-			if (ppsPTInfoList[i] == IMG_NULL)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "_DeferredAllocPagetables: ERROR call to OSAllocMem failed"));
-				return IMG_FALSE;
-			}
-			OSMemSet (ppsPTInfoList[i], 0, sizeof(MMU_PT_INFO));
-#if defined(FIX_HW_BRN_31620)
-			}
-#endif
-		}
-#if defined(FIX_HW_BRN_31620)
-		
-		if (ppsPTInfoList[i])
-		{
-#endif
-		if(ppsPTInfoList[i]->hPTPageOSMemHandle == IMG_NULL
-		&& ppsPTInfoList[i]->PTPageCpuVAddr == IMG_NULL)
-		{
-			IMG_DEV_PHYADDR	sDevPAddr;
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
-			IMG_UINT32 *pui32Tmp;
-			IMG_UINT32 j;
-#else
-#if !defined(FIX_HW_BRN_31620)
-			
-			PVR_ASSERT(pui32PDEntry[i] == 0);
-#endif
-#endif
-			if(_AllocPageTableMemory (pMMUHeap, ppsPTInfoList[i], &sDevPAddr) != IMG_TRUE)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "_DeferredAllocPagetables: ERROR call to _AllocPageTableMemory failed"));
-				return IMG_FALSE;
-			}
-#if defined(FIX_HW_BRN_31620)
-			bFlushSystemCache = IMG_TRUE;
-			
-			{
-				IMG_UINT32 ui32PD;
-				IMG_UINT32 ui32PDCacheLine;
-				IMG_UINT32 ui32PDBitMaskIndex;
-				IMG_UINT32 ui32PDBitMaskShift;
-
-				ui32PD = ui32PDIndex + i;
-				ui32PDCacheLine = ui32PD >> BRN31620_PDES_PER_CACHE_LINE_SHIFT;
-				ui32PDBitMaskIndex = ui32PDCacheLine >> BRN31620_CACHE_FLUSH_BITS_SHIFT;
-				ui32PDBitMaskShift = ui32PDCacheLine & BRN31620_CACHE_FLUSH_BITS_MASK;
-				ui32ModifiedCachelines[ui32PDBitMaskIndex] |= 1 << ui32PDBitMaskShift;
-
-				
-				if ((pMMUHeap->ui32PDBaseIndex + pMMUHeap->ui32PageTableCount) < (ui32PD + 1))
-				{
-					pMMUHeap->ui32PageTableCount = (ui32PD + 1) - pMMUHeap->ui32PDBaseIndex;
-				}
-
-				if (((ui32PDIndex + i) >= ui32PDRequestStart) && ((ui32PDIndex + i) <= ui32PDRequestEnd))
-				{
-					pMMUHeap->psMMUContext->ui32PDCacheRangeRefCount[ui32PDCacheLine]++;
-				}
-			}
-#endif
-			switch(pMMUHeap->psDevArena->DevMemHeapType)
-			{
-				case DEVICE_MEMORY_HEAP_SHARED :
-				case DEVICE_MEMORY_HEAP_SHARED_EXPORTED :
-				{
-					
-					MMU_CONTEXT *psMMUContext = (MMU_CONTEXT*)pMMUHeap->psMMUContext->psDevInfo->pvMMUContextList;
-
-					while(psMMUContext)
-					{
-						
-						pui32PDEntry = (IMG_UINT32*)psMMUContext->pvPDCpuVAddr;
-						pui32PDEntry += ui32PDIndex;
-
-						
-						pui32PDEntry[i] = (sDevPAddr.uiAddr>>SGX_MMU_PDE_ADDR_ALIGNSHIFT)
-										| pMMUHeap->ui32PDEPageSizeCtrl
-										| SGX_MMU_PDE_VALID;
-						#if defined(PDUMP)
-						
-						#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-						if(psMMUContext->bPDumpActive)
-						#endif
-						{
-							
-							PDUMPPDENTRIES(&pMMUHeap->sMMUAttrib, psMMUContext->hPDOSMemHandle, (IMG_VOID*)&pui32PDEntry[i], sizeof(IMG_UINT32), 0, IMG_FALSE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-						}
-						#endif 
-						
-						psMMUContext = psMMUContext->psNext;
-					}
-#if defined(FIX_HW_BRN_31620)
-					bSharedPT = IMG_TRUE;
-#endif
-					break;
-				}
-				case DEVICE_MEMORY_HEAP_PERCONTEXT :
-				case DEVICE_MEMORY_HEAP_KERNEL :
-				{
-					
-					pui32PDEntry[i] = (sDevPAddr.uiAddr>>SGX_MMU_PDE_ADDR_ALIGNSHIFT)
-									| pMMUHeap->ui32PDEPageSizeCtrl
-									| SGX_MMU_PDE_VALID;
-
-					
-					
-					PDUMPPDENTRIES(&pMMUHeap->sMMUAttrib, pMMUHeap->psMMUContext->hPDOSMemHandle, (IMG_VOID*)&pui32PDEntry[i], sizeof(IMG_UINT32), 0, IMG_FALSE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-					break;
-				}
-				default:
-				{
-					PVR_DPF((PVR_DBG_ERROR, "_DeferredAllocPagetables: ERROR invalid heap type"));
-					return IMG_FALSE;
-				}
-			}
-
-#if !defined(SGX_FEATURE_MULTIPLE_MEM_CONTEXTS)
-			
-
-
-
-			MMU_InvalidateDirectoryCache(pMMUHeap->psMMUContext->psDevInfo);
-#endif
-#if defined(FIX_HW_BRN_31620)
-			
-			if (((ui32PDIndex + i) < ui32PDRequestStart) || ((ui32PDIndex + i) > ui32PDRequestEnd))
-			{
-					pMMUHeap->psMMUContext->apsPTInfoListSave[ui32PDIndex + i] = ppsPTInfoList[i];
-					ppsPTInfoList[i] = IMG_NULL;
-			}
-#endif
-		}
-		else
-		{
-#if !defined(FIX_HW_BRN_31620)
-			
-			PVR_ASSERT(pui32PDEntry[i] != 0);
-#endif
-		}
-#if defined(FIX_HW_BRN_31620)
-		}
-#endif
-	}
-
-	#if defined(SGX_FEATURE_SYSTEM_CACHE)
-	#if defined(FIX_HW_BRN_31620)
-	
-	if (bFlushSystemCache)
-	{
-	#endif
-
-	MMU_InvalidateSystemLevelCache(pMMUHeap->psMMUContext->psDevInfo);
-	#endif 
-	#if defined(FIX_HW_BRN_31620)
-	}
-
-	
-	sHighDevVAddr.uiAddr = sHighDevVAddr.uiAddr - 1;
-
-	
-	if (bFlushSystemCache)
-	{
-		MMU_CONTEXT *psMMUContext;
-
-		if (bSharedPT)
-		{
-			MMU_CONTEXT *psMMUContext = (MMU_CONTEXT*)pMMUHeap->psMMUContext->psDevInfo->pvMMUContextList;
-
-			while(psMMUContext)
-			{
-				for (i=0;i<BRN31620_CACHE_FLUSH_INDEX_SIZE;i++)
-				{
-					psMMUContext->ui32PDChangeMask[i] |= ui32ModifiedCachelines[i];
-				}
-
-				
-				psMMUContext = psMMUContext->psNext;
-			}
-		}
-		else
-		{
-			for (i=0;i<BRN31620_CACHE_FLUSH_INDEX_SIZE;i++)
-			{
-				pMMUHeap->psMMUContext->ui32PDChangeMask[i] |= ui32ModifiedCachelines[i];
-			}
-		}
-
-		
-		psMMUContext = pMMUHeap->psMMUContext;
-		for (i=0;i<BRN31620_CACHE_FLUSH_INDEX_SIZE;i++)
-		{
-			IMG_UINT32 j;
-
-			for(j=0;j<BRN31620_CACHE_FLUSH_BITS_SIZE;j++)
-			{
-				if (ui32ModifiedCachelines[i] & (1 << j))
-				{
-					PVRSRV_SGXDEV_INFO *psDevInfo = psMMUContext->psDevInfo;
-					MMU_PT_INFO *psTempPTInfo = IMG_NULL;
-					IMG_UINT32 *pui32Tmp;
-
-					ui32PDIndex = (((i * BRN31620_CACHE_FLUSH_BITS_SIZE) + j) * BRN31620_PDES_PER_CACHE_LINE_SIZE) + BRN31620_DUMMY_PDE_INDEX;
-
-					
-					if (psMMUContext->apsPTInfoList[ui32PDIndex])
-					{
-						psTempPTInfo = psMMUContext->apsPTInfoList[ui32PDIndex];
-					}
-					else
-					{
-						psTempPTInfo = psMMUContext->apsPTInfoListSave[ui32PDIndex];
-					}
-
-					PVR_ASSERT(psTempPTInfo != IMG_NULL);
-
-					pui32Tmp = (IMG_UINT32 *) psTempPTInfo->PTPageCpuVAddr;
-					PVR_ASSERT(pui32Tmp != IMG_NULL);
-					pui32Tmp[BRN31620_DUMMY_PTE_INDEX] = (psDevInfo->sBRN31620DummyPageDevPAddr.uiAddr>>SGX_MMU_PTE_ADDR_ALIGNSHIFT)
-															| SGX_MMU_PTE_DUMMY_PAGE
-															| SGX_MMU_PTE_READONLY
-															| SGX_MMU_PTE_VALID;
-
-					PDUMPCOMMENT("BRN31620 Dump PTE for dummy page after wireing up new PT");
-					PDUMPMEMPTENTRIES(&pMMUHeap->sMMUAttrib, psTempPTInfo->hPTPageOSMemHandle, (IMG_VOID *) &pui32Tmp[BRN31620_DUMMY_PTE_INDEX], sizeof(IMG_UINT32), 0, IMG_FALSE, PDUMP_PT_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-				}
-			}
-		}
-	}
-	#endif
-
-	return IMG_TRUE;
-}
-
-
-#if defined(PDUMP)
-IMG_UINT32 MMU_GetPDumpContextID(IMG_HANDLE hDevMemContext)
-{
-	BM_CONTEXT *pBMContext = hDevMemContext;
-	PVR_ASSERT(pBMContext);
-	 
-	return pBMContext->psMMUContext->ui32PDumpMMUContextID;
-}
-
-static IMG_VOID MMU_SetPDumpAttribs(PDUMP_MMU_ATTRIB *psMMUAttrib,
-	PVRSRV_DEVICE_NODE *psDeviceNode,
-	IMG_UINT32 ui32DataPageMask,
-	IMG_UINT32 ui32PTSize)
-{
-	
-	psMMUAttrib->sDevId = psDeviceNode->sDevId;
-	
-	psMMUAttrib->pszPDRegRegion = IMG_NULL;
-	psMMUAttrib->ui32DataPageMask = ui32DataPageMask;
-	
-	psMMUAttrib->ui32PTEValid = SGX_MMU_PTE_VALID;
-	psMMUAttrib->ui32PTSize = ui32PTSize;
-	psMMUAttrib->ui32PTEAlignShift = SGX_MMU_PTE_ADDR_ALIGNSHIFT;
-	
-	psMMUAttrib->ui32PDEMask = SGX_MMU_PDE_ADDR_MASK;
-	psMMUAttrib->ui32PDEAlignShift = SGX_MMU_PDE_ADDR_ALIGNSHIFT;
-}
-#endif 
-
-PVRSRV_ERROR
-MMU_Initialise (PVRSRV_DEVICE_NODE *psDeviceNode, MMU_CONTEXT **ppsMMUContext, IMG_DEV_PHYADDR *psPDDevPAddr)
-{
-	IMG_UINT32 *pui32Tmp;
-	IMG_UINT32 i;
-	IMG_CPU_VIRTADDR pvPDCpuVAddr;
-	IMG_DEV_PHYADDR sPDDevPAddr;
-	IMG_CPU_PHYADDR sCpuPAddr;
-	MMU_CONTEXT *psMMUContext;
-	IMG_HANDLE hPDOSMemHandle = IMG_NULL;
-	SYS_DATA *psSysData;
-	PVRSRV_SGXDEV_INFO *psDevInfo;
-#if defined(PDUMP)
-	PDUMP_MMU_ATTRIB sMMUAttrib;
-#endif
-	PVR_DPF ((PVR_DBG_MESSAGE, "MMU_Initialise"));
-
-	SysAcquireData(&psSysData);
-#if defined(PDUMP)
-	
-	
-	MMU_SetPDumpAttribs(&sMMUAttrib, psDeviceNode,
-						SGX_MMU_PAGE_MASK,
-						SGX_MMU_PT_SIZE * sizeof(IMG_UINT32));
-#endif
-
-	OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-				 sizeof (MMU_CONTEXT),
-				 (IMG_VOID **)&psMMUContext, IMG_NULL,
-				 "MMU Context");
-	if (psMMUContext == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR call to OSAllocMem failed"));
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-	OSMemSet (psMMUContext, 0, sizeof(MMU_CONTEXT));
-
-	
-	psDevInfo = (PVRSRV_SGXDEV_INFO*)psDeviceNode->pvDevice;
-	psMMUContext->psDevInfo = psDevInfo;
-
-	
-	psMMUContext->psDeviceNode = psDeviceNode;
-
-	
-	if(psDeviceNode->psLocalDevMemArena == IMG_NULL)
-	{
-		if (OSAllocPages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-							SGX_MMU_PAGE_SIZE,
-							SGX_MMU_PAGE_SIZE,
-							&pvPDCpuVAddr,
-							&hPDOSMemHandle) != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR call to OSAllocPages failed"));
-			return PVRSRV_ERROR_FAILED_TO_ALLOC_PAGES;
-		}
-
-		if(pvPDCpuVAddr)
-		{
-			sCpuPAddr = OSMapLinToCPUPhys(hPDOSMemHandle,
-										  pvPDCpuVAddr);
-		}
-		else
-		{
-			
-			sCpuPAddr = OSMemHandleToCpuPAddr(hPDOSMemHandle, 0);
-		}
-		sPDDevPAddr = SysCpuPAddrToDevPAddr (PVRSRV_DEVICE_TYPE_SGX, sCpuPAddr);
-
-		#if PAGE_TEST
-		PageTest(pvPDCpuVAddr, sPDDevPAddr);
-		#endif
-
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
-		
-		if(!psDevInfo->pvMMUContextList)
-		{
-			
-			if (OSAllocPages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-								SGX_MMU_PAGE_SIZE,
-								SGX_MMU_PAGE_SIZE,
-								&psDevInfo->pvDummyPTPageCpuVAddr,
-								&psDevInfo->hDummyPTPageOSMemHandle) != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR call to OSAllocPages failed"));
-				return PVRSRV_ERROR_FAILED_TO_ALLOC_PAGES;
-			}
-
-			if(psDevInfo->pvDummyPTPageCpuVAddr)
-			{
-				sCpuPAddr = OSMapLinToCPUPhys(psDevInfo->hDummyPTPageOSMemHandle,
-											  psDevInfo->pvDummyPTPageCpuVAddr);
-			}
-			else
-			{
-				
-				sCpuPAddr = OSMemHandleToCpuPAddr(psDevInfo->hDummyPTPageOSMemHandle, 0);
-			}
-			psDevInfo->sDummyPTDevPAddr = SysCpuPAddrToDevPAddr (PVRSRV_DEVICE_TYPE_SGX, sCpuPAddr);
-
-			
-			if (OSAllocPages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-								SGX_MMU_PAGE_SIZE,
-								SGX_MMU_PAGE_SIZE,
-								&psDevInfo->pvDummyDataPageCpuVAddr,
-								&psDevInfo->hDummyDataPageOSMemHandle) != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR call to OSAllocPages failed"));
-				return PVRSRV_ERROR_FAILED_TO_ALLOC_PAGES;
-			}
-
-			if(psDevInfo->pvDummyDataPageCpuVAddr)
-			{
-				sCpuPAddr = OSMapLinToCPUPhys(psDevInfo->hDummyPTPageOSMemHandle,
-											  psDevInfo->pvDummyDataPageCpuVAddr);
-			}
-			else
-			{
-				sCpuPAddr = OSMemHandleToCpuPAddr(psDevInfo->hDummyDataPageOSMemHandle, 0);
-			}
-			psDevInfo->sDummyDataDevPAddr = SysCpuPAddrToDevPAddr (PVRSRV_DEVICE_TYPE_SGX, sCpuPAddr);
-		}
-#endif 
-#if defined(FIX_HW_BRN_31620)
-		
-		if(!psDevInfo->pvMMUContextList)
-		{
-			IMG_UINT32 j;
-			
-			if (OSAllocPages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-								SGX_MMU_PAGE_SIZE,
-								SGX_MMU_PAGE_SIZE,
-								&psDevInfo->pvBRN31620DummyPageCpuVAddr,
-								&psDevInfo->hBRN31620DummyPageOSMemHandle) != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR call to OSAllocPages failed"));
-				return PVRSRV_ERROR_FAILED_TO_ALLOC_PAGES;
-			}				
-
-			
-			if(psDevInfo->pvBRN31620DummyPageCpuVAddr)
-			{
-				sCpuPAddr = OSMapLinToCPUPhys(psDevInfo->hBRN31620DummyPageOSMemHandle,
-											  psDevInfo->pvBRN31620DummyPageCpuVAddr);
-			}
-			else
-			{
-				sCpuPAddr = OSMemHandleToCpuPAddr(psDevInfo->hBRN31620DummyPageOSMemHandle, 0);
-			}
-
-			pui32Tmp = (IMG_UINT32 *)psDevInfo->pvBRN31620DummyPageCpuVAddr;
-			for(j=0; j<(SGX_MMU_PAGE_SIZE/4); j++)
-			{
-				pui32Tmp[j] = BRN31620_DUMMY_PAGE_SIGNATURE;
-			}
-
-			psDevInfo->sBRN31620DummyPageDevPAddr = SysCpuPAddrToDevPAddr(PVRSRV_DEVICE_TYPE_SGX, sCpuPAddr);
-			PDUMPMALLOCPAGETABLE(&psDeviceNode->sDevId, psDevInfo->hBRN31620DummyPageOSMemHandle, 0, psDevInfo->pvBRN31620DummyPageCpuVAddr, SGX_MMU_PAGE_SIZE, 0, PDUMP_PT_UNIQUETAG);
-
-			
-			if (OSAllocPages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-								SGX_MMU_PAGE_SIZE,
-								SGX_MMU_PAGE_SIZE,
-								&psDevInfo->pvBRN31620DummyPTCpuVAddr,
-								&psDevInfo->hBRN31620DummyPTOSMemHandle) != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR call to OSAllocPages failed"));
-				return PVRSRV_ERROR_FAILED_TO_ALLOC_PAGES;
-			}				
-
-			
-			if(psDevInfo->pvBRN31620DummyPTCpuVAddr)
-			{
-				sCpuPAddr = OSMapLinToCPUPhys(psDevInfo->hBRN31620DummyPTOSMemHandle,
-											  psDevInfo->pvBRN31620DummyPTCpuVAddr);
-			}
-			else
-			{
-				sCpuPAddr = OSMemHandleToCpuPAddr(psDevInfo->hBRN31620DummyPTOSMemHandle, 0);
-			}
-
-			OSMemSet(psDevInfo->pvBRN31620DummyPTCpuVAddr,0,SGX_MMU_PAGE_SIZE);
-			psDevInfo->sBRN31620DummyPTDevPAddr = SysCpuPAddrToDevPAddr(PVRSRV_DEVICE_TYPE_SGX, sCpuPAddr);
-			PDUMPMALLOCPAGETABLE(&psDeviceNode->sDevId, psDevInfo->hBRN31620DummyPTOSMemHandle, 0, psDevInfo->pvBRN31620DummyPTCpuVAddr, SGX_MMU_PAGE_SIZE, 0, PDUMP_PT_UNIQUETAG);
-		}
-#endif
-	}
-	else
-	{
-		IMG_SYS_PHYADDR sSysPAddr;
-
-		
-		if(RA_Alloc(psDeviceNode->psLocalDevMemArena,
-					SGX_MMU_PAGE_SIZE,
-					IMG_NULL,
-					IMG_NULL,
-					0,
-					SGX_MMU_PAGE_SIZE,
-					0,
-					&(sSysPAddr.uiAddr))!= IMG_TRUE)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR call to RA_Alloc failed"));
-			return PVRSRV_ERROR_FAILED_TO_ALLOC_VIRT_MEMORY;
-		}
-
-		
-		sCpuPAddr = SysSysPAddrToCpuPAddr(sSysPAddr);
-		sPDDevPAddr = SysSysPAddrToDevPAddr(PVRSRV_DEVICE_TYPE_SGX, sSysPAddr);
-		pvPDCpuVAddr = OSMapPhysToLin(sCpuPAddr,
-										SGX_MMU_PAGE_SIZE,
-										PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-										&hPDOSMemHandle);
-		if(!pvPDCpuVAddr)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR failed to map page tables"));
-			return PVRSRV_ERROR_FAILED_TO_MAP_PAGE_TABLE;
-		}
-
-		#if PAGE_TEST
-		PageTest(pvPDCpuVAddr, sPDDevPAddr);
-		#endif
-
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
-		
-		if(!psDevInfo->pvMMUContextList)
-		{
-			
-			if(RA_Alloc(psDeviceNode->psLocalDevMemArena,
-						SGX_MMU_PAGE_SIZE,
-						IMG_NULL,
-						IMG_NULL,
-						0,
-						SGX_MMU_PAGE_SIZE,
-						0,
-						&(sSysPAddr.uiAddr))!= IMG_TRUE)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR call to RA_Alloc failed"));
-				return PVRSRV_ERROR_FAILED_TO_ALLOC_VIRT_MEMORY;
-			}
-
-			
-			sCpuPAddr = SysSysPAddrToCpuPAddr(sSysPAddr);
-			psDevInfo->sDummyPTDevPAddr = SysSysPAddrToDevPAddr(PVRSRV_DEVICE_TYPE_SGX, sSysPAddr);
-			psDevInfo->pvDummyPTPageCpuVAddr = OSMapPhysToLin(sCpuPAddr,
-																SGX_MMU_PAGE_SIZE,
-																PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-																&psDevInfo->hDummyPTPageOSMemHandle);
-			if(!psDevInfo->pvDummyPTPageCpuVAddr)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR failed to map page tables"));
-				return PVRSRV_ERROR_FAILED_TO_MAP_PAGE_TABLE;
-			}
-
-			
-			if(RA_Alloc(psDeviceNode->psLocalDevMemArena,
-						SGX_MMU_PAGE_SIZE,
-						IMG_NULL,
-						IMG_NULL,
-						0,
-						SGX_MMU_PAGE_SIZE,
-						0,
-						&(sSysPAddr.uiAddr))!= IMG_TRUE)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR call to RA_Alloc failed"));
-				return PVRSRV_ERROR_FAILED_TO_ALLOC_VIRT_MEMORY;
-			}
-
-			
-			sCpuPAddr = SysSysPAddrToCpuPAddr(sSysPAddr);
-			psDevInfo->sDummyDataDevPAddr = SysSysPAddrToDevPAddr(PVRSRV_DEVICE_TYPE_SGX, sSysPAddr);
-			psDevInfo->pvDummyDataPageCpuVAddr = OSMapPhysToLin(sCpuPAddr,
-																SGX_MMU_PAGE_SIZE,
-																PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-																&psDevInfo->hDummyDataPageOSMemHandle);
-			if(!psDevInfo->pvDummyDataPageCpuVAddr)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR failed to map page tables"));
-				return PVRSRV_ERROR_FAILED_TO_MAP_PAGE_TABLE;
-			}
-		}
-#endif 
-#if defined(FIX_HW_BRN_31620)
-		
-		if(!psDevInfo->pvMMUContextList)
-		{
-			IMG_UINT32 j;
-			
-			if(RA_Alloc(psDeviceNode->psLocalDevMemArena,
-						SGX_MMU_PAGE_SIZE,
-						IMG_NULL,
-						IMG_NULL,
-						0,
-						SGX_MMU_PAGE_SIZE,
-						0,
-						&(sSysPAddr.uiAddr))!= IMG_TRUE)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR call to RA_Alloc failed"));
-				return PVRSRV_ERROR_FAILED_TO_ALLOC_VIRT_MEMORY;
-			}
-
-			
-			sCpuPAddr = SysSysPAddrToCpuPAddr(sSysPAddr);
-			psDevInfo->sBRN31620DummyPageDevPAddr = SysSysPAddrToDevPAddr(PVRSRV_DEVICE_TYPE_SGX, sSysPAddr);
-			psDevInfo->pvBRN31620DummyPageCpuVAddr = OSMapPhysToLin(sCpuPAddr,
-																SGX_MMU_PAGE_SIZE,
-																PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-																&psDevInfo->hBRN31620DummyPageOSMemHandle);
-			if(!psDevInfo->pvBRN31620DummyPageCpuVAddr)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR failed to map page tables"));
-				return PVRSRV_ERROR_FAILED_TO_MAP_PAGE_TABLE;
-			}
-
-			pui32Tmp = (IMG_UINT32 *)psDevInfo->pvBRN31620DummyPageCpuVAddr;
-			for(j=0; j<(SGX_MMU_PAGE_SIZE/4); j++)
-			{
-				pui32Tmp[j] = BRN31620_DUMMY_PAGE_SIGNATURE;
-			}
-			PDUMPMALLOCPAGETABLE(&psDeviceNode->sDevId, psDevInfo->hBRN31620DummyPageOSMemHandle, 0, psDevInfo->pvBRN31620DummyPageCpuVAddr, SGX_MMU_PAGE_SIZE, 0, PDUMP_PT_UNIQUETAG);
-
-			
-			if(RA_Alloc(psDeviceNode->psLocalDevMemArena,
-						SGX_MMU_PAGE_SIZE,
-						IMG_NULL,
-						IMG_NULL,
-						0,
-						SGX_MMU_PAGE_SIZE,
-						0,
-						&(sSysPAddr.uiAddr))!= IMG_TRUE)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR call to RA_Alloc failed"));
-				return PVRSRV_ERROR_FAILED_TO_ALLOC_VIRT_MEMORY;
-			}
-
-			
-			sCpuPAddr = SysSysPAddrToCpuPAddr(sSysPAddr);
-			psDevInfo->sBRN31620DummyPTDevPAddr = SysSysPAddrToDevPAddr(PVRSRV_DEVICE_TYPE_SGX, sSysPAddr);
-			psDevInfo->pvBRN31620DummyPTCpuVAddr = OSMapPhysToLin(sCpuPAddr,
-																SGX_MMU_PAGE_SIZE,
-																PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-																&psDevInfo->hBRN31620DummyPTOSMemHandle);
-
-			if(!psDevInfo->pvBRN31620DummyPTCpuVAddr)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR failed to map page tables"));
-				return PVRSRV_ERROR_FAILED_TO_MAP_PAGE_TABLE;
-			}
-
-			OSMemSet(psDevInfo->pvBRN31620DummyPTCpuVAddr,0,SGX_MMU_PAGE_SIZE);		
-			PDUMPMALLOCPAGETABLE(&psDeviceNode->sDevId, psDevInfo->hBRN31620DummyPTOSMemHandle, 0, psDevInfo->pvBRN31620DummyPTCpuVAddr, SGX_MMU_PAGE_SIZE, 0, PDUMP_PT_UNIQUETAG);
-		}
-#endif 
-	}
-
-#if defined(FIX_HW_BRN_31620)
-	if (!psDevInfo->pvMMUContextList)
-	{
-		
-		psDevInfo->hKernelMMUContext = psMMUContext;
-		PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: saving kernel mmu context: %p", psMMUContext));
-	}
-#endif
-
-#if defined(PDUMP)
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-	
-	{
-		PVRSRV_PER_PROCESS_DATA* psPerProc = PVRSRVFindPerProcessData();
-		if(psPerProc == IMG_NULL)
-		{
-			
-			psMMUContext->bPDumpActive = IMG_TRUE;
-		}
-		else
-		{
-			psMMUContext->bPDumpActive = psPerProc->bPDumpActive;
-		}
-	}
-#endif 
-	
-#if IMG_ADDRSPACE_PHYSADDR_BITS == 32
-	PDUMPCOMMENT("Alloc page directory for new MMU context (PDDevPAddr == 0x%08x)",
-			sPDDevPAddr.uiAddr);
-#else
-	PDUMPCOMMENT("Alloc page directory for new MMU context, 64-bit arch detected (PDDevPAddr == 0x%08x%08x)",
-			sPDDevPAddr.uiHighAddr, sPDDevPAddr.uiAddr);
-#endif
-	PDUMPMALLOCPAGETABLE(&psDeviceNode->sDevId, hPDOSMemHandle, 0, pvPDCpuVAddr, SGX_MMU_PAGE_SIZE, 0, PDUMP_PD_UNIQUETAG);
-#endif 
-
-#ifdef SUPPORT_SGX_MMU_BYPASS
-	EnableHostAccess(psMMUContext);
-#endif
-
-	if (pvPDCpuVAddr)
-	{
-		pui32Tmp = (IMG_UINT32 *)pvPDCpuVAddr;
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: pvPDCpuVAddr invalid"));
-		return PVRSRV_ERROR_INVALID_CPU_ADDR;
-	}
-
-
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
-	
-	for(i=0; i<SGX_MMU_PD_SIZE; i++)
-	{
-		pui32Tmp[i] = (psDevInfo->sDummyPTDevPAddr.uiAddr>>SGX_MMU_PDE_ADDR_ALIGNSHIFT)
-					| SGX_MMU_PDE_PAGE_SIZE_4K
-					| SGX_MMU_PDE_VALID;
-	}
-
-	if(!psDevInfo->pvMMUContextList)
-	{
-		
-
-
-		pui32Tmp = (IMG_UINT32 *)psDevInfo->pvDummyPTPageCpuVAddr;
-		for(i=0; i<SGX_MMU_PT_SIZE; i++)
-		{
-			pui32Tmp[i] = (psDevInfo->sDummyDataDevPAddr.uiAddr>>SGX_MMU_PTE_ADDR_ALIGNSHIFT)
-						| SGX_MMU_PTE_VALID;
-		}
-		
-		PDUMPCOMMENT("Dummy Page table contents");
-		PDUMPMEMPTENTRIES(&sMMUAttrib, psDevInfo->hDummyPTOSMemHandle, psDevInfo->pvDummyPTPageCpuVAddr, SGX_MMU_PAGE_SIZE, 0, IMG_TRUE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-
-		
-
-		pui32Tmp = (IMG_UINT32 *)psDevInfo->pvDummyDataPageCpuVAddr;
-		for(i=0; i<(SGX_MMU_PAGE_SIZE/4); i++)
-		{
-			pui32Tmp[i] = DUMMY_DATA_PAGE_SIGNATURE;
-		}
-		
-		PDUMPCOMMENT("Dummy Data Page contents");
-		PDUMPMEMPTENTRIES(PVRSRV_DEVICE_TYPE_SGX, psDevInfo->hDummyDataPageOSMemHandle, psDevInfo->pvDummyDataPageCpuVAddr, SGX_MMU_PAGE_SIZE, 0, IMG_TRUE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-	}
-#else 
-	
-	for(i=0; i<SGX_MMU_PD_SIZE; i++)
-	{
-		
-		pui32Tmp[i] = 0;
-	}
-#endif 
-
-#if defined(PDUMP)
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-	if(psMMUContext->bPDumpActive)
-#endif 
-	{
-		
-		PDUMPCOMMENT("Page directory contents");
-		PDUMPPDENTRIES(&sMMUAttrib, hPDOSMemHandle, pvPDCpuVAddr, SGX_MMU_PAGE_SIZE, 0, IMG_TRUE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-	}
-#endif
-#if defined(FIX_HW_BRN_31620)
-	{
-		IMG_UINT32 i;
-		IMG_UINT32 ui32PDCount = 0;
-		IMG_UINT32 *pui32PT;
-		pui32Tmp = (IMG_UINT32 *)pvPDCpuVAddr;
-
-		PDUMPCOMMENT("BRN31620 Set up dummy PT");
-
-		pui32PT = (IMG_UINT32 *) psDevInfo->pvBRN31620DummyPTCpuVAddr;
-		pui32PT[BRN31620_DUMMY_PTE_INDEX] = (psDevInfo->sBRN31620DummyPageDevPAddr.uiAddr>>SGX_MMU_PTE_ADDR_ALIGNSHIFT)
-								| SGX_MMU_PTE_DUMMY_PAGE
-								| SGX_MMU_PTE_READONLY
-								| SGX_MMU_PTE_VALID;
-
-
-#if defined(PDUMP)
-		
-		PDUMPCOMMENT("BRN31620 Dump dummy PT contents");
-		PDUMPMEMPTENTRIES(&sMMUAttrib,  psDevInfo->hBRN31620DummyPTOSMemHandle, psDevInfo->pvBRN31620DummyPTCpuVAddr, SGX_MMU_PAGE_SIZE, 0, IMG_TRUE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-		PDUMPCOMMENT("BRN31620 Dump dummy page contents");
-		PDUMPMEMPTENTRIES(&sMMUAttrib,  psDevInfo->hBRN31620DummyPageOSMemHandle, psDevInfo->pvBRN31620DummyPageCpuVAddr, SGX_MMU_PAGE_SIZE, 0, IMG_TRUE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-
-				
-		for(i=0;i<SGX_MMU_PT_SIZE;i++)
-		{
-			PDUMPMEMPTENTRIES(&sMMUAttrib, psDevInfo->hBRN31620DummyPTOSMemHandle, &pui32PT[i], sizeof(IMG_UINT32), 0, IMG_FALSE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-		}
-#endif
-		PDUMPCOMMENT("BRN31620 Dump PDE wire up");
-		
-		for(i=0;i<SGX_MMU_PD_SIZE;i++)
-		{
-			pui32Tmp[i] = 0;
-
-			if (ui32PDCount == BRN31620_DUMMY_PDE_INDEX)
-			{
-				pui32Tmp[i] = (psDevInfo->sBRN31620DummyPTDevPAddr.uiAddr>>SGX_MMU_PDE_ADDR_ALIGNSHIFT)
-						| SGX_MMU_PDE_PAGE_SIZE_4K
-						| SGX_MMU_PDE_DUMMY_PAGE
-						| SGX_MMU_PDE_VALID;
-			}
-				PDUMPMEMPTENTRIES(&sMMUAttrib, hPDOSMemHandle, (IMG_VOID *) &pui32Tmp[i], sizeof(IMG_UINT32), 0, IMG_FALSE, PDUMP_PT_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-			ui32PDCount++;
-			if (ui32PDCount == BRN31620_PDES_PER_CACHE_LINE_SIZE)
-			{
-				
-				ui32PDCount = 0;
-			}
-		}
-
-
-		
-		PDUMPCOMMENT("BRN31620 dummy Page table contents");
-		PDUMPMEMPTENTRIES(&sMMUAttrib, psDevInfo->hBRN31620DummyPageOSMemHandle, psDevInfo->pvBRN31620DummyPageCpuVAddr, SGX_MMU_PAGE_SIZE, 0, IMG_TRUE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-	}
-#endif
-#if defined(PDUMP)
-	
-	{
-		PVRSRV_ERROR eError;
-		
-		IMG_UINT32 ui32MMUType = 1;
-
-		#if defined(SGX_FEATURE_36BIT_MMU)
-			ui32MMUType = 3;
-		#else
-			#if defined(SGX_FEATURE_VARIABLE_MMU_PAGE_SIZE)
-				ui32MMUType = 2;
-			#endif
-		#endif
-
-		eError = PDumpSetMMUContext(PVRSRV_DEVICE_TYPE_SGX,
-									psDeviceNode->sDevId.pszPDumpDevName,
-									&psMMUContext->ui32PDumpMMUContextID,
-									ui32MMUType,
-									PDUMP_PT_UNIQUETAG,
-									hPDOSMemHandle,
-									pvPDCpuVAddr);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "MMU_Initialise: ERROR call to PDumpSetMMUContext failed"));
-			return eError;
-		}
-	}
-
-	
-	PDUMPCOMMENT("Set MMU context complete (MMU Context ID == %u)", psMMUContext->ui32PDumpMMUContextID);
-#endif
-
-#if defined(FIX_HW_BRN_31620)
-	for(i=0;i<BRN31620_CACHE_FLUSH_INDEX_SIZE;i++)
-	{
-		psMMUContext->ui32PDChangeMask[i] = 0;
-	}
-
-	for(i=0;i<BRN31620_CACHE_FLUSH_SIZE;i++)
-	{
-		psMMUContext->ui32PDCacheRangeRefCount[i] = 0;
-	}
-
-	for(i=0;i<SGX_MAX_PD_ENTRIES;i++)
-	{
-		psMMUContext->apsPTInfoListSave[i] = IMG_NULL;
-	}
-#endif
-	
-	psMMUContext->pvPDCpuVAddr = pvPDCpuVAddr;
-	psMMUContext->sPDDevPAddr = sPDDevPAddr;
-	psMMUContext->hPDOSMemHandle = hPDOSMemHandle;
-
-	
-	*ppsMMUContext = psMMUContext;
-
-	
-	*psPDDevPAddr = sPDDevPAddr;
-
-	
-	psMMUContext->psNext = (MMU_CONTEXT*)psDevInfo->pvMMUContextList;
-	psDevInfo->pvMMUContextList = (IMG_VOID*)psMMUContext;
-
-#ifdef SUPPORT_SGX_MMU_BYPASS
-	DisableHostAccess(psMMUContext);
-#endif
-
-	return PVRSRV_OK;
-}
-
-IMG_VOID
-MMU_Finalise (MMU_CONTEXT *psMMUContext)
-{
-	IMG_UINT32 *pui32Tmp, i;
-	SYS_DATA *psSysData;
-	MMU_CONTEXT **ppsMMUContext;
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE) || defined(FIX_HW_BRN_31620)
-	PVRSRV_SGXDEV_INFO *psDevInfo = (PVRSRV_SGXDEV_INFO*)psMMUContext->psDevInfo;
-	MMU_CONTEXT *psMMUContextList = (MMU_CONTEXT*)psDevInfo->pvMMUContextList;
-#endif
-
-	SysAcquireData(&psSysData);
-
-#if defined(PDUMP)
-	
-	PDUMPCOMMENT("Clear MMU context (MMU Context ID == %u)", psMMUContext->ui32PDumpMMUContextID);
-	PDUMPCLEARMMUCONTEXT(PVRSRV_DEVICE_TYPE_SGX, psMMUContext->psDeviceNode->sDevId.pszPDumpDevName, psMMUContext->ui32PDumpMMUContextID, 2);
-
-	
-#if IMG_ADDRSPACE_PHYSADDR_BITS == 32
-	PDUMPCOMMENT("Free page directory (PDDevPAddr == 0x%08x)",
-			psMMUContext->sPDDevPAddr.uiAddr);
-#else
-	PDUMPCOMMENT("Free page directory, 64-bit arch detected (PDDevPAddr == 0x%08x%08x)",
-			psMMUContext->sPDDevPAddr.uiHighAddr, psMMUContext->sPDDevPAddr.uiAddr);
-#endif
-#endif 
-
-	PDUMPFREEPAGETABLE(&psMMUContext->psDeviceNode->sDevId, psMMUContext->hPDOSMemHandle, psMMUContext->pvPDCpuVAddr, SGX_MMU_PAGE_SIZE, 0, PDUMP_PT_UNIQUETAG);
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
-	PDUMPFREEPAGETABLE(&psMMUContext->psDeviceNode->sDevId, psDevInfo->hDummyPTPageOSMemHandle, psDevInfo->pvDummyPTPageCpuVAddr, SGX_MMU_PAGE_SIZE, 0, PDUMP_PT_UNIQUETAG);
-	PDUMPFREEPAGETABLE(&psMMUContext->psDeviceNode->sDevId, psDevInfo->hDummyDataPageOSMemHandle, psDevInfo->pvDummyDataPageCpuVAddr, SGX_MMU_PAGE_SIZE, 0, PDUMP_PT_UNIQUETAG);
-#endif
-
-	pui32Tmp = (IMG_UINT32 *)psMMUContext->pvPDCpuVAddr;
-
-	
-	for(i=0; i<SGX_MMU_PD_SIZE; i++)
-	{
-		
-		pui32Tmp[i] = 0;
-	}
-
-	
-
-
-
-	if(psMMUContext->psDeviceNode->psLocalDevMemArena == IMG_NULL)
-	{
-#if defined(FIX_HW_BRN_31620)
-		PVRSRV_SGXDEV_INFO *psDevInfo = (PVRSRV_SGXDEV_INFO*)psMMUContext->psDevInfo;
-#endif
-		OSFreePages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-						SGX_MMU_PAGE_SIZE,
-						psMMUContext->pvPDCpuVAddr,
-						psMMUContext->hPDOSMemHandle);
-
-#if defined(FIX_HW_BRN_31620)
-		
-		if (!psMMUContextList->psNext)
-		{
-			PDUMPFREEPAGETABLE(&psMMUContext->psDeviceNode->sDevId, psDevInfo->hBRN31620DummyPageOSMemHandle, psDevInfo->pvBRN31620DummyPageCpuVAddr, SGX_MMU_PAGE_SIZE, 0, PDUMP_PT_UNIQUETAG);
-			OSFreePages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-							SGX_MMU_PAGE_SIZE,
-							psDevInfo->pvBRN31620DummyPageCpuVAddr,
-							psDevInfo->hBRN31620DummyPageOSMemHandle);
-
-			PDUMPFREEPAGETABLE(&psMMUContext->psDeviceNode->sDevId, psDevInfo->hBRN31620DummyPTOSMemHandle, psDevInfo->pvBRN31620DummyPTCpuVAddr, SGX_MMU_PAGE_SIZE, 0, PDUMP_PT_UNIQUETAG);
-			OSFreePages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-							SGX_MMU_PAGE_SIZE,
-							psDevInfo->pvBRN31620DummyPTCpuVAddr,
-							psDevInfo->hBRN31620DummyPTOSMemHandle);
-	
-		}
-#endif
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
-		
-		if(!psMMUContextList->psNext)
-		{
-			OSFreePages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-							SGX_MMU_PAGE_SIZE,
-							psDevInfo->pvDummyPTPageCpuVAddr,
-							psDevInfo->hDummyPTPageOSMemHandle);
-			OSFreePages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-							SGX_MMU_PAGE_SIZE,
-							psDevInfo->pvDummyDataPageCpuVAddr,
-							psDevInfo->hDummyDataPageOSMemHandle);
-		}
-#endif
-	}
-	else
-	{
-		IMG_SYS_PHYADDR sSysPAddr;
-		IMG_CPU_PHYADDR sCpuPAddr;
-
-		
-		sCpuPAddr = OSMapLinToCPUPhys(psMMUContext->hPDOSMemHandle,
-									  psMMUContext->pvPDCpuVAddr);
-		sSysPAddr = SysCpuPAddrToSysPAddr(sCpuPAddr);
-
-		
-		OSUnMapPhysToLin(psMMUContext->pvPDCpuVAddr,
-							SGX_MMU_PAGE_SIZE,
-                            PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-							psMMUContext->hPDOSMemHandle);
-		
-		RA_Free (psMMUContext->psDeviceNode->psLocalDevMemArena, sSysPAddr.uiAddr, IMG_FALSE);
-
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
-		
-		if(!psMMUContextList->psNext)
-		{
-			
-			sCpuPAddr = OSMapLinToCPUPhys(psDevInfo->hDummyPTPageOSMemHandle,
-										  psDevInfo->pvDummyPTPageCpuVAddr);
-			sSysPAddr = SysCpuPAddrToSysPAddr(sCpuPAddr);
-
-			
-			OSUnMapPhysToLin(psDevInfo->pvDummyPTPageCpuVAddr,
-								SGX_MMU_PAGE_SIZE,
-                                PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-								psDevInfo->hDummyPTPageOSMemHandle);
-			
-			RA_Free (psMMUContext->psDeviceNode->psLocalDevMemArena, sSysPAddr.uiAddr, IMG_FALSE);
-
-			
-			sCpuPAddr = OSMapLinToCPUPhys(psDevInfo->hDummyDataPageOSMemHandle,
-										  psDevInfo->pvDummyDataPageCpuVAddr);
-			sSysPAddr = SysCpuPAddrToSysPAddr(sCpuPAddr);
-
-			
-			OSUnMapPhysToLin(psDevInfo->pvDummyDataPageCpuVAddr,
-								SGX_MMU_PAGE_SIZE,
-                                PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-								psDevInfo->hDummyDataPageOSMemHandle);
-			
-			RA_Free (psMMUContext->psDeviceNode->psLocalDevMemArena, sSysPAddr.uiAddr, IMG_FALSE);
-		}
-#endif
-#if defined(FIX_HW_BRN_31620)
-		
-		if(!psMMUContextList->psNext)
-		{
-			
-			PDUMPFREEPAGETABLE(&psMMUContext->psDeviceNode->sDevId, psDevInfo->hBRN31620DummyPageOSMemHandle, psDevInfo->pvBRN31620DummyPageCpuVAddr, SGX_MMU_PAGE_SIZE, 0, PDUMP_PT_UNIQUETAG);
-
-			sCpuPAddr = OSMapLinToCPUPhys(psDevInfo->hBRN31620DummyPageOSMemHandle,
-										  psDevInfo->pvBRN31620DummyPageCpuVAddr);
-			sSysPAddr = SysCpuPAddrToSysPAddr(sCpuPAddr);
-
-			
-			OSUnMapPhysToLin(psDevInfo->pvBRN31620DummyPageCpuVAddr,
-								SGX_MMU_PAGE_SIZE,
-                                PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-								psDevInfo->hBRN31620DummyPageOSMemHandle);
-			
-			RA_Free (psMMUContext->psDeviceNode->psLocalDevMemArena, sSysPAddr.uiAddr, IMG_FALSE);
-
-			
-			PDUMPFREEPAGETABLE(&psMMUContext->psDeviceNode->sDevId, psDevInfo->hBRN31620DummyPTOSMemHandle, psDevInfo->pvBRN31620DummyPTCpuVAddr, SGX_MMU_PAGE_SIZE, 0, PDUMP_PT_UNIQUETAG);
-
-			sCpuPAddr = OSMapLinToCPUPhys(psDevInfo->hBRN31620DummyPTOSMemHandle,
-										  psDevInfo->pvBRN31620DummyPTCpuVAddr);
-			sSysPAddr = SysCpuPAddrToSysPAddr(sCpuPAddr);
-
-			
-			OSUnMapPhysToLin(psDevInfo->pvBRN31620DummyPTCpuVAddr,
-								SGX_MMU_PAGE_SIZE,
-                                PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-								psDevInfo->hBRN31620DummyPTOSMemHandle);
-			
-			RA_Free (psMMUContext->psDeviceNode->psLocalDevMemArena, sSysPAddr.uiAddr, IMG_FALSE);
-		}
-#endif
-	}
-
-	PVR_DPF ((PVR_DBG_MESSAGE, "MMU_Finalise"));
-
-	
-	ppsMMUContext = (MMU_CONTEXT**)&psMMUContext->psDevInfo->pvMMUContextList;
-	while(*ppsMMUContext)
-	{
-		if(*ppsMMUContext == psMMUContext)
-		{
-			
-			*ppsMMUContext = psMMUContext->psNext;
-			break;
-		}
-
-		
-		ppsMMUContext = &((*ppsMMUContext)->psNext);
-	}
-
-	
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(MMU_CONTEXT), psMMUContext, IMG_NULL);
-	
-}
-
-
-IMG_VOID
-MMU_InsertHeap(MMU_CONTEXT *psMMUContext, MMU_HEAP *psMMUHeap)
-{
-	IMG_UINT32 *pui32PDCpuVAddr = (IMG_UINT32 *) psMMUContext->pvPDCpuVAddr;
-	IMG_UINT32 *pui32KernelPDCpuVAddr = (IMG_UINT32 *) psMMUHeap->psMMUContext->pvPDCpuVAddr;
-	IMG_UINT32 ui32PDEntry;
-#if !defined(SGX_FEATURE_MULTIPLE_MEM_CONTEXTS)
-	IMG_BOOL bInvalidateDirectoryCache = IMG_FALSE;
-#endif
-
-	
-	pui32PDCpuVAddr += psMMUHeap->psDevArena->BaseDevVAddr.uiAddr >> psMMUHeap->ui32PDShift;
-	pui32KernelPDCpuVAddr += psMMUHeap->psDevArena->BaseDevVAddr.uiAddr >> psMMUHeap->ui32PDShift;
-
-	
-
-
-#if defined(PDUMP)
-	PDUMPCOMMENT("Page directory shared heap range copy");
-	PDUMPCOMMENT("  (Source heap MMU Context ID == %u, PT count == 0x%x)",
-			psMMUHeap->psMMUContext->ui32PDumpMMUContextID,
-			psMMUHeap->ui32PageTableCount);
-	PDUMPCOMMENT("  (Destination MMU Context ID == %u)", psMMUContext->ui32PDumpMMUContextID);
-#endif 
-#ifdef SUPPORT_SGX_MMU_BYPASS
-	EnableHostAccess(psMMUContext);
-#endif
-
-	for (ui32PDEntry = 0; ui32PDEntry < psMMUHeap->ui32PageTableCount; ui32PDEntry++)
-	{
-#if (!defined(SUPPORT_SGX_MMU_DUMMY_PAGE)) && (!defined(FIX_HW_BRN_31620))
-		
-		PVR_ASSERT(pui32PDCpuVAddr[ui32PDEntry] == 0);
-#endif
-
-		
-		pui32PDCpuVAddr[ui32PDEntry] = pui32KernelPDCpuVAddr[ui32PDEntry];
-		if (pui32PDCpuVAddr[ui32PDEntry])
-		{
-			
-		#if defined(PDUMP)
-			
-		#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-			if(psMMUContext->bPDumpActive)
-		#endif 
-			{
-				PDUMPPDENTRIES(&psMMUHeap->sMMUAttrib, psMMUContext->hPDOSMemHandle, (IMG_VOID *) &pui32PDCpuVAddr[ui32PDEntry], sizeof(IMG_UINT32), 0, IMG_FALSE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-			}
-		#endif
-#if !defined(SGX_FEATURE_MULTIPLE_MEM_CONTEXTS)
-			bInvalidateDirectoryCache = IMG_TRUE;
-#endif
-		}
-	}
-
-#ifdef SUPPORT_SGX_MMU_BYPASS
-	DisableHostAccess(psMMUContext);
-#endif
-
-#if !defined(SGX_FEATURE_MULTIPLE_MEM_CONTEXTS)
-	if (bInvalidateDirectoryCache)
-	{
-		
-
-
-
-		MMU_InvalidateDirectoryCache(psMMUContext->psDevInfo);
-	}
-#endif
-}
-
-
-static IMG_VOID
-MMU_UnmapPagesAndFreePTs (MMU_HEAP *psMMUHeap,
-						  IMG_DEV_VIRTADDR sDevVAddr,
-						  IMG_UINT32 ui32PageCount,
-						  IMG_HANDLE hUniqueTag)
-{
-	IMG_DEV_VIRTADDR	sTmpDevVAddr;
-	IMG_UINT32			i;
-	IMG_UINT32			ui32PDIndex;
-	IMG_UINT32			ui32PTIndex;
-	IMG_UINT32			*pui32Tmp;
-	IMG_BOOL			bInvalidateDirectoryCache = IMG_FALSE;
-
-#if !defined (PDUMP)
-	PVR_UNREFERENCED_PARAMETER(hUniqueTag);
-#endif
-	
-	sTmpDevVAddr = sDevVAddr;
-
-	for(i=0; i<ui32PageCount; i++)
-	{
-		MMU_PT_INFO **ppsPTInfoList;
-
-		
-		ui32PDIndex = sTmpDevVAddr.uiAddr >> psMMUHeap->ui32PDShift;
-
-		
-		ppsPTInfoList = &psMMUHeap->psMMUContext->apsPTInfoList[ui32PDIndex];
-
-		{
-			
-			ui32PTIndex = (sTmpDevVAddr.uiAddr & psMMUHeap->ui32PTMask) >> psMMUHeap->ui32PTShift;
-
-			
-			if (!ppsPTInfoList[0])
-			{
-				PVR_DPF((PVR_DBG_MESSAGE, "MMU_UnmapPagesAndFreePTs: Invalid PT for alloc at VAddr:0x%08X (VaddrIni:0x%08X AllocPage:%u) PDIdx:%u PTIdx:%u",sTmpDevVAddr.uiAddr, sDevVAddr.uiAddr,i, ui32PDIndex, ui32PTIndex ));
-
-				
-				sTmpDevVAddr.uiAddr += psMMUHeap->ui32DataPageSize;
-
-				
-				continue;
-			}
-
-			
-			pui32Tmp = (IMG_UINT32*)ppsPTInfoList[0]->PTPageCpuVAddr;
-
-			
-			if (!pui32Tmp)
-			{
-				continue;
-			}
-
-			CheckPT(ppsPTInfoList[0]);
-
-			
-			if (pui32Tmp[ui32PTIndex] & SGX_MMU_PTE_VALID)
-			{
-				ppsPTInfoList[0]->ui32ValidPTECount--;
-			}
-			else
-			{
-				PVR_DPF((PVR_DBG_MESSAGE, "MMU_UnmapPagesAndFreePTs: Page is already invalid for alloc at VAddr:0x%08X (VAddrIni:0x%08X AllocPage:%u) PDIdx:%u PTIdx:%u",sTmpDevVAddr.uiAddr, sDevVAddr.uiAddr,i, ui32PDIndex, ui32PTIndex ));
-			}
-
-			
-			PVR_ASSERT((IMG_INT32)ppsPTInfoList[0]->ui32ValidPTECount >= 0);
-
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
-			
-			pui32Tmp[ui32PTIndex] = (psMMUHeap->psMMUContext->psDevInfo->sDummyDataDevPAddr.uiAddr>>SGX_MMU_PTE_ADDR_ALIGNSHIFT)
-									| SGX_MMU_PTE_VALID;
-#else
-			
-#if defined(FIX_HW_BRN_31620)
-			BRN31620InvalidatePageTableEntry(psMMUHeap->psMMUContext, ui32PDIndex, ui32PTIndex, &pui32Tmp[ui32PTIndex]);
-#else
-			pui32Tmp[ui32PTIndex] = 0;
-#endif
-#endif
-
-			CheckPT(ppsPTInfoList[0]);
-		}
-
-		
-
-		if (ppsPTInfoList[0] && (ppsPTInfoList[0]->ui32ValidPTECount == 0)
-			)
-		{
-#if defined(FIX_HW_BRN_31620)
-			if (BRN31620FreePageTable(psMMUHeap, ui32PDIndex) == IMG_TRUE)
-			{
-				bInvalidateDirectoryCache = IMG_TRUE;
-			}
-#else
-			_DeferredFreePageTable(psMMUHeap, ui32PDIndex - psMMUHeap->ui32PDBaseIndex, IMG_TRUE);
-			bInvalidateDirectoryCache = IMG_TRUE;
-#endif
-		}
-
-		
-		sTmpDevVAddr.uiAddr += psMMUHeap->ui32DataPageSize;
-	}
-
-	if(bInvalidateDirectoryCache)
-	{
-		MMU_InvalidateDirectoryCache(psMMUHeap->psMMUContext->psDevInfo);
-	}
-	else
-	{
-		MMU_InvalidatePageTableCache(psMMUHeap->psMMUContext->psDevInfo);
-	}
-
-#if defined(PDUMP)
-	MMU_PDumpPageTables(psMMUHeap,
-						sDevVAddr,
-						psMMUHeap->ui32DataPageSize * ui32PageCount,
-						IMG_TRUE,
-						hUniqueTag);
-#endif 
-}
-
-
-static IMG_VOID MMU_FreePageTables(IMG_PVOID pvMMUHeap,
-                                   IMG_SIZE_T ui32Start,
-                                   IMG_SIZE_T ui32End,
-                                   IMG_HANDLE hUniqueTag)
-{
-	MMU_HEAP *pMMUHeap = (MMU_HEAP*)pvMMUHeap;
-	IMG_DEV_VIRTADDR Start;
-
-	Start.uiAddr = (IMG_UINT32)ui32Start;
-
-	MMU_UnmapPagesAndFreePTs(pMMUHeap, Start, (IMG_UINT32)((ui32End - ui32Start) >> pMMUHeap->ui32PTShift), hUniqueTag);
-}
-
-MMU_HEAP *
-MMU_Create (MMU_CONTEXT *psMMUContext,
-			DEV_ARENA_DESCRIPTOR *psDevArena,
-			RA_ARENA **ppsVMArena,
-			PDUMP_MMU_ATTRIB **ppsMMUAttrib)
-{
-	MMU_HEAP *pMMUHeap;
-	IMG_UINT32 ui32ScaleSize;
-
-	PVR_UNREFERENCED_PARAMETER(ppsMMUAttrib);
-
-	PVR_ASSERT (psDevArena != IMG_NULL);
-
-	if (psDevArena == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "MMU_Create: invalid parameter"));
-		return IMG_NULL;
-	}
-
-	OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-				 sizeof (MMU_HEAP),
-				 (IMG_VOID **)&pMMUHeap, IMG_NULL,
-				 "MMU Heap");
-	if (pMMUHeap == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "MMU_Create: ERROR call to OSAllocMem failed"));
-		return IMG_NULL;
-	}
-
-	pMMUHeap->psMMUContext = psMMUContext;
-	pMMUHeap->psDevArena = psDevArena;
-
-	
-
-
-	switch(pMMUHeap->psDevArena->ui32DataPageSize)
-	{
-		case 0x1000:
-			ui32ScaleSize = 0;
-			pMMUHeap->ui32PDEPageSizeCtrl = SGX_MMU_PDE_PAGE_SIZE_4K;
-			break;
-#if defined(SGX_FEATURE_VARIABLE_MMU_PAGE_SIZE)
-		case 0x4000:
-			ui32ScaleSize = 2;
-			pMMUHeap->ui32PDEPageSizeCtrl = SGX_MMU_PDE_PAGE_SIZE_16K;
-			break;
-		case 0x10000:
-			ui32ScaleSize = 4;
-			pMMUHeap->ui32PDEPageSizeCtrl = SGX_MMU_PDE_PAGE_SIZE_64K;
-			break;
-		case 0x40000:
-			ui32ScaleSize = 6;
-			pMMUHeap->ui32PDEPageSizeCtrl = SGX_MMU_PDE_PAGE_SIZE_256K;
-			break;
-		case 0x100000:
-			ui32ScaleSize = 8;
-			pMMUHeap->ui32PDEPageSizeCtrl = SGX_MMU_PDE_PAGE_SIZE_1M;
-			break;
-		case 0x400000:
-			ui32ScaleSize = 10;
-			pMMUHeap->ui32PDEPageSizeCtrl = SGX_MMU_PDE_PAGE_SIZE_4M;
-			break;
-#endif 
-		default:
-			PVR_DPF((PVR_DBG_ERROR, "MMU_Create: invalid data page size"));
-			goto ErrorFreeHeap;
-	}
-
-	
-	pMMUHeap->ui32DataPageSize = psDevArena->ui32DataPageSize;
-	pMMUHeap->ui32DataPageBitWidth = SGX_MMU_PAGE_SHIFT + ui32ScaleSize;
-	pMMUHeap->ui32DataPageMask = pMMUHeap->ui32DataPageSize - 1;
-	
-	pMMUHeap->ui32PTShift = pMMUHeap->ui32DataPageBitWidth;
-	pMMUHeap->ui32PTBitWidth = SGX_MMU_PT_SHIFT - ui32ScaleSize;
-	pMMUHeap->ui32PTMask = SGX_MMU_PT_MASK & (SGX_MMU_PT_MASK<<ui32ScaleSize);
-	pMMUHeap->ui32PTSize = (IMG_UINT32)(1UL<<pMMUHeap->ui32PTBitWidth) * sizeof(IMG_UINT32);
-
-	
-	if(pMMUHeap->ui32PTSize < 4 * sizeof(IMG_UINT32))
-	{
-		pMMUHeap->ui32PTSize = 4 * sizeof(IMG_UINT32);
-	}
-	pMMUHeap->ui32PTNumEntriesAllocated = pMMUHeap->ui32PTSize >> 2;
-
-	
-	pMMUHeap->ui32PTNumEntriesUsable = (IMG_UINT32)(1UL << pMMUHeap->ui32PTBitWidth);
-
-	
-	pMMUHeap->ui32PDShift = pMMUHeap->ui32PTBitWidth + pMMUHeap->ui32PTShift;
-	pMMUHeap->ui32PDBitWidth = SGX_FEATURE_ADDRESS_SPACE_SIZE - pMMUHeap->ui32PTBitWidth - pMMUHeap->ui32DataPageBitWidth;
-	pMMUHeap->ui32PDMask = SGX_MMU_PD_MASK & (SGX_MMU_PD_MASK>>(32-SGX_FEATURE_ADDRESS_SPACE_SIZE));
-
-	
-#if !defined (SUPPORT_EXTERNAL_SYSTEM_CACHE)
-	
-
-
-
-	if(psDevArena->BaseDevVAddr.uiAddr > (pMMUHeap->ui32DataPageMask | pMMUHeap->ui32PTMask))
-	{
-		
-
-
-		PVR_ASSERT ((psDevArena->BaseDevVAddr.uiAddr
-						& (pMMUHeap->ui32DataPageMask
-							| pMMUHeap->ui32PTMask)) == 0);
-	}
-#endif
-	
-	pMMUHeap->ui32PTETotalUsable = pMMUHeap->psDevArena->ui32Size >> pMMUHeap->ui32PTShift;
-
-	
-	pMMUHeap->ui32PDBaseIndex = (pMMUHeap->psDevArena->BaseDevVAddr.uiAddr & pMMUHeap->ui32PDMask) >> pMMUHeap->ui32PDShift;
-
-	
-
-
-	pMMUHeap->ui32PageTableCount = (pMMUHeap->ui32PTETotalUsable + pMMUHeap->ui32PTNumEntriesUsable - 1)
-										>> pMMUHeap->ui32PTBitWidth;
-	PVR_ASSERT(pMMUHeap->ui32PageTableCount > 0);
-
-	
-	pMMUHeap->psVMArena = RA_Create(psDevArena->pszName,
-									psDevArena->BaseDevVAddr.uiAddr,
-									psDevArena->ui32Size,
-									IMG_NULL,
-									MAX(HOST_PAGESIZE(), pMMUHeap->ui32DataPageSize),
-									IMG_NULL,
-									IMG_NULL,
-									&MMU_FreePageTables,
-									pMMUHeap);
-
-	if (pMMUHeap->psVMArena == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "MMU_Create: ERROR call to RA_Create failed"));
-		goto ErrorFreePagetables;
-	}
-
-#if defined(PDUMP)
-	
-	MMU_SetPDumpAttribs(&pMMUHeap->sMMUAttrib,
-						psMMUContext->psDeviceNode,
-						pMMUHeap->ui32DataPageMask,
-						pMMUHeap->ui32PTSize);
-	*ppsMMUAttrib = &pMMUHeap->sMMUAttrib;
-
-	PDUMPCOMMENT("Create MMU device from arena %s (Size == 0x%x, DataPageSize == 0x%x, BaseDevVAddr == 0x%x)",
-			psDevArena->pszName,
-			psDevArena->ui32Size,
-			pMMUHeap->ui32DataPageSize,
-			psDevArena->BaseDevVAddr.uiAddr);
-#endif 
-
-#if 0 
-	
-	if(psDevArena->ui32HeapID == SGX_TILED_HEAP_ID)
-	{
-		IMG_UINT32 ui32RegVal;
-		IMG_UINT32 ui32XTileStride;
-
-		
-
-
-
-
-		ui32XTileStride	= 2;
-
-		ui32RegVal = (EUR_CR_BIF_TILE0_MIN_ADDRESS_MASK
-						& ((psDevArena->BaseDevVAddr.uiAddr>>20)
-						<< EUR_CR_BIF_TILE0_MIN_ADDRESS_SHIFT))
-					|(EUR_CR_BIF_TILE0_MAX_ADDRESS_MASK
-						& (((psDevArena->BaseDevVAddr.uiAddr+psDevArena->ui32Size)>>20)
-						<< EUR_CR_BIF_TILE0_MAX_ADDRESS_SHIFT))
-					|(EUR_CR_BIF_TILE0_CFG_MASK
-						& (((ui32XTileStride<<1)|8) << EUR_CR_BIF_TILE0_CFG_SHIFT));
-		PDUMPREG(SGX_PDUMPREG_NAME, EUR_CR_BIF_TILE0, ui32RegVal);
-	}
-#endif
-
-	
-
-	*ppsVMArena = pMMUHeap->psVMArena;
-
-	return pMMUHeap;
-
-	
-ErrorFreePagetables:
-	_DeferredFreePageTables (pMMUHeap);
-
-ErrorFreeHeap:
-	OSFreeMem (PVRSRV_OS_PAGEABLE_HEAP, sizeof(MMU_HEAP), pMMUHeap, IMG_NULL);
-	
-
-	return IMG_NULL;
-}
-
-IMG_VOID
-MMU_Delete (MMU_HEAP *pMMUHeap)
-{
-	if (pMMUHeap != IMG_NULL)
-	{
-		PVR_DPF ((PVR_DBG_MESSAGE, "MMU_Delete"));
-
-		if(pMMUHeap->psVMArena)
-		{
-			RA_Delete (pMMUHeap->psVMArena);
-		}
-
-#if defined(PDUMP)
-		PDUMPCOMMENT("Delete MMU device from arena %s (BaseDevVAddr == 0x%x, PT count for deferred free == 0x%x)",
-				pMMUHeap->psDevArena->pszName,
-				pMMUHeap->psDevArena->BaseDevVAddr.uiAddr,
-				pMMUHeap->ui32PageTableCount);
-#endif 
-
-#ifdef SUPPORT_SGX_MMU_BYPASS
-		EnableHostAccess(pMMUHeap->psMMUContext);
-#endif
-		_DeferredFreePageTables (pMMUHeap);
-#ifdef SUPPORT_SGX_MMU_BYPASS
-		DisableHostAccess(pMMUHeap->psMMUContext);
-#endif
-
-		OSFreeMem (PVRSRV_OS_PAGEABLE_HEAP, sizeof(MMU_HEAP), pMMUHeap, IMG_NULL);
-		
-	}
-}
-
-IMG_BOOL
-MMU_Alloc (MMU_HEAP *pMMUHeap,
-		   IMG_SIZE_T uSize,
-		   IMG_SIZE_T *pActualSize,
-		   IMG_UINT32 uFlags,
-		   IMG_UINT32 uDevVAddrAlignment,
-		   IMG_DEV_VIRTADDR *psDevVAddr)
-{
-	IMG_BOOL bStatus;
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-		"MMU_Alloc: uSize=0x%x, flags=0x%x, align=0x%x",
-		uSize, uFlags, uDevVAddrAlignment));
-
-	
-
-	if((uFlags & PVRSRV_MEM_USER_SUPPLIED_DEVVADDR) == 0)
-	{
-		IMG_UINTPTR_T uiAddr;
-
-		bStatus = RA_Alloc (pMMUHeap->psVMArena,
-							uSize,
-							pActualSize,
-							IMG_NULL,
-							0,
-							uDevVAddrAlignment,
-							0,
-							&uiAddr);
-		if(!bStatus)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"MMU_Alloc: RA_Alloc of VMArena failed"));
-			PVR_DPF((PVR_DBG_ERROR,"MMU_Alloc: Alloc of DevVAddr failed from heap %s ID%d",
-									pMMUHeap->psDevArena->pszName,
-									pMMUHeap->psDevArena->ui32HeapID));
-			return bStatus;
-		}
-
-		psDevVAddr->uiAddr = IMG_CAST_TO_DEVVADDR_UINT(uiAddr);
-	}
-
-	#ifdef SUPPORT_SGX_MMU_BYPASS
-	EnableHostAccess(pMMUHeap->psMMUContext);
-	#endif
-
-	
-	bStatus = _DeferredAllocPagetables(pMMUHeap, *psDevVAddr, (IMG_UINT32)uSize);
-
-	#ifdef SUPPORT_SGX_MMU_BYPASS
-	DisableHostAccess(pMMUHeap->psMMUContext);
-	#endif
-
-	if (!bStatus)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"MMU_Alloc: _DeferredAllocPagetables failed"));
-		PVR_DPF((PVR_DBG_ERROR,"MMU_Alloc: Failed to alloc pagetable(s) for DevVAddr 0x%8.8x from heap %s ID%d",
-								psDevVAddr->uiAddr,
-								pMMUHeap->psDevArena->pszName,
-								pMMUHeap->psDevArena->ui32HeapID));
-		if((uFlags & PVRSRV_MEM_USER_SUPPLIED_DEVVADDR) == 0)
-		{
-			
-			RA_Free (pMMUHeap->psVMArena, psDevVAddr->uiAddr, IMG_FALSE);
-		}
-	}
-
-	return bStatus;
-}
-
-IMG_VOID
-MMU_Free (MMU_HEAP *pMMUHeap, IMG_DEV_VIRTADDR DevVAddr, IMG_UINT32 ui32Size)
-{
-	PVR_ASSERT (pMMUHeap != IMG_NULL);
-
-	if (pMMUHeap == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "MMU_Free: invalid parameter"));
-		return;
-	}
-
-	PVR_DPF((PVR_DBG_MESSAGE, "MMU_Free: Freeing DevVAddr 0x%08X from heap %s ID%d",
-								DevVAddr.uiAddr,
-								pMMUHeap->psDevArena->pszName,
-								pMMUHeap->psDevArena->ui32HeapID));
-
-	if((DevVAddr.uiAddr >= pMMUHeap->psDevArena->BaseDevVAddr.uiAddr) &&
-		(DevVAddr.uiAddr + ui32Size <= pMMUHeap->psDevArena->BaseDevVAddr.uiAddr + pMMUHeap->psDevArena->ui32Size))
-	{
-		RA_Free (pMMUHeap->psVMArena, DevVAddr.uiAddr, IMG_TRUE);
-		return;
-	}
-
-	PVR_DPF((PVR_DBG_ERROR,"MMU_Free: Couldn't free DevVAddr %08X from heap %s ID%d (not in range of heap))",
-							DevVAddr.uiAddr,
-							pMMUHeap->psDevArena->pszName,
-							pMMUHeap->psDevArena->ui32HeapID));
-}
-
-IMG_VOID
-MMU_Enable (MMU_HEAP *pMMUHeap)
-{
-	PVR_UNREFERENCED_PARAMETER(pMMUHeap);
-	
-}
-
-IMG_VOID
-MMU_Disable (MMU_HEAP *pMMUHeap)
-{
-	PVR_UNREFERENCED_PARAMETER(pMMUHeap);
-	
-}
-
-#if defined(FIX_HW_BRN_31620)
-IMG_VOID MMU_GetCacheFlushRange(MMU_CONTEXT *pMMUContext, IMG_UINT32 *pui32RangeMask)
-{
-	IMG_UINT32 i;
-
-	for (i=0;i<BRN31620_CACHE_FLUSH_INDEX_SIZE;i++)
-	{
-		pui32RangeMask[i] = pMMUContext->ui32PDChangeMask[i];
-
-		
-		pMMUContext->ui32PDChangeMask[i] = 0;
-	}
-}
-
-IMG_VOID MMU_GetPDPhysAddr(MMU_CONTEXT *pMMUContext, IMG_DEV_PHYADDR *psDevPAddr)
-{
-	*psDevPAddr = pMMUContext->sPDDevPAddr;
-}
-
-#endif
-#if defined(PDUMP)
-static IMG_VOID
-MMU_PDumpPageTables	(MMU_HEAP *pMMUHeap,
-					 IMG_DEV_VIRTADDR DevVAddr,
-					 IMG_SIZE_T uSize,
-					 IMG_BOOL bForUnmap,
-					 IMG_HANDLE hUniqueTag)
-{
-	IMG_UINT32	ui32NumPTEntries;
-	IMG_UINT32	ui32PTIndex;
-	IMG_UINT32	*pui32PTEntry;
-
-	MMU_PT_INFO **ppsPTInfoList;
-	IMG_UINT32 ui32PDIndex;
-	IMG_UINT32 ui32PTDumpCount;
-
-	
-	ui32NumPTEntries = (IMG_UINT32)((uSize + pMMUHeap->ui32DataPageMask) >> pMMUHeap->ui32PTShift);
-
-	
-	ui32PDIndex = DevVAddr.uiAddr >> pMMUHeap->ui32PDShift;
-
-	
-	ppsPTInfoList = &pMMUHeap->psMMUContext->apsPTInfoList[ui32PDIndex];
-
-	
-	ui32PTIndex = (DevVAddr.uiAddr & pMMUHeap->ui32PTMask) >> pMMUHeap->ui32PTShift;
-
-	
-	PDUMPCOMMENT("Page table mods (num entries == %08X) %s", ui32NumPTEntries, bForUnmap ? "(for unmap)" : "");
-
-	
-	while(ui32NumPTEntries > 0)
-	{
-		MMU_PT_INFO* psPTInfo = *ppsPTInfoList++;
-
-		if(ui32NumPTEntries <= pMMUHeap->ui32PTNumEntriesUsable - ui32PTIndex)
-		{
-			ui32PTDumpCount = ui32NumPTEntries;
-		}
-		else
-		{
-			ui32PTDumpCount = pMMUHeap->ui32PTNumEntriesUsable - ui32PTIndex;
-		}
-
-		if (psPTInfo)
-		{
-			IMG_UINT32 ui32Flags = 0;
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-			ui32Flags |= ( MMU_IsHeapShared(pMMUHeap) ) ? PDUMP_FLAGS_PERSISTENT : 0;
-#endif
-			pui32PTEntry = (IMG_UINT32*)psPTInfo->PTPageCpuVAddr;
-			PDUMPMEMPTENTRIES(&pMMUHeap->sMMUAttrib, psPTInfo->hPTPageOSMemHandle, (IMG_VOID *) &pui32PTEntry[ui32PTIndex], ui32PTDumpCount * sizeof(IMG_UINT32), ui32Flags, IMG_FALSE, PDUMP_PT_UNIQUETAG, hUniqueTag);
-		}
-
-		
-		ui32NumPTEntries -= ui32PTDumpCount;
-
-		
-		ui32PTIndex = 0;
-	}
-
-	PDUMPCOMMENT("Finished page table mods %s", bForUnmap ? "(for unmap)" : "");
-}
-#endif 
-
-
-static IMG_VOID
-MMU_MapPage (MMU_HEAP *pMMUHeap,
-			 IMG_DEV_VIRTADDR DevVAddr,
-			 IMG_DEV_PHYADDR DevPAddr,
-			 IMG_UINT32 ui32MemFlags)
-{
-	IMG_UINT32 ui32Index;
-	IMG_UINT32 *pui32Tmp;
-	IMG_UINT32 ui32MMUFlags = 0;
-	MMU_PT_INFO **ppsPTInfoList;
-
-	
-	PVR_ASSERT((DevPAddr.uiAddr & pMMUHeap->ui32DataPageMask) == 0);
-
-	
-
-	if(((PVRSRV_MEM_READ|PVRSRV_MEM_WRITE) & ui32MemFlags) == (PVRSRV_MEM_READ|PVRSRV_MEM_WRITE))
-	{
-		
-		ui32MMUFlags = 0;
-	}
-	else if(PVRSRV_MEM_READ & ui32MemFlags)
-	{
-		
-		ui32MMUFlags |= SGX_MMU_PTE_READONLY;
-	}
-	else if(PVRSRV_MEM_WRITE & ui32MemFlags)
-	{
-		
-		ui32MMUFlags |= SGX_MMU_PTE_WRITEONLY;
-	}
-
-	
-	if(PVRSRV_MEM_CACHE_CONSISTENT & ui32MemFlags)
-	{
-		ui32MMUFlags |= SGX_MMU_PTE_CACHECONSISTENT;
-	}
-
-#if !defined(FIX_HW_BRN_25503)
-	
-	if(PVRSRV_MEM_EDM_PROTECT & ui32MemFlags)
-	{
-		ui32MMUFlags |= SGX_MMU_PTE_EDMPROTECT;
-	}
-#endif
-
-	
-
-
-	
-	ui32Index = DevVAddr.uiAddr >> pMMUHeap->ui32PDShift;
-
-	
-	ppsPTInfoList = &pMMUHeap->psMMUContext->apsPTInfoList[ui32Index];
-
-	CheckPT(ppsPTInfoList[0]);
-
-	
-	ui32Index = (DevVAddr.uiAddr & pMMUHeap->ui32PTMask) >> pMMUHeap->ui32PTShift;
-
-	
-	pui32Tmp = (IMG_UINT32*)ppsPTInfoList[0]->PTPageCpuVAddr;
-
-#if !defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
-	{
-		IMG_UINT32 uTmp = pui32Tmp[ui32Index];
-		
-		
-#if defined(FIX_HW_BRN_31620)
-		if ((uTmp & SGX_MMU_PTE_VALID) && ((DevVAddr.uiAddr & BRN31620_PDE_CACHE_FILL_MASK) != BRN31620_DUMMY_PAGE_OFFSET))
-#else
- 		if ((uTmp & SGX_MMU_PTE_VALID) != 0)
-#endif
-
-		{
-			PVR_DPF((PVR_DBG_ERROR, "MMU_MapPage: Page is already valid for alloc at VAddr:0x%08X PDIdx:%u PTIdx:%u",
-									DevVAddr.uiAddr,
-									DevVAddr.uiAddr >> pMMUHeap->ui32PDShift,
-									ui32Index ));
-			PVR_DPF((PVR_DBG_ERROR, "MMU_MapPage: Page table entry value: 0x%08X", uTmp));
-			PVR_DPF((PVR_DBG_ERROR, "MMU_MapPage: Physical page to map: 0x%08X", DevPAddr.uiAddr));
-		}
-#if !defined(FIX_HW_BRN_31620)
-		PVR_ASSERT((uTmp & SGX_MMU_PTE_VALID) == 0);
-#endif
-	}
-#endif
-
-	
-	ppsPTInfoList[0]->ui32ValidPTECount++;
-
-	
-	pui32Tmp[ui32Index] = ((DevPAddr.uiAddr>>SGX_MMU_PTE_ADDR_ALIGNSHIFT)
-						& ((~pMMUHeap->ui32DataPageMask)>>SGX_MMU_PTE_ADDR_ALIGNSHIFT))
-						| SGX_MMU_PTE_VALID
-						| ui32MMUFlags;
-
-	CheckPT(ppsPTInfoList[0]);
-}
-
-
-IMG_VOID
-MMU_MapScatter (MMU_HEAP *pMMUHeap,
-				IMG_DEV_VIRTADDR DevVAddr,
-				IMG_SYS_PHYADDR *psSysAddr,
-				IMG_SIZE_T uSize,
-				IMG_UINT32 ui32MemFlags,
-				IMG_HANDLE hUniqueTag)
-{
-#if defined(PDUMP)
-	IMG_DEV_VIRTADDR MapBaseDevVAddr;
-#endif 
-	IMG_UINT32 uCount, i;
-	IMG_DEV_PHYADDR DevPAddr;
-
-	PVR_ASSERT (pMMUHeap != IMG_NULL);
-
-#if defined(PDUMP)
-	MapBaseDevVAddr = DevVAddr;
-#else
-	PVR_UNREFERENCED_PARAMETER(hUniqueTag);
-#endif 
-
-	for (i=0, uCount=0; uCount<uSize; i++, uCount+=pMMUHeap->ui32DataPageSize)
-	{
-		IMG_SYS_PHYADDR sSysAddr;
-
-		sSysAddr = psSysAddr[i];
-
-
-		
-		PVR_ASSERT((sSysAddr.uiAddr & pMMUHeap->ui32DataPageMask) == 0);
-
-		DevPAddr = SysSysPAddrToDevPAddr(PVRSRV_DEVICE_TYPE_SGX, sSysAddr);
-
-		MMU_MapPage (pMMUHeap, DevVAddr, DevPAddr, ui32MemFlags);
-		DevVAddr.uiAddr += pMMUHeap->ui32DataPageSize;
-
-		PVR_DPF ((PVR_DBG_MESSAGE,
-				 "MMU_MapScatter: devVAddr=%08X, SysAddr=%08X, size=0x%x/0x%x",
-				  DevVAddr.uiAddr, sSysAddr.uiAddr, uCount, uSize));
-	}
-
-#if defined(PDUMP)
-	MMU_PDumpPageTables (pMMUHeap, MapBaseDevVAddr, uSize, IMG_FALSE, hUniqueTag);
-#endif 
-}
-
-IMG_VOID
-MMU_MapPages (MMU_HEAP *pMMUHeap,
-			  IMG_DEV_VIRTADDR DevVAddr,
-			  IMG_SYS_PHYADDR SysPAddr,
-			  IMG_SIZE_T uSize,
-			  IMG_UINT32 ui32MemFlags,
-			  IMG_HANDLE hUniqueTag)
-{
-	IMG_DEV_PHYADDR DevPAddr;
-#if defined(PDUMP)
-	IMG_DEV_VIRTADDR MapBaseDevVAddr;
-#endif 
-	IMG_UINT32 uCount;
-	IMG_UINT32 ui32VAdvance;
-	IMG_UINT32 ui32PAdvance;
-
-	PVR_ASSERT (pMMUHeap != IMG_NULL);
-
-	PVR_DPF ((PVR_DBG_MESSAGE, "MMU_MapPages: heap:%s, heap_id:%d devVAddr=%08X, SysPAddr=%08X, size=0x%x",
-								pMMUHeap->psDevArena->pszName,
-								pMMUHeap->psDevArena->ui32HeapID,
-								DevVAddr.uiAddr, 
-								SysPAddr.uiAddr,
-								uSize));
-
-	
-	ui32VAdvance = pMMUHeap->ui32DataPageSize;
-	ui32PAdvance = pMMUHeap->ui32DataPageSize;
-
-#if defined(PDUMP)
-	MapBaseDevVAddr = DevVAddr;
-#else
-	PVR_UNREFERENCED_PARAMETER(hUniqueTag);
-#endif 
-
-	DevPAddr = SysSysPAddrToDevPAddr(PVRSRV_DEVICE_TYPE_SGX, SysPAddr);
-
-	
-	PVR_ASSERT((DevPAddr.uiAddr & pMMUHeap->ui32DataPageMask) == 0);
-
-#if defined(FIX_HW_BRN_23281)
-	if(ui32MemFlags & PVRSRV_MEM_INTERLEAVED)
-	{
-		ui32VAdvance *= 2;
-	}
-#endif
-
-	
-
-
-	if(ui32MemFlags & PVRSRV_MEM_DUMMY)
-	{
-		ui32PAdvance = 0;
-	}
-
-	for (uCount=0; uCount<uSize; uCount+=ui32VAdvance)
-	{
-		MMU_MapPage (pMMUHeap, DevVAddr, DevPAddr, ui32MemFlags);
-		DevVAddr.uiAddr += ui32VAdvance;
-		DevPAddr.uiAddr += ui32PAdvance;
-	}
-
-#if defined(PDUMP)
-	MMU_PDumpPageTables (pMMUHeap, MapBaseDevVAddr, uSize, IMG_FALSE, hUniqueTag);
-#endif 
-}
-
-IMG_VOID
-MMU_MapShadow (MMU_HEAP          *pMMUHeap,
-			   IMG_DEV_VIRTADDR   MapBaseDevVAddr,
-			   IMG_SIZE_T         uByteSize,
-			   IMG_CPU_VIRTADDR   CpuVAddr,
-			   IMG_HANDLE         hOSMemHandle,
-			   IMG_DEV_VIRTADDR  *pDevVAddr,
-			   IMG_UINT32         ui32MemFlags,
-			   IMG_HANDLE         hUniqueTag)
-{
-	IMG_UINT32			i;
-	IMG_UINT32			uOffset = 0;
-	IMG_DEV_VIRTADDR	MapDevVAddr;
-	IMG_UINT32			ui32VAdvance;
-	IMG_UINT32			ui32PAdvance;
-
-#if !defined (PDUMP)
-	PVR_UNREFERENCED_PARAMETER(hUniqueTag);
-#endif
-
-	PVR_DPF ((PVR_DBG_MESSAGE,
-			"MMU_MapShadow: DevVAddr:%08X, Bytes:0x%x, CPUVAddr:%08X",
-			MapBaseDevVAddr.uiAddr,
-			uByteSize,
-			(IMG_UINTPTR_T)CpuVAddr));
-
-	
-	ui32VAdvance = pMMUHeap->ui32DataPageSize;
-	ui32PAdvance = pMMUHeap->ui32DataPageSize;
-
-	
-	PVR_ASSERT(((IMG_UINTPTR_T)CpuVAddr & (SGX_MMU_PAGE_SIZE - 1)) == 0);
-	PVR_ASSERT(((IMG_UINT32)uByteSize & pMMUHeap->ui32DataPageMask) == 0);
-	pDevVAddr->uiAddr = MapBaseDevVAddr.uiAddr;
-
-#if defined(FIX_HW_BRN_23281)
-	if(ui32MemFlags & PVRSRV_MEM_INTERLEAVED)
-	{
-		ui32VAdvance *= 2;
-	}
-#endif
-
-	
-
-
-	if(ui32MemFlags & PVRSRV_MEM_DUMMY)
-	{
-		ui32PAdvance = 0;
-	}
-
-	
-	MapDevVAddr = MapBaseDevVAddr;
-	for (i=0; i<uByteSize; i+=ui32VAdvance)
-	{
-		IMG_CPU_PHYADDR CpuPAddr;
-		IMG_DEV_PHYADDR DevPAddr;
-
-		if(CpuVAddr)
-		{
-			CpuPAddr = OSMapLinToCPUPhys (hOSMemHandle,
-										  (IMG_VOID *)((IMG_UINTPTR_T)CpuVAddr + uOffset));
-		}
-		else
-		{
-			CpuPAddr = OSMemHandleToCpuPAddr(hOSMemHandle, uOffset);
-		}
-		DevPAddr = SysCpuPAddrToDevPAddr (PVRSRV_DEVICE_TYPE_SGX, CpuPAddr);
-
-		
-		PVR_ASSERT((DevPAddr.uiAddr & pMMUHeap->ui32DataPageMask) == 0);
-
-		PVR_DPF ((PVR_DBG_MESSAGE,
-				"Offset=0x%x: CpuVAddr=%08X, CpuPAddr=%08X, DevVAddr=%08X, DevPAddr=%08X",
-				uOffset,
-				(IMG_UINTPTR_T)CpuVAddr + uOffset,
-				CpuPAddr.uiAddr,
-				MapDevVAddr.uiAddr,
-				DevPAddr.uiAddr));
-
-		MMU_MapPage (pMMUHeap, MapDevVAddr, DevPAddr, ui32MemFlags);
-
-		
-		MapDevVAddr.uiAddr += ui32VAdvance;
-		uOffset += ui32PAdvance;
-	}
-
-#if defined(PDUMP)
-	MMU_PDumpPageTables (pMMUHeap, MapBaseDevVAddr, uByteSize, IMG_FALSE, hUniqueTag);
-#endif 
-}
-
-
-IMG_VOID
-MMU_UnmapPages (MMU_HEAP *psMMUHeap,
-				IMG_DEV_VIRTADDR sDevVAddr,
-				IMG_UINT32 ui32PageCount,
-				IMG_HANDLE hUniqueTag)
-{
-	IMG_UINT32			uPageSize = psMMUHeap->ui32DataPageSize;
-	IMG_DEV_VIRTADDR	sTmpDevVAddr;
-	IMG_UINT32			i;
-	IMG_UINT32			ui32PDIndex;
-	IMG_UINT32			ui32PTIndex;
-	IMG_UINT32			*pui32Tmp;
-
-#if !defined (PDUMP)
-	PVR_UNREFERENCED_PARAMETER(hUniqueTag);
-#endif
-
-	
-	sTmpDevVAddr = sDevVAddr;
-
-	for(i=0; i<ui32PageCount; i++)
-	{
-		MMU_PT_INFO **ppsPTInfoList;
-
-		
-		ui32PDIndex = sTmpDevVAddr.uiAddr >> psMMUHeap->ui32PDShift;
-
-		
-		ppsPTInfoList = &psMMUHeap->psMMUContext->apsPTInfoList[ui32PDIndex];
-
-		
-		ui32PTIndex = (sTmpDevVAddr.uiAddr & psMMUHeap->ui32PTMask) >> psMMUHeap->ui32PTShift;
-
-		
-		if (!ppsPTInfoList[0])
-		{
-			PVR_DPF((PVR_DBG_ERROR, "MMU_UnmapPages: ERROR Invalid PT for alloc at VAddr:0x%08X (VaddrIni:0x%08X AllocPage:%u) PDIdx:%u PTIdx:%u",
-									sTmpDevVAddr.uiAddr,
-									sDevVAddr.uiAddr,
-									i,
-									ui32PDIndex,
-									ui32PTIndex));
-
-			
-			sTmpDevVAddr.uiAddr += uPageSize;
-
-			
-			continue;
-		}
-
-		CheckPT(ppsPTInfoList[0]);
-
-		
-		pui32Tmp = (IMG_UINT32*)ppsPTInfoList[0]->PTPageCpuVAddr;
-
-		
-		if (pui32Tmp[ui32PTIndex] & SGX_MMU_PTE_VALID)
-		{
-			ppsPTInfoList[0]->ui32ValidPTECount--;
-		}
-		else
-		{
-			PVR_DPF((PVR_DBG_ERROR, "MMU_UnmapPages: Page is already invalid for alloc at VAddr:0x%08X (VAddrIni:0x%08X AllocPage:%u) PDIdx:%u PTIdx:%u",
-									sTmpDevVAddr.uiAddr,
-									sDevVAddr.uiAddr,
-									i,
-									ui32PDIndex,
-									ui32PTIndex));
-			PVR_DPF((PVR_DBG_ERROR, "MMU_UnmapPages: Page table entry value: 0x%08X", pui32Tmp[ui32PTIndex]));
-		}
-
-		
-		PVR_ASSERT((IMG_INT32)ppsPTInfoList[0]->ui32ValidPTECount >= 0);
-
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
-		
-		pui32Tmp[ui32PTIndex] = (psMMUHeap->psMMUContext->psDevInfo->sDummyDataDevPAddr.uiAddr>>SGX_MMU_PTE_ADDR_ALIGNSHIFT)
-								| SGX_MMU_PTE_VALID;
-#else
-		
-#if defined(FIX_HW_BRN_31620)
-		BRN31620InvalidatePageTableEntry(psMMUHeap->psMMUContext, ui32PDIndex, ui32PTIndex, &pui32Tmp[ui32PTIndex]);
-#else
-		pui32Tmp[ui32PTIndex] = 0;
-#endif
-#endif
-
-		CheckPT(ppsPTInfoList[0]);
-
-		
-		sTmpDevVAddr.uiAddr += uPageSize;
-	}
-
-	MMU_InvalidatePageTableCache(psMMUHeap->psMMUContext->psDevInfo);
-
-#if defined(PDUMP)
-	MMU_PDumpPageTables (psMMUHeap, sDevVAddr, uPageSize*ui32PageCount, IMG_TRUE, hUniqueTag);
-#endif 
-}
-
-
-IMG_DEV_PHYADDR
-MMU_GetPhysPageAddr(MMU_HEAP *pMMUHeap, IMG_DEV_VIRTADDR sDevVPageAddr)
-{
-	IMG_UINT32 *pui32PageTable;
-	IMG_UINT32 ui32Index;
-	IMG_DEV_PHYADDR sDevPAddr;
-	MMU_PT_INFO **ppsPTInfoList;
-
-	
-	ui32Index = sDevVPageAddr.uiAddr >> pMMUHeap->ui32PDShift;
-
-	
-	ppsPTInfoList = &pMMUHeap->psMMUContext->apsPTInfoList[ui32Index];
-	if (!ppsPTInfoList[0])
-	{
-		PVR_DPF((PVR_DBG_ERROR,"MMU_GetPhysPageAddr: Not mapped in at 0x%08x", sDevVPageAddr.uiAddr));
-		sDevPAddr.uiAddr = 0;
-		return sDevPAddr;
-	}
-
-	
-	ui32Index = (sDevVPageAddr.uiAddr & pMMUHeap->ui32PTMask) >> pMMUHeap->ui32PTShift;
-
-	
-	pui32PageTable = (IMG_UINT32*)ppsPTInfoList[0]->PTPageCpuVAddr;
-
-	
-	sDevPAddr.uiAddr = pui32PageTable[ui32Index];
-
-	
-	sDevPAddr.uiAddr &= ~(pMMUHeap->ui32DataPageMask>>SGX_MMU_PTE_ADDR_ALIGNSHIFT);
-
-	
-	sDevPAddr.uiAddr <<= SGX_MMU_PTE_ADDR_ALIGNSHIFT;
-
-	return sDevPAddr;
-}
-
-
-IMG_DEV_PHYADDR MMU_GetPDDevPAddr(MMU_CONTEXT *pMMUContext)
-{
-	return (pMMUContext->sPDDevPAddr);
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR SGXGetPhysPageAddrKM (IMG_HANDLE hDevMemHeap,
-								   IMG_DEV_VIRTADDR sDevVAddr,
-								   IMG_DEV_PHYADDR *pDevPAddr,
-								   IMG_CPU_PHYADDR *pCpuPAddr)
-{
-	MMU_HEAP *pMMUHeap;
-	IMG_DEV_PHYADDR DevPAddr;
-
-	
-
-	pMMUHeap = (MMU_HEAP*)BM_GetMMUHeap(hDevMemHeap);
-
-	DevPAddr = MMU_GetPhysPageAddr(pMMUHeap, sDevVAddr);
-	pCpuPAddr->uiAddr = DevPAddr.uiAddr; 
-	pDevPAddr->uiAddr = DevPAddr.uiAddr;
-
-	return (pDevPAddr->uiAddr != 0) ? PVRSRV_OK : PVRSRV_ERROR_INVALID_PARAMS;
-}
-
-
-PVRSRV_ERROR SGXGetMMUPDAddrKM(IMG_HANDLE		hDevCookie,
-								IMG_HANDLE 		hDevMemContext,
-								IMG_DEV_PHYADDR *psPDDevPAddr)
-{
-	if (!hDevCookie || !hDevMemContext || !psPDDevPAddr)
-	{
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	
-	*psPDDevPAddr = ((BM_CONTEXT*)hDevMemContext)->psMMUContext->sPDDevPAddr;
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR MMU_BIFResetPDAlloc(PVRSRV_SGXDEV_INFO *psDevInfo)
-{
-	PVRSRV_ERROR eError;
-	SYS_DATA *psSysData;
-	RA_ARENA *psLocalDevMemArena;
-	IMG_HANDLE hOSMemHandle = IMG_NULL;
-	IMG_BYTE *pui8MemBlock = IMG_NULL;
-	IMG_SYS_PHYADDR sMemBlockSysPAddr;
-	IMG_CPU_PHYADDR sMemBlockCpuPAddr;
-
-	SysAcquireData(&psSysData);
-
-	psLocalDevMemArena = psSysData->apsLocalDevMemArena[0];
-
-	
-	if(psLocalDevMemArena == IMG_NULL)
-	{
-		
-		eError = OSAllocPages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-						      3 * SGX_MMU_PAGE_SIZE,
-						      SGX_MMU_PAGE_SIZE,
-						      (IMG_VOID **)&pui8MemBlock,
-						      &hOSMemHandle);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "MMU_BIFResetPDAlloc: ERROR call to OSAllocPages failed"));
-			return eError;
-		}
-
-		
-		if(pui8MemBlock)
-		{
-			sMemBlockCpuPAddr = OSMapLinToCPUPhys(hOSMemHandle,
-												  pui8MemBlock);
-		}
-		else
-		{
-			
-			sMemBlockCpuPAddr = OSMemHandleToCpuPAddr(hOSMemHandle, 0);
-		}
-	}
-	else
-	{
-		
-
-		if(RA_Alloc(psLocalDevMemArena,
-					3 * SGX_MMU_PAGE_SIZE,
-					IMG_NULL,
-					IMG_NULL,
-					0,
-					SGX_MMU_PAGE_SIZE,
-					0,
-					&(sMemBlockSysPAddr.uiAddr)) != IMG_TRUE)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "MMU_BIFResetPDAlloc: ERROR call to RA_Alloc failed"));
-			return PVRSRV_ERROR_OUT_OF_MEMORY;
-		}
-
-		
-		sMemBlockCpuPAddr = SysSysPAddrToCpuPAddr(sMemBlockSysPAddr);
-		pui8MemBlock = OSMapPhysToLin(sMemBlockCpuPAddr,
-									  SGX_MMU_PAGE_SIZE * 3,
-									  PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-									  &hOSMemHandle);
-		if(!pui8MemBlock)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "MMU_BIFResetPDAlloc: ERROR failed to map page tables"));
-			return PVRSRV_ERROR_BAD_MAPPING;
-		}
-	}
-
-	psDevInfo->hBIFResetPDOSMemHandle = hOSMemHandle;
-	psDevInfo->sBIFResetPDDevPAddr = SysCpuPAddrToDevPAddr(PVRSRV_DEVICE_TYPE_SGX, sMemBlockCpuPAddr);
-	psDevInfo->sBIFResetPTDevPAddr.uiAddr = psDevInfo->sBIFResetPDDevPAddr.uiAddr + SGX_MMU_PAGE_SIZE;
-	psDevInfo->sBIFResetPageDevPAddr.uiAddr = psDevInfo->sBIFResetPTDevPAddr.uiAddr + SGX_MMU_PAGE_SIZE;
-	
-	
-	psDevInfo->pui32BIFResetPD = (IMG_UINT32 *)pui8MemBlock;
-	psDevInfo->pui32BIFResetPT = (IMG_UINT32 *)(pui8MemBlock + SGX_MMU_PAGE_SIZE);
-
-	
-	OSMemSet(psDevInfo->pui32BIFResetPD, 0, SGX_MMU_PAGE_SIZE);
-	OSMemSet(psDevInfo->pui32BIFResetPT, 0, SGX_MMU_PAGE_SIZE);
-	
-	OSMemSet(pui8MemBlock + (2 * SGX_MMU_PAGE_SIZE), 0xDB, SGX_MMU_PAGE_SIZE);
-
-	return PVRSRV_OK;
-}
-
-IMG_VOID MMU_BIFResetPDFree(PVRSRV_SGXDEV_INFO *psDevInfo)
-{
-	SYS_DATA *psSysData;
-	RA_ARENA *psLocalDevMemArena;
-	IMG_SYS_PHYADDR sPDSysPAddr;
-
-	SysAcquireData(&psSysData);
-
-	psLocalDevMemArena = psSysData->apsLocalDevMemArena[0];
-
-	
-	if(psLocalDevMemArena == IMG_NULL)
-	{
-		OSFreePages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-					3 * SGX_MMU_PAGE_SIZE,
-					psDevInfo->pui32BIFResetPD,
-					psDevInfo->hBIFResetPDOSMemHandle);
-	}
-	else
-	{
-		OSUnMapPhysToLin(psDevInfo->pui32BIFResetPD,
-                         3 * SGX_MMU_PAGE_SIZE,
-                         PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-                         psDevInfo->hBIFResetPDOSMemHandle);
-
-		sPDSysPAddr = SysDevPAddrToSysPAddr(PVRSRV_DEVICE_TYPE_SGX, psDevInfo->sBIFResetPDDevPAddr);
-		RA_Free(psLocalDevMemArena, sPDSysPAddr.uiAddr, IMG_FALSE);
-	}
-}
-
-
-#if defined(FIX_HW_BRN_22997) && defined(FIX_HW_BRN_23030) && defined(SGX_FEATURE_HOST_PORT)
-PVRSRV_ERROR WorkaroundBRN22997Alloc(PVRSRV_DEVICE_NODE	*psDeviceNode)
-{
-	PVRSRV_ERROR eError;
-	SYS_DATA *psSysData;
-	RA_ARENA *psLocalDevMemArena;
-	IMG_HANDLE hPTPageOSMemHandle = IMG_NULL;
-	IMG_HANDLE hPDPageOSMemHandle = IMG_NULL;
-	IMG_UINT32 *pui32PD = IMG_NULL;
-	IMG_UINT32 *pui32PT = IMG_NULL;
-	IMG_CPU_PHYADDR sCpuPAddr;
-	IMG_DEV_PHYADDR sPTDevPAddr;
-	IMG_DEV_PHYADDR sPDDevPAddr;
-	PVRSRV_SGXDEV_INFO *psDevInfo;
-	IMG_UINT32 ui32PDOffset;
-	IMG_UINT32 ui32PTOffset;
-
-	psDevInfo = (PVRSRV_SGXDEV_INFO *)psDeviceNode->pvDevice;
-
-	SysAcquireData(&psSysData);
-
-	psLocalDevMemArena = psSysData->apsLocalDevMemArena[0];
-
-	
-	if(psLocalDevMemArena == IMG_NULL)
-	{
-		
-		eError = OSAllocPages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-						   SGX_MMU_PAGE_SIZE,
-						   SGX_MMU_PAGE_SIZE,
-						   (IMG_VOID **)&pui32PT,
-						   &hPTPageOSMemHandle);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "WorkaroundBRN22997: ERROR call to OSAllocPages failed"));
-			return eError;
-		}
-		ui32PTOffset = 0;
-
-		eError = OSAllocPages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-						   SGX_MMU_PAGE_SIZE,
-						   SGX_MMU_PAGE_SIZE,
-						   (IMG_VOID **)&pui32PD,
-						   &hPDPageOSMemHandle);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "WorkaroundBRN22997: ERROR call to OSAllocPages failed"));
-			return eError;
-		}
-		ui32PDOffset = 0;
-
-		
-		if(pui32PT)
-        {
-            sCpuPAddr = OSMapLinToCPUPhys(hPTPageOSMemHandle,
-										  pui32PT);
-        }
-        else
-        {
-            
-            sCpuPAddr = OSMemHandleToCpuPAddr(hPTPageOSMemHandle, 0);
-        }
-		sPTDevPAddr = SysCpuPAddrToDevPAddr(PVRSRV_DEVICE_TYPE_SGX, sCpuPAddr);
-
-		if(pui32PD)
-        {
-            sCpuPAddr = OSMapLinToCPUPhys(hPDPageOSMemHandle,
-										  pui32PD);
-        }
-        else
-        {
-            
-            sCpuPAddr = OSMemHandleToCpuPAddr(hPDPageOSMemHandle, 0);
-        }
-		sPDDevPAddr = SysCpuPAddrToDevPAddr(PVRSRV_DEVICE_TYPE_SGX, sCpuPAddr);
-
-	}
-	else
-	{
-		
-
-		if(RA_Alloc(psLocalDevMemArena,
-					SGX_MMU_PAGE_SIZE * 2,
-					IMG_NULL,
-					IMG_NULL,
-					0,
-					SGX_MMU_PAGE_SIZE,
-					0,
-					&(psDevInfo->sBRN22997SysPAddr.uiAddr))!= IMG_TRUE)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "WorkaroundBRN22997: ERROR call to RA_Alloc failed"));
-			return PVRSRV_ERROR_OUT_OF_MEMORY;
-		}
-
-		
-		sCpuPAddr = SysSysPAddrToCpuPAddr(psDevInfo->sBRN22997SysPAddr);
-		pui32PT = OSMapPhysToLin(sCpuPAddr,
-								SGX_MMU_PAGE_SIZE * 2,
-                                PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-								&hPTPageOSMemHandle);
-		if(!pui32PT)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "WorkaroundBRN22997: ERROR failed to map page tables"));
-			return PVRSRV_ERROR_BAD_MAPPING;
-		}
-		ui32PTOffset = 0;
-
-		
-		sPTDevPAddr = SysCpuPAddrToDevPAddr(PVRSRV_DEVICE_TYPE_SGX, sCpuPAddr);
-		
-		pui32PD = pui32PT + SGX_MMU_PAGE_SIZE/sizeof(IMG_UINT32);
-		ui32PDOffset = SGX_MMU_PAGE_SIZE;
-		hPDPageOSMemHandle = hPTPageOSMemHandle;
-		sPDDevPAddr.uiAddr = sPTDevPAddr.uiAddr + SGX_MMU_PAGE_SIZE;
-	}
-
-	OSMemSet(pui32PD, 0, SGX_MMU_PAGE_SIZE);
-	OSMemSet(pui32PT, 0, SGX_MMU_PAGE_SIZE);
-
-	
-	PDUMPMALLOCPAGETABLE(&psDeviceNode->sDevId, hPDPageOSMemHandle, ui32PDOffset, pui32PD, SGX_MMU_PAGE_SIZE, 0, PDUMP_PD_UNIQUETAG);
-	PDUMPMALLOCPAGETABLE(&psDeviceNode->sDevId, hPTPageOSMemHandle, ui32PTOffset, pui32PT, SGX_MMU_PAGE_SIZE, 0, PDUMP_PT_UNIQUETAG);
-	PDUMPMEMPTENTRIES(&psDevInfo->sMMUAttrib, hPDPageOSMemHandle, pui32PD, SGX_MMU_PAGE_SIZE, 0, IMG_TRUE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-	PDUMPMEMPTENTRIES(&psDevInfo->sMMUAttrib, hPTPageOSMemHandle, pui32PT, SGX_MMU_PAGE_SIZE, 0, IMG_TRUE, PDUMP_PT_UNIQUETAG, PDUMP_PD_UNIQUETAG);
-
-	psDevInfo->hBRN22997PTPageOSMemHandle = hPTPageOSMemHandle;
-	psDevInfo->hBRN22997PDPageOSMemHandle = hPDPageOSMemHandle;
-	psDevInfo->sBRN22997PTDevPAddr = sPTDevPAddr;
-	psDevInfo->sBRN22997PDDevPAddr = sPDDevPAddr;
-	psDevInfo->pui32BRN22997PD = pui32PD;
-	psDevInfo->pui32BRN22997PT = pui32PT;
-
-	return PVRSRV_OK;
-}
-
-
-IMG_VOID WorkaroundBRN22997ReadHostPort(PVRSRV_SGXDEV_INFO *psDevInfo)
-{
-	IMG_UINT32 *pui32PD = psDevInfo->pui32BRN22997PD;
-	IMG_UINT32 *pui32PT = psDevInfo->pui32BRN22997PT;
-	IMG_UINT32 ui32PDIndex;
-	IMG_UINT32 ui32PTIndex;
-	IMG_DEV_VIRTADDR sDevVAddr;
-	volatile IMG_UINT32 *pui32HostPort;
-	IMG_UINT32 ui32BIFCtrl;
-
-	
-	
-	
-	pui32HostPort = (volatile IMG_UINT32*)(((IMG_UINT8*)psDevInfo->pvHostPortBaseKM) + SYS_SGX_HOSTPORT_BRN23030_OFFSET);
-
-	
-	sDevVAddr.uiAddr = SYS_SGX_HOSTPORT_BASE_DEVVADDR + SYS_SGX_HOSTPORT_BRN23030_OFFSET;
-
-	ui32PDIndex = (sDevVAddr.uiAddr & SGX_MMU_PD_MASK) >> (SGX_MMU_PAGE_SHIFT + SGX_MMU_PT_SHIFT);
-	ui32PTIndex = (sDevVAddr.uiAddr & SGX_MMU_PT_MASK) >> SGX_MMU_PAGE_SHIFT;
-
-	
-	pui32PD[ui32PDIndex] = (psDevInfo->sBRN22997PTDevPAddr.uiAddr>>SGX_MMU_PDE_ADDR_ALIGNSHIFT)
-							| SGX_MMU_PDE_VALID;
-	
-	pui32PT[ui32PTIndex] = (psDevInfo->sBRN22997PTDevPAddr.uiAddr>>SGX_MMU_PTE_ADDR_ALIGNSHIFT)
-							| SGX_MMU_PTE_VALID;
-
-	PDUMPMEMPTENTRIES(&psDevInfo->sMMUAttrib, psDevInfo->hBRN22997PDPageOSMemHandle, pui32PD, SGX_MMU_PAGE_SIZE, 0, IMG_TRUE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-	PDUMPMEMPTENTRIES(&psDevInfo->sMMUAttrib, psDevInfo->hBRN22997PTPageOSMemHandle, pui32PT, SGX_MMU_PAGE_SIZE, 0, IMG_TRUE, PDUMP_PT_UNIQUETAG, PDUMP_PD_UNIQUETAG);
-
-	
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_DIR_LIST_BASE0,
-				 psDevInfo->sBRN22997PDDevPAddr.uiAddr);
-	PDUMPPDREG(&psDevInfo->sMMUAttrib, EUR_CR_BIF_DIR_LIST_BASE0, psDevInfo->sBRN22997PDDevPAddr.uiAddr, PDUMP_PD_UNIQUETAG);
-
-	
-	ui32BIFCtrl = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL);
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL, ui32BIFCtrl | EUR_CR_BIF_CTRL_INVALDC_MASK);
-	PDUMPREG(SGX_PDUMPREG_NAME, EUR_CR_BIF_CTRL, ui32BIFCtrl | EUR_CR_BIF_CTRL_INVALDC_MASK);
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL, ui32BIFCtrl);
-	PDUMPREG(SGX_PDUMPREG_NAME, EUR_CR_BIF_CTRL, ui32BIFCtrl);
-
-	
-	if (pui32HostPort)
-	{
-		 
-		IMG_UINT32 ui32Tmp;
-		ui32Tmp = *pui32HostPort;
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_ERROR,"Host Port not present for BRN22997 workaround"));
-	}
-
-	
-
-
-
-
-	
-	PDUMPCOMMENT("RDW :SGXMEM:v4:%08X\r\n", sDevVAddr.uiAddr);
-	
-    PDUMPCOMMENT("SAB :SGXMEM:v4:%08X 4 0 hostport.bin", sDevVAddr.uiAddr);
-
-	
-	pui32PD[ui32PDIndex] = 0;
-	pui32PT[ui32PTIndex] = 0;
-
-	
-	PDUMPMEMPTENTRIES(&psDevInfo->sMMUAttrib, psDevInfo->hBRN22997PDPageOSMemHandle, pui32PD, SGX_MMU_PAGE_SIZE, 0, IMG_TRUE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-	PDUMPMEMPTENTRIES(&psDevInfo->sMMUAttrib, psDevInfo->hBRN22997PTPageOSMemHandle, pui32PT, SGX_MMU_PAGE_SIZE, 0, IMG_TRUE, PDUMP_PT_UNIQUETAG, PDUMP_PD_UNIQUETAG);
-
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL, ui32BIFCtrl | EUR_CR_BIF_CTRL_INVALDC_MASK);
-	PDUMPREG(SGX_PDUMPREG_NAME, EUR_CR_BIF_CTRL, ui32BIFCtrl | EUR_CR_BIF_CTRL_INVALDC_MASK);
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL, ui32BIFCtrl);
-	PDUMPREG(SGX_PDUMPREG_NAME, EUR_CR_BIF_CTRL, ui32BIFCtrl);
-}
-
-
-IMG_VOID WorkaroundBRN22997Free(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	SYS_DATA *psSysData;
-	RA_ARENA *psLocalDevMemArena;
-	PVRSRV_SGXDEV_INFO *psDevInfo = (PVRSRV_SGXDEV_INFO*)psDeviceNode->pvDevice;
-
-
-	SysAcquireData(&psSysData);
-
-	psLocalDevMemArena = psSysData->apsLocalDevMemArena[0];
-
-	PDUMPFREEPAGETABLE(&psDeviceNode->sDevId, psDevInfo->hBRN22997PDPageOSMemHandle, psDevInfo->pui32BRN22997PD, SGX_MMU_PAGE_SIZE, 0, PDUMP_PD_UNIQUETAG);
-	PDUMPFREEPAGETABLE(&psDeviceNode->sDevId, psDevInfo->hBRN22997PTPageOSMemHandle, psDevInfo->pui32BRN22997PT, SGX_MMU_PAGE_SIZE, 0, PDUMP_PT_UNIQUETAG);
-
-	
-	if(psLocalDevMemArena == IMG_NULL)
-	{
-		if (psDevInfo->pui32BRN22997PD != IMG_NULL)
-		{
-			OSFreePages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-						  SGX_MMU_PAGE_SIZE,
-						  psDevInfo->pui32BRN22997PD,
-						  psDevInfo->hBRN22997PDPageOSMemHandle);
-		}
-
-		if (psDevInfo->pui32BRN22997PT != IMG_NULL)
-		{
-			OSFreePages(PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_KERNEL_ONLY,
-						  SGX_MMU_PAGE_SIZE,
-						  psDevInfo->pui32BRN22997PT,
-						  psDevInfo->hBRN22997PTPageOSMemHandle);
-		}
-	}
-	else
-	{
-		if (psDevInfo->pui32BRN22997PT != IMG_NULL)
-		{
-			OSUnMapPhysToLin(psDevInfo->pui32BRN22997PT,
-				 SGX_MMU_PAGE_SIZE * 2,
-				 PVRSRV_HAP_WRITECOMBINE|PVRSRV_HAP_KERNEL_ONLY,
-				 psDevInfo->hBRN22997PTPageOSMemHandle);
-
-
-			RA_Free(psLocalDevMemArena, psDevInfo->sBRN22997SysPAddr.uiAddr, IMG_FALSE);
-		}
-	}
-}
-#endif 
-
-
-#if defined(SUPPORT_EXTERNAL_SYSTEM_CACHE)
-PVRSRV_ERROR MMU_MapExtSystemCacheRegs(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	IMG_UINT32 *pui32PT;
-	PVRSRV_SGXDEV_INFO *psDevInfo;
-	IMG_UINT32 ui32PDIndex;
-	IMG_UINT32 ui32PTIndex;
-	PDUMP_MMU_ATTRIB sMMUAttrib;
-
-	psDevInfo = (PVRSRV_SGXDEV_INFO*)psDeviceNode->pvDevice;
-
-	sMMUAttrib = psDevInfo->sMMUAttrib;
-#if defined(PDUMP)
-	MMU_SetPDumpAttribs(&sMMUAttrib, psDeviceNode,
-						SGX_MMU_PAGE_MASK,
-						SGX_MMU_PT_SIZE * sizeof(IMG_UINT32));
-#endif
-
-#if defined(PDUMP)
-	{
-		IMG_CHAR		szScript[128];
-
-		sprintf(szScript, "MALLOC :EXTSYSCACHE:PA_%08X%08X %u %u 0x%08X\r\n", 0, psDevInfo->sExtSysCacheRegsDevPBase.uiAddr, SGX_MMU_PAGE_SIZE, SGX_MMU_PAGE_SIZE, psDevInfo->sExtSysCacheRegsDevPBase.uiAddr);
-		PDumpOSWriteString2(szScript, PDUMP_FLAGS_CONTINUOUS);
-	}
-#endif
-
-	ui32PDIndex = (SGX_EXT_SYSTEM_CACHE_REGS_DEVVADDR_BASE & SGX_MMU_PD_MASK) >> (SGX_MMU_PAGE_SHIFT + SGX_MMU_PT_SHIFT);
-	ui32PTIndex = (SGX_EXT_SYSTEM_CACHE_REGS_DEVVADDR_BASE & SGX_MMU_PT_MASK) >> SGX_MMU_PAGE_SHIFT;
-
-	pui32PT = (IMG_UINT32 *) psDeviceNode->sDevMemoryInfo.pBMKernelContext->psMMUContext->apsPTInfoList[ui32PDIndex]->PTPageCpuVAddr;
-
-	
-	pui32PT[ui32PTIndex] = (psDevInfo->sExtSysCacheRegsDevPBase.uiAddr>>SGX_MMU_PTE_ADDR_ALIGNSHIFT)
-							| SGX_MMU_PTE_VALID;
-
-#if defined(PDUMP)
-	
-	{
-		IMG_DEV_PHYADDR sDevPAddr;
-		IMG_CPU_PHYADDR sCpuPAddr;
-		IMG_UINT32 ui32PageMask;
-		IMG_UINT32 ui32PTE;
-		PVRSRV_ERROR eErr;
-
-		PDUMP_GET_SCRIPT_AND_FILE_STRING();
-
-		ui32PageMask = sMMUAttrib.ui32PTSize - 1;
-		sCpuPAddr = OSMapLinToCPUPhys(psDeviceNode->sDevMemoryInfo.pBMKernelContext->psMMUContext->apsPTInfoList[ui32PDIndex]->hPTPageOSMemHandle, &pui32PT[ui32PTIndex]);
-		sDevPAddr = SysCpuPAddrToDevPAddr(sMMUAttrib.sDevId.eDeviceType, sCpuPAddr);
-		ui32PTE = *((IMG_UINT32 *) (&pui32PT[ui32PTIndex]));
-
-		eErr = PDumpOSBufprintf(hScript,
-								ui32MaxLenScript,
-								"WRW :%s:PA_%08X%08X:0x%08X :%s:PA_%08X%08X:0x%08X\r\n",
-								sMMUAttrib.sDevId.pszPDumpDevName,
-								(IMG_UINT32)(IMG_UINTPTR_T)PDUMP_PT_UNIQUETAG,
-								(sDevPAddr.uiAddr) & ~ui32PageMask,
-								(sDevPAddr.uiAddr) & ui32PageMask,
-								"EXTSYSCACHE",
-								(IMG_UINT32)(IMG_UINTPTR_T)PDUMP_PD_UNIQUETAG,
-								(ui32PTE & sMMUAttrib.ui32PDEMask) << sMMUAttrib.ui32PTEAlignShift,
-								ui32PTE & ~sMMUAttrib.ui32PDEMask);
-					if(eErr != PVRSRV_OK)
-					{
-						return eErr;
-					}
-					PDumpOSWriteString2(hScript, PDUMP_FLAGS_CONTINUOUS);
-	}
-#endif
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR MMU_UnmapExtSystemCacheRegs(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	SYS_DATA *psSysData;
-	RA_ARENA *psLocalDevMemArena;
-	PVRSRV_SGXDEV_INFO *psDevInfo;
-	IMG_UINT32 ui32PDIndex;
-	IMG_UINT32 ui32PTIndex;
-	IMG_UINT32 *pui32PT;
-	PDUMP_MMU_ATTRIB sMMUAttrib;
-
-	psDevInfo = (PVRSRV_SGXDEV_INFO*)psDeviceNode->pvDevice;
-
-	sMMUAttrib = psDevInfo->sMMUAttrib;
-
-#if defined(PDUMP)
-	MMU_SetPDumpAttribs(&sMMUAttrib, psDeviceNode,
-						SGX_MMU_PAGE_MASK,
-						SGX_MMU_PT_SIZE * sizeof(IMG_UINT32));
-#endif
-	SysAcquireData(&psSysData);
-
-	psLocalDevMemArena = psSysData->apsLocalDevMemArena[0];
-
-	
-	ui32PDIndex = (SGX_EXT_SYSTEM_CACHE_REGS_DEVVADDR_BASE & SGX_MMU_PD_MASK) >> (SGX_MMU_PAGE_SHIFT + SGX_MMU_PT_SHIFT);
-	ui32PTIndex = (SGX_EXT_SYSTEM_CACHE_REGS_DEVVADDR_BASE & SGX_MMU_PT_MASK) >> SGX_MMU_PAGE_SHIFT;
-
-	
-	if (psDeviceNode->sDevMemoryInfo.pBMKernelContext->psMMUContext->apsPTInfoList[ui32PDIndex])
-	{
-		if (psDeviceNode->sDevMemoryInfo.pBMKernelContext->psMMUContext->apsPTInfoList[ui32PDIndex]->PTPageCpuVAddr)
-		{
-			pui32PT = (IMG_UINT32 *) psDeviceNode->sDevMemoryInfo.pBMKernelContext->psMMUContext->apsPTInfoList[ui32PDIndex]->PTPageCpuVAddr;
-		}
-	}
-
-	pui32PT[ui32PTIndex] = 0;
-
-	PDUMPMEMPTENTRIES(&sMMUAttrib, psDeviceNode->sDevMemoryInfo.pBMKernelContext->psMMUContext->hPDOSMemHandle, &pui32PT[ui32PTIndex], sizeof(IMG_UINT32), 0, IMG_FALSE, PDUMP_PD_UNIQUETAG, PDUMP_PT_UNIQUETAG);
-
-	return PVRSRV_OK;
-}
-#endif
-
-
-#if PAGE_TEST
-static IMG_VOID PageTest(IMG_VOID* pMem, IMG_DEV_PHYADDR sDevPAddr)
-{
-	volatile IMG_UINT32 ui32WriteData;
-	volatile IMG_UINT32 ui32ReadData;
-	volatile IMG_UINT32 *pMem32 = (volatile IMG_UINT32 *)pMem;
-	IMG_INT n;
-	IMG_BOOL bOK=IMG_TRUE;
-
-	ui32WriteData = 0xffffffff;
-
-	for (n=0; n<1024; n++)
-	{
-		pMem32[n] = ui32WriteData;
-		ui32ReadData = pMem32[n];
-
-		if (ui32WriteData != ui32ReadData)
-		{
-			
-			PVR_DPF ((PVR_DBG_ERROR, "Error - memory page test failed at device phys address 0x%08X", sDevPAddr.uiAddr + (n<<2) ));
-			PVR_DBG_BREAK;
-			bOK = IMG_FALSE;
-		}
- 	}
-
-	ui32WriteData = 0;
-
-	for (n=0; n<1024; n++)
-	{
-		pMem32[n] = ui32WriteData;
-		ui32ReadData = pMem32[n];
-
-		if (ui32WriteData != ui32ReadData)
-		{
-			
-			PVR_DPF ((PVR_DBG_ERROR, "Error - memory page test failed at device phys address 0x%08X", sDevPAddr.uiAddr + (n<<2) ));
-			PVR_DBG_BREAK;
-			bOK = IMG_FALSE;
-		}
- 	}
-
-	if (bOK)
-	{
-		PVR_DPF ((PVR_DBG_VERBOSE, "MMU Page 0x%08X is OK", sDevPAddr.uiAddr));
-	}
-	else
-	{
-		PVR_DPF ((PVR_DBG_VERBOSE, "MMU Page 0x%08X *** FAILED ***", sDevPAddr.uiAddr));
-	}
-}
-#endif
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/mmu.h b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/mmu.h
deleted file mode 100644
index 59b24c4..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/mmu.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _MMU_H_
-#define _MMU_H_
-
-#include "sgxinfokm.h"
-
-PVRSRV_ERROR
-MMU_Initialise (PVRSRV_DEVICE_NODE *psDeviceNode, MMU_CONTEXT **ppsMMUContext, IMG_DEV_PHYADDR *psPDDevPAddr);
-
-IMG_VOID
-MMU_Finalise (MMU_CONTEXT *psMMUContext);
-
-
-IMG_VOID
-MMU_InsertHeap(MMU_CONTEXT *psMMUContext, MMU_HEAP *psMMUHeap);
-
-MMU_HEAP *
-MMU_Create (MMU_CONTEXT *psMMUContext,
-			DEV_ARENA_DESCRIPTOR *psDevArena,
-			RA_ARENA **ppsVMArena,
-			PDUMP_MMU_ATTRIB **ppsMMUAttrib);
-
-IMG_VOID
-MMU_Delete (MMU_HEAP *pMMUHeap);
-
-IMG_BOOL
-MMU_Alloc (MMU_HEAP *pMMUHeap,
-           IMG_SIZE_T uSize,
-           IMG_SIZE_T *pActualSize,
-           IMG_UINT32 uFlags,
-		   IMG_UINT32 uDevVAddrAlignment,
-           IMG_DEV_VIRTADDR *pDevVAddr);
-
-IMG_VOID
-MMU_Free (MMU_HEAP *pMMUHeap,
-          IMG_DEV_VIRTADDR DevVAddr,
-		  IMG_UINT32 ui32Size);
-
-IMG_VOID 
-MMU_Enable (MMU_HEAP *pMMUHeap);
-
-IMG_VOID 
-MMU_Disable (MMU_HEAP *pMMUHeap);
-
-IMG_VOID
-MMU_MapPages (MMU_HEAP *pMMUHeap,
-			  IMG_DEV_VIRTADDR DevVAddr,
-			  IMG_SYS_PHYADDR SysPAddr,
-			  IMG_SIZE_T uSize,
-			  IMG_UINT32 ui32MemFlags,
-			  IMG_HANDLE hUniqueTag);
-
-IMG_VOID
-MMU_MapShadow (MMU_HEAP          * pMMUHeap,
-               IMG_DEV_VIRTADDR    MapBaseDevVAddr,
-               IMG_SIZE_T          uByteSize, 
-               IMG_CPU_VIRTADDR    CpuVAddr,
-               IMG_HANDLE          hOSMemHandle,
-               IMG_DEV_VIRTADDR  * pDevVAddr,
-               IMG_UINT32          ui32MemFlags,
-               IMG_HANDLE          hUniqueTag);
-
-IMG_VOID
-MMU_UnmapPages (MMU_HEAP *psMMUHeap,
-             IMG_DEV_VIRTADDR sDevVAddr,
-             IMG_UINT32 ui32PageCount,
-             IMG_HANDLE hUniqueTag);
-
-IMG_VOID
-MMU_MapScatter (MMU_HEAP *pMMUHeap,
-				IMG_DEV_VIRTADDR DevVAddr,
-				IMG_SYS_PHYADDR *psSysAddr,
-				IMG_SIZE_T uSize,
-				IMG_UINT32 ui32MemFlags,
-				IMG_HANDLE hUniqueTag);
-
-
-IMG_DEV_PHYADDR
-MMU_GetPhysPageAddr(MMU_HEAP *pMMUHeap, IMG_DEV_VIRTADDR sDevVPageAddr);
-
-
-IMG_DEV_PHYADDR
-MMU_GetPDDevPAddr(MMU_CONTEXT *pMMUContext);
-
-
-#ifdef SUPPORT_SGX_MMU_BYPASS
-IMG_VOID
-EnableHostAccess (MMU_CONTEXT *psMMUContext);
-
-
-IMG_VOID
-DisableHostAccess (MMU_CONTEXT *psMMUContext);
-#endif
-
-IMG_VOID MMU_InvalidateDirectoryCache(PVRSRV_SGXDEV_INFO *psDevInfo);
-
-PVRSRV_ERROR MMU_BIFResetPDAlloc(PVRSRV_SGXDEV_INFO *psDevInfo);
-
-IMG_VOID MMU_BIFResetPDFree(PVRSRV_SGXDEV_INFO *psDevInfo);
-
-#if defined(FIX_HW_BRN_22997) && defined(FIX_HW_BRN_23030) && defined(SGX_FEATURE_HOST_PORT)
-PVRSRV_ERROR WorkaroundBRN22997Alloc(PVRSRV_DEVICE_NODE	*psDeviceNode);
-
-IMG_VOID WorkaroundBRN22997ReadHostPort(PVRSRV_SGXDEV_INFO *psDevInfo);
-
-IMG_VOID WorkaroundBRN22997Free(PVRSRV_DEVICE_NODE *psDeviceNode);
-#endif 
-
-#if defined(SUPPORT_EXTERNAL_SYSTEM_CACHE)
-PVRSRV_ERROR MMU_MapExtSystemCacheRegs(PVRSRV_DEVICE_NODE *psDeviceNode);
-
-PVRSRV_ERROR MMU_UnmapExtSystemCacheRegs(PVRSRV_DEVICE_NODE *psDeviceNode);
-#endif 
-
-IMG_BOOL MMU_IsHeapShared(MMU_HEAP* pMMU_Heap);
-
-#if defined(FIX_HW_BRN_31620)
-IMG_VOID MMU_GetCacheFlushRange(MMU_CONTEXT *pMMUContext, IMG_UINT32 *pui32RangeMask);
-
-IMG_VOID MMU_GetPDPhysAddr(MMU_CONTEXT *pMMUContext, IMG_DEV_PHYADDR *psDevPAddr);
-
-#endif
-
-
-#if defined(PDUMP)
-IMG_UINT32 MMU_GetPDumpContextID(IMG_HANDLE hDevMemContext);
-#endif 
-
-#endif 
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/pb.c b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/pb.c
deleted file mode 100644
index ab6523a..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/pb.c
+++ /dev/null
@@ -1,466 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <stddef.h>
-
-#include "services_headers.h"
-#include "sgx_bridge_km.h"
-#include "sgxapi_km.h"
-#include "sgxinfo.h"
-#include "sgxinfokm.h"
-#include "pvr_bridge_km.h"
-#include "pdump_km.h"
-#include "sgxutils.h"
-
-#ifndef __linux__
-#pragma message("TODO: Review use of OS_PAGEABLE vs OS_NON_PAGEABLE")
-#endif
-
-#include "lists.h"
-
-static IMPLEMENT_LIST_INSERT(PVRSRV_STUB_PBDESC)
-static IMPLEMENT_LIST_REMOVE(PVRSRV_STUB_PBDESC)
-
-static PRESMAN_ITEM psResItemCreateSharedPB = IMG_NULL;
-static PVRSRV_PER_PROCESS_DATA *psPerProcCreateSharedPB = IMG_NULL;
-
-static PVRSRV_ERROR SGXCleanupSharedPBDescCallback(IMG_PVOID pvParam, IMG_UINT32 ui32Param, IMG_BOOL bDummy);
-static PVRSRV_ERROR SGXCleanupSharedPBDescCreateLockCallback(IMG_PVOID pvParam, IMG_UINT32 ui32Param, IMG_BOOL bDummy);
-
-IMG_EXPORT PVRSRV_ERROR
-SGXFindSharedPBDescKM(PVRSRV_PER_PROCESS_DATA	*psPerProc,
-					  IMG_HANDLE 				hDevCookie,
-					  IMG_BOOL 				bLockOnFailure,
-					  IMG_UINT32 				ui32TotalPBSize,
-					  IMG_HANDLE 				*phSharedPBDesc,
-					  PVRSRV_KERNEL_MEM_INFO 	**ppsSharedPBDescKernelMemInfo,
-					  PVRSRV_KERNEL_MEM_INFO 	**ppsHWPBDescKernelMemInfo,
-					  PVRSRV_KERNEL_MEM_INFO 	**ppsBlockKernelMemInfo,
-					  PVRSRV_KERNEL_MEM_INFO 	**ppsHWBlockKernelMemInfo,
-					  PVRSRV_KERNEL_MEM_INFO 	***pppsSharedPBDescSubKernelMemInfos,
-					  IMG_UINT32				*ui32SharedPBDescSubKernelMemInfosCount)
-{
-	PVRSRV_STUB_PBDESC *psStubPBDesc;
-	PVRSRV_KERNEL_MEM_INFO **ppsSharedPBDescSubKernelMemInfos=IMG_NULL;
-	PVRSRV_SGXDEV_INFO *psSGXDevInfo;
-	PVRSRV_ERROR eError;
-
-	psSGXDevInfo = ((PVRSRV_DEVICE_NODE *)hDevCookie)->pvDevice;
-
-	psStubPBDesc = psSGXDevInfo->psStubPBDescListKM;
-	if (psStubPBDesc != IMG_NULL)
-	{
-		IMG_UINT32 i;
-		PRESMAN_ITEM psResItem;
-
-		if(psStubPBDesc->ui32TotalPBSize != ui32TotalPBSize)
-		{
-			PVR_DPF((PVR_DBG_WARNING,
-					"SGXFindSharedPBDescKM: Shared PB requested with different size (0x%x) from existing shared PB (0x%x) - requested size ignored",
-					ui32TotalPBSize, psStubPBDesc->ui32TotalPBSize));
-		}
-
-		if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-					  sizeof(PVRSRV_KERNEL_MEM_INFO *)
-						* psStubPBDesc->ui32SubKernelMemInfosCount,
-					  (IMG_VOID **)&ppsSharedPBDescSubKernelMemInfos,
-					  IMG_NULL,
-					  "Array of Kernel Memory Info") != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "SGXFindSharedPBDescKM: OSAllocMem failed"));
-
-			eError = PVRSRV_ERROR_OUT_OF_MEMORY;
-			goto ExitNotFound;
-		}
-
-		psResItem = ResManRegisterRes(psPerProc->hResManContext,
-									  RESMAN_TYPE_SHARED_PB_DESC,
-									  psStubPBDesc,
-									  0,
-									  &SGXCleanupSharedPBDescCallback);
-
-		if (psResItem == IMG_NULL)
-		{
-			OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-					  sizeof(PVRSRV_KERNEL_MEM_INFO *) * psStubPBDesc->ui32SubKernelMemInfosCount,
-					  ppsSharedPBDescSubKernelMemInfos,
-					  0);
-			
-
-			PVR_DPF((PVR_DBG_ERROR, "SGXFindSharedPBDescKM: ResManRegisterRes failed"));
-
-			eError = PVRSRV_ERROR_UNABLE_TO_REGISTER_RESOURCE;
-			goto ExitNotFound;
-		}
-
-		*ppsSharedPBDescKernelMemInfo = psStubPBDesc->psSharedPBDescKernelMemInfo;
-		*ppsHWPBDescKernelMemInfo = psStubPBDesc->psHWPBDescKernelMemInfo;
-		*ppsBlockKernelMemInfo = psStubPBDesc->psBlockKernelMemInfo;
-		*ppsHWBlockKernelMemInfo = psStubPBDesc->psHWBlockKernelMemInfo;
-
-		*ui32SharedPBDescSubKernelMemInfosCount =
-			psStubPBDesc->ui32SubKernelMemInfosCount;
-
-		*pppsSharedPBDescSubKernelMemInfos = ppsSharedPBDescSubKernelMemInfos;
-
-		for(i=0; i<psStubPBDesc->ui32SubKernelMemInfosCount; i++)
-		{
-			ppsSharedPBDescSubKernelMemInfos[i] =
-				psStubPBDesc->ppsSubKernelMemInfos[i];
-		}
-
-		psStubPBDesc->ui32RefCount++;
-		*phSharedPBDesc = (IMG_HANDLE)psResItem;
-		return PVRSRV_OK;
-	}
-
-	eError = PVRSRV_OK;
-	if (bLockOnFailure)
-	{
-		if (psResItemCreateSharedPB == IMG_NULL)
-		{
-			psResItemCreateSharedPB = ResManRegisterRes(psPerProc->hResManContext,
-				  RESMAN_TYPE_SHARED_PB_DESC_CREATE_LOCK,
-				  psPerProc,
-				  0,
-				  &SGXCleanupSharedPBDescCreateLockCallback);
-
-			if (psResItemCreateSharedPB == IMG_NULL)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "SGXFindSharedPBDescKM: ResManRegisterRes failed"));
-
-				eError = PVRSRV_ERROR_UNABLE_TO_REGISTER_RESOURCE;
-				goto ExitNotFound;
-			}
-			PVR_ASSERT(psPerProcCreateSharedPB == IMG_NULL);
-			psPerProcCreateSharedPB = psPerProc;
-		}
-		else
-		{
-			 eError = PVRSRV_ERROR_PROCESSING_BLOCKED;
-		}
-	}
-ExitNotFound:
-	*phSharedPBDesc = IMG_NULL;
-
-	return eError;
-}
-
-
-static PVRSRV_ERROR
-SGXCleanupSharedPBDescKM(PVRSRV_STUB_PBDESC *psStubPBDescIn)
-{
-	
-	IMG_UINT32 i;
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-
-	psDeviceNode = (PVRSRV_DEVICE_NODE*)psStubPBDescIn->hDevCookie;
-
-	
-
-	
-	psStubPBDescIn->ui32RefCount--;
-	if (psStubPBDescIn->ui32RefCount == 0)
-	{
-		IMG_DEV_VIRTADDR sHWPBDescDevVAddr = psStubPBDescIn->sHWPBDescDevVAddr;
-		List_PVRSRV_STUB_PBDESC_Remove(psStubPBDescIn);
-		for(i=0 ; i<psStubPBDescIn->ui32SubKernelMemInfosCount; i++)
-		{
-			
-			PVRSRVFreeDeviceMemKM(psStubPBDescIn->hDevCookie,
-								  psStubPBDescIn->ppsSubKernelMemInfos[i]);
-		}
-
-		OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-				  sizeof(PVRSRV_KERNEL_MEM_INFO *) * psStubPBDescIn->ui32SubKernelMemInfosCount,
-				  psStubPBDescIn->ppsSubKernelMemInfos,
-				  0);
-		psStubPBDescIn->ppsSubKernelMemInfos = IMG_NULL;
-
-		PVRSRVFreeSharedSysMemoryKM(psStubPBDescIn->psBlockKernelMemInfo);
-
-		PVRSRVFreeDeviceMemKM(psStubPBDescIn->hDevCookie, psStubPBDescIn->psHWBlockKernelMemInfo);
-
-		PVRSRVFreeDeviceMemKM(psStubPBDescIn->hDevCookie, psStubPBDescIn->psHWPBDescKernelMemInfo);
-
-		PVRSRVFreeSharedSysMemoryKM(psStubPBDescIn->psSharedPBDescKernelMemInfo);
-
-		OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-				  sizeof(PVRSRV_STUB_PBDESC),
-				  psStubPBDescIn,
-				  0);
-		
-
-		
-		SGXCleanupRequest(psDeviceNode,
-						  &sHWPBDescDevVAddr,
-						  PVRSRV_CLEANUPCMD_PB,
-						  CLEANUP_WITH_POLL);
-	}
-	return PVRSRV_OK;
-	
-}
-
-static PVRSRV_ERROR SGXCleanupSharedPBDescCallback(IMG_PVOID pvParam, IMG_UINT32 ui32Param, IMG_BOOL bDummy)
-{
-	PVRSRV_STUB_PBDESC *psStubPBDesc = (PVRSRV_STUB_PBDESC *)pvParam;
-
-	PVR_UNREFERENCED_PARAMETER(ui32Param);
-	PVR_UNREFERENCED_PARAMETER(bDummy);
-
-	return SGXCleanupSharedPBDescKM(psStubPBDesc);
-}
-
-static PVRSRV_ERROR SGXCleanupSharedPBDescCreateLockCallback(IMG_PVOID pvParam, IMG_UINT32 ui32Param, IMG_BOOL bDummy)
-{
-#ifdef DEBUG
-	PVRSRV_PER_PROCESS_DATA *psPerProc = (PVRSRV_PER_PROCESS_DATA *)pvParam;
-	PVR_ASSERT(psPerProc == psPerProcCreateSharedPB);
-#else
-	PVR_UNREFERENCED_PARAMETER(pvParam);
-#endif
-
-	PVR_UNREFERENCED_PARAMETER(ui32Param);
-	PVR_UNREFERENCED_PARAMETER(bDummy);
-
-	psPerProcCreateSharedPB = IMG_NULL;
-	psResItemCreateSharedPB = IMG_NULL;
-
-	return PVRSRV_OK;
-}
-
-
-IMG_EXPORT PVRSRV_ERROR
-SGXUnrefSharedPBDescKM(IMG_HANDLE hSharedPBDesc)
-{
-	PVR_ASSERT(hSharedPBDesc != IMG_NULL);
-
-	return ResManFreeResByPtr(hSharedPBDesc, CLEANUP_WITH_POLL);
-}
-
-
-IMG_EXPORT PVRSRV_ERROR
-SGXAddSharedPBDescKM(PVRSRV_PER_PROCESS_DATA	*psPerProc,
-					 IMG_HANDLE					hDevCookie,
-					 PVRSRV_KERNEL_MEM_INFO		*psSharedPBDescKernelMemInfo,
-					 PVRSRV_KERNEL_MEM_INFO		*psHWPBDescKernelMemInfo,
-					 PVRSRV_KERNEL_MEM_INFO		*psBlockKernelMemInfo,
-					 PVRSRV_KERNEL_MEM_INFO		*psHWBlockKernelMemInfo,
-					 IMG_UINT32					ui32TotalPBSize,
-					 IMG_HANDLE					*phSharedPBDesc,
-					 PVRSRV_KERNEL_MEM_INFO		**ppsSharedPBDescSubKernelMemInfos,
-					 IMG_UINT32					ui32SharedPBDescSubKernelMemInfosCount,
-					 IMG_DEV_VIRTADDR			sHWPBDescDevVAddr)
-{
-	PVRSRV_STUB_PBDESC *psStubPBDesc=IMG_NULL;
-	PVRSRV_ERROR eRet = PVRSRV_ERROR_INVALID_PERPROC;
-	IMG_UINT32 i;
-	PVRSRV_SGXDEV_INFO *psSGXDevInfo;
-	PRESMAN_ITEM psResItem;
-
-	
-	if (psPerProcCreateSharedPB != psPerProc)
-	{
-		goto NoAdd;
-	}
-	else
-	{
-		PVR_ASSERT(psResItemCreateSharedPB != IMG_NULL);
-
-		ResManFreeResByPtr(psResItemCreateSharedPB, CLEANUP_WITH_POLL);
-
-		PVR_ASSERT(psResItemCreateSharedPB == IMG_NULL);
-		PVR_ASSERT(psPerProcCreateSharedPB == IMG_NULL);
-	}
-
-	psSGXDevInfo = (PVRSRV_SGXDEV_INFO *)((PVRSRV_DEVICE_NODE *)hDevCookie)->pvDevice;
-
-	psStubPBDesc = psSGXDevInfo->psStubPBDescListKM;
-	if (psStubPBDesc != IMG_NULL)
-	{
-		if(psStubPBDesc->ui32TotalPBSize != ui32TotalPBSize)
-		{
-			PVR_DPF((PVR_DBG_WARNING,
-					"SGXAddSharedPBDescKM: Shared PB requested with different size (0x%x) from existing shared PB (0x%x) - requested size ignored",
-					ui32TotalPBSize, psStubPBDesc->ui32TotalPBSize));
-
-		}
-
-		
-		psResItem = ResManRegisterRes(psPerProc->hResManContext,
-									  RESMAN_TYPE_SHARED_PB_DESC,
-									  psStubPBDesc,
-									  0,
-									  &SGXCleanupSharedPBDescCallback);
-		if (psResItem == IMG_NULL)
-		{
-			PVR_DPF((PVR_DBG_ERROR,
-				"SGXAddSharedPBDescKM: "
-				"Failed to register existing shared "
-				"PBDesc with the resource manager"));
-			goto NoAddKeepPB;
-		}
-
-		
-		psStubPBDesc->ui32RefCount++;
-
-		*phSharedPBDesc = (IMG_HANDLE)psResItem;
-		eRet = PVRSRV_OK;
-		goto NoAddKeepPB;
-	}
-
-	if(OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-				  sizeof(PVRSRV_STUB_PBDESC),
-				  (IMG_VOID **)&psStubPBDesc,
-				  0,
-				  "Stub Parameter Buffer Description") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXAddSharedPBDescKM: Failed to alloc "
-					"StubPBDesc"));
-		eRet = PVRSRV_ERROR_OUT_OF_MEMORY;
-		goto NoAdd;
-	}
-
-
-	psStubPBDesc->ppsSubKernelMemInfos = IMG_NULL;
-
-	if(OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-				  sizeof(PVRSRV_KERNEL_MEM_INFO *)
-				  * ui32SharedPBDescSubKernelMemInfosCount,
-				  (IMG_VOID **)&psStubPBDesc->ppsSubKernelMemInfos,
-				  0,
-				  "Array of Kernel Memory Info") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXAddSharedPBDescKM: "
-				 "Failed to alloc "
-				 "StubPBDesc->ppsSubKernelMemInfos"));
-		eRet = PVRSRV_ERROR_OUT_OF_MEMORY;
-		goto NoAdd;
-	}
-
-	if(PVRSRVDissociateMemFromResmanKM(psSharedPBDescKernelMemInfo)
-	   != PVRSRV_OK)
-	{
-		goto NoAdd;
-	}
-
-	if(PVRSRVDissociateMemFromResmanKM(psHWPBDescKernelMemInfo)
-	   != PVRSRV_OK)
-	{
-		goto NoAdd;
-	}
-
-	if(PVRSRVDissociateMemFromResmanKM(psBlockKernelMemInfo)
-	   != PVRSRV_OK)
-	{
-		goto NoAdd;
-	}
-
-	if(PVRSRVDissociateMemFromResmanKM(psHWBlockKernelMemInfo)
-	   != PVRSRV_OK)
-	{
-		goto NoAdd;
-	}
-
-	psStubPBDesc->ui32RefCount = 1;
-	psStubPBDesc->ui32TotalPBSize = ui32TotalPBSize;
-	psStubPBDesc->psSharedPBDescKernelMemInfo = psSharedPBDescKernelMemInfo;
-	psStubPBDesc->psHWPBDescKernelMemInfo = psHWPBDescKernelMemInfo;
-	psStubPBDesc->psBlockKernelMemInfo = psBlockKernelMemInfo;
-	psStubPBDesc->psHWBlockKernelMemInfo = psHWBlockKernelMemInfo;
-
-	psStubPBDesc->ui32SubKernelMemInfosCount =
-		ui32SharedPBDescSubKernelMemInfosCount;
-	for(i=0; i<ui32SharedPBDescSubKernelMemInfosCount; i++)
-	{
-		psStubPBDesc->ppsSubKernelMemInfos[i] = ppsSharedPBDescSubKernelMemInfos[i];
-		if(PVRSRVDissociateMemFromResmanKM(ppsSharedPBDescSubKernelMemInfos[i])
-		   != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "SGXAddSharedPBDescKM: "
-					 "Failed to dissociate shared PBDesc "
-					 "from process"));
-			goto NoAdd;
-		}
-	}
-
-	psStubPBDesc->sHWPBDescDevVAddr = sHWPBDescDevVAddr;
-
-	psResItem = ResManRegisterRes(psPerProc->hResManContext,
-								  RESMAN_TYPE_SHARED_PB_DESC,
-								  psStubPBDesc,
-								  0,
-								  &SGXCleanupSharedPBDescCallback);
-	if (psResItem == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXAddSharedPBDescKM: "
-					 "Failed to register shared PBDesc "
-					 " with the resource manager"));
-		goto NoAdd;
-	}
-	psStubPBDesc->hDevCookie = hDevCookie;
-
-	
-	List_PVRSRV_STUB_PBDESC_Insert(&(psSGXDevInfo->psStubPBDescListKM),
-									psStubPBDesc);
-
-	*phSharedPBDesc = (IMG_HANDLE)psResItem;
-
-	return PVRSRV_OK;
-
-NoAdd:
-	if(psStubPBDesc)
-	{
-		if(psStubPBDesc->ppsSubKernelMemInfos)
-		{
-			OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-					  sizeof(PVRSRV_KERNEL_MEM_INFO *) * ui32SharedPBDescSubKernelMemInfosCount,
-					  psStubPBDesc->ppsSubKernelMemInfos,
-					  0);
-			psStubPBDesc->ppsSubKernelMemInfos = IMG_NULL;
-		}
-		OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-				  sizeof(PVRSRV_STUB_PBDESC),
-				  psStubPBDesc,
-				  0);
-		
-	}
-
-NoAddKeepPB:
-	for (i = 0; i < ui32SharedPBDescSubKernelMemInfosCount; i++)
-	{
-		PVRSRVFreeDeviceMemKM(hDevCookie, ppsSharedPBDescSubKernelMemInfos[i]);
-	}
-
-	PVRSRVFreeSharedSysMemoryKM(psSharedPBDescKernelMemInfo);
-	PVRSRVFreeDeviceMemKM(hDevCookie, psHWPBDescKernelMemInfo);
-
-	PVRSRVFreeSharedSysMemoryKM(psBlockKernelMemInfo);
-	PVRSRVFreeDeviceMemKM(hDevCookie, psHWBlockKernelMemInfo);
-
-	return eRet;
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgx_bridge_km.h b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgx_bridge_km.h
deleted file mode 100644
index 8fb3002..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgx_bridge_km.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined(__SGX_BRIDGE_KM_H__)
-#define __SGX_BRIDGE_KM_H__
-
-#include "sgxapi_km.h"
-#include "sgxinfo.h"
-#include "sgxinfokm.h"
-#include "sgx_bridge.h"
-#include "pvr_bridge.h"
-#include "perproc.h"
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-IMG_IMPORT
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR SGXSubmitTransferKM(IMG_HANDLE hDevHandle, PVRSRV_TRANSFER_SGX_KICK_KM *psKick);
-#else
-PVRSRV_ERROR SGXSubmitTransferKM(IMG_HANDLE hDevHandle, PVRSRV_TRANSFER_SGX_KICK *psKick);
-#endif
-
-#if defined(SGX_FEATURE_2D_HARDWARE)
-IMG_IMPORT
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR SGXSubmit2DKM(IMG_HANDLE hDevHandle, PVRSRV_2D_SGX_KICK_KM *psKick);
-#else
-PVRSRV_ERROR SGXSubmit2DKM(IMG_HANDLE hDevHandle, PVRSRV_2D_SGX_KICK *psKick);
-#endif
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR SGXDoKickKM(IMG_HANDLE hDevHandle,
-#if defined (SUPPORT_SID_INTERFACE)
-						 SGX_CCB_KICK_KM *psCCBKick);
-#else
-						 SGX_CCB_KICK *psCCBKick);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR SGXGetPhysPageAddrKM(IMG_HANDLE hDevMemHeap,
-								  IMG_DEV_VIRTADDR sDevVAddr,
-								  IMG_DEV_PHYADDR *pDevPAddr,
-								  IMG_CPU_PHYADDR *pCpuPAddr);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV SGXGetMMUPDAddrKM(IMG_HANDLE		hDevCookie,
-											IMG_HANDLE		hDevMemContext,
-											IMG_DEV_PHYADDR	*psPDDevPAddr);
-
-IMG_IMPORT
-PVRSRV_ERROR SGXGetClientInfoKM(IMG_HANDLE				hDevCookie,
-								SGX_CLIENT_INFO*	psClientInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR SGXGetMiscInfoKM(PVRSRV_SGXDEV_INFO	*psDevInfo,
-							  SGX_MISC_INFO			*psMiscInfo,
-							  PVRSRV_DEVICE_NODE 	*psDeviceNode,
-							  IMG_HANDLE 			 hDevMemContext);
-
-IMG_IMPORT
-PVRSRV_ERROR SGXReadHWPerfCBKM(IMG_HANDLE					hDevHandle,
-							   IMG_UINT32					ui32ArraySize,
-							   PVRSRV_SGX_HWPERF_CB_ENTRY	*psHWPerfCBData,
-							   IMG_UINT32					*pui32DataCount,
-							   IMG_UINT32					*pui32ClockSpeed,
-							   IMG_UINT32					*pui32HostTimeStamp);
-
-IMG_IMPORT
-PVRSRV_ERROR SGX2DQueryBlitsCompleteKM(PVRSRV_SGXDEV_INFO		*psDevInfo,
-									   PVRSRV_KERNEL_SYNC_INFO	*psSyncInfo,
-									   IMG_BOOL bWaitForComplete);
-
-IMG_IMPORT
-PVRSRV_ERROR SGXGetInfoForSrvinitKM(IMG_HANDLE hDevHandle,
-#if defined (SUPPORT_SID_INTERFACE)
-									PVRSRV_HEAP_INFO_KM *pasHeapInfo,
-									IMG_DEV_PHYADDR *psPDDevPAddr);
-#else
-									SGX_BRIDGE_INFO_FOR_SRVINIT *psInitInfo);
-#endif
-
-IMG_IMPORT
-PVRSRV_ERROR DevInitSGXPart2KM(PVRSRV_PER_PROCESS_DATA *psPerProc,
-							   IMG_HANDLE hDevHandle,
-#if defined (SUPPORT_SID_INTERFACE)
-							   SGX_BRIDGE_INIT_INFO_KM *psInitInfo);
-#else
-							   SGX_BRIDGE_INIT_INFO *psInitInfo);
-#endif
-
-IMG_IMPORT PVRSRV_ERROR
-SGXFindSharedPBDescKM(PVRSRV_PER_PROCESS_DATA	*psPerProc,
-					  IMG_HANDLE				hDevCookie,
-					  IMG_BOOL				bLockOnFailure,
-					  IMG_UINT32				ui32TotalPBSize,
-					  IMG_HANDLE				*phSharedPBDesc,
-					  PVRSRV_KERNEL_MEM_INFO	**ppsSharedPBDescKernelMemInfo,
-					  PVRSRV_KERNEL_MEM_INFO	**ppsHWPBDescKernelMemInfo,
-					  PVRSRV_KERNEL_MEM_INFO	**ppsBlockKernelMemInfo,
-					  PVRSRV_KERNEL_MEM_INFO	**ppsHWBlockKernelMemInfo,
-					  PVRSRV_KERNEL_MEM_INFO	***pppsSharedPBDescSubKernelMemInfos,
-					  IMG_UINT32				*ui32SharedPBDescSubKernelMemInfosCount);
-
-IMG_IMPORT PVRSRV_ERROR
-SGXUnrefSharedPBDescKM(IMG_HANDLE hSharedPBDesc);
-
-IMG_IMPORT PVRSRV_ERROR
-SGXAddSharedPBDescKM(PVRSRV_PER_PROCESS_DATA	*psPerProc,
-					 IMG_HANDLE 				hDevCookie,
-					 PVRSRV_KERNEL_MEM_INFO		*psSharedPBDescKernelMemInfo,
-					 PVRSRV_KERNEL_MEM_INFO		*psHWPBDescKernelMemInfo,
-					 PVRSRV_KERNEL_MEM_INFO		*psBlockKernelMemInfo,
-					 PVRSRV_KERNEL_MEM_INFO		*psHWBlockKernelMemInfo,
-					 IMG_UINT32					ui32TotalPBSize,
-					 IMG_HANDLE					*phSharedPBDesc,
-					 PVRSRV_KERNEL_MEM_INFO		**psSharedPBDescSubKernelMemInfos,
-					 IMG_UINT32					ui32SharedPBDescSubKernelMemInfosCount,
-					 IMG_DEV_VIRTADDR			sHWPBDescDevVAddr);
-
-
-IMG_IMPORT PVRSRV_ERROR
-SGXGetInternalDevInfoKM(IMG_HANDLE hDevCookie,
-#if defined (SUPPORT_SID_INTERFACE)
-						SGX_INTERNAL_DEVINFO_KM *psSGXInternalDevInfo);
-#else
-						SGX_INTERNAL_DEVINFO *psSGXInternalDevInfo);
-#endif
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgx_ukernel_status_codes.h b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgx_ukernel_status_codes.h
deleted file mode 100644
index 12bae74..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgx_ukernel_status_codes.h
+++ /dev/null
@@ -1,1024 +0,0 @@
-/*!****************************************************************************
-@File           sgx_ukernel_status_codes.h
-
-@Title          SGX microkernel debug status codes
-
-@Author         Imagination Technologies
-
-@Date           7th Feb 2008
-
-@Copyright      Copyright 2003-2008 by Imagination Technologies Limited.
-                All rights reserved. No part of this software, either material
-                or conceptual may be copied or distributed, transmitted,
-                transcribed, stored in a retrieval system or translated into
-                any human or computer language in any form by any means,
-                electronic, mechanical, manual or otherwise, or disclosed to
-                third parties without the express written permission of
-                Imagination Technologies Limited, Home Park Estate,
-                Kings Langley, Hertfordshire, WD4 8LZ, U.K.
-
-@Platform       Generic
-
-@Description    SGX microkernel debug status codes
-
-@DoxygenVer
-
-******************************************************************************/
-
-/******************************************************************************
-Modifications :-
-$Log: sgx_ukernel_status_codes.h $
-
- --- Revision Logs Removed --- 
-*****************************************************************************/
-
-#if !defined (__SGX_UKERNEL_STATUS_CODES_H__)
-#define __SGX_UKERNEL_STATUS_CODES_H__
-
-/*
-	It would be nice to put these definitions into an enumeration, but USEASM
-	only has access to the C preprocessor so macros are required.
-*/
-
-/*
-	Bits 24-31 of these codes (0xAD) are a magic number used to help
-	distinguish between them and other debug information which can be
-	optionally dumped into the status buffer, e.g. sync object values.
-*/
-
-/*
-	Microkernel trace codes
-*/
-#define MKTC_EHEVENT_3DMEMFREE					0xAD000001
-#define MKTC_EHEVENT_PIXELENDRENDER				0xAD000002
-#define MKTC_EHEVENT_ISPBREAKPOINT				0xAD000004
-#define MKTC_EHEVENT_TAFINISHED					0xAD000005
-#define MKTC_EHEVENT_MEMTHRESHOLD				0xAD000006
-#define MKTC_EHEVENT_OUTOFMEM					0xAD000007
-#define MKTC_EHEVENT_TATERMINATE				0xAD000008
-#define MKTC_EHEVENT_TIMER					0xAD000009
-#define MKTC_EHEVENT_SWEVENT					0xAD00000A
-#define MKTC_EHEVENT_2DCOMPLETE					0xAD00000B
-#define MKTC_EHEVENT_MTE_DRAIN_COMPLETE				0xAD00000C
-
-#define MKTC_3DEVENT_3DMEMFREE					0xAD000100
-#define MKTC_3DEVENT_PIXELENDRENDER				0xAD000101
-#define MKTC_3DEVENT_ISPBREAKPOINT				0xAD000102
-#define MKTC_3DEVENT_END					0xAD000104
-#define MKTC_3DLB_3DMEMFREE					0xAD000180
-#define MKTC_3DLB_PIXELENDRENDER				0xAD000181
-#define MKTC_3DLB_ISPBREAKPOINT					0xAD000182
-#define MKTC_3DLB_FIND3D					0xAD000183
-#define MKTC_3DLB_END						0xAD000184
-
-#define MKTC_TAEVENT_TAFINISHED					0xAD000200
-#define MKTC_TAEVENT_END					0xAD000202
-#define MKTC_TALB_TAFINISHED					0xAD000280
-#define MKTC_TALB_FINDTA					0xAD000281
-#define MKTC_TALB_END						0xAD000282
-
-#define MKTC_CRRL_WRITEOPSBLOCKED				0xAD000300
-#define MKTC_CRRL_READOPSBLOCKED				0xAD000301
-#define MKTC_CRRL_FOUNDRENDER					0xAD000302
-#define MKTC_CRRL_NORENDER					0xAD000303
-#define MKTC_CRRL_TARC_DIFFERENT				0xAD000304
-#define MKTC_FINDRENDER_BRN_23378				0xAD000308
-#define MKTC_CRRL_BLOCKEDRC					0xAD000309
-#define MKTC_CRRL_BLOCKEDRTDATA					0xAD00030A
-#define MKTC_CRRL_CONTEXT_SUSPENDED				0xAD00030B
-#define MKTC_CRRL_TAWAITINGFORMEM				0xAD00030C
-#define MKTC_CRRL_TAOOMBUTPRIOINV				0xAD00030D
-
-#define MKTC_KICKRENDER_START					0xAD000400
-#define MKTC_KICKRENDER_OVERLAP					0xAD000401
-#define MKTC_KICKRENDER_ISP_START				0xAD000402
-#define MKTC_KICKRENDER_RESUME					0xAD000403
-#define MKTC_KICKRENDER_CONFIG_REGION_HDRS			0xAD000404
-#define MKTC_KICKRENDER_END					0xAD000408
-#define MKTC_KICKRENDER_RENDERCONTEXT				0xAD000409
-#define MKTC_KICKRENDER_RTDATA					0xAD00040A
-#define MKTC_KICKRENDER_PID					0xAD00040B
-
-#define MKTC_RENDERFINISHED_START				0xAD000500
-#define MKTC_RF_START_NEXT_MT					0xAD000501
-#define MKTC_RF_ALL_MTS_DONE					0xAD000502
-#define MKTC_RENDERFINISHED_END					0xAD000503
-#define MKTC_VISQUERY_START					0xAD000504
-#define MKTC_VISQUERY_END					0xAD000505
-#define MKTC_TRANSFERRENDERFINISHED_START			0xAD000508
-#define MKTC_TRANSFERRENDERFINISHED_END				0xAD000509
-#define MKTC_TRF_UPDATESTATUSVALS				0xAD00050A
-#define MKTC_TRF_UPDATESTATUSVALS_DONE				0xAD00050B
-
-#define MKTC_PIXELENDRENDER_START				0xAD000600
-#define MKTC_PIXELENDRENDER_AFTERLOCK				0xAD000601
-#define MKTC_PIXELENDRENDER_END					0xAD000602
-#define MKTC_PIXELENDRENDER_TLQEND				0xAD000603
-
-#define MKTC_3DMEMFREE_START					0xAD000700
-#define MKTC_3DMEMFREE_AFTERLOCK				0xAD000701
-#define MKTC_3DMEMFREE_TESTEOR					0xAD000702
-#define MKTC_3DMEMFREE_END					0xAD000703
-
-#define MKTC_KICKTA_START					0xAD000800
-#define MKTC_KICKTA_OVERLAP					0xAD000801
-#define MKTC_KICKTA_RESETCONTEXT				0xAD000802
-#define MKTC_KICKTA_VDM_START					0xAD000803
-#define MKTC_KICKTA_END						0xAD000804
-#define MKTC_KICKTA_RENDERCONTEXT				0xAD000805
-#define MKTC_KICKTA_RTDATA					0xAD000806
-#define MKTC_KICKTA_RESET_VDMCSSTATUS				0xAD000807
-#define MKTC_KICKTA_RESET_BUFFERS				0xAD000808
-#define MKTC_KICKTA_PID						0xAD000809
-#define MKTC_KICKTA_TACMD_DEBUG					0xAD00080A
-#define MKTC_KICKTA_FREECONTEXT					0xAD00080B
-#define MKTC_KICKTA_PIM_PATCHING				0xAD00080C
-
-#define MKTC_KICKTA_CHKPT_START_DUMMY_CS			0xAD0008A1
-#define MKTC_KICKTA_CHKPT_START_DUMMY_TAK			0xAD0008A2
-#define MKTC_KICKTA_CHKPT_WAIT_FOR_DUMMY_KICK			0xAD0008A3
-#define MKTC_KICKTA_CHKPT_WAIT_NEXT_CORE			0xAD0008A4
-#define MKTC_KICKTA_CHKPT_RESET_COMPLETE			0xAD0008A5
-#define MKTC_KICKTA_CHKPT_CHECK_SWITCH				0xAD0008A6
-
-#define MKTC_HOSTKICK_START					0xAD000900
-#define MKTC_HOSTKICK_END					0xAD000901
-#define MKTC_HOSTKICK_PROCESS_QUEUES_END			0xAD000902
-#define MKTC_HOSTKICK_2D					0xAD000903
-#define MKTC_HOSTKICK_TRANSFER					0xAD000904
-#define MKTC_HOSTKICK_TA					0xAD000905
-#define MKTC_HOSTKICK_PROCESS_QUEUES				0xAD000906
-#define MKTC_HOSTKICK_RESUME					0xAD000908
-#define MKTC_HOSTKICK_POWEROFF					0xAD000909
-#define MKTC_HOSTKICK_IDLE					0xAD00090A
-#define MKTC_HOSTKICK_CTXSUSPEND				0xAD00090B
-#define MKTC_HOSTKICK_CTXRESUME					0xAD00090C
-
-#define MKTC_TIMER_POTENTIAL_TA_LOCKUP				0xAD000A00
-#define MKTC_TIMER_POTENTIAL_3D_LOCKUP				0xAD000A01
-#define MKTC_TIMER_CTAL_START					0xAD000A02
-#define MKTC_TIMER_CTAL_END					0xAD000A03
-#define MKTC_TIMER_C3DL_START					0xAD000A04
-#define MKTC_TIMER_C3DL_END					0xAD000A05
-#define MKTC_TIMER_LOCKUP					0xAD000A0A
-#define MKTC_TIMER_NOT_TA_LOCKUP				0xAD000A0B
-#define MKTC_TIMER_NOT_3D_LOCKUP				0xAD000A0C
-#define MKTC_TIMER_2D_LOCKUP					0xAD000A0D
-#define MKTC_TIMER_POTENTIAL_2D_LOCKUP				0xAD000A10
-#define MKTC_TIMER_C2DL_START					0xAD000A11
-#define MKTC_TIMER_C2DL_END					0xAD000A12
-#define MKTC_TIMER_NOT_2D_LOCKUP				0xAD000A13
-#define MKTC_TIMER_ABORTALL					0xAD000A0E
-#define MKTC_TIMER_END						0xAD000A0F
-
-#define MKTC_HWR_START						0xAD000B00
-#define MKTC_HWR_END						0xAD000B01
-#define MKTC_HWR_HKS						0xAD000B02
-#define MKTC_HWR_PRL						0xAD000B03
-#define MKTC_HWR_PRL_DP						0xAD000B04
-#define MKTC_HWR_CRL						0xAD000B05
-#define MKTC_HWR_CRL_DP						0xAD000B06
-#define MKTC_HWR_TRL						0xAD000B07
-#define MKTC_HWR_TRL_DP						0xAD000B08
-#define MKTC_HWR_ISC						0xAD000B09
-#define MKTC_HWR_2DL						0xAD000B0A
-
-#define MKTC_URSV_START						0xAD000C00
-#define MKTC_URSV_UPDATEWRITEOPS				0xAD000C01
-#define MKTC_URSV_UPDATESTATUSVALS				0xAD000C03
-#define MKTC_URSV_UPDATESTATUSVALS_DONE				0xAD000C04
-#define MKTC_URSV_END						0xAD000C05
-
-#define MKTC_STORETACONTEXT_START				0xAD000D00
-#define MKTC_STORETACONTEXT_END					0xAD000D01
-#define MKTC_LOADTACONTEXT_START				0xAD000D02
-#define MKTC_LOADTACONTEXT_END					0xAD000D03
-#define MKTC_STORE3DCONTEXT_START				0xAD000D04
-#define MKTC_STORE3DCONTEXT_END					0xAD000D05
-#define MKTC_LOAD3DCONTEXT_START				0xAD000D06
-#define MKTC_LOAD3DCONTEXT_END					0xAD000D07
-
-#define MKTC_FINDTA_POWERREQUEST				0xAD000E00
-#define MKTC_FINDTA_TA3D_OVERLAP_BLOCKED			0xAD000E01
-#define MKTC_FINDTA_RTDATA_RENDERING				0xAD000E02
-#define MKTC_FINDTA_3DRC_DIFFERENT				0xAD000E03
-#define MKTC_FINDTA_WRITEOPSBLOCKED				0xAD000E04
-#define MKTC_FINDTA_READOPSBLOCKED				0xAD000E05
-#define MKTC_FINDTA_RESIZE_PB					0xAD000E06
-#define MKTC_FINDTA_RESIZE_PB_BLOCKED				0xAD000E07
-#define MKTC_FINDTA_SHRINK_PB					0xAD000E08
-#define	MKTC_FINDTA_TAPB_DIFFERENT				0xAD000E09
-#define	MKTC_FINDTA_TACONTEXT_DIFFERENT				0xAD000E0A
-#define MKTC_FINDTA_TA2D_OVERLAP_BLOCKED			0xAD000E0B
-#define MKTC_FINDTA_CONTEXT_SUSPENDED				0xAD000E0C
-#define MKTC_FINDTA_SRC_READOPSBLOCKED				0xAD000E0D
-#define MKTC_FINDTA_SRC_WRITEOPSBLOCKED				0xAD000E0E
-
-#define MKTC_CTRL_SRCREADOPSBLOCKED				0xAD000F00
-#define MKTC_CTRL_SRCWRITEOPSBLOCKED				0xAD000F01
-#define MKTC_CTRL_DSTREADOPSBLOCKED				0xAD000F02
-#define MKTC_CTRL_DSTWRITEOPSBLOCKED				0xAD000F03
-#define MKTC_CTRL_TARC_DIFFERENT				0xAD000F04
-#define MKTC_CTRL_CONTEXT_SUSPENDED				0xAD000F05
-
-#define MKTC_DPTA_START						0xAD001000
-#define MKTC_DPTA_UPDATESTATUSVALS				0xAD001001
-#define MKTC_DPTA_UPDATESTATUSVALS_DONE				0xAD001002
-#define MKTC_DPTA_NORENDER					0xAD001003
-#define MKTC_DPTA_MEMFREE					0xAD001004
-#define MKTC_DPTA_INC_COMPLETECOUNT				0xAD001005
-
-#define MKTC_INVALDC 						0xAD001100
-#define MKTC_INVALPT 						0xAD001101
-#define MKTC_INVALSLC						0xAD001102
-#define MKTC_INVALDATA						0xAD001103
-
-#define MKTC_RESTARTTA						0xAD001200
-#define MKTC_CSABORTNONGBL					0xAD001201
-#define MKTC_CSABORTALL						0xAD001202
-#define MKTC_CSRENDERINPROGRESS					0xAD001203
-#define MKTC_TATERMRENDERINPROGRESS				0xAD001204
-#define MKTC_RESTARTTANORENDER					0xAD001205
-#define MKTC_SPM_KICKRENDER					0xAD001206
-#define MKTC_SPM_RESUME_ABORTCOMPLETE				0xAD001208
-#define	MKTC_RESUMEVDM						0xAD001209
-#define	MKTC_REMOVE_RESERVE_MEM					0xAD00120A
-#define	MKTC_INCREASEZLSTHRESHOLD				0xAD00120B
-#define MKTC_CSFORCEABORTALL					0xAD00120C
-
-#define MKTC_DUMMY_DEPTH					0xAD00120D
-#define MKTC_DUMMY_DEPTH_CS					0xAD00120E
-
-#define MKTC_MTETE_OOM						0xAD00120F
-#define	MKTC_MTETE_OOM_FIRST_STORE_REF				0xAD001210
-#define MKTC_MERGE_STATE_TABLES					0xAD001211
-#define MKTC_NO_PAGES_LEFT_FOR_23055				0xAD001212
-#define MKTC_NO_STATE_MODS					0xAD001213
-#define MKTC_FIND_MTE_PAGE_IN_STATE				0xAD001214
-#define MKTC_MTE_PAGE_FOUND					0xAD001215
-#define MKTC_MOVE_MTE_PAGE_TO_TA_STATE				0xAD001216
-#define MKTC_MOVE_MTE_PAGE_TO_TA_STATE_END			0xAD001217
-#define MKTC_ZERO_ZLS_THRESHOLD					0xAD001218
-#define MKTC_RESTORE_ZLS_THRESHOLD				0xAD001219
-#define MKTC_FIND_MTE_PAGE_IN_CSM				0xAD00121A
-#define MKTC_REISSUE_MTE_PAGE					0xAD00121B
-#define MKTC_REISSUE_MTE_PAGE_REQUIRED				0xAD00121C
-#define MKTC_REISSUE_MTE_PAGE_END				0xAD00121D
-#define MKTC_RESET_TE_PSG					0xAD00121E
-
-#define MKTC_OOM_WRITEOPSBLOCKED				0xAD00121F
-#define MKTC_OOM_READOPSBLOCKED					0xAD001220
-#define MKTC_OOM_SRC_WRITEOPSBLOCKED				0xAD001221
-#define MKTC_OOM_SRC_READOPSBLOCKED				0xAD001222
-#define MKTC_OOM_SPM_DEADLOCK					0xAD001223
-#define MKTC_OOM_SPM_DEADLOCK_MEM_ADDED				0xAD001224
-#define MKTC_BRN27311_RESET					0xAD001225
-#define	MKTC_SPM_INVALID_ZLSCONFIG				0xAD001226
-
-#define MKTC_SPM_ALREADY_DRAINED				0xAD001227
-#define MKTC_DRAIN_COMPLETE					0xAD001228
-#define MKTC_DRAIN_SET_FLAG					0xAD001229
-
-#define MKTC_OOM_TYPE_MT					0xAD00122A
-#define MKTC_OOM_TYPE_GLOBAL					0xAD001230
-#define MKTC_OOM_CAUSE_GBL_OOM					0xAD001231
-
-#define MKTC_CHECK_MTE_PAGE_REISSUE				0xAD001240
-#define MKTC_CPRI_VALID_ENTRIES					0xAD001241
-#define MKTC_CPRI_STORE_DPLIST					0xAD001242
-#define MKTC_CPRI_STORE_OTPM_CSM				0xAD001243
-#define MKTC_CPRI_ABORT_MT_IDX					0xAD001244
-#define MKTC_CPRI_ABORT_CORE_IDX				0xAD001245
-#define MKTC_CPRI_CSM_TABLE_DATA				0xAD001246
-#define MKTC_CPRI_PIM_DATA					0xAD001247
-#define MKTC_CPRI_DO_CIRCULAR_TEST				0xAD001248
-
-#define MKTC_CPRI_WRITE_ENTRIES					0xAD001249
-
-#define	MKTC_MTE_ENTRY_NOT_IN_ANY_LIST				0xAD001250
-
-#define	MKTC_SPMAC_IGNORE_TERMINATE				0xAD001251
-
-#define MKTC_SPMAC_REQUEST_3D_TIMEOUT				0xAD001252
-#define MKTC_SPMAC_3D_TIMEOUT_COMPLETE				0xAD001253
-
-/* PB Load/store status */
-#define MKTC_LOADTAPB_START					0xAD001300
-#define MKTC_LOADTAPB_END					0xAD001301
-#define MKTC_STORETAPB_START					0xAD001302
-#define MKTC_STORETAPB_END					0xAD001303
-#define MKTC_LOAD3DPB_START					0xAD001304
-#define MKTC_LOAD3DPB_END					0xAD001305
-#define MKTC_STORE3DPB_START					0xAD001306
-#define MKTC_STORE3DPB_END					0xAD001307
-#define MKTC_LOADTAPB_PAGETABLE_DONE				0xAD001308
-#define MKTC_LOAD3DPB_PAGETABLE_DONE				0xAD001309
-
-#define MKTC_TIMER_RC_CLEANUP					0xAD001400
-#define MKTC_TIMER_RC_CLEANUP_COMPLETE				0xAD001401
-#define MKTC_TIMER_RT_CLEANUP					0xAD001410
-#define MKTC_TIMER_RT_CLEANUP_COMPLETE				0xAD001411
-#define MKTC_TIMER_RT_CLEANUP_PENDING				0xAD001412
-#define MKTC_TIMER_RT_CLEANUP_TIDYPARTIALLIST			0xAD001413
-#define MKTC_TIMER_TC_CLEANUP					0xAD001420
-#define MKTC_TIMER_TC_CLEANUP_COMPLETE				0xAD001421
-#define MKTC_TIMER_2DC_CLEANUP					0xAD001430
-#define MKTC_TIMER_2DC_CLEANUP_COMPLETE				0xAD001431
-#define MKTC_TIMER_SHAREDPBDESC_CLEANUP				0xAD001440
-
-#define MKTC_TIMER_ISP_SWITCH_POTENTIAL_LOCKUP			0xAD001450
-#define MKTC_TIMER_ISP_SWITCH_FORCE_SWITCH			0xAD001451
-
-#define MKTC_UTSO_UPDATEREADOPS					0xAD001600
-#define MKTC_UTSO_UPDATEWRITEOPS				0xAD001601
-
-#define MKTC_TAFINISHED_UPDATESTATUSVALS			0xAD001700
-#define MKTC_TAFINISHED_UPDATESTATUSVALS_DONE			0xAD001701
-#define MKTC_TAFINISHED_NORENDER				0xAD001702
-#define MKTC_TAFINISHED_LASTKICK				0xAD001703
-#define MKTC_TAFINISHED_FINDRENDER				0xAD001704
-#define MKTC_TAFINISHED_FINDTA					0xAD001705
-#define MKTC_TAFINISHED_END					0xAD001706
-#define MKTC_TAF_SPM_DEADLOCK_MEM_REMOVED			0xAD001707
-#define MKTC_TAF_RESERVE_MEM					0xAD001708
-#define MKTC_TAF_RESERVE_MEM_REQUEST_RENDER			0xAD001709
-#define MKTC_TAF_RESERVE_FREE_RENDER_FINISHED			0xAD00170A
-#define MKTC_TAF_RESERVE_FREE_DUMMY_RENDER			0xAD00170B
-#define MKTC_TAF_DEBUG_SAS					0xAD00170C
-#define MKTC_TAFINISHED_NOCONTEXTSWITCH				0xAD00170D
-
-#define MKTC_TAFINISHED_TERM_COMPLETE_START			0xAD001710
-#define MKTC_TAFINISHED_TERM_COMPLETE_END			0xAD001711
-
-#define MKTC_TAFINISHED_ZERO_TAILPTRS				0xAD001720
-
-#define MKTC_2DEVENT_2DCOMPLETE					0xAD001800
-#define MKTC_2DEVENT_END					0xAD001801
-#define	MKTC_2DLB_2DCOMPLETE					0xAD001802
-#define MKTC_2DLB_FIND2D					0xAD001803
-#define MKTC_2DLB_END						0xAD001804
-#define MKTC_2DCOMPLETE_START					0xAD001805
-#define MKTC_2DCOMPLETE_END					0xAD001806
-#define MKTC_KICK2D_START					0xAD001807
-#define MKTC_KICK2D_END						0xAD001808
-#define MKTC_DUMMYPROC2D					0xAD001809
-#define MKTC_FTD_SRCREADOPSBLOCKED				0xAD00180A
-#define MKTC_FTD_SRCWRITEOPSBLOCKED				0xAD00180B
-#define MKTC_FTD_DSTREADOPSBLOCKED				0xAD00180C
-#define MKTC_FTD_DSTWRITEOPSBLOCKED				0xAD00180D
-#define MKTC_FTD_TA2D_OVERLAP_BLOCKED				0xAD00180E
-#define MKTC_U2DSO_UPDATEREADOPS				0xAD00180F
-#define MKTC_U2DSO_UPDATEWRITEOPS				0xAD001810
-#define MKTC_FTD_TAOPSBLOCKED					0xAD001811
-#define MKTC_KICK2D_2DSLAVEPORT					0xAD001812
-#define MKTC_KICK2D_2DSLAVEPORT_DONE				0xAD001813
-#define MKTC_FTD_CONTEXT_SUSPENDED				0xAD001814
-#define MKTC_KICK2D_PID						0xAD001815
-#define MKTC_FIND2D_ADDR_SPACE_DIFFERENT			0xAD001816
-#define MKTC_FTD_3DOPSBLOCKED					0xAD001817
-
-#define MKTC_FCM_START						0xAD001900
-#define MKTC_FCM_END						0xAD001901
-
-#define MKTC_TIMER_ACTIVE_POWER					0xAD001A00
-#define MKTC_TIMER_POWER_3D_ACTIVE				0xAD001A01
-#define MKTC_TIMER_POWER_TA_ACTIVE				0xAD001A02
-#define MKTC_TIMER_POWER_2D_ACTIVE				0xAD001A03
-#define MKTC_TIMER_POWER_PENDING_EVENTS				0xAD001A04
-#define MKTC_TIMER_POWER_IDLE					0xAD001A05
-#define MKTC_TIMER_POWER_OFF					0xAD001A06
-#define	MKTC_TIMER_POWER_CCB_ERROR				0xAD001A07
-#define	MKTC_TIMER_POWER_RESTART_IMMEDIATE			0xAD001A08
-
-#define MKTC_3DCONTEXT_SWITCH					0xAD001B00
-#define MKTC_3DCONTEXT_SWITCH_END				0xAD001B01
-
-#define MKTC_TACONTEXT_SWITCH					0xAD001C00
-#define	MKTC_TACONTEXT_SWITCH_FAST				0xAD001C01
-#define MKTC_TACONTEXT_SWITCH_END				0xAD001C02
-
-#define MKTC_GETMISCINFO_MEMREAD_START				0xAD001D00
-#define MKTC_GETMISCINFO_MEMREAD_END				0xAD001D01
-#define MKTC_GETMISCINFO_MEMWRITE_START				0xAD001D02
-#define MKTC_GETMISCINFO_MEMWRITE_END				0xAD001D03
-
-#define	MKTC_HALTTA						0xAD001E00
-#define MKTC_HTA_SET_FLAG					0xAD001E01
-#define MKTC_HTA_SAVE_COMPLEX_PTR				0xAD001E02
-#define MKTC_HALTTA_END						0xAD001E03
-
-#define	MKTC_RESUMETA						0xAD001F00
-#define	MKTC_RTA_CONTEXT_LOADED					0xAD001F01
-#define	MKTC_RTA_MTE_STATE_KICKED				0xAD001F02
-#define MKTC_RTA_CMPLX_GEOM_PRESENT				0xAD001F03
-#define	MKTC_RTA_CMPLX_STATE_KICKED				0xAD001F04
-#define	MKTC_RTA_CHECK_NEXT_SA_PROG				0xAD001F05
-#define MKTC_RTA_CORE_COMPLETED					0xAD001F06
-#define MKTC_RTA_DEBUG_SAS					0xAD001F07
-#define MKTC_RESUMETA_END					0xAD001F0F
-
-#define MKTC_RESUME_SPMCS_START					0xAD001F80
-#define MKTC_RSPMCS_OVERLAP					0xAD001F81
-#define MKTC_RSPMCS_START_PULSE					0xAD001F82
-#define MKTC_RESUME_SPMCS_END					0xAD001F83
-
-#define MKTC_RENDERHALT						0xAD002000
-#define MKTC_RH_CLEARFLAGS					0xAD002001
-#define MKTC_RH_CTRL_ADDR					0xAD002002
-#define MKTC_RH_RGN_ADDR					0xAD002003
-#define MKTC_RH_EMPTY_TILE					0xAD002004
-#define MKTC_RH_EMPTY_LAST_TILE					0xAD002005
-#define MKTC_RH_3D_TIMEOUT					0xAD002006
-#define MKTC_RH_NOT_EMPTY					0xAD002007
-#define MKTC_RH_OBJECT_COMPLETE					0xAD002008
-#define MKTC_RH_STREAM_LINK					0xAD002009
-#define MKTC_RH_OBJECT_INCOMPLETE				0xAD00200A
-#define MKTC_RH_PRIM_MASK_PRESENT				0xAD00200B
-#define MKTC_RH_BYTE_MASK_PRESENT				0xAD00200C
-#define MKTC_RH_BYTE_MASK_ZERO					0xAD00200D
-#define MKTC_RH_PRIM_MASK_ZERO					0xAD00200E
-#define MKTC_RH_INVALIDATE_OBJECTS				0xAD00200F
-#define MKTC_RH_OBJECTS_INVALIDATED				0xAD002010
-#define MKTC_RH_DPM_RGN_PARSER_IDLE				0xAD002011
-#define MKTC_RH_NEXT_RGN_BASE					0xAD002012
-#define MKTC_RH_OCC_EXIT					0xAD002013
-#define MKTC_RH_STILL_RUNNING					0xAD002020
-#define MKTC_RH_CLEARMCI					0xAD002021
-#define MKTC_RH_EOR						0xAD002022
-#define MKTC_RENDERHALT_END					0xAD002030
-
-#define	MKTC_FIND3D_POWERREQUEST				0xAD002100
-
-#define	MKTC_FIND2D_POWERREQUEST				0xAD002200
-
-#define MKTC_SPM_OOM_POWERREQUEST				0xAD002280
-#define MKTC_SPM_AC_POWERREQUEST				0xAD002281
-#define MKTC_SPM_RF_POWERREQUEST				0xAD002282
-
-#define	MKTC_UKERNEL_INIT					0xAD002300
-#define MKTC_UKERNEL_INIT_DCS_COMPLETE				0xAD002301
-#define MKTC_UKERNEL_INIT_VDMKICK_COMPLETE			0xAD002303
-
-#define MKTC_KICKTRANSFERRENDER_START				0xAD002400
-#define MKTC_KICKTRANSFERRENDER_ISP_START			0xAD002401
-#define MKTC_KICKTRANSFERRENDER_END				0xAD002402
-#define MKTC_DUMMYPROCTRANSFER					0xAD002403
-#define MKTC_KTR_TQFENCE					0xAD002404
-#define MKTC_KICKTRANSFERRENDER_PID				0xAD002405
-
-#define MKTC_HOSTKICK_CLEANUP_RT				0xAD002500
-#define MKTC_HOSTKICK_CLEANUP_RC				0xAD002501
-#define MKTC_HOSTKICK_CLEANUP_TC				0xAD002502
-#define MKTC_HOSTKICK_CLEANUP_2DC				0xAD002503
-#define MKTC_HOSTKICK_CLEANUP_PB				0xAD002504
-#define MKTC_HOSTKICK_GETMISCINFO				0xAD002505
-#define MKTC_HOSTKICK_DATABREAKPOINT				0xAD002506
-#define MKTC_HOSTKICK_SETHWPERFSTATUS				0xAD002507
-
-#define MKTC_ZEROPC						0xAD002600
-
-#define MKTC_ASSERT_FAIL					0xAD002700
-
-#define MKTC_SDLB_ILLEGAL					0xAD002800
-
-#define MKTC_SPMEVENT_MEMTHRESHOLD				0xAD002900
-#define MKTC_SPMEVENT_OUTOFMEM					0xAD002901
-#define MKTC_SPMEVENT_TATERMINATE				0xAD002902
-#define MKTC_SPMEVENT_MTE_DRAIN_COMPLETE			0xAD002903
-#define MKTC_SPMEVENT_END					0xAD002904
-#define MKTC_SPMLB_MEMTHRESHOLD					0xAD002980
-#define MKTC_SPMLB_OUTOFMEM					0xAD002981
-#define MKTC_SPMLB_TATERMINATE					0xAD002982
-#define MKTC_SPMLB_SPMRENDERFINSHED				0xAD002983
-#define MKTC_SPMLB_MTE_DRAIN_COMPLETE				0xAD002984
-#define MKTC_SPMLB_END						0xAD002985
-
-#define MKTC_SPM_CHECK_MT_DEADLOCK				0xAD002991
-#define MKTC_SPM_CHECK_GLOBAL_DEADLOCK				0xAD002992
-#define MKTC_SPM_RESERVE_ADDED					0xAD002993
-
-#define MKTC_IBC_ILLEGAL					0xAD002A00
-
-#define MKTC_HWP_CLEARCOUNTERS					0xAD002B00
-
-#define MKTC_TA_FRAMENUM					0xAD002C00
-#define MKTC_3D_FRAMENUM					0xAD002C01
-#define MKTC_SPM3D_FRAMENUM					0xAD002C02
-
-#define MKTC_HKTA_RENDERCONTEXT					0xAD002D00
-#define MKTC_IDLECORE_REFCOUNT_FAIL				0xAD002E00
-
-#define MKTC_MCISTATE_NOT_CLEARED				0xAD002F00
-
-
-#define MKTC_LOWERED_TO_PDS_THRESHOLD				0xAD003000
-#define MKTC_REDUCE_MAX_VTX_PARTITIONS				0xAD003001
-#define MKTC_KTAOVERRIDE_MAX_VTX_PARTITIONS			0xAD003002
-#define MKTC_KTANOOVERRIDE_MAX_VTX_PARTITIONS			0xAD003003
-
-
-#define MKTC_IPRB_NORENDERDETAILS				0xAD003010
-#define MKTC_IPRB_HAVERENDERDETAILS				0xAD003011
-
-#define MKTC_RENDER_OUT_OF_ORDER				0xAD003020
-#define MKTC_RENDER_NOT_OUT_OF_ORDER				0xAD003021
-
-#define MKTC_ZLS_IDLE_BEGIN					0xAD003030
-#define MKTC_ZLS_ISP_CLK_GATING_EN				0xAD003031
-#define MKTC_ZLS_IDLE_END					0xAD003032
-
-#define MKTSTR(x) #x
-
-struct MKTC {
-	IMG_UINT32 m;
-	char *s;
-} MKTDecoder[] = {
-
-	{ MKTC_EHEVENT_3DMEMFREE, MKTSTR(MKTC_EHEVENT_3DMEMFREE) },
-	{ MKTC_EHEVENT_PIXELENDRENDER, MKTSTR(MKTC_EHEVENT_PIXELENDRENDER) },
-	{ MKTC_EHEVENT_ISPBREAKPOINT, MKTSTR(MKTC_EHEVENT_ISPBREAKPOINT) },
-	{ MKTC_EHEVENT_TAFINISHED, MKTSTR(MKTC_EHEVENT_TAFINISHED) },
-	{ MKTC_EHEVENT_MEMTHRESHOLD, MKTSTR(MKTC_EHEVENT_MEMTHRESHOLD) },
-	{ MKTC_EHEVENT_OUTOFMEM, MKTSTR(MKTC_EHEVENT_OUTOFMEM) },
-	{ MKTC_EHEVENT_TATERMINATE, MKTSTR(MKTC_EHEVENT_TATERMINATE) },
-	{ MKTC_EHEVENT_TIMER, MKTSTR(MKTC_EHEVENT_TIMER) },
-	{ MKTC_EHEVENT_SWEVENT, MKTSTR(MKTC_EHEVENT_SWEVENT) },
-	{ MKTC_EHEVENT_2DCOMPLETE, MKTSTR(MKTC_EHEVENT_2DCOMPLETE) },
-	{ MKTC_EHEVENT_MTE_DRAIN_COMPLETE, MKTSTR(MKTC_EHEVENT_MTE_DRAIN_COMPLETE) },
-
-	{ MKTC_3DEVENT_3DMEMFREE, MKTSTR(MKTC_3DEVENT_3DMEMFREE) },
-	{ MKTC_3DEVENT_PIXELENDRENDER, MKTSTR(MKTC_3DEVENT_PIXELENDRENDER) },
-	{ MKTC_3DEVENT_ISPBREAKPOINT, MKTSTR(MKTC_3DEVENT_ISPBREAKPOINT) },
-	{ MKTC_3DEVENT_END, MKTSTR(MKTC_3DEVENT_END) },
-	{ MKTC_3DLB_3DMEMFREE, MKTSTR(MKTC_3DLB_3DMEMFREE) },
-	{ MKTC_3DLB_PIXELENDRENDER, MKTSTR(MKTC_3DLB_PIXELENDRENDER) },
-	{ MKTC_3DLB_ISPBREAKPOINT, MKTSTR(MKTC_3DLB_ISPBREAKPOINT) },
-	{ MKTC_3DLB_FIND3D, MKTSTR(MKTC_3DLB_FIND3D) },
-	{ MKTC_3DLB_END, MKTSTR(MKTC_3DLB_END) },
-
-	{ MKTC_TAEVENT_TAFINISHED, MKTSTR(MKTC_TAEVENT_TAFINISHED) },
-	{ MKTC_TAEVENT_END, MKTSTR(MKTC_TAEVENT_END) },
-	{ MKTC_TALB_TAFINISHED, MKTSTR(MKTC_TALB_TAFINISHED) },
-	{ MKTC_TALB_FINDTA, MKTSTR(MKTC_TALB_FINDTA) },
-	{ MKTC_TALB_END, MKTSTR(MKTC_TALB_END) },
-
-	{ MKTC_CRRL_WRITEOPSBLOCKED, MKTSTR(MKTC_CRRL_WRITEOPSBLOCKED) },
-	{ MKTC_CRRL_READOPSBLOCKED, MKTSTR(MKTC_CRRL_READOPSBLOCKED) },
-	{ MKTC_CRRL_FOUNDRENDER, MKTSTR(MKTC_CRRL_FOUNDRENDER) },
-	{ MKTC_CRRL_NORENDER, MKTSTR(MKTC_CRRL_NORENDER) },
-	{ MKTC_CRRL_TARC_DIFFERENT, MKTSTR(MKTC_CRRL_TARC_DIFFERENT) },
-	{ MKTC_FINDRENDER_BRN_23378, MKTSTR(MKTC_FINDRENDER_BRN_23378) },
-	{ MKTC_CRRL_BLOCKEDRC, MKTSTR(MKTC_CRRL_BLOCKEDRC) },
-	{ MKTC_CRRL_BLOCKEDRTDATA, MKTSTR(MKTC_CRRL_BLOCKEDRTDATA) },
-	{ MKTC_CRRL_CONTEXT_SUSPENDED, MKTSTR(MKTC_CRRL_CONTEXT_SUSPENDED) },
-	{ MKTC_CRRL_TAWAITINGFORMEM, MKTSTR(MKTC_CRRL_TAWAITINGFORMEM) },
-	{ MKTC_CRRL_TAOOMBUTPRIOINV, MKTSTR(MKTC_CRRL_TAOOMBUTPRIOINV) },
-
-	{ MKTC_KICKRENDER_START, MKTSTR(MKTC_KICKRENDER_START) },
-	{ MKTC_KICKRENDER_OVERLAP, MKTSTR(MKTC_KICKRENDER_OVERLAP) },
-	{ MKTC_KICKRENDER_ISP_START, MKTSTR(MKTC_KICKRENDER_ISP_START) },
-	{ MKTC_KICKRENDER_RESUME, MKTSTR(MKTC_KICKRENDER_RESUME) },
-	{ MKTC_KICKRENDER_CONFIG_REGION_HDRS, MKTSTR(MKTC_KICKRENDER_CONFIG_REGION_HDRS) },
-	{ MKTC_KICKRENDER_END, MKTSTR(MKTC_KICKRENDER_END) },
-	{ MKTC_KICKRENDER_RENDERCONTEXT, MKTSTR(MKTC_KICKRENDER_RENDERCONTEXT) },
-	{ MKTC_KICKRENDER_RTDATA, MKTSTR(MKTC_KICKRENDER_RTDATA) },
-	{ MKTC_KICKRENDER_PID, MKTSTR(MKTC_KICKRENDER_PID) },
-
-	{ MKTC_RENDERFINISHED_START, MKTSTR(MKTC_RENDERFINISHED_START) },
-	{ MKTC_RF_START_NEXT_MT, MKTSTR(MKTC_RF_START_NEXT_MT) },
-	{ MKTC_RF_ALL_MTS_DONE, MKTSTR(MKTC_RF_ALL_MTS_DONE) },
-	{ MKTC_RENDERFINISHED_END, MKTSTR(MKTC_RENDERFINISHED_END) },
-	{ MKTC_VISQUERY_START, MKTSTR(MKTC_VISQUERY_START) },
-	{ MKTC_VISQUERY_END, MKTSTR(MKTC_VISQUERY_END) },
-	{ MKTC_TRANSFERRENDERFINISHED_START, MKTSTR(MKTC_TRANSFERRENDERFINISHED_START) },
-	{ MKTC_TRANSFERRENDERFINISHED_END, MKTSTR(MKTC_TRANSFERRENDERFINISHED_END) },
-	{ MKTC_TRF_UPDATESTATUSVALS, MKTSTR(MKTC_TRF_UPDATESTATUSVALS) },
-	{ MKTC_TRF_UPDATESTATUSVALS_DONE, MKTSTR(MKTC_TRF_UPDATESTATUSVALS_DONE) },
-
-	{ MKTC_PIXELENDRENDER_START, MKTSTR(MKTC_PIXELENDRENDER_START) },
-	{ MKTC_PIXELENDRENDER_AFTERLOCK, MKTSTR(MKTC_PIXELENDRENDER_AFTERLOCK) },
-	{ MKTC_PIXELENDRENDER_END, MKTSTR(MKTC_PIXELENDRENDER_END) },
-	{ MKTC_PIXELENDRENDER_TLQEND, MKTSTR(MKTC_PIXELENDRENDER_TLQEND) },
-
-	{ MKTC_3DMEMFREE_START, MKTSTR(MKTC_3DMEMFREE_START) },
-	{ MKTC_3DMEMFREE_AFTERLOCK, MKTSTR(MKTC_3DMEMFREE_AFTERLOCK) },
-	{ MKTC_3DMEMFREE_TESTEOR, MKTSTR(MKTC_3DMEMFREE_TESTEOR) },
-	{ MKTC_3DMEMFREE_END, MKTSTR(MKTC_3DMEMFREE_END) },
-
-	{ MKTC_KICKTA_START, MKTSTR(MKTC_KICKTA_START) },
-	{ MKTC_KICKTA_OVERLAP, MKTSTR(MKTC_KICKTA_OVERLAP) },
-	{ MKTC_KICKTA_RESETCONTEXT, MKTSTR(MKTC_KICKTA_RESETCONTEXT) },
-	{ MKTC_KICKTA_VDM_START, MKTSTR(MKTC_KICKTA_VDM_START) },
-	{ MKTC_KICKTA_END, MKTSTR(MKTC_KICKTA_END) },
-	{ MKTC_KICKTA_RENDERCONTEXT, MKTSTR(MKTC_KICKTA_RENDERCONTEXT) },
-	{ MKTC_KICKTA_RTDATA, MKTSTR(MKTC_KICKTA_RTDATA) },
-	{ MKTC_KICKTA_RESET_VDMCSSTATUS, MKTSTR(MKTC_KICKTA_RESET_VDMCSSTATUS) },
-	{ MKTC_KICKTA_RESET_BUFFERS, MKTSTR(MKTC_KICKTA_RESET_BUFFERS) },
-	{ MKTC_KICKTA_PID, MKTSTR(MKTC_KICKTA_PID) },
-	{ MKTC_KICKTA_TACMD_DEBUG, MKTSTR(MKTC_KICKTA_TACMD_DEBUG) },
-	{ MKTC_KICKTA_FREECONTEXT, MKTSTR(MKTC_KICKTA_FREECONTEXT) },
-	{ MKTC_KICKTA_PIM_PATCHING, MKTSTR(MKTC_KICKTA_PIM_PATCHING) },
-
-	{ MKTC_KICKTA_CHKPT_START_DUMMY_CS, MKTSTR(MKTC_KICKTA_CHKPT_START_DUMMY_CS) },
-	{ MKTC_KICKTA_CHKPT_START_DUMMY_TAK, MKTSTR(MKTC_KICKTA_CHKPT_START_DUMMY_TAK) },
-	{ MKTC_KICKTA_CHKPT_WAIT_FOR_DUMMY_KICK, MKTSTR(MKTC_KICKTA_CHKPT_WAIT_FOR_DUMMY_KICK) },
-	{ MKTC_KICKTA_CHKPT_WAIT_NEXT_CORE, MKTSTR(MKTC_KICKTA_CHKPT_WAIT_NEXT_CORE) },
-	{ MKTC_KICKTA_CHKPT_RESET_COMPLETE, MKTSTR(MKTC_KICKTA_CHKPT_RESET_COMPLETE) },
-	{ MKTC_KICKTA_CHKPT_CHECK_SWITCH, MKTSTR(MKTC_KICKTA_CHKPT_CHECK_SWITCH) },
-
-	{ MKTC_HOSTKICK_START, MKTSTR(MKTC_HOSTKICK_START) },
-	{ MKTC_HOSTKICK_END, MKTSTR(MKTC_HOSTKICK_END) },
-	{ MKTC_HOSTKICK_PROCESS_QUEUES_END, MKTSTR(MKTC_HOSTKICK_PROCESS_QUEUES_END) },
-	{ MKTC_HOSTKICK_2D, MKTSTR(MKTC_HOSTKICK_2D) },
-	{ MKTC_HOSTKICK_TRANSFER, MKTSTR(MKTC_HOSTKICK_TRANSFER) },
-	{ MKTC_HOSTKICK_TA, MKTSTR(MKTC_HOSTKICK_TA) },
-	{ MKTC_HOSTKICK_PROCESS_QUEUES, MKTSTR(MKTC_HOSTKICK_PROCESS_QUEUES) },
-	{ MKTC_HOSTKICK_RESUME, MKTSTR(MKTC_HOSTKICK_RESUME) },
-	{ MKTC_HOSTKICK_POWEROFF, MKTSTR(MKTC_HOSTKICK_POWEROFF) },
-	{ MKTC_HOSTKICK_IDLE, MKTSTR(MKTC_HOSTKICK_IDLE) },
-	{ MKTC_HOSTKICK_CTXSUSPEND, MKTSTR(MKTC_HOSTKICK_CTXSUSPEND) },
-	{ MKTC_HOSTKICK_CTXRESUME, MKTSTR(MKTC_HOSTKICK_CTXRESUME) },
-
-	{ MKTC_TIMER_POTENTIAL_TA_LOCKUP, MKTSTR(MKTC_TIMER_POTENTIAL_TA_LOCKUP) },
-	{ MKTC_TIMER_POTENTIAL_3D_LOCKUP, MKTSTR(MKTC_TIMER_POTENTIAL_3D_LOCKUP) },
-	{ MKTC_TIMER_CTAL_START, MKTSTR(MKTC_TIMER_CTAL_START) },
-	{ MKTC_TIMER_CTAL_END, MKTSTR(MKTC_TIMER_CTAL_END) },
-	{ MKTC_TIMER_C3DL_START, MKTSTR(MKTC_TIMER_C3DL_START) },
-	{ MKTC_TIMER_C3DL_END, MKTSTR(MKTC_TIMER_C3DL_END) },
-	{ MKTC_TIMER_LOCKUP, MKTSTR(MKTC_TIMER_LOCKUP) },
-	{ MKTC_TIMER_NOT_TA_LOCKUP, MKTSTR(MKTC_TIMER_NOT_TA_LOCKUP) },
-	{ MKTC_TIMER_NOT_3D_LOCKUP, MKTSTR(MKTC_TIMER_NOT_3D_LOCKUP) },
-	{ MKTC_TIMER_2D_LOCKUP, MKTSTR(MKTC_TIMER_2D_LOCKUP) },
-	{ MKTC_TIMER_POTENTIAL_2D_LOCKUP, MKTSTR(MKTC_TIMER_POTENTIAL_2D_LOCKUP) },
-	{ MKTC_TIMER_C2DL_START, MKTSTR(MKTC_TIMER_C2DL_START) },
-	{ MKTC_TIMER_C2DL_END, MKTSTR(MKTC_TIMER_C2DL_END) },
-	{ MKTC_TIMER_NOT_2D_LOCKUP, MKTSTR(MKTC_TIMER_NOT_2D_LOCKUP) },
-	{ MKTC_TIMER_ABORTALL, MKTSTR(MKTC_TIMER_ABORTALL) },
-	{ MKTC_TIMER_END, MKTSTR(MKTC_TIMER_END) },
-
-	{ MKTC_HWR_START, MKTSTR(MKTC_HWR_START) },
-	{ MKTC_HWR_END, MKTSTR(MKTC_HWR_END) },
-	{ MKTC_HWR_HKS, MKTSTR(MKTC_HWR_HKS) },
-	{ MKTC_HWR_PRL, MKTSTR(MKTC_HWR_PRL) },
-	{ MKTC_HWR_PRL_DP, MKTSTR(MKTC_HWR_PRL_DP) },
-	{ MKTC_HWR_CRL, MKTSTR(MKTC_HWR_CRL) },
-	{ MKTC_HWR_CRL_DP, MKTSTR(MKTC_HWR_CRL_DP) },
-	{ MKTC_HWR_TRL, MKTSTR(MKTC_HWR_TRL) },
-	{ MKTC_HWR_TRL_DP, MKTSTR(MKTC_HWR_TRL_DP) },
-	{ MKTC_HWR_ISC, MKTSTR(MKTC_HWR_ISC) },
-	{ MKTC_HWR_2DL, MKTSTR(MKTC_HWR_2DL) },
-
-	{ MKTC_URSV_START, MKTSTR(MKTC_URSV_START) },
-	{ MKTC_URSV_UPDATEWRITEOPS, MKTSTR(MKTC_URSV_UPDATEWRITEOPS) },
-	{ MKTC_URSV_UPDATESTATUSVALS, MKTSTR(MKTC_URSV_UPDATESTATUSVALS) },
-	{ MKTC_URSV_UPDATESTATUSVALS_DONE, MKTSTR(MKTC_URSV_UPDATESTATUSVALS_DONE) },
-	{ MKTC_URSV_END, MKTSTR(MKTC_URSV_END) },
-
-	{ MKTC_STORETACONTEXT_START, MKTSTR(MKTC_STORETACONTEXT_START) },
-	{ MKTC_STORETACONTEXT_END, MKTSTR(MKTC_STORETACONTEXT_END) },
-	{ MKTC_LOADTACONTEXT_START, MKTSTR(MKTC_LOADTACONTEXT_START) },
-	{ MKTC_LOADTACONTEXT_END, MKTSTR(MKTC_LOADTACONTEXT_END) },
-	{ MKTC_STORE3DCONTEXT_START, MKTSTR(MKTC_STORE3DCONTEXT_START) },
-	{ MKTC_STORE3DCONTEXT_END, MKTSTR(MKTC_STORE3DCONTEXT_END) },
-	{ MKTC_LOAD3DCONTEXT_START, MKTSTR(MKTC_LOAD3DCONTEXT_START) },
-	{ MKTC_LOAD3DCONTEXT_END, MKTSTR(MKTC_LOAD3DCONTEXT_END) },
-
-	{ MKTC_FINDTA_POWERREQUEST, MKTSTR(MKTC_FINDTA_POWERREQUEST) },
-	{ MKTC_FINDTA_TA3D_OVERLAP_BLOCKED, MKTSTR(MKTC_FINDTA_TA3D_OVERLAP_BLOCKED) },
-	{ MKTC_FINDTA_RTDATA_RENDERING, MKTSTR(MKTC_FINDTA_RTDATA_RENDERING) },
-	{ MKTC_FINDTA_3DRC_DIFFERENT, MKTSTR(MKTC_FINDTA_3DRC_DIFFERENT) },
-	{ MKTC_FINDTA_WRITEOPSBLOCKED, MKTSTR(MKTC_FINDTA_WRITEOPSBLOCKED) },
-	{ MKTC_FINDTA_READOPSBLOCKED, MKTSTR(MKTC_FINDTA_READOPSBLOCKED) },
-	{ MKTC_FINDTA_RESIZE_PB, MKTSTR(MKTC_FINDTA_RESIZE_PB) },
-	{ MKTC_FINDTA_RESIZE_PB_BLOCKED, MKTSTR(MKTC_FINDTA_RESIZE_PB_BLOCKED) },
-	{ MKTC_FINDTA_SHRINK_PB, MKTSTR(MKTC_FINDTA_SHRINK_PB) },
-	{ MKTC_FINDTA_TAPB_DIFFERENT, MKTSTR(MKTC_FINDTA_TAPB_DIFFERENT) },
-	{ MKTC_FINDTA_TACONTEXT_DIFFERENT, MKTSTR(MKTC_FINDTA_TACONTEXT_DIFFERENT) },
-	{ MKTC_FINDTA_TA2D_OVERLAP_BLOCKED, MKTSTR(MKTC_FINDTA_TA2D_OVERLAP_BLOCKED) },
-	{ MKTC_FINDTA_CONTEXT_SUSPENDED, MKTSTR(MKTC_FINDTA_CONTEXT_SUSPENDED) },
-	{ MKTC_FINDTA_SRC_READOPSBLOCKED, MKTSTR(MKTC_FINDTA_SRC_READOPSBLOCKED) },
-	{ MKTC_FINDTA_SRC_WRITEOPSBLOCKED, MKTSTR(MKTC_FINDTA_SRC_WRITEOPSBLOCKED) },
-
-	{ MKTC_CTRL_SRCREADOPSBLOCKED, MKTSTR(MKTC_CTRL_SRCREADOPSBLOCKED) },
-	{ MKTC_CTRL_SRCWRITEOPSBLOCKED, MKTSTR(MKTC_CTRL_SRCWRITEOPSBLOCKED) },
-	{ MKTC_CTRL_DSTREADOPSBLOCKED, MKTSTR(MKTC_CTRL_DSTREADOPSBLOCKED) },
-	{ MKTC_CTRL_DSTWRITEOPSBLOCKED, MKTSTR(MKTC_CTRL_DSTWRITEOPSBLOCKED) },
-	{ MKTC_CTRL_TARC_DIFFERENT, MKTSTR(MKTC_CTRL_TARC_DIFFERENT) },
-	{ MKTC_CTRL_CONTEXT_SUSPENDED, MKTSTR(MKTC_CTRL_CONTEXT_SUSPENDED) },
-
-	{ MKTC_DPTA_START, MKTSTR(MKTC_DPTA_START) },
-	{ MKTC_DPTA_UPDATESTATUSVALS, MKTSTR(MKTC_DPTA_UPDATESTATUSVALS) },
-	{ MKTC_DPTA_UPDATESTATUSVALS_DONE, MKTSTR(MKTC_DPTA_UPDATESTATUSVALS_DONE) },
-	{ MKTC_DPTA_NORENDER, MKTSTR(MKTC_DPTA_NORENDER) },
-	{ MKTC_DPTA_MEMFREE, MKTSTR(MKTC_DPTA_MEMFREE) },
-	{ MKTC_DPTA_INC_COMPLETECOUNT, MKTSTR(MKTC_DPTA_INC_COMPLETECOUNT) },
-
-	{ MKTC_INVALDC, MKTSTR(MKTC_INVALDC) },
-	{ MKTC_INVALPT, MKTSTR(MKTC_INVALPT) },
-	{ MKTC_INVALSLC, MKTSTR(MKTC_INVALSLC) },
-	{ MKTC_INVALDATA, MKTSTR(MKTC_INVALDATA) },
-
-	{ MKTC_RESTARTTA, MKTSTR(MKTC_RESTARTTA) },
-	{ MKTC_CSABORTNONGBL, MKTSTR(MKTC_CSABORTNONGBL) },
-	{ MKTC_CSABORTALL, MKTSTR(MKTC_CSABORTALL) },
-	{ MKTC_CSRENDERINPROGRESS, MKTSTR(MKTC_CSRENDERINPROGRESS) },
-	{ MKTC_TATERMRENDERINPROGRESS, MKTSTR(MKTC_TATERMRENDERINPROGRESS) },
-	{ MKTC_RESTARTTANORENDER, MKTSTR(MKTC_RESTARTTANORENDER) },
-	{ MKTC_SPM_KICKRENDER, MKTSTR(MKTC_SPM_KICKRENDER) },
-	{ MKTC_SPM_RESUME_ABORTCOMPLETE, MKTSTR(MKTC_SPM_RESUME_ABORTCOMPLETE) },
-	{ MKTC_RESUMEVDM, MKTSTR(MKTC_RESUMEVDM) },
-	{ MKTC_REMOVE_RESERVE_MEM, MKTSTR(MKTC_REMOVE_RESERVE_MEM) },
-	{ MKTC_INCREASEZLSTHRESHOLD, MKTSTR(MKTC_INCREASEZLSTHRESHOLD) },
-	{ MKTC_CSFORCEABORTALL, MKTSTR(MKTC_CSFORCEABORTALL) },
-
-	{ MKTC_DUMMY_DEPTH, MKTSTR(MKTC_DUMMY_DEPTH) },
-	{ MKTC_DUMMY_DEPTH_CS, MKTSTR(MKTC_DUMMY_DEPTH_CS) },
-
-	{ MKTC_MTETE_OOM, MKTSTR(MKTC_MTETE_OOM) },
-	{ MKTC_MTETE_OOM_FIRST_STORE_REF, MKTSTR(MKTC_MTETE_OOM_FIRST_STORE_REF) },
-	{ MKTC_MERGE_STATE_TABLES, MKTSTR(MKTC_MERGE_STATE_TABLES) },
-	{ MKTC_NO_PAGES_LEFT_FOR_23055, MKTSTR(MKTC_NO_PAGES_LEFT_FOR_23055) },
-	{ MKTC_NO_STATE_MODS, MKTSTR(MKTC_NO_STATE_MODS) },
-	{ MKTC_FIND_MTE_PAGE_IN_STATE, MKTSTR(MKTC_FIND_MTE_PAGE_IN_STATE) },
-	{ MKTC_MTE_PAGE_FOUND, MKTSTR(MKTC_MTE_PAGE_FOUND) },
-	{ MKTC_MOVE_MTE_PAGE_TO_TA_STATE, MKTSTR(MKTC_MOVE_MTE_PAGE_TO_TA_STATE) },
-	{ MKTC_MOVE_MTE_PAGE_TO_TA_STATE_END, MKTSTR(MKTC_MOVE_MTE_PAGE_TO_TA_STATE_END) },
-	{ MKTC_ZERO_ZLS_THRESHOLD, MKTSTR(MKTC_ZERO_ZLS_THRESHOLD) },
-	{ MKTC_RESTORE_ZLS_THRESHOLD, MKTSTR(MKTC_RESTORE_ZLS_THRESHOLD) },
-	{ MKTC_FIND_MTE_PAGE_IN_CSM, MKTSTR(MKTC_FIND_MTE_PAGE_IN_CSM) },
-	{ MKTC_REISSUE_MTE_PAGE, MKTSTR(MKTC_REISSUE_MTE_PAGE) },
-	{ MKTC_REISSUE_MTE_PAGE_REQUIRED, MKTSTR(MKTC_REISSUE_MTE_PAGE_REQUIRED) },
-	{ MKTC_REISSUE_MTE_PAGE_END, MKTSTR(MKTC_REISSUE_MTE_PAGE_END) },
-	{ MKTC_RESET_TE_PSG, MKTSTR(MKTC_RESET_TE_PSG) },
-
-	{ MKTC_OOM_WRITEOPSBLOCKED, MKTSTR(MKTC_OOM_WRITEOPSBLOCKED) },
-	{ MKTC_OOM_READOPSBLOCKED, MKTSTR(MKTC_OOM_READOPSBLOCKED) },
-	{ MKTC_OOM_SRC_WRITEOPSBLOCKED, MKTSTR(MKTC_OOM_SRC_WRITEOPSBLOCKED) },
-	{ MKTC_OOM_SRC_READOPSBLOCKED, MKTSTR(MKTC_OOM_SRC_READOPSBLOCKED) },
-	{ MKTC_OOM_SPM_DEADLOCK, MKTSTR(MKTC_OOM_SPM_DEADLOCK) },
-	{ MKTC_OOM_SPM_DEADLOCK_MEM_ADDED, MKTSTR(MKTC_OOM_SPM_DEADLOCK_MEM_ADDED) },
-	{ MKTC_BRN27311_RESET, MKTSTR(MKTC_BRN27311_RESET) },
-	{ MKTC_SPM_INVALID_ZLSCONFIG, MKTSTR(MKTC_SPM_INVALID_ZLSCONFIG) },
-
-	{ MKTC_SPM_ALREADY_DRAINED, MKTSTR(MKTC_SPM_ALREADY_DRAINED) },
-	{ MKTC_DRAIN_COMPLETE, MKTSTR(MKTC_DRAIN_COMPLETE) },
-	{ MKTC_DRAIN_SET_FLAG, MKTSTR(MKTC_DRAIN_SET_FLAG) },
-
-	{ MKTC_OOM_TYPE_MT, MKTSTR(MKTC_OOM_TYPE_MT) },
-	{ MKTC_OOM_TYPE_GLOBAL, MKTSTR(MKTC_OOM_TYPE_GLOBAL) },
-	{ MKTC_OOM_CAUSE_GBL_OOM, MKTSTR(MKTC_OOM_CAUSE_GBL_OOM) },
-
-	{ MKTC_CHECK_MTE_PAGE_REISSUE, MKTSTR(MKTC_CHECK_MTE_PAGE_REISSUE) },
-	{ MKTC_CPRI_VALID_ENTRIES, MKTSTR(MKTC_CPRI_VALID_ENTRIES) },
-	{ MKTC_CPRI_STORE_DPLIST, MKTSTR(MKTC_CPRI_STORE_DPLIST) },
-	{ MKTC_CPRI_STORE_OTPM_CSM, MKTSTR(MKTC_CPRI_STORE_OTPM_CSM) },
-	{ MKTC_CPRI_ABORT_MT_IDX, MKTSTR(MKTC_CPRI_ABORT_MT_IDX) },
-	{ MKTC_CPRI_ABORT_CORE_IDX, MKTSTR(MKTC_CPRI_ABORT_CORE_IDX) },
-	{ MKTC_CPRI_CSM_TABLE_DATA, MKTSTR(MKTC_CPRI_CSM_TABLE_DATA) },
-	{ MKTC_CPRI_PIM_DATA, MKTSTR(MKTC_CPRI_PIM_DATA) },
-	{ MKTC_CPRI_DO_CIRCULAR_TEST, MKTSTR(MKTC_CPRI_DO_CIRCULAR_TEST) },
-
-	{ MKTC_CPRI_WRITE_ENTRIES, MKTSTR(MKTC_CPRI_WRITE_ENTRIES) },
-
-	{ MKTC_MTE_ENTRY_NOT_IN_ANY_LIST, MKTSTR(MKTC_MTE_ENTRY_NOT_IN_ANY_LIST) },
-
-	{ MKTC_SPMAC_IGNORE_TERMINATE, MKTSTR(MKTC_SPMAC_IGNORE_TERMINATE) },
-
-	{ MKTC_SPMAC_REQUEST_3D_TIMEOUT, MKTSTR(MKTC_SPMAC_REQUEST_3D_TIMEOUT) },
-	{ MKTC_SPMAC_3D_TIMEOUT_COMPLETE, MKTSTR(MKTC_SPMAC_3D_TIMEOUT_COMPLETE) },
-
-/* PB Load/store status */
-	{ MKTC_LOADTAPB_START, MKTSTR(MKTC_LOADTAPB_START) },
-	{ MKTC_LOADTAPB_END, MKTSTR(MKTC_LOADTAPB_END) },
-	{ MKTC_STORETAPB_START, MKTSTR(MKTC_STORETAPB_START) },
-	{ MKTC_STORETAPB_END, MKTSTR(MKTC_STORETAPB_END) },
-	{ MKTC_LOAD3DPB_START, MKTSTR(MKTC_LOAD3DPB_START) },
-	{ MKTC_LOAD3DPB_END, MKTSTR(MKTC_LOAD3DPB_END) },
-	{ MKTC_STORE3DPB_START, MKTSTR(MKTC_STORE3DPB_START) },
-	{ MKTC_STORE3DPB_END, MKTSTR(MKTC_STORE3DPB_END) },
-	{ MKTC_LOADTAPB_PAGETABLE_DONE, MKTSTR(MKTC_LOADTAPB_PAGETABLE_DONE) },
-	{ MKTC_LOAD3DPB_PAGETABLE_DONE, MKTSTR(MKTC_LOAD3DPB_PAGETABLE_DONE) },
-
-	{ MKTC_TIMER_RC_CLEANUP, MKTSTR(MKTC_TIMER_RC_CLEANUP) },
-	{ MKTC_TIMER_RC_CLEANUP_COMPLETE, MKTSTR(MKTC_TIMER_RC_CLEANUP_COMPLETE) },
-	{ MKTC_TIMER_RT_CLEANUP, MKTSTR(MKTC_TIMER_RT_CLEANUP) },
-	{ MKTC_TIMER_RT_CLEANUP_COMPLETE, MKTSTR(MKTC_TIMER_RT_CLEANUP_COMPLETE) },
-	{ MKTC_TIMER_RT_CLEANUP_PENDING, MKTSTR(MKTC_TIMER_RT_CLEANUP_PENDING) },
-	{ MKTC_TIMER_RT_CLEANUP_TIDYPARTIALLIST, MKTSTR(MKTC_TIMER_RT_CLEANUP_TIDYPARTIALLIST) },
-	{ MKTC_TIMER_TC_CLEANUP, MKTSTR(MKTC_TIMER_TC_CLEANUP) },
-	{ MKTC_TIMER_TC_CLEANUP_COMPLETE, MKTSTR(MKTC_TIMER_TC_CLEANUP_COMPLETE) },
-	{ MKTC_TIMER_2DC_CLEANUP, MKTSTR(MKTC_TIMER_2DC_CLEANUP) },
-	{ MKTC_TIMER_2DC_CLEANUP_COMPLETE, MKTSTR(MKTC_TIMER_2DC_CLEANUP_COMPLETE) },
-	{ MKTC_TIMER_SHAREDPBDESC_CLEANUP, MKTSTR(MKTC_TIMER_SHAREDPBDESC_CLEANUP) },
-
-	{ MKTC_TIMER_ISP_SWITCH_POTENTIAL_LOCKUP, MKTSTR(MKTC_TIMER_ISP_SWITCH_POTENTIAL_LOCKUP) },
-	{ MKTC_TIMER_ISP_SWITCH_FORCE_SWITCH, MKTSTR(MKTC_TIMER_ISP_SWITCH_FORCE_SWITCH) },
-
-	{ MKTC_UTSO_UPDATEREADOPS, MKTSTR(MKTC_UTSO_UPDATEREADOPS) },
-	{ MKTC_UTSO_UPDATEWRITEOPS, MKTSTR(MKTC_UTSO_UPDATEWRITEOPS) },
-
-	{ MKTC_TAFINISHED_UPDATESTATUSVALS, MKTSTR(MKTC_TAFINISHED_UPDATESTATUSVALS) },
-	{ MKTC_TAFINISHED_UPDATESTATUSVALS_DONE, MKTSTR(MKTC_TAFINISHED_UPDATESTATUSVALS_DONE) },
-	{ MKTC_TAFINISHED_NORENDER, MKTSTR(MKTC_TAFINISHED_NORENDER) },
-	{ MKTC_TAFINISHED_LASTKICK, MKTSTR(MKTC_TAFINISHED_LASTKICK) },
-	{ MKTC_TAFINISHED_FINDRENDER, MKTSTR(MKTC_TAFINISHED_FINDRENDER) },
-	{ MKTC_TAFINISHED_FINDTA, MKTSTR(MKTC_TAFINISHED_FINDTA) },
-	{ MKTC_TAFINISHED_END, MKTSTR(MKTC_TAFINISHED_END) },
-	{ MKTC_TAF_SPM_DEADLOCK_MEM_REMOVED, MKTSTR(MKTC_TAF_SPM_DEADLOCK_MEM_REMOVED) },
-	{ MKTC_TAF_RESERVE_MEM, MKTSTR(MKTC_TAF_RESERVE_MEM) },
-	{ MKTC_TAF_RESERVE_MEM_REQUEST_RENDER, MKTSTR(MKTC_TAF_RESERVE_MEM_REQUEST_RENDER) },
-	{ MKTC_TAF_RESERVE_FREE_RENDER_FINISHED, MKTSTR(MKTC_TAF_RESERVE_FREE_RENDER_FINISHED) },
-	{ MKTC_TAF_RESERVE_FREE_DUMMY_RENDER, MKTSTR(MKTC_TAF_RESERVE_FREE_DUMMY_RENDER) },
-	{ MKTC_TAF_DEBUG_SAS, MKTSTR(MKTC_TAF_DEBUG_SAS) },
-	{ MKTC_TAFINISHED_NOCONTEXTSWITCH, MKTSTR(MKTC_TAFINISHED_NOCONTEXTSWITCH) },
-
-	{ MKTC_TAFINISHED_TERM_COMPLETE_START, MKTSTR(MKTC_TAFINISHED_TERM_COMPLETE_START) },
-	{ MKTC_TAFINISHED_TERM_COMPLETE_END, MKTSTR(MKTC_TAFINISHED_TERM_COMPLETE_END) },
-
-	{ MKTC_TAFINISHED_ZERO_TAILPTRS, MKTSTR(MKTC_TAFINISHED_ZERO_TAILPTRS) },
-
-	{ MKTC_2DEVENT_2DCOMPLETE, MKTSTR(MKTC_2DEVENT_2DCOMPLETE) },
-	{ MKTC_2DEVENT_END, MKTSTR(MKTC_2DEVENT_END) },
-	{ MKTC_2DLB_2DCOMPLETE, MKTSTR(MKTC_2DLB_2DCOMPLETE) },
-	{ MKTC_2DLB_FIND2D, MKTSTR(MKTC_2DLB_FIND2D) },
-	{ MKTC_2DLB_END, MKTSTR(MKTC_2DLB_END) },
-	{ MKTC_2DCOMPLETE_START, MKTSTR(MKTC_2DCOMPLETE_START) },
-	{ MKTC_2DCOMPLETE_END, MKTSTR(MKTC_2DCOMPLETE_END) },
-	{ MKTC_KICK2D_START, MKTSTR(MKTC_KICK2D_START) },
-	{ MKTC_KICK2D_END, MKTSTR(MKTC_KICK2D_END) },
-	{ MKTC_DUMMYPROC2D, MKTSTR(MKTC_DUMMYPROC2D) },
-	{ MKTC_FTD_SRCREADOPSBLOCKED, MKTSTR(MKTC_FTD_SRCREADOPSBLOCKED) },
-	{ MKTC_FTD_SRCWRITEOPSBLOCKED, MKTSTR(MKTC_FTD_SRCWRITEOPSBLOCKED) },
-	{ MKTC_FTD_DSTREADOPSBLOCKED, MKTSTR(MKTC_FTD_DSTREADOPSBLOCKED) },
-	{ MKTC_FTD_DSTWRITEOPSBLOCKED, MKTSTR(MKTC_FTD_DSTWRITEOPSBLOCKED) },
-	{ MKTC_FTD_TA2D_OVERLAP_BLOCKED, MKTSTR(MKTC_FTD_TA2D_OVERLAP_BLOCKED) },
-	{ MKTC_U2DSO_UPDATEREADOPS, MKTSTR(MKTC_U2DSO_UPDATEREADOPS) },
-	{ MKTC_U2DSO_UPDATEWRITEOPS, MKTSTR(MKTC_U2DSO_UPDATEWRITEOPS) },
-	{ MKTC_FTD_TAOPSBLOCKED, MKTSTR(MKTC_FTD_TAOPSBLOCKED) },
-	{ MKTC_KICK2D_2DSLAVEPORT, MKTSTR(MKTC_KICK2D_2DSLAVEPORT) },
-	{ MKTC_KICK2D_2DSLAVEPORT_DONE, MKTSTR(MKTC_KICK2D_2DSLAVEPORT_DONE) },
-	{ MKTC_FTD_CONTEXT_SUSPENDED, MKTSTR(MKTC_FTD_CONTEXT_SUSPENDED) },
-	{ MKTC_KICK2D_PID, MKTSTR(MKTC_KICK2D_PID) },
-	{ MKTC_FIND2D_ADDR_SPACE_DIFFERENT, MKTSTR(MKTC_FIND2D_ADDR_SPACE_DIFFERENT) },
-	{ MKTC_FTD_3DOPSBLOCKED, MKTSTR(MKTC_FTD_3DOPSBLOCKED) },
-
-	{ MKTC_FCM_START, MKTSTR(MKTC_FCM_START) },
-	{ MKTC_FCM_END, MKTSTR(MKTC_FCM_END) },
-
-	{ MKTC_TIMER_ACTIVE_POWER, MKTSTR(MKTC_TIMER_ACTIVE_POWER) },
-	{ MKTC_TIMER_POWER_3D_ACTIVE, MKTSTR(MKTC_TIMER_POWER_3D_ACTIVE) },
-	{ MKTC_TIMER_POWER_TA_ACTIVE, MKTSTR(MKTC_TIMER_POWER_TA_ACTIVE) },
-	{ MKTC_TIMER_POWER_2D_ACTIVE, MKTSTR(MKTC_TIMER_POWER_2D_ACTIVE) },
-	{ MKTC_TIMER_POWER_PENDING_EVENTS, MKTSTR(MKTC_TIMER_POWER_PENDING_EVENTS) },
-	{ MKTC_TIMER_POWER_IDLE, MKTSTR(MKTC_TIMER_POWER_IDLE) },
-	{ MKTC_TIMER_POWER_OFF, MKTSTR(MKTC_TIMER_POWER_OFF) },
-	{ MKTC_TIMER_POWER_CCB_ERROR, MKTSTR(MKTC_TIMER_POWER_CCB_ERROR) },
-	{ MKTC_TIMER_POWER_RESTART_IMMEDIATE, MKTSTR(MKTC_TIMER_POWER_RESTART_IMMEDIATE) },
-
-	{ MKTC_3DCONTEXT_SWITCH, MKTSTR(MKTC_3DCONTEXT_SWITCH) },
-	{ MKTC_3DCONTEXT_SWITCH_END, MKTSTR(MKTC_3DCONTEXT_SWITCH_END) },
-
-	{ MKTC_TACONTEXT_SWITCH, MKTSTR(MKTC_TACONTEXT_SWITCH) },
-	{ MKTC_TACONTEXT_SWITCH_FAST, MKTSTR(MKTC_TACONTEXT_SWITCH_FAST) },
-	{ MKTC_TACONTEXT_SWITCH_END, MKTSTR(MKTC_TACONTEXT_SWITCH_END) },
-
-	{ MKTC_GETMISCINFO_MEMREAD_START, MKTSTR(MKTC_GETMISCINFO_MEMREAD_START) },
-	{ MKTC_GETMISCINFO_MEMREAD_END, MKTSTR(MKTC_GETMISCINFO_MEMREAD_END) },
-	{ MKTC_GETMISCINFO_MEMWRITE_START, MKTSTR(MKTC_GETMISCINFO_MEMWRITE_START) },
-	{ MKTC_GETMISCINFO_MEMWRITE_END, MKTSTR(MKTC_GETMISCINFO_MEMWRITE_END) },
-
-	{ MKTC_HALTTA, MKTSTR(MKTC_HALTTA) },
-	{ MKTC_HTA_SET_FLAG, MKTSTR(MKTC_HTA_SET_FLAG) },
-	{ MKTC_HTA_SAVE_COMPLEX_PTR, MKTSTR(MKTC_HTA_SAVE_COMPLEX_PTR) },
-	{ MKTC_HALTTA_END, MKTSTR(MKTC_HALTTA_END) },
-
-	{ MKTC_RESUMETA, MKTSTR(MKTC_RESUMETA) },
-	{ MKTC_RTA_CONTEXT_LOADED, MKTSTR(MKTC_RTA_CONTEXT_LOADED) },
-	{ MKTC_RTA_MTE_STATE_KICKED, MKTSTR(MKTC_RTA_MTE_STATE_KICKED) },
-	{ MKTC_RTA_CMPLX_GEOM_PRESENT, MKTSTR(MKTC_RTA_CMPLX_GEOM_PRESENT) },
-	{ MKTC_RTA_CMPLX_STATE_KICKED, MKTSTR(MKTC_RTA_CMPLX_STATE_KICKED) },
-	{ MKTC_RTA_CHECK_NEXT_SA_PROG, MKTSTR(MKTC_RTA_CHECK_NEXT_SA_PROG) },
-	{ MKTC_RTA_CORE_COMPLETED, MKTSTR(MKTC_RTA_CORE_COMPLETED) },
-	{ MKTC_RTA_DEBUG_SAS, MKTSTR(MKTC_RTA_DEBUG_SAS) },
-	{ MKTC_RESUMETA_END, MKTSTR(MKTC_RESUMETA_END) },
-
-	{ MKTC_RESUME_SPMCS_START, MKTSTR(MKTC_RESUME_SPMCS_START) },
-	{ MKTC_RSPMCS_OVERLAP, MKTSTR(MKTC_RSPMCS_OVERLAP) },
-	{ MKTC_RSPMCS_START_PULSE, MKTSTR(MKTC_RSPMCS_START_PULSE) },
-	{ MKTC_RESUME_SPMCS_END, MKTSTR(MKTC_RESUME_SPMCS_END) },
-
-	{ MKTC_RENDERHALT, MKTSTR(MKTC_RENDERHALT) },
-	{ MKTC_RH_CLEARFLAGS, MKTSTR(MKTC_RH_CLEARFLAGS) },
-	{ MKTC_RH_CTRL_ADDR, MKTSTR(MKTC_RH_CTRL_ADDR) },
-	{ MKTC_RH_RGN_ADDR, MKTSTR(MKTC_RH_RGN_ADDR) },
-	{ MKTC_RH_EMPTY_TILE, MKTSTR(MKTC_RH_EMPTY_TILE) },
-	{ MKTC_RH_EMPTY_LAST_TILE, MKTSTR(MKTC_RH_EMPTY_LAST_TILE) },
-	{ MKTC_RH_3D_TIMEOUT, MKTSTR(MKTC_RH_3D_TIMEOUT) },
-	{ MKTC_RH_NOT_EMPTY, MKTSTR(MKTC_RH_NOT_EMPTY) },
-	{ MKTC_RH_OBJECT_COMPLETE, MKTSTR(MKTC_RH_OBJECT_COMPLETE) },
-	{ MKTC_RH_STREAM_LINK, MKTSTR(MKTC_RH_STREAM_LINK) },
-	{ MKTC_RH_OBJECT_INCOMPLETE, MKTSTR(MKTC_RH_OBJECT_INCOMPLETE) },
-	{ MKTC_RH_PRIM_MASK_PRESENT, MKTSTR(MKTC_RH_PRIM_MASK_PRESENT) },
-	{ MKTC_RH_BYTE_MASK_PRESENT, MKTSTR(MKTC_RH_BYTE_MASK_PRESENT) },
-	{ MKTC_RH_BYTE_MASK_ZERO, MKTSTR(MKTC_RH_BYTE_MASK_ZERO) },
-	{ MKTC_RH_PRIM_MASK_ZERO, MKTSTR(MKTC_RH_PRIM_MASK_ZERO) },
-	{ MKTC_RH_INVALIDATE_OBJECTS, MKTSTR(MKTC_RH_INVALIDATE_OBJECTS) },
-	{ MKTC_RH_OBJECTS_INVALIDATED, MKTSTR(MKTC_RH_OBJECTS_INVALIDATED) },
-	{ MKTC_RH_DPM_RGN_PARSER_IDLE, MKTSTR(MKTC_RH_DPM_RGN_PARSER_IDLE) },
-	{ MKTC_RH_NEXT_RGN_BASE, MKTSTR(MKTC_RH_NEXT_RGN_BASE) },
-	{ MKTC_RH_OCC_EXIT, MKTSTR(MKTC_RH_OCC_EXIT) },
-	{ MKTC_RH_STILL_RUNNING, MKTSTR(MKTC_RH_STILL_RUNNING) },
-	{ MKTC_RH_CLEARMCI, MKTSTR(MKTC_RH_CLEARMCI) },
-	{ MKTC_RH_EOR, MKTSTR(MKTC_RH_EOR) },
-	{ MKTC_RENDERHALT_END, MKTSTR(MKTC_RENDERHALT_END) },
-
-	{ MKTC_FIND3D_POWERREQUEST, MKTSTR(MKTC_FIND3D_POWERREQUEST) },
-
-	{ MKTC_FIND2D_POWERREQUEST, MKTSTR(MKTC_FIND2D_POWERREQUEST) },
-
-	{ MKTC_SPM_OOM_POWERREQUEST, MKTSTR(MKTC_SPM_OOM_POWERREQUEST) },
-	{ MKTC_SPM_AC_POWERREQUEST, MKTSTR(MKTC_SPM_AC_POWERREQUEST) },
-	{ MKTC_SPM_RF_POWERREQUEST, MKTSTR(MKTC_SPM_RF_POWERREQUEST) },
-
-	{ MKTC_UKERNEL_INIT, MKTSTR(MKTC_UKERNEL_INIT) },
-	{ MKTC_UKERNEL_INIT_DCS_COMPLETE, MKTSTR(MKTC_UKERNEL_INIT_DCS_COMPLETE) },
-	{ MKTC_UKERNEL_INIT_VDMKICK_COMPLETE, MKTSTR(MKTC_UKERNEL_INIT_VDMKICK_COMPLETE) },
-
-	{ MKTC_KICKTRANSFERRENDER_START, MKTSTR(MKTC_KICKTRANSFERRENDER_START) },
-	{ MKTC_KICKTRANSFERRENDER_ISP_START, MKTSTR(MKTC_KICKTRANSFERRENDER_ISP_START) },
-	{ MKTC_KICKTRANSFERRENDER_END, MKTSTR(MKTC_KICKTRANSFERRENDER_END) },
-	{ MKTC_DUMMYPROCTRANSFER, MKTSTR(MKTC_DUMMYPROCTRANSFER) },
-	{ MKTC_KTR_TQFENCE, MKTSTR(MKTC_KTR_TQFENCE) },
-	{ MKTC_KICKTRANSFERRENDER_PID, MKTSTR(MKTC_KICKTRANSFERRENDER_PID) },
-
-	{ MKTC_HOSTKICK_CLEANUP_RT, MKTSTR(MKTC_HOSTKICK_CLEANUP_RT) },
-	{ MKTC_HOSTKICK_CLEANUP_RC, MKTSTR(MKTC_HOSTKICK_CLEANUP_RC) },
-	{ MKTC_HOSTKICK_CLEANUP_TC, MKTSTR(MKTC_HOSTKICK_CLEANUP_TC) },
-	{ MKTC_HOSTKICK_CLEANUP_2DC, MKTSTR(MKTC_HOSTKICK_CLEANUP_2DC) },
-	{ MKTC_HOSTKICK_CLEANUP_PB, MKTSTR(MKTC_HOSTKICK_CLEANUP_PB) },
-	{ MKTC_HOSTKICK_GETMISCINFO, MKTSTR(MKTC_HOSTKICK_GETMISCINFO) },
-	{ MKTC_HOSTKICK_DATABREAKPOINT, MKTSTR(MKTC_HOSTKICK_DATABREAKPOINT) },
-	{ MKTC_HOSTKICK_SETHWPERFSTATUS, MKTSTR(MKTC_HOSTKICK_SETHWPERFSTATUS) },
-
-	{ MKTC_ZEROPC, MKTSTR(MKTC_ZEROPC) },
-
-	{ MKTC_ASSERT_FAIL, MKTSTR(MKTC_ASSERT_FAIL) },
-
-	{ MKTC_SDLB_ILLEGAL, MKTSTR(MKTC_SDLB_ILLEGAL) },
-
-	{ MKTC_SPMEVENT_MEMTHRESHOLD, MKTSTR(MKTC_SPMEVENT_MEMTHRESHOLD) },
-	{ MKTC_SPMEVENT_OUTOFMEM, MKTSTR(MKTC_SPMEVENT_OUTOFMEM) },
-	{ MKTC_SPMEVENT_TATERMINATE, MKTSTR(MKTC_SPMEVENT_TATERMINATE) },
-	{ MKTC_SPMEVENT_MTE_DRAIN_COMPLETE, MKTSTR(MKTC_SPMEVENT_MTE_DRAIN_COMPLETE) },
-	{ MKTC_SPMEVENT_END, MKTSTR(MKTC_SPMEVENT_END) },
-	{ MKTC_SPMLB_MEMTHRESHOLD, MKTSTR(MKTC_SPMLB_MEMTHRESHOLD) },
-	{ MKTC_SPMLB_OUTOFMEM, MKTSTR(MKTC_SPMLB_OUTOFMEM) },
-	{ MKTC_SPMLB_TATERMINATE, MKTSTR(MKTC_SPMLB_TATERMINATE) },
-	{ MKTC_SPMLB_SPMRENDERFINSHED, MKTSTR(MKTC_SPMLB_SPMRENDERFINSHED) },
-	{ MKTC_SPMLB_MTE_DRAIN_COMPLETE, MKTSTR(MKTC_SPMLB_MTE_DRAIN_COMPLETE) },
-	{ MKTC_SPMLB_END, MKTSTR(MKTC_SPMLB_END) },
-
-	{ MKTC_SPM_CHECK_MT_DEADLOCK, MKTSTR(MKTC_SPM_CHECK_MT_DEADLOCK) },
-	{ MKTC_SPM_CHECK_GLOBAL_DEADLOCK, MKTSTR(MKTC_SPM_CHECK_GLOBAL_DEADLOCK) },
-	{ MKTC_SPM_RESERVE_ADDED, MKTSTR(MKTC_SPM_RESERVE_ADDED) },
-
-	{ MKTC_IBC_ILLEGAL, MKTSTR(MKTC_IBC_ILLEGAL) },
-
-	{ MKTC_HWP_CLEARCOUNTERS, MKTSTR(MKTC_HWP_CLEARCOUNTERS) },
-
-	{ MKTC_TA_FRAMENUM, MKTSTR(MKTC_TA_FRAMENUM) },
-	{ MKTC_3D_FRAMENUM, MKTSTR(MKTC_3D_FRAMENUM) },
-	{ MKTC_SPM3D_FRAMENUM, MKTSTR(MKTC_SPM3D_FRAMENUM) },
-
-	{ MKTC_HKTA_RENDERCONTEXT, MKTSTR(MKTC_HKTA_RENDERCONTEXT) },
-	{ MKTC_IDLECORE_REFCOUNT_FAIL, MKTSTR(MKTC_IDLECORE_REFCOUNT_FAIL) },
-
-	{ MKTC_MCISTATE_NOT_CLEARED, MKTSTR(MKTC_MCISTATE_NOT_CLEARED) },
-
-
-	{ MKTC_LOWERED_TO_PDS_THRESHOLD, MKTSTR(MKTC_LOWERED_TO_PDS_THRESHOLD) },
-	{ MKTC_REDUCE_MAX_VTX_PARTITIONS, MKTSTR(MKTC_REDUCE_MAX_VTX_PARTITIONS) },
-	{ MKTC_KTAOVERRIDE_MAX_VTX_PARTITIONS, MKTSTR(MKTC_KTAOVERRIDE_MAX_VTX_PARTITIONS) },
-	{ MKTC_KTANOOVERRIDE_MAX_VTX_PARTITIONS, MKTSTR(MKTC_KTANOOVERRIDE_MAX_VTX_PARTITIONS) },
-
-
-	{ MKTC_IPRB_NORENDERDETAILS, MKTSTR(MKTC_IPRB_NORENDERDETAILS) },
-	{ MKTC_IPRB_HAVERENDERDETAILS, MKTSTR(MKTC_IPRB_HAVERENDERDETAILS) },
-
-	{ MKTC_RENDER_OUT_OF_ORDER, MKTSTR(MKTC_RENDER_OUT_OF_ORDER) },
-	{ MKTC_RENDER_NOT_OUT_OF_ORDER, MKTSTR(MKTC_RENDER_NOT_OUT_OF_ORDER) },
-
-	{ MKTC_ZLS_IDLE_BEGIN, MKTSTR(MKTC_ZLS_IDLE_BEGIN) },
-	{ MKTC_ZLS_ISP_CLK_GATING_EN, MKTSTR(MKTC_ZLS_ISP_CLK_GATING_EN) },
-	{ MKTC_ZLS_IDLE_END, MKTSTR(MKTC_ZLS_IDLE_END) },
-};
-
-#define MKTCSIZE (sizeof(MKTDecoder) / sizeof(MKTDecoder[0]))
-
-#endif /*  __SGX_UKERNEL_STATUS_CODES_H__ */
-
-/******************************************************************************
- End of file (sgx_ukernel_status_codes.h)
-******************************************************************************/
-
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxconfig.h b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxconfig.h
deleted file mode 100644
index 5e38cd5..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxconfig.h
+++ /dev/null
@@ -1,361 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __SGXCONFIG_H__
-#define __SGXCONFIG_H__
-
-#include "sgxdefs.h"
-
-#define DEV_DEVICE_TYPE			PVRSRV_DEVICE_TYPE_SGX
-#define DEV_DEVICE_CLASS		PVRSRV_DEVICE_CLASS_3D
-
-#define DEV_MAJOR_VERSION		1
-#define DEV_MINOR_VERSION		0
-
-#if defined(SUPPORT_EXTERNAL_SYSTEM_CACHE)
-#define SGX_KERNEL_DATA_HEAP_OFFSET		0x00001000
-#else
-#define SGX_KERNEL_DATA_HEAP_OFFSET		0x00000000
-#endif
-
-#if SGX_FEATURE_ADDRESS_SPACE_SIZE == 32
-#if defined(FIX_HW_BRN_31620)
-	#if defined(SGX_FEATURE_2D_HARDWARE)
-	#define SGX_2D_HEAP_BASE					 0x04000000
-	#define SGX_2D_HEAP_SIZE					(0x08000000-0x04000000-0x00001000)
-	#endif
-
-	#define SGX_GENERAL_HEAP_BASE				 0x08000000
-	#define SGX_GENERAL_HEAP_SIZE				(0xB8000000-0x00001000)
-
-	
-	#define SGX_3DPARAMETERS_HEAP_SIZE			0x10000000
-
-	
-#if !defined(HYBRID_SHARED_PB_SIZE)
-	#define HYBRID_SHARED_PB_SIZE				(SGX_3DPARAMETERS_HEAP_SIZE >> 1)
-#endif
-#if defined(SUPPORT_HYBRID_PB)
-	#define SGX_SHARED_3DPARAMETERS_SIZE			(HYBRID_SHARED_PB_SIZE)
-	#define SGX_SHARED_3DPARAMETERS_HEAP_SIZE		(HYBRID_SHARED_PB_SIZE-0x00001000)
-	#define SGX_PERCONTEXT_3DPARAMETERS_HEAP_SIZE		(SGX_3DPARAMETERS_HEAP_SIZE - SGX_SHARED_3DPARAMETERS_SIZE - 0x00001000)
-#else
-#if defined(SUPPORT_PERCONTEXT_PB)
-	#define SGX_SHARED_3DPARAMETERS_SIZE			0
-	#define SGX_SHARED_3DPARAMETERS_HEAP_SIZE		0
-	#define SGX_PERCONTEXT_3DPARAMETERS_HEAP_SIZE		(SGX_3DPARAMETERS_HEAP_SIZE - 0x00001000)
-#endif
-#if defined(SUPPORT_SHARED_PB)
-	#define SGX_SHARED_3DPARAMETERS_SIZE			SGX_3DPARAMETERS_HEAP_SIZE
-	#define SGX_SHARED_3DPARAMETERS_HEAP_SIZE		(SGX_3DPARAMETERS_HEAP_SIZE - 0x00001000)
-	#define SGX_PERCONTEXT_3DPARAMETERS_HEAP_SIZE		0
-#endif
-#endif
-
-	#define SGX_SHARED_3DPARAMETERS_HEAP_BASE		 0xC0000000
-	
-
-	#define SGX_PERCONTEXT_3DPARAMETERS_HEAP_BASE		 (SGX_SHARED_3DPARAMETERS_HEAP_BASE + SGX_SHARED_3DPARAMETERS_SIZE)
-	
-
-	#define SGX_TADATA_HEAP_BASE				 0xD0000000
-	#define SGX_TADATA_HEAP_SIZE				(0x0D000000-0x00001000)
-
-	#define SGX_SYNCINFO_HEAP_BASE				 0xE0000000
-	#define SGX_SYNCINFO_HEAP_SIZE				(0x01000000-0x00001000)
-
-	#define SGX_PDSPIXEL_CODEDATA_HEAP_BASE		 0xE4000000
-	#define SGX_PDSPIXEL_CODEDATA_HEAP_SIZE		(0x02000000-0x00001000)
-
-	#define SGX_KERNEL_CODE_HEAP_BASE			 0xE8000000
-	#define SGX_KERNEL_CODE_HEAP_SIZE			(0x00080000-0x00001000)
-
-	#define SGX_PDSVERTEX_CODEDATA_HEAP_BASE	 0xEC000000
-	#define SGX_PDSVERTEX_CODEDATA_HEAP_SIZE	(0x01C00000-0x00001000)
-
-	#define SGX_KERNEL_DATA_HEAP_BASE		 	(0xF0000000+SGX_KERNEL_DATA_HEAP_OFFSET)
-	#define SGX_KERNEL_DATA_HEAP_SIZE			(0x03000000-(0x00001000+SGX_KERNEL_DATA_HEAP_OFFSET))
-
-	
-	#define SGX_PIXELSHADER_HEAP_BASE			 0xF4000000
-	#define SGX_PIXELSHADER_HEAP_SIZE			(0x05000000-0x00001000)
-	
-	#define SGX_VERTEXSHADER_HEAP_BASE			 0xFC000000
-	#define SGX_VERTEXSHADER_HEAP_SIZE			(0x02000000-0x00001000)
-#else 
-	#if defined(SGX_FEATURE_2D_HARDWARE)
-	#define SGX_2D_HEAP_BASE					 0x00100000
-	#define SGX_2D_HEAP_SIZE					(0x08000000-0x00100000-0x00001000)
-	#else
-		#if defined(FIX_HW_BRN_26915)
-		#define SGX_CGBUFFER_HEAP_BASE					 0x00100000
-		#define SGX_CGBUFFER_HEAP_SIZE					(0x08000000-0x00100000-0x00001000)
-		#endif
-	#endif
-
-	#if defined(SUPPORT_SGX_GENERAL_MAPPING_HEAP)
-	#define SGX_GENERAL_MAPPING_HEAP_BASE		 0x08000000
-	#define SGX_GENERAL_MAPPING_HEAP_SIZE		(0x08000000-0x00001000)
-	#endif
-
-	#define SGX_GENERAL_HEAP_BASE				 0x10000000
-	#define SGX_GENERAL_HEAP_SIZE				(0xC2000000-0x00001000)
-
-	
-	#define SGX_3DPARAMETERS_HEAP_SIZE			0x10000000
-
-	
-#if !defined(HYBRID_SHARED_PB_SIZE)
-	#define HYBRID_SHARED_PB_SIZE				(SGX_3DPARAMETERS_HEAP_SIZE >> 1)
-#endif
-#if defined(SUPPORT_HYBRID_PB)
-	#define SGX_SHARED_3DPARAMETERS_SIZE			(HYBRID_SHARED_PB_SIZE)
-	#define SGX_SHARED_3DPARAMETERS_HEAP_SIZE		(HYBRID_SHARED_PB_SIZE-0x00001000)
-	#define SGX_PERCONTEXT_3DPARAMETERS_HEAP_SIZE		(SGX_3DPARAMETERS_HEAP_SIZE - SGX_SHARED_3DPARAMETERS_SIZE - 0x00001000)
-#else
-#if defined(SUPPORT_PERCONTEXT_PB)
-	#define SGX_SHARED_3DPARAMETERS_SIZE			0
-	#define SGX_SHARED_3DPARAMETERS_HEAP_SIZE		0
-	#define SGX_PERCONTEXT_3DPARAMETERS_HEAP_SIZE		(SGX_3DPARAMETERS_HEAP_SIZE - 0x00001000)
-#endif
-#if defined(SUPPORT_SHARED_PB)
-	#define SGX_SHARED_3DPARAMETERS_SIZE			SGX_3DPARAMETERS_HEAP_SIZE
-	#define SGX_SHARED_3DPARAMETERS_HEAP_SIZE		(SGX_3DPARAMETERS_HEAP_SIZE - 0x00001000)
-	#define SGX_PERCONTEXT_3DPARAMETERS_HEAP_SIZE		0
-#endif
-#endif
-
-	#define SGX_SHARED_3DPARAMETERS_HEAP_BASE		 0xD2000000
-	
-
-	#define SGX_PERCONTEXT_3DPARAMETERS_HEAP_BASE		 (SGX_SHARED_3DPARAMETERS_HEAP_BASE + SGX_SHARED_3DPARAMETERS_SIZE)
-	
-
-	#define SGX_TADATA_HEAP_BASE				 0xE2000000
-	#define SGX_TADATA_HEAP_SIZE				(0x0D000000-0x00001000)
-
-	#define SGX_SYNCINFO_HEAP_BASE				 0xEF000000
-	#define SGX_SYNCINFO_HEAP_SIZE				(0x01000000-0x00001000)
-
-	#define SGX_PDSPIXEL_CODEDATA_HEAP_BASE		 0xF0000000
-	#define SGX_PDSPIXEL_CODEDATA_HEAP_SIZE		(0x02000000-0x00001000)
-
-	#define SGX_KERNEL_CODE_HEAP_BASE			 0xF2000000
-	#define SGX_KERNEL_CODE_HEAP_SIZE			(0x00080000-0x00001000)
-
-	#define SGX_PDSVERTEX_CODEDATA_HEAP_BASE	 0xF2400000
-	#define SGX_PDSVERTEX_CODEDATA_HEAP_SIZE	(0x01C00000-0x00001000)
-
-	#define SGX_KERNEL_DATA_HEAP_BASE		 	(0xF4000000+SGX_KERNEL_DATA_HEAP_OFFSET)
-	#define SGX_KERNEL_DATA_HEAP_SIZE			(0x05000000-(0x00001000+SGX_KERNEL_DATA_HEAP_OFFSET))
-
-	
-	#define SGX_PIXELSHADER_HEAP_BASE			 0xF9000000
-	#define SGX_PIXELSHADER_HEAP_SIZE			(0x05000000-0x00001000)
-	
-	#define SGX_VERTEXSHADER_HEAP_BASE			 0xFE000000
-	#define SGX_VERTEXSHADER_HEAP_SIZE			(0x02000000-0x00001000)
-#endif 
-	
-	#define SGX_CORE_IDENTIFIED
-#endif 
-
-#if SGX_FEATURE_ADDRESS_SPACE_SIZE == 28
-
-#if defined(SUPPORT_SGX_GENERAL_MAPPING_HEAP)
-	#define SGX_GENERAL_MAPPING_HEAP_BASE		 0x00001000
-	#define SGX_GENERAL_MAPPING_HEAP_SIZE		(0x01800000-0x00001000-0x00001000)
-
-	#define SGX_GENERAL_HEAP_BASE				 0x01800000
-	#define SGX_GENERAL_HEAP_SIZE				(0x07000000-0x00001000)
-
-#else
-	#define SGX_GENERAL_HEAP_BASE				 0x00001000
-	#define SGX_GENERAL_HEAP_SIZE				(0x08800000-0x00001000-0x00001000)
-#endif
-	
-	#define SGX_3DPARAMETERS_HEAP_SIZE			0x04000000
-
-	
-#if !defined(HYBRID_SHARED_PB_SIZE)
-	#define HYBRID_SHARED_PB_SIZE				(SGX_3DPARAMETERS_HEAP_SIZE >> 1)
-#endif
-#if defined(SUPPORT_HYBRID_PB)
-	#define SGX_SHARED_3DPARAMETERS_SIZE			(HYBRID_SHARED_PB_SIZE)
-	#define SGX_SHARED_3DPARAMETERS_HEAP_SIZE		(HYBRID_SHARED_PB_SIZE-0x00001000)
-	#define SGX_PERCONTEXT_3DPARAMETERS_HEAP_SIZE		(SGX_3DPARAMETERS_HEAP_SIZE - SGX_SHARED_3DPARAMETERS_SIZE - 0x00001000)
-#else
-#if defined(SUPPORT_PERCONTEXT_PB)
-	#define SGX_SHARED_3DPARAMETERS_SIZE			0
-	#define SGX_SHARED_3DPARAMETERS_HEAP_SIZE		0
-	#define SGX_PERCONTEXT_3DPARAMETERS_HEAP_SIZE		(SGX_3DPARAMETERS_HEAP_SIZE - 0x00001000)
-#endif
-#if defined(SUPPORT_SHARED_PB)
-	#define SGX_SHARED_3DPARAMETERS_SIZE			SGX_3DPARAMETERS_HEAP_SIZE
-	#define SGX_SHARED_3DPARAMETERS_HEAP_SIZE		(SGX_3DPARAMETERS_HEAP_SIZE - 0x00001000)
-	#define SGX_PERCONTEXT_3DPARAMETERS_HEAP_SIZE		0
-#endif
-#endif
-
-	#define SGX_SHARED_3DPARAMETERS_HEAP_BASE		 0x08800000
-	
-
-	#define SGX_PERCONTEXT_3DPARAMETERS_HEAP_BASE		 (SGX_SHARED_3DPARAMETERS_HEAP_BASE + SGX_SHARED_3DPARAMETERS_SIZE)
-	
-
-	#define SGX_TADATA_HEAP_BASE				 0x0C800000
-	#define SGX_TADATA_HEAP_SIZE				(0x01000000-0x00001000)
-
-	#define SGX_SYNCINFO_HEAP_BASE				 0x0D800000
-	#define SGX_SYNCINFO_HEAP_SIZE				(0x00400000-0x00001000)
-
-	#define SGX_PDSPIXEL_CODEDATA_HEAP_BASE		 0x0DC00000
-	#define SGX_PDSPIXEL_CODEDATA_HEAP_SIZE		(0x00800000-0x00001000)
-
-	#define SGX_KERNEL_CODE_HEAP_BASE			 0x0E400000
-	#define SGX_KERNEL_CODE_HEAP_SIZE			(0x00080000-0x00001000)
-
-	#define SGX_PDSVERTEX_CODEDATA_HEAP_BASE	 0x0E800000
-	#define SGX_PDSVERTEX_CODEDATA_HEAP_SIZE	(0x00800000-0x00001000)
-
-	#define SGX_KERNEL_DATA_HEAP_BASE			(0x0F000000+SGX_KERNEL_DATA_HEAP_OFFSET)
-	#define SGX_KERNEL_DATA_HEAP_SIZE			(0x00400000-(0x00001000+SGX_KERNEL_DATA_HEAP_OFFSET))
-
-	#define SGX_PIXELSHADER_HEAP_BASE			 0x0F400000
-	#define SGX_PIXELSHADER_HEAP_SIZE			(0x00500000-0x00001000)
-
-	#define SGX_VERTEXSHADER_HEAP_BASE			 0x0FC00000
-	#define SGX_VERTEXSHADER_HEAP_SIZE			(0x00200000-0x00001000)
-
-	
-	#define SGX_CORE_IDENTIFIED
-
-#endif 
-
-#if !defined(SGX_CORE_IDENTIFIED)
-	#error "sgxconfig.h: ERROR: unspecified SGX Core version"
-#endif
-
-#if !defined (SGX_FEATURE_EDM_VERTEX_PDSADDR_FULL_RANGE)
-	#if ((SGX_KERNEL_CODE_HEAP_BASE + SGX_KERNEL_CODE_HEAP_SIZE - SGX_PDSPIXEL_CODEDATA_HEAP_BASE) >  0x4000000)
-	 	#error "sgxconfig.h: ERROR: SGX_KERNEL_CODE_HEAP_BASE out of range of SGX_PDSPIXEL_CODEDATA_HEAP_BASE"
-	#endif
-	
-	#if ((SGX_PDSVERTEX_CODEDATA_HEAP_BASE + SGX_PDSVERTEX_CODEDATA_HEAP_SIZE - SGX_PDSPIXEL_CODEDATA_HEAP_BASE) >  0x4000000)
-	 	#error "sgxconfig.h: ERROR: SGX_PDSVERTEX_CODEDATA_HEAP_BASE out of range of SGX_PDSPIXEL_CODEDATA_HEAP_BASE"
-	#endif
-#endif	
-
-#if defined(SGX_FEATURE_2D_HARDWARE) && defined(SUPPORT_SGX_GENERAL_MAPPING_HEAP)
-	#if ((SGX_GENERAL_MAPPING_HEAP_BASE + SGX_GENERAL_MAPPING_HEAP_SIZE - SGX_2D_HEAP_BASE) >= EUR_CR_BIF_TWOD_REQ_BASE_ADDR_MASK)
-		#error "sgxconfig.h: ERROR: SGX_GENERAL_MAPPING_HEAP inaccessable by 2D requestor"
-	#endif
-#endif
-
-#if defined (EURASIA_USE_CODE_PAGE_SIZE)
-	#if ((SGX_KERNEL_CODE_HEAP_BASE & (EURASIA_USE_CODE_PAGE_SIZE - 1)) != 0)
-		#error "sgxconfig.h: ERROR: Kernel code heap base misalignment"
-	#endif
-#endif
-
-#if defined(SGX_FEATURE_2D_HARDWARE)
-	#if defined(SUPPORT_SGX_GENERAL_MAPPING_HEAP)
-		#if ((SGX_2D_HEAP_BASE + SGX_2D_HEAP_SIZE) >= SGX_GENERAL_MAPPING_HEAP_BASE)
-			#error "sgxconfig.h: ERROR: SGX_2D_HEAP overlaps SGX_GENERAL_MAPPING_HEAP"
-		#endif
-	#else
-		#if ((SGX_2D_HEAP_BASE + SGX_2D_HEAP_SIZE) >= SGX_GENERAL_HEAP_BASE)
-			#error "sgxconfig.h: ERROR: SGX_2D_HEAP overlaps SGX_GENERAL_HEAP_BASE"
-		#endif
-	#endif
-#else
-    #if defined(FIX_HW_BRN_26915)
-		#if defined(SUPPORT_SGX_GENERAL_MAPPING_HEAP)
-			#if ((SGX_CGBUFFER_HEAP_BASE + SGX_CGBUFFER_HEAP_SIZE) >= SGX_GENERAL_MAPPING_HEAP_BASE)
-				#error "sgxconfig.h: ERROR: SGX_CGBUFFER_HEAP overlaps SGX_GENERAL_MAPPING_HEAP"
-			#endif
-		#else
-			#if ((SGX_CGBUFFER_HEAP_BASE + SGX_CGBUFFER_HEAP_SIZE) >= SGX_GENERAL_HEAP_BASE)
-				#error "sgxconfig.h: ERROR: SGX_CGBUFFER_HEAP overlaps SGX_GENERAL_HEAP_BASE"
-			#endif
-		#endif
-	#endif
-#endif
-
-#if defined(SUPPORT_SGX_GENERAL_MAPPING_HEAP)
-	#if ((SGX_GENERAL_MAPPING_HEAP_BASE + SGX_GENERAL_MAPPING_HEAP_SIZE) >= SGX_GENERAL_HEAP_BASE)
-		#error "sgxconfig.h: ERROR: SGX_GENERAL_MAPPING_HEAP overlaps SGX_GENERAL_HEAP"
-	#endif
-#endif
-
-#if defined(SUPPORT_HYBRID_PB)
-	#if ((HYBRID_SHARED_PB_SIZE + 0x000001000) > SGX_3DPARAMETERS_HEAP_SIZE)
-		#error "sgxconfig.h: ERROR: HYBRID_SHARED_PB_SIZE too large"
-	#endif
-#endif
-
-#if ((SGX_GENERAL_HEAP_BASE + SGX_GENERAL_HEAP_SIZE) >= SGX_SHARED_3DPARAMETERS_HEAP_BASE)
-	#error "sgxconfig.h: ERROR: SGX_GENERAL_HEAP overlaps SGX_3DPARAMETERS_HEAP"
-#endif
-
-#if (((SGX_PERCONTEXT_3DPARAMETERS_HEAP_BASE + SGX_PERCONTEXT_3DPARAMETERS_HEAP_SIZE) >= SGX_TADATA_HEAP_BASE) && (SGX_PERCONTEXT_3DPARAMETERS_HEAP_SIZE > 0))
-	#error "sgxconfig.h: ERROR: SGX_PERCONTEXT_3DPARAMETERS_HEAP_BASE overlaps SGX_TADATA_HEAP"
-#endif
-
-#if ((SGX_TADATA_HEAP_BASE + SGX_TADATA_HEAP_SIZE) >= SGX_SYNCINFO_HEAP_BASE)
-	#error "sgxconfig.h: ERROR: SGX_TADATA_HEAP overlaps SGX_SYNCINFO_HEAP"
-#endif
-
-#if ((SGX_SYNCINFO_HEAP_BASE + SGX_SYNCINFO_HEAP_SIZE) >= SGX_PDSPIXEL_CODEDATA_HEAP_BASE)
-	#error "sgxconfig.h: ERROR: SGX_SYNCINFO_HEAP overlaps SGX_PDSPIXEL_CODEDATA_HEAP"
-#endif
-
-#if ((SGX_PDSPIXEL_CODEDATA_HEAP_BASE + SGX_PDSPIXEL_CODEDATA_HEAP_SIZE) >= SGX_KERNEL_CODE_HEAP_BASE)
-	#error "sgxconfig.h: ERROR: SGX_PDSPIXEL_CODEDATA_HEAP overlaps SGX_KERNEL_CODE_HEAP"
-#endif
-
-#if ((SGX_KERNEL_CODE_HEAP_BASE + SGX_KERNEL_CODE_HEAP_SIZE) >= SGX_PDSVERTEX_CODEDATA_HEAP_BASE)
-	#error "sgxconfig.h: ERROR: SGX_KERNEL_CODE_HEAP overlaps SGX_PDSVERTEX_CODEDATA_HEAP"
-#endif
-
-#if ((SGX_PDSVERTEX_CODEDATA_HEAP_BASE + SGX_PDSVERTEX_CODEDATA_HEAP_SIZE) >= SGX_KERNEL_DATA_HEAP_BASE)
-	#error "sgxconfig.h: ERROR: SGX_PDSVERTEX_CODEDATA_HEAP overlaps SGX_KERNEL_DATA_HEAP"
-#endif
-
-#if ((SGX_KERNEL_DATA_HEAP_BASE + SGX_KERNEL_DATA_HEAP_SIZE) >= SGX_PIXELSHADER_HEAP_BASE)
-	#error "sgxconfig.h: ERROR: SGX_KERNEL_DATA_HEAP overlaps SGX_PIXELSHADER_HEAP"
-#endif
-
-#if ((SGX_PIXELSHADER_HEAP_BASE + SGX_PIXELSHADER_HEAP_SIZE) >= SGX_VERTEXSHADER_HEAP_BASE)
-	#error "sgxconfig.h: ERROR: SGX_PIXELSHADER_HEAP overlaps SGX_VERTEXSHADER_HEAP"
-#endif
-
-#if ((SGX_VERTEXSHADER_HEAP_BASE + SGX_VERTEXSHADER_HEAP_SIZE) < SGX_VERTEXSHADER_HEAP_BASE)
-	#error "sgxconfig.h: ERROR: SGX_VERTEXSHADER_HEAP_BASE size cause wraparound"
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxinfokm.h b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxinfokm.h
deleted file mode 100644
index 55bc9e4..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxinfokm.h
+++ /dev/null
@@ -1,574 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __SGXINFOKM_H__
-#define __SGXINFOKM_H__
-
-#include "sgxdefs.h"
-#include "device.h"
-#include "power.h"
-#include "sysconfig.h"
-#include "sgxscript.h"
-#include "sgxinfo.h"
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#define		SGX_HOSTPORT_PRESENT			0x00000001UL
-
-
-#define SGX_PDUMPREG_NAME		"SGXREG"
-
-typedef struct _PVRSRV_STUB_PBDESC_ PVRSRV_STUB_PBDESC;
-
-
-typedef struct _PVRSRV_SGX_CCB_INFO_ *PPVRSRV_SGX_CCB_INFO;
-
-typedef struct _PVRSRV_SGXDEV_INFO_
-{
-	PVRSRV_DEVICE_TYPE		eDeviceType;
-	PVRSRV_DEVICE_CLASS		eDeviceClass;
-
-	IMG_UINT8				ui8VersionMajor;
-	IMG_UINT8				ui8VersionMinor;
-	IMG_UINT32				ui32CoreConfig;
-	IMG_UINT32				ui32CoreFlags;
-
-	
-	IMG_PVOID				pvRegsBaseKM;
-
-#if defined(SGX_FEATURE_HOST_PORT)
-	
-	IMG_PVOID				pvHostPortBaseKM;
-	
-	IMG_UINT32				ui32HPSize;
-	
-	IMG_SYS_PHYADDR			sHPSysPAddr;
-#endif
-
-	
-	IMG_HANDLE				hRegMapping;
-
-	
-	IMG_SYS_PHYADDR			sRegsPhysBase;
-	
-	IMG_UINT32				ui32RegSize;
-
-#if defined(SUPPORT_EXTERNAL_SYSTEM_CACHE)
-	
-	IMG_UINT32				ui32ExtSysCacheRegsSize;
-	
-	IMG_DEV_PHYADDR			sExtSysCacheRegsDevPBase;
-	
-	IMG_UINT32				*pui32ExtSystemCacheRegsPT;
-	
-	IMG_HANDLE				hExtSystemCacheRegsPTPageOSMemHandle;
-	
-	IMG_SYS_PHYADDR			sExtSystemCacheRegsPTSysPAddr;
-#endif
-
-	
-	IMG_UINT32				ui32CoreClockSpeed;
-	IMG_UINT32				ui32uKernelTimerClock;
-
-	PVRSRV_STUB_PBDESC		*psStubPBDescListKM;
-
-
-	
-	IMG_DEV_PHYADDR			sKernelPDDevPAddr;
-
-	IMG_VOID				*pvDeviceMemoryHeap;
-	PPVRSRV_KERNEL_MEM_INFO	psKernelCCBMemInfo;			
-	PVRSRV_SGX_KERNEL_CCB	*psKernelCCB;			
-	PPVRSRV_SGX_CCB_INFO	psKernelCCBInfo;		
-	PPVRSRV_KERNEL_MEM_INFO	psKernelCCBCtlMemInfo;	
-	PVRSRV_SGX_CCB_CTL		*psKernelCCBCtl;		
-	PPVRSRV_KERNEL_MEM_INFO psKernelCCBEventKickerMemInfo; 
-	IMG_UINT32				*pui32KernelCCBEventKicker; 
-#if defined(PDUMP)
-	IMG_UINT32				ui32KernelCCBEventKickerDumpVal; 
-#endif 
- 	PVRSRV_KERNEL_MEM_INFO	*psKernelSGXMiscMemInfo;	
-	IMG_UINT32				aui32HostKickAddr[SGXMKIF_CMD_MAX];		
-#if defined(SGX_SUPPORT_HWPROFILING)
-	PPVRSRV_KERNEL_MEM_INFO psKernelHWProfilingMemInfo;
-#endif
-	PPVRSRV_KERNEL_MEM_INFO		psKernelHWPerfCBMemInfo;		
-	PPVRSRV_KERNEL_MEM_INFO		psKernelTASigBufferMemInfo;		
-	PPVRSRV_KERNEL_MEM_INFO		psKernel3DSigBufferMemInfo;		
-#if defined(FIX_HW_BRN_29702)
-	PPVRSRV_KERNEL_MEM_INFO psKernelCFIMemInfo;	
-#endif
-#if defined(FIX_HW_BRN_29823)
-	PPVRSRV_KERNEL_MEM_INFO	psKernelDummyTermStreamMemInfo; 
-#endif
-#if defined(SGX_FEATURE_VDM_CONTEXT_SWITCH) && defined(FIX_HW_BRN_31425)
-	PPVRSRV_KERNEL_MEM_INFO	psKernelVDMSnapShotBufferMemInfo; 
-	PPVRSRV_KERNEL_MEM_INFO	psKernelVDMCtrlStreamBufferMemInfo; 
-#endif
-#if defined(SGX_FEATURE_VDM_CONTEXT_SWITCH) && \
-	defined(FIX_HW_BRN_33657) && defined(SUPPORT_SECURE_33657_FIX)
-	PPVRSRV_KERNEL_MEM_INFO	psKernelVDMStateUpdateBufferMemInfo; 
-#endif
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
-	PPVRSRV_KERNEL_MEM_INFO	psKernelEDMStatusBufferMemInfo; 
-#endif
-#if defined(SGX_FEATURE_OVERLAPPED_SPM)
-	PPVRSRV_KERNEL_MEM_INFO	psKernelTmpRgnHeaderMemInfo; 
-#endif
-	
-	IMG_UINT32				ui32ClientRefCount;
-
-	
-	IMG_UINT32				ui32CacheControl;
-
-	
-	IMG_UINT32				ui32ClientBuildOptions;
-
-	
-	SGX_MISCINFO_STRUCT_SIZES	sSGXStructSizes;
-
-	
-
-
-	IMG_VOID				*pvMMUContextList;
-
-	
-	IMG_BOOL				bForcePTOff;
-
-	IMG_UINT32				ui32EDMTaskReg0;
-	IMG_UINT32				ui32EDMTaskReg1;
-
-	IMG_UINT32				ui32ClkGateCtl;
-	IMG_UINT32				ui32ClkGateCtl2;
-	IMG_UINT32				ui32ClkGateStatusReg;
-	IMG_UINT32				ui32ClkGateStatusMask;
-#if defined(SGX_FEATURE_MP)
-	IMG_UINT32				ui32MasterClkGateStatusReg;
-	IMG_UINT32				ui32MasterClkGateStatusMask;
-	IMG_UINT32				ui32MasterClkGateStatus2Reg;
-	IMG_UINT32				ui32MasterClkGateStatus2Mask;
-#endif 
-	SGX_INIT_SCRIPTS		sScripts;
-
-	
-	IMG_HANDLE 				hBIFResetPDOSMemHandle;
-	IMG_DEV_PHYADDR 		sBIFResetPDDevPAddr;
-	IMG_DEV_PHYADDR 		sBIFResetPTDevPAddr;
-	IMG_DEV_PHYADDR 		sBIFResetPageDevPAddr;
-	IMG_UINT32				*pui32BIFResetPD;
-	IMG_UINT32				*pui32BIFResetPT;
-
-#if defined(FIX_HW_BRN_22997) && defined(FIX_HW_BRN_23030) && defined(SGX_FEATURE_HOST_PORT)
-	
-	IMG_HANDLE				hBRN22997PTPageOSMemHandle;
-	IMG_HANDLE				hBRN22997PDPageOSMemHandle;
-	IMG_DEV_PHYADDR 		sBRN22997PTDevPAddr;
-	IMG_DEV_PHYADDR 		sBRN22997PDDevPAddr;
-	IMG_UINT32				*pui32BRN22997PT;
-	IMG_UINT32				*pui32BRN22997PD;
-	IMG_SYS_PHYADDR 		sBRN22997SysPAddr;
-#endif 
-
-#if defined(SUPPORT_HW_RECOVERY)
-	
-	IMG_HANDLE				hTimer;
-	
-	IMG_UINT32				ui32TimeStamp;
-#endif
-
-	
-	IMG_UINT32				ui32NumResets;
-
-	
-	PVRSRV_KERNEL_MEM_INFO			*psKernelSGXHostCtlMemInfo;
-	SGXMKIF_HOST_CTL				*psSGXHostCtl;
-
-	
-	PVRSRV_KERNEL_MEM_INFO			*psKernelSGXTA3DCtlMemInfo;
-
-#if defined(FIX_HW_BRN_31272) || defined(FIX_HW_BRN_31780) || defined(FIX_HW_BRN_33920)
-	PVRSRV_KERNEL_MEM_INFO			*psKernelSGXPTLAWriteBackMemInfo;
-#endif
-
-	IMG_UINT32				ui32Flags;
-
-	
-	IMG_UINT32				ui32MemTilingUsage;
-
-	#if defined(PDUMP)
-	PVRSRV_SGX_PDUMP_CONTEXT	sPDContext;
-	#endif
-
-#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
-	
-	IMG_VOID				*pvDummyPTPageCpuVAddr;
-	IMG_DEV_PHYADDR			sDummyPTDevPAddr;
-	IMG_HANDLE				hDummyPTPageOSMemHandle;
-	IMG_VOID				*pvDummyDataPageCpuVAddr;
-	IMG_DEV_PHYADDR 		sDummyDataDevPAddr;
-	IMG_HANDLE				hDummyDataPageOSMemHandle;
-#endif
-#if defined(PDUMP)
-	PDUMP_MMU_ATTRIB sMMUAttrib;
-#endif
-	IMG_UINT32				asSGXDevData[SGX_MAX_DEV_DATA];
-
-#if defined(FIX_HW_BRN_31620)
-	
-	IMG_VOID			*pvBRN31620DummyPageCpuVAddr;
-	IMG_HANDLE			hBRN31620DummyPageOSMemHandle;
-	IMG_DEV_PHYADDR			sBRN31620DummyPageDevPAddr;
-
-	
-	IMG_VOID			*pvBRN31620DummyPTCpuVAddr;
-	IMG_HANDLE			hBRN31620DummyPTOSMemHandle;
-	IMG_DEV_PHYADDR			sBRN31620DummyPTDevPAddr;
-
-	IMG_HANDLE			hKernelMMUContext;
-#endif
-
-} PVRSRV_SGXDEV_INFO;
-
-
-typedef struct _SGX_TIMING_INFORMATION_
-{
-	IMG_UINT32			ui32CoreClockSpeed;
-	IMG_UINT32			ui32HWRecoveryFreq;
-	IMG_BOOL			bEnableActivePM;
-	IMG_UINT32			ui32ActivePowManLatencyms;
-	IMG_UINT32			ui32uKernelFreq;
-} SGX_TIMING_INFORMATION;
-
-typedef struct _SGX_DEVICE_MAP_
-{
-	IMG_UINT32				ui32Flags;
-
-	
-	IMG_SYS_PHYADDR			sRegsSysPBase;
-	IMG_CPU_PHYADDR			sRegsCpuPBase;
-	IMG_CPU_VIRTADDR		pvRegsCpuVBase;
-	IMG_UINT32				ui32RegsSize;
-
-#if defined(SGX_FEATURE_HOST_PORT)
-	IMG_SYS_PHYADDR			sHPSysPBase;
-	IMG_CPU_PHYADDR			sHPCpuPBase;
-	IMG_UINT32				ui32HPSize;
-#endif
-
-	
-	IMG_SYS_PHYADDR			sLocalMemSysPBase;
-	IMG_DEV_PHYADDR			sLocalMemDevPBase;
-	IMG_CPU_PHYADDR			sLocalMemCpuPBase;
-	IMG_UINT32				ui32LocalMemSize;
-
-#if defined(SUPPORT_EXTERNAL_SYSTEM_CACHE)
-	IMG_UINT32				ui32ExtSysCacheRegsSize;
-	IMG_DEV_PHYADDR			sExtSysCacheRegsDevPBase;
-#endif
-
-	
-	IMG_UINT32				ui32IRQ;
-
-#if !defined(SGX_DYNAMIC_TIMING_INFO)
-	
-	SGX_TIMING_INFORMATION	sTimingInfo;
-#endif
-#if defined(PDUMP)
-	
-	IMG_CHAR				*pszPDumpDevName;
-#endif
-} SGX_DEVICE_MAP;
-
-
-struct _PVRSRV_STUB_PBDESC_
-{
-	IMG_UINT32		ui32RefCount;
-	IMG_UINT32		ui32TotalPBSize;
-	PVRSRV_KERNEL_MEM_INFO  *psSharedPBDescKernelMemInfo;
-	PVRSRV_KERNEL_MEM_INFO  *psHWPBDescKernelMemInfo;
-	PVRSRV_KERNEL_MEM_INFO	**ppsSubKernelMemInfos;
-	IMG_UINT32		ui32SubKernelMemInfosCount;
-	IMG_HANDLE		hDevCookie;
-	PVRSRV_KERNEL_MEM_INFO  *psBlockKernelMemInfo;
-	PVRSRV_KERNEL_MEM_INFO  *psHWBlockKernelMemInfo;
-	IMG_DEV_VIRTADDR	sHWPBDescDevVAddr;
-	PVRSRV_STUB_PBDESC	*psNext;
-	PVRSRV_STUB_PBDESC	**ppsThis;
-};
-
-typedef struct _PVRSRV_SGX_CCB_INFO_
-{
-	PVRSRV_KERNEL_MEM_INFO	*psCCBMemInfo;			
-	PVRSRV_KERNEL_MEM_INFO	*psCCBCtlMemInfo;		
-	SGXMKIF_COMMAND		*psCommands;			
-	IMG_UINT32				*pui32WriteOffset;		
-	volatile IMG_UINT32		*pui32ReadOffset;		
-#if defined(PDUMP)
-	IMG_UINT32				ui32CCBDumpWOff;		
-#endif
-} PVRSRV_SGX_CCB_INFO;
-
-
-typedef struct _SGX_BRIDGE_INIT_INFO_KM_
-{
-	IMG_HANDLE	hKernelCCBMemInfo;
-	IMG_HANDLE	hKernelCCBCtlMemInfo;
-	IMG_HANDLE	hKernelCCBEventKickerMemInfo;
-	IMG_HANDLE	hKernelSGXHostCtlMemInfo;
-	IMG_HANDLE	hKernelSGXTA3DCtlMemInfo;
-#if defined(FIX_HW_BRN_31272) || defined(FIX_HW_BRN_31780) || defined(FIX_HW_BRN_33920)
-	IMG_HANDLE	hKernelSGXPTLAWriteBackMemInfo;
-#endif
-	IMG_HANDLE	hKernelSGXMiscMemInfo;
-
-	IMG_UINT32	aui32HostKickAddr[SGXMKIF_CMD_MAX];
-
-	SGX_INIT_SCRIPTS sScripts;
-
-	IMG_UINT32	ui32ClientBuildOptions;
-	SGX_MISCINFO_STRUCT_SIZES	sSGXStructSizes;
-
-#if defined(SGX_SUPPORT_HWPROFILING)
-	IMG_HANDLE	hKernelHWProfilingMemInfo;
-#endif
-#if defined(SUPPORT_SGX_HWPERF)
-	IMG_HANDLE	hKernelHWPerfCBMemInfo;
-#endif
-	IMG_HANDLE	hKernelTASigBufferMemInfo;
-	IMG_HANDLE	hKernel3DSigBufferMemInfo;
-
-#if defined(FIX_HW_BRN_29702)
-	IMG_HANDLE	hKernelCFIMemInfo;
-#endif
-#if defined(FIX_HW_BRN_29823)
-	IMG_HANDLE	hKernelDummyTermStreamMemInfo;
-#endif
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
-	IMG_HANDLE	hKernelEDMStatusBufferMemInfo;
-#endif
-#if defined(SGX_FEATURE_OVERLAPPED_SPM)
-	IMG_HANDLE hKernelTmpRgnHeaderMemInfo;
-#endif
-
-	IMG_UINT32 ui32EDMTaskReg0;
-	IMG_UINT32 ui32EDMTaskReg1;
-
-	IMG_UINT32 ui32ClkGateStatusReg;
-	IMG_UINT32 ui32ClkGateStatusMask;
-#if defined(SGX_FEATURE_MP)
-#endif 
-
-	IMG_UINT32 ui32CacheControl;
-
-	IMG_UINT32	asInitDevData[SGX_MAX_DEV_DATA];
-	IMG_HANDLE	asInitMemHandles[SGX_MAX_INIT_MEM_HANDLES];
-
-} SGX_BRIDGE_INIT_INFO_KM;
-
-
-typedef struct _SGX_INTERNEL_STATUS_UPDATE_KM_
-{
-	CTL_STATUS				sCtlStatus;
-	IMG_HANDLE				hKernelMemInfo;
-} SGX_INTERNEL_STATUS_UPDATE_KM;
-
-
-typedef struct _SGX_CCB_KICK_KM_
-{
-	SGXMKIF_COMMAND		sCommand;
-	IMG_HANDLE	hCCBKernelMemInfo;
-
-	IMG_UINT32	ui32NumDstSyncObjects;
-	IMG_HANDLE	hKernelHWSyncListMemInfo;
-
-	
-	IMG_HANDLE	*pahDstSyncHandles;
-
-	IMG_UINT32	ui32NumTAStatusVals;
-	IMG_UINT32	ui32Num3DStatusVals;
-
-#if defined(SUPPORT_SGX_NEW_STATUS_VALS)
-	SGX_INTERNEL_STATUS_UPDATE_KM	asTAStatusUpdate[SGX_MAX_TA_STATUS_VALS];
-	SGX_INTERNEL_STATUS_UPDATE_KM	as3DStatusUpdate[SGX_MAX_3D_STATUS_VALS];
-#else
-	IMG_HANDLE	ahTAStatusSyncInfo[SGX_MAX_TA_STATUS_VALS];
-	IMG_HANDLE	ah3DStatusSyncInfo[SGX_MAX_3D_STATUS_VALS];
-#endif
-
-	IMG_BOOL	bFirstKickOrResume;
-#if (defined(NO_HARDWARE) || defined(PDUMP))
-	IMG_BOOL	bTerminateOrAbort;
-#endif
-
-	
-	IMG_UINT32	ui32CCBOffset;
-
-#if defined(SUPPORT_SGX_GENERALISED_SYNCOBJECTS)
-	
-	IMG_UINT32	ui32NumTASrcSyncs;
-	IMG_HANDLE	ahTASrcKernelSyncInfo[SGX_MAX_TA_SRC_SYNCS];
-	IMG_UINT32	ui32NumTADstSyncs;
-	IMG_HANDLE	ahTADstKernelSyncInfo[SGX_MAX_TA_DST_SYNCS];
-	IMG_UINT32	ui32Num3DSrcSyncs;
-	IMG_HANDLE	ah3DSrcKernelSyncInfo[SGX_MAX_3D_SRC_SYNCS];
-#else
-	
-	IMG_UINT32	ui32NumSrcSyncs;
-	IMG_HANDLE	ahSrcKernelSyncInfo[SGX_MAX_SRC_SYNCS];
-#endif
-
-	
-	IMG_BOOL	bTADependency;
-	IMG_HANDLE	hTA3DSyncInfo;
-
-	IMG_HANDLE	hTASyncInfo;
-	IMG_HANDLE	h3DSyncInfo;
-#if defined(PDUMP)
-	IMG_UINT32	ui32CCBDumpWOff;
-#endif
-#if defined(NO_HARDWARE)
-	IMG_UINT32	ui32WriteOpsPendingVal;
-#endif
-} SGX_CCB_KICK_KM;
-
-
-#if defined(TRANSFER_QUEUE)
-typedef struct _PVRSRV_TRANSFER_SGX_KICK_KM_
-{
-	IMG_HANDLE		hCCBMemInfo;
-	IMG_UINT32		ui32SharedCmdCCBOffset;
-
-	IMG_DEV_VIRTADDR 	sHWTransferContextDevVAddr;
-
-	IMG_HANDLE		hTASyncInfo;
-	IMG_HANDLE		h3DSyncInfo;
-
-	IMG_UINT32		ui32NumSrcSync;
-	IMG_HANDLE		ahSrcSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS];
-
-	IMG_UINT32		ui32NumDstSync;
-	IMG_HANDLE		ahDstSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS];
-
-	IMG_UINT32		ui32Flags;
-
-	IMG_UINT32		ui32PDumpFlags;
-#if defined(PDUMP)
-	IMG_UINT32		ui32CCBDumpWOff;
-#endif
-} PVRSRV_TRANSFER_SGX_KICK_KM, *PPVRSRV_TRANSFER_SGX_KICK_KM;
-
-#if defined(SGX_FEATURE_2D_HARDWARE)
-typedef struct _PVRSRV_2D_SGX_KICK_KM_
-{
-	IMG_HANDLE		hCCBMemInfo;
-	IMG_UINT32		ui32SharedCmdCCBOffset;
-
-	IMG_DEV_VIRTADDR 	sHW2DContextDevVAddr;
-
-	IMG_UINT32		ui32NumSrcSync;
-	IMG_HANDLE		ahSrcSyncInfo[SGX_MAX_2D_SRC_SYNC_OPS];
-
-	
-	IMG_HANDLE 		hDstSyncInfo;
-
-	
-	IMG_HANDLE		hTASyncInfo;
-
-	
-	IMG_HANDLE		h3DSyncInfo;
-
-	IMG_UINT32		ui32PDumpFlags;
-#if defined(PDUMP)
-	IMG_UINT32		ui32CCBDumpWOff;
-#endif
-} PVRSRV_2D_SGX_KICK_KM, *PPVRSRV_2D_SGX_KICK_KM;
-#endif	
-#endif 
-
-PVRSRV_ERROR SGXRegisterDevice (PVRSRV_DEVICE_NODE *psDeviceNode);
-
-IMG_VOID SGXOSTimer(IMG_VOID *pvData);
-
-IMG_VOID SGXReset(PVRSRV_SGXDEV_INFO	*psDevInfo,
-				  IMG_BOOL				bHardwareRecovery,
-				  IMG_UINT32			ui32PDUMPFlags);
-
-IMG_VOID SGXInitClocks(PVRSRV_SGXDEV_INFO	*psDevInfo,
-					   IMG_UINT32			ui32PDUMPFlags);
-
-PVRSRV_ERROR SGXInitialise(PVRSRV_SGXDEV_INFO	*psDevInfo,
-						   IMG_BOOL				bHardwareRecovery);
-PVRSRV_ERROR SGXDeinitialise(IMG_HANDLE hDevCookie);
-
-PVRSRV_ERROR SGXPrePowerState(IMG_HANDLE				hDevHandle, 
-							  PVRSRV_DEV_POWER_STATE	eNewPowerState, 
-							  PVRSRV_DEV_POWER_STATE	eCurrentPowerState);
-
-PVRSRV_ERROR SGXPostPowerState(IMG_HANDLE				hDevHandle, 
-							   PVRSRV_DEV_POWER_STATE	eNewPowerState, 
-							   PVRSRV_DEV_POWER_STATE	eCurrentPowerState);
-
-PVRSRV_ERROR SGXPreClockSpeedChange(IMG_HANDLE				hDevHandle,
-									IMG_BOOL				bIdleDevice,
-									PVRSRV_DEV_POWER_STATE	eCurrentPowerState);
-
-PVRSRV_ERROR SGXPostClockSpeedChange(IMG_HANDLE				hDevHandle,
-									 IMG_BOOL				bIdleDevice,
-									 PVRSRV_DEV_POWER_STATE	eCurrentPowerState);
-
-IMG_VOID SGXPanic(PVRSRV_SGXDEV_INFO	*psDevInfo);
-
-PVRSRV_ERROR SGXDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode);
-
-#if defined(SGX_DYNAMIC_TIMING_INFO)
-IMG_VOID SysGetSGXTimingInformation(SGX_TIMING_INFORMATION *psSGXTimingInfo);
-#endif
-
-#if defined(NO_HARDWARE)
-static INLINE IMG_VOID NoHardwareGenerateEvent(PVRSRV_SGXDEV_INFO		*psDevInfo,
-												IMG_UINT32 ui32StatusRegister,
-												IMG_UINT32 ui32StatusValue,
-												IMG_UINT32 ui32StatusMask)
-{
-	IMG_UINT32 ui32RegVal;
-
-	ui32RegVal = OSReadHWReg(psDevInfo->pvRegsBaseKM, ui32StatusRegister);
-
-	ui32RegVal &= ~ui32StatusMask;
-	ui32RegVal |= (ui32StatusValue & ui32StatusMask);
-
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, ui32StatusRegister, ui32RegVal);
-}
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxinit.c b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxinit.c
deleted file mode 100644
index 6970947..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxinit.c
+++ /dev/null
@@ -1,2824 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <stddef.h>
-
-#include "sgxdefs.h"
-#include "sgxmmu.h"
-#include "services_headers.h"
-#include "buffer_manager.h"
-#include "sgxapi_km.h"
-#include "sgxinfo.h"
-#include "sgx_mkif_km.h"
-#include "sgxconfig.h"
-#include "sysconfig.h"
-#include "pvr_bridge_km.h"
-
-#include "sgx_bridge_km.h"
-
-#include "pdump_km.h"
-#include "ra.h"
-#include "mmu.h"
-#include "handle.h"
-#include "perproc.h"
-
-#include "sgxutils.h"
-#include "pvrversion.h"
-#include "sgx_options.h"
-
-#include "lists.h"
-#include "srvkm.h"
-#include "ttrace.h"
-
-#define VAR(x) #x
-
- 
-#define CHECK_SIZE(NAME) \
-{	\
-	if (psSGXStructSizes->ui32Sizeof_##NAME != psDevInfo->sSGXStructSizes.ui32Sizeof_##NAME) \
-	{	\
-		PVR_DPF((PVR_DBG_ERROR, "SGXDevInitCompatCheck: Size check failed for SGXMKIF_%s (client) = %d bytes, (ukernel) = %d bytes\n", \
-			VAR(NAME), \
-			psDevInfo->sSGXStructSizes.ui32Sizeof_##NAME, \
-			psSGXStructSizes->ui32Sizeof_##NAME )); \
-		bStructSizesFailed = IMG_TRUE; \
-	}	\
-}
-
-#if defined (SYS_USING_INTERRUPTS)
-IMG_BOOL SGX_ISRHandler(IMG_VOID *pvData);
-#endif
-
-
-static
-PVRSRV_ERROR SGXGetMiscInfoUkernel(PVRSRV_SGXDEV_INFO	*psDevInfo,
-								   PVRSRV_DEVICE_NODE 	*psDeviceNode,
-								   IMG_HANDLE hDevMemContext);
-#if defined(PDUMP)
-static
-PVRSRV_ERROR SGXResetPDump(PVRSRV_DEVICE_NODE *psDeviceNode);
-#endif
-
-static IMG_VOID SGXCommandComplete(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-#if defined(OS_SUPPORTS_IN_LISR)
-	if (OSInLISR(psDeviceNode->psSysData))
-	{
-		
-		psDeviceNode->bReProcessDeviceCommandComplete = IMG_TRUE;
-	}
-	else
-	{
-		SGXScheduleProcessQueuesKM(psDeviceNode);
-	}
-#else
-	SGXScheduleProcessQueuesKM(psDeviceNode);
-#endif
-}
-
-static IMG_UINT32 DeinitDevInfo(PVRSRV_SGXDEV_INFO *psDevInfo)
-{
-	if (psDevInfo->psKernelCCBInfo != IMG_NULL)
-	{
-		
-
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(PVRSRV_SGX_CCB_INFO), psDevInfo->psKernelCCBInfo, IMG_NULL);
-	}
-
-	return PVRSRV_OK;
-}
-
-static PVRSRV_ERROR InitDevInfo(PVRSRV_PER_PROCESS_DATA *psPerProc,
-								PVRSRV_DEVICE_NODE *psDeviceNode,
-#if defined (SUPPORT_SID_INTERFACE)
-								SGX_BRIDGE_INIT_INFO_KM *psInitInfo)
-#else
-								SGX_BRIDGE_INIT_INFO *psInitInfo)
-#endif
-{
-	PVRSRV_SGXDEV_INFO *psDevInfo = (PVRSRV_SGXDEV_INFO *)psDeviceNode->pvDevice;
-	PVRSRV_ERROR		eError;
-
-	PVRSRV_SGX_CCB_INFO	*psKernelCCBInfo = IMG_NULL;
-
-	PVR_UNREFERENCED_PARAMETER(psPerProc);
-	psDevInfo->sScripts = psInitInfo->sScripts;
-
-	psDevInfo->psKernelCCBMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelCCBMemInfo;
-	psDevInfo->psKernelCCB = (PVRSRV_SGX_KERNEL_CCB *) psDevInfo->psKernelCCBMemInfo->pvLinAddrKM;
-
-	psDevInfo->psKernelCCBCtlMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelCCBCtlMemInfo;
-	psDevInfo->psKernelCCBCtl = (PVRSRV_SGX_CCB_CTL *) psDevInfo->psKernelCCBCtlMemInfo->pvLinAddrKM;
-
-	psDevInfo->psKernelCCBEventKickerMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelCCBEventKickerMemInfo;
-	psDevInfo->pui32KernelCCBEventKicker = (IMG_UINT32 *)psDevInfo->psKernelCCBEventKickerMemInfo->pvLinAddrKM;
-
-	psDevInfo->psKernelSGXHostCtlMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelSGXHostCtlMemInfo;
-	psDevInfo->psSGXHostCtl = (SGXMKIF_HOST_CTL *)psDevInfo->psKernelSGXHostCtlMemInfo->pvLinAddrKM;
-
-	psDevInfo->psKernelSGXTA3DCtlMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelSGXTA3DCtlMemInfo;
-
-#if defined(FIX_HW_BRN_31272) || defined(FIX_HW_BRN_31780) || defined(FIX_HW_BRN_33920)
-	psDevInfo->psKernelSGXPTLAWriteBackMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelSGXPTLAWriteBackMemInfo;
-#endif
-
-	psDevInfo->psKernelSGXMiscMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelSGXMiscMemInfo;
-
-#if defined(SGX_SUPPORT_HWPROFILING)
-	psDevInfo->psKernelHWProfilingMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelHWProfilingMemInfo;
-#endif
-#if defined(SUPPORT_SGX_HWPERF)
-	psDevInfo->psKernelHWPerfCBMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelHWPerfCBMemInfo;
-#endif
-	psDevInfo->psKernelTASigBufferMemInfo = psInitInfo->hKernelTASigBufferMemInfo;
-	psDevInfo->psKernel3DSigBufferMemInfo = psInitInfo->hKernel3DSigBufferMemInfo;
-#if defined(FIX_HW_BRN_29702)
-	psDevInfo->psKernelCFIMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelCFIMemInfo;
-#endif
-#if defined(FIX_HW_BRN_29823)
-	psDevInfo->psKernelDummyTermStreamMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelDummyTermStreamMemInfo;
-#endif
-#if defined(SGX_FEATURE_VDM_CONTEXT_SWITCH) && defined(FIX_HW_BRN_31425)
-	psDevInfo->psKernelVDMSnapShotBufferMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelVDMSnapShotBufferMemInfo;
-	psDevInfo->psKernelVDMCtrlStreamBufferMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelVDMCtrlStreamBufferMemInfo;
-#endif
-#if defined(SGX_FEATURE_VDM_CONTEXT_SWITCH) && \
-	defined(FIX_HW_BRN_33657) && defined(SUPPORT_SECURE_33657_FIX)
-	psDevInfo->psKernelVDMStateUpdateBufferMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelVDMStateUpdateBufferMemInfo;
-#endif
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
-	psDevInfo->psKernelEDMStatusBufferMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelEDMStatusBufferMemInfo;
-#endif
-#if defined(SGX_FEATURE_OVERLAPPED_SPM)
-	psDevInfo->psKernelTmpRgnHeaderMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelTmpRgnHeaderMemInfo;
-#endif
-#if defined(SGX_FEATURE_SPM_MODE_0)
-	psDevInfo->psKernelTmpDPMStateMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psInitInfo->hKernelTmpDPMStateMemInfo;
-#endif
-	
-	psDevInfo->ui32ClientBuildOptions = psInitInfo->ui32ClientBuildOptions;
-
-	
-	psDevInfo->sSGXStructSizes = psInitInfo->sSGXStructSizes;
-
-	
-
-	eError = OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-						sizeof(PVRSRV_SGX_CCB_INFO),
-						(IMG_VOID **)&psKernelCCBInfo, 0,
-						"SGX Circular Command Buffer Info");
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"InitDevInfo: Failed to alloc memory"));
-		goto failed_allockernelccb;
-	}
-
-
-	OSMemSet(psKernelCCBInfo, 0, sizeof(PVRSRV_SGX_CCB_INFO));
-	psKernelCCBInfo->psCCBMemInfo		= psDevInfo->psKernelCCBMemInfo;
-	psKernelCCBInfo->psCCBCtlMemInfo	= psDevInfo->psKernelCCBCtlMemInfo;
-	psKernelCCBInfo->psCommands			= psDevInfo->psKernelCCB->asCommands;
-	psKernelCCBInfo->pui32WriteOffset	= &psDevInfo->psKernelCCBCtl->ui32WriteOffset;
-	psKernelCCBInfo->pui32ReadOffset	= &psDevInfo->psKernelCCBCtl->ui32ReadOffset;
-	psDevInfo->psKernelCCBInfo = psKernelCCBInfo;
-
-	
-
-	OSMemCopy(psDevInfo->aui32HostKickAddr, psInitInfo->aui32HostKickAddr,
-			  SGXMKIF_CMD_MAX * sizeof(psDevInfo->aui32HostKickAddr[0]));
-
- 	psDevInfo->bForcePTOff = IMG_FALSE;
-
-	psDevInfo->ui32CacheControl = psInitInfo->ui32CacheControl;
-
-	psDevInfo->ui32EDMTaskReg0 = psInitInfo->ui32EDMTaskReg0;
-	psDevInfo->ui32EDMTaskReg1 = psInitInfo->ui32EDMTaskReg1;
-	psDevInfo->ui32ClkGateCtl = psInitInfo->ui32ClkGateCtl;
-	psDevInfo->ui32ClkGateCtl2 = psInitInfo->ui32ClkGateCtl2;
-	psDevInfo->ui32ClkGateStatusReg = psInitInfo->ui32ClkGateStatusReg;
-	psDevInfo->ui32ClkGateStatusMask = psInitInfo->ui32ClkGateStatusMask;
-#if defined(SGX_FEATURE_MP)
-	psDevInfo->ui32MasterClkGateStatusReg = psInitInfo->ui32MasterClkGateStatusReg;
-	psDevInfo->ui32MasterClkGateStatusMask = psInitInfo->ui32MasterClkGateStatusMask;
-	psDevInfo->ui32MasterClkGateStatus2Reg = psInitInfo->ui32MasterClkGateStatus2Reg;
-	psDevInfo->ui32MasterClkGateStatus2Mask = psInitInfo->ui32MasterClkGateStatus2Mask;
-#endif 
-
-
-	
-	OSMemCopy(&psDevInfo->asSGXDevData, &psInitInfo->asInitDevData, sizeof(psDevInfo->asSGXDevData));
-
-	return PVRSRV_OK;
-
-failed_allockernelccb:
-	DeinitDevInfo(psDevInfo);
-
-	return eError;
-}
-
-
-
-
-static PVRSRV_ERROR SGXRunScript(PVRSRV_SGXDEV_INFO *psDevInfo, SGX_INIT_COMMAND *psScript, IMG_UINT32 ui32NumInitCommands)
-{
-	IMG_UINT32 ui32PC;
-	SGX_INIT_COMMAND *psComm;
-
-	for (ui32PC = 0, psComm = psScript;
-		ui32PC < ui32NumInitCommands;
-		ui32PC++, psComm++)
-	{
-		switch (psComm->eOp)
-		{
-			case SGX_INIT_OP_WRITE_HW_REG:
-			{
-				OSWriteHWReg(psDevInfo->pvRegsBaseKM, psComm->sWriteHWReg.ui32Offset, psComm->sWriteHWReg.ui32Value);
-				PDUMPCOMMENT("SGXRunScript: Write HW reg operation");
-				PDUMPREG(SGX_PDUMPREG_NAME, psComm->sWriteHWReg.ui32Offset, psComm->sWriteHWReg.ui32Value);
-				break;
-			}
-#if defined(PDUMP)
-			case SGX_INIT_OP_PDUMP_HW_REG:
-			{
-				PDUMPCOMMENT("SGXRunScript: Dump HW reg operation");
-				PDUMPREG(SGX_PDUMPREG_NAME, psComm->sPDumpHWReg.ui32Offset, psComm->sPDumpHWReg.ui32Value);
-				break;
-			}
-#endif
-			case SGX_INIT_OP_HALT:
-			{
-				return PVRSRV_OK;
-			}
-			case SGX_INIT_OP_ILLEGAL:
-			
-			default:
-			{
-				PVR_DPF((PVR_DBG_ERROR,"SGXRunScript: PC %d: Illegal command: %d", ui32PC, psComm->eOp));
-				return PVRSRV_ERROR_UNKNOWN_SCRIPT_OPERATION;
-			}
-		}
-
-	}
-
-	return PVRSRV_ERROR_UNKNOWN_SCRIPT_OPERATION;
-}
-
-PVRSRV_ERROR SGXInitialise(PVRSRV_SGXDEV_INFO	*psDevInfo,
-						   IMG_BOOL				bHardwareRecovery)
-{
-	PVRSRV_ERROR			eError;
-	PVRSRV_KERNEL_MEM_INFO	*psSGXHostCtlMemInfo = psDevInfo->psKernelSGXHostCtlMemInfo;
-	SGXMKIF_HOST_CTL		*psSGXHostCtl = psSGXHostCtlMemInfo->pvLinAddrKM;
-	static IMG_BOOL			bFirstTime = IMG_TRUE;
-#if defined(PDUMP)
-	IMG_BOOL				bPDumpIsSuspended = PDumpIsSuspended();
-#endif 
-
-#if defined(SGX_FEATURE_MP)
-	
-#else
-	SGXInitClocks(psDevInfo, PDUMP_FLAGS_CONTINUOUS);
-#endif 
-	
-	
-
-	PDUMPCOMMENTWITHFLAGS(PDUMP_FLAGS_CONTINUOUS, "SGX initialisation script part 1\n");
-	eError = SGXRunScript(psDevInfo, psDevInfo->sScripts.asInitCommandsPart1, SGX_MAX_INIT_COMMANDS);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SGXInitialise: SGXRunScript (part 1) failed (%d)", eError));
-		return eError;
-	}
-	PDUMPCOMMENTWITHFLAGS(PDUMP_FLAGS_CONTINUOUS, "End of SGX initialisation script part 1\n");
-
-	
-	psDevInfo->ui32NumResets++;
-	SGXReset(psDevInfo, bFirstTime || bHardwareRecovery, PDUMP_FLAGS_CONTINUOUS);
-
-#if defined(EUR_CR_POWER)
-#if defined(SGX531)
-	
-
-
-
-
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_POWER, 1);
-	PDUMPREG(SGX_PDUMPREG_NAME, EUR_CR_POWER, 1);
-#else
-	
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_POWER, 0);
-	PDUMPREG(SGX_PDUMPREG_NAME, EUR_CR_POWER, 0);
-#endif
-#endif
-
-	
-	*psDevInfo->pui32KernelCCBEventKicker = 0;
-#if defined(PDUMP)
-	if (!bPDumpIsSuspended)
-	{
-		psDevInfo->ui32KernelCCBEventKickerDumpVal = 0;
-		PDUMPMEM(&psDevInfo->ui32KernelCCBEventKickerDumpVal,
-				 psDevInfo->psKernelCCBEventKickerMemInfo, 0,
-				 sizeof(*psDevInfo->pui32KernelCCBEventKicker), PDUMP_FLAGS_CONTINUOUS,
-				 MAKEUNIQUETAG(psDevInfo->psKernelCCBEventKickerMemInfo));
-	}
-#endif 
-
-	
-
-	PDUMPCOMMENTWITHFLAGS(PDUMP_FLAGS_CONTINUOUS, "SGX initialisation script part 2\n");
-	eError = SGXRunScript(psDevInfo, psDevInfo->sScripts.asInitCommandsPart2, SGX_MAX_INIT_COMMANDS);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SGXInitialise: SGXRunScript (part 2) failed (%d)", eError));
-		return eError;
-	}
-	PDUMPCOMMENTWITHFLAGS(PDUMP_FLAGS_CONTINUOUS, "End of SGX initialisation script part 2\n");
-
-	
-	psSGXHostCtl->ui32HostClock = OSClockus();
-
-	psSGXHostCtl->ui32InitStatus = 0;
-#if defined(PDUMP)
-	PDUMPCOMMENTWITHFLAGS(PDUMP_FLAGS_CONTINUOUS,
-						  "Reset the SGX microkernel initialisation status\n");
-	PDUMPMEM(IMG_NULL, psSGXHostCtlMemInfo,
-			 offsetof(SGXMKIF_HOST_CTL, ui32InitStatus),
-			 sizeof(IMG_UINT32), PDUMP_FLAGS_CONTINUOUS,
-			 MAKEUNIQUETAG(psSGXHostCtlMemInfo));
-	PDUMPCOMMENTWITHFLAGS(PDUMP_FLAGS_CONTINUOUS,
-						  "Initialise the microkernel\n");
-#endif 
-
-#if defined(SGX_FEATURE_MULTI_EVENT_KICK)
-	OSWriteMemoryBarrier();
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM,
-				 SGX_MP_CORE_SELECT(EUR_CR_EVENT_KICK2, 0),
-				 EUR_CR_EVENT_KICK2_NOW_MASK);
-#else
-	*psDevInfo->pui32KernelCCBEventKicker = (*psDevInfo->pui32KernelCCBEventKicker + 1) & 0xFF;
-	OSWriteMemoryBarrier();
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM,
-				 SGX_MP_CORE_SELECT(EUR_CR_EVENT_KICK, 0),
-				 EUR_CR_EVENT_KICK_NOW_MASK);
-#endif 
-
-	OSMemoryBarrier();
-
-#if defined(PDUMP)
-	
-
-	if (!bPDumpIsSuspended)
-	{
-#if defined(SGX_FEATURE_MULTI_EVENT_KICK)
-		PDUMPREG(SGX_PDUMPREG_NAME, SGX_MP_CORE_SELECT(EUR_CR_EVENT_KICK2, 0), EUR_CR_EVENT_KICK2_NOW_MASK);
-#else
-		psDevInfo->ui32KernelCCBEventKickerDumpVal = 1;
-		PDUMPCOMMENTWITHFLAGS(PDUMP_FLAGS_CONTINUOUS,
-							  "First increment of the SGX event kicker value\n");
-		PDUMPMEM(&psDevInfo->ui32KernelCCBEventKickerDumpVal,
-				 psDevInfo->psKernelCCBEventKickerMemInfo,
-				 0,
-				 sizeof(IMG_UINT32),
-				 PDUMP_FLAGS_CONTINUOUS,
-				 MAKEUNIQUETAG(psDevInfo->psKernelCCBEventKickerMemInfo));
-		PDUMPREG(SGX_PDUMPREG_NAME, SGX_MP_CORE_SELECT(EUR_CR_EVENT_KICK, 0), EUR_CR_EVENT_KICK_NOW_MASK);
-#endif 
-	}
-#endif 
-
-#if !defined(NO_HARDWARE)
-	
-
-	if (PollForValueKM(&psSGXHostCtl->ui32InitStatus,
-					   PVRSRV_USSE_EDM_INIT_COMPLETE,
-					   PVRSRV_USSE_EDM_INIT_COMPLETE,
-					   MAX_HW_TIME_US,
-					   MAX_HW_TIME_US/WAIT_TRY_COUNT,
-					   IMG_FALSE) != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXInitialise: Wait for uKernel initialisation failed"));
-		#if !defined(FIX_HW_BRN_23281)
-		PVR_DBG_BREAK;
-		#endif 
-		return PVRSRV_ERROR_RETRY;
-	}
-#endif 
-
-#if defined(PDUMP)
-	PDUMPCOMMENTWITHFLAGS(PDUMP_FLAGS_CONTINUOUS,
-						  "Wait for the SGX microkernel initialisation to complete");
-	PDUMPMEMPOL(psSGXHostCtlMemInfo,
-				offsetof(SGXMKIF_HOST_CTL, ui32InitStatus),
-				PVRSRV_USSE_EDM_INIT_COMPLETE,
-				PVRSRV_USSE_EDM_INIT_COMPLETE,
-				PDUMP_POLL_OPERATOR_EQUAL,
-				PDUMP_FLAGS_CONTINUOUS,
-				MAKEUNIQUETAG(psSGXHostCtlMemInfo));
-#endif 
-
-#if defined(FIX_HW_BRN_22997) && defined(FIX_HW_BRN_23030) && defined(SGX_FEATURE_HOST_PORT)
-	
-
-
-	WorkaroundBRN22997ReadHostPort(psDevInfo);
-#endif 
-
-	PVR_ASSERT(psDevInfo->psKernelCCBCtl->ui32ReadOffset == psDevInfo->psKernelCCBCtl->ui32WriteOffset);
-
-	bFirstTime = IMG_FALSE;
-	
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR SGXDeinitialise(IMG_HANDLE hDevCookie)
-
-{
-	PVRSRV_SGXDEV_INFO	*psDevInfo = (PVRSRV_SGXDEV_INFO *) hDevCookie;
-	PVRSRV_ERROR		eError;
-
-	
-	if (psDevInfo->pvRegsBaseKM == IMG_NULL)
-	{
-		return PVRSRV_OK;
-	}
-
-	eError = SGXRunScript(psDevInfo, psDevInfo->sScripts.asDeinitCommands, SGX_MAX_DEINIT_COMMANDS);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SGXDeinitialise: SGXRunScript failed (%d)", eError));
-		return eError;
-	}
-
-	return PVRSRV_OK;
-}
-
-
-static PVRSRV_ERROR DevInitSGXPart1 (IMG_VOID *pvDeviceNode)
-{
-	IMG_HANDLE hDevMemHeap = IMG_NULL;
-	PVRSRV_SGXDEV_INFO	*psDevInfo;
-	IMG_HANDLE		hKernelDevMemContext;
-	IMG_DEV_PHYADDR		sPDDevPAddr;
-	IMG_UINT32		i;
-	PVRSRV_DEVICE_NODE  *psDeviceNode = (PVRSRV_DEVICE_NODE *)pvDeviceNode;
-	DEVICE_MEMORY_HEAP_INFO *psDeviceMemoryHeap = psDeviceNode->sDevMemoryInfo.psDeviceMemoryHeap;
-	PVRSRV_ERROR		eError;
-
-	
-	PDUMPCOMMENT("SGX Core Version Information: %s", SGX_CORE_FRIENDLY_NAME);
-	
-	#if defined(SGX_FEATURE_MP)
-	#if !defined(SGX_FEATURE_MP_PLUS)
-	PDUMPCOMMENT("SGX Multi-processor: %d cores", SGX_FEATURE_MP_CORE_COUNT);
-	#else
-	PDUMPCOMMENT("SGX Multi-processor: %d TA cores, %d 3D cores", SGX_FEATURE_MP_CORE_COUNT_TA, SGX_FEATURE_MP_CORE_COUNT_3D);
-	#endif
-	#endif 
-
-#if (SGX_CORE_REV == 0)
-	PDUMPCOMMENT("SGX Core Revision Information: head RTL");
-#else
-	PDUMPCOMMENT("SGX Core Revision Information: %d", SGX_CORE_REV);
-#endif
-
-	#if defined(SGX_FEATURE_SYSTEM_CACHE)
-	PDUMPCOMMENT("SGX System Level Cache is present\r\n");
-	#if defined(SGX_BYPASS_SYSTEM_CACHE)
-	PDUMPCOMMENT("SGX System Level Cache is bypassed\r\n");
-	#endif 
-	#endif 
-
-	PDUMPCOMMENT("SGX Initialisation Part 1");
-
-	
-	if(OSAllocMem( PVRSRV_OS_NON_PAGEABLE_HEAP,
-					 sizeof(PVRSRV_SGXDEV_INFO),
-					 (IMG_VOID **)&psDevInfo, IMG_NULL,
-					 "SGX Device Info") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"DevInitSGXPart1 : Failed to alloc memory for DevInfo"));
-		return (PVRSRV_ERROR_OUT_OF_MEMORY);
-	}
-	OSMemSet (psDevInfo, 0, sizeof(PVRSRV_SGXDEV_INFO));
-
-	
-	psDevInfo->eDeviceType 		= DEV_DEVICE_TYPE;
-	psDevInfo->eDeviceClass 	= DEV_DEVICE_CLASS;
-
-	
-	psDeviceNode->pvDevice = (IMG_PVOID)psDevInfo;
-
-	
-	psDevInfo->pvDeviceMemoryHeap = (IMG_VOID*)psDeviceMemoryHeap;
-
-	
-	hKernelDevMemContext = BM_CreateContext(psDeviceNode,
-											&sPDDevPAddr,
-											IMG_NULL,
-											IMG_NULL);
-	if (hKernelDevMemContext == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"DevInitSGXPart1: Failed BM_CreateContext"));
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-
-	psDevInfo->sKernelPDDevPAddr = sPDDevPAddr;
-
-	
-	for(i=0; i<psDeviceNode->sDevMemoryInfo.ui32HeapCount; i++)
-	{
-		switch(psDeviceMemoryHeap[i].DevMemHeapType)
-		{
-			case DEVICE_MEMORY_HEAP_KERNEL:
-			case DEVICE_MEMORY_HEAP_SHARED:
-			case DEVICE_MEMORY_HEAP_SHARED_EXPORTED:
-			{
-				
-				if (psDeviceMemoryHeap[i].ui32HeapSize > 0)
-				{
-					hDevMemHeap = BM_CreateHeap (hKernelDevMemContext,
-												&psDeviceMemoryHeap[i]);
-					
-
-
-					psDeviceMemoryHeap[i].hDevMemHeap = hDevMemHeap;
-				}
-				break;
-			}
-		}
-	}
-#if defined(PDUMP)
-	if(hDevMemHeap)
-	{
-		
-		psDevInfo->sMMUAttrib = *((BM_HEAP*)hDevMemHeap)->psMMUAttrib;
-	}
-#endif
-	eError = MMU_BIFResetPDAlloc(psDevInfo);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"DevInitSGX : Failed to alloc memory for BIF reset"));
-		return eError;
-	}
-
-	return PVRSRV_OK;
-}
-
-IMG_EXPORT
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR SGXGetInfoForSrvinitKM(IMG_HANDLE hDevHandle, PVRSRV_HEAP_INFO_KM *pasHeapInfo, IMG_DEV_PHYADDR *psPDDevPAddr)
-#else
-PVRSRV_ERROR SGXGetInfoForSrvinitKM(IMG_HANDLE hDevHandle, SGX_BRIDGE_INFO_FOR_SRVINIT *psInitInfo)
-#endif
-{
-	PVRSRV_DEVICE_NODE	*psDeviceNode;
-	PVRSRV_SGXDEV_INFO	*psDevInfo;
-	PVRSRV_ERROR		eError;
-
-	PDUMPCOMMENT("SGXGetInfoForSrvinit");
-
-	psDeviceNode = (PVRSRV_DEVICE_NODE *)hDevHandle;
-	psDevInfo = (PVRSRV_SGXDEV_INFO *)psDeviceNode->pvDevice;
-
-#if defined (SUPPORT_SID_INTERFACE)
-	*psPDDevPAddr = psDevInfo->sKernelPDDevPAddr;
-
-	eError = PVRSRVGetDeviceMemHeapsKM(hDevHandle, pasHeapInfo);
-#else
-	psInitInfo->sPDDevPAddr = psDevInfo->sKernelPDDevPAddr;
-
-	eError = PVRSRVGetDeviceMemHeapsKM(hDevHandle, &psInitInfo->asHeapInfo[0]);
-#endif
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SGXGetInfoForSrvinit: PVRSRVGetDeviceMemHeapsKM failed (%d)", eError));
-		return eError;
-	}
-
-	return eError;
-}
-
-IMG_EXPORT
-PVRSRV_ERROR DevInitSGXPart2KM (PVRSRV_PER_PROCESS_DATA *psPerProc,
-                                IMG_HANDLE hDevHandle,
-#if defined (SUPPORT_SID_INTERFACE)
-                                SGX_BRIDGE_INIT_INFO_KM *psInitInfo)
-#else
-                                SGX_BRIDGE_INIT_INFO *psInitInfo)
-#endif
-{
-	PVRSRV_DEVICE_NODE		*psDeviceNode;
-	PVRSRV_SGXDEV_INFO		*psDevInfo;
-	PVRSRV_ERROR			eError;
-	SGX_DEVICE_MAP			*psSGXDeviceMap;
-	PVRSRV_DEV_POWER_STATE	eDefaultPowerState;
-
-	PDUMPCOMMENT("SGX Initialisation Part 2");
-
-	psDeviceNode = (PVRSRV_DEVICE_NODE *)hDevHandle;
-	psDevInfo = (PVRSRV_SGXDEV_INFO *)psDeviceNode->pvDevice;
-
-	
-
-	eError = InitDevInfo(psPerProc, psDeviceNode, psInitInfo);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"DevInitSGXPart2KM: Failed to load EDM program"));
-		goto failed_init_dev_info;
-	}
-
-
-	eError = SysGetDeviceMemoryMap(PVRSRV_DEVICE_TYPE_SGX,
-									(IMG_VOID**)&psSGXDeviceMap);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"DevInitSGXPart2KM: Failed to get device memory map!"));
-		return PVRSRV_ERROR_INIT_FAILURE;
-	}
-
-	
-	if (psSGXDeviceMap->pvRegsCpuVBase)
-	{
-		psDevInfo->pvRegsBaseKM = psSGXDeviceMap->pvRegsCpuVBase;
-	}
-	else
-	{
-		
-		psDevInfo->pvRegsBaseKM = OSMapPhysToLin(psSGXDeviceMap->sRegsCpuPBase,
-											   psSGXDeviceMap->ui32RegsSize,
-											   PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-											   IMG_NULL);
-		if (!psDevInfo->pvRegsBaseKM)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"DevInitSGXPart2KM: Failed to map in regs\n"));
-			return PVRSRV_ERROR_BAD_MAPPING;
-		}
-	}
-	psDevInfo->ui32RegSize = psSGXDeviceMap->ui32RegsSize;
-	psDevInfo->sRegsPhysBase = psSGXDeviceMap->sRegsSysPBase;
-
-
-#if defined(SGX_FEATURE_HOST_PORT)
-	if (psSGXDeviceMap->ui32Flags & SGX_HOSTPORT_PRESENT)
-	{
-		
-		psDevInfo->pvHostPortBaseKM = OSMapPhysToLin(psSGXDeviceMap->sHPCpuPBase,
-									  	           psSGXDeviceMap->ui32HPSize,
-									  	           PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-									  	           IMG_NULL);
-		if (!psDevInfo->pvHostPortBaseKM)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"DevInitSGXPart2KM: Failed to map in host port\n"));
-			return PVRSRV_ERROR_BAD_MAPPING;
-		}
-		psDevInfo->ui32HPSize = psSGXDeviceMap->ui32HPSize;
-		psDevInfo->sHPSysPAddr = psSGXDeviceMap->sHPSysPBase;
-	}
-#endif
-
-#if defined (SYS_USING_INTERRUPTS)
-
-	
-	psDeviceNode->pvISRData = psDeviceNode;
-	
-	PVR_ASSERT(psDeviceNode->pfnDeviceISR == SGX_ISRHandler);
-
-#endif 
-
-	
-	psDevInfo->psSGXHostCtl->ui32PowerStatus |= PVRSRV_USSE_EDM_POWMAN_NO_WORK;
-	eDefaultPowerState = PVRSRV_DEV_POWER_STATE_OFF;
-	
-	eError = PVRSRVRegisterPowerDevice (psDeviceNode->sDevId.ui32DeviceIndex,
-										&SGXPrePowerState, &SGXPostPowerState,
-										&SGXPreClockSpeedChange, &SGXPostClockSpeedChange,
-										(IMG_HANDLE)psDeviceNode,
-										PVRSRV_DEV_POWER_STATE_OFF,
-										eDefaultPowerState);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"DevInitSGXPart2KM: failed to register device with power manager"));
-		return eError;
-	}
-
-#if defined(FIX_HW_BRN_22997) && defined(FIX_HW_BRN_23030) && defined(SGX_FEATURE_HOST_PORT)
-	eError = WorkaroundBRN22997Alloc(psDeviceNode);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SGXInitialise : Failed to alloc memory for BRN22997 workaround"));
-		return eError;
-	}
-#endif 
-
-#if defined(SUPPORT_EXTERNAL_SYSTEM_CACHE)
-	
-	psDevInfo->ui32ExtSysCacheRegsSize = psSGXDeviceMap->ui32ExtSysCacheRegsSize;
-	psDevInfo->sExtSysCacheRegsDevPBase = psSGXDeviceMap->sExtSysCacheRegsDevPBase;
-	eError = MMU_MapExtSystemCacheRegs(psDeviceNode);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SGXInitialise : Failed to map external system cache registers"));
-		return eError;
-	}
-#endif 
-
-	
-
-	OSMemSet(psDevInfo->psKernelCCB, 0, sizeof(PVRSRV_SGX_KERNEL_CCB));
-	OSMemSet(psDevInfo->psKernelCCBCtl, 0, sizeof(PVRSRV_SGX_CCB_CTL));
-	OSMemSet(psDevInfo->pui32KernelCCBEventKicker, 0, sizeof(*psDevInfo->pui32KernelCCBEventKicker));
-	PDUMPCOMMENT("Initialise Kernel CCB");
-	PDUMPMEM(IMG_NULL, psDevInfo->psKernelCCBMemInfo, 0, sizeof(PVRSRV_SGX_KERNEL_CCB), PDUMP_FLAGS_CONTINUOUS, MAKEUNIQUETAG(psDevInfo->psKernelCCBMemInfo));
-	PDUMPCOMMENT("Initialise Kernel CCB Control");
-	PDUMPMEM(IMG_NULL, psDevInfo->psKernelCCBCtlMemInfo, 0, sizeof(PVRSRV_SGX_CCB_CTL), PDUMP_FLAGS_CONTINUOUS, MAKEUNIQUETAG(psDevInfo->psKernelCCBCtlMemInfo));
-	PDUMPCOMMENT("Initialise Kernel CCB Event Kicker");
-	PDUMPMEM(IMG_NULL, psDevInfo->psKernelCCBEventKickerMemInfo, 0, sizeof(*psDevInfo->pui32KernelCCBEventKicker), PDUMP_FLAGS_CONTINUOUS, MAKEUNIQUETAG(psDevInfo->psKernelCCBEventKickerMemInfo));
-
-	return PVRSRV_OK;
-
-failed_init_dev_info:
-	return eError;
-}
-
-static PVRSRV_ERROR DevDeInitSGX (IMG_VOID *pvDeviceNode)
-{
-	PVRSRV_DEVICE_NODE			*psDeviceNode = (PVRSRV_DEVICE_NODE *)pvDeviceNode;
-	PVRSRV_SGXDEV_INFO			*psDevInfo = (PVRSRV_SGXDEV_INFO*)psDeviceNode->pvDevice;
-	PVRSRV_ERROR				eError;
-	IMG_UINT32					ui32Heap;
-	DEVICE_MEMORY_HEAP_INFO		*psDeviceMemoryHeap;
-	SGX_DEVICE_MAP				*psSGXDeviceMap;
-
-	if (!psDevInfo)
-	{
-		
-		PVR_DPF((PVR_DBG_ERROR,"DevDeInitSGX: Null DevInfo"));
-		return PVRSRV_OK;
-	}
-
-#if defined(SUPPORT_HW_RECOVERY)
-	if (psDevInfo->hTimer)
-	{
-		eError = OSRemoveTimer(psDevInfo->hTimer);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"DevDeInitSGX: Failed to remove timer"));
-			return 	eError;
-		}
-		psDevInfo->hTimer = IMG_NULL;
-	}
-#endif 
-
-#if defined(SUPPORT_EXTERNAL_SYSTEM_CACHE)
-	
-	eError = MMU_UnmapExtSystemCacheRegs(psDeviceNode);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"DevDeInitSGX: Failed to unmap ext system cache registers"));
-		return eError;
-	}
-#endif 
-
-#if defined(FIX_HW_BRN_22997) && defined(FIX_HW_BRN_23030) && defined(SGX_FEATURE_HOST_PORT)
-	WorkaroundBRN22997Free(psDeviceNode);
-#endif 
-
-	MMU_BIFResetPDFree(psDevInfo);
-
-	
-
-	DeinitDevInfo(psDevInfo);
-
-	
-	psDeviceMemoryHeap = (DEVICE_MEMORY_HEAP_INFO *)psDevInfo->pvDeviceMemoryHeap;
-	for(ui32Heap=0; ui32Heap<psDeviceNode->sDevMemoryInfo.ui32HeapCount; ui32Heap++)
-	{
-		switch(psDeviceMemoryHeap[ui32Heap].DevMemHeapType)
-		{
-			case DEVICE_MEMORY_HEAP_KERNEL:
-			case DEVICE_MEMORY_HEAP_SHARED:
-			case DEVICE_MEMORY_HEAP_SHARED_EXPORTED:
-			{
-				if (psDeviceMemoryHeap[ui32Heap].hDevMemHeap != IMG_NULL)
-				{
-					BM_DestroyHeap(psDeviceMemoryHeap[ui32Heap].hDevMemHeap);
-				}
-				break;
-			}
-		}
-	}
-
-	
-	eError = BM_DestroyContext(psDeviceNode->sDevMemoryInfo.pBMKernelContext, IMG_NULL);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"DevDeInitSGX : Failed to destroy kernel context"));
-		return eError;
-	}
-
-	
-	eError = PVRSRVRemovePowerDevice (((PVRSRV_DEVICE_NODE*)pvDeviceNode)->sDevId.ui32DeviceIndex);
-	if (eError != PVRSRV_OK)
-	{
-		return eError;
-	}
-
-	eError = SysGetDeviceMemoryMap(PVRSRV_DEVICE_TYPE_SGX,
-									(IMG_VOID**)&psSGXDeviceMap);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"DevDeInitSGX: Failed to get device memory map!"));
-		return eError;
-	}
-
-	
-	if (!psSGXDeviceMap->pvRegsCpuVBase)
-	{
-		
-		if (psDevInfo->pvRegsBaseKM != IMG_NULL)
-		{
-			OSUnMapPhysToLin(psDevInfo->pvRegsBaseKM,
-							 psDevInfo->ui32RegSize,
-							 PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-							 IMG_NULL);
-		}
-	}
-
-#if defined(SGX_FEATURE_HOST_PORT)
-	if (psSGXDeviceMap->ui32Flags & SGX_HOSTPORT_PRESENT)
-	{
-		
-		if (psDevInfo->pvHostPortBaseKM != IMG_NULL)
-		{
-			OSUnMapPhysToLin(psDevInfo->pvHostPortBaseKM,
-						   psDevInfo->ui32HPSize,
-						   PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-						   IMG_NULL);
-		}
-	}
-#endif 
-
-
-	
-	OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-				sizeof(PVRSRV_SGXDEV_INFO),
-				psDevInfo,
-				0);
-
-	psDeviceNode->pvDevice = IMG_NULL;
-
-	if (psDeviceMemoryHeap != IMG_NULL)
-	{
-	
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-				sizeof(DEVICE_MEMORY_HEAP_INFO) * SGX_MAX_HEAP_ID,
-				psDeviceMemoryHeap,
-				0);
-	}
-
-	return PVRSRV_OK;
-}
-
-static IMG_VOID SGXDumpRegDecode(IMG_UINT32 addr, IMG_UINT32 val)
-{
-	switch (addr) {
-	case EUR_CR_EVENT_STATUS:
-		PVR_LOG(("\t(master_irq: %s, timer_irq: %s, ta_dpm_fault: %s, zls_oom: %s, "
-			 "ta_mem_free: %s, isp_end_tile: %s, dpm_initend: %s, zls_csw_finish: %s, "
-			 "pbe_end_render: %s, isp_vis_fail: %s, isp_break: %s, sw_event %s, "
-			 "ta_finish: %s, ta_terminate: %s, tpc_clear: %s, tpc_flush: %s, "
-			 "dpm_clear: %s, dpm_load: %s, dpm_store: %s, dpm_state_clear: %s, "
-			 "dpm_state_load: %s, dpm_state_store: %s, dpm_mem_thresh: %s, gbl_oom: %s, "
-			 "mt_oom: %s, 3d_mem_free: %s)",
-			 val & EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS_TIMER_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS_TA_DPM_FAULT_MASK ? "yes": "no",
-			 val & EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_MASK ? "yes" : "no",
-			 val & EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_MASK ? "yes" : "no",
-			 val & EUR_CR_EVENT_STATUS_ISP_END_TILE_MASK ?"yes":"no",
-			 val & EUR_CR_EVENT_STATUS_DPM_INITEND_MASK ?"yes":"no",
-			 val & EUR_CR_EVENT_STATUS_ISP2_ZLS_CSW_FINISHED_MASK ?"yes":"no",
-			 val & EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_MASK ?"yes":"no",
-			 val & EUR_CR_EVENT_STATUS_ISP_VISIBILITY_FAIL_MASK ?"yes":"no",
-			 val & EUR_CR_EVENT_STATUS_BREAKPOINT_MASK ?"yes":"no",
-			 val & EUR_CR_EVENT_STATUS_SW_EVENT_MASK ?"yes":"no",
-			 val & EUR_CR_EVENT_STATUS_TA_FINISHED_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS_TA_TERMINATE_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS_TPC_CLEAR_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS_TPC_FLUSH_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS_DPM_STATE_STORE_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_MASK ? "yes":"no",
-		       	 val & EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_MASK ? "yes":"no"));
-		break;
-	case EUR_CR_EVENT_STATUS2:
-		PVR_LOG(("\t(mte_flush: %s, vdm_load: %s, vdm_kicked: %s, otpm_mem_clear: %s,"
-			 "otpm_flush: %s, dcu_invalid: %s, gsg_flush: %s, gsg_load: %s, "
-			 "lockup_ta: %s, lockup_3d: %s, partial_deadlock: %s, dpm_dhost_free: %s"
-			 "dpm_host_free: %s, dpm_3d_free: %s, dpm_ta_free: %s)",
-		         val & EUR_CR_EVENT_STATUS2_MTE_STATE_FLUSHED_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS2_VDM_CONTEXT_LOAD_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS2_VDM_TASK_KICKED_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS2_OTPM_MEM_CLEARED_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS2_OTPM_FLUSHED_INV_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS2_DCU_INVALCOMPLETE_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS2_GSG_FLUSHED_MASK ? "yes":"no",
-		         val & EUR_CR_EVENT_STATUS2_GSG_LOADED_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS2_TRIG_TA_MASK ? "yes":"no",
-		         val & EUR_CR_EVENT_STATUS2_TRIG_3D_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS2_TRIG_DL_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS2_DPM_DHOST_FREE_LOAD_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS2_DPM_HOST_FREE_LOAD_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_MASK ? "yes":"no",
-			 val & EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_MASK ? "yes":"no"));
-		break;
-	}
-}
-
-static IMG_VOID SGXDumpDebugReg (PVRSRV_SGXDEV_INFO	*psDevInfo,
-								 IMG_UINT32			ui32CoreNum,
-								 IMG_CHAR			*pszName,
-								 IMG_UINT32			ui32RegAddr)
-{
-	IMG_UINT32	ui32RegVal;
-	ui32RegVal = OSReadHWReg(psDevInfo->pvRegsBaseKM, SGX_MP_CORE_SELECT(ui32RegAddr, ui32CoreNum));
-	PVR_LOG(("(P%u) %s%08X", ui32CoreNum, pszName, ui32RegVal));
-
-	SGXDumpRegDecode(ui32RegAddr, ui32RegVal);
-}
-
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
-#if defined(PVRSRV_DUMP_MK_TRACE)
-#include "sgx_ukernel_status_codes.h"
-
-static char *SGXMKTDecodeString(IMG_UINT32 m)
-{
-	int i;
-
-	for (i = 0; i < MKTCSIZE; i++) {
-		if (m == MKTDecoder[i].m)
-			return MKTDecoder[i].s;
-	}
-	return NULL;
-}
-#endif
-#endif
-
-static IMG_VOID SGXDumpDebugInfo (PVRSRV_SGXDEV_INFO	*psDevInfo,
-								  IMG_BOOL				bDumpSGXRegs)
-{
-	IMG_UINT32	ui32CoreNum;
-
-	PVR_LOG(("SGX debug (%s)", PVRVERSION_STRING));
-
-	if (bDumpSGXRegs)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SGX Register Base Address (Linear):   0x%08X", (IMG_UINTPTR_T)psDevInfo->pvRegsBaseKM));
-		PVR_DPF((PVR_DBG_ERROR,"SGX Register Base Address (Physical): 0x%08X", psDevInfo->sRegsPhysBase.uiAddr));
-
-		SGXDumpDebugReg(psDevInfo, 0, "EUR_CR_CORE_ID:          ", EUR_CR_CORE_ID);
-		SGXDumpDebugReg(psDevInfo, 0, "EUR_CR_CORE_REVISION:    ", EUR_CR_CORE_REVISION);
-
-		for (ui32CoreNum = 0; ui32CoreNum < SGX_FEATURE_MP_CORE_COUNT_3D; ui32CoreNum++)
-		{
-			
-			SGXDumpDebugReg(psDevInfo, ui32CoreNum, "EUR_CR_EVENT_STATUS:     ", EUR_CR_EVENT_STATUS);
-			SGXDumpDebugReg(psDevInfo, ui32CoreNum, "EUR_CR_EVENT_STATUS2:    ", EUR_CR_EVENT_STATUS2);
-			SGXDumpDebugReg(psDevInfo, ui32CoreNum, "EUR_CR_BIF_CTRL:         ", EUR_CR_BIF_CTRL);
-		#if defined(EUR_CR_BIF_BANK0)
-			SGXDumpDebugReg(psDevInfo, ui32CoreNum, "EUR_CR_BIF_BANK0:        ", EUR_CR_BIF_BANK0);
-		#endif
-			SGXDumpDebugReg(psDevInfo, ui32CoreNum, "EUR_CR_BIF_INT_STAT:     ", EUR_CR_BIF_INT_STAT);
-			SGXDumpDebugReg(psDevInfo, ui32CoreNum, "EUR_CR_BIF_FAULT:        ", EUR_CR_BIF_FAULT);
-			SGXDumpDebugReg(psDevInfo, ui32CoreNum, "EUR_CR_BIF_MEM_REQ_STAT: ", EUR_CR_BIF_MEM_REQ_STAT);
-			SGXDumpDebugReg(psDevInfo, ui32CoreNum, "EUR_CR_CLKGATECTL:       ", EUR_CR_CLKGATECTL);
-		#if defined(EUR_CR_PDS_PC_BASE)
-			SGXDumpDebugReg(psDevInfo, ui32CoreNum, "EUR_CR_PDS_PC_BASE:      ", EUR_CR_PDS_PC_BASE);
-		#endif
-		}
-	}
-
-	
-
-	QueueDumpDebugInfo();
-
-	{
-		
-
-		SGXMKIF_HOST_CTL	*psSGXHostCtl = psDevInfo->psSGXHostCtl;
-		IMG_UINT32			*pui32HostCtlBuffer = (IMG_UINT32 *)psSGXHostCtl;
-		IMG_UINT32			ui32LoopCounter;
-
-		if (psSGXHostCtl->ui32AssertFail != 0)
-		{
-			PVR_LOG(("SGX Microkernel assert fail: 0x%08X", psSGXHostCtl->ui32AssertFail));
-			psSGXHostCtl->ui32AssertFail = 0;
-		}
-
-		PVR_LOG(("SGX Host control:"));
-
-		for (ui32LoopCounter = 0;
-			 ui32LoopCounter < sizeof(*psDevInfo->psSGXHostCtl) / sizeof(*pui32HostCtlBuffer);
-			 ui32LoopCounter += 4)
-		{
-			PVR_LOG(("\t(HC-%X) 0x%08X 0x%08X 0x%08X 0x%08X", ui32LoopCounter * sizeof(*pui32HostCtlBuffer),
-					pui32HostCtlBuffer[ui32LoopCounter + 0], pui32HostCtlBuffer[ui32LoopCounter + 1],
-					pui32HostCtlBuffer[ui32LoopCounter + 2], pui32HostCtlBuffer[ui32LoopCounter + 3]));
-		}
-	}
-
-	{
-		
-
-		IMG_UINT32	*pui32TA3DCtlBuffer = psDevInfo->psKernelSGXTA3DCtlMemInfo->pvLinAddrKM;
-		IMG_UINT32	ui32LoopCounter;
-
-		PVR_LOG(("SGX TA/3D control:"));
-
-		for (ui32LoopCounter = 0;
-			 ui32LoopCounter < psDevInfo->psKernelSGXTA3DCtlMemInfo->uAllocSize / sizeof(*pui32TA3DCtlBuffer);
-			 ui32LoopCounter += 4)
-		{
-			PVR_LOG(("\t(T3C-%X) 0x%08X 0x%08X 0x%08X 0x%08X", ui32LoopCounter * sizeof(*pui32TA3DCtlBuffer),
-					pui32TA3DCtlBuffer[ui32LoopCounter + 0], pui32TA3DCtlBuffer[ui32LoopCounter + 1],
-					pui32TA3DCtlBuffer[ui32LoopCounter + 2], pui32TA3DCtlBuffer[ui32LoopCounter + 3]));
-		}
-	}
-
-	#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
-	{
-		IMG_UINT32	*pui32MKTraceBuffer = psDevInfo->psKernelEDMStatusBufferMemInfo->pvLinAddrKM;
-		IMG_UINT32	ui32LastStatusCode, ui32WriteOffset;
-
-		ui32LastStatusCode = *pui32MKTraceBuffer;
-		pui32MKTraceBuffer++;
-		ui32WriteOffset = *pui32MKTraceBuffer;
-		pui32MKTraceBuffer++;
-
-		PVR_LOG(("Last SGX microkernel status code: %08X", ui32LastStatusCode));
-
-		#if defined(PVRSRV_DUMP_MK_TRACE)
-		
-
-		{
-			IMG_UINT32	ui32LoopCounter;
-
-			for (ui32LoopCounter = 0;
-				 ui32LoopCounter < SGXMK_TRACE_BUFFER_SIZE;
-				 ui32LoopCounter++)
-			{
-				IMG_UINT32	*pui32BufPtr;
-				pui32BufPtr = pui32MKTraceBuffer +
-								(((ui32WriteOffset + ui32LoopCounter) % SGXMK_TRACE_BUFFER_SIZE) * 4);
-				PVR_LOG(("\t(MKT-%X) %08X %08X %08X %08X (%s)", ui32LoopCounter,
-						 pui32BufPtr[2], pui32BufPtr[3], pui32BufPtr[1], pui32BufPtr[0], SGXMKTDecodeString(pui32BufPtr[0])));
-			}
-		}
-		#endif 
-	}
-	#endif 
-
-	{
-		
-
-		PVR_LOG(("SGX Kernel CCB WO:0x%X RO:0x%X",
-				psDevInfo->psKernelCCBCtl->ui32WriteOffset,
-				psDevInfo->psKernelCCBCtl->ui32ReadOffset));
-
-		#if defined(PVRSRV_DUMP_KERNEL_CCB)
-		{
-			IMG_UINT32	ui32LoopCounter;
-
-			for (ui32LoopCounter = 0;
-				 ui32LoopCounter < sizeof(psDevInfo->psKernelCCB->asCommands) /
-				 					sizeof(psDevInfo->psKernelCCB->asCommands[0]);
-				 ui32LoopCounter++)
-			{
-				SGXMKIF_COMMAND	*psCommand = &psDevInfo->psKernelCCB->asCommands[ui32LoopCounter];
-
-				PVR_LOG(("\t(KCCB-%X) %08X %08X - %08X %08X %08X %08X", ui32LoopCounter,
-						psCommand->ui32ServiceAddress, psCommand->ui32CacheControl,
-						psCommand->ui32Data[0], psCommand->ui32Data[1],
-						psCommand->ui32Data[2], psCommand->ui32Data[3]));
-			}
-		}
-		#endif 
-	}
-	#if defined (TTRACE)
-	PVRSRVDumpTimeTraceBuffers();
-	#endif
-
-}
-
-
-#if defined(SYS_USING_INTERRUPTS) || defined(SUPPORT_HW_RECOVERY)
-static
-IMG_VOID HWRecoveryResetSGX (PVRSRV_DEVICE_NODE *psDeviceNode,
-							 IMG_UINT32 		ui32Component,
-							 IMG_UINT32			ui32CallerID)
-{
-	PVRSRV_ERROR		eError;
-	PVRSRV_SGXDEV_INFO	*psDevInfo = (PVRSRV_SGXDEV_INFO*)psDeviceNode->pvDevice;
-	SGXMKIF_HOST_CTL	*psSGXHostCtl = (SGXMKIF_HOST_CTL *)psDevInfo->psSGXHostCtl;
-
-	PVR_UNREFERENCED_PARAMETER(ui32Component);
-
-	
-
-	eError = PVRSRVPowerLock(ui32CallerID, IMG_FALSE);
-	if(eError != PVRSRV_OK)
-	{
-		
-
-
-		PVR_DPF((PVR_DBG_WARNING,"HWRecoveryResetSGX: Power transition in progress"));
-		return;
-	}
-
-	psSGXHostCtl->ui32InterruptClearFlags |= PVRSRV_USSE_EDM_INTERRUPT_HWR;
-
-	PVR_LOG(("HWRecoveryResetSGX: SGX Hardware Recovery triggered"));
-
-	SGXDumpDebugInfo(psDeviceNode->pvDevice, IMG_TRUE);
-
-	
-	PDUMPSUSPEND();
-
-	
-#if defined(FIX_HW_BRN_23281)
-	
-	for (eError = PVRSRV_ERROR_RETRY; eError == PVRSRV_ERROR_RETRY;)
-#endif 
-	{
-		eError = SGXInitialise(psDevInfo, IMG_TRUE);
-	}
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"HWRecoveryResetSGX: SGXInitialise failed (%d)", eError));
-	}
-
-	
-	PDUMPRESUME();
-
-	PVRSRVPowerUnlock(ui32CallerID);
-
-	
-	SGXScheduleProcessQueuesKM(psDeviceNode);
-
-	
-	
-	PVRSRVProcessQueues(IMG_TRUE);
-}
-#endif 
-
-
-#if defined(SUPPORT_HW_RECOVERY)
-IMG_VOID SGXOSTimer(IMG_VOID *pvData)
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode = pvData;
-	PVRSRV_SGXDEV_INFO *psDevInfo = psDeviceNode->pvDevice;
-	static IMG_UINT32	ui32EDMTasks = 0;
-	static IMG_UINT32	ui32LockupCounter = 0; 
-	static IMG_UINT32	ui32OpenCLDelayCounter = 0;
-	static IMG_UINT32	ui32NumResets = 0;
-#if defined(FIX_HW_BRN_31093)
-	static IMG_BOOL		bBRN31093Inval = IMG_FALSE;
-#endif
-	IMG_UINT32		ui32CurrentEDMTasks;
-	IMG_UINT32		ui32CurrentOpenCLDelayCounter=0;
-	IMG_BOOL		bLockup = IMG_FALSE;
-	IMG_BOOL		bPoweredDown;
-
-	
-	psDevInfo->ui32TimeStamp++;
-
-#if defined(NO_HARDWARE)
-	bPoweredDown = IMG_TRUE;
-#else
-	bPoweredDown = (SGXIsDevicePowered(psDeviceNode)) ? IMG_FALSE : IMG_TRUE;
-#endif 
-
-	
-	
-	if (bPoweredDown)
-	{
-		ui32LockupCounter = 0;
-	#if defined(FIX_HW_BRN_31093)
-		bBRN31093Inval = IMG_FALSE;
-	#endif
-	}
-	else
-	{
-		
-		ui32CurrentEDMTasks = OSReadHWReg(psDevInfo->pvRegsBaseKM, psDevInfo->ui32EDMTaskReg0);
-		if (psDevInfo->ui32EDMTaskReg1 != 0)
-		{
-			ui32CurrentEDMTasks ^= OSReadHWReg(psDevInfo->pvRegsBaseKM, psDevInfo->ui32EDMTaskReg1);
-		}
-		if ((ui32CurrentEDMTasks == ui32EDMTasks) &&
-			(psDevInfo->ui32NumResets == ui32NumResets))
-		{
-			ui32LockupCounter++;
-			if (ui32LockupCounter == 3)
-			{
-				ui32LockupCounter = 0;
-				ui32CurrentOpenCLDelayCounter = (psDevInfo->psSGXHostCtl)->ui32OpenCLDelayCount;
-				if(0 != ui32CurrentOpenCLDelayCounter)
-				{
-					if(ui32OpenCLDelayCounter != ui32CurrentOpenCLDelayCounter){
-						ui32OpenCLDelayCounter = ui32CurrentOpenCLDelayCounter;
-					}else{
-						ui32OpenCLDelayCounter -= 1;
-						(psDevInfo->psSGXHostCtl)->ui32OpenCLDelayCount = ui32OpenCLDelayCounter;
-					}
-					goto SGX_NoUKernel_LockUp;
-				}
-
-
-	#if defined(FIX_HW_BRN_31093)
-				if (bBRN31093Inval == IMG_FALSE)
-				{
-					
-		#if defined(FIX_HW_BRN_29997)
-					IMG_UINT32	ui32BIFCtrl;
-					
-					ui32BIFCtrl = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL);
-					OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL, ui32BIFCtrl | EUR_CR_BIF_CTRL_PAUSE_MASK);
-					
-					OSWaitus(200 * 1000000 / psDevInfo->ui32CoreClockSpeed);
-		#endif
-					
-					bBRN31093Inval = IMG_TRUE;
-					
-					OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL_INVAL, EUR_CR_BIF_CTRL_INVAL_PTE_MASK);
-					
-					OSWaitus(200 * 1000000 / psDevInfo->ui32CoreClockSpeed);
-						
-		#if defined(FIX_HW_BRN_29997)	
-						
-					OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL, ui32BIFCtrl);
-		#endif
-				}
-				else
-	#endif
-				{
-				PVR_DPF((PVR_DBG_ERROR, "SGXOSTimer() detected SGX lockup (0x%x tasks)", ui32EDMTasks));
-
-					bLockup = IMG_TRUE;
-					(psDevInfo->psSGXHostCtl)->ui32OpenCLDelayCount = 0;
-				}
-			}
-		}
-		else
-		{
-	#if defined(FIX_HW_BRN_31093)
-			bBRN31093Inval = IMG_FALSE;
-	#endif
-			ui32LockupCounter = 0;
-			ui32EDMTasks = ui32CurrentEDMTasks;
-			ui32NumResets = psDevInfo->ui32NumResets;
-		}
-	}
-SGX_NoUKernel_LockUp:
-
-	if (bLockup)
-	{
-		SGXMKIF_HOST_CTL	*psSGXHostCtl = (SGXMKIF_HOST_CTL *)psDevInfo->psSGXHostCtl;
-
-		
-		psSGXHostCtl->ui32HostDetectedLockups ++;
-
-		
-		HWRecoveryResetSGX(psDeviceNode, 0, ISR_ID);
-	}
-}
-#endif 
-
-
-#if defined(SYS_USING_INTERRUPTS)
-
-IMG_BOOL SGX_ISRHandler (IMG_VOID *pvData)
-{
-	IMG_BOOL bInterruptProcessed = IMG_FALSE;
-
-
-	
-	{
-		IMG_UINT32 ui32EventStatus, ui32EventEnable;
-		IMG_UINT32 ui32EventClear = 0;
-#if defined(SGX_FEATURE_DATA_BREAKPOINTS)
-		IMG_UINT32 ui32EventStatus2, ui32EventEnable2;
-#endif		
-		IMG_UINT32 ui32EventClear2 = 0;
-		PVRSRV_DEVICE_NODE *psDeviceNode;
-		PVRSRV_SGXDEV_INFO *psDevInfo;
-
-		
-		if(pvData == IMG_NULL)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "SGX_ISRHandler: Invalid params\n"));
-			return bInterruptProcessed;
-		}
-
-		psDeviceNode = (PVRSRV_DEVICE_NODE *)pvData;
-		psDevInfo = (PVRSRV_SGXDEV_INFO *)psDeviceNode->pvDevice;
-
-		ui32EventStatus = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_EVENT_STATUS);
-		ui32EventEnable = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_EVENT_HOST_ENABLE);
-
-		
-		ui32EventStatus &= ui32EventEnable;
-
-#if defined(SGX_FEATURE_DATA_BREAKPOINTS)
-		ui32EventStatus2 = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_EVENT_STATUS2);
-		ui32EventEnable2 = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_EVENT_HOST_ENABLE2);
-
-		
-		ui32EventStatus2 &= ui32EventEnable2;
-#endif 
-
-		
-
-		if (ui32EventStatus & EUR_CR_EVENT_STATUS_SW_EVENT_MASK)
-		{
-			ui32EventClear |= EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_MASK;
-		}
-
-#if defined(SGX_FEATURE_DATA_BREAKPOINTS)
-		if (ui32EventStatus2 & EUR_CR_EVENT_STATUS2_DATA_BREAKPOINT_UNTRAPPED_MASK)
-		{
-			ui32EventClear2 |= EUR_CR_EVENT_HOST_CLEAR2_DATA_BREAKPOINT_UNTRAPPED_MASK;
-		}
-
-		if (ui32EventStatus2 & EUR_CR_EVENT_STATUS2_DATA_BREAKPOINT_TRAPPED_MASK)
-		{
-			ui32EventClear2 |= EUR_CR_EVENT_HOST_CLEAR2_DATA_BREAKPOINT_TRAPPED_MASK;
-		}
-#endif 
-
-		if (ui32EventClear || ui32EventClear2)
-		{
-			bInterruptProcessed = IMG_TRUE;
-
-			
-			ui32EventClear |= EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_MASK;
-
-			
-			OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_EVENT_HOST_CLEAR, ui32EventClear);
-			OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_EVENT_HOST_CLEAR2, ui32EventClear2);
-		}
-	}
-
-	return bInterruptProcessed;
-}
-
-
-static IMG_VOID SGX_MISRHandler (IMG_VOID *pvData)
-{
-	PVRSRV_DEVICE_NODE	*psDeviceNode = (PVRSRV_DEVICE_NODE *)pvData;
-	PVRSRV_SGXDEV_INFO	*psDevInfo = (PVRSRV_SGXDEV_INFO*)psDeviceNode->pvDevice;
-	SGXMKIF_HOST_CTL	*psSGXHostCtl = (SGXMKIF_HOST_CTL *)psDevInfo->psSGXHostCtl;
-
-	if (((psSGXHostCtl->ui32InterruptFlags & PVRSRV_USSE_EDM_INTERRUPT_HWR) != 0UL) &&
-		((psSGXHostCtl->ui32InterruptClearFlags & PVRSRV_USSE_EDM_INTERRUPT_HWR) == 0UL))
-	{
-		HWRecoveryResetSGX(psDeviceNode, 0, ISR_ID);
-	}
-
-#if defined(OS_SUPPORTS_IN_LISR)
-	if (psDeviceNode->bReProcessDeviceCommandComplete)
-	{
-		SGXScheduleProcessQueuesKM(psDeviceNode);
-	}
-#endif
-
-	SGXTestActivePowerEvent(psDeviceNode, ISR_ID);
-}
-#endif 
-
-
-
-#if defined(SUPPORT_MEMORY_TILING)
-PVRSRV_ERROR SGX_AllocMemTilingRange(PVRSRV_DEVICE_NODE *psDeviceNode,
-										PVRSRV_KERNEL_MEM_INFO	*psMemInfo,
-										IMG_UINT32 ui32TilingStride,
-										IMG_UINT32 *pui32RangeIndex)
-{
-#if defined(SGX_FEATURE_BIF_WIDE_TILING_AND_4K_ADDRESS)
-	PVRSRV_SGXDEV_INFO *psDevInfo = psDeviceNode->pvDevice;
-	IMG_UINT32 i;
-	IMG_UINT32 ui32Start;
-	IMG_UINT32 ui32End;
-	IMG_UINT32 ui32Offset;
-	IMG_UINT32 ui32Val;
-
-	
-	for(i=0; i<10; i++)
-	{
-		if((psDevInfo->ui32MemTilingUsage & (1U << i)) == 0)
-		{
-			
-			psDevInfo->ui32MemTilingUsage |= 1U << i;
-			
-			*pui32RangeIndex = i;
-			goto RangeAllocated;
-		}
-	}
-
-	PVR_DPF((PVR_DBG_ERROR,"SGX_AllocMemTilingRange: all tiling ranges in use"));
-	return PVRSRV_ERROR_EXCEEDED_HW_LIMITS;
-
-RangeAllocated:
-	ui32Offset = EUR_CR_BIF_TILE0 + (i<<2);
-
-	ui32Start = psMemInfo->sDevVAddr.uiAddr;
-	ui32End = ui32Start + psMemInfo->uAllocSize + SGX_MMU_PAGE_SIZE - 1;
-
-	ui32Val = ((ui32TilingStride << EUR_CR_BIF_TILE0_CFG_SHIFT) & EUR_CR_BIF_TILE0_CFG_MASK)
-			| (((ui32End>>20) << EUR_CR_BIF_TILE0_MAX_ADDRESS_SHIFT) & EUR_CR_BIF_TILE0_MAX_ADDRESS_MASK)
-			| (((ui32Start>>20) << EUR_CR_BIF_TILE0_MIN_ADDRESS_SHIFT) & EUR_CR_BIF_TILE0_MIN_ADDRESS_MASK)
-			| (0x8 << EUR_CR_BIF_TILE0_CFG_SHIFT);
-
-	
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, ui32Offset, ui32Val);
-	PDUMPREG(SGX_PDUMPREG_NAME, ui32Offset, ui32Val);
-
-	ui32Offset = EUR_CR_BIF_TILE0_ADDR_EXT + (i<<2);
-
-	ui32Val = (((ui32End>>12) << EUR_CR_BIF_TILE0_ADDR_EXT_MAX_SHIFT) & EUR_CR_BIF_TILE0_ADDR_EXT_MAX_MASK)
-			| (((ui32Start>>12) << EUR_CR_BIF_TILE0_ADDR_EXT_MIN_SHIFT) & EUR_CR_BIF_TILE0_ADDR_EXT_MIN_MASK);
-
-	
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, ui32Offset, ui32Val);
-	PDUMPREG(SGX_PDUMPREG_NAME, ui32Offset, ui32Val);
-
-	return PVRSRV_OK;
-#else
-	PVR_UNREFERENCED_PARAMETER(psDeviceNode);
-	PVR_UNREFERENCED_PARAMETER(psMemInfo);
-	PVR_UNREFERENCED_PARAMETER(ui32TilingStride);
-	PVR_UNREFERENCED_PARAMETER(pui32RangeIndex);
-
-	PVR_DPF((PVR_DBG_ERROR,"SGX_AllocMemTilingRange: device does not support memory tiling"));
-	return PVRSRV_ERROR_NOT_SUPPORTED;
-#endif
-}
-
-PVRSRV_ERROR SGX_FreeMemTilingRange(PVRSRV_DEVICE_NODE *psDeviceNode,
-										IMG_UINT32 ui32RangeIndex)
-{
-#if defined(SGX_FEATURE_BIF_WIDE_TILING_AND_4K_ADDRESS)
-	PVRSRV_SGXDEV_INFO *psDevInfo = psDeviceNode->pvDevice;
-	IMG_UINT32 ui32Offset;
-	IMG_UINT32 ui32Val;
-
-	if(ui32RangeIndex >= 10)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SGX_FreeMemTilingRange: invalid Range index "));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	
-	psDevInfo->ui32MemTilingUsage &= ~(1<<ui32RangeIndex);
-
-	
-	ui32Offset = EUR_CR_BIF_TILE0 + (ui32RangeIndex<<2);
-	ui32Val = 0;
-
-	
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, ui32Offset, ui32Val);
-	PDUMPREG(SGX_PDUMPREG_NAME, ui32Offset, ui32Val);
-
-	return PVRSRV_OK;
-#else
-	PVR_UNREFERENCED_PARAMETER(psDeviceNode);
-	PVR_UNREFERENCED_PARAMETER(ui32RangeIndex);
-
-	PVR_DPF((PVR_DBG_ERROR,"SGX_FreeMemTilingRange: device does not support memory tiling"));
-	return PVRSRV_ERROR_NOT_SUPPORTED;
-#endif
-}
-#endif
-
-static IMG_VOID SGXCacheInvalidate(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	PVRSRV_SGXDEV_INFO *psDevInfo = psDeviceNode->pvDevice;
-
-	#if defined(SGX_FEATURE_MP)
-	psDevInfo->ui32CacheControl |= SGXMKIF_CC_INVAL_BIF_SL;
-	#else
-	PVR_UNREFERENCED_PARAMETER(psDevInfo);
-	#endif 
-}
-
-PVRSRV_ERROR SGXRegisterDevice (PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	DEVICE_MEMORY_INFO *psDevMemoryInfo;
-	DEVICE_MEMORY_HEAP_INFO *psDeviceMemoryHeap;
-
-	
-	psDeviceNode->sDevId.eDeviceType		= DEV_DEVICE_TYPE;
-	psDeviceNode->sDevId.eDeviceClass		= DEV_DEVICE_CLASS;
-#if defined(PDUMP)
-	{
-		
-		SGX_DEVICE_MAP *psSGXDeviceMemMap;
-		SysGetDeviceMemoryMap(PVRSRV_DEVICE_TYPE_SGX,
-							  (IMG_VOID**)&psSGXDeviceMemMap);
-
-		psDeviceNode->sDevId.pszPDumpDevName = psSGXDeviceMemMap->pszPDumpDevName;
-		PVR_ASSERT(psDeviceNode->sDevId.pszPDumpDevName != IMG_NULL);
-	}
-	
-	psDeviceNode->sDevId.pszPDumpRegName	= SGX_PDUMPREG_NAME;
-#endif 
-
-	psDeviceNode->pfnInitDevice		= &DevInitSGXPart1;
-	psDeviceNode->pfnDeInitDevice	= &DevDeInitSGX;
-
-	psDeviceNode->pfnInitDeviceCompatCheck	= &SGXDevInitCompatCheck;
-#if defined(PDUMP)
-	psDeviceNode->pfnPDumpInitDevice = &SGXResetPDump;
-	psDeviceNode->pfnMMUGetContextID = &MMU_GetPDumpContextID;
-#endif
-	
-
-	psDeviceNode->pfnMMUInitialise = &MMU_Initialise;
-	psDeviceNode->pfnMMUFinalise = &MMU_Finalise;
-	psDeviceNode->pfnMMUInsertHeap = &MMU_InsertHeap;
-	psDeviceNode->pfnMMUCreate = &MMU_Create;
-	psDeviceNode->pfnMMUDelete = &MMU_Delete;
-	psDeviceNode->pfnMMUAlloc = &MMU_Alloc;
-	psDeviceNode->pfnMMUFree = &MMU_Free;
-	psDeviceNode->pfnMMUMapPages = &MMU_MapPages;
-	psDeviceNode->pfnMMUMapShadow = &MMU_MapShadow;
-	psDeviceNode->pfnMMUUnmapPages = &MMU_UnmapPages;
-	psDeviceNode->pfnMMUMapScatter = &MMU_MapScatter;
-	psDeviceNode->pfnMMUGetPhysPageAddr = &MMU_GetPhysPageAddr;
-	psDeviceNode->pfnMMUGetPDDevPAddr = &MMU_GetPDDevPAddr;
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-	psDeviceNode->pfnMMUIsHeapShared = &MMU_IsHeapShared;
-#endif
-#if defined(FIX_HW_BRN_31620)
-	psDeviceNode->pfnMMUGetCacheFlushRange = &MMU_GetCacheFlushRange;
-	psDeviceNode->pfnMMUGetPDPhysAddr = &MMU_GetPDPhysAddr;
-#else
-	psDeviceNode->pfnMMUGetCacheFlushRange = IMG_NULL;
-	psDeviceNode->pfnMMUGetPDPhysAddr = IMG_NULL;
-#endif
-#if defined (SYS_USING_INTERRUPTS)
-	
-
-	psDeviceNode->pfnDeviceISR = SGX_ISRHandler;
-	psDeviceNode->pfnDeviceMISR = SGX_MISRHandler;
-#endif
-
-#if defined(SUPPORT_MEMORY_TILING)
-	psDeviceNode->pfnAllocMemTilingRange = SGX_AllocMemTilingRange;
-	psDeviceNode->pfnFreeMemTilingRange = SGX_FreeMemTilingRange;
-#endif
-
-	
-
-	psDeviceNode->pfnDeviceCommandComplete = &SGXCommandComplete;
-
-	psDeviceNode->pfnCacheInvalidate = SGXCacheInvalidate;
-
-	
-
-	psDevMemoryInfo = &psDeviceNode->sDevMemoryInfo;
-	
-	psDevMemoryInfo->ui32AddressSpaceSizeLog2 = SGX_FEATURE_ADDRESS_SPACE_SIZE;
-
-	
-	psDevMemoryInfo->ui32Flags = 0;
-
-	
-	if(OSAllocMem( PVRSRV_OS_PAGEABLE_HEAP,
-					 sizeof(DEVICE_MEMORY_HEAP_INFO) * SGX_MAX_HEAP_ID,
-					 (IMG_VOID **)&psDevMemoryInfo->psDeviceMemoryHeap, 0,
-					 "Array of Device Memory Heap Info") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SGXRegisterDevice : Failed to alloc memory for DEVICE_MEMORY_HEAP_INFO"));
-		return (PVRSRV_ERROR_OUT_OF_MEMORY);
-	}
-	OSMemSet(psDevMemoryInfo->psDeviceMemoryHeap, 0, sizeof(DEVICE_MEMORY_HEAP_INFO) * SGX_MAX_HEAP_ID);
-
-	psDeviceMemoryHeap = psDevMemoryInfo->psDeviceMemoryHeap;
-
-	
-
-
-	
-	psDeviceMemoryHeap->ui32HeapID = HEAP_ID( PVRSRV_DEVICE_TYPE_SGX, SGX_GENERAL_HEAP_ID);
-	psDeviceMemoryHeap->sDevVAddrBase.uiAddr = SGX_GENERAL_HEAP_BASE;
-	psDeviceMemoryHeap->ui32HeapSize = SGX_GENERAL_HEAP_SIZE;
-	psDeviceMemoryHeap->ui32Attribs = PVRSRV_HAP_WRITECOMBINE
-														| PVRSRV_MEM_RAM_BACKED_ALLOCATION
-														| PVRSRV_HAP_SINGLE_PROCESS;
-	psDeviceMemoryHeap->pszName = "General";
-	psDeviceMemoryHeap->pszBSName = "General BS";
-	psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_PERCONTEXT;
-	
-	psDeviceMemoryHeap->ui32DataPageSize = SGX_MMU_PAGE_SIZE;
-#if !defined(SUPPORT_SGX_GENERAL_MAPPING_HEAP)
-	
-	psDevMemoryInfo->ui32MappingHeapID = (IMG_UINT32)(psDeviceMemoryHeap - psDevMemoryInfo->psDeviceMemoryHeap);
-#endif
-	psDeviceMemoryHeap++;
-
-
-	
-	psDeviceMemoryHeap->ui32HeapID = HEAP_ID( PVRSRV_DEVICE_TYPE_SGX, SGX_TADATA_HEAP_ID);
-	psDeviceMemoryHeap->sDevVAddrBase.uiAddr = SGX_TADATA_HEAP_BASE;
-	psDeviceMemoryHeap->ui32HeapSize = SGX_TADATA_HEAP_SIZE;
-	psDeviceMemoryHeap->ui32Attribs = PVRSRV_HAP_WRITECOMBINE
-														| PVRSRV_MEM_RAM_BACKED_ALLOCATION
-														| PVRSRV_HAP_MULTI_PROCESS;
-	psDeviceMemoryHeap->pszName = "TA Data";
-	psDeviceMemoryHeap->pszBSName = "TA Data BS";
-	psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_PERCONTEXT;
-	
-	psDeviceMemoryHeap->ui32DataPageSize = SGX_MMU_PAGE_SIZE;
-	psDeviceMemoryHeap++;
-
-
-	
-	psDeviceMemoryHeap->ui32HeapID = HEAP_ID( PVRSRV_DEVICE_TYPE_SGX, SGX_KERNEL_CODE_HEAP_ID);
-	psDeviceMemoryHeap->sDevVAddrBase.uiAddr = SGX_KERNEL_CODE_HEAP_BASE;
-	psDeviceMemoryHeap->ui32HeapSize = SGX_KERNEL_CODE_HEAP_SIZE;
-	psDeviceMemoryHeap->ui32Attribs = PVRSRV_HAP_WRITECOMBINE
-															| PVRSRV_MEM_RAM_BACKED_ALLOCATION
-															| PVRSRV_HAP_MULTI_PROCESS;
-	psDeviceMemoryHeap->pszName = "Kernel Code";
-	psDeviceMemoryHeap->pszBSName = "Kernel Code BS";
-	psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_SHARED_EXPORTED;
-	
-	psDeviceMemoryHeap->ui32DataPageSize = SGX_MMU_PAGE_SIZE;
-	psDeviceMemoryHeap++;
-
-
-	
-	psDeviceMemoryHeap->ui32HeapID = HEAP_ID( PVRSRV_DEVICE_TYPE_SGX, SGX_KERNEL_DATA_HEAP_ID);
-	psDeviceMemoryHeap->sDevVAddrBase.uiAddr = SGX_KERNEL_DATA_HEAP_BASE;
-	psDeviceMemoryHeap->ui32HeapSize = SGX_KERNEL_DATA_HEAP_SIZE;
-	psDeviceMemoryHeap->ui32Attribs = PVRSRV_HAP_WRITECOMBINE
-																| PVRSRV_MEM_RAM_BACKED_ALLOCATION
-																| PVRSRV_HAP_MULTI_PROCESS;
-	psDeviceMemoryHeap->pszName = "KernelData";
-	psDeviceMemoryHeap->pszBSName = "KernelData BS";
-	psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_SHARED_EXPORTED;
-	
-	psDeviceMemoryHeap->ui32DataPageSize = SGX_MMU_PAGE_SIZE;
-	psDeviceMemoryHeap++;
-
-
-	
-	psDeviceMemoryHeap->ui32HeapID = HEAP_ID( PVRSRV_DEVICE_TYPE_SGX, SGX_PIXELSHADER_HEAP_ID);
-	psDeviceMemoryHeap->sDevVAddrBase.uiAddr = SGX_PIXELSHADER_HEAP_BASE;
-	
-
-
-
-
-
-	psDeviceMemoryHeap->ui32HeapSize = ((10 << SGX_USE_CODE_SEGMENT_RANGE_BITS) - 0x00001000);
-	PVR_ASSERT(psDeviceMemoryHeap->ui32HeapSize <= SGX_PIXELSHADER_HEAP_SIZE);
-	psDeviceMemoryHeap->ui32Attribs = PVRSRV_HAP_WRITECOMBINE
-																| PVRSRV_MEM_RAM_BACKED_ALLOCATION
-																| PVRSRV_HAP_SINGLE_PROCESS;
-	psDeviceMemoryHeap->pszName = "PixelShaderUSSE";
-	psDeviceMemoryHeap->pszBSName = "PixelShaderUSSE BS";
-	psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_PERCONTEXT;
-	
-	psDeviceMemoryHeap->ui32DataPageSize = SGX_MMU_PAGE_SIZE;
-	psDeviceMemoryHeap++;
-
-
-	
-	psDeviceMemoryHeap->ui32HeapID = HEAP_ID( PVRSRV_DEVICE_TYPE_SGX, SGX_VERTEXSHADER_HEAP_ID);
-	psDeviceMemoryHeap->sDevVAddrBase.uiAddr = SGX_VERTEXSHADER_HEAP_BASE;
-	
-	psDeviceMemoryHeap->ui32HeapSize = ((4 << SGX_USE_CODE_SEGMENT_RANGE_BITS) - 0x00001000);
-	PVR_ASSERT(psDeviceMemoryHeap->ui32HeapSize <= SGX_VERTEXSHADER_HEAP_SIZE);
-	psDeviceMemoryHeap->ui32Attribs = PVRSRV_HAP_WRITECOMBINE
-																| PVRSRV_MEM_RAM_BACKED_ALLOCATION
-																| PVRSRV_HAP_SINGLE_PROCESS;
-	psDeviceMemoryHeap->pszName = "VertexShaderUSSE";
-	psDeviceMemoryHeap->pszBSName = "VertexShaderUSSE BS";
-	psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_PERCONTEXT;
-	
-	psDeviceMemoryHeap->ui32DataPageSize = SGX_MMU_PAGE_SIZE;
-	psDeviceMemoryHeap++;
-
-
-	
-	psDeviceMemoryHeap->ui32HeapID = HEAP_ID( PVRSRV_DEVICE_TYPE_SGX, SGX_PDSPIXEL_CODEDATA_HEAP_ID);
-	psDeviceMemoryHeap->sDevVAddrBase.uiAddr = SGX_PDSPIXEL_CODEDATA_HEAP_BASE;
-	psDeviceMemoryHeap->ui32HeapSize = SGX_PDSPIXEL_CODEDATA_HEAP_SIZE;
-	psDeviceMemoryHeap->ui32Attribs = PVRSRV_HAP_WRITECOMBINE
-																| PVRSRV_MEM_RAM_BACKED_ALLOCATION
-																| PVRSRV_HAP_SINGLE_PROCESS;
-	psDeviceMemoryHeap->pszName = "PDSPixelCodeData";
-	psDeviceMemoryHeap->pszBSName = "PDSPixelCodeData BS";
-	psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_PERCONTEXT;
-	
-	psDeviceMemoryHeap->ui32DataPageSize = SGX_MMU_PAGE_SIZE;
-	psDeviceMemoryHeap++;
-
-
-	
-	psDeviceMemoryHeap->ui32HeapID = HEAP_ID( PVRSRV_DEVICE_TYPE_SGX, SGX_PDSVERTEX_CODEDATA_HEAP_ID);
-	psDeviceMemoryHeap->sDevVAddrBase.uiAddr = SGX_PDSVERTEX_CODEDATA_HEAP_BASE;
-	psDeviceMemoryHeap->ui32HeapSize = SGX_PDSVERTEX_CODEDATA_HEAP_SIZE;
-	psDeviceMemoryHeap->ui32Attribs = PVRSRV_HAP_WRITECOMBINE
-																| PVRSRV_MEM_RAM_BACKED_ALLOCATION
-																| PVRSRV_HAP_SINGLE_PROCESS;
-	psDeviceMemoryHeap->pszName = "PDSVertexCodeData";
-	psDeviceMemoryHeap->pszBSName = "PDSVertexCodeData BS";
-	psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_PERCONTEXT;
-	
-	psDeviceMemoryHeap->ui32DataPageSize = SGX_MMU_PAGE_SIZE;
-	psDeviceMemoryHeap++;
-
-
-	
-	psDeviceMemoryHeap->ui32HeapID = HEAP_ID( PVRSRV_DEVICE_TYPE_SGX, SGX_SYNCINFO_HEAP_ID);
-	psDeviceMemoryHeap->sDevVAddrBase.uiAddr = SGX_SYNCINFO_HEAP_BASE;
-	psDeviceMemoryHeap->ui32HeapSize = SGX_SYNCINFO_HEAP_SIZE;
-	psDeviceMemoryHeap->ui32Attribs = PVRSRV_HAP_WRITECOMBINE
-														| PVRSRV_MEM_RAM_BACKED_ALLOCATION
-														| PVRSRV_HAP_MULTI_PROCESS;
-	psDeviceMemoryHeap->pszName = "CacheCoherent";
-	psDeviceMemoryHeap->pszBSName = "CacheCoherent BS";
-	psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_SHARED_EXPORTED;
-	
-	psDeviceMemoryHeap->ui32DataPageSize = SGX_MMU_PAGE_SIZE;
-	
-	psDevMemoryInfo->ui32SyncHeapID = (IMG_UINT32)(psDeviceMemoryHeap - psDevMemoryInfo->psDeviceMemoryHeap);
-	psDeviceMemoryHeap++;
-
-
-	
-	psDeviceMemoryHeap->ui32HeapID = HEAP_ID( PVRSRV_DEVICE_TYPE_SGX, SGX_SHARED_3DPARAMETERS_HEAP_ID);
-	psDeviceMemoryHeap->sDevVAddrBase.uiAddr = SGX_SHARED_3DPARAMETERS_HEAP_BASE;
-	psDeviceMemoryHeap->ui32HeapSize = SGX_SHARED_3DPARAMETERS_HEAP_SIZE;
-	psDeviceMemoryHeap->pszName = "Shared 3DParameters";
-	psDeviceMemoryHeap->pszBSName = "Shared 3DParameters BS";
-	psDeviceMemoryHeap->ui32Attribs = PVRSRV_HAP_WRITECOMBINE
-													| PVRSRV_MEM_RAM_BACKED_ALLOCATION
-													| PVRSRV_HAP_MULTI_PROCESS;
-	psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_SHARED_EXPORTED;
-
-	
-	psDeviceMemoryHeap->ui32DataPageSize = SGX_MMU_PAGE_SIZE;
-	psDeviceMemoryHeap++;
-
-	
-	psDeviceMemoryHeap->ui32HeapID = HEAP_ID( PVRSRV_DEVICE_TYPE_SGX, SGX_PERCONTEXT_3DPARAMETERS_HEAP_ID);
-	psDeviceMemoryHeap->sDevVAddrBase.uiAddr = SGX_PERCONTEXT_3DPARAMETERS_HEAP_BASE;
-	psDeviceMemoryHeap->ui32HeapSize = SGX_PERCONTEXT_3DPARAMETERS_HEAP_SIZE;
-	psDeviceMemoryHeap->pszName = "Percontext 3DParameters";
-	psDeviceMemoryHeap->pszBSName = "Percontext 3DParameters BS";
-	psDeviceMemoryHeap->ui32Attribs = PVRSRV_HAP_WRITECOMBINE
-															| PVRSRV_MEM_RAM_BACKED_ALLOCATION
-															| PVRSRV_HAP_SINGLE_PROCESS;
-	psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_PERCONTEXT;
-	
-	psDeviceMemoryHeap->ui32DataPageSize = SGX_MMU_PAGE_SIZE;
-	psDeviceMemoryHeap++;
-
-
-#if defined(SUPPORT_SGX_GENERAL_MAPPING_HEAP)
-	
-	psDeviceMemoryHeap->ui32HeapID = HEAP_ID( PVRSRV_DEVICE_TYPE_SGX, SGX_GENERAL_MAPPING_HEAP_ID);
-	psDeviceMemoryHeap->sDevVAddrBase.uiAddr = SGX_GENERAL_MAPPING_HEAP_BASE;
-	psDeviceMemoryHeap->ui32HeapSize = SGX_GENERAL_MAPPING_HEAP_SIZE;
-	psDeviceMemoryHeap->ui32Attribs = PVRSRV_HAP_WRITECOMBINE
-														| PVRSRV_MEM_RAM_BACKED_ALLOCATION
-														| PVRSRV_HAP_MULTI_PROCESS;
-	psDeviceMemoryHeap->pszName = "GeneralMapping";
-	psDeviceMemoryHeap->pszBSName = "GeneralMapping BS";
-	#if defined(SGX_FEATURE_MULTIPLE_MEM_CONTEXTS) && defined(FIX_HW_BRN_23410)
-	
-
-
-
-
-
-
-		psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_SHARED_EXPORTED;
-	#else 
-		psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_PERCONTEXT;
-	#endif 
-
-	
-	psDeviceMemoryHeap->ui32DataPageSize = SGX_MMU_PAGE_SIZE;
-	
-	psDevMemoryInfo->ui32MappingHeapID = (IMG_UINT32)(psDeviceMemoryHeap - psDevMemoryInfo->psDeviceMemoryHeap);
-	psDeviceMemoryHeap++;
-#endif 
-
-
-#if defined(SGX_FEATURE_2D_HARDWARE)
-	
-	psDeviceMemoryHeap->ui32HeapID = HEAP_ID( PVRSRV_DEVICE_TYPE_SGX, SGX_2D_HEAP_ID);
-	psDeviceMemoryHeap->sDevVAddrBase.uiAddr = SGX_2D_HEAP_BASE;
-	psDeviceMemoryHeap->ui32HeapSize = SGX_2D_HEAP_SIZE;
-	psDeviceMemoryHeap->ui32Attribs = PVRSRV_HAP_WRITECOMBINE
-														| PVRSRV_MEM_RAM_BACKED_ALLOCATION
-														| PVRSRV_HAP_SINGLE_PROCESS;
-	psDeviceMemoryHeap->pszName = "2D";
-	psDeviceMemoryHeap->pszBSName = "2D BS";
-	
-	psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_SHARED_EXPORTED;
-	
-	psDeviceMemoryHeap->ui32DataPageSize = SGX_MMU_PAGE_SIZE;
-	psDeviceMemoryHeap++;
-#endif 
-
-
-#if defined(FIX_HW_BRN_26915)
-	
-	
-	psDeviceMemoryHeap->ui32HeapID = HEAP_ID( PVRSRV_DEVICE_TYPE_SGX, SGX_CGBUFFER_HEAP_ID);
-	psDeviceMemoryHeap->sDevVAddrBase.uiAddr = SGX_CGBUFFER_HEAP_BASE;
-	psDeviceMemoryHeap->ui32HeapSize = SGX_CGBUFFER_HEAP_SIZE;
-	psDeviceMemoryHeap->ui32Attribs = PVRSRV_HAP_WRITECOMBINE
-														| PVRSRV_MEM_RAM_BACKED_ALLOCATION
-														| PVRSRV_HAP_SINGLE_PROCESS;
-	psDeviceMemoryHeap->pszName = "CGBuffer";
-	psDeviceMemoryHeap->pszBSName = "CGBuffer BS";
-
-	psDeviceMemoryHeap->DevMemHeapType = DEVICE_MEMORY_HEAP_PERCONTEXT;
-	
-	psDeviceMemoryHeap->ui32DataPageSize = SGX_MMU_PAGE_SIZE;
-	psDeviceMemoryHeap++;
-#endif 
-
-	
-	psDevMemoryInfo->ui32HeapCount = (IMG_UINT32)(psDeviceMemoryHeap - psDevMemoryInfo->psDeviceMemoryHeap);
-
-	return PVRSRV_OK;
-}
-
-#if defined(PDUMP)
-static
-PVRSRV_ERROR SGXResetPDump(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	PVRSRV_SGXDEV_INFO *psDevInfo = (PVRSRV_SGXDEV_INFO *)(psDeviceNode->pvDevice);
-	psDevInfo->psKernelCCBInfo->ui32CCBDumpWOff = 0;
-	PVR_DPF((PVR_DBG_MESSAGE, "Reset pdump CCB write offset."));
-	
-	return PVRSRV_OK;
-}
-#endif 
-
-
-IMG_EXPORT
-PVRSRV_ERROR SGXGetClientInfoKM(IMG_HANDLE					hDevCookie,
-								SGX_CLIENT_INFO*		psClientInfo)
-{
-	PVRSRV_SGXDEV_INFO *psDevInfo = (PVRSRV_SGXDEV_INFO *)((PVRSRV_DEVICE_NODE *)hDevCookie)->pvDevice;
-
-	
-
-	psDevInfo->ui32ClientRefCount++;
-
-	
-
-	psClientInfo->ui32ProcessID = OSGetCurrentProcessIDKM();
-
-	
-
-	OSMemCopy(&psClientInfo->asDevData, &psDevInfo->asSGXDevData, sizeof(psClientInfo->asDevData));
-
-	
-	return PVRSRV_OK;
-}
-
-
-IMG_VOID SGXPanic(PVRSRV_SGXDEV_INFO	*psDevInfo)
-{
-	PVR_LOG(("SGX panic"));
-	SGXDumpDebugInfo(psDevInfo, IMG_FALSE);
-	OSPanic();
-}
-
-
-PVRSRV_ERROR SGXDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	PVRSRV_ERROR	eError;
-	PVRSRV_SGXDEV_INFO 				*psDevInfo;
-	IMG_UINT32 			ui32BuildOptions, ui32BuildOptionsMismatch;
-#if !defined(NO_HARDWARE)
-	PPVRSRV_KERNEL_MEM_INFO			psMemInfo;
-	PVRSRV_SGX_MISCINFO_INFO		*psSGXMiscInfoInt; 	
-	PVRSRV_SGX_MISCINFO_FEATURES	*psSGXFeatures;
-	SGX_MISCINFO_STRUCT_SIZES		*psSGXStructSizes;	
-	IMG_BOOL						bStructSizesFailed;
-
-	
-	IMG_BOOL	bCheckCoreRev;
-	const IMG_UINT32 aui32CoreRevExceptions[] =
-	{
-		0x10100, 0x10101
-	};
-	const IMG_UINT32	ui32NumCoreExceptions = sizeof(aui32CoreRevExceptions) / (2*sizeof(IMG_UINT32));
-	IMG_UINT	i;
-#endif
-
-	
-	if(psDeviceNode->sDevId.eDeviceType != PVRSRV_DEVICE_TYPE_SGX)
-	{
-		PVR_LOG(("(FAIL) SGXInit: Device not of type SGX"));
-		eError = PVRSRV_ERROR_INVALID_PARAMS;
-		goto chk_exit;
-	}
-
-	psDevInfo = psDeviceNode->pvDevice;
-
-	
-	
-	ui32BuildOptions = (SGX_BUILD_OPTIONS);
-	if (ui32BuildOptions != psDevInfo->ui32ClientBuildOptions)
-	{
-		ui32BuildOptionsMismatch = ui32BuildOptions ^ psDevInfo->ui32ClientBuildOptions;
-		if ( (psDevInfo->ui32ClientBuildOptions & ui32BuildOptionsMismatch) != 0)
-		{
-			PVR_LOG(("(FAIL) SGXInit: Mismatch in client-side and KM driver build options; "
-				"extra options present in client-side driver: (0x%x). Please check sgx_options.h",
-				psDevInfo->ui32ClientBuildOptions & ui32BuildOptionsMismatch ));
-		}
-
-		if ( (ui32BuildOptions & ui32BuildOptionsMismatch) != 0)
-		{
-			PVR_LOG(("(FAIL) SGXInit: Mismatch in client-side and KM driver build options; "
-				"extra options present in KM: (0x%x). Please check sgx_options.h",
-				ui32BuildOptions & ui32BuildOptionsMismatch ));
-		}
-		eError = PVRSRV_ERROR_BUILD_MISMATCH;
-		PVR_LOG(("SGXInit: KM options 0x%x; client-side options 0x%x\n", ui32BuildOptions, psDevInfo->ui32ClientBuildOptions));
-		goto chk_exit;
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_MESSAGE, "SGXInit: Client-side and KM driver build options match. [ OK ]"));
-	}
-
-#if !defined (NO_HARDWARE)
-	psMemInfo = psDevInfo->psKernelSGXMiscMemInfo;
-
-	
-	psSGXMiscInfoInt = psMemInfo->pvLinAddrKM;
-	psSGXMiscInfoInt->ui32MiscInfoFlags = 0;
-	psSGXMiscInfoInt->ui32MiscInfoFlags |= PVRSRV_USSE_MISCINFO_GET_STRUCT_SIZES;
-	eError = SGXGetMiscInfoUkernel(psDevInfo, psDeviceNode, IMG_NULL);
-
-	
-	if(eError != PVRSRV_OK)
-	{
-		PVR_LOG(("(FAIL) SGXInit: Unable to validate device DDK version"));
-		goto chk_exit;
-	}
-	psSGXFeatures = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->sSGXFeatures;
-	if( (psSGXFeatures->ui32DDKVersion !=
-		((PVRVERSION_MAJ << 16) |
-		 (PVRVERSION_MIN << 8) |
-		  PVRVERSION_BRANCH) ) ||
-		(psSGXFeatures->ui32DDKBuild != PVRVERSION_BUILD) )
-	{
-		PVR_LOG(("(FAIL) SGXInit: Incompatible driver DDK revision (%d)/device DDK revision (%d).",
-				PVRVERSION_BUILD, psSGXFeatures->ui32DDKBuild));
-		eError = PVRSRV_ERROR_DDK_VERSION_MISMATCH;
-		PVR_DBG_BREAK;
-		goto chk_exit;
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_MESSAGE, "SGXInit: driver DDK (%d) and device DDK (%d) match. [ OK ]",
-				PVRVERSION_BUILD, psSGXFeatures->ui32DDKBuild));
-	}
-
-	
-	if (psSGXFeatures->ui32CoreRevSW == 0)
-	{
-		
-
-		PVR_LOG(("SGXInit: HW core rev (%x) check skipped.",
-				psSGXFeatures->ui32CoreRev));
-	}
-	else
-	{
-		
-		bCheckCoreRev = IMG_TRUE;
-		for(i=0; i<ui32NumCoreExceptions; i+=2)
-		{
-			if( (psSGXFeatures->ui32CoreRev==aui32CoreRevExceptions[i]) &&
-				(psSGXFeatures->ui32CoreRevSW==aui32CoreRevExceptions[i+1])	)
-			{
-				PVR_LOG(("SGXInit: HW core rev (%x), SW core rev (%x) check skipped.",
-						psSGXFeatures->ui32CoreRev,
-						psSGXFeatures->ui32CoreRevSW));
-				bCheckCoreRev = IMG_FALSE;
-			}
-		}
-
-		if (bCheckCoreRev)
-		{
-			if (psSGXFeatures->ui32CoreRev != psSGXFeatures->ui32CoreRevSW)
-			{
-				PVR_LOG(("(FAIL) SGXInit: Incompatible HW core rev (%x) and SW core rev (%x).",
-						psSGXFeatures->ui32CoreRev, psSGXFeatures->ui32CoreRevSW));
-						eError = PVRSRV_ERROR_BUILD_MISMATCH;
-						goto chk_exit;
-			}
-			else
-			{
-				PVR_DPF((PVR_DBG_MESSAGE, "SGXInit: HW core rev (%x) and SW core rev (%x) match. [ OK ]",
-						psSGXFeatures->ui32CoreRev, psSGXFeatures->ui32CoreRevSW));
-			}
-		}
-	}
-
-	
-	psSGXStructSizes = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->sSGXStructSizes;
-
-	bStructSizesFailed = IMG_FALSE;
-
-	CHECK_SIZE(HOST_CTL);
-	CHECK_SIZE(COMMAND);
-#if defined(SGX_FEATURE_2D_HARDWARE)
-	CHECK_SIZE(2DCMD);
-	CHECK_SIZE(2DCMD_SHARED);
-#endif
-	CHECK_SIZE(CMDTA);
-	CHECK_SIZE(CMDTA_SHARED);
-	CHECK_SIZE(TRANSFERCMD);
-	CHECK_SIZE(TRANSFERCMD_SHARED);
-
-	CHECK_SIZE(3DREGISTERS);
-	CHECK_SIZE(HWPBDESC);
-	CHECK_SIZE(HWRENDERCONTEXT);
-	CHECK_SIZE(HWRENDERDETAILS);
-	CHECK_SIZE(HWRTDATA);
-	CHECK_SIZE(HWRTDATASET);
-	CHECK_SIZE(HWTRANSFERCONTEXT);
-
-	if (bStructSizesFailed == IMG_TRUE)
-	{
-		PVR_LOG(("(FAIL) SGXInit: Mismatch in SGXMKIF structure sizes."));
-		eError = PVRSRV_ERROR_BUILD_MISMATCH;
-		goto chk_exit;
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_MESSAGE, "SGXInit: SGXMKIF structure sizes match. [ OK ]"));
-	}
-
-	
-	ui32BuildOptions = psSGXFeatures->ui32BuildOptions;
-	if (ui32BuildOptions != (SGX_BUILD_OPTIONS))
-	{
-		ui32BuildOptionsMismatch = ui32BuildOptions ^ (SGX_BUILD_OPTIONS);
-		if ( ((SGX_BUILD_OPTIONS) & ui32BuildOptionsMismatch) != 0)
-		{
-			PVR_LOG(("(FAIL) SGXInit: Mismatch in driver and microkernel build options; "
-				"extra options present in driver: (0x%x). Please check sgx_options.h",
-				(SGX_BUILD_OPTIONS) & ui32BuildOptionsMismatch ));
-		}
-
-		if ( (ui32BuildOptions & ui32BuildOptionsMismatch) != 0)
-		{
-			PVR_LOG(("(FAIL) SGXInit: Mismatch in driver and microkernel build options; "
-				"extra options present in microkernel: (0x%x). Please check sgx_options.h",
-				ui32BuildOptions & ui32BuildOptionsMismatch ));
-		}
-		eError = PVRSRV_ERROR_BUILD_MISMATCH;
-		goto chk_exit;
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_MESSAGE, "SGXInit: Driver and microkernel build options match. [ OK ]"));
-	}
-#endif 
-
-	eError = PVRSRV_OK;
-chk_exit:
-#if defined(IGNORE_SGX_INIT_COMPATIBILITY_CHECK)
-	return PVRSRV_OK;
-#else
-	return eError;
-#endif
-}
-
-static
-PVRSRV_ERROR SGXGetMiscInfoUkernel(PVRSRV_SGXDEV_INFO	*psDevInfo,
-								   PVRSRV_DEVICE_NODE 	*psDeviceNode,
-								   IMG_HANDLE hDevMemContext)
-{
-	PVRSRV_ERROR		eError;
-	SGXMKIF_COMMAND		sCommandData;  
-	PVRSRV_SGX_MISCINFO_INFO			*psSGXMiscInfoInt; 	
-	PVRSRV_SGX_MISCINFO_FEATURES		*psSGXFeatures;		
-	SGX_MISCINFO_STRUCT_SIZES			*psSGXStructSizes;	
-
-	PPVRSRV_KERNEL_MEM_INFO	psMemInfo = psDevInfo->psKernelSGXMiscMemInfo;
-
-	if (! psMemInfo->pvLinAddrKM)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXGetMiscInfoUkernel: Invalid address."));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-	psSGXMiscInfoInt = psMemInfo->pvLinAddrKM;
-	psSGXFeatures = &psSGXMiscInfoInt->sSGXFeatures;
-	psSGXStructSizes = &psSGXMiscInfoInt->sSGXStructSizes;
-
-	psSGXMiscInfoInt->ui32MiscInfoFlags &= ~PVRSRV_USSE_MISCINFO_READY;
-
-	
-	OSMemSet(psSGXFeatures, 0, sizeof(*psSGXFeatures));
-	OSMemSet(psSGXStructSizes, 0, sizeof(*psSGXStructSizes));
-
-	
-	sCommandData.ui32Data[1] = psMemInfo->sDevVAddr.uiAddr; 
-
-	PDUMPCOMMENT("Microkernel kick for SGXGetMiscInfo");
-	eError = SGXScheduleCCBCommandKM(psDeviceNode,
-									 SGXMKIF_CMD_GETMISCINFO,
-									 &sCommandData,
-									 KERNEL_ID,
-									 0,
-									 hDevMemContext,
-									 IMG_FALSE);
-
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXGetMiscInfoUkernel: SGXScheduleCCBCommandKM failed."));
-		return eError;
-	}
-
-	
-#if !defined(NO_HARDWARE)
-	{
-		IMG_BOOL bExit;
-
-		bExit = IMG_FALSE;
-		LOOP_UNTIL_TIMEOUT(MAX_HW_TIME_US)
-		{
-			if ((psSGXMiscInfoInt->ui32MiscInfoFlags & PVRSRV_USSE_MISCINFO_READY) != 0)
-			{
-				bExit = IMG_TRUE;
-				break;
-			}
-		} END_LOOP_UNTIL_TIMEOUT();
-
-		
-		if (!bExit)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "SGXGetMiscInfoUkernel: Timeout occurred waiting for misc info."));
-			return PVRSRV_ERROR_TIMEOUT;
-		}
-	}
-#endif 
-
-	return PVRSRV_OK;
-}
-
-
-
-IMG_EXPORT
-PVRSRV_ERROR SGXGetMiscInfoKM(PVRSRV_SGXDEV_INFO	*psDevInfo,
-							  SGX_MISC_INFO			*psMiscInfo,
- 							  PVRSRV_DEVICE_NODE 	*psDeviceNode,
- 							  IMG_HANDLE 			 hDevMemContext)
-{
-	PVRSRV_ERROR eError;
-	PPVRSRV_KERNEL_MEM_INFO	psMemInfo = psDevInfo->psKernelSGXMiscMemInfo;
-	IMG_UINT32	*pui32MiscInfoFlags = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->ui32MiscInfoFlags;
-
-	
-	*pui32MiscInfoFlags = 0;
-
-#if !defined(SUPPORT_SGX_EDM_MEMORY_DEBUG)
-	PVR_UNREFERENCED_PARAMETER(hDevMemContext);
-#endif
-
-	switch(psMiscInfo->eRequest)
-	{
-#if defined(SGX_FEATURE_DATA_BREAKPOINTS)
-		case SGX_MISC_INFO_REQUEST_SET_BREAKPOINT:
-		{
-			IMG_UINT32      ui32MaskDM;
-			IMG_UINT32      ui32CtrlWEnable;
-			IMG_UINT32      ui32CtrlREnable;
-			IMG_UINT32      ui32CtrlTrapEnable;
-			IMG_UINT32		ui32RegVal;
-			IMG_UINT32		ui32StartRegVal;
-			IMG_UINT32		ui32EndRegVal;
-			SGXMKIF_COMMAND	sCommandData;
-
-			
-			if(psMiscInfo->uData.sSGXBreakpointInfo.bBPEnable)
-			{
-				
-				IMG_DEV_VIRTADDR sBPDevVAddr = psMiscInfo->uData.sSGXBreakpointInfo.sBPDevVAddr;
-				IMG_DEV_VIRTADDR sBPDevVAddrEnd = psMiscInfo->uData.sSGXBreakpointInfo.sBPDevVAddrEnd;
-
-				
-				ui32StartRegVal = sBPDevVAddr.uiAddr & EUR_CR_BREAKPOINT0_START_ADDRESS_MASK;
-				ui32EndRegVal = sBPDevVAddrEnd.uiAddr & EUR_CR_BREAKPOINT0_END_ADDRESS_MASK;
-
-				ui32MaskDM = psMiscInfo->uData.sSGXBreakpointInfo.ui32DataMasterMask;
-				ui32CtrlWEnable = psMiscInfo->uData.sSGXBreakpointInfo.bWrite;
-				ui32CtrlREnable = psMiscInfo->uData.sSGXBreakpointInfo.bRead;
-				ui32CtrlTrapEnable = psMiscInfo->uData.sSGXBreakpointInfo.bTrapped;
-
-				
-				ui32RegVal = ((ui32MaskDM<<EUR_CR_BREAKPOINT0_MASK_DM_SHIFT) & EUR_CR_BREAKPOINT0_MASK_DM_MASK) |
-							 ((ui32CtrlWEnable<<EUR_CR_BREAKPOINT0_CTRL_WENABLE_SHIFT) & EUR_CR_BREAKPOINT0_CTRL_WENABLE_MASK) |
-							 ((ui32CtrlREnable<<EUR_CR_BREAKPOINT0_CTRL_RENABLE_SHIFT) & EUR_CR_BREAKPOINT0_CTRL_RENABLE_MASK) |
-							 ((ui32CtrlTrapEnable<<EUR_CR_BREAKPOINT0_CTRL_TRAPENABLE_SHIFT) & EUR_CR_BREAKPOINT0_CTRL_TRAPENABLE_MASK);
-			}
-			else
-			{
-				
-				ui32RegVal = ui32StartRegVal = ui32EndRegVal = 0;
-			}
-
-			
-			sCommandData.ui32Data[0] = psMiscInfo->uData.sSGXBreakpointInfo.ui32BPIndex;
-			sCommandData.ui32Data[1] = ui32StartRegVal;
-			sCommandData.ui32Data[2] = ui32EndRegVal;
-			sCommandData.ui32Data[3] = ui32RegVal;
-
-			
-			psDevInfo->psSGXHostCtl->ui32BPSetClearSignal = 0;
-
-			PDUMPCOMMENT("Microkernel kick for setting a data breakpoint");
-			eError = SGXScheduleCCBCommandKM(psDeviceNode,
-											 SGXMKIF_CMD_DATABREAKPOINT,
-											 &sCommandData,
-											 KERNEL_ID,
-											 0,
-											 hDevMemContext,
-											 IMG_FALSE);
-
-			if (eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "SGXGetMiscInfoKM: SGXScheduleCCBCommandKM failed."));
-				return eError;
-			}
-
-#if defined(NO_HARDWARE)
-			
-			psDevInfo->psSGXHostCtl->ui32BPSetClearSignal = 0;
-#else
-			{
-				IMG_BOOL bExit;
-
-				bExit = IMG_FALSE;
-				LOOP_UNTIL_TIMEOUT(MAX_HW_TIME_US)
-				{
-					if (psDevInfo->psSGXHostCtl->ui32BPSetClearSignal != 0)
-					{
-						bExit = IMG_TRUE;
-						
-						psDevInfo->psSGXHostCtl->ui32BPSetClearSignal = 0;
-						break;
-					}
-				} END_LOOP_UNTIL_TIMEOUT();
-
-				
-				if (!bExit)
-				{
-					PVR_DPF((PVR_DBG_ERROR, "SGXGetMiscInfoKM: Timeout occurred waiting BP set/clear"));
-					return PVRSRV_ERROR_TIMEOUT;
-				}
-			}
-#endif 
-
-			return PVRSRV_OK;
-		}
-
-		case SGX_MISC_INFO_REQUEST_POLL_BREAKPOINT:
-		{
-			
-
-
-
-
-			
-
-#if !defined(NO_HARDWARE)
-#if defined(SGX_FEATURE_MP)
-			IMG_BOOL bTrappedBPMaster;
-			IMG_UINT32 ui32CoreNum, ui32TrappedBPCoreNum;
-#if defined(SGX_FEATURE_PERPIPE_BKPT_REGS)
-			IMG_UINT32 ui32PipeNum, ui32TrappedBPPipeNum;
-#define NUM_PIPES_PLUS_ONE (SGX_FEATURE_PERPIPE_BKPT_REGS_NUMPIPES+1)
-#endif
-			IMG_BOOL bTrappedBPAny;
-#endif 
-			IMG_BOOL bFoundOne;
-
-#if defined(SGX_FEATURE_MP)
-			ui32TrappedBPCoreNum = 0;
-			bTrappedBPMaster = !!(EUR_CR_MASTER_BREAKPOINT_TRAPPED_MASK & OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_BREAKPOINT));
-			bTrappedBPAny = bTrappedBPMaster;
-#if defined(SGX_FEATURE_PERPIPE_BKPT_REGS)
-			ui32TrappedBPPipeNum = 0; 
-#endif
-			for (ui32CoreNum = 0; ui32CoreNum < SGX_FEATURE_MP_CORE_COUNT_3D; ui32CoreNum++)
-			{
-#if defined(SGX_FEATURE_PERPIPE_BKPT_REGS)
-				
-
-
-#define SGX_MP_CORE_PIPE_SELECT(r,c,p) \
-				((SGX_MP_CORE_SELECT(EUR_CR_PARTITION_##r,c) + p*(EUR_CR_PIPE0_##r-EUR_CR_PARTITION_##r)))
-				for (ui32PipeNum = 0; ui32PipeNum < NUM_PIPES_PLUS_ONE; ui32PipeNum++)
-				{
-					bFoundOne =
-						0 != (EUR_CR_PARTITION_BREAKPOINT_TRAPPED_MASK & 
-							  OSReadHWReg(psDevInfo->pvRegsBaseKM, 
-										  SGX_MP_CORE_PIPE_SELECT(BREAKPOINT,
-																  ui32CoreNum,
-																  ui32PipeNum)));
-					if (bFoundOne)
-					{
-						bTrappedBPAny = IMG_TRUE;
-						ui32TrappedBPCoreNum = ui32CoreNum;
-						ui32TrappedBPPipeNum = ui32PipeNum;
-					}
-				}
-#else 
-				bFoundOne = !!(EUR_CR_BREAKPOINT_TRAPPED_MASK & OSReadHWReg(psDevInfo->pvRegsBaseKM, SGX_MP_CORE_SELECT(EUR_CR_BREAKPOINT, ui32CoreNum)));
-				if (bFoundOne)
-				{
-					bTrappedBPAny = IMG_TRUE;
-					ui32TrappedBPCoreNum = ui32CoreNum;
-				}
-#endif 
-			}
-
-			psMiscInfo->uData.sSGXBreakpointInfo.bTrappedBP = bTrappedBPAny;
-#else 
-#if defined(SGX_FEATURE_PERPIPE_BKPT_REGS)
-			#error Not yet considered the case for per-pipe regs in non-mp case
-#endif
-			psMiscInfo->uData.sSGXBreakpointInfo.bTrappedBP = 0 != (EUR_CR_BREAKPOINT_TRAPPED_MASK & OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BREAKPOINT));
-#endif 
-
-			if (psMiscInfo->uData.sSGXBreakpointInfo.bTrappedBP)
-			{
-				IMG_UINT32 ui32Info0, ui32Info1;
-
-#if defined(SGX_FEATURE_MP)
-#if defined(SGX_FEATURE_PERPIPE_BKPT_REGS)
-				ui32Info0 = OSReadHWReg(psDevInfo->pvRegsBaseKM, bTrappedBPMaster?EUR_CR_MASTER_BREAKPOINT_TRAP_INFO0:SGX_MP_CORE_PIPE_SELECT(BREAKPOINT_TRAP_INFO0, ui32TrappedBPCoreNum, ui32TrappedBPPipeNum));
-				ui32Info1 = OSReadHWReg(psDevInfo->pvRegsBaseKM, bTrappedBPMaster?EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1:SGX_MP_CORE_PIPE_SELECT(BREAKPOINT_TRAP_INFO1, ui32TrappedBPCoreNum, ui32TrappedBPPipeNum));
-#else 
-				ui32Info0 = OSReadHWReg(psDevInfo->pvRegsBaseKM, bTrappedBPMaster?EUR_CR_MASTER_BREAKPOINT_TRAP_INFO0:SGX_MP_CORE_SELECT(EUR_CR_BREAKPOINT_TRAP_INFO0, ui32TrappedBPCoreNum));
-				ui32Info1 = OSReadHWReg(psDevInfo->pvRegsBaseKM, bTrappedBPMaster?EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1:SGX_MP_CORE_SELECT(EUR_CR_BREAKPOINT_TRAP_INFO1, ui32TrappedBPCoreNum));
-#endif 
-#else 
-				ui32Info0 = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BREAKPOINT_TRAP_INFO0);
-				ui32Info1 = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BREAKPOINT_TRAP_INFO1);
-#endif 
-
-#ifdef SGX_FEATURE_PERPIPE_BKPT_REGS
-				psMiscInfo->uData.sSGXBreakpointInfo.ui32BPIndex = (ui32Info1 & EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_NUMBER_MASK) >> EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_NUMBER_SHIFT;
-				psMiscInfo->uData.sSGXBreakpointInfo.sTrappedBPDevVAddr.uiAddr = ui32Info0 & EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO0_ADDRESS_MASK;
-				psMiscInfo->uData.sSGXBreakpointInfo.ui32TrappedBPBurstLength = (ui32Info1 & EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_SIZE_MASK) >> EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_SIZE_SHIFT;
-				psMiscInfo->uData.sSGXBreakpointInfo.bTrappedBPRead = !!(ui32Info1 & EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_RNW_MASK);
-				psMiscInfo->uData.sSGXBreakpointInfo.ui32TrappedBPDataMaster = (ui32Info1 & EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_DATA_MASTER_MASK) >> EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_DATA_MASTER_SHIFT;
-				psMiscInfo->uData.sSGXBreakpointInfo.ui32TrappedBPTag = (ui32Info1 & EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_TAG_MASK) >> EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_TAG_SHIFT;
-#else 
-				psMiscInfo->uData.sSGXBreakpointInfo.ui32BPIndex = (ui32Info1 & EUR_CR_BREAKPOINT_TRAP_INFO1_NUMBER_MASK) >> EUR_CR_BREAKPOINT_TRAP_INFO1_NUMBER_SHIFT;
-				psMiscInfo->uData.sSGXBreakpointInfo.sTrappedBPDevVAddr.uiAddr = ui32Info0 & EUR_CR_BREAKPOINT_TRAP_INFO0_ADDRESS_MASK;
-				psMiscInfo->uData.sSGXBreakpointInfo.ui32TrappedBPBurstLength = (ui32Info1 & EUR_CR_BREAKPOINT_TRAP_INFO1_SIZE_MASK) >> EUR_CR_BREAKPOINT_TRAP_INFO1_SIZE_SHIFT;
-				psMiscInfo->uData.sSGXBreakpointInfo.bTrappedBPRead = !!(ui32Info1 & EUR_CR_BREAKPOINT_TRAP_INFO1_RNW_MASK);
-				psMiscInfo->uData.sSGXBreakpointInfo.ui32TrappedBPDataMaster = (ui32Info1 & EUR_CR_BREAKPOINT_TRAP_INFO1_DATA_MASTER_MASK) >> EUR_CR_BREAKPOINT_TRAP_INFO1_DATA_MASTER_SHIFT;
-				psMiscInfo->uData.sSGXBreakpointInfo.ui32TrappedBPTag = (ui32Info1 & EUR_CR_BREAKPOINT_TRAP_INFO1_TAG_MASK) >> EUR_CR_BREAKPOINT_TRAP_INFO1_TAG_SHIFT;
-#endif 
-#if defined(SGX_FEATURE_MP)
-#if defined(SGX_FEATURE_PERPIPE_BKPT_REGS)
-				
-				psMiscInfo->uData.sSGXBreakpointInfo.ui32CoreNum = bTrappedBPMaster?65535:(ui32TrappedBPCoreNum + (ui32TrappedBPPipeNum<<10));
-#else 
-				
-				psMiscInfo->uData.sSGXBreakpointInfo.ui32CoreNum = bTrappedBPMaster?65535:ui32TrappedBPCoreNum;
-#endif 
-#else 
-#if defined(SGX_FEATURE_PERPIPE_BKPT_REGS)
-				
-#error non-mp perpipe regs not yet supported
-#else 
-				
-				psMiscInfo->uData.sSGXBreakpointInfo.ui32CoreNum = 65534;
-#endif 
-#endif 
-			}
-#endif 
-			return PVRSRV_OK;
-		}
-
-		case SGX_MISC_INFO_REQUEST_RESUME_BREAKPOINT:
-		{
-			
-			
-			
-#if !defined(NO_HARDWARE)
-#if defined(SGX_FEATURE_MP)
-			IMG_UINT32 ui32CoreNum;
-			IMG_BOOL bMaster;
-#if defined(SGX_FEATURE_PERPIPE_BKPT_REGS)
-			IMG_UINT32 ui32PipeNum;
-#endif
-#endif 
-			IMG_UINT32 ui32OldSeqNum, ui32NewSeqNum;
-
-#if defined(SGX_FEATURE_MP)
-#if defined(SGX_FEATURE_PERPIPE_BKPT_REGS)
-			ui32PipeNum = psMiscInfo->uData.sSGXBreakpointInfo.ui32CoreNum >> 10;
-			ui32CoreNum = psMiscInfo->uData.sSGXBreakpointInfo.ui32CoreNum & 1023;
-			bMaster = psMiscInfo->uData.sSGXBreakpointInfo.ui32CoreNum > 32767;
-#else 
-			ui32CoreNum = psMiscInfo->uData.sSGXBreakpointInfo.ui32CoreNum;
-			bMaster = ui32CoreNum > SGX_FEATURE_MP_CORE_COUNT_3D;
-#endif 
-			if (bMaster)
-			{
-				
-				
-				ui32OldSeqNum = 0x1c & OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_BREAKPOINT);
-				OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_BREAKPOINT_TRAP, EUR_CR_MASTER_BREAKPOINT_TRAP_WRNOTIFY_MASK | EUR_CR_MASTER_BREAKPOINT_TRAP_CONTINUE_MASK);
-				do
-				{
-					ui32NewSeqNum = 0x1c & OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_BREAKPOINT);
-				}
-				while (ui32OldSeqNum == ui32NewSeqNum);
-			}
-			else
-#endif 
-			{
-				
-#if defined(SGX_FEATURE_PERPIPE_BKPT_REGS)
-				ui32OldSeqNum = 0x1c & OSReadHWReg(psDevInfo->pvRegsBaseKM, SGX_MP_CORE_PIPE_SELECT(BREAKPOINT, ui32CoreNum, ui32PipeNum));
-				OSWriteHWReg(psDevInfo->pvRegsBaseKM, SGX_MP_CORE_PIPE_SELECT(BREAKPOINT_TRAP, ui32CoreNum, ui32PipeNum), EUR_CR_PARTITION_BREAKPOINT_TRAP_WRNOTIFY_MASK | EUR_CR_PARTITION_BREAKPOINT_TRAP_CONTINUE_MASK);
-				do
-				{
-					ui32NewSeqNum = 0x1c & OSReadHWReg(psDevInfo->pvRegsBaseKM, SGX_MP_CORE_PIPE_SELECT(BREAKPOINT, ui32CoreNum, ui32PipeNum));
-				}
-				while (ui32OldSeqNum == ui32NewSeqNum);
-#else 
-				ui32OldSeqNum = 0x1c & OSReadHWReg(psDevInfo->pvRegsBaseKM, SGX_MP_CORE_SELECT(EUR_CR_BREAKPOINT, ui32CoreNum));
-				OSWriteHWReg(psDevInfo->pvRegsBaseKM, SGX_MP_CORE_SELECT(EUR_CR_BREAKPOINT_TRAP, ui32CoreNum), EUR_CR_BREAKPOINT_TRAP_WRNOTIFY_MASK | EUR_CR_BREAKPOINT_TRAP_CONTINUE_MASK);
-				do
-				{
-					ui32NewSeqNum = 0x1c & OSReadHWReg(psDevInfo->pvRegsBaseKM, SGX_MP_CORE_SELECT(EUR_CR_BREAKPOINT, ui32CoreNum));
-				}
-				while (ui32OldSeqNum == ui32NewSeqNum);
-#endif 
-			}
-#endif 
-			return PVRSRV_OK;
-		}
-#endif 
-
-		case SGX_MISC_INFO_REQUEST_CLOCKSPEED:
-		{
-			psMiscInfo->uData.ui32SGXClockSpeed = psDevInfo->ui32CoreClockSpeed;
-			return PVRSRV_OK;
-		}
-
-		case SGX_MISC_INFO_REQUEST_ACTIVEPOWER:
-		{
-			psMiscInfo->uData.sActivePower.ui32NumActivePowerEvents = psDevInfo->psSGXHostCtl->ui32NumActivePowerEvents;
-			return PVRSRV_OK;
-		}
-
-		case SGX_MISC_INFO_REQUEST_LOCKUPS:
-		{
-#if defined(SUPPORT_HW_RECOVERY)
-			psMiscInfo->uData.sLockups.ui32uKernelDetectedLockups = psDevInfo->psSGXHostCtl->ui32uKernelDetectedLockups;
-			psMiscInfo->uData.sLockups.ui32HostDetectedLockups = psDevInfo->psSGXHostCtl->ui32HostDetectedLockups;
-#else
-			psMiscInfo->uData.sLockups.ui32uKernelDetectedLockups = 0;
-			psMiscInfo->uData.sLockups.ui32HostDetectedLockups = 0;
-#endif
-			return PVRSRV_OK;
-		}
-
-		case SGX_MISC_INFO_REQUEST_SPM:
-		{
-			
-			return PVRSRV_OK;
-		}
-
-		case SGX_MISC_INFO_REQUEST_SGXREV:
-		{
-			PVRSRV_SGX_MISCINFO_FEATURES		*psSGXFeatures;
-			eError = SGXGetMiscInfoUkernel(psDevInfo, psDeviceNode, hDevMemContext);
-			if(eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "An error occurred in SGXGetMiscInfoUkernel: %d\n",
-						eError));
-				return eError;
-			}
-			psSGXFeatures = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->sSGXFeatures;
-
-			
-			psMiscInfo->uData.sSGXFeatures = *psSGXFeatures;
-
-			
-			PVR_DPF((PVR_DBG_MESSAGE, "SGXGetMiscInfoKM: Core 0x%x, sw ID 0x%x, sw Rev 0x%x\n",
-					psSGXFeatures->ui32CoreRev,
-					psSGXFeatures->ui32CoreIdSW,
-					psSGXFeatures->ui32CoreRevSW));
-			PVR_DPF((PVR_DBG_MESSAGE, "SGXGetMiscInfoKM: DDK version 0x%x, DDK build 0x%x\n",
-					psSGXFeatures->ui32DDKVersion,
-					psSGXFeatures->ui32DDKBuild));
-
-			
-			return PVRSRV_OK;
-		}
-
-		case SGX_MISC_INFO_REQUEST_DRIVER_SGXREV:
-		{
-			PVRSRV_SGX_MISCINFO_FEATURES		*psSGXFeatures;
-
-			psSGXFeatures = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->sSGXFeatures;
-
-			
-			OSMemSet(psMemInfo->pvLinAddrKM, 0,
-					sizeof(PVRSRV_SGX_MISCINFO_INFO));
-
-			psSGXFeatures->ui32DDKVersion =
-				(PVRVERSION_MAJ << 16) |
-				(PVRVERSION_MIN << 8) |
-				PVRVERSION_BRANCH;
-			psSGXFeatures->ui32DDKBuild = PVRVERSION_BUILD;
-
-			
-			psSGXFeatures->ui32BuildOptions = (SGX_BUILD_OPTIONS);
-
-#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
-			
-			psSGXFeatures->sDevVAEDMStatusBuffer = psDevInfo->psKernelEDMStatusBufferMemInfo->sDevVAddr;
-			psSGXFeatures->pvEDMStatusBuffer = psDevInfo->psKernelEDMStatusBufferMemInfo->pvLinAddrKM;
-#endif
-
-			
-			psMiscInfo->uData.sSGXFeatures = *psSGXFeatures;
-			return PVRSRV_OK;
-		}
-
-#if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG)
-		case SGX_MISC_INFO_REQUEST_MEMREAD:
-		case SGX_MISC_INFO_REQUEST_MEMCOPY:
-		{
-			PVRSRV_ERROR eError;
-			PVRSRV_SGX_MISCINFO_FEATURES		*psSGXFeatures;
-			PVRSRV_SGX_MISCINFO_MEMACCESS		*psSGXMemSrc;	
-			PVRSRV_SGX_MISCINFO_MEMACCESS		*psSGXMemDest;	
-
-			{				
-				
-				*pui32MiscInfoFlags |= PVRSRV_USSE_MISCINFO_MEMREAD;
-				psSGXMemSrc = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->sSGXMemAccessSrc;
-
-				if(psMiscInfo->sDevVAddrSrc.uiAddr != 0)
-				{
-					psSGXMemSrc->sDevVAddr = psMiscInfo->sDevVAddrSrc; 
-				}
-				else
-				{
-					return PVRSRV_ERROR_INVALID_PARAMS;
-				}				
-			}
-
-			if( psMiscInfo->eRequest == SGX_MISC_INFO_REQUEST_MEMCOPY)
-			{				
-				
-				*pui32MiscInfoFlags |= PVRSRV_USSE_MISCINFO_MEMWRITE;
-				psSGXMemDest = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->sSGXMemAccessDest;
-				
-				if(psMiscInfo->sDevVAddrDest.uiAddr != 0)
-				{
-					psSGXMemDest->sDevVAddr = psMiscInfo->sDevVAddrDest; 
-				}
-				else
-				{
-					return PVRSRV_ERROR_INVALID_PARAMS;
-				}
-			}
-
-			
-			if(psMiscInfo->hDevMemContext != IMG_NULL)
-			{
-				SGXGetMMUPDAddrKM( (IMG_HANDLE)psDeviceNode, hDevMemContext, &psSGXMemSrc->sPDDevPAddr);
-				
-				
-				psSGXMemDest->sPDDevPAddr = psSGXMemSrc->sPDDevPAddr;
-			}
-			else
-			{
-				return PVRSRV_ERROR_INVALID_PARAMS;
-			}
-
-			
-			eError = SGXGetMiscInfoUkernel(psDevInfo, psDeviceNode);
-			if(eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "An error occurred in SGXGetMiscInfoUkernel: %d\n",
-						eError));
-				return eError;
-			}
-			psSGXFeatures = &((PVRSRV_SGX_MISCINFO_INFO*)(psMemInfo->pvLinAddrKM))->sSGXFeatures;
-
-#if !defined(SGX_FEATURE_MULTIPLE_MEM_CONTEXTS)
-			if(*pui32MiscInfoFlags & PVRSRV_USSE_MISCINFO_MEMREAD_FAIL)
-			{
-				return PVRSRV_ERROR_INVALID_MISCINFO;
-			}
-#endif
-			
-			psMiscInfo->uData.sSGXFeatures = *psSGXFeatures;
-			return PVRSRV_OK;
-		}
-#endif 
-
-#if defined(SUPPORT_SGX_HWPERF)
-		case SGX_MISC_INFO_REQUEST_SET_HWPERF_STATUS:
-		{
-			PVRSRV_SGX_MISCINFO_SET_HWPERF_STATUS	*psSetHWPerfStatus = &psMiscInfo->uData.sSetHWPerfStatus;
-			const IMG_UINT32	ui32ValidFlags = PVRSRV_SGX_HWPERF_STATUS_RESET_COUNTERS |
-												 PVRSRV_SGX_HWPERF_STATUS_GRAPHICS_ON |
-												 PVRSRV_SGX_HWPERF_STATUS_PERIODIC_ON |
-												 PVRSRV_SGX_HWPERF_STATUS_MK_EXECUTION_ON;
-			SGXMKIF_COMMAND		sCommandData = {0};
-
-			
-			if ((psSetHWPerfStatus->ui32NewHWPerfStatus & ~ui32ValidFlags) != 0)
-			{
-				return PVRSRV_ERROR_INVALID_PARAMS;
-			}
-
-			#if defined(PDUMP)
-			PDUMPCOMMENTWITHFLAGS(PDUMP_FLAGS_CONTINUOUS,
-								  "SGX ukernel HWPerf status %u\n",
-								  psSetHWPerfStatus->ui32NewHWPerfStatus);
-			#endif 
-
-			
-			#if defined(SGX_FEATURE_EXTENDED_PERF_COUNTERS)
-			OSMemCopy(&psDevInfo->psSGXHostCtl->aui32PerfGroup[0],
-					  &psSetHWPerfStatus->aui32PerfGroup[0],
-					  sizeof(psDevInfo->psSGXHostCtl->aui32PerfGroup));
-			OSMemCopy(&psDevInfo->psSGXHostCtl->aui32PerfBit[0],
-					  &psSetHWPerfStatus->aui32PerfBit[0],
-					  sizeof(psDevInfo->psSGXHostCtl->aui32PerfBit));
-			#if defined(PDUMP)
-			PDUMPMEM(IMG_NULL, psDevInfo->psKernelSGXHostCtlMemInfo,
-					 offsetof(SGXMKIF_HOST_CTL, aui32PerfGroup),
-					 sizeof(psDevInfo->psSGXHostCtl->aui32PerfGroup),
-					 PDUMP_FLAGS_CONTINUOUS,
-					 MAKEUNIQUETAG(psDevInfo->psKernelSGXHostCtlMemInfo));
-			PDUMPMEM(IMG_NULL, psDevInfo->psKernelSGXHostCtlMemInfo,
-					 offsetof(SGXMKIF_HOST_CTL, aui32PerfBit),
-					 sizeof(psDevInfo->psSGXHostCtl->aui32PerfBit),
-					 PDUMP_FLAGS_CONTINUOUS,
-					 MAKEUNIQUETAG(psDevInfo->psKernelSGXHostCtlMemInfo));
-			#endif 
-			#else
-			psDevInfo->psSGXHostCtl->ui32PerfGroup = psSetHWPerfStatus->ui32PerfGroup;
-			#if defined(PDUMP)
-			PDUMPMEM(IMG_NULL, psDevInfo->psKernelSGXHostCtlMemInfo,
-					 offsetof(SGXMKIF_HOST_CTL, ui32PerfGroup),
-					 sizeof(psDevInfo->psSGXHostCtl->ui32PerfGroup),
-					 PDUMP_FLAGS_CONTINUOUS,
-					 MAKEUNIQUETAG(psDevInfo->psKernelSGXHostCtlMemInfo));
-			#endif 
-			#endif 
-
-			
-			sCommandData.ui32Data[0] = psSetHWPerfStatus->ui32NewHWPerfStatus;
-			eError = SGXScheduleCCBCommandKM(psDeviceNode,
-											 SGXMKIF_CMD_SETHWPERFSTATUS,
-											 &sCommandData,
-											 KERNEL_ID,
-											 0,
-											 hDevMemContext,
-											 IMG_FALSE);
-			return eError;
-		}
-#endif 
-
-		case SGX_MISC_INFO_DUMP_DEBUG_INFO:
-		{
-			PVR_LOG(("User requested SGX debug info"));
-
-			
-			SGXDumpDebugInfo(psDeviceNode->pvDevice, IMG_FALSE);
-
-			return PVRSRV_OK;
-		}
-
-		case SGX_MISC_INFO_PANIC:
-		{
-			PVR_LOG(("User requested SGX panic"));
-
-			SGXPanic(psDeviceNode->pvDevice);
-
-			return PVRSRV_OK;
-		}
-
-		default:
-		{
-			
-			return PVRSRV_ERROR_INVALID_PARAMS;
-		}
-	}
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR SGXReadHWPerfCBKM(IMG_HANDLE					hDevHandle,
-							   IMG_UINT32					ui32ArraySize,
-							   PVRSRV_SGX_HWPERF_CB_ENTRY	*psClientHWPerfEntry,
-							   IMG_UINT32					*pui32DataCount,
-							   IMG_UINT32					*pui32ClockSpeed,
-							   IMG_UINT32					*pui32HostTimeStamp)
-{
-	PVRSRV_ERROR    	eError = PVRSRV_OK;
-	PVRSRV_DEVICE_NODE	*psDeviceNode = hDevHandle;
-	PVRSRV_SGXDEV_INFO	*psDevInfo = psDeviceNode->pvDevice;
-	SGXMKIF_HWPERF_CB	*psHWPerfCB = psDevInfo->psKernelHWPerfCBMemInfo->pvLinAddrKM;
-	IMG_UINT			i;
-
-	for (i = 0;
-		 psHWPerfCB->ui32Woff != psHWPerfCB->ui32Roff && i < ui32ArraySize;
-		 i++)
-	{
-		SGXMKIF_HWPERF_CB_ENTRY *psMKPerfEntry = &psHWPerfCB->psHWPerfCBData[psHWPerfCB->ui32Roff];
-
-		psClientHWPerfEntry[i].ui32FrameNo = psMKPerfEntry->ui32FrameNo;
-		psClientHWPerfEntry[i].ui32PID = psMKPerfEntry->ui32PID;
-		psClientHWPerfEntry[i].ui32RTData = psMKPerfEntry->ui32RTData;
-		psClientHWPerfEntry[i].ui32Type = psMKPerfEntry->ui32Type;
-		psClientHWPerfEntry[i].ui32Ordinal	= psMKPerfEntry->ui32Ordinal;
-		psClientHWPerfEntry[i].ui32Info	= psMKPerfEntry->ui32Info;
-		psClientHWPerfEntry[i].ui32Clocksx16 = SGXConvertTimeStamp(psDevInfo,
-													psMKPerfEntry->ui32TimeWraps,
-													psMKPerfEntry->ui32Time);
-		OSMemCopy(&psClientHWPerfEntry[i].ui32Counters[0][0],
-				  &psMKPerfEntry->ui32Counters[0][0],
-				  sizeof(psMKPerfEntry->ui32Counters));
-
-		OSMemCopy(&psClientHWPerfEntry[i].ui32MiscCounters[0][0],
-				  &psMKPerfEntry->ui32MiscCounters[0][0],
-				  sizeof(psMKPerfEntry->ui32MiscCounters));
-
-		psHWPerfCB->ui32Roff = (psHWPerfCB->ui32Roff + 1) & (SGXMKIF_HWPERF_CB_SIZE - 1);
-	}
-
-	*pui32DataCount = i;
-	*pui32ClockSpeed = psDevInfo->ui32CoreClockSpeed;
-	*pui32HostTimeStamp = OSClockus();
-
-	return eError;
-}
-
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxkick.c b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxkick.c
deleted file mode 100644
index d1220cf..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxkick.c
+++ /dev/null
@@ -1,784 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <stddef.h> 
-#include "services_headers.h"
-#include "sgxinfo.h"
-#include "sgxinfokm.h"
-#if defined (PDUMP)
-#include "sgxapi_km.h"
-#include "pdump_km.h"
-#endif
-#include "sgx_bridge_km.h"
-#include "osfunc.h"
-#include "pvr_debug.h"
-#include "sgxutils.h"
-#include "ttrace.h"
-
-IMG_EXPORT
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR SGXDoKickKM(IMG_HANDLE hDevHandle, SGX_CCB_KICK_KM *psCCBKick)
-#else
-PVRSRV_ERROR SGXDoKickKM(IMG_HANDLE hDevHandle, SGX_CCB_KICK *psCCBKick)
-#endif
-{
-	PVRSRV_ERROR eError;
-	PVRSRV_KERNEL_SYNC_INFO	*psSyncInfo;
-	PVRSRV_KERNEL_MEM_INFO	*psCCBMemInfo = (PVRSRV_KERNEL_MEM_INFO *) psCCBKick->hCCBKernelMemInfo;
-	SGXMKIF_CMDTA_SHARED *psTACmd;
-	IMG_UINT32 i;
-	IMG_HANDLE hDevMemContext = IMG_NULL;
-#if defined(FIX_HW_BRN_31620)
-	hDevMemContext = psCCBKick->hDevMemContext;
-#endif
-	PVR_TTRACE(PVRSRV_TRACE_GROUP_KICK, PVRSRV_TRACE_CLASS_FUNCTION_ENTER, KICK_TOKEN_DOKICK);
-
-	if (!CCB_OFFSET_IS_VALID(SGXMKIF_CMDTA_SHARED, psCCBMemInfo, psCCBKick, ui32CCBOffset))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXDoKickKM: Invalid CCB offset"));
-		PVR_TTRACE(PVRSRV_TRACE_GROUP_KICK, PVRSRV_TRACE_CLASS_FUNCTION_EXIT, KICK_TOKEN_DOKICK);
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-	
-	
-	psTACmd = CCB_DATA_FROM_OFFSET(SGXMKIF_CMDTA_SHARED, psCCBMemInfo, psCCBKick, ui32CCBOffset);
-
-	PVR_TTRACE(PVRSRV_TRACE_GROUP_KICK, PVRSRV_TRACE_CLASS_CMD_START, KICK_TOKEN_DOKICK);
-	PVR_TTRACE_UI32(PVRSRV_TRACE_GROUP_KICK, PVRSRV_TRACE_CLASS_CCB,
-			KICK_TOKEN_CCB_OFFSET, psCCBKick->ui32CCBOffset);
-
-	
-	if (psCCBKick->hTA3DSyncInfo)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->hTA3DSyncInfo;
-
-		PVR_TTRACE_SYNC_OBJECT(PVRSRV_TRACE_GROUP_KICK, KICK_TOKEN_TA3D_SYNC,
-					  psSyncInfo, PVRSRV_SYNCOP_SAMPLE);
-
-		psTACmd->sTA3DDependency.sWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr;
-
-		psTACmd->sTA3DDependency.ui32WriteOpsPendingVal   = psSyncInfo->psSyncData->ui32WriteOpsPending;
-
-		if (psCCBKick->bTADependency)
-		{
-			psSyncInfo->psSyncData->ui32WriteOpsPending++;
-		}
-	}
-
-	if (psCCBKick->hTASyncInfo != IMG_NULL)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->hTASyncInfo;
-
-		PVR_TTRACE_SYNC_OBJECT(PVRSRV_TRACE_GROUP_KICK, KICK_TOKEN_TA_SYNC,
-					  psSyncInfo, PVRSRV_SYNCOP_SAMPLE);
-
-		psTACmd->sTATQSyncReadOpsCompleteDevVAddr  = psSyncInfo->sReadOpsCompleteDevVAddr;
-		psTACmd->sTATQSyncWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr;
-
-		psTACmd->ui32TATQSyncReadOpsPendingVal = psSyncInfo->psSyncData->ui32ReadOpsPending++;
-		psTACmd->ui32TATQSyncWriteOpsPendingVal = psSyncInfo->psSyncData->ui32WriteOpsPending;
-	}
-
-	if (psCCBKick->h3DSyncInfo != IMG_NULL)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->h3DSyncInfo;
-
-		PVR_TTRACE_SYNC_OBJECT(PVRSRV_TRACE_GROUP_KICK, KICK_TOKEN_3D_SYNC,
-					  psSyncInfo, PVRSRV_SYNCOP_SAMPLE);
-
-		psTACmd->s3DTQSyncReadOpsCompleteDevVAddr  = psSyncInfo->sReadOpsCompleteDevVAddr;
-		psTACmd->s3DTQSyncWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr;
-
-		psTACmd->ui323DTQSyncReadOpsPendingVal = psSyncInfo->psSyncData->ui32ReadOpsPending++;
-		psTACmd->ui323DTQSyncWriteOpsPendingVal  = psSyncInfo->psSyncData->ui32WriteOpsPending;
-	}
-
-	psTACmd->ui32NumTAStatusVals = psCCBKick->ui32NumTAStatusVals;
-	if (psCCBKick->ui32NumTAStatusVals != 0)
-	{
-		
-		for (i = 0; i < psCCBKick->ui32NumTAStatusVals; i++)
-		{
-#if defined(SUPPORT_SGX_NEW_STATUS_VALS)
-			psTACmd->sCtlTAStatusInfo[i] = psCCBKick->asTAStatusUpdate[i].sCtlStatus;
-#else
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->ahTAStatusSyncInfo[i];
-			psTACmd->sCtlTAStatusInfo[i].sStatusDevAddr = psSyncInfo->sReadOpsCompleteDevVAddr;
-			psTACmd->sCtlTAStatusInfo[i].ui32StatusValue = psSyncInfo->psSyncData->ui32ReadOpsPending;
-#endif
-		}
-	}
-
-	psTACmd->ui32Num3DStatusVals = psCCBKick->ui32Num3DStatusVals;
-	if (psCCBKick->ui32Num3DStatusVals != 0)
-	{
-		
-		for (i = 0; i < psCCBKick->ui32Num3DStatusVals; i++)
-		{
-#if defined(SUPPORT_SGX_NEW_STATUS_VALS)
-			psTACmd->sCtl3DStatusInfo[i] = psCCBKick->as3DStatusUpdate[i].sCtlStatus;
-#else
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->ah3DStatusSyncInfo[i];
-			psTACmd->sCtl3DStatusInfo[i].sStatusDevAddr = psSyncInfo->sReadOpsCompleteDevVAddr;
-			psTACmd->sCtl3DStatusInfo[i].ui32StatusValue = psSyncInfo->psSyncData->ui32ReadOpsPending;
-#endif
-		}
-	}
-
-
-#if defined(SUPPORT_SGX_GENERALISED_SYNCOBJECTS)
-	
-	psTACmd->ui32NumTASrcSyncs = psCCBKick->ui32NumTASrcSyncs;
-	for (i=0; i<psCCBKick->ui32NumTASrcSyncs; i++)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ahTASrcKernelSyncInfo[i];
-
-		psTACmd->asTASrcSyncs[i].sWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr;
-		psTACmd->asTASrcSyncs[i].sReadOpsCompleteDevVAddr = psSyncInfo->sReadOpsCompleteDevVAddr;
-
-		
-		psTACmd->asTASrcSyncs[i].ui32ReadOpsPendingVal = psSyncInfo->psSyncData->ui32ReadOpsPending++;
-		
-		psTACmd->asTASrcSyncs[i].ui32WriteOpsPendingVal = psSyncInfo->psSyncData->ui32WriteOpsPending;
-	}
-
-	psTACmd->ui32NumTADstSyncs = psCCBKick->ui32NumTADstSyncs;
-	for (i=0; i<psCCBKick->ui32NumTADstSyncs; i++)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ahTADstKernelSyncInfo[i];
-
-		psTACmd->asTADstSyncs[i].sWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr;
-		psTACmd->asTADstSyncs[i].sReadOpsCompleteDevVAddr = psSyncInfo->sReadOpsCompleteDevVAddr;
-
-		
-		psTACmd->asTADstSyncs[i].ui32ReadOpsPendingVal = psSyncInfo->psSyncData->ui32ReadOpsPending;
-		
-		psTACmd->asTADstSyncs[i].ui32WriteOpsPendingVal = psSyncInfo->psSyncData->ui32WriteOpsPending++;
-	}
-
-	psTACmd->ui32Num3DSrcSyncs = psCCBKick->ui32Num3DSrcSyncs;
-	for (i=0; i<psCCBKick->ui32Num3DSrcSyncs; i++)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ah3DSrcKernelSyncInfo[i];
-
-		psTACmd->as3DSrcSyncs[i].sWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr;
-		psTACmd->as3DSrcSyncs[i].sReadOpsCompleteDevVAddr = psSyncInfo->sReadOpsCompleteDevVAddr;
-
-		
-		psTACmd->as3DSrcSyncs[i].ui32ReadOpsPendingVal = psSyncInfo->psSyncData->ui32ReadOpsPending++;
-		
-		psTACmd->as3DSrcSyncs[i].ui32WriteOpsPendingVal = psSyncInfo->psSyncData->ui32WriteOpsPending;
-	}
-#else 
-	
-	psTACmd->ui32NumSrcSyncs = psCCBKick->ui32NumSrcSyncs;
-	for (i=0; i<psCCBKick->ui32NumSrcSyncs; i++)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ahSrcKernelSyncInfo[i];
-
-		PVR_TTRACE_SYNC_OBJECT(PVRSRV_TRACE_GROUP_KICK, KICK_TOKEN_SRC_SYNC,
-					  psSyncInfo, PVRSRV_SYNCOP_SAMPLE);
-
-		psTACmd->asSrcSyncs[i].sWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr;
-		psTACmd->asSrcSyncs[i].sReadOpsCompleteDevVAddr = psSyncInfo->sReadOpsCompleteDevVAddr;
-
-		
-		psTACmd->asSrcSyncs[i].ui32ReadOpsPendingVal = psSyncInfo->psSyncData->ui32ReadOpsPending++;
-		
-		psTACmd->asSrcSyncs[i].ui32WriteOpsPendingVal = psSyncInfo->psSyncData->ui32WriteOpsPending;
-	}
-#endif
-
-	if (psCCBKick->bFirstKickOrResume && psCCBKick->ui32NumDstSyncObjects > 0)
-	{
-		PVRSRV_KERNEL_MEM_INFO	*psHWDstSyncListMemInfo =
-								(PVRSRV_KERNEL_MEM_INFO *)psCCBKick->hKernelHWSyncListMemInfo;
-		SGXMKIF_HWDEVICE_SYNC_LIST *psHWDeviceSyncList = psHWDstSyncListMemInfo->pvLinAddrKM;
-		IMG_UINT32	ui32NumDstSyncs = psCCBKick->ui32NumDstSyncObjects;
-
-		PVR_ASSERT(((PVRSRV_KERNEL_MEM_INFO *)psCCBKick->hKernelHWSyncListMemInfo)->uAllocSize >= (sizeof(SGXMKIF_HWDEVICE_SYNC_LIST) +
-								(sizeof(PVRSRV_DEVICE_SYNC_OBJECT) * ui32NumDstSyncs)));
-
-		psHWDeviceSyncList->ui32NumSyncObjects = ui32NumDstSyncs;
-#if defined(PDUMP)
-		if (PDumpIsCaptureFrameKM())
-		{
-			PDUMPCOMMENT("HWDeviceSyncList for TACmd\r\n");
-			PDUMPMEM(IMG_NULL,
-					 psHWDstSyncListMemInfo,
-					 0,
-					 sizeof(SGXMKIF_HWDEVICE_SYNC_LIST),
-					 0,
-					 MAKEUNIQUETAG(psHWDstSyncListMemInfo));
-		}
-#endif
-
-		for (i=0; i<ui32NumDstSyncs; i++)
-		{
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->pahDstSyncHandles[i];
-
-			if (psSyncInfo)
-			{
-
-				PVR_TTRACE_SYNC_OBJECT(PVRSRV_TRACE_GROUP_KICK, KICK_TOKEN_DST_SYNC,
-							psSyncInfo, PVRSRV_SYNCOP_SAMPLE);
-
-				psHWDeviceSyncList->asSyncData[i].sWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr;
-				psHWDeviceSyncList->asSyncData[i].sReadOpsCompleteDevVAddr = psSyncInfo->sReadOpsCompleteDevVAddr;
-
-				psHWDeviceSyncList->asSyncData[i].ui32ReadOpsPendingVal = psSyncInfo->psSyncData->ui32ReadOpsPending;
-				psHWDeviceSyncList->asSyncData[i].ui32WriteOpsPendingVal = psSyncInfo->psSyncData->ui32WriteOpsPending++;
-
-	#if defined(PDUMP)
-				if (PDumpIsCaptureFrameKM())
-				{
-					IMG_UINT32 ui32ModifiedValue;
-					IMG_UINT32 ui32SyncOffset = offsetof(SGXMKIF_HWDEVICE_SYNC_LIST, asSyncData)
-												+ (i * sizeof(PVRSRV_DEVICE_SYNC_OBJECT));
-					IMG_UINT32 ui32WOpsOffset = ui32SyncOffset
-												+ offsetof(PVRSRV_DEVICE_SYNC_OBJECT, ui32WriteOpsPendingVal);
-					IMG_UINT32 ui32ROpsOffset = ui32SyncOffset
-												+ offsetof(PVRSRV_DEVICE_SYNC_OBJECT, ui32ReadOpsPendingVal);
-
-					PDUMPCOMMENT("HWDeviceSyncObject for RT: %i\r\n", i);
-
-					PDUMPMEM(IMG_NULL,
-							 psHWDstSyncListMemInfo,
-							 ui32SyncOffset,
-							 sizeof(PVRSRV_DEVICE_SYNC_OBJECT),
-							 0,
-							 MAKEUNIQUETAG(psHWDstSyncListMemInfo));
-
-					if ((psSyncInfo->psSyncData->ui32LastOpDumpVal == 0) &&
-						(psSyncInfo->psSyncData->ui32LastReadOpDumpVal == 0))
-					{
-						
-						PDUMPCOMMENT("Init RT ROpsComplete\r\n");
-						PDUMPMEM(&psSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-							psSyncInfo->psSyncDataMemInfoKM,
-							offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete),
-							sizeof(psSyncInfo->psSyncData->ui32ReadOpsComplete),
-							0,
-							MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM));
-						
-						PDUMPCOMMENT("Init RT WOpsComplete\r\n");
-							PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-								psSyncInfo->psSyncDataMemInfoKM,
-								offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete),
-								sizeof(psSyncInfo->psSyncData->ui32WriteOpsComplete),
-								0,
-								MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM));
-					}
-
-					psSyncInfo->psSyncData->ui32LastOpDumpVal++;
-
-					ui32ModifiedValue = psSyncInfo->psSyncData->ui32LastOpDumpVal - 1;
-
-					PDUMPCOMMENT("Modify RT %d WOpPendingVal in HWDevSyncList\r\n", i);
-
-					PDUMPMEM(&ui32ModifiedValue,
-						psHWDstSyncListMemInfo,
-						ui32WOpsOffset,
-						sizeof(IMG_UINT32),
-						0,
-						MAKEUNIQUETAG(psHWDstSyncListMemInfo));
-
-					ui32ModifiedValue = 0;
-					PDUMPCOMMENT("Modify RT %d ROpsPendingVal in HWDevSyncList\r\n", i);
-
-					PDUMPMEM(&psSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-						 psHWDstSyncListMemInfo,
-						 ui32ROpsOffset,
-						 sizeof(IMG_UINT32),
-						 0,
-						MAKEUNIQUETAG(psHWDstSyncListMemInfo));
-				}
-	#endif	
-			}
-			else
-			{
-				psHWDeviceSyncList->asSyncData[i].sWriteOpsCompleteDevVAddr.uiAddr = 0;
-				psHWDeviceSyncList->asSyncData[i].sReadOpsCompleteDevVAddr.uiAddr = 0;
-
-				psHWDeviceSyncList->asSyncData[i].ui32ReadOpsPendingVal = 0;
-				psHWDeviceSyncList->asSyncData[i].ui32WriteOpsPendingVal = 0;
-			}
-		}
-	}
-	
-	
-
-
-	psTACmd->ui32CtrlFlags |= SGXMKIF_CMDTA_CTRLFLAGS_READY;
-
-#if defined(PDUMP)
-	if (PDumpIsCaptureFrameKM())
-	{
-		PDUMPCOMMENT("Shared part of TA command\r\n");
-
-		PDUMPMEM(psTACmd,
-				 psCCBMemInfo,
-				 psCCBKick->ui32CCBDumpWOff,
-				 sizeof(SGXMKIF_CMDTA_SHARED),
-				 0,
-				 MAKEUNIQUETAG(psCCBMemInfo));
-
-#if defined(SUPPORT_SGX_GENERALISED_SYNCOBJECTS)
-		for (i=0; i<psCCBKick->ui32NumTASrcSyncs; i++)
-		{
-			IMG_UINT32 	ui32ModifiedValue;
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ahTASrcKernelSyncInfo[i];
-
-			if ((psSyncInfo->psSyncData->ui32LastOpDumpVal == 0) &&
-				(psSyncInfo->psSyncData->ui32LastReadOpDumpVal == 0))
-			{
-				
-				PDUMPCOMMENT("Init RT TA-SRC ROpsComplete\r\n", i);
-				PDUMPMEM(&psSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-					psSyncInfo->psSyncDataMemInfoKM,
-					offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete),
-					sizeof(psSyncInfo->psSyncData->ui32ReadOpsComplete),
-					0,
-					MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM));
-				
-				PDUMPCOMMENT("Init RT TA-SRC WOpsComplete\r\n");
-					PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-						psSyncInfo->psSyncDataMemInfoKM,
-						offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete),
-						sizeof(psSyncInfo->psSyncData->ui32WriteOpsComplete),
-						0,
-						MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM));
-			}
-
-			psSyncInfo->psSyncData->ui32LastReadOpDumpVal++;
-
-			ui32ModifiedValue = psSyncInfo->psSyncData->ui32LastReadOpDumpVal - 1;
-
-			PDUMPCOMMENT("Modify TA SrcSync %d ROpsPendingVal\r\n", i);
-
-			PDUMPMEM(&ui32ModifiedValue,
-				 psCCBMemInfo,
-				 psCCBKick->ui32CCBDumpWOff + offsetof(SGXMKIF_CMDTA_SHARED, asTASrcSyncs) +
-					(i * sizeof(PVRSRV_DEVICE_SYNC_OBJECT)) + offsetof(PVRSRV_DEVICE_SYNC_OBJECT, ui32ReadOpsPendingVal),
-				 sizeof(IMG_UINT32),
-				 0,
-				MAKEUNIQUETAG(psCCBMemInfo));
-
-			PDUMPCOMMENT("Modify TA SrcSync %d WOpPendingVal\r\n", i);
-
-			PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-				psCCBMemInfo,
-				psCCBKick->ui32CCBDumpWOff + offsetof(SGXMKIF_CMDTA_SHARED, asTASrcSyncs) +
-					(i * sizeof(PVRSRV_DEVICE_SYNC_OBJECT)) + offsetof(PVRSRV_DEVICE_SYNC_OBJECT, ui32WriteOpsPendingVal),
-				sizeof(IMG_UINT32),
-				0,
-				MAKEUNIQUETAG(psCCBMemInfo));
-		}
-
-		for (i=0; i<psCCBKick->ui32NumTADstSyncs; i++)
-		{
-			IMG_UINT32 	ui32ModifiedValue;
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ahTADstKernelSyncInfo[i];
-
-			if ((psSyncInfo->psSyncData->ui32LastOpDumpVal == 0) &&
-				(psSyncInfo->psSyncData->ui32LastReadOpDumpVal == 0))
-			{
-				
-				PDUMPCOMMENT("Init RT TA-DST ROpsComplete\r\n", i);
-				PDUMPMEM(&psSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-					psSyncInfo->psSyncDataMemInfoKM,
-					offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete),
-					sizeof(psSyncInfo->psSyncData->ui32ReadOpsComplete),
-					0,
-					MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM));
-				
-				PDUMPCOMMENT("Init RT TA-DST WOpsComplete\r\n");
-					PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-						psSyncInfo->psSyncDataMemInfoKM,
-						offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete),
-						sizeof(psSyncInfo->psSyncData->ui32WriteOpsComplete),
-						0,
-						MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM));
-			}
-
-			psSyncInfo->psSyncData->ui32LastOpDumpVal++;
-
-			ui32ModifiedValue = psSyncInfo->psSyncData->ui32LastOpDumpVal - 1;
-
-			PDUMPCOMMENT("Modify TA DstSync %d WOpPendingVal\r\n", i);
-
-			PDUMPMEM(&ui32ModifiedValue,
-				 psCCBMemInfo,
-				 psCCBKick->ui32CCBDumpWOff + offsetof(SGXMKIF_CMDTA_SHARED, asTADstSyncs) +
-					(i * sizeof(PVRSRV_DEVICE_SYNC_OBJECT)) + offsetof(PVRSRV_DEVICE_SYNC_OBJECT, ui32WriteOpsPendingVal),
-				 sizeof(IMG_UINT32),
-				 0,
-				MAKEUNIQUETAG(psCCBMemInfo));
-
-			PDUMPCOMMENT("Modify TA DstSync %d ROpsPendingVal\r\n", i);
-
-			PDUMPMEM(&psSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-				psCCBMemInfo,
-				psCCBKick->ui32CCBDumpWOff + offsetof(SGXMKIF_CMDTA_SHARED, asTADstSyncs) +
-					(i * sizeof(PVRSRV_DEVICE_SYNC_OBJECT)) + offsetof(PVRSRV_DEVICE_SYNC_OBJECT, ui32ReadOpsPendingVal),
-				sizeof(IMG_UINT32),
-				0,
-				MAKEUNIQUETAG(psCCBMemInfo));
-		}
-
-		for (i=0; i<psCCBKick->ui32Num3DSrcSyncs; i++)
-		{
-			IMG_UINT32 	ui32ModifiedValue;
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ah3DSrcKernelSyncInfo[i];
-
-			if ((psSyncInfo->psSyncData->ui32LastOpDumpVal == 0) &&
-				(psSyncInfo->psSyncData->ui32LastReadOpDumpVal == 0))
-			{
-				
-				PDUMPCOMMENT("Init RT 3D-SRC ROpsComplete\r\n", i);
-				PDUMPMEM(&psSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-					psSyncInfo->psSyncDataMemInfoKM,
-					offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete),
-					sizeof(psSyncInfo->psSyncData->ui32ReadOpsComplete),
-					0,
-					MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM));
-				
-				PDUMPCOMMENT("Init RT 3D-SRC WOpsComplete\r\n");
-					PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-						psSyncInfo->psSyncDataMemInfoKM,
-						offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete),
-						sizeof(psSyncInfo->psSyncData->ui32WriteOpsComplete),
-						0,
-						MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM));
-			}
-
-			psSyncInfo->psSyncData->ui32LastReadOpDumpVal++;
-
-			ui32ModifiedValue = psSyncInfo->psSyncData->ui32LastReadOpDumpVal - 1;
-
-			PDUMPCOMMENT("Modify 3D SrcSync %d ROpsPendingVal\r\n", i);
-
-			PDUMPMEM(&ui32ModifiedValue,
-				 psCCBMemInfo,
-				 psCCBKick->ui32CCBDumpWOff + offsetof(SGXMKIF_CMDTA_SHARED, as3DSrcSyncs) +
-					(i * sizeof(PVRSRV_DEVICE_SYNC_OBJECT)) + offsetof(PVRSRV_DEVICE_SYNC_OBJECT, ui32ReadOpsPendingVal),
-				 sizeof(IMG_UINT32),
-				 0,
-				MAKEUNIQUETAG(psCCBMemInfo));
-
-			PDUMPCOMMENT("Modify 3D SrcSync %d WOpPendingVal\r\n", i);
-
-			PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-				psCCBMemInfo,
-				psCCBKick->ui32CCBDumpWOff + offsetof(SGXMKIF_CMDTA_SHARED, as3DSrcSyncs) +
-					(i * sizeof(PVRSRV_DEVICE_SYNC_OBJECT)) + offsetof(PVRSRV_DEVICE_SYNC_OBJECT, ui32WriteOpsPendingVal),
-				sizeof(IMG_UINT32),
-				0,
-				MAKEUNIQUETAG(psCCBMemInfo));
-		}
-#else
-		for (i=0; i<psCCBKick->ui32NumSrcSyncs; i++)
-		{
-			IMG_UINT32 	ui32ModifiedValue;
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ahSrcKernelSyncInfo[i];
-
-			if ((psSyncInfo->psSyncData->ui32LastOpDumpVal == 0) &&
-				(psSyncInfo->psSyncData->ui32LastReadOpDumpVal == 0))
-			{
-				
-				PDUMPCOMMENT("Init RT ROpsComplete\r\n");
-				PDUMPMEM(&psSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-					psSyncInfo->psSyncDataMemInfoKM,
-					offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete),
-					sizeof(psSyncInfo->psSyncData->ui32ReadOpsComplete),
-					0,
-					MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM));
-				
-				PDUMPCOMMENT("Init RT WOpsComplete\r\n");
-					PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-						psSyncInfo->psSyncDataMemInfoKM,
-						offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete),
-						sizeof(psSyncInfo->psSyncData->ui32WriteOpsComplete),
-						0,
-						MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM));
-			}
-
-			psSyncInfo->psSyncData->ui32LastReadOpDumpVal++;
-
-			ui32ModifiedValue = psSyncInfo->psSyncData->ui32LastReadOpDumpVal - 1;
-
-			PDUMPCOMMENT("Modify SrcSync %d ROpsPendingVal\r\n", i);
-
-			PDUMPMEM(&ui32ModifiedValue,
-				 psCCBMemInfo,
-				 psCCBKick->ui32CCBDumpWOff + offsetof(SGXMKIF_CMDTA_SHARED, asSrcSyncs) +
-					(i * sizeof(PVRSRV_DEVICE_SYNC_OBJECT)) + offsetof(PVRSRV_DEVICE_SYNC_OBJECT, ui32ReadOpsPendingVal),
-				 sizeof(IMG_UINT32),
-				 0,
-				MAKEUNIQUETAG(psCCBMemInfo));
-
-			PDUMPCOMMENT("Modify SrcSync %d WOpPendingVal\r\n", i);
-
-			PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-				psCCBMemInfo,
-				psCCBKick->ui32CCBDumpWOff + offsetof(SGXMKIF_CMDTA_SHARED, asSrcSyncs) +
-					(i * sizeof(PVRSRV_DEVICE_SYNC_OBJECT)) + offsetof(PVRSRV_DEVICE_SYNC_OBJECT, ui32WriteOpsPendingVal),
-				sizeof(IMG_UINT32),
-				0,
-				MAKEUNIQUETAG(psCCBMemInfo));
-		}
-
-		if (psCCBKick->hTASyncInfo != IMG_NULL)
-		{
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->hTASyncInfo;
-
-			PDUMPCOMMENT("Modify TA/TQ ROpPendingVal\r\n");
-
-			PDUMPMEM(&psSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-					psCCBMemInfo,
-					psCCBKick->ui32CCBDumpWOff + offsetof(SGXMKIF_CMDTA_SHARED, ui32TATQSyncReadOpsPendingVal),
-					sizeof(IMG_UINT32),
-					0,
-					MAKEUNIQUETAG(psCCBMemInfo));
-			psSyncInfo->psSyncData->ui32LastReadOpDumpVal++;
-		}
-
-		if (psCCBKick->h3DSyncInfo != IMG_NULL)
-		{
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->h3DSyncInfo;
-
-			PDUMPCOMMENT("Modify 3D/TQ ROpPendingVal\r\n");
-
-			PDUMPMEM(&psSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-					psCCBMemInfo,
-					psCCBKick->ui32CCBDumpWOff + offsetof(SGXMKIF_CMDTA_SHARED, ui323DTQSyncReadOpsPendingVal),
-					sizeof(IMG_UINT32),
-					0,
-					MAKEUNIQUETAG(psCCBMemInfo));
-			psSyncInfo->psSyncData->ui32LastReadOpDumpVal++;
-		}
-
-#endif
-
-		for (i = 0; i < psCCBKick->ui32NumTAStatusVals; i++)
-		{
-#if !defined(SUPPORT_SGX_NEW_STATUS_VALS)
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->ahTAStatusSyncInfo[i];
-			PDUMPCOMMENT("Modify TA status value in TA cmd\r\n");
-			PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-				 psCCBMemInfo,
-				 psCCBKick->ui32CCBDumpWOff + (IMG_UINT32)offsetof(SGXMKIF_CMDTA_SHARED, sCtlTAStatusInfo[i].ui32StatusValue),
-				 sizeof(IMG_UINT32),
-				 0,
-				MAKEUNIQUETAG(psCCBMemInfo));
-#endif
-		}
-
-		for (i = 0; i < psCCBKick->ui32Num3DStatusVals; i++)
-		{
-#if !defined(SUPPORT_SGX_NEW_STATUS_VALS)
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->ah3DStatusSyncInfo[i];
-			PDUMPCOMMENT("Modify 3D status value in TA cmd\r\n");
-			PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-				 psCCBMemInfo,
-				 psCCBKick->ui32CCBDumpWOff + (IMG_UINT32)offsetof(SGXMKIF_CMDTA_SHARED, sCtl3DStatusInfo[i].ui32StatusValue),
-				 sizeof(IMG_UINT32),
-				 0,
-				MAKEUNIQUETAG(psCCBMemInfo));
-#endif
-		}
-	}
-#endif	
-
-	PVR_TTRACE(PVRSRV_TRACE_GROUP_KICK, PVRSRV_TRACE_CLASS_CMD_END,
-			KICK_TOKEN_DOKICK);
-
-	eError = SGXScheduleCCBCommandKM(hDevHandle, SGXMKIF_CMD_TA, &psCCBKick->sCommand, KERNEL_ID, 0, hDevMemContext, psCCBKick->bLastInScene);
-	if (eError == PVRSRV_ERROR_RETRY)
-	{
-		if (psCCBKick->bFirstKickOrResume && psCCBKick->ui32NumDstSyncObjects > 0)
-		{
-			for (i=0; i < psCCBKick->ui32NumDstSyncObjects; i++)
-			{
-				
-				psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->pahDstSyncHandles[i];
-
-				if (psSyncInfo)
-				{
-					psSyncInfo->psSyncData->ui32WriteOpsPending--;
-#if defined(PDUMP)
-					if (PDumpIsCaptureFrameKM())
-					{
-						psSyncInfo->psSyncData->ui32LastOpDumpVal--;
-					}
-#endif
-				}
-			}
-		}
-
-#if defined(SUPPORT_SGX_GENERALISED_SYNCOBJECTS)
-		for (i=0; i<psCCBKick->ui32NumTASrcSyncs; i++)
-		{
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ahTASrcKernelSyncInfo[i];
-			psSyncInfo->psSyncData->ui32ReadOpsPending--;
-		}
-		for (i=0; i<psCCBKick->ui32NumTADstSyncs; i++)
-		{
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ahTADstKernelSyncInfo[i];
-			psSyncInfo->psSyncData->ui32WriteOpsPending--;
-		}
-		for (i=0; i<psCCBKick->ui32Num3DSrcSyncs; i++)
-		{
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ah3DSrcKernelSyncInfo[i];
-			psSyncInfo->psSyncData->ui32ReadOpsPending--;
-		}
-#else
-		for (i=0; i<psCCBKick->ui32NumSrcSyncs; i++)
-		{
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ahSrcKernelSyncInfo[i];
-			psSyncInfo->psSyncData->ui32ReadOpsPending--;
-		}
-#endif
-
-		PVR_TTRACE(PVRSRV_TRACE_GROUP_KICK, PVRSRV_TRACE_CLASS_FUNCTION_EXIT,
-				KICK_TOKEN_DOKICK);
-		return eError;
-	}
-	else if (PVRSRV_OK != eError)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXDoKickKM: SGXScheduleCCBCommandKM failed."));
-		PVR_TTRACE(PVRSRV_TRACE_GROUP_KICK, PVRSRV_TRACE_CLASS_FUNCTION_EXIT,
-				KICK_TOKEN_DOKICK);
-		return eError;
-	}
-
-
-#if defined(NO_HARDWARE)
-
-
-	
-	if (psCCBKick->hTA3DSyncInfo)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->hTA3DSyncInfo;
-
-		if (psCCBKick->bTADependency)
-		{
-			psSyncInfo->psSyncData->ui32WriteOpsComplete = psSyncInfo->psSyncData->ui32WriteOpsPending;
-		}
-	}
-
-	if (psCCBKick->hTASyncInfo != IMG_NULL)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->hTASyncInfo;
-
-		psSyncInfo->psSyncData->ui32ReadOpsComplete =  psSyncInfo->psSyncData->ui32ReadOpsPending;
-	}
-
-	if (psCCBKick->h3DSyncInfo != IMG_NULL)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->h3DSyncInfo;
-
-		psSyncInfo->psSyncData->ui32ReadOpsComplete =  psSyncInfo->psSyncData->ui32ReadOpsPending;
-	}
-
-	
-	for (i = 0; i < psCCBKick->ui32NumTAStatusVals; i++)
-	{
-#if defined(SUPPORT_SGX_NEW_STATUS_VALS)
-		PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo = (PVRSRV_KERNEL_MEM_INFO*)psCCBKick->asTAStatusUpdate[i].hKernelMemInfo;
-		
-		*(IMG_UINT32*)((IMG_UINTPTR_T)psKernelMemInfo->pvLinAddrKM
-						+ (psTACmd->sCtlTAStatusInfo[i].sStatusDevAddr.uiAddr
-						- psKernelMemInfo->sDevVAddr.uiAddr)) = psTACmd->sCtlTAStatusInfo[i].ui32StatusValue;
-#else
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->ahTAStatusSyncInfo[i];
-		psSyncInfo->psSyncData->ui32ReadOpsComplete = psTACmd->sCtlTAStatusInfo[i].ui32StatusValue;
-#endif
-	}
-
-#if defined(SUPPORT_SGX_GENERALISED_SYNCOBJECTS)
-	
-	for (i=0; i<psCCBKick->ui32NumTASrcSyncs; i++)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ahTASrcKernelSyncInfo[i];
-		psSyncInfo->psSyncData->ui32ReadOpsComplete =  psSyncInfo->psSyncData->ui32ReadOpsPending;
-	}
-	for (i=0; i<psCCBKick->ui32NumTADstSyncs; i++)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ahTADstKernelSyncInfo[i];
-		psSyncInfo->psSyncData->ui32WriteOpsComplete =  psSyncInfo->psSyncData->ui32WriteOpsPending;
-	}
-	for (i=0; i<psCCBKick->ui32Num3DSrcSyncs; i++)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ah3DSrcKernelSyncInfo[i];
-		psSyncInfo->psSyncData->ui32ReadOpsComplete =  psSyncInfo->psSyncData->ui32ReadOpsPending;
-	}
-#else
-	
-	for (i=0; i<psCCBKick->ui32NumSrcSyncs; i++)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *) psCCBKick->ahSrcKernelSyncInfo[i];
-		psSyncInfo->psSyncData->ui32ReadOpsComplete =  psSyncInfo->psSyncData->ui32ReadOpsPending;
-	}
-#endif
-
-	if (psCCBKick->bTerminateOrAbort)
-	{
-		if (psCCBKick->ui32NumDstSyncObjects > 0)
-		{
-			PVRSRV_KERNEL_MEM_INFO	*psHWDstSyncListMemInfo =
-								(PVRSRV_KERNEL_MEM_INFO *)psCCBKick->hKernelHWSyncListMemInfo;
-			SGXMKIF_HWDEVICE_SYNC_LIST *psHWDeviceSyncList = psHWDstSyncListMemInfo->pvLinAddrKM;
-
-			for (i=0; i<psCCBKick->ui32NumDstSyncObjects; i++)
-			{
-				psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->pahDstSyncHandles[i];
-				if (psSyncInfo)
-					psSyncInfo->psSyncData->ui32WriteOpsComplete = psHWDeviceSyncList->asSyncData[i].ui32WriteOpsPendingVal+1;
-			}
-		}
-
-		
-		for (i = 0; i < psCCBKick->ui32Num3DStatusVals; i++)
-		{
-#if defined(SUPPORT_SGX_NEW_STATUS_VALS)
-			PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo = (PVRSRV_KERNEL_MEM_INFO*)psCCBKick->as3DStatusUpdate[i].hKernelMemInfo;
-			
-			*(IMG_UINT32*)((IMG_UINTPTR_T)psKernelMemInfo->pvLinAddrKM
-							+ (psTACmd->sCtl3DStatusInfo[i].sStatusDevAddr.uiAddr
-							- psKernelMemInfo->sDevVAddr.uiAddr)) = psTACmd->sCtl3DStatusInfo[i].ui32StatusValue;
-#else
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psCCBKick->ah3DStatusSyncInfo[i];
-			psSyncInfo->psSyncData->ui32ReadOpsComplete = psTACmd->sCtl3DStatusInfo[i].ui32StatusValue;
-#endif
-		}
-	}
-#endif
-	PVR_TTRACE(PVRSRV_TRACE_GROUP_KICK, PVRSRV_TRACE_CLASS_FUNCTION_EXIT,
-			KICK_TOKEN_DOKICK);
-	return eError;
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxpower.c b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxpower.c
deleted file mode 100644
index 3947cdd..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxpower.c
+++ /dev/null
@@ -1,481 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <stddef.h>
-
-#include "sgxdefs.h"
-#include "services_headers.h"
-#include "sgxapi_km.h"
-#include "sgx_mkif_km.h"
-#include "sgxutils.h"
-#include "pdump_km.h"
-
-
-#if defined(SUPPORT_HW_RECOVERY)
-static PVRSRV_ERROR SGXAddTimer(PVRSRV_DEVICE_NODE		*psDeviceNode,
-								SGX_TIMING_INFORMATION	*psSGXTimingInfo,
-								IMG_HANDLE				*phTimer)
-{
-	
-
-
-	*phTimer = OSAddTimer(SGXOSTimer, psDeviceNode,
-						  1000 * 50 / psSGXTimingInfo->ui32uKernelFreq);
-	if(*phTimer == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SGXAddTimer : Failed to register timer callback function"));
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-
-	return PVRSRV_OK;
-}
-#endif 
-
-
-static PVRSRV_ERROR SGXUpdateTimingInfo(PVRSRV_DEVICE_NODE	*psDeviceNode)
-{
-	PVRSRV_SGXDEV_INFO	*psDevInfo = psDeviceNode->pvDevice;
-#if defined(SGX_DYNAMIC_TIMING_INFO)
-	SGX_TIMING_INFORMATION	sSGXTimingInfo = {0};
-#else
-	SGX_DEVICE_MAP		*psSGXDeviceMap;
-#endif
-	IMG_UINT32		ui32ActivePowManSampleRate;
-	SGX_TIMING_INFORMATION	*psSGXTimingInfo;
-
-
-#if defined(SGX_DYNAMIC_TIMING_INFO)
-	psSGXTimingInfo = &sSGXTimingInfo;
-	SysGetSGXTimingInformation(psSGXTimingInfo);
-#else
-	SysGetDeviceMemoryMap(PVRSRV_DEVICE_TYPE_SGX,
-						  (IMG_VOID**)&psSGXDeviceMap);
-	psSGXTimingInfo = &psSGXDeviceMap->sTimingInfo;
-#endif
-
-#if defined(SUPPORT_HW_RECOVERY)
-	{
-		PVRSRV_ERROR			eError;
-		IMG_UINT32	ui32OlduKernelFreq;
-
-		if (psDevInfo->hTimer != IMG_NULL)
-		{
-			ui32OlduKernelFreq = psDevInfo->ui32CoreClockSpeed / psDevInfo->ui32uKernelTimerClock;
-			if (ui32OlduKernelFreq != psSGXTimingInfo->ui32uKernelFreq)
-			{
-				
-
-				IMG_HANDLE hNewTimer;
-				
-				eError = SGXAddTimer(psDeviceNode, psSGXTimingInfo, &hNewTimer);
-				if (eError == PVRSRV_OK)
-				{
-					eError = OSRemoveTimer(psDevInfo->hTimer);
-					if (eError != PVRSRV_OK)
-					{
-						PVR_DPF((PVR_DBG_ERROR,"SGXUpdateTimingInfo: Failed to remove timer"));
-					}
-					psDevInfo->hTimer = hNewTimer;
-				}
-				else
-				{
-					
-				}
-			}
-		}
-		else
-		{
-			eError = SGXAddTimer(psDeviceNode, psSGXTimingInfo, &psDevInfo->hTimer);
-			if (eError != PVRSRV_OK)
-			{
-				return eError;
-			}
-		}
-
-		psDevInfo->psSGXHostCtl->ui32HWRecoverySampleRate =
-			psSGXTimingInfo->ui32uKernelFreq / psSGXTimingInfo->ui32HWRecoveryFreq;
-	}
-#endif 
-
-	
-	psDevInfo->ui32CoreClockSpeed = psSGXTimingInfo->ui32CoreClockSpeed;
-	psDevInfo->ui32uKernelTimerClock = psSGXTimingInfo->ui32CoreClockSpeed / psSGXTimingInfo->ui32uKernelFreq;
-
-	
-	psDevInfo->psSGXHostCtl->ui32uKernelTimerClock = psDevInfo->ui32uKernelTimerClock;
-#if defined(PDUMP)
-	PDUMPCOMMENT("Host Control - Microkernel clock");
-	PDUMPMEM(IMG_NULL, psDevInfo->psKernelSGXHostCtlMemInfo,
-			 offsetof(SGXMKIF_HOST_CTL, ui32uKernelTimerClock),
-			 sizeof(IMG_UINT32), PDUMP_FLAGS_CONTINUOUS,
-			 MAKEUNIQUETAG(psDevInfo->psKernelSGXHostCtlMemInfo));
-#endif 
-
-	if (psSGXTimingInfo->bEnableActivePM)
-	{
-		ui32ActivePowManSampleRate =
-			psSGXTimingInfo->ui32uKernelFreq * psSGXTimingInfo->ui32ActivePowManLatencyms / 1000;
-		
-
-
-
-
-
-
-		ui32ActivePowManSampleRate += 1;
-	}
-	else
-	{
-		ui32ActivePowManSampleRate = 0;
-	}
-
-	psDevInfo->psSGXHostCtl->ui32ActivePowManSampleRate = ui32ActivePowManSampleRate;
-#if defined(PDUMP)
-	PDUMPMEM(IMG_NULL, psDevInfo->psKernelSGXHostCtlMemInfo,
-			 offsetof(SGXMKIF_HOST_CTL, ui32ActivePowManSampleRate),
-			 sizeof(IMG_UINT32), PDUMP_FLAGS_CONTINUOUS,
-			 MAKEUNIQUETAG(psDevInfo->psKernelSGXHostCtlMemInfo));
-#endif 
-
-	return PVRSRV_OK;
-}
-
-
-static IMG_VOID SGXStartTimer(PVRSRV_SGXDEV_INFO	*psDevInfo)
-{
-	#if defined(SUPPORT_HW_RECOVERY)
-	PVRSRV_ERROR	eError;
-
-	eError = OSEnableTimer(psDevInfo->hTimer);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SGXStartTimer : Failed to enable host timer"));
-	}
-	#else
-	PVR_UNREFERENCED_PARAMETER(psDevInfo);
-	#endif 
-}
-
-
-static IMG_VOID SGXPollForClockGating (PVRSRV_SGXDEV_INFO	*psDevInfo,
-									   IMG_UINT32			ui32Register,
-									   IMG_UINT32			ui32RegisterValue,
-									   IMG_CHAR				*pszComment)
-{
-	PVR_UNREFERENCED_PARAMETER(psDevInfo);
-	PVR_UNREFERENCED_PARAMETER(ui32Register);
-	PVR_UNREFERENCED_PARAMETER(ui32RegisterValue);
-	PVR_UNREFERENCED_PARAMETER(pszComment);
-
-	#if !defined(NO_HARDWARE)
-	PVR_ASSERT(psDevInfo != IMG_NULL);
-
-	 
-	if (PollForValueKM((IMG_UINT32 *)psDevInfo->pvRegsBaseKM + (ui32Register >> 2),
-						0,
-						ui32RegisterValue,
-						MAX_HW_TIME_US,
-						MAX_HW_TIME_US/WAIT_TRY_COUNT,
-						IMG_FALSE) != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SGXPollForClockGating: %s failed.", pszComment));
-		PVR_DBG_BREAK;
-	}
-	#endif 
-
-	PDUMPCOMMENT("%s", pszComment);
-	PDUMPREGPOL(SGX_PDUMPREG_NAME, ui32Register, 0, ui32RegisterValue, PDUMP_POLL_OPERATOR_EQUAL);
-}
-
-
-PVRSRV_ERROR SGXPrePowerState (IMG_HANDLE				hDevHandle,
-							   PVRSRV_DEV_POWER_STATE	eNewPowerState,
-							   PVRSRV_DEV_POWER_STATE	eCurrentPowerState)
-{
-	if ((eNewPowerState != eCurrentPowerState) &&
-		(eNewPowerState != PVRSRV_DEV_POWER_STATE_ON))
-	{
-		PVRSRV_ERROR		eError;
-		PVRSRV_DEVICE_NODE	*psDeviceNode = hDevHandle;
-		PVRSRV_SGXDEV_INFO	*psDevInfo = psDeviceNode->pvDevice;
-		IMG_UINT32			ui32PowerCmd, ui32CompleteStatus;
-		SGXMKIF_COMMAND		sCommand = {0};
-		IMG_UINT32			ui32Core;
-		IMG_UINT32			ui32CoresEnabled;
-
-		#if defined(SUPPORT_HW_RECOVERY)
-		
-		eError = OSDisableTimer(psDevInfo->hTimer);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"SGXPrePowerState: Failed to disable timer"));
-			return eError;
-		}
-		#endif 
-
-		if (eNewPowerState == PVRSRV_DEV_POWER_STATE_OFF)
-		{
-			
-			ui32PowerCmd = PVRSRV_POWERCMD_POWEROFF;
-			ui32CompleteStatus = PVRSRV_USSE_EDM_POWMAN_POWEROFF_COMPLETE;
-			PDUMPCOMMENT("SGX power off request");
-		}
-		else
-		{
-			
-			ui32PowerCmd = PVRSRV_POWERCMD_IDLE;
-			ui32CompleteStatus = PVRSRV_USSE_EDM_POWMAN_IDLE_COMPLETE;
-			PDUMPCOMMENT("SGX idle request");
-		}
-
-		sCommand.ui32Data[1] = ui32PowerCmd;
-
-		eError = SGXScheduleCCBCommand(psDeviceNode, SGXMKIF_CMD_POWER, &sCommand, KERNEL_ID, 0, IMG_NULL, IMG_FALSE);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"SGXPrePowerState: Failed to submit power down command"));
-			return eError;
-		}
-
-		
-		#if !defined(NO_HARDWARE)
-		if (PollForValueKM(&psDevInfo->psSGXHostCtl->ui32PowerStatus,
-							ui32CompleteStatus,
-							ui32CompleteStatus,
-							MAX_HW_TIME_US,
-							MAX_HW_TIME_US/WAIT_TRY_COUNT,
-							IMG_FALSE) != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"SGXPrePowerState: Wait for SGX ukernel power transition failed."));
-			PVR_DBG_BREAK;
-		}
-		#endif 
-
-		#if defined(PDUMP)
-		PDUMPCOMMENT("TA/3D CCB Control - Wait for power event on uKernel.");
-		PDUMPMEMPOL(psDevInfo->psKernelSGXHostCtlMemInfo,
-					offsetof(SGXMKIF_HOST_CTL, ui32PowerStatus),
-					ui32CompleteStatus,
-					ui32CompleteStatus,
-					PDUMP_POLL_OPERATOR_EQUAL,
-					0,
-					MAKEUNIQUETAG(psDevInfo->psKernelSGXHostCtlMemInfo));
-		#endif 
-
-#if defined(SGX_FEATURE_MP)
-		ui32CoresEnabled = ((OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_CORE) & EUR_CR_MASTER_CORE_ENABLE_MASK) >> EUR_CR_MASTER_CORE_ENABLE_SHIFT) + 1;
-#else
-		ui32CoresEnabled = 1;
-#endif
-
-		for (ui32Core = 0; ui32Core < ui32CoresEnabled; ui32Core++)
-		{
-			
-			SGXPollForClockGating(psDevInfo,
-								  SGX_MP_CORE_SELECT(psDevInfo->ui32ClkGateStatusReg, ui32Core),
-								  psDevInfo->ui32ClkGateStatusMask,
-								  "Wait for SGX clock gating");
-		}
-
-		#if defined(SGX_FEATURE_MP)
-		
-		SGXPollForClockGating(psDevInfo,
-							  psDevInfo->ui32MasterClkGateStatusReg,
-							  psDevInfo->ui32MasterClkGateStatusMask,
-							  "Wait for SGX master clock gating");
-
-		SGXPollForClockGating(psDevInfo,
-							  psDevInfo->ui32MasterClkGateStatus2Reg,
-							  psDevInfo->ui32MasterClkGateStatus2Mask,
-							  "Wait for SGX master clock gating (2)");
-		#endif 
-
-		if (eNewPowerState == PVRSRV_DEV_POWER_STATE_OFF)
-		{
-			
-			eError = SGXDeinitialise(psDevInfo);
-			if (eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,"SGXPrePowerState: SGXDeinitialise failed: %u", eError));
-				return eError;
-			}
-		}
-	}
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR SGXPostPowerState (IMG_HANDLE				hDevHandle,
-								PVRSRV_DEV_POWER_STATE	eNewPowerState,
-								PVRSRV_DEV_POWER_STATE	eCurrentPowerState)
-{
-	if ((eNewPowerState != eCurrentPowerState) &&
-		(eCurrentPowerState != PVRSRV_DEV_POWER_STATE_ON))
-	{
-		PVRSRV_ERROR		eError;
-		PVRSRV_DEVICE_NODE	*psDeviceNode = hDevHandle;
-		PVRSRV_SGXDEV_INFO	*psDevInfo = psDeviceNode->pvDevice;
-		SGXMKIF_HOST_CTL *psSGXHostCtl = psDevInfo->psSGXHostCtl;
-
-		
-		psSGXHostCtl->ui32PowerStatus = 0;
-		#if defined(PDUMP)
-		PDUMPCOMMENT("Host Control - Reset power status");
-		PDUMPMEM(IMG_NULL, psDevInfo->psKernelSGXHostCtlMemInfo,
-				 offsetof(SGXMKIF_HOST_CTL, ui32PowerStatus),
-				 sizeof(IMG_UINT32), PDUMP_FLAGS_CONTINUOUS,
-				 MAKEUNIQUETAG(psDevInfo->psKernelSGXHostCtlMemInfo));
-		#endif 
-
-		if (eCurrentPowerState == PVRSRV_DEV_POWER_STATE_OFF)
-		{
-			
-
-			
-
-			eError = SGXUpdateTimingInfo(psDeviceNode);
-			if (eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,"SGXPostPowerState: SGXUpdateTimingInfo failed"));
-				return eError;
-			}
-
-			
-
-			eError = SGXInitialise(psDevInfo, IMG_FALSE);
-			if (eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,"SGXPostPowerState: SGXInitialise failed"));
-				return eError;
-			}
-		}
-		else
-		{
-			
-
-			SGXMKIF_COMMAND		sCommand = {0};
-
-			sCommand.ui32Data[1] = PVRSRV_POWERCMD_RESUME;
-			eError = SGXScheduleCCBCommand(psDeviceNode, SGXMKIF_CMD_POWER, &sCommand, ISR_ID, 0, IMG_NULL, IMG_FALSE);
-			if (eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,"SGXPostPowerState failed to schedule CCB command: %u", eError));
-				return eError;
-			}
-		}
-
-		SGXStartTimer(psDevInfo);
-	}
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR SGXPreClockSpeedChange (IMG_HANDLE				hDevHandle,
-									 IMG_BOOL				bIdleDevice,
-									 PVRSRV_DEV_POWER_STATE	eCurrentPowerState)
-{
-	PVRSRV_ERROR		eError;
-	PVRSRV_DEVICE_NODE	*psDeviceNode = hDevHandle;
-	PVRSRV_SGXDEV_INFO	*psDevInfo = psDeviceNode->pvDevice;
-
-	PVR_UNREFERENCED_PARAMETER(psDevInfo);
-
-	if (eCurrentPowerState == PVRSRV_DEV_POWER_STATE_ON)
-	{
-		if (bIdleDevice)
-		{
-			
-			PDUMPSUSPEND();
-
-			eError = SGXPrePowerState(hDevHandle, PVRSRV_DEV_POWER_STATE_IDLE,
-									  PVRSRV_DEV_POWER_STATE_ON);
-
-			if (eError != PVRSRV_OK)
-			{
-				PDUMPRESUME();
-				return eError;
-			}
-		}
-	}
-
-	PVR_DPF((PVR_DBG_MESSAGE,"SGXPreClockSpeedChange: SGX clock speed was %uHz",
-			psDevInfo->ui32CoreClockSpeed));
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR SGXPostClockSpeedChange (IMG_HANDLE				hDevHandle,
-									  IMG_BOOL					bIdleDevice,
-									  PVRSRV_DEV_POWER_STATE	eCurrentPowerState)
-{
-	PVRSRV_DEVICE_NODE	*psDeviceNode = hDevHandle;
-	PVRSRV_SGXDEV_INFO	*psDevInfo = psDeviceNode->pvDevice;
-	IMG_UINT32			ui32OldClockSpeed = psDevInfo->ui32CoreClockSpeed;
-
-	PVR_UNREFERENCED_PARAMETER(ui32OldClockSpeed);
-
-	if (eCurrentPowerState == PVRSRV_DEV_POWER_STATE_ON)
-	{
-		PVRSRV_ERROR eError;
-
-		
-
-		eError = SGXUpdateTimingInfo(psDeviceNode);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"SGXPostPowerState: SGXUpdateTimingInfo failed"));
-			return eError;
-		}
-
-		if (bIdleDevice)
-		{
-			
-			eError = SGXPostPowerState(hDevHandle, PVRSRV_DEV_POWER_STATE_ON,
-									   PVRSRV_DEV_POWER_STATE_IDLE);
-
-			PDUMPRESUME();
-
-			if (eError != PVRSRV_OK)
-			{
-				return eError;
-			}
-		}
-		else
-		{
-			SGXStartTimer(psDevInfo);
-		}
-	}
-
-	PVR_DPF((PVR_DBG_MESSAGE,"SGXPostClockSpeedChange: SGX clock speed changed from %uHz to %uHz",
-			ui32OldClockSpeed, psDevInfo->ui32CoreClockSpeed));
-
-	return PVRSRV_OK;
-}
-
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxreset.c b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxreset.c
deleted file mode 100644
index ffed9ea..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxreset.c
+++ /dev/null
@@ -1,667 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "sgxdefs.h"
-#include "sgxmmu.h"
-#include "services_headers.h"
-#include "sgxinfokm.h"
-#include "sgxconfig.h"
-
-#include "pdump_km.h"
-
-
-IMG_VOID SGXInitClocks(PVRSRV_SGXDEV_INFO	*psDevInfo,
-					   IMG_UINT32			ui32PDUMPFlags)
-{
-	IMG_UINT32	ui32RegVal;
-	
-#if !defined(PDUMP)
-	PVR_UNREFERENCED_PARAMETER(ui32PDUMPFlags);
-#endif 
-	
-	ui32RegVal = psDevInfo->ui32ClkGateCtl;
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_CLKGATECTL, ui32RegVal);
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_CLKGATECTL, ui32RegVal, ui32PDUMPFlags);
-
-#if defined(EUR_CR_CLKGATECTL2)
-	ui32RegVal = psDevInfo->ui32ClkGateCtl2;
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_CLKGATECTL2, ui32RegVal);
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_CLKGATECTL2, ui32RegVal, ui32PDUMPFlags);
-#endif
-}
-
-
-static IMG_VOID SGXResetInitBIFContexts(PVRSRV_SGXDEV_INFO	*psDevInfo,
-										IMG_UINT32			ui32PDUMPFlags)
-{
-	IMG_UINT32	ui32RegVal;
-
-#if !defined(PDUMP)
-	PVR_UNREFERENCED_PARAMETER(ui32PDUMPFlags);
-#endif 
-
-	ui32RegVal = 0;
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL, ui32RegVal);
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_CTRL, ui32RegVal, ui32PDUMPFlags);
-
-#if defined(SGX_FEATURE_MULTIPLE_MEM_CONTEXTS)
-	PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "Initialise the BIF bank settings\r\n");
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_BANK_SET, ui32RegVal);
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_BANK_SET, ui32RegVal, ui32PDUMPFlags);
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_BANK0, ui32RegVal);
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_BANK0, ui32RegVal, ui32PDUMPFlags);
-#endif 
-
-	PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "Initialise the BIF directory list\r\n");
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_DIR_LIST_BASE0, ui32RegVal);
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_DIR_LIST_BASE0, ui32RegVal, ui32PDUMPFlags);
-
-#if defined(SGX_FEATURE_MULTIPLE_MEM_CONTEXTS)
-	{
-		IMG_UINT32	ui32DirList, ui32DirListReg;
-
-		for (ui32DirList = 1;
-			 ui32DirList < SGX_FEATURE_BIF_NUM_DIRLISTS;
-			 ui32DirList++)
-		{
-			ui32DirListReg = EUR_CR_BIF_DIR_LIST_BASE1 + 4 * (ui32DirList - 1);
-			OSWriteHWReg(psDevInfo->pvRegsBaseKM, ui32DirListReg, ui32RegVal);
-			PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, ui32DirListReg, ui32RegVal, ui32PDUMPFlags);
-		}
-	}
-#endif 
-}
-
-
-static IMG_VOID SGXResetSetupBIFContexts(PVRSRV_SGXDEV_INFO	*psDevInfo,
-										 IMG_UINT32			ui32PDUMPFlags)
-{
-	IMG_UINT32	ui32RegVal;
-
-#if !defined(PDUMP)
-	PVR_UNREFERENCED_PARAMETER(ui32PDUMPFlags);
-#endif 
-	
-	#if defined(SGX_FEATURE_MULTIPLE_MEM_CONTEXTS)
-	
-	ui32RegVal = (SGX_BIF_DIR_LIST_INDEX_EDM << EUR_CR_BIF_BANK0_INDEX_EDM_SHIFT);
-
-	#if defined(SGX_FEATURE_2D_HARDWARE) && !defined(SGX_FEATURE_PTLA)
-	
-	ui32RegVal |= (SGX_BIF_DIR_LIST_INDEX_EDM << EUR_CR_BIF_BANK0_INDEX_2D_SHIFT);
-	#endif 
-
-	#if defined(FIX_HW_BRN_23410)
-	
-	ui32RegVal |= (SGX_BIF_DIR_LIST_INDEX_EDM << EUR_CR_BIF_BANK0_INDEX_TA_SHIFT);
-	#endif 
-
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_BANK0, ui32RegVal);
-	PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "Set up EDM requestor page table in BIF\r\n");
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_BANK0, ui32RegVal, ui32PDUMPFlags);
-	#endif 
-
-	{
-		IMG_UINT32	ui32EDMDirListReg;
-
-		
-		#if (SGX_BIF_DIR_LIST_INDEX_EDM == 0)
-		ui32EDMDirListReg = EUR_CR_BIF_DIR_LIST_BASE0;
-		#else
-		
-		ui32EDMDirListReg = EUR_CR_BIF_DIR_LIST_BASE1 + 4 * (SGX_BIF_DIR_LIST_INDEX_EDM - 1);
-		#endif 
-
-		ui32RegVal = psDevInfo->sKernelPDDevPAddr.uiAddr >> SGX_MMU_PDE_ADDR_ALIGNSHIFT;
-		
-#if defined(FIX_HW_BRN_28011)
-		OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_DIR_LIST_BASE0, ui32RegVal);
-		PDUMPPDREGWITHFLAGS(&psDevInfo->sMMUAttrib, EUR_CR_BIF_DIR_LIST_BASE0, ui32RegVal, ui32PDUMPFlags, PDUMP_PD_UNIQUETAG);
-#endif
-
-		OSWriteHWReg(psDevInfo->pvRegsBaseKM, ui32EDMDirListReg, ui32RegVal);
-		PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "Initialise the EDM's directory list base\r\n");
-		PDUMPPDREGWITHFLAGS(&psDevInfo->sMMUAttrib, ui32EDMDirListReg, ui32RegVal, ui32PDUMPFlags, PDUMP_PD_UNIQUETAG);
-	}
-}
-
-
-static IMG_VOID SGXResetSleep(PVRSRV_SGXDEV_INFO	*psDevInfo,
-							  IMG_UINT32			ui32PDUMPFlags,
-							  IMG_BOOL				bPDump)
-{
-#if defined(PDUMP) || defined(EMULATOR)
-	IMG_UINT32	ui32ReadRegister;
-
-	#if defined(SGX_FEATURE_MP)
-	ui32ReadRegister = EUR_CR_MASTER_SOFT_RESET;
-	#else
-	ui32ReadRegister = EUR_CR_SOFT_RESET;
-	#endif 
-#endif
-
-#if !defined(PDUMP)
-	PVR_UNREFERENCED_PARAMETER(ui32PDUMPFlags);
-#endif 
-
-	
-	OSWaitus(100 * 1000000 / psDevInfo->ui32CoreClockSpeed);
-	if (bPDump)
-	{
-		PDUMPIDLWITHFLAGS(30, ui32PDUMPFlags);
-#if defined(PDUMP)
-		PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "Read back to flush the register writes\r\n");
-		PDumpRegRead(SGX_PDUMPREG_NAME, ui32ReadRegister, ui32PDUMPFlags);
-#endif
-	}
-
-#if defined(EMULATOR)
-	
-
-	OSReadHWReg(psDevInfo->pvRegsBaseKM, ui32ReadRegister);
-#endif
-}
-
-
-#if !defined(SGX_FEATURE_MP)
-static IMG_VOID SGXResetSoftReset(PVRSRV_SGXDEV_INFO	*psDevInfo,
-								  IMG_BOOL				bResetBIF,
-								  IMG_UINT32			ui32PDUMPFlags,
-								  IMG_BOOL				bPDump)
-{
-	IMG_UINT32 ui32SoftResetRegVal;
-
-	ui32SoftResetRegVal =
-					
-					EUR_CR_SOFT_RESET_DPM_RESET_MASK |
-					EUR_CR_SOFT_RESET_TA_RESET_MASK  |
-					EUR_CR_SOFT_RESET_USE_RESET_MASK |
-					EUR_CR_SOFT_RESET_ISP_RESET_MASK |
-					EUR_CR_SOFT_RESET_TSP_RESET_MASK;
-
-#ifdef EUR_CR_SOFT_RESET_TWOD_RESET_MASK
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_TWOD_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_TE_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_TE_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_MTE_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_MTE_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_ISP2_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_ISP2_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_PDS_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_PDS_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_PBE_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_PBE_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_CACHEL2_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_CACHEL2_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_TCU_L2_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_TCU_L2_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_UCACHEL2_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_UCACHEL2_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_MADD_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_MADD_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_ITR_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_ITR_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_TEX_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_TEX_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_IDXFIFO_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_IDXFIFO_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_VDM_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_VDM_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_DCU_L2_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_DCU_L2_RESET_MASK;
-#endif
-#if defined(EUR_CR_SOFT_RESET_DCU_L0L1_RESET_MASK)
-	ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_DCU_L0L1_RESET_MASK;
-#endif
-
-#if !defined(PDUMP)
-	PVR_UNREFERENCED_PARAMETER(ui32PDUMPFlags);
-#endif 
-
-	if (bResetBIF)
-	{
-		ui32SoftResetRegVal |= EUR_CR_SOFT_RESET_BIF_RESET_MASK;
-	}
-
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_SOFT_RESET, ui32SoftResetRegVal);
-	if (bPDump)
-	{
-		PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_SOFT_RESET, ui32SoftResetRegVal, ui32PDUMPFlags);
-	}
-}
-
-
-static IMG_VOID SGXResetInvalDC(PVRSRV_SGXDEV_INFO	*psDevInfo,
-							    IMG_UINT32			ui32PDUMPFlags,
-								IMG_BOOL			bPDump)
-{
-	IMG_UINT32 ui32RegVal;
-
-	
-#if defined(EUR_CR_BIF_CTRL_INVAL)
-	ui32RegVal = EUR_CR_BIF_CTRL_INVAL_ALL_MASK;
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL_INVAL, ui32RegVal);
-	if (bPDump)
-	{
-		PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_CTRL_INVAL, ui32RegVal, ui32PDUMPFlags);
-	}
-#else
-	ui32RegVal = EUR_CR_BIF_CTRL_INVALDC_MASK;
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL, ui32RegVal);
-	if (bPDump)
-	{
-		PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_CTRL, ui32RegVal, ui32PDUMPFlags);
-	}
-
-	ui32RegVal = 0;
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL, ui32RegVal);
-	if (bPDump)
-	{
-		PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_CTRL, ui32RegVal, ui32PDUMPFlags);
-	}
-#endif
-	SGXResetSleep(psDevInfo, ui32PDUMPFlags, bPDump);
-
-#if !defined(SGX_FEATURE_MULTIPLE_MEM_CONTEXTS)
-	{
-		
-
-
-		if (PollForValueKM((IMG_UINT32 *)((IMG_UINT8*)psDevInfo->pvRegsBaseKM + EUR_CR_BIF_MEM_REQ_STAT),
-							0,
-							EUR_CR_BIF_MEM_REQ_STAT_READS_MASK,
-							MAX_HW_TIME_US,
-							MAX_HW_TIME_US/WAIT_TRY_COUNT,
-							IMG_FALSE) != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"Wait for DC invalidate failed."));
-			PVR_DBG_BREAK;
-		}
-
-		if (bPDump)
-		{
-			PDUMPREGPOLWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_MEM_REQ_STAT, 0, EUR_CR_BIF_MEM_REQ_STAT_READS_MASK, ui32PDUMPFlags, PDUMP_POLL_OPERATOR_EQUAL);
-		}
-	}
-#endif 
-}
-#endif 
-
-
-IMG_VOID SGXReset(PVRSRV_SGXDEV_INFO	*psDevInfo,
-				  IMG_BOOL				bHardwareRecovery,
-				  IMG_UINT32			ui32PDUMPFlags)
-#if !defined(SGX_FEATURE_MP)
-{
-	IMG_UINT32 ui32RegVal;
-#if defined(EUR_CR_BIF_INT_STAT_FAULT_REQ_MASK)
-	const IMG_UINT32 ui32BifFaultMask = EUR_CR_BIF_INT_STAT_FAULT_REQ_MASK;
-#else
-	const IMG_UINT32 ui32BifFaultMask = EUR_CR_BIF_INT_STAT_FAULT_MASK;
-#endif
-
-#if !defined(PDUMP)
-	PVR_UNREFERENCED_PARAMETER(ui32PDUMPFlags);
-#endif 
-
-	PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "Start of SGX reset sequence\r\n");
-
-#if defined(FIX_HW_BRN_23944)
-	
-	ui32RegVal = EUR_CR_BIF_CTRL_PAUSE_MASK;
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL, ui32RegVal);
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_CTRL, ui32RegVal, ui32PDUMPFlags);
-
-	SGXResetSleep(psDevInfo, ui32PDUMPFlags, IMG_TRUE);
-
-	ui32RegVal = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_INT_STAT);
-	if (ui32RegVal & ui32BifFaultMask)
-	{
-		
-		ui32RegVal = EUR_CR_BIF_CTRL_PAUSE_MASK | EUR_CR_BIF_CTRL_CLEAR_FAULT_MASK;
-		OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL, ui32RegVal);
-		PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_CTRL, ui32RegVal, ui32PDUMPFlags);
-
-		SGXResetSleep(psDevInfo, ui32PDUMPFlags, IMG_TRUE);
-
-		ui32RegVal = EUR_CR_BIF_CTRL_PAUSE_MASK;
-		OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_CTRL, ui32RegVal);
-		PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_CTRL, ui32RegVal, ui32PDUMPFlags);
-
-		SGXResetSleep(psDevInfo, ui32PDUMPFlags, IMG_TRUE);
-	}
-#endif 
-
-	
-	SGXResetSoftReset(psDevInfo, IMG_TRUE, ui32PDUMPFlags, IMG_TRUE);
-
-	SGXResetSleep(psDevInfo, ui32PDUMPFlags, IMG_TRUE);
-
-	
-
-#if defined(SGX_FEATURE_36BIT_MMU)
-	
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_36BIT_ADDRESSING, EUR_CR_BIF_36BIT_ADDRESSING_ENABLE_MASK);
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_36BIT_ADDRESSING, EUR_CR_BIF_36BIT_ADDRESSING_ENABLE_MASK, ui32PDUMPFlags);
-#endif
-
-	SGXResetInitBIFContexts(psDevInfo, ui32PDUMPFlags);
-
-#if defined(EUR_CR_BIF_MEM_ARB_CONFIG)
-	
-
-	ui32RegVal	= (12UL << EUR_CR_BIF_MEM_ARB_CONFIG_PAGE_SIZE_SHIFT) |
-				  (7UL << EUR_CR_BIF_MEM_ARB_CONFIG_BEST_CNT_SHIFT) |
-				  (12UL << EUR_CR_BIF_MEM_ARB_CONFIG_TTE_THRESH_SHIFT);
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_MEM_ARB_CONFIG, ui32RegVal);
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_MEM_ARB_CONFIG, ui32RegVal, ui32PDUMPFlags);
-#endif 
-
-#if defined(SGX_FEATURE_SYSTEM_CACHE)
-	#if defined(SGX_BYPASS_SYSTEM_CACHE)
-		
-		ui32RegVal = MNE_CR_CTRL_BYPASS_ALL_MASK;
-	#else
-		#if defined(FIX_HW_BRN_26620)
-			ui32RegVal = 0;
-		#else
-			
-			ui32RegVal = MNE_CR_CTRL_BYP_CC_MASK;
-		#endif
-		#if defined(FIX_HW_BRN_34028)
-			
-			ui32RegVal |= (8 << MNE_CR_CTRL_BYPASS_SHIFT);
-		#endif
-	#endif 
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, MNE_CR_CTRL, ui32RegVal);
-	PDUMPREG(SGX_PDUMPREG_NAME, MNE_CR_CTRL, ui32RegVal);
-#endif 
-
-	if (bHardwareRecovery)
-	{
-		
-
-
-
-
-
-
-		ui32RegVal = (IMG_UINT32)psDevInfo->sBIFResetPDDevPAddr.uiAddr;
-		OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_DIR_LIST_BASE0, ui32RegVal);
-
-		SGXResetSleep(psDevInfo, ui32PDUMPFlags, IMG_FALSE);
-
-		
-		SGXResetSoftReset(psDevInfo, IMG_FALSE, ui32PDUMPFlags, IMG_TRUE);
-		SGXResetSleep(psDevInfo, ui32PDUMPFlags, IMG_FALSE);
-
-		SGXResetInvalDC(psDevInfo, ui32PDUMPFlags, IMG_FALSE);
-
-		
-
-		for (;;)
-		{
-			IMG_UINT32 ui32BifIntStat = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_INT_STAT);
-			IMG_DEV_VIRTADDR sBifFault;
-			IMG_UINT32 ui32PDIndex, ui32PTIndex;
-
-			if ((ui32BifIntStat & ui32BifFaultMask) == 0)
-			{
-				break;
-			}
-
-			
-
-
-			sBifFault.uiAddr = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_FAULT);
-			PVR_DPF((PVR_DBG_WARNING, "SGXReset: Page fault 0x%x/0x%x", ui32BifIntStat, sBifFault.uiAddr));
-			ui32PDIndex = sBifFault.uiAddr >> (SGX_MMU_PAGE_SHIFT + SGX_MMU_PT_SHIFT);
-			ui32PTIndex = (sBifFault.uiAddr & SGX_MMU_PT_MASK) >> SGX_MMU_PAGE_SHIFT;
-
-			
-			SGXResetSoftReset(psDevInfo, IMG_TRUE, ui32PDUMPFlags, IMG_FALSE);
-
-			
-			psDevInfo->pui32BIFResetPD[ui32PDIndex] = (psDevInfo->sBIFResetPTDevPAddr.uiAddr
-													>>SGX_MMU_PDE_ADDR_ALIGNSHIFT)
-													| SGX_MMU_PDE_PAGE_SIZE_4K
-													| SGX_MMU_PDE_VALID;
-			psDevInfo->pui32BIFResetPT[ui32PTIndex] = (psDevInfo->sBIFResetPageDevPAddr.uiAddr
-													>>SGX_MMU_PTE_ADDR_ALIGNSHIFT)
-													| SGX_MMU_PTE_VALID;
-
-			
-			ui32RegVal = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_EVENT_STATUS);
-			OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_EVENT_HOST_CLEAR, ui32RegVal);
-			ui32RegVal = OSReadHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_EVENT_STATUS2);
-			OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_EVENT_HOST_CLEAR2, ui32RegVal);
-
-			SGXResetSleep(psDevInfo, ui32PDUMPFlags, IMG_FALSE);
-
-			
-			SGXResetSoftReset(psDevInfo, IMG_FALSE, ui32PDUMPFlags, IMG_FALSE);
-			SGXResetSleep(psDevInfo, ui32PDUMPFlags, IMG_FALSE);
-
-			
-			SGXResetInvalDC(psDevInfo, ui32PDUMPFlags, IMG_FALSE);
-
-			
-			psDevInfo->pui32BIFResetPD[ui32PDIndex] = 0;
-			psDevInfo->pui32BIFResetPT[ui32PTIndex] = 0;
-		}
-	}
-	else
-	{
-		
-		SGXResetSoftReset(psDevInfo, IMG_FALSE, ui32PDUMPFlags, IMG_TRUE);
-		SGXResetSleep(psDevInfo, ui32PDUMPFlags, IMG_FALSE);
-	}	
-
-	
-
-	SGXResetSetupBIFContexts(psDevInfo, ui32PDUMPFlags);
-
-#if defined(SGX_FEATURE_2D_HARDWARE) && !defined(SGX_FEATURE_PTLA)
-	
-	#if ((SGX_2D_HEAP_BASE & ~EUR_CR_BIF_TWOD_REQ_BASE_ADDR_MASK) != 0)
-		#error "SGXReset: SGX_2D_HEAP_BASE doesn't match EUR_CR_BIF_TWOD_REQ_BASE_ADDR_MASK alignment"
-	#endif
-	
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_BIF_TWOD_REQ_BASE, SGX_2D_HEAP_BASE);
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_BIF_TWOD_REQ_BASE, SGX_2D_HEAP_BASE, ui32PDUMPFlags);
-#endif
-
-	
-	SGXResetInvalDC(psDevInfo, ui32PDUMPFlags, IMG_TRUE);
-
-	PVR_DPF((PVR_DBG_MESSAGE,"Soft Reset of SGX"));
-
-	
-	ui32RegVal = 0;
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_SOFT_RESET, ui32RegVal);
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_SOFT_RESET, ui32RegVal, ui32PDUMPFlags);
-
-	
-	SGXResetSleep(psDevInfo, ui32PDUMPFlags, IMG_TRUE);
-
-	PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "End of SGX reset sequence\r\n");
-}
-
-#else
-
-{
-	IMG_UINT32 ui32RegVal;
-	
-	PVR_UNREFERENCED_PARAMETER(bHardwareRecovery);
-
-#if !defined(PDUMP)
-	PVR_UNREFERENCED_PARAMETER(ui32PDUMPFlags);
-#endif 
-
-	PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "Start of SGX MP reset sequence\r\n");
-
-	
-	ui32RegVal = EUR_CR_MASTER_SOFT_RESET_BIF_RESET_MASK  |
-				 EUR_CR_MASTER_SOFT_RESET_IPF_RESET_MASK  |
-				 EUR_CR_MASTER_SOFT_RESET_DPM_RESET_MASK  |
-				 EUR_CR_MASTER_SOFT_RESET_MCI_RESET_MASK  |
-				 EUR_CR_MASTER_SOFT_RESET_VDM_RESET_MASK;
-
-#if defined(SGX_FEATURE_PTLA)
-	ui32RegVal |= EUR_CR_MASTER_SOFT_RESET_PTLA_RESET_MASK;
-#endif
-#if defined(SGX_FEATURE_SYSTEM_CACHE)
-	ui32RegVal |= EUR_CR_MASTER_SOFT_RESET_SLC_RESET_MASK;
-#endif
-
-	
-	ui32RegVal |= EUR_CR_MASTER_SOFT_RESET_CORE_RESET_MASK(0)  |
-				  EUR_CR_MASTER_SOFT_RESET_CORE_RESET_MASK(1)  |
-				  EUR_CR_MASTER_SOFT_RESET_CORE_RESET_MASK(2)  |
-				  EUR_CR_MASTER_SOFT_RESET_CORE_RESET_MASK(3);
-
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_SOFT_RESET, ui32RegVal);
-	PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "Soft reset hydra partition, hard reset the cores\r\n");
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_MASTER_SOFT_RESET, ui32RegVal, ui32PDUMPFlags);
-
-	SGXResetSleep(psDevInfo, ui32PDUMPFlags, IMG_TRUE);
-
-	ui32RegVal = 0;
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_BIF_CTRL, ui32RegVal);
-	PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "Initialise the hydra BIF control\r\n");
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_MASTER_BIF_CTRL, ui32RegVal, ui32PDUMPFlags);
-
-#if defined(SGX_FEATURE_SYSTEM_CACHE)
-	#if defined(SGX_BYPASS_SYSTEM_CACHE)
-		#error SGX_BYPASS_SYSTEM_CACHE not supported
-	#else
-		ui32RegVal = EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_REQ0_MASK |
-		#if defined(FIX_HW_BRN_30954)
-						EUR_CR_MASTER_SLC_CTRL_DISABLE_REORDERING_MASK |
-		#endif
-		#if defined(PVR_SLC_8KB_ADDRESS_MODE)
-						(4 << EUR_CR_MASTER_SLC_CTRL_ADDR_DECODE_MODE_SHIFT) |
-		#endif
-						(0xC << EUR_CR_MASTER_SLC_CTRL_ARB_PAGE_SIZE_SHIFT);
-		OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_SLC_CTRL, ui32RegVal);
-		PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "Initialise the hydra SLC control\r\n");
-		PDUMPREG(SGX_PDUMPREG_NAME, EUR_CR_MASTER_SLC_CTRL, ui32RegVal);
-
-		ui32RegVal = EUR_CR_MASTER_SLC_CTRL_BYPASS_BYP_CC_MASK;
-	#if defined(FIX_HW_BRN_31620)
-		ui32RegVal |= EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_MMU_MASK;
-	#endif
-	#if defined(FIX_HW_BRN_31195)
-		ui32RegVal |= EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE0_MASK |
-				EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE1_MASK |
-				EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE2_MASK |
-				EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE3_MASK |
-				EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_TA_MASK;
-	#endif
-		OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_SLC_CTRL_BYPASS, ui32RegVal);
-		PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "Initialise the hydra SLC bypass control\r\n");
-		PDUMPREG(SGX_PDUMPREG_NAME, EUR_CR_MASTER_SLC_CTRL_BYPASS, ui32RegVal);
-	#endif 
-#endif 
-
-	SGXResetSleep(psDevInfo, ui32PDUMPFlags, IMG_TRUE);
-
-	
-	ui32RegVal = 0;
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_SOFT_RESET, ui32RegVal);
-	PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "Remove the resets from all of SGX\r\n");
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_MASTER_SOFT_RESET, ui32RegVal, ui32PDUMPFlags);
-	
-	SGXResetSleep(psDevInfo, ui32PDUMPFlags, IMG_TRUE);
-
-	PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "Turn on the slave cores' clock gating\r\n");
-	SGXInitClocks(psDevInfo, ui32PDUMPFlags);
-
-	SGXResetSleep(psDevInfo, ui32PDUMPFlags, IMG_TRUE);
-
-	PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "Initialise the slave BIFs\r\n");
-
-#if defined(FIX_HW_BRN_31278) || defined(FIX_HW_BRN_31620) || defined(FIX_HW_BRN_31671) || defined(FIX_HW_BRN_32085)
-	#if defined(FIX_HW_BRN_31278) || defined(FIX_HW_BRN_32085)
-	
-	ui32RegVal = (1<<EUR_CR_MASTER_BIF_MMU_CTRL_ADDR_HASH_MODE_SHIFT);
-	#else
-	ui32RegVal = (1<<EUR_CR_MASTER_BIF_MMU_CTRL_ADDR_HASH_MODE_SHIFT) | EUR_CR_MASTER_BIF_MMU_CTRL_PREFETCHING_ON_MASK; 
-	#endif
-	#if !defined(FIX_HW_BRN_31620) && !defined(FIX_HW_BRN_31671)
-	
-	ui32RegVal |= EUR_CR_MASTER_BIF_MMU_CTRL_ENABLE_DC_TLB_MASK;
-	#endif
-
-	
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM, EUR_CR_MASTER_BIF_MMU_CTRL, ui32RegVal);
-	PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, EUR_CR_MASTER_BIF_MMU_CTRL, ui32RegVal, ui32PDUMPFlags);
-
-	#if defined(FIX_HW_BRN_31278) || defined(FIX_HW_BRN_32085)
-	
-	ui32RegVal = (1<<EUR_CR_BIF_MMU_CTRL_ADDR_HASH_MODE_SHIFT);
-	#else
-	ui32RegVal = (1<<EUR_CR_BIF_MMU_CTRL_ADDR_HASH_MODE_SHIFT) | EUR_CR_BIF_MMU_CTRL_PREFETCHING_ON_MASK; 
-	#endif
-	#if !defined(FIX_HW_BRN_31620) && !defined(FIX_HW_BRN_31671)
-	
-	ui32RegVal |= EUR_CR_BIF_MMU_CTRL_ENABLE_DC_TLB_MASK;
-	#endif
-
-	
-	{
-		IMG_UINT32 ui32Core;
-
-		for (ui32Core=0;ui32Core<SGX_FEATURE_MP_CORE_COUNT;ui32Core++)
-		{
-			OSWriteHWReg(psDevInfo->pvRegsBaseKM, SGX_MP_CORE_SELECT(EUR_CR_BIF_MMU_CTRL, ui32Core), ui32RegVal);
-			PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, SGX_MP_CORE_SELECT(EUR_CR_BIF_MMU_CTRL, ui32Core), ui32RegVal, ui32PDUMPFlags);
-		}
-	}
-#endif
-
-	SGXResetInitBIFContexts(psDevInfo, ui32PDUMPFlags);
-	SGXResetSetupBIFContexts(psDevInfo, ui32PDUMPFlags);
-	
-	PDUMPCOMMENTWITHFLAGS(ui32PDUMPFlags, "End of SGX MP reset sequence\r\n");
-}	
-#endif 
-
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxtransfer.c b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxtransfer.c
deleted file mode 100644
index 8a9415f..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxtransfer.c
+++ /dev/null
@@ -1,750 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if defined(TRANSFER_QUEUE)
-
-#include <stddef.h>
-
-#include "sgxdefs.h"
-#include "services_headers.h"
-#include "buffer_manager.h"
-#include "sgxinfo.h"
-#include "sysconfig.h"
-#include "pdump_km.h"
-#include "mmu.h"
-#include "pvr_bridge.h"
-#include "sgx_bridge_km.h"
-#include "sgxinfokm.h"
-#include "osfunc.h"
-#include "pvr_debug.h"
-#include "sgxutils.h"
-#include "ttrace.h"
-
-#if defined (SUPPORT_SID_INTERFACE)
-IMG_EXPORT PVRSRV_ERROR SGXSubmitTransferKM(IMG_HANDLE hDevHandle, PVRSRV_TRANSFER_SGX_KICK_KM *psKick)
-#else
-IMG_EXPORT PVRSRV_ERROR SGXSubmitTransferKM(IMG_HANDLE hDevHandle, PVRSRV_TRANSFER_SGX_KICK *psKick)
-#endif
-{
-	PVRSRV_KERNEL_MEM_INFO		*psCCBMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psKick->hCCBMemInfo;
-	SGXMKIF_COMMAND				sCommand = {0};
-	SGXMKIF_TRANSFERCMD_SHARED *psSharedTransferCmd;
-	PVRSRV_KERNEL_SYNC_INFO 	*psSyncInfo;
-	PVRSRV_ERROR				eError;
-	IMG_UINT32					loop;
-	IMG_HANDLE					hDevMemContext = IMG_NULL;
-	IMG_BOOL					abSrcSyncEnable[SGX_MAX_TRANSFER_SYNC_OPS];
-	IMG_UINT32					ui32RealSrcSyncNum = 0;
-	IMG_BOOL					abDstSyncEnable[SGX_MAX_TRANSFER_SYNC_OPS];
-	IMG_UINT32					ui32RealDstSyncNum = 0;
-
-
-#if defined(PDUMP)
-	IMG_BOOL bPersistentProcess = IMG_FALSE;
-	
-	{
-		PVRSRV_PER_PROCESS_DATA* psPerProc = PVRSRVFindPerProcessData();
-		if(psPerProc != IMG_NULL)
-		{
-			bPersistentProcess = psPerProc->bPDumpPersistent;
-		}
-	}
-#endif 
-#if defined(FIX_HW_BRN_31620)
-	hDevMemContext = psKick->hDevMemContext;
-#endif
-	PVR_TTRACE(PVRSRV_TRACE_GROUP_TRANSFER, PVRSRV_TRACE_CLASS_FUNCTION_ENTER, TRANSFER_TOKEN_SUBMIT);
-
-	for (loop = 0; loop < SGX_MAX_TRANSFER_SYNC_OPS; loop++)
-	{
-		abSrcSyncEnable[loop] = IMG_TRUE;
-		abDstSyncEnable[loop] = IMG_TRUE;
-	}
-
-	if (!CCB_OFFSET_IS_VALID(SGXMKIF_TRANSFERCMD_SHARED, psCCBMemInfo, psKick, ui32SharedCmdCCBOffset))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXSubmitTransferKM: Invalid CCB offset"));
-		PVR_TTRACE(PVRSRV_TRACE_GROUP_TRANSFER, PVRSRV_TRACE_CLASS_FUNCTION_EXIT,
-				TRANSFER_TOKEN_SUBMIT);
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-	
-	
-	psSharedTransferCmd =  CCB_DATA_FROM_OFFSET(SGXMKIF_TRANSFERCMD_SHARED, psCCBMemInfo, psKick, ui32SharedCmdCCBOffset);
-
-	PVR_TTRACE(PVRSRV_TRACE_GROUP_TRANSFER, PVRSRV_TRACE_CLASS_CMD_START, TRANSFER_TOKEN_SUBMIT);
-	PVR_TTRACE_UI32(PVRSRV_TRACE_GROUP_TRANSFER, PVRSRV_TRACE_CLASS_CCB,
-			TRANSFER_TOKEN_CCB_OFFSET, psKick->ui32SharedCmdCCBOffset);
-
-	if (psKick->hTASyncInfo != IMG_NULL)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->hTASyncInfo;
-
-		PVR_TTRACE_SYNC_OBJECT(PVRSRV_TRACE_GROUP_TRANSFER, TRANSFER_TOKEN_TA_SYNC,
-					  psSyncInfo, PVRSRV_SYNCOP_SAMPLE);
-
-		psSharedTransferCmd->ui32TASyncWriteOpsPendingVal = psSyncInfo->psSyncData->ui32WriteOpsPending++;
-		psSharedTransferCmd->ui32TASyncReadOpsPendingVal  = psSyncInfo->psSyncData->ui32ReadOpsPending;
-
-		psSharedTransferCmd->sTASyncWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr;
-		psSharedTransferCmd->sTASyncReadOpsCompleteDevVAddr = psSyncInfo->sReadOpsCompleteDevVAddr;
-	}
-	else
-	{
-		psSharedTransferCmd->sTASyncWriteOpsCompleteDevVAddr.uiAddr = 0;
-		psSharedTransferCmd->sTASyncReadOpsCompleteDevVAddr.uiAddr = 0;
-	}
-
-	if (psKick->h3DSyncInfo != IMG_NULL)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->h3DSyncInfo;
-
-		PVR_TTRACE_SYNC_OBJECT(PVRSRV_TRACE_GROUP_TRANSFER, TRANSFER_TOKEN_3D_SYNC,
-					  psSyncInfo, PVRSRV_SYNCOP_SAMPLE);
-
-		psSharedTransferCmd->ui323DSyncWriteOpsPendingVal = psSyncInfo->psSyncData->ui32WriteOpsPending++;
-		psSharedTransferCmd->ui323DSyncReadOpsPendingVal = psSyncInfo->psSyncData->ui32ReadOpsPending;
-
-		psSharedTransferCmd->s3DSyncWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr;
-		psSharedTransferCmd->s3DSyncReadOpsCompleteDevVAddr = psSyncInfo->sReadOpsCompleteDevVAddr;
-	}
-	else
-	{
-		psSharedTransferCmd->s3DSyncWriteOpsCompleteDevVAddr.uiAddr = 0;
-		psSharedTransferCmd->s3DSyncReadOpsCompleteDevVAddr.uiAddr = 0;
-	}
-
-	
-	for (loop = 0; loop < MIN(SGX_MAX_TRANSFER_SYNC_OPS, psKick->ui32NumSrcSync); loop++)
-	{
-		IMG_UINT32 i;
-
-		PVRSRV_KERNEL_SYNC_INFO * psMySyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahSrcSyncInfo[loop];
-	
-		for (i = 0; i < loop; i++)	
-		{
-			if (abSrcSyncEnable[i])
-			{
-				psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahSrcSyncInfo[i];
-
-				if (psSyncInfo->sWriteOpsCompleteDevVAddr.uiAddr == psMySyncInfo->sWriteOpsCompleteDevVAddr.uiAddr)
-				{
-					PVR_DPF((PVR_DBG_WARNING, "SGXSubmitTransferKM : Same src synchronized multiple times!"));
-					abSrcSyncEnable[loop] = IMG_FALSE;
-					break;
-				}
-			}
-		}
-		if (abSrcSyncEnable[loop])
-		{
-			ui32RealSrcSyncNum++;
-		}
-	}
-	for (loop = 0; loop < MIN(SGX_MAX_TRANSFER_SYNC_OPS, psKick->ui32NumDstSync); loop++)
-	{
-		IMG_UINT32 i;
-
-		PVRSRV_KERNEL_SYNC_INFO * psMySyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahDstSyncInfo[loop];
-	
-		for (i = 0; i < loop; i++)	
-		{
-			if (abDstSyncEnable[i])
-			{
-				psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahDstSyncInfo[i];
-
-				if (psSyncInfo->sWriteOpsCompleteDevVAddr.uiAddr == psMySyncInfo->sWriteOpsCompleteDevVAddr.uiAddr)
-				{
-					PVR_DPF((PVR_DBG_WARNING, "SGXSubmitTransferKM : Same dst synchronized multiple times!"));
-					abDstSyncEnable[loop] = IMG_FALSE;
-					break;
-				}
-			}
-		}
-		if (abDstSyncEnable[loop])
-		{
-			ui32RealDstSyncNum++;
-		}
-	}
-
-	psSharedTransferCmd->ui32NumSrcSyncs = ui32RealSrcSyncNum; 
-	psSharedTransferCmd->ui32NumDstSyncs = ui32RealDstSyncNum; 
-
-	if ((psKick->ui32Flags & SGXMKIF_TQFLAGS_KEEPPENDING) == 0UL)
-	{
-		IMG_UINT32 i = 0;
-
-		for (loop = 0; loop < psKick->ui32NumSrcSync; loop++)
-		{
-			if (abSrcSyncEnable[loop])
-			{
-				psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahSrcSyncInfo[loop];
-
-				PVR_TTRACE_SYNC_OBJECT(PVRSRV_TRACE_GROUP_TRANSFER, TRANSFER_TOKEN_SRC_SYNC,
-						psSyncInfo, PVRSRV_SYNCOP_SAMPLE);
-
-				psSharedTransferCmd->asSrcSyncs[i].ui32WriteOpsPendingVal = psSyncInfo->psSyncData->ui32WriteOpsPending;
-				psSharedTransferCmd->asSrcSyncs[i].ui32ReadOpsPendingVal = psSyncInfo->psSyncData->ui32ReadOpsPending;
-
-				psSharedTransferCmd->asSrcSyncs[i].sWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr; 
-				psSharedTransferCmd->asSrcSyncs[i].sReadOpsCompleteDevVAddr = psSyncInfo->sReadOpsCompleteDevVAddr;
-				i++;
-			}
-		}
-		PVR_ASSERT(i == ui32RealSrcSyncNum);
-
-		i = 0;
-		for (loop = 0; loop < psKick->ui32NumDstSync; loop++)
-		{
-			if (abDstSyncEnable[loop])
-			{
-				psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahDstSyncInfo[loop];
-
-				PVR_TTRACE_SYNC_OBJECT(PVRSRV_TRACE_GROUP_TRANSFER, TRANSFER_TOKEN_DST_SYNC,
-						psSyncInfo, PVRSRV_SYNCOP_SAMPLE);
-
-				psSharedTransferCmd->asDstSyncs[i].ui32WriteOpsPendingVal = psSyncInfo->psSyncData->ui32WriteOpsPending;
-				psSharedTransferCmd->asDstSyncs[i].ui32ReadOpsPendingVal = psSyncInfo->psSyncData->ui32ReadOpsPending;
-
-				psSharedTransferCmd->asDstSyncs[i].sWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr;
-				psSharedTransferCmd->asDstSyncs[i].sReadOpsCompleteDevVAddr = psSyncInfo->sReadOpsCompleteDevVAddr;
-				i++;
-			}
-		}
-		PVR_ASSERT(i == ui32RealDstSyncNum);
-
-		
-		for (loop = 0; loop < psKick->ui32NumSrcSync; loop++)
-		{
-			if (abSrcSyncEnable[loop])
-			{
-				psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahSrcSyncInfo[loop];
-				psSyncInfo->psSyncData->ui32ReadOpsPending++;
-			}
-		}
-		for (loop = 0; loop < psKick->ui32NumDstSync; loop++)
-		{
-			if (abDstSyncEnable[loop])
-			{
-				psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahDstSyncInfo[loop];
-				psSyncInfo->psSyncData->ui32WriteOpsPending++;
-			}
-		}
-	}
-
-#if defined(PDUMP)
-	if ((PDumpIsCaptureFrameKM()
-	|| ((psKick->ui32PDumpFlags & PDUMP_FLAGS_CONTINUOUS) != 0)) 
-	&&  (bPersistentProcess == IMG_FALSE) )
-	{
-		PDUMPCOMMENT("Shared part of transfer command\r\n");
-		PDUMPMEM(psSharedTransferCmd,
-				psCCBMemInfo,
-				psKick->ui32CCBDumpWOff,
-				sizeof(SGXMKIF_TRANSFERCMD_SHARED),
-				psKick->ui32PDumpFlags,
-				MAKEUNIQUETAG(psCCBMemInfo));
-
-		if ((psKick->ui32Flags & SGXMKIF_TQFLAGS_KEEPPENDING) == 0UL)
-		{
-			IMG_UINT32 i = 0;
-
-			for (loop = 0; loop < psKick->ui32NumSrcSync; loop++)
-			{
-				if (abSrcSyncEnable[loop])
-				{
-					psSyncInfo = psKick->ahSrcSyncInfo[loop];
-
-					PDUMPCOMMENT("Hack src surface write op in transfer cmd\r\n");
-					PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-							psCCBMemInfo,
-							psKick->ui32CCBDumpWOff + (IMG_UINT32)(offsetof(SGXMKIF_TRANSFERCMD_SHARED, asSrcSyncs) + i * sizeof(PVRSRV_DEVICE_SYNC_OBJECT) + offsetof(PVRSRV_DEVICE_SYNC_OBJECT, ui32WriteOpsPendingVal)),
-							sizeof(psSyncInfo->psSyncData->ui32LastOpDumpVal),
-							psKick->ui32PDumpFlags,
-							MAKEUNIQUETAG(psCCBMemInfo));
-
-					PDUMPCOMMENT("Hack src surface read op in transfer cmd\r\n");
-					PDUMPMEM(&psSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-							psCCBMemInfo,
-							psKick->ui32CCBDumpWOff + (IMG_UINT32)(offsetof(SGXMKIF_TRANSFERCMD_SHARED, asSrcSyncs) + i * sizeof(PVRSRV_DEVICE_SYNC_OBJECT) + offsetof(PVRSRV_DEVICE_SYNC_OBJECT, ui32ReadOpsPendingVal)),
-							sizeof(psSyncInfo->psSyncData->ui32LastReadOpDumpVal),
-							psKick->ui32PDumpFlags,
-							MAKEUNIQUETAG(psCCBMemInfo));
-					i++;
-				}
-			}
-
-			i = 0;
-			for (loop = 0; loop < psKick->ui32NumDstSync; loop++)
-			{
-				if (abDstSyncEnable[i])
-				{
-					psSyncInfo = psKick->ahDstSyncInfo[loop];
-
-					PDUMPCOMMENT("Hack dest surface write op in transfer cmd\r\n");
-					PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-							psCCBMemInfo,
-							psKick->ui32CCBDumpWOff + (IMG_UINT32)(offsetof(SGXMKIF_TRANSFERCMD_SHARED, asDstSyncs) + i * sizeof(PVRSRV_DEVICE_SYNC_OBJECT) + offsetof(PVRSRV_DEVICE_SYNC_OBJECT, ui32WriteOpsPendingVal)),
-							sizeof(psSyncInfo->psSyncData->ui32LastOpDumpVal),
-							psKick->ui32PDumpFlags,
-							MAKEUNIQUETAG(psCCBMemInfo));
-
-					PDUMPCOMMENT("Hack dest surface read op in transfer cmd\r\n");
-					PDUMPMEM(&psSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-							psCCBMemInfo,
-							psKick->ui32CCBDumpWOff + (IMG_UINT32)(offsetof(SGXMKIF_TRANSFERCMD_SHARED, asDstSyncs) + i * sizeof(PVRSRV_DEVICE_SYNC_OBJECT) + offsetof(PVRSRV_DEVICE_SYNC_OBJECT, ui32ReadOpsPendingVal)),
-							sizeof(psSyncInfo->psSyncData->ui32LastReadOpDumpVal),
-							psKick->ui32PDumpFlags,
-							MAKEUNIQUETAG(psCCBMemInfo));
-					i++;
-				}
-			}
-
-			
-			for (loop = 0; loop < (psKick->ui32NumSrcSync); loop++)
-			{
-				if (abSrcSyncEnable[loop])
-				{	
-					psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahSrcSyncInfo[loop];
-					psSyncInfo->psSyncData->ui32LastReadOpDumpVal++;
-				}
-			}
-
-			for (loop = 0; loop < (psKick->ui32NumDstSync); loop++)
-			{
-				if (abDstSyncEnable[loop])
-				{
-					psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahDstSyncInfo[0];
-					psSyncInfo->psSyncData->ui32LastOpDumpVal++;
-				}
-			}
-		}
-
-		if (psKick->hTASyncInfo != IMG_NULL)
-		{
-			psSyncInfo = psKick->hTASyncInfo;
-
-			PDUMPCOMMENT("Tweak TA/TQ surface write op in transfer cmd\r\n");
-			PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-					psCCBMemInfo,
-					psKick->ui32CCBDumpWOff + (IMG_UINT32)(offsetof(SGXMKIF_TRANSFERCMD_SHARED, ui32TASyncWriteOpsPendingVal)),
-					sizeof(psSyncInfo->psSyncData->ui32LastOpDumpVal),
-					psKick->ui32PDumpFlags,
-					MAKEUNIQUETAG(psCCBMemInfo));
-
-			psSyncInfo->psSyncData->ui32LastOpDumpVal++;
-		}
-
-		if (psKick->h3DSyncInfo != IMG_NULL)
-		{
-			psSyncInfo = psKick->h3DSyncInfo;
-
-			PDUMPCOMMENT("Tweak 3D/TQ surface write op in transfer cmd\r\n");
-			PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-					psCCBMemInfo,
-					psKick->ui32CCBDumpWOff + (IMG_UINT32)(offsetof(SGXMKIF_TRANSFERCMD_SHARED, ui323DSyncWriteOpsPendingVal)),
-					sizeof(psSyncInfo->psSyncData->ui32LastOpDumpVal),
-					psKick->ui32PDumpFlags,
-					MAKEUNIQUETAG(psCCBMemInfo));
-
-			psSyncInfo->psSyncData->ui32LastOpDumpVal++;
-		}
-	}
-#endif
-
-	sCommand.ui32Data[1] = psKick->sHWTransferContextDevVAddr.uiAddr;
-	
-	PVR_TTRACE(PVRSRV_TRACE_GROUP_TRANSFER, PVRSRV_TRACE_CLASS_CMD_END,
-			TRANSFER_TOKEN_SUBMIT);
-
-	eError = SGXScheduleCCBCommandKM(hDevHandle, SGXMKIF_CMD_TRANSFER, &sCommand, KERNEL_ID, psKick->ui32PDumpFlags, hDevMemContext, IMG_FALSE);
-
-	if (eError == PVRSRV_ERROR_RETRY)
-	{
-		
-		if ((psKick->ui32Flags & SGXMKIF_TQFLAGS_KEEPPENDING) == 0UL)
-		{
-			for (loop = 0; loop < psKick->ui32NumSrcSync; loop++)
-			{
-				if (abSrcSyncEnable[loop])
-				{
-					psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahSrcSyncInfo[loop];
-					psSyncInfo->psSyncData->ui32ReadOpsPending--;
-#if defined(PDUMP)
-					if (PDumpIsCaptureFrameKM()
-							|| ((psKick->ui32PDumpFlags & PDUMP_FLAGS_CONTINUOUS) != 0))
-					{
-						psSyncInfo->psSyncData->ui32LastReadOpDumpVal--;
-					}
-#endif
-				}
-			}
-			for (loop = 0; loop < psKick->ui32NumDstSync; loop++)
-			{
-				if (abDstSyncEnable[loop])
-				{
-					psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahDstSyncInfo[loop];
-					psSyncInfo->psSyncData->ui32WriteOpsPending--;
-#if defined(PDUMP)
-					if (PDumpIsCaptureFrameKM()
-							|| ((psKick->ui32PDumpFlags & PDUMP_FLAGS_CONTINUOUS) != 0))
-					{
-						psSyncInfo->psSyncData->ui32LastOpDumpVal--;
-					}
-#endif
-				}
-			}
-		}
-
-		
-		if (psKick->hTASyncInfo != IMG_NULL)
-		{
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->hTASyncInfo;
-			psSyncInfo->psSyncData->ui32WriteOpsPending--;
-		}
-
-		
-		if (psKick->h3DSyncInfo != IMG_NULL)
-		{
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->h3DSyncInfo;
-			psSyncInfo->psSyncData->ui32WriteOpsPending--;
-		}
-	}
-
-	else if (PVRSRV_OK != eError)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXSubmitTransferKM: SGXScheduleCCBCommandKM failed."));
-		PVR_TTRACE(PVRSRV_TRACE_GROUP_TRANSFER, PVRSRV_TRACE_CLASS_FUNCTION_EXIT,
-				TRANSFER_TOKEN_SUBMIT);
-		return eError;
-	}
-	
-
-#if defined(NO_HARDWARE)
-	if ((psKick->ui32Flags & SGXMKIF_TQFLAGS_NOSYNCUPDATE) == 0)
-	{
-		
-		for (loop = 0; loop < psKick->ui32NumSrcSync; loop++)
-		{
-			if (abSrcSyncEnable[loop])
-			{
-				psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahSrcSyncInfo[loop];
-				psSyncInfo->psSyncData->ui32ReadOpsComplete = psSyncInfo->psSyncData->ui32ReadOpsPending;
-			}
-		}
-
-		for (loop = 0; loop < psKick->ui32NumDstSync; loop++)
-		{
-			if (abDstSyncEnable[loop])
-			{
-				psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahDstSyncInfo[loop];
-				psSyncInfo->psSyncData->ui32WriteOpsComplete = psSyncInfo->psSyncData->ui32WriteOpsPending;
-			}
-		}
-
-		if (psKick->hTASyncInfo != IMG_NULL)
-		{
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->hTASyncInfo;
-
-			psSyncInfo->psSyncData->ui32WriteOpsComplete = psSyncInfo->psSyncData->ui32WriteOpsPending;
-		}
-
-		if (psKick->h3DSyncInfo != IMG_NULL)
-		{
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->h3DSyncInfo;
-
-			psSyncInfo->psSyncData->ui32WriteOpsComplete = psSyncInfo->psSyncData->ui32WriteOpsPending;
-		}
-	}
-#endif
-	PVR_TTRACE(PVRSRV_TRACE_GROUP_TRANSFER, PVRSRV_TRACE_CLASS_FUNCTION_EXIT,
-			TRANSFER_TOKEN_SUBMIT);
-	return eError;
-}
-
-#if defined(SGX_FEATURE_2D_HARDWARE)
-#if defined (SUPPORT_SID_INTERFACE)
-IMG_EXPORT PVRSRV_ERROR SGXSubmit2DKM(IMG_HANDLE hDevHandle, PVRSRV_2D_SGX_KICK_KM *psKick)
-#else
-IMG_EXPORT PVRSRV_ERROR SGXSubmit2DKM(IMG_HANDLE hDevHandle, PVRSRV_2D_SGX_KICK *psKick)
-#endif
-					    
-{
-	PVRSRV_KERNEL_MEM_INFO  *psCCBMemInfo = (PVRSRV_KERNEL_MEM_INFO *)psKick->hCCBMemInfo;
-	SGXMKIF_COMMAND sCommand = {0};
-	SGXMKIF_2DCMD_SHARED *ps2DCmd;
-	PVRSRV_KERNEL_SYNC_INFO *psSyncInfo;
-	PVRSRV_ERROR eError;
-	IMG_UINT32 i;
-	IMG_HANDLE hDevMemContext = IMG_NULL;
-#if defined(PDUMP)
-	IMG_BOOL bPersistentProcess = IMG_FALSE;
-	
-	{
-		PVRSRV_PER_PROCESS_DATA* psPerProc = PVRSRVFindPerProcessData();
-		if(psPerProc != IMG_NULL)
-		{
-			bPersistentProcess = psPerProc->bPDumpPersistent;
-		}
-	}
-#endif 
-#if defined(FIX_HW_BRN_31620)
-	hDevMemContext = psKick->hDevMemContext;
-#endif
-
-	if (!CCB_OFFSET_IS_VALID(SGXMKIF_2DCMD_SHARED, psCCBMemInfo, psKick, ui32SharedCmdCCBOffset))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXSubmit2DKM: Invalid CCB offset"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-	
-	
-	ps2DCmd =  CCB_DATA_FROM_OFFSET(SGXMKIF_2DCMD_SHARED, psCCBMemInfo, psKick, ui32SharedCmdCCBOffset);
-
-	OSMemSet(ps2DCmd, 0, sizeof(*ps2DCmd));
-
-	
-	if (psKick->hTASyncInfo != IMG_NULL)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->hTASyncInfo;
-
-		ps2DCmd->sTASyncData.ui32WriteOpsPendingVal = psSyncInfo->psSyncData->ui32WriteOpsPending++;
-		ps2DCmd->sTASyncData.ui32ReadOpsPendingVal = psSyncInfo->psSyncData->ui32ReadOpsPending;
-
-		ps2DCmd->sTASyncData.sWriteOpsCompleteDevVAddr 	= psSyncInfo->sWriteOpsCompleteDevVAddr;
-		ps2DCmd->sTASyncData.sReadOpsCompleteDevVAddr 	= psSyncInfo->sReadOpsCompleteDevVAddr;
-	}
-
-	
-	if (psKick->h3DSyncInfo != IMG_NULL)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->h3DSyncInfo;
-
-		ps2DCmd->s3DSyncData.ui32WriteOpsPendingVal = psSyncInfo->psSyncData->ui32WriteOpsPending++;
-		ps2DCmd->s3DSyncData.ui32ReadOpsPendingVal = psSyncInfo->psSyncData->ui32ReadOpsPending;
-
-		ps2DCmd->s3DSyncData.sWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr;
-		ps2DCmd->s3DSyncData.sReadOpsCompleteDevVAddr = psSyncInfo->sReadOpsCompleteDevVAddr;
-	}
-
-	
-	ps2DCmd->ui32NumSrcSync = psKick->ui32NumSrcSync;
-	for (i = 0; i < psKick->ui32NumSrcSync; i++)
-	{
-		psSyncInfo = psKick->ahSrcSyncInfo[i];
-
-		ps2DCmd->sSrcSyncData[i].ui32WriteOpsPendingVal = psSyncInfo->psSyncData->ui32WriteOpsPending;
-		ps2DCmd->sSrcSyncData[i].ui32ReadOpsPendingVal = psSyncInfo->psSyncData->ui32ReadOpsPending;
-
-		ps2DCmd->sSrcSyncData[i].sWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr;
-		ps2DCmd->sSrcSyncData[i].sReadOpsCompleteDevVAddr = psSyncInfo->sReadOpsCompleteDevVAddr;
-	}
-
-	if (psKick->hDstSyncInfo != IMG_NULL)
-	{
-		psSyncInfo = psKick->hDstSyncInfo;
-
-		ps2DCmd->sDstSyncData.ui32WriteOpsPendingVal = psSyncInfo->psSyncData->ui32WriteOpsPending;
-		ps2DCmd->sDstSyncData.ui32ReadOpsPendingVal = psSyncInfo->psSyncData->ui32ReadOpsPending;
-
-		ps2DCmd->sDstSyncData.sWriteOpsCompleteDevVAddr = psSyncInfo->sWriteOpsCompleteDevVAddr;
-		ps2DCmd->sDstSyncData.sReadOpsCompleteDevVAddr = psSyncInfo->sReadOpsCompleteDevVAddr;
-	}
-
-	
-	for (i = 0; i < psKick->ui32NumSrcSync; i++)
-	{
-		psSyncInfo = psKick->ahSrcSyncInfo[i];
-		psSyncInfo->psSyncData->ui32ReadOpsPending++;
-	}
-
-	if (psKick->hDstSyncInfo != IMG_NULL)
-	{
-		psSyncInfo = psKick->hDstSyncInfo;
-		psSyncInfo->psSyncData->ui32WriteOpsPending++;
-	}
-
-#if defined(PDUMP)
-	if ((PDumpIsCaptureFrameKM()
-	|| ((psKick->ui32PDumpFlags & PDUMP_FLAGS_CONTINUOUS) != 0))
-	&&  (bPersistentProcess == IMG_FALSE) )
-	{
-		
-		PDUMPCOMMENT("Shared part of 2D command\r\n");
-		PDUMPMEM(ps2DCmd,
-				psCCBMemInfo,
-				psKick->ui32CCBDumpWOff,
-				sizeof(SGXMKIF_2DCMD_SHARED),
-				psKick->ui32PDumpFlags,
-				MAKEUNIQUETAG(psCCBMemInfo));
-
-		for (i = 0; i < psKick->ui32NumSrcSync; i++)
-		{
-			psSyncInfo = psKick->ahSrcSyncInfo[i];
-
-			PDUMPCOMMENT("Hack src surface write op in 2D cmd\r\n");
-			PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-					psCCBMemInfo,
-					psKick->ui32CCBDumpWOff + (IMG_UINT32)offsetof(SGXMKIF_2DCMD_SHARED, sSrcSyncData[i].ui32WriteOpsPendingVal),
-					sizeof(psSyncInfo->psSyncData->ui32LastOpDumpVal),
-					psKick->ui32PDumpFlags,
-					MAKEUNIQUETAG(psCCBMemInfo));
-
-			PDUMPCOMMENT("Hack src surface read op in 2D cmd\r\n");
-			PDUMPMEM(&psSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-					psCCBMemInfo,
-					psKick->ui32CCBDumpWOff + (IMG_UINT32)offsetof(SGXMKIF_2DCMD_SHARED, sSrcSyncData[i].ui32ReadOpsPendingVal),
-					sizeof(psSyncInfo->psSyncData->ui32LastReadOpDumpVal),
-					psKick->ui32PDumpFlags,
-					MAKEUNIQUETAG(psCCBMemInfo));
-		}
-
-		if (psKick->hDstSyncInfo != IMG_NULL)
-		{
-			psSyncInfo = psKick->hDstSyncInfo;
-
-			PDUMPCOMMENT("Hack dest surface write op in 2D cmd\r\n");
-			PDUMPMEM(&psSyncInfo->psSyncData->ui32LastOpDumpVal,
-					psCCBMemInfo,
-					psKick->ui32CCBDumpWOff + (IMG_UINT32)offsetof(SGXMKIF_2DCMD_SHARED, sDstSyncData.ui32WriteOpsPendingVal),
-					sizeof(psSyncInfo->psSyncData->ui32LastOpDumpVal),
-					psKick->ui32PDumpFlags,
-					MAKEUNIQUETAG(psCCBMemInfo));
-
-			PDUMPCOMMENT("Hack dest surface read op in 2D cmd\r\n");
-			PDUMPMEM(&psSyncInfo->psSyncData->ui32LastReadOpDumpVal,
-					psCCBMemInfo,
-					psKick->ui32CCBDumpWOff + (IMG_UINT32)offsetof(SGXMKIF_2DCMD_SHARED, sDstSyncData.ui32ReadOpsPendingVal),
-					sizeof(psSyncInfo->psSyncData->ui32LastReadOpDumpVal),
-					psKick->ui32PDumpFlags,
-					MAKEUNIQUETAG(psCCBMemInfo));
-		}
-
-		
-		for (i = 0; i < psKick->ui32NumSrcSync; i++)
-		{
-			psSyncInfo = psKick->ahSrcSyncInfo[i];
-			psSyncInfo->psSyncData->ui32LastReadOpDumpVal++;
-		}
-
-		if (psKick->hDstSyncInfo != IMG_NULL)
-		{
-			psSyncInfo = psKick->hDstSyncInfo;
-			psSyncInfo->psSyncData->ui32LastOpDumpVal++;
-		}
-	}		
-#endif
-
-	sCommand.ui32Data[1] = psKick->sHW2DContextDevVAddr.uiAddr;
-	
-	eError = SGXScheduleCCBCommandKM(hDevHandle, SGXMKIF_CMD_2D, &sCommand, KERNEL_ID, psKick->ui32PDumpFlags, hDevMemContext, IMG_FALSE);	
-
-	if (eError == PVRSRV_ERROR_RETRY)
-	{
-		
-
-#if defined(PDUMP)
-		if (PDumpIsCaptureFrameKM())
-		{
-			for (i = 0; i < psKick->ui32NumSrcSync; i++)
-			{
-				psSyncInfo = psKick->ahSrcSyncInfo[i];
-				psSyncInfo->psSyncData->ui32LastReadOpDumpVal--;
-			}
-
-			if (psKick->hDstSyncInfo != IMG_NULL)
-			{
-				psSyncInfo = psKick->hDstSyncInfo;
-				psSyncInfo->psSyncData->ui32LastOpDumpVal--;
-			}
-		}
-#endif
-
-		for (i = 0; i < psKick->ui32NumSrcSync; i++)
-		{
-			psSyncInfo = psKick->ahSrcSyncInfo[i];
-			psSyncInfo->psSyncData->ui32ReadOpsPending--;
-		}
-
-		if (psKick->hDstSyncInfo != IMG_NULL)
-		{
-			psSyncInfo = psKick->hDstSyncInfo;
-			psSyncInfo->psSyncData->ui32WriteOpsPending--;
-		}
-
-		
-		if (psKick->hTASyncInfo != IMG_NULL)
-		{
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->hTASyncInfo;
-
-			psSyncInfo->psSyncData->ui32WriteOpsPending--;
-		}
-
-		
-		if (psKick->h3DSyncInfo != IMG_NULL)
-		{
-			psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->h3DSyncInfo;
-
-			psSyncInfo->psSyncData->ui32WriteOpsPending--;
-		}
-	}
-
-	
-
-
-#if defined(NO_HARDWARE)
-	
-	for(i = 0; i < psKick->ui32NumSrcSync; i++)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->ahSrcSyncInfo[i];
-		psSyncInfo->psSyncData->ui32ReadOpsComplete = psSyncInfo->psSyncData->ui32ReadOpsPending;
-	}
-
-	if (psKick->hDstSyncInfo != IMG_NULL)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->hDstSyncInfo;
-
-		psSyncInfo->psSyncData->ui32WriteOpsComplete = psSyncInfo->psSyncData->ui32WriteOpsPending;
-	}
-
-	if (psKick->hTASyncInfo != IMG_NULL)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->hTASyncInfo;
-
-		psSyncInfo->psSyncData->ui32WriteOpsComplete = psSyncInfo->psSyncData->ui32WriteOpsPending;
-	}
-
-	if (psKick->h3DSyncInfo != IMG_NULL)
-	{
-		psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)psKick->h3DSyncInfo;
-
-		psSyncInfo->psSyncData->ui32WriteOpsComplete = psSyncInfo->psSyncData->ui32WriteOpsPending;
-	}
-#endif
-
-	return eError;
-}
-#endif	
-#endif	
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxutils.c b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxutils.c
deleted file mode 100644
index 7ee082a..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxutils.c
+++ /dev/null
@@ -1,1168 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <stddef.h>
-
-#include "sgxdefs.h"
-#include "services_headers.h"
-#include "buffer_manager.h"
-#include "sgx_bridge_km.h"
-#include "sgxapi_km.h"
-#include "sgxinfo.h"
-#include "sgx_mkif_km.h"
-#include "sysconfig.h"
-#include "pdump_km.h"
-#include "mmu.h"
-#include "pvr_bridge_km.h"
-#include "osfunc.h"
-#include "pvr_debug.h"
-#include "sgxutils.h"
-#include "ttrace.h"
-
-#ifdef __linux__
-#include <linux/kernel.h>	
-#include <linux/string.h>	
-#else
-#include <stdio.h>
-#endif
-
-
-#if defined(SYS_CUSTOM_POWERDOWN)
-PVRSRV_ERROR SysPowerDownMISR(PVRSRV_DEVICE_NODE	* psDeviceNode, IMG_UINT32 ui32CallerID);
-#endif
-
-
-
-static IMG_VOID SGXPostActivePowerEvent(PVRSRV_DEVICE_NODE	* psDeviceNode,
-										IMG_UINT32           ui32CallerID)
-{
-	PVRSRV_SGXDEV_INFO	*psDevInfo = psDeviceNode->pvDevice;
-	SGXMKIF_HOST_CTL	*psSGXHostCtl = psDevInfo->psSGXHostCtl;
-
-	
-	psSGXHostCtl->ui32NumActivePowerEvents++;
-
-	if ((psSGXHostCtl->ui32PowerStatus & PVRSRV_USSE_EDM_POWMAN_POWEROFF_RESTART_IMMEDIATE) != 0)
-	{
-		
-
-
-		if (ui32CallerID == ISR_ID)
-		{
-			psDeviceNode->bReProcessDeviceCommandComplete = IMG_TRUE;
-		}
-		else
-		{
-			SGXScheduleProcessQueuesKM(psDeviceNode);
-		}
-	}
-}
-
-
-IMG_VOID SGXTestActivePowerEvent (PVRSRV_DEVICE_NODE	*psDeviceNode,
-								  IMG_UINT32			ui32CallerID)
-{
-	PVRSRV_ERROR		eError = PVRSRV_OK;
-	PVRSRV_SGXDEV_INFO	*psDevInfo = psDeviceNode->pvDevice;
-	SGXMKIF_HOST_CTL	*psSGXHostCtl = psDevInfo->psSGXHostCtl;
-
-	if (((psSGXHostCtl->ui32InterruptFlags & PVRSRV_USSE_EDM_INTERRUPT_ACTIVE_POWER) != 0) &&
-		((psSGXHostCtl->ui32InterruptClearFlags & PVRSRV_USSE_EDM_INTERRUPT_ACTIVE_POWER) == 0))
-	{
-		
-		psSGXHostCtl->ui32InterruptClearFlags |= PVRSRV_USSE_EDM_INTERRUPT_ACTIVE_POWER;
-
-		
-		PDUMPSUSPEND();
-
-#if defined(SYS_CUSTOM_POWERDOWN)
-		
-
-
-		eError = SysPowerDownMISR(psDeviceNode, ui32CallerID);
-#else
-		eError = PVRSRVSetDevicePowerStateKM(psDeviceNode->sDevId.ui32DeviceIndex,
-											 PVRSRV_DEV_POWER_STATE_OFF,
-											 ui32CallerID, IMG_FALSE);
-		if (eError == PVRSRV_OK)
-		{
-			SGXPostActivePowerEvent(psDeviceNode, ui32CallerID);
-		}
-#endif
-		if (eError == PVRSRV_ERROR_RETRY)
-		{
-			
-
-			psSGXHostCtl->ui32InterruptClearFlags &= ~PVRSRV_USSE_EDM_INTERRUPT_ACTIVE_POWER;
-			eError = PVRSRV_OK;
-		}
-
-		
-		PDUMPRESUME();
-	}
-
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXTestActivePowerEvent error:%u", eError));
-	}
-}
-
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(SGXAcquireKernelCCBSlot)
-#endif
-static INLINE SGXMKIF_COMMAND * SGXAcquireKernelCCBSlot(PVRSRV_SGX_CCB_INFO *psCCB)
-{
-	LOOP_UNTIL_TIMEOUT(MAX_HW_TIME_US)
-	{
-		if(((*psCCB->pui32WriteOffset + 1) & 255) != *psCCB->pui32ReadOffset)
-		{
-			return &psCCB->psCommands[*psCCB->pui32WriteOffset];
-		}
-
-		OSSleepms(1);
-	} END_LOOP_UNTIL_TIMEOUT();
-
-	
-	return IMG_NULL;
-}
-
-PVRSRV_ERROR SGXScheduleCCBCommand(PVRSRV_DEVICE_NODE	*psDeviceNode,
-								   SGXMKIF_CMD_TYPE		eCmdType,
-								   SGXMKIF_COMMAND		*psCommandData,
-								   IMG_UINT32			ui32CallerID,
-								   IMG_UINT32			ui32PDumpFlags,
-								   IMG_HANDLE			hDevMemContext,
-								   IMG_BOOL				bLastInScene)
-{
-	PVRSRV_SGX_CCB_INFO *psKernelCCB;
-	PVRSRV_ERROR eError = PVRSRV_OK;
-	SGXMKIF_COMMAND *psSGXCommand;
-	PVRSRV_SGXDEV_INFO 	*psDevInfo = psDeviceNode->pvDevice;
-#if defined(FIX_HW_BRN_31620)
-	IMG_UINT32 ui32CacheMasks[4];
-	IMG_UINT32 i;
-	MMU_CONTEXT		*psMMUContext;
-#endif
-#if defined(PDUMP)
-	IMG_VOID *pvDumpCommand;
-	IMG_BOOL bPDumpIsSuspended = PDumpIsSuspended();
-	IMG_BOOL bPersistentProcess = IMG_FALSE;
-#else
-	PVR_UNREFERENCED_PARAMETER(ui32CallerID);
-	PVR_UNREFERENCED_PARAMETER(ui32PDumpFlags);
-#endif
-
-#if defined(FIX_HW_BRN_31620)
-	for(i=0;i<4;i++)
-	{
-		ui32CacheMasks[i] = 0;
-	}
-
-	psMMUContext = psDevInfo->hKernelMMUContext;
-	psDeviceNode->pfnMMUGetCacheFlushRange(psMMUContext, &ui32CacheMasks[0]);
-
-	
-	if (hDevMemContext)
-	{
-		BM_CONTEXT *psBMContext = (BM_CONTEXT *) hDevMemContext;
-
-		psMMUContext = psBMContext->psMMUContext;
-		psDeviceNode->pfnMMUGetCacheFlushRange(psMMUContext, &ui32CacheMasks[2]);
-	}
-
-	
-	if (ui32CacheMasks[0] || ui32CacheMasks[1] || ui32CacheMasks[2] || ui32CacheMasks[3])
-	{
-		psDevInfo->ui32CacheControl |= SGXMKIF_CC_INVAL_BIF_PD;
-	}
-#endif
-
-#if defined(FIX_HW_BRN_28889)
-	
-
-
-
-	if ( (eCmdType != SGXMKIF_CMD_PROCESS_QUEUES) &&
-		 ((psDevInfo->ui32CacheControl & SGXMKIF_CC_INVAL_DATA) != 0) &&
-		 ((psDevInfo->ui32CacheControl & (SGXMKIF_CC_INVAL_BIF_PT | SGXMKIF_CC_INVAL_BIF_PD)) != 0))
-	{
-	#if defined(PDUMP)
-		PVRSRV_KERNEL_MEM_INFO	*psSGXHostCtlMemInfo = psDevInfo->psKernelSGXHostCtlMemInfo;
-	#endif
-		SGXMKIF_HOST_CTL	*psSGXHostCtl = psDevInfo->psSGXHostCtl;
-		SGXMKIF_COMMAND		sCacheCommand = {0};
-
-		eError = SGXScheduleCCBCommand(psDeviceNode,
-									   SGXMKIF_CMD_PROCESS_QUEUES,
-									   &sCacheCommand,
-									   ui32CallerID,
-									   ui32PDumpFlags,
-									   hDevMemContext,
-									   bLastInScene);
-		if (eError != PVRSRV_OK)
-		{
-			goto Exit;
-		}
-
-		
-		#if !defined(NO_HARDWARE)
-		if(PollForValueKM(&psSGXHostCtl->ui32InvalStatus,
-						  PVRSRV_USSE_EDM_BIF_INVAL_COMPLETE,
-						  PVRSRV_USSE_EDM_BIF_INVAL_COMPLETE,
-						  2 * MAX_HW_TIME_US,
-						  MAX_HW_TIME_US/WAIT_TRY_COUNT,
-						  IMG_FALSE) != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"SGXScheduleCCBCommand: Wait for uKernel to Invalidate BIF cache failed"));
-			PVR_DBG_BREAK;
-		}
-		#endif
-
-		#if defined(PDUMP)
-		
-		PDUMPCOMMENTWITHFLAGS(0, "Host Control - Poll for BIF cache invalidate request to complete");
-		PDUMPMEMPOL(psSGXHostCtlMemInfo,
-					offsetof(SGXMKIF_HOST_CTL, ui32InvalStatus),
-					PVRSRV_USSE_EDM_BIF_INVAL_COMPLETE,
-					PVRSRV_USSE_EDM_BIF_INVAL_COMPLETE,
-					PDUMP_POLL_OPERATOR_EQUAL,
-					0,
-					MAKEUNIQUETAG(psSGXHostCtlMemInfo));
-		#endif 
-
-		psSGXHostCtl->ui32InvalStatus &= ~(PVRSRV_USSE_EDM_BIF_INVAL_COMPLETE);
-		PDUMPMEM(IMG_NULL, psSGXHostCtlMemInfo, offsetof(SGXMKIF_HOST_CTL, ui32CleanupStatus), sizeof(IMG_UINT32), 0, MAKEUNIQUETAG(psSGXHostCtlMemInfo));
-	}
-#else
-	PVR_UNREFERENCED_PARAMETER(hDevMemContext);
-#endif
-
-#if defined(FIX_HW_BRN_31620)
-	if ((eCmdType != SGXMKIF_CMD_FLUSHPDCACHE) && (psDevInfo->ui32CacheControl & SGXMKIF_CC_INVAL_BIF_PD))
-	{
-		SGXMKIF_COMMAND		sPDECacheCommand = {0};
-		IMG_DEV_PHYADDR		sDevPAddr;
-
-		
-		psMMUContext = psDevInfo->hKernelMMUContext;
-
-		psDeviceNode->pfnMMUGetPDPhysAddr(psMMUContext, &sDevPAddr);
-		sPDECacheCommand.ui32Data[0] = sDevPAddr.uiAddr | 1;
-		sPDECacheCommand.ui32Data[1] = ui32CacheMasks[0];
-		sPDECacheCommand.ui32Data[2] = ui32CacheMasks[1];
-
-		
-		if (hDevMemContext)
-		{
-			BM_CONTEXT *psBMContext = (BM_CONTEXT *) hDevMemContext;
-
-			psMMUContext = psBMContext->psMMUContext;
-
-			psDeviceNode->pfnMMUGetPDPhysAddr(psMMUContext, &sDevPAddr);
-			
-			sPDECacheCommand.ui32Data[3] = sDevPAddr.uiAddr | 1;
-			sPDECacheCommand.ui32Data[4] = ui32CacheMasks[2];
-			sPDECacheCommand.ui32Data[5] = ui32CacheMasks[3];
-		}
-
-		
-		if (sPDECacheCommand.ui32Data[1] | sPDECacheCommand.ui32Data[2] | sPDECacheCommand.ui32Data[4] |
-			sPDECacheCommand.ui32Data[5])
-		{
-			eError = SGXScheduleCCBCommand(psDeviceNode,
-										   SGXMKIF_CMD_FLUSHPDCACHE,
-										   &sPDECacheCommand,
-										   ui32CallerID,
-										   ui32PDumpFlags,
-										   hDevMemContext,
-										   bLastInScene);
-			if (eError != PVRSRV_OK)
-			{
-				goto Exit;
-			}
-		}
-	}
-#endif
-#if defined(PDUMP)
-	
-	{
-		PVRSRV_PER_PROCESS_DATA* psPerProc = PVRSRVFindPerProcessData();
-		if(psPerProc != IMG_NULL)
-		{
-			bPersistentProcess = psPerProc->bPDumpPersistent;
-		}
-	}
-#endif 
-	psKernelCCB = psDevInfo->psKernelCCBInfo;
-
-	psSGXCommand = SGXAcquireKernelCCBSlot(psKernelCCB);
-
-	
-	if(!psSGXCommand)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXScheduleCCBCommand: Wait for CCB space timed out")) ;
-		eError = PVRSRV_ERROR_TIMEOUT;
-		goto Exit;
-	}
-
-	
-	psCommandData->ui32CacheControl = psDevInfo->ui32CacheControl;
-
-#if defined(PDUMP)
-	
-	psDevInfo->sPDContext.ui32CacheControl |= psDevInfo->ui32CacheControl;
-#endif
-
-	
-	psDevInfo->ui32CacheControl = 0;
-
-	
-	*psSGXCommand = *psCommandData;
-
-	if (eCmdType >= SGXMKIF_CMD_MAX)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXScheduleCCBCommand: Unknown command type: %d", eCmdType)) ;
-		eError = PVRSRV_ERROR_INVALID_CCB_COMMAND;
-		goto Exit;
-	}
-
-	if ((eCmdType == SGXMKIF_CMD_TA) && bLastInScene)
-	{
-		SYS_DATA *psSysData;
-
-		
-		SysAcquireData(&psSysData);
-
-		if(psSysData->ePendingCacheOpType == PVRSRV_MISC_INFO_CPUCACHEOP_FLUSH)
-		{
-			OSFlushCPUCacheKM();
-		}
-		else if(psSysData->ePendingCacheOpType == PVRSRV_MISC_INFO_CPUCACHEOP_CLEAN)
-		{
-			OSCleanCPUCacheKM();
-		}
-
-		
-		psSysData->ePendingCacheOpType = PVRSRV_MISC_INFO_CPUCACHEOP_NONE;
-	}
-
-	PVR_ASSERT(eCmdType < SGXMKIF_CMD_MAX);
-	psSGXCommand->ui32ServiceAddress = psDevInfo->aui32HostKickAddr[eCmdType];	 
-
-#if defined(PDUMP)
-	if ((ui32CallerID != ISR_ID) && (bPDumpIsSuspended == IMG_FALSE) &&
-		(bPersistentProcess == IMG_FALSE) )
-	{
-		
-		PDUMPCOMMENTWITHFLAGS(ui32PDumpFlags, "Poll for space in the Kernel CCB\r\n");
-		PDUMPMEMPOL(psKernelCCB->psCCBCtlMemInfo,
-					offsetof(PVRSRV_SGX_CCB_CTL, ui32ReadOffset),
-					(psKernelCCB->ui32CCBDumpWOff + 1) & 0xff,
-					0xff,
-					PDUMP_POLL_OPERATOR_NOTEQUAL,
-					ui32PDumpFlags,
-					MAKEUNIQUETAG(psKernelCCB->psCCBCtlMemInfo));
-
-		PDUMPCOMMENTWITHFLAGS(ui32PDumpFlags, "Kernel CCB command (type == %d)\r\n", eCmdType);
-		pvDumpCommand = (IMG_VOID *)((IMG_UINT8 *)psKernelCCB->psCCBMemInfo->pvLinAddrKM + (*psKernelCCB->pui32WriteOffset * sizeof(SGXMKIF_COMMAND)));
-
-		PDUMPMEM(pvDumpCommand,
-					psKernelCCB->psCCBMemInfo,
-					psKernelCCB->ui32CCBDumpWOff * sizeof(SGXMKIF_COMMAND),
-					sizeof(SGXMKIF_COMMAND),
-					ui32PDumpFlags,
-					MAKEUNIQUETAG(psKernelCCB->psCCBMemInfo));
-
-		
-		PDUMPMEM(&psDevInfo->sPDContext.ui32CacheControl,
-					psKernelCCB->psCCBMemInfo,
-					psKernelCCB->ui32CCBDumpWOff * sizeof(SGXMKIF_COMMAND) +
-					offsetof(SGXMKIF_COMMAND, ui32CacheControl),
-					sizeof(IMG_UINT32),
-					ui32PDumpFlags,
-					MAKEUNIQUETAG(psKernelCCB->psCCBMemInfo));
-
-		if (PDumpIsCaptureFrameKM()
-		|| ((ui32PDumpFlags & PDUMP_FLAGS_CONTINUOUS) != 0))
-		{
-			
-			psDevInfo->sPDContext.ui32CacheControl = 0;
-		}
-	}
-#endif
-
-#if defined(FIX_HW_BRN_26620) && defined(SGX_FEATURE_SYSTEM_CACHE) && !defined(SGX_BYPASS_SYSTEM_CACHE)
-	
-	eError = PollForValueKM (psKernelCCB->pui32ReadOffset,
-								*psKernelCCB->pui32WriteOffset,
-								0xFF,
-								MAX_HW_TIME_US,
-								MAX_HW_TIME_US/WAIT_TRY_COUNT,
-								IMG_FALSE);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXScheduleCCBCommand: Timeout waiting for previous command to be read")) ;
-		eError = PVRSRV_ERROR_TIMEOUT;
-		goto Exit;
-	}
-#endif
-
-	
-
-	*psKernelCCB->pui32WriteOffset = (*psKernelCCB->pui32WriteOffset + 1) & 255;
-
-#if defined(PDUMP)
-	if ((ui32CallerID != ISR_ID) && (bPDumpIsSuspended == IMG_FALSE) &&
-		(bPersistentProcess == IMG_FALSE) )
-	{
-	#if defined(FIX_HW_BRN_26620) && defined(SGX_FEATURE_SYSTEM_CACHE) && !defined(SGX_BYPASS_SYSTEM_CACHE)
-		PDUMPCOMMENTWITHFLAGS(ui32PDumpFlags, "Poll for previous Kernel CCB CMD to be read\r\n");
-		PDUMPMEMPOL(psKernelCCB->psCCBCtlMemInfo,
-					offsetof(PVRSRV_SGX_CCB_CTL, ui32ReadOffset),
-					(psKernelCCB->ui32CCBDumpWOff),
-					0xFF,
-					PDUMP_POLL_OPERATOR_EQUAL,
-					ui32PDumpFlags,
-					MAKEUNIQUETAG(psKernelCCB->psCCBCtlMemInfo));
-	#endif
-
-		if (PDumpIsCaptureFrameKM()
-		|| ((ui32PDumpFlags & PDUMP_FLAGS_CONTINUOUS) != 0))
-		{
-			psKernelCCB->ui32CCBDumpWOff = (psKernelCCB->ui32CCBDumpWOff + 1) & 0xFF;
-			psDevInfo->ui32KernelCCBEventKickerDumpVal = (psDevInfo->ui32KernelCCBEventKickerDumpVal + 1) & 0xFF;
-		}
-
-		PDUMPCOMMENTWITHFLAGS(ui32PDumpFlags, "Kernel CCB write offset\r\n");
-		PDUMPMEM(&psKernelCCB->ui32CCBDumpWOff,
-				 psKernelCCB->psCCBCtlMemInfo,
-				 offsetof(PVRSRV_SGX_CCB_CTL, ui32WriteOffset),
-				 sizeof(IMG_UINT32),
-				 ui32PDumpFlags,
-				 MAKEUNIQUETAG(psKernelCCB->psCCBCtlMemInfo));
-		PDUMPCOMMENTWITHFLAGS(ui32PDumpFlags, "Kernel CCB event kicker\r\n");
-		PDUMPMEM(&psDevInfo->ui32KernelCCBEventKickerDumpVal,
-				 psDevInfo->psKernelCCBEventKickerMemInfo,
-				 0,
-				 sizeof(IMG_UINT32),
-				 ui32PDumpFlags,
-				 MAKEUNIQUETAG(psDevInfo->psKernelCCBEventKickerMemInfo));
-		PDUMPCOMMENTWITHFLAGS(ui32PDumpFlags, "Kick the SGX microkernel\r\n");
-	#if defined(FIX_HW_BRN_26620) && defined(SGX_FEATURE_SYSTEM_CACHE) && !defined(SGX_BYPASS_SYSTEM_CACHE)
-		PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, SGX_MP_CORE_SELECT(EUR_CR_EVENT_KICK2, 0), EUR_CR_EVENT_KICK2_NOW_MASK, ui32PDumpFlags);
-	#else
-		PDUMPREGWITHFLAGS(SGX_PDUMPREG_NAME, SGX_MP_CORE_SELECT(EUR_CR_EVENT_KICK, 0), EUR_CR_EVENT_KICK_NOW_MASK, ui32PDumpFlags);
-	#endif
-	}
-#endif
-
-	*psDevInfo->pui32KernelCCBEventKicker = (*psDevInfo->pui32KernelCCBEventKicker + 1) & 0xFF;
-
-	OSWriteMemoryBarrier();
-
-	
-	PVR_TTRACE_UI32(PVRSRV_TRACE_GROUP_MKSYNC, PVRSRV_TRACE_CLASS_NONE,
-			MKSYNC_TOKEN_KERNEL_CCB_OFFSET, *psKernelCCB->pui32WriteOffset);
-	PVR_TTRACE_UI32(PVRSRV_TRACE_GROUP_MKSYNC, PVRSRV_TRACE_CLASS_NONE,
-			MKSYNC_TOKEN_CORE_CLK, psDevInfo->ui32CoreClockSpeed);
-	PVR_TTRACE_UI32(PVRSRV_TRACE_GROUP_MKSYNC, PVRSRV_TRACE_CLASS_NONE,
-			MKSYNC_TOKEN_UKERNEL_CLK, psDevInfo->ui32uKernelTimerClock);
-
-
-#if defined(FIX_HW_BRN_26620) && defined(SGX_FEATURE_SYSTEM_CACHE) && !defined(SGX_BYPASS_SYSTEM_CACHE)
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM,
-				SGX_MP_CORE_SELECT(EUR_CR_EVENT_KICK2, 0),
-				EUR_CR_EVENT_KICK2_NOW_MASK);
-#else
-	OSWriteHWReg(psDevInfo->pvRegsBaseKM,
-				SGX_MP_CORE_SELECT(EUR_CR_EVENT_KICK, 0),
-				EUR_CR_EVENT_KICK_NOW_MASK);
-#endif
-
-	OSMemoryBarrier();
-
-#if defined(NO_HARDWARE)
-	
-	*psKernelCCB->pui32ReadOffset = (*psKernelCCB->pui32ReadOffset + 1) & 255;
-#endif
-
-Exit:
-	return eError;
-}
-
-
-PVRSRV_ERROR SGXScheduleCCBCommandKM(PVRSRV_DEVICE_NODE		*psDeviceNode,
-									 SGXMKIF_CMD_TYPE		eCmdType,
-									 SGXMKIF_COMMAND		*psCommandData,
-									 IMG_UINT32				ui32CallerID,
-									 IMG_UINT32				ui32PDumpFlags,
-									 IMG_HANDLE				hDevMemContext,
-									 IMG_BOOL				bLastInScene)
-{
-	PVRSRV_ERROR		eError;
-
-	
-	PDUMPSUSPEND();
-
-	
-	eError = PVRSRVSetDevicePowerStateKM(psDeviceNode->sDevId.ui32DeviceIndex,
-										 PVRSRV_DEV_POWER_STATE_ON,
-										 ui32CallerID,
-										 IMG_TRUE);
-
-	PDUMPRESUME();
-
-	if (eError == PVRSRV_OK)
-	{
-		psDeviceNode->bReProcessDeviceCommandComplete = IMG_FALSE;
-	}
-	else
-	{
-		if (eError == PVRSRV_ERROR_RETRY)
-		{
-			if (ui32CallerID == ISR_ID)
-			{
-				SYS_DATA *psSysData;
-				
-				
-
-
-				psDeviceNode->bReProcessDeviceCommandComplete = IMG_TRUE;
-				eError = PVRSRV_OK;
-
-				SysAcquireData(&psSysData);
-				OSScheduleMISR(psSysData);
-			}
-			else
-			{
-				
-
-			}
-		}
-		else
-		{
-			PVR_DPF((PVR_DBG_ERROR,"SGXScheduleCCBCommandKM failed to acquire lock - "
-					 "ui32CallerID:%d eError:%u", ui32CallerID, eError));
-		}
-
-		return eError;
-	}
-
-	eError = SGXScheduleCCBCommand(psDeviceNode, eCmdType, psCommandData, ui32CallerID, ui32PDumpFlags, hDevMemContext, bLastInScene);
-
-	PVRSRVPowerUnlock(ui32CallerID);
-	return eError;
-}
-
-
-PVRSRV_ERROR SGXScheduleProcessQueuesKM(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	PVRSRV_ERROR 		eError;
-	PVRSRV_SGXDEV_INFO 	*psDevInfo = psDeviceNode->pvDevice;
-	SGXMKIF_HOST_CTL	*psHostCtl = psDevInfo->psKernelSGXHostCtlMemInfo->pvLinAddrKM;
-	IMG_UINT32			ui32PowerStatus;
-	SGXMKIF_COMMAND		sCommand = {0};
-
-	ui32PowerStatus = psHostCtl->ui32PowerStatus;
-	if ((ui32PowerStatus & PVRSRV_USSE_EDM_POWMAN_NO_WORK) != 0)
-	{
-		
-		return PVRSRV_OK;
-	}
-
-	eError = SGXScheduleCCBCommandKM(psDeviceNode, SGXMKIF_CMD_PROCESS_QUEUES, &sCommand, ISR_ID, 0, IMG_NULL, IMG_FALSE);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SGXScheduleProcessQueuesKM failed to schedule CCB command: %u", eError));
-		return eError;
-	}
-
-	return PVRSRV_OK;
-}
-
-
-IMG_BOOL SGXIsDevicePowered(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	return PVRSRVIsDevicePowered(psDeviceNode->sDevId.ui32DeviceIndex);
-}
-
-IMG_EXPORT
-PVRSRV_ERROR SGXGetInternalDevInfoKM(IMG_HANDLE hDevCookie,
-#if defined (SUPPORT_SID_INTERFACE)
-									SGX_INTERNAL_DEVINFO_KM *psSGXInternalDevInfo)
-#else
-									SGX_INTERNAL_DEVINFO *psSGXInternalDevInfo)
-#endif
-{
-	PVRSRV_SGXDEV_INFO *psDevInfo = (PVRSRV_SGXDEV_INFO *)((PVRSRV_DEVICE_NODE *)hDevCookie)->pvDevice;
-
-	psSGXInternalDevInfo->ui32Flags = psDevInfo->ui32Flags;
-	psSGXInternalDevInfo->bForcePTOff = (IMG_BOOL)psDevInfo->bForcePTOff;
-
-	
-	psSGXInternalDevInfo->hHostCtlKernelMemInfoHandle =
-		(IMG_HANDLE)psDevInfo->psKernelSGXHostCtlMemInfo;
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR SGXCleanupRequest(PVRSRV_DEVICE_NODE *psDeviceNode,
-							   IMG_DEV_VIRTADDR   *psHWDataDevVAddr,
-							   IMG_UINT32          ui32CleanupType,
-							   IMG_BOOL            bForceCleanup)
-{
-	PVRSRV_ERROR			eError;
-	PVRSRV_SGXDEV_INFO		*psDevInfo = psDeviceNode->pvDevice;
-	PVRSRV_KERNEL_MEM_INFO	*psHostCtlMemInfo = psDevInfo->psKernelSGXHostCtlMemInfo;
-	SGXMKIF_HOST_CTL		*psHostCtl = psHostCtlMemInfo->pvLinAddrKM;
-
-	SGXMKIF_COMMAND		sCommand = {0};
-
-
-	if (bForceCleanup != FORCE_CLEANUP)
-	{
-		sCommand.ui32Data[0] = ui32CleanupType;
-		sCommand.ui32Data[1] = (psHWDataDevVAddr == IMG_NULL) ? 0 : psHWDataDevVAddr->uiAddr;
-		PDUMPCOMMENTWITHFLAGS(0, "Request ukernel resource clean-up, Type %u, Data 0x%X", sCommand.ui32Data[0], sCommand.ui32Data[1]);
-	
-		eError = SGXScheduleCCBCommandKM(psDeviceNode, SGXMKIF_CMD_CLEANUP, &sCommand, KERNEL_ID, 0, IMG_NULL, IMG_FALSE);
-		if (eError != PVRSRV_OK)
-		{
-				PVR_DPF((PVR_DBG_ERROR,"SGXCleanupRequest: Failed to submit clean-up command"));
-				PVR_DBG_BREAK;
-				return eError;
-		}
-		
-		
-		#if !defined(NO_HARDWARE)
-		if(PollForValueKM(&psHostCtl->ui32CleanupStatus,
-						  PVRSRV_USSE_EDM_CLEANUPCMD_COMPLETE,
-						  PVRSRV_USSE_EDM_CLEANUPCMD_COMPLETE,
-						  10 * MAX_HW_TIME_US,
-						  1000,
-						  IMG_TRUE) != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"SGXCleanupRequest: Wait for uKernel to clean up (%u) failed", ui32CleanupType));
-			eError = PVRSRV_ERROR_TIMEOUT;
-			PVR_DBG_BREAK;
-		}
-		#endif
-	
-		#if defined(PDUMP)
-		
-		PDUMPCOMMENTWITHFLAGS(0, "Host Control - Poll for clean-up request to complete");
-		PDUMPMEMPOL(psHostCtlMemInfo,
-					offsetof(SGXMKIF_HOST_CTL, ui32CleanupStatus),
-					PVRSRV_USSE_EDM_CLEANUPCMD_COMPLETE,
-					PVRSRV_USSE_EDM_CLEANUPCMD_COMPLETE,
-					PDUMP_POLL_OPERATOR_EQUAL,
-					0,
-					MAKEUNIQUETAG(psHostCtlMemInfo));
-		#endif 
-	
-		if (eError != PVRSRV_OK)
-		{
-			return eError;
-		}
-	}
-	
-	psHostCtl->ui32CleanupStatus &= ~(PVRSRV_USSE_EDM_CLEANUPCMD_COMPLETE);
-	PDUMPMEM(IMG_NULL, psHostCtlMemInfo, offsetof(SGXMKIF_HOST_CTL, ui32CleanupStatus), sizeof(IMG_UINT32), 0, MAKEUNIQUETAG(psHostCtlMemInfo));
-
-	
-#if defined(SGX_FEATURE_SYSTEM_CACHE)
-	psDevInfo->ui32CacheControl |= (SGXMKIF_CC_INVAL_BIF_SL | SGXMKIF_CC_INVAL_DATA);
-#else
-	psDevInfo->ui32CacheControl |= SGXMKIF_CC_INVAL_DATA;
-#endif
-	return PVRSRV_OK;
-}
-
-
-typedef struct _SGX_HW_RENDER_CONTEXT_CLEANUP_
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	IMG_DEV_VIRTADDR sHWRenderContextDevVAddr;
-	IMG_HANDLE hBlockAlloc;
-	PRESMAN_ITEM psResItem;
-} SGX_HW_RENDER_CONTEXT_CLEANUP;
-
-
-static PVRSRV_ERROR SGXCleanupHWRenderContextCallback(IMG_PVOID		pvParam,
-													  IMG_UINT32	ui32Param,
-													  IMG_BOOL		bForceCleanup)
-{
-	PVRSRV_ERROR eError;
-	SGX_HW_RENDER_CONTEXT_CLEANUP *psCleanup = pvParam;
-
-	PVR_UNREFERENCED_PARAMETER(ui32Param);
-
-	eError = SGXCleanupRequest(psCleanup->psDeviceNode,
-					  &psCleanup->sHWRenderContextDevVAddr,
-					  PVRSRV_CLEANUPCMD_RC,
-					  bForceCleanup);
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-			  sizeof(SGX_HW_RENDER_CONTEXT_CLEANUP),
-			  psCleanup,
-			  psCleanup->hBlockAlloc);
-	
-
-	return eError;
-}
-
-typedef struct _SGX_HW_TRANSFER_CONTEXT_CLEANUP_
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	IMG_DEV_VIRTADDR sHWTransferContextDevVAddr;
-	IMG_HANDLE hBlockAlloc;
-	PRESMAN_ITEM psResItem;
-} SGX_HW_TRANSFER_CONTEXT_CLEANUP;
-
-
-static PVRSRV_ERROR SGXCleanupHWTransferContextCallback(IMG_PVOID	pvParam,
-														IMG_UINT32	ui32Param,
-														IMG_BOOL	bForceCleanup)
-{
-	PVRSRV_ERROR eError;
-	SGX_HW_TRANSFER_CONTEXT_CLEANUP *psCleanup = (SGX_HW_TRANSFER_CONTEXT_CLEANUP *)pvParam;
-
-	PVR_UNREFERENCED_PARAMETER(ui32Param);
-
-	eError = SGXCleanupRequest(psCleanup->psDeviceNode,
-					  &psCleanup->sHWTransferContextDevVAddr,
-					  PVRSRV_CLEANUPCMD_TC,
-					  bForceCleanup);
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-			  sizeof(SGX_HW_TRANSFER_CONTEXT_CLEANUP),
-			  psCleanup,
-			  psCleanup->hBlockAlloc);
-	
-
-	return eError;
-}
-
-IMG_EXPORT
-IMG_HANDLE SGXRegisterHWRenderContextKM(IMG_HANDLE				psDeviceNode,
-										IMG_DEV_VIRTADDR		*psHWRenderContextDevVAddr,
-										PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	PVRSRV_ERROR eError;
-	IMG_HANDLE hBlockAlloc;
-	SGX_HW_RENDER_CONTEXT_CLEANUP *psCleanup;
-	PRESMAN_ITEM psResItem;
-
-	eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-						sizeof(SGX_HW_RENDER_CONTEXT_CLEANUP),
-						(IMG_VOID **)&psCleanup,
-						&hBlockAlloc,
-						"SGX Hardware Render Context Cleanup");
-
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXRegisterHWRenderContextKM: Couldn't allocate memory for SGX_HW_RENDER_CONTEXT_CLEANUP structure"));
-		return IMG_NULL;
-	}
-
-	psCleanup->hBlockAlloc = hBlockAlloc;
-	psCleanup->psDeviceNode = psDeviceNode;
-	psCleanup->sHWRenderContextDevVAddr = *psHWRenderContextDevVAddr;
-
-	psResItem = ResManRegisterRes(psPerProc->hResManContext,
-								  RESMAN_TYPE_HW_RENDER_CONTEXT,
-								  (IMG_VOID *)psCleanup,
-								  0,
-								  &SGXCleanupHWRenderContextCallback);
-
-	if (psResItem == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXRegisterHWRenderContextKM: ResManRegisterRes failed"));
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  sizeof(SGX_HW_RENDER_CONTEXT_CLEANUP),
-				  psCleanup,
-				  psCleanup->hBlockAlloc);
-		
-
-		return IMG_NULL;
-	}
-
-	psCleanup->psResItem = psResItem;
-
-	return (IMG_HANDLE)psCleanup;
-}
-
-IMG_EXPORT
-PVRSRV_ERROR SGXUnregisterHWRenderContextKM(IMG_HANDLE hHWRenderContext, IMG_BOOL bForceCleanup)
-{
-	PVRSRV_ERROR eError;
-	SGX_HW_RENDER_CONTEXT_CLEANUP *psCleanup;
-
-	PVR_ASSERT(hHWRenderContext != IMG_NULL);
-
-	psCleanup = (SGX_HW_RENDER_CONTEXT_CLEANUP *)hHWRenderContext;
-
-	if (psCleanup == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXUnregisterHWRenderContextKM: invalid parameter"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	eError = ResManFreeResByPtr(psCleanup->psResItem, bForceCleanup);
-
-	return eError;
-}
-
-
-IMG_EXPORT
-IMG_HANDLE SGXRegisterHWTransferContextKM(IMG_HANDLE				psDeviceNode,
-										  IMG_DEV_VIRTADDR			*psHWTransferContextDevVAddr,
-										  PVRSRV_PER_PROCESS_DATA	*psPerProc)
-{
-	PVRSRV_ERROR eError;
-	IMG_HANDLE hBlockAlloc;
-	SGX_HW_TRANSFER_CONTEXT_CLEANUP *psCleanup;
-	PRESMAN_ITEM psResItem;
-
-	eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-						sizeof(SGX_HW_TRANSFER_CONTEXT_CLEANUP),
-						(IMG_VOID **)&psCleanup,
-						&hBlockAlloc,
-						"SGX Hardware Transfer Context Cleanup");
-
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXRegisterHWTransferContextKM: Couldn't allocate memory for SGX_HW_TRANSFER_CONTEXT_CLEANUP structure"));
-		return IMG_NULL;
-	}
-
-	psCleanup->hBlockAlloc = hBlockAlloc;
-	psCleanup->psDeviceNode = psDeviceNode;
-	psCleanup->sHWTransferContextDevVAddr = *psHWTransferContextDevVAddr;
-
-	psResItem = ResManRegisterRes(psPerProc->hResManContext,
-								  RESMAN_TYPE_HW_TRANSFER_CONTEXT,
-								  psCleanup,
-								  0,
-								  &SGXCleanupHWTransferContextCallback);
-
-	if (psResItem == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXRegisterHWTransferContextKM: ResManRegisterRes failed"));
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  sizeof(SGX_HW_TRANSFER_CONTEXT_CLEANUP),
-				  psCleanup,
-				  psCleanup->hBlockAlloc);
-		
-
-		return IMG_NULL;
-	}
-
-	psCleanup->psResItem = psResItem;
-
-	return (IMG_HANDLE)psCleanup;
-}
-
-IMG_EXPORT
-PVRSRV_ERROR SGXUnregisterHWTransferContextKM(IMG_HANDLE hHWTransferContext, IMG_BOOL bForceCleanup)
-{
-	PVRSRV_ERROR eError;
-	SGX_HW_TRANSFER_CONTEXT_CLEANUP *psCleanup;
-
-	PVR_ASSERT(hHWTransferContext != IMG_NULL);
-
-	psCleanup = (SGX_HW_TRANSFER_CONTEXT_CLEANUP *)hHWTransferContext;
-
-	if (psCleanup == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXUnregisterHWTransferContextKM: invalid parameter"));
-		return PVRSRV_ERROR_INVALID_PARAMS;
-	}
-
-	eError = ResManFreeResByPtr(psCleanup->psResItem, bForceCleanup);
-
-	return eError;
-}
-
-#if defined(SGX_FEATURE_2D_HARDWARE)
-typedef struct _SGX_HW_2D_CONTEXT_CLEANUP_
-{
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-	IMG_DEV_VIRTADDR sHW2DContextDevVAddr;
-	IMG_HANDLE hBlockAlloc;
-	PRESMAN_ITEM psResItem;
-} SGX_HW_2D_CONTEXT_CLEANUP;
-
-static PVRSRV_ERROR SGXCleanupHW2DContextCallback(IMG_PVOID  pvParam,
-												  IMG_UINT32 ui32Param,
-												  IMG_BOOL   bForceCleanup)
-{
-	PVRSRV_ERROR eError;
-	SGX_HW_2D_CONTEXT_CLEANUP *psCleanup = (SGX_HW_2D_CONTEXT_CLEANUP *)pvParam;
-
-	PVR_UNREFERENCED_PARAMETER(ui32Param);
-
-	eError = SGXCleanupRequest(psCleanup->psDeviceNode,
-					  &psCleanup->sHW2DContextDevVAddr,
-					  PVRSRV_CLEANUPCMD_2DC,
-					  bForceCleanup);
-
-	OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-			  sizeof(SGX_HW_2D_CONTEXT_CLEANUP),
-			  psCleanup,
-			  psCleanup->hBlockAlloc);
-	
-
-	return eError;
-}
-
-IMG_EXPORT
-IMG_HANDLE SGXRegisterHW2DContextKM(IMG_HANDLE				psDeviceNode,
-									IMG_DEV_VIRTADDR		*psHW2DContextDevVAddr,
-									PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	PVRSRV_ERROR eError;
-	IMG_HANDLE hBlockAlloc;
-	SGX_HW_2D_CONTEXT_CLEANUP *psCleanup;
-	PRESMAN_ITEM psResItem;
-
-	eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-						sizeof(SGX_HW_2D_CONTEXT_CLEANUP),
-						(IMG_VOID **)&psCleanup,
-						&hBlockAlloc,
-						"SGX Hardware 2D Context Cleanup");
-
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXRegisterHW2DContextKM: Couldn't allocate memory for SGX_HW_2D_CONTEXT_CLEANUP structure"));
-		return IMG_NULL;
-	}
-
-	psCleanup->hBlockAlloc = hBlockAlloc;
-	psCleanup->psDeviceNode = psDeviceNode;
-	psCleanup->sHW2DContextDevVAddr = *psHW2DContextDevVAddr;
-
-	psResItem = ResManRegisterRes(psPerProc->hResManContext,
-								  RESMAN_TYPE_HW_2D_CONTEXT,
-								  psCleanup,
-								  0,
-								  &SGXCleanupHW2DContextCallback);
-
-	if (psResItem == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "SGXRegisterHW2DContextKM: ResManRegisterRes failed"));
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-				  sizeof(SGX_HW_2D_CONTEXT_CLEANUP),
-				  psCleanup,
-				  psCleanup->hBlockAlloc);
-		
-
-		return IMG_NULL;
-	}
-
-	psCleanup->psResItem = psResItem;
-
-	return (IMG_HANDLE)psCleanup;
-}
-
-IMG_EXPORT
-PVRSRV_ERROR SGXUnregisterHW2DContextKM(IMG_HANDLE hHW2DContext, IMG_BOOL bForceCleanup)
-{
-	PVRSRV_ERROR eError;
-	SGX_HW_2D_CONTEXT_CLEANUP *psCleanup;
-
-	PVR_ASSERT(hHW2DContext != IMG_NULL);
-
-	if (hHW2DContext == IMG_NULL)
-	{
-		return (PVRSRV_ERROR_INVALID_PARAMS);
-	}
-
-	psCleanup = (SGX_HW_2D_CONTEXT_CLEANUP *)hHW2DContext;
-
-	eError = ResManFreeResByPtr(psCleanup->psResItem, bForceCleanup);
-
-	return eError;
-}
-#endif 
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(SGX2DQuerySyncOpsComplete)
-#endif
-static INLINE
-IMG_BOOL SGX2DQuerySyncOpsComplete(PVRSRV_KERNEL_SYNC_INFO	*psSyncInfo,
-								   IMG_UINT32				ui32ReadOpsPending,
-								   IMG_UINT32				ui32WriteOpsPending)
-{
-	PVRSRV_SYNC_DATA *psSyncData = psSyncInfo->psSyncData;
-
-	return (IMG_BOOL)(
-					  (psSyncData->ui32ReadOpsComplete >= ui32ReadOpsPending) &&
-					  (psSyncData->ui32WriteOpsComplete >= ui32WriteOpsPending)
-					 );
-}
-
-IMG_EXPORT
-PVRSRV_ERROR SGX2DQueryBlitsCompleteKM(PVRSRV_SGXDEV_INFO	*psDevInfo,
-									   PVRSRV_KERNEL_SYNC_INFO *psSyncInfo,
-									   IMG_BOOL bWaitForComplete)
-{
-	IMG_UINT32	ui32ReadOpsPending, ui32WriteOpsPending;
-
-	PVR_UNREFERENCED_PARAMETER(psDevInfo);
-
-	PVR_DPF((PVR_DBG_CALLTRACE, "SGX2DQueryBlitsCompleteKM: Start"));
-
-	ui32ReadOpsPending = psSyncInfo->psSyncData->ui32ReadOpsPending;
-	ui32WriteOpsPending = psSyncInfo->psSyncData->ui32WriteOpsPending;
-
-	if(SGX2DQuerySyncOpsComplete(psSyncInfo, ui32ReadOpsPending, ui32WriteOpsPending))
-	{
-		
-		PVR_DPF((PVR_DBG_CALLTRACE, "SGX2DQueryBlitsCompleteKM: No wait. Blits complete."));
-		return PVRSRV_OK;
-	}
-
-	
-	if (!bWaitForComplete)
-	{
-		
-		PVR_DPF((PVR_DBG_CALLTRACE, "SGX2DQueryBlitsCompleteKM: No wait. Ops pending."));
-		return PVRSRV_ERROR_CMD_NOT_PROCESSED;
-	}
-
-	
-	PVR_DPF((PVR_DBG_MESSAGE, "SGX2DQueryBlitsCompleteKM: Ops pending. Start polling."));
-
-	LOOP_UNTIL_TIMEOUT(MAX_HW_TIME_US)
-	{
-		OSSleepms(1);
-
-		if(SGX2DQuerySyncOpsComplete(psSyncInfo, ui32ReadOpsPending, ui32WriteOpsPending))
-		{
-			
-			PVR_DPF((PVR_DBG_CALLTRACE, "SGX2DQueryBlitsCompleteKM: Wait over.  Blits complete."));
-			return PVRSRV_OK;
-		}
-
-		OSSleepms(1);
-	} END_LOOP_UNTIL_TIMEOUT();
-
-	
-	PVR_DPF((PVR_DBG_ERROR,"SGX2DQueryBlitsCompleteKM: Timed out. Ops pending."));
-
-#if defined(DEBUG)
-	{
-		PVRSRV_SYNC_DATA *psSyncData = psSyncInfo->psSyncData;
-
-		PVR_TRACE(("SGX2DQueryBlitsCompleteKM: Syncinfo: 0x%x, Syncdata: 0x%x",
-				(IMG_UINTPTR_T)psSyncInfo, (IMG_UINTPTR_T)psSyncData));
-
-		PVR_TRACE(("SGX2DQueryBlitsCompleteKM: Read ops complete: %d, Read ops pending: %d", psSyncData->ui32ReadOpsComplete, psSyncData->ui32ReadOpsPending));
-		PVR_TRACE(("SGX2DQueryBlitsCompleteKM: Write ops complete: %d, Write ops pending: %d", psSyncData->ui32WriteOpsComplete, psSyncData->ui32WriteOpsPending));
-
-	}
-#endif
-
-	return PVRSRV_ERROR_TIMEOUT;
-}
-
-
-IMG_EXPORT
-PVRSRV_ERROR SGXFlushHWRenderTargetKM(IMG_HANDLE psDeviceNode,
-									  IMG_DEV_VIRTADDR sHWRTDataSetDevVAddr,
-									  IMG_BOOL bForceCleanup)
-{
-	PVR_ASSERT(sHWRTDataSetDevVAddr.uiAddr != IMG_NULL);
-
-	return SGXCleanupRequest(psDeviceNode,
-					  &sHWRTDataSetDevVAddr,
-					  PVRSRV_CLEANUPCMD_RT,
-					  bForceCleanup);
-}
-
-
-IMG_UINT32 SGXConvertTimeStamp(PVRSRV_SGXDEV_INFO	*psDevInfo,
-							   IMG_UINT32			ui32TimeWraps,
-							   IMG_UINT32			ui32Time)
-{
-#if defined(EUR_CR_TIMER)
-	PVR_UNREFERENCED_PARAMETER(psDevInfo);
-	PVR_UNREFERENCED_PARAMETER(ui32TimeWraps);
-	return ui32Time;
-#else
-	IMG_UINT64	ui64Clocks;
-	IMG_UINT32	ui32Clocksx16;
-
-	ui64Clocks = ((IMG_UINT64)ui32TimeWraps * psDevInfo->ui32uKernelTimerClock) +
-					(psDevInfo->ui32uKernelTimerClock - (ui32Time & EUR_CR_EVENT_TIMER_VALUE_MASK));
-	ui32Clocksx16 = (IMG_UINT32)(ui64Clocks / 16);
-
-	return ui32Clocksx16;
-#endif 
-}
-
-
-
-IMG_EXPORT
-PVRSRV_ERROR PVRSRVGetSGXRevDataKM(PVRSRV_DEVICE_NODE* psDeviceNode, IMG_UINT32 *pui32SGXCoreRev,
-				IMG_UINT32 *pui32SGXCoreID)
-{
-	PVRSRV_SGXDEV_INFO *psDevInfo = (PVRSRV_SGXDEV_INFO *)psDeviceNode->pvDevice;
-	SGX_MISC_INFO sMiscInfo;
-	PVRSRV_ERROR eError;
-
-	sMiscInfo.eRequest = SGX_MISC_INFO_REQUEST_SGXREV;
-	eError = SGXGetMiscInfoKM(psDevInfo, &sMiscInfo, psDeviceNode, NULL);
-
-	*pui32SGXCoreRev = sMiscInfo.uData.sSGXFeatures.ui32CoreRev;
-	*pui32SGXCoreID = sMiscInfo.uData.sSGXFeatures.ui32CoreID;
-	return eError;
-}
-
-
-PVRSRV_ERROR SGXContextSuspend(PVRSRV_DEVICE_NODE	*psDeviceNode,
-							   IMG_DEV_VIRTADDR		*psHWContextDevVAddr,
-							   IMG_BOOL				bResume)
-{
-	PVRSRV_ERROR		eError;
-	SGXMKIF_COMMAND		sCommand = {0};
-
-	sCommand.ui32Data[0] = psHWContextDevVAddr->uiAddr;
-	sCommand.ui32Data[1] = bResume ? PVRSRV_CTXSUSPCMD_RESUME : PVRSRV_CTXSUSPCMD_SUSPEND;
-
-	eError = SGXScheduleCCBCommandKM(psDeviceNode, SGXMKIF_CMD_CONTEXTSUSPEND, &sCommand, KERNEL_ID, 0, IMG_NULL, IMG_FALSE);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SGXContextSuspend: Failed to submit context suspend command"));
-		return eError;
-	}
-
-	return eError;
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxutils.h b/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxutils.h
deleted file mode 100644
index bc60fdd..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/devices/sgx/sgxutils.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "perproc.h"
-#include "sgxinfokm.h"
-
- 
-#define CCB_OFFSET_IS_VALID(type, psCCBMemInfo, psCCBKick, offset) \
-	((sizeof(type) <= (psCCBMemInfo)->uAllocSize) && \
-	((psCCBKick)->offset <= (psCCBMemInfo)->uAllocSize - sizeof(type)))
-
-#define	CCB_DATA_FROM_OFFSET(type, psCCBMemInfo, psCCBKick, offset) \
-	((type *)(((IMG_CHAR *)(psCCBMemInfo)->pvLinAddrKM) + \
-		(psCCBKick)->offset))
-
-
-IMG_IMPORT
-IMG_VOID SGXTestActivePowerEvent(PVRSRV_DEVICE_NODE	*psDeviceNode,
-								 IMG_UINT32			ui32CallerID);
-
-IMG_IMPORT
-PVRSRV_ERROR SGXScheduleCCBCommand(PVRSRV_DEVICE_NODE	*psDeviceNode,
-								   SGXMKIF_CMD_TYPE		eCommandType,
-								   SGXMKIF_COMMAND		*psCommandData,
-								   IMG_UINT32			ui32CallerID,
-								   IMG_UINT32			ui32PDumpFlags,
-								   IMG_HANDLE			hDevMemContext,
-								   IMG_BOOL				bLastInScene);
-IMG_IMPORT
-PVRSRV_ERROR SGXScheduleCCBCommandKM(PVRSRV_DEVICE_NODE		*psDeviceNode,
-									 SGXMKIF_CMD_TYPE		eCommandType,
-									 SGXMKIF_COMMAND		*psCommandData,
-									 IMG_UINT32				ui32CallerID,
-									 IMG_UINT32				ui32PDumpFlags,
-									 IMG_HANDLE				hDevMemContext,
-									 IMG_BOOL				bLastInScene);
-
-IMG_IMPORT
-PVRSRV_ERROR SGXScheduleProcessQueuesKM(PVRSRV_DEVICE_NODE *psDeviceNode);
-
-IMG_IMPORT
-IMG_BOOL SGXIsDevicePowered(PVRSRV_DEVICE_NODE *psDeviceNode);
-
-IMG_IMPORT
-IMG_HANDLE SGXRegisterHWRenderContextKM(IMG_HANDLE				psDeviceNode,
-										IMG_DEV_VIRTADDR		*psHWRenderContextDevVAddr,
-										PVRSRV_PER_PROCESS_DATA *psPerProc);
-
-IMG_IMPORT
-IMG_HANDLE SGXRegisterHWTransferContextKM(IMG_HANDLE				psDeviceNode,
-										  IMG_DEV_VIRTADDR			*psHWTransferContextDevVAddr,
-										  PVRSRV_PER_PROCESS_DATA	*psPerProc);
-
-IMG_IMPORT
-PVRSRV_ERROR SGXFlushHWRenderTargetKM(IMG_HANDLE psSGXDevInfo,
-									  IMG_DEV_VIRTADDR psHWRTDataSetDevVAddr,
-									  IMG_BOOL bForceCleanup);
-
-IMG_IMPORT
-PVRSRV_ERROR SGXUnregisterHWRenderContextKM(IMG_HANDLE hHWRenderContext, IMG_BOOL bForceCleanup);
-
-IMG_IMPORT
-PVRSRV_ERROR SGXUnregisterHWTransferContextKM(IMG_HANDLE hHWTransferContext, IMG_BOOL bForceCleanup);
-
-#if defined(SGX_FEATURE_2D_HARDWARE)
-IMG_IMPORT
-IMG_HANDLE SGXRegisterHW2DContextKM(IMG_HANDLE				psDeviceNode,
-									IMG_DEV_VIRTADDR		*psHW2DContextDevVAddr,
-									PVRSRV_PER_PROCESS_DATA *psPerProc);
-
-IMG_IMPORT
-PVRSRV_ERROR SGXUnregisterHW2DContextKM(IMG_HANDLE hHW2DContext, IMG_BOOL bForceCleanup);
-#endif
-
-IMG_UINT32 SGXConvertTimeStamp(PVRSRV_SGXDEV_INFO	*psDevInfo,
-							   IMG_UINT32			ui32TimeWraps,
-							   IMG_UINT32			ui32Time);
-
-PVRSRV_ERROR SGXCleanupRequest(PVRSRV_DEVICE_NODE	*psDeviceNode,
-							IMG_DEV_VIRTADDR	*psHWDataDevVAddr,
-							IMG_UINT32			ui32CleanupType,
-							IMG_BOOL			bForceCleanup);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVGetSGXRevDataKM(PVRSRV_DEVICE_NODE* psDeviceNode, IMG_UINT32 *pui32SGXCoreRev,
-				IMG_UINT32 *pui32SGXCoreID);
-
-PVRSRV_ERROR SGXContextSuspend(PVRSRV_DEVICE_NODE	*psDeviceNode,
-							   IMG_DEV_VIRTADDR		*psHWContextDevVAddr,
-							   IMG_BOOL				bResume);
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/.gitignore b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/.gitignore
deleted file mode 100644
index 2f89523..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin_pc_i686*
-tmp_pc_i686*
-host_pc_i686*
-*.o
-*.o.cmd
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/env_data.h b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/env_data.h
deleted file mode 100644
index 7716529..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/env_data.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _ENV_DATA_
-#define _ENV_DATA_
-
-#include <linux/interrupt.h>
-#include <linux/pci.h>
-
-#if defined(PVR_LINUX_MISR_USING_WORKQUEUE) || defined(PVR_LINUX_MISR_USING_PRIVATE_WORKQUEUE)
-#include <linux/workqueue.h>
-#endif
-
-#define PVRSRV_MAX_BRIDGE_IN_SIZE	0x1000
-#define PVRSRV_MAX_BRIDGE_OUT_SIZE	0x1000
-
-typedef	struct _PVR_PCI_DEV_TAG
-{
-	struct pci_dev		*psPCIDev;
-	HOST_PCI_INIT_FLAGS	ePCIFlags;
-	IMG_BOOL abPCIResourceInUse[DEVICE_COUNT_RESOURCE];
-} PVR_PCI_DEV;
-
-typedef struct _ENV_DATA_TAG
-{
-	IMG_VOID		*pvBridgeData;
-	struct pm_dev		*psPowerDevice;
-	IMG_BOOL		bLISRInstalled;
-	IMG_BOOL		bMISRInstalled;
-	IMG_UINT32		ui32IRQ;
-	IMG_VOID		*pvISRCookie;
-#if defined(PVR_LINUX_MISR_USING_PRIVATE_WORKQUEUE)
-	struct workqueue_struct	*psWorkQueue;
-#endif
-#if defined(PVR_LINUX_MISR_USING_WORKQUEUE) || defined(PVR_LINUX_MISR_USING_PRIVATE_WORKQUEUE)
-	struct work_struct	sMISRWork;
-	IMG_VOID		*pvMISRData;
-#else
-	struct tasklet_struct	sMISRTasklet;
-#endif
-} ENV_DATA;
-
-#endif 
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/env_perproc.h b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/env_perproc.h
deleted file mode 100644
index dabf1e3..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/env_perproc.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __ENV_PERPROC_H__
-#define __ENV_PERPROC_H__
-
-#include <linux/list.h>
-#include <linux/proc_fs.h>
-
-#include "services.h"
-#include "handle.h"
-
-typedef struct _PVRSRV_ENV_PER_PROCESS_DATA_
-{
-	IMG_HANDLE hBlockAlloc;
-	struct proc_dir_entry *psProcDir;
-#if defined(SUPPORT_DRI_DRM) && defined(PVR_SECURE_DRM_AUTH_EXPORT)
-	struct list_head sDRMAuthListHead;
-#endif
-} PVRSRV_ENV_PER_PROCESS_DATA;
-
-IMG_VOID RemovePerProcessProcDir(PVRSRV_ENV_PER_PROCESS_DATA *psEnvPerProc);
-
-PVRSRV_ERROR LinuxMMapPerProcessConnect(PVRSRV_ENV_PER_PROCESS_DATA *psEnvPerProc);
-
-IMG_VOID LinuxMMapPerProcessDisconnect(PVRSRV_ENV_PER_PROCESS_DATA *psEnvPerProc);
- 
-PVRSRV_ERROR LinuxMMapPerProcessHandleOptions(PVRSRV_HANDLE_BASE *psHandleBase);
-
-IMG_HANDLE LinuxTerminatingProcessPrivateData(IMG_VOID);
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/event.c b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/event.c
deleted file mode 100644
index 7e160c3..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/event.c
+++ /dev/null
@@ -1,293 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <linux/version.h>
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38))
-#ifndef AUTOCONF_INCLUDED
-#include <linux/config.h>
-#endif
-#endif
-
-#include <asm/io.h>
-#include <asm/page.h>
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22))
-#include <asm/system.h>
-#endif
-#include <linux/mm.h>
-#include <linux/slab.h>
-#include <linux/vmalloc.h>
-#include <linux/delay.h>
-#include <linux/pci.h>
-
-#include <linux/string.h>
-#include <linux/sched.h>
-#include <linux/interrupt.h>
-#include <asm/hardirq.h>
-#include <linux/spinlock.h>
-#include <linux/timer.h>
-#include <linux/capability.h>
-#include <linux/sched.h>
-#include <asm/uaccess.h>
-
-#include "img_types.h"
-#include "services_headers.h"
-#include "mm.h"
-#include "pvrmmap.h"
-#include "mmap.h"
-#include "env_data.h"
-#include "proc.h"
-#include "mutex.h"
-#include "lock.h"
-#include "event.h"
-
-typedef struct PVRSRV_LINUX_EVENT_OBJECT_LIST_TAG
-{
-   rwlock_t		sLock;
-   struct list_head	sList;
-   
-} PVRSRV_LINUX_EVENT_OBJECT_LIST;
-
-
-typedef struct PVRSRV_LINUX_EVENT_OBJECT_TAG
-{
-   	atomic_t	sTimeStamp;
-   	IMG_UINT32  ui32TimeStampPrevious;
-#if defined(DEBUG)
-	IMG_UINT	ui32Stats;
-#endif
-    wait_queue_head_t sWait;	
-	struct list_head        sList;
-	IMG_HANDLE		hResItem;				
-	PVRSRV_LINUX_EVENT_OBJECT_LIST *psLinuxEventObjectList;
-} PVRSRV_LINUX_EVENT_OBJECT;
-
-PVRSRV_ERROR LinuxEventObjectListCreate(IMG_HANDLE *phEventObjectList)
-{
-	PVRSRV_LINUX_EVENT_OBJECT_LIST *psEventObjectList;
-
-	if(OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP, sizeof(PVRSRV_LINUX_EVENT_OBJECT_LIST), 
-		(IMG_VOID **)&psEventObjectList, IMG_NULL,
-		"Linux Event Object List") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "LinuxEventObjectCreate: failed to allocate memory for event list"));		
-		return PVRSRV_ERROR_OUT_OF_MEMORY;	
-	}
-
-	INIT_LIST_HEAD(&psEventObjectList->sList);
-
-	rwlock_init(&psEventObjectList->sLock);
-	
-	*phEventObjectList = (IMG_HANDLE *) psEventObjectList;
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR LinuxEventObjectListDestroy(IMG_HANDLE hEventObjectList)
-{
-
-	PVRSRV_LINUX_EVENT_OBJECT_LIST *psEventObjectList = (PVRSRV_LINUX_EVENT_OBJECT_LIST *) hEventObjectList ;
-
-	if(psEventObjectList)	
-	{
-		IMG_BOOL bListEmpty;
-
-		read_lock(&psEventObjectList->sLock);
-		bListEmpty = list_empty(&psEventObjectList->sList);
-		read_unlock(&psEventObjectList->sLock);
-
-		if (!bListEmpty) 
-		{
-			 PVR_DPF((PVR_DBG_ERROR, "LinuxEventObjectListDestroy: Event List is not empty"));
-			 return PVRSRV_ERROR_UNABLE_TO_DESTROY_EVENT;
-		}
-
-		OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP, sizeof(PVRSRV_LINUX_EVENT_OBJECT_LIST), psEventObjectList, IMG_NULL);
-		
-	}
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR LinuxEventObjectDelete(IMG_HANDLE hOSEventObjectList, IMG_HANDLE hOSEventObject)
-{
-	if(hOSEventObjectList)
-	{
-		if(hOSEventObject)
-		{
-			PVRSRV_LINUX_EVENT_OBJECT *psLinuxEventObject = (PVRSRV_LINUX_EVENT_OBJECT *)hOSEventObject; 
-#if defined(DEBUG)
-			PVR_DPF((PVR_DBG_MESSAGE, "LinuxEventObjectListDelete: Event object waits: %u", psLinuxEventObject->ui32Stats));
-#endif
-			if(ResManFreeResByPtr(psLinuxEventObject->hResItem, CLEANUP_WITH_POLL) != PVRSRV_OK)
-			{
-				return PVRSRV_ERROR_UNABLE_TO_DESTROY_EVENT;
-			}
-			
-			return PVRSRV_OK;
-		}
-	}
-	return PVRSRV_ERROR_UNABLE_TO_DESTROY_EVENT;
-
-}
-
-static PVRSRV_ERROR LinuxEventObjectDeleteCallback(IMG_PVOID pvParam, IMG_UINT32 ui32Param, IMG_BOOL bForceCleanup)
-{
-	PVRSRV_LINUX_EVENT_OBJECT *psLinuxEventObject = pvParam;
-	PVRSRV_LINUX_EVENT_OBJECT_LIST *psLinuxEventObjectList = psLinuxEventObject->psLinuxEventObjectList;
-	unsigned long ulLockFlags;
-
-	PVR_UNREFERENCED_PARAMETER(ui32Param);
-	PVR_UNREFERENCED_PARAMETER(bForceCleanup);
-
-	write_lock_irqsave(&psLinuxEventObjectList->sLock, ulLockFlags);
-	list_del(&psLinuxEventObject->sList);
-	write_unlock_irqrestore(&psLinuxEventObjectList->sLock, ulLockFlags);
-
-#if defined(DEBUG)
-	PVR_DPF((PVR_DBG_MESSAGE, "LinuxEventObjectDeleteCallback: Event object waits: %u", psLinuxEventObject->ui32Stats));
-#endif	
-
-	OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP, sizeof(PVRSRV_LINUX_EVENT_OBJECT), psLinuxEventObject, IMG_NULL);
-	
-
-	return PVRSRV_OK;
-}
-PVRSRV_ERROR LinuxEventObjectAdd(IMG_HANDLE hOSEventObjectList, IMG_HANDLE *phOSEventObject)
- {
-	PVRSRV_LINUX_EVENT_OBJECT *psLinuxEventObject; 
-	PVRSRV_LINUX_EVENT_OBJECT_LIST *psLinuxEventObjectList = (PVRSRV_LINUX_EVENT_OBJECT_LIST*)hOSEventObjectList; 
-	IMG_UINT32 ui32PID = OSGetCurrentProcessIDKM();
-	PVRSRV_PER_PROCESS_DATA *psPerProc;
-	unsigned long ulLockFlags;
-
-	psPerProc = PVRSRVPerProcessData(ui32PID);
-	if (psPerProc == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "LinuxEventObjectAdd: Couldn't find per-process data"));
-		return PVRSRV_ERROR_OUT_OF_MEMORY;
-	}
-
-	
-	if(OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP, sizeof(PVRSRV_LINUX_EVENT_OBJECT), 
-		(IMG_VOID **)&psLinuxEventObject, IMG_NULL,
-		"Linux Event Object") != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "LinuxEventObjectAdd: failed to allocate memory "));		
-		return PVRSRV_ERROR_OUT_OF_MEMORY;	
-	}
-	
-	INIT_LIST_HEAD(&psLinuxEventObject->sList);
-
-	atomic_set(&psLinuxEventObject->sTimeStamp, 0);
-	psLinuxEventObject->ui32TimeStampPrevious = 0;
-
-#if defined(DEBUG)
-	psLinuxEventObject->ui32Stats = 0;
-#endif
-    init_waitqueue_head(&psLinuxEventObject->sWait);
-
-	psLinuxEventObject->psLinuxEventObjectList = psLinuxEventObjectList;
-
-	psLinuxEventObject->hResItem = ResManRegisterRes(psPerProc->hResManContext,
-													 RESMAN_TYPE_EVENT_OBJECT,
-													 psLinuxEventObject,
-													 0,
-													 &LinuxEventObjectDeleteCallback);	
-
-	write_lock_irqsave(&psLinuxEventObjectList->sLock, ulLockFlags);
-	list_add(&psLinuxEventObject->sList, &psLinuxEventObjectList->sList);
-	write_unlock_irqrestore(&psLinuxEventObjectList->sLock, ulLockFlags);
-	
-	*phOSEventObject = psLinuxEventObject;
-
-	return PVRSRV_OK;	 
-}
-
-PVRSRV_ERROR LinuxEventObjectSignal(IMG_HANDLE hOSEventObjectList)
-{
-	PVRSRV_LINUX_EVENT_OBJECT *psLinuxEventObject;
-	PVRSRV_LINUX_EVENT_OBJECT_LIST *psLinuxEventObjectList = (PVRSRV_LINUX_EVENT_OBJECT_LIST*)hOSEventObjectList; 
-	struct list_head *psListEntry, *psList;
-
-	psList = &psLinuxEventObjectList->sList;
-
-	
-	read_lock(&psLinuxEventObjectList->sLock);
-	list_for_each(psListEntry, psList) 
-	{       	
-
-		psLinuxEventObject = (PVRSRV_LINUX_EVENT_OBJECT *)list_entry(psListEntry, PVRSRV_LINUX_EVENT_OBJECT, sList);	
-		
-		atomic_inc(&psLinuxEventObject->sTimeStamp);	
-	 	wake_up_interruptible(&psLinuxEventObject->sWait);
-	}
-	read_unlock(&psLinuxEventObjectList->sLock);
-
-	return 	PVRSRV_OK;
-  	
-}
-
-PVRSRV_ERROR LinuxEventObjectWait(IMG_HANDLE hOSEventObject, IMG_UINT32 ui32MSTimeout)
-{
-	IMG_UINT32 ui32TimeStamp;
-	DEFINE_WAIT(sWait);
-
-	PVRSRV_LINUX_EVENT_OBJECT *psLinuxEventObject = (PVRSRV_LINUX_EVENT_OBJECT *) hOSEventObject;
-
-	IMG_UINT32 ui32TimeOutJiffies = msecs_to_jiffies(ui32MSTimeout);
-	
-	do	
-	{
-		prepare_to_wait(&psLinuxEventObject->sWait, &sWait, TASK_INTERRUPTIBLE);
-		ui32TimeStamp = (IMG_UINT32)atomic_read(&psLinuxEventObject->sTimeStamp);
-   	
-		if(psLinuxEventObject->ui32TimeStampPrevious != ui32TimeStamp)
-		{
-			break;
-		}
-
-		LinuxUnLockMutex(&gPVRSRVLock);		
-
-		ui32TimeOutJiffies = (IMG_UINT32)schedule_timeout((IMG_INT32)ui32TimeOutJiffies);
-		
-		LinuxLockMutex(&gPVRSRVLock);
-#if defined(DEBUG)
-		psLinuxEventObject->ui32Stats++;
-#endif			
-
-		
-	} while (ui32TimeOutJiffies);
-
-	finish_wait(&psLinuxEventObject->sWait, &sWait);	
-
-	psLinuxEventObject->ui32TimeStampPrevious = ui32TimeStamp;
-
-	return ui32TimeOutJiffies ? PVRSRV_OK : PVRSRV_ERROR_TIMEOUT;
-
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/event.h b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/event.h
deleted file mode 100644
index 3035283..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/event.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-PVRSRV_ERROR LinuxEventObjectListCreate(IMG_HANDLE *phEventObjectList);
-PVRSRV_ERROR LinuxEventObjectListDestroy(IMG_HANDLE hEventObjectList);
-PVRSRV_ERROR LinuxEventObjectAdd(IMG_HANDLE hOSEventObjectList, IMG_HANDLE *phOSEventObject);
-PVRSRV_ERROR LinuxEventObjectDelete(IMG_HANDLE hOSEventObjectList, IMG_HANDLE hOSEventObject);
-PVRSRV_ERROR LinuxEventObjectSignal(IMG_HANDLE hOSEventObjectList);
-PVRSRV_ERROR LinuxEventObjectWait(IMG_HANDLE hOSEventObject, IMG_UINT32 ui32MSTimeout);
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/linkage.h b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/linkage.h
deleted file mode 100644
index e64012c..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/linkage.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __LINKAGE_H__
-#define __LINKAGE_H__
-
-#if !defined(SUPPORT_DRI_DRM)
-long PVRSRV_BridgeDispatchKM(struct file *file, unsigned int cmd, unsigned long arg);
-#endif
-
-IMG_VOID PVRDPFInit(IMG_VOID);
-PVRSRV_ERROR PVROSFuncInit(IMG_VOID);
-IMG_VOID PVROSFuncDeInit(IMG_VOID);
-
-#ifdef DEBUG
-
-IMG_INT PVRDebugProcSetLevel(struct file *file, const IMG_CHAR *buffer, IMG_UINT32 count, IMG_VOID *data);
-void ProcSeqShowDebugLevel(struct seq_file *sfile,void* el);
-
-#ifdef PVR_MANUAL_POWER_CONTROL
-IMG_INT PVRProcSetPowerLevel(struct file *file, const IMG_CHAR *buffer, IMG_UINT32 count, IMG_VOID *data);
-
-void ProcSeqShowPowerLevel(struct seq_file *sfile,void* el);
-
-#endif 
-
-#endif	
-
-#endif 
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/lock.h b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/lock.h
deleted file mode 100644
index a0854c3..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/lock.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __LOCK_H__
-#define __LOCK_H__
-
-extern PVRSRV_LINUX_MUTEX gPVRSRVLock;
-
-#endif 
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mm.c b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mm.c
deleted file mode 100644
index a96d28c..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mm.c
+++ /dev/null
@@ -1,2027 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <linux/version.h>
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38))
-#ifndef AUTOCONF_INCLUDED
-#include <linux/config.h>
-#endif
-#endif
-
-#include <linux/mm.h>
-#include <linux/vmalloc.h>
-#include <asm/io.h>
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
-#include <linux/wrapper.h>
-#endif
-#include <linux/slab.h>
-#include <linux/highmem.h>
-#include <linux/sched.h>
-
-#include "img_defs.h"
-#include "services.h"
-#include "servicesint.h"
-#include "syscommon.h"
-#include "mutils.h"
-#include "mm.h"
-#include "pvrmmap.h"
-#include "mmap.h"
-#include "osfunc.h"
-#include "pvr_debug.h"
-#include "proc.h"
-#include "mutex.h"
-#include "lock.h"
-
-#if defined(DEBUG_LINUX_MEM_AREAS) || defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-	#include "lists.h"
-#endif
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-typedef enum {
-    DEBUG_MEM_ALLOC_TYPE_KMALLOC,
-    DEBUG_MEM_ALLOC_TYPE_VMALLOC,
-    DEBUG_MEM_ALLOC_TYPE_ALLOC_PAGES,
-    DEBUG_MEM_ALLOC_TYPE_IOREMAP,
-    DEBUG_MEM_ALLOC_TYPE_IO,
-    DEBUG_MEM_ALLOC_TYPE_KMEM_CACHE,
-    DEBUG_MEM_ALLOC_TYPE_COUNT
-}DEBUG_MEM_ALLOC_TYPE;
-
-typedef struct _DEBUG_MEM_ALLOC_REC
-{
-    DEBUG_MEM_ALLOC_TYPE    eAllocType;
-	IMG_VOID				*pvKey; 
-    IMG_VOID                *pvCpuVAddr;
-    IMG_UINT32              ulCpuPAddr;
-    IMG_VOID                *pvPrivateData;
-	IMG_UINT32				ui32Bytes;
-	pid_t					pid;
-    IMG_CHAR                *pszFileName;
-    IMG_UINT32              ui32Line;
-    
-    struct _DEBUG_MEM_ALLOC_REC   *psNext;
-	struct _DEBUG_MEM_ALLOC_REC   **ppsThis;
-}DEBUG_MEM_ALLOC_REC;
-
-static IMPLEMENT_LIST_ANY_VA_2(DEBUG_MEM_ALLOC_REC, IMG_BOOL, IMG_FALSE)
-static IMPLEMENT_LIST_ANY_VA(DEBUG_MEM_ALLOC_REC)
-static IMPLEMENT_LIST_FOR_EACH(DEBUG_MEM_ALLOC_REC)
-static IMPLEMENT_LIST_INSERT(DEBUG_MEM_ALLOC_REC)
-static IMPLEMENT_LIST_REMOVE(DEBUG_MEM_ALLOC_REC)
-
-
-static DEBUG_MEM_ALLOC_REC *g_MemoryRecords;
-
-static IMG_UINT32 g_WaterMarkData[DEBUG_MEM_ALLOC_TYPE_COUNT];
-static IMG_UINT32 g_HighWaterMarkData[DEBUG_MEM_ALLOC_TYPE_COUNT];
-
-static IMG_UINT32 g_SysRAMWaterMark;
-static IMG_UINT32 g_SysRAMHighWaterMark;
-
-static IMG_UINT32 g_IOMemWaterMark;
-static IMG_UINT32 g_IOMemHighWaterMark;
-
-static IMG_VOID DebugMemAllocRecordAdd(DEBUG_MEM_ALLOC_TYPE eAllocType,
-                                       IMG_VOID *pvKey,
-                                       IMG_VOID *pvCpuVAddr,
-                                       IMG_UINT32 ulCpuPAddr,
-                                       IMG_VOID *pvPrivateData,
-                                       IMG_UINT32 ui32Bytes,
-                                       IMG_CHAR *pszFileName,
-                                       IMG_UINT32 ui32Line);
-
-static IMG_VOID DebugMemAllocRecordRemove(DEBUG_MEM_ALLOC_TYPE eAllocType, IMG_VOID *pvKey, IMG_CHAR *pszFileName, IMG_UINT32 ui32Line);
-
-static IMG_CHAR *DebugMemAllocRecordTypeToString(DEBUG_MEM_ALLOC_TYPE eAllocType);
-
-
-static struct proc_dir_entry *g_SeqFileMemoryRecords =0;
-static void* ProcSeqNextMemoryRecords(struct seq_file *sfile,void* el,loff_t off);
-static void ProcSeqShowMemoryRecords(struct seq_file *sfile,void* el);
-static void* ProcSeqOff2ElementMemoryRecords(struct seq_file * sfile, loff_t off);
-
-#endif
-
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-typedef struct _DEBUG_LINUX_MEM_AREA_REC
-{
-	LinuxMemArea                *psLinuxMemArea;
-    IMG_UINT32                  ui32Flags;
-	pid_t					    pid;
-
-	struct _DEBUG_LINUX_MEM_AREA_REC  *psNext;
-	struct _DEBUG_LINUX_MEM_AREA_REC  **ppsThis;
-}DEBUG_LINUX_MEM_AREA_REC;
-
-
-static IMPLEMENT_LIST_ANY_VA(DEBUG_LINUX_MEM_AREA_REC)
-static IMPLEMENT_LIST_FOR_EACH(DEBUG_LINUX_MEM_AREA_REC)
-static IMPLEMENT_LIST_INSERT(DEBUG_LINUX_MEM_AREA_REC)
-static IMPLEMENT_LIST_REMOVE(DEBUG_LINUX_MEM_AREA_REC)
-
-
-
-
-static DEBUG_LINUX_MEM_AREA_REC *g_LinuxMemAreaRecords;
-static IMG_UINT32 g_LinuxMemAreaCount;
-static IMG_UINT32 g_LinuxMemAreaWaterMark;
-static IMG_UINT32 g_LinuxMemAreaHighWaterMark;
-
-
-static struct proc_dir_entry *g_SeqFileMemArea=0;
-
-static void* ProcSeqNextMemArea(struct seq_file *sfile,void* el,loff_t off);
-static void ProcSeqShowMemArea(struct seq_file *sfile,void* el);
-static void* ProcSeqOff2ElementMemArea(struct seq_file *sfile, loff_t off);
-
-#endif
-
-#if defined(DEBUG_LINUX_MEM_AREAS) || defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-static PVRSRV_LINUX_MUTEX g_sDebugMutex;
-#endif
-
-#if (defined(DEBUG_LINUX_MEM_AREAS) || defined(DEBUG_LINUX_MEMORY_ALLOCATIONS))
-static void ProcSeqStartstopDebugMutex(struct seq_file *sfile,IMG_BOOL start);
-#endif
-
-static LinuxKMemCache *psLinuxMemAreaCache;
-
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15))
-static IMG_VOID ReservePages(IMG_VOID *pvAddress, IMG_UINT32 ui32Length);
-static IMG_VOID UnreservePages(IMG_VOID *pvAddress, IMG_UINT32 ui32Length);
-#endif
-
-static LinuxMemArea *LinuxMemAreaStructAlloc(IMG_VOID);
-static IMG_VOID LinuxMemAreaStructFree(LinuxMemArea *psLinuxMemArea);
-#if defined(DEBUG_LINUX_MEM_AREAS)
-static IMG_VOID DebugLinuxMemAreaRecordAdd(LinuxMemArea *psLinuxMemArea, IMG_UINT32 ui32Flags);
-static DEBUG_LINUX_MEM_AREA_REC *DebugLinuxMemAreaRecordFind(LinuxMemArea *psLinuxMemArea);
-static IMG_VOID DebugLinuxMemAreaRecordRemove(LinuxMemArea *psLinuxMemArea);
-#endif
-
-PVRSRV_ERROR
-LinuxMMInit(IMG_VOID)
-{
-#if defined(DEBUG_LINUX_MEM_AREAS) || defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-	LinuxInitMutex(&g_sDebugMutex);
-#endif
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-    {
-		g_SeqFileMemArea = CreateProcReadEntrySeq(
-									"mem_areas", 
-									NULL, 
-									ProcSeqNextMemArea,
-									ProcSeqShowMemArea,
-									ProcSeqOff2ElementMemArea,
-									ProcSeqStartstopDebugMutex
-								   );
-		if(!g_SeqFileMemArea)
-        {
-            return PVRSRV_ERROR_OUT_OF_MEMORY;
-        }
-    }
-#endif
-
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    {
-		g_SeqFileMemoryRecords =CreateProcReadEntrySeq(
-									"meminfo", 
-									NULL, 
-									ProcSeqNextMemoryRecords,
-									ProcSeqShowMemoryRecords, 
-									ProcSeqOff2ElementMemoryRecords,
-									ProcSeqStartstopDebugMutex
-								   );
-        if(!g_SeqFileMemoryRecords)
-        {
-            return PVRSRV_ERROR_OUT_OF_MEMORY;
-        }
-    }
-#endif
-
-    psLinuxMemAreaCache = KMemCacheCreateWrapper("img-mm", sizeof(LinuxMemArea), 0, 0);
-    if(!psLinuxMemAreaCache)
-    {
-        PVR_DPF((PVR_DBG_ERROR,"%s: failed to allocate kmem_cache", __FUNCTION__));
-        return PVRSRV_ERROR_OUT_OF_MEMORY;
-    }
-
-    return PVRSRV_OK;
-}
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-static IMG_VOID LinuxMMCleanup_MemAreas_ForEachCb(DEBUG_LINUX_MEM_AREA_REC *psCurrentRecord)
-{
-	LinuxMemArea *psLinuxMemArea;
-
-	psLinuxMemArea = psCurrentRecord->psLinuxMemArea;
-	PVR_DPF((PVR_DBG_ERROR, "%s: BUG!: Cleaning up Linux memory area (%p), type=%s, size=%d bytes",
-				__FUNCTION__,
-				psCurrentRecord->psLinuxMemArea,
-				LinuxMemAreaTypeToString(psCurrentRecord->psLinuxMemArea->eAreaType),
-				psCurrentRecord->psLinuxMemArea->ui32ByteSize));
-	
-	LinuxMemAreaDeepFree(psLinuxMemArea);
-}
-#endif
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-static IMG_VOID LinuxMMCleanup_MemRecords_ForEachVa(DEBUG_MEM_ALLOC_REC *psCurrentRecord)
-
-{
-	
-	PVR_DPF((PVR_DBG_ERROR, "%s: BUG!: Cleaning up memory: "
-							"type=%s "
-							"CpuVAddr=%p "
-							"CpuPAddr=0x%08x, "
-							"allocated @ file=%s,line=%d",
-			__FUNCTION__,
-			DebugMemAllocRecordTypeToString(psCurrentRecord->eAllocType),
-			psCurrentRecord->pvCpuVAddr,
-			psCurrentRecord->ulCpuPAddr,
-			psCurrentRecord->pszFileName,
-			psCurrentRecord->ui32Line));
-	switch(psCurrentRecord->eAllocType)
-	{
-		case DEBUG_MEM_ALLOC_TYPE_KMALLOC:
-			KFreeWrapper(psCurrentRecord->pvCpuVAddr);
-			break;
-		case DEBUG_MEM_ALLOC_TYPE_IOREMAP:
-			IOUnmapWrapper(psCurrentRecord->pvCpuVAddr);
-			break;
-		case DEBUG_MEM_ALLOC_TYPE_IO:
-			
-			DebugMemAllocRecordRemove(DEBUG_MEM_ALLOC_TYPE_IO, psCurrentRecord->pvKey, __FILE__, __LINE__);
-			break;
-		case DEBUG_MEM_ALLOC_TYPE_VMALLOC:
-			VFreeWrapper(psCurrentRecord->pvCpuVAddr);
-			break;
-		case DEBUG_MEM_ALLOC_TYPE_ALLOC_PAGES:
-			
-			DebugMemAllocRecordRemove(DEBUG_MEM_ALLOC_TYPE_ALLOC_PAGES, psCurrentRecord->pvKey, __FILE__, __LINE__);
-			break;
-		case DEBUG_MEM_ALLOC_TYPE_KMEM_CACHE:
-			KMemCacheFreeWrapper(psCurrentRecord->pvPrivateData, psCurrentRecord->pvCpuVAddr);
-			break;
-		default:
-			PVR_ASSERT(0);
-	}
-}
-#endif
-
-
-IMG_VOID
-LinuxMMCleanup(IMG_VOID)
-{
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-    {
-        if(g_LinuxMemAreaCount)
-        {
-            PVR_DPF((PVR_DBG_ERROR, "%s: BUG!: There are %d LinuxMemArea allocation unfreed (%d bytes)",
-                    __FUNCTION__, g_LinuxMemAreaCount, g_LinuxMemAreaWaterMark));
-        }
-		
-		List_DEBUG_LINUX_MEM_AREA_REC_ForEach(g_LinuxMemAreaRecords,
-											LinuxMMCleanup_MemAreas_ForEachCb);
-
-		RemoveProcEntrySeq( g_SeqFileMemArea );
-    }
-#endif
-
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    {
-        
-        
-		List_DEBUG_MEM_ALLOC_REC_ForEach(g_MemoryRecords,
-										LinuxMMCleanup_MemRecords_ForEachVa);
-
-		RemoveProcEntrySeq( g_SeqFileMemoryRecords );
-    }
-#endif
-
-    if(psLinuxMemAreaCache)
-    {
-        KMemCacheDestroyWrapper(psLinuxMemAreaCache); 
-        psLinuxMemAreaCache=NULL;
-    }
-}
-
-
-IMG_VOID *
-_KMallocWrapper(IMG_UINT32 ui32ByteSize, gfp_t uFlags, IMG_CHAR *pszFileName, IMG_UINT32 ui32Line)
-{
-    IMG_VOID *pvRet;
-    pvRet = kmalloc(ui32ByteSize, uFlags);
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    if(pvRet)
-    {
-        DebugMemAllocRecordAdd(DEBUG_MEM_ALLOC_TYPE_KMALLOC,
-                               pvRet,
-                               pvRet,
-                               0,
-                               NULL,
-                               ui32ByteSize,
-                               pszFileName,
-                               ui32Line
-                               );
-    }
-#else
-    PVR_UNREFERENCED_PARAMETER(pszFileName);
-    PVR_UNREFERENCED_PARAMETER(ui32Line);
-#endif
-    return pvRet;
-}
-
-
-IMG_VOID
-_KFreeWrapper(IMG_VOID *pvCpuVAddr, IMG_CHAR *pszFileName, IMG_UINT32 ui32Line)
-{
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    DebugMemAllocRecordRemove(DEBUG_MEM_ALLOC_TYPE_KMALLOC, pvCpuVAddr, pszFileName,  ui32Line);
-#else
-    PVR_UNREFERENCED_PARAMETER(pszFileName);
-    PVR_UNREFERENCED_PARAMETER(ui32Line);
-#endif
-    kfree(pvCpuVAddr);
-}
-
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-static IMG_VOID
-DebugMemAllocRecordAdd(DEBUG_MEM_ALLOC_TYPE eAllocType,
-                       IMG_VOID *pvKey,
-                       IMG_VOID *pvCpuVAddr,
-                       IMG_UINT32 ulCpuPAddr,
-                       IMG_VOID *pvPrivateData,
-                       IMG_UINT32 ui32Bytes,
-                       IMG_CHAR *pszFileName,
-                       IMG_UINT32 ui32Line)
-{
-    DEBUG_MEM_ALLOC_REC *psRecord;
-
-
-    LinuxLockMutex(&g_sDebugMutex);
-    psRecord = kzalloc(sizeof(DEBUG_MEM_ALLOC_REC), GFP_KERNEL);
-    if (psRecord == NULL) {
-	/* If it can't allocate memory, it means that we can't
-	 * record the usage of memory. So skip it as
-	 * it is harmless.
-	 */
-    	LinuxUnLockMutex(&g_sDebugMutex);
-	PVR_DPF((PVR_DBG_ERROR,
-			"%s: failed to allocate linux memory record.",
-		__func__));
-	return;
-    }
-
-    psRecord->eAllocType = eAllocType;
-    psRecord->pvKey = pvKey;
-    psRecord->pvCpuVAddr = pvCpuVAddr;
-    psRecord->ulCpuPAddr = ulCpuPAddr;
-    psRecord->pvPrivateData = pvPrivateData;
-    psRecord->pid = OSGetCurrentProcessIDKM();
-    psRecord->ui32Bytes = ui32Bytes;
-    psRecord->pszFileName = pszFileName;
-    psRecord->ui32Line = ui32Line;
-    
-	List_DEBUG_MEM_ALLOC_REC_Insert(&g_MemoryRecords, psRecord);
-    
-    g_WaterMarkData[eAllocType] += ui32Bytes;
-    if(g_WaterMarkData[eAllocType] > g_HighWaterMarkData[eAllocType])
-    {
-        g_HighWaterMarkData[eAllocType] = g_WaterMarkData[eAllocType];
-    }
-
-    if(eAllocType == DEBUG_MEM_ALLOC_TYPE_KMALLOC
-       || eAllocType == DEBUG_MEM_ALLOC_TYPE_VMALLOC
-       || eAllocType == DEBUG_MEM_ALLOC_TYPE_ALLOC_PAGES
-       || eAllocType == DEBUG_MEM_ALLOC_TYPE_KMEM_CACHE)
-    {
-        g_SysRAMWaterMark += ui32Bytes;
-        if(g_SysRAMWaterMark > g_SysRAMHighWaterMark)
-        {
-            g_SysRAMHighWaterMark = g_SysRAMWaterMark;
-        }
-    }
-    else if(eAllocType == DEBUG_MEM_ALLOC_TYPE_IOREMAP
-            || eAllocType == DEBUG_MEM_ALLOC_TYPE_IO)
-    {
-        g_IOMemWaterMark += ui32Bytes;
-        if(g_IOMemWaterMark > g_IOMemHighWaterMark)
-        {
-            g_IOMemHighWaterMark = g_IOMemWaterMark;
-        }
-    }
-
-    LinuxUnLockMutex(&g_sDebugMutex);
-}
-
-
-static IMG_BOOL DebugMemAllocRecordRemove_AnyVaCb(DEBUG_MEM_ALLOC_REC *psCurrentRecord, va_list va)
-{
-	DEBUG_MEM_ALLOC_TYPE eAllocType;
-	IMG_VOID *pvKey;
-	
-	eAllocType = va_arg(va, DEBUG_MEM_ALLOC_TYPE);
-	pvKey = va_arg(va, IMG_VOID*);
-
-	if(psCurrentRecord->eAllocType == eAllocType
-		&& psCurrentRecord->pvKey == pvKey)
-	{
-		eAllocType = psCurrentRecord->eAllocType;
-		g_WaterMarkData[eAllocType] -= psCurrentRecord->ui32Bytes;
-		
-		if(eAllocType == DEBUG_MEM_ALLOC_TYPE_KMALLOC
-		   || eAllocType == DEBUG_MEM_ALLOC_TYPE_VMALLOC
-		   || eAllocType == DEBUG_MEM_ALLOC_TYPE_ALLOC_PAGES
-		   || eAllocType == DEBUG_MEM_ALLOC_TYPE_KMEM_CACHE)
-		{
-			g_SysRAMWaterMark -= psCurrentRecord->ui32Bytes;
-		}
-		else if(eAllocType == DEBUG_MEM_ALLOC_TYPE_IOREMAP
-				|| eAllocType == DEBUG_MEM_ALLOC_TYPE_IO)
-		{
-			g_IOMemWaterMark -= psCurrentRecord->ui32Bytes;
-		}
-		
-		List_DEBUG_MEM_ALLOC_REC_Remove(psCurrentRecord);
-		kfree(psCurrentRecord);
-
-		return IMG_TRUE;
-	}
-	else
-	{
-		return IMG_FALSE;
-	}
-}
-
-
-static IMG_VOID
-DebugMemAllocRecordRemove(DEBUG_MEM_ALLOC_TYPE eAllocType, IMG_VOID *pvKey, IMG_CHAR *pszFileName, IMG_UINT32 ui32Line)
-{
-    LinuxLockMutex(&g_sDebugMutex);
-
-    
-	if(!List_DEBUG_MEM_ALLOC_REC_IMG_BOOL_Any_va(g_MemoryRecords,
-												DebugMemAllocRecordRemove_AnyVaCb,
-												eAllocType,
-												pvKey))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "%s: couldn't find an entry for type=%s with pvKey=%p (called from %s, line %d\n",
-		__FUNCTION__, DebugMemAllocRecordTypeToString(eAllocType), pvKey,
-		pszFileName, ui32Line));
-	}
-
-    LinuxUnLockMutex(&g_sDebugMutex);
-}
-
-
-static IMG_CHAR *
-DebugMemAllocRecordTypeToString(DEBUG_MEM_ALLOC_TYPE eAllocType)
-{
-    IMG_CHAR *apszDebugMemoryRecordTypes[] = {
-        "KMALLOC",
-        "VMALLOC",
-        "ALLOC_PAGES",
-        "IOREMAP",
-        "IO",
-        "KMEM_CACHE_ALLOC"
-    };
-    return apszDebugMemoryRecordTypes[eAllocType];
-}
-#endif
-
-
-
-IMG_VOID *
-_VMallocWrapper(IMG_UINT32 ui32Bytes,
-                IMG_UINT32 ui32AllocFlags,
-                IMG_CHAR *pszFileName,
-                IMG_UINT32 ui32Line)
-{
-    pgprot_t PGProtFlags;
-    IMG_VOID *pvRet;
-    
-    switch(ui32AllocFlags & PVRSRV_HAP_CACHETYPE_MASK)
-    {
-        case PVRSRV_HAP_CACHED:
-            PGProtFlags = PAGE_KERNEL;
-            break;
-        case PVRSRV_HAP_WRITECOMBINE:
-            PGProtFlags = PGPROT_WC(PAGE_KERNEL);
-            break;
-        case PVRSRV_HAP_UNCACHED:
-            PGProtFlags = PGPROT_UC(PAGE_KERNEL);
-            break;
-        default:
-            PVR_DPF((PVR_DBG_ERROR,
-                     "VMAllocWrapper: unknown mapping flags=0x%08x",
-                     ui32AllocFlags));
-            dump_stack();
-            return NULL;
-    }
-
-	
-    pvRet = __vmalloc(ui32Bytes, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, PGProtFlags);
-    
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    if(pvRet)
-    {
-        DebugMemAllocRecordAdd(DEBUG_MEM_ALLOC_TYPE_VMALLOC,
-                               pvRet,
-                               pvRet,
-                               0,
-                               NULL,
-                               PAGE_ALIGN(ui32Bytes),
-                               pszFileName,
-                               ui32Line
-                               );
-    }
-#else
-    PVR_UNREFERENCED_PARAMETER(pszFileName);
-    PVR_UNREFERENCED_PARAMETER(ui32Line);
-#endif
-
-    return pvRet;
-}
-
-
-IMG_VOID
-_VFreeWrapper(IMG_VOID *pvCpuVAddr, IMG_CHAR *pszFileName, IMG_UINT32 ui32Line)
-{
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    DebugMemAllocRecordRemove(DEBUG_MEM_ALLOC_TYPE_VMALLOC, pvCpuVAddr, pszFileName, ui32Line);
-#else
-    PVR_UNREFERENCED_PARAMETER(pszFileName);
-    PVR_UNREFERENCED_PARAMETER(ui32Line);
-#endif
-    vfree(pvCpuVAddr);
-}
-
-
-LinuxMemArea *
-NewVMallocLinuxMemArea(IMG_UINT32 ui32Bytes, IMG_UINT32 ui32AreaFlags)
-{
-    LinuxMemArea *psLinuxMemArea;
-    IMG_VOID *pvCpuVAddr;
-
-    psLinuxMemArea = LinuxMemAreaStructAlloc();
-    if(!psLinuxMemArea)
-    {
-        goto failed;
-    }
-
-    pvCpuVAddr = VMallocWrapper(ui32Bytes, ui32AreaFlags);
-    if(!pvCpuVAddr)
-    {
-        goto failed;
-    }
-    
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15))
-    
-    ReservePages(pvCpuVAddr, ui32Bytes);
-#endif
-
-    psLinuxMemArea->eAreaType = LINUX_MEM_AREA_VMALLOC;
-    psLinuxMemArea->uData.sVmalloc.pvVmallocAddress = pvCpuVAddr;
-    psLinuxMemArea->ui32ByteSize = ui32Bytes;
-    psLinuxMemArea->ui32AreaFlags = ui32AreaFlags;
-    INIT_LIST_HEAD(&psLinuxMemArea->sMMapOffsetStructList);
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-    DebugLinuxMemAreaRecordAdd(psLinuxMemArea, ui32AreaFlags);
-#endif
-
-    
-    if(ui32AreaFlags & (PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_UNCACHED))
-        OSInvalidateCPUCacheRangeKM(psLinuxMemArea, pvCpuVAddr, ui32Bytes);
-
-    return psLinuxMemArea;
-
-failed:
-    PVR_DPF((PVR_DBG_ERROR, "%s: failed!", __FUNCTION__));
-    if(psLinuxMemArea)
-        LinuxMemAreaStructFree(psLinuxMemArea);
-    return NULL;
-}
-
-
-IMG_VOID
-FreeVMallocLinuxMemArea(LinuxMemArea *psLinuxMemArea)
-{
-    PVR_ASSERT(psLinuxMemArea);
-    PVR_ASSERT(psLinuxMemArea->eAreaType == LINUX_MEM_AREA_VMALLOC);
-    PVR_ASSERT(psLinuxMemArea->uData.sVmalloc.pvVmallocAddress);
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-    DebugLinuxMemAreaRecordRemove(psLinuxMemArea);
-#endif
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15))
-	UnreservePages(psLinuxMemArea->uData.sVmalloc.pvVmallocAddress,
-                    psLinuxMemArea->ui32ByteSize);
-#endif
-
-    PVR_DPF((PVR_DBG_MESSAGE,"%s: pvCpuVAddr: %p",
-             __FUNCTION__, psLinuxMemArea->uData.sVmalloc.pvVmallocAddress));
-    VFreeWrapper(psLinuxMemArea->uData.sVmalloc.pvVmallocAddress);
-
-    LinuxMemAreaStructFree(psLinuxMemArea);
-}
-
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15))
-static IMG_VOID
-ReservePages(IMG_VOID *pvAddress, IMG_UINT32 ui32Length)
-{
-	IMG_VOID *pvPage;
-	IMG_VOID *pvEnd = pvAddress + ui32Length;
-
-	for(pvPage = pvAddress; pvPage < pvEnd;  pvPage += PAGE_SIZE)
-	{
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0))
-		SetPageReserved(vmalloc_to_page(pvPage));
-#else
-		mem_map_reserve(vmalloc_to_page(pvPage));
-#endif
-	}
-}
-
-
-static IMG_VOID
-UnreservePages(IMG_VOID *pvAddress, IMG_UINT32 ui32Length)
-{
-	IMG_VOID *pvPage;
-	IMG_VOID *pvEnd = pvAddress + ui32Length;
-
-	for(pvPage = pvAddress; pvPage < pvEnd;  pvPage += PAGE_SIZE)
-	{
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0))
-		ClearPageReserved(vmalloc_to_page(pvPage));
-#else
-		mem_map_unreserve(vmalloc_to_page(pvPage));
-#endif
-	}
-}
-#endif 
-
-
-IMG_VOID *
-_IORemapWrapper(IMG_CPU_PHYADDR BasePAddr,
-               IMG_UINT32 ui32Bytes,
-               IMG_UINT32 ui32MappingFlags,
-               IMG_CHAR *pszFileName,
-               IMG_UINT32 ui32Line)
-{
-    IMG_VOID *pvIORemapCookie;
-    
-    switch(ui32MappingFlags & PVRSRV_HAP_CACHETYPE_MASK)
-    {
-        case PVRSRV_HAP_CACHED:
-	    pvIORemapCookie = (IMG_VOID *)IOREMAP(BasePAddr.uiAddr, ui32Bytes);
-            break;
-        case PVRSRV_HAP_WRITECOMBINE:
-	    pvIORemapCookie = (IMG_VOID *)IOREMAP_WC(BasePAddr.uiAddr, ui32Bytes);
-            break;
-        case PVRSRV_HAP_UNCACHED:
-            pvIORemapCookie = (IMG_VOID *)IOREMAP_UC(BasePAddr.uiAddr, ui32Bytes);
-            break;
-        default:
-            PVR_DPF((PVR_DBG_ERROR, "IORemapWrapper: unknown mapping flags"));
-            return NULL;
-    }
-    
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    if(pvIORemapCookie)
-    {
-        DebugMemAllocRecordAdd(DEBUG_MEM_ALLOC_TYPE_IOREMAP,
-                               pvIORemapCookie,
-                               pvIORemapCookie,
-                               BasePAddr.uiAddr,
-                               NULL,
-                               ui32Bytes,
-                               pszFileName,
-                               ui32Line
-                               );
-    }
-#else
-    PVR_UNREFERENCED_PARAMETER(pszFileName);
-    PVR_UNREFERENCED_PARAMETER(ui32Line);
-#endif
-
-    return pvIORemapCookie;
-}
-
-
-IMG_VOID
-_IOUnmapWrapper(IMG_VOID *pvIORemapCookie, IMG_CHAR *pszFileName, IMG_UINT32 ui32Line)
-{
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    DebugMemAllocRecordRemove(DEBUG_MEM_ALLOC_TYPE_IOREMAP, pvIORemapCookie, pszFileName, ui32Line);
-#else
-    PVR_UNREFERENCED_PARAMETER(pszFileName);
-    PVR_UNREFERENCED_PARAMETER(ui32Line);
-#endif
-    iounmap(pvIORemapCookie);
-}
-
-
-LinuxMemArea *
-NewIORemapLinuxMemArea(IMG_CPU_PHYADDR BasePAddr,
-                       IMG_UINT32 ui32Bytes,
-                       IMG_UINT32 ui32AreaFlags)
-{
-    LinuxMemArea *psLinuxMemArea;
-    IMG_VOID *pvIORemapCookie;
-
-    psLinuxMemArea = LinuxMemAreaStructAlloc();
-    if(!psLinuxMemArea)
-    {
-        return NULL;
-    }
-
-    pvIORemapCookie = IORemapWrapper(BasePAddr, ui32Bytes, ui32AreaFlags);
-    if(!pvIORemapCookie)
-    {
-        LinuxMemAreaStructFree(psLinuxMemArea);
-        return NULL;
-    }
-
-    psLinuxMemArea->eAreaType = LINUX_MEM_AREA_IOREMAP;
-    psLinuxMemArea->uData.sIORemap.pvIORemapCookie = pvIORemapCookie;
-    psLinuxMemArea->uData.sIORemap.CPUPhysAddr = BasePAddr;
-    psLinuxMemArea->ui32ByteSize = ui32Bytes;
-    psLinuxMemArea->ui32AreaFlags = ui32AreaFlags;
-    INIT_LIST_HEAD(&psLinuxMemArea->sMMapOffsetStructList);
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-    DebugLinuxMemAreaRecordAdd(psLinuxMemArea, ui32AreaFlags);
-#endif
-
-    return psLinuxMemArea;
-}
-
-
-IMG_VOID
-FreeIORemapLinuxMemArea(LinuxMemArea *psLinuxMemArea)
-{
-    PVR_ASSERT(psLinuxMemArea->eAreaType == LINUX_MEM_AREA_IOREMAP);
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-    DebugLinuxMemAreaRecordRemove(psLinuxMemArea);
-#endif
-    
-    IOUnmapWrapper(psLinuxMemArea->uData.sIORemap.pvIORemapCookie);
-
-    LinuxMemAreaStructFree(psLinuxMemArea);
-}
-
-
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-static IMG_BOOL
-TreatExternalPagesAsContiguous(IMG_SYS_PHYADDR *psSysPhysAddr, IMG_UINT32 ui32Bytes, IMG_BOOL bPhysContig)
-{
-	IMG_UINT32 ui32;
-	IMG_UINT32 ui32AddrChk;
-	IMG_UINT32 ui32NumPages = RANGE_TO_PAGES(ui32Bytes);
-
-	
-	for (ui32 = 0, ui32AddrChk = psSysPhysAddr[0].uiAddr;
-		ui32 < ui32NumPages;
-		ui32++, ui32AddrChk = (bPhysContig) ? (ui32AddrChk + PAGE_SIZE) : psSysPhysAddr[ui32].uiAddr)
-	{
-		if (!pfn_valid(PHYS_TO_PFN(ui32AddrChk)))
-		{
-			break;
-		}
-	}
-	if (ui32 == ui32NumPages)
-	{
-		return IMG_FALSE;
-	}
-
-	if (!bPhysContig)
-	{
-		for (ui32 = 0, ui32AddrChk = psSysPhysAddr[0].uiAddr;
-			ui32 < ui32NumPages;
-			ui32++, ui32AddrChk += PAGE_SIZE)
-		{
-			if (psSysPhysAddr[ui32].uiAddr != ui32AddrChk)
-			{
-				return IMG_FALSE;
-			}
-		}
-	}
-
-	return IMG_TRUE;
-}
-#endif
-
-LinuxMemArea *NewExternalKVLinuxMemArea(IMG_SYS_PHYADDR *pBasePAddr, IMG_VOID *pvCPUVAddr, IMG_UINT32 ui32Bytes, IMG_BOOL bPhysContig, IMG_UINT32 ui32AreaFlags)
-{
-    LinuxMemArea *psLinuxMemArea;
-
-    psLinuxMemArea = LinuxMemAreaStructAlloc();
-    if(!psLinuxMemArea)
-    {
-        return NULL;
-    }
-
-    psLinuxMemArea->eAreaType = LINUX_MEM_AREA_EXTERNAL_KV;
-    psLinuxMemArea->uData.sExternalKV.pvExternalKV = pvCPUVAddr;
-    psLinuxMemArea->uData.sExternalKV.bPhysContig =
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-	(bPhysContig || TreatExternalPagesAsContiguous(pBasePAddr, ui32Bytes, bPhysContig))
-                                                    ? IMG_TRUE : IMG_FALSE;
-#else
-	bPhysContig;
-#endif
-    if (psLinuxMemArea->uData.sExternalKV.bPhysContig)
-    {
-	psLinuxMemArea->uData.sExternalKV.uPhysAddr.SysPhysAddr = *pBasePAddr;
-    }
-    else
-    {
-	psLinuxMemArea->uData.sExternalKV.uPhysAddr.pSysPhysAddr = pBasePAddr;
-    }
-    psLinuxMemArea->ui32ByteSize = ui32Bytes;
-    psLinuxMemArea->ui32AreaFlags = ui32AreaFlags;
-    INIT_LIST_HEAD(&psLinuxMemArea->sMMapOffsetStructList);
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-    DebugLinuxMemAreaRecordAdd(psLinuxMemArea, ui32AreaFlags);
-#endif
-
-    return psLinuxMemArea;
-}
-
-
-IMG_VOID
-FreeExternalKVLinuxMemArea(LinuxMemArea *psLinuxMemArea)
-{
-    PVR_ASSERT(psLinuxMemArea->eAreaType == LINUX_MEM_AREA_EXTERNAL_KV);
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-    DebugLinuxMemAreaRecordRemove(psLinuxMemArea);
-#endif
-    
-    LinuxMemAreaStructFree(psLinuxMemArea);
-}
-
-
-LinuxMemArea *
-NewIOLinuxMemArea(IMG_CPU_PHYADDR BasePAddr,
-                  IMG_UINT32 ui32Bytes,
-                  IMG_UINT32 ui32AreaFlags)
-{
-    LinuxMemArea *psLinuxMemArea = LinuxMemAreaStructAlloc();
-    if(!psLinuxMemArea)
-    {
-        return NULL;
-    }
-
-    
-    psLinuxMemArea->eAreaType = LINUX_MEM_AREA_IO;
-    psLinuxMemArea->uData.sIO.CPUPhysAddr.uiAddr = BasePAddr.uiAddr;
-    psLinuxMemArea->ui32ByteSize = ui32Bytes;
-    psLinuxMemArea->ui32AreaFlags = ui32AreaFlags;
-    INIT_LIST_HEAD(&psLinuxMemArea->sMMapOffsetStructList);
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    DebugMemAllocRecordAdd(DEBUG_MEM_ALLOC_TYPE_IO,
-                           (IMG_VOID *)BasePAddr.uiAddr,
-                           0,
-                           BasePAddr.uiAddr,
-                           NULL,
-                           ui32Bytes,
-                           "unknown",
-                           0
-                           );
-#endif
-   
-#if defined(DEBUG_LINUX_MEM_AREAS)
-    DebugLinuxMemAreaRecordAdd(psLinuxMemArea, ui32AreaFlags);
-#endif
-
-    return psLinuxMemArea;
-}
-
-
-IMG_VOID
-FreeIOLinuxMemArea(LinuxMemArea *psLinuxMemArea)
-{
-    PVR_ASSERT(psLinuxMemArea->eAreaType == LINUX_MEM_AREA_IO);
-    
-#if defined(DEBUG_LINUX_MEM_AREAS)
-    DebugLinuxMemAreaRecordRemove(psLinuxMemArea);
-#endif
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    DebugMemAllocRecordRemove(DEBUG_MEM_ALLOC_TYPE_IO,
-                              (IMG_VOID *)psLinuxMemArea->uData.sIO.CPUPhysAddr.uiAddr, __FILE__, __LINE__);
-#endif
-
-    
-
-    LinuxMemAreaStructFree(psLinuxMemArea);
-}
-
-
-LinuxMemArea *
-NewAllocPagesLinuxMemArea(IMG_UINT32 ui32Bytes, IMG_UINT32 ui32AreaFlags)
-{
-    LinuxMemArea *psLinuxMemArea;
-    IMG_UINT32 ui32PageCount;
-    struct page **pvPageList;
-    IMG_HANDLE hBlockPageList;
-    IMG_INT32 i;		
-    PVRSRV_ERROR eError;
-    
-    psLinuxMemArea = LinuxMemAreaStructAlloc();
-    if(!psLinuxMemArea)
-    {
-        goto failed_area_alloc;
-    }
-    
-    ui32PageCount = RANGE_TO_PAGES(ui32Bytes);
-    eError = OSAllocMem(0, sizeof(*pvPageList) * ui32PageCount, (IMG_VOID **)&pvPageList, &hBlockPageList,
-							"Array of pages");
-    if(eError != PVRSRV_OK)
-    {
-        goto failed_page_list_alloc;
-    }
-    
-    for(i=0; i<(IMG_INT32)ui32PageCount; i++)
-    {
-        pvPageList[i] = alloc_pages(GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, 0);
-        if(!pvPageList[i])
-        {
-            goto failed_alloc_pages;
-        }
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15))
-    	
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0))		
-    	SetPageReserved(pvPageList[i]);
-#else
-        mem_map_reserve(pvPageList[i]);
-#endif
-#endif
-
-    }
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    DebugMemAllocRecordAdd(DEBUG_MEM_ALLOC_TYPE_ALLOC_PAGES,
-                           pvPageList,
-                           0,
-                           0,
-                           NULL,
-                           PAGE_ALIGN(ui32Bytes),
-                           "unknown",
-                           0
-                           );
-#endif
-
-    psLinuxMemArea->eAreaType = LINUX_MEM_AREA_ALLOC_PAGES;
-    psLinuxMemArea->uData.sPageList.pvPageList = pvPageList;
-    psLinuxMemArea->uData.sPageList.hBlockPageList = hBlockPageList;
-    psLinuxMemArea->ui32ByteSize = ui32Bytes;
-    psLinuxMemArea->ui32AreaFlags = ui32AreaFlags;
-    INIT_LIST_HEAD(&psLinuxMemArea->sMMapOffsetStructList);
-
-    
-    if(ui32AreaFlags & (PVRSRV_HAP_WRITECOMBINE | PVRSRV_HAP_UNCACHED))
-    {
-        psLinuxMemArea->bNeedsCacheInvalidate = IMG_TRUE;
-    }
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-    DebugLinuxMemAreaRecordAdd(psLinuxMemArea, ui32AreaFlags);
-#endif
-
-    return psLinuxMemArea;
-    
-failed_alloc_pages:
-    for(i--; i >= 0; i--)
-    {
-        __free_pages(pvPageList[i], 0);
-    }
-    (IMG_VOID) OSFreeMem(0, sizeof(*pvPageList) * ui32PageCount, pvPageList, hBlockPageList);
-	psLinuxMemArea->uData.sPageList.pvPageList = IMG_NULL; 
-failed_page_list_alloc:
-    LinuxMemAreaStructFree(psLinuxMemArea);
-failed_area_alloc:
-    PVR_DPF((PVR_DBG_ERROR, "%s: failed", __FUNCTION__));
-    
-    return NULL;
-}
-
-
-IMG_VOID
-FreeAllocPagesLinuxMemArea(LinuxMemArea *psLinuxMemArea)
-{
-    IMG_UINT32 ui32PageCount;
-    struct page **pvPageList;
-    IMG_HANDLE hBlockPageList;
-    IMG_INT32 i;
-
-    PVR_ASSERT(psLinuxMemArea);
-    PVR_ASSERT(psLinuxMemArea->eAreaType == LINUX_MEM_AREA_ALLOC_PAGES);
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-    DebugLinuxMemAreaRecordRemove(psLinuxMemArea);
-#endif
-    
-    ui32PageCount = RANGE_TO_PAGES(psLinuxMemArea->ui32ByteSize);
-    pvPageList = psLinuxMemArea->uData.sPageList.pvPageList;
-    hBlockPageList = psLinuxMemArea->uData.sPageList.hBlockPageList;
-    
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    DebugMemAllocRecordRemove(DEBUG_MEM_ALLOC_TYPE_ALLOC_PAGES, pvPageList, __FILE__, __LINE__);
-#endif
-
-    for(i=0;i<(IMG_INT32)ui32PageCount;i++)
-    {
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15))		
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0))		
-        ClearPageReserved(pvPageList[i]);
-#else
-        mem_map_reserve(pvPageList[i]);
-#endif		
-#endif	
-        __free_pages(pvPageList[i], 0);
-    }
-
-    (IMG_VOID) OSFreeMem(0, sizeof(*pvPageList) * ui32PageCount, pvPageList, hBlockPageList);
-	psLinuxMemArea->uData.sPageList.pvPageList = IMG_NULL; 
-
-    LinuxMemAreaStructFree(psLinuxMemArea);
-}
-
-
-struct page*
-LinuxMemAreaOffsetToPage(LinuxMemArea *psLinuxMemArea,
-                         IMG_UINT32 ui32ByteOffset)
-{
-    IMG_UINT32 ui32PageIndex;
-    IMG_CHAR *pui8Addr;
-
-    switch(psLinuxMemArea->eAreaType)
-    {
-        case LINUX_MEM_AREA_ALLOC_PAGES:
-            ui32PageIndex = PHYS_TO_PFN(ui32ByteOffset);
-            return psLinuxMemArea->uData.sPageList.pvPageList[ui32PageIndex];
- 
-        case LINUX_MEM_AREA_VMALLOC:
-            pui8Addr = psLinuxMemArea->uData.sVmalloc.pvVmallocAddress;
-            pui8Addr += ui32ByteOffset;
-            return vmalloc_to_page(pui8Addr);
- 
-        case LINUX_MEM_AREA_SUB_ALLOC:
-             
-            return LinuxMemAreaOffsetToPage(psLinuxMemArea->uData.sSubAlloc.psParentLinuxMemArea,
-                                            psLinuxMemArea->uData.sSubAlloc.ui32ByteOffset
-                                             + ui32ByteOffset);
-        default:
-            PVR_DPF((PVR_DBG_ERROR,
-                    "%s: Unsupported request for struct page from LinuxMemArea with type=%s",
-                    __FUNCTION__, LinuxMemAreaTypeToString(psLinuxMemArea->eAreaType)));
-            return NULL;
-    }
-}
-
-
-LinuxKMemCache *
-KMemCacheCreateWrapper(IMG_CHAR *pszName,
-                       size_t Size,
-                       size_t Align,
-                       IMG_UINT32 ui32Flags)
-{
-#if defined(DEBUG_LINUX_SLAB_ALLOCATIONS)
-    ui32Flags |= SLAB_POISON|SLAB_RED_ZONE;
-#endif
-    return kmem_cache_create(pszName, Size, Align, ui32Flags, NULL
-#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,22))
-				, NULL
-#endif	
-			    );
-}
-
-
-IMG_VOID
-KMemCacheDestroyWrapper(LinuxKMemCache *psCache)
-{
-    kmem_cache_destroy(psCache);
-}
-
-
-IMG_VOID *
-_KMemCacheAllocWrapper(LinuxKMemCache *psCache,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14))
-                      gfp_t Flags,
-#else
-                      IMG_INT Flags,
-#endif
-                      IMG_CHAR *pszFileName,
-                      IMG_UINT32 ui32Line)
-{
-    IMG_VOID *pvRet;
-    
-    pvRet = kmem_cache_zalloc(psCache, Flags);
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    if (pvRet)
-	DebugMemAllocRecordAdd(DEBUG_MEM_ALLOC_TYPE_KMEM_CACHE,
-                           pvRet,
-                           pvRet,
-                           0,
-                           psCache,
-                           kmem_cache_size(psCache),
-                           pszFileName,
-                           ui32Line
-                           );
-#else
-    PVR_UNREFERENCED_PARAMETER(pszFileName);
-    PVR_UNREFERENCED_PARAMETER(ui32Line);
-#endif
-    
-    return pvRet;
-}
-
-
-IMG_VOID
-_KMemCacheFreeWrapper(LinuxKMemCache *psCache, IMG_VOID *pvObject, IMG_CHAR *pszFileName, IMG_UINT32 ui32Line)
-{
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    DebugMemAllocRecordRemove(DEBUG_MEM_ALLOC_TYPE_KMEM_CACHE, pvObject, pszFileName, ui32Line);
-#else
-    PVR_UNREFERENCED_PARAMETER(pszFileName);
-    PVR_UNREFERENCED_PARAMETER(ui32Line);
-#endif
-
-    kmem_cache_free(psCache, pvObject);
-}
-
-
-const IMG_CHAR *
-KMemCacheNameWrapper(LinuxKMemCache *psCache)
-{
-    PVR_UNREFERENCED_PARAMETER(psCache);
-
-    
-    return "";
-}
-
-
-LinuxMemArea *
-NewSubLinuxMemArea(LinuxMemArea *psParentLinuxMemArea,
-                   IMG_UINT32 ui32ByteOffset,
-                   IMG_UINT32 ui32Bytes)
-{
-    LinuxMemArea *psLinuxMemArea;
-    
-    PVR_ASSERT((ui32ByteOffset+ui32Bytes) <= psParentLinuxMemArea->ui32ByteSize);
-    
-    psLinuxMemArea = LinuxMemAreaStructAlloc();
-    if(!psLinuxMemArea)
-    {
-        return NULL;
-    }
-    
-    psLinuxMemArea->eAreaType = LINUX_MEM_AREA_SUB_ALLOC;
-    psLinuxMemArea->uData.sSubAlloc.psParentLinuxMemArea = psParentLinuxMemArea;
-    psLinuxMemArea->uData.sSubAlloc.ui32ByteOffset = ui32ByteOffset;
-    psLinuxMemArea->ui32ByteSize = ui32Bytes;
-    psLinuxMemArea->ui32AreaFlags = psParentLinuxMemArea->ui32AreaFlags;
-    psLinuxMemArea->bNeedsCacheInvalidate = psParentLinuxMemArea->bNeedsCacheInvalidate;
-    INIT_LIST_HEAD(&psLinuxMemArea->sMMapOffsetStructList);
-    
-#if defined(DEBUG_LINUX_MEM_AREAS)
-    {
-        DEBUG_LINUX_MEM_AREA_REC *psParentRecord;
-        psParentRecord = DebugLinuxMemAreaRecordFind(psParentLinuxMemArea);
-        DebugLinuxMemAreaRecordAdd(psLinuxMemArea, psParentRecord->ui32Flags);
-    }
-#endif
-    
-    return psLinuxMemArea;
-}
-
-
-static IMG_VOID
-FreeSubLinuxMemArea(LinuxMemArea *psLinuxMemArea)
-{
-    PVR_ASSERT(psLinuxMemArea->eAreaType == LINUX_MEM_AREA_SUB_ALLOC);
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-    DebugLinuxMemAreaRecordRemove(psLinuxMemArea);
-#endif
-    
-    
-
-    LinuxMemAreaStructFree(psLinuxMemArea);
-}
-
-
-static LinuxMemArea *
-LinuxMemAreaStructAlloc(IMG_VOID)
-{
-#if 0
-    LinuxMemArea *psLinuxMemArea;
-    psLinuxMemArea = kmem_cache_alloc(psLinuxMemAreaCache, GFP_KERNEL);
-    printk(KERN_ERR "%s: psLinuxMemArea=%p\n", __FUNCTION__, psLinuxMemArea);
-    dump_stack();
-    return psLinuxMemArea;
-#else
-    return KMemCacheAllocWrapper(psLinuxMemAreaCache, GFP_KERNEL);
-#endif
-}
-
-
-static IMG_VOID
-LinuxMemAreaStructFree(LinuxMemArea *psLinuxMemArea)
-{
-    KMemCacheFreeWrapper(psLinuxMemAreaCache, psLinuxMemArea);
-    
-    
-}
-
-
-IMG_VOID
-LinuxMemAreaDeepFree(LinuxMemArea *psLinuxMemArea)
-{
-    switch(psLinuxMemArea->eAreaType)
-    {
-        case LINUX_MEM_AREA_VMALLOC:
-            FreeVMallocLinuxMemArea(psLinuxMemArea);
-            break;
-        case LINUX_MEM_AREA_ALLOC_PAGES:
-            FreeAllocPagesLinuxMemArea(psLinuxMemArea);
-            break;
-        case LINUX_MEM_AREA_IOREMAP:
-            FreeIORemapLinuxMemArea(psLinuxMemArea);
-            break;
-	case LINUX_MEM_AREA_EXTERNAL_KV:
-	    FreeExternalKVLinuxMemArea(psLinuxMemArea);
-	    break;
-        case LINUX_MEM_AREA_IO:
-            FreeIOLinuxMemArea(psLinuxMemArea);
-            break;
-        case LINUX_MEM_AREA_SUB_ALLOC:
-            FreeSubLinuxMemArea(psLinuxMemArea);
-            break;
-        default:
-            PVR_DPF((PVR_DBG_ERROR, "%s: Unknown are type (%d)\n",
-                     __FUNCTION__, psLinuxMemArea->eAreaType));
-            break;
-    }
-}
-
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-static IMG_VOID
-DebugLinuxMemAreaRecordAdd(LinuxMemArea *psLinuxMemArea, IMG_UINT32 ui32Flags)
-{
-    DEBUG_LINUX_MEM_AREA_REC *psNewRecord;
-    const IMG_CHAR *pi8FlagsString;
-    
-    LinuxLockMutex(&g_sDebugMutex);
-
-    if(psLinuxMemArea->eAreaType != LINUX_MEM_AREA_SUB_ALLOC)
-    {
-        g_LinuxMemAreaWaterMark += psLinuxMemArea->ui32ByteSize;
-        if(g_LinuxMemAreaWaterMark > g_LinuxMemAreaHighWaterMark)
-        {
-            g_LinuxMemAreaHighWaterMark = g_LinuxMemAreaWaterMark;
-        }
-    }
-    g_LinuxMemAreaCount++;
-    
-    
-    psNewRecord = kmalloc(sizeof(DEBUG_LINUX_MEM_AREA_REC), GFP_KERNEL);
-    if(psNewRecord)
-    {
-        
-        psNewRecord->psLinuxMemArea = psLinuxMemArea;
-        psNewRecord->ui32Flags = ui32Flags;
-        psNewRecord->pid = OSGetCurrentProcessIDKM();
-		
-		List_DEBUG_LINUX_MEM_AREA_REC_Insert(&g_LinuxMemAreaRecords, psNewRecord);
-    }
-    else
-    {
-        PVR_DPF((PVR_DBG_ERROR,
-                 "%s: failed to allocate linux memory area record.",
-                 __FUNCTION__));
-    }
-    
-    
-    pi8FlagsString = HAPFlagsToString(ui32Flags);
-    if(strstr(pi8FlagsString, "UNKNOWN"))
-    {
-        PVR_DPF((PVR_DBG_ERROR,
-                 "%s: Unexpected flags (0x%08x) associated with psLinuxMemArea @ %p",
-                 __FUNCTION__,
-                 ui32Flags,
-                 psLinuxMemArea));
-        
-    }
-
-    LinuxUnLockMutex(&g_sDebugMutex);
-}
-
-
-
-static IMG_VOID* MatchLinuxMemArea_AnyVaCb(DEBUG_LINUX_MEM_AREA_REC *psCurrentRecord,
-										   va_list va)
-{
-	LinuxMemArea *psLinuxMemArea;
-	
-	psLinuxMemArea = va_arg(va, LinuxMemArea*);
-	if(psCurrentRecord->psLinuxMemArea == psLinuxMemArea)
-	{
-		return psCurrentRecord;
-	}
-	else
-	{
-		return IMG_NULL;
-	}
-}
-
-
-static DEBUG_LINUX_MEM_AREA_REC *
-DebugLinuxMemAreaRecordFind(LinuxMemArea *psLinuxMemArea)
-{
-    DEBUG_LINUX_MEM_AREA_REC *psCurrentRecord;
-
-    LinuxLockMutex(&g_sDebugMutex);
-	psCurrentRecord = List_DEBUG_LINUX_MEM_AREA_REC_Any_va(g_LinuxMemAreaRecords,
-														MatchLinuxMemArea_AnyVaCb,
-														psLinuxMemArea);
-	
-    LinuxUnLockMutex(&g_sDebugMutex);
-
-    return psCurrentRecord;
-}
-
-
-static IMG_VOID
-DebugLinuxMemAreaRecordRemove(LinuxMemArea *psLinuxMemArea)
-{
-    DEBUG_LINUX_MEM_AREA_REC *psCurrentRecord;
-
-    LinuxLockMutex(&g_sDebugMutex);
-
-    if(psLinuxMemArea->eAreaType != LINUX_MEM_AREA_SUB_ALLOC)
-    {
-        g_LinuxMemAreaWaterMark -= psLinuxMemArea->ui32ByteSize;
-    }
-    g_LinuxMemAreaCount--;
-
-    
-	psCurrentRecord = List_DEBUG_LINUX_MEM_AREA_REC_Any_va(g_LinuxMemAreaRecords,
-														MatchLinuxMemArea_AnyVaCb,
-														psLinuxMemArea);
-	if(psCurrentRecord)
-	{
-		
-		List_DEBUG_LINUX_MEM_AREA_REC_Remove(psCurrentRecord);
-		kfree(psCurrentRecord);
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_ERROR, "%s: couldn't find an entry for psLinuxMemArea=%p\n",
-        	     __FUNCTION__, psLinuxMemArea));
-	}
-
-    LinuxUnLockMutex(&g_sDebugMutex);
-}
-#endif
-
-
-IMG_VOID *
-LinuxMemAreaToCpuVAddr(LinuxMemArea *psLinuxMemArea)
-{
-    switch(psLinuxMemArea->eAreaType)
-    {
-        case LINUX_MEM_AREA_VMALLOC:
-            return psLinuxMemArea->uData.sVmalloc.pvVmallocAddress;
-        case LINUX_MEM_AREA_IOREMAP:
-            return psLinuxMemArea->uData.sIORemap.pvIORemapCookie;
-	case LINUX_MEM_AREA_EXTERNAL_KV:
-	    return psLinuxMemArea->uData.sExternalKV.pvExternalKV;
-        case LINUX_MEM_AREA_SUB_ALLOC:
-        {
-            IMG_CHAR *pAddr =
-                LinuxMemAreaToCpuVAddr(psLinuxMemArea->uData.sSubAlloc.psParentLinuxMemArea);  
-            if(!pAddr)
-            {
-                return NULL;
-            }
-            return pAddr + psLinuxMemArea->uData.sSubAlloc.ui32ByteOffset;
-        }
-        default:
-            return NULL;
-    }
-}
-
-
-IMG_CPU_PHYADDR
-LinuxMemAreaToCpuPAddr(LinuxMemArea *psLinuxMemArea, IMG_UINT32 ui32ByteOffset)
-{
-    IMG_CPU_PHYADDR CpuPAddr;
-    
-    CpuPAddr.uiAddr = 0;
-
-    switch(psLinuxMemArea->eAreaType)
-    {
-        case LINUX_MEM_AREA_IOREMAP:
-        {
-            CpuPAddr = psLinuxMemArea->uData.sIORemap.CPUPhysAddr;
-            CpuPAddr.uiAddr += ui32ByteOffset;
-            break;
-        }
-	case LINUX_MEM_AREA_EXTERNAL_KV:
-	{
-	    if (psLinuxMemArea->uData.sExternalKV.bPhysContig)
-	    {
-		CpuPAddr = SysSysPAddrToCpuPAddr(psLinuxMemArea->uData.sExternalKV.uPhysAddr.SysPhysAddr);
-		CpuPAddr.uiAddr += ui32ByteOffset;
-	    }
-	    else
-	    {
-		IMG_UINT32 ui32PageIndex = PHYS_TO_PFN(ui32ByteOffset);
-		IMG_SYS_PHYADDR SysPAddr = psLinuxMemArea->uData.sExternalKV.uPhysAddr.pSysPhysAddr[ui32PageIndex];
-
-		CpuPAddr = SysSysPAddrToCpuPAddr(SysPAddr);
-                CpuPAddr.uiAddr += ADDR_TO_PAGE_OFFSET(ui32ByteOffset);
-	    }
-            break;
-	}
-        case LINUX_MEM_AREA_IO:
-        {
-            CpuPAddr = psLinuxMemArea->uData.sIO.CPUPhysAddr;
-            CpuPAddr.uiAddr += ui32ByteOffset;
-            break;
-        }
-        case LINUX_MEM_AREA_VMALLOC:
-        {
-            IMG_CHAR *pCpuVAddr;
-            pCpuVAddr =
-                (IMG_CHAR *)psLinuxMemArea->uData.sVmalloc.pvVmallocAddress;
-            pCpuVAddr += ui32ByteOffset;
-            CpuPAddr.uiAddr = VMallocToPhys(pCpuVAddr);
-            break;
-        }
-        case LINUX_MEM_AREA_ALLOC_PAGES:
-        {
-            struct page *page;
-            IMG_UINT32 ui32PageIndex = PHYS_TO_PFN(ui32ByteOffset);
-            page = psLinuxMemArea->uData.sPageList.pvPageList[ui32PageIndex];
-            CpuPAddr.uiAddr = page_to_phys(page);
-            CpuPAddr.uiAddr += ADDR_TO_PAGE_OFFSET(ui32ByteOffset);
-            break;
-        }
-        case LINUX_MEM_AREA_SUB_ALLOC:
-        {
-            CpuPAddr =
-                OSMemHandleToCpuPAddr(psLinuxMemArea->uData.sSubAlloc.psParentLinuxMemArea,
-                                      psLinuxMemArea->uData.sSubAlloc.ui32ByteOffset
-                                        + ui32ByteOffset);
-            break;
-        }
-        default:
-        {
-            PVR_DPF((PVR_DBG_ERROR, "%s: Unknown LinuxMemArea type (%d)\n",
-                     __FUNCTION__, psLinuxMemArea->eAreaType));
-            PVR_ASSERT(CpuPAddr.uiAddr);
-           break;
-        }
-   }
-    
-    return CpuPAddr;
-}
-
-
-IMG_BOOL
-LinuxMemAreaPhysIsContig(LinuxMemArea *psLinuxMemArea)
-{
-    switch(psLinuxMemArea->eAreaType)
-    {
-        case LINUX_MEM_AREA_IOREMAP:
-        case LINUX_MEM_AREA_IO:
-            return IMG_TRUE;
-
-	case LINUX_MEM_AREA_EXTERNAL_KV:
-	    return psLinuxMemArea->uData.sExternalKV.bPhysContig;
-
-        case LINUX_MEM_AREA_VMALLOC:
-        case LINUX_MEM_AREA_ALLOC_PAGES:
-	    return IMG_FALSE;
-
-        case LINUX_MEM_AREA_SUB_ALLOC:
-             
-	    return LinuxMemAreaPhysIsContig(psLinuxMemArea->uData.sSubAlloc.psParentLinuxMemArea);
-
-        default:
-            PVR_DPF((PVR_DBG_ERROR, "%s: Unknown LinuxMemArea type (%d)\n",
-                     __FUNCTION__, psLinuxMemArea->eAreaType));
-	    break;
-    }
-    return IMG_FALSE;
-}
-
-
-const IMG_CHAR *
-LinuxMemAreaTypeToString(LINUX_MEM_AREA_TYPE eMemAreaType)
-{
-    
-    switch(eMemAreaType)
-    {
-        case LINUX_MEM_AREA_IOREMAP:
-            return "LINUX_MEM_AREA_IOREMAP";
-	case LINUX_MEM_AREA_EXTERNAL_KV:
-	    return "LINUX_MEM_AREA_EXTERNAL_KV";
-        case LINUX_MEM_AREA_IO:
-            return "LINUX_MEM_AREA_IO";
-        case LINUX_MEM_AREA_VMALLOC:
-            return "LINUX_MEM_AREA_VMALLOC";
-        case LINUX_MEM_AREA_SUB_ALLOC:
-            return "LINUX_MEM_AREA_SUB_ALLOC";
-        case LINUX_MEM_AREA_ALLOC_PAGES:
-            return "LINUX_MEM_AREA_ALLOC_PAGES";
-        default:
-            PVR_ASSERT(0);
-    }
-
-    return "";
-}
-
-
-#if defined(DEBUG_LINUX_MEM_AREAS) || defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-static void ProcSeqStartstopDebugMutex(struct seq_file *sfile, IMG_BOOL start) 
-{
-	if(start) 
-	{
-	    LinuxLockMutex(&g_sDebugMutex);		
-	}
-	else
-	{
-	    LinuxUnLockMutex(&g_sDebugMutex);
-	}
-}
-#endif 
-
-#if defined(DEBUG_LINUX_MEM_AREAS)
-
-static IMG_VOID* DecOffMemAreaRec_AnyVaCb(DEBUG_LINUX_MEM_AREA_REC *psNode, va_list va)
-{
-	off_t *pOff = va_arg(va, off_t*);
-	if (--(*pOff))
-	{
-		return IMG_NULL;
-	}
-	else
-	{
-		return psNode;
-	}
-}
-
- 
-static void* ProcSeqNextMemArea(struct seq_file *sfile,void* el,loff_t off) 
-{
-    DEBUG_LINUX_MEM_AREA_REC *psRecord;
-	psRecord = (DEBUG_LINUX_MEM_AREA_REC*)
-				List_DEBUG_LINUX_MEM_AREA_REC_Any_va(g_LinuxMemAreaRecords,
-													DecOffMemAreaRec_AnyVaCb,
-													&off);
-	return (void*)psRecord;
-}
-
-static void* ProcSeqOff2ElementMemArea(struct seq_file * sfile, loff_t off)
-{
-    DEBUG_LINUX_MEM_AREA_REC *psRecord;
-	if(!off) 
-	{
-		return PVR_PROC_SEQ_START_TOKEN;
-	}
-
-	psRecord = (DEBUG_LINUX_MEM_AREA_REC*)
-				List_DEBUG_LINUX_MEM_AREA_REC_Any_va(g_LinuxMemAreaRecords,
-													DecOffMemAreaRec_AnyVaCb,
-													&off);
-	return (void*)psRecord;
-}
-
-
-static void ProcSeqShowMemArea(struct seq_file *sfile,void* el)
-{
-    DEBUG_LINUX_MEM_AREA_REC *psRecord = (DEBUG_LINUX_MEM_AREA_REC*)el; 
-	if(el == PVR_PROC_SEQ_START_TOKEN) 
-	{
-
-#if !defined(DEBUG_LINUX_XML_PROC_FILES)
-        seq_printf( sfile,
-              			  "Number of Linux Memory Areas: %u\n"
-                          "At the current water mark these areas correspond to %u bytes (excluding SUB areas)\n"
-                          "At the highest water mark these areas corresponded to %u bytes (excluding SUB areas)\n"
-                          "\nDetails for all Linux Memory Areas:\n"
-                          "%s %-24s %s %s %-8s %-5s %s\n",
-                          g_LinuxMemAreaCount,
-                          g_LinuxMemAreaWaterMark,
-                          g_LinuxMemAreaHighWaterMark,
-                          "psLinuxMemArea",
-                          "LinuxMemType",
-                          "CpuVAddr",
-                          "CpuPAddr",
-                          "Bytes",
-                          "Pid",
-                          "Flags"
-                         );
-#else
-        seq_printf( sfile,
-                          "<mem_areas_header>\n"
-                          "\t<count>%u</count>\n"
-                          "\t<watermark key=\"mar0\" description=\"current\" bytes=\"%u\"/>\n" 
-                          "\t<watermark key=\"mar1\" description=\"high\" bytes=\"%u\"/>\n" 
-                          "</mem_areas_header>\n",
-                          g_LinuxMemAreaCount,
-                          g_LinuxMemAreaWaterMark,
-                          g_LinuxMemAreaHighWaterMark
-                         );
-#endif
-		return;
-	}
-
-        seq_printf( sfile,
-#if !defined(DEBUG_LINUX_XML_PROC_FILES)
-                       "%8p       %-24s %8p %08x %-8d %-5u %08x=(%s)\n",
-#else
-                       "<linux_mem_area>\n"
-                       "\t<pointer>%8p</pointer>\n"
-                       "\t<type>%s</type>\n"
-                       "\t<cpu_virtual>%8p</cpu_virtual>\n"
-                       "\t<cpu_physical>%08x</cpu_physical>\n"
-                       "\t<bytes>%ld</bytes>\n"
-                       "\t<pid>%u</pid>\n"
-                       "\t<flags>%08lx</flags>\n"
-                       "\t<flags_string>%s</flags_string>\n"
-                       "</linux_mem_area>\n",
-#endif
-                       psRecord->psLinuxMemArea,
-                       LinuxMemAreaTypeToString(psRecord->psLinuxMemArea->eAreaType),
-                       LinuxMemAreaToCpuVAddr(psRecord->psLinuxMemArea),
-                       LinuxMemAreaToCpuPAddr(psRecord->psLinuxMemArea,0).uiAddr,
-                       psRecord->psLinuxMemArea->ui32ByteSize,
-                       psRecord->pid,
-                       psRecord->ui32Flags,
-                       HAPFlagsToString(psRecord->ui32Flags)
-                      );
-
-}
-
-#endif 
-
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-
-static IMG_VOID* DecOffMemAllocRec_AnyVaCb(DEBUG_MEM_ALLOC_REC *psNode, va_list va)
-{
-	off_t *pOff = va_arg(va, off_t*);
-	if (--(*pOff))
-	{
-		return IMG_NULL;
-	}
-	else
-	{
-		return psNode;
-	}
-}
-
-
- 
-static void* ProcSeqNextMemoryRecords(struct seq_file *sfile,void* el,loff_t off) 
-{
-    DEBUG_MEM_ALLOC_REC *psRecord;
-	psRecord = (DEBUG_MEM_ALLOC_REC*)
-		List_DEBUG_MEM_ALLOC_REC_Any_va(g_MemoryRecords,
-										DecOffMemAllocRec_AnyVaCb,
-										&off);
-#if defined(DEBUG_LINUX_XML_PROC_FILES)
-	if(!psRecord) 
-	{
-		seq_printf( sfile, "</meminfo>\n");
-	}
-#endif
-
-	return (void*)psRecord;
-}
-
-static void* ProcSeqOff2ElementMemoryRecords(struct seq_file *sfile, loff_t off)
-{
-    DEBUG_MEM_ALLOC_REC *psRecord;
-	if(!off) 
-	{
-		return PVR_PROC_SEQ_START_TOKEN;
-	}
-
-	psRecord = (DEBUG_MEM_ALLOC_REC*)
-		List_DEBUG_MEM_ALLOC_REC_Any_va(g_MemoryRecords,
-										DecOffMemAllocRec_AnyVaCb,
-										&off);
-
-#if defined(DEBUG_LINUX_XML_PROC_FILES)
-	if(!psRecord) 
-	{
-		seq_printf( sfile, "</meminfo>\n");
-	}
-#endif
-
-	return (void*)psRecord;
-}
-
-static void ProcSeqShowMemoryRecords(struct seq_file *sfile,void* el)
-{
-    DEBUG_MEM_ALLOC_REC *psRecord = (DEBUG_MEM_ALLOC_REC*)el;
-	if(el == PVR_PROC_SEQ_START_TOKEN) 
-	{
-#if !defined(DEBUG_LINUX_XML_PROC_FILES)
-        
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "Current Water Mark of bytes allocated via kmalloc",
-                           g_WaterMarkData[DEBUG_MEM_ALLOC_TYPE_KMALLOC]);
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "Highest Water Mark of bytes allocated via kmalloc",
-                           g_HighWaterMarkData[DEBUG_MEM_ALLOC_TYPE_KMALLOC]);
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "Current Water Mark of bytes allocated via vmalloc",
-                           g_WaterMarkData[DEBUG_MEM_ALLOC_TYPE_VMALLOC]);
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "Highest Water Mark of bytes allocated via vmalloc",
-                           g_HighWaterMarkData[DEBUG_MEM_ALLOC_TYPE_VMALLOC]);
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "Current Water Mark of bytes allocated via alloc_pages",
-                           g_WaterMarkData[DEBUG_MEM_ALLOC_TYPE_ALLOC_PAGES]);
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "Highest Water Mark of bytes allocated via alloc_pages",
-                           g_HighWaterMarkData[DEBUG_MEM_ALLOC_TYPE_ALLOC_PAGES]);
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "Current Water Mark of bytes allocated via ioremap",
-                           g_WaterMarkData[DEBUG_MEM_ALLOC_TYPE_IOREMAP]);
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "Highest Water Mark of bytes allocated via ioremap",
-                           g_HighWaterMarkData[DEBUG_MEM_ALLOC_TYPE_IOREMAP]);
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "Current Water Mark of bytes reserved for \"IO\" memory areas",
-                           g_WaterMarkData[DEBUG_MEM_ALLOC_TYPE_IO]);
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "Highest Water Mark of bytes allocated for \"IO\" memory areas",
-                           g_HighWaterMarkData[DEBUG_MEM_ALLOC_TYPE_IO]);
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "Current Water Mark of bytes allocated via kmem_cache_alloc",
-                           g_WaterMarkData[DEBUG_MEM_ALLOC_TYPE_KMEM_CACHE]);
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "Highest Water Mark of bytes allocated via kmem_cache_alloc",
-                           g_HighWaterMarkData[DEBUG_MEM_ALLOC_TYPE_KMEM_CACHE]);
-        seq_printf( sfile, "\n");
-
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "The Current Water Mark for memory allocated from system RAM",
-                           g_SysRAMWaterMark);
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "The Highest Water Mark for memory allocated from system RAM",
-                           g_SysRAMHighWaterMark);
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "The Current Water Mark for memory allocated from IO memory",
-                           g_IOMemWaterMark);
-        seq_printf( sfile, "%-60s: %d bytes\n",
-                           "The Highest Water Mark for memory allocated from IO memory",
-                           g_IOMemHighWaterMark);
-
-        seq_printf( sfile, "\n");
-
-		seq_printf( sfile, "Details for all known allocations:\n"
-                           "%-16s %-8s %-8s %-10s %-5s %-10s %s\n",
-                           "Type",
-                           "CpuVAddr",
-                           "CpuPAddr",
-                           "Bytes",
-                           "PID",
-                           "PrivateData",
-                           "Filename:Line");
-
-#else 
-		
-		
-		seq_printf( sfile, "<meminfo>\n<meminfo_header>\n");
-		seq_printf( sfile,
-                           "<watermark key=\"mr0\" description=\"kmalloc_current\" bytes=\"%d\"/>\n",
-                           g_WaterMarkData[DEBUG_MEM_ALLOC_TYPE_KMALLOC]);
-		seq_printf( sfile,
-                           "<watermark key=\"mr1\" description=\"kmalloc_high\" bytes=\"%d\"/>\n",
-                           g_HighWaterMarkData[DEBUG_MEM_ALLOC_TYPE_KMALLOC]);
-		seq_printf( sfile,
-                           "<watermark key=\"mr2\" description=\"vmalloc_current\" bytes=\"%d\"/>\n",
-                           g_WaterMarkData[DEBUG_MEM_ALLOC_TYPE_VMALLOC]);
-		seq_printf( sfile,
-                           "<watermark key=\"mr3\" description=\"vmalloc_high\" bytes=\"%d\"/>\n",
-                           g_HighWaterMarkData[DEBUG_MEM_ALLOC_TYPE_VMALLOC]);
-		seq_printf( sfile,
-                           "<watermark key=\"mr4\" description=\"alloc_pages_current\" bytes=\"%d\"/>\n",
-                           g_WaterMarkData[DEBUG_MEM_ALLOC_TYPE_ALLOC_PAGES]);
-		seq_printf( sfile,
-                           "<watermark key=\"mr5\" description=\"alloc_pages_high\" bytes=\"%d\"/>\n",
-                           g_HighWaterMarkData[DEBUG_MEM_ALLOC_TYPE_ALLOC_PAGES]);
-		seq_printf( sfile,
-                           "<watermark key=\"mr6\" description=\"ioremap_current\" bytes=\"%d\"/>\n",
-                           g_WaterMarkData[DEBUG_MEM_ALLOC_TYPE_IOREMAP]);
-		seq_printf( sfile,
-                           "<watermark key=\"mr7\" description=\"ioremap_high\" bytes=\"%d\"/>\n",
-                           g_HighWaterMarkData[DEBUG_MEM_ALLOC_TYPE_IOREMAP]);
-		seq_printf( sfile,
-                           "<watermark key=\"mr8\" description=\"io_current\" bytes=\"%d\"/>\n",
-                           g_WaterMarkData[DEBUG_MEM_ALLOC_TYPE_IO]);
-		seq_printf( sfile,
-                           "<watermark key=\"mr9\" description=\"io_high\" bytes=\"%d\"/>\n",
-                           g_HighWaterMarkData[DEBUG_MEM_ALLOC_TYPE_IO]);
-		seq_printf( sfile,
-                           "<watermark key=\"mr10\" description=\"kmem_cache_current\" bytes=\"%d\"/>\n",
-                           g_WaterMarkData[DEBUG_MEM_ALLOC_TYPE_KMEM_CACHE]);
-		seq_printf( sfile,
-                           "<watermark key=\"mr11\" description=\"kmem_cache_high\" bytes=\"%d\"/>\n",
-                           g_HighWaterMarkData[DEBUG_MEM_ALLOC_TYPE_KMEM_CACHE]);
-		seq_printf( sfile,"\n" );
-
-		seq_printf( sfile,
-                           "<watermark key=\"mr14\" description=\"system_ram_current\" bytes=\"%d\"/>\n",
-                           g_SysRAMWaterMark);
-		seq_printf( sfile,
-                           "<watermark key=\"mr15\" description=\"system_ram_high\" bytes=\"%d\"/>\n",
-                           g_SysRAMHighWaterMark);
-		seq_printf( sfile,
-                           "<watermark key=\"mr16\" description=\"system_io_current\" bytes=\"%d\"/>\n",
-                           g_IOMemWaterMark);
-		seq_printf( sfile,
-                           "<watermark key=\"mr17\" description=\"system_io_high\" bytes=\"%d\"/>\n",
-                           g_IOMemHighWaterMark);
-
-		seq_printf( sfile, "</meminfo_header>\n");
-
-#endif 
-		return;
-	}
-
-    if(psRecord->eAllocType != DEBUG_MEM_ALLOC_TYPE_KMEM_CACHE)
-    {
-		seq_printf( sfile,
-#if !defined(DEBUG_LINUX_XML_PROC_FILES)
-                           "%-16s %-8p %08x %-10d %-5d %-10s %s:%d\n",
-#else
-                           "<allocation>\n"
-                           "\t<type>%s</type>\n"
-                           "\t<cpu_virtual>%-8p</cpu_virtual>\n"
-                           "\t<cpu_physical>%08x</cpu_physical>\n"
-                           "\t<bytes>%d</bytes>\n"
-                           "\t<pid>%d</pid>\n"
-                           "\t<private>%s</private>\n"
-                           "\t<filename>%s</filename>\n"
-                           "\t<line>%d</line>\n"
-                           "</allocation>\n",
-#endif
-                           DebugMemAllocRecordTypeToString(psRecord->eAllocType),
-                           psRecord->pvCpuVAddr,
-                           psRecord->ulCpuPAddr,
-                           psRecord->ui32Bytes,
-                           psRecord->pid,
-                           "NULL",
-                           psRecord->pszFileName,
-                           psRecord->ui32Line);
-    }
-    else
-    {
-		seq_printf( sfile,
-#if !defined(DEBUG_LINUX_XML_PROC_FILES)
-                           "%-16s %-8p %08x %-10d %-5d %-10s %s:%d\n",
-#else
-                           "<allocation>\n"
-                           "\t<type>%s</type>\n"
-                           "\t<cpu_virtual>%-8p</cpu_virtual>\n"
-                           "\t<cpu_physical>%08x</cpu_physical>\n"
-                           "\t<bytes>%d</bytes>\n"
-                           "\t<pid>%d</pid>\n"
-                           "\t<private>%s</private>\n"
-                           "\t<filename>%s</filename>\n"
-                           "\t<line>%d</line>\n"
-                           "</allocation>\n",
-#endif
-                           DebugMemAllocRecordTypeToString(psRecord->eAllocType),
-                           psRecord->pvCpuVAddr,
-                           psRecord->ulCpuPAddr,
-                           psRecord->ui32Bytes,
-                           psRecord->pid,
-                           KMemCacheNameWrapper(psRecord->pvPrivateData),
-                           psRecord->pszFileName,
-                           psRecord->ui32Line);
-    }
-}
-
-#endif 
-
-
-#if defined(DEBUG_LINUX_MEM_AREAS) || defined(DEBUG_LINUX_MMAP_AREAS)
-const IMG_CHAR *
-HAPFlagsToString(IMG_UINT32 ui32Flags)
-{
-    static IMG_CHAR szFlags[50];
-    IMG_INT32 i32Pos = 0;
-    IMG_UINT32 ui32CacheTypeIndex, ui32MapTypeIndex;
-    IMG_CHAR *apszCacheTypes[] = {
-        "UNCACHED",
-        "CACHED",
-        "WRITECOMBINE",
-        "UNKNOWN"
-    };
-    IMG_CHAR *apszMapType[] = {
-        "KERNEL_ONLY",
-        "SINGLE_PROCESS",
-        "MULTI_PROCESS",
-        "FROM_EXISTING_PROCESS",
-        "NO_CPU_VIRTUAL",
-        "UNKNOWN"
-    };
-    
-    
-    if(ui32Flags & PVRSRV_HAP_UNCACHED){
-        ui32CacheTypeIndex=0;
-    }else if(ui32Flags & PVRSRV_HAP_CACHED){
-        ui32CacheTypeIndex=1;
-    }else if(ui32Flags & PVRSRV_HAP_WRITECOMBINE){
-        ui32CacheTypeIndex=2;
-    }else{
-        ui32CacheTypeIndex=3;
-        PVR_DPF((PVR_DBG_ERROR, "%s: unknown cache type (%u)",
-                 __FUNCTION__, (ui32Flags & PVRSRV_HAP_CACHETYPE_MASK)));
-    }
-
-    
-    if(ui32Flags & PVRSRV_HAP_KERNEL_ONLY){
-        ui32MapTypeIndex = 0;
-    }else if(ui32Flags & PVRSRV_HAP_SINGLE_PROCESS){
-        ui32MapTypeIndex = 1;
-    }else if(ui32Flags & PVRSRV_HAP_MULTI_PROCESS){
-        ui32MapTypeIndex = 2;
-    }else if(ui32Flags & PVRSRV_HAP_FROM_EXISTING_PROCESS){
-        ui32MapTypeIndex = 3;
-    }else if(ui32Flags & PVRSRV_HAP_NO_CPU_VIRTUAL){
-        ui32MapTypeIndex = 4;
-    }else{
-        ui32MapTypeIndex = 5;
-        PVR_DPF((PVR_DBG_ERROR, "%s: unknown map type (%u)",
-                 __FUNCTION__, (ui32Flags & PVRSRV_HAP_MAPTYPE_MASK)));
-    }
-
-    i32Pos = sprintf(szFlags, "%s|", apszCacheTypes[ui32CacheTypeIndex]);
-    if (i32Pos <= 0)
-    {
-	PVR_DPF((PVR_DBG_ERROR, "%s: sprintf for cache type %u failed (%d)",
-		__FUNCTION__, ui32CacheTypeIndex, i32Pos));
-	szFlags[0] = 0;
-    }
-    else
-    {
-        sprintf(szFlags + i32Pos, "%s", apszMapType[ui32MapTypeIndex]);
-    }
-
-    return szFlags;
-}
-#endif
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mm.h b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mm.h
deleted file mode 100644
index b32f5e8..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mm.h
+++ /dev/null
@@ -1,336 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __IMG_LINUX_MM_H__
-#define __IMG_LINUX_MM_H__
-
-#include <linux/version.h>
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38))
-#ifndef AUTOCONF_INCLUDED
-#include <linux/config.h>
-#endif
-#endif
-
-#include <linux/slab.h>
-#include <linux/mm.h>
-#include <linux/list.h>
-
-#include <asm/io.h>
-
-#define	PHYS_TO_PFN(phys) ((phys) >> PAGE_SHIFT)
-#define PFN_TO_PHYS(pfn) ((pfn) << PAGE_SHIFT)
-
-#define RANGE_TO_PAGES(range) (((range) + (PAGE_SIZE - 1)) >> PAGE_SHIFT)
-
-#define	ADDR_TO_PAGE_OFFSET(addr) (((unsigned long)(addr)) & (PAGE_SIZE - 1))
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10))
-#define	REMAP_PFN_RANGE(vma, addr, pfn, size, prot) remap_pfn_range(vma, addr, pfn, size, prot)
-#else
-#define	REMAP_PFN_RANGE(vma, addr, pfn, size, prot) remap_page_range(vma, addr, PFN_TO_PHYS(pfn), size, prot)
-#endif
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12))
-#define	IO_REMAP_PFN_RANGE(vma, addr, pfn, size, prot) io_remap_pfn_range(vma, addr, pfn, size, prot)
-#else
-#define	IO_REMAP_PFN_RANGE(vma, addr, pfn, size, prot) io_remap_page_range(vma, addr, PFN_TO_PHYS(pfn), size, prot)
-#endif
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15))
-#define	VM_INSERT_PAGE(vma, addr, page) vm_insert_page(vma, addr, page)
-#else
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10))
-#define VM_INSERT_PAGE(vma, addr, page) remap_pfn_range(vma, addr, page_to_pfn(page), PAGE_SIZE, vma->vm_page_prot);
-#else
-#define VM_INSERT_PAGE(vma, addr, page) remap_page_range(vma, addr, page_to_phys(page), PAGE_SIZE, vma->vm_page_prot);
-#endif
-#endif
-
-static inline IMG_UINT32 VMallocToPhys(IMG_VOID *pCpuVAddr)
-{
-	return (page_to_phys(vmalloc_to_page(pCpuVAddr)) + ADDR_TO_PAGE_OFFSET(pCpuVAddr));
-		
-}
-
-typedef enum {
-    LINUX_MEM_AREA_IOREMAP,
-	LINUX_MEM_AREA_EXTERNAL_KV,
-    LINUX_MEM_AREA_IO,
-    LINUX_MEM_AREA_VMALLOC,
-    LINUX_MEM_AREA_ALLOC_PAGES,
-    LINUX_MEM_AREA_SUB_ALLOC,
-    LINUX_MEM_AREA_TYPE_COUNT
-}LINUX_MEM_AREA_TYPE;
-
-typedef struct _LinuxMemArea LinuxMemArea;
-
-
-struct _LinuxMemArea {
-    LINUX_MEM_AREA_TYPE eAreaType;
-    union _uData
-    {
-        struct _sIORemap
-        {
-            
-            IMG_CPU_PHYADDR CPUPhysAddr;
-            IMG_VOID *pvIORemapCookie;
-        }sIORemap;
-        struct _sExternalKV
-        {
-            
-	    IMG_BOOL bPhysContig;
-	    union {
-		    
-		    IMG_SYS_PHYADDR SysPhysAddr;
-		    IMG_SYS_PHYADDR *pSysPhysAddr;
-	    } uPhysAddr;
-            IMG_VOID *pvExternalKV;
-        }sExternalKV;
-        struct _sIO
-        {
-            
-            IMG_CPU_PHYADDR CPUPhysAddr;
-        }sIO;
-        struct _sVmalloc
-        {
-            
-            IMG_VOID *pvVmallocAddress;
-        }sVmalloc;
-        struct _sPageList
-        {
-            
-            struct page **pvPageList;
-	    IMG_HANDLE hBlockPageList;
-        }sPageList;
-        struct _sSubAlloc
-        {
-            
-            LinuxMemArea *psParentLinuxMemArea;
-            IMG_UINT32 ui32ByteOffset;
-        }sSubAlloc;
-    }uData;
-
-    IMG_UINT32 ui32ByteSize;		
-
-    IMG_UINT32 ui32AreaFlags;		
-
-    IMG_BOOL bMMapRegistered;		
-
-    IMG_BOOL bNeedsCacheInvalidate;	
-
-    
-    struct list_head	sMMapItem;
-
-    
-    struct list_head	sMMapOffsetStructList;
-};
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17))
-typedef kmem_cache_t LinuxKMemCache;
-#else
-typedef struct kmem_cache LinuxKMemCache;
-#endif
-
-
-PVRSRV_ERROR LinuxMMInit(IMG_VOID);
-
-
-IMG_VOID LinuxMMCleanup(IMG_VOID);
-
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-#define KMallocWrapper(ui32ByteSize, uFlags) _KMallocWrapper(ui32ByteSize, uFlags, __FILE__, __LINE__)
-#else
-#define KMallocWrapper(ui32ByteSize, uFlags) _KMallocWrapper(ui32ByteSize, uFlags, NULL, 0)
-#endif
-IMG_VOID *_KMallocWrapper(IMG_UINT32 ui32ByteSize, gfp_t uFlags, IMG_CHAR *szFileName, IMG_UINT32 ui32Line);
-
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-#define KFreeWrapper(pvCpuVAddr) _KFreeWrapper(pvCpuVAddr, __FILE__, __LINE__)
-#else
-#define KFreeWrapper(pvCpuVAddr) _KFreeWrapper(pvCpuVAddr, NULL, 0)
-#endif
-IMG_VOID _KFreeWrapper(IMG_VOID *pvCpuVAddr, IMG_CHAR *pszFileName, IMG_UINT32 ui32Line);
-
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-#define VMallocWrapper(ui32Bytes, ui32AllocFlags) _VMallocWrapper(ui32Bytes, ui32AllocFlags, __FILE__, __LINE__)
-#else
-#define VMallocWrapper(ui32Bytes, ui32AllocFlags) _VMallocWrapper(ui32Bytes, ui32AllocFlags, NULL, 0)
-#endif
-IMG_VOID *_VMallocWrapper(IMG_UINT32 ui32Bytes, IMG_UINT32 ui32AllocFlags, IMG_CHAR *pszFileName, IMG_UINT32 ui32Line);
-
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-#define VFreeWrapper(pvCpuVAddr) _VFreeWrapper(pvCpuVAddr, __FILE__, __LINE__)
-#else
-#define VFreeWrapper(pvCpuVAddr) _VFreeWrapper(pvCpuVAddr, NULL, 0)
-#endif
-IMG_VOID _VFreeWrapper(IMG_VOID *pvCpuVAddr, IMG_CHAR *pszFileName, IMG_UINT32 ui32Line);
-
-
-LinuxMemArea *NewVMallocLinuxMemArea(IMG_UINT32 ui32Bytes, IMG_UINT32 ui32AreaFlags);
-
-
-IMG_VOID FreeVMallocLinuxMemArea(LinuxMemArea *psLinuxMemArea);
-
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-#define IORemapWrapper(BasePAddr, ui32Bytes, ui32MappingFlags) \
-    _IORemapWrapper(BasePAddr, ui32Bytes, ui32MappingFlags, __FILE__, __LINE__)
-#else
-#define IORemapWrapper(BasePAddr, ui32Bytes, ui32MappingFlags) \
-    _IORemapWrapper(BasePAddr, ui32Bytes, ui32MappingFlags, NULL, 0)
-#endif
-IMG_VOID *_IORemapWrapper(IMG_CPU_PHYADDR BasePAddr,
-                          IMG_UINT32 ui32Bytes,
-                          IMG_UINT32 ui32MappingFlags,
-                          IMG_CHAR *pszFileName,
-                          IMG_UINT32 ui32Line);
-
-
-LinuxMemArea *NewIORemapLinuxMemArea(IMG_CPU_PHYADDR BasePAddr, IMG_UINT32 ui32Bytes, IMG_UINT32 ui32AreaFlags);
-
-
-IMG_VOID FreeIORemapLinuxMemArea(LinuxMemArea *psLinuxMemArea);
-
-LinuxMemArea *NewExternalKVLinuxMemArea(IMG_SYS_PHYADDR *pBasePAddr, IMG_VOID *pvCPUVAddr, IMG_UINT32 ui32Bytes, IMG_BOOL bPhysContig, IMG_UINT32 ui32AreaFlags);
-
-
-IMG_VOID FreeExternalKVLinuxMemArea(LinuxMemArea *psLinuxMemArea);
-
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-#define IOUnmapWrapper(pvIORemapCookie) \
-    _IOUnmapWrapper(pvIORemapCookie, __FILE__, __LINE__)
-#else
-#define IOUnmapWrapper(pvIORemapCookie) \
-    _IOUnmapWrapper(pvIORemapCookie, NULL, 0)
-#endif
-IMG_VOID _IOUnmapWrapper(IMG_VOID *pvIORemapCookie, IMG_CHAR *pszFileName, IMG_UINT32 ui32Line);
-
-
-struct page *LinuxMemAreaOffsetToPage(LinuxMemArea *psLinuxMemArea, IMG_UINT32 ui32ByteOffset);
-
-
-LinuxKMemCache *KMemCacheCreateWrapper(IMG_CHAR *pszName, size_t Size, size_t Align, IMG_UINT32 ui32Flags);
-
-
-IMG_VOID KMemCacheDestroyWrapper(LinuxKMemCache *psCache);
-
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-#define KMemCacheAllocWrapper(psCache, Flags) _KMemCacheAllocWrapper(psCache, Flags, __FILE__, __LINE__)
-#else
-#define KMemCacheAllocWrapper(psCache, Flags) _KMemCacheAllocWrapper(psCache, Flags, NULL, 0)
-#endif
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14))
-IMG_VOID *_KMemCacheAllocWrapper(LinuxKMemCache *psCache, gfp_t Flags, IMG_CHAR *pszFileName, IMG_UINT32 ui32Line);
-#else
-IMG_VOID *_KMemCacheAllocWrapper(LinuxKMemCache *psCache, int Flags, IMG_CHAR *pszFileName, IMG_UINT32 ui32Line);
-#endif
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-#define KMemCacheFreeWrapper(psCache, pvObject) _KMemCacheFreeWrapper(psCache, pvObject, __FILE__, __LINE__)
-#else
-#define KMemCacheFreeWrapper(psCache, pvObject) _KMemCacheFreeWrapper(psCache, pvObject, NULL, 0)
-#endif
-IMG_VOID _KMemCacheFreeWrapper(LinuxKMemCache *psCache, IMG_VOID *pvObject, IMG_CHAR *pszFileName, IMG_UINT32 ui32Line);
-
-
-const IMG_CHAR *KMemCacheNameWrapper(LinuxKMemCache *psCache);
-
-
-LinuxMemArea *NewIOLinuxMemArea(IMG_CPU_PHYADDR BasePAddr, IMG_UINT32 ui32Bytes, IMG_UINT32 ui32AreaFlags);
-
-
-IMG_VOID FreeIOLinuxMemArea(LinuxMemArea *psLinuxMemArea);
-
-
-LinuxMemArea *NewAllocPagesLinuxMemArea(IMG_UINT32 ui32Bytes, IMG_UINT32 ui32AreaFlags);
-
-
-IMG_VOID FreeAllocPagesLinuxMemArea(LinuxMemArea *psLinuxMemArea);
-
-
-LinuxMemArea *NewSubLinuxMemArea(LinuxMemArea *psParentLinuxMemArea,
-                                 IMG_UINT32 ui32ByteOffset,
-                                 IMG_UINT32 ui32Bytes);
-
-
-IMG_VOID LinuxMemAreaDeepFree(LinuxMemArea *psLinuxMemArea);
-
-
-#if defined(LINUX_MEM_AREAS_DEBUG)
-IMG_VOID LinuxMemAreaRegister(LinuxMemArea *psLinuxMemArea);
-#else
-#define LinuxMemAreaRegister(X)
-#endif
-
-
-IMG_VOID *LinuxMemAreaToCpuVAddr(LinuxMemArea *psLinuxMemArea);
-
-
-IMG_CPU_PHYADDR LinuxMemAreaToCpuPAddr(LinuxMemArea *psLinuxMemArea, IMG_UINT32 ui32ByteOffset);
-
-
-#define	 LinuxMemAreaToCpuPFN(psLinuxMemArea, ui32ByteOffset) PHYS_TO_PFN(LinuxMemAreaToCpuPAddr(psLinuxMemArea, ui32ByteOffset).uiAddr)
-
-IMG_BOOL LinuxMemAreaPhysIsContig(LinuxMemArea *psLinuxMemArea);
-
-static inline LinuxMemArea *
-LinuxMemAreaRoot(LinuxMemArea *psLinuxMemArea)
-{
-    if(psLinuxMemArea->eAreaType == LINUX_MEM_AREA_SUB_ALLOC)
-    {
-        return psLinuxMemArea->uData.sSubAlloc.psParentLinuxMemArea;
-    }
-    else
-    {
-        return psLinuxMemArea;
-    }
-}
-
-
-static inline LINUX_MEM_AREA_TYPE
-LinuxMemAreaRootType(LinuxMemArea *psLinuxMemArea)
-{
-    return LinuxMemAreaRoot(psLinuxMemArea)->eAreaType;
-}
-
-
-const IMG_CHAR *LinuxMemAreaTypeToString(LINUX_MEM_AREA_TYPE eMemAreaType);
-
-
-#if defined(DEBUG) || defined(DEBUG_LINUX_MEM_AREAS)
-const IMG_CHAR *HAPFlagsToString(IMG_UINT32 ui32Flags);
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mmap.c b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mmap.c
deleted file mode 100644
index 00c8b9d..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mmap.c
+++ /dev/null
@@ -1,1151 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <linux/version.h>
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38))
-#ifndef AUTOCONF_INCLUDED
-#include <linux/config.h>
-#endif
-#endif
-
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/vmalloc.h>
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
-#include <linux/wrapper.h>
-#endif
-#include <linux/slab.h>
-#include <asm/io.h>
-#include <asm/page.h>
-#include <asm/shmparam.h>
-#include <asm/pgtable.h>
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22))
-#include <linux/sched.h>
-#include <asm/current.h>
-#endif
-#if defined(SUPPORT_DRI_DRM)
-#include <drm/drmP.h>
-#endif
-
-#include "img_defs.h"
-#include "services.h"
-#include "servicesint.h"
-#include "pvrmmap.h"
-#include "mutils.h"
-#include "mmap.h"
-#include "mm.h"
-#include "pvr_debug.h"
-#include "osfunc.h"
-#include "proc.h"
-#include "mutex.h"
-#include "handle.h"
-#include "perproc.h"
-#include "env_perproc.h"
-#include "bridged_support.h"
-#if defined(SUPPORT_DRI_DRM)
-#include "pvr_drm.h"
-#endif
-
-#if !defined(PVR_SECURE_HANDLES) && !defined (SUPPORT_SID_INTERFACE)
-#error "The mmap code requires PVR_SECURE_HANDLES"
-#endif
-
-static PVRSRV_LINUX_MUTEX g_sMMapMutex;
-
-static LinuxKMemCache *g_psMemmapCache = NULL;
-static LIST_HEAD(g_sMMapAreaList);
-static LIST_HEAD(g_sMMapOffsetStructList);
-#if defined(DEBUG_LINUX_MMAP_AREAS)
-static IMG_UINT32 g_ui32RegisteredAreas = 0;
-static IMG_UINT32 g_ui32TotalByteSize = 0;
-#endif
-
-
-#if defined(DEBUG_LINUX_MMAP_AREAS)
-static struct proc_dir_entry *g_ProcMMap;
-#endif 
-
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-#define MMAP2_PGOFF_RESOLUTION (32-PAGE_SHIFT+12)
-#define RESERVED_PGOFF_BITS 1
-#define	MAX_MMAP_HANDLE		((1UL<<(MMAP2_PGOFF_RESOLUTION-RESERVED_PGOFF_BITS))-1)
-
-#define	FIRST_PHYSICAL_PFN	0
-#define	LAST_PHYSICAL_PFN	(FIRST_PHYSICAL_PFN + MAX_MMAP_HANDLE)
-#define	FIRST_SPECIAL_PFN	(LAST_PHYSICAL_PFN + 1)
-#define	LAST_SPECIAL_PFN	(FIRST_SPECIAL_PFN + MAX_MMAP_HANDLE)
-
-#else	
-
-#if PAGE_SHIFT != 12
-#error This build variant has not yet been made non-4KB page-size aware
-#endif
-
-#if defined(PVR_MMAP_OFFSET_BASE)
-#define	FIRST_SPECIAL_PFN 	PVR_MMAP_OFFSET_BASE
-#else
-#define	FIRST_SPECIAL_PFN	0x80000000UL
-#endif
-
-#if defined(PVR_NUM_MMAP_HANDLES)
-#define	MAX_MMAP_HANDLE		PVR_NUM_MMAP_HANDLES
-#else
-#define	MAX_MMAP_HANDLE		0x7fffffffUL
-#endif
-
-#endif	
-
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-static inline IMG_BOOL
-PFNIsPhysical(IMG_UINT32 pfn)
-{
-	
-	return ( (pfn <= LAST_PHYSICAL_PFN)) ? IMG_TRUE : IMG_FALSE;
-}
-
-static inline IMG_BOOL
-PFNIsSpecial(IMG_UINT32 pfn)
-{
-	
-	return ((pfn >= FIRST_SPECIAL_PFN) ) ? IMG_TRUE : IMG_FALSE;
-}
-#endif
-
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-static inline IMG_HANDLE
-MMapOffsetToHandle(IMG_UINT32 pfn)
-{
-	if (PFNIsPhysical(pfn))
-	{
-		PVR_ASSERT(PFNIsPhysical(pfn));
-		return IMG_NULL;
-	}
-	return (IMG_HANDLE)(pfn - FIRST_SPECIAL_PFN);
-}
-#endif
-
-static inline IMG_UINT32
-#if defined (SUPPORT_SID_INTERFACE)
-HandleToMMapOffset(IMG_SID hHandle)
-#else
-HandleToMMapOffset(IMG_HANDLE hHandle)
-#endif
-{
-	IMG_UINT32 ulHandle = (IMG_UINT32)hHandle;
-
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-	if (PFNIsSpecial(ulHandle))
-	{
-		PVR_ASSERT(PFNIsSpecial(ulHandle));
-		return 0;
-	}
-#endif
-	return ulHandle + FIRST_SPECIAL_PFN;
-}
-
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-static inline IMG_BOOL
-LinuxMemAreaUsesPhysicalMap(LinuxMemArea *psLinuxMemArea)
-{
-    return LinuxMemAreaPhysIsContig(psLinuxMemArea);
-}
-#endif
-
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-static inline IMG_UINT32
-GetCurrentThreadID(IMG_VOID)
-{
-	
-	return (IMG_UINT32)current->pid;
-}
-#endif
-
-static PKV_OFFSET_STRUCT
-CreateOffsetStruct(LinuxMemArea *psLinuxMemArea, IMG_UINT32 ui32Offset, IMG_UINT32 ui32RealByteSize)
-{
-    PKV_OFFSET_STRUCT psOffsetStruct;
-#if defined(DEBUG) || defined(DEBUG_LINUX_MMAP_AREAS)
-    const IMG_CHAR *pszName = LinuxMemAreaTypeToString(LinuxMemAreaRootType(psLinuxMemArea));
-#endif
-
-#if defined(DEBUG) || defined(DEBUG_LINUX_MMAP_AREAS)
-    PVR_DPF((PVR_DBG_MESSAGE,
-             "%s(%s, psLinuxMemArea: 0x%p, ui32AllocFlags: 0x%8x)",
-             __FUNCTION__, pszName, psLinuxMemArea, psLinuxMemArea->ui32AreaFlags));
-#endif
-
-    PVR_ASSERT(psLinuxMemArea->eAreaType != LINUX_MEM_AREA_SUB_ALLOC || LinuxMemAreaRoot(psLinuxMemArea)->eAreaType != LINUX_MEM_AREA_SUB_ALLOC);
-
-    PVR_ASSERT(psLinuxMemArea->bMMapRegistered);
-
-    psOffsetStruct = KMemCacheAllocWrapper(g_psMemmapCache, GFP_KERNEL);
-    if(psOffsetStruct == IMG_NULL)
-    {
-        PVR_DPF((PVR_DBG_ERROR,"PVRMMapRegisterArea: Couldn't alloc another mapping record from cache"));
-        return IMG_NULL;
-    }
-    
-    psOffsetStruct->ui32MMapOffset = ui32Offset;
-
-    psOffsetStruct->psLinuxMemArea = psLinuxMemArea;
-
-    psOffsetStruct->ui32RealByteSize = ui32RealByteSize;
-
-    
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-    psOffsetStruct->ui32TID = GetCurrentThreadID();
-#endif
-    psOffsetStruct->ui32PID = OSGetCurrentProcessIDKM();
-
-#if defined(DEBUG_LINUX_MMAP_AREAS)
-    
-    psOffsetStruct->pszName = pszName;
-#endif
-
-    list_add_tail(&psOffsetStruct->sAreaItem, &psLinuxMemArea->sMMapOffsetStructList);
-
-    return psOffsetStruct;
-}
-
-
-static IMG_VOID
-DestroyOffsetStruct(PKV_OFFSET_STRUCT psOffsetStruct)
-{
-#ifdef DEBUG
-    IMG_CPU_PHYADDR CpuPAddr;
-    CpuPAddr = LinuxMemAreaToCpuPAddr(psOffsetStruct->psLinuxMemArea, 0);
-#endif
-
-    list_del(&psOffsetStruct->sAreaItem);
-
-    if (psOffsetStruct->bOnMMapList)
-    {
-        list_del(&psOffsetStruct->sMMapItem);
-    }
-
-#ifdef DEBUG
-    PVR_DPF((PVR_DBG_MESSAGE, "%s: Table entry: "
-             "psLinuxMemArea=%p, CpuPAddr=0x%08X", __FUNCTION__,
-             psOffsetStruct->psLinuxMemArea,
-             CpuPAddr.uiAddr));
-#endif
-    
-    KMemCacheFreeWrapper(g_psMemmapCache, psOffsetStruct);
-}
-
-
-static inline IMG_VOID
-DetermineUsersSizeAndByteOffset(LinuxMemArea *psLinuxMemArea,
-                               IMG_UINT32 *pui32RealByteSize,
-                               IMG_UINT32 *pui32ByteOffset)
-{
-    IMG_UINT32 ui32PageAlignmentOffset;
-    IMG_CPU_PHYADDR CpuPAddr;
-    
-    CpuPAddr = LinuxMemAreaToCpuPAddr(psLinuxMemArea, 0);
-    ui32PageAlignmentOffset = ADDR_TO_PAGE_OFFSET(CpuPAddr.uiAddr);
-    
-    *pui32ByteOffset = ui32PageAlignmentOffset;
-
-    *pui32RealByteSize = PAGE_ALIGN(psLinuxMemArea->ui32ByteSize + ui32PageAlignmentOffset);
-}
-
-
-PVRSRV_ERROR
-PVRMMapOSMemHandleToMMapData(PVRSRV_PER_PROCESS_DATA *psPerProc,
-#if defined (SUPPORT_SID_INTERFACE)
-                             IMG_SID     hMHandle,
-#else
-                             IMG_HANDLE hMHandle,
-#endif
-                             IMG_UINT32 *pui32MMapOffset,
-                             IMG_UINT32 *pui32ByteOffset,
-                             IMG_UINT32 *pui32RealByteSize,
-                             IMG_UINT32 *pui32UserVAddr)
-{
-    LinuxMemArea *psLinuxMemArea;
-    PKV_OFFSET_STRUCT psOffsetStruct;
-    IMG_HANDLE hOSMemHandle;
-    PVRSRV_ERROR eError;
-
-    LinuxLockMutex(&g_sMMapMutex);
-
-    PVR_ASSERT(PVRSRVGetMaxHandle(psPerProc->psHandleBase) <= MAX_MMAP_HANDLE);
-
-    eError = PVRSRVLookupOSMemHandle(psPerProc->psHandleBase, &hOSMemHandle, hMHandle);
-    if (eError != PVRSRV_OK)
-    {
-#if defined (SUPPORT_SID_INTERFACE)
-        PVR_DPF((PVR_DBG_ERROR, "%s: Lookup of handle %x failed", __FUNCTION__, hMHandle));
-#else
-        PVR_DPF((PVR_DBG_ERROR, "%s: Lookup of handle %p failed", __FUNCTION__, hMHandle));
-#endif
-
-        goto exit_unlock;
-    }
-
-    psLinuxMemArea = (LinuxMemArea *)hOSMemHandle;
-
-    DetermineUsersSizeAndByteOffset(psLinuxMemArea,
-                                   pui32RealByteSize,
-                                   pui32ByteOffset);
-
-    
-    list_for_each_entry(psOffsetStruct, &psLinuxMemArea->sMMapOffsetStructList, sAreaItem)
-    {
-        if (psPerProc->ui32PID == psOffsetStruct->ui32PID)
-        {
-
-	   PVR_ASSERT(*pui32RealByteSize == psOffsetStruct->ui32RealByteSize);
-	   
-	   *pui32MMapOffset = psOffsetStruct->ui32MMapOffset;
-	   *pui32UserVAddr = psOffsetStruct->ui32UserVAddr;
-	   psOffsetStruct->ui32RefCount++;
-
-	   eError = PVRSRV_OK;
-	   goto exit_unlock;
-        }
-    }
-
-    
-    *pui32UserVAddr = 0;
-
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-    if (LinuxMemAreaUsesPhysicalMap(psLinuxMemArea))
-    {
-        *pui32MMapOffset = LinuxMemAreaToCpuPFN(psLinuxMemArea, 0);
-        PVR_ASSERT(PFNIsPhysical(*pui32MMapOffset));
-    }
-    else
-#endif
-    {
-        *pui32MMapOffset = HandleToMMapOffset(hMHandle);
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-        PVR_ASSERT(PFNIsSpecial(*pui32MMapOffset));
-#endif
-    }
-
-    psOffsetStruct = CreateOffsetStruct(psLinuxMemArea, *pui32MMapOffset, *pui32RealByteSize);
-    if (psOffsetStruct == IMG_NULL)
-    {
-        eError = PVRSRV_ERROR_OUT_OF_MEMORY;
-	goto exit_unlock;
-    }
-
-    
-    list_add_tail(&psOffsetStruct->sMMapItem, &g_sMMapOffsetStructList);
-
-    psOffsetStruct->bOnMMapList = IMG_TRUE;
-
-    psOffsetStruct->ui32RefCount++;
-
-    eError = PVRSRV_OK;
-
-	
-
-
-	*pui32MMapOffset = *pui32MMapOffset << (PAGE_SHIFT - 12);
-
-exit_unlock:
-    LinuxUnLockMutex(&g_sMMapMutex);
-
-    return eError;
-}
-
-
-PVRSRV_ERROR
-PVRMMapReleaseMMapData(PVRSRV_PER_PROCESS_DATA *psPerProc,
-#if defined (SUPPORT_SID_INTERFACE)
-				IMG_SID   hMHandle,
-#else
-				IMG_HANDLE hMHandle,
-#endif
-				IMG_BOOL *pbMUnmap,
-				IMG_UINT32 *pui32RealByteSize,
-                                IMG_UINT32 *pui32UserVAddr)
-{
-    LinuxMemArea *psLinuxMemArea;
-    PKV_OFFSET_STRUCT psOffsetStruct;
-    IMG_HANDLE hOSMemHandle;
-    PVRSRV_ERROR eError;
-    IMG_UINT32 ui32PID = OSGetCurrentProcessIDKM();
-
-    LinuxLockMutex(&g_sMMapMutex);
-
-    PVR_ASSERT(PVRSRVGetMaxHandle(psPerProc->psHandleBase) <= MAX_MMAP_HANDLE);
-
-    eError = PVRSRVLookupOSMemHandle(psPerProc->psHandleBase, &hOSMemHandle, hMHandle);
-    if (eError != PVRSRV_OK)
-    {
-#if defined (SUPPORT_SID_INTERFACE)
-	PVR_DPF((PVR_DBG_ERROR, "%s: Lookup of handle %x failed", __FUNCTION__, hMHandle));
-#else
-	PVR_DPF((PVR_DBG_ERROR, "%s: Lookup of handle %p failed", __FUNCTION__, hMHandle));
-#endif
-
-	goto exit_unlock;
-    }
-
-    psLinuxMemArea = (LinuxMemArea *)hOSMemHandle;
-
-    
-    list_for_each_entry(psOffsetStruct, &psLinuxMemArea->sMMapOffsetStructList, sAreaItem)
-    {
-        if (psOffsetStruct->ui32PID == ui32PID)
-        {
-	    if (psOffsetStruct->ui32RefCount == 0)
-	    {
-		PVR_DPF((PVR_DBG_ERROR, "%s: Attempt to release mmap data with zero reference count for offset struct 0x%p, memory area %p", __FUNCTION__, psOffsetStruct, psLinuxMemArea));
-		eError = PVRSRV_ERROR_STILL_MAPPED;
-		goto exit_unlock;
-	    }
-
-	    psOffsetStruct->ui32RefCount--;
-
-	    *pbMUnmap = (IMG_BOOL)((psOffsetStruct->ui32RefCount == 0) && (psOffsetStruct->ui32UserVAddr != 0));
-
-	    *pui32UserVAddr = (*pbMUnmap) ? psOffsetStruct->ui32UserVAddr : 0;
-	    *pui32RealByteSize = (*pbMUnmap) ? psOffsetStruct->ui32RealByteSize : 0;
-
-	    eError = PVRSRV_OK;
-	    goto exit_unlock;
-        }
-    }
-
-    
-#if defined (SUPPORT_SID_INTERFACE)
-    PVR_DPF((PVR_DBG_ERROR, "%s: Mapping data not found for handle %x (memory area %p)", __FUNCTION__, hMHandle, psLinuxMemArea));
-#else
-    PVR_DPF((PVR_DBG_ERROR, "%s: Mapping data not found for handle %p (memory area %p)", __FUNCTION__, hMHandle, psLinuxMemArea));
-#endif
-
-    eError =  PVRSRV_ERROR_MAPPING_NOT_FOUND;
-
-exit_unlock:
-    LinuxUnLockMutex(&g_sMMapMutex);
-
-    return eError;
-}
-
-static inline PKV_OFFSET_STRUCT
-FindOffsetStructByOffset(IMG_UINT32 ui32Offset, IMG_UINT32 ui32RealByteSize)
-{
-    PKV_OFFSET_STRUCT psOffsetStruct;
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-    IMG_UINT32 ui32TID = GetCurrentThreadID();
-#endif
-    IMG_UINT32 ui32PID = OSGetCurrentProcessIDKM();
-
-    list_for_each_entry(psOffsetStruct, &g_sMMapOffsetStructList, sMMapItem)
-    {
-        if (ui32Offset == psOffsetStruct->ui32MMapOffset && ui32RealByteSize == psOffsetStruct->ui32RealByteSize && psOffsetStruct->ui32PID == ui32PID)
-        {
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-	    
-	    if (!PFNIsPhysical(ui32Offset) || psOffsetStruct->ui32TID == ui32TID)
-#endif
-	    {
-	        return psOffsetStruct;
-	    }
-        }
-    }
-
-    return IMG_NULL;
-}
-
-
-static IMG_BOOL
-DoMapToUser(LinuxMemArea *psLinuxMemArea,
-            struct vm_area_struct* ps_vma,
-            IMG_UINT32 ui32ByteOffset)
-{
-    IMG_UINT32 ui32ByteSize;
-
-    if (psLinuxMemArea->eAreaType == LINUX_MEM_AREA_SUB_ALLOC)
-    {
-        return DoMapToUser(LinuxMemAreaRoot(psLinuxMemArea),		 
-                    ps_vma,
-                    psLinuxMemArea->uData.sSubAlloc.ui32ByteOffset + ui32ByteOffset);
-    }
-
-    
-    ui32ByteSize = ps_vma->vm_end - ps_vma->vm_start;
-    PVR_ASSERT(ADDR_TO_PAGE_OFFSET(ui32ByteSize) == 0);
-
-#if defined (__sparc__)
-    
-#error "SPARC not supported"
-#endif
-
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-    if (PFNIsPhysical(ps_vma->vm_pgoff))
-    {
-	IMG_INT result;
-
-	PVR_ASSERT(LinuxMemAreaPhysIsContig(psLinuxMemArea));
-	PVR_ASSERT(LinuxMemAreaToCpuPFN(psLinuxMemArea, ui32ByteOffset) == ps_vma->vm_pgoff);
-        
-	result = IO_REMAP_PFN_RANGE(ps_vma, ps_vma->vm_start, ps_vma->vm_pgoff, ui32ByteSize, ps_vma->vm_page_prot);
-
-        if(result == 0)
-        {
-            return IMG_TRUE;
-        }
-
-        PVR_DPF((PVR_DBG_MESSAGE, "%s: Failed to map contiguous physical address range (%d), trying non-contiguous path", __FUNCTION__, result));
-    }
-#endif
-
-    {
-        
-        IMG_UINT32 ulVMAPos;
-	IMG_UINT32 ui32ByteEnd = ui32ByteOffset + ui32ByteSize;
-	IMG_UINT32 ui32PA;
-#if defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-	IMG_BOOL bMixedMap = IMG_FALSE;
-#endif
-	
-	for(ui32PA = ui32ByteOffset; ui32PA < ui32ByteEnd; ui32PA += PAGE_SIZE)
-	{
-	    IMG_UINT32 pfn =  LinuxMemAreaToCpuPFN(psLinuxMemArea, ui32PA);
-
-	    if (!pfn_valid(pfn))
-	    {
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-                PVR_DPF((PVR_DBG_ERROR,"%s: Error - PFN invalid: 0x%x", __FUNCTION__, pfn));
-                return IMG_FALSE;
-#else
-		bMixedMap = IMG_TRUE;
-#endif
-	    }
-	}
-
-#if defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-	if (bMixedMap)
-	{
-            ps_vma->vm_flags |= VM_MIXEDMAP;
-	}
-#endif
-	
-        ulVMAPos = ps_vma->vm_start;
-	for(ui32PA = ui32ByteOffset; ui32PA < ui32ByteEnd; ui32PA += PAGE_SIZE)
-	{
-	    IMG_UINT32 pfn;
-	    IMG_INT result;
-
-	    pfn =  LinuxMemAreaToCpuPFN(psLinuxMemArea, ui32PA);
-
-#if defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-	    if (bMixedMap)
-	    {
-		result = vm_insert_mixed(ps_vma, ulVMAPos, pfn);
-                if(result != 0)
-                {
-                    PVR_DPF((PVR_DBG_ERROR,"%s: Error - vm_insert_mixed failed (%d)", __FUNCTION__, result));
-                    return IMG_FALSE;
-                }
-	    }
-	    else
-#endif
-	    {
-		struct page *psPage;
-
-	        PVR_ASSERT(pfn_valid(pfn));
-
-	        psPage = pfn_to_page(pfn);
-
-	        result = VM_INSERT_PAGE(ps_vma,  ulVMAPos, psPage);
-                if(result != 0)
-                {
-                    PVR_DPF((PVR_DBG_ERROR,"%s: Error - VM_INSERT_PAGE failed (%d)", __FUNCTION__, result));
-                    return IMG_FALSE;
-                }
-	    }
-            ulVMAPos += PAGE_SIZE;
-        }
-    }
-
-    return IMG_TRUE;
-}
-
-
-static IMG_VOID
-MMapVOpenNoLock(struct vm_area_struct* ps_vma)
-{
-    PKV_OFFSET_STRUCT psOffsetStruct = (PKV_OFFSET_STRUCT)ps_vma->vm_private_data;
-    PVR_ASSERT(psOffsetStruct != IMG_NULL)
-    psOffsetStruct->ui32Mapped++;
-    PVR_ASSERT(!psOffsetStruct->bOnMMapList);
-
-    if (psOffsetStruct->ui32Mapped > 1)
-    {
-	PVR_DPF((PVR_DBG_WARNING, "%s: Offset structure 0x%p is being shared across processes (psOffsetStruct->ui32Mapped: %u)", __FUNCTION__, psOffsetStruct, psOffsetStruct->ui32Mapped));
-        PVR_ASSERT((ps_vma->vm_flags & VM_DONTCOPY) == 0);
-    }
-
-#if defined(DEBUG_LINUX_MMAP_AREAS)
-
-    PVR_DPF((PVR_DBG_MESSAGE,
-             "%s: psLinuxMemArea 0x%p, KVAddress 0x%p MMapOffset %d, ui32Mapped %d",
-             __FUNCTION__,
-             psOffsetStruct->psLinuxMemArea,
-             LinuxMemAreaToCpuVAddr(psOffsetStruct->psLinuxMemArea),
-             psOffsetStruct->ui32MMapOffset,
-             psOffsetStruct->ui32Mapped));
-#endif
-}
-
-
-static void
-MMapVOpen(struct vm_area_struct* ps_vma)
-{
-    LinuxLockMutex(&g_sMMapMutex);
-
-    MMapVOpenNoLock(ps_vma);
-
-    LinuxUnLockMutex(&g_sMMapMutex);
-}
-
-
-static IMG_VOID
-MMapVCloseNoLock(struct vm_area_struct* ps_vma)
-{
-    PKV_OFFSET_STRUCT psOffsetStruct = (PKV_OFFSET_STRUCT)ps_vma->vm_private_data;
-    PVR_ASSERT(psOffsetStruct != IMG_NULL)
-
-#if defined(DEBUG_LINUX_MMAP_AREAS)
-    PVR_DPF((PVR_DBG_MESSAGE,
-             "%s: psLinuxMemArea %p, CpuVAddr %p ui32MMapOffset %d, ui32Mapped %d",
-             __FUNCTION__,
-             psOffsetStruct->psLinuxMemArea,
-             LinuxMemAreaToCpuVAddr(psOffsetStruct->psLinuxMemArea),
-             psOffsetStruct->ui32MMapOffset,
-             psOffsetStruct->ui32Mapped));
-#endif
-
-    PVR_ASSERT(!psOffsetStruct->bOnMMapList);
-    psOffsetStruct->ui32Mapped--;
-    if (psOffsetStruct->ui32Mapped == 0)
-    {
-	if (psOffsetStruct->ui32RefCount != 0)
-	{
-	        PVR_DPF((PVR_DBG_MESSAGE, "%s: psOffsetStruct %p has non-zero reference count (ui32RefCount = %u). User mode address of start of mapping: 0x%x", __FUNCTION__, psOffsetStruct, psOffsetStruct->ui32RefCount, psOffsetStruct->ui32UserVAddr));
-	}
-
-	DestroyOffsetStruct(psOffsetStruct);
-    }
-
-    ps_vma->vm_private_data = NULL;
-}
-
-static void
-MMapVClose(struct vm_area_struct* ps_vma)
-{
-    LinuxLockMutex(&g_sMMapMutex);
-
-    MMapVCloseNoLock(ps_vma);
-
-    LinuxUnLockMutex(&g_sMMapMutex);
-}
-
-
-static struct vm_operations_struct MMapIOOps =
-{
-	.open=MMapVOpen,
-	.close=MMapVClose
-};
-
-
-int
-PVRMMap(struct file* pFile, struct vm_area_struct* ps_vma)
-{
-    IMG_UINT32 ui32ByteSize;
-    PKV_OFFSET_STRUCT psOffsetStruct;
-    int iRetVal = 0;
-
-    PVR_UNREFERENCED_PARAMETER(pFile);
-
-    LinuxLockMutex(&g_sMMapMutex);
-    
-    ui32ByteSize = ps_vma->vm_end - ps_vma->vm_start;
-    
-    PVR_DPF((PVR_DBG_MESSAGE, "%s: Received mmap(2) request with ui32MMapOffset 0x%08lx,"
-                              " and ui32ByteSize %d(0x%08x)",
-            __FUNCTION__,
-            ps_vma->vm_pgoff,
-            ui32ByteSize, ui32ByteSize));
-   
-    psOffsetStruct = FindOffsetStructByOffset(ps_vma->vm_pgoff, ui32ByteSize);
-    if (psOffsetStruct == IMG_NULL)
-    {
-#if defined(SUPPORT_DRI_DRM)
-        LinuxUnLockMutex(&g_sMMapMutex);
-
-#if !defined(SUPPORT_DRI_DRM_EXT)
-	
-        return drm_mmap(pFile, ps_vma);
-#else
-	
-	return -ENOENT;
-#endif
-#else
-        PVR_UNREFERENCED_PARAMETER(pFile);
-
-        PVR_DPF((PVR_DBG_ERROR,
-             "%s: Attempted to mmap unregistered area at vm_pgoff 0x%lx",
-             __FUNCTION__, ps_vma->vm_pgoff));
-        iRetVal = -EINVAL;
-#endif
-        goto unlock_and_return;
-    }
-    list_del(&psOffsetStruct->sMMapItem);
-    psOffsetStruct->bOnMMapList = IMG_FALSE;
-
-    
-    if (((ps_vma->vm_flags & VM_WRITE) != 0) &&
-        ((ps_vma->vm_flags & VM_SHARED) == 0))
-    {
-        PVR_DPF((PVR_DBG_ERROR, "%s: Cannot mmap non-shareable writable areas", __FUNCTION__));
-        iRetVal = -EINVAL;
-        goto unlock_and_return;
-    }
-   
-    PVR_DPF((PVR_DBG_MESSAGE, "%s: Mapped psLinuxMemArea 0x%p\n",
-         __FUNCTION__, psOffsetStruct->psLinuxMemArea));
-
-    ps_vma->vm_flags |= VM_RESERVED;
-    ps_vma->vm_flags |= VM_IO;
-
-    
-    ps_vma->vm_flags |= VM_DONTEXPAND;
-    
-    
-    ps_vma->vm_flags |= VM_DONTCOPY;
-
-    ps_vma->vm_private_data = (void *)psOffsetStruct;
-    
-    switch(psOffsetStruct->psLinuxMemArea->ui32AreaFlags & PVRSRV_HAP_CACHETYPE_MASK)
-    {
-        case PVRSRV_HAP_CACHED:
-            
-            break;
-        case PVRSRV_HAP_WRITECOMBINE:
-	    ps_vma->vm_page_prot = PGPROT_WC(ps_vma->vm_page_prot);
-            break;
-        case PVRSRV_HAP_UNCACHED:
-            ps_vma->vm_page_prot = PGPROT_UC(ps_vma->vm_page_prot);
-            break;
-        default:
-            PVR_DPF((PVR_DBG_ERROR, "%s: unknown cache type", __FUNCTION__));
-	    iRetVal = -EINVAL;
-	    goto unlock_and_return;
-    }
-    
-    
-    ps_vma->vm_ops = &MMapIOOps;
-    
-    if(!DoMapToUser(psOffsetStruct->psLinuxMemArea, ps_vma, 0))
-    {
-        iRetVal = -EAGAIN;
-        goto unlock_and_return;
-    }
-    
-    PVR_ASSERT(psOffsetStruct->ui32UserVAddr == 0)
-
-    psOffsetStruct->ui32UserVAddr = ps_vma->vm_start;
-
-    
-    if(psOffsetStruct->psLinuxMemArea->bNeedsCacheInvalidate)
-    {
-        IMG_UINT32 ui32RealByteSize, ui32ByteOffset;
-        IMG_VOID *pvBase;
-
-        DetermineUsersSizeAndByteOffset(psOffsetStruct->psLinuxMemArea,
-                                        &ui32RealByteSize,
-                                        &ui32ByteOffset);
-
-        ui32RealByteSize = psOffsetStruct->psLinuxMemArea->ui32ByteSize;
-        pvBase = (IMG_VOID *)ps_vma->vm_start + ui32ByteOffset;
-
-        OSInvalidateCPUCacheRangeKM(psOffsetStruct->psLinuxMemArea,
-                                    pvBase, ui32RealByteSize);
-        psOffsetStruct->psLinuxMemArea->bNeedsCacheInvalidate = IMG_FALSE;
-    }
-
-    
-    MMapVOpenNoLock(ps_vma);
-    
-    PVR_DPF((PVR_DBG_MESSAGE, "%s: Mapped area at offset 0x%08lx\n",
-             __FUNCTION__, ps_vma->vm_pgoff));
-    
-unlock_and_return:
-    if (iRetVal != 0 && psOffsetStruct != IMG_NULL)
-    {
-	DestroyOffsetStruct(psOffsetStruct);
-    }
-
-    LinuxUnLockMutex(&g_sMMapMutex);
-    
-    return iRetVal;
-}
-
-
-#if defined(DEBUG_LINUX_MMAP_AREAS)
-
-static void ProcSeqStartstopMMapRegistations(struct seq_file *sfile,IMG_BOOL start) 
-{
-	if(start) 
-	{
-	    LinuxLockMutex(&g_sMMapMutex);		
-	}
-	else
-	{
-	    LinuxUnLockMutex(&g_sMMapMutex);
-	}
-}
-
-
-static void* ProcSeqOff2ElementMMapRegistrations(struct seq_file *sfile, loff_t off)
-{
-    LinuxMemArea *psLinuxMemArea;
-	if(!off) 
-	{
-		return PVR_PROC_SEQ_START_TOKEN;
-	}
-
-    list_for_each_entry(psLinuxMemArea, &g_sMMapAreaList, sMMapItem)
-    {
-        PKV_OFFSET_STRUCT psOffsetStruct;
-
-	 	list_for_each_entry(psOffsetStruct, &psLinuxMemArea->sMMapOffsetStructList, sAreaItem)
-        {
-	    	off--;
-	    	if (off == 0)
-	    	{				
-				PVR_ASSERT(psOffsetStruct->psLinuxMemArea == psLinuxMemArea);
-				return (void*)psOffsetStruct;
-		    }
-        }
-    }
-	return (void*)0;
-}
-
-static void* ProcSeqNextMMapRegistrations(struct seq_file *sfile,void* el,loff_t off)
-{
-	return ProcSeqOff2ElementMMapRegistrations(sfile,off);
-}
-
-
-static void ProcSeqShowMMapRegistrations(struct seq_file *sfile, void *el)
-{
-	KV_OFFSET_STRUCT *psOffsetStruct = (KV_OFFSET_STRUCT*)el;
-    LinuxMemArea *psLinuxMemArea;
-	IMG_UINT32 ui32RealByteSize;
-	IMG_UINT32 ui32ByteOffset;
-
-	if(el == PVR_PROC_SEQ_START_TOKEN) 
-	{
-        seq_printf( sfile,
-#if !defined(DEBUG_LINUX_XML_PROC_FILES)
-						  "Allocations registered for mmap: %u\n"
-                          "In total these areas correspond to %u bytes\n"
-                          "psLinuxMemArea "
-						  "UserVAddr "
-						  "KernelVAddr "
-						  "CpuPAddr "
-                          "MMapOffset "
-                          "ByteLength "
-                          "LinuxMemType             "
-						  "Pid   Name     Flags\n",
-#else
-                          "<mmap_header>\n"
-                          "\t<count>%u</count>\n"
-                          "\t<bytes>%u</bytes>\n"
-                          "</mmap_header>\n",
-#endif
-						  g_ui32RegisteredAreas,
-                          g_ui32TotalByteSize
-                          );
-		return;
-	}
-
-   	psLinuxMemArea = psOffsetStruct->psLinuxMemArea;
-
-	DetermineUsersSizeAndByteOffset(psLinuxMemArea,
-									&ui32RealByteSize,
-									&ui32ByteOffset);
-
-	seq_printf( sfile,
-#if !defined(DEBUG_LINUX_XML_PROC_FILES)
-						"%-8p       %08x %-8p %08x %08x   %-8d   %-24s %-5u %-8s %08x(%s)\n",
-#else
-                        "<mmap_record>\n"
-						"\t<pointer>%-8p</pointer>\n"
-                        "\t<user_virtual>%-8x</user_virtual>\n"
-                        "\t<kernel_virtual>%-8p</kernel_virtual>\n"
-                        "\t<cpu_physical>%08x</cpu_physical>\n"
-                        "\t<mmap_offset>%08x</mmap_offset>\n"
-                        "\t<bytes>%-8d</bytes>\n"
-                        "\t<linux_mem_area_type>%-24s</linux_mem_area_type>\n"
-                        "\t<pid>%-5u</pid>\n"
-                        "\t<name>%-8s</name>\n"
-                        "\t<flags>%08x</flags>\n"
-                        "\t<flags_string>%s</flags_string>\n"
-                        "</mmap_record>\n",
-#endif
-                        psLinuxMemArea,
-						psOffsetStruct->ui32UserVAddr + ui32ByteOffset,
-						LinuxMemAreaToCpuVAddr(psLinuxMemArea),
-                        LinuxMemAreaToCpuPAddr(psLinuxMemArea,0).uiAddr,
-						psOffsetStruct->ui32MMapOffset,
-						psLinuxMemArea->ui32ByteSize,
-                        LinuxMemAreaTypeToString(psLinuxMemArea->eAreaType),
-						psOffsetStruct->ui32PID,
-						psOffsetStruct->pszName,
-						psLinuxMemArea->ui32AreaFlags,
-                        HAPFlagsToString(psLinuxMemArea->ui32AreaFlags));
-}
-
-#endif
-
-
-PVRSRV_ERROR
-PVRMMapRegisterArea(LinuxMemArea *psLinuxMemArea)
-{
-    PVRSRV_ERROR eError;
-#if defined(DEBUG) || defined(DEBUG_LINUX_MMAP_AREAS)
-    const IMG_CHAR *pszName = LinuxMemAreaTypeToString(LinuxMemAreaRootType(psLinuxMemArea));
-#endif
-
-    LinuxLockMutex(&g_sMMapMutex);
-
-#if defined(DEBUG) || defined(DEBUG_LINUX_MMAP_AREAS)
-    PVR_DPF((PVR_DBG_MESSAGE,
-             "%s(%s, psLinuxMemArea 0x%p, ui32AllocFlags 0x%8x)",
-             __FUNCTION__, pszName, psLinuxMemArea,  psLinuxMemArea->ui32AreaFlags));
-#endif
-
-    PVR_ASSERT(psLinuxMemArea->eAreaType != LINUX_MEM_AREA_SUB_ALLOC || LinuxMemAreaRoot(psLinuxMemArea)->eAreaType != LINUX_MEM_AREA_SUB_ALLOC);
-
-    
-    if(psLinuxMemArea->bMMapRegistered)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "%s: psLinuxMemArea 0x%p is already registered",
-                __FUNCTION__, psLinuxMemArea));
-        eError = PVRSRV_ERROR_INVALID_PARAMS;
-	goto exit_unlock;
-    }
-
-    list_add_tail(&psLinuxMemArea->sMMapItem, &g_sMMapAreaList);
-
-    psLinuxMemArea->bMMapRegistered = IMG_TRUE;
-
-#if defined(DEBUG_LINUX_MMAP_AREAS)
-    g_ui32RegisteredAreas++;
-    
-    if (psLinuxMemArea->eAreaType != LINUX_MEM_AREA_SUB_ALLOC)
-    {
-        g_ui32TotalByteSize += psLinuxMemArea->ui32ByteSize;
-    }
-#endif
-
-    eError = PVRSRV_OK;
-
-exit_unlock:
-    LinuxUnLockMutex(&g_sMMapMutex);
-
-    return eError;
-}
-
-
-PVRSRV_ERROR
-PVRMMapRemoveRegisteredArea(LinuxMemArea *psLinuxMemArea)
-{
-    PVRSRV_ERROR eError;
-    PKV_OFFSET_STRUCT psOffsetStruct, psTmpOffsetStruct;
-
-    LinuxLockMutex(&g_sMMapMutex);
-
-    PVR_ASSERT(psLinuxMemArea->bMMapRegistered);
-
-    list_for_each_entry_safe(psOffsetStruct, psTmpOffsetStruct, &psLinuxMemArea->sMMapOffsetStructList, sAreaItem)
-    {
-	if (psOffsetStruct->ui32Mapped != 0)
-	{
-	     PVR_DPF((PVR_DBG_ERROR, "%s: psOffsetStruct 0x%p for memory area 0x0x%p is still mapped; psOffsetStruct->ui32Mapped %u",  __FUNCTION__, psOffsetStruct, psLinuxMemArea, psOffsetStruct->ui32Mapped));
-		eError = PVRSRV_ERROR_STILL_MAPPED;
-		goto exit_unlock;
-	}
-	else
-	{
-	      
-	     PVR_DPF((PVR_DBG_WARNING, "%s: psOffsetStruct 0x%p was never mapped",  __FUNCTION__, psOffsetStruct));
-	}
-
-	PVR_ASSERT((psOffsetStruct->ui32Mapped == 0) && psOffsetStruct->bOnMMapList);
-
-	DestroyOffsetStruct(psOffsetStruct);
-    }
-
-    list_del(&psLinuxMemArea->sMMapItem);
-
-    psLinuxMemArea->bMMapRegistered = IMG_FALSE;
-
-#if defined(DEBUG_LINUX_MMAP_AREAS)
-    g_ui32RegisteredAreas--;
-    if (psLinuxMemArea->eAreaType != LINUX_MEM_AREA_SUB_ALLOC)
-    {
-        g_ui32TotalByteSize -= psLinuxMemArea->ui32ByteSize;
-    }
-#endif
-
-    eError = PVRSRV_OK;
-
-exit_unlock:
-    LinuxUnLockMutex(&g_sMMapMutex);
-    return eError;
-}
-
-
-PVRSRV_ERROR
-LinuxMMapPerProcessConnect(PVRSRV_ENV_PER_PROCESS_DATA *psEnvPerProc)
-{
-    PVR_UNREFERENCED_PARAMETER(psEnvPerProc);
-
-    return PVRSRV_OK;
-}
-
-IMG_VOID
-LinuxMMapPerProcessDisconnect(PVRSRV_ENV_PER_PROCESS_DATA *psEnvPerProc)
-{
-    PKV_OFFSET_STRUCT psOffsetStruct, psTmpOffsetStruct;
-    IMG_BOOL bWarn = IMG_FALSE;
-    IMG_UINT32 ui32PID = OSGetCurrentProcessIDKM();
-
-    PVR_UNREFERENCED_PARAMETER(psEnvPerProc);
-
-    LinuxLockMutex(&g_sMMapMutex);
-
-    list_for_each_entry_safe(psOffsetStruct, psTmpOffsetStruct, &g_sMMapOffsetStructList, sMMapItem)
-    {
-	if (psOffsetStruct->ui32PID == ui32PID)
-	{
-	    if (!bWarn)
-	    {
-		PVR_DPF((PVR_DBG_WARNING, "%s: process has unmapped offset structures. Removing them", __FUNCTION__));
-		bWarn = IMG_TRUE;
-	    }
-	    PVR_ASSERT(psOffsetStruct->ui32Mapped == 0);
-	    PVR_ASSERT(psOffsetStruct->bOnMMapList);
-
-	    DestroyOffsetStruct(psOffsetStruct);
-	}
-    }
-
-    LinuxUnLockMutex(&g_sMMapMutex);
-}
-
-
-PVRSRV_ERROR LinuxMMapPerProcessHandleOptions(PVRSRV_HANDLE_BASE *psHandleBase)
-{
-    PVRSRV_ERROR eError;
-
-    eError = PVRSRVSetMaxHandle(psHandleBase, MAX_MMAP_HANDLE);
-    if (eError != PVRSRV_OK)
-    {
-	PVR_DPF((PVR_DBG_ERROR,"%s: failed to set handle limit (%d)", __FUNCTION__, eError));
-	return eError;
-    }
-
-    return eError;
-}
-
-
-IMG_VOID
-PVRMMapInit(IMG_VOID)
-{
-    LinuxInitMutex(&g_sMMapMutex);
-
-    g_psMemmapCache = KMemCacheCreateWrapper("img-mmap", sizeof(KV_OFFSET_STRUCT), 0, 0);
-    if (!g_psMemmapCache)
-    {
-        PVR_DPF((PVR_DBG_ERROR,"%s: failed to allocate kmem_cache", __FUNCTION__));
-	goto error;
-    }
-
-#if defined(DEBUG_LINUX_MMAP_AREAS)
-	g_ProcMMap = CreateProcReadEntrySeq("mmap", NULL, 
-						  ProcSeqNextMMapRegistrations,
-						  ProcSeqShowMMapRegistrations,
-						  ProcSeqOff2ElementMMapRegistrations,
-						  ProcSeqStartstopMMapRegistations
-						 );
-#endif  
-    return;
-
-error:
-    PVRMMapCleanup();
-    return;
-}
-
-
-IMG_VOID
-PVRMMapCleanup(IMG_VOID)
-{
-    PVRSRV_ERROR eError;
-
-    if (!list_empty(&g_sMMapAreaList))
-    {
-	LinuxMemArea *psLinuxMemArea, *psTmpMemArea;
-
-	PVR_DPF((PVR_DBG_ERROR, "%s: Memory areas are still registered with MMap", __FUNCTION__));
-	
-	PVR_TRACE(("%s: Unregistering memory areas", __FUNCTION__));
- 	list_for_each_entry_safe(psLinuxMemArea, psTmpMemArea, &g_sMMapAreaList, sMMapItem)
-	{
-		eError = PVRMMapRemoveRegisteredArea(psLinuxMemArea);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "%s: PVRMMapRemoveRegisteredArea failed (%d)", __FUNCTION__, eError));
-		}
-		PVR_ASSERT(eError == PVRSRV_OK);
-
-		LinuxMemAreaDeepFree(psLinuxMemArea);
-	}
-    }
-    PVR_ASSERT(list_empty((&g_sMMapAreaList)));
-
-#if defined(DEBUG_LINUX_MMAP_AREAS)
-    RemoveProcEntrySeq(g_ProcMMap);
-#endif 
-
-    if(g_psMemmapCache)
-    {
-        KMemCacheDestroyWrapper(g_psMemmapCache);
-        g_psMemmapCache = NULL;
-    }
-}
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mmap.h b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mmap.h
deleted file mode 100644
index 224e652..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mmap.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined(__MMAP_H__)
-#define __MMAP_H__
-
-#include <linux/mm.h>
-#include <linux/list.h>
-
-#if defined(VM_MIXEDMAP)
-#define	PVR_MAKE_ALL_PFNS_SPECIAL
-#endif
-
-#include "perproc.h"
-#include "mm.h"
-
-typedef struct KV_OFFSET_STRUCT_TAG
-{
-    
-    IMG_UINT32			ui32Mapped;
-
-    
-    IMG_UINT32                  ui32MMapOffset;
-    
-    IMG_UINT32			ui32RealByteSize;
-
-    
-    LinuxMemArea                *psLinuxMemArea;
-    
-#if !defined(PVR_MAKE_ALL_PFNS_SPECIAL)
-    
-    IMG_UINT32			ui32TID;
-#endif
-
-    
-    IMG_UINT32			ui32PID;
-
-    
-    IMG_BOOL			bOnMMapList;
-
-    
-    IMG_UINT32			ui32RefCount;
-
-    
-    IMG_UINT32			ui32UserVAddr;
-
-    
-#if defined(DEBUG_LINUX_MMAP_AREAS)
-    const IMG_CHAR		*pszName;
-#endif
-    
-   
-   struct list_head		sMMapItem;
-
-   
-   struct list_head		sAreaItem;
-}KV_OFFSET_STRUCT, *PKV_OFFSET_STRUCT;
-
-
-
-IMG_VOID PVRMMapInit(IMG_VOID);
-
-
-IMG_VOID PVRMMapCleanup(IMG_VOID);
-
-
-PVRSRV_ERROR PVRMMapRegisterArea(LinuxMemArea *psLinuxMemArea);
-
-
-PVRSRV_ERROR PVRMMapRemoveRegisteredArea(LinuxMemArea *psLinuxMemArea);
-
-
-PVRSRV_ERROR PVRMMapOSMemHandleToMMapData(PVRSRV_PER_PROCESS_DATA *psPerProc,
-#if defined (SUPPORT_SID_INTERFACE)
-                                          IMG_SID     hMHandle,
-#else
-                                          IMG_HANDLE hMHandle,
-#endif
-                                          IMG_UINT32 *pui32MMapOffset,
-                                          IMG_UINT32 *pui32ByteOffset,
-                                          IMG_UINT32 *pui32RealByteSize,
-                                          IMG_UINT32 *pui32UserVAddr);
-
-PVRSRV_ERROR
-PVRMMapReleaseMMapData(PVRSRV_PER_PROCESS_DATA *psPerProc,
-#if defined (SUPPORT_SID_INTERFACE)
-				IMG_SID   hMHandle,
-#else
-				IMG_HANDLE hMHandle,
-#endif
-				IMG_BOOL *pbMUnmap,
-				IMG_UINT32 *pui32RealByteSize,
-                                IMG_UINT32 *pui32UserVAddr);
-
-int PVRMMap(struct file* pFile, struct vm_area_struct* ps_vma);
-
-
-#endif	
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/module.c b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/module.c
deleted file mode 100644
index 9899d85..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/module.c
+++ /dev/null
@@ -1,771 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <linux/version.h>
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38))
-#ifndef AUTOCONF_INCLUDED
-#include <linux/config.h>
-#endif
-#endif
-
-#if defined(SUPPORT_DRI_DRM)
-#define	PVR_MOD_STATIC
-#else
-	
-	#if defined(LDM_PLATFORM)
-		#define	PVR_LDM_PLATFORM_MODULE
-		#define	PVR_LDM_MODULE
-	#else
-		#if defined(LDM_PCI)
-			#define PVR_LDM_PCI_MODULE
-			#define	PVR_LDM_MODULE
-		#endif
-	#endif
-#define	PVR_MOD_STATIC	static
-#endif
-
-#if defined(PVR_LDM_PLATFORM_PRE_REGISTERED)
-#if !defined(NO_HARDWARE)
-#define PVR_USE_PRE_REGISTERED_PLATFORM_DEV
-#endif
-#endif
-
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/fs.h>
-#include <linux/proc_fs.h>
-
-#if defined(SUPPORT_DRI_DRM)
-#include <drm/drmP.h>
-#if defined(PVR_SECURE_DRM_AUTH_EXPORT)
-#include "env_perproc.h"
-#endif
-#endif
-
-#if defined(PVR_LDM_PLATFORM_MODULE)
-#include <linux/platform_device.h>
-#endif 
-
-#if defined(PVR_LDM_PCI_MODULE)
-#include <linux/pci.h>
-#endif 
-
-#if defined(DEBUG) && defined(PVR_MANUAL_POWER_CONTROL)
-#include <asm/uaccess.h>
-#endif
-
-#include "img_defs.h"
-#include "services.h"
-#include "kerneldisplay.h"
-#include "kernelbuffer.h"
-#include "syscommon.h"
-#include "pvrmmap.h"
-#include "mutils.h"
-#include "mm.h"
-#include "mmap.h"
-#include "mutex.h"
-#include "pvr_debug.h"
-#include "srvkm.h"
-#include "perproc.h"
-#include "handle.h"
-#include "pvr_bridge_km.h"
-#include "proc.h"
-#include "pvrmodule.h"
-#include "private_data.h"
-#include "lock.h"
-#include "linkage.h"
-
-#if defined(SUPPORT_DRI_DRM)
-#include "pvr_drm.h"
-#endif
-#define PVRSRV_MODNAME	"PowerVR"
-#define DRVNAME		PVRSRV_MODNAME
-#define DEVNAME		PVRSRV_MODNAME
-
-#if defined(SUPPORT_DRI_DRM)
-#define PRIVATE_DATA(pFile) ((pFile)->driver_priv)
-#else
-#define PRIVATE_DATA(pFile) ((pFile)->private_data)
-#endif
-
-MODULE_SUPPORTED_DEVICE(DEVNAME);
-
-#if defined(PVRSRV_NEED_PVR_DPF)
-#include <linux/moduleparam.h>
-extern IMG_UINT32 gPVRDebugLevel;
-module_param(gPVRDebugLevel, uint, 0644);
-MODULE_PARM_DESC(gPVRDebugLevel, "Sets the level of debug output (default 0x7)");
-#endif 
-
- 
-EXPORT_SYMBOL(PVRGetDisplayClassJTable);
-EXPORT_SYMBOL(PVRGetBufferClassJTable);
-
-#if defined(PVR_LDM_MODULE)
-static struct class *psPvrClass;
-#endif
-
-#if !defined(SUPPORT_DRI_DRM)
-static int AssignedMajorNumber;
-
-static int PVRSRVOpen(struct inode* pInode, struct file* pFile);
-static int PVRSRVRelease(struct inode* pInode, struct file* pFile);
-
-static struct file_operations pvrsrv_fops =
-{
-	.owner=THIS_MODULE,
-	.unlocked_ioctl = PVRSRV_BridgeDispatchKM,
-	.open=PVRSRVOpen,
-	.release=PVRSRVRelease,
-	.mmap=PVRMMap,
-};
-#endif
-
-PVRSRV_LINUX_MUTEX gPVRSRVLock;
-
-IMG_UINT32 gui32ReleasePID;
-
-#if defined(DEBUG) && defined(PVR_MANUAL_POWER_CONTROL)
-static IMG_UINT32 gPVRPowerLevel;
-#endif
-
-#if defined(PVR_LDM_MODULE)
-
-#if defined(PVR_LDM_PLATFORM_MODULE)
-#define	LDM_DEV	struct platform_device
-#define	LDM_DRV	struct platform_driver
-#endif 
-
-#if defined(PVR_LDM_PCI_MODULE)
-#define	LDM_DEV	struct pci_dev
-#define	LDM_DRV	struct pci_driver
-#endif 
-#if defined(PVR_LDM_PLATFORM_MODULE)
-static int PVRSRVDriverRemove(LDM_DEV *device);
-static int PVRSRVDriverProbe(LDM_DEV *device);
-#endif
-#if defined(PVR_LDM_PCI_MODULE)
-static void PVRSRVDriverRemove(LDM_DEV *device);
-static int PVRSRVDriverProbe(LDM_DEV *device, const struct pci_device_id *id);
-#endif
-static int PVRSRVDriverSuspend(LDM_DEV *device, pm_message_t state);
-static void PVRSRVDriverShutdown(LDM_DEV *device);
-static int PVRSRVDriverResume(LDM_DEV *device);
-
-#if defined(PVR_LDM_PCI_MODULE)
-struct pci_device_id powervr_id_table[] __devinitdata = {
-	{PCI_DEVICE(SYS_SGX_DEV_VENDOR_ID, SYS_SGX_DEV_DEVICE_ID)},
-#if defined (SYS_SGX_DEV1_DEVICE_ID)
-	{PCI_DEVICE(SYS_SGX_DEV_VENDOR_ID, SYS_SGX_DEV1_DEVICE_ID)},
-#endif
-	{0}
-};
-
-MODULE_DEVICE_TABLE(pci, powervr_id_table);
-#endif
-
-#if defined(PVR_USE_PRE_REGISTERED_PLATFORM_DEV)
-static struct platform_device_id powervr_id_table[] __devinitdata = {
-	{SYS_SGX_DEV_NAME, 0},
-	{}
-};
-#endif
-
-static LDM_DRV powervr_driver = {
-#if defined(PVR_LDM_PLATFORM_MODULE)
-	.driver = {
-		.name		= DRVNAME,
-	},
-#endif
-#if defined(PVR_LDM_PCI_MODULE)
-	.name		= DRVNAME,
-#endif
-#if defined(PVR_LDM_PCI_MODULE) || defined(PVR_USE_PRE_REGISTERED_PLATFORM_DEV)
-	.id_table = powervr_id_table,
-#endif
-	.probe		= PVRSRVDriverProbe,
-#if defined(PVR_LDM_PLATFORM_MODULE)
-	.remove		= PVRSRVDriverRemove,
-#endif
-#if defined(PVR_LDM_PCI_MODULE)
-	.remove		= __devexit_p(PVRSRVDriverRemove),
-#endif
-	.suspend	= PVRSRVDriverSuspend,
-	.resume		= PVRSRVDriverResume,
-	.shutdown	= PVRSRVDriverShutdown,
-};
-
-LDM_DEV *gpsPVRLDMDev;
-
-#if defined(MODULE) && defined(PVR_LDM_PLATFORM_MODULE) && \
-	!defined(PVR_USE_PRE_REGISTERED_PLATFORM_DEV)
-static void PVRSRVDeviceRelease(struct device unref__ *pDevice)
-{
-}
-
-static struct platform_device powervr_device = {
-	.name			= DEVNAME,
-	.id				= -1,
-	.dev 			= {
-		.release	= PVRSRVDeviceRelease
-	}
-};
-#endif
-
-#if defined(PVR_LDM_PLATFORM_MODULE)
-static int PVRSRVDriverProbe(LDM_DEV *pDevice)
-#endif
-#if defined(PVR_LDM_PCI_MODULE)
-static int __devinit PVRSRVDriverProbe(LDM_DEV *pDevice, const struct pci_device_id *id)
-#endif
-{
-	SYS_DATA *psSysData;
-
-	PVR_TRACE(("PVRSRVDriverProbe(pDevice=%p)", pDevice));
-
-#if 0
-	
-	if (PerDeviceSysInitialise((IMG_PVOID)pDevice) != PVRSRV_OK)
-	{
-		return -EINVAL;
-	}
-#endif	
-	
-	psSysData = SysAcquireDataNoCheck();
-	if ( psSysData == IMG_NULL)
-	{
-		gpsPVRLDMDev = pDevice;
-
-		if (SysInitialise() != PVRSRV_OK)
-		{
-			return -ENODEV;
-		}
-	}
-
-	return 0;
-}
-
-
-#if defined (PVR_LDM_PLATFORM_MODULE)
-static int PVRSRVDriverRemove(LDM_DEV *pDevice)
-#endif
-#if defined(PVR_LDM_PCI_MODULE)
-static void __devexit PVRSRVDriverRemove(LDM_DEV *pDevice)
-#endif
-{
-	SYS_DATA *psSysData;
-
-	PVR_TRACE(("PVRSRVDriverRemove(pDevice=%p)", pDevice));
-
-	SysAcquireData(&psSysData);
-	
-#if defined(DEBUG) && defined(PVR_MANUAL_POWER_CONTROL)
-	if (gPVRPowerLevel != 0)
-	{
-		if (PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D0) == PVRSRV_OK)
-		{
-			gPVRPowerLevel = 0;
-		}
-	}
-#endif
-	(void) SysDeinitialise(psSysData);
-
-	gpsPVRLDMDev = IMG_NULL;
-
-#if 0
-	if (PerDeviceSysDeInitialise((IMG_PVOID)pDevice) != PVRSRV_OK)
-	{
-		return -EINVAL;
-	}
-#endif
-
-#if defined (PVR_LDM_PLATFORM_MODULE)
-	return 0;
-#endif
-#if defined (PVR_LDM_PCI_MODULE)
-	return;
-#endif
-}
-#endif 
-
-
-#if defined(PVR_LDM_MODULE) || defined(PVR_DRI_DRM_PLATFORM_DEV)
-PVR_MOD_STATIC void PVRSRVDriverShutdown(LDM_DEV *pDevice)
-{
-	PVR_TRACE(("PVRSRVDriverShutdown(pDevice=%p)", pDevice));
-
-	(void) PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D3);
-}
-
-#endif 
-
-
-#if defined(PVR_LDM_MODULE) || defined(SUPPORT_DRI_DRM)
-#if defined(SUPPORT_DRI_DRM) && !defined(PVR_DRI_DRM_PLATFORM_DEV)
-int PVRSRVDriverSuspend(struct drm_device *pDevice, pm_message_t state)
-#else
-PVR_MOD_STATIC int PVRSRVDriverSuspend(LDM_DEV *pDevice, pm_message_t state)
-#endif
-{
-#if !(defined(DEBUG) && defined(PVR_MANUAL_POWER_CONTROL) && !defined(SUPPORT_DRI_DRM))
-	PVR_TRACE(( "PVRSRVDriverSuspend(pDevice=%p)", pDevice));
-
-	if (PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D3) != PVRSRV_OK)
-	{
-		return -EINVAL;
-	}
-#endif
-	return 0;
-}
-
-
-#if defined(SUPPORT_DRI_DRM) && !defined(PVR_DRI_DRM_PLATFORM_DEV)
-int PVRSRVDriverResume(struct drm_device *pDevice)
-#else
-PVR_MOD_STATIC int PVRSRVDriverResume(LDM_DEV *pDevice)
-#endif
-{
-#if !(defined(DEBUG) && defined(PVR_MANUAL_POWER_CONTROL) && !defined(SUPPORT_DRI_DRM))
-	PVR_TRACE(("PVRSRVDriverResume(pDevice=%p)", pDevice));
-
-	if (PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D0) != PVRSRV_OK)
-	{
-		return -EINVAL;
-	}
-#endif
-	return 0;
-}
-#endif 
-
-
-#if defined(DEBUG) && defined(PVR_MANUAL_POWER_CONTROL) && !defined(SUPPORT_DRI_DRM)
-IMG_INT PVRProcSetPowerLevel(struct file *file, const IMG_CHAR *buffer, IMG_UINT32 count, IMG_VOID *data)
-{
-	IMG_CHAR data_buffer[2];
-	IMG_UINT32 PVRPowerLevel;
-
-	if (count != sizeof(data_buffer))
-	{
-		return -EINVAL;
-	}
-	else
-	{
-		if (copy_from_user(data_buffer, buffer, count))
-			return -EINVAL;
-		if (data_buffer[count - 1] != '\n')
-			return -EINVAL;
-		PVRPowerLevel = data_buffer[0] - '0';
-		if (PVRPowerLevel != gPVRPowerLevel)
-		{
-			if (PVRPowerLevel != 0)
-			{
-				if (PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D3) != PVRSRV_OK)
-				{
-					return -EINVAL;
-				}
-			}
-			else
-			{
-				if (PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D0) != PVRSRV_OK)
-				{
-					return -EINVAL;
-				}
-			}
-
-			gPVRPowerLevel = PVRPowerLevel;
-		}
-	}
-	return (count);
-}
-
-void ProcSeqShowPowerLevel(struct seq_file *sfile,void* el)	
-{
-	seq_printf(sfile, "%lu\n", gPVRPowerLevel);
-}
-
-#endif
-
-#if defined(SUPPORT_DRI_DRM)
-int PVRSRVOpen(struct drm_device unref__ *dev, struct drm_file *pFile)
-#else
-static int PVRSRVOpen(struct inode unref__ * pInode, struct file *pFile)
-#endif
-{
-	PVRSRV_FILE_PRIVATE_DATA *psPrivateData;
-	IMG_HANDLE hBlockAlloc;
-	int iRet = -ENOMEM;
-	PVRSRV_ERROR eError;
-	IMG_UINT32 ui32PID;
-#if defined(SUPPORT_DRI_DRM) && defined(PVR_SECURE_DRM_AUTH_EXPORT)
-	PVRSRV_ENV_PER_PROCESS_DATA *psEnvPerProc;
-#endif
-
-	LinuxLockMutex(&gPVRSRVLock);
-
-	ui32PID = OSGetCurrentProcessIDKM();
-
-	if (PVRSRVProcessConnect(ui32PID, 0) != PVRSRV_OK)
-		goto err_unlock;
-
-#if defined(SUPPORT_DRI_DRM) && defined(PVR_SECURE_DRM_AUTH_EXPORT)
-	psEnvPerProc = PVRSRVPerProcessPrivateData(ui32PID);
-	if (psEnvPerProc == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "%s: No per-process private data", __FUNCTION__));
-		goto err_unlock;
-	}
-#endif
-
-	eError = OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-						sizeof(PVRSRV_FILE_PRIVATE_DATA),
-						(IMG_PVOID *)&psPrivateData,
-						&hBlockAlloc,
-						"File Private Data");
-
-	if(eError != PVRSRV_OK)
-		goto err_unlock;
-
-#if defined (SUPPORT_SID_INTERFACE)
-	psPrivateData->hKernelMemInfo = 0;
-#else
-	psPrivateData->hKernelMemInfo = NULL;
-#endif
-#if defined(SUPPORT_DRI_DRM) && defined(PVR_SECURE_DRM_AUTH_EXPORT)
-	psPrivateData->psDRMFile = pFile;
-
-	list_add_tail(&psPrivateData->sDRMAuthListItem, &psEnvPerProc->sDRMAuthListHead);
-#endif
-	psPrivateData->ui32OpenPID = ui32PID;
-	psPrivateData->hBlockAlloc = hBlockAlloc;
-	PRIVATE_DATA(pFile) = psPrivateData;
-	iRet = 0;
-err_unlock:	
-	LinuxUnLockMutex(&gPVRSRVLock);
-	return iRet;
-}
-
-
-#if defined(SUPPORT_DRI_DRM)
-void PVRSRVRelease(void *pvPrivData)
-#else
-static int PVRSRVRelease(struct inode unref__ * pInode, struct file *pFile)
-#endif
-{
-	PVRSRV_FILE_PRIVATE_DATA *psPrivateData;
-
-	LinuxLockMutex(&gPVRSRVLock);
-
-#if defined(SUPPORT_DRI_DRM)
-	psPrivateData = (PVRSRV_FILE_PRIVATE_DATA *)pvPrivData;
-#else
-	psPrivateData = PRIVATE_DATA(pFile);
-#endif
-	if (psPrivateData != IMG_NULL)
-	{
-#if defined(SUPPORT_DRI_DRM) && defined(PVR_SECURE_DRM_AUTH_EXPORT)
-		list_del(&psPrivateData->sDRMAuthListItem);
-#endif
-
-		
-		gui32ReleasePID = psPrivateData->ui32OpenPID;
-		PVRSRVProcessDisconnect(psPrivateData->ui32OpenPID);
-		gui32ReleasePID = 0;
-
-		OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-				  sizeof(PVRSRV_FILE_PRIVATE_DATA),
-				  psPrivateData, psPrivateData->hBlockAlloc);
-
-#if !defined(SUPPORT_DRI_DRM)
-		PRIVATE_DATA(pFile) = IMG_NULL; 
-#endif
-	}
-
-	LinuxUnLockMutex(&gPVRSRVLock);
-
-#if !defined(SUPPORT_DRI_DRM)
-	return 0;
-#endif
-}
-
-
-#if defined(SUPPORT_DRI_DRM)
-int PVRCore_Init(void)
-#else
-static int __init PVRCore_Init(void)
-#endif
-{
-	int error;
-#if !defined(PVR_LDM_MODULE)
-	PVRSRV_ERROR eError;
-#else
-	struct device *psDev;
-#endif
-
-#if !defined(SUPPORT_DRI_DRM)
-	
-	PVRDPFInit();
-#endif
-	PVR_TRACE(("PVRCore_Init"));
-
-	LinuxInitMutex(&gPVRSRVLock);
-
-	if (CreateProcEntries ())
-	{
-		error = -ENOMEM;
-		return error;
-	}
-
-	if (PVROSFuncInit() != PVRSRV_OK)
-	{
-		error = -ENOMEM;
-		goto init_failed;
-	}
-
-	PVRLinuxMUtilsInit();
-
-	if(LinuxMMInit() != PVRSRV_OK)
-	{
-		error = -ENOMEM;
-		goto init_failed;
-	}
-
-	LinuxBridgeInit();
-
-	PVRMMapInit();
-
-#if defined(PVR_LDM_MODULE)
-
-#if defined(PVR_LDM_PLATFORM_MODULE)
-	if ((error = platform_driver_register(&powervr_driver)) != 0)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRCore_Init: unable to register platform driver (%d)", error));
-
-		goto init_failed;
-	}
-
-#if defined(MODULE) && !defined(PVR_USE_PRE_REGISTERED_PLATFORM_DEV)
-	if ((error = platform_device_register(&powervr_device)) != 0)
-	{
-		platform_driver_unregister(&powervr_driver);
-
-		PVR_DPF((PVR_DBG_ERROR, "PVRCore_Init: unable to register platform device (%d)", error));
-
-		goto init_failed;
-	}
-#endif
-#endif 
-
-#if defined(PVR_LDM_PCI_MODULE)
-	if ((error = pci_register_driver(&powervr_driver)) != 0)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRCore_Init: unable to register PCI driver (%d)", error));
-
-		goto init_failed;
-	}
-#endif 
-
-#else 
-	
-	if ((eError = SysInitialise()) != PVRSRV_OK)
-	{
-		error = -ENODEV;
-#if defined(TCF_REV) && (TCF_REV == 110)
-		if(eError == PVRSRV_ERROR_NOT_SUPPORTED)
-		{
-			printk("\nAtlas wrapper (FPGA image) version mismatch");
-			error = -ENODEV;
-		}
-#endif
-		goto init_failed;
-	}
-#endif 
-
-#if !defined(SUPPORT_DRI_DRM)
-	AssignedMajorNumber = register_chrdev(0, DEVNAME, &pvrsrv_fops);
-
-	if (AssignedMajorNumber <= 0)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRCore_Init: unable to get major number"));
-
-		error = -EBUSY;
-		goto sys_deinit;
-	}
-
-	PVR_TRACE(("PVRCore_Init: major device %d", AssignedMajorNumber));
-#endif 
-
-#if defined(PVR_LDM_MODULE)
-	
-	psPvrClass = class_create(THIS_MODULE, "pvr");
-
-	if (IS_ERR(psPvrClass))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRCore_Init: unable to create class (%ld)", PTR_ERR(psPvrClass)));
-		error = -EBUSY;
-		goto unregister_device;
-	}
-
-	psDev = device_create(psPvrClass, NULL, MKDEV(AssignedMajorNumber, 0),
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26))
-				  NULL,
-#endif 
-				  DEVNAME);
-	if (IS_ERR(psDev))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "PVRCore_Init: unable to create device (%ld)", PTR_ERR(psDev)));
-		error = -EBUSY;
-		goto destroy_class;
-	}
-#endif 
-
-	return 0;
-
-#if defined(PVR_LDM_MODULE)
-destroy_class:
-	class_destroy(psPvrClass);
-unregister_device:
-	unregister_chrdev((IMG_UINT)AssignedMajorNumber, DRVNAME);
-#endif
-#if !defined(SUPPORT_DRI_DRM)
-sys_deinit:
-#endif
-#if defined(PVR_LDM_MODULE)
-#if defined(PVR_LDM_PCI_MODULE)
-	pci_unregister_driver(&powervr_driver);
-#endif
-
-#if defined (PVR_LDM_PLATFORM_MODULE)
-#if defined(MODULE) && !defined(PVR_USE_PRE_REGISTERED_PLATFORM_DEV)
-	platform_device_unregister(&powervr_device);
-#endif
-	platform_driver_unregister(&powervr_driver);
-#endif
-
-#else	
-	
-	{
-		SYS_DATA *psSysData;
-
-		psSysData = SysAcquireDataNoCheck();
-		if (psSysData != IMG_NULL)
-		{
-			(void) SysDeinitialise(psSysData);
-		}
-	}
-#endif	
-init_failed:
-	PVRMMapCleanup();
-	LinuxMMCleanup();
-	LinuxBridgeDeInit();
-	PVROSFuncDeInit();
-	RemoveProcEntries();
-
-	return error;
-
-} 
-
-
-#if defined(SUPPORT_DRI_DRM)
-void PVRCore_Cleanup(void)
-#else
-static void __exit PVRCore_Cleanup(void)
-#endif
-{
-#if !defined(PVR_LDM_MODULE)
-	SYS_DATA *psSysData;
-#endif
-	PVR_TRACE(("PVRCore_Cleanup"));
-
-#if !defined(PVR_LDM_MODULE)
-	SysAcquireData(&psSysData);
-#endif
-
-#if defined(PVR_LDM_MODULE)
-	device_destroy(psPvrClass, MKDEV(AssignedMajorNumber, 0));
-	class_destroy(psPvrClass);
-#endif
-
-#if !defined(SUPPORT_DRI_DRM)
-#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,22))
-	if (
-#endif	
-		unregister_chrdev((IMG_UINT)AssignedMajorNumber, DRVNAME)
-#if !(LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,22))
-								;
-#else	
-								)
-	{
-		PVR_DPF((PVR_DBG_ERROR," can't unregister device major %d", AssignedMajorNumber));
-	}
-#endif	
-#endif	
-
-#if defined(PVR_LDM_MODULE)
-
-#if defined(PVR_LDM_PCI_MODULE)
-	pci_unregister_driver(&powervr_driver);
-#endif
-
-#if defined (PVR_LDM_PLATFORM_MODULE)
-#if defined(MODULE) && !defined(PVR_USE_PRE_REGISTERED_PLATFORM_DEV)
-	platform_device_unregister(&powervr_device);
-#endif
-	platform_driver_unregister(&powervr_driver);
-#endif
-
-#else 
-#if defined(DEBUG) && defined(PVR_MANUAL_POWER_CONTROL)
-	if (gPVRPowerLevel != 0)
-	{
-		if (PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D0) == PVRSRV_OK)
-		{
-			gPVRPowerLevel = 0;
-		}
-	}
-#endif
-	
-	(void) SysDeinitialise(psSysData);
-#endif 
-
-	PVRMMapCleanup();
-
-	LinuxMMCleanup();
-
-	LinuxBridgeDeInit();
-
-	PVROSFuncDeInit();
-
-	RemoveProcEntries();
-
-	PVR_TRACE(("PVRCore_Cleanup: unloading"));
-}
-
-#if !defined(SUPPORT_DRI_DRM)
-module_init(PVRCore_Init);
-module_exit(PVRCore_Cleanup);
-#endif
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mutex.h b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mutex.h
deleted file mode 100644
index b2c744a..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mutex.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __INCLUDED_LINUX_MUTEX_H_
-#define __INCLUDED_LINUX_MUTEX_H_
-
-#include <linux/version.h>
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15))
-#include <linux/mutex.h>
-#else
-#include <asm/semaphore.h>
-#endif
-
-
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15))
-
-typedef struct mutex PVRSRV_LINUX_MUTEX;
-
-#else 
-
-
-typedef struct {
-    struct semaphore sSemaphore;
-    
-    atomic_t Count;
-}PVRSRV_LINUX_MUTEX;
-
-#endif
-
-
-static inline IMG_VOID  LinuxInitMutex(PVRSRV_LINUX_MUTEX *psPVRSRVMutex) {
-    mutex_init(psPVRSRVMutex);
-}
-
-static inline IMG_VOID LinuxLockMutex(PVRSRV_LINUX_MUTEX *psPVRSRVMutex) {
-    mutex_lock(psPVRSRVMutex);
-}
-
-static inline PVRSRV_ERROR LinuxLockMutexInterruptible(PVRSRV_LINUX_MUTEX *psPVRSRVMutex) {
-	if(mutex_lock_interruptible(psPVRSRVMutex) == -EINTR) {
-		return PVRSRV_ERROR_MUTEX_INTERRUPTIBLE_ERROR; 
-	} else {
-		return PVRSRV_OK;
-	}
-}
-
-static inline IMG_INT32 LinuxTryLockMutex(PVRSRV_LINUX_MUTEX *psPVRSRVMutex) {
-	return mutex_trylock(psPVRSRVMutex);
-}
-
-static inline IMG_VOID LinuxUnLockMutex(PVRSRV_LINUX_MUTEX *psPVRSRVMutex) {
-	mutex_unlock(psPVRSRVMutex);
-}
-
-static inline  IMG_BOOL LinuxIsLockedMutex(PVRSRV_LINUX_MUTEX *psPVRSRVMutex) {
-	return (mutex_is_locked(psPVRSRVMutex)) ? IMG_TRUE : IMG_FALSE;
-}
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mutils.c b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mutils.c
deleted file mode 100644
index a012cf5..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mutils.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <linux/version.h>
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38))
-#ifndef AUTOCONF_INCLUDED
-#include <linux/config.h>
-#endif
-#endif
-
-#include <linux/spinlock.h>
-#include <linux/mm.h>
-#include <asm/page.h>
-#include <asm/pgtable.h>
-
-#include "img_defs.h"
-#include "pvr_debug.h"
-#include "mutils.h"
-
-#if defined(SUPPORT_LINUX_X86_PAT)
-#define	PAT_LINUX_X86_WC	1
-
-#define	PAT_X86_ENTRY_BITS	8
-
-#define	PAT_X86_BIT_PWT		1U
-#define	PAT_X86_BIT_PCD		2U
-#define	PAT_X86_BIT_PAT		4U
-#define	PAT_X86_BIT_MASK	(PAT_X86_BIT_PAT | PAT_X86_BIT_PCD | PAT_X86_BIT_PWT)
-
-static IMG_BOOL g_write_combining_available = IMG_FALSE;
-
-#define	PROT_TO_PAT_INDEX(v, B) ((v & _PAGE_ ## B) ? PAT_X86_BIT_ ## B : 0)
-
-static inline IMG_UINT
-pvr_pat_index(pgprotval_t prot_val)
-{
-	IMG_UINT ret = 0;
-	pgprotval_t val = prot_val & _PAGE_CACHE_MASK;
-
-	ret |= PROT_TO_PAT_INDEX(val, PAT);
-	ret |= PROT_TO_PAT_INDEX(val, PCD);
-	ret |= PROT_TO_PAT_INDEX(val, PWT);
-
-	return ret;
-}
-
-static inline IMG_UINT
-pvr_pat_entry(u64 pat, IMG_UINT index)
-{
-	return (IMG_UINT)(pat >> (index * PAT_X86_ENTRY_BITS)) & PAT_X86_BIT_MASK;
-}
-
-static IMG_VOID
-PVRLinuxX86PATProbe(IMG_VOID)
-{
-	
-	if (cpu_has_pat)	 
-	{
-		u64 pat;
-		IMG_UINT pat_index;
-		IMG_UINT pat_entry;
-
-		PVR_TRACE(("%s: PAT available", __FUNCTION__));
-		
-		rdmsrl(MSR_IA32_CR_PAT, pat);
-		PVR_TRACE(("%s: Top 32 bits of PAT: 0x%.8x", __FUNCTION__, (IMG_UINT)(pat >> 32)));
-		PVR_TRACE(("%s: Bottom 32 bits of PAT: 0x%.8x", __FUNCTION__, (IMG_UINT)(pat)));
-
-		pat_index = pvr_pat_index(_PAGE_CACHE_WC);
-		PVR_TRACE(("%s: PAT index for write combining: %u", __FUNCTION__, pat_index));
-
-		pat_entry = pvr_pat_entry(pat, pat_index);
-		PVR_TRACE(("%s: PAT entry for write combining: 0x%.2x (should be 0x%.2x)", __FUNCTION__, pat_entry, PAT_LINUX_X86_WC));
-
-#if defined(SUPPORT_LINUX_X86_WRITECOMBINE)
-		g_write_combining_available = (IMG_BOOL)(pat_entry == PAT_LINUX_X86_WC);
-#endif
-	}
-#if defined(DEBUG)
-#if defined(SUPPORT_LINUX_X86_WRITECOMBINE)
-	if (g_write_combining_available)
-	{
-		PVR_TRACE(("%s: Write combining available via PAT", __FUNCTION__));
-	}
-	else
-	{
-		PVR_TRACE(("%s: Write combining not available", __FUNCTION__));
-	}
-#else	
-	PVR_TRACE(("%s: Write combining disabled in driver build", __FUNCTION__));
-#endif	
-#endif	
-}
-
-pgprot_t
-pvr_pgprot_writecombine(pgprot_t prot)
-{
-    
-     
-    return (g_write_combining_available) ?
-		__pgprot((pgprot_val(prot) & ~_PAGE_CACHE_MASK) | _PAGE_CACHE_WC) : pgprot_noncached(prot);
-}
-#endif	
-
-IMG_VOID
-PVRLinuxMUtilsInit(IMG_VOID)
-{
-#if defined(SUPPORT_LINUX_X86_PAT)
-	PVRLinuxX86PATProbe();
-#endif
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mutils.h b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mutils.h
deleted file mode 100644
index b2a8ba0..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/mutils.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __IMG_LINUX_MUTILS_H__
-#define __IMG_LINUX_MUTILS_H__
-
-#include <linux/version.h>
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38))
-#ifndef AUTOCONF_INCLUDED
-#include <linux/config.h>
-#endif
-#endif
-
-#if !(defined(__i386__) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)))
-#if defined(SUPPORT_LINUX_X86_PAT)
-#undef SUPPORT_LINUX_X86_PAT
-#endif
-#endif
-
-#if defined(SUPPORT_LINUX_X86_PAT)
-	pgprot_t pvr_pgprot_writecombine(pgprot_t prot);
-	#define	PGPROT_WC(pv)	pvr_pgprot_writecombine(pv)
-#else
-	#if defined(__arm__) || defined(__sh__)
-		#define	PGPROT_WC(pv)	pgprot_writecombine(pv)
-	#else
-		#if defined(__i386__) || defined(__mips__)
-			#define	PGPROT_WC(pv)	pgprot_noncached(pv)
-		#else
-			#define PGPROT_WC(pv)	pgprot_noncached(pv)
-			#error  Unsupported architecture!
-		#endif
-	#endif
-#endif
-
-#define	PGPROT_UC(pv)	pgprot_noncached(pv)
-
-#if defined(__i386__) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26))
-	#define	IOREMAP(pa, bytes)	ioremap_cache(pa, bytes)
-#else	
-	#if defined(__arm__) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
-		#define	IOREMAP(pa, bytes)	ioremap_cached(pa, bytes)
-	#else
-		#define IOREMAP(pa, bytes)	ioremap(pa, bytes)
-	#endif
-#endif
-
-#if defined(SUPPORT_LINUX_X86_PAT)
-	#if defined(SUPPORT_LINUX_X86_WRITECOMBINE)
-		#define IOREMAP_WC(pa, bytes) ioremap_wc(pa, bytes)
-	#else
-		#define IOREMAP_WC(pa, bytes) ioremap_nocache(pa, bytes)
-	#endif
-#else
-	#if defined(__arm__)
-		#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27))
-			#define IOREMAP_WC(pa, bytes) ioremap_wc(pa, bytes)
-		#else
-			#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22))
-				#define	IOREMAP_WC(pa, bytes)	ioremap_nocache(pa, bytes)
-			#else
-				#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)) || (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17))
-					#define	IOREMAP_WC(pa, bytes)	__ioremap(pa, bytes, L_PTE_BUFFERABLE)
-				#else
-					#define IOREMAP_WC(pa, bytes)	__ioremap(pa, bytes, , L_PTE_BUFFERABLE, 1)
-				#endif
-			#endif
-		#endif
-	#else
-		#define IOREMAP_WC(pa, bytes)	ioremap_nocache(pa, bytes)
-	#endif
-#endif
-
-#define	IOREMAP_UC(pa, bytes)	ioremap_nocache(pa, bytes)
-
-IMG_VOID PVRLinuxMUtilsInit(IMG_VOID);
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/osfunc.c b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/osfunc.c
deleted file mode 100644
index 7d4f21b..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/osfunc.c
+++ /dev/null
@@ -1,3115 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <linux/version.h>
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38))
-#ifndef AUTOCONF_INCLUDED
-#include <linux/config.h>
-#endif
-#endif
-
-#include <asm/io.h>
-#include <asm/page.h>
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22))
-#include <asm/system.h>
-#endif
-#include <asm/cacheflush.h>
-#include <linux/mm.h>
-#include <linux/pagemap.h>
-#include <linux/hugetlb.h> 
-#include <linux/slab.h>
-#include <linux/vmalloc.h>
-#include <linux/delay.h>
-#include <linux/pci.h>
-
-#include <linux/string.h>
-#include <linux/sched.h>
-#include <linux/interrupt.h>
-#include <asm/hardirq.h>
-#include <linux/timer.h>
-#include <linux/capability.h>
-#include <asm/uaccess.h>
-#include <linux/spinlock.h>
-#if defined(PVR_LINUX_MISR_USING_WORKQUEUE) || \
-	defined(PVR_LINUX_MISR_USING_PRIVATE_WORKQUEUE) || \
-	defined(PVR_LINUX_TIMERS_USING_WORKQUEUES) || \
-	defined(PVR_LINUX_TIMERS_USING_SHARED_WORKQUEUE) || \
-	defined(PVR_LINUX_USING_WORKQUEUES)
-#include <linux/workqueue.h>
-#endif
-
-#include "img_types.h"
-#include "services_headers.h"
-#include "mm.h"
-#include "pvrmmap.h"
-#include "mmap.h"
-#include "env_data.h"
-#include "proc.h"
-#include "mutex.h"
-#include "event.h"
-#include "linkage.h"
-
-#define PVRSRV_MODNAME "PowerVR"
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27))
-#define ON_EACH_CPU(func, info, wait) on_each_cpu(func, info, wait)
-#else
-#define ON_EACH_CPU(func, info, wait) on_each_cpu(func, info, 0, wait)
-#endif
-
-#if defined(PVR_LINUX_USING_WORKQUEUES) && !defined(CONFIG_PREEMPT)
-#error "A preemptible Linux kernel is required when using workqueues"
-#endif
-
-#if defined(EMULATOR)
-#define EVENT_OBJECT_TIMEOUT_MS		(2000)
-#else
-#define EVENT_OBJECT_TIMEOUT_MS		(100)
-#endif 
-
-#if !defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-PVRSRV_ERROR OSAllocMem_Impl(IMG_UINT32 ui32Flags, IMG_UINT32 ui32Size, IMG_PVOID *ppvCpuVAddr, IMG_HANDLE *phBlockAlloc)
-#else
-PVRSRV_ERROR OSAllocMem_Impl(IMG_UINT32 ui32Flags, IMG_UINT32 ui32Size, IMG_PVOID *ppvCpuVAddr, IMG_HANDLE *phBlockAlloc, IMG_CHAR *pszFilename, IMG_UINT32 ui32Line)
-#endif
-{
-    PVR_UNREFERENCED_PARAMETER(ui32Flags);
-    PVR_UNREFERENCED_PARAMETER(phBlockAlloc);
-
-    if (ui32Size > PAGE_SIZE)
-    {
-        
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-        *ppvCpuVAddr = _VMallocWrapper(ui32Size, PVRSRV_HAP_CACHED, pszFilename, ui32Line);
-#else
-        *ppvCpuVAddr = VMallocWrapper(ui32Size, PVRSRV_HAP_CACHED);
-#endif
-        if (*ppvCpuVAddr)
-        {
-            return PVRSRV_OK;
-        }
-    }
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    *ppvCpuVAddr = _KMallocWrapper(ui32Size, GFP_KERNEL | __GFP_NOWARN, pszFilename, ui32Line);
-#else
-    *ppvCpuVAddr = KMallocWrapper(ui32Size, GFP_KERNEL | __GFP_NOWARN);
-#endif
-    if (!*ppvCpuVAddr)
-    {
-        return PVRSRV_ERROR_OUT_OF_MEMORY;
-    }
-
-    return PVRSRV_OK;
-}
-
-#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,24))
-
-static inline int is_vmalloc_addr(const void *pvCpuVAddr)
-{
-	unsigned long lAddr = (unsigned long)pvCpuVAddr;
-	return lAddr >= VMALLOC_START && lAddr < VMALLOC_END;
-}
-
-#endif 
-
-#if !defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-PVRSRV_ERROR OSFreeMem_Impl(IMG_UINT32 ui32Flags, IMG_UINT32 ui32Size, IMG_PVOID pvCpuVAddr, IMG_HANDLE hBlockAlloc)
-#else
-PVRSRV_ERROR OSFreeMem_Impl(IMG_UINT32 ui32Flags, IMG_UINT32 ui32Size, IMG_PVOID pvCpuVAddr, IMG_HANDLE hBlockAlloc, IMG_CHAR *pszFilename, IMG_UINT32 ui32Line)
-#endif
-{	
-    PVR_UNREFERENCED_PARAMETER(ui32Flags);
-    PVR_UNREFERENCED_PARAMETER(ui32Size);
-    PVR_UNREFERENCED_PARAMETER(hBlockAlloc);
-
-    if (is_vmalloc_addr(pvCpuVAddr))
-    {
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-        _VFreeWrapper(pvCpuVAddr, pszFilename, ui32Line);
-#else
-        VFreeWrapper(pvCpuVAddr);
-#endif
-    }
-    else
-    {
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-        _KFreeWrapper(pvCpuVAddr, pszFilename, ui32Line);
-#else
-        KFreeWrapper(pvCpuVAddr);
-#endif
-    }
-
-    return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR
-OSAllocPages_Impl(IMG_UINT32 ui32AllocFlags,
-				  IMG_UINT32 ui32Size,
-				  IMG_UINT32 ui32PageSize,
-				  IMG_VOID **ppvCpuVAddr,
-				  IMG_HANDLE *phOSMemHandle)
-{
-    LinuxMemArea *psLinuxMemArea;
-
-    PVR_UNREFERENCED_PARAMETER(ui32PageSize);
-
-#if 0
-    
-    if(ui32AllocFlags & PVRSRV_HAP_SINGLE_PROCESS)
-    {
-        ui32AllocFlags &= ~PVRSRV_HAP_SINGLE_PROCESS;
-        ui32AllocFlags |= PVRSRV_HAP_MULTI_PROCESS;
-    }
-#endif
-
-    switch(ui32AllocFlags & PVRSRV_HAP_MAPTYPE_MASK)
-    {
-        case PVRSRV_HAP_KERNEL_ONLY:
-        {
-            psLinuxMemArea = NewVMallocLinuxMemArea(ui32Size, ui32AllocFlags);
-            if(!psLinuxMemArea)
-            {
-                return PVRSRV_ERROR_OUT_OF_MEMORY;
-            }
-            break;
-        }
-        case PVRSRV_HAP_SINGLE_PROCESS:
-        {
-            
-            
-            psLinuxMemArea = NewAllocPagesLinuxMemArea(ui32Size, ui32AllocFlags);
-            if(!psLinuxMemArea)
-            {
-                return PVRSRV_ERROR_OUT_OF_MEMORY;
-            }
-            PVRMMapRegisterArea(psLinuxMemArea);
-            break;
-        }
-
-        case PVRSRV_HAP_MULTI_PROCESS:
-        {
-            
-#if defined(VIVT_CACHE) || defined(__sh__)
-            
-            ui32AllocFlags &= ~PVRSRV_HAP_CACHED;
-#endif
-            psLinuxMemArea = NewVMallocLinuxMemArea(ui32Size, ui32AllocFlags);
-            if(!psLinuxMemArea)
-            {
-                return PVRSRV_ERROR_OUT_OF_MEMORY;
-            }
-            PVRMMapRegisterArea(psLinuxMemArea);
-            break;
-        }
-        default:
-            PVR_DPF((PVR_DBG_ERROR, "OSAllocPages: invalid flags 0x%x\n", ui32AllocFlags));
-            *ppvCpuVAddr = NULL;
-            *phOSMemHandle = (IMG_HANDLE)0;
-            return PVRSRV_ERROR_INVALID_PARAMS;
-    }
-
-    *ppvCpuVAddr = LinuxMemAreaToCpuVAddr(psLinuxMemArea);
-    *phOSMemHandle = psLinuxMemArea;
-    
-    LinuxMemAreaRegister(psLinuxMemArea);
-
-    return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR
-OSFreePages(IMG_UINT32 ui32AllocFlags, IMG_UINT32 ui32Bytes, IMG_VOID *pvCpuVAddr, IMG_HANDLE hOSMemHandle)
-{   
-    LinuxMemArea *psLinuxMemArea;
-    PVRSRV_ERROR eError;
-    
-    PVR_UNREFERENCED_PARAMETER(ui32Bytes);
-    PVR_UNREFERENCED_PARAMETER(pvCpuVAddr);
-    
-    psLinuxMemArea = (LinuxMemArea *)hOSMemHandle;
-
-    switch(ui32AllocFlags & PVRSRV_HAP_MAPTYPE_MASK)
-    {
-        case PVRSRV_HAP_KERNEL_ONLY:
-            break;
-        case PVRSRV_HAP_SINGLE_PROCESS:
-        case PVRSRV_HAP_MULTI_PROCESS:
-            eError = PVRMMapRemoveRegisteredArea(psLinuxMemArea);
-            if (eError != PVRSRV_OK)
-            {
-                PVR_DPF((PVR_DBG_ERROR,
-                         "OSFreePages(ui32AllocFlags=0x%08X, ui32Bytes=%d, "
-                                        "pvCpuVAddr=%p, hOSMemHandle=%p) FAILED!",
-                         ui32AllocFlags, ui32Bytes, pvCpuVAddr, hOSMemHandle));
-                return eError;
-            }
-            break;
-        default:
-            PVR_DPF((PVR_DBG_ERROR,"%s: invalid flags 0x%x\n",
-                    __FUNCTION__, ui32AllocFlags));
-            return PVRSRV_ERROR_INVALID_PARAMS;
-    }
-
-    LinuxMemAreaDeepFree(psLinuxMemArea);
-
-    return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR
-OSGetSubMemHandle(IMG_HANDLE hOSMemHandle,
-                  IMG_UINT32 ui32ByteOffset,
-                  IMG_UINT32 ui32Bytes,
-                  IMG_UINT32 ui32Flags,
-                  IMG_HANDLE *phOSMemHandleRet)
-{
-    LinuxMemArea *psParentLinuxMemArea, *psLinuxMemArea;
-    PVRSRV_ERROR eError;
-
-    psParentLinuxMemArea = (LinuxMemArea *)hOSMemHandle;
-    
-    psLinuxMemArea = NewSubLinuxMemArea(psParentLinuxMemArea, ui32ByteOffset, ui32Bytes);
-    if(!psLinuxMemArea)
-    {
-        *phOSMemHandleRet = NULL;
-        return PVRSRV_ERROR_OUT_OF_MEMORY;
-    }
-    *phOSMemHandleRet = psLinuxMemArea;
-
-    
-    if(ui32Flags & PVRSRV_HAP_KERNEL_ONLY)
-    {
-        return PVRSRV_OK;
-    }
-
-    eError = PVRMMapRegisterArea(psLinuxMemArea);
-    if(eError != PVRSRV_OK)
-    {
-        goto failed_register_area;
-    }
-
-    return PVRSRV_OK;
-
-failed_register_area:
-    *phOSMemHandleRet = NULL;
-    LinuxMemAreaDeepFree(psLinuxMemArea);
-    return eError;
-}
-
-PVRSRV_ERROR
-OSReleaseSubMemHandle(IMG_VOID *hOSMemHandle, IMG_UINT32 ui32Flags)
-{
-    LinuxMemArea *psLinuxMemArea;
-    PVRSRV_ERROR eError;
-    
-    psLinuxMemArea = (LinuxMemArea *)hOSMemHandle;
-    PVR_ASSERT(psLinuxMemArea->eAreaType == LINUX_MEM_AREA_SUB_ALLOC);
-    
-    if((ui32Flags & PVRSRV_HAP_KERNEL_ONLY) == 0)
-    {
-        eError = PVRMMapRemoveRegisteredArea(psLinuxMemArea);
-        if(eError != PVRSRV_OK)
-        {
-            return eError;
-        }
-    }
-    LinuxMemAreaDeepFree(psLinuxMemArea);
-
-    return PVRSRV_OK;
-}
-
-
-IMG_CPU_PHYADDR
-OSMemHandleToCpuPAddr(IMG_VOID *hOSMemHandle, IMG_UINT32 ui32ByteOffset)
-{
-    PVR_ASSERT(hOSMemHandle);
-
-    return LinuxMemAreaToCpuPAddr(hOSMemHandle, ui32ByteOffset);
-}
-
-
-
-IMG_VOID OSMemCopy(IMG_VOID *pvDst, IMG_VOID *pvSrc, IMG_UINT32 ui32Size)
-{
-#if defined(USE_UNOPTIMISED_MEMCPY)
-    IMG_UINT8 *Src,*Dst;
-    IMG_INT i;
-
-    Src=(IMG_UINT8 *)pvSrc;
-    Dst=(IMG_UINT8 *)pvDst;
-    for(i=0;i<ui32Size;i++)
-    {
-        Dst[i]=Src[i];
-    }
-#else
-    memcpy(pvDst, pvSrc, ui32Size);
-#endif
-}
-
-
-IMG_VOID OSMemSet(IMG_VOID *pvDest, IMG_UINT8 ui8Value, IMG_UINT32 ui32Size)
-{
-#if defined(USE_UNOPTIMISED_MEMSET)
-    IMG_UINT8 *Buff;
-    IMG_INT i;
-
-    Buff=(IMG_UINT8 *)pvDest;
-    for(i=0;i<ui32Size;i++)
-    {
-        Buff[i]=ui8Value;
-    }
-#else
-    memset(pvDest, (IMG_INT) ui8Value, (size_t) ui32Size);
-#endif
-}
-
-
-IMG_CHAR *OSStringCopy(IMG_CHAR *pszDest, const IMG_CHAR *pszSrc)
-{
-    return (strcpy(pszDest, pszSrc));
-}
-
-IMG_INT32 OSSNPrintf(IMG_CHAR *pStr, IMG_UINT32 ui32Size, const IMG_CHAR *pszFormat, ...)
-{
-    va_list argList;
-    IMG_INT32 iCount;
-
-    va_start(argList, pszFormat);
-    iCount = vsnprintf(pStr, (size_t)ui32Size, pszFormat, argList);
-    va_end(argList);
-
-    return iCount;
-}
-
-IMG_VOID OSBreakResourceLock (PVRSRV_RESOURCE *psResource, IMG_UINT32 ui32ID)
-{
-    volatile IMG_UINT32 *pui32Access = (volatile IMG_UINT32 *)&psResource->ui32Lock;
-
-    if(*pui32Access)
-    {
-        if(psResource->ui32ID == ui32ID)
-        {
-            psResource->ui32ID = 0;
-            *pui32Access = 0;
-        }
-        else
-        {
-            PVR_DPF((PVR_DBG_MESSAGE,"OSBreakResourceLock: Resource is not locked for this process.")); 
-        }
-    }
-    else
-    {
-        PVR_DPF((PVR_DBG_MESSAGE,"OSBreakResourceLock: Resource is not locked"));
-    }
-}
-
-
-PVRSRV_ERROR OSCreateResource(PVRSRV_RESOURCE *psResource)
-{
-    psResource->ui32ID = 0;
-    psResource->ui32Lock = 0;
-
-    return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR OSDestroyResource (PVRSRV_RESOURCE *psResource)
-{
-    OSBreakResourceLock (psResource, psResource->ui32ID);
-
-    return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR OSInitEnvData(IMG_PVOID *ppvEnvSpecificData)
-{
-    ENV_DATA		*psEnvData;
-    PVRSRV_ERROR	eError;
-    
-    
-    eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(ENV_DATA), (IMG_VOID **)&psEnvData, IMG_NULL,
-        "Environment Data");
-    if (eError != PVRSRV_OK)
-    {
-        return eError;
-    }
-
-    eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, PVRSRV_MAX_BRIDGE_IN_SIZE + PVRSRV_MAX_BRIDGE_OUT_SIZE, 
-                    &psEnvData->pvBridgeData, IMG_NULL,
-                    "Bridge Data");
-    if (eError != PVRSRV_OK)
-    {
-        OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(ENV_DATA), psEnvData, IMG_NULL);
-		
-        return eError;
-    }
-
-
-    
-    psEnvData->bMISRInstalled = IMG_FALSE;
-    psEnvData->bLISRInstalled = IMG_FALSE;
-
-    
-    *ppvEnvSpecificData = psEnvData;
-
-    return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR OSDeInitEnvData(IMG_PVOID pvEnvSpecificData)
-{
-    ENV_DATA		*psEnvData = (ENV_DATA*)pvEnvSpecificData;
-
-    PVR_ASSERT(!psEnvData->bMISRInstalled);
-    PVR_ASSERT(!psEnvData->bLISRInstalled);
-
-    OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, PVRSRV_MAX_BRIDGE_IN_SIZE + PVRSRV_MAX_BRIDGE_OUT_SIZE, psEnvData->pvBridgeData, IMG_NULL);
-    psEnvData->pvBridgeData = IMG_NULL;
-
-    OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(ENV_DATA), pvEnvSpecificData, IMG_NULL);
-	
-
-    return PVRSRV_OK;
-}
-
-
- 
-IMG_VOID OSReleaseThreadQuanta(IMG_VOID)
-{
-    schedule();
-}
-
-
- 
-IMG_UINT32 OSClockus(IMG_VOID)
-{
-    IMG_UINT32 time, j = jiffies;
-
-    time = j * (1000000 / HZ);
-
-    return time;
-}
-
-
-IMG_VOID OSWaitus(IMG_UINT32 ui32Timeus)
-{
-    udelay(ui32Timeus);
-}
-
-
-IMG_VOID OSSleepms(IMG_UINT32 ui32Timems)
-{
-    msleep(ui32Timems);
-}
-
-
- 
-IMG_HANDLE OSFuncHighResTimerCreate(IMG_VOID)
-{
-	
-	return (IMG_HANDLE) 1;
-}
-
- 
-IMG_UINT32 OSFuncHighResTimerGetus(IMG_HANDLE hTimer)
-{
-	return (IMG_UINT32) jiffies_to_usecs(jiffies);
-}
-
- 
-IMG_VOID OSFuncHighResTimerDestroy(IMG_HANDLE hTimer)
-{
-	PVR_UNREFERENCED_PARAMETER(hTimer);
-}
-
-IMG_UINT32 OSGetCurrentProcessIDKM(IMG_VOID)
-{
-    if (in_interrupt())
-    {
-        return KERNEL_ID;
-    }
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
-    return (IMG_UINT32)current->pgrp;
-#else
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
-    return (IMG_UINT32)task_tgid_nr(current);
-#else
-    return (IMG_UINT32)current->tgid;
-#endif
-#endif
-}
-
-
-IMG_UINT32 OSGetPageSize(IMG_VOID)
-{
-#if defined(__sh__)
-    IMG_UINT32 ui32ReturnValue = PAGE_SIZE;
-
-    return (ui32ReturnValue);
-#else
-    return PAGE_SIZE;
-#endif
-}
-
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0))
-static irqreturn_t DeviceISRWrapper(int irq, void *dev_id
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19))
-        , struct pt_regs *regs
-#endif
-        )
-{
-    PVRSRV_DEVICE_NODE *psDeviceNode;
-    IMG_BOOL bStatus = IMG_FALSE;
-
-    PVR_UNREFERENCED_PARAMETER(irq);
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19))
-    PVR_UNREFERENCED_PARAMETER(regs);
-#endif	
-    psDeviceNode = (PVRSRV_DEVICE_NODE*)dev_id;
-    if(!psDeviceNode)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "DeviceISRWrapper: invalid params\n"));
-        goto out;
-    }
-
-    bStatus = PVRSRVDeviceLISR(psDeviceNode);
-
-    if (bStatus)
-    {
-		OSScheduleMISR((IMG_VOID *)psDeviceNode->psSysData);
-    }
-
-out:
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
-    return bStatus ? IRQ_HANDLED : IRQ_NONE;
-#endif
-}
-
-
-
-static irqreturn_t SystemISRWrapper(int irq, void *dev_id
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19))
-        , struct pt_regs *regs
-#endif
-        )
-{
-    SYS_DATA *psSysData;
-    IMG_BOOL bStatus = IMG_FALSE;
-
-    PVR_UNREFERENCED_PARAMETER(irq);
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19))
-    PVR_UNREFERENCED_PARAMETER(regs);
-#endif
-    psSysData = (SYS_DATA *)dev_id;
-    if(!psSysData)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "SystemISRWrapper: invalid params\n"));
-        goto out;
-    }
-
-    bStatus = PVRSRVSystemLISR(psSysData);
-
-    if (bStatus)
-    {
-        OSScheduleMISR((IMG_VOID *)psSysData);
-    }
-
-out:
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
-    return bStatus ? IRQ_HANDLED : IRQ_NONE;
-#endif
-}
-PVRSRV_ERROR OSInstallDeviceLISR(IMG_VOID *pvSysData,
-                                    IMG_UINT32 ui32Irq,
-                                    IMG_CHAR *pszISRName,
-                                    IMG_VOID *pvDeviceNode)
-{
-    SYS_DATA *psSysData = (SYS_DATA*)pvSysData;
-    ENV_DATA *psEnvData = (ENV_DATA *)psSysData->pvEnvSpecificData;
-
-    if (psEnvData->bLISRInstalled)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSInstallDeviceLISR: An ISR has already been installed: IRQ %d cookie %p", psEnvData->ui32IRQ, psEnvData->pvISRCookie));
-        return PVRSRV_ERROR_ISR_ALREADY_INSTALLED;
-    }
-
-    PVR_TRACE(("Installing device LISR %s on IRQ %d with cookie %p", pszISRName, ui32Irq, pvDeviceNode));
-
-    if(request_irq(ui32Irq, DeviceISRWrapper,
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22))
-        SA_SHIRQ
-#else
-        IRQF_SHARED
-#endif
-        , pszISRName, pvDeviceNode))
-    {
-        PVR_DPF((PVR_DBG_ERROR,"OSInstallDeviceLISR: Couldn't install device LISR on IRQ %d", ui32Irq));
-
-        return PVRSRV_ERROR_UNABLE_TO_INSTALL_ISR;
-    }
-
-    psEnvData->ui32IRQ = ui32Irq;
-    psEnvData->pvISRCookie = pvDeviceNode;
-    psEnvData->bLISRInstalled = IMG_TRUE;
-
-    return PVRSRV_OK;	
-}
-
-PVRSRV_ERROR OSUninstallDeviceLISR(IMG_VOID *pvSysData)
-{
-    SYS_DATA *psSysData = (SYS_DATA*)pvSysData;
-    ENV_DATA *psEnvData = (ENV_DATA *)psSysData->pvEnvSpecificData;
-
-    if (!psEnvData->bLISRInstalled)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSUninstallDeviceLISR: No LISR has been installed"));
-        return PVRSRV_ERROR_ISR_NOT_INSTALLED;
-    }
-        
-    PVR_TRACE(("Uninstalling device LISR on IRQ %d with cookie %p", psEnvData->ui32IRQ,  psEnvData->pvISRCookie));
-
-    free_irq(psEnvData->ui32IRQ, psEnvData->pvISRCookie);
-
-    psEnvData->bLISRInstalled = IMG_FALSE;
-
-    return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR OSInstallSystemLISR(IMG_VOID *pvSysData, IMG_UINT32 ui32Irq)
-{
-    SYS_DATA *psSysData = (SYS_DATA*)pvSysData;
-    ENV_DATA *psEnvData = (ENV_DATA *)psSysData->pvEnvSpecificData;
-
-    if (psEnvData->bLISRInstalled)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSInstallSystemLISR: An LISR has already been installed: IRQ %d cookie %p", psEnvData->ui32IRQ, psEnvData->pvISRCookie));
-        return PVRSRV_ERROR_ISR_ALREADY_INSTALLED;
-    }
-
-    PVR_TRACE(("Installing system LISR on IRQ %d with cookie %p", ui32Irq, pvSysData));
-
-    if(request_irq(ui32Irq, SystemISRWrapper,
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22))
-        SA_SHIRQ
-#else
-        IRQF_SHARED
-#endif
-        , PVRSRV_MODNAME, pvSysData))
-    {
-        PVR_DPF((PVR_DBG_ERROR,"OSInstallSystemLISR: Couldn't install system LISR on IRQ %d", ui32Irq));
-
-        return PVRSRV_ERROR_UNABLE_TO_INSTALL_ISR;
-    }
-
-    psEnvData->ui32IRQ = ui32Irq;
-    psEnvData->pvISRCookie = pvSysData;
-    psEnvData->bLISRInstalled = IMG_TRUE;
-
-    return PVRSRV_OK;	
-}
-
-
-PVRSRV_ERROR OSUninstallSystemLISR(IMG_VOID *pvSysData)
-{
-    SYS_DATA *psSysData = (SYS_DATA*)pvSysData;
-    ENV_DATA *psEnvData = (ENV_DATA *)psSysData->pvEnvSpecificData;
-
-    if (!psEnvData->bLISRInstalled)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSUninstallSystemLISR: No LISR has been installed"));
-        return PVRSRV_ERROR_ISR_NOT_INSTALLED;
-    }
-
-    PVR_TRACE(("Uninstalling system LISR on IRQ %d with cookie %p", psEnvData->ui32IRQ, psEnvData->pvISRCookie));
-
-    free_irq(psEnvData->ui32IRQ, psEnvData->pvISRCookie);
-
-    psEnvData->bLISRInstalled = IMG_FALSE;
-
-    return PVRSRV_OK;
-}
-
-#if defined(PVR_LINUX_MISR_USING_PRIVATE_WORKQUEUE)
-static void MISRWrapper(
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20))
-			void *data
-#else
-			struct work_struct *data
-#endif
-)
-{
-	ENV_DATA *psEnvData = container_of(data, ENV_DATA, sMISRWork);
-	SYS_DATA *psSysData  = (SYS_DATA *)psEnvData->pvMISRData;
-
-	PVRSRVMISR(psSysData);
-}
-
-
-PVRSRV_ERROR OSInstallMISR(IMG_VOID *pvSysData)
-{
-	SYS_DATA *psSysData = (SYS_DATA*)pvSysData;
-	ENV_DATA *psEnvData = (ENV_DATA *)psSysData->pvEnvSpecificData;
-
-	if (psEnvData->bMISRInstalled)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "OSInstallMISR: An MISR has already been installed"));
-		return PVRSRV_ERROR_ISR_ALREADY_INSTALLED;
-	}
-
-	PVR_TRACE(("Installing MISR with cookie %p", pvSysData));
-
-	psEnvData->psWorkQueue = create_singlethread_workqueue("pvr_workqueue");
-
-	if (psEnvData->psWorkQueue == IMG_NULL)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "OSInstallMISR: create_singlethreaded_workqueue failed"));
-		return PVRSRV_ERROR_UNABLE_TO_CREATE_THREAD;
-	}
-
-	INIT_WORK(&psEnvData->sMISRWork, MISRWrapper
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20))
-		, (void *)&psEnvData->sMISRWork
-#endif
-				);
-
-	psEnvData->pvMISRData = pvSysData;
-	psEnvData->bMISRInstalled = IMG_TRUE;
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR OSUninstallMISR(IMG_VOID *pvSysData)
-{
-	SYS_DATA *psSysData = (SYS_DATA*)pvSysData;
-	ENV_DATA *psEnvData = (ENV_DATA *)psSysData->pvEnvSpecificData;
-
-	if (!psEnvData->bMISRInstalled)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "OSUninstallMISR: No MISR has been installed"));
-		return PVRSRV_ERROR_ISR_NOT_INSTALLED;
-	}
-
-	PVR_TRACE(("Uninstalling MISR"));
-
-	destroy_workqueue(psEnvData->psWorkQueue);
-
-	psEnvData->bMISRInstalled = IMG_FALSE;
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR OSScheduleMISR(IMG_VOID *pvSysData)
-{
-	SYS_DATA *psSysData = (SYS_DATA*)pvSysData;
-	ENV_DATA *psEnvData = (ENV_DATA*)psSysData->pvEnvSpecificData;
-
-	if (psEnvData->bMISRInstalled)
-	{
-		queue_work(psEnvData->psWorkQueue, &psEnvData->sMISRWork);
-	}
-
-	return PVRSRV_OK;	
-}
-#else	
-#if defined(PVR_LINUX_MISR_USING_WORKQUEUE)
-static void MISRWrapper(
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20))
-			void *data
-#else
-			struct work_struct *data
-#endif
-)
-{
-	ENV_DATA *psEnvData = container_of(data, ENV_DATA, sMISRWork);
-	SYS_DATA *psSysData  = (SYS_DATA *)psEnvData->pvMISRData;
-
-	PVRSRVMISR(psSysData);
-}
-
-
-PVRSRV_ERROR OSInstallMISR(IMG_VOID *pvSysData)
-{
-	SYS_DATA *psSysData = (SYS_DATA*)pvSysData;
-	ENV_DATA *psEnvData = (ENV_DATA *)psSysData->pvEnvSpecificData;
-
-	if (psEnvData->bMISRInstalled)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "OSInstallMISR: An MISR has already been installed"));
-		return PVRSRV_ERROR_ISR_ALREADY_INSTALLED;
-	}
-
-	PVR_TRACE(("Installing MISR with cookie %p", pvSysData));
-
-	INIT_WORK(&psEnvData->sMISRWork, MISRWrapper
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20))
-		, (void *)&psEnvData->sMISRWork
-#endif
-				);
-
-	psEnvData->pvMISRData = pvSysData;
-	psEnvData->bMISRInstalled = IMG_TRUE;
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR OSUninstallMISR(IMG_VOID *pvSysData)
-{
-	SYS_DATA *psSysData = (SYS_DATA*)pvSysData;
-	ENV_DATA *psEnvData = (ENV_DATA *)psSysData->pvEnvSpecificData;
-
-	if (!psEnvData->bMISRInstalled)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "OSUninstallMISR: No MISR has been installed"));
-		return PVRSRV_ERROR_ISR_NOT_INSTALLED;
-	}
-
-	PVR_TRACE(("Uninstalling MISR"));
-
-	flush_scheduled_work();
-
-	psEnvData->bMISRInstalled = IMG_FALSE;
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR OSScheduleMISR(IMG_VOID *pvSysData)
-{
-	SYS_DATA *psSysData = (SYS_DATA*)pvSysData;
-	ENV_DATA *psEnvData = (ENV_DATA*)psSysData->pvEnvSpecificData;
-
-	if (psEnvData->bMISRInstalled)
-	{
-		schedule_work(&psEnvData->sMISRWork);
-	}
-
-	return PVRSRV_OK;	
-}
-
-#else	
-
-
-static void MISRWrapper(unsigned long data)
-{
-    SYS_DATA *psSysData;
-
-    psSysData = (SYS_DATA *)data;
-    
-    PVRSRVMISR(psSysData);
-}
-
-
-PVRSRV_ERROR OSInstallMISR(IMG_VOID *pvSysData)
-{
-    SYS_DATA *psSysData = (SYS_DATA*)pvSysData;
-    ENV_DATA *psEnvData = (ENV_DATA *)psSysData->pvEnvSpecificData;
-
-    if (psEnvData->bMISRInstalled)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSInstallMISR: An MISR has already been installed"));
-        return PVRSRV_ERROR_ISR_ALREADY_INSTALLED;
-    }
-
-    PVR_TRACE(("Installing MISR with cookie %p", pvSysData));
-
-    tasklet_init(&psEnvData->sMISRTasklet, MISRWrapper, (unsigned long)pvSysData);
-
-    psEnvData->bMISRInstalled = IMG_TRUE;
-
-    return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR OSUninstallMISR(IMG_VOID *pvSysData)
-{
-    SYS_DATA *psSysData = (SYS_DATA*)pvSysData;
-    ENV_DATA *psEnvData = (ENV_DATA *)psSysData->pvEnvSpecificData;
-
-    if (!psEnvData->bMISRInstalled)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSUninstallMISR: No MISR has been installed"));
-        return PVRSRV_ERROR_ISR_NOT_INSTALLED;
-    }
-
-    PVR_TRACE(("Uninstalling MISR"));
-
-    tasklet_kill(&psEnvData->sMISRTasklet);
-
-    psEnvData->bMISRInstalled = IMG_FALSE;
-
-    return PVRSRV_OK;
-}
-
-PVRSRV_ERROR OSScheduleMISR(IMG_VOID *pvSysData)
-{
-    SYS_DATA *psSysData = (SYS_DATA*)pvSysData;
-    ENV_DATA *psEnvData = (ENV_DATA*)psSysData->pvEnvSpecificData;
-
-    if (psEnvData->bMISRInstalled)
-    {
-        tasklet_schedule(&psEnvData->sMISRTasklet);
-    }
-
-    return PVRSRV_OK;	
-}
-
-#endif 
-#endif 
-
-#endif 
-
-IMG_VOID OSPanic(IMG_VOID)
-{
-	BUG();
-}
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22))
-#define	OS_TAS(p)	xchg((p), 1)
-#else
-#define	OS_TAS(p)	tas(p)
-#endif
-PVRSRV_ERROR OSLockResource ( PVRSRV_RESOURCE 	*psResource,
-                                IMG_UINT32 			ui32ID)
-
-{
-    PVRSRV_ERROR eError = PVRSRV_OK;
-
-    if(!OS_TAS(&psResource->ui32Lock))
-        psResource->ui32ID = ui32ID;
-    else
-        eError = PVRSRV_ERROR_UNABLE_TO_LOCK_RESOURCE;
-
-    return eError;
-}
-
-
-PVRSRV_ERROR OSUnlockResource (PVRSRV_RESOURCE *psResource, IMG_UINT32 ui32ID)
-{
-    volatile IMG_UINT32 *pui32Access = (volatile IMG_UINT32 *)&psResource->ui32Lock;
-    PVRSRV_ERROR eError = PVRSRV_OK;
-
-    if(*pui32Access)
-    {
-        if(psResource->ui32ID == ui32ID)
-        {
-            psResource->ui32ID = 0;
-            smp_mb();
-            *pui32Access = 0;
-        }
-        else
-        {
-            PVR_DPF((PVR_DBG_ERROR,"OSUnlockResource: Resource %p is not locked with expected value.", psResource)); 
-            PVR_DPF((PVR_DBG_MESSAGE,"Should be %x is actually %x", ui32ID, psResource->ui32ID));
-            eError = PVRSRV_ERROR_INVALID_LOCK_ID;
-        }
-    }
-    else
-    {
-        PVR_DPF((PVR_DBG_ERROR,"OSUnlockResource: Resource %p is not locked", psResource));
-        eError = PVRSRV_ERROR_RESOURCE_NOT_LOCKED;
-    }
-    
-    return eError;
-}
-
-
-IMG_BOOL OSIsResourceLocked (PVRSRV_RESOURCE *psResource, IMG_UINT32 ui32ID)
-{
-    volatile IMG_UINT32 *pui32Access = (volatile IMG_UINT32 *)&psResource->ui32Lock;
-
-    return 	(*(volatile IMG_UINT32 *)pui32Access == 1) && (psResource->ui32ID == ui32ID)
-            ?	IMG_TRUE
-            :	IMG_FALSE;
-}
-
-
-#if !defined(SYS_CUSTOM_POWERLOCK_WRAP)
-PVRSRV_ERROR OSPowerLockWrap(IMG_BOOL bTryLock)
-{
-	PVR_UNREFERENCED_PARAMETER(bTryLock);	
-
-	return PVRSRV_OK;
-}
-
-IMG_VOID OSPowerLockUnwrap (IMG_VOID)
-{
-}
-#endif 
-
-
-IMG_CPU_PHYADDR OSMapLinToCPUPhys(IMG_HANDLE hOSMemHandle,
-								  IMG_VOID *pvLinAddr)
-{
-    IMG_CPU_PHYADDR CpuPAddr;
-    LinuxMemArea *psLinuxMemArea;
-	IMG_UINTPTR_T uiByteOffset;
-	IMG_UINT32 ui32ByteOffset;
-
-	PVR_ASSERT(hOSMemHandle != IMG_NULL);
-
-	
-
-	psLinuxMemArea = (LinuxMemArea *)hOSMemHandle;
-
-	uiByteOffset = (IMG_UINTPTR_T)pvLinAddr - (IMG_UINTPTR_T)LinuxMemAreaToCpuVAddr(psLinuxMemArea);
-	ui32ByteOffset = (IMG_UINT32)uiByteOffset;
-
-	CpuPAddr = LinuxMemAreaToCpuPAddr(hOSMemHandle, ui32ByteOffset);
-
-	return CpuPAddr;
-}
-
-
-IMG_VOID *
-OSMapPhysToLin(IMG_CPU_PHYADDR BasePAddr,
-               IMG_UINT32 ui32Bytes,
-               IMG_UINT32 ui32MappingFlags,
-               IMG_HANDLE *phOSMemHandle)
-{
-    if(ui32MappingFlags & PVRSRV_HAP_KERNEL_ONLY)
-    {
-	
-	if(phOSMemHandle == IMG_NULL)
-	{
-		IMG_VOID *pvIORemapCookie;
-		pvIORemapCookie = IORemapWrapper(BasePAddr, ui32Bytes, ui32MappingFlags);
-		if(pvIORemapCookie == IMG_NULL)
-		{
-		    return IMG_NULL;
-		}
-		return pvIORemapCookie;
-	}
-	else
-	{
-		LinuxMemArea *psLinuxMemArea = NewIORemapLinuxMemArea(BasePAddr, ui32Bytes, ui32MappingFlags);
-
-		if(psLinuxMemArea == IMG_NULL)
-		{
-		    return IMG_NULL;
-		}
-
-		*phOSMemHandle = (IMG_HANDLE)psLinuxMemArea;
-		return LinuxMemAreaToCpuVAddr(psLinuxMemArea);
-	}
-    }
-
-    PVR_DPF((PVR_DBG_ERROR,
-             "OSMapPhysToLin should only be used with PVRSRV_HAP_KERNEL_ONLY "
-             " (Use OSReservePhys otherwise)"));
-
-    return IMG_NULL;
-}
-
-IMG_BOOL
-OSUnMapPhysToLin(IMG_VOID *pvLinAddr, IMG_UINT32 ui32Bytes, IMG_UINT32 ui32MappingFlags, IMG_HANDLE hOSMemHandle)
-{
-    PVR_TRACE(("%s: unmapping %d bytes from %p", __FUNCTION__, ui32Bytes, pvLinAddr));
-
-    PVR_UNREFERENCED_PARAMETER(ui32Bytes);	
-
-    if(ui32MappingFlags & PVRSRV_HAP_KERNEL_ONLY)
-    {
-        if (hOSMemHandle == IMG_NULL)
-	{
-		IOUnmapWrapper(pvLinAddr);
-	}
-	else
-	{
-		LinuxMemArea *psLinuxMemArea = (LinuxMemArea *)hOSMemHandle;
-
-		PVR_ASSERT(LinuxMemAreaToCpuVAddr(psLinuxMemArea) == pvLinAddr);
-		
-		FreeIORemapLinuxMemArea(psLinuxMemArea);
-	}
-
-        return IMG_TRUE;
-    }
-
-    PVR_DPF((PVR_DBG_ERROR,
-                 "OSUnMapPhysToLin should only be used with PVRSRV_HAP_KERNEL_ONLY "
-                 " (Use OSUnReservePhys otherwise)"));
-    return IMG_FALSE;
-}
-
-static PVRSRV_ERROR
-RegisterExternalMem(IMG_SYS_PHYADDR *pBasePAddr,
-          IMG_VOID *pvCPUVAddr,
-              IMG_UINT32 ui32Bytes,
-          IMG_BOOL bPhysContig,
-              IMG_UINT32 ui32MappingFlags,
-              IMG_HANDLE *phOSMemHandle)
-{
-    LinuxMemArea *psLinuxMemArea;
-
-    switch(ui32MappingFlags & PVRSRV_HAP_MAPTYPE_MASK)
-    {
-        case PVRSRV_HAP_KERNEL_ONLY:
-        {
-        psLinuxMemArea = NewExternalKVLinuxMemArea(pBasePAddr, pvCPUVAddr, ui32Bytes, bPhysContig, ui32MappingFlags);
-        
-            if(!psLinuxMemArea)
-            {
-                return PVRSRV_ERROR_BAD_MAPPING;
-            }
-            break;
-        }
-        case PVRSRV_HAP_SINGLE_PROCESS:
-        {
-        psLinuxMemArea = NewExternalKVLinuxMemArea(pBasePAddr, pvCPUVAddr, ui32Bytes, bPhysContig, ui32MappingFlags);
-
-            if(!psLinuxMemArea)
-            {
-                return PVRSRV_ERROR_BAD_MAPPING;
-            }
-            PVRMMapRegisterArea(psLinuxMemArea);
-            break;
-        }
-        case PVRSRV_HAP_MULTI_PROCESS:
-        {
-            
-#if defined(VIVT_CACHE) || defined(__sh__)
-            
-            ui32MappingFlags &= ~PVRSRV_HAP_CACHED;
-#endif
-        psLinuxMemArea = NewExternalKVLinuxMemArea(pBasePAddr, pvCPUVAddr, ui32Bytes, bPhysContig, ui32MappingFlags);
-
-            if(!psLinuxMemArea)
-            {
-                return PVRSRV_ERROR_BAD_MAPPING;
-            }
-            PVRMMapRegisterArea(psLinuxMemArea);
-            break;
-        }
-        default:
-            PVR_DPF((PVR_DBG_ERROR,"OSRegisterMem : invalid flags 0x%x\n", ui32MappingFlags));
-            *phOSMemHandle = (IMG_HANDLE)0;
-            return PVRSRV_ERROR_INVALID_FLAGS;
-    }
-    
-    *phOSMemHandle = (IMG_HANDLE)psLinuxMemArea;
-
-    LinuxMemAreaRegister(psLinuxMemArea);
-
-    return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR
-OSRegisterMem(IMG_CPU_PHYADDR BasePAddr,
-              IMG_VOID *pvCPUVAddr,
-              IMG_UINT32 ui32Bytes,
-              IMG_UINT32 ui32MappingFlags,
-              IMG_HANDLE *phOSMemHandle)
-{
-    IMG_SYS_PHYADDR SysPAddr = SysCpuPAddrToSysPAddr(BasePAddr);
-
-    return RegisterExternalMem(&SysPAddr, pvCPUVAddr, ui32Bytes, IMG_TRUE, ui32MappingFlags, phOSMemHandle);
-}
-
-
-PVRSRV_ERROR OSRegisterDiscontigMem(IMG_SYS_PHYADDR *pBasePAddr, IMG_VOID *pvCPUVAddr, IMG_UINT32 ui32Bytes, IMG_UINT32 ui32MappingFlags, IMG_HANDLE *phOSMemHandle)
-{
-    return RegisterExternalMem(pBasePAddr, pvCPUVAddr, ui32Bytes, IMG_FALSE, ui32MappingFlags, phOSMemHandle);
-}
-
-
-PVRSRV_ERROR
-OSUnRegisterMem (IMG_VOID *pvCpuVAddr,
-                IMG_UINT32 ui32Bytes,
-                IMG_UINT32 ui32MappingFlags,
-                IMG_HANDLE hOSMemHandle)
-{
-    LinuxMemArea *psLinuxMemArea = (LinuxMemArea *)hOSMemHandle;
-    PVRSRV_ERROR eError;
-
-    PVR_UNREFERENCED_PARAMETER(pvCpuVAddr);
-    PVR_UNREFERENCED_PARAMETER(ui32Bytes);
-
-    switch(ui32MappingFlags & PVRSRV_HAP_MAPTYPE_MASK)
-    {
-        case PVRSRV_HAP_KERNEL_ONLY:
-            break;
-        case PVRSRV_HAP_SINGLE_PROCESS:
-        case PVRSRV_HAP_MULTI_PROCESS:
-        {
-            eError = PVRMMapRemoveRegisteredArea(psLinuxMemArea);
-            if (eError != PVRSRV_OK)
-            {
-                 PVR_DPF((PVR_DBG_ERROR, "%s(%p, %d, 0x%08X, %p) FAILED!",
-                          __FUNCTION__, pvCpuVAddr, ui32Bytes,
-                          ui32MappingFlags, hOSMemHandle));
-                return eError;
-            }
-            break;
-        }
-        default:
-        {
-            PVR_DPF((PVR_DBG_ERROR, "OSUnRegisterMem : invalid flags 0x%x", ui32MappingFlags));
-            return PVRSRV_ERROR_INVALID_PARAMS;
-        }
-    }
-
-    LinuxMemAreaDeepFree(psLinuxMemArea);
-
-    return PVRSRV_OK;
-}
-
-PVRSRV_ERROR OSUnRegisterDiscontigMem(IMG_VOID *pvCpuVAddr, IMG_UINT32 ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle)
-{
-    return OSUnRegisterMem(pvCpuVAddr, ui32Bytes, ui32Flags, hOSMemHandle);
-}
-
-PVRSRV_ERROR
-OSReservePhys(IMG_CPU_PHYADDR BasePAddr,
-              IMG_UINT32 ui32Bytes,
-              IMG_UINT32 ui32MappingFlags,
-              IMG_VOID **ppvCpuVAddr,
-              IMG_HANDLE *phOSMemHandle)
-{
-    LinuxMemArea *psLinuxMemArea;
-
-#if 0
-    
-    if(ui32MappingFlags & PVRSRV_HAP_SINGLE_PROCESS)
-    {
-        ui32MappingFlags &= ~PVRSRV_HAP_SINGLE_PROCESS;
-        ui32MappingFlags |= PVRSRV_HAP_MULTI_PROCESS;
-    }
-#endif
-
-    switch(ui32MappingFlags & PVRSRV_HAP_MAPTYPE_MASK)
-    {
-        case PVRSRV_HAP_KERNEL_ONLY:
-        {
-            
-            psLinuxMemArea = NewIORemapLinuxMemArea(BasePAddr, ui32Bytes, ui32MappingFlags);
-            if(!psLinuxMemArea)
-            {
-                return PVRSRV_ERROR_BAD_MAPPING;
-            }
-            break;
-        }
-        case PVRSRV_HAP_SINGLE_PROCESS:
-        {
-            
-            psLinuxMemArea = NewIOLinuxMemArea(BasePAddr, ui32Bytes, ui32MappingFlags);
-            if(!psLinuxMemArea)
-            {
-                return PVRSRV_ERROR_BAD_MAPPING;
-            }
-            PVRMMapRegisterArea(psLinuxMemArea);
-            break;
-        }
-        case PVRSRV_HAP_MULTI_PROCESS:
-        {
-            
-#if defined(VIVT_CACHE) || defined(__sh__)
-            
-            ui32MappingFlags &= ~PVRSRV_HAP_CACHED;
-#endif
-            psLinuxMemArea = NewIORemapLinuxMemArea(BasePAddr, ui32Bytes, ui32MappingFlags);
-            if(!psLinuxMemArea)
-            {
-                return PVRSRV_ERROR_BAD_MAPPING;
-            }
-            PVRMMapRegisterArea(psLinuxMemArea);
-            break;
-        }
-        default:
-            PVR_DPF((PVR_DBG_ERROR,"OSMapPhysToLin : invalid flags 0x%x\n", ui32MappingFlags));
-            *ppvCpuVAddr = NULL;
-            *phOSMemHandle = (IMG_HANDLE)0;
-            return PVRSRV_ERROR_INVALID_FLAGS;
-    }
-
-    *phOSMemHandle = (IMG_HANDLE)psLinuxMemArea;
-    *ppvCpuVAddr = LinuxMemAreaToCpuVAddr(psLinuxMemArea);
-
-    LinuxMemAreaRegister(psLinuxMemArea);
-
-    return PVRSRV_OK;
-}
-
-PVRSRV_ERROR
-OSUnReservePhys(IMG_VOID *pvCpuVAddr,
-                IMG_UINT32 ui32Bytes,
-                IMG_UINT32 ui32MappingFlags,
-                IMG_HANDLE hOSMemHandle)
-{
-    LinuxMemArea *psLinuxMemArea;
-    PVRSRV_ERROR eError;
-
-    PVR_UNREFERENCED_PARAMETER(pvCpuVAddr);
-    PVR_UNREFERENCED_PARAMETER(ui32Bytes);
-
-    psLinuxMemArea = (LinuxMemArea *)hOSMemHandle;
-    
-    switch(ui32MappingFlags & PVRSRV_HAP_MAPTYPE_MASK)
-    {
-        case PVRSRV_HAP_KERNEL_ONLY:
-            break;
-        case PVRSRV_HAP_SINGLE_PROCESS:
-        case PVRSRV_HAP_MULTI_PROCESS:
-        {
-            eError = PVRMMapRemoveRegisteredArea(psLinuxMemArea);
-            if (eError != PVRSRV_OK)
-            {
-                 PVR_DPF((PVR_DBG_ERROR, "%s(%p, %d, 0x%08X, %p) FAILED!",
-                          __FUNCTION__, pvCpuVAddr, ui32Bytes,
-                          ui32MappingFlags, hOSMemHandle));
-                return eError;
-            }
-            break;
-        }
-        default:
-        {
-            PVR_DPF((PVR_DBG_ERROR, "OSUnMapPhysToLin : invalid flags 0x%x", ui32MappingFlags));
-            return PVRSRV_ERROR_INVALID_PARAMS;
-        }
-    }
-    
-    LinuxMemAreaDeepFree(psLinuxMemArea);
-
-    return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR OSBaseAllocContigMemory(IMG_UINT32 ui32Size, IMG_CPU_VIRTADDR *pvLinAddr, IMG_CPU_PHYADDR *psPhysAddr)
-{
-#if !defined(NO_HARDWARE)
-    PVR_UNREFERENCED_PARAMETER(ui32Size);
-    PVR_UNREFERENCED_PARAMETER(pvLinAddr);
-    PVR_UNREFERENCED_PARAMETER(psPhysAddr);
-    PVR_DPF((PVR_DBG_ERROR, "%s: Not available", __FUNCTION__));
-
-    return PVRSRV_ERROR_OUT_OF_MEMORY;
-#else
-    IMG_VOID *pvKernLinAddr;
-
-#if defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-    pvKernLinAddr = _KMallocWrapper(ui32Size, GFP_KERNEL, __FILE__, __LINE__);
-#else
-    pvKernLinAddr = KMallocWrapper(ui32Size, GFP_KERNEL);
-#endif
-    if (!pvKernLinAddr)
-    {
-    return PVRSRV_ERROR_OUT_OF_MEMORY;
-    }
-
-    *pvLinAddr = pvKernLinAddr;
-
-    psPhysAddr->uiAddr = virt_to_phys(pvKernLinAddr);
-
-    return PVRSRV_OK;
-#endif	
-}
-
-
-PVRSRV_ERROR OSBaseFreeContigMemory(IMG_UINT32 ui32Size, IMG_CPU_VIRTADDR pvLinAddr, IMG_CPU_PHYADDR psPhysAddr)
-{
-#if !defined(NO_HARDWARE)
-    PVR_UNREFERENCED_PARAMETER(ui32Size);
-    PVR_UNREFERENCED_PARAMETER(pvLinAddr);
-    PVR_UNREFERENCED_PARAMETER(psPhysAddr.uiAddr);
-
-    PVR_DPF((PVR_DBG_WARNING, "%s: Not available", __FUNCTION__));
-#else
-    PVR_UNREFERENCED_PARAMETER(ui32Size);
-    PVR_UNREFERENCED_PARAMETER(psPhysAddr.uiAddr);
-
-    KFreeWrapper(pvLinAddr);
-#endif
-    return PVRSRV_OK;
-}
-
-IMG_UINT32 OSReadHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset)
-{
-#if !defined(NO_HARDWARE)
-    return (IMG_UINT32) readl((IMG_PBYTE)pvLinRegBaseAddr+ui32Offset);
-#else
-    return *(IMG_UINT32 *)((IMG_PBYTE)pvLinRegBaseAddr+ui32Offset);
-#endif
-}
-
-IMG_VOID OSWriteHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset, IMG_UINT32 ui32Value)
-{
-#if !defined(NO_HARDWARE)
-    writel(ui32Value, (IMG_PBYTE)pvLinRegBaseAddr+ui32Offset);
-#else
-    *(IMG_UINT32 *)((IMG_PBYTE)pvLinRegBaseAddr+ui32Offset) = ui32Value;
-#endif
-}
-
-#if defined(CONFIG_PCI) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14))
-
-PVRSRV_PCI_DEV_HANDLE OSPCISetDev(IMG_VOID *pvPCICookie, HOST_PCI_INIT_FLAGS eFlags)
-{
-    int err;
-    IMG_UINT32 i;
-    PVR_PCI_DEV *psPVRPCI;
-
-    PVR_TRACE(("OSPCISetDev"));
-
-    if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(*psPVRPCI), (IMG_VOID **)&psPVRPCI, IMG_NULL,
-        "PCI Device") != PVRSRV_OK)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSPCISetDev: Couldn't allocate PVR PCI structure"));
-        return IMG_NULL;
-    }
-
-    psPVRPCI->psPCIDev = (struct pci_dev *)pvPCICookie;
-    psPVRPCI->ePCIFlags = eFlags;
-
-    err = pci_enable_device(psPVRPCI->psPCIDev);
-    if (err != 0)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSPCISetDev: Couldn't enable device (%d)", err));
-        return IMG_NULL;
-    }
-
-    if (psPVRPCI->ePCIFlags & HOST_PCI_INIT_FLAG_BUS_MASTER)	 
-    {
-        pci_set_master(psPVRPCI->psPCIDev);
-    }
-
-    if (psPVRPCI->ePCIFlags & HOST_PCI_INIT_FLAG_MSI)		 
-    {
-#if defined(CONFIG_PCI_MSI)
-        err = pci_enable_msi(psPVRPCI->psPCIDev);
-        if (err != 0)
-        {
-            PVR_DPF((PVR_DBG_WARNING, "OSPCISetDev: Couldn't enable MSI (%d)", err));
-            psPVRPCI->ePCIFlags &= ~HOST_PCI_INIT_FLAG_MSI;	 
-        }
-#else
-        PVR_DPF((PVR_DBG_WARNING, "OSPCISetDev: MSI support not enabled in the kernel"));
-#endif
-    }
-
-    
-    for (i = 0; i < DEVICE_COUNT_RESOURCE; i++)
-    {
-        psPVRPCI->abPCIResourceInUse[i] = IMG_FALSE;
-    }
-
-    return (PVRSRV_PCI_DEV_HANDLE)psPVRPCI;
-}
-
-PVRSRV_PCI_DEV_HANDLE OSPCIAcquireDev(IMG_UINT16 ui16VendorID, IMG_UINT16 ui16DeviceID, HOST_PCI_INIT_FLAGS eFlags)
-{
-    struct pci_dev *psPCIDev;
-
-    psPCIDev = pci_get_device(ui16VendorID, ui16DeviceID, NULL);
-    if (psPCIDev == NULL)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSPCIAcquireDev: Couldn't acquire device"));
-        return IMG_NULL;
-    }
-
-    return OSPCISetDev((IMG_VOID *)psPCIDev, eFlags);
-}
-
-PVRSRV_ERROR OSPCIIRQ(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 *pui32IRQ)
-{
-    PVR_PCI_DEV *psPVRPCI = (PVR_PCI_DEV *)hPVRPCI;
-
-    *pui32IRQ = psPVRPCI->psPCIDev->irq;
-
-    return PVRSRV_OK;
-}
-
-enum HOST_PCI_ADDR_RANGE_FUNC
-{
-    HOST_PCI_ADDR_RANGE_FUNC_LEN,
-    HOST_PCI_ADDR_RANGE_FUNC_START,
-    HOST_PCI_ADDR_RANGE_FUNC_END,
-    HOST_PCI_ADDR_RANGE_FUNC_REQUEST,
-    HOST_PCI_ADDR_RANGE_FUNC_RELEASE
-};
-
-static IMG_UINT32 OSPCIAddrRangeFunc(enum HOST_PCI_ADDR_RANGE_FUNC eFunc,
-                                     PVRSRV_PCI_DEV_HANDLE hPVRPCI,
-                                     IMG_UINT32 ui32Index)
-{
-    PVR_PCI_DEV *psPVRPCI = (PVR_PCI_DEV *)hPVRPCI;
-
-    if (ui32Index >= DEVICE_COUNT_RESOURCE)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSPCIAddrRangeFunc: Index out of range"));
-        return 0;
-
-    }
-
-    switch (eFunc)
-    {
-        case HOST_PCI_ADDR_RANGE_FUNC_LEN:
-            return pci_resource_len(psPVRPCI->psPCIDev, ui32Index);
-        case HOST_PCI_ADDR_RANGE_FUNC_START:
-            return pci_resource_start(psPVRPCI->psPCIDev, ui32Index);
-        case HOST_PCI_ADDR_RANGE_FUNC_END:
-            return pci_resource_end(psPVRPCI->psPCIDev, ui32Index);
-        case HOST_PCI_ADDR_RANGE_FUNC_REQUEST:
-        {
-            int err;
-
-            err = pci_request_region(psPVRPCI->psPCIDev, (IMG_INT)ui32Index, PVRSRV_MODNAME);
-            if (err != 0)
-            {
-                PVR_DPF((PVR_DBG_ERROR, "OSPCIAddrRangeFunc: pci_request_region_failed (%d)", err));
-                return 0;
-            }
-            psPVRPCI->abPCIResourceInUse[ui32Index] = IMG_TRUE;
-            return 1;
-        }
-        case HOST_PCI_ADDR_RANGE_FUNC_RELEASE:
-            if (psPVRPCI->abPCIResourceInUse[ui32Index])
-            {
-                pci_release_region(psPVRPCI->psPCIDev, (IMG_INT)ui32Index);
-                psPVRPCI->abPCIResourceInUse[ui32Index] = IMG_FALSE;
-            }
-            return 1;
-        default:
-            PVR_DPF((PVR_DBG_ERROR, "OSPCIAddrRangeFunc: Unknown function"));
-            break;
-    }
-
-    return 0;
-}
-
-IMG_UINT32 OSPCIAddrRangeLen(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 ui32Index)
-{
-    return OSPCIAddrRangeFunc(HOST_PCI_ADDR_RANGE_FUNC_LEN, hPVRPCI, ui32Index); 
-}
-
-IMG_UINT32 OSPCIAddrRangeStart(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 ui32Index)
-{
-    return OSPCIAddrRangeFunc(HOST_PCI_ADDR_RANGE_FUNC_START, hPVRPCI, ui32Index); 
-}
-
-IMG_UINT32 OSPCIAddrRangeEnd(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 ui32Index)
-{
-    return OSPCIAddrRangeFunc(HOST_PCI_ADDR_RANGE_FUNC_END, hPVRPCI, ui32Index); 
-}
-
-PVRSRV_ERROR OSPCIRequestAddrRange(PVRSRV_PCI_DEV_HANDLE hPVRPCI,
-                                   IMG_UINT32 ui32Index)
-{
-    return OSPCIAddrRangeFunc(HOST_PCI_ADDR_RANGE_FUNC_REQUEST, hPVRPCI, ui32Index) == 0 ? PVRSRV_ERROR_PCI_CALL_FAILED : PVRSRV_OK;
-}
-
-PVRSRV_ERROR OSPCIReleaseAddrRange(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 ui32Index)
-{
-    return OSPCIAddrRangeFunc(HOST_PCI_ADDR_RANGE_FUNC_RELEASE, hPVRPCI, ui32Index) == 0 ? PVRSRV_ERROR_PCI_CALL_FAILED : PVRSRV_OK;
-}
-
-PVRSRV_ERROR OSPCIReleaseDev(PVRSRV_PCI_DEV_HANDLE hPVRPCI)
-{
-    PVR_PCI_DEV *psPVRPCI = (PVR_PCI_DEV *)hPVRPCI;
-    int i;
-
-    PVR_TRACE(("OSPCIReleaseDev"));
-
-    
-    for (i = 0; i < DEVICE_COUNT_RESOURCE; i++)
-    {
-        if (psPVRPCI->abPCIResourceInUse[i])
-        {
-            PVR_TRACE(("OSPCIReleaseDev: Releasing Address range %d", i));
-            pci_release_region(psPVRPCI->psPCIDev, i);
-            psPVRPCI->abPCIResourceInUse[i] = IMG_FALSE;
-        }
-    }
-
-#if defined(CONFIG_PCI_MSI)
-    if (psPVRPCI->ePCIFlags & HOST_PCI_INIT_FLAG_MSI)		 
-    {
-        pci_disable_msi(psPVRPCI->psPCIDev);
-    }
-#endif
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
-    if (psPVRPCI->ePCIFlags & HOST_PCI_INIT_FLAG_BUS_MASTER)	 
-    {
-        pci_clear_master(psPVRPCI->psPCIDev);
-    }
-#endif
-    pci_disable_device(psPVRPCI->psPCIDev);
-
-    OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(*psPVRPCI), (IMG_VOID *)psPVRPCI, IMG_NULL);
-	
-
-    return PVRSRV_OK;
-}
-
-PVRSRV_ERROR OSPCISuspendDev(PVRSRV_PCI_DEV_HANDLE hPVRPCI)
-{
-    PVR_PCI_DEV *psPVRPCI = (PVR_PCI_DEV *)hPVRPCI;
-    int i;
-    int err;
-
-    PVR_TRACE(("OSPCISuspendDev"));
-
-    
-    for (i = 0; i < DEVICE_COUNT_RESOURCE; i++)
-    {
-        if (psPVRPCI->abPCIResourceInUse[i])
-        {
-            pci_release_region(psPVRPCI->psPCIDev, i);
-        }
-    }
-
-    err = pci_save_state(psPVRPCI->psPCIDev);
-    if (err != 0)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSPCISuspendDev: pci_save_state_failed (%d)", err));
-        return PVRSRV_ERROR_PCI_CALL_FAILED;
-    }
-
-    pci_disable_device(psPVRPCI->psPCIDev);
-
-    err = pci_set_power_state(psPVRPCI->psPCIDev, pci_choose_state(psPVRPCI->psPCIDev, PMSG_SUSPEND));
-    switch(err)
-    {
-        case 0:
-            break;
-        case -EIO:
-            PVR_DPF((PVR_DBG_WARNING, "OSPCISuspendDev: device doesn't support PCI PM"));
-            break;
-        case -EINVAL:
-            PVR_DPF((PVR_DBG_ERROR, "OSPCISuspendDev: can't enter requested power state"));
-            break;
-        default:
-            PVR_DPF((PVR_DBG_ERROR, "OSPCISuspendDev: pci_set_power_state failed (%d)", err));
-            break;
-    }
-
-    return PVRSRV_OK;
-}
-
-PVRSRV_ERROR OSPCIResumeDev(PVRSRV_PCI_DEV_HANDLE hPVRPCI)
-{
-    PVR_PCI_DEV *psPVRPCI = (PVR_PCI_DEV *)hPVRPCI;
-    int err;
-    int i;
-
-    PVR_TRACE(("OSPCIResumeDev"));
-
-    err = pci_set_power_state(psPVRPCI->psPCIDev, pci_choose_state(psPVRPCI->psPCIDev, PMSG_ON));
-    switch(err)
-    {
-        case 0:
-            break;
-        case -EIO:
-            PVR_DPF((PVR_DBG_WARNING, "OSPCIResumeDev: device doesn't support PCI PM"));
-            break;
-        case -EINVAL:
-            PVR_DPF((PVR_DBG_ERROR, "OSPCIResumeDev: can't enter requested power state"));
-            return PVRSRV_ERROR_UNKNOWN_POWER_STATE;
-        default:
-            PVR_DPF((PVR_DBG_ERROR, "OSPCIResumeDev: pci_set_power_state failed (%d)", err));
-            return PVRSRV_ERROR_UNKNOWN_POWER_STATE;
-    }
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38))
-    pci_restore_state(psPVRPCI->psPCIDev);
-#else
-    err = pci_restore_state(psPVRPCI->psPCIDev);
-    if (err != 0)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSPCIResumeDev: pci_restore_state failed (%d)", err));
-        return PVRSRV_ERROR_PCI_CALL_FAILED;
-    }
-#endif
-
-    err = pci_enable_device(psPVRPCI->psPCIDev);
-    if (err != 0)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSPCIResumeDev: Couldn't enable device (%d)", err));
-        return PVRSRV_ERROR_PCI_CALL_FAILED;
-    }
-
-    if (psPVRPCI->ePCIFlags & HOST_PCI_INIT_FLAG_BUS_MASTER)	 
-        pci_set_master(psPVRPCI->psPCIDev);
-
-    
-    for (i = 0; i < DEVICE_COUNT_RESOURCE; i++)
-    {
-        if (psPVRPCI->abPCIResourceInUse[i])
-        {
-            err = pci_request_region(psPVRPCI->psPCIDev, i, PVRSRV_MODNAME);
-            if (err != 0)
-            {
-                PVR_DPF((PVR_DBG_ERROR, "OSPCIResumeDev: pci_request_region_failed (region %d, error %d)", i, err));
-            }
-        }
-
-    }
-
-    return PVRSRV_OK;
-}
-
-#endif 
-
-#define	OS_MAX_TIMERS	8
-
-typedef struct TIMER_CALLBACK_DATA_TAG
-{
-    IMG_BOOL			bInUse;
-    PFN_TIMER_FUNC		pfnTimerFunc;
-    IMG_VOID 			*pvData;	
-    struct timer_list		sTimer;
-    IMG_UINT32			ui32Delay;
-    IMG_BOOL			bActive;
-#if defined(PVR_LINUX_TIMERS_USING_WORKQUEUES) || defined(PVR_LINUX_TIMERS_USING_SHARED_WORKQUEUE)
-    struct work_struct		sWork;
-#endif
-}TIMER_CALLBACK_DATA;
-
-#if defined(PVR_LINUX_TIMERS_USING_WORKQUEUES)
-static struct workqueue_struct	*psTimerWorkQueue;
-#endif
-
-static TIMER_CALLBACK_DATA sTimers[OS_MAX_TIMERS];
-
-#if defined(PVR_LINUX_TIMERS_USING_WORKQUEUES) || defined(PVR_LINUX_TIMERS_USING_SHARED_WORKQUEUE)
-DEFINE_MUTEX(sTimerStructLock);
-#else
- 
-static spinlock_t sTimerStructLock = __SPIN_LOCK_UNLOCKED(sTimerStructLock);
-#endif
-
-static void OSTimerCallbackBody(TIMER_CALLBACK_DATA *psTimerCBData)
-{
-    if (!psTimerCBData->bActive)
-        return;
-
-    
-    psTimerCBData->pfnTimerFunc(psTimerCBData->pvData);
-    
-    
-    mod_timer(&psTimerCBData->sTimer, psTimerCBData->ui32Delay + jiffies);
-}
-
-
-static IMG_VOID OSTimerCallbackWrapper(IMG_UINT32 ui32Data)
-{
-    TIMER_CALLBACK_DATA	*psTimerCBData = (TIMER_CALLBACK_DATA*)ui32Data;
-    
-#if defined(PVR_LINUX_TIMERS_USING_WORKQUEUES) || defined(PVR_LINUX_TIMERS_USING_SHARED_WORKQUEUE)
-    int res;
-
-#if defined(PVR_LINUX_TIMERS_USING_WORKQUEUES)
-    res = queue_work(psTimerWorkQueue, &psTimerCBData->sWork);
-#else
-    res = schedule_work(&psTimerCBData->sWork);
-#endif
-    if (res == 0)
-    {
-        PVR_DPF((PVR_DBG_WARNING, "OSTimerCallbackWrapper: work already queued"));		
-    }
-#else
-    OSTimerCallbackBody(psTimerCBData);
-#endif
-}
-
-
-#if defined(PVR_LINUX_TIMERS_USING_WORKQUEUES) || defined(PVR_LINUX_TIMERS_USING_SHARED_WORKQUEUE)
-static void OSTimerWorkQueueCallBack(struct work_struct *psWork)
-{
-    TIMER_CALLBACK_DATA *psTimerCBData = container_of(psWork, TIMER_CALLBACK_DATA, sWork);
-
-    OSTimerCallbackBody(psTimerCBData);
-}
-#endif
-
-IMG_HANDLE OSAddTimer(PFN_TIMER_FUNC pfnTimerFunc, IMG_VOID *pvData, IMG_UINT32 ui32MsTimeout)
-{
-    TIMER_CALLBACK_DATA	*psTimerCBData;
-    IMG_UINT32		ui32i;
-#if !(defined(PVR_LINUX_TIMERS_USING_WORKQUEUES) || defined(PVR_LINUX_TIMERS_USING_SHARED_WORKQUEUE))
-    unsigned long		ulLockFlags;
-#endif
-
-    
-    if(!pfnTimerFunc)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSAddTimer: passed invalid callback"));		
-        return IMG_NULL;		
-    }
-    
-    
-#if defined(PVR_LINUX_TIMERS_USING_WORKQUEUES) || defined(PVR_LINUX_TIMERS_USING_SHARED_WORKQUEUE)
-    mutex_lock(&sTimerStructLock);
-#else
-    spin_lock_irqsave(&sTimerStructLock, ulLockFlags);
-#endif
-    for (ui32i = 0; ui32i < OS_MAX_TIMERS; ui32i++)
-    {
-        psTimerCBData = &sTimers[ui32i];
-        if (!psTimerCBData->bInUse)
-        {
-            psTimerCBData->bInUse = IMG_TRUE;
-            break;
-        }
-    }
-#if defined(PVR_LINUX_TIMERS_USING_WORKQUEUES) || defined(PVR_LINUX_TIMERS_USING_SHARED_WORKQUEUE)
-    mutex_unlock(&sTimerStructLock);
-#else
-    spin_unlock_irqrestore(&sTimerStructLock, ulLockFlags);
-#endif
-    if (ui32i >= OS_MAX_TIMERS)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSAddTimer: all timers are in use"));		
-        return IMG_NULL;	
-    }
-
-    psTimerCBData->pfnTimerFunc = pfnTimerFunc;
-    psTimerCBData->pvData = pvData;
-    psTimerCBData->bActive = IMG_FALSE;
-    
-    
-
-
-    psTimerCBData->ui32Delay = ((HZ * ui32MsTimeout) < 1000)
-                                ?	1
-                                :	((HZ * ui32MsTimeout) / 1000);
-    
-    init_timer(&psTimerCBData->sTimer);
-    
-    
-     
-    psTimerCBData->sTimer.function = (IMG_VOID *)OSTimerCallbackWrapper;
-    psTimerCBData->sTimer.data = (IMG_UINT32)psTimerCBData;
-    
-    return (IMG_HANDLE)(ui32i + 1);
-}
-
-
-static inline TIMER_CALLBACK_DATA *GetTimerStructure(IMG_HANDLE hTimer)
-{
-    IMG_UINT32 ui32i = ((IMG_UINT32)hTimer) - 1;
-
-    PVR_ASSERT(ui32i < OS_MAX_TIMERS);
-
-    return &sTimers[ui32i];
-}
-
-PVRSRV_ERROR OSRemoveTimer (IMG_HANDLE hTimer)
-{
-    TIMER_CALLBACK_DATA *psTimerCBData = GetTimerStructure(hTimer);
-
-    PVR_ASSERT(psTimerCBData->bInUse);
-    PVR_ASSERT(!psTimerCBData->bActive);
-
-    
-    psTimerCBData->bInUse = IMG_FALSE;
-    
-    return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR OSEnableTimer (IMG_HANDLE hTimer)
-{
-    TIMER_CALLBACK_DATA *psTimerCBData = GetTimerStructure(hTimer);
-
-    PVR_ASSERT(psTimerCBData->bInUse);
-    PVR_ASSERT(!psTimerCBData->bActive);
-
-    
-    psTimerCBData->bActive = IMG_TRUE;
-
-    
-    psTimerCBData->sTimer.expires = psTimerCBData->ui32Delay + jiffies;
-
-    
-    add_timer(&psTimerCBData->sTimer);
-    
-    return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR OSDisableTimer (IMG_HANDLE hTimer)
-{
-    TIMER_CALLBACK_DATA *psTimerCBData = GetTimerStructure(hTimer);
-
-    PVR_ASSERT(psTimerCBData->bInUse);
-    PVR_ASSERT(psTimerCBData->bActive);
-
-    
-    psTimerCBData->bActive = IMG_FALSE;
-    smp_mb();
-
-#if defined(PVR_LINUX_TIMERS_USING_WORKQUEUES)
-    flush_workqueue(psTimerWorkQueue);
-#endif
-#if defined(PVR_LINUX_TIMERS_USING_SHARED_WORKQUEUE)
-    flush_scheduled_work();
-#endif
-
-    
-    del_timer_sync(&psTimerCBData->sTimer);	
-    
-#if defined(PVR_LINUX_TIMERS_USING_WORKQUEUES)
-    
-    flush_workqueue(psTimerWorkQueue);
-#endif
-#if defined(PVR_LINUX_TIMERS_USING_SHARED_WORKQUEUE)
-    flush_scheduled_work();
-#endif
-
-    return PVRSRV_OK;
-}
-
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR OSEventObjectCreateKM(const IMG_CHAR *pszName, PVRSRV_EVENTOBJECT_KM *psEventObject)
-#else
-PVRSRV_ERROR OSEventObjectCreateKM(const IMG_CHAR *pszName, PVRSRV_EVENTOBJECT *psEventObject)
-#endif
-{
-
-    PVRSRV_ERROR eError = PVRSRV_OK;
-    
-    if(psEventObject)
-    {
-        if(pszName)
-        {
-            
-            strncpy(psEventObject->szName, pszName, EVENTOBJNAME_MAXLENGTH);
-        }
-        else
-        {
-            	
-            static IMG_UINT16 ui16NameIndex = 0;			
-#if defined (SUPPORT_SID_INTERFACE)
-            snprintf(psEventObject->szName, EVENTOBJNAME_MAXLENGTH, "PVRSRV_EVENTOBJECT_KM_%d", ui16NameIndex++);
-#else
-            snprintf(psEventObject->szName, EVENTOBJNAME_MAXLENGTH, "PVRSRV_EVENTOBJECT_%d", ui16NameIndex++);
-#endif
-        }
-        
-        if(LinuxEventObjectListCreate(&psEventObject->hOSEventKM) != PVRSRV_OK)
-        {
-             eError = PVRSRV_ERROR_OUT_OF_MEMORY;	
-        }
-
-    }
-    else
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSEventObjectCreateKM: psEventObject is not a valid pointer"));
-        eError = PVRSRV_ERROR_UNABLE_TO_CREATE_EVENT;	
-    }
-    
-    return eError;
-
-}
-
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR OSEventObjectDestroyKM(PVRSRV_EVENTOBJECT_KM *psEventObject)
-#else
-PVRSRV_ERROR OSEventObjectDestroyKM(PVRSRV_EVENTOBJECT *psEventObject)
-#endif
-{
-    PVRSRV_ERROR eError = PVRSRV_OK;
-
-    if(psEventObject)
-    {
-        if(psEventObject->hOSEventKM)
-        {
-            LinuxEventObjectListDestroy(psEventObject->hOSEventKM);
-        }
-        else
-        {
-            PVR_DPF((PVR_DBG_ERROR, "OSEventObjectDestroyKM: hOSEventKM is not a valid pointer"));
-            eError = PVRSRV_ERROR_INVALID_PARAMS;
-        }
-    }
-    else
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSEventObjectDestroyKM: psEventObject is not a valid pointer"));
-        eError = PVRSRV_ERROR_INVALID_PARAMS;
-    }
-    
-    return eError;
-}
-
-PVRSRV_ERROR OSEventObjectWaitKM(IMG_HANDLE hOSEventKM)
-{
-    PVRSRV_ERROR eError;
-    
-    if(hOSEventKM)
-    {
-        eError = LinuxEventObjectWait(hOSEventKM, EVENT_OBJECT_TIMEOUT_MS);
-    }
-    else
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSEventObjectWaitKM: hOSEventKM is not a valid handle"));
-        eError = PVRSRV_ERROR_INVALID_PARAMS;
-    }
-    
-    return eError;
-}
-
-PVRSRV_ERROR OSEventObjectOpenKM(
-#if defined (SUPPORT_SID_INTERFACE)
-				 PVRSRV_EVENTOBJECT_KM *psEventObject,
-#else
-				 PVRSRV_EVENTOBJECT *psEventObject,
-#endif
-                                 IMG_HANDLE *phOSEvent)
-{
-    PVRSRV_ERROR eError = PVRSRV_OK;
-    
-    if(psEventObject)
-    {
-        if(LinuxEventObjectAdd(psEventObject->hOSEventKM, phOSEvent) != PVRSRV_OK)
-        {
-            PVR_DPF((PVR_DBG_ERROR, "LinuxEventObjectAdd: failed"));
-            eError = PVRSRV_ERROR_INVALID_PARAMS;
-        }
-
-    }
-    else
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSEventObjectCreateKM: psEventObject is not a valid pointer"));
-        eError = PVRSRV_ERROR_INVALID_PARAMS;
-    }
-    
-    return eError;
-}
-
-PVRSRV_ERROR OSEventObjectCloseKM(
-#if defined (SUPPORT_SID_INTERFACE)
-				  PVRSRV_EVENTOBJECT_KM *psEventObject,
-#else
-				  PVRSRV_EVENTOBJECT *psEventObject,
-#endif
-                                  IMG_HANDLE hOSEventKM)
-{
-    PVRSRV_ERROR eError = PVRSRV_OK;
-
-    if(psEventObject)
-    {
-        if(LinuxEventObjectDelete(psEventObject->hOSEventKM, hOSEventKM) != PVRSRV_OK)
-        {
-            PVR_DPF((PVR_DBG_ERROR, "LinuxEventObjectDelete: failed"));
-            eError = PVRSRV_ERROR_INVALID_PARAMS;
-        }
-
-    }
-    else
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSEventObjectDestroyKM: psEventObject is not a valid pointer"));
-        eError = PVRSRV_ERROR_INVALID_PARAMS;
-    }
-    
-    return eError;
-    
-}
-
-PVRSRV_ERROR OSEventObjectSignalKM(IMG_HANDLE hOSEventKM)
-{
-    PVRSRV_ERROR eError;
-    
-    if(hOSEventKM)
-    {
-        eError = LinuxEventObjectSignal(hOSEventKM);
-    }
-    else
-    {
-        PVR_DPF((PVR_DBG_ERROR, "OSEventObjectSignalKM: hOSEventKM is not a valid handle"));
-        eError = PVRSRV_ERROR_INVALID_PARAMS;
-    }
-    
-    return eError;
-}
-
-IMG_BOOL OSProcHasPrivSrvInit(IMG_VOID)
-{
-	/* Return true here so that we can run X as a non-root user. */
-	return IMG_TRUE;
-}
-
-PVRSRV_ERROR OSCopyToUser(IMG_PVOID pvProcess, 
-                          IMG_VOID *pvDest, 
-                          IMG_VOID *pvSrc, 
-                          IMG_UINT32 ui32Bytes)
-{
-    PVR_UNREFERENCED_PARAMETER(pvProcess);
-
-    if (copy_to_user(pvDest, pvSrc, ui32Bytes) == 0)
-        return PVRSRV_OK;
-    else
-        return PVRSRV_ERROR_FAILED_TO_COPY_VIRT_MEMORY;
-}
-
-PVRSRV_ERROR OSCopyFromUser( IMG_PVOID pvProcess, 
-                             IMG_VOID *pvDest, 
-                             IMG_VOID *pvSrc, 
-                             IMG_UINT32 ui32Bytes)
-{
-    PVR_UNREFERENCED_PARAMETER(pvProcess);
-
-    if (copy_from_user(pvDest, pvSrc, ui32Bytes) == 0)
-        return PVRSRV_OK;
-    else
-        return PVRSRV_ERROR_FAILED_TO_COPY_VIRT_MEMORY;
-}
-
-IMG_BOOL OSAccessOK(IMG_VERIFY_TEST eVerification, IMG_VOID *pvUserPtr, IMG_UINT32 ui32Bytes)
-{
-    if (eVerification == PVR_VERIFY_READ)
-    {
-	return access_ok(VERIFY_READ, pvUserPtr, ui32Bytes);
-    }
-    else
-    {
-        PVR_ASSERT(eVerification == PVR_VERIFY_WRITE);
-	return access_ok(VERIFY_WRITE, pvUserPtr, ui32Bytes);
-    }
-}
-
-typedef enum _eWrapMemType_
-{
-    WRAP_TYPE_NULL = 0,
-    WRAP_TYPE_GET_USER_PAGES,
-    WRAP_TYPE_FIND_VMA
-} eWrapMemType;
-
-typedef struct _sWrapMemInfo_
-{
-    eWrapMemType eType;
-    IMG_INT iNumPages;
-    IMG_INT iNumPagesMapped;
-    struct page **ppsPages;
-    IMG_SYS_PHYADDR *psPhysAddr;
-    IMG_INT iPageOffset;
-#if defined(DEBUG)
-    IMG_UINT32 ulStartAddr;
-    IMG_UINT32 ulBeyondEndAddr;
-    struct vm_area_struct *psVMArea;
-#endif
-} sWrapMemInfo;
-
-
-static IMG_BOOL CPUVAddrToPFN(struct vm_area_struct *psVMArea, IMG_UINT32 ulCPUVAddr, IMG_UINT32 *pulPFN, struct page **ppsPage)
-{
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,10))
-    pgd_t *psPGD;
-    pud_t *psPUD;
-    pmd_t *psPMD;
-    pte_t *psPTE;
-    struct mm_struct *psMM = psVMArea->vm_mm;
-    spinlock_t *psPTLock;
-    IMG_BOOL bRet = IMG_FALSE;
-
-    *pulPFN = 0;
-    *ppsPage = NULL;
-
-    psPGD = pgd_offset(psMM, ulCPUVAddr);
-    if (pgd_none(*psPGD) || pgd_bad(*psPGD))
-        return bRet;
-
-    psPUD = pud_offset(psPGD, ulCPUVAddr);
-    if (pud_none(*psPUD) || pud_bad(*psPUD))
-        return bRet;
-
-    psPMD = pmd_offset(psPUD, ulCPUVAddr);
-    if (pmd_none(*psPMD) || pmd_bad(*psPMD))
-        return bRet;
-
-    psPTE = (pte_t *)pte_offset_map_lock(psMM, psPMD, ulCPUVAddr, &psPTLock);
-
-    if ((pte_none(*psPTE) == 0) && (pte_present(*psPTE) != 0) && (pte_write(*psPTE) != 0))
-    {
-        *pulPFN = pte_pfn(*psPTE);
-	bRet = IMG_TRUE;
-
-        if (pfn_valid(*pulPFN))
-        {
-            *ppsPage = pfn_to_page(*pulPFN);
-
-            get_page(*ppsPage);
-        }
-    }
-
-    pte_unmap_unlock(psPTE, psPTLock);
-
-    return bRet;
-#else
-    return IMG_FALSE;
-#endif
-}
-
-PVRSRV_ERROR OSReleasePhysPageAddr(IMG_HANDLE hOSWrapMem)
-{
-    sWrapMemInfo *psInfo = (sWrapMemInfo *)hOSWrapMem;
-    IMG_INT i;
-
-    if (psInfo == IMG_NULL)
-    {
-        PVR_DPF((PVR_DBG_WARNING,
-            "OSReleasePhysPageAddr: called with null wrap handle"));
-	return PVRSRV_OK;
-    }
-
-    switch (psInfo->eType)
-    {
-	case WRAP_TYPE_NULL:
-	{
-            PVR_DPF((PVR_DBG_WARNING,
-                "OSReleasePhysPageAddr: called with wrap type WRAP_TYPE_NULL"));
-	    break;
-	}
-        case WRAP_TYPE_GET_USER_PAGES:
-        {
-            for (i = 0; i < psInfo->iNumPagesMapped; i++)
-            {
-                struct page *psPage = psInfo->ppsPages[i];
-
-		PVR_ASSERT(psPage != NULL);
-
-                
-		if (psInfo->iNumPagesMapped == psInfo->iNumPages)
-		{
-                    if (!PageReserved(psPage))
-                    {
-                        SetPageDirty(psPage);
-                    }
-	        }
-                page_cache_release(psPage);
-	    }
-            break;
-        }
-        case WRAP_TYPE_FIND_VMA:
-        {
-            for (i = 0; i < psInfo->iNumPages; i++)
-            {
-		if (psInfo->ppsPages[i] != IMG_NULL)
-		{
-                    put_page(psInfo->ppsPages[i]);
-		}
-            }
-            break;
-        }
-        default:
-        {
-            PVR_DPF((PVR_DBG_ERROR,
-                "OSReleasePhysPageAddr: Unknown wrap type (%d)", psInfo->eType));
-            return PVRSRV_ERROR_INVALID_WRAP_TYPE;
-        }
-    }
-
-    if (psInfo->ppsPages != IMG_NULL)
-    {
-        kfree(psInfo->ppsPages);
-    }
-
-    if (psInfo->psPhysAddr != IMG_NULL)
-    {
-        kfree(psInfo->psPhysAddr);
-    }
-
-    kfree(psInfo);
-
-    return PVRSRV_OK;
-}
-
-PVRSRV_ERROR OSAcquirePhysPageAddr(IMG_VOID *pvCPUVAddr, 
-                                    IMG_UINT32 ui32Bytes, 
-                                    IMG_SYS_PHYADDR *psSysPAddr,
-                                    IMG_HANDLE *phOSWrapMem)
-{
-    IMG_UINT32 ulStartAddrOrig = (IMG_UINT32) pvCPUVAddr;
-    IMG_UINT32 ulAddrRangeOrig = (IMG_UINT32) ui32Bytes;
-    IMG_UINT32 ulBeyondEndAddrOrig = ulStartAddrOrig + ulAddrRangeOrig;
-    IMG_UINT32 ulStartAddr;
-    IMG_UINT32 ulAddrRange;
-    IMG_UINT32 ulBeyondEndAddr;
-    IMG_UINT32 ulAddr;
-    IMG_INT i;
-    struct vm_area_struct *psVMArea;
-    sWrapMemInfo *psInfo = NULL;
-    IMG_BOOL bHavePageStructs = IMG_FALSE;
-    IMG_BOOL bHaveNoPageStructs = IMG_FALSE;
-    IMG_BOOL bPFNMismatch = IMG_FALSE;
-    IMG_BOOL bMMapSemHeld = IMG_FALSE;
-    PVRSRV_ERROR eError = PVRSRV_ERROR_OUT_OF_MEMORY;
-
-    
-    ulStartAddr = ulStartAddrOrig & PAGE_MASK;
-    ulBeyondEndAddr = PAGE_ALIGN(ulBeyondEndAddrOrig);
-    ulAddrRange = ulBeyondEndAddr - ulStartAddr;
-
-    
-    if (ulBeyondEndAddr <= ulStartAddr)
-    {
-        PVR_DPF((PVR_DBG_ERROR,
-            "OSAcquirePhysPageAddr: Invalid address range (start %x, length %x)",
-		ulStartAddrOrig, ulAddrRangeOrig));
-        goto error;
-    }
-
-    
-    psInfo = kmalloc(sizeof(*psInfo), GFP_KERNEL);
-    if (psInfo == NULL)
-    {
-        PVR_DPF((PVR_DBG_ERROR,
-            "OSAcquirePhysPageAddr: Couldn't allocate information structure"));
-        goto error;
-    }
-    memset(psInfo, 0, sizeof(*psInfo));
-
-#if defined(DEBUG)
-    psInfo->ulStartAddr = ulStartAddrOrig;
-    psInfo->ulBeyondEndAddr = ulBeyondEndAddrOrig;
-#endif
-
-    psInfo->iNumPages = (IMG_INT)(ulAddrRange >> PAGE_SHIFT);
-    psInfo->iPageOffset = (IMG_INT)(ulStartAddrOrig & ~PAGE_MASK);
-
-    
-    psInfo->psPhysAddr = kmalloc((size_t)psInfo->iNumPages * sizeof(*psInfo->psPhysAddr), GFP_KERNEL);
-    if (psInfo->psPhysAddr == NULL)
-    {
-        PVR_DPF((PVR_DBG_ERROR,
-            "OSAcquirePhysPageAddr: Couldn't allocate page array"));		
-        goto error;
-    }
-    memset(psInfo->psPhysAddr, 0, (size_t)psInfo->iNumPages * sizeof(*psInfo->psPhysAddr));
-
-    
-    psInfo->ppsPages = kmalloc((size_t)psInfo->iNumPages * sizeof(*psInfo->ppsPages),  GFP_KERNEL);
-    if (psInfo->ppsPages == NULL)
-    {
-        PVR_DPF((PVR_DBG_ERROR,
-            "OSAcquirePhysPageAddr: Couldn't allocate page array"));		
-        goto error;
-    }
-    memset(psInfo->ppsPages, 0, (size_t)psInfo->iNumPages * sizeof(*psInfo->ppsPages));
-
-    
-    eError = PVRSRV_ERROR_BAD_MAPPING;
-
-    
-    psInfo->eType = WRAP_TYPE_GET_USER_PAGES;
-
-    
-    down_read(&current->mm->mmap_sem);
-    bMMapSemHeld = IMG_TRUE;
-
-    
-    psInfo->iNumPagesMapped = get_user_pages(current, current->mm, ulStartAddr, psInfo->iNumPages, 1, 0, psInfo->ppsPages, NULL);
-
-    if (psInfo->iNumPagesMapped >= 0)
-    {
-        
-        if (psInfo->iNumPagesMapped != psInfo->iNumPages)
-        {
-            PVR_TRACE(("OSAcquirePhysPageAddr: Couldn't map all the pages needed (wanted: %d, got %d)", psInfo->iNumPages, psInfo->iNumPagesMapped));
-
-            goto error;
-        }
-
-        
-        for (i = 0; i < psInfo->iNumPages; i++)
-        {
-            IMG_CPU_PHYADDR CPUPhysAddr;
-	    IMG_UINT32 ulPFN;
-
-            ulPFN = page_to_pfn(psInfo->ppsPages[i]);
-            CPUPhysAddr.uiAddr = ulPFN << PAGE_SHIFT;
-	    if ((CPUPhysAddr.uiAddr >> PAGE_SHIFT) != ulPFN)
-	    {
-                PVR_DPF((PVR_DBG_ERROR,
-		    "OSAcquirePhysPageAddr: Page frame number out of range (%x)", ulPFN));
-
-		    goto error;
-	    }
-            psInfo->psPhysAddr[i] = SysCpuPAddrToSysPAddr(CPUPhysAddr);
-            psSysPAddr[i] = psInfo->psPhysAddr[i];
-            
-        }
-
-        goto exit;
-    }
-
-    PVR_DPF((PVR_DBG_MESSAGE, "OSAcquirePhysPageAddr: get_user_pages failed (%d), using CPU page table", psInfo->iNumPagesMapped));
-    
-    
-    psInfo->eType = WRAP_TYPE_NULL;
-    psInfo->iNumPagesMapped = 0;
-    memset(psInfo->ppsPages, 0, (size_t)psInfo->iNumPages * sizeof(*psInfo->ppsPages));
-
-    
-    
-    psInfo->eType = WRAP_TYPE_FIND_VMA;
-
-    psVMArea = find_vma(current->mm, ulStartAddrOrig);
-    if (psVMArea == NULL)
-    {
-        PVR_DPF((PVR_DBG_ERROR,
-            "OSAcquirePhysPageAddr: Couldn't find memory region containing start address %x", ulStartAddrOrig));
-        
-        goto error;
-    }
-#if defined(DEBUG)
-    psInfo->psVMArea = psVMArea;
-#endif
-
-    
-    if (ulStartAddrOrig < psVMArea->vm_start)
-    {
-        PVR_DPF((PVR_DBG_ERROR,
-            "OSAcquirePhysPageAddr: Start address %x is outside of the region returned by find_vma", ulStartAddrOrig));
-        goto error;
-    }
-
-    
-    if (ulBeyondEndAddrOrig > psVMArea->vm_end)
-    {
-        PVR_DPF((PVR_DBG_ERROR,
-            "OSAcquirePhysPageAddr: End address %x is outside of the region returned by find_vma", ulBeyondEndAddrOrig));
-        goto error;
-    }
-
-    
-    if ((psVMArea->vm_flags & (VM_IO | VM_RESERVED)) != (VM_IO | VM_RESERVED))
-    {
-        PVR_DPF((PVR_DBG_ERROR,
-            "OSAcquirePhysPageAddr: Memory region does not represent memory mapped I/O (VMA flags: 0x%lx)", psVMArea->vm_flags));
-        goto error;
-    }
-
-    
-    if ((psVMArea->vm_flags & (VM_READ | VM_WRITE)) != (VM_READ | VM_WRITE))
-    {
-        PVR_DPF((PVR_DBG_ERROR,
-            "OSAcquirePhysPageAddr: No read/write access to memory region (VMA flags: 0x%lx)", psVMArea->vm_flags));
-        goto error;
-    }
-
-    for (ulAddr = ulStartAddrOrig, i = 0; ulAddr < ulBeyondEndAddrOrig; ulAddr += PAGE_SIZE, i++)
-    {
-	IMG_CPU_PHYADDR CPUPhysAddr;
-	IMG_UINT32 ulPFN = 0;
-
-	PVR_ASSERT(i < psInfo->iNumPages);
-
-	if (!CPUVAddrToPFN(psVMArea, ulAddr, &ulPFN, &psInfo->ppsPages[i]))
-	{
-            PVR_DPF((PVR_DBG_ERROR,
-	       "OSAcquirePhysPageAddr: Invalid CPU virtual address"));
-
-	    goto error;
-	}
-	if (psInfo->ppsPages[i] == NULL)
-	{
-
-	    bHaveNoPageStructs = IMG_TRUE;
-
-#if defined(VM_PFNMAP)
-	    if ((psVMArea->vm_flags & VM_PFNMAP) != 0)
-	    {
-	        IMG_UINT32 ulPFNRaw = ((ulAddr - psVMArea->vm_start) >> PAGE_SHIFT) + psVMArea->vm_pgoff;
-
-	        if (ulPFNRaw != ulPFN)
-	        {
-			bPFNMismatch = IMG_TRUE;
-	        }
-	    }
-#endif
-	}
-	else
-	{
-	    bHavePageStructs = IMG_TRUE;
-
-	    psInfo->iNumPagesMapped++;
-
-	    PVR_ASSERT(ulPFN == page_to_pfn(psInfo->ppsPages[i]));
-	}
-
-        CPUPhysAddr.uiAddr = ulPFN << PAGE_SHIFT;
-	if ((CPUPhysAddr.uiAddr >> PAGE_SHIFT) != ulPFN)
-	{
-                PVR_DPF((PVR_DBG_ERROR,
-		    "OSAcquirePhysPageAddr: Page frame number out of range (%x)", ulPFN));
-
-		    goto error;
-	}
-
-	psInfo->psPhysAddr[i] = SysCpuPAddrToSysPAddr(CPUPhysAddr);
-	psSysPAddr[i] = psInfo->psPhysAddr[i];
-    }
-    PVR_ASSERT(i ==  psInfo->iNumPages);
-
-#if defined(VM_MIXEDMAP)
-    if ((psVMArea->vm_flags & VM_MIXEDMAP) != 0)
-    {
-        goto exit;
-    }
-#endif
-
-    if (bHavePageStructs && bHaveNoPageStructs)
-    {
-        PVR_DPF((PVR_DBG_ERROR,
-            "OSAcquirePhysPageAddr: Region is VM_MIXEDMAP, but isn't marked as such"));
-	goto error;
-    }
-
-    if (!bHaveNoPageStructs)
-    {
-	
-	goto exit;
-    }
-
-#if defined(VM_PFNMAP)
-    if ((psVMArea->vm_flags & VM_PFNMAP) == 0)
-#endif
-    {
-        PVR_DPF((PVR_DBG_ERROR,
-            "OSAcquirePhysPageAddr: Region is VM_PFNMAP, but isn't marked as such"));
-	goto error;
-    }
-
-    if (bPFNMismatch)
-    {
-        PVR_DPF((PVR_DBG_ERROR,
-            "OSAcquirePhysPageAddr: PFN calculation mismatch for VM_PFNMAP region"));
-	goto error;
-    }
-
-exit:
-    PVR_ASSERT(bMMapSemHeld);
-    up_read(&current->mm->mmap_sem);
-
-    
-    *phOSWrapMem = (IMG_HANDLE)psInfo;
-
-    if (bHaveNoPageStructs)
-    {
-        PVR_DPF((PVR_DBG_WARNING,
-            "OSAcquirePhysPageAddr: Region contains pages which can't be locked down (no page structures)"));
-    }
-
-    PVR_ASSERT(psInfo->eType != 0);
-
-#if 0
-    
-    
-    OSCleanCPUCacheRangeKM(pvCPUVAddr, (IMG_VOID *)((IMG_CHAR *)pvCPUVAddr + ui32Bytes));
-#endif
-
-    return PVRSRV_OK;
-
-error:
-    if (bMMapSemHeld)
-    {
-        up_read(&current->mm->mmap_sem);
-    }
-    OSReleasePhysPageAddr((IMG_HANDLE)psInfo);
-
-    PVR_ASSERT(eError != PVRSRV_OK);
-
-    return eError;
-}
-
-typedef void (*InnerCacheOp_t)(const void *pvStart, const void *pvEnd);
-typedef void (*OuterCacheOp_t)(unsigned long ulStart, unsigned long ulEnd);
-
-#if defined(CONFIG_OUTER_CACHE)
-
-typedef unsigned long (*MemAreaToPhys_t)(LinuxMemArea *psLinuxMemArea,
-										 IMG_VOID *pvRangeAddrStart,
-										 IMG_UINT32 ui32PageNumOffset,
-										 IMG_UINT32 ui32PageNum);
-
-static unsigned long VMallocAreaToPhys(LinuxMemArea *psLinuxMemArea,
-									   IMG_VOID *pvRangeAddrStart,
-									   IMG_UINT32 ui32PageNumOffset,
-									   IMG_UINT32 ui32PageNum)
-{
-	return vmalloc_to_pfn(pvRangeAddrStart + ui32PageNum * PAGE_SIZE) << PAGE_SHIFT;
-}
-
-static unsigned long ExternalKVAreaToPhys(LinuxMemArea *psLinuxMemArea,
-										  IMG_VOID *pvRangeAddrStart,
-										  IMG_UINT32 ui32PageNumOffset,
-										  IMG_UINT32 ui32PageNum)
-{
-	IMG_SYS_PHYADDR SysPAddr;
-	IMG_CPU_PHYADDR CpuPAddr;
-	SysPAddr = psLinuxMemArea->uData.sExternalKV.uPhysAddr.pSysPhysAddr[ui32PageNumOffset + ui32PageNum];
-	CpuPAddr = SysSysPAddrToCpuPAddr(SysPAddr);
-	return CpuPAddr.uiAddr;
-}
-
-static unsigned long AllocPagesAreaToPhys(LinuxMemArea *psLinuxMemArea,
-										  IMG_VOID *pvRangeAddrStart,
-										  IMG_UINT32 ui32PageNumOffset,
-										  IMG_UINT32 ui32PageNum)
-{
-	struct page *pPage;
-	pPage = psLinuxMemArea->uData.sPageList.pvPageList[ui32PageNumOffset + ui32PageNum];
-	return page_to_pfn(pPage) << PAGE_SHIFT;
-}
-
-#endif 
-
-#ifndef __mips__
-static
-IMG_VOID *FindMMapBaseVAddr(struct list_head *psMMapOffsetStructList,
-							IMG_VOID *pvRangeAddrStart, IMG_UINT32 ui32Length)
-{
-	PKV_OFFSET_STRUCT psOffsetStruct;
-	IMG_VOID *pvMinVAddr;
-
-	
-	list_for_each_entry(psOffsetStruct, psMMapOffsetStructList, sAreaItem)
-	{
-		if(OSGetCurrentProcessIDKM() != psOffsetStruct->ui32PID)
-			continue;
-
-		pvMinVAddr = (IMG_VOID *)psOffsetStruct->ui32UserVAddr;
-
-		
-		if(pvRangeAddrStart >= pvMinVAddr &&
-		   ui32Length <= psOffsetStruct->ui32RealByteSize)
-			return pvMinVAddr;
-	}
-
-	return IMG_NULL;
-}
-
-static
-IMG_BOOL CheckExecuteCacheOp(IMG_HANDLE hOSMemHandle,
-							 IMG_VOID *pvRangeAddrStart,
-							 IMG_UINT32 ui32Length,
-							 InnerCacheOp_t pfnInnerCacheOp,
-							 OuterCacheOp_t pfnOuterCacheOp)
-{
-	LinuxMemArea *psLinuxMemArea = (LinuxMemArea *)hOSMemHandle;
-	IMG_UINT32 ui32AreaLength, ui32AreaOffset = 0;
-	struct list_head *psMMapOffsetStructList;
-	IMG_VOID *pvMinVAddr;
-
-#if defined(CONFIG_OUTER_CACHE)
-	MemAreaToPhys_t pfnMemAreaToPhys = IMG_NULL;
-	IMG_UINT32 ui32PageNumOffset = 0;
-#endif
-
-	PVR_ASSERT(psLinuxMemArea != IMG_NULL);
-
-	ui32AreaLength = psLinuxMemArea->ui32ByteSize;
-	psMMapOffsetStructList = &psLinuxMemArea->sMMapOffsetStructList;
-
-	PVR_ASSERT(ui32Length <= ui32AreaLength);
-
-	if(psLinuxMemArea->eAreaType == LINUX_MEM_AREA_SUB_ALLOC)
-	{
-		ui32AreaOffset = psLinuxMemArea->uData.sSubAlloc.ui32ByteOffset;
-		psLinuxMemArea = psLinuxMemArea->uData.sSubAlloc.psParentLinuxMemArea;
-	}
-
-	
-	PVR_ASSERT(psLinuxMemArea->eAreaType != LINUX_MEM_AREA_SUB_ALLOC);
-
-	switch(psLinuxMemArea->eAreaType)
-	{
-		case LINUX_MEM_AREA_VMALLOC:
-		{
-			if(is_vmalloc_addr(pvRangeAddrStart))
-			{
-				pvMinVAddr = psLinuxMemArea->uData.sVmalloc.pvVmallocAddress + ui32AreaOffset;
-
-				
-				if(pvRangeAddrStart < pvMinVAddr)
-					goto err_blocked;
-
-				pfnInnerCacheOp(pvRangeAddrStart, pvRangeAddrStart + ui32Length);
-			}
-			else
-			{
-				
-				
-
-				pvMinVAddr = FindMMapBaseVAddr(psMMapOffsetStructList,
-											   pvRangeAddrStart, ui32Length);
-				if(!pvMinVAddr)
-					goto err_blocked;
-
-				pfnInnerCacheOp(pvRangeAddrStart, pvRangeAddrStart + ui32Length);
-
-#if defined(CONFIG_OUTER_CACHE)
-				
-				pvRangeAddrStart = psLinuxMemArea->uData.sVmalloc.pvVmallocAddress +
-								   (ui32AreaOffset & PAGE_MASK) + (pvRangeAddrStart - pvMinVAddr);
-			}
-
-			pfnMemAreaToPhys = VMallocAreaToPhys;
-#else 
-			}
-#endif 
-			break;
-		}
-
-		case LINUX_MEM_AREA_EXTERNAL_KV:
-		{
-			
-			if (psLinuxMemArea->uData.sExternalKV.bPhysContig == IMG_TRUE)
-			{
-				PVR_DPF((PVR_DBG_WARNING, "%s: Attempt to flush contiguous external memory", __func__));
-
-				goto err_blocked;
-			}
-
-			
-			if (psLinuxMemArea->uData.sExternalKV.pvExternalKV != IMG_NULL)
-			{
-				PVR_DPF((PVR_DBG_WARNING, "%s: Attempt to flush external memory with a kernel virtual address", __func__));
-
-				goto err_blocked;
-			}
-
-			
-
-			pvMinVAddr = FindMMapBaseVAddr(psMMapOffsetStructList,
-										   pvRangeAddrStart, ui32Length);
-			if(!pvMinVAddr)
-				goto err_blocked;
-
-			pfnInnerCacheOp(pvRangeAddrStart, pvRangeAddrStart + ui32Length);
-
-#if defined(CONFIG_OUTER_CACHE)
-			ui32PageNumOffset = ((ui32AreaOffset & PAGE_MASK) + (pvRangeAddrStart - pvMinVAddr)) >> PAGE_SHIFT;
-			pfnMemAreaToPhys = ExternalKVAreaToPhys;
-#endif
-			break;
-		}
-
-		case LINUX_MEM_AREA_ALLOC_PAGES:
-		{
-			pvMinVAddr = FindMMapBaseVAddr(psMMapOffsetStructList,
-										   pvRangeAddrStart, ui32Length);
-			if(!pvMinVAddr)
-				goto err_blocked;
-
-			pfnInnerCacheOp(pvRangeAddrStart, pvRangeAddrStart + ui32Length);
-
-#if defined(CONFIG_OUTER_CACHE)
-			ui32PageNumOffset = ((ui32AreaOffset & PAGE_MASK) + (pvRangeAddrStart - pvMinVAddr)) >> PAGE_SHIFT;
-			pfnMemAreaToPhys = AllocPagesAreaToPhys;
-#endif
-			break;
-		}
-
-		default:
-			PVR_DBG_BREAK;
-	}
-
-#if defined(CONFIG_OUTER_CACHE)
-	PVR_ASSERT(pfnMemAreaToPhys != IMG_NULL);
-
-	
-	{
-		unsigned long ulStart, ulEnd, ulLength, ulStartOffset, ulEndOffset;
-		IMG_UINT32 i, ui32NumPages;
-
-		
-		ulLength = (unsigned long)ui32Length;
-		ulStartOffset = ((unsigned long)pvRangeAddrStart) & (PAGE_SIZE - 1);
-		ulEndOffset = ((unsigned long)pvRangeAddrStart + ulLength) & (PAGE_SIZE - 1);
-
-		
-		ui32NumPages = (ulStartOffset + ulLength + PAGE_SIZE - 1) >> PAGE_SHIFT;
-
-		for(i = 0; i < ui32NumPages; i++)
-		{
-			ulStart = pfnMemAreaToPhys(psLinuxMemArea, pvRangeAddrStart,
-									   ui32PageNumOffset, i);
-			ulEnd = ulStart + PAGE_SIZE;
-
-			if(i == ui32NumPages - 1 && ulEndOffset != 0)
-				ulEnd = ulStart + ulEndOffset;
-
-			if(i == 0)
-				ulStart += ulStartOffset;
-
-			pfnOuterCacheOp(ulStart, ulEnd);
-		}
-	}
-#endif
-
-	return IMG_TRUE;
-
-err_blocked:
-	PVR_DPF((PVR_DBG_WARNING, "%s: Blocked cache op on virtual range "
-							  "%p-%p (type %d)", __func__,
-			 pvRangeAddrStart, pvRangeAddrStart + ui32Length,
-			 psLinuxMemArea->eAreaType));
-	return IMG_FALSE;
-}
-
-#endif
-
-#if defined(__i386__)
-
-#define ROUND_UP(x,a) (((x) + (a) - 1) & ~((a) - 1))
-
-static void per_cpu_cache_flush(void *arg)
-{
-    PVR_UNREFERENCED_PARAMETER(arg);
-    wbinvd();
-}
-
-static void x86_flush_cache_range(const void *pvStart, const void *pvEnd)
-{
-	IMG_BYTE *pbStart = (IMG_BYTE *)pvStart;
-	IMG_BYTE *pbEnd = (IMG_BYTE *)pvEnd;
-	IMG_BYTE *pbBase;
-
-	pbEnd = (IMG_BYTE *)ROUND_UP((IMG_UINTPTR_T)pbEnd,
-								 boot_cpu_data.x86_clflush_size);
-
-	mb();
-	for(pbBase = pbStart; pbBase < pbEnd; pbBase += boot_cpu_data.x86_clflush_size)
-		clflush(pbBase);
-	mb();
-}
-
-IMG_VOID OSCleanCPUCacheKM(IMG_VOID)
-{
-	
-	ON_EACH_CPU(per_cpu_cache_flush, NULL, 1);
-}
-
-IMG_VOID OSFlushCPUCacheKM(IMG_VOID)
-{
-	ON_EACH_CPU(per_cpu_cache_flush, NULL, 1);
-}
-
-IMG_BOOL OSFlushCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-								IMG_VOID *pvRangeAddrStart,
-								IMG_UINT32 ui32Length)
-{
-	
-	return CheckExecuteCacheOp(hOSMemHandle, pvRangeAddrStart, ui32Length,
-							   x86_flush_cache_range, IMG_NULL);
-}
-
-IMG_BOOL OSCleanCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-								IMG_VOID *pvRangeAddrStart,
-								IMG_UINT32 ui32Length)
-{
-	
-	return CheckExecuteCacheOp(hOSMemHandle, pvRangeAddrStart, ui32Length,
-							   x86_flush_cache_range, IMG_NULL);
-}
-
-IMG_BOOL OSInvalidateCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-									 IMG_VOID *pvRangeAddrStart,
-									 IMG_UINT32 ui32Length)
-{
-	
-	return CheckExecuteCacheOp(hOSMemHandle, pvRangeAddrStart, ui32Length,
-							   x86_flush_cache_range, IMG_NULL);
-}
-
-#else 
-
-#if defined(__arm__)
-
-static void per_cpu_cache_flush(void *arg)
-{
-	PVR_UNREFERENCED_PARAMETER(arg);
-	flush_cache_all();
-}
-
-IMG_VOID OSCleanCPUCacheKM(IMG_VOID)
-{
-	
-	ON_EACH_CPU(per_cpu_cache_flush, NULL, 1);
-#if defined(CONFIG_OUTER_CACHE) && !defined(PVR_NO_FULL_CACHE_OPS)
-	outer_clean_all();
-#endif
-}
-
-IMG_VOID OSFlushCPUCacheKM(IMG_VOID)
-{
-	ON_EACH_CPU(per_cpu_cache_flush, NULL, 1);
-#if defined(CONFIG_OUTER_CACHE) && !defined(PVR_NO_FULL_CACHE_OPS)
-	outer_flush_all();
-#endif
-}
-
-static inline size_t pvr_dmac_range_len(const void *pvStart, const void *pvEnd)
-{
-	return (size_t)((char *)pvEnd - (char *)pvStart);
-}
-
-static void pvr_dmac_inv_range(const void *pvStart, const void *pvEnd)
-{
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34))
-	dmac_inv_range(pvStart, pvEnd);
-#else
-	dmac_map_area(pvStart, pvr_dmac_range_len(pvStart, pvEnd), DMA_FROM_DEVICE);
-#endif
-}
-
-static void pvr_dmac_clean_range(const void *pvStart, const void *pvEnd)
-{
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34))
-	dmac_clean_range(pvStart, pvEnd);
-#else
-	dmac_map_area(pvStart, pvr_dmac_range_len(pvStart, pvEnd), DMA_TO_DEVICE);
-#endif
-}
-
-IMG_BOOL OSFlushCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-								IMG_VOID *pvRangeAddrStart,
-								IMG_UINT32 ui32Length)
-{
-	return CheckExecuteCacheOp(hOSMemHandle, pvRangeAddrStart, ui32Length,
-							   dmac_flush_range, outer_flush_range);
-}
-
-IMG_BOOL OSCleanCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-								IMG_VOID *pvRangeAddrStart,
-								IMG_UINT32 ui32Length)
-{
-	return CheckExecuteCacheOp(hOSMemHandle, pvRangeAddrStart, ui32Length,
-							   pvr_dmac_clean_range, outer_clean_range);
-}
-
-IMG_BOOL OSInvalidateCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-									 IMG_VOID *pvRangeAddrStart,
-									 IMG_UINT32 ui32Length)
-{
-	return CheckExecuteCacheOp(hOSMemHandle, pvRangeAddrStart, ui32Length,
-							   pvr_dmac_inv_range, outer_inv_range);
-}
-
-#else 
-
-#if defined(__mips__)
-IMG_VOID OSCleanCPUCacheKM(IMG_VOID)
-{
-	
-	dma_cache_wback(0, 0x100000);
-}
-
-IMG_VOID OSFlushCPUCacheKM(IMG_VOID)
-{
-	
-	dma_cache_wback_inv(0, 0x100000);
-}
-
-IMG_BOOL OSFlushCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-								IMG_VOID *pvRangeAddrStart,
-								IMG_UINT32 ui32Length)
-{
-	if (ui32Length)
-		dma_cache_wback_inv((IMG_UINTPTR_T)pvRangeAddrStart, ui32Length);	
-	return IMG_TRUE;
-}
-
-IMG_BOOL OSCleanCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-								IMG_VOID *pvRangeAddrStart,
-								IMG_UINT32 ui32Length)
-{
-	if (ui32Length)
-		dma_cache_wback((IMG_UINTPTR_T)pvRangeAddrStart, ui32Length);
-	return IMG_TRUE;
-}
-
-IMG_BOOL OSInvalidateCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-									 IMG_VOID *pvRangeAddrStart,
-									 IMG_UINT32 ui32Length)
-{
-	if (ui32Length)
-		dma_cache_inv((IMG_UINTPTR_T)pvRangeAddrStart, ui32Length);
-	return IMG_TRUE;
-}
-
-#else 
-
-#error "Implement CPU cache flush/clean/invalidate primitives for this CPU!"
-
-#endif 
-
-#endif 
-
-#endif 
-
-PVRSRV_ERROR PVROSFuncInit(IMG_VOID)
-{
-#if defined(PVR_LINUX_TIMERS_USING_WORKQUEUES)
-    {
-        psTimerWorkQueue = create_workqueue("pvr_timer");
-        if (psTimerWorkQueue == NULL)
-        {
-	    PVR_DPF((PVR_DBG_ERROR, "%s: couldn't create timer workqueue", __FUNCTION__));		
-	    return PVRSRV_ERROR_UNABLE_TO_CREATE_THREAD;
-
-        }
-    }
-#endif
-
-#if defined(PVR_LINUX_TIMERS_USING_WORKQUEUES) || defined(PVR_LINUX_TIMERS_USING_SHARED_WORKQUEUE)
-    {
-	IMG_UINT32 ui32i;
-
-        for (ui32i = 0; ui32i < OS_MAX_TIMERS; ui32i++)
-        {
-            TIMER_CALLBACK_DATA *psTimerCBData = &sTimers[ui32i];
-
-	    INIT_WORK(&psTimerCBData->sWork, OSTimerWorkQueueCallBack);
-        }
-    }
-#endif
-    return PVRSRV_OK;
-}
-
-IMG_VOID PVROSFuncDeInit(IMG_VOID)
-{
-#if defined(PVR_LINUX_TIMERS_USING_WORKQUEUES)
-    if (psTimerWorkQueue != NULL)
-    {
-	destroy_workqueue(psTimerWorkQueue);
-    }
-#endif
-}
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/osperproc.c b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/osperproc.c
deleted file mode 100644
index 6b57dfc..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/osperproc.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "services_headers.h"
-#include "osperproc.h"
-
-#include "env_perproc.h"
-#include "proc.h"
-
-extern IMG_UINT32 gui32ReleasePID;
-
-PVRSRV_ERROR OSPerProcessPrivateDataInit(IMG_HANDLE *phOsPrivateData)
-{
-	PVRSRV_ERROR eError;
-	IMG_HANDLE hBlockAlloc;
-	PVRSRV_ENV_PER_PROCESS_DATA *psEnvPerProc;
-
-	eError = OSAllocMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-				sizeof(PVRSRV_ENV_PER_PROCESS_DATA),
-				phOsPrivateData,
-				&hBlockAlloc,
-				"Environment per Process Data");
-
-	if (eError != PVRSRV_OK)
-	{
-		*phOsPrivateData = IMG_NULL;
-
-		PVR_DPF((PVR_DBG_ERROR, "%s: OSAllocMem failed (%d)", __FUNCTION__, eError));
-		return eError;
-	}
-
-	psEnvPerProc = (PVRSRV_ENV_PER_PROCESS_DATA *)*phOsPrivateData;
-	OSMemSet(psEnvPerProc, 0, sizeof(*psEnvPerProc));
-
-	psEnvPerProc->hBlockAlloc = hBlockAlloc;
-
-	
-	LinuxMMapPerProcessConnect(psEnvPerProc);
-
-#if defined(SUPPORT_DRI_DRM) && defined(PVR_SECURE_DRM_AUTH_EXPORT)
-	
-	INIT_LIST_HEAD(&psEnvPerProc->sDRMAuthListHead);
-#endif
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR OSPerProcessPrivateDataDeInit(IMG_HANDLE hOsPrivateData)
-{
-	PVRSRV_ERROR eError;
-	PVRSRV_ENV_PER_PROCESS_DATA *psEnvPerProc;
-
-	if (hOsPrivateData == IMG_NULL)
-	{
-		return PVRSRV_OK;
-	}
-
-	psEnvPerProc = (PVRSRV_ENV_PER_PROCESS_DATA *)hOsPrivateData;
-
-	
-	LinuxMMapPerProcessDisconnect(psEnvPerProc);
-
-	
-	RemovePerProcessProcDir(psEnvPerProc);
-
-	eError = OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP,
-				sizeof(PVRSRV_ENV_PER_PROCESS_DATA),
-				hOsPrivateData,
-				psEnvPerProc->hBlockAlloc);
-	
-
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "%s: OSFreeMem failed (%d)", __FUNCTION__, eError));
-	}
-
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR OSPerProcessSetHandleOptions(PVRSRV_HANDLE_BASE *psHandleBase)
-{
-	return LinuxMMapPerProcessHandleOptions(psHandleBase);
-}
-
-IMG_HANDLE LinuxTerminatingProcessPrivateData(IMG_VOID)
-{
-	if(!gui32ReleasePID)
-		return NULL;
-	return PVRSRVPerProcessPrivateData(gui32ReleasePID);
-}
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pdump.c b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pdump.c
deleted file mode 100644
index 13d9b0d..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pdump.c
+++ /dev/null
@@ -1,628 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if defined (SUPPORT_SGX) || defined (SUPPORT_VGX)
-#if defined (PDUMP)
-
-#include <asm/atomic.h>
-#include <stdarg.h>
-#if defined (SUPPORT_SGX)
-#include "sgxdefs.h" 
-#endif
-#include "services_headers.h"
-
-#include "pvrversion.h"
-#include "pvr_debug.h"
-
-#include "dbgdrvif.h"
-#if defined (SUPPORT_SGX)
-#include "sgxmmu.h"
-#endif
-#include "mm.h"
-#include "pdump_km.h"
-#include "pdump_int.h"
-
-#include <linux/kernel.h> 
-#include <linux/string.h> 
-
-static IMG_BOOL PDumpWriteString2		(IMG_CHAR * pszString, IMG_UINT32 ui32Flags);
-static IMG_BOOL PDumpWriteILock			(PDBG_STREAM psStream, IMG_UINT8 *pui8Data, IMG_UINT32 ui32Count, IMG_UINT32 ui32Flags);
-static IMG_VOID DbgSetFrame				(PDBG_STREAM psStream, IMG_UINT32 ui32Frame);
-static IMG_VOID DbgSetMarker			(PDBG_STREAM psStream, IMG_UINT32 ui32Marker);
-
-#define PDUMP_DATAMASTER_PIXEL		(1)
-#define PDUMP_DATAMASTER_EDM		(3)
-
-#define MAX_FILE_SIZE	0x40000000
-
-static atomic_t gsPDumpSuspended = ATOMIC_INIT(0);
-
-static PDBGKM_SERVICE_TABLE gpfnDbgDrv = IMG_NULL;
-
-
-
-IMG_CHAR *pszStreamName[PDUMP_NUM_STREAMS] = {	"ParamStream2",
-												"ScriptStream2",
-												"DriverInfoStream"};
-typedef struct PDBG_PDUMP_STATE_TAG
-{
-	PDBG_STREAM psStream[PDUMP_NUM_STREAMS];
-	IMG_UINT32 ui32ParamFileNum;
-
-	IMG_CHAR *pszMsg;
-	IMG_CHAR *pszScript;
-	IMG_CHAR *pszFile;
-
-} PDBG_PDUMP_STATE;
-
-static PDBG_PDUMP_STATE gsDBGPdumpState = {{IMG_NULL}, 0, IMG_NULL, IMG_NULL, IMG_NULL};
-
-#define SZ_MSG_SIZE_MAX			PVRSRV_PDUMP_MAX_COMMENT_SIZE-1
-#define SZ_SCRIPT_SIZE_MAX		PVRSRV_PDUMP_MAX_COMMENT_SIZE-1
-#define SZ_FILENAME_SIZE_MAX	PVRSRV_PDUMP_MAX_COMMENT_SIZE-1
-
-
-
-
-IMG_VOID DBGDrvGetServiceTable(IMG_VOID **fn_table);
-
-static inline IMG_BOOL PDumpSuspended(IMG_VOID)
-{
-	return (atomic_read(&gsPDumpSuspended) != 0) ? IMG_TRUE : IMG_FALSE;
-}
-
-PVRSRV_ERROR PDumpOSGetScriptString(IMG_HANDLE *phScript,
-									IMG_UINT32 *pui32MaxLen)
-{
-	*phScript = (IMG_HANDLE)gsDBGPdumpState.pszScript;
-	*pui32MaxLen = SZ_SCRIPT_SIZE_MAX;
-	if ((!*phScript) || PDumpSuspended())
-	{
-		return PVRSRV_ERROR_PDUMP_NOT_ACTIVE;
-	}
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpOSGetMessageString(IMG_CHAR **ppszMsg,
-									 IMG_UINT32 *pui32MaxLen)
-{
-	*ppszMsg = gsDBGPdumpState.pszMsg;
-	*pui32MaxLen = SZ_MSG_SIZE_MAX;
-	if ((!*ppszMsg) || PDumpSuspended())
-	{
-		return PVRSRV_ERROR_PDUMP_NOT_ACTIVE;
-	}
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpOSGetFilenameString(IMG_CHAR **ppszFile,
-									 IMG_UINT32 *pui32MaxLen)
-{
-	*ppszFile = gsDBGPdumpState.pszFile;
-	*pui32MaxLen = SZ_FILENAME_SIZE_MAX;
-	if ((!*ppszFile) || PDumpSuspended())
-	{
-		return PVRSRV_ERROR_PDUMP_NOT_ACTIVE;
-	}
-	return PVRSRV_OK;
-}
-
-IMG_BOOL PDumpOSWriteString2(IMG_HANDLE hScript, IMG_UINT32 ui32Flags)
-{
-	return PDumpWriteString2(hScript, ui32Flags);
-}
-
-PVRSRV_ERROR PDumpOSBufprintf(IMG_HANDLE hBuf, IMG_UINT32 ui32ScriptSizeMax, IMG_CHAR* pszFormat, ...)
-{
-	IMG_CHAR* pszBuf = hBuf;
-	IMG_INT32 n;
-	va_list	vaArgs;
-
-	va_start(vaArgs, pszFormat);
-
-	n = vsnprintf(pszBuf, ui32ScriptSizeMax, pszFormat, vaArgs);
-
-	va_end(vaArgs);
-
-	if (n>=(IMG_INT32)ui32ScriptSizeMax || n==-1)	
-	{
-		PVR_DPF((PVR_DBG_ERROR, "Buffer overflow detected, pdump output may be incomplete."));
-
-		return PVRSRV_ERROR_PDUMP_BUF_OVERFLOW;
-	}
-
-#if defined(PDUMP_DEBUG_OUTFILES)
-	g_ui32EveryLineCounter++;
-#endif
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpOSVSprintf(IMG_CHAR *pszComment, IMG_UINT32 ui32ScriptSizeMax, IMG_CHAR* pszFormat, PDUMP_va_list vaArgs)
-{
-	IMG_INT32 n;
-
-	n = vsnprintf(pszComment, ui32ScriptSizeMax, pszFormat, vaArgs);
-
-	if (n>=(IMG_INT32)ui32ScriptSizeMax || n==-1)	
-	{
-		PVR_DPF((PVR_DBG_ERROR, "Buffer overflow detected, pdump output may be incomplete."));
-
-		return PVRSRV_ERROR_PDUMP_BUF_OVERFLOW;
-	}
-
-	return PVRSRV_OK;
-}
-
-IMG_VOID PDumpOSDebugPrintf(IMG_CHAR* pszFormat, ...)
-{
-	PVR_UNREFERENCED_PARAMETER(pszFormat);
-
-	
-}
-
-PVRSRV_ERROR PDumpOSSprintf(IMG_CHAR *pszComment, IMG_UINT32 ui32ScriptSizeMax, IMG_CHAR *pszFormat, ...)
-{
-	IMG_INT32 n;
-	va_list	vaArgs;
-
-	va_start(vaArgs, pszFormat);
-
-	n = vsnprintf(pszComment, ui32ScriptSizeMax, pszFormat, vaArgs);
-
-	va_end(vaArgs);
-
-	if (n>=(IMG_INT32)ui32ScriptSizeMax || n==-1)	
-	{
-		PVR_DPF((PVR_DBG_ERROR, "Buffer overflow detected, pdump output may be incomplete."));
-
-		return PVRSRV_ERROR_PDUMP_BUF_OVERFLOW;
-	}
-
-	return PVRSRV_OK;
-}
-
-IMG_UINT32 PDumpOSBuflen(IMG_HANDLE hBuffer, IMG_UINT32 ui32BufferSizeMax)
-{
-	IMG_CHAR* pszBuf = hBuffer;
-	IMG_UINT32 ui32Count = 0;
-
-	while ((pszBuf[ui32Count]!=0) && (ui32Count<ui32BufferSizeMax) )
-	{
-		ui32Count++;
-	}
-	return(ui32Count);
-}
-
-IMG_VOID PDumpOSVerifyLineEnding(IMG_HANDLE hBuffer, IMG_UINT32 ui32BufferSizeMax)
-{
-	IMG_UINT32 ui32Count;
-	IMG_CHAR* pszBuf = hBuffer;
-
-	
-	ui32Count = PDumpOSBuflen(hBuffer, ui32BufferSizeMax);
-
-	
-	if ((ui32Count >= 1) && (pszBuf[ui32Count-1] != '\n') && (ui32Count<ui32BufferSizeMax))
-	{
-		pszBuf[ui32Count] = '\n';
-		ui32Count++;
-		pszBuf[ui32Count] = '\0';
-	}
-	if ((ui32Count >= 2) && (pszBuf[ui32Count-2] != '\r') && (ui32Count<ui32BufferSizeMax))
-	{
-		pszBuf[ui32Count-1] = '\r';
-		pszBuf[ui32Count] = '\n';
-		ui32Count++;
-		pszBuf[ui32Count] = '\0';
-	}
-}
-
-IMG_HANDLE PDumpOSGetStream(IMG_UINT32 ePDumpStream)
-{
-	return (IMG_HANDLE)gsDBGPdumpState.psStream[ePDumpStream];
-}
-
-IMG_UINT32 PDumpOSGetStreamOffset(IMG_UINT32 ePDumpStream)
-{
-	PDBG_STREAM psStream = gsDBGPdumpState.psStream[ePDumpStream];
-	return gpfnDbgDrv->pfnGetStreamOffset(psStream);
-}
-
-IMG_UINT32 PDumpOSGetParamFileNum(IMG_VOID)
-{
-	return gsDBGPdumpState.ui32ParamFileNum;
-}
-
-IMG_BOOL PDumpOSWriteString(IMG_HANDLE hStream,
-		IMG_UINT8 *psui8Data,
-		IMG_UINT32 ui32Size,
-		IMG_UINT32 ui32Flags)
-{
-	PDBG_STREAM psStream = (PDBG_STREAM)hStream;
-	return PDumpWriteILock(psStream,
-					psui8Data,
-					ui32Size,
-					ui32Flags);
-}
-
-IMG_VOID PDumpOSCheckForSplitting(IMG_HANDLE hStream, IMG_UINT32 ui32Size, IMG_UINT32 ui32Flags)
-{
-	
-	PVR_UNREFERENCED_PARAMETER(hStream);
-	PVR_UNREFERENCED_PARAMETER(ui32Size);
-	PVR_UNREFERENCED_PARAMETER(ui32Flags);
-}
-
-IMG_BOOL PDumpOSJTInitialised(IMG_VOID)
-{
-	if(gpfnDbgDrv)
-	{
-		return IMG_TRUE;
-	}
-	return IMG_FALSE;
-}
-
-inline IMG_BOOL PDumpOSIsSuspended(IMG_VOID)
-{
-	return (atomic_read(&gsPDumpSuspended) != 0) ? IMG_TRUE : IMG_FALSE;
-}
-
-IMG_VOID PDumpOSCPUVAddrToDevPAddr(PVRSRV_DEVICE_TYPE eDeviceType,
-        IMG_HANDLE hOSMemHandle,
-		IMG_UINT32 ui32Offset,
-		IMG_UINT8 *pui8LinAddr,
-		IMG_UINT32 ui32PageSize,
-		IMG_DEV_PHYADDR *psDevPAddr)
-{
-	IMG_CPU_PHYADDR	sCpuPAddr;
-
-	PVR_UNREFERENCED_PARAMETER(pui8LinAddr);
-	PVR_UNREFERENCED_PARAMETER(ui32PageSize);   
-
-	
-	   
-	PVR_ASSERT (hOSMemHandle != IMG_NULL);
-	
-	sCpuPAddr = OSMemHandleToCpuPAddr(hOSMemHandle, ui32Offset);
-	PVR_ASSERT((sCpuPAddr.uiAddr & (ui32PageSize - 1)) == 0);
-
-	
-	*psDevPAddr = SysCpuPAddrToDevPAddr(eDeviceType, sCpuPAddr);
-}
-
-IMG_VOID PDumpOSCPUVAddrToPhysPages(IMG_HANDLE hOSMemHandle,
-		IMG_UINT32 ui32Offset,
-		IMG_PUINT8 pui8LinAddr,
-		IMG_UINT32 ui32DataPageMask,
-		IMG_UINT32 *pui32PageOffset)
-{
-	if(hOSMemHandle)
-	{
-		
-		IMG_CPU_PHYADDR     sCpuPAddr;
-
-		PVR_UNREFERENCED_PARAMETER(pui8LinAddr);
-
-		sCpuPAddr = OSMemHandleToCpuPAddr(hOSMemHandle, ui32Offset);
-	    *pui32PageOffset = sCpuPAddr.uiAddr & ui32DataPageMask;
-	}
-	else
-	{
-		PVR_UNREFERENCED_PARAMETER(hOSMemHandle);
-		PVR_UNREFERENCED_PARAMETER(ui32Offset);
-
-		*pui32PageOffset = ((IMG_UINT32)pui8LinAddr & ui32DataPageMask);
-	}
-}
-
-IMG_UINT32 PDumpOSDebugDriverWrite( PDBG_STREAM psStream,
-									PDUMP_DDWMODE eDbgDrvWriteMode,
-									IMG_UINT8 *pui8Data,
-									IMG_UINT32 ui32BCount,
-									IMG_UINT32 ui32Level,
-									IMG_UINT32 ui32DbgDrvFlags)
-{
-	switch(eDbgDrvWriteMode)
-	{
-		case PDUMP_WRITE_MODE_CONTINUOUS:
-			PVR_UNREFERENCED_PARAMETER(ui32DbgDrvFlags);
-			return gpfnDbgDrv->pfnDBGDrivWrite2(psStream, pui8Data, ui32BCount, ui32Level);
-		case PDUMP_WRITE_MODE_LASTFRAME:
-			return gpfnDbgDrv->pfnWriteLF(psStream, pui8Data, ui32BCount, ui32Level, ui32DbgDrvFlags);
-		case PDUMP_WRITE_MODE_BINCM:
-			PVR_UNREFERENCED_PARAMETER(ui32DbgDrvFlags);
-			return gpfnDbgDrv->pfnWriteBINCM(psStream, pui8Data, ui32BCount, ui32Level);
-		case PDUMP_WRITE_MODE_PERSISTENT:
-			PVR_UNREFERENCED_PARAMETER(ui32DbgDrvFlags);
-			return gpfnDbgDrv->pfnWritePersist(psStream, pui8Data, ui32BCount, ui32Level);
-		default:
-			PVR_UNREFERENCED_PARAMETER(ui32DbgDrvFlags);
-			break;
-	}
-	return 0xFFFFFFFFU;
-}
-
-IMG_VOID PDumpOSReleaseExecution(IMG_VOID)
-{
-	OSReleaseThreadQuanta();
-}
-
-IMG_VOID PDumpInit(IMG_VOID)
-{
-	IMG_UINT32 i;
-	DBGKM_CONNECT_NOTIFIER sConnectNotifier;
-
-	
-	if (!gpfnDbgDrv)
-	{
-		DBGDrvGetServiceTable((IMG_VOID **)&gpfnDbgDrv);
-
-
-		
-		if (gpfnDbgDrv == IMG_NULL)
-		{
-			return;
-		}
-		
-		
-		sConnectNotifier.pfnConnectNotifier = &PDumpConnectionNotify;
-		gpfnDbgDrv->pfnSetConnectNotifier(sConnectNotifier);
-
-		if(!gsDBGPdumpState.pszFile)
-		{
-			if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_FILENAME_SIZE_MAX, (IMG_PVOID *)&gsDBGPdumpState.pszFile, 0,
-				"Filename string") != PVRSRV_OK)
-			{
-				goto init_failed;
-			}
-		}
-
-		if(!gsDBGPdumpState.pszMsg)
-		{
-			if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_MSG_SIZE_MAX, (IMG_PVOID *)&gsDBGPdumpState.pszMsg, 0,
-				"Message string") != PVRSRV_OK)
-			{
-				goto init_failed;
-			}
-		}
-
-		if(!gsDBGPdumpState.pszScript)
-		{
-			if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_SCRIPT_SIZE_MAX, (IMG_PVOID *)&gsDBGPdumpState.pszScript, 0,
-				"Script string") != PVRSRV_OK)
-			{
-				goto init_failed;
-			}
-		}
-
-		for(i=0; i < PDUMP_NUM_STREAMS; i++)
-		{
-			gsDBGPdumpState.psStream[i] = gpfnDbgDrv->pfnCreateStream(pszStreamName[i],
-														DEBUG_CAPMODE_FRAMED,
-														DEBUG_OUTMODE_STREAMENABLE,
-														0,
-														10);
-
-			gpfnDbgDrv->pfnSetCaptureMode(gsDBGPdumpState.psStream[i],DEBUG_CAPMODE_FRAMED,0xFFFFFFFF, 0xFFFFFFFF, 1);
-			gpfnDbgDrv->pfnSetFrame(gsDBGPdumpState.psStream[i],0);
-		}
-
-		PDUMPCOMMENT("Driver Product Name: %s", VS_PRODUCT_NAME);
-		PDUMPCOMMENT("Driver Product Version: %s (%s)", PVRVERSION_STRING, PVRVERSION_FAMILY);
-		PDUMPCOMMENT("Start of Init Phase");
-	}
-
-	return;
-
-init_failed:
-
-	if(gsDBGPdumpState.pszFile)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_FILENAME_SIZE_MAX, (IMG_PVOID) gsDBGPdumpState.pszFile, 0);
-		gsDBGPdumpState.pszFile = IMG_NULL;
-	}
-
-	if(gsDBGPdumpState.pszScript)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_SCRIPT_SIZE_MAX, (IMG_PVOID) gsDBGPdumpState.pszScript, 0);
-		gsDBGPdumpState.pszScript = IMG_NULL;
-	}
-
-	if(gsDBGPdumpState.pszMsg)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_MSG_SIZE_MAX, (IMG_PVOID) gsDBGPdumpState.pszMsg, 0);
-		gsDBGPdumpState.pszMsg = IMG_NULL;
-	}
-
-	
-	sConnectNotifier.pfnConnectNotifier = 0;
-	gpfnDbgDrv->pfnSetConnectNotifier(sConnectNotifier);
-
-	gpfnDbgDrv = IMG_NULL;
-}
-
-
-IMG_VOID PDumpDeInit(IMG_VOID)
-{
-	IMG_UINT32 i;
-	DBGKM_CONNECT_NOTIFIER sConnectNotifier;
-
-	for(i=0; i < PDUMP_NUM_STREAMS; i++)
-	{
-		gpfnDbgDrv->pfnDestroyStream(gsDBGPdumpState.psStream[i]);
-	}
-
-	if(gsDBGPdumpState.pszFile)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_FILENAME_SIZE_MAX, (IMG_PVOID) gsDBGPdumpState.pszFile, 0);
-		gsDBGPdumpState.pszFile = IMG_NULL;
-	}
-
-	if(gsDBGPdumpState.pszScript)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_SCRIPT_SIZE_MAX, (IMG_PVOID) gsDBGPdumpState.pszScript, 0);
-		gsDBGPdumpState.pszScript = IMG_NULL;
-	}
-
-	if(gsDBGPdumpState.pszMsg)
-	{
-		OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, SZ_MSG_SIZE_MAX, (IMG_PVOID) gsDBGPdumpState.pszMsg, 0);
-		gsDBGPdumpState.pszMsg = IMG_NULL;
-	}
-
-	
-	sConnectNotifier.pfnConnectNotifier = 0;
-	gpfnDbgDrv->pfnSetConnectNotifier(sConnectNotifier);
-
-	gpfnDbgDrv = IMG_NULL;
-}
-
-PVRSRV_ERROR PDumpStartInitPhaseKM(IMG_VOID)
-{
-	IMG_UINT32 i;
-
-	if (gpfnDbgDrv)
-	{
-		PDUMPCOMMENT("Start Init Phase");
-		for(i=0; i < PDUMP_NUM_STREAMS; i++)
-		{
-			gpfnDbgDrv->pfnStartInitPhase(gsDBGPdumpState.psStream[i]);
-		}
-	}
-	return PVRSRV_OK;
-}
-
-PVRSRV_ERROR PDumpStopInitPhaseKM(IMG_VOID)
-{
-	IMG_UINT32 i;
-
-	if (gpfnDbgDrv)
-	{
-		PDUMPCOMMENT("Stop Init Phase");
-
-		for(i=0; i < PDUMP_NUM_STREAMS; i++)
-		{
-			gpfnDbgDrv->pfnStopInitPhase(gsDBGPdumpState.psStream[i]);
-		}
-	}
-	return PVRSRV_OK;
-}
-
-IMG_BOOL PDumpIsLastCaptureFrameKM(IMG_VOID)
-{
-	return gpfnDbgDrv->pfnIsLastCaptureFrame(gsDBGPdumpState.psStream[PDUMP_STREAM_SCRIPT2]);
-}
-
-
-IMG_BOOL PDumpOSIsCaptureFrameKM(IMG_VOID)
-{
-	if (PDumpSuspended())
-	{
-		return IMG_FALSE;
-	}
-	return gpfnDbgDrv->pfnIsCaptureFrame(gsDBGPdumpState.psStream[PDUMP_STREAM_SCRIPT2], IMG_FALSE);
-}
-
-PVRSRV_ERROR PDumpOSSetFrameKM(IMG_UINT32 ui32Frame)
-{
-	IMG_UINT32	ui32Stream;
-
-	for	(ui32Stream = 0; ui32Stream < PDUMP_NUM_STREAMS; ui32Stream++)
-	{
-		if	(gsDBGPdumpState.psStream[ui32Stream])
-		{
-			DbgSetFrame(gsDBGPdumpState.psStream[ui32Stream], ui32Frame);
-		}
-	}
-
-	return PVRSRV_OK;
-}
-
-
-static IMG_BOOL PDumpWriteString2(IMG_CHAR * pszString, IMG_UINT32 ui32Flags)
-{
-	return PDumpWriteILock(gsDBGPdumpState.psStream[PDUMP_STREAM_SCRIPT2], (IMG_UINT8 *) pszString, strlen(pszString), ui32Flags);
-}
-
-
-static IMG_BOOL PDumpWriteILock(PDBG_STREAM psStream, IMG_UINT8 *pui8Data, IMG_UINT32 ui32Count, IMG_UINT32 ui32Flags)
-{
-	IMG_UINT32 ui32Written = 0;
-	if ((psStream == IMG_NULL) || PDumpSuspended() || ((ui32Flags & PDUMP_FLAGS_NEVER) != 0))
-	{
-		PVR_DPF((PVR_DBG_MESSAGE, "PDumpWriteILock: Failed to write 0x%x bytes to stream 0x%x", ui32Count, (IMG_UINT32)psStream));
-		return IMG_TRUE;
-	}
-
-
-	
-
-	if (psStream == gsDBGPdumpState.psStream[PDUMP_STREAM_PARAM2])
-	{
-		IMG_UINT32 ui32ParamOutPos = gpfnDbgDrv->pfnGetStreamOffset(gsDBGPdumpState.psStream[PDUMP_STREAM_PARAM2]);
-
-		if (ui32ParamOutPos + ui32Count > MAX_FILE_SIZE)
-		{
-			if ((gsDBGPdumpState.psStream[PDUMP_STREAM_SCRIPT2] && PDumpWriteString2("\r\n-- Splitting pdump output file\r\n\r\n", ui32Flags)))
-			{
-				DbgSetMarker(gsDBGPdumpState.psStream[PDUMP_STREAM_PARAM2], ui32ParamOutPos);
-				gsDBGPdumpState.ui32ParamFileNum++;
-			}
-		}
-	}
-
-	ui32Written = DbgWrite(psStream, pui8Data, ui32Count, ui32Flags);
-
-	if (ui32Written == 0xFFFFFFFF)
-	{
-		return IMG_FALSE;
-	}
-
-	return IMG_TRUE;
-}
-
-static IMG_VOID DbgSetFrame(PDBG_STREAM psStream, IMG_UINT32 ui32Frame)
-{
-	gpfnDbgDrv->pfnSetFrame(psStream, ui32Frame);
-}
-
-static IMG_VOID DbgSetMarker(PDBG_STREAM psStream, IMG_UINT32 ui32Marker)
-{
-	gpfnDbgDrv->pfnSetMarker(psStream, ui32Marker);
-}
-
-IMG_VOID PDumpSuspendKM(IMG_VOID)
-{
-	atomic_inc(&gsPDumpSuspended);
-}
-
-IMG_VOID PDumpResumeKM(IMG_VOID)
-{
-	atomic_dec(&gsPDumpSuspended);
-}
-
-#endif 
-#endif 
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/private_data.h b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/private_data.h
deleted file mode 100644
index b8751d3..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/private_data.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __INCLUDED_PRIVATE_DATA_H_
-#define __INCLUDED_PRIVATE_DATA_H_
-
-#if defined(SUPPORT_DRI_DRM) && defined(PVR_SECURE_DRM_AUTH_EXPORT)
-#include <linux/list.h>
-#include <drm/drmP.h>
-#endif
-
-typedef struct
-{
-	
-	IMG_UINT32 ui32OpenPID;
-
-	
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID hKernelMemInfo;
-#else
-	IMG_HANDLE hKernelMemInfo;
-#endif
-
-#if defined(SUPPORT_DRI_DRM) && defined(PVR_SECURE_DRM_AUTH_EXPORT)
-	
-	struct list_head sDRMAuthListItem;
-
-	struct drm_file *psDRMFile;
-#endif
-
-#if defined(SUPPORT_MEMINFO_IDS)
-	
-	IMG_UINT64 ui64Stamp;
-#endif 
-
-	
-	IMG_HANDLE hBlockAlloc;
-
-#if defined(SUPPORT_DRI_DRM_EXT)
-	IMG_PVOID pPriv;	
-#endif
-}
-PVRSRV_FILE_PRIVATE_DATA;
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/proc.c b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/proc.c
deleted file mode 100644
index 1df8aff..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/proc.c
+++ /dev/null
@@ -1,835 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <linux/version.h>
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38))
-#ifndef AUTOCONF_INCLUDED
-#include <linux/config.h>
-#endif
-#endif
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/fs.h>
-#include <linux/proc_fs.h>
-#include <linux/seq_file.h>
-
-#include "services_headers.h"
-
-#include "queue.h"
-#include "resman.h"
-#include "pvrmmap.h"
-#include "pvr_debug.h"
-#include "pvrversion.h"
-#include "proc.h"
-#include "perproc.h"
-#include "env_perproc.h"
-#include "linkage.h"
-
-#include "lists.h"
-
-static struct proc_dir_entry * dir;
-
-static const IMG_CHAR PVRProcDirRoot[] = "pvr";
-
-static IMG_INT pvr_proc_open(struct inode *inode,struct file *file);
-static void *pvr_proc_seq_start (struct seq_file *m, loff_t *pos);
-static void pvr_proc_seq_stop (struct seq_file *m, void *v);
-static void *pvr_proc_seq_next (struct seq_file *m, void *v, loff_t *pos);
-static int pvr_proc_seq_show (struct seq_file *m, void *v);
-static ssize_t pvr_proc_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos);
-
-static struct file_operations pvr_proc_operations =
-{
-	.open		= pvr_proc_open,
-	.read		= seq_read,
-	.write		= pvr_proc_write,
-	.llseek		= seq_lseek,
-	.release	= seq_release,
-};
-
-static struct seq_operations pvr_proc_seq_operations =
-{
-	.start =	pvr_proc_seq_start,
-	.next =		pvr_proc_seq_next,
-	.stop =		pvr_proc_seq_stop,
-	.show =		pvr_proc_seq_show,
-};
-
-static struct proc_dir_entry* g_pProcQueue;
-static struct proc_dir_entry* g_pProcVersion;
-static struct proc_dir_entry* g_pProcSysNodes;
-
-#ifdef DEBUG
-static struct proc_dir_entry* g_pProcDebugLevel;
-#endif
-
-#ifdef PVR_MANUAL_POWER_CONTROL
-static struct proc_dir_entry* g_pProcPowerLevel;
-#endif
-
-
-static void ProcSeqShowVersion(struct seq_file *sfile,void* el);
-
-static void ProcSeqShowSysNodes(struct seq_file *sfile,void* el);
-static void* ProcSeqOff2ElementSysNodes(struct seq_file * sfile, loff_t off);
-
-off_t printAppend(IMG_CHAR * buffer, size_t size, off_t off, const IMG_CHAR * format, ...)
-{
-    IMG_INT n;
-    size_t space = size - (size_t)off;
-    va_list ap;
-
-    va_start (ap, format);
-
-    n = vsnprintf (buffer+off, space, format, ap);
-
-    va_end (ap);
-    
-    if (n >= (IMG_INT)space || n < 0)
-    {
-	
-        buffer[size - 1] = 0;
-        return (off_t)(size - 1);
-    }
-    else
-    {
-        return (off + (off_t)n);
-    }
-}
-
-
-void* ProcSeq1ElementOff2Element(struct seq_file *sfile, loff_t off)
-{
-	PVR_UNREFERENCED_PARAMETER(sfile);
-	
-	if(!off)
-		return (void*)2;
-	return NULL;
-}
-
-
-void* ProcSeq1ElementHeaderOff2Element(struct seq_file *sfile, loff_t off)
-{
-	PVR_UNREFERENCED_PARAMETER(sfile);
-
-	if(!off)
-	{
-		return PVR_PROC_SEQ_START_TOKEN;
-	}
-
-	
-	if(off == 1)
-		return (void*)2;
-
-	return NULL;
-}
-
-
-static IMG_INT pvr_proc_open(struct inode *inode,struct file *file)
-{
-	IMG_INT ret = seq_open(file, &pvr_proc_seq_operations);
-
-	struct seq_file *seq = (struct seq_file*)file->private_data;
-	struct proc_dir_entry* pvr_proc_entry = PDE(inode);
-
-	
-	seq->private = pvr_proc_entry->data;
-	return ret;
-}
-
-static ssize_t pvr_proc_write(struct file *file, const char __user *buffer,
-		size_t count, loff_t *ppos)
-{
-	struct inode *inode = file->f_path.dentry->d_inode;
-	struct proc_dir_entry * dp;
-
-	PVR_UNREFERENCED_PARAMETER(ppos);
-	dp = PDE(inode);
-
-	if (!dp->write_proc)
-		return -EIO;
-
-	return dp->write_proc(file, buffer, count, dp->data);
-}
-
-
-static void *pvr_proc_seq_start (struct seq_file *proc_seq_file, loff_t *pos)
-{
-	PVR_PROC_SEQ_HANDLERS *handlers = (PVR_PROC_SEQ_HANDLERS*)proc_seq_file->private;
-	if(handlers->startstop != NULL)
-		handlers->startstop(proc_seq_file, IMG_TRUE);
-	return handlers->off2element(proc_seq_file, *pos);
-}
-
-static void pvr_proc_seq_stop (struct seq_file *proc_seq_file, void *v)
-{
-	PVR_PROC_SEQ_HANDLERS *handlers = (PVR_PROC_SEQ_HANDLERS*)proc_seq_file->private;
-	PVR_UNREFERENCED_PARAMETER(v);
-
-	if(handlers->startstop != NULL)
-		handlers->startstop(proc_seq_file, IMG_FALSE);
-}
-
-static void *pvr_proc_seq_next (struct seq_file *proc_seq_file, void *v, loff_t *pos)
-{
-	PVR_PROC_SEQ_HANDLERS *handlers = (PVR_PROC_SEQ_HANDLERS*)proc_seq_file->private;
-	(*pos)++;
-	if( handlers->next != NULL)
-		return handlers->next( proc_seq_file, v, *pos );
-	return handlers->off2element(proc_seq_file, *pos);
-}
-
-static int pvr_proc_seq_show (struct seq_file *proc_seq_file, void *v)
-{
-	PVR_PROC_SEQ_HANDLERS *handlers = (PVR_PROC_SEQ_HANDLERS*)proc_seq_file->private;
-	handlers->show( proc_seq_file,v );
-    return 0;
-}
-
-
-
-static struct proc_dir_entry* CreateProcEntryInDirSeq(
-									   struct proc_dir_entry *pdir,
-									   const IMG_CHAR * name,
-    								   IMG_VOID* data,
-									   pvr_next_proc_seq_t next_handler,
-									   pvr_show_proc_seq_t show_handler,
-									   pvr_off2element_proc_seq_t off2element_handler,
-									   pvr_startstop_proc_seq_t startstop_handler,
-									   write_proc_t whandler
-									   )
-{
-
-    struct proc_dir_entry * file;
-	mode_t mode;
-
-    if (!dir)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "CreateProcEntryInDirSeq: cannot make proc entry /proc/%s/%s: no parent", PVRProcDirRoot, name));
-        return NULL;
-    }
-
-	mode = S_IFREG;
-
-    if (show_handler)
-    {
-		mode |= S_IRUGO;
-    }
-
-    if (whandler)
-    {
-		mode |= S_IWUSR;
-    }
-
-	file=create_proc_entry(name, mode, pdir);
-
-    if (file)
-    {
-		PVR_PROC_SEQ_HANDLERS *seq_handlers;
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30))
-        file->owner = THIS_MODULE;
-#endif
-
-		file->proc_fops = &pvr_proc_operations;
-		file->write_proc = whandler;
-
-		
-		file->data =  kmalloc(sizeof(PVR_PROC_SEQ_HANDLERS), GFP_KERNEL);
-		if(file->data)
-		{
-			seq_handlers = (PVR_PROC_SEQ_HANDLERS*)file->data;
-			seq_handlers->next = next_handler;
-			seq_handlers->show = show_handler;
-			seq_handlers->off2element = off2element_handler;
-			seq_handlers->startstop = startstop_handler;
-			seq_handlers->data = data;
-
-        	return file;
-		}
-    }
-
-    PVR_DPF((PVR_DBG_ERROR, "CreateProcEntryInDirSeq: cannot make proc entry /proc/%s/%s: no memory", PVRProcDirRoot, name));
-    return NULL;
-}
-
-
-struct proc_dir_entry* CreateProcReadEntrySeq (
-								const IMG_CHAR * name,
-								IMG_VOID* data,
-								pvr_next_proc_seq_t next_handler,
-								pvr_show_proc_seq_t show_handler,
-								pvr_off2element_proc_seq_t off2element_handler,
-								pvr_startstop_proc_seq_t startstop_handler
-							   )
-{
-	return CreateProcEntrySeq(name,
-							  data,
-							  next_handler,
-							  show_handler,
-							  off2element_handler,
-							  startstop_handler,
-							  NULL);
-}
-
-struct proc_dir_entry* CreateProcEntrySeq (
-											const IMG_CHAR * name,
-											IMG_VOID* data,
-											pvr_next_proc_seq_t next_handler,
-											pvr_show_proc_seq_t show_handler,
-											pvr_off2element_proc_seq_t off2element_handler,
-											pvr_startstop_proc_seq_t startstop_handler,
-											write_proc_t whandler
-										  )
-{
-	return CreateProcEntryInDirSeq(
-								   dir,
-								   name,
-								   data,
-								   next_handler,
-								   show_handler,
-								   off2element_handler,
-								   startstop_handler,
-								   whandler
-								  );
-}
-
-
-
-struct proc_dir_entry* CreatePerProcessProcEntrySeq (
-									  const IMG_CHAR * name,
-    								  IMG_VOID* data,
-									  pvr_next_proc_seq_t next_handler,
-									  pvr_show_proc_seq_t show_handler,
-									  pvr_off2element_proc_seq_t off2element_handler,
-									  pvr_startstop_proc_seq_t startstop_handler,
-									  write_proc_t whandler
-									 )
-{
-    PVRSRV_ENV_PER_PROCESS_DATA *psPerProc;
-    IMG_UINT32 ui32PID;
-
-    if (!dir)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "CreatePerProcessProcEntrySeq: /proc/%s doesn't exist", PVRProcDirRoot));
-        return NULL;
-    }
-
-    ui32PID = OSGetCurrentProcessIDKM();
-
-    psPerProc = PVRSRVPerProcessPrivateData(ui32PID);
-    if (!psPerProc)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "CreatePerProcessProcEntrySeq: no per process data"));
-
-        return NULL;
-    }
-
-    if (!psPerProc->psProcDir)
-    {
-        IMG_CHAR dirname[16];
-        IMG_INT ret;
-
-        ret = snprintf(dirname, sizeof(dirname), "%u", ui32PID);
-
-		if (ret <=0 || ret >= (IMG_INT)sizeof(dirname))
-		{
-			PVR_DPF((PVR_DBG_ERROR, "CreatePerProcessProcEntries: couldn't generate per process proc directory name \"%u\"", ui32PID));
-			return NULL;
-		}
-		else
-		{
-			psPerProc->psProcDir = proc_mkdir(dirname, dir);
-			if (!psPerProc->psProcDir)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "CreatePerProcessProcEntries: couldn't create per process proc directory /proc/%s/%u",
-						PVRProcDirRoot, ui32PID));
-				return NULL;
-			}
-		}
-    }
-
-    return CreateProcEntryInDirSeq(psPerProc->psProcDir, name, data, next_handler,
-								   show_handler,off2element_handler,startstop_handler,whandler);
-}
-
-
-IMG_VOID RemoveProcEntrySeq( struct proc_dir_entry* proc_entry )
-{
-    if (dir)
-    {
-		void* data = proc_entry->data ;
-        PVR_DPF((PVR_DBG_MESSAGE, "Removing /proc/%s/%s", PVRProcDirRoot, proc_entry->name));
-
-        remove_proc_entry(proc_entry->name, dir);
-		if( data)
-			kfree( data );
-
-    }
-}
-
-IMG_VOID RemovePerProcessProcEntrySeq(struct proc_dir_entry* proc_entry)
-{
-    PVRSRV_ENV_PER_PROCESS_DATA *psPerProc;
-
-    psPerProc = LinuxTerminatingProcessPrivateData();
-    if (!psPerProc)
-    {
-        psPerProc = PVRSRVFindPerProcessPrivateData();
-        if (!psPerProc)
-        {
-            PVR_DPF((PVR_DBG_ERROR, "CreatePerProcessProcEntries: can't "
-                                    "remove %s, no per process data", proc_entry->name));
-            return;
-        }
-    }
-
-    if (psPerProc->psProcDir)
-    {
-		void* data = proc_entry->data ;
-        PVR_DPF((PVR_DBG_MESSAGE, "Removing proc entry %s from %s", proc_entry->name, psPerProc->psProcDir->name));
-
-        remove_proc_entry(proc_entry->name, psPerProc->psProcDir);
-		if(data)
-			kfree( data );
-    }
-}
-
-static IMG_INT pvr_read_proc(IMG_CHAR *page, IMG_CHAR **start, off_t off,
-                         IMG_INT count, IMG_INT *eof, IMG_VOID *data)
-{
-	 
-    pvr_read_proc_t *pprn = (pvr_read_proc_t *)data;
-
-    off_t len = pprn (page, (size_t)count, off);
-
-    if (len == END_OF_FILE)
-    {
-        len  = 0;
-        *eof = 1;
-    }
-    else if (!len)             
-    {
-        *start = (IMG_CHAR *) 0;   
-    }
-    else
-    {
-        *start = (IMG_CHAR *) 1;
-    }
-
-    return len;
-}
-
-
-static IMG_INT CreateProcEntryInDir(struct proc_dir_entry *pdir, const IMG_CHAR * name, read_proc_t rhandler, write_proc_t whandler, IMG_VOID *data)
-{
-    struct proc_dir_entry * file;
-    mode_t mode;
-
-    if (!pdir)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "CreateProcEntryInDir: parent directory doesn't exist"));
-
-        return -ENOMEM;
-    }
-
-    mode = S_IFREG;
-
-    if (rhandler)
-    {
-	mode |= S_IRUGO;
-    }
-
-    if (whandler)
-    {
-	mode |= S_IWUSR;
-    }
-
-    file = create_proc_entry(name, mode, pdir);
-
-    if (file)
-    {
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30))
-        file->owner = THIS_MODULE;
-#endif
-		file->read_proc = rhandler;
-		file->write_proc = whandler;
-		file->data = data;
-
-		PVR_DPF((PVR_DBG_MESSAGE, "Created proc entry %s in %s", name, pdir->name));
-
-        return 0;
-    }
-
-    PVR_DPF((PVR_DBG_ERROR, "CreateProcEntry: cannot create proc entry %s in %s", name, pdir->name));
-
-    return -ENOMEM;
-}
-
-
-IMG_INT CreateProcEntry(const IMG_CHAR * name, read_proc_t rhandler, write_proc_t whandler, IMG_VOID *data)
-{
-    return CreateProcEntryInDir(dir, name, rhandler, whandler, data);
-}
-
-
-IMG_INT CreatePerProcessProcEntry(const IMG_CHAR * name, read_proc_t rhandler, write_proc_t whandler, IMG_VOID *data)
-{
-    PVRSRV_ENV_PER_PROCESS_DATA *psPerProc;
-    IMG_UINT32 ui32PID;
-
-    if (!dir)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "CreatePerProcessProcEntries: /proc/%s doesn't exist", PVRProcDirRoot));
-
-        return -ENOMEM;
-    }
-
-    ui32PID = OSGetCurrentProcessIDKM();
-
-    psPerProc = PVRSRVPerProcessPrivateData(ui32PID);
-    if (!psPerProc)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "CreatePerProcessProcEntries: no per process data"));
-
-        return -ENOMEM;
-    }
-
-    if (!psPerProc->psProcDir)
-    {
-        IMG_CHAR dirname[16];
-        IMG_INT ret;
-
-        ret = snprintf(dirname, sizeof(dirname), "%u", ui32PID);
-
-		if (ret <=0 || ret >= (IMG_INT)sizeof(dirname))
-		{
-			PVR_DPF((PVR_DBG_ERROR, "CreatePerProcessProcEntries: couldn't generate per process proc directory name \"%u\"", ui32PID));
-
-					return -ENOMEM;
-		}
-		else
-		{
-			psPerProc->psProcDir = proc_mkdir(dirname, dir);
-			if (!psPerProc->psProcDir)
-			{
-			PVR_DPF((PVR_DBG_ERROR, "CreatePerProcessProcEntries: couldn't create per process proc directory /proc/%s/%u", PVRProcDirRoot, ui32PID));
-
-			return -ENOMEM;
-			}
-		}
-    }
-
-    return CreateProcEntryInDir(psPerProc->psProcDir, name, rhandler, whandler, data);
-}
-
-
-IMG_INT CreateProcReadEntry(const IMG_CHAR * name, pvr_read_proc_t handler)
-{
-    struct proc_dir_entry * file;
-
-    if (!dir)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "CreateProcReadEntry: cannot make proc entry /proc/%s/%s: no parent", PVRProcDirRoot, name));
-
-        return -ENOMEM;
-    }
-
-	 
-    file = create_proc_read_entry (name, S_IFREG | S_IRUGO, dir, pvr_read_proc, (IMG_VOID *)handler);
-
-    if (file)
-    {
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30))
-        file->owner = THIS_MODULE;
-#endif
-        return 0;
-    }
-
-    PVR_DPF((PVR_DBG_ERROR, "CreateProcReadEntry: cannot make proc entry /proc/%s/%s: no memory", PVRProcDirRoot, name));
-
-    return -ENOMEM;
-}
-
-
-IMG_INT CreateProcEntries(IMG_VOID)
-{
-    dir = proc_mkdir (PVRProcDirRoot, NULL);
-
-    if (!dir)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "CreateProcEntries: cannot make /proc/%s directory", PVRProcDirRoot));
-
-        return -ENOMEM;
-    }
-
-	g_pProcQueue = CreateProcReadEntrySeq("queue", NULL, NULL, ProcSeqShowQueue, ProcSeqOff2ElementQueue, NULL);
-	g_pProcVersion = CreateProcReadEntrySeq("version", NULL, NULL, ProcSeqShowVersion, ProcSeq1ElementHeaderOff2Element, NULL);
-	g_pProcSysNodes = CreateProcReadEntrySeq("nodes", NULL, NULL, ProcSeqShowSysNodes, ProcSeqOff2ElementSysNodes, NULL);
-
-	if(!g_pProcQueue || !g_pProcVersion || !g_pProcSysNodes)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "CreateProcEntries: couldn't make /proc/%s files", PVRProcDirRoot));
-
-        return -ENOMEM;
-    }
-
-
-#ifdef DEBUG
-
-	g_pProcDebugLevel = CreateProcEntrySeq("debug_level", NULL, NULL,
-											ProcSeqShowDebugLevel,
-											ProcSeq1ElementOff2Element, NULL,
-										    (IMG_VOID*)PVRDebugProcSetLevel);
-	if(!g_pProcDebugLevel)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "CreateProcEntries: couldn't make /proc/%s/debug_level", PVRProcDirRoot));
-
-        return -ENOMEM;
-    }
-
-#ifdef PVR_MANUAL_POWER_CONTROL
-	g_pProcPowerLevel = CreateProcEntrySeq("power_control", NULL, NULL,
-											ProcSeqShowPowerLevel,
-											ProcSeq1ElementOff2Element, NULL,
-										    PVRProcSetPowerLevel);
-	if(!g_pProcPowerLevel)
-    {
-        PVR_DPF((PVR_DBG_ERROR, "CreateProcEntries: couldn't make /proc/%s/power_control", PVRProcDirRoot));
-
-        return -ENOMEM;
-    }
-#endif
-#endif
-
-    return 0;
-}
-
-
-IMG_VOID RemoveProcEntry(const IMG_CHAR * name)
-{
-    if (dir)
-    {
-        remove_proc_entry(name, dir);
-        PVR_DPF((PVR_DBG_MESSAGE, "Removing /proc/%s/%s", PVRProcDirRoot, name));
-    }
-}
-
-
-IMG_VOID RemovePerProcessProcEntry(const IMG_CHAR *name)
-{
-    PVRSRV_ENV_PER_PROCESS_DATA *psPerProc;
-
-    psPerProc = LinuxTerminatingProcessPrivateData();
-    if (!psPerProc)
-    {
-        psPerProc = PVRSRVFindPerProcessPrivateData();
-        if (!psPerProc)
-        {
-            PVR_DPF((PVR_DBG_ERROR, "CreatePerProcessProcEntries: can't "
-                                    "remove %s, no per process data", name));
-            return;
-        }
-    }
-
-    if (psPerProc->psProcDir)
-    {
-        remove_proc_entry(name, psPerProc->psProcDir);
-
-        PVR_DPF((PVR_DBG_MESSAGE, "Removing proc entry %s from %s", name, psPerProc->psProcDir->name));
-    }
-}
-
-
-IMG_VOID RemovePerProcessProcDir(PVRSRV_ENV_PER_PROCESS_DATA *psPerProc)
-{
-    if (psPerProc->psProcDir)
-    {
-        while (psPerProc->psProcDir->subdir)
-        {
-            PVR_DPF((PVR_DBG_WARNING, "Belatedly removing /proc/%s/%s/%s", PVRProcDirRoot, psPerProc->psProcDir->name, psPerProc->psProcDir->subdir->name));
-
-            RemoveProcEntry(psPerProc->psProcDir->subdir->name);
-        }
-        RemoveProcEntry(psPerProc->psProcDir->name);
-    }
-}
-
-IMG_VOID RemoveProcEntries(IMG_VOID)
-{
-#ifdef DEBUG
-	RemoveProcEntrySeq( g_pProcDebugLevel );
-#ifdef PVR_MANUAL_POWER_CONTROL
-	RemoveProcEntrySeq( g_pProcPowerLevel );
-#endif 
-#endif
-
-	RemoveProcEntrySeq(g_pProcQueue);
-	RemoveProcEntrySeq(g_pProcVersion);
-	RemoveProcEntrySeq(g_pProcSysNodes);
-
-	while (dir->subdir)
-	{
-		PVR_DPF((PVR_DBG_WARNING, "Belatedly removing /proc/%s/%s", PVRProcDirRoot, dir->subdir->name));
-
-		RemoveProcEntry(dir->subdir->name);
-	}
-
-	remove_proc_entry(PVRProcDirRoot, NULL);
-}
-
-static void ProcSeqShowVersion(struct seq_file *sfile,void* el)
-{
-	SYS_DATA *psSysData;
-	IMG_CHAR *pszSystemVersionString = "None";
-
-	if(el == PVR_PROC_SEQ_START_TOKEN)
-	{
-		seq_printf(sfile,
-				"Version %s (%s) %s\n",
-				PVRVERSION_STRING,
-				PVR_BUILD_TYPE, PVR_BUILD_DIR);
-		return;
-	}
-
-	psSysData = SysAcquireDataNoCheck();
-	if(psSysData != IMG_NULL && psSysData->pszVersionString != IMG_NULL)
-	{
-		pszSystemVersionString = psSysData->pszVersionString;
-	}
-
-	seq_printf( sfile, "System Version String: %s\n", pszSystemVersionString);
-}
-
-static const IMG_CHAR *deviceTypeToString(PVRSRV_DEVICE_TYPE deviceType)
-{
-    switch (deviceType)
-    {
-        default:
-        {
-            static IMG_CHAR text[10];
-
-            sprintf(text, "?%x", (IMG_UINT)deviceType);
-
-            return text;
-        }
-    }
-}
-
-
-static const IMG_CHAR *deviceClassToString(PVRSRV_DEVICE_CLASS deviceClass)
-{
-    switch (deviceClass)
-    {
-	case PVRSRV_DEVICE_CLASS_3D:
-	{
-	    return "3D";
-	}
-	case PVRSRV_DEVICE_CLASS_DISPLAY:
-	{
-	    return "display";
-	}
-	case PVRSRV_DEVICE_CLASS_BUFFER:
-	{
-	    return "buffer";
-	}
-	default:
-	{
-	    static IMG_CHAR text[10];
-
-	    sprintf(text, "?%x", (IMG_UINT)deviceClass);
-	    return text;
-	}
-    }
-}
-
-static IMG_VOID* DecOffPsDev_AnyVaCb(PVRSRV_DEVICE_NODE *psNode, va_list va)
-{
-	off_t *pOff = va_arg(va, off_t*);
-	if (--(*pOff))
-	{
-		return IMG_NULL;
-	}
-	else
-	{
-		return psNode;
-	}
-}
-
-static void ProcSeqShowSysNodes(struct seq_file *sfile,void* el)
-{
-	PVRSRV_DEVICE_NODE *psDevNode;
-
-	if(el == PVR_PROC_SEQ_START_TOKEN)
-	{
-		seq_printf( sfile,
-						"Registered nodes\n"
-						"Addr     Type     Class    Index Ref pvDev     Size Res\n");
-		return;
-	}
-
-	psDevNode = (PVRSRV_DEVICE_NODE*)el;
-
-	seq_printf( sfile,
-			  "%p %-8s %-8s %4d  %2u  %p  %3u  %p\n",
-			  psDevNode,
-			  deviceTypeToString(psDevNode->sDevId.eDeviceType),
-			  deviceClassToString(psDevNode->sDevId.eDeviceClass),
-			  psDevNode->sDevId.eDeviceClass,
-			  psDevNode->ui32RefCount,
-			  psDevNode->pvDevice,
-			  psDevNode->ui32pvDeviceSize,
-			  psDevNode->hResManContext);
-}
-
-static void* ProcSeqOff2ElementSysNodes(struct seq_file * sfile, loff_t off)
-{
-    SYS_DATA *psSysData;
-    PVRSRV_DEVICE_NODE*psDevNode = IMG_NULL;
-    
-    PVR_UNREFERENCED_PARAMETER(sfile);
-    
-    if(!off)
-    {
-	return PVR_PROC_SEQ_START_TOKEN;
-    }
-
-    psSysData = SysAcquireDataNoCheck();
-    if (psSysData != IMG_NULL)
-    {
-	
-	psDevNode = (PVRSRV_DEVICE_NODE*)
-			List_PVRSRV_DEVICE_NODE_Any_va(psSysData->psDeviceNodeList,
-													DecOffPsDev_AnyVaCb,
-													&off);
-    }
-
-    
-    return (void*)psDevNode;
-}
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/proc.h b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/proc.h
deleted file mode 100644
index 2066d71..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/proc.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __SERVICES_PROC_H__
-#define __SERVICES_PROC_H__
-
-#include <asm/system.h>		
-#include <linux/proc_fs.h>	
-#include <linux/seq_file.h> 
-
-#define END_OF_FILE (off_t) -1
-
-typedef off_t (pvr_read_proc_t)(IMG_CHAR *, size_t, off_t);
-
-
-#define PVR_PROC_SEQ_START_TOKEN (void*)1
-typedef void* (pvr_next_proc_seq_t)(struct seq_file *,void*,loff_t);
-typedef void* (pvr_off2element_proc_seq_t)(struct seq_file *, loff_t);
-typedef void (pvr_show_proc_seq_t)(struct seq_file *,void*);
-typedef void (pvr_startstop_proc_seq_t)(struct seq_file *, IMG_BOOL start);
-
-typedef struct _PVR_PROC_SEQ_HANDLERS_ {
-	pvr_next_proc_seq_t *next;	
-	pvr_show_proc_seq_t *show;	
-	pvr_off2element_proc_seq_t *off2element;
-	pvr_startstop_proc_seq_t *startstop;
-	IMG_VOID *data;
-} PVR_PROC_SEQ_HANDLERS;
-
-
-void* ProcSeq1ElementOff2Element(struct seq_file *sfile, loff_t off);
-
-void* ProcSeq1ElementHeaderOff2Element(struct seq_file *sfile, loff_t off);
-
-off_t printAppend(IMG_CHAR * buffer, size_t size, off_t off, const IMG_CHAR * format, ...)
-	__attribute__((format(printf, 4, 5)));
-
-IMG_INT CreateProcEntries(IMG_VOID);
-
-IMG_INT CreateProcReadEntry (const IMG_CHAR * name, pvr_read_proc_t handler);
-
-IMG_INT CreateProcEntry(const IMG_CHAR * name, read_proc_t rhandler, write_proc_t whandler, IMG_VOID *data);
-
-IMG_INT CreatePerProcessProcEntry(const IMG_CHAR * name, read_proc_t rhandler, write_proc_t whandler, IMG_VOID *data);
-
-IMG_VOID RemoveProcEntry(const IMG_CHAR * name);
-
-IMG_VOID RemovePerProcessProcEntry(const IMG_CHAR * name);
-
-IMG_VOID RemoveProcEntries(IMG_VOID);
-
-struct proc_dir_entry* CreateProcReadEntrySeq (
-								const IMG_CHAR* name, 
-								IMG_VOID* data,
-								pvr_next_proc_seq_t next_handler, 
-								pvr_show_proc_seq_t show_handler,
-								pvr_off2element_proc_seq_t off2element_handler,
-								pvr_startstop_proc_seq_t startstop_handler
-							   );
-
-struct proc_dir_entry* CreateProcEntrySeq (
-								const IMG_CHAR* name, 
-								IMG_VOID* data,
-								pvr_next_proc_seq_t next_handler, 
-								pvr_show_proc_seq_t show_handler,
-								pvr_off2element_proc_seq_t off2element_handler,
-								pvr_startstop_proc_seq_t startstop_handler,
-								write_proc_t whandler
-							   );
-
-struct proc_dir_entry* CreatePerProcessProcEntrySeq (
-								const IMG_CHAR* name, 
-								IMG_VOID* data,
-								pvr_next_proc_seq_t next_handler, 
-								pvr_show_proc_seq_t show_handler,
-								pvr_off2element_proc_seq_t off2element_handler,
-								pvr_startstop_proc_seq_t startstop_handler,
-								write_proc_t whandler
-							   );
-
-
-IMG_VOID RemoveProcEntrySeq(struct proc_dir_entry* proc_entry);
-IMG_VOID RemovePerProcessProcEntrySeq(struct proc_dir_entry* proc_entry);
-
-#endif
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_bridge_k.c b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_bridge_k.c
deleted file mode 100644
index b45fe55..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_bridge_k.c
+++ /dev/null
@@ -1,432 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "img_defs.h"
-#include "services.h"
-#include "pvr_bridge.h"
-#include "perproc.h"
-#include "mutex.h"
-#include "syscommon.h"
-#include "pvr_debug.h"
-#include "proc.h"
-#include "private_data.h"
-#include "linkage.h"
-#include "pvr_bridge_km.h"
-
-#if defined(SUPPORT_DRI_DRM)
-#include <drm/drmP.h>
-#include "pvr_drm.h"
-#if defined(PVR_SECURE_DRM_AUTH_EXPORT)
-#include "env_perproc.h"
-#endif
-#endif
-
-#if defined(SUPPORT_VGX)
-#include "vgx_bridge.h"
-#endif
-
-#if defined(SUPPORT_SGX)
-#include "sgx_bridge.h"
-#endif
-
-#include "bridged_pvr_bridge.h"
-
-#if defined(SUPPORT_DRI_DRM)
-#define	PRIVATE_DATA(pFile) ((pFile)->driver_priv)
-#else
-#define	PRIVATE_DATA(pFile) ((pFile)->private_data)
-#endif
-
-#if defined(DEBUG_BRIDGE_KM)
-
-static struct proc_dir_entry *g_ProcBridgeStats =0;
-static void* ProcSeqNextBridgeStats(struct seq_file *sfile,void* el,loff_t off);
-static void ProcSeqShowBridgeStats(struct seq_file *sfile,void* el);
-static void* ProcSeqOff2ElementBridgeStats(struct seq_file * sfile, loff_t off);
-static void ProcSeqStartstopBridgeStats(struct seq_file *sfile,IMG_BOOL start);
-
-#endif
-
-extern PVRSRV_LINUX_MUTEX gPVRSRVLock;
-
-#if defined(SUPPORT_MEMINFO_IDS)
-static IMG_UINT64 ui64Stamp;
-#endif 
-
-PVRSRV_ERROR
-LinuxBridgeInit(IMG_VOID)
-{
-#if defined(DEBUG_BRIDGE_KM)
-	{
-		g_ProcBridgeStats = CreateProcReadEntrySeq(
-												  "bridge_stats", 
-												  NULL,
-												  ProcSeqNextBridgeStats,
-												  ProcSeqShowBridgeStats,
-												  ProcSeqOff2ElementBridgeStats,
-												  ProcSeqStartstopBridgeStats
-						  						 );
-		if(!g_ProcBridgeStats)
-		{
-			return PVRSRV_ERROR_OUT_OF_MEMORY;
-		}
-	}
-#endif
-	return CommonBridgeInit();
-}
-
-IMG_VOID
-LinuxBridgeDeInit(IMG_VOID)
-{
-#if defined(DEBUG_BRIDGE_KM)
-    RemoveProcEntrySeq(g_ProcBridgeStats);
-#endif
-}
-
-#if defined(DEBUG_BRIDGE_KM)
-
-static void ProcSeqStartstopBridgeStats(struct seq_file *sfile,IMG_BOOL start) 
-{
-	if(start) 
-	{
-		LinuxLockMutex(&gPVRSRVLock);
-	}
-	else
-	{
-		LinuxUnLockMutex(&gPVRSRVLock);
-	}
-}
-
-
-static void* ProcSeqOff2ElementBridgeStats(struct seq_file *sfile, loff_t off)
-{
-	if(!off) 
-	{
-		return PVR_PROC_SEQ_START_TOKEN;
-	}
-
-	if(off > BRIDGE_DISPATCH_TABLE_ENTRY_COUNT)
-	{
-		return (void*)0;
-	}
-
-
-	return (void*)&g_BridgeDispatchTable[off-1];
-}
-
-static void* ProcSeqNextBridgeStats(struct seq_file *sfile,void* el,loff_t off)
-{
-	return ProcSeqOff2ElementBridgeStats(sfile,off);
-}
-
-
-static void ProcSeqShowBridgeStats(struct seq_file *sfile,void* el)
-{
-	PVRSRV_BRIDGE_DISPATCH_TABLE_ENTRY *psEntry = (	PVRSRV_BRIDGE_DISPATCH_TABLE_ENTRY*)el;
-
-	if(el == PVR_PROC_SEQ_START_TOKEN) 
-	{
-		seq_printf(sfile,
-						  "Total ioctl call count = %u\n"
-						  "Total number of bytes copied via copy_from_user = %u\n"
-						  "Total number of bytes copied via copy_to_user = %u\n"
-						  "Total number of bytes copied via copy_*_user = %u\n\n"
-						  "%-45s | %-40s | %10s | %20s | %10s\n",
-						  g_BridgeGlobalStats.ui32IOCTLCount,
-						  g_BridgeGlobalStats.ui32TotalCopyFromUserBytes,
-						  g_BridgeGlobalStats.ui32TotalCopyToUserBytes,
-						  g_BridgeGlobalStats.ui32TotalCopyFromUserBytes+g_BridgeGlobalStats.ui32TotalCopyToUserBytes,
-						  "Bridge Name",
-						  "Wrapper Function",
-						  "Call Count",
-						  "copy_from_user Bytes",
-						  "copy_to_user Bytes"
-						 );
-		return;
-	}
-
-	seq_printf(sfile,
-				   "%-45s   %-40s   %-10u   %-20u   %-10u\n",
-				   psEntry->pszIOCName,
-				   psEntry->pszFunctionName,
-				   psEntry->ui32CallCount,
-				   psEntry->ui32CopyFromUserTotalBytes,
-				   psEntry->ui32CopyToUserTotalBytes);
-}
-
-#endif 
-
-
-#if defined(SUPPORT_DRI_DRM)
-int
-PVRSRV_BridgeDispatchKM(struct drm_device unref__ *dev, void *arg, struct drm_file *pFile)
-#else
-long
-PVRSRV_BridgeDispatchKM(struct file *pFile, unsigned int unref__ ioctlCmd, unsigned long arg)
-#endif
-{
-	IMG_UINT32 cmd;
-#if !defined(SUPPORT_DRI_DRM)
-	PVRSRV_BRIDGE_PACKAGE *psBridgePackageUM = (PVRSRV_BRIDGE_PACKAGE *)arg;
-	PVRSRV_BRIDGE_PACKAGE sBridgePackageKM;
-#endif
-	PVRSRV_BRIDGE_PACKAGE *psBridgePackageKM;
-	IMG_UINT32 ui32PID = OSGetCurrentProcessIDKM();
-	PVRSRV_PER_PROCESS_DATA *psPerProc;
-	IMG_INT err = -EFAULT;
-
-	LinuxLockMutex(&gPVRSRVLock);
-
-#if defined(SUPPORT_DRI_DRM)
-	psBridgePackageKM = (PVRSRV_BRIDGE_PACKAGE *)arg;
-	PVR_ASSERT(psBridgePackageKM != IMG_NULL);
-#else
-	psBridgePackageKM = &sBridgePackageKM;
-
-	if(!OSAccessOK(PVR_VERIFY_WRITE,
-				   psBridgePackageUM,
-				   sizeof(PVRSRV_BRIDGE_PACKAGE)))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "%s: Received invalid pointer to function arguments",
-				 __FUNCTION__));
-
-		goto unlock_and_return;
-	}
-	
-	
-	if(OSCopyFromUser(IMG_NULL,
-					  psBridgePackageKM,
-					  psBridgePackageUM,
-					  sizeof(PVRSRV_BRIDGE_PACKAGE))
-	  != PVRSRV_OK)
-	{
-		goto unlock_and_return;
-	}
-#endif
-
-	cmd = psBridgePackageKM->ui32BridgeID;
-	
-	if(cmd != PVRSRV_BRIDGE_CONNECT_SERVICES)
-	{
-		PVRSRV_ERROR eError;
-
-		eError = PVRSRVLookupHandle(KERNEL_HANDLE_BASE,
-									(IMG_PVOID *)&psPerProc,
-									psBridgePackageKM->hKernelServices,
-									PVRSRV_HANDLE_TYPE_PERPROC_DATA);
-		if(eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "%s: Invalid kernel services handle (%d)",
-					 __FUNCTION__, eError));
-			goto unlock_and_return;
-		}
-
-		if(psPerProc->ui32PID != ui32PID)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "%s: Process %d tried to access data "
-					 "belonging to process %d", __FUNCTION__, ui32PID,
-					 psPerProc->ui32PID));
-			goto unlock_and_return;
-		}
-	}
-	else
-	{
-		
-		psPerProc = PVRSRVPerProcessData(ui32PID);
-		if(psPerProc == IMG_NULL)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "PVRSRV_BridgeDispatchKM: "
-					 "Couldn't create per-process data area"));
-			goto unlock_and_return;
-		}
-	}
-
-	psBridgePackageKM->ui32BridgeID = PVRSRV_GET_BRIDGE_ID(psBridgePackageKM->ui32BridgeID);
-
-	switch(cmd)
-	{
-		case PVRSRV_BRIDGE_EXPORT_DEVICEMEM_2:
-		{
-			PVRSRV_FILE_PRIVATE_DATA *psPrivateData = PRIVATE_DATA(pFile);
-
-			if(psPrivateData->hKernelMemInfo)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "%s: Can only export one MemInfo "
-						 "per file descriptor", __FUNCTION__));
-				err = -EINVAL;
-				goto unlock_and_return;
-			}
-			break;
-		}
-
-		case PVRSRV_BRIDGE_MAP_DEV_MEMORY_2:
-		{
-			PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY *psMapDevMemIN =
-				(PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY *)psBridgePackageKM->pvParamIn;
-			PVRSRV_FILE_PRIVATE_DATA *psPrivateData = PRIVATE_DATA(pFile);
-
-			if(!psPrivateData->hKernelMemInfo)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "%s: File descriptor has no "
-						 "associated MemInfo handle", __FUNCTION__));
-				err = -EINVAL;
-				goto unlock_and_return;
-			}
-
-			if (put_user(psPrivateData->hKernelMemInfo, &psMapDevMemIN->hKernelMemInfo) != 0)
-			{
-				err = -EFAULT;
-				goto unlock_and_return;
-			}
-			break;
-		}
-
-		default:
-		{
-			PVRSRV_FILE_PRIVATE_DATA *psPrivateData = PRIVATE_DATA(pFile);
-
-			if(psPrivateData->hKernelMemInfo)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "%s: Import/Export handle tried "
-						 "to use privileged service", __FUNCTION__));
-				goto unlock_and_return;
-			}
-			break;
-		}
-	}
-
-#if defined(SUPPORT_DRI_DRM) && defined(PVR_SECURE_DRM_AUTH_EXPORT)
-	switch(cmd)
-	{
-		case PVRSRV_BRIDGE_MAP_DEV_MEMORY:
-		case PVRSRV_BRIDGE_MAP_DEVICECLASS_MEMORY:
-		{
-			PVRSRV_FILE_PRIVATE_DATA *psPrivateData;
-			int authenticated = pFile->authenticated;
-			PVRSRV_ENV_PER_PROCESS_DATA *psEnvPerProc;
-
-			if (authenticated)
-			{
-				break;
-			}
-
-			
-			psEnvPerProc = (PVRSRV_ENV_PER_PROCESS_DATA *)PVRSRVProcessPrivateData(psPerProc);
-			if (psEnvPerProc == IMG_NULL)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "%s: Process private data not allocated", __FUNCTION__));
-				err = -EFAULT;
-				goto unlock_and_return;
-			}
-
-			list_for_each_entry(psPrivateData, &psEnvPerProc->sDRMAuthListHead, sDRMAuthListItem)
-			{
-				struct drm_file *psDRMFile = psPrivateData->psDRMFile;
-
-				if (pFile->master == psDRMFile->master)
-				{
-					authenticated |= psDRMFile->authenticated;
-					if (authenticated)
-					{
-						break;
-					}
-				}
-			}
-
-			if (!authenticated)
-			{
-				PVR_DPF((PVR_DBG_ERROR, "%s: Not authenticated for mapping device or device class memory", __FUNCTION__));
-				err = -EPERM;
-				goto unlock_and_return;
-			}
-			break;
-		}
-		default:
-			break;
-	}
-#endif 
-
-	err = BridgedDispatchKM(psPerProc, psBridgePackageKM);
-	if(err != PVRSRV_OK)
-		goto unlock_and_return;
-
-	switch(cmd)
-	{
-		case PVRSRV_BRIDGE_EXPORT_DEVICEMEM_2:
-		{
-			PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM *psExportDeviceMemOUT =
-				(PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM *)psBridgePackageKM->pvParamOut;
-			PVRSRV_FILE_PRIVATE_DATA *psPrivateData = PRIVATE_DATA(pFile);
-
-			psPrivateData->hKernelMemInfo = psExportDeviceMemOUT->hMemInfo;
-#if defined(SUPPORT_MEMINFO_IDS)
-			psPrivateData->ui64Stamp = ++ui64Stamp;
-
-			psExportDeviceMemOUT->ui64Stamp = psPrivateData->ui64Stamp;
-			if (put_user(psPrivateData->ui64Stamp, &psExportDeviceMemOUT->ui64Stamp) != 0)
-			{
-				err = -EFAULT;
-				goto unlock_and_return;
-			}
-#endif
-			break;
-		}
-
-#if defined(SUPPORT_MEMINFO_IDS)
-		case PVRSRV_BRIDGE_MAP_DEV_MEMORY:
-		{
-			PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY *psMapDeviceMemoryOUT =
-				(PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY *)psBridgePackageKM->pvParamOut;
-			PVRSRV_FILE_PRIVATE_DATA *psPrivateData = PRIVATE_DATA(pFile);
-			if (put_user(psPrivateData->ui64Stamp, &psMapDeviceMemoryOUT->sDstClientMemInfo.ui64Stamp) != 0)
-			{
-				err = -EFAULT;
-				goto unlock_and_return;
-			}
-			break;
-		}
-
-		case PVRSRV_BRIDGE_MAP_DEVICECLASS_MEMORY:
-		{
-			PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY *psDeviceClassMemoryOUT =
-				(PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY *)psBridgePackageKM->pvParamOut;
-			if (put_user(++ui64Stamp, &psDeviceClassMemoryOUT->sClientMemInfo.ui64Stamp) != 0)
-			{
-				err = -EFAULT;
-				goto unlock_and_return;
-			}
-			break;
-		}
-#endif 
-
-		default:
-			break;
-	}
-
-unlock_and_return:
-	LinuxUnLockMutex(&gPVRSRVLock);
-	return err;
-}
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_debug.c b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_debug.c
deleted file mode 100644
index b2b0273..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_debug.c
+++ /dev/null
@@ -1,424 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <linux/version.h>
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38))
-#ifndef AUTOCONF_INCLUDED
-#include <linux/config.h>
-#endif
-#endif
-
-#include <asm/io.h>
-#include <asm/uaccess.h>
-#include <linux/kernel.h>
-#include <linux/hardirq.h>
-#include <linux/module.h>
-#include <linux/spinlock.h>
-#include <linux/string.h>			
-#include <stdarg.h>
-#include "img_types.h"
-#include "servicesext.h"
-#include "pvr_debug.h"
-#include "srvkm.h"
-#include "proc.h"
-#include "mutex.h"
-#include "linkage.h"
-
-static IMG_BOOL VBAppend(IMG_CHAR *pszBuf, IMG_UINT32 ui32BufSiz,
-						 const IMG_CHAR* pszFormat, va_list VArgs)
-						 IMG_FORMAT_PRINTF(3, 0);
-
-
-#if defined(PVRSRV_NEED_PVR_DPF)
-
-#define PVR_MAX_FILEPATH_LEN 256
-
-static IMG_BOOL BAppend(IMG_CHAR *pszBuf, IMG_UINT32 ui32BufSiz,
-						const IMG_CHAR *pszFormat, ...)
-						IMG_FORMAT_PRINTF(3, 4);
-
-IMG_UINT32 gPVRDebugLevel =
-	(DBGPRIV_FATAL | DBGPRIV_ERROR | DBGPRIV_WARNING);
-
-#endif 
-
-#define	PVR_MAX_MSG_LEN PVR_MAX_DEBUG_MESSAGE_LEN
-
-static IMG_CHAR gszBufferNonIRQ[PVR_MAX_MSG_LEN + 1];
-
-static IMG_CHAR gszBufferIRQ[PVR_MAX_MSG_LEN + 1];
-
-static PVRSRV_LINUX_MUTEX gsDebugMutexNonIRQ;
-
- 
-static spinlock_t gsDebugLockIRQ = __SPIN_LOCK_UNLOCKED(gsDebugLockIRQ);
-
-#if !defined (USE_SPIN_LOCK)  
-#define	USE_SPIN_LOCK (in_interrupt() || !preemptible())
-#endif
-
-static inline void GetBufferLock(unsigned long *pulLockFlags)
-{
-	if (USE_SPIN_LOCK)
-	{
-		spin_lock_irqsave(&gsDebugLockIRQ, *pulLockFlags);
-	}
-	else
-	{
-		LinuxLockMutex(&gsDebugMutexNonIRQ);
-	}
-}
-
-static inline void ReleaseBufferLock(unsigned long ulLockFlags)
-{
-	if (USE_SPIN_LOCK)
-	{
-		spin_unlock_irqrestore(&gsDebugLockIRQ, ulLockFlags);
-	}
-	else
-	{
-		LinuxUnLockMutex(&gsDebugMutexNonIRQ);
-	}
-}
-
-static inline void SelectBuffer(IMG_CHAR **ppszBuf, IMG_UINT32 *pui32BufSiz)
-{
-	if (USE_SPIN_LOCK)
-	{
-		*ppszBuf = gszBufferIRQ;
-		*pui32BufSiz = sizeof(gszBufferIRQ);
-	}
-	else
-	{
-		*ppszBuf = gszBufferNonIRQ;
-		*pui32BufSiz = sizeof(gszBufferNonIRQ);
-	}
-}
-
-static IMG_BOOL VBAppend(IMG_CHAR *pszBuf, IMG_UINT32 ui32BufSiz, const IMG_CHAR* pszFormat, va_list VArgs)
-{
-	IMG_UINT32 ui32Used;
-	IMG_UINT32 ui32Space;
-	IMG_INT32 i32Len;
-
-	ui32Used = strlen(pszBuf);
-	BUG_ON(ui32Used >= ui32BufSiz);
-	ui32Space = ui32BufSiz - ui32Used;
-
-	i32Len = vsnprintf(&pszBuf[ui32Used], ui32Space, pszFormat, VArgs);
-	pszBuf[ui32BufSiz - 1] = 0;
-
-	
-	return (i32Len < 0 || i32Len >= (IMG_INT32)ui32Space) ? IMG_TRUE : IMG_FALSE;
-}
-
-IMG_VOID PVRDPFInit(IMG_VOID)
-{
-    LinuxInitMutex(&gsDebugMutexNonIRQ);
-}
-
-IMG_VOID PVRSRVReleasePrintf(const IMG_CHAR *pszFormat, ...)
-{
-	va_list vaArgs;
-	unsigned long ulLockFlags = 0;
-	IMG_CHAR *pszBuf;
-	IMG_UINT32 ui32BufSiz;
-
-	SelectBuffer(&pszBuf, &ui32BufSiz);
-
-	va_start(vaArgs, pszFormat);
-
-	GetBufferLock(&ulLockFlags);
-	strncpy (pszBuf, "PVR_K: ", (ui32BufSiz -1));
-
-	if (VBAppend(pszBuf, ui32BufSiz, pszFormat, vaArgs))
-	{
-		printk(KERN_INFO "PVR_K:(Message Truncated): %s\n", pszBuf);
-	}
-	else
-	{
-		printk(KERN_INFO "%s\n", pszBuf);
-	}
-
-	ReleaseBufferLock(ulLockFlags);
-	va_end(vaArgs);
-
-}
-
-#if defined(PVRSRV_NEED_PVR_ASSERT)
-
-IMG_VOID PVRSRVDebugAssertFail(const IMG_CHAR* pszFile, IMG_UINT32 uLine)
-{
-	PVRSRVDebugPrintf(DBGPRIV_FATAL, pszFile, uLine, "Debug assertion failed!");
-	BUG();
-}
-
-#endif 
-
-#if defined(PVRSRV_NEED_PVR_TRACE)
-
-IMG_VOID PVRSRVTrace(const IMG_CHAR* pszFormat, ...)
-{
-	va_list VArgs;
-	unsigned long ulLockFlags = 0;
-	IMG_CHAR *pszBuf;
-	IMG_UINT32 ui32BufSiz;
-
-	SelectBuffer(&pszBuf, &ui32BufSiz);
-
-	va_start(VArgs, pszFormat);
-
-	GetBufferLock(&ulLockFlags);
-
-	strncpy(pszBuf, "PVR: ", (ui32BufSiz -1));
-
-	if (VBAppend(pszBuf, ui32BufSiz, pszFormat, VArgs))
-	{
-		printk(KERN_INFO "PVR_K:(Message Truncated): %s\n", pszBuf);
-	}
-	else
-	{
-		printk(KERN_INFO "%s\n", pszBuf);
-	}
-
-	ReleaseBufferLock(ulLockFlags);
-
-	va_end(VArgs);
-}
-
-#endif 
-
-#if defined(PVRSRV_NEED_PVR_DPF)
-
-static IMG_BOOL BAppend(IMG_CHAR *pszBuf, IMG_UINT32 ui32BufSiz, const IMG_CHAR *pszFormat, ...)
-{
-	va_list VArgs;
-	IMG_BOOL bTrunc;
-
-	va_start (VArgs, pszFormat);
-
-	bTrunc = VBAppend(pszBuf, ui32BufSiz, pszFormat, VArgs);
-
-	va_end (VArgs);
-
-	return bTrunc;
-}
-
-IMG_VOID PVRSRVDebugPrintf	(
-						IMG_UINT32	ui32DebugLevel,
-						const IMG_CHAR*	pszFullFileName,
-						IMG_UINT32	ui32Line,
-						const IMG_CHAR*	pszFormat,
-						...
-					)
-{
-	IMG_BOOL bTrace;
-	const IMG_CHAR *pszFileName = pszFullFileName;
-	IMG_CHAR *pszLeafName;
-
-
-	bTrace = (IMG_BOOL)(ui32DebugLevel & DBGPRIV_CALLTRACE) ? IMG_TRUE : IMG_FALSE;
-
-	if (gPVRDebugLevel & ui32DebugLevel)
-	{
-		va_list vaArgs;
-		unsigned long ulLockFlags = 0;
-		IMG_CHAR *pszBuf;
-		IMG_UINT32 ui32BufSiz;
-
-		SelectBuffer(&pszBuf, &ui32BufSiz);
-
-		va_start(vaArgs, pszFormat);
-
-		GetBufferLock(&ulLockFlags);
-
-		
-		if (bTrace == IMG_FALSE)
-		{
-			switch(ui32DebugLevel)
-			{
-				case DBGPRIV_FATAL:
-				{
-					strncpy (pszBuf, "PVR_K:(Fatal): ", (ui32BufSiz -1));
-					break;
-				}
-				case DBGPRIV_ERROR:
-				{
-					strncpy (pszBuf, "PVR_K:(Error): ", (ui32BufSiz -1));
-					break;
-				}
-				case DBGPRIV_WARNING:
-				{
-					strncpy (pszBuf, "PVR_K:(Warning): ", (ui32BufSiz -1));
-					break;
-				}
-				case DBGPRIV_MESSAGE:
-				{
-					strncpy (pszBuf, "PVR_K:(Message): ", (ui32BufSiz -1));
-					break;
-				}
-				case DBGPRIV_VERBOSE:
-				{
-					strncpy (pszBuf, "PVR_K:(Verbose): ", (ui32BufSiz -1));
-					break;
-				}
-				default:
-				{
-					strncpy (pszBuf, "PVR_K:(Unknown message level)", (ui32BufSiz -1));
-					break;
-				}
-			}
-		}
-		else
-		{
-			strncpy (pszBuf, "PVR_K: ", (ui32BufSiz -1));
-		}
-
-		if (VBAppend(pszBuf, ui32BufSiz, pszFormat, vaArgs))
-		{
-			printk(KERN_INFO "PVR_K:(Message Truncated): %s\n", pszBuf);
-		}
-		else
-		{
-			
-			if (bTrace == IMG_FALSE)
-			{
-#ifdef DEBUG_LOG_PATH_TRUNCATE
-				
-				static IMG_CHAR szFileNameRewrite[PVR_MAX_FILEPATH_LEN];
-
-   				IMG_CHAR* pszTruncIter;
-				IMG_CHAR* pszTruncBackInter;
-
-				
-				if (strlen(pszFullFileName) > strlen(DEBUG_LOG_PATH_TRUNCATE)+1)
-					pszFileName = pszFullFileName + strlen(DEBUG_LOG_PATH_TRUNCATE)+1;
-
-				
-				strncpy(szFileNameRewrite, pszFileName,PVR_MAX_FILEPATH_LEN);
-
-				if(strlen(szFileNameRewrite) == PVR_MAX_FILEPATH_LEN-1) {
-					IMG_CHAR szTruncateMassage[] = "FILENAME TRUNCATED";
-					strcpy(szFileNameRewrite + (PVR_MAX_FILEPATH_LEN - 1 - strlen(szTruncateMassage)), szTruncateMassage);
-				}
-
-				pszTruncIter = szFileNameRewrite;
-				while(*pszTruncIter++ != 0)
-				{
-					IMG_CHAR* pszNextStartPoint;
-					
-					if(
-					   !( ( *pszTruncIter == '/' && (pszTruncIter-4 >= szFileNameRewrite) ) &&
-						 ( *(pszTruncIter-1) == '.') &&
-						 ( *(pszTruncIter-2) == '.') &&
-						 ( *(pszTruncIter-3) == '/') )
-					   ) continue;
-
-					
-					pszTruncBackInter = pszTruncIter - 3;
-					while(*(--pszTruncBackInter) != '/')
-					{
-						if(pszTruncBackInter <= szFileNameRewrite) break;
-					}
-					pszNextStartPoint = pszTruncBackInter;
-
-					
-					while(*pszTruncIter != 0)
-					{
-						*pszTruncBackInter++ = *pszTruncIter++;
-					}
-					*pszTruncBackInter = 0;
-
-					
-					pszTruncIter = pszNextStartPoint;
-				}
-
-				pszFileName = szFileNameRewrite;
-				
-				if(*pszFileName == '/') pszFileName++;
-#endif
-
-#if !defined(__sh__)
-				pszLeafName = (IMG_CHAR *)strrchr (pszFileName, '\\');
-
-				if (pszLeafName)
-				{
-					pszFileName = pszLeafName;
-		       	}
-#endif 
-
-				if (BAppend(pszBuf, ui32BufSiz, " [%u, %s]", ui32Line, pszFileName))
-				{
-					printk(KERN_INFO "PVR_K:(Message Truncated): %s\n", pszBuf);
-				}
-				else
-				{
-					printk(KERN_INFO "%s\n", pszBuf);
-				}
-			}
-			else
-			{
-				printk(KERN_INFO "%s\n", pszBuf);
-			}
-		}
-
-		ReleaseBufferLock(ulLockFlags);
-
-		va_end (vaArgs);
-	}
-}
-
-#endif 
-
-#if defined(DEBUG)
-
-IMG_INT PVRDebugProcSetLevel(struct file *file, const IMG_CHAR *buffer, IMG_UINT32 count, IMG_VOID *data)
-{
-#define	_PROC_SET_BUFFER_SZ		2
-	IMG_CHAR data_buffer[_PROC_SET_BUFFER_SZ];
-
-	if (count != _PROC_SET_BUFFER_SZ)
-	{
-		return -EINVAL;
-	}
-	else
-	{
-		if (copy_from_user(data_buffer, buffer, count))
-			return -EINVAL;
-		if (data_buffer[count - 1] != '\n')
-			return -EINVAL;
-		gPVRDebugLevel = data_buffer[0] - '0';
-	}
-	return (count);
-}
-
-void ProcSeqShowDebugLevel(struct seq_file *sfile,void* el)
-{
-	seq_printf(sfile, "%u\n", gPVRDebugLevel);
-}
-
-#endif 
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_drm.c b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_drm.c
deleted file mode 100644
index 4291bd1..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_drm.c
+++ /dev/null
@@ -1,479 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if defined(SUPPORT_DRI_DRM)
-
-#include <linux/version.h>
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38))
-#ifndef AUTOCONF_INCLUDED
-#include <linux/config.h>
-#endif
-#endif
-
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/fs.h>
-#include <linux/proc_fs.h>
-#include <linux/sched.h>
-#include <asm/ioctl.h>
-#include <drm/drmP.h>
-#include <drm/drm.h>
-
-#include "img_defs.h"
-#include "services.h"
-#include "kerneldisplay.h"
-#include "kernelbuffer.h"
-#include "syscommon.h"
-#include "pvrmmap.h"
-#include "mm.h"
-#include "mmap.h"
-#include "mutex.h"
-#include "pvr_debug.h"
-#include "srvkm.h"
-#include "perproc.h"
-#include "handle.h"
-#include "pvr_bridge_km.h"
-#include "pvr_bridge.h"
-#include "proc.h"
-#include "pvrmodule.h"
-#include "pvrversion.h"
-#include "lock.h"
-#include "linkage.h"
-#include "pvr_drm.h"
-
-#if defined(PVR_DRI_DRM_NOT_PCI)
-#include "pvr_drm_mod.h"
-#endif
-
-#define PVR_DRM_NAME	PVRSRV_MODNAME
-#define PVR_DRM_DESC	"Imagination Technologies PVR DRM"
-
-DECLARE_WAIT_QUEUE_HEAD(sWaitForInit);
-
-IMG_BOOL bInitComplete;
-IMG_BOOL bInitFailed;
-
-#if !defined(PVR_DRI_DRM_NOT_PCI)
-#if defined(PVR_DRI_DRM_PLATFORM_DEV)
-struct platform_device *gpsPVRLDMDev;
-#else
-struct pci_dev *gpsPVRLDMDev;
-#endif
-#endif
-
-struct drm_device *gpsPVRDRMDev;
-
-#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,24))
-#error "Linux kernel version 2.6.25 or later required for PVR DRM support"
-#endif
-
-#define PVR_DRM_FILE struct drm_file *
-
-#if !defined(SUPPORT_DRI_DRM_EXT)
-#if defined(PVR_DRI_DRM_PLATFORM_DEV)
-#if defined(PVR_LDM_PLATFORM_PRE_REGISTERED)
-static struct platform_device_id asPlatIdList[] = {
-	{SYS_SGX_DEV_NAME, 0},
-	{}
-};
-#endif
-#else	
-static struct pci_device_id asPciIdList[] = {
-#if defined(PVR_DRI_DRM_NOT_PCI)
-	{1, 1, 1, 1, 0, 0, 0},
-#else	
-	{SYS_SGX_DEV_VENDOR_ID, SYS_SGX_DEV_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
-#if defined(SYS_SGX_DEV1_DEVICE_ID)
-	{SYS_SGX_DEV_VENDOR_ID, SYS_SGX_DEV1_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
-#endif	
-#endif	
-	{0}
-};
-#endif	
-#endif	
-
-DRI_DRM_STATIC int
-PVRSRVDrmLoad(struct drm_device *dev, unsigned long flags)
-{
-	int iRes = 0;
-
-	PVR_TRACE(("PVRSRVDrmLoad"));
-
-	gpsPVRDRMDev = dev;
-#if !defined(PVR_DRI_DRM_NOT_PCI)
-#if defined(PVR_DRI_DRM_PLATFORM_DEV)
-	gpsPVRLDMDev = dev->platformdev;
-#else
-	gpsPVRLDMDev = dev->pdev;
-#endif
-#endif
-
-#if defined(PDUMP)
-	iRes = dbgdrv_init();
-	if (iRes != 0)
-	{
-		goto exit;
-	}
-#endif
-	
-	iRes = PVRCore_Init();
-	if (iRes != 0)
-	{
-		goto exit_dbgdrv_cleanup;
-	}
-
-#if defined(DISPLAY_CONTROLLER)
-	iRes = PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Init)(dev);
-	if (iRes != 0)
-	{
-		goto exit_pvrcore_cleanup;
-	}
-#endif
-	goto exit;
-
-#if defined(DISPLAY_CONTROLLER)
-exit_pvrcore_cleanup:
-	PVRCore_Cleanup();
-#endif
-exit_dbgdrv_cleanup:
-#if defined(PDUMP)
-	dbgdrv_cleanup();
-#endif
-exit:
-	if (iRes != 0)
-	{
-		bInitFailed = IMG_TRUE;
-	}
-	bInitComplete = IMG_TRUE;
-
-	wake_up_interruptible(&sWaitForInit);
-
-	return iRes;
-}
-
-DRI_DRM_STATIC int
-PVRSRVDrmUnload(struct drm_device *dev)
-{
-	PVR_TRACE(("PVRSRVDrmUnload"));
-
-#if defined(DISPLAY_CONTROLLER)
-	PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Cleanup)(dev);
-#endif
-
-	PVRCore_Cleanup();
-
-#if defined(PDUMP)
-	dbgdrv_cleanup();
-#endif
-
-	return 0;
-}
-
-DRI_DRM_STATIC int
-PVRSRVDrmOpen(struct drm_device *dev, struct drm_file *file)
-{
-	while (!bInitComplete)
-	{
-		DEFINE_WAIT(sWait);
-
-		prepare_to_wait(&sWaitForInit, &sWait, TASK_INTERRUPTIBLE);
-
-		if (!bInitComplete)
-		{
-			PVR_TRACE(("%s: Waiting for module initialisation to complete", __FUNCTION__));
-
-			schedule();
-		}
-
-		finish_wait(&sWaitForInit, &sWait);
-
-		if (signal_pending(current))
-		{
-			return -ERESTARTSYS;
-		}
-	}
-
-	if (bInitFailed)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "%s: Module initialisation failed", __FUNCTION__));
-		return -EINVAL;
-	}
-
-	return PVRSRVOpen(dev, file);
-}
-
-#if defined(SUPPORT_DRI_DRM_EXT) && !defined(PVR_LINUX_USING_WORKQUEUES)
-DRI_DRM_STATIC void
-PVRSRVDrmPostClose(struct drm_device *dev, struct drm_file *file)
-{
-	PVRSRVRelease(file->driver_priv);
-
-	file->driver_priv = NULL;
-}
-#else
-DRI_DRM_STATIC int
-PVRSRVDrmRelease(struct inode *inode, struct file *filp)
-{
-	struct drm_file *file_priv = filp->private_data;
-	void *psDriverPriv = file_priv->driver_priv;
-	int ret;
-
-	ret = drm_release(inode, filp);
-
-	if (ret != 0)
-	{
-		
-		PVR_DPF((PVR_DBG_ERROR, "%s : drm_release failed: %d",
-			__FUNCTION__, ret));
-	}
-
-	PVRSRVRelease(psDriverPriv);
-
-	return 0;
-}
-#endif
-
-DRI_DRM_STATIC int
-PVRDRMIsMaster(struct drm_device *dev, void *arg, struct drm_file *pFile)
-{
-	return 0;
-}
-
-#if defined(SUPPORT_DRI_DRM_EXT)
-int
-PVRDRM_Dummy_ioctl(struct drm_device *dev, void *arg, struct drm_file *pFile)
-{
-	return 0;
-}
-#endif
-
-DRI_DRM_STATIC int
-PVRDRMUnprivCmd(struct drm_device *dev, void *arg, struct drm_file *pFile)
-{
-	int ret = 0;
-
-	LinuxLockMutex(&gPVRSRVLock);
-
-	if (arg == NULL)
-	{
-		ret = -EFAULT;
-	}
-	else
-	{
-		IMG_UINT32 *pui32Args = (IMG_UINT32 *)arg;
-		IMG_UINT32 ui32Cmd = pui32Args[0];
-		IMG_UINT32 *pui32OutArg = (IMG_UINT32 *)arg;
-
-		switch (ui32Cmd)
-		{
-			case PVR_DRM_UNPRIV_INIT_SUCCESFUL:
-				*pui32OutArg = PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_SUCCESSFUL) ? 1 : 0;
-				break;
-
-			default:
-				ret = -EFAULT;
-		}
-
-	}
-
-	LinuxUnLockMutex(&gPVRSRVLock);
-
-	return ret;
-}
-
-#if defined(DISPLAY_CONTROLLER) && defined(PVR_DISPLAY_CONTROLLER_DRM_IOCTL)
-static int
-PVRDRM_Display_ioctl(struct drm_device *dev, void *arg, struct drm_file *pFile)
-{
-	int res;
-
-	LinuxLockMutex(&gPVRSRVLock);
-
-	res = PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Ioctl)(dev, arg, pFile);
-
-	LinuxUnLockMutex(&gPVRSRVLock);
-
-	return res;
-}
-#endif
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
-#define	PVR_DRM_FOPS_IOCTL	.unlocked_ioctl
-#define	PVR_DRM_UNLOCKED	DRM_UNLOCKED
-#else
-#define	PVR_DRM_FOPS_IOCTL	.ioctl
-#define	PVR_DRM_UNLOCKED	0
-#endif
-
-#if !defined(SUPPORT_DRI_DRM_EXT)
-
-#if defined(DRM_IOCTL_DEF)
-#define	PVR_DRM_IOCTL_DEF(ioctl, _func, _flags) DRM_IOCTL_DEF(DRM_##ioctl, _func, _flags)
-#else
-#define	PVR_DRM_IOCTL_DEF(ioctl, _func, _flags) DRM_IOCTL_DEF_DRV(ioctl, _func, _flags)
-#endif
-
-struct drm_ioctl_desc sPVRDrmIoctls[] = {
-	PVR_DRM_IOCTL_DEF(PVR_SRVKM, PVRSRV_BridgeDispatchKM, PVR_DRM_UNLOCKED),
-	PVR_DRM_IOCTL_DEF(PVR_IS_MASTER, PVRDRMIsMaster, DRM_MASTER | PVR_DRM_UNLOCKED),
-	PVR_DRM_IOCTL_DEF(PVR_UNPRIV, PVRDRMUnprivCmd, PVR_DRM_UNLOCKED),
-#if defined(PDUMP)
-	PVR_DRM_IOCTL_DEF(PVR_DBGDRV, dbgdrv_ioctl, PVR_DRM_UNLOCKED),
-#endif
-#if defined(DISPLAY_CONTROLLER) && defined(PVR_DISPLAY_CONTROLLER_DRM_IOCTL)
-	PVR_DRM_IOCTL_DEF(PVR_DISP, PVRDRM_Display_ioctl, DRM_MASTER | PVR_DRM_UNLOCKED)
-#endif
-};
-
-static int pvr_max_ioctl = DRM_ARRAY_SIZE(sPVRDrmIoctls);
-
-#if defined(PVR_DRI_DRM_PLATFORM_DEV) && !defined(SUPPORT_DRI_DRM_EXT)
-static int PVRSRVDrmProbe(struct platform_device *pDevice);
-static int PVRSRVDrmRemove(struct platform_device *pDevice);
-#endif	
-
-static struct drm_driver sPVRDrmDriver = 
-{
-#if defined(PVR_DRI_DRM_PLATFORM_DEV)
-	.driver_features = DRIVER_USE_PLATFORM_DEVICE,
-#else
-	.driver_features = 0,
-#endif
-	.dev_priv_size = 0,
-	.load = PVRSRVDrmLoad,
-	.unload = PVRSRVDrmUnload,
-	.open = PVRSRVDrmOpen,
-#if !defined(PVR_DRI_DRM_PLATFORM_DEV)
-	.suspend = PVRSRVDriverSuspend,
-	.resume = PVRSRVDriverResume,
-#endif
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
-	.get_map_ofs = drm_core_get_map_ofs,
-	.get_reg_ofs = drm_core_get_reg_ofs,
-#endif
-	.ioctls = sPVRDrmIoctls,
-	.fops = 
-	{
-		.owner = THIS_MODULE,
-		.open = drm_open,
-		.release = PVRSRVDrmRelease,
-		PVR_DRM_FOPS_IOCTL = drm_ioctl,
-		.mmap = PVRMMap,
-		.poll = drm_poll,
-		.fasync = drm_fasync,
-	},
-#if defined(PVR_DRI_DRM_PLATFORM_DEV)
-	.platform_driver =
-	{
-		.id_table = asPlatIdList,
-		.driver =
-		{
-			.name = PVR_DRM_NAME,
-		},
-		.probe = PVRSRVDrmProbe,
-		.remove = PVRSRVDrmRemove,
-		.suspend = PVRSRVDriverSuspend,
-		.resume = PVRSRVDriverResume,
-		.shutdown = PVRSRVDriverShutdown,
-	},
-#else
-	.pci_driver = 
-	{
-		.name = PVR_DRM_NAME,
-		.id_table = asPciIdList,
-	},
-#endif
-	.name = PVR_DRM_NAME,
-	.desc = PVR_DRM_DESC,
-	.date = PVR_BUILD_DATE,
-	.major = PVRVERSION_MAJ,
-	.minor = PVRVERSION_MIN,
-	.patchlevel = PVRVERSION_BUILD,
-};
-
-#if defined(PVR_DRI_DRM_PLATFORM_DEV) && !defined(SUPPORT_DRI_DRM_EXT)
-static int
-PVRSRVDrmProbe(struct platform_device *pDevice)
-{
-	PVR_TRACE(("PVRSRVDrmProbe"));
-
-	return drm_get_platform_dev(pDevice, &sPVRDrmDriver);
-}
-
-static int
-PVRSRVDrmRemove(struct platform_device *pDevice)
-{
-	PVR_TRACE(("PVRSRVDrmRemove"));
-
-	drm_put_dev(gpsPVRDRMDev);
-
-	return 0;
-}
-
-#endif	
-static int __init PVRSRVDrmInit(void)
-{
-	int iRes;
-	sPVRDrmDriver.num_ioctls = pvr_max_ioctl;
-
-	
-	PVRDPFInit();
-
-#if defined(PVR_DRI_DRM_NOT_PCI)
-	iRes = drm_pvr_dev_add();
-	if (iRes != 0)
-	{
-		return iRes;
-	}
-#endif
-
-	iRes = drm_init(&sPVRDrmDriver);
-#if defined(PVR_DRI_DRM_NOT_PCI)
-	if (iRes != 0)
-	{
-		drm_pvr_dev_remove();
-	}
-#endif
-	return iRes;
-}
-	
-static void __exit PVRSRVDrmExit(void)
-{
-	drm_exit(&sPVRDrmDriver);
-
-#if defined(PVR_DRI_DRM_NOT_PCI)
-	drm_pvr_dev_remove();
-#endif
-}
-
-module_init(PVRSRVDrmInit);
-module_exit(PVRSRVDrmExit);
-#endif	
-#endif	
-
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_drm.h b/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_drm.h
deleted file mode 100644
index 9bd5540..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/env/linux/pvr_drm.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined(__PVR_DRM_H__)
-#define __PVR_DRM_H__
-
-#include "pvr_drm_shared.h"
-
-#if defined(SUPPORT_DRI_DRM)
-#define	PVR_DRM_MAKENAME_HELPER(x, y) x ## y
-#define	PVR_DRM_MAKENAME(x, y) PVR_DRM_MAKENAME_HELPER(x, y)
-
-#if defined(PVR_DRI_DRM_PLATFORM_DEV)
-#define	LDM_DEV	struct platform_device
-#endif
-
-int PVRCore_Init(void);
-void PVRCore_Cleanup(void);
-int PVRSRVOpen(struct drm_device *dev, struct drm_file *pFile);
-void PVRSRVRelease(void *pvPrivData);
-
-#if defined(PVR_DRI_DRM_PLATFORM_DEV)
-void PVRSRVDriverShutdown(LDM_DEV *pDevice);
-int PVRSRVDriverSuspend(LDM_DEV *pDevice, pm_message_t state);
-int PVRSRVDriverResume(LDM_DEV *pDevice);
-#else
-int PVRSRVDriverSuspend(struct drm_device *pDevice, pm_message_t state);
-int PVRSRVDriverResume(struct drm_device *pDevice);
-#endif
-
-int PVRSRV_BridgeDispatchKM(struct drm_device *dev, void *arg, struct drm_file *pFile);
-
-#if defined(SUPPORT_DRI_DRM_EXT)
-#define	DRI_DRM_STATIC
-int PVRSRVDrmLoad(struct drm_device *dev, unsigned long flags);
-int PVRSRVDrmUnload(struct drm_device *dev);
-int PVRSRVDrmOpen(struct drm_device *dev, struct drm_file *file);
-#if defined(PVR_LINUX_USING_WORKQUEUES)
-DRI_DRM_STATIC int PVRSRVDrmRelease(struct inode *inode, struct file *filp);
-#else
-void PVRSRVDrmPostClose(struct drm_device *dev, struct drm_file *file);
-#endif
-int PVRDRMIsMaster(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile);
-int PVRDRMUnprivCmd(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile);
-int PVRDRM_Dummy_ioctl(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile);
-#else
-#define	DRI_DRM_STATIC	static
-#endif	
-
-#if defined(DISPLAY_CONTROLLER)
-extern int PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Init)(struct drm_device *);
-extern void PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Cleanup)(struct drm_device *);
-extern int PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Suspend)(struct drm_device *);
-extern int PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Resume)(struct drm_device *);
-#if defined(PVR_DISPLAY_CONTROLLER_DRM_IOCTL)
-extern int PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Ioctl)(struct drm_device *dev, void *arg, struct drm_file *pFile);
-#endif
-#endif
-
-#if defined(PDUMP)
-int dbgdrv_init(void);
-void dbgdrv_cleanup(void);
-IMG_INT dbgdrv_ioctl(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile);
-#endif
-
-#if !defined(SUPPORT_DRI_DRM_EXT)
-#define	DRM_PVR_SRVKM		PVR_DRM_SRVKM_CMD
-#define	DRM_PVR_IS_MASTER	PVR_DRM_IS_MASTER_CMD
-#define	DRM_PVR_UNPRIV		PVR_DRM_UNPRIV_CMD
-#define	DRM_PVR_DBGDRV		PVR_DRM_DBGDRV_CMD
-#define	DRM_PVR_DISP		PVR_DRM_DISP_CMD
-
-#define	DRM_IOCTL_PVR_SRVKM		_IO(0, DRM_PVR_SRVKM)
-#define	DRM_IOCTL_PVR_IS_MASTER 	_IO(0, DRM_PVR_IS_MASTER)
-#define	DRM_IOCTL_PVR_UNPRIV		_IO(0, DRM_PVR_UNPRIV)
-#define	DRM_IOCTL_PVR_DBGDRV		_IO(0, DRM_PVR_DBGDRV)
-#define	DRM_IOCTL_PVR_DISP		_IO(0, DRM_PVR_DISP)
-#endif	
-
-#endif	
-
-#endif 
-
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/mnemedefs.h b/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/mnemedefs.h
deleted file mode 100644
index 905081d..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/mnemedefs.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _MNEMEDEFS_KM_H_
-#define _MNEMEDEFS_KM_H_
-
-#define MNE_CR_CTRL                         0x0D00
-#define MNE_CR_CTRL_BYP_CC_N_MASK           0x00010000U
-#define MNE_CR_CTRL_BYP_CC_N_SHIFT          16
-#define MNE_CR_CTRL_BYP_CC_N_SIGNED         0
-#define MNE_CR_CTRL_BYP_CC_MASK             0x00008000U
-#define MNE_CR_CTRL_BYP_CC_SHIFT            15
-#define MNE_CR_CTRL_BYP_CC_SIGNED           0
-#define MNE_CR_CTRL_USE_INVAL_REQ_MASK      0x00007800U
-#define MNE_CR_CTRL_USE_INVAL_REQ_SHIFT     11
-#define MNE_CR_CTRL_USE_INVAL_REQ_SIGNED    0
-#define MNE_CR_CTRL_BYPASS_ALL_MASK         0x00000400U
-#define MNE_CR_CTRL_BYPASS_ALL_SHIFT        10
-#define MNE_CR_CTRL_BYPASS_ALL_SIGNED       0
-#define MNE_CR_CTRL_BYPASS_MASK             0x000003E0U
-#define MNE_CR_CTRL_BYPASS_SHIFT            5
-#define MNE_CR_CTRL_BYPASS_SIGNED           0
-#define MNE_CR_CTRL_PAUSE_MASK              0x00000010U
-#define MNE_CR_CTRL_PAUSE_SHIFT             4
-#define MNE_CR_CTRL_PAUSE_SIGNED            0
-#define MNE_CR_USE_INVAL                    0x0D04
-#define MNE_CR_USE_INVAL_ADDR_MASK          0xFFFFFFFFU
-#define MNE_CR_USE_INVAL_ADDR_SHIFT         0
-#define MNE_CR_USE_INVAL_ADDR_SIGNED        0
-#define MNE_CR_STAT                         0x0D08
-#define MNE_CR_STAT_PAUSED_MASK             0x00000400U
-#define MNE_CR_STAT_PAUSED_SHIFT            10
-#define MNE_CR_STAT_PAUSED_SIGNED           0
-#define MNE_CR_STAT_READS_MASK              0x000003FFU
-#define MNE_CR_STAT_READS_SHIFT             0
-#define MNE_CR_STAT_READS_SIGNED            0
-#define MNE_CR_STAT_STATS                   0x0D0C
-#define MNE_CR_STAT_STATS_RST_MASK          0x000FFFF0U
-#define MNE_CR_STAT_STATS_RST_SHIFT         4
-#define MNE_CR_STAT_STATS_RST_SIGNED        0
-#define MNE_CR_STAT_STATS_SEL_MASK          0x0000000FU
-#define MNE_CR_STAT_STATS_SEL_SHIFT         0
-#define MNE_CR_STAT_STATS_SEL_SIGNED        0
-#define MNE_CR_STAT_STATS_OUT               0x0D10
-#define MNE_CR_STAT_STATS_OUT_VALUE_MASK    0xFFFFFFFFU
-#define MNE_CR_STAT_STATS_OUT_VALUE_SHIFT   0
-#define MNE_CR_STAT_STATS_OUT_VALUE_SIGNED  0
-#define MNE_CR_EVENT_STATUS                 0x0D14
-#define MNE_CR_EVENT_STATUS_INVAL_MASK      0x00000001U
-#define MNE_CR_EVENT_STATUS_INVAL_SHIFT     0
-#define MNE_CR_EVENT_STATUS_INVAL_SIGNED    0
-#define MNE_CR_EVENT_CLEAR                  0x0D18
-#define MNE_CR_EVENT_CLEAR_INVAL_MASK       0x00000001U
-#define MNE_CR_EVENT_CLEAR_INVAL_SHIFT      0
-#define MNE_CR_EVENT_CLEAR_INVAL_SIGNED     0
-#define MNE_CR_CTRL_INVAL                   0x0D20
-#define MNE_CR_CTRL_INVAL_PREQ_PDS_MASK     0x00000008U
-#define MNE_CR_CTRL_INVAL_PREQ_PDS_SHIFT    3
-#define MNE_CR_CTRL_INVAL_PREQ_PDS_SIGNED   0
-#define MNE_CR_CTRL_INVAL_PREQ_USEC_MASK    0x00000004U
-#define MNE_CR_CTRL_INVAL_PREQ_USEC_SHIFT   2
-#define MNE_CR_CTRL_INVAL_PREQ_USEC_SIGNED  0
-#define MNE_CR_CTRL_INVAL_PREQ_CACHE_MASK   0x00000002U
-#define MNE_CR_CTRL_INVAL_PREQ_CACHE_SHIFT  1
-#define MNE_CR_CTRL_INVAL_PREQ_CACHE_SIGNED 0
-#define MNE_CR_CTRL_INVAL_ALL_MASK          0x00000001U
-#define MNE_CR_CTRL_INVAL_ALL_SHIFT         0
-#define MNE_CR_CTRL_INVAL_ALL_SIGNED        0
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx535defs.h b/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx535defs.h
deleted file mode 100644
index 66f2166..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx535defs.h
+++ /dev/null
@@ -1,650 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _SGX535DEFS_KM_H_
-#define _SGX535DEFS_KM_H_
-
-#define EUR_CR_CLKGATECTL                   0x0000
-#define EUR_CR_CLKGATECTL_2D_CLKG_MASK      0x00000003U
-#define EUR_CR_CLKGATECTL_2D_CLKG_SHIFT     0
-#define EUR_CR_CLKGATECTL_ISP_CLKG_MASK     0x00000030U
-#define EUR_CR_CLKGATECTL_ISP_CLKG_SHIFT    4
-#define EUR_CR_CLKGATECTL_TSP_CLKG_MASK     0x00000300U
-#define EUR_CR_CLKGATECTL_TSP_CLKG_SHIFT    8
-#define EUR_CR_CLKGATECTL_TA_CLKG_MASK      0x00003000U
-#define EUR_CR_CLKGATECTL_TA_CLKG_SHIFT     12
-#define EUR_CR_CLKGATECTL_DPM_CLKG_MASK     0x00030000U
-#define EUR_CR_CLKGATECTL_DPM_CLKG_SHIFT    16
-#define EUR_CR_CLKGATECTL_USE_CLKG_MASK     0x00300000U
-#define EUR_CR_CLKGATECTL_USE_CLKG_SHIFT    20
-#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_MASK 0x01000000U
-#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_SHIFT 24
-#define EUR_CR_CLKGATESTATUS                0x0004
-#define EUR_CR_CLKGATESTATUS_2D_CLKS_MASK   0x00000001
-#define EUR_CR_CLKGATESTATUS_2D_CLKS_SHIFT  0
-#define EUR_CR_CLKGATESTATUS_ISP_CLKS_MASK  0x00000010U
-#define EUR_CR_CLKGATESTATUS_ISP_CLKS_SHIFT 4
-#define EUR_CR_CLKGATESTATUS_TSP_CLKS_MASK  0x00000100U
-#define EUR_CR_CLKGATESTATUS_TSP_CLKS_SHIFT 8
-#define EUR_CR_CLKGATESTATUS_TA_CLKS_MASK   0x00001000U
-#define EUR_CR_CLKGATESTATUS_TA_CLKS_SHIFT  12
-#define EUR_CR_CLKGATESTATUS_DPM_CLKS_MASK  0x00010000U
-#define EUR_CR_CLKGATESTATUS_DPM_CLKS_SHIFT 16
-#define EUR_CR_CLKGATESTATUS_USE_CLKS_MASK  0x00100000U
-#define EUR_CR_CLKGATESTATUS_USE_CLKS_SHIFT 20
-#define EUR_CR_CLKGATECTLOVR                0x0008
-#define EUR_CR_CLKGATECTLOVR_2D_CLKO_MASK   0x00000003U
-#define EUR_CR_CLKGATECTLOVR_2D_CLKO_SHIFT  0
-#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_MASK  0x00000030U
-#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_SHIFT 4
-#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_MASK  0x00000300U
-#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_SHIFT 8
-#define EUR_CR_CLKGATECTLOVR_TA_CLKO_MASK   0x00003000U
-#define EUR_CR_CLKGATECTLOVR_TA_CLKO_SHIFT  12
-#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_MASK  0x00030000U
-#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_SHIFT 16
-#define EUR_CR_CLKGATECTLOVR_USE_CLKO_MASK  0x00300000U
-#define EUR_CR_CLKGATECTLOVR_USE_CLKO_SHIFT 20
-#define EUR_CR_CORE_ID                      0x0010
-#define EUR_CR_CORE_ID_CONFIG_MASK          0x0000FFFFU
-#define EUR_CR_CORE_ID_CONFIG_SHIFT         0
-#define EUR_CR_CORE_ID_ID_MASK              0xFFFF0000U
-#define EUR_CR_CORE_ID_ID_SHIFT             16
-#define EUR_CR_CORE_REVISION                0x0014
-#define EUR_CR_CORE_REVISION_MAINTENANCE_MASK 0x000000FFU
-#define EUR_CR_CORE_REVISION_MAINTENANCE_SHIFT 0
-#define EUR_CR_CORE_REVISION_MINOR_MASK     0x0000FF00U
-#define EUR_CR_CORE_REVISION_MINOR_SHIFT    8
-#define EUR_CR_CORE_REVISION_MAJOR_MASK     0x00FF0000U
-#define EUR_CR_CORE_REVISION_MAJOR_SHIFT    16
-#define EUR_CR_CORE_REVISION_DESIGNER_MASK  0xFF000000U
-#define EUR_CR_CORE_REVISION_DESIGNER_SHIFT 24
-#define EUR_CR_DESIGNER_REV_FIELD1          0x0018
-#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_MASK 0xFFFFFFFFU
-#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_SHIFT 0
-#define EUR_CR_DESIGNER_REV_FIELD2          0x001C
-#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_MASK 0xFFFFFFFFU
-#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_SHIFT 0
-#define EUR_CR_SOFT_RESET                   0x0080
-#define EUR_CR_SOFT_RESET_BIF_RESET_MASK    0x00000001U
-#define EUR_CR_SOFT_RESET_BIF_RESET_SHIFT   0
-#define EUR_CR_SOFT_RESET_TWOD_RESET_MASK   0x00000002U
-#define EUR_CR_SOFT_RESET_TWOD_RESET_SHIFT  1
-#define EUR_CR_SOFT_RESET_DPM_RESET_MASK    0x00000004U
-#define EUR_CR_SOFT_RESET_DPM_RESET_SHIFT   2
-#define EUR_CR_SOFT_RESET_TA_RESET_MASK     0x00000008U
-#define EUR_CR_SOFT_RESET_TA_RESET_SHIFT    3
-#define EUR_CR_SOFT_RESET_USE_RESET_MASK    0x00000010U
-#define EUR_CR_SOFT_RESET_USE_RESET_SHIFT   4
-#define EUR_CR_SOFT_RESET_ISP_RESET_MASK    0x00000020U
-#define EUR_CR_SOFT_RESET_ISP_RESET_SHIFT   5
-#define EUR_CR_SOFT_RESET_TSP_RESET_MASK    0x00000040U
-#define EUR_CR_SOFT_RESET_TSP_RESET_SHIFT   6
-#define EUR_CR_EVENT_HOST_ENABLE2           0x0110
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_SHIFT 7
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_SHIFT 6
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_SHIFT 5
-#define EUR_CR_EVENT_HOST_ENABLE2_BIF_REQUESTER_FAULT_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_ENABLE2_BIF_REQUESTER_FAULT_SHIFT 4
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_DHOST_FREE_LOAD_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_DHOST_FREE_LOAD_SHIFT 3
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_HOST_FREE_LOAD_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_HOST_FREE_LOAD_SHIFT 2
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_HOST_CLEAR2            0x0114
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_SHIFT 7
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_SHIFT 6
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_SHIFT 5
-#define EUR_CR_EVENT_HOST_CLEAR2_BIF_REQUESTER_FAULT_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_CLEAR2_BIF_REQUESTER_FAULT_SHIFT 4
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_DHOST_FREE_LOAD_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_DHOST_FREE_LOAD_SHIFT 3
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_HOST_FREE_LOAD_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_HOST_FREE_LOAD_SHIFT 2
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_STATUS2                0x0118U
-#define EUR_CR_EVENT_STATUS2_TRIG_TA_MASK   0x00000080U
-#define EUR_CR_EVENT_STATUS2_TRIG_TA_SHIFT  7
-#define EUR_CR_EVENT_STATUS2_TRIG_3D_MASK   0x00000040U
-#define EUR_CR_EVENT_STATUS2_TRIG_3D_SHIFT  6
-#define EUR_CR_EVENT_STATUS2_TRIG_DL_MASK   0x00000020U
-#define EUR_CR_EVENT_STATUS2_TRIG_DL_SHIFT  5
-#define EUR_CR_EVENT_STATUS2_BIF_REQUESTER_FAULT_MASK 0x00000010U
-#define EUR_CR_EVENT_STATUS2_BIF_REQUESTER_FAULT_SHIFT 4
-#define EUR_CR_EVENT_STATUS2_DPM_DHOST_FREE_LOAD_MASK 0x00000008U
-#define EUR_CR_EVENT_STATUS2_DPM_DHOST_FREE_LOAD_SHIFT 3
-#define EUR_CR_EVENT_STATUS2_DPM_HOST_FREE_LOAD_MASK 0x00000004U
-#define EUR_CR_EVENT_STATUS2_DPM_HOST_FREE_LOAD_SHIFT 2
-#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_STATUS                 0x012CU
-#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_STATUS_TIMER_MASK      0x20000000U
-#define EUR_CR_EVENT_STATUS_TIMER_SHIFT     29
-#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_STATUS_TWOD_COMPLETE_MASK 0x08000000U
-#define EUR_CR_EVENT_STATUS_TWOD_COMPLETE_SHIFT 27
-#define EUR_CR_EVENT_STATUS_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_STATUS_MADD_CACHE_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_STATUS_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_STATUS_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_STATUS_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_STATUS_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_STATUS_OTPM_LOADED_MASK 0x00200000U
-#define EUR_CR_EVENT_STATUS_OTPM_LOADED_SHIFT 21
-#define EUR_CR_EVENT_STATUS_OTPM_INV_MASK   0x00100000U
-#define EUR_CR_EVENT_STATUS_OTPM_INV_SHIFT  20
-#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_STATUS_ISP_HALT_MASK   0x00020000U
-#define EUR_CR_EVENT_STATUS_ISP_HALT_SHIFT  17
-#define EUR_CR_EVENT_STATUS_ISP_VISIBILITY_FAIL_MASK 0x00010000U
-#define EUR_CR_EVENT_STATUS_ISP_VISIBILITY_FAIL_SHIFT 16
-#define EUR_CR_EVENT_STATUS_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_STATUS_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_STATUS_SW_EVENT_MASK   0x00004000U
-#define EUR_CR_EVENT_STATUS_SW_EVENT_SHIFT  14
-#define EUR_CR_EVENT_STATUS_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_STATUS_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_STATUS_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_STATUS_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_STATUS_TPC_CLEAR_MASK  0x00000800U
-#define EUR_CR_EVENT_STATUS_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_STATUS_TPC_FLUSH_MASK  0x00000400U
-#define EUR_CR_EVENT_STATUS_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_EVENT_HOST_ENABLE            0x0130
-#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_HOST_ENABLE_TIMER_MASK 0x20000000U
-#define EUR_CR_EVENT_HOST_ENABLE_TIMER_SHIFT 29
-#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_HOST_ENABLE_TWOD_COMPLETE_MASK 0x08000000U
-#define EUR_CR_EVENT_HOST_ENABLE_TWOD_COMPLETE_SHIFT 27
-#define EUR_CR_EVENT_HOST_ENABLE_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_HOST_ENABLE_MADD_CACHE_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_LOADED_MASK 0x00200000U
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_LOADED_SHIFT 21
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_MASK 0x00100000U
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_SHIFT 20
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_HALT_MASK 0x00020000U
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_HALT_SHIFT 17
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_VISIBILITY_FAIL_MASK 0x00010000U
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_VISIBILITY_FAIL_SHIFT 16
-#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_MASK 0x00004000U
-#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_SHIFT 14
-#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_EVENT_HOST_CLEAR             0x0134
-#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_HOST_CLEAR_TIMER_MASK  0x20000000U
-#define EUR_CR_EVENT_HOST_CLEAR_TIMER_SHIFT 29
-#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_HOST_CLEAR_TWOD_COMPLETE_MASK 0x08000000U
-#define EUR_CR_EVENT_HOST_CLEAR_TWOD_COMPLETE_SHIFT 27
-#define EUR_CR_EVENT_HOST_CLEAR_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_HOST_CLEAR_MADD_CACHE_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_LOADED_MASK 0x00200000U
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_LOADED_SHIFT 21
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_MASK 0x00100000U
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_SHIFT 20
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_HALT_MASK 0x00020000U
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_HALT_SHIFT 17
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_VISIBILITY_FAIL_MASK 0x00010000U
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_VISIBILITY_FAIL_SHIFT 16
-#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_MASK 0x00004000U
-#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_SHIFT 14
-#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_PDS_EXEC_BASE                0x0AB8
-#define EUR_CR_PDS_EXEC_BASE_ADDR_MASK      0xFFF00000U
-#define EUR_CR_PDS_EXEC_BASE_ADDR_SHIFT     20
-#define EUR_CR_EVENT_KICKER                 0x0AC4
-#define EUR_CR_EVENT_KICKER_ADDRESS_MASK    0xFFFFFFF0U
-#define EUR_CR_EVENT_KICKER_ADDRESS_SHIFT   4
-#define EUR_CR_EVENT_KICK                   0x0AC8
-#define EUR_CR_EVENT_KICK_NOW_MASK          0x00000001U
-#define EUR_CR_EVENT_KICK_NOW_SHIFT         0
-#define EUR_CR_EVENT_TIMER                  0x0ACC
-#define EUR_CR_EVENT_TIMER_ENABLE_MASK      0x01000000U
-#define EUR_CR_EVENT_TIMER_ENABLE_SHIFT     24
-#define EUR_CR_EVENT_TIMER_VALUE_MASK       0x00FFFFFFU
-#define EUR_CR_EVENT_TIMER_VALUE_SHIFT      0
-#define EUR_CR_PDS_INV0                     0x0AD0
-#define EUR_CR_PDS_INV0_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV0_DSC_SHIFT           0
-#define EUR_CR_PDS_INV1                     0x0AD4
-#define EUR_CR_PDS_INV1_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV1_DSC_SHIFT           0
-#define EUR_CR_PDS_INV2                     0x0AD8
-#define EUR_CR_PDS_INV2_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV2_DSC_SHIFT           0
-#define EUR_CR_PDS_INV3                     0x0ADC
-#define EUR_CR_PDS_INV3_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV3_DSC_SHIFT           0
-#define EUR_CR_PDS_INV_CSC                  0x0AE0
-#define EUR_CR_PDS_INV_CSC_KICK_MASK        0x00000001U
-#define EUR_CR_PDS_INV_CSC_KICK_SHIFT       0
-#define EUR_CR_PDS_PC_BASE                  0x0B2C
-#define EUR_CR_PDS_PC_BASE_ADDRESS_MASK     0x3FFFFFFFU
-#define EUR_CR_PDS_PC_BASE_ADDRESS_SHIFT    0
-#define EUR_CR_BIF_CTRL                     0x0C00
-#define EUR_CR_BIF_CTRL_NOREORDER_MASK      0x00000001U
-#define EUR_CR_BIF_CTRL_NOREORDER_SHIFT     0
-#define EUR_CR_BIF_CTRL_PAUSE_MASK          0x00000002U
-#define EUR_CR_BIF_CTRL_PAUSE_SHIFT         1
-#define EUR_CR_BIF_CTRL_FLUSH_MASK          0x00000004U
-#define EUR_CR_BIF_CTRL_FLUSH_SHIFT         2
-#define EUR_CR_BIF_CTRL_INVALDC_MASK        0x00000008U
-#define EUR_CR_BIF_CTRL_INVALDC_SHIFT       3
-#define EUR_CR_BIF_CTRL_CLEAR_FAULT_MASK    0x00000010U
-#define EUR_CR_BIF_CTRL_CLEAR_FAULT_SHIFT   4
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_CACHE_MASK 0x00000100U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_CACHE_SHIFT 8
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_MASK 0x00000200U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_SHIFT 9
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TE_MASK  0x00000400U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TE_SHIFT 10
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TWOD_MASK 0x00000800U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TWOD_SHIFT 11
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_MASK 0x00001000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_SHIFT 12
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_MASK 0x00002000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_SHIFT 13
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_MASK 0x00004000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_SHIFT 14
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_MASK 0x00008000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_SHIFT 15
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_HOST_MASK 0x00010000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_HOST_SHIFT 16
-#define EUR_CR_BIF_INT_STAT                 0x0C04
-#define EUR_CR_BIF_INT_STAT_FAULT_MASK      0x00003FFFU
-#define EUR_CR_BIF_INT_STAT_FAULT_SHIFT     0
-#define EUR_CR_BIF_INT_STAT_PF_N_RW_MASK    0x00004000U
-#define EUR_CR_BIF_INT_STAT_PF_N_RW_SHIFT   14
-#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_MASK 0x00008000U
-#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_SHIFT 15
-#define EUR_CR_BIF_FAULT                    0x0C08
-#define EUR_CR_BIF_FAULT_ADDR_MASK          0xFFFFF000U
-#define EUR_CR_BIF_FAULT_ADDR_SHIFT         12
-#define EUR_CR_BIF_TILE0                    0x0C0C
-#define EUR_CR_BIF_TILE0_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE0_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE0_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE0_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE0_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE0_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE1                    0x0C10
-#define EUR_CR_BIF_TILE1_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE1_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE1_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE1_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE1_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE1_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE2                    0x0C14
-#define EUR_CR_BIF_TILE2_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE2_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE2_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE2_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE2_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE2_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE3                    0x0C18
-#define EUR_CR_BIF_TILE3_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE3_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE3_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE3_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE3_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE3_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE4                    0x0C1C
-#define EUR_CR_BIF_TILE4_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE4_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE4_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE4_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE4_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE4_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE5                    0x0C20
-#define EUR_CR_BIF_TILE5_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE5_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE5_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE5_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE5_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE5_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE6                    0x0C24
-#define EUR_CR_BIF_TILE6_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE6_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE6_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE6_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE6_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE6_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE7                    0x0C28
-#define EUR_CR_BIF_TILE7_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE7_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE7_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE7_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE7_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE7_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE8                    0x0C2C
-#define EUR_CR_BIF_TILE8_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE8_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE8_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE8_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE8_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE8_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE9                    0x0C30
-#define EUR_CR_BIF_TILE9_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE9_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE9_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE9_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE9_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE9_CFG_SHIFT          24
-#define EUR_CR_BIF_DIR_LIST_BASE1           0x0C38
-#define EUR_CR_BIF_DIR_LIST_BASE1_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE1_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE2           0x0C3C
-#define EUR_CR_BIF_DIR_LIST_BASE2_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE2_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE3           0x0C40
-#define EUR_CR_BIF_DIR_LIST_BASE3_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE3_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE4           0x0C44
-#define EUR_CR_BIF_DIR_LIST_BASE4_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE4_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE5           0x0C48
-#define EUR_CR_BIF_DIR_LIST_BASE5_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE5_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE6           0x0C4C
-#define EUR_CR_BIF_DIR_LIST_BASE6_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE6_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE7           0x0C50
-#define EUR_CR_BIF_DIR_LIST_BASE7_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE7_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE8           0x0C54
-#define EUR_CR_BIF_DIR_LIST_BASE8_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE8_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE9           0x0C58
-#define EUR_CR_BIF_DIR_LIST_BASE9_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE9_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE10          0x0C5C
-#define EUR_CR_BIF_DIR_LIST_BASE10_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE10_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE11          0x0C60
-#define EUR_CR_BIF_DIR_LIST_BASE11_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE11_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE12          0x0C64
-#define EUR_CR_BIF_DIR_LIST_BASE12_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE12_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE13          0x0C68
-#define EUR_CR_BIF_DIR_LIST_BASE13_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE13_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE14          0x0C6C
-#define EUR_CR_BIF_DIR_LIST_BASE14_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE14_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE15          0x0C70
-#define EUR_CR_BIF_DIR_LIST_BASE15_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE15_ADDR_SHIFT 12
-#define EUR_CR_BIF_BANK_SET                 0x0C74
-#define EUR_CR_BIF_BANK_SET_SELECT_MASK     0x000003FFU
-#define EUR_CR_BIF_BANK_SET_SELECT_SHIFT    0
-#define EUR_CR_BIF_BANK0                    0x0C78
-#define EUR_CR_BIF_BANK0_INDEX_EDM_MASK     0x0000000FU
-#define EUR_CR_BIF_BANK0_INDEX_EDM_SHIFT    0
-#define EUR_CR_BIF_BANK0_INDEX_TA_MASK      0x000000F0U
-#define EUR_CR_BIF_BANK0_INDEX_TA_SHIFT     4
-#define EUR_CR_BIF_BANK0_INDEX_HOST_MASK    0x00000F00U
-#define EUR_CR_BIF_BANK0_INDEX_HOST_SHIFT   8
-#define EUR_CR_BIF_BANK0_INDEX_3D_MASK      0x0000F000U
-#define EUR_CR_BIF_BANK0_INDEX_3D_SHIFT     12
-#define EUR_CR_BIF_BANK0_INDEX_2D_MASK      0x000F0000U
-#define EUR_CR_BIF_BANK0_INDEX_2D_SHIFT     16
-#define EUR_CR_BIF_BANK1                    0x0C7C
-#define EUR_CR_BIF_BANK1_INDEX_EDM_MASK     0x0000000FU
-#define EUR_CR_BIF_BANK1_INDEX_EDM_SHIFT    0
-#define EUR_CR_BIF_BANK1_INDEX_TA_MASK      0x000000F0U
-#define EUR_CR_BIF_BANK1_INDEX_TA_SHIFT     4
-#define EUR_CR_BIF_BANK1_INDEX_HOST_MASK    0x00000F00U
-#define EUR_CR_BIF_BANK1_INDEX_HOST_SHIFT   8
-#define EUR_CR_BIF_BANK1_INDEX_3D_MASK      0x0000F000U
-#define EUR_CR_BIF_BANK1_INDEX_3D_SHIFT     12
-#define EUR_CR_BIF_BANK1_INDEX_2D_MASK      0x000F0000U
-#define EUR_CR_BIF_BANK1_INDEX_2D_SHIFT     16
-#define EUR_CR_BIF_ADT_TTE                  0x0C80
-#define EUR_CR_BIF_ADT_TTE_VALUE_MASK       0x000000FFU
-#define EUR_CR_BIF_ADT_TTE_VALUE_SHIFT      0
-#define EUR_CR_BIF_DIR_LIST_BASE0           0x0C84
-#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_SHIFT 12
-#define EUR_CR_BIF_TWOD_REQ_BASE            0x0C88
-#define EUR_CR_BIF_TWOD_REQ_BASE_ADDR_MASK  0xFFF00000U
-#define EUR_CR_BIF_TWOD_REQ_BASE_ADDR_SHIFT 20
-#define EUR_CR_BIF_TA_REQ_BASE              0x0C90
-#define EUR_CR_BIF_TA_REQ_BASE_ADDR_MASK    0xFFF00000U
-#define EUR_CR_BIF_TA_REQ_BASE_ADDR_SHIFT   20
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_1      0x0C94
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_1_MMU_MASK 0x00000007U
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_1_MMU_SHIFT 0
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_1_CACHE_MASK 0x00000038U
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_1_CACHE_SHIFT 3
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_1_VDM_MASK 0x000001C0U
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_1_VDM_SHIFT 6
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_1_TE_MASK 0x00000E00U
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_1_TE_SHIFT 9
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_1_TWOD_MASK 0x00007000U
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_1_TWOD_SHIFT 12
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_1_PBE_MASK 0x00038000U
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_1_PBE_SHIFT 15
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_2      0x0C98
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_2_HOST_MASK 0x00000007U
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_2_HOST_SHIFT 0
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_2_USE_MASK 0x00000038U
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_2_USE_SHIFT 3
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_2_ISP_MASK 0x000001C0U
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_2_ISP_SHIFT 6
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_2_TSPP_MASK 0x00000E00U
-#define EUR_CR_BIF_MEM_ARB_FLOWRATES_2_TSPP_SHIFT 9
-#define EUR_CR_BIF_MEM_ARB_CONFIG           0x0CA0
-#define EUR_CR_BIF_MEM_ARB_CONFIG_PAGE_SIZE_MASK 0x0000000FU
-#define EUR_CR_BIF_MEM_ARB_CONFIG_PAGE_SIZE_SHIFT 0
-#define EUR_CR_BIF_MEM_ARB_CONFIG_BEST_CNT_MASK 0x00000FF0U
-#define EUR_CR_BIF_MEM_ARB_CONFIG_BEST_CNT_SHIFT 4
-#define EUR_CR_BIF_MEM_ARB_CONFIG_TTE_THRESH_MASK 0x00FFF000U
-#define EUR_CR_BIF_MEM_ARB_CONFIG_TTE_THRESH_SHIFT 12
-#define EUR_CR_BIF_MEM_REQ_STAT             0x0CA8
-#define EUR_CR_BIF_MEM_REQ_STAT_READS_MASK  0x000000FFU
-#define EUR_CR_BIF_MEM_REQ_STAT_READS_SHIFT 0
-#define EUR_CR_BIF_3D_REQ_BASE              0x0CAC
-#define EUR_CR_BIF_3D_REQ_BASE_ADDR_MASK    0xFFF00000U
-#define EUR_CR_BIF_3D_REQ_BASE_ADDR_SHIFT   20
-#define EUR_CR_BIF_ZLS_REQ_BASE             0x0CB0
-#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_MASK   0xFFF00000U
-#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_SHIFT  20
-#define EUR_CR_BIF_BANK_STATUS              0x0CB4
-#define EUR_CR_BIF_BANK_STATUS_3D_CURRENT_BANK_MASK 0x00000001U
-#define EUR_CR_BIF_BANK_STATUS_3D_CURRENT_BANK_SHIFT 0
-#define EUR_CR_BIF_BANK_STATUS_TA_CURRENT_BANK_MASK 0x00000002U
-#define EUR_CR_BIF_BANK_STATUS_TA_CURRENT_BANK_SHIFT 1
-#define EUR_CR_2D_BLIT_STATUS               0x0E04
-#define EUR_CR_2D_BLIT_STATUS_COMPLETE_MASK 0x00FFFFFFU
-#define EUR_CR_2D_BLIT_STATUS_COMPLETE_SHIFT 0
-#define EUR_CR_2D_BLIT_STATUS_BUSY_MASK     0x01000000U
-#define EUR_CR_2D_BLIT_STATUS_BUSY_SHIFT    24
-#define EUR_CR_2D_VIRTUAL_FIFO_0            0x0E10
-#define EUR_CR_2D_VIRTUAL_FIFO_0_ENABLE_MASK 0x00000001U
-#define EUR_CR_2D_VIRTUAL_FIFO_0_ENABLE_SHIFT 0
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MASK 0x0000000EU
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_SHIFT 1
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_DIV_MASK 0x00000FF0U
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_DIV_SHIFT 4
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MUL_MASK 0x0000F000U
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MUL_SHIFT 12
-#define EUR_CR_2D_VIRTUAL_FIFO_1            0x0E14
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_ACC_MASK 0x00000FFFU
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_ACC_SHIFT 0
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MAX_ACC_MASK 0x00FFF000U
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MAX_ACC_SHIFT 12
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_METRIC_MASK 0xFF000000U
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_METRIC_SHIFT 24
-#define EUR_CR_2D_SOCIF                     0x0E18
-#define EUR_CR_2D_SOCIF_FREESPACE_MASK      0x000000FFU
-#define EUR_CR_2D_SOCIF_FREESPACE_SHIFT     0
-#define EUR_CR_2D_ALPHA                     0x0E1C
-#define EUR_CR_2D_ALPHA_COMPONENT_ONE_MASK  0x0000FF00U
-#define EUR_CR_2D_ALPHA_COMPONENT_ONE_SHIFT 8
-#define EUR_CR_2D_ALPHA_COMPONENT_ZERO_MASK 0x000000FFU
-#define EUR_CR_2D_ALPHA_COMPONENT_ZERO_SHIFT 0
-#define EUR_CR_USE_CODE_BASE(X)     (0x0A0C + (4 * (X)))
-#define EUR_CR_USE_CODE_BASE_ADDR_MASK      0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_SHIFT     0
-#define EUR_CR_USE_CODE_BASE_DM_MASK        0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_SHIFT       25
-#define EUR_CR_USE_CODE_BASE_SIZE_UINT32 16
-#define EUR_CR_USE_CODE_BASE_NUM_ENTRIES 16
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx540defs.h b/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx540defs.h
deleted file mode 100644
index c09aa26..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx540defs.h
+++ /dev/null
@@ -1,547 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _SGX540DEFS_KM_H_
-#define _SGX540DEFS_KM_H_
-
-#define EUR_CR_CLKGATECTL                   0x0000
-#define EUR_CR_CLKGATECTL_ISP_CLKG_MASK     0x00000003U
-#define EUR_CR_CLKGATECTL_ISP_CLKG_SHIFT    0
-#define EUR_CR_CLKGATECTL_ISP2_CLKG_MASK    0x0000000CU
-#define EUR_CR_CLKGATECTL_ISP2_CLKG_SHIFT   2
-#define EUR_CR_CLKGATECTL_TSP_CLKG_MASK     0x00000030U
-#define EUR_CR_CLKGATECTL_TSP_CLKG_SHIFT    4
-#define EUR_CR_CLKGATECTL_TE_CLKG_MASK      0x000000C0U
-#define EUR_CR_CLKGATECTL_TE_CLKG_SHIFT     6
-#define EUR_CR_CLKGATECTL_MTE_CLKG_MASK     0x00000300U
-#define EUR_CR_CLKGATECTL_MTE_CLKG_SHIFT    8
-#define EUR_CR_CLKGATECTL_DPM_CLKG_MASK     0x00000C00U
-#define EUR_CR_CLKGATECTL_DPM_CLKG_SHIFT    10
-#define EUR_CR_CLKGATECTL_VDM_CLKG_MASK     0x00003000U
-#define EUR_CR_CLKGATECTL_VDM_CLKG_SHIFT    12
-#define EUR_CR_CLKGATECTL_PDS_CLKG_MASK     0x0000C000U
-#define EUR_CR_CLKGATECTL_PDS_CLKG_SHIFT    14
-#define EUR_CR_CLKGATECTL_IDXFIFO_CLKG_MASK 0x00030000U
-#define EUR_CR_CLKGATECTL_IDXFIFO_CLKG_SHIFT 16
-#define EUR_CR_CLKGATECTL_TA_CLKG_MASK      0x000C0000U
-#define EUR_CR_CLKGATECTL_TA_CLKG_SHIFT     18
-#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_MASK 0x01000000U
-#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_SHIFT 24
-#define EUR_CR_CLKGATECTL_SYSTEM_CLKG_MASK  0x10000000U
-#define EUR_CR_CLKGATECTL_SYSTEM_CLKG_SHIFT 28
-#define EUR_CR_CLKGATECTL2                  0x0004
-#define EUR_CR_CLKGATECTL2_PBE_CLKG_MASK    0x00000003U
-#define EUR_CR_CLKGATECTL2_PBE_CLKG_SHIFT   0
-#define EUR_CR_CLKGATECTL2_CACHEL2_CLKG_MASK 0x0000000CU
-#define EUR_CR_CLKGATECTL2_CACHEL2_CLKG_SHIFT 2
-#define EUR_CR_CLKGATECTL2_UCACHEL2_CLKG_MASK 0x00000030U
-#define EUR_CR_CLKGATECTL2_UCACHEL2_CLKG_SHIFT 4
-#define EUR_CR_CLKGATECTL2_USE0_CLKG_MASK   0x000000C0U
-#define EUR_CR_CLKGATECTL2_USE0_CLKG_SHIFT  6
-#define EUR_CR_CLKGATECTL2_ITR0_CLKG_MASK   0x00000300U
-#define EUR_CR_CLKGATECTL2_ITR0_CLKG_SHIFT  8
-#define EUR_CR_CLKGATECTL2_TEX0_CLKG_MASK   0x00000C00U
-#define EUR_CR_CLKGATECTL2_TEX0_CLKG_SHIFT  10
-#define EUR_CR_CLKGATECTL2_MADD0_CLKG_MASK  0x00003000U
-#define EUR_CR_CLKGATECTL2_MADD0_CLKG_SHIFT 12
-#define EUR_CR_CLKGATECTL2_USE1_CLKG_MASK   0x0000C000U
-#define EUR_CR_CLKGATECTL2_USE1_CLKG_SHIFT  14
-#define EUR_CR_CLKGATECTL2_ITR1_CLKG_MASK   0x00030000U
-#define EUR_CR_CLKGATECTL2_ITR1_CLKG_SHIFT  16
-#define EUR_CR_CLKGATECTL2_TEX1_CLKG_MASK   0x000C0000U
-#define EUR_CR_CLKGATECTL2_TEX1_CLKG_SHIFT  18
-#define EUR_CR_CLKGATECTL2_MADD1_CLKG_MASK  0x00300000U
-#define EUR_CR_CLKGATECTL2_MADD1_CLKG_SHIFT 20
-#define EUR_CR_CLKGATESTATUS                0x0008
-#define EUR_CR_CLKGATESTATUS_ISP_CLKS_MASK  0x00000001U
-#define EUR_CR_CLKGATESTATUS_ISP_CLKS_SHIFT 0
-#define EUR_CR_CLKGATESTATUS_ISP2_CLKS_MASK 0x00000002U
-#define EUR_CR_CLKGATESTATUS_ISP2_CLKS_SHIFT 1
-#define EUR_CR_CLKGATESTATUS_TSP_CLKS_MASK  0x00000004U
-#define EUR_CR_CLKGATESTATUS_TSP_CLKS_SHIFT 2
-#define EUR_CR_CLKGATESTATUS_TE_CLKS_MASK   0x00000008U
-#define EUR_CR_CLKGATESTATUS_TE_CLKS_SHIFT  3
-#define EUR_CR_CLKGATESTATUS_MTE_CLKS_MASK  0x00000010U
-#define EUR_CR_CLKGATESTATUS_MTE_CLKS_SHIFT 4
-#define EUR_CR_CLKGATESTATUS_DPM_CLKS_MASK  0x00000020U
-#define EUR_CR_CLKGATESTATUS_DPM_CLKS_SHIFT 5
-#define EUR_CR_CLKGATESTATUS_VDM_CLKS_MASK  0x00000040U
-#define EUR_CR_CLKGATESTATUS_VDM_CLKS_SHIFT 6
-#define EUR_CR_CLKGATESTATUS_PDS_CLKS_MASK  0x00000080U
-#define EUR_CR_CLKGATESTATUS_PDS_CLKS_SHIFT 7
-#define EUR_CR_CLKGATESTATUS_PBE_CLKS_MASK  0x00000100U
-#define EUR_CR_CLKGATESTATUS_PBE_CLKS_SHIFT 8
-#define EUR_CR_CLKGATESTATUS_CACHEL2_CLKS_MASK 0x00000200U
-#define EUR_CR_CLKGATESTATUS_CACHEL2_CLKS_SHIFT 9
-#define EUR_CR_CLKGATESTATUS_UCACHEL2_CLKS_MASK 0x00000400U
-#define EUR_CR_CLKGATESTATUS_UCACHEL2_CLKS_SHIFT 10
-#define EUR_CR_CLKGATESTATUS_USE0_CLKS_MASK 0x00000800U
-#define EUR_CR_CLKGATESTATUS_USE0_CLKS_SHIFT 11
-#define EUR_CR_CLKGATESTATUS_ITR0_CLKS_MASK 0x00001000U
-#define EUR_CR_CLKGATESTATUS_ITR0_CLKS_SHIFT 12
-#define EUR_CR_CLKGATESTATUS_TEX0_CLKS_MASK 0x00002000U
-#define EUR_CR_CLKGATESTATUS_TEX0_CLKS_SHIFT 13
-#define EUR_CR_CLKGATESTATUS_MADD0_CLKS_MASK 0x00004000U
-#define EUR_CR_CLKGATESTATUS_MADD0_CLKS_SHIFT 14
-#define EUR_CR_CLKGATESTATUS_USE1_CLKS_MASK 0x00008000U
-#define EUR_CR_CLKGATESTATUS_USE1_CLKS_SHIFT 15
-#define EUR_CR_CLKGATESTATUS_ITR1_CLKS_MASK 0x00010000U
-#define EUR_CR_CLKGATESTATUS_ITR1_CLKS_SHIFT 16
-#define EUR_CR_CLKGATESTATUS_TEX1_CLKS_MASK 0x00020000U
-#define EUR_CR_CLKGATESTATUS_TEX1_CLKS_SHIFT 17
-#define EUR_CR_CLKGATESTATUS_MADD1_CLKS_MASK 0x00040000U
-#define EUR_CR_CLKGATESTATUS_MADD1_CLKS_SHIFT 18
-#define EUR_CR_CLKGATESTATUS_IDXFIFO_CLKS_MASK 0x00080000U
-#define EUR_CR_CLKGATESTATUS_IDXFIFO_CLKS_SHIFT 19
-#define EUR_CR_CLKGATESTATUS_TA_CLKS_MASK   0x00100000U
-#define EUR_CR_CLKGATESTATUS_TA_CLKS_SHIFT  20
-#define EUR_CR_CLKGATECTLOVR                0x000C
-#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_MASK  0x00000003U
-#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_SHIFT 0
-#define EUR_CR_CLKGATECTLOVR_ISP2_CLKO_MASK 0x0000000CU
-#define EUR_CR_CLKGATECTLOVR_ISP2_CLKO_SHIFT 2
-#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_MASK  0x00000030U
-#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_SHIFT 4
-#define EUR_CR_CLKGATECTLOVR_TE_CLKO_MASK   0x000000C0U
-#define EUR_CR_CLKGATECTLOVR_TE_CLKO_SHIFT  6
-#define EUR_CR_CLKGATECTLOVR_MTE_CLKO_MASK  0x00000300U
-#define EUR_CR_CLKGATECTLOVR_MTE_CLKO_SHIFT 8
-#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_MASK  0x00000C00U
-#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_SHIFT 10
-#define EUR_CR_CLKGATECTLOVR_VDM_CLKO_MASK  0x00003000U
-#define EUR_CR_CLKGATECTLOVR_VDM_CLKO_SHIFT 12
-#define EUR_CR_CLKGATECTLOVR_PDS_CLKO_MASK  0x0000C000U
-#define EUR_CR_CLKGATECTLOVR_PDS_CLKO_SHIFT 14
-#define EUR_CR_CLKGATECTLOVR_IDXFIFO_CLKO_MASK 0x00030000U
-#define EUR_CR_CLKGATECTLOVR_IDXFIFO_CLKO_SHIFT 16
-#define EUR_CR_CLKGATECTLOVR_TA_CLKO_MASK   0x000C0000U
-#define EUR_CR_CLKGATECTLOVR_TA_CLKO_SHIFT  18
-#define EUR_CR_POWER                        0x001C
-#define EUR_CR_POWER_PIPE_DISABLE_MASK      0x00000001U
-#define EUR_CR_POWER_PIPE_DISABLE_SHIFT     0
-#define EUR_CR_CORE_ID                      0x0020
-#define EUR_CR_CORE_ID_CONFIG_MASK          0x0000FFFFU
-#define EUR_CR_CORE_ID_CONFIG_SHIFT         0
-#define EUR_CR_CORE_ID_ID_MASK              0xFFFF0000U
-#define EUR_CR_CORE_ID_ID_SHIFT             16
-#define EUR_CR_CORE_REVISION                0x0024
-#define EUR_CR_CORE_REVISION_MAINTENANCE_MASK 0x000000FFU
-#define EUR_CR_CORE_REVISION_MAINTENANCE_SHIFT 0
-#define EUR_CR_CORE_REVISION_MINOR_MASK     0x0000FF00U
-#define EUR_CR_CORE_REVISION_MINOR_SHIFT    8
-#define EUR_CR_CORE_REVISION_MAJOR_MASK     0x00FF0000U
-#define EUR_CR_CORE_REVISION_MAJOR_SHIFT    16
-#define EUR_CR_CORE_REVISION_DESIGNER_MASK  0xFF000000U
-#define EUR_CR_CORE_REVISION_DESIGNER_SHIFT 24
-#define EUR_CR_DESIGNER_REV_FIELD1          0x0028
-#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_MASK 0xFFFFFFFFU
-#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_SHIFT 0
-#define EUR_CR_DESIGNER_REV_FIELD2          0x002C
-#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_MASK 0xFFFFFFFFU
-#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_SHIFT 0
-#define EUR_CR_SOFT_RESET                   0x0080
-#define EUR_CR_SOFT_RESET_BIF_RESET_MASK    0x00000001U
-#define EUR_CR_SOFT_RESET_BIF_RESET_SHIFT   0
-#define EUR_CR_SOFT_RESET_VDM_RESET_MASK    0x00000002U
-#define EUR_CR_SOFT_RESET_VDM_RESET_SHIFT   1
-#define EUR_CR_SOFT_RESET_DPM_RESET_MASK    0x00000004U
-#define EUR_CR_SOFT_RESET_DPM_RESET_SHIFT   2
-#define EUR_CR_SOFT_RESET_TE_RESET_MASK     0x00000008U
-#define EUR_CR_SOFT_RESET_TE_RESET_SHIFT    3
-#define EUR_CR_SOFT_RESET_MTE_RESET_MASK    0x00000010U
-#define EUR_CR_SOFT_RESET_MTE_RESET_SHIFT   4
-#define EUR_CR_SOFT_RESET_ISP_RESET_MASK    0x00000020U
-#define EUR_CR_SOFT_RESET_ISP_RESET_SHIFT   5
-#define EUR_CR_SOFT_RESET_ISP2_RESET_MASK   0x00000040U
-#define EUR_CR_SOFT_RESET_ISP2_RESET_SHIFT  6
-#define EUR_CR_SOFT_RESET_TSP_RESET_MASK    0x00000080U
-#define EUR_CR_SOFT_RESET_TSP_RESET_SHIFT   7
-#define EUR_CR_SOFT_RESET_PDS_RESET_MASK    0x00000100U
-#define EUR_CR_SOFT_RESET_PDS_RESET_SHIFT   8
-#define EUR_CR_SOFT_RESET_PBE_RESET_MASK    0x00000200U
-#define EUR_CR_SOFT_RESET_PBE_RESET_SHIFT   9
-#define EUR_CR_SOFT_RESET_CACHEL2_RESET_MASK 0x00000400U
-#define EUR_CR_SOFT_RESET_CACHEL2_RESET_SHIFT 10
-#define EUR_CR_SOFT_RESET_UCACHEL2_RESET_MASK 0x00000800U
-#define EUR_CR_SOFT_RESET_UCACHEL2_RESET_SHIFT 11
-#define EUR_CR_SOFT_RESET_MADD_RESET_MASK   0x00001000U
-#define EUR_CR_SOFT_RESET_MADD_RESET_SHIFT  12
-#define EUR_CR_SOFT_RESET_ITR_RESET_MASK    0x00002000U
-#define EUR_CR_SOFT_RESET_ITR_RESET_SHIFT   13
-#define EUR_CR_SOFT_RESET_TEX_RESET_MASK    0x00004000U
-#define EUR_CR_SOFT_RESET_TEX_RESET_SHIFT   14
-#define EUR_CR_SOFT_RESET_USE_RESET_MASK    0x00008000U
-#define EUR_CR_SOFT_RESET_USE_RESET_SHIFT   15
-#define EUR_CR_SOFT_RESET_IDXFIFO_RESET_MASK 0x00010000U
-#define EUR_CR_SOFT_RESET_IDXFIFO_RESET_SHIFT 16
-#define EUR_CR_SOFT_RESET_TA_RESET_MASK     0x00020000U
-#define EUR_CR_SOFT_RESET_TA_RESET_SHIFT    17
-#define EUR_CR_EVENT_HOST_ENABLE2           0x0110
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_SHIFT 4
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_SHIFT 3
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_SHIFT 2
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_HOST_CLEAR2            0x0114
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_SHIFT 4
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_SHIFT 3
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_SHIFT 2
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_STATUS2                0x0118
-#define EUR_CR_EVENT_STATUS2_TRIG_TA_MASK   0x00000010U
-#define EUR_CR_EVENT_STATUS2_TRIG_TA_SHIFT  4
-#define EUR_CR_EVENT_STATUS2_TRIG_3D_MASK   0x00000008U
-#define EUR_CR_EVENT_STATUS2_TRIG_3D_SHIFT  3
-#define EUR_CR_EVENT_STATUS2_TRIG_DL_MASK   0x00000004U
-#define EUR_CR_EVENT_STATUS2_TRIG_DL_SHIFT  2
-#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_STATUS                 0x012CU
-#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_STATUS_TIMER_MASK      0x20000000U
-#define EUR_CR_EVENT_STATUS_TIMER_SHIFT     29
-#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_STATUS_TWOD_COMPLETE_MASK 0x08000000U
-#define EUR_CR_EVENT_STATUS_TWOD_COMPLETE_SHIFT 27
-#define EUR_CR_EVENT_STATUS_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_STATUS_MADD_CACHE_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_STATUS_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_STATUS_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_STATUS_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_STATUS_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_STATUS_OTPM_LOADED_MASK 0x00200000U
-#define EUR_CR_EVENT_STATUS_OTPM_LOADED_SHIFT 21
-#define EUR_CR_EVENT_STATUS_OTPM_INV_MASK   0x00100000U
-#define EUR_CR_EVENT_STATUS_OTPM_INV_SHIFT  20
-#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_STATUS_ISP_HALT_MASK   0x00020000U
-#define EUR_CR_EVENT_STATUS_ISP_HALT_SHIFT  17
-#define EUR_CR_EVENT_STATUS_ISP_VISIBILITY_FAIL_MASK 0x00010000U
-#define EUR_CR_EVENT_STATUS_ISP_VISIBILITY_FAIL_SHIFT 16
-#define EUR_CR_EVENT_STATUS_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_STATUS_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_STATUS_SW_EVENT_MASK   0x00004000U
-#define EUR_CR_EVENT_STATUS_SW_EVENT_SHIFT  14
-#define EUR_CR_EVENT_STATUS_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_STATUS_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_STATUS_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_STATUS_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_STATUS_TPC_CLEAR_MASK  0x00000800U
-#define EUR_CR_EVENT_STATUS_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_STATUS_TPC_FLUSH_MASK  0x00000400U
-#define EUR_CR_EVENT_STATUS_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_EVENT_HOST_ENABLE            0x0130
-#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_HOST_ENABLE_TIMER_MASK 0x20000000U
-#define EUR_CR_EVENT_HOST_ENABLE_TIMER_SHIFT 29
-#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_HOST_ENABLE_TWOD_COMPLETE_MASK 0x08000000U
-#define EUR_CR_EVENT_HOST_ENABLE_TWOD_COMPLETE_SHIFT 27
-#define EUR_CR_EVENT_HOST_ENABLE_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_HOST_ENABLE_MADD_CACHE_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_LOADED_MASK 0x00200000U
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_LOADED_SHIFT 21
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_MASK 0x00100000U
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_SHIFT 20
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_HALT_MASK 0x00020000U
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_HALT_SHIFT 17
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_VISIBILITY_FAIL_MASK 0x00010000U
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_VISIBILITY_FAIL_SHIFT 16
-#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_MASK 0x00004000U
-#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_SHIFT 14
-#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_EVENT_HOST_CLEAR             0x0134
-#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_HOST_CLEAR_TIMER_MASK  0x20000000U
-#define EUR_CR_EVENT_HOST_CLEAR_TIMER_SHIFT 29
-#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_HOST_CLEAR_TWOD_COMPLETE_MASK 0x08000000U
-#define EUR_CR_EVENT_HOST_CLEAR_TWOD_COMPLETE_SHIFT 27
-#define EUR_CR_EVENT_HOST_CLEAR_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_HOST_CLEAR_MADD_CACHE_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_LOADED_MASK 0x00200000U
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_LOADED_SHIFT 21
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_MASK 0x00100000U
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_SHIFT 20
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_HALT_MASK 0x00020000U
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_HALT_SHIFT 17
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_VISIBILITY_FAIL_MASK 0x00010000U
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_VISIBILITY_FAIL_SHIFT 16
-#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_MASK 0x00004000U
-#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_SHIFT 14
-#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_TIMER                        0x0144
-#define EUR_CR_TIMER_VALUE_MASK             0xFFFFFFFFU
-#define EUR_CR_TIMER_VALUE_SHIFT            0
-#define EUR_CR_EVENT_KICK1                  0x0AB0
-#define EUR_CR_EVENT_KICK1_NOW_MASK         0x000000FFU
-#define EUR_CR_EVENT_KICK1_NOW_SHIFT        0
-#define EUR_CR_PDS_EXEC_BASE                0x0AB8
-#define EUR_CR_PDS_EXEC_BASE_ADDR_MASK      0x0FF00000U
-#define EUR_CR_PDS_EXEC_BASE_ADDR_SHIFT     20
-#define EUR_CR_EVENT_KICK2                  0x0AC0
-#define EUR_CR_EVENT_KICK2_NOW_MASK         0x00000001U
-#define EUR_CR_EVENT_KICK2_NOW_SHIFT        0
-#define EUR_CR_EVENT_KICKER                 0x0AC4
-#define EUR_CR_EVENT_KICKER_ADDRESS_MASK    0x0FFFFFF0U
-#define EUR_CR_EVENT_KICKER_ADDRESS_SHIFT   4
-#define EUR_CR_EVENT_KICK                   0x0AC8
-#define EUR_CR_EVENT_KICK_NOW_MASK          0x00000001U
-#define EUR_CR_EVENT_KICK_NOW_SHIFT         0
-#define EUR_CR_EVENT_TIMER                  0x0ACC
-#define EUR_CR_EVENT_TIMER_ENABLE_MASK      0x01000000U
-#define EUR_CR_EVENT_TIMER_ENABLE_SHIFT     24
-#define EUR_CR_EVENT_TIMER_VALUE_MASK       0x00FFFFFFU
-#define EUR_CR_EVENT_TIMER_VALUE_SHIFT      0
-#define EUR_CR_PDS_INV0                     0x0AD0
-#define EUR_CR_PDS_INV0_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV0_DSC_SHIFT           0
-#define EUR_CR_PDS_INV1                     0x0AD4
-#define EUR_CR_PDS_INV1_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV1_DSC_SHIFT           0
-#define EUR_CR_EVENT_KICK3                  0x0AD8
-#define EUR_CR_EVENT_KICK3_NOW_MASK         0x00000001U
-#define EUR_CR_EVENT_KICK3_NOW_SHIFT        0
-#define EUR_CR_PDS_INV3                     0x0ADC
-#define EUR_CR_PDS_INV3_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV3_DSC_SHIFT           0
-#define EUR_CR_PDS_INV_CSC                  0x0AE0
-#define EUR_CR_PDS_INV_CSC_KICK_MASK        0x00000001U
-#define EUR_CR_PDS_INV_CSC_KICK_SHIFT       0
-#define EUR_CR_PDS_PC_BASE                  0x0B2C
-#define EUR_CR_PDS_PC_BASE_ADDRESS_MASK     0x00FFFFFFU
-#define EUR_CR_PDS_PC_BASE_ADDRESS_SHIFT    0
-#define EUR_CR_BIF_CTRL                     0x0C00
-#define EUR_CR_BIF_CTRL_NOREORDER_MASK      0x00000001U
-#define EUR_CR_BIF_CTRL_NOREORDER_SHIFT     0
-#define EUR_CR_BIF_CTRL_PAUSE_MASK          0x00000002U
-#define EUR_CR_BIF_CTRL_PAUSE_SHIFT         1
-#define EUR_CR_BIF_CTRL_FLUSH_MASK          0x00000004U
-#define EUR_CR_BIF_CTRL_FLUSH_SHIFT         2
-#define EUR_CR_BIF_CTRL_INVALDC_MASK        0x00000008U
-#define EUR_CR_BIF_CTRL_INVALDC_SHIFT       3
-#define EUR_CR_BIF_CTRL_CLEAR_FAULT_MASK    0x00000010U
-#define EUR_CR_BIF_CTRL_CLEAR_FAULT_SHIFT   4
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_CACHE_MASK 0x00000100U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_CACHE_SHIFT 8
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_MASK 0x00000200U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_SHIFT 9
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TE_MASK  0x00000400U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TE_SHIFT 10
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_MASK 0x00001000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_SHIFT 12
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_MASK 0x00002000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_SHIFT 13
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_MASK 0x00004000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_SHIFT 14
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_MASK 0x00008000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_SHIFT 15
-#define EUR_CR_BIF_INT_STAT                 0x0C04
-#define EUR_CR_BIF_INT_STAT_FAULT_MASK      0x00003FFFU
-#define EUR_CR_BIF_INT_STAT_FAULT_SHIFT     0
-#define EUR_CR_BIF_INT_STAT_PF_N_RW_MASK    0x00004000U
-#define EUR_CR_BIF_INT_STAT_PF_N_RW_SHIFT   14
-#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_MASK 0x00008000U
-#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_SHIFT 15
-#define EUR_CR_BIF_FAULT                    0x0C08
-#define EUR_CR_BIF_FAULT_SB_MASK            0x000001F0U
-#define EUR_CR_BIF_FAULT_SB_SHIFT           4
-#define EUR_CR_BIF_FAULT_ADDR_MASK          0x0FFFF000U
-#define EUR_CR_BIF_FAULT_ADDR_SHIFT         12
-#define EUR_CR_BIF_DIR_LIST_BASE0           0x0C84
-#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_SHIFT 12
-#define EUR_CR_BIF_TA_REQ_BASE              0x0C90
-#define EUR_CR_BIF_TA_REQ_BASE_ADDR_MASK    0x0FF00000U
-#define EUR_CR_BIF_TA_REQ_BASE_ADDR_SHIFT   20
-#define EUR_CR_BIF_MEM_REQ_STAT             0x0CA8
-#define EUR_CR_BIF_MEM_REQ_STAT_READS_MASK  0x000000FFU
-#define EUR_CR_BIF_MEM_REQ_STAT_READS_SHIFT 0
-#define EUR_CR_BIF_3D_REQ_BASE              0x0CAC
-#define EUR_CR_BIF_3D_REQ_BASE_ADDR_MASK    0x0FF00000U
-#define EUR_CR_BIF_3D_REQ_BASE_ADDR_SHIFT   20
-#define EUR_CR_BIF_ZLS_REQ_BASE             0x0CB0
-#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_MASK   0x0FF00000U
-#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_SHIFT  20
-#define EUR_CR_2D_BLIT_STATUS               0x0E04
-#define EUR_CR_2D_BLIT_STATUS_COMPLETE_MASK 0x00FFFFFFU
-#define EUR_CR_2D_BLIT_STATUS_COMPLETE_SHIFT 0
-#define EUR_CR_2D_BLIT_STATUS_BUSY_MASK     0x01000000U
-#define EUR_CR_2D_BLIT_STATUS_BUSY_SHIFT    24
-#define EUR_CR_2D_VIRTUAL_FIFO_0            0x0E10
-#define EUR_CR_2D_VIRTUAL_FIFO_0_ENABLE_MASK 0x00000001U
-#define EUR_CR_2D_VIRTUAL_FIFO_0_ENABLE_SHIFT 0
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MASK 0x0000000EU
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_SHIFT 1
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_DIV_MASK 0x00000FF0U
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_DIV_SHIFT 4
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MUL_MASK 0x0000F000U
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MUL_SHIFT 12
-#define EUR_CR_2D_VIRTUAL_FIFO_1            0x0E14
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_ACC_MASK 0x00000FFFU
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_ACC_SHIFT 0
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MAX_ACC_MASK 0x00FFF000U
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MAX_ACC_SHIFT 12
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_METRIC_MASK 0xFF000000U
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_METRIC_SHIFT 24
-#define EUR_CR_USE_CODE_BASE(X)     (0x0A0C + (4 * (X)))
-#define EUR_CR_USE_CODE_BASE_ADDR_MASK      0x00FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_SHIFT     0
-#define EUR_CR_USE_CODE_BASE_DM_MASK        0x03000000U
-#define EUR_CR_USE_CODE_BASE_DM_SHIFT       24
-#define EUR_CR_USE_CODE_BASE_SIZE_UINT32 16
-#define EUR_CR_USE_CODE_BASE_NUM_ENTRIES 16
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx543_v1.164defs.h b/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx543_v1.164defs.h
deleted file mode 100644
index 23bd4d4..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx543_v1.164defs.h
+++ /dev/null
@@ -1,1284 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _SGX543DEFS_KM_H_
-#define _SGX543DEFS_KM_H_
-
-#define EUR_CR_CLKGATECTL                   0x0000
-#define EUR_CR_CLKGATECTL_ISP_CLKG_MASK     0x00000003U
-#define EUR_CR_CLKGATECTL_ISP_CLKG_SHIFT    0
-#define EUR_CR_CLKGATECTL_ISP_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_ISP2_CLKG_MASK    0x0000000CU
-#define EUR_CR_CLKGATECTL_ISP2_CLKG_SHIFT   2
-#define EUR_CR_CLKGATECTL_ISP2_CLKG_SIGNED  0
-#define EUR_CR_CLKGATECTL_TSP_CLKG_MASK     0x00000030U
-#define EUR_CR_CLKGATECTL_TSP_CLKG_SHIFT    4
-#define EUR_CR_CLKGATECTL_TSP_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_TE_CLKG_MASK      0x000000C0U
-#define EUR_CR_CLKGATECTL_TE_CLKG_SHIFT     6
-#define EUR_CR_CLKGATECTL_TE_CLKG_SIGNED    0
-#define EUR_CR_CLKGATECTL_MTE_CLKG_MASK     0x00000300U
-#define EUR_CR_CLKGATECTL_MTE_CLKG_SHIFT    8
-#define EUR_CR_CLKGATECTL_MTE_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_DPM_CLKG_MASK     0x00000C00U
-#define EUR_CR_CLKGATECTL_DPM_CLKG_SHIFT    10
-#define EUR_CR_CLKGATECTL_DPM_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_VDM_CLKG_MASK     0x00003000U
-#define EUR_CR_CLKGATECTL_VDM_CLKG_SHIFT    12
-#define EUR_CR_CLKGATECTL_VDM_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_PDS_CLKG_MASK     0x0000C000U
-#define EUR_CR_CLKGATECTL_PDS_CLKG_SHIFT    14
-#define EUR_CR_CLKGATECTL_PDS_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_IDXFIFO_CLKG_MASK 0x00030000U
-#define EUR_CR_CLKGATECTL_IDXFIFO_CLKG_SHIFT 16
-#define EUR_CR_CLKGATECTL_IDXFIFO_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL_TA_CLKG_MASK      0x000C0000U
-#define EUR_CR_CLKGATECTL_TA_CLKG_SHIFT     18
-#define EUR_CR_CLKGATECTL_TA_CLKG_SIGNED    0
-#define EUR_CR_CLKGATECTL_BIF_CORE_CLKG_MASK 0x00300000U
-#define EUR_CR_CLKGATECTL_BIF_CORE_CLKG_SHIFT 20
-#define EUR_CR_CLKGATECTL_BIF_CORE_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_MASK 0x01000000U
-#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_SHIFT 24
-#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_SIGNED 0
-#define EUR_CR_CLKGATECTL_SYSTEM_CLKG_MASK  0x10000000U
-#define EUR_CR_CLKGATECTL_SYSTEM_CLKG_SHIFT 28
-#define EUR_CR_CLKGATECTL_SYSTEM_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2                  0x0004
-#define EUR_CR_CLKGATECTL2_PBE_CLKG_MASK    0x00000003U
-#define EUR_CR_CLKGATECTL2_PBE_CLKG_SHIFT   0
-#define EUR_CR_CLKGATECTL2_PBE_CLKG_SIGNED  0
-#define EUR_CR_CLKGATECTL2_TCU_L2_CLKG_MASK 0x0000000CU
-#define EUR_CR_CLKGATECTL2_TCU_L2_CLKG_SHIFT 2
-#define EUR_CR_CLKGATECTL2_TCU_L2_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_UCACHEL2_CLKG_MASK 0x00000030U
-#define EUR_CR_CLKGATECTL2_UCACHEL2_CLKG_SHIFT 4
-#define EUR_CR_CLKGATECTL2_UCACHEL2_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_USE0_CLKG_MASK   0x000000C0U
-#define EUR_CR_CLKGATECTL2_USE0_CLKG_SHIFT  6
-#define EUR_CR_CLKGATECTL2_USE0_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_ITR0_CLKG_MASK   0x00000300U
-#define EUR_CR_CLKGATECTL2_ITR0_CLKG_SHIFT  8
-#define EUR_CR_CLKGATECTL2_ITR0_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_TEX0_CLKG_MASK   0x00000C00U
-#define EUR_CR_CLKGATECTL2_TEX0_CLKG_SHIFT  10
-#define EUR_CR_CLKGATECTL2_TEX0_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_USE1_CLKG_MASK   0x0000C000U
-#define EUR_CR_CLKGATECTL2_USE1_CLKG_SHIFT  14
-#define EUR_CR_CLKGATECTL2_USE1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_ITR1_CLKG_MASK   0x00030000U
-#define EUR_CR_CLKGATECTL2_ITR1_CLKG_SHIFT  16
-#define EUR_CR_CLKGATECTL2_ITR1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_TEX1_CLKG_MASK   0x000C0000U
-#define EUR_CR_CLKGATECTL2_TEX1_CLKG_SHIFT  18
-#define EUR_CR_CLKGATECTL2_TEX1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_DCU_L2_CLKG_MASK 0x00C00000U
-#define EUR_CR_CLKGATECTL2_DCU_L2_CLKG_SHIFT 22
-#define EUR_CR_CLKGATECTL2_DCU_L2_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_DCU1_L0L1_CLKG_MASK 0x03000000U
-#define EUR_CR_CLKGATECTL2_DCU1_L0L1_CLKG_SHIFT 24
-#define EUR_CR_CLKGATECTL2_DCU1_L0L1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_DCU0_L0L1_CLKG_MASK 0x0C000000U
-#define EUR_CR_CLKGATECTL2_DCU0_L0L1_CLKG_SHIFT 26
-#define EUR_CR_CLKGATECTL2_DCU0_L0L1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATESTATUS                0x0008
-#define EUR_CR_CLKGATESTATUS_ISP_CLKS_MASK  0x00000001U
-#define EUR_CR_CLKGATESTATUS_ISP_CLKS_SHIFT 0
-#define EUR_CR_CLKGATESTATUS_ISP_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_ISP2_CLKS_MASK 0x00000002U
-#define EUR_CR_CLKGATESTATUS_ISP2_CLKS_SHIFT 1
-#define EUR_CR_CLKGATESTATUS_ISP2_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TSP_CLKS_MASK  0x00000004U
-#define EUR_CR_CLKGATESTATUS_TSP_CLKS_SHIFT 2
-#define EUR_CR_CLKGATESTATUS_TSP_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TE_CLKS_MASK   0x00000008U
-#define EUR_CR_CLKGATESTATUS_TE_CLKS_SHIFT  3
-#define EUR_CR_CLKGATESTATUS_TE_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_MTE_CLKS_MASK  0x00000010U
-#define EUR_CR_CLKGATESTATUS_MTE_CLKS_SHIFT 4
-#define EUR_CR_CLKGATESTATUS_MTE_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_DPM_CLKS_MASK  0x00000020U
-#define EUR_CR_CLKGATESTATUS_DPM_CLKS_SHIFT 5
-#define EUR_CR_CLKGATESTATUS_DPM_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_VDM_CLKS_MASK  0x00000040U
-#define EUR_CR_CLKGATESTATUS_VDM_CLKS_SHIFT 6
-#define EUR_CR_CLKGATESTATUS_VDM_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_PDS_CLKS_MASK  0x00000080U
-#define EUR_CR_CLKGATESTATUS_PDS_CLKS_SHIFT 7
-#define EUR_CR_CLKGATESTATUS_PDS_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_PBE_CLKS_MASK  0x00000100U
-#define EUR_CR_CLKGATESTATUS_PBE_CLKS_SHIFT 8
-#define EUR_CR_CLKGATESTATUS_PBE_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TCU_L2_CLKS_MASK 0x00000200U
-#define EUR_CR_CLKGATESTATUS_TCU_L2_CLKS_SHIFT 9
-#define EUR_CR_CLKGATESTATUS_TCU_L2_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_UCACHEL2_CLKS_MASK 0x00000400U
-#define EUR_CR_CLKGATESTATUS_UCACHEL2_CLKS_SHIFT 10
-#define EUR_CR_CLKGATESTATUS_UCACHEL2_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_USE0_CLKS_MASK 0x00000800U
-#define EUR_CR_CLKGATESTATUS_USE0_CLKS_SHIFT 11
-#define EUR_CR_CLKGATESTATUS_USE0_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_ITR0_CLKS_MASK 0x00001000U
-#define EUR_CR_CLKGATESTATUS_ITR0_CLKS_SHIFT 12
-#define EUR_CR_CLKGATESTATUS_ITR0_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TEX0_CLKS_MASK 0x00002000U
-#define EUR_CR_CLKGATESTATUS_TEX0_CLKS_SHIFT 13
-#define EUR_CR_CLKGATESTATUS_TEX0_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_USE1_CLKS_MASK 0x00008000U
-#define EUR_CR_CLKGATESTATUS_USE1_CLKS_SHIFT 15
-#define EUR_CR_CLKGATESTATUS_USE1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_ITR1_CLKS_MASK 0x00010000U
-#define EUR_CR_CLKGATESTATUS_ITR1_CLKS_SHIFT 16
-#define EUR_CR_CLKGATESTATUS_ITR1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TEX1_CLKS_MASK 0x00020000U
-#define EUR_CR_CLKGATESTATUS_TEX1_CLKS_SHIFT 17
-#define EUR_CR_CLKGATESTATUS_TEX1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_IDXFIFO_CLKS_MASK 0x00080000U
-#define EUR_CR_CLKGATESTATUS_IDXFIFO_CLKS_SHIFT 19
-#define EUR_CR_CLKGATESTATUS_IDXFIFO_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TA_CLKS_MASK   0x00100000U
-#define EUR_CR_CLKGATESTATUS_TA_CLKS_SHIFT  20
-#define EUR_CR_CLKGATESTATUS_TA_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_DCU_L2_CLKS_MASK 0x00200000U
-#define EUR_CR_CLKGATESTATUS_DCU_L2_CLKS_SHIFT 21
-#define EUR_CR_CLKGATESTATUS_DCU_L2_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_DCU0_L0L1_CLKS_MASK 0x00400000U
-#define EUR_CR_CLKGATESTATUS_DCU0_L0L1_CLKS_SHIFT 22
-#define EUR_CR_CLKGATESTATUS_DCU0_L0L1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_DCU1_L0L1_CLKS_MASK 0x00800000U
-#define EUR_CR_CLKGATESTATUS_DCU1_L0L1_CLKS_SHIFT 23
-#define EUR_CR_CLKGATESTATUS_DCU1_L0L1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_BIF_CORE_CLKS_MASK 0x01000000U
-#define EUR_CR_CLKGATESTATUS_BIF_CORE_CLKS_SHIFT 24
-#define EUR_CR_CLKGATESTATUS_BIF_CORE_CLKS_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR                0x000C
-#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_MASK  0x00000003U
-#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_SHIFT 0
-#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_ISP2_CLKO_MASK 0x0000000CU
-#define EUR_CR_CLKGATECTLOVR_ISP2_CLKO_SHIFT 2
-#define EUR_CR_CLKGATECTLOVR_ISP2_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_MASK  0x00000030U
-#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_SHIFT 4
-#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_TE_CLKO_MASK   0x000000C0U
-#define EUR_CR_CLKGATECTLOVR_TE_CLKO_SHIFT  6
-#define EUR_CR_CLKGATECTLOVR_TE_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_MTE_CLKO_MASK  0x00000300U
-#define EUR_CR_CLKGATECTLOVR_MTE_CLKO_SHIFT 8
-#define EUR_CR_CLKGATECTLOVR_MTE_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_MASK  0x00000C00U
-#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_SHIFT 10
-#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_VDM_CLKO_MASK  0x00003000U
-#define EUR_CR_CLKGATECTLOVR_VDM_CLKO_SHIFT 12
-#define EUR_CR_CLKGATECTLOVR_VDM_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_PDS_CLKO_MASK  0x0000C000U
-#define EUR_CR_CLKGATECTLOVR_PDS_CLKO_SHIFT 14
-#define EUR_CR_CLKGATECTLOVR_PDS_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_IDXFIFO_CLKO_MASK 0x00030000U
-#define EUR_CR_CLKGATECTLOVR_IDXFIFO_CLKO_SHIFT 16
-#define EUR_CR_CLKGATECTLOVR_IDXFIFO_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_TA_CLKO_MASK   0x000C0000U
-#define EUR_CR_CLKGATECTLOVR_TA_CLKO_SHIFT  18
-#define EUR_CR_CLKGATECTLOVR_TA_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_BIF_CORE_CLKO_MASK 0x00300000U
-#define EUR_CR_CLKGATECTLOVR_BIF_CORE_CLKO_SHIFT 20
-#define EUR_CR_CLKGATECTLOVR_BIF_CORE_CLKO_SIGNED 0
-#define EUR_CR_POWER                        0x001C
-#define EUR_CR_POWER_PIPE_DISABLE_MASK      0x00000001U
-#define EUR_CR_POWER_PIPE_DISABLE_SHIFT     0
-#define EUR_CR_POWER_PIPE_DISABLE_SIGNED    0
-#define EUR_CR_CORE_ID                      0x0020
-#define EUR_CR_CORE_ID_CONFIG_MULTI_MASK    0x00000001U
-#define EUR_CR_CORE_ID_CONFIG_MULTI_SHIFT   0
-#define EUR_CR_CORE_ID_CONFIG_MULTI_SIGNED  0
-#define EUR_CR_CORE_ID_CONFIG_BASE_MASK     0x00000002U
-#define EUR_CR_CORE_ID_CONFIG_BASE_SHIFT    1
-#define EUR_CR_CORE_ID_CONFIG_BASE_SIGNED   0
-#define EUR_CR_CORE_ID_CONFIG_MASK          0x000000FCU
-#define EUR_CR_CORE_ID_CONFIG_SHIFT         2
-#define EUR_CR_CORE_ID_CONFIG_SIGNED        0
-#define EUR_CR_CORE_ID_CONFIG_CORES_MASK    0x00000F00U
-#define EUR_CR_CORE_ID_CONFIG_CORES_SHIFT   8
-#define EUR_CR_CORE_ID_CONFIG_CORES_SIGNED  0
-#define EUR_CR_CORE_ID_CONFIG_SLC_MASK      0x0000F000U
-#define EUR_CR_CORE_ID_CONFIG_SLC_SHIFT     12
-#define EUR_CR_CORE_ID_CONFIG_SLC_SIGNED    0
-#define EUR_CR_CORE_ID_ID_MASK              0xFFFF0000U
-#define EUR_CR_CORE_ID_ID_SHIFT             16
-#define EUR_CR_CORE_ID_ID_SIGNED            0
-#define EUR_CR_CORE_REVISION                0x0024
-#define EUR_CR_CORE_REVISION_MAINTENANCE_MASK 0x000000FFU
-#define EUR_CR_CORE_REVISION_MAINTENANCE_SHIFT 0
-#define EUR_CR_CORE_REVISION_MAINTENANCE_SIGNED 0
-#define EUR_CR_CORE_REVISION_MINOR_MASK     0x0000FF00U
-#define EUR_CR_CORE_REVISION_MINOR_SHIFT    8
-#define EUR_CR_CORE_REVISION_MINOR_SIGNED   0
-#define EUR_CR_CORE_REVISION_MAJOR_MASK     0x00FF0000U
-#define EUR_CR_CORE_REVISION_MAJOR_SHIFT    16
-#define EUR_CR_CORE_REVISION_MAJOR_SIGNED   0
-#define EUR_CR_CORE_REVISION_DESIGNER_MASK  0xFF000000U
-#define EUR_CR_CORE_REVISION_DESIGNER_SHIFT 24
-#define EUR_CR_CORE_REVISION_DESIGNER_SIGNED 0
-#define EUR_CR_DESIGNER_REV_FIELD1          0x0028
-#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_MASK 0xFFFFFFFFU
-#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_SHIFT 0
-#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_SIGNED 0
-#define EUR_CR_DESIGNER_REV_FIELD2          0x002C
-#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_MASK 0xFFFFFFFFU
-#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_SHIFT 0
-#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_SIGNED 0
-#define EUR_CR_SOFT_RESET                   0x0080
-#define EUR_CR_SOFT_RESET_BIF_RESET_MASK    0x00000001U
-#define EUR_CR_SOFT_RESET_BIF_RESET_SHIFT   0
-#define EUR_CR_SOFT_RESET_BIF_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_VDM_RESET_MASK    0x00000002U
-#define EUR_CR_SOFT_RESET_VDM_RESET_SHIFT   1
-#define EUR_CR_SOFT_RESET_VDM_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_DPM_RESET_MASK    0x00000004U
-#define EUR_CR_SOFT_RESET_DPM_RESET_SHIFT   2
-#define EUR_CR_SOFT_RESET_DPM_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_TE_RESET_MASK     0x00000008U
-#define EUR_CR_SOFT_RESET_TE_RESET_SHIFT    3
-#define EUR_CR_SOFT_RESET_TE_RESET_SIGNED   0
-#define EUR_CR_SOFT_RESET_MTE_RESET_MASK    0x00000010U
-#define EUR_CR_SOFT_RESET_MTE_RESET_SHIFT   4
-#define EUR_CR_SOFT_RESET_MTE_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_ISP_RESET_MASK    0x00000020U
-#define EUR_CR_SOFT_RESET_ISP_RESET_SHIFT   5
-#define EUR_CR_SOFT_RESET_ISP_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_ISP2_RESET_MASK   0x00000040U
-#define EUR_CR_SOFT_RESET_ISP2_RESET_SHIFT  6
-#define EUR_CR_SOFT_RESET_ISP2_RESET_SIGNED 0
-#define EUR_CR_SOFT_RESET_TSP_RESET_MASK    0x00000080U
-#define EUR_CR_SOFT_RESET_TSP_RESET_SHIFT   7
-#define EUR_CR_SOFT_RESET_TSP_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_PDS_RESET_MASK    0x00000100U
-#define EUR_CR_SOFT_RESET_PDS_RESET_SHIFT   8
-#define EUR_CR_SOFT_RESET_PDS_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_PBE_RESET_MASK    0x00000200U
-#define EUR_CR_SOFT_RESET_PBE_RESET_SHIFT   9
-#define EUR_CR_SOFT_RESET_PBE_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_TCU_L2_RESET_MASK 0x00000400U
-#define EUR_CR_SOFT_RESET_TCU_L2_RESET_SHIFT 10
-#define EUR_CR_SOFT_RESET_TCU_L2_RESET_SIGNED 0
-#define EUR_CR_SOFT_RESET_UCACHEL2_RESET_MASK 0x00000800U
-#define EUR_CR_SOFT_RESET_UCACHEL2_RESET_SHIFT 11
-#define EUR_CR_SOFT_RESET_UCACHEL2_RESET_SIGNED 0
-#define EUR_CR_SOFT_RESET_ITR_RESET_MASK    0x00002000U
-#define EUR_CR_SOFT_RESET_ITR_RESET_SHIFT   13
-#define EUR_CR_SOFT_RESET_ITR_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_TEX_RESET_MASK    0x00004000U
-#define EUR_CR_SOFT_RESET_TEX_RESET_SHIFT   14
-#define EUR_CR_SOFT_RESET_TEX_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_USE_RESET_MASK    0x00008000U
-#define EUR_CR_SOFT_RESET_USE_RESET_SHIFT   15
-#define EUR_CR_SOFT_RESET_USE_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_IDXFIFO_RESET_MASK 0x00010000U
-#define EUR_CR_SOFT_RESET_IDXFIFO_RESET_SHIFT 16
-#define EUR_CR_SOFT_RESET_IDXFIFO_RESET_SIGNED 0
-#define EUR_CR_SOFT_RESET_TA_RESET_MASK     0x00020000U
-#define EUR_CR_SOFT_RESET_TA_RESET_SHIFT    17
-#define EUR_CR_SOFT_RESET_TA_RESET_SIGNED   0
-#define EUR_CR_SOFT_RESET_DCU_L2_RESET_MASK 0x00040000U
-#define EUR_CR_SOFT_RESET_DCU_L2_RESET_SHIFT 18
-#define EUR_CR_SOFT_RESET_DCU_L2_RESET_SIGNED 0
-#define EUR_CR_SOFT_RESET_DCU_L0L1_RESET_MASK 0x00080000U
-#define EUR_CR_SOFT_RESET_DCU_L0L1_RESET_SHIFT 19
-#define EUR_CR_SOFT_RESET_DCU_L0L1_RESET_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2           0x0110
-#define EUR_CR_EVENT_HOST_ENABLE2_DATA_BREAKPOINT_UNTRAPPED_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_ENABLE2_DATA_BREAKPOINT_UNTRAPPED_SHIFT 11
-#define EUR_CR_EVENT_HOST_ENABLE2_DATA_BREAKPOINT_UNTRAPPED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DATA_BREAKPOINT_TRAPPED_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_ENABLE2_DATA_BREAKPOINT_TRAPPED_SHIFT 10
-#define EUR_CR_EVENT_HOST_ENABLE2_DATA_BREAKPOINT_TRAPPED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_CONTEXT_DRAINED_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_CONTEXT_DRAINED_SHIFT 9
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_CONTEXT_DRAINED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_ISP2_ZLS_CSW_FINISHED_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_ENABLE2_ISP2_ZLS_CSW_FINISHED_SHIFT 8
-#define EUR_CR_EVENT_HOST_ENABLE2_ISP2_ZLS_CSW_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DCU_INVALCOMPLETE_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_ENABLE2_DCU_INVALCOMPLETE_SHIFT 7
-#define EUR_CR_EVENT_HOST_ENABLE2_DCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_STATE_FLUSHED_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_STATE_FLUSHED_SHIFT 6
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_STATE_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_TE_RGNHDR_INIT_COMPLETE_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_ENABLE2_TE_RGNHDR_INIT_COMPLETE_SHIFT 5
-#define EUR_CR_EVENT_HOST_ENABLE2_TE_RGNHDR_INIT_COMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_SHIFT 4
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_SHIFT 3
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_SHIFT 2
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2            0x0114
-#define EUR_CR_EVENT_HOST_CLEAR2_DATA_BREAKPOINT_UNTRAPPED_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_CLEAR2_DATA_BREAKPOINT_UNTRAPPED_SHIFT 11
-#define EUR_CR_EVENT_HOST_CLEAR2_DATA_BREAKPOINT_UNTRAPPED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DATA_BREAKPOINT_TRAPPED_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_CLEAR2_DATA_BREAKPOINT_TRAPPED_SHIFT 10
-#define EUR_CR_EVENT_HOST_CLEAR2_DATA_BREAKPOINT_TRAPPED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_CONTEXT_DRAINED_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_CONTEXT_DRAINED_SHIFT 9
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_CONTEXT_DRAINED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_ISP2_ZLS_CSW_FINISHED_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_CLEAR2_ISP2_ZLS_CSW_FINISHED_SHIFT 8
-#define EUR_CR_EVENT_HOST_CLEAR2_ISP2_ZLS_CSW_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DCU_INVALCOMPLETE_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_CLEAR2_DCU_INVALCOMPLETE_SHIFT 7
-#define EUR_CR_EVENT_HOST_CLEAR2_DCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_STATE_FLUSHED_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_STATE_FLUSHED_SHIFT 6
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_STATE_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_TE_RGNHDR_INIT_COMPLETE_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_CLEAR2_TE_RGNHDR_INIT_COMPLETE_SHIFT 5
-#define EUR_CR_EVENT_HOST_CLEAR2_TE_RGNHDR_INIT_COMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_SHIFT 4
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_SHIFT 3
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_SHIFT 2
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS2                0x0118
-#define EUR_CR_EVENT_STATUS2_DATA_BREAKPOINT_UNTRAPPED_MASK 0x00000800U
-#define EUR_CR_EVENT_STATUS2_DATA_BREAKPOINT_UNTRAPPED_SHIFT 11
-#define EUR_CR_EVENT_STATUS2_DATA_BREAKPOINT_UNTRAPPED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_DATA_BREAKPOINT_TRAPPED_MASK 0x00000400U
-#define EUR_CR_EVENT_STATUS2_DATA_BREAKPOINT_TRAPPED_SHIFT 10
-#define EUR_CR_EVENT_STATUS2_DATA_BREAKPOINT_TRAPPED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_MTE_CONTEXT_DRAINED_MASK 0x00000200U
-#define EUR_CR_EVENT_STATUS2_MTE_CONTEXT_DRAINED_SHIFT 9
-#define EUR_CR_EVENT_STATUS2_MTE_CONTEXT_DRAINED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_ISP2_ZLS_CSW_FINISHED_MASK 0x00000100U
-#define EUR_CR_EVENT_STATUS2_ISP2_ZLS_CSW_FINISHED_SHIFT 8
-#define EUR_CR_EVENT_STATUS2_ISP2_ZLS_CSW_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_DCU_INVALCOMPLETE_MASK 0x00000080U
-#define EUR_CR_EVENT_STATUS2_DCU_INVALCOMPLETE_SHIFT 7
-#define EUR_CR_EVENT_STATUS2_DCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_MTE_STATE_FLUSHED_MASK 0x00000040U
-#define EUR_CR_EVENT_STATUS2_MTE_STATE_FLUSHED_SHIFT 6
-#define EUR_CR_EVENT_STATUS2_MTE_STATE_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_TE_RGNHDR_INIT_COMPLETE_MASK 0x00000020U
-#define EUR_CR_EVENT_STATUS2_TE_RGNHDR_INIT_COMPLETE_SHIFT 5
-#define EUR_CR_EVENT_STATUS2_TE_RGNHDR_INIT_COMPLETE_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_TRIG_TA_MASK   0x00000010U
-#define EUR_CR_EVENT_STATUS2_TRIG_TA_SHIFT  4
-#define EUR_CR_EVENT_STATUS2_TRIG_TA_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_TRIG_3D_MASK   0x00000008U
-#define EUR_CR_EVENT_STATUS2_TRIG_3D_SHIFT  3
-#define EUR_CR_EVENT_STATUS2_TRIG_3D_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_TRIG_DL_MASK   0x00000004U
-#define EUR_CR_EVENT_STATUS2_TRIG_DL_SHIFT  2
-#define EUR_CR_EVENT_STATUS2_TRIG_DL_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS                 0x012C
-#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TIMER_MASK      0x20000000U
-#define EUR_CR_EVENT_STATUS_TIMER_SHIFT     29
-#define EUR_CR_EVENT_STATUS_TIMER_SIGNED    0
-#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TCU_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_STATUS_TCU_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_STATUS_TCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_STATUS_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_STATUS_ISP_END_TILE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_STATUS_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_STATUS_DPM_INITEND_SIGNED 0
-#define EUR_CR_EVENT_STATUS_OTPM_LOADED_MASK 0x00200000U
-#define EUR_CR_EVENT_STATUS_OTPM_LOADED_SHIFT 21
-#define EUR_CR_EVENT_STATUS_OTPM_LOADED_SIGNED 0
-#define EUR_CR_EVENT_STATUS_OTPM_INV_MASK   0x00100000U
-#define EUR_CR_EVENT_STATUS_OTPM_INV_SHIFT  20
-#define EUR_CR_EVENT_STATUS_OTPM_INV_SIGNED 0
-#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_SIGNED 0
-#define EUR_CR_EVENT_STATUS_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_STATUS_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_STATUS_BREAKPOINT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_SW_EVENT_MASK   0x00004000U
-#define EUR_CR_EVENT_STATUS_SW_EVENT_SHIFT  14
-#define EUR_CR_EVENT_STATUS_SW_EVENT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_STATUS_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_STATUS_TA_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_STATUS_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_STATUS_TA_TERMINATE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TPC_CLEAR_MASK  0x00000800U
-#define EUR_CR_EVENT_STATUS_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_STATUS_TPC_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TPC_FLUSH_MASK  0x00000400U
-#define EUR_CR_EVENT_STATUS_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_STATUS_TPC_FLUSH_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE            0x0130
-#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TIMER_MASK 0x20000000U
-#define EUR_CR_EVENT_HOST_ENABLE_TIMER_SHIFT 29
-#define EUR_CR_EVENT_HOST_ENABLE_TIMER_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TCU_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_HOST_ENABLE_TCU_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_HOST_ENABLE_TCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_LOADED_MASK 0x00200000U
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_LOADED_SHIFT 21
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_LOADED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_MASK 0x00100000U
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_SHIFT 20
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_MASK 0x00004000U
-#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_SHIFT 14
-#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR             0x0134
-#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TIMER_MASK  0x20000000U
-#define EUR_CR_EVENT_HOST_CLEAR_TIMER_SHIFT 29
-#define EUR_CR_EVENT_HOST_CLEAR_TIMER_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TCU_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_HOST_CLEAR_TCU_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_HOST_CLEAR_TCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_LOADED_MASK 0x00200000U
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_LOADED_SHIFT 21
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_LOADED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_MASK 0x00100000U
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_SHIFT 20
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_MASK 0x00004000U
-#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_SHIFT 14
-#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_SIGNED 0
-#define EUR_CR_TIMER                        0x0144
-#define EUR_CR_TIMER_VALUE_MASK             0xFFFFFFFFU
-#define EUR_CR_TIMER_VALUE_SHIFT            0
-#define EUR_CR_TIMER_VALUE_SIGNED           0
-#define EUR_CR_EVENT_KICK1                  0x0AB0
-#define EUR_CR_EVENT_KICK1_NOW_MASK         0x000000FFU
-#define EUR_CR_EVENT_KICK1_NOW_SHIFT        0
-#define EUR_CR_EVENT_KICK1_NOW_SIGNED       0
-#define EUR_CR_EVENT_KICK2                  0x0AC0
-#define EUR_CR_EVENT_KICK2_NOW_MASK         0x00000001U
-#define EUR_CR_EVENT_KICK2_NOW_SHIFT        0
-#define EUR_CR_EVENT_KICK2_NOW_SIGNED       0
-#define EUR_CR_EVENT_KICKER                 0x0AC4
-#define EUR_CR_EVENT_KICKER_ADDRESS_MASK    0xFFFFFFF0U
-#define EUR_CR_EVENT_KICKER_ADDRESS_SHIFT   4
-#define EUR_CR_EVENT_KICKER_ADDRESS_SIGNED  0
-#define EUR_CR_EVENT_KICK                   0x0AC8
-#define EUR_CR_EVENT_KICK_NOW_MASK          0x00000001U
-#define EUR_CR_EVENT_KICK_NOW_SHIFT         0
-#define EUR_CR_EVENT_KICK_NOW_SIGNED        0
-#define EUR_CR_EVENT_TIMER                  0x0ACC
-#define EUR_CR_EVENT_TIMER_ENABLE_MASK      0x01000000U
-#define EUR_CR_EVENT_TIMER_ENABLE_SHIFT     24
-#define EUR_CR_EVENT_TIMER_ENABLE_SIGNED    0
-#define EUR_CR_EVENT_TIMER_VALUE_MASK       0x00FFFFFFU
-#define EUR_CR_EVENT_TIMER_VALUE_SHIFT      0
-#define EUR_CR_EVENT_TIMER_VALUE_SIGNED     0
-#define EUR_CR_PDS_INV0                     0x0AD0
-#define EUR_CR_PDS_INV0_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV0_DSC_SHIFT           0
-#define EUR_CR_PDS_INV0_DSC_SIGNED          0
-#define EUR_CR_PDS_INV1                     0x0AD4
-#define EUR_CR_PDS_INV1_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV1_DSC_SHIFT           0
-#define EUR_CR_PDS_INV1_DSC_SIGNED          0
-#define EUR_CR_EVENT_KICK3                  0x0AD8
-#define EUR_CR_EVENT_KICK3_NOW_MASK         0x00000001U
-#define EUR_CR_EVENT_KICK3_NOW_SHIFT        0
-#define EUR_CR_EVENT_KICK3_NOW_SIGNED       0
-#define EUR_CR_PDS_INV3                     0x0ADC
-#define EUR_CR_PDS_INV3_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV3_DSC_SHIFT           0
-#define EUR_CR_PDS_INV3_DSC_SIGNED          0
-#define EUR_CR_PDS_INV_CSC                  0x0AE0
-#define EUR_CR_PDS_INV_CSC_KICK_MASK        0x00000001U
-#define EUR_CR_PDS_INV_CSC_KICK_SHIFT       0
-#define EUR_CR_PDS_INV_CSC_KICK_SIGNED      0
-#define EUR_CR_BIF_CTRL                     0x0C00
-#define EUR_CR_BIF_CTRL_NOREORDER_MASK      0x00000001U
-#define EUR_CR_BIF_CTRL_NOREORDER_SHIFT     0
-#define EUR_CR_BIF_CTRL_NOREORDER_SIGNED    0
-#define EUR_CR_BIF_CTRL_PAUSE_MASK          0x00000002U
-#define EUR_CR_BIF_CTRL_PAUSE_SHIFT         1
-#define EUR_CR_BIF_CTRL_PAUSE_SIGNED        0
-#define EUR_CR_BIF_CTRL_CLEAR_FAULT_MASK    0x00000010U
-#define EUR_CR_BIF_CTRL_CLEAR_FAULT_SHIFT   4
-#define EUR_CR_BIF_CTRL_CLEAR_FAULT_SIGNED  0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_MASK 0x00000200U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_SHIFT 9
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TA_MASK  0x00000400U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TA_SHIFT 10
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TA_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_MASK 0x00001000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_SHIFT 12
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_MASK 0x00002000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_SHIFT 13
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_MASK 0x00004000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_SHIFT 14
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_MASK 0x00008000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_SHIFT 15
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PTLA_MASK 0x00010000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PTLA_SHIFT 16
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PTLA_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_VDM_MASK 0x00020000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_VDM_SHIFT 17
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_VDM_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_IPF_MASK 0x00040000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_IPF_SHIFT 18
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_IPF_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_DPM_MASK 0x00080000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_DPM_SHIFT 19
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_DPM_SIGNED 0
-#define EUR_CR_BIF_INT_STAT                 0x0C04
-#define EUR_CR_BIF_INT_STAT_FAULT_REQ_MASK  0x00003FFFU
-#define EUR_CR_BIF_INT_STAT_FAULT_REQ_SHIFT 0
-#define EUR_CR_BIF_INT_STAT_FAULT_REQ_SIGNED 0
-#define EUR_CR_BIF_INT_STAT_FAULT_TYPE_MASK 0x00070000U
-#define EUR_CR_BIF_INT_STAT_FAULT_TYPE_SHIFT 16
-#define EUR_CR_BIF_INT_STAT_FAULT_TYPE_SIGNED 0
-#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_MASK 0x00080000U
-#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_SHIFT 19
-#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_SIGNED 0
-#define EUR_CR_BIF_FAULT                    0x0C08
-#define EUR_CR_BIF_FAULT_CID_MASK           0x0000000FU
-#define EUR_CR_BIF_FAULT_CID_SHIFT          0
-#define EUR_CR_BIF_FAULT_CID_SIGNED         0
-#define EUR_CR_BIF_FAULT_SB_MASK            0x000001F0U
-#define EUR_CR_BIF_FAULT_SB_SHIFT           4
-#define EUR_CR_BIF_FAULT_SB_SIGNED          0
-#define EUR_CR_BIF_FAULT_ADDR_MASK          0xFFFFF000U
-#define EUR_CR_BIF_FAULT_ADDR_SHIFT         12
-#define EUR_CR_BIF_FAULT_ADDR_SIGNED        0
-#define EUR_CR_BIF_TILE0                    0x0C0C
-#define EUR_CR_BIF_TILE0_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE0_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE0_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE0_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE0_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE0_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE0_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE0_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE0_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE1                    0x0C10
-#define EUR_CR_BIF_TILE1_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE1_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE1_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE1_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE1_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE1_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE1_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE1_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE1_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE2                    0x0C14
-#define EUR_CR_BIF_TILE2_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE2_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE2_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE2_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE2_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE2_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE2_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE2_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE2_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE3                    0x0C18
-#define EUR_CR_BIF_TILE3_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE3_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE3_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE3_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE3_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE3_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE3_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE3_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE3_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE4                    0x0C1C
-#define EUR_CR_BIF_TILE4_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE4_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE4_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE4_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE4_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE4_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE4_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE4_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE4_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE5                    0x0C20
-#define EUR_CR_BIF_TILE5_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE5_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE5_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE5_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE5_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE5_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE5_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE5_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE5_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE6                    0x0C24
-#define EUR_CR_BIF_TILE6_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE6_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE6_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE6_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE6_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE6_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE6_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE6_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE6_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE7                    0x0C28
-#define EUR_CR_BIF_TILE7_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE7_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE7_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE7_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE7_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE7_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE7_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE7_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE7_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE8                    0x0C2C
-#define EUR_CR_BIF_TILE8_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE8_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE8_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE8_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE8_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE8_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE8_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE8_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE8_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE9                    0x0C30
-#define EUR_CR_BIF_TILE9_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE9_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE9_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE9_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE9_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE9_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE9_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE9_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE9_CFG_SIGNED         0
-#define EUR_CR_BIF_CTRL_INVAL               0x0C34
-#define EUR_CR_BIF_CTRL_INVAL_PTE_MASK      0x00000004U
-#define EUR_CR_BIF_CTRL_INVAL_PTE_SHIFT     2
-#define EUR_CR_BIF_CTRL_INVAL_PTE_SIGNED    0
-#define EUR_CR_BIF_CTRL_INVAL_ALL_MASK      0x00000008U
-#define EUR_CR_BIF_CTRL_INVAL_ALL_SHIFT     3
-#define EUR_CR_BIF_CTRL_INVAL_ALL_SIGNED    0
-#define EUR_CR_BIF_DIR_LIST_BASE1           0x0C38
-#define EUR_CR_BIF_DIR_LIST_BASE1_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE1_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE1_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE2           0x0C3C
-#define EUR_CR_BIF_DIR_LIST_BASE2_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE2_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE2_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE3           0x0C40
-#define EUR_CR_BIF_DIR_LIST_BASE3_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE3_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE3_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE4           0x0C44
-#define EUR_CR_BIF_DIR_LIST_BASE4_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE4_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE4_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE5           0x0C48
-#define EUR_CR_BIF_DIR_LIST_BASE5_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE5_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE5_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE6           0x0C4C
-#define EUR_CR_BIF_DIR_LIST_BASE6_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE6_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE6_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE7           0x0C50
-#define EUR_CR_BIF_DIR_LIST_BASE7_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE7_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE7_ADDR_SIGNED 0
-#define EUR_CR_BIF_BANK_SET                 0x0C74
-#define EUR_CR_BIF_BANK_SET_SELECT_2D_MASK  0x00000001U
-#define EUR_CR_BIF_BANK_SET_SELECT_2D_SHIFT 0
-#define EUR_CR_BIF_BANK_SET_SELECT_2D_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_3D_MASK  0x0000000CU
-#define EUR_CR_BIF_BANK_SET_SELECT_3D_SHIFT 2
-#define EUR_CR_BIF_BANK_SET_SELECT_3D_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_HOST_MASK 0x00000010U
-#define EUR_CR_BIF_BANK_SET_SELECT_HOST_SHIFT 4
-#define EUR_CR_BIF_BANK_SET_SELECT_HOST_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_TA_MASK  0x000000C0U
-#define EUR_CR_BIF_BANK_SET_SELECT_TA_SHIFT 6
-#define EUR_CR_BIF_BANK_SET_SELECT_TA_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_EDM_MASK 0x00000100U
-#define EUR_CR_BIF_BANK_SET_SELECT_EDM_SHIFT 8
-#define EUR_CR_BIF_BANK_SET_SELECT_EDM_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_DPM_LSS_MASK 0x00000200U
-#define EUR_CR_BIF_BANK_SET_SELECT_DPM_LSS_SHIFT 9
-#define EUR_CR_BIF_BANK_SET_SELECT_DPM_LSS_SIGNED 0
-#define EUR_CR_BIF_BANK0                    0x0C78
-#define EUR_CR_BIF_BANK0_INDEX_EDM_MASK     0x0000000FU
-#define EUR_CR_BIF_BANK0_INDEX_EDM_SHIFT    0
-#define EUR_CR_BIF_BANK0_INDEX_EDM_SIGNED   0
-#define EUR_CR_BIF_BANK0_INDEX_TA_MASK      0x000000F0U
-#define EUR_CR_BIF_BANK0_INDEX_TA_SHIFT     4
-#define EUR_CR_BIF_BANK0_INDEX_TA_SIGNED    0
-#define EUR_CR_BIF_BANK0_INDEX_3D_MASK      0x0000F000U
-#define EUR_CR_BIF_BANK0_INDEX_3D_SHIFT     12
-#define EUR_CR_BIF_BANK0_INDEX_3D_SIGNED    0
-#define EUR_CR_BIF_BANK0_INDEX_PTLA_MASK    0x000F0000U
-#define EUR_CR_BIF_BANK0_INDEX_PTLA_SHIFT   16
-#define EUR_CR_BIF_BANK0_INDEX_PTLA_SIGNED  0
-#define EUR_CR_BIF_BANK1                    0x0C7C
-#define EUR_CR_BIF_BANK1_INDEX_EDM_MASK     0x0000000FU
-#define EUR_CR_BIF_BANK1_INDEX_EDM_SHIFT    0
-#define EUR_CR_BIF_BANK1_INDEX_EDM_SIGNED   0
-#define EUR_CR_BIF_BANK1_INDEX_TA_MASK      0x000000F0U
-#define EUR_CR_BIF_BANK1_INDEX_TA_SHIFT     4
-#define EUR_CR_BIF_BANK1_INDEX_TA_SIGNED    0
-#define EUR_CR_BIF_BANK1_INDEX_3D_MASK      0x0000F000U
-#define EUR_CR_BIF_BANK1_INDEX_3D_SHIFT     12
-#define EUR_CR_BIF_BANK1_INDEX_3D_SIGNED    0
-#define EUR_CR_BIF_DIR_LIST_BASE0           0x0C84
-#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_SIGNED 0
-#define EUR_CR_BIF_TA_REQ_BASE              0x0C90
-#define EUR_CR_BIF_TA_REQ_BASE_ADDR_MASK    0xFFF00000U
-#define EUR_CR_BIF_TA_REQ_BASE_ADDR_SHIFT   20
-#define EUR_CR_BIF_TA_REQ_BASE_ADDR_SIGNED  0
-#define EUR_CR_BIF_MEM_REQ_STAT             0x0CA8
-#define EUR_CR_BIF_MEM_REQ_STAT_READS_MASK  0x000000FFU
-#define EUR_CR_BIF_MEM_REQ_STAT_READS_SHIFT 0
-#define EUR_CR_BIF_MEM_REQ_STAT_READS_SIGNED 0
-#define EUR_CR_BIF_3D_REQ_BASE              0x0CAC
-#define EUR_CR_BIF_3D_REQ_BASE_ADDR_MASK    0xFFF00000U
-#define EUR_CR_BIF_3D_REQ_BASE_ADDR_SHIFT   20
-#define EUR_CR_BIF_3D_REQ_BASE_ADDR_SIGNED  0
-#define EUR_CR_BIF_ZLS_REQ_BASE             0x0CB0
-#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_MASK   0xFFF00000U
-#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_SHIFT  20
-#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_SIGNED 0
-#define EUR_CR_BIF_BANK_STATUS              0x0CB4
-#define EUR_CR_BIF_BANK_STATUS_3D_CURRENT_BANK_MASK 0x00000001U
-#define EUR_CR_BIF_BANK_STATUS_3D_CURRENT_BANK_SHIFT 0
-#define EUR_CR_BIF_BANK_STATUS_3D_CURRENT_BANK_SIGNED 0
-#define EUR_CR_BIF_BANK_STATUS_TA_CURRENT_BANK_MASK 0x00000002U
-#define EUR_CR_BIF_BANK_STATUS_TA_CURRENT_BANK_SHIFT 1
-#define EUR_CR_BIF_BANK_STATUS_TA_CURRENT_BANK_SIGNED 0
-#define EUR_CR_BIF_MMU_CTRL                 0x0CD0
-#define EUR_CR_BIF_MMU_CTRL_PREFETCHING_ON_MASK 0x00000001U
-#define EUR_CR_BIF_MMU_CTRL_PREFETCHING_ON_SHIFT 0
-#define EUR_CR_BIF_MMU_CTRL_PREFETCHING_ON_SIGNED 0
-#define EUR_CR_BIF_MMU_CTRL_ADDR_HASH_MODE_MASK 0x00000006U
-#define EUR_CR_BIF_MMU_CTRL_ADDR_HASH_MODE_SHIFT 1
-#define EUR_CR_BIF_MMU_CTRL_ADDR_HASH_MODE_SIGNED 0
-#define EUR_CR_BIF_MMU_CTRL_ENABLE_WRITE_BURST_COLLATE_MASK 0x00000008U
-#define EUR_CR_BIF_MMU_CTRL_ENABLE_WRITE_BURST_COLLATE_SHIFT 3
-#define EUR_CR_BIF_MMU_CTRL_ENABLE_WRITE_BURST_COLLATE_SIGNED 0
-#define EUR_CR_BIF_MMU_CTRL_ENABLE_DC_TLB_MASK 0x00000010U
-#define EUR_CR_BIF_MMU_CTRL_ENABLE_DC_TLB_SHIFT 4
-#define EUR_CR_BIF_MMU_CTRL_ENABLE_DC_TLB_SIGNED 0
-#define EUR_CR_2D_BLIT_STATUS               0x0E04
-#define EUR_CR_2D_BLIT_STATUS_COMPLETE_MASK 0x00FFFFFFU
-#define EUR_CR_2D_BLIT_STATUS_COMPLETE_SHIFT 0
-#define EUR_CR_2D_BLIT_STATUS_COMPLETE_SIGNED 0
-#define EUR_CR_2D_BLIT_STATUS_BUSY_MASK     0x01000000U
-#define EUR_CR_2D_BLIT_STATUS_BUSY_SHIFT    24
-#define EUR_CR_2D_BLIT_STATUS_BUSY_SIGNED   0
-#define EUR_CR_2D_VIRTUAL_FIFO_0            0x0E10
-#define EUR_CR_2D_VIRTUAL_FIFO_0_ENABLE_MASK 0x00000001U
-#define EUR_CR_2D_VIRTUAL_FIFO_0_ENABLE_SHIFT 0
-#define EUR_CR_2D_VIRTUAL_FIFO_0_ENABLE_SIGNED 0
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MASK 0x0000000EU
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_SHIFT 1
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_SIGNED 0
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_DIV_MASK 0x00000FF0U
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_DIV_SHIFT 4
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_DIV_SIGNED 0
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MUL_MASK 0x0000F000U
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MUL_SHIFT 12
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MUL_SIGNED 0
-#define EUR_CR_2D_VIRTUAL_FIFO_1            0x0E14
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_ACC_MASK 0x00000FFFU
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_ACC_SHIFT 0
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_ACC_SIGNED 0
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MAX_ACC_MASK 0x00FFF000U
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MAX_ACC_SHIFT 12
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MAX_ACC_SIGNED 0
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_METRIC_MASK 0xFF000000U
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_METRIC_SHIFT 24
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_METRIC_SIGNED 0
-#define EUR_CR_BREAKPOINT0_START            0x0F44
-#define EUR_CR_BREAKPOINT0_START_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT0_START_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT0_START_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT0_END              0x0F48
-#define EUR_CR_BREAKPOINT0_END_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT0_END_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT0_END_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT0                  0x0F4C
-#define EUR_CR_BREAKPOINT0_MASK_DM_MASK     0x00000038U
-#define EUR_CR_BREAKPOINT0_MASK_DM_SHIFT    3
-#define EUR_CR_BREAKPOINT0_MASK_DM_SIGNED   0
-#define EUR_CR_BREAKPOINT0_CTRL_TRAPENABLE_MASK 0x00000004U
-#define EUR_CR_BREAKPOINT0_CTRL_TRAPENABLE_SHIFT 2
-#define EUR_CR_BREAKPOINT0_CTRL_TRAPENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT0_CTRL_WENABLE_MASK 0x00000002U
-#define EUR_CR_BREAKPOINT0_CTRL_WENABLE_SHIFT 1
-#define EUR_CR_BREAKPOINT0_CTRL_WENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT0_CTRL_RENABLE_MASK 0x00000001U
-#define EUR_CR_BREAKPOINT0_CTRL_RENABLE_SHIFT 0
-#define EUR_CR_BREAKPOINT0_CTRL_RENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT1_START            0x0F50
-#define EUR_CR_BREAKPOINT1_START_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT1_START_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT1_START_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT1_END              0x0F54
-#define EUR_CR_BREAKPOINT1_END_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT1_END_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT1_END_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT1                  0x0F58
-#define EUR_CR_BREAKPOINT1_MASK_DM_MASK     0x00000038U
-#define EUR_CR_BREAKPOINT1_MASK_DM_SHIFT    3
-#define EUR_CR_BREAKPOINT1_MASK_DM_SIGNED   0
-#define EUR_CR_BREAKPOINT1_CTRL_TRAPENABLE_MASK 0x00000004U
-#define EUR_CR_BREAKPOINT1_CTRL_TRAPENABLE_SHIFT 2
-#define EUR_CR_BREAKPOINT1_CTRL_TRAPENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT1_CTRL_WENABLE_MASK 0x00000002U
-#define EUR_CR_BREAKPOINT1_CTRL_WENABLE_SHIFT 1
-#define EUR_CR_BREAKPOINT1_CTRL_WENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT1_CTRL_RENABLE_MASK 0x00000001U
-#define EUR_CR_BREAKPOINT1_CTRL_RENABLE_SHIFT 0
-#define EUR_CR_BREAKPOINT1_CTRL_RENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT2_START            0x0F5C
-#define EUR_CR_BREAKPOINT2_START_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT2_START_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT2_START_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT2_END              0x0F60
-#define EUR_CR_BREAKPOINT2_END_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT2_END_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT2_END_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT2                  0x0F64
-#define EUR_CR_BREAKPOINT2_MASK_DM_MASK     0x00000038U
-#define EUR_CR_BREAKPOINT2_MASK_DM_SHIFT    3
-#define EUR_CR_BREAKPOINT2_MASK_DM_SIGNED   0
-#define EUR_CR_BREAKPOINT2_CTRL_TRAPENABLE_MASK 0x00000004U
-#define EUR_CR_BREAKPOINT2_CTRL_TRAPENABLE_SHIFT 2
-#define EUR_CR_BREAKPOINT2_CTRL_TRAPENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT2_CTRL_WENABLE_MASK 0x00000002U
-#define EUR_CR_BREAKPOINT2_CTRL_WENABLE_SHIFT 1
-#define EUR_CR_BREAKPOINT2_CTRL_WENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT2_CTRL_RENABLE_MASK 0x00000001U
-#define EUR_CR_BREAKPOINT2_CTRL_RENABLE_SHIFT 0
-#define EUR_CR_BREAKPOINT2_CTRL_RENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT3_START            0x0F68
-#define EUR_CR_BREAKPOINT3_START_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT3_START_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT3_START_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT3_END              0x0F6C
-#define EUR_CR_BREAKPOINT3_END_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT3_END_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT3_END_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT3                  0x0F70
-#define EUR_CR_BREAKPOINT3_MASK_DM_MASK     0x00000038U
-#define EUR_CR_BREAKPOINT3_MASK_DM_SHIFT    3
-#define EUR_CR_BREAKPOINT3_MASK_DM_SIGNED   0
-#define EUR_CR_BREAKPOINT3_CTRL_TRAPENABLE_MASK 0x00000004U
-#define EUR_CR_BREAKPOINT3_CTRL_TRAPENABLE_SHIFT 2
-#define EUR_CR_BREAKPOINT3_CTRL_TRAPENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT3_CTRL_WENABLE_MASK 0x00000002U
-#define EUR_CR_BREAKPOINT3_CTRL_WENABLE_SHIFT 1
-#define EUR_CR_BREAKPOINT3_CTRL_WENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT3_CTRL_RENABLE_MASK 0x00000001U
-#define EUR_CR_BREAKPOINT3_CTRL_RENABLE_SHIFT 0
-#define EUR_CR_BREAKPOINT3_CTRL_RENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT_READ              0x0F74
-#define EUR_CR_BREAKPOINT_READ_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT_READ_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT_READ_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT_TRAP              0x0F78
-#define EUR_CR_BREAKPOINT_TRAP_CONTINUE_MASK 0x00000002U
-#define EUR_CR_BREAKPOINT_TRAP_CONTINUE_SHIFT 1
-#define EUR_CR_BREAKPOINT_TRAP_CONTINUE_SIGNED 0
-#define EUR_CR_BREAKPOINT_TRAP_WRNOTIFY_MASK 0x00000001U
-#define EUR_CR_BREAKPOINT_TRAP_WRNOTIFY_SHIFT 0
-#define EUR_CR_BREAKPOINT_TRAP_WRNOTIFY_SIGNED 0
-#define EUR_CR_BREAKPOINT                   0x0F7C
-#define EUR_CR_BREAKPOINT_MODULE_ID_MASK    0x000003C0U
-#define EUR_CR_BREAKPOINT_MODULE_ID_SHIFT   6
-#define EUR_CR_BREAKPOINT_MODULE_ID_SIGNED  0
-#define EUR_CR_BREAKPOINT_ID_MASK           0x00000030U
-#define EUR_CR_BREAKPOINT_ID_SHIFT          4
-#define EUR_CR_BREAKPOINT_ID_SIGNED         0
-#define EUR_CR_BREAKPOINT_UNTRAPPED_MASK    0x00000008U
-#define EUR_CR_BREAKPOINT_UNTRAPPED_SHIFT   3
-#define EUR_CR_BREAKPOINT_UNTRAPPED_SIGNED  0
-#define EUR_CR_BREAKPOINT_TRAPPED_MASK      0x00000004U
-#define EUR_CR_BREAKPOINT_TRAPPED_SHIFT     2
-#define EUR_CR_BREAKPOINT_TRAPPED_SIGNED    0
-#define EUR_CR_BREAKPOINT_TRAP_INFO0        0x0F80
-#define EUR_CR_BREAKPOINT_TRAP_INFO0_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT_TRAP_INFO0_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT_TRAP_INFO0_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT_TRAP_INFO1        0x0F84
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_SIZE_MASK 0x00007C00U
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_SIZE_SHIFT 10
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_SIZE_SIGNED 0
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_NUMBER_MASK 0x00000300U
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_NUMBER_SHIFT 8
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_NUMBER_SIGNED 0
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_TAG_MASK 0x000000F8U
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_TAG_SHIFT 3
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_TAG_SIGNED 0
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_DATA_MASTER_MASK 0x00000006U
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_DATA_MASTER_SHIFT 1
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_DATA_MASTER_SIGNED 0
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_RNW_MASK 0x00000001U
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_RNW_SHIFT 0
-#define EUR_CR_BREAKPOINT_TRAP_INFO1_RNW_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_0              0x0A0C
-#define EUR_CR_USE_CODE_BASE_ADDR_00_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_00_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_00_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_00_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_00_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_00_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_1              0x0A10
-#define EUR_CR_USE_CODE_BASE_ADDR_01_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_01_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_01_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_01_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_01_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_01_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_2              0x0A14
-#define EUR_CR_USE_CODE_BASE_ADDR_02_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_02_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_02_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_02_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_02_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_02_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_3              0x0A18
-#define EUR_CR_USE_CODE_BASE_ADDR_03_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_03_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_03_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_03_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_03_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_03_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_4              0x0A1C
-#define EUR_CR_USE_CODE_BASE_ADDR_04_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_04_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_04_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_04_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_04_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_04_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_5              0x0A20
-#define EUR_CR_USE_CODE_BASE_ADDR_05_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_05_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_05_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_05_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_05_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_05_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_6              0x0A24
-#define EUR_CR_USE_CODE_BASE_ADDR_06_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_06_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_06_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_06_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_06_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_06_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_7              0x0A28
-#define EUR_CR_USE_CODE_BASE_ADDR_07_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_07_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_07_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_07_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_07_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_07_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_8              0x0A2C
-#define EUR_CR_USE_CODE_BASE_ADDR_08_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_08_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_08_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_08_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_08_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_08_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_9              0x0A30
-#define EUR_CR_USE_CODE_BASE_ADDR_09_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_09_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_09_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_09_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_09_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_09_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_10             0x0A34
-#define EUR_CR_USE_CODE_BASE_ADDR_10_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_10_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_10_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_10_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_10_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_10_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_11             0x0A38
-#define EUR_CR_USE_CODE_BASE_ADDR_11_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_11_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_11_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_11_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_11_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_11_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_12             0x0A3C
-#define EUR_CR_USE_CODE_BASE_ADDR_12_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_12_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_12_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_12_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_12_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_12_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_13             0x0A40
-#define EUR_CR_USE_CODE_BASE_ADDR_13_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_13_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_13_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_13_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_13_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_13_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_14             0x0A44
-#define EUR_CR_USE_CODE_BASE_ADDR_14_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_14_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_14_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_14_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_14_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_14_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_15             0x0A48
-#define EUR_CR_USE_CODE_BASE_ADDR_15_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_15_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_15_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_15_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_15_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_15_SIGNED   0
-#define EUR_CR_USE_CODE_BASE(X)     (0x0A0C + (4 * (X)))
-#define EUR_CR_USE_CODE_BASE_ADDR_MASK      0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_SHIFT     0
-#define EUR_CR_USE_CODE_BASE_ADDR_SIGNED    0
-#define EUR_CR_USE_CODE_BASE_DM_MASK        0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_SHIFT       26
-#define EUR_CR_USE_CODE_BASE_DM_SIGNED      0
-#define EUR_CR_USE_CODE_BASE_SIZE_UINT32 16
-#define EUR_CR_USE_CODE_BASE_NUM_ENTRIES 16
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx544defs.h b/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx544defs.h
deleted file mode 100644
index c18b8ad..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx544defs.h
+++ /dev/null
@@ -1,1367 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _SGX544DEFS_KM_H_
-#define _SGX544DEFS_KM_H_
-
-#define EUR_CR_CLKGATECTL                   0x0000
-#define EUR_CR_CLKGATECTL_ISP_CLKG_MASK     0x00000003U
-#define EUR_CR_CLKGATECTL_ISP_CLKG_SHIFT    0
-#define EUR_CR_CLKGATECTL_ISP_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_ISP2_CLKG_MASK    0x0000000CU
-#define EUR_CR_CLKGATECTL_ISP2_CLKG_SHIFT   2
-#define EUR_CR_CLKGATECTL_ISP2_CLKG_SIGNED  0
-#define EUR_CR_CLKGATECTL_TSP_CLKG_MASK     0x00000030U
-#define EUR_CR_CLKGATECTL_TSP_CLKG_SHIFT    4
-#define EUR_CR_CLKGATECTL_TSP_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_TE_CLKG_MASK      0x000000C0U
-#define EUR_CR_CLKGATECTL_TE_CLKG_SHIFT     6
-#define EUR_CR_CLKGATECTL_TE_CLKG_SIGNED    0
-#define EUR_CR_CLKGATECTL_MTE_CLKG_MASK     0x00000300U
-#define EUR_CR_CLKGATECTL_MTE_CLKG_SHIFT    8
-#define EUR_CR_CLKGATECTL_MTE_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_DPM_CLKG_MASK     0x00000C00U
-#define EUR_CR_CLKGATECTL_DPM_CLKG_SHIFT    10
-#define EUR_CR_CLKGATECTL_DPM_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_VDM_CLKG_MASK     0x00003000U
-#define EUR_CR_CLKGATECTL_VDM_CLKG_SHIFT    12
-#define EUR_CR_CLKGATECTL_VDM_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_PDS_CLKG_MASK     0x0000C000U
-#define EUR_CR_CLKGATECTL_PDS_CLKG_SHIFT    14
-#define EUR_CR_CLKGATECTL_PDS_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_IDXFIFO_CLKG_MASK 0x00030000U
-#define EUR_CR_CLKGATECTL_IDXFIFO_CLKG_SHIFT 16
-#define EUR_CR_CLKGATECTL_IDXFIFO_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL_TA_CLKG_MASK      0x000C0000U
-#define EUR_CR_CLKGATECTL_TA_CLKG_SHIFT     18
-#define EUR_CR_CLKGATECTL_TA_CLKG_SIGNED    0
-#define EUR_CR_CLKGATECTL_BIF_CORE_CLKG_MASK 0x00300000U
-#define EUR_CR_CLKGATECTL_BIF_CORE_CLKG_SHIFT 20
-#define EUR_CR_CLKGATECTL_BIF_CORE_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_MASK 0x01000000U
-#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_SHIFT 24
-#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_SIGNED 0
-#define EUR_CR_CLKGATECTL_SYSTEM_CLKG_MASK  0x10000000U
-#define EUR_CR_CLKGATECTL_SYSTEM_CLKG_SHIFT 28
-#define EUR_CR_CLKGATECTL_SYSTEM_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2                  0x0004
-#define EUR_CR_CLKGATECTL2_PBE_CLKG_MASK    0x00000003U
-#define EUR_CR_CLKGATECTL2_PBE_CLKG_SHIFT   0
-#define EUR_CR_CLKGATECTL2_PBE_CLKG_SIGNED  0
-#define EUR_CR_CLKGATECTL2_TCU_L2_CLKG_MASK 0x0000000CU
-#define EUR_CR_CLKGATECTL2_TCU_L2_CLKG_SHIFT 2
-#define EUR_CR_CLKGATECTL2_TCU_L2_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_UCACHEL2_CLKG_MASK 0x00000030U
-#define EUR_CR_CLKGATECTL2_UCACHEL2_CLKG_SHIFT 4
-#define EUR_CR_CLKGATECTL2_UCACHEL2_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_USE0_CLKG_MASK   0x000000C0U
-#define EUR_CR_CLKGATECTL2_USE0_CLKG_SHIFT  6
-#define EUR_CR_CLKGATECTL2_USE0_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_ITR0_CLKG_MASK   0x00000300U
-#define EUR_CR_CLKGATECTL2_ITR0_CLKG_SHIFT  8
-#define EUR_CR_CLKGATECTL2_ITR0_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_TEX0_CLKG_MASK   0x00000C00U
-#define EUR_CR_CLKGATECTL2_TEX0_CLKG_SHIFT  10
-#define EUR_CR_CLKGATECTL2_TEX0_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_USE1_CLKG_MASK   0x0000C000U
-#define EUR_CR_CLKGATECTL2_USE1_CLKG_SHIFT  14
-#define EUR_CR_CLKGATECTL2_USE1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_ITR1_CLKG_MASK   0x00030000U
-#define EUR_CR_CLKGATECTL2_ITR1_CLKG_SHIFT  16
-#define EUR_CR_CLKGATECTL2_ITR1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_TEX1_CLKG_MASK   0x000C0000U
-#define EUR_CR_CLKGATECTL2_TEX1_CLKG_SHIFT  18
-#define EUR_CR_CLKGATECTL2_TEX1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_DCU_L2_CLKG_MASK 0x00C00000U
-#define EUR_CR_CLKGATECTL2_DCU_L2_CLKG_SHIFT 22
-#define EUR_CR_CLKGATECTL2_DCU_L2_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_DCU1_L0L1_CLKG_MASK 0x03000000U
-#define EUR_CR_CLKGATECTL2_DCU1_L0L1_CLKG_SHIFT 24
-#define EUR_CR_CLKGATECTL2_DCU1_L0L1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_DCU0_L0L1_CLKG_MASK 0x0C000000U
-#define EUR_CR_CLKGATECTL2_DCU0_L0L1_CLKG_SHIFT 26
-#define EUR_CR_CLKGATECTL2_DCU0_L0L1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATESTATUS                0x0008
-#define EUR_CR_CLKGATESTATUS_ISP_CLKS_MASK  0x00000001U
-#define EUR_CR_CLKGATESTATUS_ISP_CLKS_SHIFT 0
-#define EUR_CR_CLKGATESTATUS_ISP_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_ISP2_CLKS_MASK 0x00000002U
-#define EUR_CR_CLKGATESTATUS_ISP2_CLKS_SHIFT 1
-#define EUR_CR_CLKGATESTATUS_ISP2_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TSP_CLKS_MASK  0x00000004U
-#define EUR_CR_CLKGATESTATUS_TSP_CLKS_SHIFT 2
-#define EUR_CR_CLKGATESTATUS_TSP_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TE_CLKS_MASK   0x00000008U
-#define EUR_CR_CLKGATESTATUS_TE_CLKS_SHIFT  3
-#define EUR_CR_CLKGATESTATUS_TE_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_MTE_CLKS_MASK  0x00000010U
-#define EUR_CR_CLKGATESTATUS_MTE_CLKS_SHIFT 4
-#define EUR_CR_CLKGATESTATUS_MTE_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_DPM_CLKS_MASK  0x00000020U
-#define EUR_CR_CLKGATESTATUS_DPM_CLKS_SHIFT 5
-#define EUR_CR_CLKGATESTATUS_DPM_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_VDM_CLKS_MASK  0x00000040U
-#define EUR_CR_CLKGATESTATUS_VDM_CLKS_SHIFT 6
-#define EUR_CR_CLKGATESTATUS_VDM_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_PDS_CLKS_MASK  0x00000080U
-#define EUR_CR_CLKGATESTATUS_PDS_CLKS_SHIFT 7
-#define EUR_CR_CLKGATESTATUS_PDS_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_PBE_CLKS_MASK  0x00000100U
-#define EUR_CR_CLKGATESTATUS_PBE_CLKS_SHIFT 8
-#define EUR_CR_CLKGATESTATUS_PBE_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TCU_L2_CLKS_MASK 0x00000200U
-#define EUR_CR_CLKGATESTATUS_TCU_L2_CLKS_SHIFT 9
-#define EUR_CR_CLKGATESTATUS_TCU_L2_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_UCACHEL2_CLKS_MASK 0x00000400U
-#define EUR_CR_CLKGATESTATUS_UCACHEL2_CLKS_SHIFT 10
-#define EUR_CR_CLKGATESTATUS_UCACHEL2_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_USE0_CLKS_MASK 0x00000800U
-#define EUR_CR_CLKGATESTATUS_USE0_CLKS_SHIFT 11
-#define EUR_CR_CLKGATESTATUS_USE0_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_ITR0_CLKS_MASK 0x00001000U
-#define EUR_CR_CLKGATESTATUS_ITR0_CLKS_SHIFT 12
-#define EUR_CR_CLKGATESTATUS_ITR0_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TEX0_CLKS_MASK 0x00002000U
-#define EUR_CR_CLKGATESTATUS_TEX0_CLKS_SHIFT 13
-#define EUR_CR_CLKGATESTATUS_TEX0_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_USE1_CLKS_MASK 0x00008000U
-#define EUR_CR_CLKGATESTATUS_USE1_CLKS_SHIFT 15
-#define EUR_CR_CLKGATESTATUS_USE1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_ITR1_CLKS_MASK 0x00010000U
-#define EUR_CR_CLKGATESTATUS_ITR1_CLKS_SHIFT 16
-#define EUR_CR_CLKGATESTATUS_ITR1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TEX1_CLKS_MASK 0x00020000U
-#define EUR_CR_CLKGATESTATUS_TEX1_CLKS_SHIFT 17
-#define EUR_CR_CLKGATESTATUS_TEX1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_IDXFIFO_CLKS_MASK 0x00080000U
-#define EUR_CR_CLKGATESTATUS_IDXFIFO_CLKS_SHIFT 19
-#define EUR_CR_CLKGATESTATUS_IDXFIFO_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TA_CLKS_MASK   0x00100000U
-#define EUR_CR_CLKGATESTATUS_TA_CLKS_SHIFT  20
-#define EUR_CR_CLKGATESTATUS_TA_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_DCU_L2_CLKS_MASK 0x00200000U
-#define EUR_CR_CLKGATESTATUS_DCU_L2_CLKS_SHIFT 21
-#define EUR_CR_CLKGATESTATUS_DCU_L2_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_DCU0_L0L1_CLKS_MASK 0x00400000U
-#define EUR_CR_CLKGATESTATUS_DCU0_L0L1_CLKS_SHIFT 22
-#define EUR_CR_CLKGATESTATUS_DCU0_L0L1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_DCU1_L0L1_CLKS_MASK 0x00800000U
-#define EUR_CR_CLKGATESTATUS_DCU1_L0L1_CLKS_SHIFT 23
-#define EUR_CR_CLKGATESTATUS_DCU1_L0L1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_BIF_CORE_CLKS_MASK 0x01000000U
-#define EUR_CR_CLKGATESTATUS_BIF_CORE_CLKS_SHIFT 24
-#define EUR_CR_CLKGATESTATUS_BIF_CORE_CLKS_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR                0x000C
-#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_MASK  0x00000003U
-#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_SHIFT 0
-#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_ISP2_CLKO_MASK 0x0000000CU
-#define EUR_CR_CLKGATECTLOVR_ISP2_CLKO_SHIFT 2
-#define EUR_CR_CLKGATECTLOVR_ISP2_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_MASK  0x00000030U
-#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_SHIFT 4
-#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_TE_CLKO_MASK   0x000000C0U
-#define EUR_CR_CLKGATECTLOVR_TE_CLKO_SHIFT  6
-#define EUR_CR_CLKGATECTLOVR_TE_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_MTE_CLKO_MASK  0x00000300U
-#define EUR_CR_CLKGATECTLOVR_MTE_CLKO_SHIFT 8
-#define EUR_CR_CLKGATECTLOVR_MTE_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_MASK  0x00000C00U
-#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_SHIFT 10
-#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_VDM_CLKO_MASK  0x00003000U
-#define EUR_CR_CLKGATECTLOVR_VDM_CLKO_SHIFT 12
-#define EUR_CR_CLKGATECTLOVR_VDM_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_PDS_CLKO_MASK  0x0000C000U
-#define EUR_CR_CLKGATECTLOVR_PDS_CLKO_SHIFT 14
-#define EUR_CR_CLKGATECTLOVR_PDS_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_IDXFIFO_CLKO_MASK 0x00030000U
-#define EUR_CR_CLKGATECTLOVR_IDXFIFO_CLKO_SHIFT 16
-#define EUR_CR_CLKGATECTLOVR_IDXFIFO_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_TA_CLKO_MASK   0x000C0000U
-#define EUR_CR_CLKGATECTLOVR_TA_CLKO_SHIFT  18
-#define EUR_CR_CLKGATECTLOVR_TA_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_BIF_CORE_CLKO_MASK 0x00300000U
-#define EUR_CR_CLKGATECTLOVR_BIF_CORE_CLKO_SHIFT 20
-#define EUR_CR_CLKGATECTLOVR_BIF_CORE_CLKO_SIGNED 0
-#define EUR_CR_POWER                        0x001C
-#define EUR_CR_POWER_PIPE_DISABLE_MASK      0x00000001U
-#define EUR_CR_POWER_PIPE_DISABLE_SHIFT     0
-#define EUR_CR_POWER_PIPE_DISABLE_SIGNED    0
-#define EUR_CR_CORE_ID                      0x0020
-#define EUR_CR_CORE_ID_CONFIG_MULTI_MASK    0x00000001U
-#define EUR_CR_CORE_ID_CONFIG_MULTI_SHIFT   0
-#define EUR_CR_CORE_ID_CONFIG_MULTI_SIGNED  0
-#define EUR_CR_CORE_ID_CONFIG_BASE_MASK     0x00000002U
-#define EUR_CR_CORE_ID_CONFIG_BASE_SHIFT    1
-#define EUR_CR_CORE_ID_CONFIG_BASE_SIGNED   0
-#define EUR_CR_CORE_ID_CONFIG_MASK          0x000000FCU
-#define EUR_CR_CORE_ID_CONFIG_SHIFT         2
-#define EUR_CR_CORE_ID_CONFIG_SIGNED        0
-#define EUR_CR_CORE_ID_CONFIG_CORES_MASK    0x00000F00U
-#define EUR_CR_CORE_ID_CONFIG_CORES_SHIFT   8
-#define EUR_CR_CORE_ID_CONFIG_CORES_SIGNED  0
-#define EUR_CR_CORE_ID_CONFIG_SLC_MASK      0x0000F000U
-#define EUR_CR_CORE_ID_CONFIG_SLC_SHIFT     12
-#define EUR_CR_CORE_ID_CONFIG_SLC_SIGNED    0
-#define EUR_CR_CORE_ID_ID_MASK              0xFFFF0000U
-#define EUR_CR_CORE_ID_ID_SHIFT             16
-#define EUR_CR_CORE_ID_ID_SIGNED            0
-#define EUR_CR_CORE_REVISION                0x0024
-#define EUR_CR_CORE_REVISION_MAINTENANCE_MASK 0x000000FFU
-#define EUR_CR_CORE_REVISION_MAINTENANCE_SHIFT 0
-#define EUR_CR_CORE_REVISION_MAINTENANCE_SIGNED 0
-#define EUR_CR_CORE_REVISION_MINOR_MASK     0x0000FF00U
-#define EUR_CR_CORE_REVISION_MINOR_SHIFT    8
-#define EUR_CR_CORE_REVISION_MINOR_SIGNED   0
-#define EUR_CR_CORE_REVISION_MAJOR_MASK     0x00FF0000U
-#define EUR_CR_CORE_REVISION_MAJOR_SHIFT    16
-#define EUR_CR_CORE_REVISION_MAJOR_SIGNED   0
-#define EUR_CR_CORE_REVISION_DESIGNER_MASK  0xFF000000U
-#define EUR_CR_CORE_REVISION_DESIGNER_SHIFT 24
-#define EUR_CR_CORE_REVISION_DESIGNER_SIGNED 0
-#define EUR_CR_DESIGNER_REV_FIELD1          0x0028
-#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_MASK 0xFFFFFFFFU
-#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_SHIFT 0
-#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_SIGNED 0
-#define EUR_CR_DESIGNER_REV_FIELD2          0x002C
-#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_MASK 0xFFFFFFFFU
-#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_SHIFT 0
-#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_SIGNED 0
-#define EUR_CR_SOFT_RESET                   0x0080
-#define EUR_CR_SOFT_RESET_BIF_RESET_MASK    0x00000001U
-#define EUR_CR_SOFT_RESET_BIF_RESET_SHIFT   0
-#define EUR_CR_SOFT_RESET_BIF_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_VDM_RESET_MASK    0x00000002U
-#define EUR_CR_SOFT_RESET_VDM_RESET_SHIFT   1
-#define EUR_CR_SOFT_RESET_VDM_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_DPM_RESET_MASK    0x00000004U
-#define EUR_CR_SOFT_RESET_DPM_RESET_SHIFT   2
-#define EUR_CR_SOFT_RESET_DPM_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_TE_RESET_MASK     0x00000008U
-#define EUR_CR_SOFT_RESET_TE_RESET_SHIFT    3
-#define EUR_CR_SOFT_RESET_TE_RESET_SIGNED   0
-#define EUR_CR_SOFT_RESET_MTE_RESET_MASK    0x00000010U
-#define EUR_CR_SOFT_RESET_MTE_RESET_SHIFT   4
-#define EUR_CR_SOFT_RESET_MTE_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_ISP_RESET_MASK    0x00000020U
-#define EUR_CR_SOFT_RESET_ISP_RESET_SHIFT   5
-#define EUR_CR_SOFT_RESET_ISP_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_ISP2_RESET_MASK   0x00000040U
-#define EUR_CR_SOFT_RESET_ISP2_RESET_SHIFT  6
-#define EUR_CR_SOFT_RESET_ISP2_RESET_SIGNED 0
-#define EUR_CR_SOFT_RESET_TSP_RESET_MASK    0x00000080U
-#define EUR_CR_SOFT_RESET_TSP_RESET_SHIFT   7
-#define EUR_CR_SOFT_RESET_TSP_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_PDS_RESET_MASK    0x00000100U
-#define EUR_CR_SOFT_RESET_PDS_RESET_SHIFT   8
-#define EUR_CR_SOFT_RESET_PDS_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_PBE_RESET_MASK    0x00000200U
-#define EUR_CR_SOFT_RESET_PBE_RESET_SHIFT   9
-#define EUR_CR_SOFT_RESET_PBE_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_TCU_L2_RESET_MASK 0x00000400U
-#define EUR_CR_SOFT_RESET_TCU_L2_RESET_SHIFT 10
-#define EUR_CR_SOFT_RESET_TCU_L2_RESET_SIGNED 0
-#define EUR_CR_SOFT_RESET_UCACHEL2_RESET_MASK 0x00000800U
-#define EUR_CR_SOFT_RESET_UCACHEL2_RESET_SHIFT 11
-#define EUR_CR_SOFT_RESET_UCACHEL2_RESET_SIGNED 0
-#define EUR_CR_SOFT_RESET_ITR_RESET_MASK    0x00002000U
-#define EUR_CR_SOFT_RESET_ITR_RESET_SHIFT   13
-#define EUR_CR_SOFT_RESET_ITR_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_TEX_RESET_MASK    0x00004000U
-#define EUR_CR_SOFT_RESET_TEX_RESET_SHIFT   14
-#define EUR_CR_SOFT_RESET_TEX_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_USE_RESET_MASK    0x00008000U
-#define EUR_CR_SOFT_RESET_USE_RESET_SHIFT   15
-#define EUR_CR_SOFT_RESET_USE_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_IDXFIFO_RESET_MASK 0x00010000U
-#define EUR_CR_SOFT_RESET_IDXFIFO_RESET_SHIFT 16
-#define EUR_CR_SOFT_RESET_IDXFIFO_RESET_SIGNED 0
-#define EUR_CR_SOFT_RESET_TA_RESET_MASK     0x00020000U
-#define EUR_CR_SOFT_RESET_TA_RESET_SHIFT    17
-#define EUR_CR_SOFT_RESET_TA_RESET_SIGNED   0
-#define EUR_CR_SOFT_RESET_DCU_L2_RESET_MASK 0x00040000U
-#define EUR_CR_SOFT_RESET_DCU_L2_RESET_SHIFT 18
-#define EUR_CR_SOFT_RESET_DCU_L2_RESET_SIGNED 0
-#define EUR_CR_SOFT_RESET_DCU_L0L1_RESET_MASK 0x00080000U
-#define EUR_CR_SOFT_RESET_DCU_L0L1_RESET_SHIFT 19
-#define EUR_CR_SOFT_RESET_DCU_L0L1_RESET_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2           0x0110
-#define EUR_CR_EVENT_HOST_ENABLE2_DATA_BREAKPOINT_UNTRAPPED_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_ENABLE2_DATA_BREAKPOINT_UNTRAPPED_SHIFT 11
-#define EUR_CR_EVENT_HOST_ENABLE2_DATA_BREAKPOINT_UNTRAPPED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DATA_BREAKPOINT_TRAPPED_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_ENABLE2_DATA_BREAKPOINT_TRAPPED_SHIFT 10
-#define EUR_CR_EVENT_HOST_ENABLE2_DATA_BREAKPOINT_TRAPPED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_CONTEXT_DRAINED_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_CONTEXT_DRAINED_SHIFT 9
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_CONTEXT_DRAINED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_ISP2_ZLS_CSW_FINISHED_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_ENABLE2_ISP2_ZLS_CSW_FINISHED_SHIFT 8
-#define EUR_CR_EVENT_HOST_ENABLE2_ISP2_ZLS_CSW_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DCU_INVALCOMPLETE_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_ENABLE2_DCU_INVALCOMPLETE_SHIFT 7
-#define EUR_CR_EVENT_HOST_ENABLE2_DCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_STATE_FLUSHED_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_STATE_FLUSHED_SHIFT 6
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_STATE_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_TE_RGNHDR_INIT_COMPLETE_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_ENABLE2_TE_RGNHDR_INIT_COMPLETE_SHIFT 5
-#define EUR_CR_EVENT_HOST_ENABLE2_TE_RGNHDR_INIT_COMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_SHIFT 4
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_SHIFT 3
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_SHIFT 2
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2            0x0114
-#define EUR_CR_EVENT_HOST_CLEAR2_DATA_BREAKPOINT_UNTRAPPED_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_CLEAR2_DATA_BREAKPOINT_UNTRAPPED_SHIFT 11
-#define EUR_CR_EVENT_HOST_CLEAR2_DATA_BREAKPOINT_UNTRAPPED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DATA_BREAKPOINT_TRAPPED_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_CLEAR2_DATA_BREAKPOINT_TRAPPED_SHIFT 10
-#define EUR_CR_EVENT_HOST_CLEAR2_DATA_BREAKPOINT_TRAPPED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_CONTEXT_DRAINED_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_CONTEXT_DRAINED_SHIFT 9
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_CONTEXT_DRAINED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_ISP2_ZLS_CSW_FINISHED_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_CLEAR2_ISP2_ZLS_CSW_FINISHED_SHIFT 8
-#define EUR_CR_EVENT_HOST_CLEAR2_ISP2_ZLS_CSW_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DCU_INVALCOMPLETE_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_CLEAR2_DCU_INVALCOMPLETE_SHIFT 7
-#define EUR_CR_EVENT_HOST_CLEAR2_DCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_STATE_FLUSHED_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_STATE_FLUSHED_SHIFT 6
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_STATE_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_TE_RGNHDR_INIT_COMPLETE_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_CLEAR2_TE_RGNHDR_INIT_COMPLETE_SHIFT 5
-#define EUR_CR_EVENT_HOST_CLEAR2_TE_RGNHDR_INIT_COMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_SHIFT 4
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_SHIFT 3
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_SHIFT 2
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS2                0x0118
-#define EUR_CR_EVENT_STATUS2_DATA_BREAKPOINT_UNTRAPPED_MASK 0x00000800U
-#define EUR_CR_EVENT_STATUS2_DATA_BREAKPOINT_UNTRAPPED_SHIFT 11
-#define EUR_CR_EVENT_STATUS2_DATA_BREAKPOINT_UNTRAPPED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_DATA_BREAKPOINT_TRAPPED_MASK 0x00000400U
-#define EUR_CR_EVENT_STATUS2_DATA_BREAKPOINT_TRAPPED_SHIFT 10
-#define EUR_CR_EVENT_STATUS2_DATA_BREAKPOINT_TRAPPED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_MTE_CONTEXT_DRAINED_MASK 0x00000200U
-#define EUR_CR_EVENT_STATUS2_MTE_CONTEXT_DRAINED_SHIFT 9
-#define EUR_CR_EVENT_STATUS2_MTE_CONTEXT_DRAINED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_ISP2_ZLS_CSW_FINISHED_MASK 0x00000100U
-#define EUR_CR_EVENT_STATUS2_ISP2_ZLS_CSW_FINISHED_SHIFT 8
-#define EUR_CR_EVENT_STATUS2_ISP2_ZLS_CSW_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_DCU_INVALCOMPLETE_MASK 0x00000080U
-#define EUR_CR_EVENT_STATUS2_DCU_INVALCOMPLETE_SHIFT 7
-#define EUR_CR_EVENT_STATUS2_DCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_MTE_STATE_FLUSHED_MASK 0x00000040U
-#define EUR_CR_EVENT_STATUS2_MTE_STATE_FLUSHED_SHIFT 6
-#define EUR_CR_EVENT_STATUS2_MTE_STATE_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_TE_RGNHDR_INIT_COMPLETE_MASK 0x00000020U
-#define EUR_CR_EVENT_STATUS2_TE_RGNHDR_INIT_COMPLETE_SHIFT 5
-#define EUR_CR_EVENT_STATUS2_TE_RGNHDR_INIT_COMPLETE_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_TRIG_TA_MASK   0x00000010U
-#define EUR_CR_EVENT_STATUS2_TRIG_TA_SHIFT  4
-#define EUR_CR_EVENT_STATUS2_TRIG_TA_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_TRIG_3D_MASK   0x00000008U
-#define EUR_CR_EVENT_STATUS2_TRIG_3D_SHIFT  3
-#define EUR_CR_EVENT_STATUS2_TRIG_3D_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_TRIG_DL_MASK   0x00000004U
-#define EUR_CR_EVENT_STATUS2_TRIG_DL_SHIFT  2
-#define EUR_CR_EVENT_STATUS2_TRIG_DL_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS                 0x012C
-#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TIMER_MASK      0x20000000U
-#define EUR_CR_EVENT_STATUS_TIMER_SHIFT     29
-#define EUR_CR_EVENT_STATUS_TIMER_SIGNED    0
-#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TCU_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_STATUS_TCU_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_STATUS_TCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_STATUS_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_STATUS_ISP_END_TILE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_STATUS_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_STATUS_DPM_INITEND_SIGNED 0
-#define EUR_CR_EVENT_STATUS_OTPM_LOADED_MASK 0x00200000U
-#define EUR_CR_EVENT_STATUS_OTPM_LOADED_SHIFT 21
-#define EUR_CR_EVENT_STATUS_OTPM_LOADED_SIGNED 0
-#define EUR_CR_EVENT_STATUS_OTPM_INV_MASK   0x00100000U
-#define EUR_CR_EVENT_STATUS_OTPM_INV_SHIFT  20
-#define EUR_CR_EVENT_STATUS_OTPM_INV_SIGNED 0
-#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_SIGNED 0
-#define EUR_CR_EVENT_STATUS_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_STATUS_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_STATUS_BREAKPOINT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_SW_EVENT_MASK   0x00004000U
-#define EUR_CR_EVENT_STATUS_SW_EVENT_SHIFT  14
-#define EUR_CR_EVENT_STATUS_SW_EVENT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_STATUS_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_STATUS_TA_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_STATUS_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_STATUS_TA_TERMINATE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TPC_CLEAR_MASK  0x00000800U
-#define EUR_CR_EVENT_STATUS_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_STATUS_TPC_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TPC_FLUSH_MASK  0x00000400U
-#define EUR_CR_EVENT_STATUS_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_STATUS_TPC_FLUSH_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE            0x0130
-#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TIMER_MASK 0x20000000U
-#define EUR_CR_EVENT_HOST_ENABLE_TIMER_SHIFT 29
-#define EUR_CR_EVENT_HOST_ENABLE_TIMER_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TCU_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_HOST_ENABLE_TCU_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_HOST_ENABLE_TCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_LOADED_MASK 0x00200000U
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_LOADED_SHIFT 21
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_LOADED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_MASK 0x00100000U
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_SHIFT 20
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_MASK 0x00004000U
-#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_SHIFT 14
-#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR             0x0134
-#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TIMER_MASK  0x20000000U
-#define EUR_CR_EVENT_HOST_CLEAR_TIMER_SHIFT 29
-#define EUR_CR_EVENT_HOST_CLEAR_TIMER_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TCU_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_HOST_CLEAR_TCU_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_HOST_CLEAR_TCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_LOADED_MASK 0x00200000U
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_LOADED_SHIFT 21
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_LOADED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_MASK 0x00100000U
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_SHIFT 20
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_MASK 0x00004000U
-#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_SHIFT 14
-#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_SIGNED 0
-#define EUR_CR_TIMER                        0x0144
-#define EUR_CR_TIMER_VALUE_MASK             0xFFFFFFFFU
-#define EUR_CR_TIMER_VALUE_SHIFT            0
-#define EUR_CR_TIMER_VALUE_SIGNED           0
-#define EUR_CR_EVENT_KICK1                  0x0AB0
-#define EUR_CR_EVENT_KICK1_NOW_MASK         0x000000FFU
-#define EUR_CR_EVENT_KICK1_NOW_SHIFT        0
-#define EUR_CR_EVENT_KICK1_NOW_SIGNED       0
-#define EUR_CR_EVENT_KICK2                  0x0AC0
-#define EUR_CR_EVENT_KICK2_NOW_MASK         0x00000001U
-#define EUR_CR_EVENT_KICK2_NOW_SHIFT        0
-#define EUR_CR_EVENT_KICK2_NOW_SIGNED       0
-#define EUR_CR_EVENT_KICKER                 0x0AC4
-#define EUR_CR_EVENT_KICKER_ADDRESS_MASK    0xFFFFFFF0U
-#define EUR_CR_EVENT_KICKER_ADDRESS_SHIFT   4
-#define EUR_CR_EVENT_KICKER_ADDRESS_SIGNED  0
-#define EUR_CR_EVENT_KICK                   0x0AC8
-#define EUR_CR_EVENT_KICK_NOW_MASK          0x00000001U
-#define EUR_CR_EVENT_KICK_NOW_SHIFT         0
-#define EUR_CR_EVENT_KICK_NOW_SIGNED        0
-#define EUR_CR_EVENT_TIMER                  0x0ACC
-#define EUR_CR_EVENT_TIMER_ENABLE_MASK      0x01000000U
-#define EUR_CR_EVENT_TIMER_ENABLE_SHIFT     24
-#define EUR_CR_EVENT_TIMER_ENABLE_SIGNED    0
-#define EUR_CR_EVENT_TIMER_VALUE_MASK       0x00FFFFFFU
-#define EUR_CR_EVENT_TIMER_VALUE_SHIFT      0
-#define EUR_CR_EVENT_TIMER_VALUE_SIGNED     0
-#define EUR_CR_PDS_INV0                     0x0AD0
-#define EUR_CR_PDS_INV0_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV0_DSC_SHIFT           0
-#define EUR_CR_PDS_INV0_DSC_SIGNED          0
-#define EUR_CR_PDS_INV1                     0x0AD4
-#define EUR_CR_PDS_INV1_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV1_DSC_SHIFT           0
-#define EUR_CR_PDS_INV1_DSC_SIGNED          0
-#define EUR_CR_EVENT_KICK3                  0x0AD8
-#define EUR_CR_EVENT_KICK3_NOW_MASK         0x00000001U
-#define EUR_CR_EVENT_KICK3_NOW_SHIFT        0
-#define EUR_CR_EVENT_KICK3_NOW_SIGNED       0
-#define EUR_CR_PDS_INV3                     0x0ADC
-#define EUR_CR_PDS_INV3_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV3_DSC_SHIFT           0
-#define EUR_CR_PDS_INV3_DSC_SIGNED          0
-#define EUR_CR_PDS_INV_CSC                  0x0AE0
-#define EUR_CR_PDS_INV_CSC_KICK_MASK        0x00000001U
-#define EUR_CR_PDS_INV_CSC_KICK_SHIFT       0
-#define EUR_CR_PDS_INV_CSC_KICK_SIGNED      0
-#define EUR_CR_BIF_CTRL                     0x0C00
-#define EUR_CR_BIF_CTRL_NOREORDER_MASK      0x00000001U
-#define EUR_CR_BIF_CTRL_NOREORDER_SHIFT     0
-#define EUR_CR_BIF_CTRL_NOREORDER_SIGNED    0
-#define EUR_CR_BIF_CTRL_PAUSE_MASK          0x00000002U
-#define EUR_CR_BIF_CTRL_PAUSE_SHIFT         1
-#define EUR_CR_BIF_CTRL_PAUSE_SIGNED        0
-#define EUR_CR_BIF_CTRL_CLEAR_FAULT_MASK    0x00000010U
-#define EUR_CR_BIF_CTRL_CLEAR_FAULT_SHIFT   4
-#define EUR_CR_BIF_CTRL_CLEAR_FAULT_SIGNED  0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_MASK 0x00000200U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_SHIFT 9
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TA_MASK  0x00000400U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TA_SHIFT 10
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TA_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_MASK 0x00001000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_SHIFT 12
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_MASK 0x00002000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_SHIFT 13
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_MASK 0x00004000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_SHIFT 14
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_MASK 0x00008000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_SHIFT 15
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PTLA_MASK 0x00010000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PTLA_SHIFT 16
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PTLA_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_VDM_MASK 0x00020000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_VDM_SHIFT 17
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_VDM_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_IPF_MASK 0x00040000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_IPF_SHIFT 18
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_IPF_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_DPM_MASK 0x00080000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_DPM_SHIFT 19
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_MASTER_DPM_SIGNED 0
-#define EUR_CR_BIF_INT_STAT                 0x0C04
-#define EUR_CR_BIF_INT_STAT_FAULT_REQ_MASK  0x00003FFFU
-#define EUR_CR_BIF_INT_STAT_FAULT_REQ_SHIFT 0
-#define EUR_CR_BIF_INT_STAT_FAULT_REQ_SIGNED 0
-#define EUR_CR_BIF_INT_STAT_FAULT_TYPE_MASK 0x00070000U
-#define EUR_CR_BIF_INT_STAT_FAULT_TYPE_SHIFT 16
-#define EUR_CR_BIF_INT_STAT_FAULT_TYPE_SIGNED 0
-#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_MASK 0x00080000U
-#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_SHIFT 19
-#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_SIGNED 0
-#define EUR_CR_BIF_FAULT                    0x0C08
-#define EUR_CR_BIF_FAULT_CID_MASK           0x0000000FU
-#define EUR_CR_BIF_FAULT_CID_SHIFT          0
-#define EUR_CR_BIF_FAULT_CID_SIGNED         0
-#define EUR_CR_BIF_FAULT_SB_MASK            0x000001F0U
-#define EUR_CR_BIF_FAULT_SB_SHIFT           4
-#define EUR_CR_BIF_FAULT_SB_SIGNED          0
-#define EUR_CR_BIF_FAULT_ADDR_MASK          0xFFFFF000U
-#define EUR_CR_BIF_FAULT_ADDR_SHIFT         12
-#define EUR_CR_BIF_FAULT_ADDR_SIGNED        0
-#define EUR_CR_BIF_TILE0                    0x0C0C
-#define EUR_CR_BIF_TILE0_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE0_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE0_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE0_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE0_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE0_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE0_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE0_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE0_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE1                    0x0C10
-#define EUR_CR_BIF_TILE1_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE1_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE1_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE1_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE1_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE1_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE1_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE1_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE1_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE2                    0x0C14
-#define EUR_CR_BIF_TILE2_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE2_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE2_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE2_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE2_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE2_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE2_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE2_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE2_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE3                    0x0C18
-#define EUR_CR_BIF_TILE3_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE3_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE3_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE3_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE3_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE3_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE3_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE3_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE3_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE4                    0x0C1C
-#define EUR_CR_BIF_TILE4_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE4_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE4_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE4_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE4_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE4_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE4_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE4_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE4_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE5                    0x0C20
-#define EUR_CR_BIF_TILE5_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE5_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE5_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE5_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE5_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE5_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE5_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE5_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE5_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE6                    0x0C24
-#define EUR_CR_BIF_TILE6_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE6_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE6_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE6_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE6_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE6_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE6_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE6_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE6_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE7                    0x0C28
-#define EUR_CR_BIF_TILE7_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE7_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE7_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE7_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE7_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE7_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE7_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE7_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE7_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE8                    0x0C2C
-#define EUR_CR_BIF_TILE8_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE8_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE8_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE8_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE8_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE8_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE8_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE8_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE8_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE9                    0x0C30
-#define EUR_CR_BIF_TILE9_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE9_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE9_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE9_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE9_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE9_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE9_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE9_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE9_CFG_SIGNED         0
-#define EUR_CR_BIF_CTRL_INVAL               0x0C34
-#define EUR_CR_BIF_CTRL_INVAL_PTE_MASK      0x00000004U
-#define EUR_CR_BIF_CTRL_INVAL_PTE_SHIFT     2
-#define EUR_CR_BIF_CTRL_INVAL_PTE_SIGNED    0
-#define EUR_CR_BIF_CTRL_INVAL_ALL_MASK      0x00000008U
-#define EUR_CR_BIF_CTRL_INVAL_ALL_SHIFT     3
-#define EUR_CR_BIF_CTRL_INVAL_ALL_SIGNED    0
-#define EUR_CR_BIF_DIR_LIST_BASE1           0x0C38
-#define EUR_CR_BIF_DIR_LIST_BASE1_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE1_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE1_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE2           0x0C3C
-#define EUR_CR_BIF_DIR_LIST_BASE2_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE2_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE2_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE3           0x0C40
-#define EUR_CR_BIF_DIR_LIST_BASE3_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE3_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE3_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE4           0x0C44
-#define EUR_CR_BIF_DIR_LIST_BASE4_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE4_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE4_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE5           0x0C48
-#define EUR_CR_BIF_DIR_LIST_BASE5_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE5_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE5_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE6           0x0C4C
-#define EUR_CR_BIF_DIR_LIST_BASE6_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE6_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE6_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE7           0x0C50
-#define EUR_CR_BIF_DIR_LIST_BASE7_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE7_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE7_ADDR_SIGNED 0
-#define EUR_CR_BIF_BANK_SET                 0x0C74
-#define EUR_CR_BIF_BANK_SET_SELECT_2D_MASK  0x00000001U
-#define EUR_CR_BIF_BANK_SET_SELECT_2D_SHIFT 0
-#define EUR_CR_BIF_BANK_SET_SELECT_2D_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_3D_MASK  0x0000000CU
-#define EUR_CR_BIF_BANK_SET_SELECT_3D_SHIFT 2
-#define EUR_CR_BIF_BANK_SET_SELECT_3D_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_HOST_MASK 0x00000010U
-#define EUR_CR_BIF_BANK_SET_SELECT_HOST_SHIFT 4
-#define EUR_CR_BIF_BANK_SET_SELECT_HOST_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_TA_MASK  0x000000C0U
-#define EUR_CR_BIF_BANK_SET_SELECT_TA_SHIFT 6
-#define EUR_CR_BIF_BANK_SET_SELECT_TA_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_EDM_MASK 0x00000100U
-#define EUR_CR_BIF_BANK_SET_SELECT_EDM_SHIFT 8
-#define EUR_CR_BIF_BANK_SET_SELECT_EDM_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_DPM_LSS_MASK 0x00000200U
-#define EUR_CR_BIF_BANK_SET_SELECT_DPM_LSS_SHIFT 9
-#define EUR_CR_BIF_BANK_SET_SELECT_DPM_LSS_SIGNED 0
-#define EUR_CR_BIF_BANK0                    0x0C78
-#define EUR_CR_BIF_BANK0_INDEX_EDM_MASK     0x0000000FU
-#define EUR_CR_BIF_BANK0_INDEX_EDM_SHIFT    0
-#define EUR_CR_BIF_BANK0_INDEX_EDM_SIGNED   0
-#define EUR_CR_BIF_BANK0_INDEX_TA_MASK      0x000000F0U
-#define EUR_CR_BIF_BANK0_INDEX_TA_SHIFT     4
-#define EUR_CR_BIF_BANK0_INDEX_TA_SIGNED    0
-#define EUR_CR_BIF_BANK0_INDEX_3D_MASK      0x0000F000U
-#define EUR_CR_BIF_BANK0_INDEX_3D_SHIFT     12
-#define EUR_CR_BIF_BANK0_INDEX_3D_SIGNED    0
-#define EUR_CR_BIF_BANK0_INDEX_PTLA_MASK    0x000F0000U
-#define EUR_CR_BIF_BANK0_INDEX_PTLA_SHIFT   16
-#define EUR_CR_BIF_BANK0_INDEX_PTLA_SIGNED  0
-#define EUR_CR_BIF_BANK1                    0x0C7C
-#define EUR_CR_BIF_BANK1_INDEX_EDM_MASK     0x0000000FU
-#define EUR_CR_BIF_BANK1_INDEX_EDM_SHIFT    0
-#define EUR_CR_BIF_BANK1_INDEX_EDM_SIGNED   0
-#define EUR_CR_BIF_BANK1_INDEX_TA_MASK      0x000000F0U
-#define EUR_CR_BIF_BANK1_INDEX_TA_SHIFT     4
-#define EUR_CR_BIF_BANK1_INDEX_TA_SIGNED    0
-#define EUR_CR_BIF_BANK1_INDEX_3D_MASK      0x0000F000U
-#define EUR_CR_BIF_BANK1_INDEX_3D_SHIFT     12
-#define EUR_CR_BIF_BANK1_INDEX_3D_SIGNED    0
-#define EUR_CR_BIF_DIR_LIST_BASE0           0x0C84
-#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_MASK 0xFFFFF000U
-#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_SHIFT 12
-#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_SIGNED 0
-#define EUR_CR_BIF_TA_REQ_BASE              0x0C90
-#define EUR_CR_BIF_TA_REQ_BASE_ADDR_MASK    0xFFF00000U
-#define EUR_CR_BIF_TA_REQ_BASE_ADDR_SHIFT   20
-#define EUR_CR_BIF_TA_REQ_BASE_ADDR_SIGNED  0
-#define EUR_CR_BIF_MEM_REQ_STAT             0x0CA8
-#define EUR_CR_BIF_MEM_REQ_STAT_READS_MASK  0x000000FFU
-#define EUR_CR_BIF_MEM_REQ_STAT_READS_SHIFT 0
-#define EUR_CR_BIF_MEM_REQ_STAT_READS_SIGNED 0
-#define EUR_CR_BIF_3D_REQ_BASE              0x0CAC
-#define EUR_CR_BIF_3D_REQ_BASE_ADDR_MASK    0xFFF00000U
-#define EUR_CR_BIF_3D_REQ_BASE_ADDR_SHIFT   20
-#define EUR_CR_BIF_3D_REQ_BASE_ADDR_SIGNED  0
-#define EUR_CR_BIF_ZLS_REQ_BASE             0x0CB0
-#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_MASK   0xFFF00000U
-#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_SHIFT  20
-#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_SIGNED 0
-#define EUR_CR_BIF_BANK_STATUS              0x0CB4
-#define EUR_CR_BIF_BANK_STATUS_3D_CURRENT_BANK_MASK 0x00000001U
-#define EUR_CR_BIF_BANK_STATUS_3D_CURRENT_BANK_SHIFT 0
-#define EUR_CR_BIF_BANK_STATUS_3D_CURRENT_BANK_SIGNED 0
-#define EUR_CR_BIF_BANK_STATUS_TA_CURRENT_BANK_MASK 0x00000002U
-#define EUR_CR_BIF_BANK_STATUS_TA_CURRENT_BANK_SHIFT 1
-#define EUR_CR_BIF_BANK_STATUS_TA_CURRENT_BANK_SIGNED 0
-#define EUR_CR_BIF_MMU_CTRL                 0x0CD0
-#define EUR_CR_BIF_MMU_CTRL_PREFETCHING_ON_MASK 0x00000001U
-#define EUR_CR_BIF_MMU_CTRL_PREFETCHING_ON_SHIFT 0
-#define EUR_CR_BIF_MMU_CTRL_PREFETCHING_ON_SIGNED 0
-#define EUR_CR_BIF_MMU_CTRL_ADDR_HASH_MODE_MASK 0x00000006U
-#define EUR_CR_BIF_MMU_CTRL_ADDR_HASH_MODE_SHIFT 1
-#define EUR_CR_BIF_MMU_CTRL_ADDR_HASH_MODE_SIGNED 0
-#define EUR_CR_BIF_MMU_CTRL_ENABLE_WRITE_BURST_COLLATE_MASK 0x00000008U
-#define EUR_CR_BIF_MMU_CTRL_ENABLE_WRITE_BURST_COLLATE_SHIFT 3
-#define EUR_CR_BIF_MMU_CTRL_ENABLE_WRITE_BURST_COLLATE_SIGNED 0
-#define EUR_CR_BIF_MMU_CTRL_ENABLE_DC_TLB_MASK 0x00000010U
-#define EUR_CR_BIF_MMU_CTRL_ENABLE_DC_TLB_SHIFT 4
-#define EUR_CR_BIF_MMU_CTRL_ENABLE_DC_TLB_SIGNED 0
-#define EUR_CR_BIF_MMU_CTRL_DISABLE_BURST_EXP_MASK 0x00000020U
-#define EUR_CR_BIF_MMU_CTRL_DISABLE_BURST_EXP_SHIFT 5
-#define EUR_CR_BIF_MMU_CTRL_DISABLE_BURST_EXP_SIGNED 0
-#define EUR_CR_2D_BLIT_STATUS               0x0E04
-#define EUR_CR_2D_BLIT_STATUS_COMPLETE_MASK 0x00FFFFFFU
-#define EUR_CR_2D_BLIT_STATUS_COMPLETE_SHIFT 0
-#define EUR_CR_2D_BLIT_STATUS_COMPLETE_SIGNED 0
-#define EUR_CR_2D_BLIT_STATUS_BUSY_MASK     0x01000000U
-#define EUR_CR_2D_BLIT_STATUS_BUSY_SHIFT    24
-#define EUR_CR_2D_BLIT_STATUS_BUSY_SIGNED   0
-#define EUR_CR_2D_VIRTUAL_FIFO_0            0x0E10
-#define EUR_CR_2D_VIRTUAL_FIFO_0_ENABLE_MASK 0x00000001U
-#define EUR_CR_2D_VIRTUAL_FIFO_0_ENABLE_SHIFT 0
-#define EUR_CR_2D_VIRTUAL_FIFO_0_ENABLE_SIGNED 0
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MASK 0x0000000EU
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_SHIFT 1
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_SIGNED 0
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_DIV_MASK 0x00000FF0U
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_DIV_SHIFT 4
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_DIV_SIGNED 0
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MUL_MASK 0x0000F000U
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MUL_SHIFT 12
-#define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MUL_SIGNED 0
-#define EUR_CR_2D_VIRTUAL_FIFO_1            0x0E14
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_ACC_MASK 0x00000FFFU
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_ACC_SHIFT 0
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_ACC_SIGNED 0
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MAX_ACC_MASK 0x00FFF000U
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MAX_ACC_SHIFT 12
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MAX_ACC_SIGNED 0
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_METRIC_MASK 0xFF000000U
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_METRIC_SHIFT 24
-#define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_METRIC_SIGNED 0
-#define EUR_CR_BREAKPOINT0_START            0x0F44
-#define EUR_CR_BREAKPOINT0_START_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT0_START_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT0_START_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT0_END              0x0F48
-#define EUR_CR_BREAKPOINT0_END_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT0_END_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT0_END_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT0                  0x0F4C
-#define EUR_CR_BREAKPOINT0_MASK_DM_MASK     0x00000038U
-#define EUR_CR_BREAKPOINT0_MASK_DM_SHIFT    3
-#define EUR_CR_BREAKPOINT0_MASK_DM_SIGNED   0
-#define EUR_CR_BREAKPOINT0_CTRL_TRAPENABLE_MASK 0x00000004U
-#define EUR_CR_BREAKPOINT0_CTRL_TRAPENABLE_SHIFT 2
-#define EUR_CR_BREAKPOINT0_CTRL_TRAPENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT0_CTRL_WENABLE_MASK 0x00000002U
-#define EUR_CR_BREAKPOINT0_CTRL_WENABLE_SHIFT 1
-#define EUR_CR_BREAKPOINT0_CTRL_WENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT0_CTRL_RENABLE_MASK 0x00000001U
-#define EUR_CR_BREAKPOINT0_CTRL_RENABLE_SHIFT 0
-#define EUR_CR_BREAKPOINT0_CTRL_RENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT1_START            0x0F50
-#define EUR_CR_BREAKPOINT1_START_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT1_START_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT1_START_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT1_END              0x0F54
-#define EUR_CR_BREAKPOINT1_END_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT1_END_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT1_END_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT1                  0x0F58
-#define EUR_CR_BREAKPOINT1_MASK_DM_MASK     0x00000038U
-#define EUR_CR_BREAKPOINT1_MASK_DM_SHIFT    3
-#define EUR_CR_BREAKPOINT1_MASK_DM_SIGNED   0
-#define EUR_CR_BREAKPOINT1_CTRL_TRAPENABLE_MASK 0x00000004U
-#define EUR_CR_BREAKPOINT1_CTRL_TRAPENABLE_SHIFT 2
-#define EUR_CR_BREAKPOINT1_CTRL_TRAPENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT1_CTRL_WENABLE_MASK 0x00000002U
-#define EUR_CR_BREAKPOINT1_CTRL_WENABLE_SHIFT 1
-#define EUR_CR_BREAKPOINT1_CTRL_WENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT1_CTRL_RENABLE_MASK 0x00000001U
-#define EUR_CR_BREAKPOINT1_CTRL_RENABLE_SHIFT 0
-#define EUR_CR_BREAKPOINT1_CTRL_RENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT2_START            0x0F5C
-#define EUR_CR_BREAKPOINT2_START_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT2_START_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT2_START_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT2_END              0x0F60
-#define EUR_CR_BREAKPOINT2_END_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT2_END_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT2_END_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT2                  0x0F64
-#define EUR_CR_BREAKPOINT2_MASK_DM_MASK     0x00000038U
-#define EUR_CR_BREAKPOINT2_MASK_DM_SHIFT    3
-#define EUR_CR_BREAKPOINT2_MASK_DM_SIGNED   0
-#define EUR_CR_BREAKPOINT2_CTRL_TRAPENABLE_MASK 0x00000004U
-#define EUR_CR_BREAKPOINT2_CTRL_TRAPENABLE_SHIFT 2
-#define EUR_CR_BREAKPOINT2_CTRL_TRAPENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT2_CTRL_WENABLE_MASK 0x00000002U
-#define EUR_CR_BREAKPOINT2_CTRL_WENABLE_SHIFT 1
-#define EUR_CR_BREAKPOINT2_CTRL_WENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT2_CTRL_RENABLE_MASK 0x00000001U
-#define EUR_CR_BREAKPOINT2_CTRL_RENABLE_SHIFT 0
-#define EUR_CR_BREAKPOINT2_CTRL_RENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT3_START            0x0F68
-#define EUR_CR_BREAKPOINT3_START_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT3_START_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT3_START_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT3_END              0x0F6C
-#define EUR_CR_BREAKPOINT3_END_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT3_END_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT3_END_ADDRESS_SIGNED 0
-#define EUR_CR_BREAKPOINT3                  0x0F70
-#define EUR_CR_BREAKPOINT3_MASK_DM_MASK     0x00000038U
-#define EUR_CR_BREAKPOINT3_MASK_DM_SHIFT    3
-#define EUR_CR_BREAKPOINT3_MASK_DM_SIGNED   0
-#define EUR_CR_BREAKPOINT3_CTRL_TRAPENABLE_MASK 0x00000004U
-#define EUR_CR_BREAKPOINT3_CTRL_TRAPENABLE_SHIFT 2
-#define EUR_CR_BREAKPOINT3_CTRL_TRAPENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT3_CTRL_WENABLE_MASK 0x00000002U
-#define EUR_CR_BREAKPOINT3_CTRL_WENABLE_SHIFT 1
-#define EUR_CR_BREAKPOINT3_CTRL_WENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT3_CTRL_RENABLE_MASK 0x00000001U
-#define EUR_CR_BREAKPOINT3_CTRL_RENABLE_SHIFT 0
-#define EUR_CR_BREAKPOINT3_CTRL_RENABLE_SIGNED 0
-#define EUR_CR_BREAKPOINT_READ              0x0F74
-#define EUR_CR_BREAKPOINT_READ_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_BREAKPOINT_READ_ADDRESS_SHIFT 4
-#define EUR_CR_BREAKPOINT_READ_ADDRESS_SIGNED 0
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP    0x0F78
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_CONTINUE_MASK 0x00000002U
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_CONTINUE_SHIFT 1
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_CONTINUE_SIGNED 0
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_WRNOTIFY_MASK 0x00000001U
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_WRNOTIFY_SHIFT 0
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_WRNOTIFY_SIGNED 0
-#define EUR_CR_PARTITION_BREAKPOINT         0x0F7C
-#define EUR_CR_PARTITION_BREAKPOINT_MODULE_ID_MASK 0x000003C0U
-#define EUR_CR_PARTITION_BREAKPOINT_MODULE_ID_SHIFT 6
-#define EUR_CR_PARTITION_BREAKPOINT_MODULE_ID_SIGNED 0
-#define EUR_CR_PARTITION_BREAKPOINT_ID_MASK 0x00000030U
-#define EUR_CR_PARTITION_BREAKPOINT_ID_SHIFT 4
-#define EUR_CR_PARTITION_BREAKPOINT_ID_SIGNED 0
-#define EUR_CR_PARTITION_BREAKPOINT_UNTRAPPED_MASK 0x00000008U
-#define EUR_CR_PARTITION_BREAKPOINT_UNTRAPPED_SHIFT 3
-#define EUR_CR_PARTITION_BREAKPOINT_UNTRAPPED_SIGNED 0
-#define EUR_CR_PARTITION_BREAKPOINT_TRAPPED_MASK 0x00000004U
-#define EUR_CR_PARTITION_BREAKPOINT_TRAPPED_SHIFT 2
-#define EUR_CR_PARTITION_BREAKPOINT_TRAPPED_SIGNED 0
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO0 0x0F80
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO0_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO0_ADDRESS_SHIFT 4
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO0_ADDRESS_SIGNED 0
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1 0x0F84
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_SIZE_MASK 0x00007C00U
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_SIZE_SHIFT 10
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_SIZE_SIGNED 0
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_NUMBER_MASK 0x00000300U
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_NUMBER_SHIFT 8
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_NUMBER_SIGNED 0
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_TAG_MASK 0x000000F8U
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_TAG_SHIFT 3
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_TAG_SIGNED 0
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_DATA_MASTER_MASK 0x00000006U
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_DATA_MASTER_SHIFT 1
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_DATA_MASTER_SIGNED 0
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_RNW_MASK 0x00000001U
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_RNW_SHIFT 0
-#define EUR_CR_PARTITION_BREAKPOINT_TRAP_INFO1_RNW_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_0              0x0A0C
-#define EUR_CR_USE_CODE_BASE_ADDR_00_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_00_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_00_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_00_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_00_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_00_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_1              0x0A10
-#define EUR_CR_USE_CODE_BASE_ADDR_01_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_01_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_01_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_01_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_01_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_01_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_2              0x0A14
-#define EUR_CR_USE_CODE_BASE_ADDR_02_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_02_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_02_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_02_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_02_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_02_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_3              0x0A18
-#define EUR_CR_USE_CODE_BASE_ADDR_03_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_03_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_03_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_03_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_03_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_03_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_4              0x0A1C
-#define EUR_CR_USE_CODE_BASE_ADDR_04_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_04_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_04_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_04_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_04_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_04_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_5              0x0A20
-#define EUR_CR_USE_CODE_BASE_ADDR_05_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_05_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_05_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_05_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_05_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_05_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_6              0x0A24
-#define EUR_CR_USE_CODE_BASE_ADDR_06_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_06_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_06_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_06_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_06_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_06_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_7              0x0A28
-#define EUR_CR_USE_CODE_BASE_ADDR_07_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_07_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_07_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_07_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_07_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_07_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_8              0x0A2C
-#define EUR_CR_USE_CODE_BASE_ADDR_08_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_08_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_08_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_08_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_08_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_08_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_9              0x0A30
-#define EUR_CR_USE_CODE_BASE_ADDR_09_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_09_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_09_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_09_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_09_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_09_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_10             0x0A34
-#define EUR_CR_USE_CODE_BASE_ADDR_10_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_10_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_10_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_10_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_10_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_10_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_11             0x0A38
-#define EUR_CR_USE_CODE_BASE_ADDR_11_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_11_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_11_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_11_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_11_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_11_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_12             0x0A3C
-#define EUR_CR_USE_CODE_BASE_ADDR_12_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_12_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_12_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_12_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_12_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_12_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_13             0x0A40
-#define EUR_CR_USE_CODE_BASE_ADDR_13_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_13_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_13_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_13_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_13_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_13_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_14             0x0A44
-#define EUR_CR_USE_CODE_BASE_ADDR_14_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_14_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_14_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_14_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_14_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_14_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_15             0x0A48
-#define EUR_CR_USE_CODE_BASE_ADDR_15_MASK   0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_15_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_15_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_15_MASK     0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_15_SHIFT    26
-#define EUR_CR_USE_CODE_BASE_DM_15_SIGNED   0
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP        0x0F88
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_CONTINUE_MASK 0x00000002U
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_CONTINUE_SHIFT 1
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_CONTINUE_SIGNED 0
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_WRNOTIFY_MASK 0x00000001U
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_WRNOTIFY_SHIFT 0
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_WRNOTIFY_SIGNED 0
-#define EUR_CR_PIPE0_BREAKPOINT             0x0F8C
-#define EUR_CR_PIPE0_BREAKPOINT_MODULE_ID_MASK 0x000003C0U
-#define EUR_CR_PIPE0_BREAKPOINT_MODULE_ID_SHIFT 6
-#define EUR_CR_PIPE0_BREAKPOINT_MODULE_ID_SIGNED 0
-#define EUR_CR_PIPE0_BREAKPOINT_ID_MASK     0x00000030U
-#define EUR_CR_PIPE0_BREAKPOINT_ID_SHIFT    4
-#define EUR_CR_PIPE0_BREAKPOINT_ID_SIGNED   0
-#define EUR_CR_PIPE0_BREAKPOINT_UNTRAPPED_MASK 0x00000008U
-#define EUR_CR_PIPE0_BREAKPOINT_UNTRAPPED_SHIFT 3
-#define EUR_CR_PIPE0_BREAKPOINT_UNTRAPPED_SIGNED 0
-#define EUR_CR_PIPE0_BREAKPOINT_TRAPPED_MASK 0x00000004U
-#define EUR_CR_PIPE0_BREAKPOINT_TRAPPED_SHIFT 2
-#define EUR_CR_PIPE0_BREAKPOINT_TRAPPED_SIGNED 0
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO0  0x0F90
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO0_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO0_ADDRESS_SHIFT 4
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO0_ADDRESS_SIGNED 0
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1  0x0F94
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_SIZE_MASK 0x00007C00U
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_SIZE_SHIFT 10
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_SIZE_SIGNED 0
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_NUMBER_MASK 0x00000300U
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_NUMBER_SHIFT 8
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_NUMBER_SIGNED 0
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_TAG_MASK 0x000000F8U
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_TAG_SHIFT 3
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_TAG_SIGNED 0
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_DATA_MASTER_MASK 0x00000006U
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_DATA_MASTER_SHIFT 1
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_DATA_MASTER_SIGNED 0
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_RNW_MASK 0x00000001U
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_RNW_SHIFT 0
-#define EUR_CR_PIPE0_BREAKPOINT_TRAP_INFO1_RNW_SIGNED 0
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP        0x0F98
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_CONTINUE_MASK 0x00000002U
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_CONTINUE_SHIFT 1
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_CONTINUE_SIGNED 0
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_WRNOTIFY_MASK 0x00000001U
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_WRNOTIFY_SHIFT 0
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_WRNOTIFY_SIGNED 0
-#define EUR_CR_PIPE1_BREAKPOINT             0x0F9C
-#define EUR_CR_PIPE1_BREAKPOINT_MODULE_ID_MASK 0x000003C0U
-#define EUR_CR_PIPE1_BREAKPOINT_MODULE_ID_SHIFT 6
-#define EUR_CR_PIPE1_BREAKPOINT_MODULE_ID_SIGNED 0
-#define EUR_CR_PIPE1_BREAKPOINT_ID_MASK     0x00000030U
-#define EUR_CR_PIPE1_BREAKPOINT_ID_SHIFT    4
-#define EUR_CR_PIPE1_BREAKPOINT_ID_SIGNED   0
-#define EUR_CR_PIPE1_BREAKPOINT_UNTRAPPED_MASK 0x00000008U
-#define EUR_CR_PIPE1_BREAKPOINT_UNTRAPPED_SHIFT 3
-#define EUR_CR_PIPE1_BREAKPOINT_UNTRAPPED_SIGNED 0
-#define EUR_CR_PIPE1_BREAKPOINT_TRAPPED_MASK 0x00000004U
-#define EUR_CR_PIPE1_BREAKPOINT_TRAPPED_SHIFT 2
-#define EUR_CR_PIPE1_BREAKPOINT_TRAPPED_SIGNED 0
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO0  0x0FA0
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO0_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO0_ADDRESS_SHIFT 4
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO0_ADDRESS_SIGNED 0
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1  0x0FA4
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_SIZE_MASK 0x00007C00U
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_SIZE_SHIFT 10
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_SIZE_SIGNED 0
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_NUMBER_MASK 0x00000300U
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_NUMBER_SHIFT 8
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_NUMBER_SIGNED 0
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_TAG_MASK 0x000000F8U
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_TAG_SHIFT 3
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_TAG_SIGNED 0
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_DATA_MASTER_MASK 0x00000006U
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_DATA_MASTER_SHIFT 1
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_DATA_MASTER_SIGNED 0
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_RNW_MASK 0x00000001U
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_RNW_SHIFT 0
-#define EUR_CR_PIPE1_BREAKPOINT_TRAP_INFO1_RNW_SIGNED 0
-#define EUR_CR_USE_CODE_BASE(X)     (0x0A0C + (4 * (X)))
-#define EUR_CR_USE_CODE_BASE_ADDR_MASK      0x03FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_SHIFT     0
-#define EUR_CR_USE_CODE_BASE_ADDR_SIGNED    0
-#define EUR_CR_USE_CODE_BASE_DM_MASK        0x0C000000U
-#define EUR_CR_USE_CODE_BASE_DM_SHIFT       26
-#define EUR_CR_USE_CODE_BASE_DM_SIGNED      0
-#define EUR_CR_USE_CODE_BASE_SIZE_UINT32 16
-#define EUR_CR_USE_CODE_BASE_NUM_ENTRIES 16
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx545defs.h b/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx545defs.h
deleted file mode 100644
index 4dc7f3c..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgx545defs.h
+++ /dev/null
@@ -1,1180 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _SGX545DEFS_KM_H_
-#define _SGX545DEFS_KM_H_
-
-#define EUR_CR_CLKGATECTL                   0x0000
-#define EUR_CR_CLKGATECTL_ISP_CLKG_MASK     0x00000003U
-#define EUR_CR_CLKGATECTL_ISP_CLKG_SHIFT    0
-#define EUR_CR_CLKGATECTL_ISP_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_ISP2_CLKG_MASK    0x0000000CU
-#define EUR_CR_CLKGATECTL_ISP2_CLKG_SHIFT   2
-#define EUR_CR_CLKGATECTL_ISP2_CLKG_SIGNED  0
-#define EUR_CR_CLKGATECTL_TSP_CLKG_MASK     0x00000030U
-#define EUR_CR_CLKGATECTL_TSP_CLKG_SHIFT    4
-#define EUR_CR_CLKGATECTL_TSP_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_TE_CLKG_MASK      0x000000C0U
-#define EUR_CR_CLKGATECTL_TE_CLKG_SHIFT     6
-#define EUR_CR_CLKGATECTL_TE_CLKG_SIGNED    0
-#define EUR_CR_CLKGATECTL_MTE_CLKG_MASK     0x00000300U
-#define EUR_CR_CLKGATECTL_MTE_CLKG_SHIFT    8
-#define EUR_CR_CLKGATECTL_MTE_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_DPM_CLKG_MASK     0x00000C00U
-#define EUR_CR_CLKGATECTL_DPM_CLKG_SHIFT    10
-#define EUR_CR_CLKGATECTL_DPM_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_VDM_CLKG_MASK     0x00003000U
-#define EUR_CR_CLKGATECTL_VDM_CLKG_SHIFT    12
-#define EUR_CR_CLKGATECTL_VDM_CLKG_SIGNED   0
-#define EUR_CR_CLKGATECTL_PDS0_CLKG_MASK    0x0000C000U
-#define EUR_CR_CLKGATECTL_PDS0_CLKG_SHIFT   14
-#define EUR_CR_CLKGATECTL_PDS0_CLKG_SIGNED  0
-#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_MASK 0x01000000U
-#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_SHIFT 24
-#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_SIGNED 0
-#define EUR_CR_CLKGATECTL2                  0x0004
-#define EUR_CR_CLKGATECTL2_PBE_CLKG_MASK    0x00000003U
-#define EUR_CR_CLKGATECTL2_PBE_CLKG_SHIFT   0
-#define EUR_CR_CLKGATECTL2_PBE_CLKG_SIGNED  0
-#define EUR_CR_CLKGATECTL2_CACHEL2_CLKG_MASK 0x0000000CU
-#define EUR_CR_CLKGATECTL2_CACHEL2_CLKG_SHIFT 2
-#define EUR_CR_CLKGATECTL2_CACHEL2_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_UCACHEL2_CLKG_MASK 0x00000030U
-#define EUR_CR_CLKGATECTL2_UCACHEL2_CLKG_SHIFT 4
-#define EUR_CR_CLKGATECTL2_UCACHEL2_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_USE0_CLKG_MASK   0x000000C0U
-#define EUR_CR_CLKGATECTL2_USE0_CLKG_SHIFT  6
-#define EUR_CR_CLKGATECTL2_USE0_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_ITR0_CLKG_MASK   0x00000300U
-#define EUR_CR_CLKGATECTL2_ITR0_CLKG_SHIFT  8
-#define EUR_CR_CLKGATECTL2_ITR0_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_TEX0_CLKG_MASK   0x00000C00U
-#define EUR_CR_CLKGATECTL2_TEX0_CLKG_SHIFT  10
-#define EUR_CR_CLKGATECTL2_TEX0_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_MADD0_CLKG_MASK  0x00003000U
-#define EUR_CR_CLKGATECTL2_MADD0_CLKG_SHIFT 12
-#define EUR_CR_CLKGATECTL2_MADD0_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_USE1_CLKG_MASK   0x0000C000U
-#define EUR_CR_CLKGATECTL2_USE1_CLKG_SHIFT  14
-#define EUR_CR_CLKGATECTL2_USE1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_ITR1_CLKG_MASK   0x00030000U
-#define EUR_CR_CLKGATECTL2_ITR1_CLKG_SHIFT  16
-#define EUR_CR_CLKGATECTL2_ITR1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_TEX1_CLKG_MASK   0x000C0000U
-#define EUR_CR_CLKGATECTL2_TEX1_CLKG_SHIFT  18
-#define EUR_CR_CLKGATECTL2_TEX1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_MADD1_CLKG_MASK  0x00300000U
-#define EUR_CR_CLKGATECTL2_MADD1_CLKG_SHIFT 20
-#define EUR_CR_CLKGATECTL2_MADD1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATECTL2_PDS1_CLKG_MASK   0x00C00000U
-#define EUR_CR_CLKGATECTL2_PDS1_CLKG_SHIFT  22
-#define EUR_CR_CLKGATECTL2_PDS1_CLKG_SIGNED 0
-#define EUR_CR_CLKGATESTATUS                0x0008
-#define EUR_CR_CLKGATESTATUS_ISP_CLKS_MASK  0x00000001U
-#define EUR_CR_CLKGATESTATUS_ISP_CLKS_SHIFT 0
-#define EUR_CR_CLKGATESTATUS_ISP_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_ISP2_CLKS_MASK 0x00000002U
-#define EUR_CR_CLKGATESTATUS_ISP2_CLKS_SHIFT 1
-#define EUR_CR_CLKGATESTATUS_ISP2_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TSP_CLKS_MASK  0x00000004U
-#define EUR_CR_CLKGATESTATUS_TSP_CLKS_SHIFT 2
-#define EUR_CR_CLKGATESTATUS_TSP_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TE_CLKS_MASK   0x00000008U
-#define EUR_CR_CLKGATESTATUS_TE_CLKS_SHIFT  3
-#define EUR_CR_CLKGATESTATUS_TE_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_MTE_CLKS_MASK  0x00000010U
-#define EUR_CR_CLKGATESTATUS_MTE_CLKS_SHIFT 4
-#define EUR_CR_CLKGATESTATUS_MTE_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_DPM_CLKS_MASK  0x00000020U
-#define EUR_CR_CLKGATESTATUS_DPM_CLKS_SHIFT 5
-#define EUR_CR_CLKGATESTATUS_DPM_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_VDM_CLKS_MASK  0x00000040U
-#define EUR_CR_CLKGATESTATUS_VDM_CLKS_SHIFT 6
-#define EUR_CR_CLKGATESTATUS_VDM_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_PDS0_CLKS_MASK 0x00000080U
-#define EUR_CR_CLKGATESTATUS_PDS0_CLKS_SHIFT 7
-#define EUR_CR_CLKGATESTATUS_PDS0_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_PBE_CLKS_MASK  0x00000100U
-#define EUR_CR_CLKGATESTATUS_PBE_CLKS_SHIFT 8
-#define EUR_CR_CLKGATESTATUS_PBE_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_CACHEL2_CLKS_MASK 0x00000200U
-#define EUR_CR_CLKGATESTATUS_CACHEL2_CLKS_SHIFT 9
-#define EUR_CR_CLKGATESTATUS_CACHEL2_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_UCACHEL2_CLKS_MASK 0x00000400U
-#define EUR_CR_CLKGATESTATUS_UCACHEL2_CLKS_SHIFT 10
-#define EUR_CR_CLKGATESTATUS_UCACHEL2_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_USE0_CLKS_MASK 0x00000800U
-#define EUR_CR_CLKGATESTATUS_USE0_CLKS_SHIFT 11
-#define EUR_CR_CLKGATESTATUS_USE0_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_ITR0_CLKS_MASK 0x00001000U
-#define EUR_CR_CLKGATESTATUS_ITR0_CLKS_SHIFT 12
-#define EUR_CR_CLKGATESTATUS_ITR0_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TEX0_CLKS_MASK 0x00002000U
-#define EUR_CR_CLKGATESTATUS_TEX0_CLKS_SHIFT 13
-#define EUR_CR_CLKGATESTATUS_TEX0_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_MADD0_CLKS_MASK 0x00004000U
-#define EUR_CR_CLKGATESTATUS_MADD0_CLKS_SHIFT 14
-#define EUR_CR_CLKGATESTATUS_MADD0_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_USE1_CLKS_MASK 0x00008000U
-#define EUR_CR_CLKGATESTATUS_USE1_CLKS_SHIFT 15
-#define EUR_CR_CLKGATESTATUS_USE1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_ITR1_CLKS_MASK 0x00010000U
-#define EUR_CR_CLKGATESTATUS_ITR1_CLKS_SHIFT 16
-#define EUR_CR_CLKGATESTATUS_ITR1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_TEX1_CLKS_MASK 0x00020000U
-#define EUR_CR_CLKGATESTATUS_TEX1_CLKS_SHIFT 17
-#define EUR_CR_CLKGATESTATUS_TEX1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_MADD1_CLKS_MASK 0x00040000U
-#define EUR_CR_CLKGATESTATUS_MADD1_CLKS_SHIFT 18
-#define EUR_CR_CLKGATESTATUS_MADD1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATESTATUS_PDS1_CLKS_MASK 0x00080000U
-#define EUR_CR_CLKGATESTATUS_PDS1_CLKS_SHIFT 19
-#define EUR_CR_CLKGATESTATUS_PDS1_CLKS_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR                0x000C
-#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_MASK  0x00000003U
-#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_SHIFT 0
-#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_ISP2_CLKO_MASK 0x0000000CU
-#define EUR_CR_CLKGATECTLOVR_ISP2_CLKO_SHIFT 2
-#define EUR_CR_CLKGATECTLOVR_ISP2_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_MASK  0x00000030U
-#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_SHIFT 4
-#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_TE_CLKO_MASK   0x000000C0U
-#define EUR_CR_CLKGATECTLOVR_TE_CLKO_SHIFT  6
-#define EUR_CR_CLKGATECTLOVR_TE_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_MTE_CLKO_MASK  0x00000300U
-#define EUR_CR_CLKGATECTLOVR_MTE_CLKO_SHIFT 8
-#define EUR_CR_CLKGATECTLOVR_MTE_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_MASK  0x00000C00U
-#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_SHIFT 10
-#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_VDM_CLKO_MASK  0x00003000U
-#define EUR_CR_CLKGATECTLOVR_VDM_CLKO_SHIFT 12
-#define EUR_CR_CLKGATECTLOVR_VDM_CLKO_SIGNED 0
-#define EUR_CR_CLKGATECTLOVR_PDS0_CLKO_MASK 0x0000C000U
-#define EUR_CR_CLKGATECTLOVR_PDS0_CLKO_SHIFT 14
-#define EUR_CR_CLKGATECTLOVR_PDS0_CLKO_SIGNED 0
-#define EUR_CR_CORE_ID                      0x001C
-#define EUR_CR_CORE_ID_CONFIG_MASK          0x0000FFFFU
-#define EUR_CR_CORE_ID_CONFIG_SHIFT         0
-#define EUR_CR_CORE_ID_CONFIG_SIGNED        0
-#define EUR_CR_CORE_ID_ID_MASK              0xFFFF0000U
-#define EUR_CR_CORE_ID_ID_SHIFT             16
-#define EUR_CR_CORE_ID_ID_SIGNED            0
-#define EUR_CR_CORE_REVISION                0x0020
-#define EUR_CR_CORE_REVISION_MAINTENANCE_MASK 0x000000FFU
-#define EUR_CR_CORE_REVISION_MAINTENANCE_SHIFT 0
-#define EUR_CR_CORE_REVISION_MAINTENANCE_SIGNED 0
-#define EUR_CR_CORE_REVISION_MINOR_MASK     0x0000FF00U
-#define EUR_CR_CORE_REVISION_MINOR_SHIFT    8
-#define EUR_CR_CORE_REVISION_MINOR_SIGNED   0
-#define EUR_CR_CORE_REVISION_MAJOR_MASK     0x00FF0000U
-#define EUR_CR_CORE_REVISION_MAJOR_SHIFT    16
-#define EUR_CR_CORE_REVISION_MAJOR_SIGNED   0
-#define EUR_CR_CORE_REVISION_DESIGNER_MASK  0xFF000000U
-#define EUR_CR_CORE_REVISION_DESIGNER_SHIFT 24
-#define EUR_CR_CORE_REVISION_DESIGNER_SIGNED 0
-#define EUR_CR_DESIGNER_REV_FIELD1          0x0024
-#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_MASK 0xFFFFFFFFU
-#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_SHIFT 0
-#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_SIGNED 0
-#define EUR_CR_DESIGNER_REV_FIELD2          0x002C
-#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_MASK 0xFFFFFFFFU
-#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_SHIFT 0
-#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_SIGNED 0
-#define EUR_CR_SOFT_RESET                   0x0080
-#define EUR_CR_SOFT_RESET_BIF_RESET_MASK    0x00000001U
-#define EUR_CR_SOFT_RESET_BIF_RESET_SHIFT   0
-#define EUR_CR_SOFT_RESET_BIF_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_DPM_RESET_MASK    0x00000002U
-#define EUR_CR_SOFT_RESET_DPM_RESET_SHIFT   1
-#define EUR_CR_SOFT_RESET_DPM_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_TA_RESET_MASK     0x00000004U
-#define EUR_CR_SOFT_RESET_TA_RESET_SHIFT    2
-#define EUR_CR_SOFT_RESET_TA_RESET_SIGNED   0
-#define EUR_CR_SOFT_RESET_USE_RESET_MASK    0x00000008U
-#define EUR_CR_SOFT_RESET_USE_RESET_SHIFT   3
-#define EUR_CR_SOFT_RESET_USE_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_ISP_RESET_MASK    0x00000010U
-#define EUR_CR_SOFT_RESET_ISP_RESET_SHIFT   4
-#define EUR_CR_SOFT_RESET_ISP_RESET_SIGNED  0
-#define EUR_CR_SOFT_RESET_TSP_RESET_MASK    0x00000020U
-#define EUR_CR_SOFT_RESET_TSP_RESET_SHIFT   5
-#define EUR_CR_SOFT_RESET_TSP_RESET_SIGNED  0
-#define EUR_CR_EVENT_HOST_ENABLE2           0x0110
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_STATE_FLUSHED_MASK 0x00008000U
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_STATE_FLUSHED_SHIFT 15
-#define EUR_CR_EVENT_HOST_ENABLE2_MTE_STATE_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_VDM_CONTEXT_LOAD_MASK 0x00004000U
-#define EUR_CR_EVENT_HOST_ENABLE2_VDM_CONTEXT_LOAD_SHIFT 14
-#define EUR_CR_EVENT_HOST_ENABLE2_VDM_CONTEXT_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_VDM_TASK_KICKED_MASK 0x00002000U
-#define EUR_CR_EVENT_HOST_ENABLE2_VDM_TASK_KICKED_SHIFT 13
-#define EUR_CR_EVENT_HOST_ENABLE2_VDM_TASK_KICKED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_OTPM_MEM_CLEARED_MASK 0x00001000U
-#define EUR_CR_EVENT_HOST_ENABLE2_OTPM_MEM_CLEARED_SHIFT 12
-#define EUR_CR_EVENT_HOST_ENABLE2_OTPM_MEM_CLEARED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_OTPM_FLUSHED_INV_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_ENABLE2_OTPM_FLUSHED_INV_SHIFT 11
-#define EUR_CR_EVENT_HOST_ENABLE2_OTPM_FLUSHED_INV_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DCU_INVALCOMPLETE_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_ENABLE2_DCU_INVALCOMPLETE_SHIFT 10
-#define EUR_CR_EVENT_HOST_ENABLE2_DCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_GSG_FLUSHED_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_ENABLE2_GSG_FLUSHED_SHIFT 9
-#define EUR_CR_EVENT_HOST_ENABLE2_GSG_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_GSG_LOADED_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_ENABLE2_GSG_LOADED_SHIFT 8
-#define EUR_CR_EVENT_HOST_ENABLE2_GSG_LOADED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_SHIFT 7
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_SHIFT 6
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_SHIFT 5
-#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_DHOST_FREE_LOAD_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_DHOST_FREE_LOAD_SHIFT 3
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_DHOST_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_HOST_FREE_LOAD_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_HOST_FREE_LOAD_SHIFT 2
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_HOST_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2            0x0114
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_STATE_FLUSHED_MASK 0x00008000U
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_STATE_FLUSHED_SHIFT 15
-#define EUR_CR_EVENT_HOST_CLEAR2_MTE_STATE_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_VDM_CONTEXT_LOAD_MASK 0x00004000U
-#define EUR_CR_EVENT_HOST_CLEAR2_VDM_CONTEXT_LOAD_SHIFT 14
-#define EUR_CR_EVENT_HOST_CLEAR2_VDM_CONTEXT_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_VDM_TASK_KICKED_MASK 0x00002000U
-#define EUR_CR_EVENT_HOST_CLEAR2_VDM_TASK_KICKED_SHIFT 13
-#define EUR_CR_EVENT_HOST_CLEAR2_VDM_TASK_KICKED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_OTPM_MEM_CLEARED_MASK 0x00001000U
-#define EUR_CR_EVENT_HOST_CLEAR2_OTPM_MEM_CLEARED_SHIFT 12
-#define EUR_CR_EVENT_HOST_CLEAR2_OTPM_MEM_CLEARED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_OTPM_FLUSHED_INV_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_CLEAR2_OTPM_FLUSHED_INV_SHIFT 11
-#define EUR_CR_EVENT_HOST_CLEAR2_OTPM_FLUSHED_INV_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DCU_INVALCOMPLETE_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_CLEAR2_DCU_INVALCOMPLETE_SHIFT 10
-#define EUR_CR_EVENT_HOST_CLEAR2_DCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_GSG_FLUSHED_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_CLEAR2_GSG_FLUSHED_SHIFT 9
-#define EUR_CR_EVENT_HOST_CLEAR2_GSG_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_GSG_LOADED_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_CLEAR2_GSG_LOADED_SHIFT 8
-#define EUR_CR_EVENT_HOST_CLEAR2_GSG_LOADED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_SHIFT 7
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_SHIFT 6
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_SHIFT 5
-#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_DHOST_FREE_LOAD_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_DHOST_FREE_LOAD_SHIFT 3
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_DHOST_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_HOST_FREE_LOAD_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_HOST_FREE_LOAD_SHIFT 2
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_HOST_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS2                0x0118
-#define EUR_CR_EVENT_STATUS2_MTE_STATE_FLUSHED_MASK 0x00008000U
-#define EUR_CR_EVENT_STATUS2_MTE_STATE_FLUSHED_SHIFT 15
-#define EUR_CR_EVENT_STATUS2_MTE_STATE_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_VDM_CONTEXT_LOAD_MASK 0x00004000U
-#define EUR_CR_EVENT_STATUS2_VDM_CONTEXT_LOAD_SHIFT 14
-#define EUR_CR_EVENT_STATUS2_VDM_CONTEXT_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_VDM_TASK_KICKED_MASK 0x00002000U
-#define EUR_CR_EVENT_STATUS2_VDM_TASK_KICKED_SHIFT 13
-#define EUR_CR_EVENT_STATUS2_VDM_TASK_KICKED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_OTPM_MEM_CLEARED_MASK 0x00001000U
-#define EUR_CR_EVENT_STATUS2_OTPM_MEM_CLEARED_SHIFT 12
-#define EUR_CR_EVENT_STATUS2_OTPM_MEM_CLEARED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_OTPM_FLUSHED_INV_MASK 0x00000800U
-#define EUR_CR_EVENT_STATUS2_OTPM_FLUSHED_INV_SHIFT 11
-#define EUR_CR_EVENT_STATUS2_OTPM_FLUSHED_INV_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_DCU_INVALCOMPLETE_MASK 0x00000400U
-#define EUR_CR_EVENT_STATUS2_DCU_INVALCOMPLETE_SHIFT 10
-#define EUR_CR_EVENT_STATUS2_DCU_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_GSG_FLUSHED_MASK 0x00000200U
-#define EUR_CR_EVENT_STATUS2_GSG_FLUSHED_SHIFT 9
-#define EUR_CR_EVENT_STATUS2_GSG_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_GSG_LOADED_MASK 0x00000100U
-#define EUR_CR_EVENT_STATUS2_GSG_LOADED_SHIFT 8
-#define EUR_CR_EVENT_STATUS2_GSG_LOADED_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_TRIG_TA_MASK   0x00000080U
-#define EUR_CR_EVENT_STATUS2_TRIG_TA_SHIFT  7
-#define EUR_CR_EVENT_STATUS2_TRIG_TA_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_TRIG_3D_MASK   0x00000040U
-#define EUR_CR_EVENT_STATUS2_TRIG_3D_SHIFT  6
-#define EUR_CR_EVENT_STATUS2_TRIG_3D_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_TRIG_DL_MASK   0x00000020U
-#define EUR_CR_EVENT_STATUS2_TRIG_DL_SHIFT  5
-#define EUR_CR_EVENT_STATUS2_TRIG_DL_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_DPM_DHOST_FREE_LOAD_MASK 0x00000008U
-#define EUR_CR_EVENT_STATUS2_DPM_DHOST_FREE_LOAD_SHIFT 3
-#define EUR_CR_EVENT_STATUS2_DPM_DHOST_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_DPM_HOST_FREE_LOAD_MASK 0x00000004U
-#define EUR_CR_EVENT_STATUS2_DPM_HOST_FREE_LOAD_SHIFT 2
-#define EUR_CR_EVENT_STATUS2_DPM_HOST_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_MASK 0x00000002U
-#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_SHIFT 1
-#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_MASK 0x00000001U
-#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_SHIFT 0
-#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS                 0x012C
-#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TIMER_MASK      0x20000000U
-#define EUR_CR_EVENT_STATUS_TIMER_SHIFT     29
-#define EUR_CR_EVENT_STATUS_TIMER_SIGNED    0
-#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_STATUS_MADD_CACHE_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_STATUS_MADD_CACHE_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_STATUS_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_STATUS_ISP_END_TILE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_STATUS_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_STATUS_DPM_INITEND_SIGNED 0
-#define EUR_CR_EVENT_STATUS_ISP2_ZLS_CSW_FINISHED_MASK 0x00200000U
-#define EUR_CR_EVENT_STATUS_ISP2_ZLS_CSW_FINISHED_SHIFT 21
-#define EUR_CR_EVENT_STATUS_ISP2_ZLS_CSW_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_STATUS_OTPM_INV_MASK   0x00100000U
-#define EUR_CR_EVENT_STATUS_OTPM_INV_SHIFT  20
-#define EUR_CR_EVENT_STATUS_OTPM_INV_SIGNED 0
-#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_SIGNED 0
-#define EUR_CR_EVENT_STATUS_ISP_VISIBILITY_FAIL_MASK 0x00010000U
-#define EUR_CR_EVENT_STATUS_ISP_VISIBILITY_FAIL_SHIFT 16
-#define EUR_CR_EVENT_STATUS_ISP_VISIBILITY_FAIL_SIGNED 0
-#define EUR_CR_EVENT_STATUS_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_STATUS_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_STATUS_BREAKPOINT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_SW_EVENT_MASK   0x00004000U
-#define EUR_CR_EVENT_STATUS_SW_EVENT_SHIFT  14
-#define EUR_CR_EVENT_STATUS_SW_EVENT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_STATUS_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_STATUS_TA_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_STATUS_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_STATUS_TA_TERMINATE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TPC_CLEAR_MASK  0x00000800U
-#define EUR_CR_EVENT_STATUS_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_STATUS_TPC_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_STATUS_TPC_FLUSH_MASK  0x00000400U
-#define EUR_CR_EVENT_STATUS_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_STATUS_TPC_FLUSH_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_SIGNED 0
-#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE            0x0130
-#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TIMER_MASK 0x20000000U
-#define EUR_CR_EVENT_HOST_ENABLE_TIMER_SHIFT 29
-#define EUR_CR_EVENT_HOST_ENABLE_TIMER_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_HOST_ENABLE_MADD_CACHE_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_HOST_ENABLE_MADD_CACHE_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_ISP2_ZLS_CSW_FINISHED_MASK 0x00200000U
-#define EUR_CR_EVENT_HOST_ENABLE_ISP2_ZLS_CSW_FINISHED_SHIFT 21
-#define EUR_CR_EVENT_HOST_ENABLE_ISP2_ZLS_CSW_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_MASK 0x00100000U
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_SHIFT 20
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_VISIBILITY_FAIL_MASK 0x00010000U
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_VISIBILITY_FAIL_SHIFT 16
-#define EUR_CR_EVENT_HOST_ENABLE_ISP_VISIBILITY_FAIL_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_MASK 0x00004000U
-#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_SHIFT 14
-#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_SIGNED 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR             0x0134
-#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_MASK 0x80000000U
-#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_SHIFT 31
-#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TIMER_MASK  0x20000000U
-#define EUR_CR_EVENT_HOST_CLEAR_TIMER_SHIFT 29
-#define EUR_CR_EVENT_HOST_CLEAR_TIMER_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_MASK 0x10000000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_SHIFT 28
-#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000U
-#define EUR_CR_EVENT_HOST_CLEAR_MADD_CACHE_INVALCOMPLETE_SHIFT 26
-#define EUR_CR_EVENT_HOST_CLEAR_MADD_CACHE_INVALCOMPLETE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_MASK 0x01000000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_SHIFT 24
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_MASK 0x00800000U
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_SHIFT 23
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_MASK 0x00400000U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_SHIFT 22
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_ISP2_ZLS_CSW_FINISHED_MASK 0x00200000U
-#define EUR_CR_EVENT_HOST_CLEAR_ISP2_ZLS_CSW_FINISHED_SHIFT 21
-#define EUR_CR_EVENT_HOST_CLEAR_ISP2_ZLS_CSW_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_MASK 0x00100000U
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_SHIFT 20
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_MASK 0x00080000U
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_SHIFT 19
-#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_MASK 0x00040000U
-#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_SHIFT 18
-#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_VISIBILITY_FAIL_MASK 0x00010000U
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_VISIBILITY_FAIL_SHIFT 16
-#define EUR_CR_EVENT_HOST_CLEAR_ISP_VISIBILITY_FAIL_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_MASK 0x00008000U
-#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_SHIFT 15
-#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_MASK 0x00004000U
-#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_SHIFT 14
-#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_MASK 0x00002000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_SHIFT 13
-#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_MASK 0x00001000U
-#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_SHIFT 12
-#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_MASK 0x00000800U
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_SHIFT 11
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_MASK 0x00000400U
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_SHIFT 10
-#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_MASK 0x00000200U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_SHIFT 9
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_MASK 0x00000100U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_SHIFT 8
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_MASK 0x00000080U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_SHIFT 7
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_MASK 0x00000040U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_SHIFT 6
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_MASK 0x00000020U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_SHIFT 5
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_MASK 0x00000010U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_SHIFT 4
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_MASK 0x00000008U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_SHIFT 3
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_SHIFT 1
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_SIGNED 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_MASK 0x00000001U
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_SHIFT 0
-#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_SIGNED 0
-#define EUR_CR_TIMER                        0x0144
-#define EUR_CR_TIMER_VALUE_MASK             0xFFFFFFFFU
-#define EUR_CR_TIMER_VALUE_SHIFT            0
-#define EUR_CR_TIMER_VALUE_SIGNED           0
-#define EUR_CR_USE_CODE_BASE_0              0x0A0C
-#define EUR_CR_USE_CODE_BASE_ADDR_00_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_00_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_00_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_00_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_00_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_00_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_1              0x0A10
-#define EUR_CR_USE_CODE_BASE_ADDR_01_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_01_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_01_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_01_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_01_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_01_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_2              0x0A14
-#define EUR_CR_USE_CODE_BASE_ADDR_02_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_02_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_02_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_02_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_02_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_02_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_3              0x0A18
-#define EUR_CR_USE_CODE_BASE_ADDR_03_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_03_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_03_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_03_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_03_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_03_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_4              0x0A1C
-#define EUR_CR_USE_CODE_BASE_ADDR_04_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_04_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_04_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_04_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_04_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_04_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_5              0x0A20
-#define EUR_CR_USE_CODE_BASE_ADDR_05_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_05_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_05_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_05_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_05_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_05_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_6              0x0A24
-#define EUR_CR_USE_CODE_BASE_ADDR_06_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_06_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_06_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_06_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_06_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_06_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_7              0x0A28
-#define EUR_CR_USE_CODE_BASE_ADDR_07_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_07_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_07_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_07_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_07_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_07_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_8              0x0A2C
-#define EUR_CR_USE_CODE_BASE_ADDR_08_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_08_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_08_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_08_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_08_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_08_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_9              0x0A30
-#define EUR_CR_USE_CODE_BASE_ADDR_09_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_09_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_09_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_09_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_09_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_09_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_10             0x0A34
-#define EUR_CR_USE_CODE_BASE_ADDR_10_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_10_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_10_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_10_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_10_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_10_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_11             0x0A38
-#define EUR_CR_USE_CODE_BASE_ADDR_11_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_11_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_11_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_11_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_11_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_11_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_12             0x0A3C
-#define EUR_CR_USE_CODE_BASE_ADDR_12_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_12_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_12_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_12_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_12_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_12_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_13             0x0A40
-#define EUR_CR_USE_CODE_BASE_ADDR_13_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_13_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_13_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_13_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_13_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_13_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_14             0x0A44
-#define EUR_CR_USE_CODE_BASE_ADDR_14_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_14_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_14_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_14_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_14_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_14_SIGNED   0
-#define EUR_CR_USE_CODE_BASE_15             0x0A48
-#define EUR_CR_USE_CODE_BASE_ADDR_15_MASK   0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_15_SHIFT  0
-#define EUR_CR_USE_CODE_BASE_ADDR_15_SIGNED 0
-#define EUR_CR_USE_CODE_BASE_DM_15_MASK     0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_15_SHIFT    25
-#define EUR_CR_USE_CODE_BASE_DM_15_SIGNED   0
-#define EUR_CR_PDS_EXEC_BASE                0x0AB8
-#define EUR_CR_PDS_EXEC_BASE_ADDR_MASK      0xFFF00000U
-#define EUR_CR_PDS_EXEC_BASE_ADDR_SHIFT     20
-#define EUR_CR_PDS_EXEC_BASE_ADDR_SIGNED    0
-#define EUR_CR_EVENT_KICKER                 0x0AC4
-#define EUR_CR_EVENT_KICKER_ADDRESS_MASK    0xFFFFFFF0U
-#define EUR_CR_EVENT_KICKER_ADDRESS_SHIFT   4
-#define EUR_CR_EVENT_KICKER_ADDRESS_SIGNED  0
-#define EUR_CR_EVENT_KICK                   0x0AC8
-#define EUR_CR_EVENT_KICK_NOW_MASK          0x00000001U
-#define EUR_CR_EVENT_KICK_NOW_SHIFT         0
-#define EUR_CR_EVENT_KICK_NOW_SIGNED        0
-#define EUR_CR_EVENT_TIMER                  0x0ACC
-#define EUR_CR_EVENT_TIMER_ENABLE_MASK      0x01000000U
-#define EUR_CR_EVENT_TIMER_ENABLE_SHIFT     24
-#define EUR_CR_EVENT_TIMER_ENABLE_SIGNED    0
-#define EUR_CR_EVENT_TIMER_VALUE_MASK       0x00FFFFFFU
-#define EUR_CR_EVENT_TIMER_VALUE_SHIFT      0
-#define EUR_CR_EVENT_TIMER_VALUE_SIGNED     0
-#define EUR_CR_PDS_INV0                     0x0AD0
-#define EUR_CR_PDS_INV0_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV0_DSC_SHIFT           0
-#define EUR_CR_PDS_INV0_DSC_SIGNED          0
-#define EUR_CR_PDS_INV1                     0x0AD4
-#define EUR_CR_PDS_INV1_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV1_DSC_SHIFT           0
-#define EUR_CR_PDS_INV1_DSC_SIGNED          0
-#define EUR_CR_PDS_INV3                     0x0AD8
-#define EUR_CR_PDS_INV3_DSC_MASK            0x00000001U
-#define EUR_CR_PDS_INV3_DSC_SHIFT           0
-#define EUR_CR_PDS_INV3_DSC_SIGNED          0
-#define EUR_CR_PDS_INV_CSC                  0x0AE0
-#define EUR_CR_PDS_INV_CSC_KICK_MASK        0x00000001U
-#define EUR_CR_PDS_INV_CSC_KICK_SHIFT       0
-#define EUR_CR_PDS_INV_CSC_KICK_SIGNED      0
-#define EUR_CR_EVENT_KICK1                  0x0AE4
-#define EUR_CR_EVENT_KICK1_NOW_MASK         0x000000FFU
-#define EUR_CR_EVENT_KICK1_NOW_SHIFT        0
-#define EUR_CR_EVENT_KICK1_NOW_SIGNED       0
-#define EUR_CR_EVENT_KICK2                  0x0AE8
-#define EUR_CR_EVENT_KICK2_NOW_MASK         0x00000001U
-#define EUR_CR_EVENT_KICK2_NOW_SHIFT        0
-#define EUR_CR_EVENT_KICK2_NOW_SIGNED       0
-#define EUR_CR_EVENT_KICK3                  0x0AEC
-#define EUR_CR_EVENT_KICK3_NOW_MASK         0x00000001U
-#define EUR_CR_EVENT_KICK3_NOW_SHIFT        0
-#define EUR_CR_EVENT_KICK3_NOW_SIGNED       0
-#define EUR_CR_BIF_CTRL                     0x0C00
-#define EUR_CR_BIF_CTRL_NOREORDER_MASK      0x00000001U
-#define EUR_CR_BIF_CTRL_NOREORDER_SHIFT     0
-#define EUR_CR_BIF_CTRL_NOREORDER_SIGNED    0
-#define EUR_CR_BIF_CTRL_PAUSE_MASK          0x00000002U
-#define EUR_CR_BIF_CTRL_PAUSE_SHIFT         1
-#define EUR_CR_BIF_CTRL_PAUSE_SIGNED        0
-#define EUR_CR_BIF_CTRL_FLUSH_MASK          0x00000004U
-#define EUR_CR_BIF_CTRL_FLUSH_SHIFT         2
-#define EUR_CR_BIF_CTRL_FLUSH_SIGNED        0
-#define EUR_CR_BIF_CTRL_INVALDC_MASK        0x00000008U
-#define EUR_CR_BIF_CTRL_INVALDC_SHIFT       3
-#define EUR_CR_BIF_CTRL_INVALDC_SIGNED      0
-#define EUR_CR_BIF_CTRL_CLEAR_FAULT_MASK    0x00000010U
-#define EUR_CR_BIF_CTRL_CLEAR_FAULT_SHIFT   4
-#define EUR_CR_BIF_CTRL_CLEAR_FAULT_SIGNED  0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_CACHE_MASK 0x00000100U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_CACHE_SHIFT 8
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_CACHE_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_MASK 0x00000200U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_SHIFT 9
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TE_MASK  0x00000400U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TE_SHIFT 10
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TE_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_MASK 0x00000800U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_SHIFT 11
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_MASK 0x00001000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_SHIFT 12
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_MASK 0x00002000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_SHIFT 13
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_MASK 0x00004000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_SHIFT 14
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_SIGNED 0
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_HOST_MASK 0x00008000U
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_HOST_SHIFT 15
-#define EUR_CR_BIF_CTRL_MMU_BYPASS_HOST_SIGNED 0
-#define EUR_CR_BIF_INT_STAT                 0x0C04
-#define EUR_CR_BIF_INT_STAT_FAULT_REQ_MASK  0x0000FFFFU
-#define EUR_CR_BIF_INT_STAT_FAULT_REQ_SHIFT 0
-#define EUR_CR_BIF_INT_STAT_FAULT_REQ_SIGNED 0
-#define EUR_CR_BIF_INT_STAT_FAULT_TYPE_MASK 0x00070000U
-#define EUR_CR_BIF_INT_STAT_FAULT_TYPE_SHIFT 16
-#define EUR_CR_BIF_INT_STAT_FAULT_TYPE_SIGNED 0
-#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_MASK 0x00080000U
-#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_SHIFT 19
-#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_SIGNED 0
-#define EUR_CR_BIF_FAULT                    0x0C08
-#define EUR_CR_BIF_FAULT_CID_MASK           0x0000000FU
-#define EUR_CR_BIF_FAULT_CID_SHIFT          0
-#define EUR_CR_BIF_FAULT_CID_SIGNED         0
-#define EUR_CR_BIF_FAULT_SB_MASK            0x000001F0U
-#define EUR_CR_BIF_FAULT_SB_SHIFT           4
-#define EUR_CR_BIF_FAULT_SB_SIGNED          0
-#define EUR_CR_BIF_FAULT_ADDR_MASK          0xFFFFF000U
-#define EUR_CR_BIF_FAULT_ADDR_SHIFT         12
-#define EUR_CR_BIF_FAULT_ADDR_SIGNED        0
-#define EUR_CR_BIF_TILE0                    0x0C0C
-#define EUR_CR_BIF_TILE0_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE0_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE0_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE0_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE0_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE0_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE0_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE0_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE0_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE1                    0x0C10
-#define EUR_CR_BIF_TILE1_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE1_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE1_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE1_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE1_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE1_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE1_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE1_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE1_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE2                    0x0C14
-#define EUR_CR_BIF_TILE2_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE2_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE2_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE2_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE2_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE2_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE2_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE2_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE2_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE3                    0x0C18
-#define EUR_CR_BIF_TILE3_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE3_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE3_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE3_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE3_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE3_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE3_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE3_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE3_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE4                    0x0C1C
-#define EUR_CR_BIF_TILE4_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE4_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE4_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE4_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE4_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE4_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE4_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE4_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE4_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE5                    0x0C20
-#define EUR_CR_BIF_TILE5_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE5_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE5_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE5_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE5_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE5_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE5_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE5_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE5_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE6                    0x0C24
-#define EUR_CR_BIF_TILE6_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE6_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE6_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE6_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE6_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE6_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE6_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE6_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE6_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE7                    0x0C28
-#define EUR_CR_BIF_TILE7_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE7_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE7_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE7_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE7_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE7_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE7_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE7_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE7_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE8                    0x0C2C
-#define EUR_CR_BIF_TILE8_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE8_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE8_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE8_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE8_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE8_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE8_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE8_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE8_CFG_SIGNED         0
-#define EUR_CR_BIF_TILE9                    0x0C30
-#define EUR_CR_BIF_TILE9_MIN_ADDRESS_MASK   0x00000FFFU
-#define EUR_CR_BIF_TILE9_MIN_ADDRESS_SHIFT  0
-#define EUR_CR_BIF_TILE9_MIN_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE9_MAX_ADDRESS_MASK   0x00FFF000U
-#define EUR_CR_BIF_TILE9_MAX_ADDRESS_SHIFT  12
-#define EUR_CR_BIF_TILE9_MAX_ADDRESS_SIGNED 0
-#define EUR_CR_BIF_TILE9_CFG_MASK           0x0F000000U
-#define EUR_CR_BIF_TILE9_CFG_SHIFT          24
-#define EUR_CR_BIF_TILE9_CFG_SIGNED         0
-#define EUR_CR_BIF_DIR_LIST_BASE1           0x0C38
-#define EUR_CR_BIF_DIR_LIST_BASE1_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE1_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE1_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE2           0x0C3C
-#define EUR_CR_BIF_DIR_LIST_BASE2_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE2_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE2_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE3           0x0C40
-#define EUR_CR_BIF_DIR_LIST_BASE3_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE3_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE3_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE4           0x0C44
-#define EUR_CR_BIF_DIR_LIST_BASE4_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE4_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE4_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE5           0x0C48
-#define EUR_CR_BIF_DIR_LIST_BASE5_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE5_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE5_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE6           0x0C4C
-#define EUR_CR_BIF_DIR_LIST_BASE6_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE6_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE6_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE7           0x0C50
-#define EUR_CR_BIF_DIR_LIST_BASE7_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE7_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE7_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE8           0x0C54
-#define EUR_CR_BIF_DIR_LIST_BASE8_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE8_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE8_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE9           0x0C58
-#define EUR_CR_BIF_DIR_LIST_BASE9_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE9_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE9_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE10          0x0C5C
-#define EUR_CR_BIF_DIR_LIST_BASE10_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE10_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE10_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE11          0x0C60
-#define EUR_CR_BIF_DIR_LIST_BASE11_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE11_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE11_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE12          0x0C64
-#define EUR_CR_BIF_DIR_LIST_BASE12_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE12_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE12_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE13          0x0C68
-#define EUR_CR_BIF_DIR_LIST_BASE13_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE13_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE13_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE14          0x0C6C
-#define EUR_CR_BIF_DIR_LIST_BASE14_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE14_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE14_ADDR_SIGNED 0
-#define EUR_CR_BIF_DIR_LIST_BASE15          0x0C70
-#define EUR_CR_BIF_DIR_LIST_BASE15_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE15_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE15_ADDR_SIGNED 0
-#define EUR_CR_BIF_BANK_SET                 0x0C74
-#define EUR_CR_BIF_BANK_SET_SELECT_2D_MASK  0x00000001U
-#define EUR_CR_BIF_BANK_SET_SELECT_2D_SHIFT 0
-#define EUR_CR_BIF_BANK_SET_SELECT_2D_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_3D_MASK  0x0000000CU
-#define EUR_CR_BIF_BANK_SET_SELECT_3D_SHIFT 2
-#define EUR_CR_BIF_BANK_SET_SELECT_3D_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_HOST_MASK 0x00000010U
-#define EUR_CR_BIF_BANK_SET_SELECT_HOST_SHIFT 4
-#define EUR_CR_BIF_BANK_SET_SELECT_HOST_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_TA_MASK  0x000000C0U
-#define EUR_CR_BIF_BANK_SET_SELECT_TA_SHIFT 6
-#define EUR_CR_BIF_BANK_SET_SELECT_TA_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_EDM_MASK 0x00000100U
-#define EUR_CR_BIF_BANK_SET_SELECT_EDM_SHIFT 8
-#define EUR_CR_BIF_BANK_SET_SELECT_EDM_SIGNED 0
-#define EUR_CR_BIF_BANK_SET_SELECT_DPM_LSS_MASK 0x00000200U
-#define EUR_CR_BIF_BANK_SET_SELECT_DPM_LSS_SHIFT 9
-#define EUR_CR_BIF_BANK_SET_SELECT_DPM_LSS_SIGNED 0
-#define EUR_CR_BIF_BANK0                    0x0C78
-#define EUR_CR_BIF_BANK0_INDEX_EDM_MASK     0x0000000FU
-#define EUR_CR_BIF_BANK0_INDEX_EDM_SHIFT    0
-#define EUR_CR_BIF_BANK0_INDEX_EDM_SIGNED   0
-#define EUR_CR_BIF_BANK0_INDEX_TA_MASK      0x000000F0U
-#define EUR_CR_BIF_BANK0_INDEX_TA_SHIFT     4
-#define EUR_CR_BIF_BANK0_INDEX_TA_SIGNED    0
-#define EUR_CR_BIF_BANK0_INDEX_HOST_MASK    0x00000F00U
-#define EUR_CR_BIF_BANK0_INDEX_HOST_SHIFT   8
-#define EUR_CR_BIF_BANK0_INDEX_HOST_SIGNED  0
-#define EUR_CR_BIF_BANK0_INDEX_3D_MASK      0x0000F000U
-#define EUR_CR_BIF_BANK0_INDEX_3D_SHIFT     12
-#define EUR_CR_BIF_BANK0_INDEX_3D_SIGNED    0
-#define EUR_CR_BIF_BANK0_INDEX_2D_MASK      0x000F0000U
-#define EUR_CR_BIF_BANK0_INDEX_2D_SHIFT     16
-#define EUR_CR_BIF_BANK0_INDEX_2D_SIGNED    0
-#define EUR_CR_BIF_BANK1                    0x0C7C
-#define EUR_CR_BIF_BANK1_INDEX_EDM_MASK     0x0000000FU
-#define EUR_CR_BIF_BANK1_INDEX_EDM_SHIFT    0
-#define EUR_CR_BIF_BANK1_INDEX_EDM_SIGNED   0
-#define EUR_CR_BIF_BANK1_INDEX_TA_MASK      0x000000F0U
-#define EUR_CR_BIF_BANK1_INDEX_TA_SHIFT     4
-#define EUR_CR_BIF_BANK1_INDEX_TA_SIGNED    0
-#define EUR_CR_BIF_BANK1_INDEX_HOST_MASK    0x00000F00U
-#define EUR_CR_BIF_BANK1_INDEX_HOST_SHIFT   8
-#define EUR_CR_BIF_BANK1_INDEX_HOST_SIGNED  0
-#define EUR_CR_BIF_BANK1_INDEX_3D_MASK      0x0000F000U
-#define EUR_CR_BIF_BANK1_INDEX_3D_SHIFT     12
-#define EUR_CR_BIF_BANK1_INDEX_3D_SIGNED    0
-#define EUR_CR_BIF_BANK1_INDEX_2D_MASK      0x000F0000U
-#define EUR_CR_BIF_BANK1_INDEX_2D_SHIFT     16
-#define EUR_CR_BIF_BANK1_INDEX_2D_SIGNED    0
-#define EUR_CR_BIF_DIR_LIST_BASE0           0x0C84
-#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_MASK 0xFFFFFF00U
-#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_SHIFT 8
-#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_SIGNED 0
-#define EUR_CR_BIF_TA_REQ_BASE              0x0C90
-#define EUR_CR_BIF_TA_REQ_BASE_ADDR_MASK    0xFFF00000U
-#define EUR_CR_BIF_TA_REQ_BASE_ADDR_SHIFT   20
-#define EUR_CR_BIF_TA_REQ_BASE_ADDR_SIGNED  0
-#define EUR_CR_BIF_MEM_REQ_STAT             0x0CA8
-#define EUR_CR_BIF_MEM_REQ_STAT_READS_MASK  0x000007FFU
-#define EUR_CR_BIF_MEM_REQ_STAT_READS_SHIFT 0
-#define EUR_CR_BIF_MEM_REQ_STAT_READS_SIGNED 0
-#define EUR_CR_BIF_3D_REQ_BASE              0x0CAC
-#define EUR_CR_BIF_3D_REQ_BASE_ADDR_MASK    0xFFF00000U
-#define EUR_CR_BIF_3D_REQ_BASE_ADDR_SHIFT   20
-#define EUR_CR_BIF_3D_REQ_BASE_ADDR_SIGNED  0
-#define EUR_CR_BIF_ZLS_REQ_BASE             0x0CB0
-#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_MASK   0xFFF00000U
-#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_SHIFT  20
-#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_SIGNED 0
-#define EUR_CR_BIF_BANK_STATUS              0x0CB4
-#define EUR_CR_BIF_BANK_STATUS_3D_CURRENT_BANK_MASK 0x00000001U
-#define EUR_CR_BIF_BANK_STATUS_3D_CURRENT_BANK_SHIFT 0
-#define EUR_CR_BIF_BANK_STATUS_3D_CURRENT_BANK_SIGNED 0
-#define EUR_CR_BIF_BANK_STATUS_TA_CURRENT_BANK_MASK 0x00000002U
-#define EUR_CR_BIF_BANK_STATUS_TA_CURRENT_BANK_SHIFT 1
-#define EUR_CR_BIF_BANK_STATUS_TA_CURRENT_BANK_SIGNED 0
-#define EUR_CR_BIF_36BIT_ADDRESSING         0x0CCC
-#define EUR_CR_BIF_36BIT_ADDRESSING_ENABLE_MASK 0x00000001U
-#define EUR_CR_BIF_36BIT_ADDRESSING_ENABLE_SHIFT 0
-#define EUR_CR_BIF_36BIT_ADDRESSING_ENABLE_SIGNED 0
-#define EUR_CR_BIF_TILE0_ADDR_EXT           0x0CD0
-#define EUR_CR_BIF_TILE0_ADDR_EXT_MIN_MASK  0x000000FFU
-#define EUR_CR_BIF_TILE0_ADDR_EXT_MIN_SHIFT 0
-#define EUR_CR_BIF_TILE0_ADDR_EXT_MIN_SIGNED 0
-#define EUR_CR_BIF_TILE0_ADDR_EXT_MAX_MASK  0x0000FF00U
-#define EUR_CR_BIF_TILE0_ADDR_EXT_MAX_SHIFT 8
-#define EUR_CR_BIF_TILE0_ADDR_EXT_MAX_SIGNED 0
-#define EUR_CR_BIF_TILE1_ADDR_EXT           0x0CD4
-#define EUR_CR_BIF_TILE1_ADDR_EXT_MIN_MASK  0x000000FFU
-#define EUR_CR_BIF_TILE1_ADDR_EXT_MIN_SHIFT 0
-#define EUR_CR_BIF_TILE1_ADDR_EXT_MIN_SIGNED 0
-#define EUR_CR_BIF_TILE1_ADDR_EXT_MAX_MASK  0x0000FF00U
-#define EUR_CR_BIF_TILE1_ADDR_EXT_MAX_SHIFT 8
-#define EUR_CR_BIF_TILE1_ADDR_EXT_MAX_SIGNED 0
-#define EUR_CR_BIF_TILE2_ADDR_EXT           0x0CD8
-#define EUR_CR_BIF_TILE2_ADDR_EXT_MIN_MASK  0x000000FFU
-#define EUR_CR_BIF_TILE2_ADDR_EXT_MIN_SHIFT 0
-#define EUR_CR_BIF_TILE2_ADDR_EXT_MIN_SIGNED 0
-#define EUR_CR_BIF_TILE2_ADDR_EXT_MAX_MASK  0x0000FF00U
-#define EUR_CR_BIF_TILE2_ADDR_EXT_MAX_SHIFT 8
-#define EUR_CR_BIF_TILE2_ADDR_EXT_MAX_SIGNED 0
-#define EUR_CR_BIF_TILE3_ADDR_EXT           0x0CDC
-#define EUR_CR_BIF_TILE3_ADDR_EXT_MIN_MASK  0x000000FFU
-#define EUR_CR_BIF_TILE3_ADDR_EXT_MIN_SHIFT 0
-#define EUR_CR_BIF_TILE3_ADDR_EXT_MIN_SIGNED 0
-#define EUR_CR_BIF_TILE3_ADDR_EXT_MAX_MASK  0x0000FF00U
-#define EUR_CR_BIF_TILE3_ADDR_EXT_MAX_SHIFT 8
-#define EUR_CR_BIF_TILE3_ADDR_EXT_MAX_SIGNED 0
-#define EUR_CR_BIF_TILE4_ADDR_EXT           0x0CE0
-#define EUR_CR_BIF_TILE4_ADDR_EXT_MIN_MASK  0x000000FFU
-#define EUR_CR_BIF_TILE4_ADDR_EXT_MIN_SHIFT 0
-#define EUR_CR_BIF_TILE4_ADDR_EXT_MIN_SIGNED 0
-#define EUR_CR_BIF_TILE4_ADDR_EXT_MAX_MASK  0x0000FF00U
-#define EUR_CR_BIF_TILE4_ADDR_EXT_MAX_SHIFT 8
-#define EUR_CR_BIF_TILE4_ADDR_EXT_MAX_SIGNED 0
-#define EUR_CR_BIF_TILE5_ADDR_EXT           0x0CE4
-#define EUR_CR_BIF_TILE5_ADDR_EXT_MIN_MASK  0x000000FFU
-#define EUR_CR_BIF_TILE5_ADDR_EXT_MIN_SHIFT 0
-#define EUR_CR_BIF_TILE5_ADDR_EXT_MIN_SIGNED 0
-#define EUR_CR_BIF_TILE5_ADDR_EXT_MAX_MASK  0x0000FF00U
-#define EUR_CR_BIF_TILE5_ADDR_EXT_MAX_SHIFT 8
-#define EUR_CR_BIF_TILE5_ADDR_EXT_MAX_SIGNED 0
-#define EUR_CR_BIF_TILE6_ADDR_EXT           0x0CE8
-#define EUR_CR_BIF_TILE6_ADDR_EXT_MIN_MASK  0x000000FFU
-#define EUR_CR_BIF_TILE6_ADDR_EXT_MIN_SHIFT 0
-#define EUR_CR_BIF_TILE6_ADDR_EXT_MIN_SIGNED 0
-#define EUR_CR_BIF_TILE6_ADDR_EXT_MAX_MASK  0x0000FF00U
-#define EUR_CR_BIF_TILE6_ADDR_EXT_MAX_SHIFT 8
-#define EUR_CR_BIF_TILE6_ADDR_EXT_MAX_SIGNED 0
-#define EUR_CR_BIF_TILE7_ADDR_EXT           0x0CEC
-#define EUR_CR_BIF_TILE7_ADDR_EXT_MIN_MASK  0x000000FFU
-#define EUR_CR_BIF_TILE7_ADDR_EXT_MIN_SHIFT 0
-#define EUR_CR_BIF_TILE7_ADDR_EXT_MIN_SIGNED 0
-#define EUR_CR_BIF_TILE7_ADDR_EXT_MAX_MASK  0x0000FF00U
-#define EUR_CR_BIF_TILE7_ADDR_EXT_MAX_SHIFT 8
-#define EUR_CR_BIF_TILE7_ADDR_EXT_MAX_SIGNED 0
-#define EUR_CR_BIF_TILE8_ADDR_EXT           0x0CF0
-#define EUR_CR_BIF_TILE8_ADDR_EXT_MIN_MASK  0x000000FFU
-#define EUR_CR_BIF_TILE8_ADDR_EXT_MIN_SHIFT 0
-#define EUR_CR_BIF_TILE8_ADDR_EXT_MIN_SIGNED 0
-#define EUR_CR_BIF_TILE8_ADDR_EXT_MAX_MASK  0x0000FF00U
-#define EUR_CR_BIF_TILE8_ADDR_EXT_MAX_SHIFT 8
-#define EUR_CR_BIF_TILE8_ADDR_EXT_MAX_SIGNED 0
-#define EUR_CR_BIF_TILE9_ADDR_EXT           0x0CF4
-#define EUR_CR_BIF_TILE9_ADDR_EXT_MIN_MASK  0x000000FFU
-#define EUR_CR_BIF_TILE9_ADDR_EXT_MIN_SHIFT 0
-#define EUR_CR_BIF_TILE9_ADDR_EXT_MIN_SIGNED 0
-#define EUR_CR_BIF_TILE9_ADDR_EXT_MAX_MASK  0x0000FF00U
-#define EUR_CR_BIF_TILE9_ADDR_EXT_MAX_SHIFT 8
-#define EUR_CR_BIF_TILE9_ADDR_EXT_MAX_SIGNED 0
-#define EUR_CR_BIF_CTRL_RDATA               0x0CF8
-#define EUR_CR_BIF_CTRL_RDATA_LIMIT_MASK    0x000003FFU
-#define EUR_CR_BIF_CTRL_RDATA_LIMIT_SHIFT   0
-#define EUR_CR_BIF_CTRL_RDATA_LIMIT_SIGNED  0
-#define EUR_CR_USE_CODE_BASE(X)     (0x0A0C + (4 * (X)))
-#define EUR_CR_USE_CODE_BASE_ADDR_MASK      0x01FFFFFFU
-#define EUR_CR_USE_CODE_BASE_ADDR_SHIFT     0
-#define EUR_CR_USE_CODE_BASE_ADDR_SIGNED    0
-#define EUR_CR_USE_CODE_BASE_DM_MASK        0x06000000U
-#define EUR_CR_USE_CODE_BASE_DM_SHIFT       25
-#define EUR_CR_USE_CODE_BASE_DM_SIGNED      0
-#define EUR_CR_USE_CODE_BASE_SIZE_UINT32 16
-#define EUR_CR_USE_CODE_BASE_NUM_ENTRIES 16
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxdefs.h b/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxdefs.h
deleted file mode 100644
index b3a2583..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxdefs.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _SGXDEFS_H_
-#define	_SGXDEFS_H_
-
-#include "sgxerrata.h"
-#include "sgxfeaturedefs.h"
-
-#if defined(SGX520)
-#include "sgx520defs.h"
-#else
-#if defined(SGX530)
-#include "sgx530defs.h"
-#else
-#if defined(SGX535)
-#include "sgx535defs.h"
-#else
-#if defined(SGX535_V1_1)
-#include "sgx535defs.h"
-#else
-#if defined(SGX540)
-#include "sgx540defs.h"
-#else
-#if defined(SGX543)
-#if defined(FIX_HW_BRN_29954)
-#include "sgx543_v1.164defs.h"
-#else
-#include "sgx543defs.h"
-#endif
-#else
-#if defined(SGX544)
-#include "sgx544defs.h"
-#else
-#if defined(SGX545)
-#include "sgx545defs.h"
-#else
-#if defined(SGX531)
-#include "sgx531defs.h"
-#else
-#if defined(SGX554)
-#include "sgx554defs.h"
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-
-#if defined(SGX_FEATURE_MP)
-#if defined(SGX554)
-#include "sgxmpplusdefs.h"
-#else
-#include "sgxmpdefs.h"
-#endif 
-#else 
-#if defined(SGX_FEATURE_SYSTEM_CACHE)
-#include "mnemedefs.h"
-#endif
-#endif 
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxerrata.h b/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxerrata.h
deleted file mode 100644
index 1efaa8a..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxerrata.h
+++ /dev/null
@@ -1,693 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _SGXERRATA_KM_H_
-#define _SGXERRATA_KM_H_
-
-#if defined(SGX520) && !defined(SGX_CORE_DEFINED)
-	
-	#define SGX_CORE_REV_HEAD	0
-	#if defined(USE_SGX_CORE_REV_HEAD)
-		
-		#define SGX_CORE_REV	SGX_CORE_REV_HEAD
-	#endif
-
-	#if SGX_CORE_REV == 100
-		#define FIX_HW_BRN_28889
-	#else
-	#if SGX_CORE_REV == 111
-		#define FIX_HW_BRN_28889
-	#else
-	#if SGX_CORE_REV == SGX_CORE_REV_HEAD
-		
-	#else
-		#error "sgxerrata.h: SGX520 Core Revision unspecified"
-	#endif
-	#endif
-	#endif
-	
-	#define SGX_CORE_DEFINED
-#endif
-
-#if defined(SGX530) && !defined(SGX_CORE_DEFINED)
-	
-	#define SGX_CORE_REV_HEAD	0
-	#if defined(USE_SGX_CORE_REV_HEAD)
-		
-		#define SGX_CORE_REV	SGX_CORE_REV_HEAD
-	#endif
-
-	#if SGX_CORE_REV == 110
-		#define FIX_HW_BRN_22934
-		#define FIX_HW_BRN_28889
-	#else
-	#if SGX_CORE_REV == 111
-		#define FIX_HW_BRN_22934	
-		#define FIX_HW_BRN_28889
-	#else
-	#if SGX_CORE_REV == 1111
-		#define FIX_HW_BRN_22934	
-		#define FIX_HW_BRN_28889
-	#else
-	#if SGX_CORE_REV == 120
-		#define FIX_HW_BRN_22934	
-		#define FIX_HW_BRN_28889
-	#else
-	#if SGX_CORE_REV == 121
-		#define FIX_HW_BRN_22934	
-		#define FIX_HW_BRN_28889
-	#else
-	#if SGX_CORE_REV == 125
-		#define FIX_HW_BRN_22934	
-		#define FIX_HW_BRN_28889
-	#else
-	#if SGX_CORE_REV == 130
-		#define FIX_HW_BRN_22934	
-		#define FIX_HW_BRN_28889
-	#else
-	#if SGX_CORE_REV == SGX_CORE_REV_HEAD
-		
-	#else
-		#error "sgxerrata.h: SGX530 Core Revision unspecified"
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-#endif
-        #endif
-	
-	#define SGX_CORE_DEFINED
-#endif
-
-#if defined(SGX531) && !defined(SGX_CORE_DEFINED)
-	
-	#define SGX_CORE_REV_HEAD	0
-	#if defined(USE_SGX_CORE_REV_HEAD)
-		
-		#define SGX_CORE_REV	SGX_CORE_REV_HEAD
-	#endif
-
-	#if SGX_CORE_REV == 101
-		#define FIX_HW_BRN_26620
-		#define FIX_HW_BRN_28011
-		#define FIX_HW_BRN_34028
-	#else
-	#if SGX_CORE_REV == 110
-		#define FIX_HW_BRN_34028
-	#else
-	#if SGX_CORE_REV == SGX_CORE_REV_HEAD
-		
-	#else
-		#error "sgxerrata.h: SGX531 Core Revision unspecified"
-	#endif
-	#endif
-	#endif
-	
-	#define SGX_CORE_DEFINED
-#endif
-
-#if (defined(SGX535) || defined(SGX535_V1_1)) && !defined(SGX_CORE_DEFINED)
-	
-	#define SGX_CORE_REV_HEAD	0
-	#if defined(USE_SGX_CORE_REV_HEAD)
-		
-		#define SGX_CORE_REV	SGX_CORE_REV_HEAD
-	#endif
-
-	#if SGX_CORE_REV == 112
-		#define FIX_HW_BRN_23281
-		#define FIX_HW_BRN_23410 
-		#define FIX_HW_BRN_22693
-		#define FIX_HW_BRN_22934	
-		#define FIX_HW_BRN_22997
-		#define FIX_HW_BRN_23030
-	#else
-	#if SGX_CORE_REV == 113
-		#define FIX_HW_BRN_22934	
-		#define FIX_HW_BRN_23281
-		#define FIX_HW_BRN_23944
-		#define FIX_HW_BRN_23410
-	#else
-	#if SGX_CORE_REV == 121
-		#define FIX_HW_BRN_22934	
-		#define FIX_HW_BRN_23944
-		#define FIX_HW_BRN_23410
-	#else
-	#if SGX_CORE_REV == 126
-		#define FIX_HW_BRN_22934	
-	#else	
-	#if SGX_CORE_REV == SGX_CORE_REV_HEAD
-		
-	#else
-		#error "sgxerrata.h: SGX535 Core Revision unspecified"
-
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	
-	#define SGX_CORE_DEFINED
-#endif
-
-#if defined(SGX540) && !defined(SGX_CORE_DEFINED)
-	
-	#define SGX_CORE_REV_HEAD	0
-	#if defined(USE_SGX_CORE_REV_HEAD)
-		
-		#define SGX_CORE_REV	SGX_CORE_REV_HEAD
-	#endif
-
-	#if SGX_CORE_REV == 101
-		#define FIX_HW_BRN_25499
-		#define FIX_HW_BRN_25503
-		#define FIX_HW_BRN_26620
-		#define FIX_HW_BRN_28011
-		#define FIX_HW_BRN_34028
-	#else
-	#if SGX_CORE_REV == 110
-		#define FIX_HW_BRN_25503
-		#define FIX_HW_BRN_26620
-		#define FIX_HW_BRN_28011
-		#define FIX_HW_BRN_34028
-	#else
-	#if SGX_CORE_REV == 120
-		#define FIX_HW_BRN_26620
-		#define FIX_HW_BRN_28011
-		#define FIX_HW_BRN_34028
-	#else
-	#if SGX_CORE_REV == 121
-		#define FIX_HW_BRN_28011
-		#define FIX_HW_BRN_34028
-	#else
-	#if SGX_CORE_REV == 130
-		#define FIX_HW_BRN_34028
-	#else
-	#if SGX_CORE_REV == SGX_CORE_REV_HEAD
-		
-	#else
-		#error "sgxerrata.h: SGX540 Core Revision unspecified"
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	
-	#define SGX_CORE_DEFINED
-#endif
-
-#if defined(SGX541) && !defined(SGX_CORE_DEFINED)
-	#if defined(SGX_FEATURE_MP)
-		
-		#define SGX_CORE_REV_HEAD	0
-		#if defined(USE_SGX_CORE_REV_HEAD)
-			
-			#define SGX_CORE_REV	SGX_CORE_REV_HEAD
-		#endif
-
-		#if SGX_CORE_REV == 100
-			#define FIX_HW_BRN_27270
-			#define FIX_HW_BRN_28011
-			#define FIX_HW_BRN_27510
-			
-		#else
-		#if SGX_CORE_REV == SGX_CORE_REV_HEAD
-			
-		#else
-			#error "sgxerrata.h: SGX541 Core Revision unspecified"
-		#endif
-		#endif
-		
-		#define SGX_CORE_DEFINED
-	#else 
-		#error "sgxerrata.h: SGX541 only supports MP configs (SGX_FEATURE_MP)"
-	#endif 
-#endif
-
-#if defined(SGX543) && !defined(SGX_CORE_DEFINED)
-	
-	#define SGX_CORE_REV_HEAD	0
-	#if defined(USE_SGX_CORE_REV_HEAD)
-		
-		#define SGX_CORE_REV	SGX_CORE_REV_HEAD
-	#endif
-
-	#if SGX_CORE_REV == 113
-		#define FIX_HW_BRN_29954
-		#define FIX_HW_BRN_29997
-		#define FIX_HW_BRN_30954
-		#define FIX_HW_BRN_31093
-		#define FIX_HW_BRN_31195
-		#define FIX_HW_BRN_31272
-		#define FIX_HW_BRN_31278
- 		#if defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_31425
-		#endif
-		#define FIX_HW_BRN_31620
- 		#define FIX_HW_BRN_31780
-		#define FIX_HW_BRN_31542
-		#define FIX_HW_BRN_32044 
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-		#define FIX_HW_BRN_33920
-	#else
-	#if SGX_CORE_REV == 122
-		#define FIX_HW_BRN_29954
-		#define FIX_HW_BRN_29997
-		#define FIX_HW_BRN_30954
-		#define FIX_HW_BRN_31093
-		#define FIX_HW_BRN_31195
-		#define FIX_HW_BRN_31272
-		#define FIX_HW_BRN_31278
- 		#if defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_31425
-		#endif
-		#define FIX_HW_BRN_31620
-		#define FIX_HW_BRN_31780
-		#define FIX_HW_BRN_31542
-		#define FIX_HW_BRN_32044 
-		#define FIX_HW_BRN_32085 
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-		#define FIX_HW_BRN_33920
-			
-	#else
-	#if SGX_CORE_REV == 1221
-		#define FIX_HW_BRN_29954
-        #define FIX_HW_BRN_31195
-		#define FIX_HW_BRN_31272
-		#define FIX_HW_BRN_31278
- 		#if defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_31425
-		#endif
-		#define FIX_HW_BRN_31542
-		#define FIX_HW_BRN_31671		
- 		#define FIX_HW_BRN_31780
-		#define FIX_HW_BRN_32044
-		#define FIX_HW_BRN_32085 
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-		#define FIX_HW_BRN_33920
-			
-	#else
-	#if SGX_CORE_REV == 140
-		#define FIX_HW_BRN_29954
-		#define FIX_HW_BRN_30954
-		#define FIX_HW_BRN_31093
-		#define FIX_HW_BRN_31195
-		#define FIX_HW_BRN_31272
-		#define FIX_HW_BRN_31278
- 		#if defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_31425
-		#endif
-		#define FIX_HW_BRN_31620
- 		#define FIX_HW_BRN_31780
-		#define FIX_HW_BRN_31542
-		#define FIX_HW_BRN_32044 
-		#define FIX_HW_BRN_32085 
-		#define FIX_HW_BRN_33920
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-			
-	#else
-	#if SGX_CORE_REV == 1401
-		#define FIX_HW_BRN_29954
-		#define FIX_HW_BRN_30954
-		#define FIX_HW_BRN_31195
-		#define FIX_HW_BRN_31272
-		#define FIX_HW_BRN_31278
- 		#if defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_31425
-		#endif
-		#define FIX_HW_BRN_31620
-		#define FIX_HW_BRN_31542
- 		#define FIX_HW_BRN_31780
-		#define FIX_HW_BRN_32044 
-		#define FIX_HW_BRN_32085 
-		#define FIX_HW_BRN_33920
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-			
-	#else
-	#if SGX_CORE_REV == 141
-		#define FIX_HW_BRN_29954
- 		#if defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_31425
-		#endif
-		#define FIX_HW_BRN_31671 
- 		#define FIX_HW_BRN_31780
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-			
-	#else
-	#if SGX_CORE_REV == 142
-		#define FIX_HW_BRN_29954
- 		#if defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_31425
-		#endif
-		#define FIX_HW_BRN_31671 
- 		#define FIX_HW_BRN_31780
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-			
-	#else
-	#if SGX_CORE_REV == 211
-		#define FIX_HW_BRN_31093
-		#define FIX_HW_BRN_31195
-		#define FIX_HW_BRN_31272
-		#define FIX_HW_BRN_31278
- 		#if defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_31425
-		#endif
-		#define FIX_HW_BRN_31620
- 		#define FIX_HW_BRN_31780
-		#define FIX_HW_BRN_31542
-		#define FIX_HW_BRN_32044 
-		#define FIX_HW_BRN_32085 
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-		#define FIX_HW_BRN_33920
-			
-	#else
-	#if SGX_CORE_REV == 2111
-		#define FIX_HW_BRN_30982 
-		#define FIX_HW_BRN_31093
-		#define FIX_HW_BRN_31195
-		#define FIX_HW_BRN_31272
-		#define FIX_HW_BRN_31278
- 		#if defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_31425
-		#endif
-		#define FIX_HW_BRN_31620
- 		#define FIX_HW_BRN_31780
-		#define FIX_HW_BRN_31542
-		#define FIX_HW_BRN_32044 
-		#define FIX_HW_BRN_32085 
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-		#define FIX_HW_BRN_33920
-			
-	#else
-	#if SGX_CORE_REV == 213
-		#define FIX_HW_BRN_31272
-		#if defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_31425
-		#endif
-		#define FIX_HW_BRN_31671 
- 		#define FIX_HW_BRN_31780
-		#define FIX_HW_BRN_32085 
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-		#define FIX_HW_BRN_33920
-			
-	#else
-	#if SGX_CORE_REV == 216
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-	#else
-	#if SGX_CORE_REV == 302
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-	#else
-	#if SGX_CORE_REV == 303
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-	#else
-	#if SGX_CORE_REV == SGX_CORE_REV_HEAD
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-	#else
-		#error "sgxerrata.h: SGX543 Core Revision unspecified"
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	
-	#define SGX_CORE_DEFINED
-#endif
-
-#if defined(SGX544) && !defined(SGX_CORE_DEFINED)
-	
-	#define SGX_CORE_REV_HEAD	0
-	#if defined(USE_SGX_CORE_REV_HEAD)
-		
-		#define SGX_CORE_REV	SGX_CORE_REV_HEAD
-	#endif
-
-	#if SGX_CORE_REV == 100
- 		#if defined(SGX_FEATURE_MP)
- 			#define FIX_HW_BRN_31425
- 		#endif
-	#else
-	#if SGX_CORE_REV == 102
-		#define FIX_HW_BRN_29954
-		#define FIX_HW_BRN_31272
- 		#if defined(SGX_FEATURE_MP)
- 			#define FIX_HW_BRN_31425
- 		#endif
- 		#define FIX_HW_BRN_31780
-		#define FIX_HW_BRN_32085 
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-		#define FIX_HW_BRN_33920
-	#else
-	#if SGX_CORE_REV == 103
-		#define FIX_HW_BRN_29954
-		#define FIX_HW_BRN_31272
- 		#if defined(SGX_FEATURE_MP)
- 			#define FIX_HW_BRN_31425
- 		#endif
- 		#define FIX_HW_BRN_31780
-		#define FIX_HW_BRN_32085 
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-		#define FIX_HW_BRN_33920
-	#else
-	#if SGX_CORE_REV == 104
-		#define FIX_HW_BRN_29954
-		#define FIX_HW_BRN_31093
-		#define FIX_HW_BRN_31195
-		#define FIX_HW_BRN_31272
-		#define FIX_HW_BRN_31278
- 		#if defined(SGX_FEATURE_MP)
- 			#define FIX_HW_BRN_31425
- 		#endif
-		#define FIX_HW_BRN_31542 
- 		#define FIX_HW_BRN_31620
-		#define FIX_HW_BRN_31671 
- 		#define FIX_HW_BRN_31780
-		#define FIX_HW_BRN_32044 
-		#define FIX_HW_BRN_32085 
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-		#define FIX_HW_BRN_33920
-	#else	
-	#if SGX_CORE_REV == 105
- 		#if defined(SGX_FEATURE_MP)
- 			#define FIX_HW_BRN_31425
- 		#endif
- 		#define FIX_HW_BRN_31780
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-		#define FIX_HW_BRN_33920
-	#else
-	#if SGX_CORE_REV == 106
-		#define FIX_HW_BRN_31272
- 		#define FIX_HW_BRN_31780
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-		#define FIX_HW_BRN_33920
-	#else
-	#if SGX_CORE_REV == 110
-		#define FIX_HW_BRN_31272
- 		#if defined(SGX_FEATURE_MP)
- 			#define FIX_HW_BRN_31425
- 		#endif
- 		#define FIX_HW_BRN_31780
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-		#define FIX_HW_BRN_33920
-	#else
-	#if SGX_CORE_REV == 112
-		#define FIX_HW_BRN_31272
-		#define FIX_HW_BRN_33920
-	#else
-	#if SGX_CORE_REV == 114
- 		#if defined(SGX_FEATURE_MP)
- 			#define FIX_HW_BRN_31425
- 		#endif
- 		#define FIX_HW_BRN_31780
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-	#else
-	#if SGX_CORE_REV == 115
- 		#if defined(SGX_FEATURE_MP)
- 			#define FIX_HW_BRN_31425
- 		#endif
- 		#define FIX_HW_BRN_31780
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-	#else
-	#if SGX_CORE_REV == SGX_CORE_REV_HEAD
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-	#else
-		#error "sgxerrata.h: SGX544 Core Revision unspecified"
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	
-	#define SGX_CORE_DEFINED
-#endif
-
-#if defined(SGX545) && !defined(SGX_CORE_DEFINED)
-	
-	#define SGX_CORE_REV_HEAD	0
-	#if defined(USE_SGX_CORE_REV_HEAD)
-		
-		#define SGX_CORE_REV	SGX_CORE_REV_HEAD
-	#endif
-
-	#if SGX_CORE_REV == 100
-		#define FIX_HW_BRN_26620
-		#define FIX_HW_BRN_27266
-		#define FIX_HW_BRN_27456
-		#define FIX_HW_BRN_29702
-		#define FIX_HW_BRN_29823
-	#else
-	#if SGX_CORE_REV == 109
-		#define FIX_HW_BRN_29702
-		#define FIX_HW_BRN_29823
-		#define FIX_HW_BRN_31939
-	#else
-	#if SGX_CORE_REV == 1012
-		#define FIX_HW_BRN_31939
-	#else
-	#if SGX_CORE_REV == 1013
-		#define FIX_HW_BRN_31939
-	#else
-	#if SGX_CORE_REV == 10131
-	#else
-	#if SGX_CORE_REV == 1014
-	#else
-	#if SGX_CORE_REV == 10141
-	#else
-	#if SGX_CORE_REV == SGX_CORE_REV_HEAD
-		
-	#else
-		#error "sgxerrata.h: SGX545 Core Revision unspecified"
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	#endif
-	
-	#define SGX_CORE_DEFINED
-#endif
-
-#if defined(SGX554) && !defined(SGX_CORE_DEFINED)
-	
-	#define SGX_CORE_REV_HEAD	0
-	#if defined(USE_SGX_CORE_REV_HEAD)
-		
-		#define SGX_CORE_REV	SGX_CORE_REV_HEAD
-	#endif
-
-	#if SGX_CORE_REV == 1251
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-		
-	#else	
-	#if SGX_CORE_REV == SGX_CORE_REV_HEAD
-		#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && defined(SGX_FEATURE_MP)
-			#define FIX_HW_BRN_33657
-		#endif
-	#else
-		#error "sgxerrata.h: SGX554 Core Revision unspecified"
-	#endif
-	#endif
-	
-	#define SGX_CORE_DEFINED
-#endif
-
-#if !defined(SGX_CORE_DEFINED)
-#if defined (__GNUC__)
-	#warning "sgxerrata.h: SGX Core Version unspecified"
-#else
-	#pragma message("sgxerrata.h: SGX Core Version unspecified")
-#endif
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxfeaturedefs.h b/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxfeaturedefs.h
deleted file mode 100644
index 7365457..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxfeaturedefs.h
+++ /dev/null
@@ -1,240 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if defined(SGX520)
-	#define SGX_CORE_FRIENDLY_NAME							"SGX520"
-	#define SGX_CORE_ID										SGX_CORE_ID_520
-	#define SGX_FEATURE_ADDRESS_SPACE_SIZE					(28)
-	#define SGX_FEATURE_AUTOCLOCKGATING
-#else
-#if defined(SGX530)
-	#define SGX_CORE_FRIENDLY_NAME							"SGX530"
-	#define SGX_CORE_ID										SGX_CORE_ID_530
-	#define SGX_FEATURE_ADDRESS_SPACE_SIZE					(28)
-	#define SGX_FEATURE_AUTOCLOCKGATING
-#else
-#if defined(SGX531)
-	#define SGX_CORE_FRIENDLY_NAME							"SGX531"
-	#define SGX_CORE_ID										SGX_CORE_ID_531
-	#define SGX_FEATURE_ADDRESS_SPACE_SIZE					(28)
-	#define SGX_FEATURE_AUTOCLOCKGATING
-	#define SGX_FEATURE_MULTI_EVENT_KICK
-#else
-#if defined(SGX535)
-	#define SGX_CORE_FRIENDLY_NAME							"SGX535"
-	#define SGX_CORE_ID										SGX_CORE_ID_535
-	#define SGX_FEATURE_ADDRESS_SPACE_SIZE					(32)
-	#define SGX_FEATURE_MULTIPLE_MEM_CONTEXTS
-	#define SGX_FEATURE_BIF_NUM_DIRLISTS					(16)
-	#define SGX_FEATURE_2D_HARDWARE
-	#define SGX_FEATURE_AUTOCLOCKGATING
-	#define SUPPORT_SGX_GENERAL_MAPPING_HEAP
-	#define SGX_FEATURE_EDM_VERTEX_PDSADDR_FULL_RANGE
-#else
-#if defined(SGX540)
-	#define SGX_CORE_FRIENDLY_NAME							"SGX540"
-	#define SGX_CORE_ID										SGX_CORE_ID_540
-	#define SGX_FEATURE_ADDRESS_SPACE_SIZE					(28)
-	#define SGX_FEATURE_AUTOCLOCKGATING
-	#define SGX_FEATURE_MULTI_EVENT_KICK
-#else
-#if defined(SGX543)
-	#define SGX_CORE_FRIENDLY_NAME							"SGX543"
-	#define SGX_CORE_ID										SGX_CORE_ID_543
-	#define SGX_FEATURE_USE_NO_INSTRUCTION_PAIRING
-	#define SGX_FEATURE_USE_UNLIMITED_PHASES
-	#define SGX_FEATURE_ADDRESS_SPACE_SIZE					(32)
-	#define SGX_FEATURE_MULTIPLE_MEM_CONTEXTS
-	#define SGX_FEATURE_BIF_NUM_DIRLISTS					(8)
-	#define SGX_FEATURE_AUTOCLOCKGATING
-	#define SGX_FEATURE_MONOLITHIC_UKERNEL
-	#define SGX_FEATURE_MULTI_EVENT_KICK
-	#define SGX_FEATURE_DATA_BREAKPOINTS
-    #define SGX_FEATURE_PERPIPE_BKPT_REGS
-    #define SGX_FEATURE_PERPIPE_BKPT_REGS_NUMPIPES          (2)
-	#define SGX_FEATURE_2D_HARDWARE
-	#define SGX_FEATURE_PTLA
-	#define SGX_FEATURE_EXTENDED_PERF_COUNTERS
-	#define SGX_FEATURE_EDM_VERTEX_PDSADDR_FULL_RANGE
-	#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING)
-		#if defined(SGX_FEATURE_MP)
-		#define SGX_FEATURE_MASTER_VDM_CONTEXT_SWITCH
-		#endif
-		#define SGX_FEATURE_SLAVE_VDM_CONTEXT_SWITCH
-		#define SGX_FEATURE_SW_ISP_CONTEXT_SWITCH
-	#endif
-#else
-#if defined(SGX544)
-	#define SGX_CORE_FRIENDLY_NAME							"SGX544"
-	#define SGX_CORE_ID										SGX_CORE_ID_544
-	#define SGX_FEATURE_USE_NO_INSTRUCTION_PAIRING
-	#define SGX_FEATURE_USE_UNLIMITED_PHASES
-	#define SGX_FEATURE_ADDRESS_SPACE_SIZE					(32)
-	#define SGX_FEATURE_MULTIPLE_MEM_CONTEXTS
-	#define SGX_FEATURE_BIF_NUM_DIRLISTS					(8)
-	#define SGX_FEATURE_AUTOCLOCKGATING
-	#define SGX_FEATURE_MONOLITHIC_UKERNEL
-	#define SGX_FEATURE_MULTI_EVENT_KICK
-	#define SGX_FEATURE_EXTENDED_PERF_COUNTERS
-	#define SGX_FEATURE_EDM_VERTEX_PDSADDR_FULL_RANGE
-	#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING)
-		#if defined(SGX_FEATURE_MP)
-		#define SGX_FEATURE_MASTER_VDM_CONTEXT_SWITCH
-		#endif
-		#define SGX_FEATURE_SLAVE_VDM_CONTEXT_SWITCH
-		#define SGX_FEATURE_SW_ISP_CONTEXT_SWITCH
-	#endif
-#else
-#if defined(SGX545)
-	#define SGX_CORE_FRIENDLY_NAME							"SGX545"
-	#define SGX_CORE_ID										SGX_CORE_ID_545
-	#define SGX_FEATURE_ADDRESS_SPACE_SIZE					(32)
-	/* XXX IMG suggest to disable for known lockup issue */
-	/* #define SGX_FEATURE_AUTOCLOCKGATING */	
-	#define SGX_FEATURE_USE_NO_INSTRUCTION_PAIRING
-	#define SGX_FEATURE_USE_UNLIMITED_PHASES
-	#define SGX_FEATURE_VOLUME_TEXTURES
-	#define SGX_FEATURE_HOST_ALLOC_FROM_DPM
-	#define SGX_FEATURE_MULTIPLE_MEM_CONTEXTS
-	#define SGX_FEATURE_BIF_NUM_DIRLISTS				(16)
-	#define SGX_FEATURE_NUM_USE_PIPES					(4)
-	#define	SGX_FEATURE_TEXTURESTRIDE_EXTENSION
-	#define SGX_FEATURE_PDS_DATA_INTERLEAVE_2DWORDS
-	#define SGX_FEATURE_MONOLITHIC_UKERNEL
-	#define SGX_FEATURE_ZLS_EXTERNALZ
-	#define SGX_FEATURE_NUM_PDS_PIPES					(2)
-	#define SGX_FEATURE_NATIVE_BACKWARD_BLIT
-	#define SGX_FEATURE_MAX_TA_RENDER_TARGETS				(512)
-	#define SGX_FEATURE_SECONDARY_REQUIRES_USE_KICK
-	#define SGX_FEATURE_WRITEBACK_DCU
-	
-	
-	#define SGX_FEATURE_BIF_WIDE_TILING_AND_4K_ADDRESS
-	#define SGX_FEATURE_MULTI_EVENT_KICK
-	#define SGX_FEATURE_EDM_VERTEX_PDSADDR_FULL_RANGE
-	#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING)
-		#define SGX_FEATURE_SW_ISP_CONTEXT_SWITCH
-	#endif
-#else
-#if defined(SGX554)
-	#define SGX_CORE_FRIENDLY_NAME							"SGX554"
-	#define SGX_CORE_ID										SGX_CORE_ID_554
-	#define SGX_FEATURE_USE_NO_INSTRUCTION_PAIRING
-	#define SGX_FEATURE_USE_UNLIMITED_PHASES
-	#define SGX_FEATURE_ADDRESS_SPACE_SIZE					(32)
-	#define SGX_FEATURE_MULTIPLE_MEM_CONTEXTS
-	#define SGX_FEATURE_BIF_NUM_DIRLISTS					(8)
-	#define SGX_FEATURE_AUTOCLOCKGATING
-	#define SGX_FEATURE_MONOLITHIC_UKERNEL
-	#define SGX_FEATURE_MULTI_EVENT_KICK
-	#define SGX_FEATURE_2D_HARDWARE
-	#define SGX_FEATURE_PTLA
-	#define SGX_FEATURE_EXTENDED_PERF_COUNTERS
-	#define SGX_FEATURE_EDM_VERTEX_PDSADDR_FULL_RANGE
-	#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING)
-		#if defined(SGX_FEATURE_MP)
-		#define SGX_FEATURE_MASTER_VDM_CONTEXT_SWITCH
-		#endif
-		#define SGX_FEATURE_SLAVE_VDM_CONTEXT_SWITCH
-		#define SGX_FEATURE_SW_ISP_CONTEXT_SWITCH
-	#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-
-#if defined(SGX_FEATURE_SLAVE_VDM_CONTEXT_SWITCH) \
-	|| defined(SGX_FEATURE_MASTER_VDM_CONTEXT_SWITCH)
-#define SGX_FEATURE_VDM_CONTEXT_SWITCH
-#endif
-
-#if defined(FIX_HW_BRN_22693)
-#undef SGX_FEATURE_AUTOCLOCKGATING
-#endif
-
-#if defined(FIX_HW_BRN_27266)
-#undef SGX_FEATURE_36BIT_MMU
-#endif
-
-#if defined(FIX_HW_BRN_27456)
-#undef SGX_FEATURE_BIF_WIDE_TILING_AND_4K_ADDRESS
-#endif
-
-#if defined(FIX_HW_BRN_22934)	\
-	|| defined(FIX_HW_BRN_25499)
-#undef SGX_FEATURE_MULTI_EVENT_KICK
-#endif
-
-#if defined(SGX_FEATURE_SYSTEM_CACHE)
-	#if defined(SGX_FEATURE_36BIT_MMU)
-		#error SGX_FEATURE_SYSTEM_CACHE is incompatible with SGX_FEATURE_36BIT_MMU
-	#endif
-	#if defined(FIX_HW_BRN_26620) && !defined(SGX_FEATURE_MULTI_EVENT_KICK)
-		#define SGX_BYPASS_SYSTEM_CACHE
-	#endif
-#endif
-
-#if defined(FIX_HW_BRN_29954)
-#undef SGX_FEATURE_PERPIPE_BKPT_REGS
-#endif
-
-#if defined(FIX_HW_BRN_31620)
-#undef SGX_FEATURE_MULTIPLE_MEM_CONTEXTS
-#undef SGX_FEATURE_BIF_NUM_DIRLISTS
-#endif
-
-#if defined(SGX_FEATURE_MP)
-#if defined(SGX_FEATURE_MP_CORE_COUNT_TA) && defined(SGX_FEATURE_MP_CORE_COUNT_3D)
-#if (SGX_FEATURE_MP_CORE_COUNT_TA > SGX_FEATURE_MP_CORE_COUNT_3D)
-#error Number of TA cores larger than number of 3D cores not supported in current driver
-#endif 
-#else
-#if defined(SGX_FEATURE_MP_CORE_COUNT)
-#define SGX_FEATURE_MP_CORE_COUNT_TA		(SGX_FEATURE_MP_CORE_COUNT)
-#define SGX_FEATURE_MP_CORE_COUNT_3D		(SGX_FEATURE_MP_CORE_COUNT)
-#else
-#error Either SGX_FEATURE_MP_CORE_COUNT or \
-both SGX_FEATURE_MP_CORE_COUNT_TA and SGX_FEATURE_MP_CORE_COUNT_3D \
-must be defined when SGX_FEATURE_MP is defined
-#endif 
-#endif 
-#else
-#define SGX_FEATURE_MP_CORE_COUNT		(1)
-#define SGX_FEATURE_MP_CORE_COUNT_TA	(1)
-#define SGX_FEATURE_MP_CORE_COUNT_3D	(1)
-#endif 
-
-#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && !defined(SUPPORT_SGX_PRIORITY_SCHEDULING)
-#define SUPPORT_SGX_PRIORITY_SCHEDULING
-#endif
-
-#include "img_types.h"
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxmmu.h b/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxmmu.h
deleted file mode 100644
index 1b265f1..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxmmu.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined(__SGXMMU_KM_H__)
-#define __SGXMMU_KM_H__
-
-#define SGX_MMU_PAGE_SHIFT				(12)
-#define SGX_MMU_PAGE_SIZE				(1U<<SGX_MMU_PAGE_SHIFT)
-#define SGX_MMU_PAGE_MASK				(SGX_MMU_PAGE_SIZE - 1U)
-
-#define SGX_MMU_PD_SHIFT				(10)
-#define SGX_MMU_PD_SIZE					(1U<<SGX_MMU_PD_SHIFT)
-#define SGX_MMU_PD_MASK					(0xFFC00000U)
-
-#if defined(SGX_FEATURE_36BIT_MMU)
-	#define SGX_MMU_PDE_ADDR_MASK			(0xFFFFFF00U)
-	#define SGX_MMU_PDE_ADDR_ALIGNSHIFT		(4)
-#else
-	#define SGX_MMU_PDE_ADDR_MASK			(0xFFFFF000U)
-	#define SGX_MMU_PDE_ADDR_ALIGNSHIFT		(0)
-#endif
-#define SGX_MMU_PDE_VALID				(0x00000001U)
-#define SGX_MMU_PDE_PAGE_SIZE_4K		(0x00000000U)
-#define SGX_MMU_PDE_PAGE_SIZE_16K		(0x00000002U)
-#define SGX_MMU_PDE_PAGE_SIZE_64K		(0x00000004U)
-#define SGX_MMU_PDE_PAGE_SIZE_256K		(0x00000006U)
-#define SGX_MMU_PDE_PAGE_SIZE_1M		(0x00000008U)
-#define SGX_MMU_PDE_PAGE_SIZE_4M		(0x0000000AU)
-#define SGX_MMU_PDE_PAGE_SIZE_MASK		(0x0000000EU)
-
-#define SGX_MMU_PT_SHIFT				(10)
-#define SGX_MMU_PT_SIZE					(1U<<SGX_MMU_PT_SHIFT)
-#define SGX_MMU_PT_MASK					(0x003FF000U)
-
-#if defined(SGX_FEATURE_36BIT_MMU)
-	#define SGX_MMU_PTE_ADDR_MASK			(0xFFFFFF00U)
-	#define SGX_MMU_PTE_ADDR_ALIGNSHIFT		(4)
-#else
-	#define SGX_MMU_PTE_ADDR_MASK			(0xFFFFF000U)
-	#define SGX_MMU_PTE_ADDR_ALIGNSHIFT		(0)
-#endif
-#define SGX_MMU_PTE_VALID				(0x00000001U)
-#define SGX_MMU_PTE_WRITEONLY			(0x00000002U)
-#define SGX_MMU_PTE_READONLY			(0x00000004U)
-#define SGX_MMU_PTE_CACHECONSISTENT		(0x00000008U)
-#define SGX_MMU_PTE_EDMPROTECT			(0x00000010U)
-
-#endif	
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxmpdefs.h b/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxmpdefs.h
deleted file mode 100644
index e34561a..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/hwdefs/sgxmpdefs.h
+++ /dev/null
@@ -1,332 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _SGXMPDEFS_H_
-#define _SGXMPDEFS_H_
-
-#define EUR_CR_MASTER_BIF_CTRL              0x4C00
-#define EUR_CR_MASTER_BIF_CTRL_NOREORDER_MASK 0x00000001U
-#define EUR_CR_MASTER_BIF_CTRL_NOREORDER_SHIFT 0
-#define EUR_CR_MASTER_BIF_CTRL_NOREORDER_SIGNED 0
-#define EUR_CR_MASTER_BIF_CTRL_PAUSE_MASK   0x00000002U
-#define EUR_CR_MASTER_BIF_CTRL_PAUSE_SHIFT  1
-#define EUR_CR_MASTER_BIF_CTRL_PAUSE_SIGNED 0
-#define EUR_CR_MASTER_BIF_CTRL_CLEAR_FAULT_MASK 0x00000010U
-#define EUR_CR_MASTER_BIF_CTRL_CLEAR_FAULT_SHIFT 4
-#define EUR_CR_MASTER_BIF_CTRL_CLEAR_FAULT_SIGNED 0
-#define EUR_CR_MASTER_BIF_CTRL_MMU_BYPASS_PTLA_MASK 0x00010000U
-#define EUR_CR_MASTER_BIF_CTRL_MMU_BYPASS_PTLA_SHIFT 16
-#define EUR_CR_MASTER_BIF_CTRL_MMU_BYPASS_PTLA_SIGNED 0
-#define EUR_CR_MASTER_BIF_CTRL_MMU_BYPASS_MASTER_VDM_MASK 0x00020000U
-#define EUR_CR_MASTER_BIF_CTRL_MMU_BYPASS_MASTER_VDM_SHIFT 17
-#define EUR_CR_MASTER_BIF_CTRL_MMU_BYPASS_MASTER_VDM_SIGNED 0
-#define EUR_CR_MASTER_BIF_CTRL_MMU_BYPASS_MASTER_IPF_MASK 0x00040000U
-#define EUR_CR_MASTER_BIF_CTRL_MMU_BYPASS_MASTER_IPF_SHIFT 18
-#define EUR_CR_MASTER_BIF_CTRL_MMU_BYPASS_MASTER_IPF_SIGNED 0
-#define EUR_CR_MASTER_BIF_CTRL_MMU_BYPASS_MASTER_DPM_MASK 0x00080000U
-#define EUR_CR_MASTER_BIF_CTRL_MMU_BYPASS_MASTER_DPM_SHIFT 19
-#define EUR_CR_MASTER_BIF_CTRL_MMU_BYPASS_MASTER_DPM_SIGNED 0
-#define EUR_CR_MASTER_BIF_CTRL_INVAL        0x4C34
-#define EUR_CR_MASTER_BIF_CTRL_INVAL_PTE_MASK 0x00000004U
-#define EUR_CR_MASTER_BIF_CTRL_INVAL_PTE_SHIFT 2
-#define EUR_CR_MASTER_BIF_CTRL_INVAL_PTE_SIGNED 0
-#define EUR_CR_MASTER_BIF_CTRL_INVAL_ALL_MASK 0x00000008U
-#define EUR_CR_MASTER_BIF_CTRL_INVAL_ALL_SHIFT 3
-#define EUR_CR_MASTER_BIF_CTRL_INVAL_ALL_SIGNED 0
-#define EUR_CR_MASTER_BIF_MMU_CTRL          0x4CD0
-#define EUR_CR_MASTER_BIF_MMU_CTRL_PREFETCHING_ON_MASK 0x00000001U
-#define EUR_CR_MASTER_BIF_MMU_CTRL_PREFETCHING_ON_SHIFT 0
-#define EUR_CR_MASTER_BIF_MMU_CTRL_PREFETCHING_ON_SIGNED 0
-#define EUR_CR_MASTER_BIF_MMU_CTRL_ADDR_HASH_MODE_MASK 0x00000006U
-#define EUR_CR_MASTER_BIF_MMU_CTRL_ADDR_HASH_MODE_SHIFT 1
-#define EUR_CR_MASTER_BIF_MMU_CTRL_ADDR_HASH_MODE_SIGNED 0
-#define EUR_CR_MASTER_BIF_MMU_CTRL_ENABLE_DC_TLB_MASK 0x00000010U
-#define EUR_CR_MASTER_BIF_MMU_CTRL_ENABLE_DC_TLB_SHIFT 4
-#define EUR_CR_MASTER_BIF_MMU_CTRL_ENABLE_DC_TLB_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL              0x4D00
-#define EUR_CR_MASTER_SLC_CTRL_DISABLE_REORDERING_MASK 0x00800000U
-#define EUR_CR_MASTER_SLC_CTRL_DISABLE_REORDERING_SHIFT 23
-#define EUR_CR_MASTER_SLC_CTRL_DISABLE_REORDERING_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_DISABLE_BURST_EXP_MASK 0x00400000U
-#define EUR_CR_MASTER_SLC_CTRL_DISABLE_BURST_EXP_SHIFT 22
-#define EUR_CR_MASTER_SLC_CTRL_DISABLE_BURST_EXP_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_REQ3_MASK 0x00200000U
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_REQ3_SHIFT 21
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_REQ3_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_REQ2_MASK 0x00100000U
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_REQ2_SHIFT 20
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_REQ2_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_REQ1_MASK 0x00080000U
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_REQ1_SHIFT 19
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_REQ1_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_REQ0_MASK 0x00040000U
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_REQ0_SHIFT 18
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_REQ0_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_DM_REF_SET_ALL_MASK 0x00010000U
-#define EUR_CR_MASTER_SLC_CTRL_DM_REF_SET_ALL_SHIFT 16
-#define EUR_CR_MASTER_SLC_CTRL_DM_REF_SET_ALL_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_ARB_PAGE_SIZE_MASK 0x0000F000U
-#define EUR_CR_MASTER_SLC_CTRL_ARB_PAGE_SIZE_SHIFT 12
-#define EUR_CR_MASTER_SLC_CTRL_ARB_PAGE_SIZE_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_ADDR_DECODE_MODE_MASK 0x00000E00U
-#define EUR_CR_MASTER_SLC_CTRL_ADDR_DECODE_MODE_SHIFT 9
-#define EUR_CR_MASTER_SLC_CTRL_ADDR_DECODE_MODE_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_PAUSE_MASK   0x00000100U
-#define EUR_CR_MASTER_SLC_CTRL_PAUSE_SHIFT  8
-#define EUR_CR_MASTER_SLC_CTRL_PAUSE_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS       0x4D04
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_BYP_CC_N_MASK 0x08000000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_BYP_CC_N_SHIFT 27
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_BYP_CC_N_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_BYP_CC_MASK 0x04000000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_BYP_CC_SHIFT 26
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_BYP_CC_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE4_MASK 0x02000000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE4_SHIFT 25
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE4_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE3_MASK 0x01000000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE3_SHIFT 24
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE3_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE2_MASK 0x00800000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE2_SHIFT 23
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE2_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE1_MASK 0x00400000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE1_SHIFT 22
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE1_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE0_MASK 0x00200000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE0_SHIFT 21
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_CORE0_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_PTLA_MASK 0x00100000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_PTLA_SHIFT 20
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_PTLA_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_ISP2_RCIF_MASK 0x00080000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_ISP2_RCIF_SHIFT 19
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_ISP2_RCIF_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_ZLS_MASK 0x00040000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_ZLS_SHIFT 18
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_ZLS_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_PBE_MASK 0x00020000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_PBE_SHIFT 17
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_PBE_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_VDM_MASK 0x00010000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_VDM_SHIFT 16
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_VDM_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_IPF_MASK 0x00008000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_IPF_SHIFT 15
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_IPF_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_PDS_MASK 0x00004000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_PDS_SHIFT 14
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_PDS_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USEC_MASK 0x00002000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USEC_SHIFT 13
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USEC_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE3_MASK 0x00001000U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE3_SHIFT 12
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE3_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE2_MASK 0x00000800U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE2_SHIFT 11
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE2_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE1_MASK 0x00000400U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE1_SHIFT 10
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE1_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE0_MASK 0x00000200U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE0_SHIFT 9
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_USE0_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_IPF_OBJ_MASK 0x00000100U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_IPF_OBJ_SHIFT 8
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_IPF_OBJ_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_TPF_MASK 0x00000080U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_TPF_SHIFT 7
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_TPF_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_TA_MASK 0x00000040U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_TA_SHIFT 6
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_TA_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_CACHE_MASK 0x00000020U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_CACHE_SHIFT 5
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_CACHE_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_MMU_MASK 0x00000010U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_MMU_SHIFT 4
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_REQ_MMU_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_DM_EVENT_MASK 0x00000008U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_DM_EVENT_SHIFT 3
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_DM_EVENT_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_DM_PIXEL_MASK 0x00000004U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_DM_PIXEL_SHIFT 2
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_DM_PIXEL_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_DM_VERTEX_MASK 0x00000002U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_DM_VERTEX_SHIFT 1
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_DM_VERTEX_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_ALL_MASK 0x00000001U
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_ALL_SHIFT 0
-#define EUR_CR_MASTER_SLC_CTRL_BYPASS_ALL_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL   0x4D08
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_ADDR_MASK 0xFFFFFFFFU
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_ADDR_SHIFT 0
-#define EUR_CR_MASTER_SLC_CTRL_USSE_INVAL_ADDR_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_INVAL        0x4D28
-#define EUR_CR_MASTER_SLC_CTRL_INVAL_DM_EVENT_MASK 0x00000008U
-#define EUR_CR_MASTER_SLC_CTRL_INVAL_DM_EVENT_SHIFT 3
-#define EUR_CR_MASTER_SLC_CTRL_INVAL_DM_EVENT_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_INVAL_DM_PIXEL_MASK 0x00000004U
-#define EUR_CR_MASTER_SLC_CTRL_INVAL_DM_PIXEL_SHIFT 2
-#define EUR_CR_MASTER_SLC_CTRL_INVAL_DM_PIXEL_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_INVAL_DM_VERTEX_MASK 0x00000002U
-#define EUR_CR_MASTER_SLC_CTRL_INVAL_DM_VERTEX_SHIFT 1
-#define EUR_CR_MASTER_SLC_CTRL_INVAL_DM_VERTEX_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_INVAL_ALL_MASK 0x00000001U
-#define EUR_CR_MASTER_SLC_CTRL_INVAL_ALL_SHIFT 0
-#define EUR_CR_MASTER_SLC_CTRL_INVAL_ALL_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH        0x4D2C
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_DM_EVENT_MASK 0x00000080U
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_DM_EVENT_SHIFT 7
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_DM_EVENT_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_DM_PIXEL_MASK 0x00000040U
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_DM_PIXEL_SHIFT 6
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_DM_PIXEL_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_DM_VERTEX_MASK 0x00000020U
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_DM_VERTEX_SHIFT 5
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_DM_VERTEX_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_ALL_MASK 0x00000010U
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_ALL_SHIFT 4
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_ALL_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_INV    0x4D34
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_INV_DM_EVENT_MASK 0x00000080U
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_INV_DM_EVENT_SHIFT 7
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_INV_DM_EVENT_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_INV_DM_PIXEL_MASK 0x00000040U
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_INV_DM_PIXEL_SHIFT 6
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_INV_DM_PIXEL_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_INV_DM_VERTEX_MASK 0x00000020U
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_INV_DM_VERTEX_SHIFT 5
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_INV_DM_VERTEX_SIGNED 0
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_INV_ALL_MASK 0x00000010U
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_INV_ALL_SHIFT 4
-#define EUR_CR_MASTER_SLC_CTRL_FLUSH_INV_ALL_SIGNED 0
-#define EUR_CR_MASTER_BREAKPOINT_READ       0x4F18
-#define EUR_CR_MASTER_BREAKPOINT_READ_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_MASTER_BREAKPOINT_READ_ADDRESS_SHIFT 4
-#define EUR_CR_MASTER_BREAKPOINT_READ_ADDRESS_SIGNED 0
-#define EUR_CR_MASTER_BREAKPOINT_TRAP       0x4F1C
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_CONTINUE_MASK 0x00000002U
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_CONTINUE_SHIFT 1
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_CONTINUE_SIGNED 0
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_WRNOTIFY_MASK 0x00000001U
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_WRNOTIFY_SHIFT 0
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_WRNOTIFY_SIGNED 0
-#define EUR_CR_MASTER_BREAKPOINT            0x4F20
-#define EUR_CR_MASTER_BREAKPOINT_ID_MASK    0x00000030U
-#define EUR_CR_MASTER_BREAKPOINT_ID_SHIFT   4
-#define EUR_CR_MASTER_BREAKPOINT_ID_SIGNED  0
-#define EUR_CR_MASTER_BREAKPOINT_UNTRAPPED_MASK 0x00000008U
-#define EUR_CR_MASTER_BREAKPOINT_UNTRAPPED_SHIFT 3
-#define EUR_CR_MASTER_BREAKPOINT_UNTRAPPED_SIGNED 0
-#define EUR_CR_MASTER_BREAKPOINT_TRAPPED_MASK 0x00000004U
-#define EUR_CR_MASTER_BREAKPOINT_TRAPPED_SHIFT 2
-#define EUR_CR_MASTER_BREAKPOINT_TRAPPED_SIGNED 0
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO0 0x4F24
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO0_ADDRESS_MASK 0xFFFFFFF0U
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO0_ADDRESS_SHIFT 4
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO0_ADDRESS_SIGNED 0
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1 0x4F28
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_SIZE_MASK 0x00007C00U
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_SIZE_SHIFT 10
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_SIZE_SIGNED 0
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_NUMBER_MASK 0x00000300U
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_NUMBER_SHIFT 8
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_NUMBER_SIGNED 0
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_TAG_MASK 0x000000F8U
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_TAG_SHIFT 3
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_TAG_SIGNED 0
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_DATA_MASTER_MASK 0x00000006U
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_DATA_MASTER_SHIFT 1
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_DATA_MASTER_SIGNED 0
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_RNW_MASK 0x00000001U
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_RNW_SHIFT 0
-#define EUR_CR_MASTER_BREAKPOINT_TRAP_INFO1_RNW_SIGNED 0
-#define EUR_CR_MASTER_CORE                  0x4000
-#define EUR_CR_MASTER_CORE_ENABLE_MASK      0x00000003U
-#define EUR_CR_MASTER_CORE_ENABLE_SHIFT     0
-#define EUR_CR_MASTER_CORE_ENABLE_SIGNED    0
-#define EUR_CR_MASTER_CORE_ID               0x4010
-#define EUR_CR_MASTER_CORE_ID_CONFIG_MULTI_MASK 0x00000001U
-#define EUR_CR_MASTER_CORE_ID_CONFIG_MULTI_SHIFT 0
-#define EUR_CR_MASTER_CORE_ID_CONFIG_MULTI_SIGNED 0
-#define EUR_CR_MASTER_CORE_ID_CONFIG_BASE_MASK 0x00000002U
-#define EUR_CR_MASTER_CORE_ID_CONFIG_BASE_SHIFT 1
-#define EUR_CR_MASTER_CORE_ID_CONFIG_BASE_SIGNED 0
-#define EUR_CR_MASTER_CORE_ID_CONFIG_MASK   0x000000FCU
-#define EUR_CR_MASTER_CORE_ID_CONFIG_SHIFT  2
-#define EUR_CR_MASTER_CORE_ID_CONFIG_SIGNED 0
-#define EUR_CR_MASTER_CORE_ID_CONFIG_CORES_MASK 0x00000F00U
-#define EUR_CR_MASTER_CORE_ID_CONFIG_CORES_SHIFT 8
-#define EUR_CR_MASTER_CORE_ID_CONFIG_CORES_SIGNED 0
-#define EUR_CR_MASTER_CORE_ID_CONFIG_SLC_MASK 0x0000F000U
-#define EUR_CR_MASTER_CORE_ID_CONFIG_SLC_SHIFT 12
-#define EUR_CR_MASTER_CORE_ID_CONFIG_SLC_SIGNED 0
-#define EUR_CR_MASTER_CORE_ID_ID_MASK       0xFFFF0000U
-#define EUR_CR_MASTER_CORE_ID_ID_SHIFT      16
-#define EUR_CR_MASTER_CORE_ID_ID_SIGNED     0
-#define EUR_CR_MASTER_CORE_REVISION         0x4014
-#define EUR_CR_MASTER_CORE_REVISION_MAINTENANCE_MASK 0x000000FFU
-#define EUR_CR_MASTER_CORE_REVISION_MAINTENANCE_SHIFT 0
-#define EUR_CR_MASTER_CORE_REVISION_MAINTENANCE_SIGNED 0
-#define EUR_CR_MASTER_CORE_REVISION_MINOR_MASK 0x0000FF00U
-#define EUR_CR_MASTER_CORE_REVISION_MINOR_SHIFT 8
-#define EUR_CR_MASTER_CORE_REVISION_MINOR_SIGNED 0
-#define EUR_CR_MASTER_CORE_REVISION_MAJOR_MASK 0x00FF0000U
-#define EUR_CR_MASTER_CORE_REVISION_MAJOR_SHIFT 16
-#define EUR_CR_MASTER_CORE_REVISION_MAJOR_SIGNED 0
-#define EUR_CR_MASTER_CORE_REVISION_DESIGNER_MASK 0xFF000000U
-#define EUR_CR_MASTER_CORE_REVISION_DESIGNER_SHIFT 24
-#define EUR_CR_MASTER_CORE_REVISION_DESIGNER_SIGNED 0
-#define EUR_CR_MASTER_SOFT_RESET            0x4080
-#define EUR_CR_MASTER_SOFT_RESET_CORE_RESET_MASK(i) (0x00000001U << (0 + ((i) * 1)))
-#define EUR_CR_MASTER_SOFT_RESET_CORE_RESET_SHIFT(i) (0 + ((i) * 1))
-#define EUR_CR_MASTER_SOFT_RESET_CORE_RESET_REGNUM(i) 0x4080
-#define EUR_CR_MASTER_SOFT_RESET_IPF_RESET_MASK 0x00000010U
-#define EUR_CR_MASTER_SOFT_RESET_IPF_RESET_SHIFT 4
-#define EUR_CR_MASTER_SOFT_RESET_IPF_RESET_SIGNED 0
-#define EUR_CR_MASTER_SOFT_RESET_DPM_RESET_MASK 0x00000020U
-#define EUR_CR_MASTER_SOFT_RESET_DPM_RESET_SHIFT 5
-#define EUR_CR_MASTER_SOFT_RESET_DPM_RESET_SIGNED 0
-#define EUR_CR_MASTER_SOFT_RESET_VDM_RESET_MASK 0x00000040U
-#define EUR_CR_MASTER_SOFT_RESET_VDM_RESET_SHIFT 6
-#define EUR_CR_MASTER_SOFT_RESET_VDM_RESET_SIGNED 0
-#define EUR_CR_MASTER_SOFT_RESET_SLC_RESET_MASK 0x00000080U
-#define EUR_CR_MASTER_SOFT_RESET_SLC_RESET_SHIFT 7
-#define EUR_CR_MASTER_SOFT_RESET_SLC_RESET_SIGNED 0
-#define EUR_CR_MASTER_SOFT_RESET_BIF_RESET_MASK 0x00000100U
-#define EUR_CR_MASTER_SOFT_RESET_BIF_RESET_SHIFT 8
-#define EUR_CR_MASTER_SOFT_RESET_BIF_RESET_SIGNED 0
-#define EUR_CR_MASTER_SOFT_RESET_MCI_RESET_MASK 0x00000200U
-#define EUR_CR_MASTER_SOFT_RESET_MCI_RESET_SHIFT 9
-#define EUR_CR_MASTER_SOFT_RESET_MCI_RESET_SIGNED 0
-#define EUR_CR_MASTER_SOFT_RESET_PTLA_RESET_MASK 0x00000400U
-#define EUR_CR_MASTER_SOFT_RESET_PTLA_RESET_SHIFT 10
-#define EUR_CR_MASTER_SOFT_RESET_PTLA_RESET_SIGNED 0
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/buffer_manager.h b/drivers/staging/cdv/pvr/services4/srvkm/include/buffer_manager.h
deleted file mode 100644
index bba12a7..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/buffer_manager.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _BUFFER_MANAGER_H_
-#define _BUFFER_MANAGER_H_
-
-#include "img_types.h"
-#include "ra.h"
-#include "perproc.h"
-
-#if defined(__cplusplus)
-extern "C"{
-#endif
-
-typedef struct _BM_HEAP_ BM_HEAP;
-
-struct _BM_MAPPING_
-{
-	enum
-	{
-		hm_wrapped = 1,		
-		hm_wrapped_scatter,	
-		hm_wrapped_virtaddr, 
-		hm_wrapped_scatter_virtaddr, 
-		hm_env,				
-		hm_contiguous		
-	} eCpuMemoryOrigin;
-
-	BM_HEAP				*pBMHeap;	
-	RA_ARENA			*pArena;	
-
-	IMG_CPU_VIRTADDR	CpuVAddr;
-	IMG_CPU_PHYADDR		CpuPAddr;
-	IMG_DEV_VIRTADDR	DevVAddr;
-	IMG_SYS_PHYADDR		*psSysAddr;
-	IMG_SIZE_T			uSize;
-    IMG_HANDLE          hOSMemHandle;
-	IMG_UINT32			ui32Flags;
-};
-
-typedef struct _BM_BUF_
-{
-	IMG_CPU_VIRTADDR	*CpuVAddr;
-    IMG_VOID            *hOSMemHandle;
-	IMG_CPU_PHYADDR		CpuPAddr;
-	IMG_DEV_VIRTADDR	DevVAddr;
-
-	BM_MAPPING			*pMapping;
-	IMG_UINT32			ui32RefCount;
-	IMG_UINT32			ui32ExportCount;
-} BM_BUF;
-
-struct _BM_HEAP_
-{
-	IMG_UINT32				ui32Attribs;
-	BM_CONTEXT				*pBMContext;
-	RA_ARENA				*pImportArena;
-	RA_ARENA				*pLocalDevMemArena;
-	RA_ARENA				*pVMArena;
-	DEV_ARENA_DESCRIPTOR	sDevArena;
-	MMU_HEAP				*pMMUHeap;
-	PDUMP_MMU_ATTRIB 		*psMMUAttrib;
-	
-	struct _BM_HEAP_ 		*psNext;
-	struct _BM_HEAP_ 		**ppsThis;
-};
-
-struct _BM_CONTEXT_
-{
-	MMU_CONTEXT	*psMMUContext;
-
-	
-	 BM_HEAP *psBMHeap;
-
-	
-	 BM_HEAP *psBMSharedHeap;
-
-	PVRSRV_DEVICE_NODE *psDeviceNode;
-
-	
-	HASH_TABLE *pBufferHash;
-
-	
-	IMG_HANDLE hResItem;
-
-	IMG_UINT32 ui32RefCount;
-
-	
-
-	struct _BM_CONTEXT_ *psNext;
-	struct _BM_CONTEXT_ **ppsThis;
-};
-
-
-
-typedef IMG_VOID *BM_HANDLE;
-
-#define BP_POOL_MASK         0x7
-
-#define BP_CONTIGUOUS			(1 << 3)
-#define BP_PARAMBUFFER			(1 << 4)
-
-#define BM_MAX_DEVMEM_ARENAS  2
-
-IMG_HANDLE
-BM_CreateContext(PVRSRV_DEVICE_NODE			*psDeviceNode,
-				 IMG_DEV_PHYADDR			*psPDDevPAddr,
-				 PVRSRV_PER_PROCESS_DATA	*psPerProc,
-				 IMG_BOOL					*pbCreated);
-
-
-PVRSRV_ERROR
-BM_DestroyContext (IMG_HANDLE hBMContext,
-					IMG_BOOL *pbCreated);
-
-
-IMG_HANDLE
-BM_CreateHeap (IMG_HANDLE hBMContext,
-				DEVICE_MEMORY_HEAP_INFO *psDevMemHeapInfo);
-
-IMG_VOID
-BM_DestroyHeap (IMG_HANDLE hDevMemHeap);
-
-
-IMG_BOOL
-BM_Reinitialise (PVRSRV_DEVICE_NODE *psDeviceNode);
-
-IMG_BOOL
-BM_Alloc (IMG_HANDLE			hDevMemHeap,
-			IMG_DEV_VIRTADDR	*psDevVAddr,
-			IMG_SIZE_T			uSize,
-			IMG_UINT32			*pui32Flags,
-			IMG_UINT32			uDevVAddrAlignment,
-			BM_HANDLE			*phBuf);
-
-IMG_BOOL
-BM_Wrap (	IMG_HANDLE hDevMemHeap,
-		    IMG_SIZE_T ui32Size,
-			IMG_SIZE_T ui32Offset,
-			IMG_BOOL bPhysContig,
-			IMG_SYS_PHYADDR *psSysAddr,
-			IMG_VOID *pvCPUVAddr,
-			IMG_UINT32 *pui32Flags,
-			BM_HANDLE *phBuf);
-
-IMG_VOID
-BM_Free (BM_HANDLE hBuf,
-		IMG_UINT32 ui32Flags);
-
-
-IMG_CPU_VIRTADDR
-BM_HandleToCpuVaddr (BM_HANDLE hBuf);
-
-IMG_DEV_VIRTADDR
-BM_HandleToDevVaddr (BM_HANDLE hBuf);
-
-IMG_SYS_PHYADDR
-BM_HandleToSysPaddr (BM_HANDLE hBuf);
-
-IMG_HANDLE
-BM_HandleToOSMemHandle (BM_HANDLE hBuf);
-
-IMG_VOID BM_GetPhysPageAddr(PVRSRV_KERNEL_MEM_INFO *psMemInfo,
-								IMG_DEV_VIRTADDR sDevVPageAddr,
-								IMG_DEV_PHYADDR *psDevPAddr);
-
-MMU_CONTEXT* BM_GetMMUContext(IMG_HANDLE hDevMemHeap);
-
-MMU_CONTEXT* BM_GetMMUContextFromMemContext(IMG_HANDLE hDevMemContext);
-
-IMG_HANDLE BM_GetMMUHeap(IMG_HANDLE hDevMemHeap);
-
-PVRSRV_DEVICE_NODE* BM_GetDeviceNode(IMG_HANDLE hDevMemContext);
-
-
-IMG_HANDLE BM_GetMappingHandle(PVRSRV_KERNEL_MEM_INFO *psMemInfo);
-
-IMG_VOID BM_Export(BM_HANDLE hBuf);
-
-IMG_VOID BM_FreeExport(BM_HANDLE hBuf, IMG_UINT32 ui32Flags);
-
-PVRSRV_ERROR BM_XProcWorkaroundSetShareIndex(IMG_UINT32 ui32Index);
-PVRSRV_ERROR BM_XProcWorkaroundUnsetShareIndex(IMG_UINT32 ui32Index);
-PVRSRV_ERROR BM_XProcWorkaroundFindNewBufferAndSetShareIndex(IMG_UINT32 *pui32Index);
-
-PVRSRV_ERROR BM_XProcWorkaroundShareInit(void);
-void BM_XProcWorkaroundShareDestroy(void);
-
-IMG_UINT32 BM_XProcWorkaroundGetRefCount(IMG_UINT32 ui32Index);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/device.h b/drivers/staging/cdv/pvr/services4/srvkm/include/device.h
deleted file mode 100644
index 9df2c73..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/device.h
+++ /dev/null
@@ -1,323 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __DEVICE_H__
-#define __DEVICE_H__
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-	
-#include "ra.h"  		
-#include "resman.h"		
-
-typedef struct _BM_CONTEXT_ BM_CONTEXT;
-
-typedef struct _MMU_HEAP_ MMU_HEAP;
-typedef struct _MMU_CONTEXT_ MMU_CONTEXT;
-
-#define PVRSRV_BACKINGSTORE_SYSMEM_CONTIG		(1<<(PVRSRV_MEM_BACKINGSTORE_FIELD_SHIFT+0))
-#define PVRSRV_BACKINGSTORE_SYSMEM_NONCONTIG	(1<<(PVRSRV_MEM_BACKINGSTORE_FIELD_SHIFT+1))
-#define PVRSRV_BACKINGSTORE_LOCALMEM_CONTIG		(1<<(PVRSRV_MEM_BACKINGSTORE_FIELD_SHIFT+2))
-#define PVRSRV_BACKINGSTORE_LOCALMEM_NONCONTIG	(1<<(PVRSRV_MEM_BACKINGSTORE_FIELD_SHIFT+3))
-
-typedef IMG_UINT32 DEVICE_MEMORY_HEAP_TYPE;
-#define DEVICE_MEMORY_HEAP_PERCONTEXT		0
-#define DEVICE_MEMORY_HEAP_KERNEL			1
-#define DEVICE_MEMORY_HEAP_SHARED			2
-#define DEVICE_MEMORY_HEAP_SHARED_EXPORTED	3
-
-#define PVRSRV_DEVICE_NODE_FLAGS_PORT80DISPLAY	1
-#define PVRSRV_DEVICE_NODE_FLAGS_MMU_OPT_INV	2	
-
-typedef struct _DEVICE_MEMORY_HEAP_INFO_
-{
-	
-	IMG_UINT32				ui32HeapID;
-
-	
-	IMG_CHAR				*pszName;
-
-	
-	IMG_CHAR				*pszBSName;
-	
-	
-	IMG_DEV_VIRTADDR		sDevVAddrBase;
-
-	
-	IMG_UINT32				ui32HeapSize;
-
-	
-	IMG_UINT32				ui32Attribs;
-
-	
-	DEVICE_MEMORY_HEAP_TYPE	DevMemHeapType;
-	
-	
-	IMG_HANDLE				hDevMemHeap;
-	
-	
-	RA_ARENA				*psLocalDevMemArena;
-
-	
-	IMG_UINT32				ui32DataPageSize;
-
-	IMG_UINT32				ui32XTileStride;
-
-} DEVICE_MEMORY_HEAP_INFO;
-
-typedef struct _DEVICE_MEMORY_INFO_
-{
-	
-	IMG_UINT32				ui32AddressSpaceSizeLog2;
-
-	
-
-
-	IMG_UINT32				ui32Flags;
-
-	
-	IMG_UINT32				ui32HeapCount;
-	
-	
-	IMG_UINT32				ui32SyncHeapID;
-	
-	
-	IMG_UINT32				ui32MappingHeapID;
-
-	
-	DEVICE_MEMORY_HEAP_INFO	*psDeviceMemoryHeap;
-
-	
-    BM_CONTEXT				*pBMKernelContext;
-
-	
-    BM_CONTEXT				*pBMContext;
-
-} DEVICE_MEMORY_INFO;
-
-
-typedef struct DEV_ARENA_DESCRIPTOR_TAG
-{
-	IMG_UINT32				ui32HeapID;		
-
-	IMG_CHAR				*pszName;		
-
-	IMG_DEV_VIRTADDR		BaseDevVAddr;	
-
-	IMG_UINT32 				ui32Size;		
-
-	DEVICE_MEMORY_HEAP_TYPE	DevMemHeapType;
-
-	
-	IMG_UINT32				ui32DataPageSize;
-
-	DEVICE_MEMORY_HEAP_INFO	*psDeviceMemoryHeapInfo;
-
-} DEV_ARENA_DESCRIPTOR;
-
-
-typedef struct _PDUMP_MMU_ATTRIB_
-{
-	PVRSRV_DEVICE_IDENTIFIER	sDevId;
-	
-	IMG_CHAR	*pszPDRegRegion;
-	
-	
-	IMG_UINT32 ui32DataPageMask;
-
-	
-	IMG_UINT32 ui32PTEValid;
-	IMG_UINT32 ui32PTSize;
-	IMG_UINT32 ui32PTEAlignShift;
-
-	
-	IMG_UINT32 ui32PDEMask;
-	IMG_UINT32 ui32PDEAlignShift;
-
-} PDUMP_MMU_ATTRIB;
-
-typedef struct _SYS_DATA_TAG_ *PSYS_DATA;
-
-typedef struct _PVRSRV_DEVICE_NODE_
-{
-	PVRSRV_DEVICE_IDENTIFIER	sDevId;
-	IMG_UINT32					ui32RefCount;
-
-	
-
-	
-	PVRSRV_ERROR			(*pfnInitDevice) (IMG_VOID*);
-	
-	PVRSRV_ERROR			(*pfnDeInitDevice) (IMG_VOID*);
-
-	
-	PVRSRV_ERROR			(*pfnInitDeviceCompatCheck) (struct _PVRSRV_DEVICE_NODE_*);
-
-	
-	PVRSRV_ERROR			(*pfnMMUInitialise)(struct _PVRSRV_DEVICE_NODE_*, MMU_CONTEXT**, IMG_DEV_PHYADDR*);
-	IMG_VOID				(*pfnMMUFinalise)(MMU_CONTEXT*);
-	IMG_VOID				(*pfnMMUInsertHeap)(MMU_CONTEXT*, MMU_HEAP*);
-	MMU_HEAP*				(*pfnMMUCreate)(MMU_CONTEXT*,DEV_ARENA_DESCRIPTOR*,RA_ARENA**,PDUMP_MMU_ATTRIB **ppsMMUAttrib);
-	IMG_VOID				(*pfnMMUDelete)(MMU_HEAP*);
-	IMG_BOOL				(*pfnMMUAlloc)(MMU_HEAP*pMMU,
-										   IMG_SIZE_T uSize,
-										   IMG_SIZE_T *pActualSize,
-										   IMG_UINT32 uFlags,
-										   IMG_UINT32 uDevVAddrAlignment,
-										   IMG_DEV_VIRTADDR *pDevVAddr);
-	IMG_VOID				(*pfnMMUFree)(MMU_HEAP*,IMG_DEV_VIRTADDR,IMG_UINT32);
-	IMG_VOID 				(*pfnMMUEnable)(MMU_HEAP*);
-	IMG_VOID				(*pfnMMUDisable)(MMU_HEAP*);
-	IMG_VOID				(*pfnMMUMapPages)(MMU_HEAP *pMMU,
-											  IMG_DEV_VIRTADDR devVAddr,
-											  IMG_SYS_PHYADDR SysPAddr,
-											  IMG_SIZE_T uSize,
-											  IMG_UINT32 ui32MemFlags,
-											  IMG_HANDLE hUniqueTag);
-	IMG_VOID				(*pfnMMUMapShadow)(MMU_HEAP            *pMMU,
-											   IMG_DEV_VIRTADDR    MapBaseDevVAddr,
-											   IMG_SIZE_T          uSize, 
-											   IMG_CPU_VIRTADDR    CpuVAddr,
-											   IMG_HANDLE          hOSMemHandle,
-											   IMG_DEV_VIRTADDR    *pDevVAddr,
-											   IMG_UINT32 ui32MemFlags,
-											   IMG_HANDLE hUniqueTag);
-	IMG_VOID				(*pfnMMUUnmapPages)(MMU_HEAP *pMMU,
-												IMG_DEV_VIRTADDR dev_vaddr,
-												IMG_UINT32 ui32PageCount,
-												IMG_HANDLE hUniqueTag);
-
-	IMG_VOID				(*pfnMMUMapScatter)(MMU_HEAP *pMMU,
-												IMG_DEV_VIRTADDR DevVAddr,
-												IMG_SYS_PHYADDR *psSysAddr,
-												IMG_SIZE_T uSize,
-												IMG_UINT32 ui32MemFlags,
-												IMG_HANDLE hUniqueTag);
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-	IMG_BOOL				(*pfnMMUIsHeapShared)(MMU_HEAP *);
-#endif
-	IMG_DEV_PHYADDR			(*pfnMMUGetPhysPageAddr)(MMU_HEAP *pMMUHeap, IMG_DEV_VIRTADDR sDevVPageAddr);
-	IMG_DEV_PHYADDR			(*pfnMMUGetPDDevPAddr)(MMU_CONTEXT *pMMUContext);
-	IMG_VOID				(*pfnMMUGetCacheFlushRange)(MMU_CONTEXT *pMMUContext, IMG_UINT32 *pui32RangeMask);
-	IMG_VOID				(*pfnMMUGetPDPhysAddr)(MMU_CONTEXT *pMMUContext, IMG_DEV_PHYADDR *psDevPAddr);
-
-	
-	PVRSRV_ERROR			(*pfnAllocMemTilingRange)(struct _PVRSRV_DEVICE_NODE_ *psDeviceNode,
-														PVRSRV_KERNEL_MEM_INFO *psMemInfo,
-														IMG_UINT32 ui32TilingStride,
-														IMG_UINT32 *pui32RangeIndex);
-	PVRSRV_ERROR			(*pfnFreeMemTilingRange)(struct _PVRSRV_DEVICE_NODE_ *psDeviceNode,
-														IMG_UINT32 ui32RangeIndex);
-
-	
-	IMG_BOOL				(*pfnDeviceISR)(IMG_VOID*);
-	
-	IMG_VOID				*pvISRData;
-	
-	IMG_UINT32 				ui32SOCInterruptBit;
-	
-	IMG_VOID				(*pfnDeviceMISR)(IMG_VOID*);
-
-	
-	IMG_VOID				(*pfnDeviceCommandComplete)(struct _PVRSRV_DEVICE_NODE_ *psDeviceNode);
-	
-	IMG_BOOL				bReProcessDeviceCommandComplete;
-
-	IMG_VOID				(*pfnCacheInvalidate)(struct _PVRSRV_DEVICE_NODE_ *psDeviceNode);
-
-	
-	DEVICE_MEMORY_INFO		sDevMemoryInfo;
-
-	
-	IMG_VOID				*pvDevice;
-	IMG_UINT32				ui32pvDeviceSize; 
-		
-	
-	PRESMAN_CONTEXT			hResManContext;
-	
-	
-	PSYS_DATA				psSysData;
-	
-	
-	RA_ARENA				*psLocalDevMemArena;
-	
-	IMG_UINT32				ui32Flags;
-	
-	struct _PVRSRV_DEVICE_NODE_	*psNext;
-	struct _PVRSRV_DEVICE_NODE_	**ppsThis;
-	
-#if defined(PDUMP)
-	
-	PVRSRV_ERROR			(*pfnPDumpInitDevice)(struct _PVRSRV_DEVICE_NODE_ *psDeviceNode);
-	
-	IMG_UINT32				(*pfnMMUGetContextID)(IMG_HANDLE hDevMemContext);
-#endif
-} PVRSRV_DEVICE_NODE;
-
-PVRSRV_ERROR IMG_CALLCONV PVRSRVRegisterDevice(PSYS_DATA psSysData,
-											  PVRSRV_ERROR (*pfnRegisterDevice)(PVRSRV_DEVICE_NODE*),
-											  IMG_UINT32 ui32SOCInterruptBit,
-			 								  IMG_UINT32 *pui32DeviceIndex );
-
-PVRSRV_ERROR IMG_CALLCONV PVRSRVInitialiseDevice(IMG_UINT32 ui32DevIndex);
-PVRSRV_ERROR IMG_CALLCONV PVRSRVFinaliseSystem(IMG_BOOL bInitSuccesful);
-
-PVRSRV_ERROR IMG_CALLCONV PVRSRVDevInitCompatCheck(PVRSRV_DEVICE_NODE *psDeviceNode);
-
-PVRSRV_ERROR IMG_CALLCONV PVRSRVDeinitialiseDevice(IMG_UINT32 ui32DevIndex);
-
-#if !defined(USE_CODE)
-
-IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV PollForValueKM(volatile IMG_UINT32*	pui32LinMemAddr,
-													IMG_UINT32				ui32Value,
-													IMG_UINT32				ui32Mask,
-													IMG_UINT32				ui32Timeoutus,
-													IMG_UINT32				ui32PollPeriodus,
-													IMG_BOOL				bAllowPreemption);
-
-#endif 
-
-
-#if defined (USING_ISR_INTERRUPTS)
-PVRSRV_ERROR IMG_CALLCONV PollForInterruptKM(IMG_UINT32 ui32Value,
-								IMG_UINT32 ui32Mask,
-								IMG_UINT32 ui32Waitus,
-								IMG_UINT32 ui32Tries);
-#endif 
-
-PVRSRV_ERROR IMG_CALLCONV PVRSRVInit(PSYS_DATA psSysData);
-IMG_VOID IMG_CALLCONV PVRSRVDeInit(PSYS_DATA psSysData);
-IMG_BOOL IMG_CALLCONV PVRSRVDeviceLISR(PVRSRV_DEVICE_NODE *psDeviceNode);
-IMG_BOOL IMG_CALLCONV PVRSRVSystemLISR(IMG_VOID *pvSysData);
-IMG_VOID IMG_CALLCONV PVRSRVMISR(IMG_VOID *pvSysData);
-
-#if defined(__cplusplus)
-}
-#endif
-	
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/handle.h b/drivers/staging/cdv/pvr/services4/srvkm/include/handle.h
deleted file mode 100644
index 536fa56..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/handle.h
+++ /dev/null
@@ -1,404 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __HANDLE_H__
-#define __HANDLE_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#include "img_types.h"
-#include "hash.h"
-#include "resman.h"
-
-typedef enum
-{
-	PVRSRV_HANDLE_TYPE_NONE = 0,
-	PVRSRV_HANDLE_TYPE_PERPROC_DATA,
-	PVRSRV_HANDLE_TYPE_DEV_NODE,
-	PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT,
-	PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP,
-	PVRSRV_HANDLE_TYPE_MEM_INFO,
-	PVRSRV_HANDLE_TYPE_SYNC_INFO,
-	PVRSRV_HANDLE_TYPE_DISP_INFO,
-	PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN,
-	PVRSRV_HANDLE_TYPE_BUF_INFO,
-	PVRSRV_HANDLE_TYPE_DISP_BUFFER,
-	PVRSRV_HANDLE_TYPE_BUF_BUFFER,
-	PVRSRV_HANDLE_TYPE_SGX_HW_RENDER_CONTEXT,
-	PVRSRV_HANDLE_TYPE_SGX_HW_TRANSFER_CONTEXT,
-	PVRSRV_HANDLE_TYPE_SGX_HW_2D_CONTEXT,
-	PVRSRV_HANDLE_TYPE_SHARED_PB_DESC,
-	PVRSRV_HANDLE_TYPE_MEM_INFO_REF,
-	PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO,
-	PVRSRV_HANDLE_TYPE_SHARED_EVENT_OBJECT,
-	PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT,
-	PVRSRV_HANDLE_TYPE_MMAP_INFO,
-	PVRSRV_HANDLE_TYPE_SOC_TIMER,
-	PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ,
-	PVRSRV_HANDLE_TYPE_RESITEM_INFO
-} PVRSRV_HANDLE_TYPE;
-
-typedef enum
-{
-	
-	PVRSRV_HANDLE_ALLOC_FLAG_NONE = 		0,
-	
-	PVRSRV_HANDLE_ALLOC_FLAG_SHARED = 		0x01,
-	
-	PVRSRV_HANDLE_ALLOC_FLAG_MULTI = 		0x02,
-	
-	PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE = 		0x04
-} PVRSRV_HANDLE_ALLOC_FLAG;
-
-struct _PVRSRV_HANDLE_BASE_;
-typedef struct _PVRSRV_HANDLE_BASE_ PVRSRV_HANDLE_BASE;
-
-#if defined (PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
-extern PVRSRV_HANDLE_BASE *gpsKernelHandleBase;
-
-#define	KERNEL_HANDLE_BASE (gpsKernelHandleBase)
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR PVRSRVAllocHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag);
-
-PVRSRV_ERROR PVRSRVAllocSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag, IMG_SID hParent);
-
-PVRSRV_ERROR PVRSRVFindHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType);
-
-PVRSRV_ERROR PVRSRVLookupHandleAnyType(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, PVRSRV_HANDLE_TYPE *peType, IMG_SID hHandle);
-
-PVRSRV_ERROR PVRSRVLookupHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType);
-
-PVRSRV_ERROR PVRSRVLookupSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType, IMG_SID hAncestor);
-
-PVRSRV_ERROR PVRSRVGetParentHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phParent, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType);
-
-PVRSRV_ERROR PVRSRVLookupAndReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType);
-
-PVRSRV_ERROR PVRSRVReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType);
-#else
-PVRSRV_ERROR PVRSRVAllocHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag);
-
-PVRSRV_ERROR PVRSRVAllocSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag, IMG_HANDLE hParent);
-
-PVRSRV_ERROR PVRSRVFindHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType);
-
-PVRSRV_ERROR PVRSRVLookupHandleAnyType(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, PVRSRV_HANDLE_TYPE *peType, IMG_HANDLE hHandle);
-
-PVRSRV_ERROR PVRSRVLookupHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType);
-
-PVRSRV_ERROR PVRSRVLookupSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType, IMG_HANDLE hAncestor);
-
-PVRSRV_ERROR PVRSRVGetParentHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *phParent, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType);
-
-PVRSRV_ERROR PVRSRVLookupAndReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType);
-
-PVRSRV_ERROR PVRSRVReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType);
-#endif 
-
-PVRSRV_ERROR PVRSRVNewHandleBatch(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32BatchSize);
-
-PVRSRV_ERROR PVRSRVCommitHandleBatch(PVRSRV_HANDLE_BASE *psBase);
-
-IMG_VOID PVRSRVReleaseHandleBatch(PVRSRV_HANDLE_BASE *psBase);
-
-PVRSRV_ERROR PVRSRVSetMaxHandle(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32MaxHandle);
-
-IMG_UINT32 PVRSRVGetMaxHandle(PVRSRV_HANDLE_BASE *psBase);
-
-PVRSRV_ERROR PVRSRVEnableHandlePurging(PVRSRV_HANDLE_BASE *psBase);
-
-PVRSRV_ERROR PVRSRVPurgeHandles(PVRSRV_HANDLE_BASE *psBase);
-
-PVRSRV_ERROR PVRSRVAllocHandleBase(PVRSRV_HANDLE_BASE **ppsBase);
-
-PVRSRV_ERROR PVRSRVFreeHandleBase(PVRSRV_HANDLE_BASE *psBase);
-
-PVRSRV_ERROR PVRSRVHandleInit(IMG_VOID);
-
-PVRSRV_ERROR PVRSRVHandleDeInit(IMG_VOID);
-
-#else	
-
-#define KERNEL_HANDLE_BASE IMG_NULL
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVAllocHandle)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVAllocHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag)
-{
-	PVR_UNREFERENCED_PARAMETER(eType);
-	PVR_UNREFERENCED_PARAMETER(eFlag);
-	PVR_UNREFERENCED_PARAMETER(psBase);
-
-	*phHandle = pvData;
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVAllocSubHandle)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVAllocSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag, IMG_HANDLE hParent)
-{
-	PVR_UNREFERENCED_PARAMETER(eType);
-	PVR_UNREFERENCED_PARAMETER(eFlag);
-	PVR_UNREFERENCED_PARAMETER(hParent);
-	PVR_UNREFERENCED_PARAMETER(psBase);
-
-	*phHandle = pvData;
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVFindHandle)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVFindHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType)
-{
-	PVR_UNREFERENCED_PARAMETER(eType);
-	PVR_UNREFERENCED_PARAMETER(psBase);
-
-	*phHandle = pvData;
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVLookupHandleAnyType)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVLookupHandleAnyType(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, PVRSRV_HANDLE_TYPE *peType, IMG_HANDLE hHandle)
-{
-	PVR_UNREFERENCED_PARAMETER(psBase);
-	
-	*peType = PVRSRV_HANDLE_TYPE_NONE;
-
-	*ppvData = hHandle;
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVLookupHandle)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVLookupHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType)
-{
-	PVR_UNREFERENCED_PARAMETER(psBase);
-	PVR_UNREFERENCED_PARAMETER(eType);
-
-	*ppvData = hHandle;
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVLookupSubHandle)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVLookupSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType, IMG_HANDLE hAncestor)
-{
-	PVR_UNREFERENCED_PARAMETER(psBase);
-	PVR_UNREFERENCED_PARAMETER(eType);
-	PVR_UNREFERENCED_PARAMETER(hAncestor);
-
-	*ppvData = hHandle;
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVGetParentHandle)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVGetParentHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *phParent, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType)
-{
-	PVR_UNREFERENCED_PARAMETER(psBase);
-	PVR_UNREFERENCED_PARAMETER(eType);
-	PVR_UNREFERENCED_PARAMETER(hHandle);
-
-	*phParent = IMG_NULL;
-
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVLookupAndReleaseHandle)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVLookupAndReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType)
-{
-	PVR_UNREFERENCED_PARAMETER(eType);
-	PVR_UNREFERENCED_PARAMETER(psBase);
-
-	*ppvData = hHandle;
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVReleaseHandle)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType)
-{
-	PVR_UNREFERENCED_PARAMETER(hHandle);
-	PVR_UNREFERENCED_PARAMETER(eType);
-	PVR_UNREFERENCED_PARAMETER(psBase);
-
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVNewHandleBatch)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVNewHandleBatch(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32BatchSize)
-{
-	PVR_UNREFERENCED_PARAMETER(psBase);
-	PVR_UNREFERENCED_PARAMETER(ui32BatchSize);
-
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVCommitHandleBatch)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVCommitHandleBatch(PVRSRV_HANDLE_BASE *psBase)
-{
-	PVR_UNREFERENCED_PARAMETER(psBase);
-
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVReleaseHandleBatch)
-#endif
-static INLINE
-IMG_VOID PVRSRVReleaseHandleBatch(PVRSRV_HANDLE_BASE *psBase)
-{
-	PVR_UNREFERENCED_PARAMETER(psBase);
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVSetMaxHandle)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVSetMaxHandle(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32MaxHandle)
-{
-	PVR_UNREFERENCED_PARAMETER(psBase);
-	PVR_UNREFERENCED_PARAMETER(ui32MaxHandle);
-
-	return PVRSRV_ERROR_NOT_SUPPORTED;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVGetMaxHandle)
-#endif
-static INLINE
-IMG_UINT32 PVRSRVGetMaxHandle(PVRSRV_HANDLE_BASE *psBase)
-{
-	PVR_UNREFERENCED_PARAMETER(psBase);
-
-	return 0;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVEnableHandlePurging)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVEnableHandlePurging(PVRSRV_HANDLE_BASE *psBase)
-{
-	PVR_UNREFERENCED_PARAMETER(psBase);
-
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVPurgeHandles)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVPurgeHandles(PVRSRV_HANDLE_BASE *psBase)
-{
-	PVR_UNREFERENCED_PARAMETER(psBase);
-
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVAllocHandleBase)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVAllocHandleBase(PVRSRV_HANDLE_BASE **ppsBase)
-{
-	*ppsBase = IMG_NULL;
-
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVFreeHandleBase)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVFreeHandleBase(PVRSRV_HANDLE_BASE *psBase)
-{
-	PVR_UNREFERENCED_PARAMETER(psBase);
-
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVHandleInit)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVHandleInit(IMG_VOID)
-{
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVHandleDeInit)
-#endif
-static INLINE
-PVRSRV_ERROR PVRSRVHandleDeInit(IMG_VOID)
-{
-	return PVRSRV_OK;
-}
-
-#endif	
-
-#define PVRSRVAllocHandleNR(psBase, phHandle, pvData, eType, eFlag) \
-	(IMG_VOID)PVRSRVAllocHandle(psBase, phHandle, pvData, eType, eFlag)
-
-#define PVRSRVAllocSubHandleNR(psBase, phHandle, pvData, eType, eFlag, hParent) \
-	(IMG_VOID)PVRSRVAllocSubHandle(psBase, phHandle, pvData, eType, eFlag, hParent)
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/hash.h b/drivers/staging/cdv/pvr/services4/srvkm/include/hash.h
deleted file mode 100644
index 3662089..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/hash.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _HASH_H_
-#define _HASH_H_
-
-#include "img_types.h"
-#include "osfunc.h"
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-typedef IMG_UINT32 HASH_FUNC(IMG_SIZE_T uKeySize, IMG_VOID *pKey, IMG_UINT32 uHashTabLen);
-typedef IMG_BOOL HASH_KEY_COMP(IMG_SIZE_T uKeySize, IMG_VOID *pKey1, IMG_VOID *pKey2);
-
-typedef struct _HASH_TABLE_ HASH_TABLE;
-
-typedef PVRSRV_ERROR (*HASH_pfnCallback) (
-	IMG_UINTPTR_T k,
-	IMG_UINTPTR_T v
-);
-
-IMG_UINT32 HASH_Func_Default (IMG_SIZE_T uKeySize, IMG_VOID *pKey, IMG_UINT32 uHashTabLen);
-
-IMG_BOOL HASH_Key_Comp_Default (IMG_SIZE_T uKeySize, IMG_VOID *pKey1, IMG_VOID *pKey2);
-
-HASH_TABLE * HASH_Create_Extended (IMG_UINT32 uInitialLen, IMG_SIZE_T uKeySize, HASH_FUNC *pfnHashFunc, HASH_KEY_COMP *pfnKeyComp);
-
-HASH_TABLE * HASH_Create (IMG_UINT32 uInitialLen);
-
-IMG_VOID HASH_Delete (HASH_TABLE *pHash);
-
-IMG_BOOL HASH_Insert_Extended (HASH_TABLE *pHash, IMG_VOID *pKey, IMG_UINTPTR_T v);
-
-IMG_BOOL HASH_Insert (HASH_TABLE *pHash, IMG_UINTPTR_T k, IMG_UINTPTR_T v);
-
-IMG_UINTPTR_T HASH_Remove_Extended(HASH_TABLE *pHash, IMG_VOID *pKey);
-
-IMG_UINTPTR_T HASH_Remove (HASH_TABLE *pHash, IMG_UINTPTR_T k);
-
-IMG_UINTPTR_T HASH_Retrieve_Extended (HASH_TABLE *pHash, IMG_VOID *pKey);
-
-IMG_UINTPTR_T HASH_Retrieve (HASH_TABLE *pHash, IMG_UINTPTR_T k);
-
-PVRSRV_ERROR HASH_Iterate(HASH_TABLE *pHash, HASH_pfnCallback pfnCallback);
-
-#ifdef HASH_TRACE
-IMG_VOID HASH_Dump (HASH_TABLE *pHash);
-#endif
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/lists.h b/drivers/staging/cdv/pvr/services4/srvkm/include/lists.h
deleted file mode 100644
index a02307a..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/lists.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __LISTS_UTILS__
-#define __LISTS_UTILS__
-
-#include <stdarg.h>
-#include "img_types.h"
-
-#define DECLARE_LIST_FOR_EACH(TYPE) \
-IMG_VOID List_##TYPE##_ForEach(TYPE *psHead, IMG_VOID(*pfnCallBack)(TYPE* psNode))
-
-#define IMPLEMENT_LIST_FOR_EACH(TYPE) \
-IMG_VOID List_##TYPE##_ForEach(TYPE *psHead, IMG_VOID(*pfnCallBack)(TYPE* psNode))\
-{\
-	while(psHead)\
-	{\
-		pfnCallBack(psHead);\
-		psHead = psHead->psNext;\
-	}\
-}
-
-
-#define DECLARE_LIST_FOR_EACH_VA(TYPE) \
-IMG_VOID List_##TYPE##_ForEach_va(TYPE *psHead, IMG_VOID(*pfnCallBack)(TYPE* psNode, va_list va), ...)
-
-#define IMPLEMENT_LIST_FOR_EACH_VA(TYPE) \
-IMG_VOID List_##TYPE##_ForEach_va(TYPE *psHead, IMG_VOID(*pfnCallBack)(TYPE* psNode, va_list va), ...) \
-{\
-	va_list ap;\
-	while(psHead)\
-	{\
-		va_start(ap, pfnCallBack);\
-		pfnCallBack(psHead, ap);\
-		psHead = psHead->psNext;\
-		va_end(ap);\
-	}\
-}
-
-
-#define DECLARE_LIST_ANY(TYPE) \
-IMG_VOID* List_##TYPE##_Any(TYPE *psHead, IMG_VOID* (*pfnCallBack)(TYPE* psNode))
-
-#define IMPLEMENT_LIST_ANY(TYPE) \
-IMG_VOID* List_##TYPE##_Any(TYPE *psHead, IMG_VOID* (*pfnCallBack)(TYPE* psNode))\
-{ \
-	IMG_VOID *pResult;\
-	TYPE *psNextNode;\
-	pResult = IMG_NULL;\
-	psNextNode = psHead;\
-	while(psHead && !pResult)\
-	{\
-		psNextNode = psNextNode->psNext;\
-		pResult = pfnCallBack(psHead);\
-		psHead = psNextNode;\
-	}\
-	return pResult;\
-}
-
-
-#define DECLARE_LIST_ANY_VA(TYPE) \
-IMG_VOID* List_##TYPE##_Any_va(TYPE *psHead, IMG_VOID*(*pfnCallBack)(TYPE* psNode, va_list va), ...)
-
-#define IMPLEMENT_LIST_ANY_VA(TYPE) \
-IMG_VOID* List_##TYPE##_Any_va(TYPE *psHead, IMG_VOID*(*pfnCallBack)(TYPE* psNode, va_list va), ...)\
-{\
-	va_list ap;\
-	TYPE *psNextNode;\
-	IMG_VOID* pResult = IMG_NULL;\
-	while(psHead && !pResult)\
-	{\
-		psNextNode = psHead->psNext;\
-		va_start(ap, pfnCallBack);\
-		pResult = pfnCallBack(psHead, ap);\
-		va_end(ap);\
-		psHead = psNextNode;\
-	}\
-	return pResult;\
-}
-
-#define DECLARE_LIST_ANY_2(TYPE, RTYPE, CONTINUE) \
-RTYPE List_##TYPE##_##RTYPE##_Any(TYPE *psHead, RTYPE (*pfnCallBack)(TYPE* psNode))
-
-#define IMPLEMENT_LIST_ANY_2(TYPE, RTYPE, CONTINUE) \
-RTYPE List_##TYPE##_##RTYPE##_Any(TYPE *psHead, RTYPE (*pfnCallBack)(TYPE* psNode))\
-{ \
-	RTYPE result;\
-	TYPE *psNextNode;\
-	result = CONTINUE;\
-	psNextNode = psHead;\
-	while(psHead && result == CONTINUE)\
-	{\
-		psNextNode = psNextNode->psNext;\
-		result = pfnCallBack(psHead);\
-		psHead = psNextNode;\
-	}\
-	return result;\
-}
-
-
-#define DECLARE_LIST_ANY_VA_2(TYPE, RTYPE, CONTINUE) \
-RTYPE List_##TYPE##_##RTYPE##_Any_va(TYPE *psHead, RTYPE(*pfnCallBack)(TYPE* psNode, va_list va), ...)
-
-#define IMPLEMENT_LIST_ANY_VA_2(TYPE, RTYPE, CONTINUE) \
-RTYPE List_##TYPE##_##RTYPE##_Any_va(TYPE *psHead, RTYPE(*pfnCallBack)(TYPE* psNode, va_list va), ...)\
-{\
-	va_list ap;\
-	TYPE *psNextNode;\
-	RTYPE result = CONTINUE;\
-	while(psHead && result == CONTINUE)\
-	{\
-		psNextNode = psHead->psNext;\
-		va_start(ap, pfnCallBack);\
-		result = pfnCallBack(psHead, ap);\
-		va_end(ap);\
-		psHead = psNextNode;\
-	}\
-	return result;\
-}
-
-
-#define DECLARE_LIST_REMOVE(TYPE) \
-IMG_VOID List_##TYPE##_Remove(TYPE *psNode)
-
-#define IMPLEMENT_LIST_REMOVE(TYPE) \
-IMG_VOID List_##TYPE##_Remove(TYPE *psNode)\
-{\
-	(*psNode->ppsThis)=psNode->psNext;\
-	if(psNode->psNext)\
-	{\
-		psNode->psNext->ppsThis = psNode->ppsThis;\
-	}\
-}
-
-#define DECLARE_LIST_INSERT(TYPE) \
-IMG_VOID List_##TYPE##_Insert(TYPE **ppsHead, TYPE *psNewNode)
-
-#define IMPLEMENT_LIST_INSERT(TYPE) \
-IMG_VOID List_##TYPE##_Insert(TYPE **ppsHead, TYPE *psNewNode)\
-{\
-	psNewNode->ppsThis = ppsHead;\
-	psNewNode->psNext = *ppsHead;\
-	*ppsHead = psNewNode;\
-	if(psNewNode->psNext)\
-	{\
-		psNewNode->psNext->ppsThis = &(psNewNode->psNext);\
-	}\
-}
-
-#define DECLARE_LIST_REVERSE(TYPE) \
-IMG_VOID List_##TYPE##_Reverse(TYPE **ppsHead)
-
-#define IMPLEMENT_LIST_REVERSE(TYPE) \
-IMG_VOID List_##TYPE##_Reverse(TYPE **ppsHead)\
-{\
-    TYPE *psTmpNode1; \
-    TYPE *psTmpNode2; \
-    TYPE *psCurNode; \
-	psTmpNode1 = IMG_NULL; \
-	psCurNode = *ppsHead; \
-	while(psCurNode) { \
-    	psTmpNode2 = psCurNode->psNext; \
-        psCurNode->psNext = psTmpNode1; \
-		psTmpNode1 = psCurNode; \
-		psCurNode = psTmpNode2; \
-		if(psCurNode) \
-		{ \
-			psTmpNode1->ppsThis = &(psCurNode->psNext); \
-		} \
-		else \
-		{ \
-			psTmpNode1->ppsThis = ppsHead;		\
-		} \
-	} \
-	*ppsHead = psTmpNode1; \
-}
-
-#define IS_LAST_ELEMENT(x) ((x)->psNext == IMG_NULL)
-
-#include "services_headers.h"
-
-DECLARE_LIST_ANY_VA(BM_HEAP);
-DECLARE_LIST_ANY_2(BM_HEAP, PVRSRV_ERROR, PVRSRV_OK);
-DECLARE_LIST_ANY_VA_2(BM_HEAP, PVRSRV_ERROR, PVRSRV_OK);
-DECLARE_LIST_FOR_EACH_VA(BM_HEAP);
-DECLARE_LIST_REMOVE(BM_HEAP);
-DECLARE_LIST_INSERT(BM_HEAP);
-
-DECLARE_LIST_ANY_VA(BM_CONTEXT);
-DECLARE_LIST_ANY_VA_2(BM_CONTEXT, IMG_HANDLE, IMG_NULL);
-DECLARE_LIST_ANY_VA_2(BM_CONTEXT, PVRSRV_ERROR, PVRSRV_OK);
-DECLARE_LIST_FOR_EACH(BM_CONTEXT);
-DECLARE_LIST_REMOVE(BM_CONTEXT);
-DECLARE_LIST_INSERT(BM_CONTEXT);
-
-DECLARE_LIST_ANY_2(PVRSRV_DEVICE_NODE, PVRSRV_ERROR, PVRSRV_OK);
-DECLARE_LIST_ANY_VA(PVRSRV_DEVICE_NODE);
-DECLARE_LIST_ANY_VA_2(PVRSRV_DEVICE_NODE, PVRSRV_ERROR, PVRSRV_OK);
-DECLARE_LIST_FOR_EACH(PVRSRV_DEVICE_NODE);
-DECLARE_LIST_FOR_EACH_VA(PVRSRV_DEVICE_NODE);
-DECLARE_LIST_INSERT(PVRSRV_DEVICE_NODE);
-DECLARE_LIST_REMOVE(PVRSRV_DEVICE_NODE);
-
-DECLARE_LIST_ANY_VA(PVRSRV_POWER_DEV);
-DECLARE_LIST_ANY_VA_2(PVRSRV_POWER_DEV, PVRSRV_ERROR, PVRSRV_OK);
-DECLARE_LIST_INSERT(PVRSRV_POWER_DEV);
-DECLARE_LIST_REMOVE(PVRSRV_POWER_DEV);
-
-#undef DECLARE_LIST_ANY_2
-#undef DECLARE_LIST_ANY_VA
-#undef DECLARE_LIST_ANY_VA_2
-#undef DECLARE_LIST_FOR_EACH
-#undef DECLARE_LIST_FOR_EACH_VA
-#undef DECLARE_LIST_INSERT
-#undef DECLARE_LIST_REMOVE
-
-IMG_VOID* MatchDeviceKM_AnyVaCb(PVRSRV_DEVICE_NODE* psDeviceNode, va_list va);
-IMG_VOID* MatchPowerDeviceIndex_AnyVaCb(PVRSRV_POWER_DEV *psPowerDev, va_list va);
-
-#endif
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/metrics.h b/drivers/staging/cdv/pvr/services4/srvkm/include/metrics.h
deleted file mode 100644
index 69e1b3d..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/metrics.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _METRICS_
-#define _METRICS_
-
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-
-#if defined(DEBUG) || defined(TIMING)
-
-
-typedef struct 
-{
-	IMG_UINT32 ui32Start;
-	IMG_UINT32 ui32Stop;
-	IMG_UINT32 ui32Total;
-	IMG_UINT32 ui32Count;
-} Temporal_Data;
-
-extern Temporal_Data asTimers[]; 
-
-extern IMG_UINT32 PVRSRVTimeNow(IMG_VOID);
-extern IMG_VOID   PVRSRVSetupMetricTimers(IMG_VOID *pvDevInfo);
-extern IMG_VOID   PVRSRVOutputMetricTotals(IMG_VOID);
-
-
-#define PVRSRV_TIMER_DUMMY				0
-
-#define PVRSRV_TIMER_EXAMPLE_1			1
-#define PVRSRV_TIMER_EXAMPLE_2			2
-
-
-#define PVRSRV_NUM_TIMERS		(PVRSRV_TIMER_EXAMPLE_2 + 1)
-
-#define PVRSRV_TIME_START(X)	{ \
-									asTimers[X].ui32Count += 1; \
-									asTimers[X].ui32Count |= 0x80000000L; \
-									asTimers[X].ui32Start = PVRSRVTimeNow(); \
-									asTimers[X].ui32Stop  = 0; \
-								}
-
-#define PVRSRV_TIME_SUSPEND(X)	{ \
-									asTimers[X].ui32Stop += PVRSRVTimeNow() - asTimers[X].ui32Start; \
-								}
-
-#define PVRSRV_TIME_RESUME(X)	{ \
-									asTimers[X].ui32Start = PVRSRVTimeNow(); \
-								}
-
-#define PVRSRV_TIME_STOP(X)		{ \
-									asTimers[X].ui32Stop  += PVRSRVTimeNow() - asTimers[X].ui32Start; \
-									asTimers[X].ui32Total += asTimers[X].ui32Stop; \
-									asTimers[X].ui32Count &= 0x7FFFFFFFL; \
-								}
-
-#define PVRSRV_TIME_RESET(X)	{ \
-									asTimers[X].ui32Start = 0; \
-									asTimers[X].ui32Stop  = 0; \
-									asTimers[X].ui32Total = 0; \
-									asTimers[X].ui32Count = 0; \
-								}
-
-
-#if defined(__sh__)
-
-#define TST_REG   ((volatile IMG_UINT8 *) (psDevInfo->pvSOCRegsBaseKM)) 	
-
-#define TCOR_2    ((volatile IMG_UINT *)  (psDevInfo->pvSOCRegsBaseKM+28))	
-#define TCNT_2    ((volatile IMG_UINT *)  (psDevInfo->pvSOCRegsBaseKM+32))	
-#define TCR_2     ((volatile IMG_UINT16 *)(psDevInfo->pvSOCRegsBaseKM+36))	
-
-#define TIMER_DIVISOR  4
-
-#endif 
-
-
-
-
-
-#else 
-
-
-
-#define PVRSRV_TIME_START(X)
-#define PVRSRV_TIME_SUSPEND(X)
-#define PVRSRV_TIME_RESUME(X)
-#define PVRSRV_TIME_STOP(X)
-#define PVRSRV_TIME_RESET(X)
-
-#define PVRSRVSetupMetricTimers(X)
-#define PVRSRVOutputMetricTotals()
-
-
-
-#endif 
-
-#if defined(__cplusplus)
-}
-#endif
-
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/osfunc.h b/drivers/staging/cdv/pvr/services4/srvkm/include/osfunc.h
deleted file mode 100644
index b76cefd..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/osfunc.h
+++ /dev/null
@@ -1,606 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifdef DEBUG_RELEASE_BUILD
-#pragma optimize( "", off )
-#define DEBUG		1
-#endif
-
-#ifndef __OSFUNC_H__
-#define __OSFUNC_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#if defined(__linux__) && defined(__KERNEL__)
-#include <linux/hardirq.h>
-#include <linux/string.h>
-#include <asm/system.h>
-#if defined(__arm__)
-#include <asm/memory.h>
-#endif
-#endif
-
-
-	
-	#define PVRSRV_PAGEABLE_SELECT		PVRSRV_OS_PAGEABLE_HEAP
-
-#define KERNEL_ID			0xffffffffL
-#define POWER_MANAGER_ID	0xfffffffeL
-#define ISR_ID				0xfffffffdL
-#define TIMER_ID			0xfffffffcL
-
-
-#define HOST_PAGESIZE			OSGetPageSize
-#define HOST_PAGEMASK			(HOST_PAGESIZE()-1)
-#define HOST_PAGEALIGN(addr)	(((addr) + HOST_PAGEMASK) & ~HOST_PAGEMASK)
-
-#define PVRSRV_OS_HEAP_MASK			0xf 
-#define PVRSRV_OS_PAGEABLE_HEAP		0x1 
-#define PVRSRV_OS_NON_PAGEABLE_HEAP	0x2 
-
-
-IMG_UINT32 OSClockus(IMG_VOID);
-IMG_SIZE_T OSGetPageSize(IMG_VOID);
-PVRSRV_ERROR OSInstallDeviceLISR(IMG_VOID *pvSysData,
-								 IMG_UINT32 ui32Irq,
-								 IMG_CHAR *pszISRName,
-								 IMG_VOID *pvDeviceNode);
-PVRSRV_ERROR OSUninstallDeviceLISR(IMG_VOID *pvSysData);
-PVRSRV_ERROR OSInstallSystemLISR(IMG_VOID *pvSysData, IMG_UINT32 ui32Irq);
-PVRSRV_ERROR OSUninstallSystemLISR(IMG_VOID *pvSysData);
-PVRSRV_ERROR OSInstallMISR(IMG_VOID *pvSysData);
-PVRSRV_ERROR OSUninstallMISR(IMG_VOID *pvSysData);
-IMG_CPU_PHYADDR OSMapLinToCPUPhys(IMG_HANDLE, IMG_VOID* pvLinAddr);
-IMG_VOID OSMemCopy(IMG_VOID *pvDst, IMG_VOID *pvSrc, IMG_SIZE_T ui32Size);
-IMG_VOID *OSMapPhysToLin(IMG_CPU_PHYADDR BasePAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE *phOSMemHandle);
-IMG_BOOL OSUnMapPhysToLin(IMG_VOID *pvLinAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle);
-
-PVRSRV_ERROR OSReservePhys(IMG_CPU_PHYADDR BasePAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_VOID **ppvCpuVAddr, IMG_HANDLE *phOSMemHandle);
-PVRSRV_ERROR OSUnReservePhys(IMG_VOID *pvCpuVAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle);
-
-#if defined(__linux__) && defined(__KERNEL__)
-
-IMG_VOID OSFlushCPUCacheKM(IMG_VOID);
-
-IMG_VOID OSCleanCPUCacheKM(IMG_VOID);
-
-IMG_BOOL OSFlushCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-								IMG_VOID *pvRangeAddrStart,
-								IMG_UINT32 ui32Length);
-IMG_BOOL OSCleanCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-								IMG_VOID *pvRangeAddrStart,
-								IMG_UINT32 ui32Length);
-IMG_BOOL OSInvalidateCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-									 IMG_VOID *pvRangeAddrStart,
-									 IMG_UINT32 ui32Length);
-
-#else 
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSFlushCPUCacheKM)
-#endif
-static INLINE IMG_VOID OSFlushCPUCacheKM(IMG_VOID) {}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSCleanCPUCacheKM)
-#endif
-static INLINE IMG_VOID OSCleanCPUCacheKM(IMG_VOID) {}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSFlushCPUCacheRangeKM)
-#endif
-static INLINE IMG_BOOL OSFlushCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-											  IMG_VOID *pvRangeAddrStart,
-											  IMG_UINT32 ui32Length)
-{
-	PVR_UNREFERENCED_PARAMETER(hOSMemHandle);
-	PVR_UNREFERENCED_PARAMETER(pvRangeAddrStart);
-	PVR_UNREFERENCED_PARAMETER(ui32Length);
-	return IMG_FALSE;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSCleanCPUCacheRangeKM)
-#endif
-static INLINE IMG_BOOL OSCleanCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-											  IMG_VOID *pvRangeAddrStart,
-											  IMG_UINT32 ui32Length)
-{
-	PVR_UNREFERENCED_PARAMETER(hOSMemHandle);
-	PVR_UNREFERENCED_PARAMETER(pvRangeAddrStart);
-	PVR_UNREFERENCED_PARAMETER(ui32Length);
-	return IMG_FALSE;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSInvalidateCPUCacheRangeKM)
-#endif
-static INLINE IMG_BOOL OSInvalidateCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
-												   IMG_VOID *pvRangeAddrStart,
-												   IMG_UINT32 ui32Length)
-{
-	PVR_UNREFERENCED_PARAMETER(hOSMemHandle);
-	PVR_UNREFERENCED_PARAMETER(pvRangeAddrStart);
-	PVR_UNREFERENCED_PARAMETER(ui32Length);
-	return IMG_FALSE;
-}
-
-#endif 
-
-#if (defined(__linux__) || defined(__QNXNTO__))
-PVRSRV_ERROR OSRegisterDiscontigMem(IMG_SYS_PHYADDR *pBasePAddr,
-									IMG_VOID *pvCpuVAddr, 
-									IMG_SIZE_T ui32Bytes,
-									IMG_UINT32 ui32Flags, 
-									IMG_HANDLE *phOSMemHandle);
-PVRSRV_ERROR OSUnRegisterDiscontigMem(IMG_VOID *pvCpuVAddr,
-									IMG_SIZE_T ui32Bytes,
-									IMG_UINT32 ui32Flags,
-									IMG_HANDLE hOSMemHandle);
-#else	
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSRegisterDiscontigMem)
-#endif
-static INLINE PVRSRV_ERROR OSRegisterDiscontigMem(IMG_SYS_PHYADDR *pBasePAddr,
-													IMG_VOID *pvCpuVAddr,
-													IMG_SIZE_T ui32Bytes,
-													IMG_UINT32 ui32Flags,
-													IMG_HANDLE *phOSMemHandle)
-{
-	PVR_UNREFERENCED_PARAMETER(pBasePAddr);
-	PVR_UNREFERENCED_PARAMETER(pvCpuVAddr);
-	PVR_UNREFERENCED_PARAMETER(ui32Bytes);
-	PVR_UNREFERENCED_PARAMETER(ui32Flags);
-	PVR_UNREFERENCED_PARAMETER(phOSMemHandle);
-
-	return PVRSRV_ERROR_NOT_SUPPORTED;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSUnRegisterDiscontigMem)
-#endif
-static INLINE PVRSRV_ERROR OSUnRegisterDiscontigMem(IMG_VOID *pvCpuVAddr,
-													IMG_SIZE_T ui32Bytes,
-													IMG_UINT32 ui32Flags,
-													IMG_HANDLE hOSMemHandle)
-{
-	PVR_UNREFERENCED_PARAMETER(pvCpuVAddr);
-	PVR_UNREFERENCED_PARAMETER(ui32Bytes);
-	PVR_UNREFERENCED_PARAMETER(ui32Flags);
-	PVR_UNREFERENCED_PARAMETER(hOSMemHandle);
-
-	return PVRSRV_ERROR_NOT_SUPPORTED;
-}
-#endif	
-
-
-#if (defined(__linux__) || defined(__QNXNTO__))
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSReserveDiscontigPhys)
-#endif
-static INLINE PVRSRV_ERROR OSReserveDiscontigPhys(IMG_SYS_PHYADDR *pBasePAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_VOID **ppvCpuVAddr, IMG_HANDLE *phOSMemHandle)
-{
-#if defined(__linux__) || defined(__QNXNTO__) 
-	*ppvCpuVAddr = IMG_NULL;
-	return OSRegisterDiscontigMem(pBasePAddr, *ppvCpuVAddr, ui32Bytes, ui32Flags, phOSMemHandle);	
-#else
-	extern IMG_CPU_PHYADDR SysSysPAddrToCpuPAddr(IMG_SYS_PHYADDR SysPAddr);
-
-	
-	return OSReservePhys(SysSysPAddrToCpuPAddr(pBasePAddr[0]), ui32Bytes, ui32Flags, ppvCpuVAddr, phOSMemHandle);
-#endif	
-}
-
-static INLINE PVRSRV_ERROR OSUnReserveDiscontigPhys(IMG_VOID *pvCpuVAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle)
-{
-#if defined(__linux__) || defined(__QNXNTO__) 
-	OSUnRegisterDiscontigMem(pvCpuVAddr, ui32Bytes, ui32Flags, hOSMemHandle);
-#endif
-	
-	return PVRSRV_OK;
-}
-#else	
-
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSReserveDiscontigPhys)
-#endif
-static INLINE PVRSRV_ERROR OSReserveDiscontigPhys(IMG_SYS_PHYADDR *pBasePAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_VOID **ppvCpuVAddr, IMG_HANDLE *phOSMemHandle)
-{
-	PVR_UNREFERENCED_PARAMETER(pBasePAddr);
-	PVR_UNREFERENCED_PARAMETER(ui32Bytes);
-	PVR_UNREFERENCED_PARAMETER(ui32Flags);
-	PVR_UNREFERENCED_PARAMETER(ppvCpuVAddr);
-	PVR_UNREFERENCED_PARAMETER(phOSMemHandle);
-
-	return PVRSRV_ERROR_NOT_SUPPORTED;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSUnReserveDiscontigPhys)
-#endif
-static INLINE PVRSRV_ERROR OSUnReserveDiscontigPhys(IMG_VOID *pvCpuVAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle)
-{
-	PVR_UNREFERENCED_PARAMETER(pvCpuVAddr);
-	PVR_UNREFERENCED_PARAMETER(ui32Bytes);
-	PVR_UNREFERENCED_PARAMETER(ui32Flags);
-	PVR_UNREFERENCED_PARAMETER(hOSMemHandle);
-
-	return PVRSRV_ERROR_NOT_SUPPORTED;
-}
-#endif	
-
-PVRSRV_ERROR OSRegisterMem(IMG_CPU_PHYADDR BasePAddr,
-							IMG_VOID *pvCpuVAddr,
-							IMG_SIZE_T ui32Bytes,
-							IMG_UINT32 ui32Flags,
-							IMG_HANDLE *phOSMemHandle);
-PVRSRV_ERROR OSUnRegisterMem(IMG_VOID *pvCpuVAddr,
-							IMG_SIZE_T ui32Bytes,
-							IMG_UINT32 ui32Flags,
-							IMG_HANDLE hOSMemHandle);
-
-
-
-#if defined(__linux__) || defined(__QNXNTO__)
-PVRSRV_ERROR OSGetSubMemHandle(IMG_HANDLE hOSMemHandle,
-							   IMG_UINTPTR_T ui32ByteOffset,
-							   IMG_SIZE_T ui32Bytes,
-							   IMG_UINT32 ui32Flags,
-							   IMG_HANDLE *phOSMemHandleRet);
-PVRSRV_ERROR OSReleaseSubMemHandle(IMG_HANDLE hOSMemHandle, IMG_UINT32 ui32Flags);
-#else
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSGetSubMemHandle)
-#endif
-static INLINE PVRSRV_ERROR OSGetSubMemHandle(IMG_HANDLE hOSMemHandle,
-											 IMG_UINTPTR_T ui32ByteOffset,
-											 IMG_SIZE_T ui32Bytes,
-											 IMG_UINT32 ui32Flags,
-											 IMG_HANDLE *phOSMemHandleRet)
-{
-	PVR_UNREFERENCED_PARAMETER(ui32ByteOffset);
-	PVR_UNREFERENCED_PARAMETER(ui32Bytes);
-	PVR_UNREFERENCED_PARAMETER(ui32Flags);
-
-	*phOSMemHandleRet = hOSMemHandle;
-	return PVRSRV_OK;
-}
-
-static INLINE PVRSRV_ERROR OSReleaseSubMemHandle(IMG_HANDLE hOSMemHandle, IMG_UINT32 ui32Flags)
-{
-	PVR_UNREFERENCED_PARAMETER(hOSMemHandle);
-	PVR_UNREFERENCED_PARAMETER(ui32Flags);
-	return PVRSRV_OK;
-}
-#endif
-
-IMG_UINT32 OSGetCurrentProcessIDKM(IMG_VOID);
-IMG_UINTPTR_T OSGetCurrentThreadID( IMG_VOID );
-IMG_VOID OSMemSet(IMG_VOID *pvDest, IMG_UINT8 ui8Value, IMG_SIZE_T ui32Size);
-
-PVRSRV_ERROR OSAllocPages_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_UINT32 ui32PageSize, IMG_PVOID *ppvLinAddr, IMG_HANDLE *phPageAlloc);
-PVRSRV_ERROR OSFreePages(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID pvLinAddr, IMG_HANDLE hPageAlloc);
-
-
-#ifdef PVRSRV_LOG_MEMORY_ALLOCS
-	#define OSAllocMem(flags, size, linAddr, blockAlloc, logStr) \
-		(PVR_TRACE(("OSAllocMem(" #flags ", " #size ", " #linAddr ", " #blockAlloc "): " logStr " (size = 0x%lx)", size)), \
-			OSAllocMem_Debug_Wrapper(flags, size, linAddr, blockAlloc, __FILE__, __LINE__))
-
-	#define OSAllocPages(flags, size, pageSize, linAddr, pageAlloc) \
-		(PVR_TRACE(("OSAllocPages(" #flags ", " #size ", " #pageSize ", " #linAddr ", " #pageAlloc "): (size = 0x%lx)", size)), \
-			OSAllocPages_Impl(flags, size, pageSize, linAddr, pageAlloc))
-		
-	#define OSFreeMem(flags, size, linAddr, blockAlloc) \
-		(PVR_TRACE(("OSFreeMem(" #flags ", " #size ", " #linAddr ", " #blockAlloc "): (pointer = 0x%X)", linAddr)), \
-			OSFreeMem_Debug_Wrapper(flags, size, linAddr, blockAlloc, __FILE__, __LINE__))
-#else
-	#define OSAllocMem(flags, size, linAddr, blockAlloc, logString) \
-		OSAllocMem_Debug_Wrapper(flags, size, linAddr, blockAlloc, __FILE__, __LINE__)
-	
-	#define OSAllocPages OSAllocPages_Impl
-	
-	#define OSFreeMem(flags, size, linAddr, blockAlloc) \
-			OSFreeMem_Debug_Wrapper(flags, size, linAddr, blockAlloc, __FILE__, __LINE__)
-#endif
- 
-#ifdef PVRSRV_DEBUG_OS_MEMORY
-
-	PVRSRV_ERROR OSAllocMem_Debug_Wrapper(IMG_UINT32 ui32Flags,
-										IMG_UINT32 ui32Size,
-										IMG_PVOID *ppvCpuVAddr,
-										IMG_HANDLE *phBlockAlloc,
-										IMG_CHAR *pszFilename,
-										IMG_UINT32 ui32Line);
-	
-	PVRSRV_ERROR OSFreeMem_Debug_Wrapper(IMG_UINT32 ui32Flags,
-									 IMG_UINT32 ui32Size,
-									 IMG_PVOID pvCpuVAddr,
-									 IMG_HANDLE hBlockAlloc,
-									 IMG_CHAR *pszFilename,
-									 IMG_UINT32 ui32Line);
-
-
-	typedef struct
-	{	
-		IMG_UINT8 sGuardRegionBefore[8];
-		IMG_CHAR sFileName[128];
-		IMG_UINT32 uLineNo;
-		IMG_SIZE_T uSize;
-		IMG_SIZE_T uSizeParityCheck;
-		enum valid_tag
-		{	isFree = 0x277260FF,
-			isAllocated = 0x260511AA
-		} eValid;
-	} OSMEM_DEBUG_INFO;
-	
-	#define TEST_BUFFER_PADDING_STATUS (sizeof(OSMEM_DEBUG_INFO)) 
-	#define TEST_BUFFER_PADDING_AFTER  (8) 
-	#define TEST_BUFFER_PADDING (TEST_BUFFER_PADDING_STATUS + TEST_BUFFER_PADDING_AFTER)
-#else
-	#define OSAllocMem_Debug_Wrapper OSAllocMem_Debug_Linux_Memory_Allocations
-	#define OSFreeMem_Debug_Wrapper OSFreeMem_Debug_Linux_Memory_Allocations
-#endif
- 
-#if (defined(__linux__) || defined(__QNXNTO__)) && defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
-	PVRSRV_ERROR OSAllocMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID *ppvLinAddr, IMG_HANDLE *phBlockAlloc, IMG_CHAR *pszFilename, IMG_UINT32 ui32Line);
-	PVRSRV_ERROR OSFreeMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID pvLinAddr, IMG_HANDLE hBlockAlloc, IMG_CHAR *pszFilename, IMG_UINT32 ui32Line);
-	
-	#define OSAllocMem_Debug_Linux_Memory_Allocations OSAllocMem_Impl
-	#define OSFreeMem_Debug_Linux_Memory_Allocations OSFreeMem_Impl
-#else
-	PVRSRV_ERROR OSAllocMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID *ppvLinAddr, IMG_HANDLE *phBlockAlloc);
-	PVRSRV_ERROR OSFreeMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID pvLinAddr, IMG_HANDLE hBlockAlloc);
-	
-	#define OSAllocMem_Debug_Linux_Memory_Allocations(flags, size, addr, blockAlloc, file, line) \
-		OSAllocMem_Impl(flags, size, addr, blockAlloc)
-	#define OSFreeMem_Debug_Linux_Memory_Allocations(flags, size, addr, blockAlloc, file, line) \
-		OSFreeMem_Impl(flags, size, addr, blockAlloc)
-#endif
-
-
-#if defined(__linux__) || defined(__QNXNTO__)
-IMG_CPU_PHYADDR OSMemHandleToCpuPAddr(IMG_VOID *hOSMemHandle, IMG_SIZE_T ui32ByteOffset);
-#else
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSMemHandleToCpuPAddr)
-#endif
-static INLINE IMG_CPU_PHYADDR OSMemHandleToCpuPAddr(IMG_HANDLE hOSMemHandle, IMG_SIZE_T ui32ByteOffset)
-{
-	IMG_CPU_PHYADDR sCpuPAddr;
-	PVR_UNREFERENCED_PARAMETER(hOSMemHandle);
-	PVR_UNREFERENCED_PARAMETER(ui32ByteOffset);
-	sCpuPAddr.uiAddr = 0;
-	return sCpuPAddr;
-}
-#endif
-PVRSRV_ERROR OSInitEnvData(IMG_PVOID *ppvEnvSpecificData);
-PVRSRV_ERROR OSDeInitEnvData(IMG_PVOID pvEnvSpecificData);
-IMG_CHAR* OSStringCopy(IMG_CHAR *pszDest, const IMG_CHAR *pszSrc);
-IMG_INT32 OSSNPrintf(IMG_CHAR *pStr, IMG_SIZE_T ui32Size, const IMG_CHAR *pszFormat, ...) IMG_FORMAT_PRINTF(3, 4);
-#define OSStringLength(pszString) strlen(pszString)
-
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR OSEventObjectCreateKM(const IMG_CHAR *pszName,
-								 PVRSRV_EVENTOBJECT_KM *psEventObject);
-PVRSRV_ERROR OSEventObjectDestroyKM(PVRSRV_EVENTOBJECT_KM *psEventObject);
-PVRSRV_ERROR OSEventObjectSignalKM(IMG_HANDLE hOSEventKM);
-PVRSRV_ERROR OSEventObjectWaitKM(IMG_HANDLE hOSEventKM);
-PVRSRV_ERROR OSEventObjectOpenKM(PVRSRV_EVENTOBJECT_KM *psEventObject,
-											IMG_HANDLE *phOSEvent);
-PVRSRV_ERROR OSEventObjectCloseKM(PVRSRV_EVENTOBJECT_KM *psEventObject,
-											IMG_HANDLE hOSEventKM);
-#else
-PVRSRV_ERROR OSEventObjectCreateKM(const IMG_CHAR *pszName,
-								 PVRSRV_EVENTOBJECT *psEventObject);
-PVRSRV_ERROR OSEventObjectDestroyKM(PVRSRV_EVENTOBJECT *psEventObject);
-PVRSRV_ERROR OSEventObjectSignalKM(IMG_HANDLE hOSEventKM);
-PVRSRV_ERROR OSEventObjectWaitKM(IMG_HANDLE hOSEventKM);
-PVRSRV_ERROR OSEventObjectOpenKM(PVRSRV_EVENTOBJECT *psEventObject,
-											IMG_HANDLE *phOSEvent);
-PVRSRV_ERROR OSEventObjectCloseKM(PVRSRV_EVENTOBJECT *psEventObject,
-											IMG_HANDLE hOSEventKM);
-#endif 
-
-
-PVRSRV_ERROR OSBaseAllocContigMemory(IMG_SIZE_T ui32Size, IMG_CPU_VIRTADDR *pLinAddr, IMG_CPU_PHYADDR *pPhysAddr);
-PVRSRV_ERROR OSBaseFreeContigMemory(IMG_SIZE_T ui32Size, IMG_CPU_VIRTADDR LinAddr, IMG_CPU_PHYADDR PhysAddr);
-
-IMG_PVOID MapUserFromKernel(IMG_PVOID pvLinAddrKM,IMG_SIZE_T ui32Size,IMG_HANDLE *phMemBlock);
-IMG_PVOID OSMapHWRegsIntoUserSpace(IMG_HANDLE hDevCookie, IMG_SYS_PHYADDR sRegAddr, IMG_UINT32 ulSize, IMG_PVOID *ppvProcess);
-IMG_VOID  OSUnmapHWRegsFromUserSpace(IMG_HANDLE hDevCookie, IMG_PVOID pvUserAddr, IMG_PVOID pvProcess);
-
-IMG_VOID  UnmapUserFromKernel(IMG_PVOID pvLinAddrUM, IMG_SIZE_T ui32Size, IMG_HANDLE hMemBlock);
-
-PVRSRV_ERROR OSMapPhysToUserSpace(IMG_HANDLE hDevCookie,
-								  IMG_SYS_PHYADDR sCPUPhysAddr,
-								  IMG_SIZE_T uiSizeInBytes,
-								  IMG_UINT32 ui32CacheFlags,
-								  IMG_PVOID *ppvUserAddr,
-								  IMG_SIZE_T *puiActualSize,
-								  IMG_HANDLE hMappingHandle);
-
-PVRSRV_ERROR OSUnmapPhysToUserSpace(IMG_HANDLE hDevCookie,
-									IMG_PVOID pvUserAddr,
-									IMG_PVOID pvProcess);
-
-PVRSRV_ERROR OSLockResource(PVRSRV_RESOURCE *psResource, IMG_UINT32 ui32ID);
-PVRSRV_ERROR OSUnlockResource(PVRSRV_RESOURCE *psResource, IMG_UINT32 ui32ID);
-IMG_BOOL OSIsResourceLocked(PVRSRV_RESOURCE *psResource, IMG_UINT32 ui32ID);
-PVRSRV_ERROR OSCreateResource(PVRSRV_RESOURCE *psResource);
-PVRSRV_ERROR OSDestroyResource(PVRSRV_RESOURCE *psResource);
-IMG_VOID OSBreakResourceLock(PVRSRV_RESOURCE *psResource, IMG_UINT32 ui32ID);
-
-#if defined(SYS_CUSTOM_POWERLOCK_WRAP)
-#define OSPowerLockWrap SysPowerLockWrap
-#define OSPowerLockUnwrap SysPowerLockUnwrap
-#else
-PVRSRV_ERROR OSPowerLockWrap(IMG_BOOL bTryLock);
-
-IMG_VOID OSPowerLockUnwrap(IMG_VOID);
-#endif 
-
- 
-IMG_VOID OSWaitus(IMG_UINT32 ui32Timeus);
-
- 
-IMG_VOID OSSleepms(IMG_UINT32 ui32Timems);
-
-IMG_HANDLE OSFuncHighResTimerCreate(IMG_VOID);
-IMG_UINT32 OSFuncHighResTimerGetus(IMG_HANDLE hTimer);
-IMG_VOID OSFuncHighResTimerDestroy(IMG_HANDLE hTimer);
-IMG_VOID OSReleaseThreadQuanta(IMG_VOID);
-IMG_UINT32 OSPCIReadDword(IMG_UINT32 ui32Bus, IMG_UINT32 ui32Dev, IMG_UINT32 ui32Func, IMG_UINT32 ui32Reg);
-IMG_VOID OSPCIWriteDword(IMG_UINT32 ui32Bus, IMG_UINT32 ui32Dev, IMG_UINT32 ui32Func, IMG_UINT32 ui32Reg, IMG_UINT32 ui32Value);
-
-#ifndef OSReadHWReg
-IMG_UINT32 OSReadHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset);
-#endif
-#ifndef OSWriteHWReg
-IMG_VOID OSWriteHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset, IMG_UINT32 ui32Value);
-#endif
-
-typedef IMG_VOID (*PFN_TIMER_FUNC)(IMG_VOID*);
-IMG_HANDLE OSAddTimer(PFN_TIMER_FUNC pfnTimerFunc, IMG_VOID *pvData, IMG_UINT32 ui32MsTimeout);
-PVRSRV_ERROR OSRemoveTimer (IMG_HANDLE hTimer);
-PVRSRV_ERROR OSEnableTimer (IMG_HANDLE hTimer);
-PVRSRV_ERROR OSDisableTimer (IMG_HANDLE hTimer);
-
-PVRSRV_ERROR OSGetSysMemSize(IMG_SIZE_T *pui32Bytes);
-
-typedef enum _HOST_PCI_INIT_FLAGS_
-{
-	HOST_PCI_INIT_FLAG_BUS_MASTER	= 0x00000001,
-	HOST_PCI_INIT_FLAG_MSI		= 0x00000002,
-	HOST_PCI_INIT_FLAG_FORCE_I32 	= 0x7fffffff
-} HOST_PCI_INIT_FLAGS;
-
-struct _PVRSRV_PCI_DEV_OPAQUE_STRUCT_;
-typedef struct _PVRSRV_PCI_DEV_OPAQUE_STRUCT_ *PVRSRV_PCI_DEV_HANDLE;
-
-PVRSRV_PCI_DEV_HANDLE OSPCIAcquireDev(IMG_UINT16 ui16VendorID, IMG_UINT16 ui16DeviceID, HOST_PCI_INIT_FLAGS eFlags);
-PVRSRV_PCI_DEV_HANDLE OSPCISetDev(IMG_VOID *pvPCICookie, HOST_PCI_INIT_FLAGS eFlags);
-PVRSRV_ERROR OSPCIReleaseDev(PVRSRV_PCI_DEV_HANDLE hPVRPCI);
-PVRSRV_ERROR OSPCIIRQ(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 *pui32IRQ);
-IMG_UINT32 OSPCIAddrRangeLen(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 ui32Index);
-IMG_UINT32 OSPCIAddrRangeStart(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 ui32Index);
-IMG_UINT32 OSPCIAddrRangeEnd(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 ui32Index);
-PVRSRV_ERROR OSPCIRequestAddrRange(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 ui32Index);
-PVRSRV_ERROR OSPCIReleaseAddrRange(PVRSRV_PCI_DEV_HANDLE hPVRPCI, IMG_UINT32 ui32Index);
-PVRSRV_ERROR OSPCISuspendDev(PVRSRV_PCI_DEV_HANDLE hPVRPCI);
-PVRSRV_ERROR OSPCIResumeDev(PVRSRV_PCI_DEV_HANDLE hPVRPCI);
-
-PVRSRV_ERROR OSScheduleMISR(IMG_VOID *pvSysData);
-
-IMG_VOID OSPanic(IMG_VOID);
-
-IMG_BOOL OSProcHasPrivSrvInit(IMG_VOID);
-
-typedef enum _img_verify_test
-{
-	PVR_VERIFY_WRITE = 0,
-	PVR_VERIFY_READ
-} IMG_VERIFY_TEST;
-
-IMG_BOOL OSAccessOK(IMG_VERIFY_TEST eVerification, IMG_VOID *pvUserPtr, IMG_SIZE_T ui32Bytes);
-
-PVRSRV_ERROR OSCopyToUser(IMG_PVOID pvProcess, IMG_VOID *pvDest, IMG_VOID *pvSrc, IMG_SIZE_T ui32Bytes);
-PVRSRV_ERROR OSCopyFromUser(IMG_PVOID pvProcess, IMG_VOID *pvDest, IMG_VOID *pvSrc, IMG_SIZE_T ui32Bytes);
-
-#if (defined(__linux__) || defined(__QNXNTO__))
-PVRSRV_ERROR OSAcquirePhysPageAddr(IMG_VOID* pvCPUVAddr, 
-									IMG_SIZE_T ui32Bytes, 
-									IMG_SYS_PHYADDR *psSysPAddr,
-									IMG_HANDLE *phOSWrapMem);
-PVRSRV_ERROR OSReleasePhysPageAddr(IMG_HANDLE hOSWrapMem);
-#else
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSAcquirePhysPageAddr)
-#endif
-static INLINE PVRSRV_ERROR OSAcquirePhysPageAddr(IMG_VOID* pvCPUVAddr, 
-												IMG_SIZE_T ui32Bytes, 
-												IMG_SYS_PHYADDR *psSysPAddr,
-												IMG_HANDLE *phOSWrapMem)
-{
-	PVR_UNREFERENCED_PARAMETER(pvCPUVAddr);
-	PVR_UNREFERENCED_PARAMETER(ui32Bytes);
-	PVR_UNREFERENCED_PARAMETER(psSysPAddr);
-	PVR_UNREFERENCED_PARAMETER(phOSWrapMem);
-	return PVRSRV_OK;	
-}
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSReleasePhysPageAddr)
-#endif
-static INLINE PVRSRV_ERROR OSReleasePhysPageAddr(IMG_HANDLE hOSWrapMem)
-{
-	PVR_UNREFERENCED_PARAMETER(hOSWrapMem);
-	return PVRSRV_OK;	
-}
-#endif
-									
-#if defined(__linux__) && defined(__KERNEL__)
-
-#define	OS_SUPPORTS_IN_LISR
-
-static inline IMG_BOOL OSInLISR(IMG_VOID unref__ *pvSysData)
-{
-	PVR_UNREFERENCED_PARAMETER(pvSysData);
-	return (in_irq()) ? IMG_TRUE : IMG_FALSE;
-}
-
-static inline IMG_VOID OSWriteMemoryBarrier(IMG_VOID)
-{
-	wmb();
-}
-
-static inline IMG_VOID OSMemoryBarrier(IMG_VOID)
-{
-	mb();
-}
-
-#else 
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSWriteMemoryBarrier)
-#endif
-static INLINE IMG_VOID OSWriteMemoryBarrier(IMG_VOID) { }
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSMemoryBarrier)
-#endif
-static INLINE IMG_VOID OSMemoryBarrier(IMG_VOID) { }
-
-#endif 
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/osperproc.h b/drivers/staging/cdv/pvr/services4/srvkm/include/osperproc.h
deleted file mode 100644
index e5c81da..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/osperproc.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __OSPERPROC_H__
-#define __OSPERPROC_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#if defined(__linux__) || defined(__QNXNTO__)
-PVRSRV_ERROR OSPerProcessPrivateDataInit(IMG_HANDLE *phOsPrivateData);
-PVRSRV_ERROR OSPerProcessPrivateDataDeInit(IMG_HANDLE hOsPrivateData);
-
-PVRSRV_ERROR OSPerProcessSetHandleOptions(PVRSRV_HANDLE_BASE *psHandleBase);
-#else	
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSPerProcessPrivateDataInit)
-#endif
-static INLINE PVRSRV_ERROR OSPerProcessPrivateDataInit(IMG_HANDLE *phOsPrivateData)
-{
-	PVR_UNREFERENCED_PARAMETER(phOsPrivateData);
-
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSPerProcessPrivateDataDeInit)
-#endif
-static INLINE PVRSRV_ERROR OSPerProcessPrivateDataDeInit(IMG_HANDLE hOsPrivateData)
-{
-	PVR_UNREFERENCED_PARAMETER(hOsPrivateData);
-
-	return PVRSRV_OK;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(OSPerProcessSetHandleOptions)
-#endif
-static INLINE PVRSRV_ERROR OSPerProcessSetHandleOptions(PVRSRV_HANDLE_BASE *psHandleBase)
-{
-	PVR_UNREFERENCED_PARAMETER(psHandleBase);
-
-	return PVRSRV_OK;
-}
-#endif	
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/pdump_int.h b/drivers/staging/cdv/pvr/services4/srvkm/include/pdump_int.h
deleted file mode 100644
index 9f68549..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/pdump_int.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __PDUMP_INT_H__
-#define __PDUMP_INT_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#if !defined(_UITRON)
-#include "dbgdrvif.h"
-
-IMG_EXPORT IMG_VOID PDumpConnectionNotify(IMG_VOID);
-
-#endif 
-
-typedef enum
-{
-	
-	PDUMP_WRITE_MODE_CONTINUOUS = 0,
-	
-	PDUMP_WRITE_MODE_LASTFRAME,
-	
-	PDUMP_WRITE_MODE_BINCM,
-	
-	PDUMP_WRITE_MODE_PERSISTENT
-} PDUMP_DDWMODE;
-
-
-IMG_UINT32 DbgWrite(PDBG_STREAM psStream, IMG_UINT8 *pui8Data, IMG_UINT32 ui32BCount, IMG_UINT32 ui32Flags);
-
-IMG_UINT32 PDumpOSDebugDriverWrite(	PDBG_STREAM psStream,
-									PDUMP_DDWMODE eDbgDrvWriteMode,
-									IMG_UINT8 *pui8Data,
-									IMG_UINT32 ui32BCount,
-									IMG_UINT32 ui32Level,
-									IMG_UINT32 ui32DbgDrvFlags);
-
-#if defined (__cplusplus)
-}
-#endif
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/pdump_km.h b/drivers/staging/cdv/pvr/services4/srvkm/include/pdump_km.h
deleted file mode 100644
index f29fdba..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/pdump_km.h
+++ /dev/null
@@ -1,412 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _PDUMP_KM_H_
-#define _PDUMP_KM_H_
-
-
-#include "pdump_osfunc.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#include "pdump.h"
-
-#define PDUMP_PD_UNIQUETAG			(IMG_HANDLE)0
-#define PDUMP_PT_UNIQUETAG			(IMG_HANDLE)0
-
-#define PDUMP_STREAM_PARAM2			0
-#define PDUMP_STREAM_SCRIPT2		1
-#define PDUMP_STREAM_DRIVERINFO		2
-#define PDUMP_NUM_STREAMS			3
-
-#if defined(PDUMP_DEBUG_OUTFILES)
-extern IMG_UINT32 g_ui32EveryLineCounter;
-#endif
-
-#ifndef PDUMP
-#define MAKEUNIQUETAG(hMemInfo)	(0)
-#endif
-
-#ifdef PDUMP
-
-#define MAKEUNIQUETAG(hMemInfo)	(((BM_BUF *)(((PVRSRV_KERNEL_MEM_INFO *)(hMemInfo))->sMemBlk.hBuffer))->pMapping)
-
-	IMG_IMPORT PVRSRV_ERROR PDumpMemPolKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo,
-										  IMG_UINT32			ui32Offset,
-										  IMG_UINT32			ui32Value,
-										  IMG_UINT32			ui32Mask,
-										  PDUMP_POLL_OPERATOR	eOperator,
-										  IMG_UINT32			ui32Flags,
-										  IMG_HANDLE			hUniqueTag);
-
-	IMG_IMPORT PVRSRV_ERROR PDumpMemUM(PVRSRV_PER_PROCESS_DATA *psProcData,
-									   IMG_PVOID			pvAltLinAddr,
-									   IMG_PVOID			pvLinAddr,
-									   PVRSRV_KERNEL_MEM_INFO	*psMemInfo,
-									   IMG_UINT32			ui32Offset,
-									   IMG_UINT32			ui32Bytes,
-									   IMG_UINT32			ui32Flags,
-									   IMG_HANDLE			hUniqueTag);
-
-	IMG_IMPORT PVRSRV_ERROR PDumpMemKM(IMG_PVOID			pvAltLinAddr,
-									   PVRSRV_KERNEL_MEM_INFO	*psMemInfo,
-									   IMG_UINT32			ui32Offset,
-									   IMG_UINT32			ui32Bytes,
-									   IMG_UINT32			ui32Flags,
-									   IMG_HANDLE			hUniqueTag);
-	PVRSRV_ERROR PDumpMemPagesKM(PVRSRV_DEVICE_IDENTIFIER *psDevID,
-								 IMG_DEV_PHYADDR		*pPages,
-								 IMG_UINT32			ui32NumPages,
-								 IMG_DEV_VIRTADDR	sDevAddr,
-								 IMG_UINT32			ui32Start,
-								 IMG_UINT32			ui32Length,
-								 IMG_UINT32			ui32Flags,
-								 IMG_HANDLE			hUniqueTag);
-
-	PVRSRV_ERROR PDumpMemPDEntriesKM(PDUMP_MMU_ATTRIB *psMMUAttrib,
-									 IMG_HANDLE hOSMemHandle,
-							 		 IMG_CPU_VIRTADDR pvLinAddr,
-							 		 IMG_UINT32 ui32Bytes,
-							 		 IMG_UINT32 ui32Flags,
-							 		 IMG_BOOL bInitialisePages,
-							 		 IMG_HANDLE hUniqueTag1,
-							 		 IMG_HANDLE hUniqueTag2);
-							 
-	PVRSRV_ERROR PDumpMemPTEntriesKM(PDUMP_MMU_ATTRIB *psMMUAttrib,
-									 IMG_HANDLE         hOSMemHandle,
-									 IMG_CPU_VIRTADDR	pvLinAddr,
-									 IMG_UINT32			ui32Bytes,
-									 IMG_UINT32			ui32Flags,
-									 IMG_BOOL			bInitialisePages,
-									 IMG_HANDLE			hUniqueTag1,
-									 IMG_HANDLE			hUniqueTag2);
-	IMG_VOID PDumpInitCommon(IMG_VOID);
-	IMG_VOID PDumpDeInitCommon(IMG_VOID);
-	IMG_VOID PDumpInit(IMG_VOID);
-	IMG_VOID PDumpDeInit(IMG_VOID);
-	IMG_BOOL PDumpIsSuspended(IMG_VOID);
-	PVRSRV_ERROR PDumpStartInitPhaseKM(IMG_VOID);
-	PVRSRV_ERROR PDumpStopInitPhaseKM(IMG_VOID);
-	IMG_IMPORT PVRSRV_ERROR PDumpSetFrameKM(IMG_UINT32 ui32Frame);
-	IMG_IMPORT PVRSRV_ERROR PDumpCommentKM(IMG_CHAR *pszComment, IMG_UINT32 ui32Flags);
-
-
-	IMG_IMPORT PVRSRV_ERROR PDumpDriverInfoKM(IMG_CHAR *pszString, IMG_UINT32 ui32Flags);
-
-	PVRSRV_ERROR PDumpRegWithFlagsKM(IMG_CHAR *pszPDumpRegName,
-									 IMG_UINT32 ui32RegAddr,
-									 IMG_UINT32 ui32RegValue,
-									 IMG_UINT32 ui32Flags);
-	PVRSRV_ERROR PDumpRegPolWithFlagsKM(IMG_CHAR *pszPDumpRegName,
-										IMG_UINT32 ui32RegAddr,
-										IMG_UINT32 ui32RegValue,
-										IMG_UINT32 ui32Mask,
-										IMG_UINT32 ui32Flags,
-										PDUMP_POLL_OPERATOR	eOperator);
-	PVRSRV_ERROR PDumpRegPolKM(IMG_CHAR *pszPDumpRegName,
-								IMG_UINT32 ui32RegAddr,
-								IMG_UINT32 ui32RegValue,
-								IMG_UINT32 ui32Mask,
-								PDUMP_POLL_OPERATOR	eOperator);
-
-	IMG_IMPORT PVRSRV_ERROR PDumpBitmapKM(PVRSRV_DEVICE_NODE *psDeviceNode,
-										  IMG_CHAR *pszFileName,
-										  IMG_UINT32 ui32FileOffset,
-										  IMG_UINT32 ui32Width,
-										  IMG_UINT32 ui32Height,
-										  IMG_UINT32 ui32StrideInBytes,
-										  IMG_DEV_VIRTADDR sDevBaseAddr,
-										  IMG_HANDLE hDevMemContext,
-										  IMG_UINT32 ui32Size,
-										  PDUMP_PIXEL_FORMAT ePixelFormat,
-										  PDUMP_MEM_FORMAT eMemFormat,
-										  IMG_UINT32 ui32PDumpFlags);
-	IMG_IMPORT PVRSRV_ERROR PDumpReadRegKM(IMG_CHAR *pszPDumpRegName,
-										   IMG_CHAR *pszFileName,
-										   IMG_UINT32 ui32FileOffset,
-										   IMG_UINT32 ui32Address,
-										   IMG_UINT32 ui32Size,
-										   IMG_UINT32 ui32PDumpFlags);
-
-	PVRSRV_ERROR PDumpRegKM(IMG_CHAR* pszPDumpRegName,
-							IMG_UINT32 dwReg,
-							IMG_UINT32 dwData);
-
-	PVRSRV_ERROR PDumpComment(IMG_CHAR* pszFormat, ...) IMG_FORMAT_PRINTF(1, 2);
-	PVRSRV_ERROR PDumpCommentWithFlags(IMG_UINT32	ui32Flags,
-									   IMG_CHAR*	pszFormat,
-									   ...) IMG_FORMAT_PRINTF(2, 3);
-
-	PVRSRV_ERROR PDumpPDReg(PDUMP_MMU_ATTRIB *psMMUAttrib,
-							IMG_UINT32	ui32Reg,
-							IMG_UINT32	ui32dwData,
-							IMG_HANDLE	hUniqueTag);
-	PVRSRV_ERROR PDumpPDRegWithFlags(PDUMP_MMU_ATTRIB *psMMUAttrib,
-									 IMG_UINT32		ui32Reg,
-									 IMG_UINT32		ui32Data,
-									 IMG_UINT32		ui32Flags,
-									 IMG_HANDLE		hUniqueTag);
-
-	IMG_BOOL PDumpIsLastCaptureFrameKM(IMG_VOID);
-	IMG_IMPORT IMG_BOOL PDumpIsCaptureFrameKM(IMG_VOID);
-
-	IMG_VOID PDumpMallocPagesPhys(PVRSRV_DEVICE_IDENTIFIER	*psDevID,
-								  IMG_UINT32			ui32DevVAddr,
-								  IMG_PUINT32			pui32PhysPages,
-								  IMG_UINT32			ui32NumPages,
-								  IMG_HANDLE			hUniqueTag);
-	PVRSRV_ERROR PDumpSetMMUContext(PVRSRV_DEVICE_TYPE eDeviceType,
-									IMG_CHAR *pszMemSpace,
-									IMG_UINT32 *pui32MMUContextID,
-									IMG_UINT32 ui32MMUType,
-									IMG_HANDLE hUniqueTag1,
-									IMG_HANDLE hOSMemHandle,
-									IMG_VOID *pvPDCPUAddr);
-	PVRSRV_ERROR PDumpClearMMUContext(PVRSRV_DEVICE_TYPE eDeviceType,
-									IMG_CHAR *pszMemSpace,
-									IMG_UINT32 ui32MMUContextID,
-									IMG_UINT32 ui32MMUType);
-
-	PVRSRV_ERROR PDumpPDDevPAddrKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo,
-								   IMG_UINT32 ui32Offset,
-								   IMG_DEV_PHYADDR sPDDevPAddr,
-								   IMG_HANDLE hUniqueTag1,
-								   IMG_HANDLE hUniqueTag2);
-
-	IMG_BOOL PDumpTestNextFrame(IMG_UINT32 ui32CurrentFrame);
-
-	PVRSRV_ERROR PDumpSaveMemKM (PVRSRV_DEVICE_IDENTIFIER *psDevId,
-							 	 IMG_CHAR			*pszFileName,
-								 IMG_UINT32			ui32FileOffset,
-								 IMG_DEV_VIRTADDR	sDevBaseAddr,
-								 IMG_UINT32 		ui32Size,
-								 IMG_UINT32 		ui32DataMaster,
-								 IMG_UINT32 		ui32PDumpFlags);
-
-	PVRSRV_ERROR PDumpTASignatureRegisters(PVRSRV_DEVICE_IDENTIFIER *psDevId,
-								   IMG_UINT32	ui32DumpFrameNum,
-								   IMG_UINT32	ui32TAKickCount,
-								   IMG_BOOL		bLastFrame,
-								   IMG_UINT32 *pui32Registers,
-								   IMG_UINT32 ui32NumRegisters);
-
-	PVRSRV_ERROR PDump3DSignatureRegisters(PVRSRV_DEVICE_IDENTIFIER *psDevId,
-											IMG_UINT32 ui32DumpFrameNum,
-											IMG_BOOL bLastFrame,
-											IMG_UINT32 *pui32Registers,
-											IMG_UINT32 ui32NumRegisters);
-
-	PVRSRV_ERROR PDumpCounterRegisters(PVRSRV_DEVICE_IDENTIFIER *psDevId,
-					IMG_UINT32 ui32DumpFrameNum,
-					IMG_BOOL		bLastFrame,
-					IMG_UINT32 *pui32Registers,
-					IMG_UINT32 ui32NumRegisters);
-
-	PVRSRV_ERROR PDumpRegRead(IMG_CHAR *pszPDumpRegName,
-								const IMG_UINT32 dwRegOffset,
-								IMG_UINT32	ui32Flags);
-
-	PVRSRV_ERROR PDumpCycleCountRegRead(PVRSRV_DEVICE_IDENTIFIER *psDevId,
-										const IMG_UINT32 dwRegOffset,
-										IMG_BOOL bLastFrame);
-
-	PVRSRV_ERROR PDumpIDLWithFlags(IMG_UINT32 ui32Clocks, IMG_UINT32 ui32Flags);
-	PVRSRV_ERROR PDumpIDL(IMG_UINT32 ui32Clocks);
-
-	PVRSRV_ERROR PDumpMallocPages(PVRSRV_DEVICE_IDENTIFIER	*psDevID,
-								  IMG_UINT32				ui32DevVAddr,
-								  IMG_CPU_VIRTADDR			pvLinAddr,
-								  IMG_HANDLE				hOSMemHandle,
-								  IMG_UINT32				ui32NumBytes,
-								  IMG_UINT32				ui32PageSize,
-		                          IMG_BOOL			  		bShared,
-								  IMG_HANDLE				hUniqueTag);
-	PVRSRV_ERROR PDumpMallocPageTable(PVRSRV_DEVICE_IDENTIFIER	*psDevId,
-									  IMG_HANDLE            hOSMemHandle,
-									  IMG_UINT32            ui32Offset,
-									  IMG_CPU_VIRTADDR		pvLinAddr,
-									  IMG_UINT32			ui32NumBytes,
-									  IMG_UINT32			ui32Flags,
-									  IMG_HANDLE			hUniqueTag);
-	PVRSRV_ERROR PDumpFreePages(struct _BM_HEAP_	*psBMHeap,
-							IMG_DEV_VIRTADDR	sDevVAddr,
-							IMG_UINT32			ui32NumBytes,
-							IMG_UINT32			ui32PageSize,
-							IMG_HANDLE      	hUniqueTag,
-							IMG_BOOL			bInterleaved);
-	PVRSRV_ERROR PDumpFreePageTable(PVRSRV_DEVICE_IDENTIFIER *psDevID,
-									IMG_HANDLE          hOSMemHandle,
-									IMG_CPU_VIRTADDR	pvLinAddr,
-									IMG_UINT32			ui32NumBytes,
-									IMG_UINT32			ui32Flags,
-									IMG_HANDLE			hUniqueTag);
-
-	IMG_IMPORT PVRSRV_ERROR PDumpHWPerfCBKM(PVRSRV_DEVICE_IDENTIFIER *psDevId,
-										IMG_CHAR			*pszFileName,
-										IMG_UINT32			ui32FileOffset,
-										IMG_DEV_VIRTADDR	sDevBaseAddr,
-										IMG_UINT32 			ui32Size,
-										IMG_UINT32			ui32MMUContextID,
-										IMG_UINT32 			ui32PDumpFlags);
-
-	PVRSRV_ERROR PDumpSignatureBuffer(PVRSRV_DEVICE_IDENTIFIER *psDevId,
-									  IMG_CHAR			*pszFileName,
-									  IMG_CHAR			*pszBufferType,
-									  IMG_UINT32		ui32FileOffset,
-									  IMG_DEV_VIRTADDR	sDevBaseAddr,
-									  IMG_UINT32 		ui32Size,
-									  IMG_UINT32		ui32MMUContextID,
-									  IMG_UINT32 		ui32PDumpFlags);
-
-	PVRSRV_ERROR PDumpCBP(PPVRSRV_KERNEL_MEM_INFO	psROffMemInfo,
-				  IMG_UINT32				ui32ROffOffset,
-				  IMG_UINT32				ui32WPosVal,
-				  IMG_UINT32				ui32PacketSize,
-				  IMG_UINT32				ui32BufferSize,
-				  IMG_UINT32				ui32Flags,
-				  IMG_HANDLE				hUniqueTag);
-
-	PVRSRV_ERROR PDumpRegBasedCBP(IMG_CHAR		*pszPDumpRegName,
-								  IMG_UINT32	ui32RegOffset,
-								  IMG_UINT32	ui32WPosVal,
-								  IMG_UINT32	ui32PacketSize,
-								  IMG_UINT32	ui32BufferSize,
-								  IMG_UINT32	ui32Flags);
-
-	IMG_VOID PDumpVGXMemToFile(IMG_CHAR *pszFileName,
-							   IMG_UINT32 ui32FileOffset, 
-							   PVRSRV_KERNEL_MEM_INFO *psMemInfo,
-							   IMG_UINT32 uiAddr, 
-							   IMG_UINT32 ui32Size,
-							   IMG_UINT32 ui32PDumpFlags,
-							   IMG_HANDLE hUniqueTag);
-
-	IMG_VOID PDumpSuspendKM(IMG_VOID);
-	IMG_VOID PDumpResumeKM(IMG_VOID);
-
-	
-	PVRSRV_ERROR PDumpStoreMemToFile(PDUMP_MMU_ATTRIB *psMMUAttrib,
-							         IMG_CHAR *pszFileName,
-									 IMG_UINT32 ui32FileOffset, 
-									 PVRSRV_KERNEL_MEM_INFO *psMemInfo,
-									 IMG_UINT32 uiAddr, 
-									 IMG_UINT32 ui32Size,
-									 IMG_UINT32 ui32PDumpFlags,
-									 IMG_HANDLE hUniqueTag);
-
-	#define PDUMPMEMPOL				PDumpMemPolKM
-	#define PDUMPMEM				PDumpMemKM
-	#define PDUMPMEMPTENTRIES		PDumpMemPTEntriesKM
-	#define PDUMPPDENTRIES			PDumpMemPDEntriesKM
-	#define PDUMPMEMUM				PDumpMemUM
-	#define PDUMPINIT				PDumpInitCommon
-	#define PDUMPDEINIT				PDumpDeInitCommon
-	#define PDUMPISLASTFRAME		PDumpIsLastCaptureFrameKM
-	#define PDUMPTESTFRAME			PDumpIsCaptureFrameKM
-	#define PDUMPTESTNEXTFRAME		PDumpTestNextFrame
-	#define PDUMPREGWITHFLAGS		PDumpRegWithFlagsKM
-	#define PDUMPREG				PDumpRegKM
-	#define PDUMPCOMMENT			PDumpComment
-	#define PDUMPCOMMENTWITHFLAGS	PDumpCommentWithFlags
-	#define PDUMPREGPOL				PDumpRegPolKM
-	#define PDUMPREGPOLWITHFLAGS	PDumpRegPolWithFlagsKM
-	#define PDUMPMALLOCPAGES		PDumpMallocPages
-	#define PDUMPMALLOCPAGETABLE	PDumpMallocPageTable
-	#define PDUMPSETMMUCONTEXT		PDumpSetMMUContext
-	#define PDUMPCLEARMMUCONTEXT	PDumpClearMMUContext
-	#define PDUMPFREEPAGES			PDumpFreePages
-	#define PDUMPFREEPAGETABLE		PDumpFreePageTable
-	#define PDUMPPDREG				PDumpPDReg
-	#define PDUMPPDREGWITHFLAGS		PDumpPDRegWithFlags
-	#define PDUMPCBP				PDumpCBP
-	#define PDUMPREGBASEDCBP		PDumpRegBasedCBP
-	#define PDUMPMALLOCPAGESPHYS	PDumpMallocPagesPhys
-	#define PDUMPENDINITPHASE		PDumpStopInitPhaseKM
-	#define PDUMPBITMAPKM			PDumpBitmapKM
-	#define PDUMPDRIVERINFO			PDumpDriverInfoKM
-	#define PDUMPIDLWITHFLAGS		PDumpIDLWithFlags
-	#define PDUMPIDL				PDumpIDL
-	#define PDUMPSUSPEND			PDumpSuspendKM
-	#define PDUMPRESUME				PDumpResumeKM
-
-#else
-        #if (((defined(LINUX) || defined(__QNXNTO__)) || defined(GCC_IA32)) || defined(GCC_ARM))
-			#define PDUMPMEMPOL(args...)
-			#define PDUMPMEM(args...)
-			#define PDUMPMEMPTENTRIES(args...)
-			#define PDUMPPDENTRIES(args...)
-			#define PDUMPMEMUM(args...)
-			#define PDUMPINIT(args...)
-			#define PDUMPDEINIT(args...)
-			#define PDUMPISLASTFRAME(args...)
-			#define PDUMPTESTFRAME(args...)
-			#define PDUMPTESTNEXTFRAME(args...)
-			#define PDUMPREGWITHFLAGS(args...)
-			#define PDUMPREG(args...)
-			#define PDUMPCOMMENT(args...)
-			#define PDUMPREGPOL(args...)
-			#define PDUMPREGPOLWITHFLAGS(args...)
-			#define PDUMPMALLOCPAGES(args...)
-			#define PDUMPMALLOCPAGETABLE(args...)
-			#define PDUMPSETMMUCONTEXT(args...)
-			#define PDUMPCLEARMMUCONTEXT(args...)
-			#define PDUMPFREEPAGES(args...)
-			#define PDUMPFREEPAGETABLE(args...)
-			#define PDUMPPDREG(args...)
-			#define PDUMPPDREGWITHFLAGS(args...)
-			#define PDUMPSYNC(args...)
-			#define PDUMPCOPYTOMEM(args...)
-			#define PDUMPWRITE(args...)
-			#define PDUMPCBP(args...)
-			#define PDUMPREGBASEDCBP(args...)
-			#define PDUMPCOMMENTWITHFLAGS(args...)
-			#define PDUMPMALLOCPAGESPHYS(args...)
-			#define PDUMPENDINITPHASE(args...)
-			#define PDUMPMSVDXREG(args...)
-			#define PDUMPMSVDXREGWRITE(args...)
-			#define PDUMPMSVDXREGREAD(args...)
-			#define PDUMPMSVDXPOLEQ(args...)
-			#define PDUMPMSVDXPOL(args...)
-			#define PDUMPBITMAPKM(args...)
-			#define PDUMPDRIVERINFO(args...)
-			#define PDUMPIDLWITHFLAGS(args...)
-			#define PDUMPIDL(args...)
-			#define PDUMPSUSPEND(args...)
-			#define PDUMPRESUME(args...)
-			#define PDUMPMSVDXWRITEREF(args...)
-		#else
-			#error Compiler not specified
-		#endif
-#endif
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/pdump_osfunc.h b/drivers/staging/cdv/pvr/services4/srvkm/include/pdump_osfunc.h
deleted file mode 100644
index f3ed914..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/pdump_osfunc.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <stdarg.h>
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-
-#define MAX_PDUMP_STRING_LENGTH (256)
-
-
-
-
-	
-#define PDUMP_GET_SCRIPT_STRING()				\
-	IMG_HANDLE hScript;							\
-	IMG_UINT32	ui32MaxLen;						\
-	PVRSRV_ERROR eError;						\
-	eError = PDumpOSGetScriptString(&hScript, &ui32MaxLen);\
-	if(eError != PVRSRV_OK) return eError;
-
-#define PDUMP_GET_MSG_STRING()					\
-	IMG_CHAR *pszMsg;							\
-	IMG_UINT32	ui32MaxLen;						\
-	PVRSRV_ERROR eError;						\
-	eError = PDumpOSGetMessageString(&pszMsg, &ui32MaxLen);\
-	if(eError != PVRSRV_OK) return eError;
-
-#define PDUMP_GET_FILE_STRING()				\
-	IMG_CHAR *pszFileName;					\
-	IMG_UINT32	ui32MaxLen;					\
-	PVRSRV_ERROR eError;					\
-	eError = PDumpOSGetFilenameString(&pszFileName, &ui32MaxLen);\
-	if(eError != PVRSRV_OK) return eError;
-
-#define PDUMP_GET_SCRIPT_AND_FILE_STRING()		\
-	IMG_HANDLE hScript;							\
-	IMG_CHAR *pszFileName;						\
-	IMG_UINT32	ui32MaxLenScript;				\
-	IMG_UINT32	ui32MaxLenFileName;				\
-	PVRSRV_ERROR eError;						\
-	eError = PDumpOSGetScriptString(&hScript, &ui32MaxLenScript);\
-	if(eError != PVRSRV_OK) return eError;		\
-	eError = PDumpOSGetFilenameString(&pszFileName, &ui32MaxLenFileName);\
-	if(eError != PVRSRV_OK) return eError;
-
-	
-	PVRSRV_ERROR PDumpOSGetScriptString(IMG_HANDLE *phScript, IMG_UINT32 *pui32MaxLen);
-
-	
-	PVRSRV_ERROR PDumpOSGetMessageString(IMG_CHAR **ppszMsg, IMG_UINT32 *pui32MaxLen);
-
-	
-	PVRSRV_ERROR PDumpOSGetFilenameString(IMG_CHAR **ppszFile, IMG_UINT32 *pui32MaxLen);
-
-
-
-
-#define PDUMP_va_list	va_list
-#define PDUMP_va_start	va_start
-#define PDUMP_va_end	va_end
-
-
-
-IMG_HANDLE PDumpOSGetStream(IMG_UINT32 ePDumpStream);
-
-IMG_UINT32 PDumpOSGetStreamOffset(IMG_UINT32 ePDumpStream);
-
-IMG_UINT32 PDumpOSGetParamFileNum(IMG_VOID);
-
-IMG_VOID PDumpOSCheckForSplitting(IMG_HANDLE hStream, IMG_UINT32 ui32Size, IMG_UINT32 ui32Flags);
-
-IMG_BOOL PDumpOSIsSuspended(IMG_VOID);
-
-IMG_BOOL PDumpOSJTInitialised(IMG_VOID);
-
-IMG_BOOL PDumpOSWriteString(IMG_HANDLE hDbgStream,
-		IMG_UINT8 *psui8Data,
-		IMG_UINT32 ui32Size,
-		IMG_UINT32 ui32Flags);
-
-IMG_BOOL PDumpOSWriteString2(IMG_HANDLE	hScript, IMG_UINT32 ui32Flags);
-
-PVRSRV_ERROR PDumpOSBufprintf(IMG_HANDLE hBuf, IMG_UINT32 ui32ScriptSizeMax, IMG_CHAR* pszFormat, ...) IMG_FORMAT_PRINTF(3, 4);
-
-IMG_VOID PDumpOSDebugPrintf(IMG_CHAR* pszFormat, ...) IMG_FORMAT_PRINTF(1, 2);
-
-PVRSRV_ERROR PDumpOSSprintf(IMG_CHAR *pszComment, IMG_UINT32 ui32ScriptSizeMax, IMG_CHAR *pszFormat, ...) IMG_FORMAT_PRINTF(3, 4);
-
-PVRSRV_ERROR PDumpOSVSprintf(IMG_CHAR *pszMsg, IMG_UINT32 ui32ScriptSizeMax, IMG_CHAR* pszFormat, PDUMP_va_list vaArgs) IMG_FORMAT_PRINTF(3, 0);
-
-IMG_UINT32 PDumpOSBuflen(IMG_HANDLE hBuffer, IMG_UINT32 ui32BufferSizeMax);
-
-IMG_VOID PDumpOSVerifyLineEnding(IMG_HANDLE hBuffer, IMG_UINT32 ui32BufferSizeMax);
-
-IMG_VOID PDumpOSCPUVAddrToDevPAddr(PVRSRV_DEVICE_TYPE eDeviceType,
-        IMG_HANDLE hOSMemHandle,
-		IMG_UINT32 ui32Offset,
-		IMG_UINT8 *pui8LinAddr,
-		IMG_UINT32 ui32PageSize,
-		IMG_DEV_PHYADDR *psDevPAddr);
-
-IMG_VOID PDumpOSCPUVAddrToPhysPages(IMG_HANDLE hOSMemHandle,
-		IMG_UINT32 ui32Offset,
-		IMG_PUINT8 pui8LinAddr,
-		IMG_UINT32 ui32DataPageMask,
-		IMG_UINT32 *pui32PageOffset);
-
-IMG_VOID PDumpOSReleaseExecution(IMG_VOID);
-
-IMG_BOOL PDumpOSIsCaptureFrameKM(IMG_VOID);
-
-PVRSRV_ERROR PDumpOSSetFrameKM(IMG_UINT32 ui32Frame);
-
-#if defined (__cplusplus)
-}
-#endif
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/perproc.h b/drivers/staging/cdv/pvr/services4/srvkm/include/perproc.h
deleted file mode 100644
index 842680c..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/perproc.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __PERPROC_H__
-#define __PERPROC_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#include "img_types.h"
-#include "resman.h"
-
-#include "handle.h"
-
-typedef struct _PVRSRV_PER_PROCESS_DATA_
-{
-	IMG_UINT32		ui32PID;
-	IMG_HANDLE		hBlockAlloc;
-	PRESMAN_CONTEXT 	hResManContext;
-#if defined (SUPPORT_SID_INTERFACE)
-	IMG_SID			hPerProcData;
-#else
-	IMG_HANDLE		hPerProcData;
-#endif
-	PVRSRV_HANDLE_BASE 	*psHandleBase;
-#if defined (SUPPORT_SID_INTERFACE)
-	
-	IMG_BOOL		bHandlesBatched;
-#else
-#if defined (PVR_SECURE_HANDLES)
-	
-	IMG_BOOL		bHandlesBatched;
-#endif  
-#endif 
-	IMG_UINT32		ui32RefCount;
-
-	
-	IMG_BOOL		bInitProcess;
-#if defined(PDUMP)
-	
-	IMG_BOOL		bPDumpPersistent;
-#if defined(SUPPORT_PDUMP_MULTI_PROCESS)
-	
-	IMG_BOOL		bPDumpActive;
-#endif 
-#endif
-	
-	IMG_HANDLE		hOsPrivateData;
-} PVRSRV_PER_PROCESS_DATA;
-
-PVRSRV_PER_PROCESS_DATA *PVRSRVPerProcessData(IMG_UINT32 ui32PID);
-
-PVRSRV_ERROR PVRSRVPerProcessDataConnect(IMG_UINT32	ui32PID, IMG_UINT32 ui32Flags);
-IMG_VOID PVRSRVPerProcessDataDisconnect(IMG_UINT32	ui32PID);
-
-PVRSRV_ERROR PVRSRVPerProcessDataInit(IMG_VOID);
-PVRSRV_ERROR PVRSRVPerProcessDataDeInit(IMG_VOID);
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVFindPerProcessData)
-#endif
-static INLINE
-PVRSRV_PER_PROCESS_DATA *PVRSRVFindPerProcessData(IMG_VOID)
-{
-	return PVRSRVPerProcessData(OSGetCurrentProcessIDKM());
-}
-
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVProcessPrivateData)
-#endif
-static INLINE
-IMG_HANDLE PVRSRVProcessPrivateData(PVRSRV_PER_PROCESS_DATA *psPerProc)
-{
-	return (psPerProc != IMG_NULL) ? psPerProc->hOsPrivateData : IMG_NULL;
-}
-
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVPerProcessPrivateData)
-#endif
-static INLINE
-IMG_HANDLE PVRSRVPerProcessPrivateData(IMG_UINT32 ui32PID)
-{
-	return PVRSRVProcessPrivateData(PVRSRVPerProcessData(ui32PID));
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVFindPerProcessPrivateData)
-#endif
-static INLINE
-IMG_HANDLE PVRSRVFindPerProcessPrivateData(IMG_VOID)
-{
-	return PVRSRVProcessPrivateData(PVRSRVFindPerProcessData());
-}
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/power.h b/drivers/staging/cdv/pvr/services4/srvkm/include/power.h
deleted file mode 100644
index 9e3dcc40..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/power.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef POWER_H
-#define POWER_H
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-
- 
-typedef struct _PVRSRV_POWER_DEV_TAG_
-{
-	PFN_PRE_POWER					pfnPrePower;
-	PFN_POST_POWER					pfnPostPower;
-	PFN_PRE_CLOCKSPEED_CHANGE		pfnPreClockSpeedChange;
-	PFN_POST_CLOCKSPEED_CHANGE		pfnPostClockSpeedChange;
-	IMG_HANDLE						hDevCookie;
-	IMG_UINT32						ui32DeviceIndex;
-	PVRSRV_DEV_POWER_STATE 			eDefaultPowerState;
-	PVRSRV_DEV_POWER_STATE 			eCurrentPowerState;
-	struct _PVRSRV_POWER_DEV_TAG_	*psNext;
-	struct _PVRSRV_POWER_DEV_TAG_	**ppsThis;
-
-} PVRSRV_POWER_DEV;
-
-typedef enum _PVRSRV_INIT_SERVER_STATE_
-{
-	PVRSRV_INIT_SERVER_Unspecified		= -1,	
-	PVRSRV_INIT_SERVER_RUNNING			= 0,	
-	PVRSRV_INIT_SERVER_RAN				= 1,	
-	PVRSRV_INIT_SERVER_SUCCESSFUL		= 2,	
-	PVRSRV_INIT_SERVER_NUM				= 3,	
-	PVRSRV_INIT_SERVER_FORCE_I32 = 0x7fffffff
-
-} PVRSRV_INIT_SERVER_STATE, *PPVRSRV_INIT_SERVER_STATE;
-
-IMG_IMPORT
-IMG_BOOL PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_STATE	eInitServerState);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVSetInitServerState(PVRSRV_INIT_SERVER_STATE	eInitServerState, IMG_BOOL bState);
-
-
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVPowerLock(IMG_UINT32	ui32CallerID,
-							 IMG_BOOL	bSystemPowerEvent);
-IMG_IMPORT
-IMG_VOID PVRSRVPowerUnlock(IMG_UINT32	ui32CallerID);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVSetDevicePowerStateKM(IMG_UINT32				ui32DeviceIndex,
-										 PVRSRV_DEV_POWER_STATE	eNewPowerState,
-										 IMG_UINT32				ui32CallerID,
-										 IMG_BOOL				bRetainMutex);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVSystemPrePowerStateKM(PVRSRV_SYS_POWER_STATE eNewPowerState);
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVSystemPostPowerStateKM(PVRSRV_SYS_POWER_STATE eNewPowerState);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVSetPowerStateKM (PVRSRV_SYS_POWER_STATE ePVRState);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVRegisterPowerDevice(IMG_UINT32					ui32DeviceIndex,
-									   PFN_PRE_POWER				pfnPrePower,
-									   PFN_POST_POWER				pfnPostPower,
-									   PFN_PRE_CLOCKSPEED_CHANGE	pfnPreClockSpeedChange,
-									   PFN_POST_CLOCKSPEED_CHANGE	pfnPostClockSpeedChange,
-									   IMG_HANDLE					hDevCookie,
-									   PVRSRV_DEV_POWER_STATE		eCurrentPowerState,
-									   PVRSRV_DEV_POWER_STATE		eDefaultPowerState);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVRemovePowerDevice (IMG_UINT32 ui32DeviceIndex);
-
-IMG_IMPORT
-IMG_BOOL PVRSRVIsDevicePowered(IMG_UINT32 ui32DeviceIndex);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVDevicePreClockSpeedChange(IMG_UINT32	ui32DeviceIndex,
-											 IMG_BOOL	bIdleDevice,
-											 IMG_VOID	*pvInfo);
-
-IMG_IMPORT
-IMG_VOID PVRSRVDevicePostClockSpeedChange(IMG_UINT32	ui32DeviceIndex,
-										  IMG_BOOL		bIdleDevice,
-										  IMG_VOID		*pvInfo);
-
-#if defined (__cplusplus)
-}
-#endif
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/queue.h b/drivers/staging/cdv/pvr/services4/srvkm/include/queue.h
deleted file mode 100644
index ab89527..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/queue.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef QUEUE_H
-#define QUEUE_H
-
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define UPDATE_QUEUE_ROFF(psQueue, ui32Size)						\
-	(psQueue)->ui32ReadOffset = ((psQueue)->ui32ReadOffset + (ui32Size))	\
-	& ((psQueue)->ui32QueueSize - 1);
-
- typedef struct _COMMAND_COMPLETE_DATA_
- {
-	IMG_BOOL			bInUse;
-		
-	IMG_UINT32			ui32DstSyncCount;	
-	IMG_UINT32			ui32SrcSyncCount;	
-	PVRSRV_SYNC_OBJECT	*psDstSync;			
-	PVRSRV_SYNC_OBJECT	*psSrcSync;			
-	IMG_UINT32			ui32AllocSize;		
- }COMMAND_COMPLETE_DATA, *PCOMMAND_COMPLETE_DATA;
-
-#if !defined(USE_CODE)
-IMG_VOID QueueDumpDebugInfo(IMG_VOID);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVProcessQueues (IMG_BOOL		bFlush);
-
-#if defined(__linux__) && defined(__KERNEL__) 
-#include <linux/types.h>
-#include <linux/seq_file.h>
-void* ProcSeqOff2ElementQueue(struct seq_file * sfile, loff_t off);
-void ProcSeqShowQueue(struct seq_file *sfile,void* el);
-#endif
-
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateCommandQueueKM(IMG_SIZE_T ui32QueueSize,
-													 PVRSRV_QUEUE_INFO **ppsQueueInfo);
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyCommandQueueKM(PVRSRV_QUEUE_INFO *psQueueInfo);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVInsertCommandKM(PVRSRV_QUEUE_INFO	*psQueue,
-												PVRSRV_COMMAND		**ppsCommand,
-												IMG_UINT32			ui32DevIndex,
-												IMG_UINT16			CommandType,
-												IMG_UINT32			ui32DstSyncCount,
-												PVRSRV_KERNEL_SYNC_INFO	*apsDstSync[],
-												IMG_UINT32			ui32SrcSyncCount,
-												PVRSRV_KERNEL_SYNC_INFO	*apsSrcSync[],
-												IMG_SIZE_T			ui32DataByteSize );
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVGetQueueSpaceKM(PVRSRV_QUEUE_INFO *psQueue,
-												IMG_SIZE_T ui32ParamSize,
-												IMG_VOID **ppvSpace);
-
-IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVSubmitCommandKM(PVRSRV_QUEUE_INFO *psQueue,
-												PVRSRV_COMMAND *psCommand);
-
-IMG_IMPORT
-IMG_VOID PVRSRVCommandCompleteKM(IMG_HANDLE hCmdCookie, IMG_BOOL bScheduleMISR);
-
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVRegisterCmdProcListKM(IMG_UINT32		ui32DevIndex,
-										 PFN_CMD_PROC	*ppfnCmdProcList,
-										 IMG_UINT32		ui32MaxSyncsPerCmd[][2],
-										 IMG_UINT32		ui32CmdCount);
-IMG_IMPORT
-PVRSRV_ERROR PVRSRVRemoveCmdProcListKM(IMG_UINT32	ui32DevIndex,
-									   IMG_UINT32	ui32CmdCount);
-
-#endif 
-
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/ra.h b/drivers/staging/cdv/pvr/services4/srvkm/include/ra.h
deleted file mode 100644
index db141f6..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/ra.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _RA_H_
-#define _RA_H_
-
-#include "img_types.h"
-#include "hash.h"
-#include "osfunc.h"
-
-typedef struct _RA_ARENA_ RA_ARENA;			
-typedef struct _BM_MAPPING_ BM_MAPPING;
-
-
-
-#define RA_STATS 
-
-
-struct _RA_STATISTICS_
-{
-    
-    IMG_SIZE_T uSpanCount;
-
-    
-    IMG_SIZE_T uLiveSegmentCount;
-
-    
-    IMG_SIZE_T uFreeSegmentCount;
-
-    
-    IMG_SIZE_T uTotalResourceCount;
-    
-    
-    IMG_SIZE_T uFreeResourceCount;
-
-    
-    IMG_SIZE_T uCumulativeAllocs;
-
-    
-    IMG_SIZE_T uCumulativeFrees;
-
-    
-    IMG_SIZE_T uImportCount;
-
-    
-    IMG_SIZE_T uExportCount;
-};
-typedef struct _RA_STATISTICS_ RA_STATISTICS;
-
-struct _RA_SEGMENT_DETAILS_
-{
-	IMG_SIZE_T      uiSize;
-	IMG_CPU_PHYADDR sCpuPhyAddr;
-	IMG_HANDLE      hSegment;
-};
-typedef struct _RA_SEGMENT_DETAILS_ RA_SEGMENT_DETAILS;
-
-RA_ARENA *
-RA_Create (IMG_CHAR *name,
-           IMG_UINTPTR_T base,
-           IMG_SIZE_T uSize,
-           BM_MAPPING *psMapping,
-           IMG_SIZE_T uQuantum, 
-           IMG_BOOL (*imp_alloc)(IMG_VOID *_h,
-                                IMG_SIZE_T uSize,
-                                IMG_SIZE_T *pActualSize,
-                                BM_MAPPING **ppsMapping,
-                                IMG_UINT32 uFlags,
-                                IMG_UINTPTR_T *pBase),
-           IMG_VOID (*imp_free) (IMG_VOID *,
-                                IMG_UINTPTR_T,
-                                BM_MAPPING *),
-           IMG_VOID (*backingstore_free) (IMG_VOID *,
-                                          IMG_SIZE_T,
-                                          IMG_SIZE_T,
-                                          IMG_HANDLE),
-           IMG_VOID *import_handle);
-
-IMG_VOID
-RA_Delete (RA_ARENA *pArena);
-
-IMG_BOOL
-RA_TestDelete (RA_ARENA *pArena);
-
-IMG_BOOL
-RA_Add (RA_ARENA *pArena, IMG_UINTPTR_T base, IMG_SIZE_T uSize);
-
-IMG_BOOL
-RA_Alloc (RA_ARENA *pArena, 
-          IMG_SIZE_T uSize,
-          IMG_SIZE_T *pActualSize,
-          BM_MAPPING **ppsMapping, 
-          IMG_UINT32 uFlags,
-          IMG_UINT32 uAlignment,
-		  IMG_UINT32 uAlignmentOffset,
-          IMG_UINTPTR_T *pBase);
-
-IMG_VOID 
-RA_Free (RA_ARENA *pArena, IMG_UINTPTR_T base, IMG_BOOL bFreeBackingStore);
-
-
-#ifdef RA_STATS
-
-#define CHECK_SPACE(total)					\
-{											\
-	if((total)<100) 							\
-		return PVRSRV_ERROR_INVALID_PARAMS;	\
-}
-
-#define UPDATE_SPACE(str, count, total)		\
-{											\
-	if((count) == -1)					 		\
-		return PVRSRV_ERROR_INVALID_PARAMS;	\
-	else									\
-	{										\
-		(str) += (count);						\
-		(total) -= (count);						\
-	}										\
-}
-
-
-IMG_BOOL RA_GetNextLiveSegment(IMG_HANDLE hArena, RA_SEGMENT_DETAILS *psSegDetails);
-
-
-PVRSRV_ERROR RA_GetStats(RA_ARENA *pArena,
-							IMG_CHAR **ppszStr, 
-							IMG_UINT32 *pui32StrLen);
-
-PVRSRV_ERROR RA_GetStatsFreeMem(RA_ARENA *pArena,
-								IMG_CHAR **ppszStr, 
-								IMG_UINT32 *pui32StrLen);
-
-#endif 
-
-#endif
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/resman.h b/drivers/staging/cdv/pvr/services4/srvkm/include/resman.h
deleted file mode 100644
index 648e490..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/resman.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __RESMAN_H__
-#define __RESMAN_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-enum {
-	
-	RESMAN_TYPE_SHARED_PB_DESC = 1,					
-	RESMAN_TYPE_SHARED_PB_DESC_CREATE_LOCK,				
-	RESMAN_TYPE_HW_RENDER_CONTEXT,					
-	RESMAN_TYPE_HW_TRANSFER_CONTEXT,				
-	RESMAN_TYPE_HW_2D_CONTEXT,						
-	RESMAN_TYPE_TRANSFER_CONTEXT,					
-
-	
-	RESMAN_TYPE_DMA_CLIENT_FIFO_DATA,				
-
-	
-	
-	
-	
-	RESMAN_TYPE_DISPLAYCLASS_SWAPCHAIN_REF,			
-	RESMAN_TYPE_DISPLAYCLASS_DEVICE,				
-
-	
-	RESMAN_TYPE_BUFFERCLASS_DEVICE,					
-	
-	
-	RESMAN_TYPE_OS_USERMODE_MAPPING,				
-	
-	
-	RESMAN_TYPE_DEVICEMEM_CONTEXT,					
-	RESMAN_TYPE_DEVICECLASSMEM_MAPPING,				
-	RESMAN_TYPE_DEVICEMEM_MAPPING,					
-	RESMAN_TYPE_DEVICEMEM_WRAP,						
-	RESMAN_TYPE_DEVICEMEM_ALLOCATION,				
-	RESMAN_TYPE_EVENT_OBJECT,						
-    RESMAN_TYPE_SHARED_MEM_INFO,                    
-    RESMAN_TYPE_MODIFY_SYNC_OPS,					
-    RESMAN_TYPE_SYNC_INFO,					        
-	
-	
-	RESMAN_TYPE_KERNEL_DEVICEMEM_ALLOCATION			
-};
-
-#define RESMAN_CRITERIA_ALL				0x00000000	
-#define RESMAN_CRITERIA_RESTYPE			0x00000001	
-#define RESMAN_CRITERIA_PVOID_PARAM		0x00000002	
-#define RESMAN_CRITERIA_UI32_PARAM		0x00000004	
-
-typedef PVRSRV_ERROR (*RESMAN_FREE_FN)(IMG_PVOID pvParam, IMG_UINT32 ui32Param, IMG_BOOL bForceCleanup); 
-
-typedef struct _RESMAN_ITEM_ *PRESMAN_ITEM;
-typedef struct _RESMAN_CONTEXT_ *PRESMAN_CONTEXT;
-
-PVRSRV_ERROR ResManInit(IMG_VOID);
-IMG_VOID ResManDeInit(IMG_VOID);
-
-PRESMAN_ITEM ResManRegisterRes(PRESMAN_CONTEXT	hResManContext,
-							   IMG_UINT32		ui32ResType, 
-							   IMG_PVOID		pvParam, 
-							   IMG_UINT32		ui32Param, 
-							   RESMAN_FREE_FN	pfnFreeResource);
-
-PVRSRV_ERROR ResManFreeResByPtr(PRESMAN_ITEM	psResItem,
-								IMG_BOOL		bForceCleanup);
-
-PVRSRV_ERROR ResManFreeResByCriteria(PRESMAN_CONTEXT	hResManContext,
-									 IMG_UINT32			ui32SearchCriteria, 
-									 IMG_UINT32			ui32ResType, 
-									 IMG_PVOID			pvParam, 
-									 IMG_UINT32			ui32Param);
-
-PVRSRV_ERROR ResManDissociateRes(PRESMAN_ITEM		psResItem,
-							 PRESMAN_CONTEXT	psNewResManContext);
-
-PVRSRV_ERROR ResManFindResourceByPtr(PRESMAN_CONTEXT	hResManContext,
-									 PRESMAN_ITEM		psItem);
-
-PVRSRV_ERROR PVRSRVResManConnect(IMG_HANDLE			hPerProc,
-								 PRESMAN_CONTEXT	*phResManContext);
-IMG_VOID PVRSRVResManDisconnect(PRESMAN_CONTEXT hResManContext,
-								IMG_BOOL		bKernelContext);
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/services_headers.h b/drivers/staging/cdv/pvr/services4/srvkm/include/services_headers.h
deleted file mode 100644
index 2b5f197..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/services_headers.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef SERVICES_HEADERS_H
-#define SERVICES_HEADERS_H
-
-#ifdef DEBUG_RELEASE_BUILD
-#pragma optimize( "", off )
-#define DEBUG		1
-#endif
-
-#include "img_defs.h"
-#include "services.h"
-#include "servicesint.h"
-#include "power.h"
-#include "resman.h"
-#include "queue.h"
-#include "srvkm.h"
-#include "kerneldisplay.h"
-#include "syscommon.h"
-#include "pvr_debug.h"
-#include "metrics.h"
-#include "osfunc.h"
-
-#endif 
-
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/srvkm.h b/drivers/staging/cdv/pvr/services4/srvkm/include/srvkm.h
deleted file mode 100644
index 474a1ee..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/srvkm.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef SRVKM_H
-#define SRVKM_H
-
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-	
-	#ifdef PVR_DISABLE_LOGGING
-	#define PVR_LOG(X)
-	#else
-	 
-	#define PVR_LOG(X)			PVRSRVReleasePrintf X;
-	#endif
-
-	IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVReleasePrintf(const IMG_CHAR *pszFormat, ...) IMG_FORMAT_PRINTF(1, 2);
-
-	IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV PVRSRVProcessConnect(IMG_UINT32	ui32PID, IMG_UINT32 ui32Flags);
-	IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVProcessDisconnect(IMG_UINT32	ui32PID);
-
-	IMG_IMPORT IMG_VOID PVRSRVScheduleDevicesKM(IMG_VOID);
-
-	IMG_VOID IMG_CALLCONV PVRSRVSetDCState(IMG_UINT32 ui32State);
-
-	PVRSRV_ERROR IMG_CALLCONV PVRSRVSaveRestoreLiveSegments(IMG_HANDLE hArena, IMG_PBYTE pbyBuffer, IMG_SIZE_T *puiBufSize, IMG_BOOL bSave);
-
-	IMG_VOID PVRSRVScheduleDeviceCallbacks(IMG_VOID);
-
-
-#if defined (__cplusplus)
-}
-#endif
-
- 
-#define LOOP_UNTIL_TIMEOUT(TIMEOUT) \
-{\
-	IMG_UINT32 uiOffset, uiStart, uiCurrent; \
-	IMG_INT32 iNotLastLoop;					 \
-	for(uiOffset = 0, uiStart = OSClockus(), uiCurrent = uiStart + 1, iNotLastLoop = 1;\
-		((uiCurrent - uiStart + uiOffset) < (TIMEOUT)) || iNotLastLoop--;				\
-		uiCurrent = OSClockus(),													\
-		uiOffset = uiCurrent < uiStart ? IMG_UINT32_MAX - uiStart : uiOffset,		\
-		uiStart = uiCurrent < uiStart ? 0 : uiStart)
-
-#define END_LOOP_UNTIL_TIMEOUT() \
-}
-
-IMG_IMPORT
-const IMG_CHAR *PVRSRVGetErrorStringKM(PVRSRV_ERROR eError);
-
-#endif 
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/ttrace.h b/drivers/staging/cdv/pvr/services4/srvkm/include/ttrace.h
deleted file mode 100644
index 9e04b88..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/ttrace.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "services_headers.h"
-#include "ttrace_common.h"
-#include "ttrace_tokens.h"
-
-#ifndef __TTRACE_H__
-#define __TTRACE_H__
-
-#if defined(TTRACE)
-
-	#define PVR_TTRACE(group, class, token) \
-			PVRSRVTimeTrace(group, class, token)
-	#define PVR_TTRACE_UI8(group, class, token, val) \
-			PVRSRVTimeTraceUI8(group, class, token, val)
-	#define PVR_TTRACE_UI16(group, class, token, val) \
-			PVRSRVTimeTraceUI16(group, class, token, val)
-	#define PVR_TTRACE_UI32(group, class, token, val) \
-			PVRSRVTimeTraceUI32(group, class, token, val)
-	#define PVR_TTRACE_UI64(group, class, token, val) \
-			PVRSRVTimeTraceUI64(group, class, token, val)
-	#define PVR_TTRACE_DEV_VIRTADDR(group, class, token, val) \
-			PVRSRVTimeTraceDevVirtAddr(group, class, token, val)
-	#define PVR_TTRACE_CPU_PHYADDR(group, class, token, val) \
-			PVRSRVTimeTraceCpuPhyAddr(group, class, token, val)
-	#define PVR_TTRACE_DEV_PHYADDR(group, class, token, val) \
-			PVRSRVTimeTraceDevPhysAddr(group, class, token, val)
-	#define PVR_TTRACE_SYS_PHYADDR(group, class, token, val) \
-			PVRSRVTimeTraceSysPhysAddr(group, class, token, val)
-	#define PVR_TTRACE_SYNC_OBJECT(group, token, syncobj, op) \
-			PVRSRVTimeTraceSyncObject(group, token, syncobj, op)
-
-IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVTimeTraceArray(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
-							IMG_UINT32 ui32Token, IMG_UINT32 ui32TypeSize,
-							IMG_UINT32 ui32Count, IMG_UINT8 *ui8Data);
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVTimeTrace)
-#endif
-static INLINE IMG_VOID PVRSRVTimeTrace(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
-						IMG_UINT32 ui32Token)
-{
-	PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, 0, 0, NULL);
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVTimeTraceUI8)
-#endif
-static INLINE IMG_VOID PVRSRVTimeTraceUI8(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
-						IMG_UINT32 ui32Token, IMG_UINT8 ui8Value)
-{
-	PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI8,
-				1, &ui8Value);
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVTimeTraceUI16)
-#endif
-static INLINE IMG_VOID PVRSRVTimeTraceUI16(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
-						IMG_UINT32 ui32Token, IMG_UINT16 ui16Value)
-{
-	PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI16,
-				1, (IMG_UINT8 *) &ui16Value);
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVTimeTraceUI32)
-#endif
-static INLINE IMG_VOID PVRSRVTimeTraceUI32(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
-						IMG_UINT32 ui32Token, IMG_UINT32 ui32Value)
-{
-	PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI32,
-				1, (IMG_UINT8 *) &ui32Value);
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVTimeTraceUI64)
-#endif
-static INLINE IMG_VOID PVRSRVTimeTraceUI64(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
-						IMG_UINT32 ui32Token, IMG_UINT64 ui64Value)
-{
-	PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI64,
-				1, (IMG_UINT8 *) &ui64Value);
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVTimeTraceDevVirtAddr)
-#endif
-static INLINE IMG_VOID PVRSRVTimeTraceDevVirtAddr(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
-						IMG_UINT32 ui32Token, IMG_DEV_VIRTADDR psVAddr)
-{
-	PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI32,
-				1, (IMG_UINT8 *) &psVAddr.uiAddr);
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVTimeTraceCpuPhyAddr)
-#endif
-static INLINE IMG_VOID PVRSRVTimeTraceCpuPhyAddr(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
-						IMG_UINT32 ui32Token, IMG_CPU_PHYADDR psPAddr)
-{
-	PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI32,
-				1, (IMG_UINT8 *) &psPAddr.uiAddr);
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVTimeTraceDevPhysAddr)
-#endif
-static INLINE IMG_VOID PVRSRVTimeTraceDevPhysAddr(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
-						IMG_UINT32 ui32Token, IMG_DEV_PHYADDR psPAddr)
-{
-	PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, PVRSRV_TRACE_TYPE_UI32,
-				1, (IMG_UINT8 *) &psPAddr.uiAddr);
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(PVRSRVTimeTraceSysPhysAddr)
-#endif
-static INLINE IMG_VOID PVRSRVTimeTraceSysPhysAddr(IMG_UINT32 ui32Group, IMG_UINT32 ui32Class,
-						IMG_UINT32 ui32Token, IMG_SYS_PHYADDR psPAddr)
-{
-	PVRSRVTimeTraceArray(ui32Group, ui32Class, ui32Token, sizeof(psPAddr.uiAddr),
-				1, (IMG_UINT8 *) &psPAddr.uiAddr);
-}
-
-#else 
-
-	#define PVR_TTRACE(group, class, token) \
-			((void) 0)
-	#define PVR_TTRACE_UI8(group, class, token, val) \
-			((void) 0)
-	#define PVR_TTRACE_UI16(group, class, token, val) \
-			((void) 0)
-	#define PVR_TTRACE_UI32(group, class, token, val) \
-			((void) 0)
-	#define PVR_TTRACE_UI64(group, class, token, val) \
-			((void) 0)
-	#define PVR_TTRACE_DEV_VIRTADDR(group, class, token, val) \
-			((void) 0)
-	#define PVR_TTRACE_CPU_PHYADDR(group, class, token, val) \
-			((void) 0)
-	#define PVR_TTRACE_DEV_PHYADDR(group, class, token, val) \
-			((void) 0)
-	#define PVR_TTRACE_SYS_PHYADDR(group, class, token, val) \
-			((void) 0)
-	#define PVR_TTRACE_SYNC_OBJECT(group, token, syncobj, op) \
-			((void) 0)
-
-#endif 
-
-IMG_IMPORT PVRSRV_ERROR PVRSRVTimeTraceInit(IMG_VOID);
-IMG_IMPORT IMG_VOID PVRSRVTimeTraceDeinit(IMG_VOID);
-
-IMG_IMPORT IMG_VOID PVRSRVTimeTraceSyncObject(IMG_UINT32 ui32Group, IMG_UINT32 ui32Token,
-					      PVRSRV_KERNEL_SYNC_INFO *psSync, IMG_UINT8 ui8SyncOp);
-IMG_IMPORT PVRSRV_ERROR PVRSRVTimeTraceBufferCreate(IMG_UINT32 ui32PID);
-IMG_IMPORT PVRSRV_ERROR PVRSRVTimeTraceBufferDestroy(IMG_UINT32 ui32PID);
-
-IMG_IMPORT IMG_VOID PVRSRVDumpTimeTraceBuffers(IMG_VOID);
-#endif 
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/ttrace_common.h b/drivers/staging/cdv/pvr/services4/srvkm/include/ttrace_common.h
deleted file mode 100644
index 5895b6c..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/ttrace_common.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "img_types.h"
-
-#ifndef __TTRACE_COMMON_H__
-#define __TTRACE_COMMON_H__
-
-#define PVRSRV_TRACE_HEADER		0
-#define PVRSRV_TRACE_TIMESTAMP		1
-#define PVRSRV_TRACE_HOSTUID		2
-#define PVRSRV_TRACE_DATA_HEADER	3
-#define PVRSRV_TRACE_DATA_PAYLOAD	4
-
-#define PVRSRV_TRACE_ITEM_SIZE		16
-
-#define PVRSRV_TRACE_GROUP_MASK		0xff
-#define PVRSRV_TRACE_CLASS_MASK		0xff
-#define PVRSRV_TRACE_TOKEN_MASK		0xffff
-
-#define PVRSRV_TRACE_GROUP_SHIFT	24
-#define PVRSRV_TRACE_CLASS_SHIFT	16
-#define PVRSRV_TRACE_TOKEN_SHIFT	0
-
-#define PVRSRV_TRACE_SIZE_MASK		0xffff
-#define PVRSRV_TRACE_TYPE_MASK		0xf
-#define PVRSRV_TRACE_COUNT_MASK		0xfff
-
-#define PVRSRV_TRACE_SIZE_SHIFT		16
-#define PVRSRV_TRACE_TYPE_SHIFT		12
-#define PVRSRV_TRACE_COUNT_SHIFT	0
-
-
-#define WRITE_HEADER(n,m) \
-	((m & PVRSRV_TRACE_##n##_MASK) << PVRSRV_TRACE_##n##_SHIFT)
-
-#define READ_HEADER(n,m) \
-	((m & (PVRSRV_TRACE_##n##_MASK << PVRSRV_TRACE_##n##_SHIFT)) >> PVRSRV_TRACE_##n##_SHIFT)
-
-#define TIME_TRACE_BUFFER_SIZE		4096
-
-#define PVRSRV_TRACE_TYPE_UI8		0
-#define PVRSRV_TRACE_TYPE_UI16		1
-#define PVRSRV_TRACE_TYPE_UI32		2
-#define PVRSRV_TRACE_TYPE_UI64		3
-
-#define PVRSRV_TRACE_TYPE_SYNC		15
- #define PVRSRV_TRACE_SYNC_UID		0
- #define PVRSRV_TRACE_SYNC_WOP		1
- #define PVRSRV_TRACE_SYNC_WOC		2
- #define PVRSRV_TRACE_SYNC_ROP		3
- #define PVRSRV_TRACE_SYNC_ROC		4
- #define PVRSRV_TRACE_SYNC_WO_DEV_VADDR	5
- #define PVRSRV_TRACE_SYNC_RO_DEV_VADDR	6
- #define PVRSRV_TRACE_SYNC_OP		7
-#define PVRSRV_TRACE_TYPE_SYNC_SIZE	((PVRSRV_TRACE_SYNC_OP + 1) * sizeof(IMG_UINT32))
-
-#endif 
diff --git a/drivers/staging/cdv/pvr/services4/srvkm/include/ttrace_tokens.h b/drivers/staging/cdv/pvr/services4/srvkm/include/ttrace_tokens.h
deleted file mode 100644
index 21ea5fb..0000000
--- a/drivers/staging/cdv/pvr/services4/srvkm/include/ttrace_tokens.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef __TTRACE_TOKENS_H__
-#define __TTRACE_TOKENS_H__
-
-#define PVRSRV_TRACE_GROUP_KICK		0
-#define PVRSRV_TRACE_GROUP_TRANSFER	1
-#define PVRSRV_TRACE_GROUP_QUEUE	2
-#define PVRSRV_TRACE_GROUP_POWER	3
-#define PVRSRV_TRACE_GROUP_MKSYNC	4
-
-#define PVRSRV_TRACE_GROUP_PADDING	255
-
-#define PVRSRV_TRACE_CLASS_FUNCTION_ENTER	0
-#define PVRSRV_TRACE_CLASS_FUNCTION_EXIT	1
-#define PVRSRV_TRACE_CLASS_SYNC			2
-#define PVRSRV_TRACE_CLASS_CCB			3
-#define PVRSRV_TRACE_CLASS_CMD_START		4
-#define PVRSRV_TRACE_CLASS_CMD_END		5
-#define PVRSRV_TRACE_CLASS_CMD_COMP_START	6
-#define PVRSRV_TRACE_CLASS_CMD_COMP_END		7
-
-#define PVRSRV_TRACE_CLASS_NONE			255
-
-#define PVRSRV_SYNCOP_SAMPLE		0
-#define PVRSRV_SYNCOP_COMPLETE		1
-#define PVRSRV_SYNCOP_DUMP		2
-
-#define KICK_TOKEN_DOKICK		0
-#define KICK_TOKEN_CCB_OFFSET		1
-#define KICK_TOKEN_TA3D_SYNC		2
-#define KICK_TOKEN_TA_SYNC		3
-#define KICK_TOKEN_3D_SYNC		4
-#define KICK_TOKEN_SRC_SYNC		5
-#define KICK_TOKEN_DST_SYNC		6
-
-#define TRANSFER_TOKEN_SUBMIT		0
-#define TRANSFER_TOKEN_TA_SYNC		1
-#define TRANSFER_TOKEN_3D_SYNC		2
-#define TRANSFER_TOKEN_SRC_SYNC		3
-#define TRANSFER_TOKEN_DST_SYNC		4
-#define TRANSFER_TOKEN_CCB_OFFSET	5
-
-#define QUEUE_TOKEN_GET_SPACE		0
-#define QUEUE_TOKEN_INSERTKM		1
-#define QUEUE_TOKEN_SUBMITKM		2
-#define QUEUE_TOKEN_PROCESS_COMMAND	3
-#define QUEUE_TOKEN_PROCESS_QUEUES	4
-#define QUEUE_TOKEN_COMMAND_COMPLETE	5
-#define QUEUE_TOKEN_UPDATE_DST		6
-#define QUEUE_TOKEN_UPDATE_SRC		7
-#define QUEUE_TOKEN_SRC_SYNC		8
-#define QUEUE_TOKEN_DST_SYNC		9
-#define QUEUE_TOKEN_COMMAND_TYPE	10
-
-#define MKSYNC_TOKEN_KERNEL_CCB_OFFSET	0
-#define MKSYNC_TOKEN_CORE_CLK		1
-#define MKSYNC_TOKEN_UKERNEL_CLK	2
-
-#endif 
diff --git a/drivers/staging/cdv/pvr/services4/system/include/syscommon.h b/drivers/staging/cdv/pvr/services4/system/include/syscommon.h
deleted file mode 100644
index 6131e13..0000000
--- a/drivers/staging/cdv/pvr/services4/system/include/syscommon.h
+++ /dev/null
@@ -1,262 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _SYSCOMMON_H
-#define _SYSCOMMON_H
-
-#include "sysconfig.h"      
-#include "sysinfo.h"		
-#include "servicesint.h"
-#include "queue.h"
-#include "power.h"
-#include "resman.h"
-#include "ra.h"
-#include "device.h"
-#include "buffer_manager.h"
-#include "pvr_debug.h"
-#include "services.h"
-
-#if defined(NO_HARDWARE) && defined(__linux__) && defined(__KERNEL__)
-#include <asm/io.h>
-#endif
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-typedef struct _SYS_DEVICE_ID_TAG
-{
-	IMG_UINT32	uiID;
-	IMG_BOOL	bInUse;
-
-} SYS_DEVICE_ID;
-
-
-#define SYS_MAX_LOCAL_DEVMEM_ARENAS	4
-
-typedef IMG_HANDLE (*PFN_HTIMER_CREATE) (IMG_VOID);
-typedef IMG_UINT32 (*PFN_HTIMER_GETUS) (IMG_HANDLE);
-typedef IMG_VOID (*PFN_HTIMER_DESTROY) (IMG_HANDLE);
-typedef struct _SYS_DATA_TAG_
-{
-    IMG_UINT32                  ui32NumDevices;      	   	
-	SYS_DEVICE_ID				sDeviceID[SYS_DEVICE_COUNT];
-    PVRSRV_DEVICE_NODE			*psDeviceNodeList;			
-    PVRSRV_POWER_DEV			*psPowerDeviceList;			
-	PVRSRV_RESOURCE				sPowerStateChangeResource;	
-   	PVRSRV_SYS_POWER_STATE		eCurrentPowerState;			
-   	PVRSRV_SYS_POWER_STATE		eFailedPowerState;			
-   	IMG_UINT32		 			ui32CurrentOSPowerState;	
-    PVRSRV_QUEUE_INFO           *psQueueList;           	
-   	PVRSRV_KERNEL_SYNC_INFO 	*psSharedSyncInfoList;		
-    IMG_PVOID                   pvEnvSpecificData;      	
-    IMG_PVOID                   pvSysSpecificData;    	  	
-	PVRSRV_RESOURCE				sQProcessResource;			
-	IMG_VOID					*pvSOCRegsBase;				
-    IMG_HANDLE                  hSOCTimerRegisterOSMemHandle; 
-	IMG_UINT32					*pvSOCTimerRegisterKM;		
-	IMG_VOID					*pvSOCClockGateRegsBase;	
-	IMG_UINT32					ui32SOCClockGateRegsSize;
-															
-	struct _DEVICE_COMMAND_DATA_ *apsDeviceCommandData[SYS_DEVICE_COUNT];
-															
-
-	RA_ARENA					*apsLocalDevMemArena[SYS_MAX_LOCAL_DEVMEM_ARENAS]; 
-
-    IMG_CHAR                    *pszVersionString;          
-#if defined (SUPPORT_SID_INTERFACE)
-	PVRSRV_EVENTOBJECT_KM		*psGlobalEventObject;		
-#else
-	PVRSRV_EVENTOBJECT			*psGlobalEventObject;		
-#endif
-
-	PVRSRV_MISC_INFO_CPUCACHEOP_TYPE ePendingCacheOpType;	
-
-	PFN_HTIMER_CREATE	pfnHighResTimerCreate;
-	PFN_HTIMER_GETUS	pfnHighResTimerGetus;
-	PFN_HTIMER_DESTROY	pfnHighResTimerDestroy;
-} SYS_DATA;
-
-
-
-PVRSRV_ERROR SysInitialise(IMG_VOID);
-PVRSRV_ERROR SysFinalise(IMG_VOID);
-
-PVRSRV_ERROR SysDeinitialise(SYS_DATA *psSysData);
-PVRSRV_ERROR SysGetDeviceMemoryMap(PVRSRV_DEVICE_TYPE eDeviceType,
-									IMG_VOID **ppvDeviceMap);
-
-IMG_VOID SysRegisterExternalDevice(PVRSRV_DEVICE_NODE *psDeviceNode);
-IMG_VOID SysRemoveExternalDevice(PVRSRV_DEVICE_NODE *psDeviceNode);
-
-IMG_UINT32 SysGetInterruptSource(SYS_DATA			*psSysData,
-								 PVRSRV_DEVICE_NODE *psDeviceNode);
-
-IMG_VOID SysClearInterrupts(SYS_DATA* psSysData, IMG_UINT32 ui32ClearBits);
-
-PVRSRV_ERROR SysResetDevice(IMG_UINT32 ui32DeviceIndex);
-
-PVRSRV_ERROR SysSystemPrePowerState(PVRSRV_SYS_POWER_STATE eNewPowerState);
-PVRSRV_ERROR SysSystemPostPowerState(PVRSRV_SYS_POWER_STATE eNewPowerState);
-PVRSRV_ERROR SysDevicePrePowerState(IMG_UINT32 ui32DeviceIndex,
-									PVRSRV_DEV_POWER_STATE eNewPowerState,
-									PVRSRV_DEV_POWER_STATE eCurrentPowerState);
-PVRSRV_ERROR SysDevicePostPowerState(IMG_UINT32 ui32DeviceIndex,
-									 PVRSRV_DEV_POWER_STATE eNewPowerState,
-									 PVRSRV_DEV_POWER_STATE eCurrentPowerState);
-
-#if defined(SYS_CUSTOM_POWERLOCK_WRAP)
-PVRSRV_ERROR SysPowerLockWrap(IMG_BOOL bTryLock);
-IMG_VOID SysPowerLockUnwrap(IMG_VOID);
-#endif
-
-PVRSRV_ERROR SysOEMFunction (	IMG_UINT32	ui32ID,
-								IMG_VOID	*pvIn,
-								IMG_UINT32  ulInSize,
-								IMG_VOID	*pvOut,
-								IMG_UINT32	ulOutSize);
-
-
-IMG_DEV_PHYADDR SysCpuPAddrToDevPAddr (PVRSRV_DEVICE_TYPE eDeviceType, IMG_CPU_PHYADDR cpu_paddr);
-IMG_DEV_PHYADDR SysSysPAddrToDevPAddr (PVRSRV_DEVICE_TYPE eDeviceType, IMG_SYS_PHYADDR SysPAddr);
-IMG_SYS_PHYADDR SysDevPAddrToSysPAddr (PVRSRV_DEVICE_TYPE eDeviceType, IMG_DEV_PHYADDR SysPAddr);
-IMG_CPU_PHYADDR SysSysPAddrToCpuPAddr (IMG_SYS_PHYADDR SysPAddr);
-IMG_SYS_PHYADDR SysCpuPAddrToSysPAddr (IMG_CPU_PHYADDR cpu_paddr);
-#if defined(PVR_LMA)
-IMG_BOOL SysVerifyCpuPAddrToDevPAddr (PVRSRV_DEVICE_TYPE eDeviceType, IMG_CPU_PHYADDR CpuPAddr);
-IMG_BOOL SysVerifySysPAddrToDevPAddr (PVRSRV_DEVICE_TYPE eDeviceType, IMG_SYS_PHYADDR SysPAddr);
-#endif
-
-extern SYS_DATA* gpsSysData;
-
-
-#if !defined(USE_CODE)
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(SysAcquireData)
-#endif
-static INLINE IMG_VOID SysAcquireData(SYS_DATA **ppsSysData)
-{
-	
-	*ppsSysData = gpsSysData;
-
-	
-
-
-
-	PVR_ASSERT (gpsSysData != IMG_NULL);
-}
-
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(SysAcquireDataNoCheck)
-#endif
-static INLINE SYS_DATA * SysAcquireDataNoCheck(IMG_VOID)
-{
-	
-	return gpsSysData;
-}
-
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(SysInitialiseCommon)
-#endif
-static INLINE PVRSRV_ERROR SysInitialiseCommon(SYS_DATA *psSysData)
-{
-	PVRSRV_ERROR	eError;
-
-	
-	eError = PVRSRVInit(psSysData);
-
-	return eError;
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(SysDeinitialiseCommon)
-#endif
-static INLINE IMG_VOID SysDeinitialiseCommon(SYS_DATA *psSysData)
-{
-	
-	PVRSRVDeInit(psSysData);
-
-	OSDestroyResource(&psSysData->sPowerStateChangeResource);
-}
-#endif 
-
-
-#if !(defined(NO_HARDWARE) && defined(__linux__) && defined(__KERNEL__))
-#define	SysReadHWReg(p, o) OSReadHWReg(p, o)
-#define SysWriteHWReg(p, o, v) OSWriteHWReg(p, o, v)
-#else	
-static inline IMG_UINT32 SysReadHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset)
-{
-	return (IMG_UINT32) readl(pvLinRegBaseAddr + ui32Offset);
-}
-
-static inline IMG_VOID SysWriteHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset, IMG_UINT32 ui32Value)
-{
-	writel(ui32Value, pvLinRegBaseAddr + ui32Offset);
-}
-#endif	
-
-#if defined(__cplusplus)
-}
-#endif
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(SysHighResTimerCreate)
-#endif
-static INLINE IMG_HANDLE SysHighResTimerCreate(IMG_VOID)
-{
-	SYS_DATA *psSysData;
-
-	SysAcquireData(&psSysData);
-	return psSysData->pfnHighResTimerCreate();
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(SysHighResTimerGetus)
-#endif
-static INLINE IMG_UINT32 SysHighResTimerGetus(IMG_HANDLE hTimer)
-{
-	SYS_DATA *psSysData;
-
-	SysAcquireData(&psSysData);
-	return psSysData->pfnHighResTimerGetus(hTimer);
-}
-
-#ifdef INLINE_IS_PRAGMA
-#pragma inline(SysHighResTimerDestroy)
-#endif
-static INLINE IMG_VOID SysHighResTimerDestroy(IMG_HANDLE hTimer)
-{
-	SYS_DATA *psSysData;
-
-	SysAcquireData(&psSysData);
-	psSysData->pfnHighResTimerDestroy(hTimer);
-}
-#endif
-
diff --git a/drivers/staging/cdv/pvr/services4/system/unified/extsyscache.h b/drivers/staging/cdv/pvr/services4/system/unified/extsyscache.h
deleted file mode 100644
index c3b9517..0000000
--- a/drivers/staging/cdv/pvr/services4/system/unified/extsyscache.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "sgxdefs.h"
-
-#if defined(SUPPORT_EXTERNAL_SYSTEM_CACHE)
-/*
-	byte offsets to ext cache control registers from the
-	base of the external register bank
-	- TO BE SPECIFIED IN SYSTEM PORT!
-*/
-/* global invalidate */
-/* This address must be the physical address of the cache controller rounded
-   down to the nearest page*/
-#define SYS_EXT_SYS_CACHE_GBL_INV_REG_OFFSET	0x80000000
-
-
-/* per address invalidate (data written in the address) */
-/* This is the offset within the page to the cache controller which we want
-   to write */
-#define SYS_EXT_SYS_CACHE_ADDR_INV_REG_OFFSET	0x0
-
-/*
-	FIXME: these two defines should really live in sgxconfig.h as a heap define
-	not possible right now due to .h include issues
-*/
-
-/* This address must not live within the same virtal address as
-   any of the heaps, but must be within a shared heap */
-
-#if SGX_FEATURE_ADDRESS_SPACE_SIZE == 32
-#define SGX_EXT_SYSTEM_CACHE_REGS_DEVVADDR_BASE			(0xF8FFE000)
-#endif
-
-#if SGX_FEATURE_ADDRESS_SPACE_SIZE == 28
-#define SGX_EXT_SYSTEM_CACHE_REGS_DEVVADDR_BASE			(0x0F3FE000)
-#endif
-
-/* assume 4k is enough range to cover all control registers */
-#define SGX_EXT_SYSTEM_CACHE_REGS_SIZE					 0x00001000
-
-#define INVALIDATE_EXT_SYSTEM_CACHE_INLINE(RegA)									\
-	mov		RegA, HSH(SGX_EXT_SYSTEM_CACHE_REGS_DEVVADDR_BASE);						\
-	stad.bpcache	[RegA, HSH(SYS_EXT_SYS_CACHE_ADDR_INV_REG_OFFSET>>2)], HSH(0);	\
-	idf		drc0, st;																\
-	wdf		drc0;
-#endif /* SUPPORT_EXTERNAL_SYSTEM_CACHE */
diff --git a/drivers/staging/cdv/pvr/services4/system/unified/oemfuncs.h b/drivers/staging/cdv/pvr/services4/system/unified/oemfuncs.h
deleted file mode 100644
index 0d3b6d7..0000000
--- a/drivers/staging/cdv/pvr/services4/system/unified/oemfuncs.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined(__OEMFUNCS_H__)
-#define __OEMFUNCS_H__
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#define OEM_EXCHANGE_POWER_STATE	(1<<0)
-#define OEM_DEVICE_MEMORY_POWER		(1<<1)
-#define OEM_DISPLAY_POWER			(1<<2)
-#define OEM_GET_EXT_FUNCS			(1<<3)
-
-typedef struct OEM_ACCESS_INFO_TAG
-{
-	IMG_UINT32		ui32Size;
-	IMG_UINT32  	ui32FBPhysBaseAddress;
-	IMG_UINT32		ui32FBMemAvailable;		
-	IMG_UINT32  	ui32SysPhysBaseAddress;
-	IMG_UINT32		ui32SysSize;
-	IMG_UINT32		ui32DevIRQ;
-} OEM_ACCESS_INFO, *POEM_ACCESS_INFO; 
- 
-typedef IMG_UINT32   (*PFN_SRV_BRIDGEDISPATCH)( IMG_UINT32  Ioctl,
-												IMG_BYTE   *pInBuf,
-												IMG_UINT32  InBufLen, 
-											    IMG_BYTE   *pOutBuf,
-												IMG_UINT32  OutBufLen,
-												IMG_UINT32 *pdwBytesTransferred);
-
-
-typedef PVRSRV_ERROR (*PFN_SRV_READREGSTRING)(PPVRSRV_REGISTRY_INFO psRegInfo);
-
-
-typedef struct PVRSRV_DC_OEM_JTABLE_TAG
-{
-	PFN_SRV_BRIDGEDISPATCH			pfnOEMBridgeDispatch;
-	PFN_SRV_READREGSTRING			pfnOEMReadRegistryString;
-	PFN_SRV_READREGSTRING			pfnOEMWriteRegistryString;
-
-} PVRSRV_DC_OEM_JTABLE;
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	
-
diff --git a/drivers/staging/cdv/pvr/services4/system/unified/sys_pvr_drm_export.c b/drivers/staging/cdv/pvr/services4/system/unified/sys_pvr_drm_export.c
deleted file mode 100644
index c3ba410..0000000
--- a/drivers/staging/cdv/pvr/services4/system/unified/sys_pvr_drm_export.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <drm/drmP.h>
-#include <drm/drm.h>
-
-#include "pvr_drm_shared.h"
-
-#include "services_headers.h"
-#include "private_data.h"
-#include "pvr_drm.h"
-
-#include "pvr_bridge.h"
-#include "mutex.h"
-#include "lock.h"
-#include "linkage.h"
-#include "mmap.h"
-
-#if defined(PDUMP)
-#include "linuxsrv.h"
-#endif
-
-#include "sys_pvr_drm_import.h"
-
-#include "sys_pvr_drm_export.h"
-
-int
-SYSPVRInit(void)
-{
-	PVRDPFInit();
-
-	return 0;
-}
-
-int
-SYSPVRLoad(struct drm_device *dev, unsigned long flags)
-{
-	return PVRSRVDrmLoad(dev, flags);
-}
-
-int
-SYSPVROpen(struct drm_device *dev, struct drm_file *pFile)
-{
-	return PVRSRVDrmOpen(dev, pFile);
-}
-
-int
-SYSPVRUnload(struct drm_device *dev)
-{
-	return PVRSRVDrmUnload(dev);
-}
-
-void
-SYSPVRPostClose(struct drm_device *dev, struct drm_file *file)
-{
-	return PVRSRVDrmPostClose(dev, file);
-}
-
-int
-SYSPVRBridgeDispatch(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile)
-{
-	return PVRSRV_BridgeDispatchKM(dev, arg, pFile);
-}
-
-int
-SYSPVRDCDriverIoctl(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile)
-{
-	return PVRDRM_Dummy_ioctl(dev, arg, pFile);
-
-}
-
-int
-SYSPVRBCDriverIoctl(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile)
-{
-	return PVRDRM_Dummy_ioctl(dev, arg, pFile);
-
-}
-
-int
-SYSPVRIsMaster(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile)
-{
-	return PVRDRMIsMaster(dev, arg, pFile);
-}
-
-int
-SYSPVRUnprivCmd(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile)
-{
-	return PVRDRMUnprivCmd(dev, arg, pFile);
-}
-
-int
-SYSPVRMMap(struct file* pFile, struct vm_area_struct* ps_vma)
-{
-	int ret;
-
-	ret = PVRMMap(pFile, ps_vma);
-	if (ret == -ENOENT)
-	{
-		ret = drm_mmap(pFile, ps_vma);
-	}
-
-	return ret;
-}
-
-int
-SYSPVRDBGDrivIoctl(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile)
-{
-#if defined(PDUMP)
-	return dbgdrv_ioctl(dev, arg, pFile);
-#else
-	PVR_UNREFERENCED_PARAMETER(dev);
-	PVR_UNREFERENCED_PARAMETER(arg);
-	PVR_UNREFERENCED_PARAMETER(pFile);
-
-	return -EINVAL;
-#endif
-}
-
-void
-SYSPVRSuspendLock(struct drm_device *dev)
-{
-	PVR_UNREFERENCED_PARAMETER(dev);
-
-	LinuxLockMutex(&gPVRSRVLock);
-}
-
-void
-SYSPVRSuspendUnlock(struct drm_device *dev)
-{
-	PVR_UNREFERENCED_PARAMETER(dev);
-
-	LinuxUnLockMutex(&gPVRSRVLock);
-}
-
-int
-SYSPVRPreSuspend(struct drm_device *dev)
-{
-	if (PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D3) != PVRSRV_OK)
-	{
-		return -EBUSY;
-	}
-
-#if defined(DISPLAY_CONTROLLER)
-        if (PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Suspend)(dev) != 0)
-        {
-		(void)PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D0);
-                return -EBUSY;
-        }
-#else
-	PVR_UNREFERENCED_PARAMETER(dev);
-#endif
-
-	return 0;
-}
-
-int
-SYSPVRPostSuspend(struct drm_device *dev)
-{
-	if (PVRSRVSetPowerStateKM(PVRSRV_SYS_POWER_STATE_D0) != PVRSRV_OK)
-	{
-		return -EBUSY;
-	}
-
-	return 0;
-}
-
-int
-SYSPVRResume(struct drm_device *dev)
-{
-#if defined(DISPLAY_CONTROLLER)
-        if (PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Resume)(dev) != 0)
-        {
-                return -EINVAL;
-        }
-#else
-	PVR_UNREFERENCED_PARAMETER(dev);
-#endif
-	return 0;
-}
diff --git a/drivers/staging/cdv/pvr/services4/system/unified/sys_pvr_drm_export.h b/drivers/staging/cdv/pvr/services4/system/unified/sys_pvr_drm_export.h
deleted file mode 100644
index f2fc6bf..0000000
--- a/drivers/staging/cdv/pvr/services4/system/unified/sys_pvr_drm_export.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined(__SYS_PVR_DRM_EXPORT_H__)
-#define __SYS_PVR_DRM_EXPORT_H__
-
-#include "pvr_drm_shared.h"
-
-#if defined(__KERNEL__)
-
-#include "services_headers.h"
-#include "private_data.h"
-#include "pvr_drm.h"
-
-#include "pvr_bridge.h"
-
-#if defined(PDUMP)
-#include "linuxsrv.h"
-#endif
-
-#define PVR_DRM_SRVKM_IOCTL \
-	DRM_IOW(DRM_COMMAND_BASE + PVR_DRM_SRVKM_CMD, PVRSRV_BRIDGE_PACKAGE)
-
-#define PVR_DRM_DISP_IOCTL \
-	DRM_IO(DRM_COMMAND_BASE + PVR_DRM_DISP_CMD)
-
-#define PVR_DRM_BC_IOCTL \
-	DRM_IO(DRM_COMMAND_BASE + PVR_DRM_BC_CMD)
-
-#define	PVR_DRM_IS_MASTER_IOCTL \
-	DRM_IO(DRM_COMMAND_BASE + PVR_DRM_IS_MASTER_CMD)
-
-#define	PVR_DRM_UNPRIV_IOCTL \
-	DRM_IOWR(DRM_COMMAND_BASE + PVR_DRM_UNPRIV_CMD, IMG_UINT32)
-
-#if defined(PDUMP)
-#define	PVR_DRM_DBGDRV_IOCTL \
-	DRM_IOW(DRM_COMMAND_BASE + PVR_DRM_DBGDRV_CMD, IOCTL_PACKAGE)
-#else
-#define	PVR_DRM_DBGDRV_IOCTL \
-	DRM_IO(DRM_COMMAND_BASE + PVR_DRM_DBGDRV_CMD)
-#endif
-
-int SYSPVRInit(void);
-int SYSPVRLoad(struct drm_device *dev, unsigned long flags);
-int SYSPVROpen(struct drm_device *dev, struct drm_file *pFile);
-int SYSPVRUnload(struct drm_device *dev);
-void SYSPVRPostClose(struct drm_device *dev, struct drm_file *file);
-int SYSPVRBridgeDispatch(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile);
-int SYSPVRDCDriverIoctl(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile);
-int SYSPVRBCDriverIoctl(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile);
-int SYSPVRIsMaster(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile);
-int SYSPVRUnprivCmd(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile);
-
-int SYSPVRMMap(struct file* pFile, struct vm_area_struct* ps_vma);
-
-int SYSPVRDBGDrivIoctl(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile);
-
-int SYSPVRServiceSGXInterrupt(struct drm_device *dev);
-
-void SYSPVRSuspendLock(struct drm_device *dev);
-void SYSPVRSuspendUnlock(struct drm_device *dev);
-int SYSPVRPreSuspend(struct drm_device *dev);
-int SYSPVRPostSuspend(struct drm_device *dev);
-int SYSPVRResume(struct drm_device *dev);
-
-int BC_Video_ModInit(void);
-int BC_Video_ModCleanup(void);
-int BC_Video_Bridge(struct drm_device *dev, IMG_VOID *arg, struct drm_file *file_priv);
-
-#endif	
-
-#endif	
-
diff --git a/drivers/staging/cdv/pvr/services4/system/unified/sys_pvr_drm_import.h b/drivers/staging/cdv/pvr/services4/system/unified/sys_pvr_drm_import.h
deleted file mode 100644
index 635d903..0000000
--- a/drivers/staging/cdv/pvr/services4/system/unified/sys_pvr_drm_import.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined(__SYS_PVR_DRM_IMPORT_H__)
-#define __SYS_PVR_DRM_IMPORT_H__
-
-#if defined(__KERNEL__)
-#include "psb_drm.h"
-#endif
-
-#define DRM_PSB_PLACEMENT_OFFSET   0x13
-
-#if 0
-#define DRM_PVR_RESERVED1	0x0D
-#define DRM_PVR_RESERVED2	0x0E
-#define DRM_PVR_RESERVED3	0x0F
-#define DRM_PVR_RESERVED4	0x10
-#define DRM_PVR_RESERVED5	0x11
-#define DRM_PVR_RESERVED6	0x12
-#endif
-
-
-#endif	
diff --git a/drivers/staging/cdv/pvr/services4/system/unified/sysconfig.c b/drivers/staging/cdv/pvr/services4/system/unified/sysconfig.c
deleted file mode 100644
index 86db743..0000000
--- a/drivers/staging/cdv/pvr/services4/system/unified/sysconfig.c
+++ /dev/null
@@ -1,1022 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful but, except
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
- *
- ******************************************************************************/
-
-#include "linux/pci.h"
-
-#include "sgxdefs.h"
-#include "services_headers.h"
-#include "kerneldisplay.h"
-#include "oemfuncs.h"
-#include "sgxinfo.h"
-#include "sgxinfokm.h"
-#include "pdump_km.h"
-#include "syslocal.h"
-#include "env_data.h"
-#include "psb_drv.h"
-#include "psb_powermgmt.h"
-#include "sys_pvr_drm_export.h"
-#include "msvdx_power.h"
-
-
-/* Graphics MSI address and data region in PCIx */
-#define MRST_PCIx_MSI_ADDR_LOC		0x94
-#define MRST_PCIx_MSI_DATA_LOC		0x98
-
-#define SYS_SGX_CLOCK_SPEED			(400000000)
-#define SYS_SGX_HWRECOVERY_TIMEOUT_FREQ		(100)
-#define SYS_SGX_PDS_TIMER_FREQ			(1000)
-#define SYS_SGX_ACTIVE_POWER_LATENCY_MS		(5)
-
-#define	DRI_DRM_STATIC
-SYS_DATA* gpsSysData = (SYS_DATA*)IMG_NULL;
-SYS_DATA  gsSysData;
-
-static SYS_SPECIFIC_DATA gsSysSpecificData;
-
-IMG_UINT32 gui32SGXDeviceID;
-extern IMG_UINT32 	gui32MRSTDisplayDeviceID;
-IMG_UINT32		gui32MRSTMSVDXDeviceID;
-IMG_UINT32		gui32MRSTTOPAZDeviceID;
-
-static SGX_DEVICE_MAP	gsSGXDeviceMap;
-extern struct drm_device *gpDrmDevice;
-
-static PVRSRV_DEVICE_NODE *gpsSGXDevNode;
-
-IMG_CPU_VIRTADDR gsPoulsboRegsCPUVaddr;
-
-IMG_CPU_VIRTADDR gsPoulsboDisplayRegsCPUVaddr;
-
-extern struct pci_dev *gpsPVRLDMDev;
-
-#define	POULSBO_ADDR_RANGE_INDEX	(MMADR_INDEX - 4)
-#define	POULSBO_HP_ADDR_RANGE_INDEX	(GMADR_INDEX - 4)
-static PVRSRV_ERROR PCIInitDev(SYS_DATA *psSysData)
-{
-	SYS_SPECIFIC_DATA *psSysSpecData = (SYS_SPECIFIC_DATA *) psSysData->pvSysSpecificData;
-	IMG_UINT32 ui32MaxOffset = POULSBO_MAX_OFFSET;
-
-	if (!IS_CDV(gpDrmDevice))
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PCIInitDev: Device not supported"));
-		return PVRSRV_ERROR_NOT_SUPPORTED;
-	}
-
-	psSysSpecData->hSGXPCI = OSPCISetDev((IMG_VOID *)psSysSpecData->psPCIDev, 0);
-	ui32MaxOffset = PSB_POULSBO_MAX_OFFSET;
-
-	if (!psSysSpecData->hSGXPCI)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PCIInitDev: Failed to acquire PCI device"));
-		return PVRSRV_ERROR_PCI_DEVICE_NOT_FOUND;
-	}
-
-	 SYS_SPECIFIC_DATA_SET(psSysSpecData, SYS_SPECIFIC_DATA_PCI_ACQUIRE_DEV);
-
-	PVR_TRACE(("PCI memory region: %x to %x", OSPCIAddrRangeStart(psSysSpecData->hSGXPCI, POULSBO_ADDR_RANGE_INDEX), OSPCIAddrRangeEnd(psSysSpecData->hSGXPCI, POULSBO_ADDR_RANGE_INDEX)));
-#if defined(SGX_FEATURE_HOST_PORT)
-	PVR_TRACE(("Host Port region: %x to %x", OSPCIAddrRangeStart(psSysSpecData->hSGXPCI, POULSBO_HP_ADDR_RANGE_INDEX), OSPCIAddrRangeEnd(psSysSpecData->hSGXPCI, POULSBO_HP_ADDR_RANGE_INDEX)));
-#endif
-
-	if (OSPCIAddrRangeLen(psSysSpecData->hSGXPCI, POULSBO_ADDR_RANGE_INDEX) < ui32MaxOffset)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PCIInitDev: Device memory region isn't big enough"));
-		return PVRSRV_ERROR_PCI_REGION_TOO_SMALL;
-	}
-
-
-	if (OSPCIRequestAddrRange(psSysSpecData->hSGXPCI, POULSBO_ADDR_RANGE_INDEX) != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PCIInitDev: Device memory region not available"));
-		return PVRSRV_ERROR_PCI_REGION_UNAVAILABLE;
-
-	}
-	 SYS_SPECIFIC_DATA_SET(psSysSpecData, SYS_SPECIFIC_DATA_PCI_REQUEST_SGX_ADDR_RANGE);
-
-#if defined(SGX_FEATURE_HOST_PORT)
-
-	if (OSPCIRequestAddrRange(psSysSpecData->hSGXPCI, POULSBO_HP_ADDR_RANGE_INDEX) != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"PCIInitDev: Host Port region not available"));
-		return PVRSRV_ERROR_PCI_REGION_UNAVAILABLE;
-	}
-	 SYS_SPECIFIC_DATA_SET(psSysSpecData, SYS_SPECIFIC_DATA_PCI_REQUEST_HOST_PORT_RANGE);
-#endif
-	return PVRSRV_OK;
-}
-
-static IMG_VOID PCIDeInitDev(SYS_DATA *psSysData)
-{
-	SYS_SPECIFIC_DATA *psSysSpecData = (SYS_SPECIFIC_DATA *) psSysData->pvSysSpecificData;
-
-	if (SYS_SPECIFIC_DATA_TEST(psSysSpecData, SYS_SPECIFIC_DATA_PCI_REQUEST_SGX_ADDR_RANGE))
-	{
-		OSPCIReleaseAddrRange(psSysSpecData->hSGXPCI, POULSBO_ADDR_RANGE_INDEX);
-	}
-#if defined(SGX_FEATURE_HOST_PORT)
-	if (SYS_SPECIFIC_DATA_TEST(psSysSpecData, SYS_SPECIFIC_DATA_PCI_REQUEST_HOST_PORT_RANGE))
-	{
-		OSPCIReleaseAddrRange(psSysSpecData->hSGXPCI, POULSBO_HP_ADDR_RANGE_INDEX);
-	}
-#endif
-	if (SYS_SPECIFIC_DATA_TEST(psSysSpecData, SYS_SPECIFIC_DATA_PCI_ACQUIRE_DEV))
-	{
-		OSPCIReleaseDev(psSysSpecData->hSGXPCI);
-	}
-}
-static PVRSRV_ERROR SysLocateDevices(SYS_DATA *psSysData)
-{
-	IMG_UINT32 ui32BaseAddr = 0;
-	IMG_UINT32 ui32IRQ = 0;
-
-#if defined(SGX_FEATURE_HOST_PORT)
-	IMG_UINT32 ui32HostPortAddr = 0;
-#endif
-	SYS_SPECIFIC_DATA *psSysSpecData = (SYS_SPECIFIC_DATA *) psSysData->pvSysSpecificData;
-
-#if defined(SUPPORT_EXTERNAL_SYSTEM_CACHE)
-   struct drm_psb_private *dev_priv = (struct drm_psb_private *) gpDrmDevice->dev_private;
-#endif
-
-	ui32BaseAddr = OSPCIAddrRangeStart(psSysSpecData->hSGXPCI, POULSBO_ADDR_RANGE_INDEX);
-#if defined(SGX_FEATURE_HOST_PORT)
-	ui32HostPortAddr = OSPCIAddrRangeStart(psSysSpecData->hSGXPCI, POULSBO_HP_ADDR_RANGE_INDEX);
-#endif
-	if (OSPCIIRQ(psSysSpecData->hSGXPCI, &ui32IRQ) != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SysLocateDevices: Couldn't get IRQ"));
-		return PVRSRV_ERROR_INVALID_DEVICE;
-	}
-
-	PVR_TRACE(("ui32BaseAddr: %08X", ui32BaseAddr));
-#if defined(SGX_FEATURE_HOST_PORT)
-	PVR_TRACE(("ui32HostPortAddr: %08X", ui32HostPortAddr));
-#endif
-	PVR_TRACE(("IRQ: %d", ui32IRQ));
-
-
-	gsSGXDeviceMap.ui32Flags = 0x0;
-	gsSGXDeviceMap.ui32IRQ = ui32IRQ;
-
-
-	gsSGXDeviceMap.sRegsSysPBase.uiAddr = ui32BaseAddr + (IS_CDV(gpDrmDevice) ? SGX_REGS_OFFSET : PSB_SGX_REGS_OFFSET);
-	gsSGXDeviceMap.sRegsCpuPBase = SysSysPAddrToCpuPAddr(gsSGXDeviceMap.sRegsSysPBase);
-	gsSGXDeviceMap.ui32RegsSize = SGX_REG_SIZE;
-
-#if defined(SGX_FEATURE_HOST_PORT)
-
-	gsSGXDeviceMap.ui32Flags = SGX_HOSTPORT_PRESENT;
-	gsSGXDeviceMap.sHPSysPBase.uiAddr = ui32HostPortAddr;
-	gsSGXDeviceMap.sHPCpuPBase = SysSysPAddrToCpuPAddr(gsSGXDeviceMap.sHPSysPBase);
-	if (IS_CDV(gpDrmDevice) )
-		gsSGXDeviceMap.ui32HPSize = SYS_SGX_HP_SIZE;
-	else
-		gsSGXDeviceMap.ui32HPSize = PSB_SYS_SGX_HP_SIZE;
-#endif
-
-#if defined(MRST_SLAVEPORT)
-
-	gsSGXDeviceMap.sSPSysPBase.uiAddr = ui32BaseAddr + MRST_SGX_SP_OFFSET;
-	gsSGXDeviceMap.sSPCpuPBase = SysSysPAddrToCpuPAddr(gsSGXDeviceMap.sSPSysPBase);
-	gsSGXDeviceMap.ui32SPSize = SGX_SP_SIZE;
-#endif
-
-
-
-	gsSGXDeviceMap.sLocalMemSysPBase.uiAddr = 0;
-	gsSGXDeviceMap.sLocalMemDevPBase.uiAddr = 0;
-	gsSGXDeviceMap.sLocalMemCpuPBase.uiAddr = 0;
-	gsSGXDeviceMap.ui32LocalMemSize = 0;
-
-
-	{
-		IMG_SYS_PHYADDR sPoulsboRegsCpuPBase;
-		sPoulsboRegsCpuPBase.uiAddr = ui32BaseAddr + POULSBO_REGS_OFFSET;
-		gsPoulsboRegsCPUVaddr = OSMapPhysToLin(SysSysPAddrToCpuPAddr(sPoulsboRegsCpuPBase),
-												 POULSBO_REG_SIZE,
-												 PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-												 IMG_NULL);
-
-		sPoulsboRegsCpuPBase.uiAddr = ui32BaseAddr + POULSBO_DISPLAY_REGS_OFFSET;
-		gsPoulsboDisplayRegsCPUVaddr = OSMapPhysToLin(SysSysPAddrToCpuPAddr(sPoulsboRegsCpuPBase),
-												 POULSBO_DISPLAY_REG_SIZE,
-												 PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-												 IMG_NULL);
-	}
-
-#if defined(PDUMP)
-	{
-
-		static IMG_CHAR pszPDumpDevName[] = "SGXMEM";
-		gsSGXDeviceMap.pszPDumpDevName = pszPDumpDevName;
-	}
-#endif
-
-	return PVRSRV_OK;
-}
-
-
-#define VERSION_STR_MAX_LEN_TEMPLATE "SGX revision = 000.000.000"
-static PVRSRV_ERROR SysCreateVersionString(SYS_DATA *psSysData)
-{
-    IMG_UINT32 ui32MaxStrLen;
-    PVRSRV_ERROR eError;
-    IMG_INT32 i32Count;
-    IMG_CHAR *pszVersionString;
-    IMG_UINT32 ui32SGXRevision = 0;
-	IMG_VOID *pvSGXRegs;
-
-	pvSGXRegs = OSMapPhysToLin(gsSGXDeviceMap.sRegsCpuPBase,
-											 gsSGXDeviceMap.ui32RegsSize,
-											 PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-											 IMG_NULL);
-
-	if (pvSGXRegs != IMG_NULL)
-	{
-            ui32SGXRevision = OSReadHWReg(pvSGXRegs, EUR_CR_CORE_REVISION);
-	     OSUnMapPhysToLin(pvSGXRegs,
-												gsSGXDeviceMap.ui32RegsSize,
-												PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-												IMG_NULL);
-	}
-	else
-	{
-	     PVR_DPF((PVR_DBG_ERROR,"SysCreateVersionString: Couldn't map SGX registers"));
-	}
-
-    ui32MaxStrLen = OSStringLength(VERSION_STR_MAX_LEN_TEMPLATE);
-    eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP,
-                          ui32MaxStrLen + 1,
-                          (IMG_PVOID *)&pszVersionString,
-                          IMG_NULL,
-			  "Version String");
-    if(eError != PVRSRV_OK)
-    {
-		return eError;
-    }
-
-    i32Count = OSSNPrintf(pszVersionString, ui32MaxStrLen + 1,
-                           "SGX revision = %u.%u.%u",
-                           (IMG_UINT)((ui32SGXRevision & EUR_CR_CORE_REVISION_MAJOR_MASK)
-                            >> EUR_CR_CORE_REVISION_MAJOR_SHIFT),
-                           (IMG_UINT)((ui32SGXRevision & EUR_CR_CORE_REVISION_MINOR_MASK)
-                            >> EUR_CR_CORE_REVISION_MINOR_SHIFT),
-                           (IMG_UINT)((ui32SGXRevision & EUR_CR_CORE_REVISION_MAINTENANCE_MASK)
-                            >> EUR_CR_CORE_REVISION_MAINTENANCE_SHIFT)
-                           );
-    if(i32Count == -1)
-    {
-        ui32MaxStrLen = OSStringLength(VERSION_STR_MAX_LEN_TEMPLATE);
-        OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-                    ui32MaxStrLen + 1,
-                    pszVersionString,
-                    IMG_NULL);
-
-		return PVRSRV_ERROR_INVALID_PARAMS;
-    }
-
-    psSysData->pszVersionString = pszVersionString;
-
-    return PVRSRV_OK;
-}
-
-static IMG_VOID SysFreeVersionString(SYS_DATA *psSysData)
-{
-    if(psSysData->pszVersionString)
-    {
-        IMG_UINT32 ui32MaxStrLen;
-        ui32MaxStrLen = OSStringLength(VERSION_STR_MAX_LEN_TEMPLATE);
-        OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP,
-                    ui32MaxStrLen+1,
-                    psSysData->pszVersionString,
-                    IMG_NULL);
-		psSysData->pszVersionString = IMG_NULL;
-    }
-}
-
-PVRSRV_ERROR SysInitialise(IMG_VOID)
-{
-	IMG_UINT32			i			  = 0;
-	PVRSRV_ERROR 		eError;
-	PVRSRV_DEVICE_NODE	*psDeviceNode;
-	SGX_TIMING_INFORMATION*	psTimingInfo;
-
-	gpsSysData = &gsSysData;
-	OSMemSet(gpsSysData, 0, sizeof(SYS_DATA));
-
-	gpsSysData->pvSysSpecificData = &gsSysSpecificData;
-	gsSysSpecificData.ui32SysSpecificData = 0;
-
-	PVR_ASSERT(gpsPVRLDMDev != IMG_NULL);
-	gsSysSpecificData.psPCIDev = gpsPVRLDMDev;
-
-	eError = OSInitEnvData(&gpsSysData->pvEnvSpecificData);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SysInitialise: Failed to setup env structure"));
-		SysDeinitialise(gpsSysData);
-		gpsSysData = IMG_NULL;
-		return eError;
-	}
-
-
-	psTimingInfo = &gsSGXDeviceMap.sTimingInfo;
-	psTimingInfo->ui32CoreClockSpeed = SYS_SGX_CLOCK_SPEED;
-	psTimingInfo->ui32HWRecoveryFreq = SYS_SGX_HWRECOVERY_TIMEOUT_FREQ;
-#if defined(SUPPORT_ACTIVE_POWER_MANAGEMENT)
-	psTimingInfo->bEnableActivePM = (drm_psb_ospm != 0);
-	/*printk(KERN_ERR "SGX APM is %s\n", (drm_psb_ospm != 0)? "enabled":"disabled"); */
-#else
-	psTimingInfo->bEnableActivePM = IMG_FALSE;
-#endif
-	psTimingInfo->ui32ActivePowManLatencyms = SYS_SGX_ACTIVE_POWER_LATENCY_MS;
-	psTimingInfo->ui32uKernelFreq = SYS_SGX_PDS_TIMER_FREQ;
-
-	eError = PCIInitDev(gpsSysData);
-	if (eError != PVRSRV_OK)
-	{
-		SysDeinitialise(gpsSysData);
-		gpsSysData = IMG_NULL;
-		return eError;
-	}
-
-	gpsSysData->ui32NumDevices = SYS_DEVICE_COUNT;
-
-
-	for(i=0; i<SYS_DEVICE_COUNT; i++)
-	{
-		gpsSysData->sDeviceID[i].uiID = i;
-		gpsSysData->sDeviceID[i].bInUse = IMG_FALSE;
-	}
-
-	gpsSysData->psDeviceNodeList = IMG_NULL;
-	gpsSysData->psQueueList = IMG_NULL;
-
-	eError = SysInitialiseCommon(gpsSysData);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SysInitialise: Failed in SysInitialiseCommon"));
-		SysDeinitialise(gpsSysData);
-		gpsSysData = IMG_NULL;
-		return eError;
-	}
-
-
-
-
-
-	eError = SysLocateDevices(gpsSysData);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SysInitialise: Failed to locate devices"));
-		SysDeinitialise(gpsSysData);
-		gpsSysData = IMG_NULL;
-		return eError;
-	}
-
-
-
-
-	eError = PVRSRVRegisterDevice(gpsSysData, SGXRegisterDevice,
-								  DEVICE_SGX_INTERRUPT, &gui32SGXDeviceID);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SysInitialise: Failed to register device!"));
-		SysDeinitialise(gpsSysData);
-		gpsSysData = IMG_NULL;
-		return eError;
-	}
-
-
-	/* register MSVDX, with 0 interrupt bit, no interrupt will be served */
-	eError = PVRSRVRegisterDevice(gpsSysData, MSVDXRegisterDevice,
-				      DEVICE_MSVDX_INTERRUPT, &gui32MRSTMSVDXDeviceID);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SysInitialise: Failed to register MSVDXdevice!"));
-		SysDeinitialise(gpsSysData);
-		gpsSysData = IMG_NULL;
-		return eError;
-	}
-
-	psDeviceNode = gpsSysData->psDeviceNodeList;
-
-	while(psDeviceNode)
-	{
-
-		switch(psDeviceNode->sDevId.eDeviceType)
-		{
-			case PVRSRV_DEVICE_TYPE_SGX:
-			{
-				DEVICE_MEMORY_INFO *psDevMemoryInfo;
-				DEVICE_MEMORY_HEAP_INFO *psDeviceMemoryHeap;
-
-
-				psDeviceNode->psLocalDevMemArena = IMG_NULL;
-
-
-				psDevMemoryInfo = &psDeviceNode->sDevMemoryInfo;
-				psDeviceMemoryHeap = psDevMemoryInfo->psDeviceMemoryHeap;
-
-
-				for(i=0; i<psDevMemoryInfo->ui32HeapCount; i++)
-				{
-					psDeviceMemoryHeap[i].ui32Attribs |= PVRSRV_BACKINGSTORE_SYSMEM_NONCONTIG;
-#ifdef OEM_CUSTOMISE
-
-#endif
-				}
-
-				gpsSGXDevNode = psDeviceNode;
-				break;
-			}
-			case PVRSRV_DEVICE_TYPE_MSVDX:
-			/* nothing need to do here */
-			break;
-			case PVRSRV_DEVICE_TYPE_TOPAZ:
-			break;
-			default:
-			{
-				PVR_DPF((PVR_DBG_ERROR,"SysInitialise: Failed to find SGX device node!"));
-				return PVRSRV_ERROR_INIT_FAILURE;
-			}
-		}
-
-
-		psDeviceNode = psDeviceNode->psNext;
-	}
-
-	PDUMPINIT();
-	SYS_SPECIFIC_DATA_SET(&gsSysSpecificData, SYS_SPECIFIC_DATA_PDUMP_INIT);
-
-
-	eError = PVRSRVInitialiseDevice (gui32SGXDeviceID);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SysInitialise: Failed to initialise device!"));
-		SysDeinitialise(gpsSysData);
-		gpsSysData = IMG_NULL;
-		return eError;
-	}
-	SYS_SPECIFIC_DATA_SET(&gsSysSpecificData, SYS_SPECIFIC_DATA_SGX_INITIALISED);
-
-	eError = PVRSRVInitialiseDevice (gui32MRSTMSVDXDeviceID);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SysInitialise: Failed to initialise device!"));
-		SysDeinitialise(gpsSysData);
-		gpsSysData = IMG_NULL;
-		return eError;
-	}
-
-	if (0)
-	{
-		eError = PVRSRVInitialiseDevice (gui32MRSTTOPAZDeviceID);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"SysInitialise: Failed to initialise device!"));
-			SysDeinitialise(gpsSysData);
-			gpsSysData = IMG_NULL;
-			return eError;
-		}
-	}
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR SysFinalise(IMG_VOID)
-{
-	PVRSRV_ERROR eError = PVRSRV_OK;
-
-	eError = OSInstallMISR(gpsSysData);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SysFinalise: OSInstallMISR failed"));
-		return eError;
-	}
-	SYS_SPECIFIC_DATA_SET(&gsSysSpecificData, SYS_SPECIFIC_DATA_MISR_INSTALLED);
-
-	eError = SysCreateVersionString(gpsSysData);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SysInitialise: Failed to create a system version string"));
-	}
-	else
-	{
-	    PVR_DPF((PVR_DBG_WARNING, "SysFinalise: Version string: %s", gpsSysData->pszVersionString));
-	}
-
-	return eError;
-}
-
-PVRSRV_ERROR SysDeinitialise (SYS_DATA *psSysData)
-{
-	PVRSRV_ERROR eError;
-
-	SYS_SPECIFIC_DATA *psSysSpecData = (SYS_SPECIFIC_DATA *) psSysData->pvSysSpecificData;
-
-	if (SYS_SPECIFIC_DATA_TEST(psSysSpecData, SYS_SPECIFIC_DATA_MISR_INSTALLED))
-	{
-		eError = OSUninstallMISR(psSysData);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"SysDeinitialise: OSUninstallMISR failed"));
-			return eError;
-		}
-	}
-
-	if (SYS_SPECIFIC_DATA_TEST(psSysSpecData, SYS_SPECIFIC_DATA_SGX_INITIALISED))
-	{
-
-		eError = PVRSRVDeinitialiseDevice(gui32SGXDeviceID);
-		if (eError != PVRSRV_OK)
-		{
-			PVR_DPF((PVR_DBG_ERROR,"SysDeinitialise: failed to de-init the device"));
-			return eError;
-		}
-	}
-
-	SysFreeVersionString(psSysData);
-
-	PCIDeInitDev(psSysData);
-
-	eError = OSDeInitEnvData(psSysData->pvEnvSpecificData);
-	if (eError != PVRSRV_OK)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"SysDeinitialise: failed to de-init env structure"));
-		return eError;
-	}
-
-	SysDeinitialiseCommon(gpsSysData);
-
-
-	OSUnMapPhysToLin(gsPoulsboRegsCPUVaddr,
-											 POULSBO_REG_SIZE,
-											 PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-											 IMG_NULL);
-
-	OSUnMapPhysToLin(gsPoulsboDisplayRegsCPUVaddr,
-											 POULSBO_DISPLAY_REG_SIZE,
-											 PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-											 IMG_NULL);
-
-	if (SYS_SPECIFIC_DATA_TEST(psSysSpecData, SYS_SPECIFIC_DATA_PDUMP_INIT))
-	{
-		PDUMPDEINIT();
-	}
-
-	gpsSysData = IMG_NULL;
-
-	return PVRSRV_OK;
-}
-
-IMG_UINT32 SysGetInterruptSource(SYS_DATA* psSysData,
-		PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	PVR_UNREFERENCED_PARAMETER(psSysData);
-	PVR_UNREFERENCED_PARAMETER(psDeviceNode);
-
-	return 0;
-}
-
-IMG_VOID SysClearInterrupts(SYS_DATA* psSysData, IMG_UINT32 ui32ClearBits)
-{
-	PVR_UNREFERENCED_PARAMETER(psSysData);
-	PVR_UNREFERENCED_PARAMETER(ui32ClearBits);
-}
-
-
-PVRSRV_ERROR SysGetDeviceMemoryMap(PVRSRV_DEVICE_TYPE eDeviceType,
-									IMG_VOID **ppvDeviceMap)
-{
-	switch(eDeviceType)
-	{
-		case PVRSRV_DEVICE_TYPE_SGX:
-		{
-
-			*ppvDeviceMap = (IMG_VOID*)&gsSGXDeviceMap;
-			break;
-		}
-		default:
-		{
-			PVR_DPF((PVR_DBG_ERROR,"SysGetDeviceMemoryMap: unsupported device type"));
-		}
-	}
-	return PVRSRV_OK;
-}
-
-
-IMG_DEV_PHYADDR SysCpuPAddrToDevPAddr (PVRSRV_DEVICE_TYPE eDeviceType,
-										IMG_CPU_PHYADDR CpuPAddr)
-{
-	IMG_DEV_PHYADDR DevPAddr;
-
-	PVR_UNREFERENCED_PARAMETER(eDeviceType);
-
-
-	DevPAddr.uiAddr = CpuPAddr.uiAddr;
-
-	return DevPAddr;
-}
-
-
-IMG_CPU_PHYADDR SysSysPAddrToCpuPAddr (IMG_SYS_PHYADDR sys_paddr)
-{
-	IMG_CPU_PHYADDR cpu_paddr;
-
-
-	cpu_paddr.uiAddr = sys_paddr.uiAddr;
-	return cpu_paddr;
-}
-
-IMG_SYS_PHYADDR SysCpuPAddrToSysPAddr (IMG_CPU_PHYADDR cpu_paddr)
-{
-	IMG_SYS_PHYADDR sys_paddr;
-
-
-	sys_paddr.uiAddr = cpu_paddr.uiAddr;
-	return sys_paddr;
-}
-
-
-IMG_DEV_PHYADDR SysSysPAddrToDevPAddr (PVRSRV_DEVICE_TYPE eDeviceType, IMG_SYS_PHYADDR SysPAddr)
-{
-    IMG_DEV_PHYADDR DevPAddr;
-
-	PVR_UNREFERENCED_PARAMETER(eDeviceType);
-
-
-    DevPAddr.uiAddr = SysPAddr.uiAddr;
-
-    return DevPAddr;
-}
-
-
-IMG_SYS_PHYADDR SysDevPAddrToSysPAddr (PVRSRV_DEVICE_TYPE eDeviceType, IMG_DEV_PHYADDR DevPAddr)
-{
-    IMG_SYS_PHYADDR SysPAddr;
-
-	PVR_UNREFERENCED_PARAMETER(eDeviceType);
-
-
-    SysPAddr.uiAddr = DevPAddr.uiAddr;
-
-    return SysPAddr;
-}
-
-
-IMG_VOID SysRegisterExternalDevice(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-
-  psDeviceNode->ui32SOCInterruptBit = DEVICE_DISP_INTERRUPT;
-}
-
-
-IMG_VOID SysRemoveExternalDevice(PVRSRV_DEVICE_NODE *psDeviceNode)
-{
-	PVR_UNREFERENCED_PARAMETER(psDeviceNode);
-}
-
-PVRSRV_ERROR SysOEMFunction (	IMG_UINT32	ui32ID,
-								IMG_VOID	*pvIn,
-								IMG_UINT32  ulInSize,
-								IMG_VOID	*pvOut,
-								IMG_UINT32	ulOutSize)
-{
-	PVR_UNREFERENCED_PARAMETER(ulInSize);
-	PVR_UNREFERENCED_PARAMETER(pvIn);
-
-	return PVRSRV_ERROR_INVALID_PARAMS;
-}
-
-
-static PVRSRV_ERROR SysMapInRegisters(IMG_VOID)
-{
-	PVRSRV_DEVICE_NODE *psDeviceNodeList;
-
-	psDeviceNodeList = gpsSysData->psDeviceNodeList;
-
-	while (psDeviceNodeList)
-	{
-		switch(psDeviceNodeList->sDevId.eDeviceType)
-		{
-		case PVRSRV_DEVICE_TYPE_SGX:
-		{
-			PVRSRV_SGXDEV_INFO *psDevInfo = (PVRSRV_SGXDEV_INFO *)psDeviceNodeList->pvDevice;
-
-			if (SYS_SPECIFIC_DATA_TEST(&gsSysSpecificData, SYS_SPECIFIC_DATA_PM_UNMAP_SGX_REGS))
-			{
-				psDevInfo->pvRegsBaseKM = OSMapPhysToLin(gsSGXDeviceMap.sRegsCpuPBase,
-									 gsSGXDeviceMap.ui32RegsSize,
-									 PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-									 IMG_NULL);
-
-				if (!psDevInfo->pvRegsBaseKM)
-				{
-					PVR_DPF((PVR_DBG_ERROR,"SysMapInRegisters : Failed to map in SGX registers\n"));
-					return PVRSRV_ERROR_BAD_MAPPING;
-				}
-				SYS_SPECIFIC_DATA_CLEAR(&gsSysSpecificData, SYS_SPECIFIC_DATA_PM_UNMAP_SGX_REGS);
-			}
-			psDevInfo->ui32RegSize   = gsSGXDeviceMap.ui32RegsSize;
-			psDevInfo->sRegsPhysBase = gsSGXDeviceMap.sRegsSysPBase;
-
-#if defined(SGX_FEATURE_HOST_PORT)
-			if (gsSGXDeviceMap.ui32Flags & SGX_HOSTPORT_PRESENT)
-			{
-				if (SYS_SPECIFIC_DATA_TEST(&gsSysSpecificData, SYS_SPECIFIC_DATA_PM_UNMAP_SGX_HP))
-				{
-
-					psDevInfo->pvHostPortBaseKM = OSMapPhysToLin(gsSGXDeviceMap.sHPCpuPBase,
-														     gsSGXDeviceMap.ui32HPSize,
-														     PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-														     IMG_NULL);
-					if (!psDevInfo->pvHostPortBaseKM)
-					{
-						PVR_DPF((PVR_DBG_ERROR,"SysMapInRegisters : Failed to map in host port\n"));
-						return PVRSRV_ERROR_BAD_MAPPING;
-					}
-					SYS_SPECIFIC_DATA_CLEAR(&gsSysSpecificData, SYS_SPECIFIC_DATA_PM_UNMAP_SGX_HP);
-				}
-				psDevInfo->ui32HPSize  = gsSGXDeviceMap.ui32HPSize;
-				psDevInfo->sHPSysPAddr = gsSGXDeviceMap.sHPSysPBase;
-			}
-#endif
-			break;
-		}
-		default:
-			break;
-		}
-		psDeviceNodeList = psDeviceNodeList->psNext;
-	}
-
-	return PVRSRV_OK;
-}
-
-
-static PVRSRV_ERROR SysUnmapRegisters(IMG_VOID)
-{
-	PVRSRV_DEVICE_NODE *psDeviceNodeList;
-
-	psDeviceNodeList = gpsSysData->psDeviceNodeList;
-
-	while (psDeviceNodeList)
-	{
-		switch (psDeviceNodeList->sDevId.eDeviceType)
-		{
-		case PVRSRV_DEVICE_TYPE_SGX:
-		{
-			PVRSRV_SGXDEV_INFO *psDevInfo = (PVRSRV_SGXDEV_INFO *)psDeviceNodeList->pvDevice;
-
-			if (psDevInfo->pvRegsBaseKM)
-			{
-				OSUnMapPhysToLin(psDevInfo->pvRegsBaseKM,
-				                 gsSGXDeviceMap.ui32RegsSize,
-				                 PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-				                 IMG_NULL);
-
-				SYS_SPECIFIC_DATA_SET(&gsSysSpecificData, SYS_SPECIFIC_DATA_PM_UNMAP_SGX_REGS);
-			}
-
-			psDevInfo->pvRegsBaseKM = IMG_NULL;
-			psDevInfo->ui32RegSize          = 0;
-			psDevInfo->sRegsPhysBase.uiAddr = 0;
-
-#if defined(SGX_FEATURE_HOST_PORT)
-			if (gsSGXDeviceMap.ui32Flags & SGX_HOSTPORT_PRESENT)
-			{
-
-				if (psDevInfo->pvHostPortBaseKM)
-				{
-					OSUnMapPhysToLin(psDevInfo->pvHostPortBaseKM,
-					                 gsSGXDeviceMap.ui32HPSize,
-					                 PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-					                 IMG_NULL);
-
-					SYS_SPECIFIC_DATA_SET(&gsSysSpecificData, SYS_SPECIFIC_DATA_PM_UNMAP_SGX_HP);
-
-					psDevInfo->pvHostPortBaseKM = IMG_NULL;
-				}
-
-				psDevInfo->ui32HPSize  = 0;
-				psDevInfo->sHPSysPAddr.uiAddr = 0;
-			}
-#endif
-			break;
-		}
-		default:
-			break;
-		}
-		psDeviceNodeList = psDeviceNodeList->psNext;
-	}
-
-	OSUnMapPhysToLin(gsPoulsboRegsCPUVaddr,
-				POULSBO_REG_SIZE,
-				PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-				IMG_NULL);
-
-
-	OSUnMapPhysToLin(gsPoulsboDisplayRegsCPUVaddr,
-				POULSBO_DISPLAY_REG_SIZE,
-				PVRSRV_HAP_KERNEL_ONLY|PVRSRV_HAP_UNCACHED,
-				IMG_NULL);
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR SysSystemPrePowerState(PVRSRV_SYS_POWER_STATE eNewPowerState)
-{
-	PVRSRV_ERROR eError= PVRSRV_OK;
-	PVR_PCI_DEV *psPVRPCI = (PVR_PCI_DEV *)(gsSysSpecificData.hSGXPCI);
-
-	if (eNewPowerState != gpsSysData->eCurrentPowerState)
-	{
-		if ((eNewPowerState == PVRSRV_SYS_POWER_STATE_D3) &&
-			(gpsSysData->eCurrentPowerState < PVRSRV_SYS_POWER_STATE_D3))
-		{
-			SysUnmapRegisters();
-
-			//Save some pci state that won't get saved properly by pci_save_state()
-			pci_read_config_dword(psPVRPCI->psPCIDev, 0x5C, &gsSysSpecificData.saveBSM);
-			pci_read_config_dword(psPVRPCI->psPCIDev, 0xFC, &gsSysSpecificData.saveVBT);
-			pci_read_config_dword(psPVRPCI->psPCIDev, MRST_PCIx_MSI_ADDR_LOC, &gsSysSpecificData.msi_addr);
-			pci_read_config_dword(psPVRPCI->psPCIDev, MRST_PCIx_MSI_DATA_LOC, &gsSysSpecificData.msi_data);
-		}
-	}
-
-	return eError;
-}
-
-PVRSRV_ERROR SysSystemPostPowerState(PVRSRV_SYS_POWER_STATE eNewPowerState)
-{
-	PVRSRV_ERROR eError = PVRSRV_OK;
-	PVR_PCI_DEV *psPVRPCI = (PVR_PCI_DEV *)(gsSysSpecificData.hSGXPCI);
-
-	if (eNewPowerState != gpsSysData->eCurrentPowerState)
-	{
-		if ((gpsSysData->eCurrentPowerState == PVRSRV_SYS_POWER_STATE_D3) &&
-			(eNewPowerState < PVRSRV_SYS_POWER_STATE_D3))
-		{
-			//Restore some pci state that will not have gotten restored properly by pci_restore_state()
-			pci_write_config_dword(psPVRPCI->psPCIDev, 0x5c, gsSysSpecificData.saveBSM);
-			pci_write_config_dword(psPVRPCI->psPCIDev, 0xFC, gsSysSpecificData.saveVBT);
-			pci_write_config_dword(psPVRPCI->psPCIDev, MRST_PCIx_MSI_ADDR_LOC, gsSysSpecificData.msi_addr);
-			pci_write_config_dword(psPVRPCI->psPCIDev, MRST_PCIx_MSI_DATA_LOC, gsSysSpecificData.msi_data);
-
-			eError = SysLocateDevices(gpsSysData);
-			if (eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,"SysSystemPostPowerState: Failed to locate devices"));
-				return eError;
-			}
-
-			eError = SysMapInRegisters();
-			if (eError != PVRSRV_OK)
-			{
-				PVR_DPF((PVR_DBG_ERROR,"SysSystemPostPowerState: Failed to map in registers"));
-				return eError;
-			}
-		}
-	}
-	return eError;
-}
-
-
-PVRSRV_ERROR SysDevicePrePowerState(IMG_UINT32			ui32DeviceIndex,
-									PVRSRV_DEV_POWER_STATE	eNewPowerState,
-									PVRSRV_DEV_POWER_STATE	eCurrentPowerState)
-{
-	if ((eNewPowerState != eCurrentPowerState) &&
-	    (eNewPowerState == PVRSRV_DEV_POWER_STATE_OFF))
-	{
-		if (ui32DeviceIndex == gui32SGXDeviceID)
-		{
-			PVR_DPF((PVR_DBG_MESSAGE,"SysDevicePrePowerState: Remove SGX power"));
-			psb_irq_uninstall_islands(gpDrmDevice, OSPM_GRAPHICS_ISLAND);
-			/* XXX don't power off SGX on Cedartrail, windows driver guy said don't
- 			 * need that. -- zhenyu */
-			/* ospm_power_island_down(OSPM_GRAPHICS_ISLAND); */
-		}
-#if 1
-		else if (ui32DeviceIndex == gui32MRSTMSVDXDeviceID)
-		{
-			ospm_power_island_down(OSPM_VIDEO_DEC_ISLAND);
-#if 0
-			ospm_power_using_hw_end(OSPM_VIDEO_DEC_ISLAND);
-			ospm_power_using_hw_end(OSPM_DISPLAY_ISLAND);
-#endif
-		}
-		else if (ui32DeviceIndex == gui32MRSTTOPAZDeviceID)
-		{
-			ospm_power_island_down(OSPM_VIDEO_ENC_ISLAND);
-		}
-#if 0
-			ospm_power_using_hw_end(OSPM_VIDEO_ENC_ISLAND);
-			ospm_power_using_hw_end(OSPM_DISPLAY_ISLAND);
-#endif
-#endif
-	}
-
-	return PVRSRV_OK;
-}
-
-
-PVRSRV_ERROR SysDevicePostPowerState(IMG_UINT32			ui32DeviceIndex,
-									 PVRSRV_DEV_POWER_STATE	eNewPowerState,
-									 PVRSRV_DEV_POWER_STATE	eCurrentPowerState)
-{
-	if ((eNewPowerState != eCurrentPowerState) &&
-	    (eCurrentPowerState == PVRSRV_DEV_POWER_STATE_OFF))
-	{
-		if (ui32DeviceIndex == gui32SGXDeviceID)
-		{
-			PVR_DPF((PVR_DBG_MESSAGE,"SysDevicePrePowerState: Restore SGX power"));
-			/* XXX we don't power off SGX on Cedartrail */
-			/* ospm_power_island_up(OSPM_GRAPHICS_ISLAND); */
-		}
-#if 1
-		else if (ui32DeviceIndex == gui32MRSTMSVDXDeviceID)
-		{
-			PVR_DPF((PVR_DBG_MESSAGE,"SysDevicePrePowerState: Restore MSVDX power"));
-			ospm_power_island_up(OSPM_VIDEO_DEC_ISLAND);
-#if 0
-			if (!ospm_power_using_hw_begin(OSPM_DISPLAY_ISLAND, true))
-			{
-				return PVRSRV_ERROR_GENERIC;
-			}
-
-			if (!ospm_power_using_hw_begin(OSPM_VIDEO_DEC_ISLAND, true))
-			{
-				ospm_power_using_hw_end(OSPM_DISPLAY_ISLAND);
-
-				return PVRSRV_ERROR_GENERIC;
-			}
-#endif
-		}
-		else if (ui32DeviceIndex == gui32MRSTTOPAZDeviceID)
-		{
-			PVR_DPF((PVR_DBG_MESSAGE,"SysDevicePrePowerState: Restore TOPAZ power"));
-
-			ospm_power_island_up(OSPM_VIDEO_ENC_ISLAND);
-#if 0
-			if (!ospm_power_using_hw_begin(OSPM_DISPLAY_ISLAND, true))
-			{
-				return PVRSRV_ERROR_GENERIC;
-			}
-
-			if (!ospm_power_using_hw_begin(OSPM_VIDEO_ENC_ISLAND, true))
-			{
-				ospm_power_using_hw_end(OSPM_DISPLAY_ISLAND);
-
-				return PVRSRV_ERROR_GENERIC;
-			}
-#endif
-		}
-#endif
-	}
-
-	return PVRSRV_OK;
-}
-
-int SYSPVRServiceSGXInterrupt(struct drm_device *dev)
-{
-	IMG_BOOL bStatus = IMG_FALSE;
-
-	PVR_UNREFERENCED_PARAMETER(dev);
-
-	if (gpsSGXDevNode != IMG_NULL)
-	{
-		bStatus = (*gpsSGXDevNode->pfnDeviceISR)(gpsSGXDevNode->pvISRData);
-		if (bStatus)
-		{
-			OSScheduleMISR((IMG_VOID *)gpsSGXDevNode->psSysData);
-		}
-	}
-
-	return bStatus ? 1 : 0;
-}
diff --git a/drivers/staging/cdv/pvr/services4/system/unified/sysconfig.h b/drivers/staging/cdv/pvr/services4/system/unified/sysconfig.h
deleted file mode 100644
index 814b0b2..0000000
--- a/drivers/staging/cdv/pvr/services4/system/unified/sysconfig.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined(__SOCCONFIG_H__)
-#define __SOCCONFIG_H__
-#include "syscommon.h"
-#include "extsyscache.h"
-
-#define VS_PRODUCT_NAME	"SGX Cedarview"
-
-#define SYS_NO_POWER_LOCK_TIMEOUT
-
-/*#define SGX_FEATURE_HOST_PORT */
-
-#define SYS_SGX_USSE_COUNT					(2)
-
-#define POULSBO_REGS_OFFSET	0x00000
-#define POULSBO_REG_SIZE	0x2100	
-
-#define SGX_REGS_OFFSET		0x80000
-#define PSB_SGX_REGS_OFFSET	0x40000
-#define SGX_REG_SIZE 		0x4000
-#define MSVDX_REGS_OFFSET	0x90000
-
-#ifdef SUPPORT_MSVDX
-#define	POULSBO_MAX_OFFSET	(MSVDX_REGS_OFFSET + MSVDX_REG_SIZE)
-#else
-#define	POULSBO_MAX_OFFSET	(SGX_REGS_OFFSET + SGX_REG_SIZE)
-#define	PSB_POULSBO_MAX_OFFSET	(PSB_SGX_REGS_OFFSET + SGX_REG_SIZE)
-#endif
-
-#define SYS_SGX_DEV_VENDOR_ID		0x8086
-#define PSB_SYS_SGX_DEV_DEVICE_ID_1	0x8108
-#define PSB_SYS_SGX_DEV_DEVICE_ID_2	0x8109
-
-#define SYS_SGX_DEV_DEVICE_ID		0x4102
-
-#define SYS_SGX_DEVICE_IDS \
-    {0x8086, 0x8108, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PSB_8108}, \
-    {0x8086, 0x8109, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PSB_8109}, \
-    {0x8086, 0x4100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MRST_4100}, \
-    {0x8086, 0x4101, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MRST_4100}, \
-    {0x8086, 0x4102, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MRST_4100}, \
-    {0x8086, 0x4103, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MRST_4100}, \
-    {0x8086, 0x4104, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MRST_4100}, \
-    {0x8086, 0x4105, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MRST_4100}, \
-    {0x8086, 0x4106, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MRST_4100}, \
-    {0x8086, 0x4107, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MRST_4100}, \
-    {0x8086, 0x0130, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MDFLD_0130}, \
-    {0x8086, 0x0131, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MDFLD_0130}, \
-    {0x8086, 0x0132, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MDFLD_0130}, \
-    {0x8086, 0x0133, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MDFLD_0130}, \
-    {0x8086, 0x0134, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MDFLD_0130}, \
-    {0x8086, 0x0135, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MDFLD_0130}, \
-    {0x8086, 0x0136, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MDFLD_0130}, \
-    {0x8086, 0x0137, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MDFLD_0130}, \
-    {0x8086, 0x0BE0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0}, \
-    {0x8086, 0x0BE1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0}, \
-    {0x8086, 0x0BE2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0}, \
-    {0x8086, 0x0BE3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0}, \
-    {0x8086, 0x0BE4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0}, \
-    {0x8086, 0x0BE5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0}, \
-    {0x8086, 0x0BE6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0}, \
-    {0x8086, 0x0BE7, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CDV_0BE0}, \
-    {0, 0, 0}
-
-
-#define MMADR_INDEX			4
-#define IOPORT_INDEX		5
-#define GMADR_INDEX			6
-#define MMUADR_INDEX		7
-#define FBADR_INDEX			23
-#define FBSIZE_INDEX		24
-
-#define DISPLAY_SURFACE_SIZE        (4 * 1024 * 1024)
-
-#define DEVICE_SGX_INTERRUPT		(1<<0)
-#define DEVICE_MSVDX_INTERRUPT		(1<<1)
-#define DEVICE_DISP_INTERRUPT		(1<<2)
-#define DEVICE_TOPAZ_INTERRUPT		(1<<3)
-
-#define POULSBO_INTERRUPT_ENABLE_REG		0x20A0
-#define POULSBO_INTERRUPT_IDENTITY_REG		0x20A4
-#define POULSBO_INTERRUPT_MASK_REG			0x20A8
-#define POULSBO_INTERRUPT_STATUS_REG		0x20AC
-
-#define POULSBO_DISP_MASK					(1<<17)
-#define POULSBO_THALIA_MASK					(1<<18)
-#define POULSBO_MSVDX_MASK					(1<<19)
-#define POULSBO_VSYNC_PIPEA_VBLANK_MASK		(1<<7)
-#define POULSBO_VSYNC_PIPEA_EVENT_MASK		(1<<6)
-#define POULSBO_VSYNC_PIPEB_VBLANK_MASK		(1<<5)
-#define POULSBO_VSYNC_PIPEB_EVENT_MASK		(1<<4)
-
-#define POULSBO_DISPLAY_REGS_OFFSET			0x70000
-#define POULSBO_DISPLAY_REG_SIZE			0x2000		
-
-#define POULSBO_DISPLAY_A_CONFIG			0x00008
-#define POULSBO_DISPLAY_A_STATUS_SELECT		0x00024
-#define POULSBO_DISPLAY_B_CONFIG			0x01008
-#define POULSBO_DISPLAY_B_STATUS_SELECT		0x01024
-
-#define POULSBO_DISPLAY_PIPE_ENABLE			(1<<31)
-#define POULSBO_DISPLAY_VSYNC_STS_EN		(1<<25)
-#define POULSBO_DISPLAY_VSYNC_STS			(1<<9)
-
-#if defined(SGX_FEATURE_HOST_PORT)
-	#define SYS_SGX_HP_SIZE		0x8000000
-	#define PSB_SYS_SGX_HP_SIZE	0x4000000
-	
-	#define SYS_SGX_HOSTPORT_BASE_DEVVADDR 0xD0000000
-	#if defined(FIX_HW_BRN_22997) && defined(FIX_HW_BRN_23030)
-		
-
-
-		#define SYS_SGX_HOSTPORT_BRN23030_OFFSET 0x7C00000
-	#endif
-#endif
-
- 
-typedef struct
-{
-	union
-	{
-		IMG_UINT8	aui8PCISpace[256];
-		IMG_UINT16	aui16PCISpace[128];
-		IMG_UINT32	aui32PCISpace[64];
-		struct  
-		{
-			IMG_UINT16	ui16VenID;
-			IMG_UINT16	ui16DevID;
-			IMG_UINT16	ui16PCICmd;
-			IMG_UINT16	ui16PCIStatus;
-		}s;
-	}u;
-} PCICONFIG_SPACE, *PPCICONFIG_SPACE;
-
-#endif	
diff --git a/drivers/staging/cdv/pvr/services4/system/unified/sysinfo.h b/drivers/staging/cdv/pvr/services4/system/unified/sysinfo.h
deleted file mode 100644
index 6e113c9..0000000
--- a/drivers/staging/cdv/pvr/services4/system/unified/sysinfo.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined(__SYSINFO_H__)
-#define __SYSINFO_H__
-
-#define MAX_HW_TIME_US				(500000)
-#define WAIT_TRY_COUNT				(10000)
-
-typedef enum _SYS_DEVICE_TYPE_
-{
-	SYS_DEVICE_SGX						= 0,
-
-	SYS_DEVICE_FORCE_I16 				= 0x7fff
-
-} SYS_DEVICE_TYPE;
-
-#define SYS_DEVICE_COUNT 10
-
-#endif	
diff --git a/drivers/staging/cdv/pvr/services4/system/unified/sysirq.h b/drivers/staging/cdv/pvr/services4/system/unified/sysirq.h
deleted file mode 100644
index c5efc4a..0000000
--- a/drivers/staging/cdv/pvr/services4/system/unified/sysirq.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2011, Intel Corporation.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Authors:
- *    Benjamin Defnet <benjamin.r.defnet@intel.com>
- *    Rajesh Poornachandran <rajesh.poornachandran@intel.com>
- *
- **************************************************************************/
-
-#ifndef _SYSIRQ_H_
-#define _SYSIRQ_H_
-
-#include <drm/drmP.h>
-
-bool sysirq_init(struct drm_device *dev);
-void sysirq_uninit(struct drm_device *dev);
-
-void psb_irq_preinstall(struct drm_device *dev);
-int  psb_irq_postinstall(struct drm_device *dev);
-void psb_irq_uninstall(struct drm_device *dev);
-irqreturn_t psb_irq_handler(DRM_IRQ_ARGS);
-
-void psb_irq_preinstall_islands(struct drm_device *dev, int hw_islands);
-int  psb_irq_postinstall_islands(struct drm_device *dev, int hw_islands);
-void psb_irq_uninstall_islands(struct drm_device *dev, int hw_islands);
-
-int psb_irq_enable_dpst(struct drm_device *dev);
-int psb_irq_disable_dpst(struct drm_device *dev);
-void sysirq_turn_on_dpst(struct drm_device *dev);
-void sysirq_turn_off_dpst(struct drm_device *dev);
-int  psb_enable_vblank(struct drm_device *dev, int pipe);
-void psb_disable_vblank(struct drm_device *dev, int pipe);
-u32  psb_get_vblank_counter(struct drm_device *dev, int pipe);
-
-#endif //_SYSIRQ_H_
diff --git a/drivers/staging/cdv/pvr/services4/system/unified/syslocal.h b/drivers/staging/cdv/pvr/services4/system/unified/syslocal.h
deleted file mode 100644
index c36b9c1..0000000
--- a/drivers/staging/cdv/pvr/services4/system/unified/syslocal.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#if !defined(__SYSLOCAL_H__)
-#define __SYSLOCAL_H__
-
-#define SYS_SPECIFIC_DATA_PCI_ACQUIRE_DEV		0x00000001
-#define SYS_SPECIFIC_DATA_PCI_REQUEST_SGX_ADDR_RANGE	0x00000002
-#define SYS_SPECIFIC_DATA_PCI_REQUEST_HOST_PORT_RANGE	0x00000004
-#define	SYS_SPECIFIC_DATA_SGX_INITIALISED		0x00000040
-#if defined(SUPPORT_MSVDX)
-#define	SYS_SPECIFIC_DATA_MSVDX_INITIALISED		0x00000080
-#endif	
-#define	SYS_SPECIFIC_DATA_MISR_INSTALLED		0x00000100
-#define	SYS_SPECIFIC_DATA_LISR_INSTALLED		0x00000200
-#define	SYS_SPECIFIC_DATA_PDUMP_INIT			0x00000400
-#define	SYS_SPECIFIC_DATA_IRQ_ENABLED			0x00000800
-
-#define	SYS_SPECIFIC_DATA_PM_UNMAP_SGX_REGS		0x00001000
-#define	SYS_SPECIFIC_DATA_PM_UNMAP_SGX_HP		0x00004000
-#define	SYS_SPECIFIC_DATA_PM_UNMAP_MSVDX_REGS		0x00008000
-#define	SYS_SPECIFIC_DATA_PM_IRQ_DISABLE		0x00010000
-#define	SYS_SPECIFIC_DATA_PM_UNINSTALL_LISR		0x00020000
-
-#define	SYS_SPECIFIC_DATA_SET(psSysSpecData, flag) ((IMG_VOID)((psSysSpecData)->ui32SysSpecificData |= (flag)))
-
-#define	SYS_SPECIFIC_DATA_CLEAR(psSysSpecData, flag) ((IMG_VOID)((psSysSpecData)->ui32SysSpecificData &= ~(flag)))
-
-#define	SYS_SPECIFIC_DATA_TEST(psSysSpecData, flag) (((psSysSpecData)->ui32SysSpecificData & (flag)) != 0)
- 
- 
-typedef struct _SYS_SPECIFIC_DATA_TAG_
-{
-	
-	IMG_UINT32 ui32SysSpecificData;
-#ifdef	__linux__
-	PVRSRV_PCI_DEV_HANDLE hSGXPCI;
-#endif
-	struct pci_dev *psPCIDev;
-
-	/* MSI reg save */
-	uint32_t msi_addr;
-	uint32_t msi_data;
-
-	uint32_t saveBSM;
-	uint32_t saveVBT;
-} SYS_SPECIFIC_DATA;
-
- 
-#endif	
-
-
diff --git a/drivers/staging/cdv/pvr/services4/system/unified/sysutils.c b/drivers/staging/cdv/pvr/services4/system/unified/sysutils.c
deleted file mode 100644
index b89a1da..0000000
--- a/drivers/staging/cdv/pvr/services4/system/unified/sysutils.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "services_headers.h"
-#include "sysinfo.h"
-#include "syslocal.h"
-
diff --git a/drivers/staging/cdv/pvr/tools/intern/debug/client/linuxsrv.h b/drivers/staging/cdv/pvr/tools/intern/debug/client/linuxsrv.h
deleted file mode 100644
index f1cb02a..0000000
--- a/drivers/staging/cdv/pvr/tools/intern/debug/client/linuxsrv.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- **************************************************************************/
-
-#ifndef _LINUXSRV_H__
-#define _LINUXSRV_H__
-
-typedef struct tagIOCTL_PACKAGE
-{
-	IMG_UINT32 ui32Cmd;              // ioctl command
-	IMG_UINT32 ui32Size;			   // needs to be correctly set
-	IMG_VOID 	*pInBuffer;          // input data buffer
-	IMG_UINT32  ui32InBufferSize;     // size of input data buffer
-	IMG_VOID    *pOutBuffer;         // output data buffer
-	IMG_UINT32  ui32OutBufferSize;    // size of output data buffer
-} IOCTL_PACKAGE;
-
-IMG_UINT32 DeviceIoControl(IMG_UINT32 hDevice,		
-						IMG_UINT32 ui32ControlCode, 
-						IMG_VOID *pInBuffer,		
-						IMG_UINT32 ui32InBufferSize,
-						IMG_VOID *pOutBuffer,		
-						IMG_UINT32 ui32OutBufferSize,  
-						IMG_UINT32 *pui32BytesReturned); 
-
-#endif /* _LINUXSRV_H__*/
diff --git a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/dbgdriv.c b/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/dbgdriv.c
deleted file mode 100644
index 4bf93d0..0000000
--- a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/dbgdriv.c
+++ /dev/null
@@ -1,2357 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-
-#ifdef LINUX
-#include <linux/string.h>
-#endif
-#ifdef __QNXNTO__
-#include <string.h>
-#endif
-
-#include "img_types.h"
-#include "pvr_debug.h"
-#include "dbgdrvif.h"
-#include "dbgdriv.h"
-#include "hotkey.h"
-#include "hostfunc.h"
-#include "pvr_debug.h"
-
-
-
-
-#define LAST_FRAME_BUF_SIZE	1024
-
-typedef struct _DBG_LASTFRAME_BUFFER_
-{
-	PDBG_STREAM	psStream;
-	IMG_UINT8 ui8Buffer[LAST_FRAME_BUF_SIZE];
-	IMG_UINT32		ui32BufLen;
-	struct _DBG_LASTFRAME_BUFFER_	*psNext;
-} *PDBG_LASTFRAME_BUFFER;
-
-
-static PDBG_STREAM	g_psStreamList = 0;
-static PDBG_LASTFRAME_BUFFER	g_psLFBufferList;
-
-static IMG_UINT32		g_ui32LOff = 0;
-static IMG_UINT32		g_ui32Line = 0;
-static IMG_UINT32		g_ui32MonoLines = 25;
-
-static IMG_BOOL			g_bHotkeyMiddump = IMG_FALSE;
-static IMG_UINT32		g_ui32HotkeyMiddumpStart = 0xffffffff;
-static IMG_UINT32		g_ui32HotkeyMiddumpEnd = 0xffffffff;
-
-IMG_VOID *				g_pvAPIMutex=IMG_NULL;
-
-extern IMG_UINT32		g_ui32HotKeyFrame;
-extern IMG_BOOL			g_bHotKeyPressed;
-extern IMG_BOOL			g_bHotKeyRegistered;
-
-IMG_BOOL				gbDumpThisFrame = IMG_FALSE;
-
-
-IMG_UINT32 SpaceInStream(PDBG_STREAM psStream);
-IMG_BOOL ExpandStreamBuffer(PDBG_STREAM psStream, IMG_UINT32 ui32NewSize);
-PDBG_LASTFRAME_BUFFER FindLFBuf(PDBG_STREAM psStream);
-
-DBGKM_SERVICE_TABLE g_sDBGKMServices =
-{
-	sizeof (DBGKM_SERVICE_TABLE),
-	ExtDBGDrivCreateStream,
-	ExtDBGDrivDestroyStream,
-	ExtDBGDrivFindStream,
-	ExtDBGDrivWriteString,
-	ExtDBGDrivReadString,
-	ExtDBGDrivWrite,
-	ExtDBGDrivRead,
-	ExtDBGDrivSetCaptureMode,
-	ExtDBGDrivSetOutputMode,
-	ExtDBGDrivSetDebugLevel,
-	ExtDBGDrivSetFrame,
-	ExtDBGDrivGetFrame,
-	ExtDBGDrivOverrideMode,
-	ExtDBGDrivDefaultMode,
-	ExtDBGDrivWrite2,
-	ExtDBGDrivWriteStringCM,
-	ExtDBGDrivWriteCM,
-	ExtDBGDrivSetMarker,
-	ExtDBGDrivGetMarker,
-	ExtDBGDrivStartInitPhase,
-	ExtDBGDrivStopInitPhase,
-	ExtDBGDrivIsCaptureFrame,
-	ExtDBGDrivWriteLF,
-	ExtDBGDrivReadLF,
-	ExtDBGDrivGetStreamOffset,
-	ExtDBGDrivSetStreamOffset,
-	ExtDBGDrivIsLastCaptureFrame,
-	ExtDBGDrivWaitForEvent,
-	ExtDBGDrivSetConnectNotifier,
-	ExtDBGDrivWritePersist
-};
-
-
-static IMG_UINT32 DBGDrivWritePersist(PDBG_STREAM psMainStream,IMG_UINT8 * pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
-static IMG_VOID InvalidateAllStreams(IMG_VOID);
-
-
-
-
-DBGKM_CONNECT_NOTIFIER g_fnDBGKMNotifier;
-
-IMG_VOID IMG_CALLCONV ExtDBGDrivSetConnectNotifier(DBGKM_CONNECT_NOTIFIER fn_notifier)
-{
-	
-	g_fnDBGKMNotifier = fn_notifier;
-}
-
-IMG_VOID * IMG_CALLCONV ExtDBGDrivCreateStream(IMG_CHAR *	pszName, IMG_UINT32 ui32CapMode, IMG_UINT32	ui32OutMode, IMG_UINT32 ui32Flags, IMG_UINT32 ui32Size)
-{
-	IMG_VOID *	pvRet;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	pvRet=DBGDrivCreateStream(pszName, ui32CapMode, ui32OutMode, ui32Flags, ui32Size);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return pvRet;
-}
-
-void IMG_CALLCONV ExtDBGDrivDestroyStream(PDBG_STREAM psStream)
-{
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	DBGDrivDestroyStream(psStream);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return;
-}
-
-IMG_VOID * IMG_CALLCONV ExtDBGDrivFindStream(IMG_CHAR * pszName, IMG_BOOL bResetStream)
-{
-	IMG_VOID *	pvRet;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	pvRet=DBGDrivFindStream(pszName, bResetStream);
-	if(g_fnDBGKMNotifier.pfnConnectNotifier)
-	{
-		g_fnDBGKMNotifier.pfnConnectNotifier();
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_ERROR, "pfnConnectNotifier not initialised.\n"));
-	}		
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return pvRet;
-}
-
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivWriteString(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level)
-{
-	IMG_UINT32	ui32Ret;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	ui32Ret=DBGDrivWriteString(psStream, pszString, ui32Level);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return ui32Ret;
-}
-
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivReadString(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Limit)
-{
-	IMG_UINT32 ui32Ret;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	ui32Ret=DBGDrivReadString(psStream, pszString, ui32Limit);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return ui32Ret;
-}
-
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivWrite(PDBG_STREAM psStream,IMG_UINT8 * pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level)
-{
-	IMG_UINT32	ui32Ret;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	ui32Ret=DBGDrivWrite(psStream, pui8InBuf, ui32InBuffSize, ui32Level);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return ui32Ret;
-}
-
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivRead(PDBG_STREAM psStream, IMG_BOOL bReadInitBuffer, IMG_UINT32 ui32OutBuffSize,IMG_UINT8 * pui8OutBuf)
-{
-	IMG_UINT32 ui32Ret;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	ui32Ret=DBGDrivRead(psStream, bReadInitBuffer, ui32OutBuffSize, pui8OutBuf);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return ui32Ret;
-}
-
-void IMG_CALLCONV ExtDBGDrivSetCaptureMode(PDBG_STREAM psStream,IMG_UINT32 ui32Mode,IMG_UINT32 ui32Start,IMG_UINT32 ui32End,IMG_UINT32 ui32SampleRate)
-{
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	DBGDrivSetCaptureMode(psStream, ui32Mode, ui32Start, ui32End, ui32SampleRate);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return;
-}
-
-void IMG_CALLCONV ExtDBGDrivSetOutputMode(PDBG_STREAM psStream,IMG_UINT32 ui32OutMode)
-{
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	DBGDrivSetOutputMode(psStream, ui32OutMode);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return;
-}
-
-void IMG_CALLCONV ExtDBGDrivSetDebugLevel(PDBG_STREAM psStream,IMG_UINT32 ui32DebugLevel)
-{
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	DBGDrivSetDebugLevel(psStream, ui32DebugLevel);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return;
-}
-
-void IMG_CALLCONV ExtDBGDrivSetFrame(PDBG_STREAM psStream,IMG_UINT32 ui32Frame)
-{
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	DBGDrivSetFrame(psStream, ui32Frame);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return;
-}
-
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivGetFrame(PDBG_STREAM psStream)
-{
-	IMG_UINT32	ui32Ret;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	ui32Ret=DBGDrivGetFrame(psStream);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return ui32Ret;
-}
-
-IMG_BOOL IMG_CALLCONV ExtDBGDrivIsLastCaptureFrame(PDBG_STREAM psStream)
-{
-	IMG_BOOL	bRet;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	bRet = DBGDrivIsLastCaptureFrame(psStream);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return bRet;
-}
-
-IMG_BOOL IMG_CALLCONV ExtDBGDrivIsCaptureFrame(PDBG_STREAM psStream, IMG_BOOL bCheckPreviousFrame)
-{
-	IMG_BOOL	bRet;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	bRet = DBGDrivIsCaptureFrame(psStream, bCheckPreviousFrame);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return bRet;
-}
-
-void IMG_CALLCONV ExtDBGDrivOverrideMode(PDBG_STREAM psStream,IMG_UINT32 ui32Mode)
-{
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	DBGDrivOverrideMode(psStream, ui32Mode);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return;
-}
-
-void IMG_CALLCONV ExtDBGDrivDefaultMode(PDBG_STREAM psStream)
-{
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	DBGDrivDefaultMode(psStream);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return;
-}
-
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivWrite2(PDBG_STREAM psStream,IMG_UINT8 * pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level)
-{
-	IMG_UINT32	ui32Ret;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	ui32Ret=DBGDrivWrite2(psStream, pui8InBuf, ui32InBuffSize, ui32Level);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return ui32Ret;
-}
-
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivWritePersist(PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level)
-{
-	IMG_UINT32	ui32Ret;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	ui32Ret=DBGDrivWritePersist(psStream, pui8InBuf, ui32InBuffSize, ui32Level);
-	if(ui32Ret==0xFFFFFFFFU)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "An error occurred in DBGDrivWritePersist."));
-	}
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return ui32Ret;
-}
-
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivWriteStringCM(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level)
-{
-	IMG_UINT32	ui32Ret;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	ui32Ret=DBGDrivWriteStringCM(psStream, pszString, ui32Level);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return ui32Ret;
-}
-
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivWriteCM(PDBG_STREAM psStream,IMG_UINT8 * pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level)
-{
-	IMG_UINT32	ui32Ret;
-	
-	
-	HostAquireMutex(g_pvAPIMutex);
-	
-	ui32Ret=DBGDrivWriteCM(psStream, pui8InBuf, ui32InBuffSize, ui32Level);
-	
-	
-	HostReleaseMutex(g_pvAPIMutex);
-	
-	return ui32Ret;
-}
-
-void IMG_CALLCONV ExtDBGDrivSetMarker(PDBG_STREAM psStream, IMG_UINT32 ui32Marker)
-{
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	DBGDrivSetMarker(psStream, ui32Marker);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return;
-}
-
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivGetMarker(PDBG_STREAM psStream)
-{
-	IMG_UINT32	ui32Marker;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	ui32Marker = DBGDrivGetMarker(psStream);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return ui32Marker;
-}
-
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivWriteLF(PDBG_STREAM psStream, IMG_UINT8 * pui8InBuf, IMG_UINT32 ui32InBuffSize, IMG_UINT32 ui32Level, IMG_UINT32 ui32Flags)
-{
-	IMG_UINT32	ui32Ret;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	ui32Ret = DBGDrivWriteLF(psStream, pui8InBuf, ui32InBuffSize, ui32Level, ui32Flags);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return ui32Ret;
-}
-
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivReadLF(PDBG_STREAM psStream, IMG_UINT32 ui32OutBuffSize, IMG_UINT8 * pui8OutBuf)
-{
-	IMG_UINT32 ui32Ret;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	ui32Ret = DBGDrivReadLF(psStream, ui32OutBuffSize, pui8OutBuf);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return ui32Ret;
-}
-
-
-IMG_VOID IMG_CALLCONV ExtDBGDrivStartInitPhase(PDBG_STREAM psStream)
-{
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	DBGDrivStartInitPhase(psStream);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return;
-}
-
-IMG_VOID IMG_CALLCONV ExtDBGDrivStopInitPhase(PDBG_STREAM psStream)
-{
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	DBGDrivStopInitPhase(psStream);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return;
-}
-
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivGetStreamOffset(PDBG_STREAM psStream)
-{
-	IMG_UINT32 ui32Ret;
-
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	ui32Ret = DBGDrivGetStreamOffset(psStream);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-
-	return ui32Ret;
-}
-
-IMG_VOID IMG_CALLCONV ExtDBGDrivSetStreamOffset(PDBG_STREAM psStream, IMG_UINT32 ui32StreamOffset)
-{
-	
-	HostAquireMutex(g_pvAPIMutex);
-
-	DBGDrivSetStreamOffset(psStream, ui32StreamOffset);
-
-	
-	HostReleaseMutex(g_pvAPIMutex);
-}
-
-IMG_VOID IMG_CALLCONV ExtDBGDrivWaitForEvent(DBG_EVENT eEvent)
-{
-#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS)
-	DBGDrivWaitForEvent(eEvent);
-#else	
-	PVR_UNREFERENCED_PARAMETER(eEvent);				
-#endif	
-}
-
-IMG_UINT32 AtoI(IMG_CHAR *szIn)
-{
-	IMG_INT		iLen = 0;
-	IMG_UINT32	ui32Value = 0;
-	IMG_UINT32	ui32Digit=1;
-	IMG_UINT32	ui32Base=10;
-	IMG_INT		iPos;
-	IMG_CHAR	bc;
-
-	
-	while (szIn[iLen] > 0)
-	{
-		iLen ++;
-	}
-
-	
-	if (iLen == 0)
-	{
-		return (0);
-	}
-
-	
-	iPos=0;
-	while (szIn[iPos] == '0')
-	{
-		iPos++;
-	}
-	if (szIn[iPos] == '\0')
-	{
-		return 0;
-	}
-	if (szIn[iPos] == 'x' || szIn[iPos] == 'X')
-	{
-		ui32Base=16;
-		szIn[iPos]='0';
-	}
-
-	
-	for (iPos = iLen - 1; iPos >= 0; iPos --)
-	{
-		bc = szIn[iPos];
-
-		if ( (bc >= 'a') && (bc <= 'f') && ui32Base == 16)			
-		{
-			bc -= 'a' - 0xa;
-		}
-		else
-		if ( (bc >= 'A') && (bc <= 'F') && ui32Base == 16)			
-		{
-			bc -= 'A' - 0xa;
-		}
-		else
-		if ((bc >= '0') && (bc <= '9'))				
-		{
-			bc -= '0';
-		}
-		else
-			return (0);
-
-		ui32Value += (IMG_UINT32)bc  * ui32Digit;
-
-		ui32Digit = ui32Digit * ui32Base;
-	}
-	return (ui32Value);
-}
-
-
-static IMG_BOOL StreamValid(PDBG_STREAM psStream)
-{
-	PDBG_STREAM	psThis;
-
-	psThis = g_psStreamList;
-
-	while (psThis)
-	{
-		if (psStream && (psThis == psStream) )
-		{
-			return(IMG_TRUE);
-		}
-		else
-		{
-			psThis = psThis->psNext;
-		}
-	}
-
-	return(IMG_FALSE);
-}
-
-
-static IMG_BOOL StreamValidForRead(PDBG_STREAM psStream)
-{
-	if( StreamValid(psStream) &&
-		((psStream->psCtrl->ui32Flags & DEBUG_FLAGS_WRITEONLY) == 0) )
-	{
-		return(IMG_TRUE);
-	}
-
-	return(IMG_FALSE);
-}
-
-static IMG_BOOL StreamValidForWrite(PDBG_STREAM psStream)
-{
-	if( StreamValid(psStream) &&
-		((psStream->psCtrl->ui32Flags & DEBUG_FLAGS_READONLY) == 0) )
-	{
-		return(IMG_TRUE);
-	}
-
-	return(IMG_FALSE);
-}
-
-
-static void Write(PDBG_STREAM psStream,IMG_PUINT8 pui8Data,IMG_UINT32 ui32InBuffSize)
-{
-	
-
-	if (!psStream->bCircularAllowed)
-	{
-		
-	}
-
-	if ((psStream->ui32WPtr + ui32InBuffSize) > psStream->ui32Size)
-	{
-		
-		IMG_UINT32 ui32B1 = psStream->ui32Size - psStream->ui32WPtr;
-		IMG_UINT32 ui32B2 = ui32InBuffSize - ui32B1;
-
-		
-		HostMemCopy((IMG_PVOID)((IMG_UINTPTR_T)psStream->pvBase + psStream->ui32WPtr),
-				(IMG_PVOID) pui8Data,
-				ui32B1);
-
-		
-		HostMemCopy(psStream->pvBase,
-				(IMG_PVOID)(pui8Data + ui32B1),
-				ui32B2);
-
-		
-		psStream->ui32WPtr = ui32B2;
-	}
-	else
-	{	
-		HostMemCopy((IMG_PVOID)((IMG_UINTPTR_T)psStream->pvBase + psStream->ui32WPtr),
-				(IMG_PVOID) pui8Data,
-				ui32InBuffSize);
-
-		psStream->ui32WPtr += ui32InBuffSize;
-
-		if (psStream->ui32WPtr == psStream->ui32Size)
-		{
-			psStream->ui32WPtr = 0;
-		}
-	}
-	psStream->ui32DataWritten += ui32InBuffSize;
-}
-
-
-void MonoOut(IMG_CHAR * pszString,IMG_BOOL bNewLine)
-{
-#if defined (_WIN64)
-	PVR_UNREFERENCED_PARAMETER(pszString);
-	PVR_UNREFERENCED_PARAMETER(bNewLine);
-
-#else
-	IMG_UINT32 	i;
-	IMG_CHAR *	pScreen;
-
-	pScreen = (IMG_CHAR *) DBGDRIV_MONOBASE;
-
-	pScreen += g_ui32Line * 160;
-
-	
-
-	i=0;
-	do
-	{
-		pScreen[g_ui32LOff + (i*2)] = pszString[i];
-		pScreen[g_ui32LOff + (i*2)+1] = 127;
-		i++;
-	}
-	while ((pszString[i] != 0) && (i < 4096));
-
-	g_ui32LOff += i * 2;
-
-	if (bNewLine)
-	{
-		g_ui32LOff = 0;
-		g_ui32Line++;
-	}
-
-	
-
-	if (g_ui32Line == g_ui32MonoLines)
-	{
-		g_ui32Line = g_ui32MonoLines - 1;
-
-		HostMemCopy((IMG_VOID *)DBGDRIV_MONOBASE,(IMG_VOID *)(DBGDRIV_MONOBASE + 160),160 * (g_ui32MonoLines - 1));
-
-		HostMemSet((IMG_VOID *)(DBGDRIV_MONOBASE + (160 * (g_ui32MonoLines - 1))),0,160);
-	}
-#endif	
-}
-
-static IMG_UINT32 WriteExpandingBuffer(PDBG_STREAM psStream,IMG_UINT8 * pui8InBuf,IMG_UINT32 ui32InBuffSize)
-{
-	IMG_UINT ui32Space;
-
-	
-
-	ui32Space = SpaceInStream(psStream);
-
-	
-
-	if ((psStream->psCtrl->ui32OutMode & DEBUG_OUTMODE_STREAMENABLE) == 0)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "WriteExpandingBuffer: buffer %x is disabled", (IMG_UINTPTR_T) psStream));
-		return(0);
-	}
-
-	
-
-	if (psStream->psCtrl->ui32Flags & DEBUG_FLAGS_NO_BUF_EXPANDSION)
-	{
-		
-
-
-		if (ui32Space < 32)
-		{
-			PVR_DPF((PVR_DBG_ERROR, "WriteExpandingBuffer: buffer %x is full and isn't expandable", (IMG_UINTPTR_T) psStream));
-			return(0);
-		}
-	}
-	else
-	{
-		if ((ui32Space < 32) || (ui32Space <= (ui32InBuffSize + 4)))
-		{
-			IMG_UINT32	ui32NewBufSize;
-
-			
-
-			ui32NewBufSize = 2 * psStream->ui32Size;
-
-			PVR_DPF((PVR_DBGDRIV_MESSAGE, "Expanding buffer size = %x, new size = %x",
-					psStream->ui32Size, ui32NewBufSize));
-
-			if (ui32InBuffSize > psStream->ui32Size)
-			{
-				ui32NewBufSize += ui32InBuffSize;
-			}
-
-			
-
-			if (!ExpandStreamBuffer(psStream,ui32NewBufSize))
-			{
-				if (ui32Space < 32)
-				{
-					if(psStream->bCircularAllowed)
-					{
-						return(0);
-					}
-					else
-					{
-						
-						PVR_DPF((PVR_DBG_ERROR, "WriteExpandingBuffer: Unable to expand %x. Out of memory.", (IMG_UINTPTR_T) psStream));
-						InvalidateAllStreams();
-						return (0xFFFFFFFFUL);
-					}
-				}
-			}
-
-			
-
-			ui32Space = SpaceInStream(psStream);
-			PVR_DPF((PVR_DBGDRIV_MESSAGE, "Expanded buffer, free space = %x",
-					ui32Space));
-		}
-	}
-
-	
-
-	if (ui32Space <= (ui32InBuffSize + 4))
-	{
-		ui32InBuffSize = ui32Space - 4;
-	}
-
-	
-
-	Write(psStream,pui8InBuf,ui32InBuffSize);
-
-#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS)
-	if (ui32InBuffSize)
-	{
-		HostSignalEvent(DBG_EVENT_STREAM_DATA);
-	}
-#endif
-	return(ui32InBuffSize);
-}
-
-IMG_VOID * IMG_CALLCONV DBGDrivCreateStream(IMG_CHAR *		pszName,
-								   IMG_UINT32 	ui32CapMode,
-								   IMG_UINT32 	ui32OutMode,
-								   IMG_UINT32	ui32Flags,
-								   IMG_UINT32 	ui32Size)
-{
-	PDBG_STREAM psStream;
-	PDBG_STREAM	psInitStream;
-	PDBG_LASTFRAME_BUFFER	psLFBuffer;
-	PDBG_STREAM_CONTROL psCtrl;
-	IMG_UINT32		ui32Off;
-	IMG_VOID *		pvBase;	
-	static IMG_CHAR pszNameInitSuffix[] = "_Init";
-	IMG_UINT32		ui32OffSuffix;
-
-	
-
-
-	psStream = (PDBG_STREAM) DBGDrivFindStream(pszName, IMG_FALSE);
-
-	if (psStream)
-	{
-		return ((IMG_VOID *) psStream);
-	}
-
-	
-
-	psStream = HostNonPageablePageAlloc(1);
-	psInitStream = HostNonPageablePageAlloc(1);
-	psLFBuffer = HostNonPageablePageAlloc(1);
-	psCtrl = HostNonPageablePageAlloc(1);
-	if	(
-			(!psStream) ||
-			(!psInitStream) ||
-			(!psLFBuffer) ||
-			(!psCtrl)
-		)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"DBGDriv: Couldn't alloc control structs\n\r"));
-		return((IMG_VOID *) 0);
-	}
-
-	
-	if ((ui32Flags & DEBUG_FLAGS_USE_NONPAGED_MEM) != 0)
-	{
-		pvBase = HostNonPageablePageAlloc(ui32Size);
-	}
-	else
-	{
-		pvBase = HostPageablePageAlloc(ui32Size);
-	}
-
-	if (!pvBase)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"DBGDriv: Couldn't alloc Stream buffer\n\r"));
-		HostNonPageablePageFree(psStream);
-		return((IMG_VOID *) 0);
-	}
-
-	
-	psCtrl->ui32Flags = ui32Flags;
-	psCtrl->ui32CapMode = ui32CapMode;
-	psCtrl->ui32OutMode = ui32OutMode;
-	psCtrl->ui32DebugLevel = DEBUG_LEVEL_0;
-	psCtrl->ui32DefaultMode = ui32CapMode;
-	psCtrl->ui32Start = 0;
-	psCtrl->ui32End = 0;
-	psCtrl->ui32Current = 0;
-	psCtrl->ui32SampleRate = 1;
-	psCtrl->bInitPhaseComplete = IMG_FALSE;
-
-	
-
-	psStream->psNext = 0;
-	psStream->pvBase = pvBase;
-	psStream->psCtrl = psCtrl;
-	psStream->ui32Size = ui32Size * 4096UL;
-	psStream->ui32RPtr = 0;
-	psStream->ui32WPtr = 0;
-	psStream->ui32DataWritten = 0;
-	psStream->ui32Marker = 0;
-	psStream->bCircularAllowed = IMG_TRUE;
-	psStream->ui32InitPhaseWOff = 0;
-	
-
-
-	
-	if ((ui32Flags & DEBUG_FLAGS_USE_NONPAGED_MEM) != 0)
-	{
-		pvBase = HostNonPageablePageAlloc(ui32Size);
-	}
-	else
-	{
-		pvBase = HostPageablePageAlloc(ui32Size);
-	}
-
-	if (!pvBase)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"DBGDriv: Couldn't alloc InitStream buffer\n\r"));
-		
-		if ((psStream->psCtrl->ui32Flags & DEBUG_FLAGS_USE_NONPAGED_MEM) != 0)
-		{
-			HostNonPageablePageFree(psStream->pvBase);
-		}
-		else
-		{
-			HostPageablePageFree(psStream->pvBase);
-		}
-		HostNonPageablePageFree(psStream);
-		return((IMG_VOID *) 0);
-	}
-
-	
-	psInitStream->psNext = 0;
-	psInitStream->pvBase = pvBase;
-	psInitStream->psCtrl = psCtrl;
-	psInitStream->ui32Size = ui32Size * 4096UL;
-	psInitStream->ui32RPtr = 0;
-	psInitStream->ui32WPtr = 0;
-	psInitStream->ui32DataWritten = 0;
-	psInitStream->ui32Marker = 0;
-	psInitStream->bCircularAllowed = IMG_FALSE;
-	psInitStream->ui32InitPhaseWOff = 0;
-	
-
-
-	psStream->psInitStream = psInitStream;
-
-	
-	psLFBuffer->psStream = psStream;
-	psLFBuffer->ui32BufLen = 0UL;
-
-	g_bHotkeyMiddump = IMG_FALSE;
-	g_ui32HotkeyMiddumpStart = 0xffffffffUL;
-	g_ui32HotkeyMiddumpEnd = 0xffffffffUL;
-
-	
-
-	ui32Off = 0;
-
-	do
-	{
-		psStream->szName[ui32Off] = pszName[ui32Off];
-		psInitStream->szName[ui32Off] = pszName[ui32Off];
-		ui32Off++;
-	}
-	while ((pszName[ui32Off] != 0) && (ui32Off < (4096UL - sizeof(DBG_STREAM))));
-	psStream->szName[ui32Off] = pszName[ui32Off];	
-
-	
-
-	ui32OffSuffix = 0;
-	do
-	{
-		psInitStream->szName[ui32Off] = pszNameInitSuffix[ui32OffSuffix];
-		ui32Off++;
-		ui32OffSuffix++;
-	}
-	while (	(pszNameInitSuffix[ui32OffSuffix] != 0) &&
-			(ui32Off < (4096UL - sizeof(DBG_STREAM))));
-	psInitStream->szName[ui32Off] = pszNameInitSuffix[ui32OffSuffix];	
-
-	
-
-	psStream->psNext = g_psStreamList;
-	g_psStreamList = psStream;
-
-	psLFBuffer->psNext = g_psLFBufferList;
-	g_psLFBufferList = psLFBuffer;
-
-	AddSIDEntry(psStream);
-	
-	return((IMG_VOID *) psStream);
-}
-
-void IMG_CALLCONV DBGDrivDestroyStream(PDBG_STREAM psStream)
-{
-	PDBG_STREAM	psStreamThis;
-	PDBG_STREAM	psStreamPrev;
-	PDBG_LASTFRAME_BUFFER	psLFBuffer;
-	PDBG_LASTFRAME_BUFFER	psLFThis;
-	PDBG_LASTFRAME_BUFFER	psLFPrev;
-
-	PVR_DPF((PVR_DBG_MESSAGE, "DBGDriv: Destroying stream %s\r\n", psStream->szName ));
-
-	
-
-	if (!StreamValid(psStream))
-	{
-		return;
-	}
-
-	RemoveSIDEntry(psStream);
-	
-	psLFBuffer = FindLFBuf(psStream);
-
-	
-
-	psStreamThis = g_psStreamList;
-	psStreamPrev = 0;
-
-	while (psStreamThis)
-	{
-		if (psStreamThis == psStream)
-		{
-			if (psStreamPrev)
-			{
-				psStreamPrev->psNext = psStreamThis->psNext;
-			}
-			else
-			{
-				g_psStreamList = psStreamThis->psNext;
-			}
-
-			psStreamThis = 0;
-		}
-		else
-		{
-			psStreamPrev = psStreamThis;
-			psStreamThis = psStreamThis->psNext;
-		}
-	}
-
-	psLFThis = g_psLFBufferList;
-	psLFPrev = 0;
-
-	while (psLFThis)
-	{
-		if (psLFThis == psLFBuffer)
-		{
-			if (psLFPrev)
-			{
-				psLFPrev->psNext = psLFThis->psNext;
-			}
-			else
-			{
-				g_psLFBufferList = psLFThis->psNext;
-			}
-
-			psLFThis = 0;
-		}
-		else
-		{
-			psLFPrev = psLFThis;
-			psLFThis = psLFThis->psNext;
-		}
-	}
-	
-
-	if (psStream->psCtrl->ui32CapMode & DEBUG_CAPMODE_HOTKEY)
-	{
-		DeactivateHotKeys();
-	}
-
-	
-
-	if ((psStream->psCtrl->ui32Flags & DEBUG_FLAGS_USE_NONPAGED_MEM) != 0)
-	{
-		HostNonPageablePageFree(psStream->psCtrl);
-		HostNonPageablePageFree(psStream->pvBase);
-		HostNonPageablePageFree(psStream->psInitStream->pvBase);
-	}
-	else
-	{
-		HostNonPageablePageFree(psStream->psCtrl);
-		HostPageablePageFree(psStream->pvBase);
-		HostPageablePageFree(psStream->psInitStream->pvBase);
-	}
-	
-	HostNonPageablePageFree(psStream->psInitStream);
-	HostNonPageablePageFree(psStream);
-	HostNonPageablePageFree(psLFBuffer);
-
-	if (g_psStreamList == 0)
-	{
-		PVR_DPF((PVR_DBG_MESSAGE,"DBGDriv: Stream list now empty" ));
-	}
-
-	return;
-}
-
-IMG_VOID * IMG_CALLCONV DBGDrivFindStream(IMG_CHAR * pszName, IMG_BOOL bResetStream)
-{
-	PDBG_STREAM	psStream;
-	PDBG_STREAM	psThis;
-	IMG_UINT32	ui32Off;
-	IMG_BOOL	bAreSame;
-
-	psStream = 0;
-
-	PVR_DPF((PVR_DBGDRIV_MESSAGE, "PDump client connecting to %s %s",
-			pszName,
-			(bResetStream == IMG_TRUE) ? "with reset" : "no reset"));
-
-	
-
-	for (psThis = g_psStreamList; psThis != IMG_NULL; psThis = psThis->psNext)
-	{
-		bAreSame = IMG_TRUE;
-		ui32Off = 0;
-
-		if (strlen(psThis->szName) == strlen(pszName))
-		{
-			while ((psThis->szName[ui32Off] != 0) && (pszName[ui32Off] != 0) && (ui32Off < 128) && bAreSame)
-			{
-				if (psThis->szName[ui32Off] != pszName[ui32Off])
-				{
-					bAreSame = IMG_FALSE;
-				}
-
-				ui32Off++;
-			}
-		}
-		else
-		{
-			bAreSame = IMG_FALSE;
-		}
-
-		if (bAreSame)
-		{
-			psStream = psThis;
-			break;
-		}
-	}
-
-	if(bResetStream && psStream)
-	{
-		static IMG_CHAR szComment[] = "-- Init phase terminated\r\n";
-		psStream->psInitStream->ui32RPtr = 0;
-		psStream->ui32RPtr = 0;
-		psStream->ui32WPtr = 0;
-		psStream->ui32DataWritten = psStream->psInitStream->ui32DataWritten;
-		if (psStream->psCtrl->bInitPhaseComplete == IMG_FALSE)
-		{
-			if (psStream->psCtrl->ui32Flags & DEBUG_FLAGS_TEXTSTREAM)
-			{
-				DBGDrivWrite2(psStream, (IMG_UINT8 *)szComment, sizeof(szComment) - 1, 0x01);
-			}
-			psStream->psCtrl->bInitPhaseComplete = IMG_TRUE;
-		}
-
-		{
-			
-			
-			psStream->psInitStream->ui32InitPhaseWOff = psStream->psInitStream->ui32WPtr;
-			PVR_DPF((PVR_DBGDRIV_MESSAGE, "Set %s client marker bo %x, total bw %x",
-					psStream->szName,
-					psStream->psInitStream->ui32InitPhaseWOff,
-					psStream->psInitStream->ui32DataWritten ));
-		}
-	}
-
-	return((IMG_VOID *) psStream);
-}
-
-static void IMG_CALLCONV DBGDrivInvalidateStream(PDBG_STREAM psStream)
-{
-	IMG_CHAR pszErrorMsg[] = "**OUTOFMEM\n";
-	IMG_UINT32 ui32Space;
-	IMG_UINT32 ui32Off = 0;
-	IMG_UINT32 ui32WPtr = psStream->ui32WPtr;
-	IMG_PUINT8 pui8Buffer = (IMG_UINT8 *) psStream->pvBase;
-	
-	PVR_DPF((PVR_DBG_ERROR, "DBGDrivInvalidateStream: An error occurred for stream %s\r\n", psStream->szName ));
-
-	
-
-	
-
-
-
-
-	
-	ui32Space = SpaceInStream(psStream);
-
-	
-	if(ui32Space > 0)
-	{
-		ui32Space--;
-	}
-	else
-	{
-		PVR_DPF((PVR_DBG_ERROR, "DBGDrivInvalidateStream: Buffer full."));
-	}
-
-	while((pszErrorMsg[ui32Off] != 0) && (ui32Off < ui32Space))
-	{
-		pui8Buffer[ui32WPtr] = (IMG_UINT8)pszErrorMsg[ui32Off];
-		ui32Off++;
-		ui32WPtr++;
-	}
-	pui8Buffer[ui32WPtr++] = '\0';
-	psStream->ui32WPtr = ui32WPtr;
-
-	
-	psStream->psCtrl->ui32Flags |= DEBUG_FLAGS_READONLY;
-}
-
-static IMG_VOID InvalidateAllStreams(IMG_VOID)
-{
-	PDBG_STREAM psStream = g_psStreamList;
-	while (psStream != IMG_NULL)
-	{
-		DBGDrivInvalidateStream(psStream);
-		psStream = psStream->psNext;
-	}
-	return;
-}
-
-
-
-IMG_UINT32 IMG_CALLCONV DBGDrivWriteStringCM(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level)
-{
-	
-
-	if (!StreamValidForWrite(psStream))
-	{
-		return(0xFFFFFFFFUL);
-	}
-
-	
-
-	if (psStream->psCtrl->ui32CapMode & DEBUG_CAPMODE_FRAMED)
-	{
-		if	((psStream->psCtrl->ui32Flags & DEBUG_FLAGS_ENABLESAMPLE) == 0)
-		{
-			return(0);
-		}
-	}
-	else
-	{
-		if (psStream->psCtrl->ui32CapMode == DEBUG_CAPMODE_HOTKEY)
-		{
-			if ((psStream->psCtrl->ui32Current != g_ui32HotKeyFrame) || (g_bHotKeyPressed == IMG_FALSE))
-			{
-				return(0);
-			}
-		}
-	}
-
-	return(DBGDrivWriteString(psStream,pszString,ui32Level));
-
-}
-
-IMG_UINT32 IMG_CALLCONV DBGDrivWriteString(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level)
-{
-	IMG_UINT32	ui32Len;
-	IMG_UINT32	ui32Space;
-	IMG_UINT32	ui32WPtr;
-	IMG_UINT8 *	pui8Buffer;
-
-	
-
-	if (!StreamValidForWrite(psStream))
-	{
-		return(0xFFFFFFFFUL);
-	}
-
-	
-
-	if ((psStream->psCtrl->ui32DebugLevel & ui32Level) == 0)
-	{
-		return(0xFFFFFFFFUL);
-	}
-
-	
-
-
-	if ((psStream->psCtrl->ui32OutMode & DEBUG_OUTMODE_ASYNC) == 0)
-	{
-		if (psStream->psCtrl->ui32OutMode & DEBUG_OUTMODE_STANDARDDBG)
-		{
-			PVR_DPF((PVR_DBG_MESSAGE,"%s: %s\r\n",psStream->szName, pszString));
-		}
-
-		
-
-		if (psStream->psCtrl->ui32OutMode & DEBUG_OUTMODE_MONO)
-		{
-			MonoOut(psStream->szName,IMG_FALSE);
-			MonoOut(": ",IMG_FALSE);
-			MonoOut(pszString,IMG_TRUE);
-		}
-	}
-
-	
-
-	if	(
-			!(
-				((psStream->psCtrl->ui32OutMode & DEBUG_OUTMODE_STREAMENABLE) != 0) ||
-				((psStream->psCtrl->ui32OutMode & DEBUG_OUTMODE_ASYNC) != 0)
-			)
-		)
-	{
-		return(0xFFFFFFFFUL);
-	}
-
-	
-
-	ui32Space=SpaceInStream(psStream);
-
-	
-	if(ui32Space > 0)
-	{
-		ui32Space--;
-	}
-
-	ui32Len		= 0;
-	ui32WPtr	= psStream->ui32WPtr;
-	pui8Buffer	= (IMG_UINT8 *) psStream->pvBase;
-
-	while((pszString[ui32Len] != 0) && (ui32Len < ui32Space))
-	{
-		pui8Buffer[ui32WPtr] = (IMG_UINT8)pszString[ui32Len];
-		ui32Len++;
-		ui32WPtr++;
-		if (ui32WPtr == psStream->ui32Size)
-		{
-			ui32WPtr = 0;
-		}
-	}
-
-	if (ui32Len < ui32Space)
-	{
-		
-		pui8Buffer[ui32WPtr] = (IMG_UINT8)pszString[ui32Len];
-		ui32Len++;
-		ui32WPtr++;
-		if (ui32WPtr == psStream->ui32Size)
-		{
-			ui32WPtr = 0;
-		}
-
-		
-		psStream->ui32WPtr = ui32WPtr;
-		psStream->ui32DataWritten+= ui32Len;
-	} else
-	{
-		ui32Len = 0;
-	}
-
-#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS)
-	if (ui32Len)
-	{
-		HostSignalEvent(DBG_EVENT_STREAM_DATA);
-	}
-#endif
-
-	return(ui32Len);
-}
-
-IMG_UINT32 IMG_CALLCONV DBGDrivReadString(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Limit)
-{
-	IMG_UINT32				ui32OutLen;
-	IMG_UINT32				ui32Len;
-	IMG_UINT32				ui32Offset;
-	IMG_UINT8				*pui8Buff;
-
-	
-
-	if (!StreamValidForRead(psStream))
-	{
-		return(0);
-	}
-
-	
-
-	pui8Buff = (IMG_UINT8 *)psStream->pvBase;
-	ui32Offset = psStream->ui32RPtr;
-
-	if (psStream->ui32RPtr == psStream->ui32WPtr)
-	{
-		return(0);
-	}
-
-	
-
-	ui32Len = 0;
-	while((pui8Buff[ui32Offset] != 0) && (ui32Offset != psStream->ui32WPtr))
-	{
-		ui32Offset++;
-		ui32Len++;
-
-		
-
-		if (ui32Offset == psStream->ui32Size)
-		{
-			ui32Offset = 0;
-		}
-	}
-
-	ui32OutLen = ui32Len + 1;
-
-	
-
-	if (ui32Len > ui32Limit)
-	{
-		return(0);
-	}
-
-	
-
-	ui32Offset = psStream->ui32RPtr;
-	ui32Len = 0;
-
-	while ((pui8Buff[ui32Offset] != 0) && (ui32Len < ui32Limit))
-	{
-		pszString[ui32Len] = (IMG_CHAR)pui8Buff[ui32Offset];
-		ui32Offset++;
-		ui32Len++;
-
-		
-
-		if (ui32Offset == psStream->ui32Size)
-		{
-			ui32Offset = 0;
-		}
-	}
-
-	pszString[ui32Len] = (IMG_CHAR)pui8Buff[ui32Offset];
-
-	psStream->ui32RPtr = ui32Offset + 1;
-
-	if (psStream->ui32RPtr == psStream->ui32Size)
-	{
-		psStream->ui32RPtr = 0;
-	}
-
-	return(ui32OutLen);
-}
-
-IMG_UINT32 IMG_CALLCONV DBGDrivWrite(PDBG_STREAM psMainStream,IMG_UINT8 * pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level)
-{
-	IMG_UINT32				ui32Space;
-	DBG_STREAM *psStream;
-
-	
-
-	if (!StreamValidForWrite(psMainStream))
-	{
-		return(0xFFFFFFFFUL);
-	}
-
-	
-
-	if ((psMainStream->psCtrl->ui32DebugLevel & ui32Level) == 0)
-	{
-		return(0xFFFFFFFFUL);
-	}
-
-	
-
-	if (psMainStream->psCtrl->ui32CapMode & DEBUG_CAPMODE_FRAMED)
-	{
-		if	((psMainStream->psCtrl->ui32Flags & DEBUG_FLAGS_ENABLESAMPLE) == 0)
-		{
-			
-			return(ui32InBuffSize);
-		}
-	}
-	else if (psMainStream->psCtrl->ui32CapMode == DEBUG_CAPMODE_HOTKEY)
-	{
-		if ((psMainStream->psCtrl->ui32Current != g_ui32HotKeyFrame) || (g_bHotKeyPressed == IMG_FALSE))
-		{
-			
-			return(ui32InBuffSize);
-		}
-	}
-
-	if(psMainStream->psCtrl->bInitPhaseComplete)
-	{
-		psStream = psMainStream;
-	}
-	else
-	{
-		psStream = psMainStream->psInitStream;
-	}
-
-	
-
-	ui32Space=SpaceInStream(psStream);
-
-	PVR_DPF((PVR_DBGDRIV_MESSAGE, "Recv %d b for %s: Roff = %x, WOff = %x",
-			ui32InBuffSize,
-			psStream->szName,
-			psStream->ui32RPtr,
-			psStream->ui32WPtr));
-
-	
-
-	if ((psStream->psCtrl->ui32OutMode & DEBUG_OUTMODE_STREAMENABLE) == 0)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "DBGDrivWrite: buffer %x is disabled", (IMG_UINTPTR_T) psStream));
-		return(0);
-	}
-
-	if (ui32Space < 8)
-	{
-		PVR_DPF((PVR_DBG_ERROR, "DBGDrivWrite: buffer %x is full", (IMG_UINTPTR_T) psStream));
-		return(0);
-	}
-
-	
-
-	if (ui32Space <= (ui32InBuffSize + 4))
-	{
-		ui32InBuffSize = ui32Space - 8;
-	}
-
-	
-
-	Write(psStream,(IMG_UINT8 *) &ui32InBuffSize,4);
-	Write(psStream,pui8InBuf,ui32InBuffSize);
-
-#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS)
-	if (ui32InBuffSize)
-	{
-		HostSignalEvent(DBG_EVENT_STREAM_DATA);
-	}
-#endif
-	return(ui32InBuffSize);
-}
-
-IMG_UINT32 IMG_CALLCONV DBGDrivWriteCM(PDBG_STREAM psStream,IMG_UINT8 * pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level)
-{
-	
-
-	if (!StreamValidForWrite(psStream))
-	{
-		return(0xFFFFFFFFUL);
-	}
-
-	
-
-	if (psStream->psCtrl->ui32CapMode & DEBUG_CAPMODE_FRAMED)
-	{
-		if	((psStream->psCtrl->ui32Flags & DEBUG_FLAGS_ENABLESAMPLE) == 0)
-		{
-			
-			return(ui32InBuffSize);
-		}
-	}
-	else
-	{
-		if (psStream->psCtrl->ui32CapMode == DEBUG_CAPMODE_HOTKEY)
-		{
-			if ((psStream->psCtrl->ui32Current != g_ui32HotKeyFrame) || (g_bHotKeyPressed == IMG_FALSE))
-			{
-				
-				return(ui32InBuffSize);
-			}
-		}
-	}
-
-	return(DBGDrivWrite2(psStream,pui8InBuf,ui32InBuffSize,ui32Level));
-}
-
-
-static IMG_UINT32 DBGDrivWritePersist(PDBG_STREAM psMainStream,IMG_UINT8 * pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level)
-{
-	DBG_STREAM	*psStream;
-	PVR_UNREFERENCED_PARAMETER(ui32Level);
-
-	
-
-	if (!StreamValidForWrite(psMainStream))
-	{
-		return(0xFFFFFFFFUL);
-	}
-
-	
-	psStream = psMainStream->psInitStream;
-	if(psStream->bCircularAllowed == IMG_TRUE)
-	{
-		PVR_DPF((PVR_DBG_WARNING, "DBGDrivWritePersist: Init phase is a circular buffer, some data may be lost"));
-	}
-
-	PVR_DPF((PVR_DBGDRIV_MESSAGE, "Append %x b to %s: Roff = %x, WOff = %x [bw = %x]",
-			ui32InBuffSize,
-			psStream->szName,
-			psStream->ui32RPtr,
-			psStream->ui32WPtr,
-			psStream->ui32DataWritten));
-
-	return( WriteExpandingBuffer(psStream, pui8InBuf, ui32InBuffSize) );
-}
-
-IMG_UINT32 IMG_CALLCONV DBGDrivWrite2(PDBG_STREAM psMainStream,IMG_UINT8 * pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level)
-{
-	DBG_STREAM	*psStream;
-
-	
-
-	if (!StreamValidForWrite(psMainStream))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "DBGDrivWrite2: stream not valid"));
-		return(0xFFFFFFFFUL);
-	}
-
-	
-
-	if ((psMainStream->psCtrl->ui32DebugLevel & ui32Level) == 0)
-	{
-		return(0);
-	}
-
-	if(psMainStream->psCtrl->bInitPhaseComplete)
-	{
-		psStream = psMainStream;
-	}
-	else
-	{
-		psStream = psMainStream->psInitStream;
-	}
-
-	PVR_DPF((PVR_DBGDRIV_MESSAGE, "Recv(exp) %d b for %s: Roff = %x, WOff = %x",
-			ui32InBuffSize,
-			psStream->szName,
-			psStream->ui32RPtr,
-			psStream->ui32WPtr));
-
-	return( WriteExpandingBuffer(psStream, pui8InBuf, ui32InBuffSize) );
-}
-
-IMG_UINT32 IMG_CALLCONV DBGDrivRead(PDBG_STREAM psMainStream, IMG_BOOL bReadInitBuffer, IMG_UINT32 ui32OutBuffSize,IMG_UINT8 * pui8OutBuf)
-{
-	IMG_UINT32 ui32Data;
-	DBG_STREAM *psStream;
-
-	
-
-	if (!StreamValidForRead(psMainStream))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "DBGDrivRead: buffer %x is invalid", (IMG_UINTPTR_T) psMainStream));
-		return(0);
-	}
-
-	if(bReadInitBuffer)
-	{
-		psStream = psMainStream->psInitStream;
-	}
-	else
-	{
-		psStream = psMainStream;
-	}
-
-	
-	if (psStream->ui32RPtr == psStream->ui32WPtr ||
-		((psStream->ui32InitPhaseWOff > 0) &&
-		 (psStream->ui32RPtr >= psStream->ui32InitPhaseWOff)) )
-	{
-		return(0);
-	}
-
-	
-
-	if (psStream->ui32RPtr <= psStream->ui32WPtr)
-	{
-		ui32Data = psStream->ui32WPtr - psStream->ui32RPtr;
-	}
-	else
-	{
-		ui32Data = psStream->ui32WPtr + (psStream->ui32Size - psStream->ui32RPtr);
-	}
-
-	
-
-	if ((psStream->ui32InitPhaseWOff > 0) &&
-		(psStream->ui32InitPhaseWOff < psStream->ui32WPtr))
-	{
-		ui32Data = psStream->ui32InitPhaseWOff - psStream->ui32RPtr;
-	}
-
-	
-
-	if (ui32Data > ui32OutBuffSize)
-	{
-		ui32Data = ui32OutBuffSize;
-	}
-
-	PVR_DPF((PVR_DBGDRIV_MESSAGE, "Send %x b from %s: Roff = %x, WOff = %x",
-			ui32Data,
-			psStream->szName,
-			psStream->ui32RPtr,
-			psStream->ui32WPtr));
-
-	
-
-	if ((psStream->ui32RPtr + ui32Data) > psStream->ui32Size)
-	{	
-		IMG_UINT32 ui32B1 = psStream->ui32Size - psStream->ui32RPtr;
-		IMG_UINT32 ui32B2 = ui32Data - ui32B1;
-
-		
-		HostMemCopy((IMG_VOID *) pui8OutBuf,
-				(IMG_VOID *)((IMG_UINTPTR_T)psStream->pvBase + psStream->ui32RPtr),
-				ui32B1);
-
-		
-		HostMemCopy((IMG_VOID *)(pui8OutBuf + ui32B1),
-				psStream->pvBase,
-				ui32B2);
-
-		
-		psStream->ui32RPtr = ui32B2;
-	}
-	else
-	{	
-		HostMemCopy((IMG_VOID *) pui8OutBuf,
-				(IMG_VOID *)((IMG_UINTPTR_T)psStream->pvBase + psStream->ui32RPtr),
-				ui32Data);
-
-		
-		psStream->ui32RPtr += ui32Data;
-
-		
-		if (psStream->ui32RPtr == psStream->ui32Size)
-		{
-			psStream->ui32RPtr = 0;
-		}
-	}
-
-	return(ui32Data);
-}
-
-void IMG_CALLCONV DBGDrivSetCaptureMode(PDBG_STREAM psStream,IMG_UINT32 ui32Mode,IMG_UINT32 ui32Start,IMG_UINT32 ui32End,IMG_UINT32 ui32SampleRate)
-{
-	
-
-	if (!StreamValid(psStream))
-	{
-		return;
-	}
-
-	psStream->psCtrl->ui32CapMode = ui32Mode;
-	psStream->psCtrl->ui32DefaultMode = ui32Mode;
-	psStream->psCtrl->ui32Start = ui32Start;
-	psStream->psCtrl->ui32End = ui32End;
-	psStream->psCtrl->ui32SampleRate = ui32SampleRate;
-
-	
-
-	if (psStream->psCtrl->ui32CapMode & DEBUG_CAPMODE_HOTKEY)
-	{
-		ActivateHotKeys(psStream);
-	}
-}
-
-void IMG_CALLCONV DBGDrivSetOutputMode(PDBG_STREAM psStream,IMG_UINT32 ui32OutMode)
-{
-	
-
-	if (!StreamValid(psStream))
-	{
-		return;
-	}
-
-	psStream->psCtrl->ui32OutMode = ui32OutMode;
-}
-
-void IMG_CALLCONV DBGDrivSetDebugLevel(PDBG_STREAM psStream,IMG_UINT32 ui32DebugLevel)
-{
-	
-
-	if (!StreamValid(psStream))
-	{
-		return;
-	}
-
-	psStream->psCtrl->ui32DebugLevel = ui32DebugLevel;
-}
-
-void IMG_CALLCONV DBGDrivSetFrame(PDBG_STREAM psStream,IMG_UINT32 ui32Frame)
-{
-	
-
-	if (!StreamValid(psStream))
-	{
-		return;
-	}
-
-	psStream->psCtrl->ui32Current = ui32Frame;
-
-	if ((ui32Frame >= psStream->psCtrl->ui32Start) &&
-		(ui32Frame <= psStream->psCtrl->ui32End) &&
-		(((ui32Frame - psStream->psCtrl->ui32Start) % psStream->psCtrl->ui32SampleRate) == 0))
-	{
-		psStream->psCtrl->ui32Flags |= DEBUG_FLAGS_ENABLESAMPLE;
-	}
-	else
-	{
-		psStream->psCtrl->ui32Flags &= ~DEBUG_FLAGS_ENABLESAMPLE;
-	}
-
-	if (g_bHotkeyMiddump)
-	{
-		if ((ui32Frame >= g_ui32HotkeyMiddumpStart) &&
-			(ui32Frame <= g_ui32HotkeyMiddumpEnd) &&
-			(((ui32Frame - g_ui32HotkeyMiddumpStart) % psStream->psCtrl->ui32SampleRate) == 0))
-		{
-			psStream->psCtrl->ui32Flags |= DEBUG_FLAGS_ENABLESAMPLE;
-		}
-		else
-		{
-			psStream->psCtrl->ui32Flags &= ~DEBUG_FLAGS_ENABLESAMPLE;
-			if (psStream->psCtrl->ui32Current > g_ui32HotkeyMiddumpEnd)
-			{
-				g_bHotkeyMiddump = IMG_FALSE;
-			}
-		}
-	}
-
-	
-	if (g_bHotKeyRegistered)
-	{
-		g_bHotKeyRegistered = IMG_FALSE;
-
-		PVR_DPF((PVR_DBG_MESSAGE,"Hotkey pressed (%p)!\n",psStream));
-
-		if (!g_bHotKeyPressed)
-		{
-			
-
-			g_ui32HotKeyFrame = psStream->psCtrl->ui32Current + 2;
-
-			
-
-			g_bHotKeyPressed = IMG_TRUE;
-		}
-
-		
-
-		if (((psStream->psCtrl->ui32CapMode & DEBUG_CAPMODE_FRAMED) != 0) && 
-			((psStream->psCtrl->ui32CapMode & DEBUG_CAPMODE_HOTKEY) != 0))
-		{
-			if (!g_bHotkeyMiddump)
-			{
-				
-				g_ui32HotkeyMiddumpStart = g_ui32HotKeyFrame + 1;
-				g_ui32HotkeyMiddumpEnd = 0xffffffff;
-				g_bHotkeyMiddump = IMG_TRUE;
-				PVR_DPF((PVR_DBG_MESSAGE,"Sampling every %d frame(s)\n", psStream->psCtrl->ui32SampleRate));
-			}
-			else
-			{
-				
-				g_ui32HotkeyMiddumpEnd = g_ui32HotKeyFrame;
-				PVR_DPF((PVR_DBG_MESSAGE,"Turning off sampling\n"));
-			}
-		}
-
-	}
-
-	
-
-	if (psStream->psCtrl->ui32Current > g_ui32HotKeyFrame)
-	{
-		g_bHotKeyPressed = IMG_FALSE;
-	}
-}
-
-IMG_UINT32 IMG_CALLCONV DBGDrivGetFrame(PDBG_STREAM psStream)
-{
-	
-
-	if (!StreamValid(psStream))
-	{
-		return(0);
-	}
-
-	return(psStream->psCtrl->ui32Current);
-}
-
-IMG_BOOL IMG_CALLCONV DBGDrivIsLastCaptureFrame(PDBG_STREAM psStream)
-{
-	IMG_UINT32	ui32NextFrame;
-
-	
-
-	if (!StreamValid(psStream))
-	{
-		return IMG_FALSE;
-	}
-
-	if (psStream->psCtrl->ui32CapMode & DEBUG_CAPMODE_FRAMED)
-	{
-		ui32NextFrame = psStream->psCtrl->ui32Current + psStream->psCtrl->ui32SampleRate;
-		if (ui32NextFrame > psStream->psCtrl->ui32End)
-		{
-			return IMG_TRUE;
-		}
-	}
-	return IMG_FALSE;
-}
-
-IMG_BOOL IMG_CALLCONV DBGDrivIsCaptureFrame(PDBG_STREAM psStream, IMG_BOOL bCheckPreviousFrame)
-{
-	IMG_UINT32 ui32FrameShift = bCheckPreviousFrame ? 1UL : 0UL;
-
-	
-
-	if (!StreamValid(psStream))
-	{
-		return IMG_FALSE;
-	}
-
-	if (psStream->psCtrl->ui32CapMode & DEBUG_CAPMODE_FRAMED)
-	{
-		
-		if (g_bHotkeyMiddump)
-		{
-			if ((psStream->psCtrl->ui32Current >= (g_ui32HotkeyMiddumpStart - ui32FrameShift)) &&
-				(psStream->psCtrl->ui32Current <= (g_ui32HotkeyMiddumpEnd - ui32FrameShift)) &&
-				((((psStream->psCtrl->ui32Current + ui32FrameShift) - g_ui32HotkeyMiddumpStart) % psStream->psCtrl->ui32SampleRate) == 0))
-			{
-				return IMG_TRUE;
-			}
-		}
-		else
-		{
-			if ((psStream->psCtrl->ui32Current >= (psStream->psCtrl->ui32Start - ui32FrameShift)) &&
-				(psStream->psCtrl->ui32Current <= (psStream->psCtrl->ui32End - ui32FrameShift)) &&
-				((((psStream->psCtrl->ui32Current + ui32FrameShift) - psStream->psCtrl->ui32Start) % psStream->psCtrl->ui32SampleRate) == 0))
-			{
-				return IMG_TRUE;
-			}
-		}
-	}
-	else if (psStream->psCtrl->ui32CapMode == DEBUG_CAPMODE_HOTKEY)
-	{
-		if ((psStream->psCtrl->ui32Current == (g_ui32HotKeyFrame-ui32FrameShift)) && (g_bHotKeyPressed))
-		{
-			return IMG_TRUE;
-		}
-	}
-	return IMG_FALSE;
-}
-
-void IMG_CALLCONV DBGDrivOverrideMode(PDBG_STREAM psStream,IMG_UINT32 ui32Mode)
-{
-	
-
-	if (!StreamValid(psStream))
-	{
-		return;
-	}
-
-	psStream->psCtrl->ui32CapMode = ui32Mode;
-}
-
-void IMG_CALLCONV DBGDrivDefaultMode(PDBG_STREAM psStream)
-{
-	
-
-	if (!StreamValid(psStream))
-	{
-		return;
-	}
-
-	psStream->psCtrl->ui32CapMode = psStream->psCtrl->ui32DefaultMode;
-}
-
-IMG_VOID IMG_CALLCONV DBGDrivSetClientMarker(PDBG_STREAM psStream, IMG_UINT32 ui32Marker)
-{
-	
-
-	if (!StreamValid(psStream))
-	{
-		return;
-	}
-
-	psStream->ui32InitPhaseWOff = ui32Marker;
-}
-
-void IMG_CALLCONV DBGDrivSetMarker(PDBG_STREAM psStream, IMG_UINT32 ui32Marker)
-{
-	
-
-	if (!StreamValid(psStream))
-	{
-		return;
-	}
-
-	psStream->ui32Marker = ui32Marker;
-}
-
-IMG_UINT32 IMG_CALLCONV DBGDrivGetMarker(PDBG_STREAM psStream)
-{
-	
-
-	if (!StreamValid(psStream))
-	{
-		return 0;
-	}
-
-	return psStream->ui32Marker;
-}
-
-
-IMG_UINT32 IMG_CALLCONV DBGDrivGetStreamOffset(PDBG_STREAM psMainStream)
-{
-	PDBG_STREAM psStream;
-
-	
-
-	if (!StreamValid(psMainStream))
-	{
-		return 0;
-	}
-
-	if(psMainStream->psCtrl->bInitPhaseComplete)
-	{
-		psStream = psMainStream;
-	}
-	else
-	{
-		psStream = psMainStream->psInitStream;
-	}
-
-	return psStream->ui32DataWritten;
-}
-
-IMG_VOID IMG_CALLCONV DBGDrivSetStreamOffset(PDBG_STREAM psMainStream, IMG_UINT32 ui32StreamOffset)
-{
-	PDBG_STREAM psStream;
-
-	
-
-	if (!StreamValid(psMainStream))
-	{
-		return;
-	}
-
-	if(psMainStream->psCtrl->bInitPhaseComplete)
-	{
-		psStream = psMainStream;
-	}
-	else
-	{
-		psStream = psMainStream->psInitStream;
-	}
-
-	PVR_DPF((PVR_DBGDRIV_MESSAGE, "DBGDrivSetStreamOffset: %s set to %x b",
-			psStream->szName,
-			ui32StreamOffset));
-	psStream->ui32DataWritten = ui32StreamOffset;
-}
-
-IMG_PVOID IMG_CALLCONV DBGDrivGetServiceTable(IMG_VOID)
-{
-	return((IMG_PVOID)&g_sDBGKMServices);
-}
-
-IMG_UINT32 IMG_CALLCONV DBGDrivWriteLF(PDBG_STREAM psStream, IMG_UINT8 * pui8InBuf, IMG_UINT32 ui32InBuffSize, IMG_UINT32 ui32Level, IMG_UINT32 ui32Flags)
-{
-	PDBG_LASTFRAME_BUFFER	psLFBuffer;
-
-	
-
-	if (!StreamValidForWrite(psStream))
-	{
-		return(0xFFFFFFFFUL);
-	}
-
-	
-
-	if ((psStream->psCtrl->ui32DebugLevel & ui32Level) == 0)
-	{
-		return(0xFFFFFFFFUL);
-	}
-
-	
-
-	if ((psStream->psCtrl->ui32CapMode & DEBUG_CAPMODE_FRAMED) != 0)
-	{
-		if	((psStream->psCtrl->ui32Flags & DEBUG_FLAGS_ENABLESAMPLE) == 0)
-		{
-			
-			return(ui32InBuffSize);
-		}
-	}
-	else if (psStream->psCtrl->ui32CapMode == DEBUG_CAPMODE_HOTKEY)
-	{
-		if ((psStream->psCtrl->ui32Current != g_ui32HotKeyFrame) || (g_bHotKeyPressed == IMG_FALSE))
-		{
-			
-			return(ui32InBuffSize);
-		}
-	}
-
-	psLFBuffer = FindLFBuf(psStream);
-
-	if (ui32Flags & WRITELF_FLAGS_RESETBUF)
-	{
-		
-
-		ui32InBuffSize = (ui32InBuffSize > LAST_FRAME_BUF_SIZE) ? LAST_FRAME_BUF_SIZE : ui32InBuffSize;
-		HostMemCopy((IMG_VOID *)psLFBuffer->ui8Buffer, (IMG_VOID *)pui8InBuf, ui32InBuffSize);
-		psLFBuffer->ui32BufLen = ui32InBuffSize;
-	}
-	else
-	{
-		
-
-		ui32InBuffSize = ((psLFBuffer->ui32BufLen + ui32InBuffSize) > LAST_FRAME_BUF_SIZE) ? (LAST_FRAME_BUF_SIZE - psLFBuffer->ui32BufLen) : ui32InBuffSize;
-		HostMemCopy((IMG_VOID *)(&psLFBuffer->ui8Buffer[psLFBuffer->ui32BufLen]), (IMG_VOID *)pui8InBuf, ui32InBuffSize);
-		psLFBuffer->ui32BufLen += ui32InBuffSize;
-	}
-
-	return(ui32InBuffSize);
-}
-
-IMG_UINT32 IMG_CALLCONV DBGDrivReadLF(PDBG_STREAM psStream, IMG_UINT32 ui32OutBuffSize, IMG_UINT8 * pui8OutBuf)
-{
-	PDBG_LASTFRAME_BUFFER	psLFBuffer;
-	IMG_UINT32	ui32Data;
-
-	
-
-	if (!StreamValidForRead(psStream))
-	{
-		return(0);
-	}
-
-	psLFBuffer = FindLFBuf(psStream);
-
-	
-
-	ui32Data = (ui32OutBuffSize < psLFBuffer->ui32BufLen) ? ui32OutBuffSize : psLFBuffer->ui32BufLen;
-
-	
-
-	HostMemCopy((IMG_VOID *)pui8OutBuf, (IMG_VOID *)psLFBuffer->ui8Buffer, ui32Data);
-
-	return ui32Data;
-}
-
-IMG_VOID IMG_CALLCONV DBGDrivStartInitPhase(PDBG_STREAM psStream)
-{
-	psStream->psCtrl->bInitPhaseComplete = IMG_FALSE;
-}
-
-IMG_VOID IMG_CALLCONV DBGDrivStopInitPhase(PDBG_STREAM psStream)
-{
-	psStream->psCtrl->bInitPhaseComplete = IMG_TRUE;
-}
-
-#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS)
-IMG_VOID IMG_CALLCONV DBGDrivWaitForEvent(DBG_EVENT eEvent)
-{
-	HostWaitForEvent(eEvent);
-}
-#endif
-
-IMG_BOOL ExpandStreamBuffer(PDBG_STREAM psStream, IMG_UINT32 ui32NewSize)
-{
-	IMG_VOID *	pvNewBuf;
-	IMG_UINT32	ui32NewSizeInPages;
-	IMG_UINT32	ui32NewWOffset;
-	IMG_UINT32	ui32NewROffset;
-	IMG_UINT32	ui32SpaceInOldBuf;
-
-	
-
-	if (psStream->ui32Size >= ui32NewSize)
-	{
-		return IMG_FALSE;
-	}
-
-	
-
-	ui32SpaceInOldBuf = SpaceInStream(psStream);
-
-	
-
-	ui32NewSizeInPages = ((ui32NewSize + 0xfffUL) & ~0xfffUL) / 4096UL;
-
-	if ((psStream->psCtrl->ui32Flags & DEBUG_FLAGS_USE_NONPAGED_MEM) != 0)
-	{
-		pvNewBuf = HostNonPageablePageAlloc(ui32NewSizeInPages);
-	}
-	else
-	{
-		pvNewBuf = HostPageablePageAlloc(ui32NewSizeInPages);
-	}
-
-	if (pvNewBuf == IMG_NULL)
-	{
-		return IMG_FALSE;
-	}
-
-	if(psStream->bCircularAllowed)
-	{
-		
-
-
-		if (psStream->ui32RPtr <= psStream->ui32WPtr)
-		{
-			
-
-		HostMemCopy(pvNewBuf,
-					(IMG_VOID *)((IMG_UINTPTR_T)psStream->pvBase + psStream->ui32RPtr),
-					psStream->ui32WPtr - psStream->ui32RPtr);
-		}
-		else
-		{
-			IMG_UINT32	ui32FirstCopySize;
-	
-			
-
-			ui32FirstCopySize = psStream->ui32Size - psStream->ui32RPtr;
-	
-			HostMemCopy(pvNewBuf,
-					(IMG_VOID *)((IMG_UINTPTR_T)psStream->pvBase + psStream->ui32RPtr),
-					ui32FirstCopySize);
-	
-			
-
-			HostMemCopy((IMG_VOID *)((IMG_UINTPTR_T)pvNewBuf + ui32FirstCopySize),
-					(IMG_VOID *)(IMG_PBYTE)psStream->pvBase,
-					psStream->ui32WPtr);
-		}
-		ui32NewROffset = 0;
-	}
-	else
-	{
-		
-		HostMemCopy(pvNewBuf, psStream->pvBase,	psStream->ui32WPtr);
-		ui32NewROffset = psStream->ui32RPtr;
-	}
-
-	
-
-                                                        
-	ui32NewWOffset = psStream->ui32Size - ui32SpaceInOldBuf;
-
-	
-
-	if ((psStream->psCtrl->ui32Flags & DEBUG_FLAGS_USE_NONPAGED_MEM) != 0)
-	{
-		HostNonPageablePageFree(psStream->pvBase);
-	}
-	else
-	{
-		HostPageablePageFree(psStream->pvBase);
-	}
-
-	
-
-	psStream->pvBase = pvNewBuf;
-	psStream->ui32RPtr = ui32NewROffset;
-	psStream->ui32WPtr = ui32NewWOffset;
-	psStream->ui32Size = ui32NewSizeInPages * 4096;
-
-	return IMG_TRUE;
-}
-
-IMG_UINT32 SpaceInStream(PDBG_STREAM psStream)
-{
-	IMG_UINT32	ui32Space;
-
-	if (psStream->bCircularAllowed)
-	{
-		
-	if (psStream->ui32RPtr > psStream->ui32WPtr)
-	{
-		ui32Space = psStream->ui32RPtr - psStream->ui32WPtr;
-	}
-	else
-	{
-		ui32Space = psStream->ui32RPtr + (psStream->ui32Size - psStream->ui32WPtr);
-	}
-	}
-	else
-	{
-		
-		ui32Space = psStream->ui32Size - psStream->ui32WPtr;
-	}
-
-	return ui32Space;
-}
-
-
-void DestroyAllStreams(void)
-{
-	while (g_psStreamList != IMG_NULL)
-	{
-		DBGDrivDestroyStream(g_psStreamList);
-	}
-	return;
-}
-
-PDBG_LASTFRAME_BUFFER FindLFBuf(PDBG_STREAM psStream)
-{
-	PDBG_LASTFRAME_BUFFER	psLFBuffer;
-
-	psLFBuffer = g_psLFBufferList;
-
-	while (psLFBuffer)
-	{
-		if (psLFBuffer->psStream == psStream)
-		{
-			break;
-		}
-
-		psLFBuffer = psLFBuffer->psNext;
-	}
-
-	return psLFBuffer;
-}
-
diff --git a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/dbgdriv.h b/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/dbgdriv.h
deleted file mode 100644
index 2db4843..0000000
--- a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/dbgdriv.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _DBGDRIV_
-#define _DBGDRIV_
-
-#define BUFFER_SIZE 64*PAGESIZE
-
-#define DBGDRIV_VERSION 	0x100
-#define MAX_PROCESSES 		2
-#define BLOCK_USED			0x01
-#define BLOCK_LOCKED		0x02
-#define DBGDRIV_MONOBASE	0x000B0000
-
-
-extern IMG_VOID *	g_pvAPIMutex;
-
-IMG_VOID * IMG_CALLCONV DBGDrivCreateStream(IMG_CHAR *		pszName,
-								   IMG_UINT32 	ui32CapMode,
-								   IMG_UINT32 	ui32OutMode,
-								   IMG_UINT32	ui32Flags,
-								   IMG_UINT32 	ui32Pages);
-IMG_VOID   IMG_CALLCONV DBGDrivDestroyStream(PDBG_STREAM psStream);
-IMG_VOID * IMG_CALLCONV DBGDrivFindStream(IMG_CHAR * pszName, IMG_BOOL bResetStream);
-IMG_UINT32 IMG_CALLCONV DBGDrivWriteString(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level);
-IMG_UINT32 IMG_CALLCONV DBGDrivReadString(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Limit);
-IMG_UINT32 IMG_CALLCONV DBGDrivWrite(PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
-IMG_UINT32 IMG_CALLCONV DBGDrivWrite2(PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
-IMG_UINT32 IMG_CALLCONV DBGDrivRead(PDBG_STREAM psStream, IMG_BOOL bReadInitBuffer, IMG_UINT32 ui32OutBufferSize,IMG_UINT8 *pui8OutBuf);
-IMG_VOID   IMG_CALLCONV DBGDrivSetCaptureMode(PDBG_STREAM psStream,IMG_UINT32 ui32Mode,IMG_UINT32 ui32Start,IMG_UINT32 ui32Stop,IMG_UINT32 ui32SampleRate);
-IMG_VOID   IMG_CALLCONV DBGDrivSetOutputMode(PDBG_STREAM psStream,IMG_UINT32 ui32OutMode);
-IMG_VOID   IMG_CALLCONV DBGDrivSetDebugLevel(PDBG_STREAM psStream,IMG_UINT32 ui32DebugLevel);
-IMG_VOID   IMG_CALLCONV DBGDrivSetFrame(PDBG_STREAM psStream,IMG_UINT32 ui32Frame);
-IMG_UINT32 IMG_CALLCONV DBGDrivGetFrame(PDBG_STREAM psStream);
-IMG_VOID   IMG_CALLCONV DBGDrivOverrideMode(PDBG_STREAM psStream,IMG_UINT32 ui32Mode);
-IMG_VOID   IMG_CALLCONV DBGDrivDefaultMode(PDBG_STREAM psStream);
-IMG_PVOID  IMG_CALLCONV DBGDrivGetServiceTable(IMG_VOID);
-IMG_UINT32 IMG_CALLCONV DBGDrivWriteStringCM(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level);
-IMG_UINT32 IMG_CALLCONV DBGDrivWriteCM(PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
-IMG_VOID   IMG_CALLCONV DBGDrivSetClientMarker(PDBG_STREAM psStream, IMG_UINT32 ui32Marker);
-IMG_VOID   IMG_CALLCONV DBGDrivSetMarker(PDBG_STREAM psStream, IMG_UINT32 ui32Marker);
-IMG_UINT32 IMG_CALLCONV DBGDrivGetMarker(PDBG_STREAM psStream);
-IMG_BOOL   IMG_CALLCONV DBGDrivIsLastCaptureFrame(PDBG_STREAM psStream);
-IMG_BOOL   IMG_CALLCONV DBGDrivIsCaptureFrame(PDBG_STREAM psStream, IMG_BOOL bCheckPreviousFrame);
-IMG_UINT32 IMG_CALLCONV DBGDrivWriteLF(PDBG_STREAM psStream, IMG_UINT8 *pui8InBuf, IMG_UINT32 ui32InBuffSize, IMG_UINT32 ui32Level, IMG_UINT32 ui32Flags);
-IMG_UINT32 IMG_CALLCONV DBGDrivReadLF(PDBG_STREAM psStream, IMG_UINT32 ui32OutBuffSize, IMG_UINT8 *pui8OutBuf);
-IMG_VOID   IMG_CALLCONV DBGDrivStartInitPhase(PDBG_STREAM psStream);
-IMG_VOID   IMG_CALLCONV DBGDrivStopInitPhase(PDBG_STREAM psStream);
-IMG_UINT32 IMG_CALLCONV DBGDrivGetStreamOffset(PDBG_STREAM psStream);
-IMG_VOID   IMG_CALLCONV DBGDrivSetStreamOffset(PDBG_STREAM psStream, IMG_UINT32 ui32StreamOffset);
-IMG_VOID   IMG_CALLCONV DBGDrivWaitForEvent(DBG_EVENT eEvent);
-
-IMG_VOID DestroyAllStreams(IMG_VOID);
-
-IMG_UINT32 AtoI(IMG_CHAR *szIn);
-
-IMG_VOID HostMemSet(IMG_VOID *pvDest,IMG_UINT8 ui8Value,IMG_UINT32 ui32Size);
-IMG_VOID HostMemCopy(IMG_VOID *pvDest,IMG_VOID *pvSrc,IMG_UINT32 ui32Size);
-IMG_VOID MonoOut(IMG_CHAR * pszString,IMG_BOOL bNewLine);
-
-IMG_SID PStream2SID(PDBG_STREAM psStream);
-PDBG_STREAM SID2PStream(IMG_SID hStream); 
-IMG_BOOL AddSIDEntry(PDBG_STREAM psStream);
-IMG_BOOL RemoveSIDEntry(PDBG_STREAM psStream);
-
-IMG_VOID * IMG_CALLCONV ExtDBGDrivCreateStream(IMG_CHAR *	pszName, IMG_UINT32 ui32CapMode, IMG_UINT32	ui32OutMode, IMG_UINT32 ui32Flags, IMG_UINT32 ui32Size);
-IMG_VOID   IMG_CALLCONV ExtDBGDrivDestroyStream(PDBG_STREAM psStream);
-IMG_VOID * IMG_CALLCONV ExtDBGDrivFindStream(IMG_CHAR * pszName, IMG_BOOL bResetStream);
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivWriteString(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level);
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivReadString(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Limit);
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivWrite(PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivRead(PDBG_STREAM psStream, IMG_BOOL bReadInitBuffer, IMG_UINT32 ui32OutBuffSize,IMG_UINT8 *pui8OutBuf);
-IMG_VOID   IMG_CALLCONV ExtDBGDrivSetCaptureMode(PDBG_STREAM psStream,IMG_UINT32 ui32Mode,IMG_UINT32 ui32Start,IMG_UINT32 ui32End,IMG_UINT32 ui32SampleRate);
-IMG_VOID   IMG_CALLCONV ExtDBGDrivSetOutputMode(PDBG_STREAM psStream,IMG_UINT32 ui32OutMode);
-IMG_VOID   IMG_CALLCONV ExtDBGDrivSetDebugLevel(PDBG_STREAM psStream,IMG_UINT32 ui32DebugLevel);
-IMG_VOID   IMG_CALLCONV ExtDBGDrivSetFrame(PDBG_STREAM psStream,IMG_UINT32 ui32Frame);
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivGetFrame(PDBG_STREAM psStream);
-IMG_VOID   IMG_CALLCONV ExtDBGDrivOverrideMode(PDBG_STREAM psStream,IMG_UINT32 ui32Mode);
-IMG_VOID   IMG_CALLCONV ExtDBGDrivDefaultMode(PDBG_STREAM psStream);
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivWrite2(PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivWriteStringCM(PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level);
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivWriteCM(PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
-IMG_VOID   IMG_CALLCONV ExtDBGDrivSetMarker(PDBG_STREAM psStream, IMG_UINT32 ui32Marker);
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivGetMarker(PDBG_STREAM psStream);
-IMG_VOID   IMG_CALLCONV ExtDBGDrivStartInitPhase(PDBG_STREAM psStream);
-IMG_VOID   IMG_CALLCONV ExtDBGDrivStopInitPhase(PDBG_STREAM psStream);
-IMG_BOOL   IMG_CALLCONV ExtDBGDrivIsLastCaptureFrame(PDBG_STREAM psStream);
-IMG_BOOL   IMG_CALLCONV ExtDBGDrivIsCaptureFrame(PDBG_STREAM psStream, IMG_BOOL bCheckPreviousFrame);
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivWriteLF(PDBG_STREAM psStream, IMG_UINT8 *pui8InBuf, IMG_UINT32 ui32InBuffSize, IMG_UINT32 ui32Level, IMG_UINT32 ui32Flags);
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivReadLF(PDBG_STREAM psStream, IMG_UINT32 ui32OutBuffSize, IMG_UINT8 *pui8OutBuf);
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivGetStreamOffset(PDBG_STREAM psStream);
-IMG_VOID   IMG_CALLCONV ExtDBGDrivSetStreamOffset(PDBG_STREAM psStream, IMG_UINT32 ui32StreamOffset);
-IMG_VOID   IMG_CALLCONV ExtDBGDrivWaitForEvent(DBG_EVENT eEvent);
-IMG_VOID   IMG_CALLCONV ExtDBGDrivSetConnectNotifier(DBGKM_CONNECT_NOTIFIER fn_notifier);
-
-IMG_UINT32 IMG_CALLCONV ExtDBGDrivWritePersist(PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
-
-#endif
-
diff --git a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/dbgdriv_ioctl.h b/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/dbgdriv_ioctl.h
deleted file mode 100644
index 130c146..0000000
--- a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/dbgdriv_ioctl.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _IOCTL_
-#define _IOCTL_
-
-#define MAX_DBGVXD_W32_API 25
-
-extern IMG_UINT32 (*g_DBGDrivProc[MAX_DBGVXD_W32_API])(IMG_VOID *, IMG_VOID *);
-
-#endif
-
diff --git a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/handle.c b/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/handle.c
deleted file mode 100644
index ddffb3f..0000000
--- a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/handle.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include "img_defs.h"
-#include "dbgdrvif.h"
-#include "dbgdriv.h"
-
-#define MAX_SID_ENTRIES		8
-
-typedef struct _SID_INFO
-{
-	PDBG_STREAM	psStream;
-} SID_INFO, *PSID_INFO;
-
-static SID_INFO gaSID_Xlat_Table[MAX_SID_ENTRIES];
-
-IMG_SID PStream2SID(PDBG_STREAM psStream)
-{
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		IMG_INT32 iIdx;
-
-		for (iIdx = 0; iIdx < MAX_SID_ENTRIES; iIdx++)
-		{
-			if (psStream == gaSID_Xlat_Table[iIdx].psStream)
-			{
-				
-				return (IMG_SID)iIdx+1;
-			}
-		}
-	}
-
-	return (IMG_SID)0;
-}
-
-
-PDBG_STREAM SID2PStream(IMG_SID hStream)
-{
-	
-	IMG_INT32 iIdx = (IMG_INT32)hStream-1;
-
-	if (iIdx >= 0 && iIdx < MAX_SID_ENTRIES)
-	{
-		return gaSID_Xlat_Table[iIdx].psStream;
-	}
-	else
-	{
-    	return (PDBG_STREAM)IMG_NULL;
-    }
-}
-
-
-IMG_BOOL AddSIDEntry(PDBG_STREAM psStream)
-{
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		IMG_INT32 iIdx;
-
-		for (iIdx = 0; iIdx < MAX_SID_ENTRIES; iIdx++)
-		{
-			if (psStream == gaSID_Xlat_Table[iIdx].psStream)
-			{
-				
-				return IMG_TRUE;
-			}
-
-			if (gaSID_Xlat_Table[iIdx].psStream == (PDBG_STREAM)IMG_NULL)
-			{
-				
-				gaSID_Xlat_Table[iIdx].psStream = psStream;
-				return IMG_TRUE;
-			}
-		}
-	}
-
-	return IMG_FALSE;
-}
-
-IMG_BOOL RemoveSIDEntry(PDBG_STREAM psStream)
-{
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		IMG_INT32 iIdx;
-
-		for (iIdx = 0; iIdx < MAX_SID_ENTRIES; iIdx++)
-		{
-			if (psStream == gaSID_Xlat_Table[iIdx].psStream)
-			{
-				gaSID_Xlat_Table[iIdx].psStream = (PDBG_STREAM)IMG_NULL;
-				return IMG_TRUE;
-			}
-		}
-	}
-
-	return IMG_FALSE;
-}
-
-
diff --git a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/hostfunc.h b/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/hostfunc.h
deleted file mode 100644
index 70192fb..0000000
--- a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/hostfunc.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _HOSTFUNC_
-#define _HOSTFUNC_
-
-#define HOST_PAGESIZE			(4096)
-#define DBG_MEMORY_INITIALIZER	(0xe2)
-
-IMG_UINT32 HostReadRegistryDWORDFromString(IMG_CHAR *pcKey, IMG_CHAR *pcValueName, IMG_UINT32 *pui32Data);
-
-IMG_VOID * HostPageablePageAlloc(IMG_UINT32 ui32Pages);
-IMG_VOID HostPageablePageFree(IMG_VOID * pvBase);
-IMG_VOID * HostNonPageablePageAlloc(IMG_UINT32 ui32Pages);
-IMG_VOID HostNonPageablePageFree(IMG_VOID * pvBase);
-
-IMG_VOID * HostMapKrnBufIntoUser(IMG_VOID * pvKrnAddr, IMG_UINT32 ui32Size, IMG_VOID * *ppvMdl);
-IMG_VOID HostUnMapKrnBufFromUser(IMG_VOID * pvUserAddr, IMG_VOID * pvMdl, IMG_VOID * pvProcess);
-
-IMG_VOID HostCreateRegDeclStreams(IMG_VOID);
-
-IMG_VOID * HostCreateMutex(IMG_VOID);
-IMG_VOID HostAquireMutex(IMG_VOID * pvMutex);
-IMG_VOID HostReleaseMutex(IMG_VOID * pvMutex);
-IMG_VOID HostDestroyMutex(IMG_VOID * pvMutex);
-
-#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS)
-IMG_INT32 HostCreateEventObjects(IMG_VOID);
-IMG_VOID HostWaitForEvent(DBG_EVENT eEvent);
-IMG_VOID HostSignalEvent(DBG_EVENT eEvent);
-IMG_VOID HostDestroyEventObjects(IMG_VOID);
-#endif	
-
-#endif
-
diff --git a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/hotkey.c b/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/hotkey.c
deleted file mode 100644
index 62c89e3..0000000
--- a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/hotkey.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-
-#if (!defined(LINUX) && !defined(__QNXNTO__))
-#include <ntddk.h>
-#include <windef.h>
-#endif
-
-#include "img_types.h"
-#include "pvr_debug.h"
-#include "dbgdrvif.h"
-#include "dbgdriv.h"
-#include "hotkey.h"
-#include "hostfunc.h"
-
-
-
-
-
-IMG_UINT32	g_ui32HotKeyFrame = 0xFFFFFFFF;
-IMG_BOOL	g_bHotKeyPressed = IMG_FALSE;
-IMG_BOOL	g_bHotKeyRegistered = IMG_FALSE;
-
-PRIVATEHOTKEYDATA    g_PrivateHotKeyData;
-
-
-IMG_VOID ReadInHotKeys(IMG_VOID)
-{
-	g_PrivateHotKeyData.ui32ScanCode = 0x58;	
-	g_PrivateHotKeyData.ui32ShiftState = 0x0;
-
-	
-
-#if 0
-	if (_RegOpenKey(HKEY_LOCAL_MACHINE,pszRegPath,&hKey) == ERROR_SUCCESS)
-	{
-		
-
-		QueryReg(hKey,"ui32ScanCode",&g_PrivateHotKeyData.ui32ScanCode);
-		QueryReg(hKey,"ui32ShiftState",&g_PrivateHotKeyData.ui32ShiftState);
-	}
-#else
-	HostReadRegistryDWORDFromString("DEBUG\\Streams", "ui32ScanCode"  , &g_PrivateHotKeyData.ui32ScanCode);
-	HostReadRegistryDWORDFromString("DEBUG\\Streams", "ui32ShiftState", &g_PrivateHotKeyData.ui32ShiftState);
-#endif
-}
-
-IMG_VOID RegisterKeyPressed(IMG_UINT32 dwui32ScanCode, PHOTKEYINFO pInfo)
-{
-	PDBG_STREAM	psStream;
-
-	PVR_UNREFERENCED_PARAMETER(pInfo);
-
-	if (dwui32ScanCode == g_PrivateHotKeyData.ui32ScanCode)
-	{
-		PVR_DPF((PVR_DBG_MESSAGE,"PDUMP Hotkey pressed !\n"));
-
-		psStream = (PDBG_STREAM) g_PrivateHotKeyData.sHotKeyInfo.pvStream;
-
-		if (!g_bHotKeyPressed)
-		{
-			
-
-			g_ui32HotKeyFrame = psStream->psCtrl->ui32Current + 2;
-
-			
-
-			g_bHotKeyPressed = IMG_TRUE;
-		}
-	}
-}
-
-IMG_VOID ActivateHotKeys(PDBG_STREAM psStream)
-{
-	
-
-	ReadInHotKeys();
-
-	
-
-	if (!g_PrivateHotKeyData.sHotKeyInfo.hHotKey)
-	{
-		if (g_PrivateHotKeyData.ui32ScanCode != 0)
-		{
-			PVR_DPF((PVR_DBG_MESSAGE,"Activate HotKey for PDUMP.\n"));
-
-			
-
-			g_PrivateHotKeyData.sHotKeyInfo.pvStream = psStream;
-
-			DefineHotKey(g_PrivateHotKeyData.ui32ScanCode, g_PrivateHotKeyData.ui32ShiftState, &g_PrivateHotKeyData.sHotKeyInfo);
-		}
-		else
-		{
-			g_PrivateHotKeyData.sHotKeyInfo.hHotKey = 0;
-		}
-	}
-}
-
-IMG_VOID DeactivateHotKeys(IMG_VOID)
-{
-	if (g_PrivateHotKeyData.sHotKeyInfo.hHotKey != 0)
-	{
-		PVR_DPF((PVR_DBG_MESSAGE,"Deactivate HotKey.\n"));
-
-		RemoveHotKey(g_PrivateHotKeyData.sHotKeyInfo.hHotKey);
-		g_PrivateHotKeyData.sHotKeyInfo.hHotKey = 0;
-	}
-}
-
-
diff --git a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/hotkey.h b/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/hotkey.h
deleted file mode 100644
index c5d84bb..0000000
--- a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/hotkey.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#ifndef _HOTKEY_
-#define _HOTKEY_
-
-
-typedef struct _hotkeyinfo
-{
-	IMG_UINT8 ui8ScanCode;
-	IMG_UINT8 ui8Type;
-	IMG_UINT8 ui8Flag;
-	IMG_UINT8 ui8Filler1;
-	IMG_UINT32 ui32ShiftState;
-	IMG_UINT32 ui32HotKeyProc;
-	IMG_VOID *pvStream;
-	IMG_UINT32 hHotKey;			
-} HOTKEYINFO, *PHOTKEYINFO;
-
-typedef struct _privatehotkeydata
-{
-	IMG_UINT32		ui32ScanCode;
-	IMG_UINT32		ui32ShiftState;
-	HOTKEYINFO	sHotKeyInfo;
-} PRIVATEHOTKEYDATA, *PPRIVATEHOTKEYDATA;
-
-
-IMG_VOID ReadInHotKeys (IMG_VOID);
-IMG_VOID ActivateHotKeys(PDBG_STREAM psStream);
-IMG_VOID DeactivateHotKeys(IMG_VOID);
-
-IMG_VOID RemoveHotKey (IMG_UINT32 hHotKey);
-IMG_VOID DefineHotKey (IMG_UINT32 ui32ScanCode, IMG_UINT32 ui32ShiftState, PHOTKEYINFO psInfo);
-IMG_VOID RegisterKeyPressed (IMG_UINT32 ui32ScanCode, PHOTKEYINFO psInfo);
-
-#endif
-
diff --git a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/ioctl.c b/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/ioctl.c
deleted file mode 100644
index a8b8b6e..0000000
--- a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/common/ioctl.c
+++ /dev/null
@@ -1,586 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-
-
-#ifdef LINUX
-#include <asm/uaccess.h>
-#endif 
-
-#include "img_types.h"
-#include "dbgdrvif.h"
-#include "dbgdriv.h"
-#include "hotkey.h"
-#include "dbgdriv_ioctl.h"
-
-
-static IMG_UINT32 DBGDIOCDrivCreateStream(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_IN_CREATESTREAM psIn;
-	IMG_VOID * *ppvOut;
-	#ifdef LINUX
-	static IMG_CHAR name[32];
-	#endif
-
-	psIn = (PDBG_IN_CREATESTREAM) pvInBuffer;
-	ppvOut = (IMG_VOID * *) pvOutBuffer;
-
-	#ifdef LINUX
-
-	if (copy_from_user(name, psIn->u.pszName, 32) != 0)
-	{
-		return IMG_FALSE;
-	}
-
-	*ppvOut = ExtDBGDrivCreateStream(name, psIn->ui32CapMode, psIn->ui32OutMode, 0, psIn->ui32Pages);
-
-	#else
-	*ppvOut = ExtDBGDrivCreateStream(psIn->u.pszName, psIn->ui32CapMode, psIn->ui32OutMode, DEBUG_FLAGS_NO_BUF_EXPANDSION, psIn->ui32Pages);
-	#endif
-
-
-	return(IMG_TRUE);
-}
-
-static IMG_UINT32 DBGDIOCDrivDestroyStream(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_STREAM *ppsStream;
-	PDBG_STREAM  psStream;
-
-	ppsStream = (PDBG_STREAM *) pvInBuffer;
-	psStream  = (PDBG_STREAM) *ppsStream;
-
-	PVR_UNREFERENCED_PARAMETER(	pvOutBuffer);
-
-	ExtDBGDrivDestroyStream(psStream);
-
-	return(IMG_TRUE);
-}
-
-static IMG_UINT32 DBGDIOCDrivGetStream(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_IN_FINDSTREAM psParams;
-	IMG_SID *	phStream;
-
-	psParams	= (PDBG_IN_FINDSTREAM)pvInBuffer;
-	phStream	= (IMG_SID *)pvOutBuffer;
-
-	*phStream = PStream2SID(ExtDBGDrivFindStream(psParams->u.pszName, psParams->bResetStream));
-
-	return(IMG_TRUE);
-}
-
-static IMG_UINT32 DBGDIOCDrivWriteString(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_IN_WRITESTRING psParams;
-	IMG_UINT32 *pui32OutLen;
-	PDBG_STREAM psStream;
-
-	psParams = (PDBG_IN_WRITESTRING) pvInBuffer;
-	pui32OutLen = (IMG_UINT32 *) pvOutBuffer;
-
-	psStream = SID2PStream(psParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		*pui32OutLen = ExtDBGDrivWriteString(psStream,psParams->u.pszString,psParams->ui32Level);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		*pui32OutLen = 0;
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivWriteStringCM(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_IN_WRITESTRING psParams;
-	IMG_UINT32 *pui32OutLen;
-	PDBG_STREAM psStream;
-
-	psParams = (PDBG_IN_WRITESTRING) pvInBuffer;
-	pui32OutLen = (IMG_UINT32 *) pvOutBuffer;
-
-	psStream = SID2PStream(psParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		*pui32OutLen = ExtDBGDrivWriteStringCM(psStream,psParams->u.pszString,psParams->ui32Level);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		*pui32OutLen = 0;
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivReadString(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	IMG_UINT32 * pui32OutLen;
-	PDBG_IN_READSTRING	psParams;
-	PDBG_STREAM  psStream;
-
-	psParams = (PDBG_IN_READSTRING) pvInBuffer;
-	pui32OutLen = (IMG_UINT32 *) pvOutBuffer;
-
-	psStream = SID2PStream(psParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		*pui32OutLen = ExtDBGDrivReadString(psStream,
-											psParams->u.pszString,psParams->ui32StringLen);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		*pui32OutLen = 0;
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivWrite(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	IMG_UINT32 *	pui32BytesCopied;
-	PDBG_IN_WRITE	psInParams;
-	PDBG_STREAM		psStream;
-
-	psInParams = (PDBG_IN_WRITE) pvInBuffer;
-	pui32BytesCopied = (IMG_UINT32 *) pvOutBuffer;
-
-	psStream = SID2PStream(psInParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		*pui32BytesCopied = ExtDBGDrivWrite(psStream,
-										psInParams->u.pui8InBuffer,
-										psInParams->ui32TransferSize,
-										psInParams->ui32Level);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		*pui32BytesCopied = 0;
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivWrite2(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	IMG_UINT32 *	pui32BytesCopied;
-	PDBG_IN_WRITE	psInParams;
-	PDBG_STREAM 	psStream;
-
-	psInParams = (PDBG_IN_WRITE) pvInBuffer;
-	pui32BytesCopied = (IMG_UINT32 *) pvOutBuffer;
-
-	psStream = SID2PStream(psInParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		*pui32BytesCopied = ExtDBGDrivWrite2(psStream,
-										 psInParams->u.pui8InBuffer,
-										 psInParams->ui32TransferSize,
-										 psInParams->ui32Level);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		*pui32BytesCopied = 0;
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivWriteCM(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	IMG_UINT32 *	pui32BytesCopied;
-	PDBG_IN_WRITE	psInParams;
-	PDBG_STREAM		psStream;
-
-	psInParams = (PDBG_IN_WRITE) pvInBuffer;
-	pui32BytesCopied = (IMG_UINT32 *) pvOutBuffer;
-
-	psStream = SID2PStream(psInParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		*pui32BytesCopied = ExtDBGDrivWriteCM(psStream,
-										  psInParams->u.pui8InBuffer,
-										  psInParams->ui32TransferSize,
-										  psInParams->ui32Level);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		*pui32BytesCopied = 0;
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivRead(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	IMG_UINT32 *	pui32BytesCopied;
-	PDBG_IN_READ	psInParams;
-	PDBG_STREAM		psStream;
-
-	psInParams = (PDBG_IN_READ) pvInBuffer;
-	pui32BytesCopied = (IMG_UINT32 *) pvOutBuffer;
-
-	psStream = SID2PStream(psInParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		*pui32BytesCopied = ExtDBGDrivRead(psStream,
-									   psInParams->bReadInitBuffer,
-									   psInParams->ui32OutBufferSize,
-									   psInParams->u.pui8OutBuffer);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		*pui32BytesCopied = 0;
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivSetCaptureMode(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_IN_SETDEBUGMODE	psParams;
-	PDBG_STREAM				psStream;
-
-	psParams = (PDBG_IN_SETDEBUGMODE) pvInBuffer;
-	PVR_UNREFERENCED_PARAMETER(pvOutBuffer);
-
-	psStream = SID2PStream(psParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		ExtDBGDrivSetCaptureMode(psStream,
-							 psParams->ui32Mode,
-							 psParams->ui32Start,
-							 psParams->ui32End,
-							 psParams->ui32SampleRate);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivSetOutMode(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_IN_SETDEBUGOUTMODE psParams;
-	PDBG_STREAM				psStream;
-
-	psParams = (PDBG_IN_SETDEBUGOUTMODE) pvInBuffer;
-	PVR_UNREFERENCED_PARAMETER(pvOutBuffer);
-
-	psStream = SID2PStream(psParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		ExtDBGDrivSetOutputMode(psStream,psParams->ui32Mode);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivSetDebugLevel(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_IN_SETDEBUGLEVEL psParams;
-	PDBG_STREAM           psStream;
-
-	psParams = (PDBG_IN_SETDEBUGLEVEL) pvInBuffer;
-	PVR_UNREFERENCED_PARAMETER(pvOutBuffer);
-
-	psStream = SID2PStream(psParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		ExtDBGDrivSetDebugLevel(psStream,psParams->ui32Level);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivSetFrame(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_IN_SETFRAME	psParams;
-	PDBG_STREAM			psStream;
-
-	psParams = (PDBG_IN_SETFRAME) pvInBuffer;
-	PVR_UNREFERENCED_PARAMETER(pvOutBuffer);
-
-	psStream = SID2PStream(psParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		ExtDBGDrivSetFrame(psStream,psParams->ui32Frame);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivGetFrame(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_STREAM  psStream;
-	IMG_UINT32  *pui32Current;
-
-	pui32Current = (IMG_UINT32 *) pvOutBuffer;
-	psStream = SID2PStream(*(IMG_SID *)pvInBuffer);
-	
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		*pui32Current = ExtDBGDrivGetFrame(psStream);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		*pui32Current = 0;
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivIsCaptureFrame(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_IN_ISCAPTUREFRAME psParams;
-	IMG_UINT32 *			pui32Current;
-	PDBG_STREAM				psStream;
-
-	psParams = (PDBG_IN_ISCAPTUREFRAME) pvInBuffer;
-	pui32Current = (IMG_UINT32 *) pvOutBuffer;
-
-	psStream = SID2PStream(psParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		*pui32Current = ExtDBGDrivIsCaptureFrame(psStream,
-											 psParams->bCheckPreviousFrame);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		*pui32Current = 0;
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivOverrideMode(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_IN_OVERRIDEMODE	psParams;
-	PDBG_STREAM				psStream;
-
-	psParams = (PDBG_IN_OVERRIDEMODE) pvInBuffer;
-	PVR_UNREFERENCED_PARAMETER(	pvOutBuffer);
-
-	psStream = SID2PStream(psParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		ExtDBGDrivOverrideMode(psStream,psParams->ui32Mode);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivDefaultMode(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_STREAM  psStream;
-
-	PVR_UNREFERENCED_PARAMETER(pvOutBuffer);
-
-	psStream = SID2PStream(*(IMG_SID *)pvInBuffer);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		ExtDBGDrivDefaultMode(psStream);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivSetMarker(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_IN_SETMARKER	psParams;
-	PDBG_STREAM			psStream;
-
-	psParams = (PDBG_IN_SETMARKER) pvInBuffer;
-	PVR_UNREFERENCED_PARAMETER(pvOutBuffer);
-
-	psStream = SID2PStream(psParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		ExtDBGDrivSetMarker(psStream, psParams->ui32Marker);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivGetMarker(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_STREAM  psStream;
-	IMG_UINT32  *pui32Current;
-
-	pui32Current = (IMG_UINT32 *) pvOutBuffer;
-
-	psStream = SID2PStream(*(IMG_SID *)pvInBuffer);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		*pui32Current = ExtDBGDrivGetMarker(psStream);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		*pui32Current = 0;
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivGetServiceTable(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	IMG_PVOID *	ppvOut;
-
-	PVR_UNREFERENCED_PARAMETER(pvInBuffer);
-	ppvOut = (IMG_PVOID *) pvOutBuffer;
-
-	*ppvOut = DBGDrivGetServiceTable();
-
-    return(IMG_TRUE);
-}
-
-static IMG_UINT32 DBGDIOCDrivWriteLF(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	PDBG_IN_WRITE_LF psInParams;
-	IMG_UINT32      *pui32BytesCopied;
-	PDBG_STREAM      psStream;
-
-	psInParams = (PDBG_IN_WRITE_LF) pvInBuffer;
-	pui32BytesCopied = (IMG_UINT32 *) pvOutBuffer;
-
-	psStream = SID2PStream(psInParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		*pui32BytesCopied = ExtDBGDrivWriteLF(psStream,
-										  psInParams->u.pui8InBuffer,
-										  psInParams->ui32BufferSize,
-										  psInParams->ui32Level,
-										  psInParams->ui32Flags);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivReadLF(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	IMG_UINT32 *	pui32BytesCopied;
-	PDBG_IN_READ	psInParams;
-	PDBG_STREAM		psStream;
-
-	psInParams = (PDBG_IN_READ) pvInBuffer;
-	pui32BytesCopied = (IMG_UINT32 *) pvOutBuffer;
-
-	psStream = SID2PStream(psInParams->hStream);
-	if (psStream != (PDBG_STREAM)IMG_NULL)
-	{
-		*pui32BytesCopied = ExtDBGDrivReadLF(psStream,
-										 psInParams->ui32OutBufferSize,
-										 psInParams->u.pui8OutBuffer);
-		return(IMG_TRUE);
-	}
-	else
-	{
-		
-		*pui32BytesCopied = 0;
-		return(IMG_FALSE);
-	}
-}
-
-static IMG_UINT32 DBGDIOCDrivWaitForEvent(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
-{
-	DBG_EVENT eEvent = (DBG_EVENT)(*(IMG_UINT32 *)pvInBuffer);
-
-	PVR_UNREFERENCED_PARAMETER(pvOutBuffer);
-
-	ExtDBGDrivWaitForEvent(eEvent);
-
-	return(IMG_TRUE);
-}
-
-IMG_UINT32 (*g_DBGDrivProc[25])(IMG_VOID *, IMG_VOID *) =
-{
-	DBGDIOCDrivCreateStream,
-	DBGDIOCDrivDestroyStream,
-	DBGDIOCDrivGetStream,
-	DBGDIOCDrivWriteString,
-	DBGDIOCDrivReadString,
-	DBGDIOCDrivWrite,
-	DBGDIOCDrivRead,
-	DBGDIOCDrivSetCaptureMode,
-	DBGDIOCDrivSetOutMode,
-	DBGDIOCDrivSetDebugLevel,
-	DBGDIOCDrivSetFrame,
-	DBGDIOCDrivGetFrame,
-	DBGDIOCDrivOverrideMode,
-	DBGDIOCDrivDefaultMode,
-	DBGDIOCDrivGetServiceTable,
-	DBGDIOCDrivWrite2,
-	DBGDIOCDrivWriteStringCM,
-	DBGDIOCDrivWriteCM,
-	DBGDIOCDrivSetMarker,
-	DBGDIOCDrivGetMarker,
-	DBGDIOCDrivIsCaptureFrame,
-	DBGDIOCDrivWriteLF,
-	DBGDIOCDrivReadLF,
-	DBGDIOCDrivWaitForEvent
-};
-
diff --git a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/hostfunc.c b/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/hostfunc.c
deleted file mode 100644
index 66d328d..0000000
--- a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/hostfunc.c
+++ /dev/null
@@ -1,324 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <linux/version.h>
-#include <linux/errno.h>
-#include <linux/module.h>
-#include <linux/fs.h>
-#include <linux/kernel.h>
-#include <linux/slab.h>
-#include <linux/mm.h>
-#include <linux/string.h>
-#include <asm/page.h>
-#include <linux/vmalloc.h>
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15))
-#include <linux/mutex.h>
-#else
-#include <asm/semaphore.h>
-#endif
-#include <linux/hardirq.h>
-
-#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS)
-#include <linux/sched.h>
-#include <linux/wait.h>
-#include <linux/jiffies.h>
-#include <linux/delay.h>
-#endif	
-
-#include "img_types.h"
-#include "pvr_debug.h"
-
-#include "dbgdrvif.h"
-#include "hostfunc.h"
-#include "dbgdriv.h"
-
-#if defined(MODULE) && defined(DEBUG) && !defined(SUPPORT_DRI_DRM)
-IMG_UINT32	gPVRDebugLevel = (DBGPRIV_FATAL | DBGPRIV_ERROR | DBGPRIV_WARNING);
-
-#define PVR_STRING_TERMINATOR		'\0'
-#define PVR_IS_FILE_SEPARATOR(character) ( ((character) == '\\') || ((character) == '/') )
-
-void PVRSRVDebugPrintf	(
-						IMG_UINT32	ui32DebugLevel,
-						const IMG_CHAR*	pszFileName,
-						IMG_UINT32	ui32Line,
-						const IMG_CHAR*	pszFormat,
-						...
-					)
-{
-	IMG_BOOL bTrace;
-#if !defined(__sh__)
-	IMG_CHAR *pszLeafName;
-
-	pszLeafName = (char *)strrchr (pszFileName, '\\');
-
-	if (pszLeafName)
-	{
-		pszFileName = pszLeafName;
-	}
-#endif 
-
-	bTrace = (IMG_BOOL)(ui32DebugLevel & DBGPRIV_CALLTRACE) ? IMG_TRUE : IMG_FALSE;
-
-	if (gPVRDebugLevel & ui32DebugLevel)
-	{
-		va_list vaArgs;
-		char szBuffer[256];
-		char *szBufferEnd = szBuffer;
-		char *szBufferLimit = szBuffer + sizeof(szBuffer) - 1;
-
-		
-		*szBufferLimit = '\0';
-
-		snprintf(szBufferEnd, szBufferLimit - szBufferEnd, "PVR_K:");
-		szBufferEnd += strlen(szBufferEnd);
-
-		
-		if (bTrace == IMG_FALSE)
-		{
-			switch(ui32DebugLevel)
-			{
-				case DBGPRIV_FATAL:
-				{
-					snprintf(szBufferEnd, szBufferLimit - szBufferEnd, "(Fatal):");
-					break;
-				}
-				case DBGPRIV_ERROR:
-				{
-					snprintf(szBufferEnd, szBufferLimit - szBufferEnd, "(Error):");
-					break;
-				}
-				case DBGPRIV_WARNING:
-				{
-					snprintf(szBufferEnd, szBufferLimit - szBufferEnd, "(Warning):");
-					break;
-				}
-				case DBGPRIV_MESSAGE:
-				{
-					snprintf(szBufferEnd, szBufferLimit - szBufferEnd, "(Message):");
-					break;
-				}
-				case DBGPRIV_VERBOSE:
-				{
-					snprintf(szBufferEnd, szBufferLimit - szBufferEnd, "(Verbose):");
-					break;
-				}
-				default:
-				{
-					snprintf(szBufferEnd, szBufferLimit - szBufferEnd, "(Unknown message level)");
-					break;
-				}
-			}
-			szBufferEnd += strlen(szBufferEnd);
-		}
-		snprintf(szBufferEnd, szBufferLimit - szBufferEnd, " ");
-		szBufferEnd += strlen(szBufferEnd);
-
-		va_start (vaArgs, pszFormat);
-		vsnprintf(szBufferEnd, szBufferLimit - szBufferEnd, pszFormat, vaArgs);
-		va_end (vaArgs);
-		szBufferEnd += strlen(szBufferEnd);
-
- 		
- 		if (bTrace == IMG_FALSE)
-		{
-			snprintf(szBufferEnd, szBufferLimit - szBufferEnd, 
-			         " [%d, %s]", (int)ui32Line, pszFileName);
-			szBufferEnd += strlen(szBufferEnd);
-		}
-
-		printk(KERN_INFO "%s\r\n", szBuffer);
-	}
-}
-#endif	
-
-IMG_VOID HostMemSet(IMG_VOID *pvDest, IMG_UINT8 ui8Value, IMG_UINT32 ui32Size)
-{
-	memset(pvDest, (int) ui8Value, (size_t) ui32Size);
-}
-
-IMG_VOID HostMemCopy(IMG_VOID *pvDst, IMG_VOID *pvSrc, IMG_UINT32 ui32Size)
-{
-#if defined(USE_UNOPTIMISED_MEMCPY)
-    unsigned char *src,*dst;
-    int i;
-
-    src=(unsigned char *)pvSrc;
-    dst=(unsigned char *)pvDst;
-    for(i=0;i<ui32Size;i++)
-    {
-        dst[i]=src[i];
-    }
-#else
-    memcpy(pvDst, pvSrc, ui32Size);
-#endif
-}
-
-IMG_UINT32 HostReadRegistryDWORDFromString(char *pcKey, char *pcValueName, IMG_UINT32 *pui32Data)
-{
-    
-	return 0;
-}
-
-IMG_VOID * HostPageablePageAlloc(IMG_UINT32 ui32Pages)
-{
-    return (void*)vmalloc(ui32Pages * PAGE_SIZE);
-}
-
-IMG_VOID HostPageablePageFree(IMG_VOID * pvBase)
-{
-    vfree(pvBase);
-}
-
-IMG_VOID * HostNonPageablePageAlloc(IMG_UINT32 ui32Pages)
-{
-    return (void*)vmalloc(ui32Pages * PAGE_SIZE);
-}
-
-IMG_VOID HostNonPageablePageFree(IMG_VOID * pvBase)
-{
-    vfree(pvBase);
-}
-
-IMG_VOID * HostMapKrnBufIntoUser(IMG_VOID * pvKrnAddr, IMG_UINT32 ui32Size, IMG_VOID **ppvMdl)
-{
-    
-	return IMG_NULL;
-}
-
-IMG_VOID HostUnMapKrnBufFromUser(IMG_VOID * pvUserAddr, IMG_VOID * pvMdl, IMG_VOID * pvProcess)
-{
-    
-}
-
-IMG_VOID HostCreateRegDeclStreams(IMG_VOID)
-{
-    
-}
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
-typedef	struct mutex		MUTEX;
-#define	INIT_MUTEX(m)		mutex_init(m)
-#define	DOWN_TRYLOCK(m)		(!mutex_trylock(m))
-#define	DOWN(m)			mutex_lock(m)
-#define UP(m)			mutex_unlock(m)
-#else
-typedef	struct semaphore	MUTEX;
-#define	INIT_MUTEX(m)		init_MUTEX(m)
-#define	DOWN_TRYLOCK(m)		down_trylock(m)
-#define	DOWN(m)			down(m)
-#define UP(m)			up(m)
-#endif
-
-IMG_VOID * HostCreateMutex(IMG_VOID)
-{
-	MUTEX *psMutex;
-
-	psMutex = kmalloc(sizeof(*psMutex), GFP_KERNEL);
-	if (psMutex)
-	{
-		INIT_MUTEX(psMutex);
-	}
-
-	return psMutex;
-}
-
-IMG_VOID HostAquireMutex(IMG_VOID * pvMutex)
-{
-	BUG_ON(in_interrupt());
-
-#if defined(PVR_DEBUG_DBGDRV_DETECT_HOST_MUTEX_COLLISIONS)
-	if (DOWN_TRYLOCK((MUTEX *)pvMutex))
-	{
-		printk(KERN_INFO "HostAquireMutex: Waiting for mutex\n");
-		DOWN((MUTEX *)pvMutex);
-	}
-#else
-	DOWN((MUTEX *)pvMutex);
-#endif
-}
-
-IMG_VOID HostReleaseMutex(IMG_VOID * pvMutex)
-{
-	UP((MUTEX *)pvMutex);
-}
-
-IMG_VOID HostDestroyMutex(IMG_VOID * pvMutex)
-{
-	if (pvMutex)
-	{
-		kfree(pvMutex);
-	}
-}
-
-#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS)
-
-#define	EVENT_WAIT_TIMEOUT_MS	500
-#define	EVENT_WAIT_TIMEOUT_JIFFIES	(EVENT_WAIT_TIMEOUT_MS * HZ / 1000)
-
-static int iStreamData;
-static wait_queue_head_t sStreamDataEvent;
-
-IMG_INT32 HostCreateEventObjects(IMG_VOID)
-{
-	init_waitqueue_head(&sStreamDataEvent);
-
-	return 0;
-}
-
-IMG_VOID HostWaitForEvent(DBG_EVENT eEvent)
-{
-	switch(eEvent)
-	{
-		case DBG_EVENT_STREAM_DATA:
-			
-			wait_event_interruptible_timeout(sStreamDataEvent, iStreamData != 0, EVENT_WAIT_TIMEOUT_JIFFIES);
-			iStreamData = 0;
-			break;
-		default:
-			
-			msleep_interruptible(EVENT_WAIT_TIMEOUT_MS);
-			break;
-	}
-}
-
-IMG_VOID HostSignalEvent(DBG_EVENT eEvent)
-{
-	switch(eEvent)
-	{
-		case DBG_EVENT_STREAM_DATA:
-			iStreamData = 1;
-			wake_up_interruptible(&sStreamDataEvent);
-			break;
-		default:
-			break;
-	}
-}
-
-IMG_VOID HostDestroyEventObjects(IMG_VOID)
-{
-}
-#endif	
diff --git a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/kbuild/Makefile b/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/kbuild/Makefile
deleted file mode 100644
index 00db6ef..0000000
--- a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/kbuild/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
-# 
-# This program is free software; you can redistribute it and/or modify it
-# under the terms and conditions of the GNU General Public License,
-# version 2, as published by the Free Software Foundation.
-# 
-# This program is distributed in the hope it will be useful but, except 
-# as otherwise stated in writing, 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.,
-# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-# 
-# The full GNU General Public License is included in this distribution in
-# the file called "COPYING".
-#
-# Contact Information:
-# Imagination Technologies Ltd. <gpl-support@imgtec.com>
-# Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
-# 
-#
-#
-
-MODULE		= dbgdrv
-
-INCLUDES = -I$(EURASIAROOT)/services4/srvkm/env/linux
-
-SOURCES	=
-				
-include $(EURASIAROOT)/tools/intern/debug/dbgdriv/linux/makefile.linux.common
-
-include $(EURASIAROOT)/eurasiacon/build/linux/kbuild/Makefile.kbuild_subdir_common
diff --git a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/main.c b/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/main.c
deleted file mode 100644
index b577a2f..0000000
--- a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/main.c
+++ /dev/null
@@ -1,315 +0,0 @@
-/**********************************************************************
- *
- * Copyright (C) Imagination Technologies Ltd. All rights reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- * 
- * This program is distributed in the hope it will be useful but, except 
- * as otherwise stated in writing, 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.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- * 
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
- *
- ******************************************************************************/
-
-#include <linux/errno.h>
-#include <linux/module.h>
-#include <linux/fs.h>
-#include <linux/kernel.h>
-#include <linux/kdev_t.h>
-#include <linux/pci.h>
-#include <linux/list.h>
-#include <linux/init.h>
-#include <linux/vmalloc.h>
-#include <linux/version.h>
-
-#if defined(LDM_PLATFORM) && !defined(SUPPORT_DRI_DRM)
-#include <linux/platform_device.h>
-#endif
-
-#if defined(LDM_PCI) && !defined(SUPPORT_DRI_DRM)
-#include <linux/pci.h>
-#endif
-
-#include <asm/uaccess.h>
-
-#if defined(SUPPORT_DRI_DRM)
-#include "drmP.h"
-#include "drm.h"
-#endif
-
-#include "img_types.h"
-#include "linuxsrv.h"
-#include "dbgdriv_ioctl.h"
-#include "dbgdrvif.h"
-#include "dbgdriv.h"
-#include "hostfunc.h"
-#include "hotkey.h"
-#include "pvr_debug.h"
-#include "pvrmodule.h"
-
-#if defined(SUPPORT_DRI_DRM)
-
-#include "pvr_drm_shared.h"
-#include "pvr_drm.h"
-
-#else 
-
-#define DRVNAME "dbgdrv"
-MODULE_SUPPORTED_DEVICE(DRVNAME);
-
-#if (defined(LDM_PLATFORM) || defined(LDM_PCI)) && !defined(SUPPORT_DRI_DRM)
-static struct class *psDbgDrvClass;
-#endif
-
-static int AssignedMajorNumber = 0;
-
-long dbgdrv_ioctl(struct file *, unsigned int, unsigned long);
-
-static int dbgdrv_open(struct inode unref__ * pInode, struct file unref__ * pFile)
-{
-	return 0;
-}
-
-static int dbgdrv_release(struct inode unref__ * pInode, struct file unref__ * pFile)
-{
-	return 0;
-}
-
-static int dbgdrv_mmap(struct file* pFile, struct vm_area_struct* ps_vma)
-{
-	return 0;
-}
-
-static struct file_operations dbgdrv_fops = {
-	.owner          = THIS_MODULE,
-	.unlocked_ioctl = dbgdrv_ioctl,
-	.open           = dbgdrv_open,
-	.release        = dbgdrv_release,
-	.mmap           = dbgdrv_mmap,
-};
-
-#endif  
-
-IMG_VOID DBGDrvGetServiceTable(IMG_VOID **fn_table);
-
-IMG_VOID DBGDrvGetServiceTable(IMG_VOID **fn_table)
-{
-	extern DBGKM_SERVICE_TABLE g_sDBGKMServices;
-
-	*fn_table = &g_sDBGKMServices;
-}
-
-#if defined(SUPPORT_DRI_DRM)
-void dbgdrv_cleanup(void)
-#else
-static void __exit dbgdrv_cleanup(void)
-#endif
-{
-#if !defined(SUPPORT_DRI_DRM)
-#if defined(LDM_PLATFORM) || defined(LDM_PCI)
-	device_destroy(psDbgDrvClass, MKDEV(AssignedMajorNumber, 0));
-	class_destroy(psDbgDrvClass);
-#endif
-	unregister_chrdev(AssignedMajorNumber, DRVNAME);
-#endif 
-#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS)
-	HostDestroyEventObjects();
-#endif
-	HostDestroyMutex(g_pvAPIMutex);
-	return;
-}
-
-#if defined(SUPPORT_DRI_DRM)
-IMG_INT dbgdrv_init(void)
-#else
-static int __init dbgdrv_init(void)
-#endif
-{
-#if (defined(LDM_PLATFORM) || defined(LDM_PCI)) && !defined(SUPPORT_DRI_DRM)
-	struct device *psDev;
-#endif
-
-#if !defined(SUPPORT_DRI_DRM)
-	int err = -EBUSY;
-#endif
-
-	
-	if ((g_pvAPIMutex=HostCreateMutex()) == IMG_NULL)
-	{
-		return -ENOMEM;
-	}
-
-#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS)
-	
-	(void) HostCreateEventObjects();
-#endif
-
-#if !defined(SUPPORT_DRI_DRM)
-	AssignedMajorNumber =
-	register_chrdev(AssignedMajorNumber, DRVNAME, &dbgdrv_fops);
-
-	if (AssignedMajorNumber <= 0)
-	{
-		PVR_DPF((PVR_DBG_ERROR," unable to get major\n"));
-		goto ErrDestroyEventObjects;
-	}
-
-#if defined(LDM_PLATFORM) || defined(LDM_PCI)
-	
-	psDbgDrvClass = class_create(THIS_MODULE, DRVNAME);
-	if (IS_ERR(psDbgDrvClass))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "%s: unable to create class (%ld)",
-				 __func__, PTR_ERR(psDbgDrvClass)));
-		goto ErrUnregisterCharDev;
-	}
-
-	psDev = device_create(psDbgDrvClass, NULL, MKDEV(AssignedMajorNumber, 0),
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26))
-						  NULL,
-#endif
-						  DRVNAME);
-	if (IS_ERR(psDev))
-	{
-		PVR_DPF((PVR_DBG_ERROR, "%s: unable to create device (%ld)",
-								__func__, PTR_ERR(psDev)));
-		goto ErrDestroyClass;
-	}
-#endif 
-#endif 
-
-	return 0;
-
-#if !defined(SUPPORT_DRI_DRM)
-ErrDestroyEventObjects:
-#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS)
-	HostDestroyEventObjects();
-#endif
-#if defined(LDM_PLATFORM) || defined(LDM_PCI)
-ErrUnregisterCharDev:
-	unregister_chrdev(AssignedMajorNumber, DRVNAME);
-ErrDestroyClass:
-	class_destroy(psDbgDrvClass);
-#endif
-	return err;
-#endif 
-}
-
-#if defined(SUPPORT_DRI_DRM)
-int dbgdrv_ioctl(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile)
-#else
-long dbgdrv_ioctl(struct file *file, unsigned int ioctlCmd, unsigned long arg)
-#endif
-{
-	IOCTL_PACKAGE *pIP = (IOCTL_PACKAGE *) arg;
-	char *buffer, *in, *out;
-	unsigned int cmd;
-
-	if((pIP->ui32InBufferSize > (PAGE_SIZE >> 1) ) || (pIP->ui32OutBufferSize > (PAGE_SIZE >> 1)))
-	{
-		PVR_DPF((PVR_DBG_ERROR,"Sizes of the buffers are too large, cannot do ioctl\n"));
-		return -1;
-	}
-
-	buffer = (char *) HostPageablePageAlloc(1);
-	if(!buffer)
-	{
-		PVR_DPF((PVR_DBG_ERROR,"Failed to allocate buffer, cannot do ioctl\n"));
-		return -EFAULT;
-	}
-
-	in = buffer;
-	out = buffer + (PAGE_SIZE >>1);
-
-	if (copy_from_user(in, pIP->pInBuffer, pIP->ui32InBufferSize) != 0)
-	{
-		goto init_failed;
-	}
-
-	cmd = MAKEIOCTLINDEX(pIP->ui32Cmd) - DEBUG_SERVICE_IOCTL_BASE - 1;
-
-	if(pIP->ui32Cmd == DEBUG_SERVICE_READ)
-	{
-		IMG_UINT32 *pui32BytesCopied = (IMG_UINT32 *)out;
-		DBG_IN_READ *psReadInParams = (DBG_IN_READ *)in;
-		DBG_STREAM *psStream;
-		IMG_CHAR *ui8Tmp;
-
-		ui8Tmp = vmalloc(psReadInParams->ui32OutBufferSize);
-
-		if(!ui8Tmp)
-		{
-			goto init_failed;
-		}
-
-		psStream = SID2PStream(psReadInParams->hStream);
-		if(!psStream)
-		{
-			goto init_failed;
-		}
-
-		*pui32BytesCopied = ExtDBGDrivRead(psStream,
-										   psReadInParams->bReadInitBuffer,
-										   psReadInParams->ui32OutBufferSize,
-										   ui8Tmp);
-
-		if (copy_to_user(psReadInParams->u.pui8OutBuffer,
-						ui8Tmp,
-						*pui32BytesCopied) != 0)
-		{
-			vfree(ui8Tmp);
-			goto init_failed;
-		}
-
-		vfree(ui8Tmp);
-	}
-	else
-	{
-		(g_DBGDrivProc[cmd])(in, out);
-	}
-
-	if(copy_to_user(pIP->pOutBuffer, out, pIP->ui32OutBufferSize) != 0)
-	{
-		goto init_failed;
-	}
-
-	HostPageablePageFree((IMG_VOID *)buffer);
-	return 0;
-
-init_failed:
-	HostPageablePageFree((IMG_VOID *)buffer);
-	return -EFAULT;
-}
-
-
-IMG_VOID RemoveHotKey (IMG_UINT32 hHotKey)
-{
-	PVR_UNREFERENCED_PARAMETER(hHotKey);
-}
-
-IMG_VOID DefineHotKey (IMG_UINT32 ui32ScanCode, IMG_UINT32 ui32ShiftState, PHOTKEYINFO psInfo)
-{
-	PVR_UNREFERENCED_PARAMETER(ui32ScanCode);
-	PVR_UNREFERENCED_PARAMETER(ui32ShiftState);
-	PVR_UNREFERENCED_PARAMETER(psInfo);
-}
-
-EXPORT_SYMBOL(DBGDrvGetServiceTable);
-
-#if !defined(SUPPORT_DRI_DRM)
-subsys_initcall(dbgdrv_init);
-module_exit(dbgdrv_cleanup);
-#endif
diff --git a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/makefile.linux.common b/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/makefile.linux.common
deleted file mode 100644
index a995a15..0000000
--- a/drivers/staging/cdv/pvr/tools/intern/debug/dbgdriv/linux/makefile.linux.common
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms and conditions of the GNU General Public License,
-# version 2, as published by the Free Software Foundation.
-#
-# This program is distributed in the hope it will be useful but, except
-# as otherwise stated in writing, 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.,
-# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# The full GNU General Public License is included in this distribution in
-# the file called "COPYING".
-#
-# Contact Information:
-# Imagination Technologies Ltd. <gpl-support@imgtec.com>
-# Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
-#
-#
-#
-
-DBGDRV_SOURCES_ROOT = $(KBUILDROOT)/../tools/intern/debug/dbgdriv
-
-INCLUDES += 	-I$(EURASIAROOT)/include4 \
-			-I$(EURASIAROOT)/tools/intern/debug \
-			-I$(EURASIAROOT)/tools/intern/debug/dbgdriv/common \
-			-I$(EURASIAROOT)/tools/intern/debug/client
-
-SOURCES	+=	$(DBGDRV_SOURCES_ROOT)/linux/main.c \
-				$(DBGDRV_SOURCES_ROOT)/common/dbgdriv.c \
-				$(DBGDRV_SOURCES_ROOT)/common/ioctl.c \
-				$(DBGDRV_SOURCES_ROOT)/common/handle.c \
-				$(DBGDRV_SOURCES_ROOT)/linux/hostfunc.c \
-				$(DBGDRV_SOURCES_ROOT)/common/hotkey.c
-- 
1.7.4.1



  reply	other threads:[~2012-04-26  1:30 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-25 18:17 [kernel][PATCH 0/3] Cover letter to update pvr patches rahul.saxena
2012-04-25 18:17 ` rahul.saxena [this message]
2012-04-25 18:17 ` [PATCH 2/3] add updated version of linux-3.0.0-cdv.patch rahul.saxena
2012-04-25 18:17 ` [PATCH 3/3] add patch linux-3.0.0-ttm-clear-high.patch rahul.saxena
2012-04-26 18:54 ` [kernel][PATCH 0/3] Cover letter to update pvr patches Bruce Ashfield
2012-04-26 20:03 ` Bruce Ashfield
2012-04-26 20:38   ` Saxena, Rahul
2012-04-27  2:59     ` Bruce Ashfield

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0db94ea0705ad766cf9397aedef8a5f343b5629d.1335393641.git.rahul.saxena@intel.com \
    --to=rahul.saxena@intel.com \
    --cc=bruce.ashfield@windriver.org \
    --cc=kishore.k.bodke@intel.com \
    --cc=tom.zanussi@intel.com \
    --cc=yocto@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.