diff --git a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_css20.c b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_css20.c
index 760f06d..2e20a81 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_css20.c
+++ b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_css20.c
@@ -92,65 +92,6 @@ unsigned int atomisp_css_debug_get_dtrace_level(void)
 	return ia_css_debug_trace_level;
 }
 
-static ia_css_ptr atomisp_css2_mm_alloc(size_t bytes, uint32_t attr)
-{
-	if (attr & IA_CSS_MEM_ATTR_ZEROED) {
-		if (attr & IA_CSS_MEM_ATTR_CACHED) {
-			if (attr & IA_CSS_MEM_ATTR_CONTIGUOUS)
-				return (ia_css_ptr) hrt_isp_css_mm_calloc_contiguous(bytes);
-			else
-				return (ia_css_ptr) hrt_isp_css_mm_calloc_cached(bytes);
-		} else {
-			if (attr & IA_CSS_MEM_ATTR_CONTIGUOUS)
-				return (ia_css_ptr) hrt_isp_css_mm_calloc_contiguous(bytes);
-			else
-				return (ia_css_ptr) hrt_isp_css_mm_calloc(bytes);
-		}
-	} else {
-		if (attr & IA_CSS_MEM_ATTR_CACHED) {
-			if (attr & IA_CSS_MEM_ATTR_CONTIGUOUS)
-				return (ia_css_ptr) hrt_isp_css_mm_alloc_contiguous(bytes);
-			else
-				return (ia_css_ptr) hrt_isp_css_mm_alloc_cached(bytes);
-		} else {
-			if (attr & IA_CSS_MEM_ATTR_CONTIGUOUS)
-				return (ia_css_ptr) hrt_isp_css_mm_alloc_contiguous(bytes);
-			else
-				return (ia_css_ptr) hrt_isp_css_mm_alloc(bytes);
-		}
-	}
-}
-
-static void atomisp_css2_mm_free(ia_css_ptr ptr)
-{
-	hrt_isp_css_mm_free(ptr);
-}
-
-static int atomisp_css2_mm_load(ia_css_ptr ptr, void *data, size_t bytes)
-{
-	return hrt_isp_css_mm_load(ptr, data, bytes);
-}
-
-static int atomisp_css2_mm_store(ia_css_ptr ptr, const void *data, size_t bytes)
-{
-	return hrt_isp_css_mm_store(ptr, data, bytes);
-}
-
-static int atomisp_css2_mm_set(ia_css_ptr ptr, int c, size_t bytes)
-{
-	return hrt_isp_css_mm_set(ptr, c, bytes);
-}
-
-static ia_css_ptr atomisp_css2_mm_mmap(const void *ptr, const size_t size,
-		   uint16_t attribute, void *context)
-{
-	struct hrt_userbuffer_attr *userbuffer_attr = context;
-	return hrt_isp_css_mm_alloc_user_ptr(
-			size, (void *)ptr, userbuffer_attr->pgnr,
-			userbuffer_attr->type,
-			attribute & HRT_BUF_FLAG_CACHED);
-}
-
 void atomisp_css2_hw_store_8(hrt_address addr, uint8_t data)
 {
 	unsigned long flags;
@@ -985,13 +926,6 @@ int atomisp_css_load_firmware(struct atomisp_device *isp)
 	isp->css_env.isp_css_env.cpu_mem_env.alloc = atomisp_kernel_zalloc;
 	isp->css_env.isp_css_env.cpu_mem_env.free = atomisp_kernel_free;
 
-	isp->css_env.isp_css_env.css_mem_env.alloc = atomisp_css2_mm_alloc;
-	isp->css_env.isp_css_env.css_mem_env.free = atomisp_css2_mm_free;
-	isp->css_env.isp_css_env.css_mem_env.load = atomisp_css2_mm_load;
-	isp->css_env.isp_css_env.css_mem_env.store = atomisp_css2_mm_store;
-	isp->css_env.isp_css_env.css_mem_env.set = atomisp_css2_mm_set;
-	isp->css_env.isp_css_env.css_mem_env.mmap = atomisp_css2_mm_mmap;
-
 	isp->css_env.isp_css_env.hw_access_env.store_8 =
 							atomisp_css2_hw_store_8;
 	isp->css_env.isp_css_env.hw_access_env.store_16 =
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2400_system/hive_isp_css_2400_system_generated/ia_css_isp_states.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2400_system/hive_isp_css_2400_system_generated/ia_css_isp_states.h
index 939dc36..732adaf 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2400_system/hive_isp_css_2400_system_generated/ia_css_isp_states.h
+++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2400_system/hive_isp_css_2400_system_generated/ia_css_isp_states.h
@@ -13,7 +13,6 @@
  */
 
 #define IA_CSS_INCLUDE_STATES
-#include "ia_css_memory_access.h"
 #include "isp/kernels/aa/aa_2/ia_css_aa2.host.h"
 #include "isp/kernels/cnr/cnr_1.0/ia_css_cnr.host.h"
 #include "isp/kernels/cnr/cnr_2/ia_css_cnr2.host.h"
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2401_csi2p_system/hive_isp_css_2401_system_csi2p_generated/ia_css_isp_states.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2401_csi2p_system/hive_isp_css_2401_system_csi2p_generated/ia_css_isp_states.h
index 939dc36..732adaf 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2401_csi2p_system/hive_isp_css_2401_system_csi2p_generated/ia_css_isp_states.h
+++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2401_csi2p_system/hive_isp_css_2401_system_csi2p_generated/ia_css_isp_states.h
@@ -13,7 +13,6 @@
  */
 
 #define IA_CSS_INCLUDE_STATES
-#include "ia_css_memory_access.h"
 #include "isp/kernels/aa/aa_2/ia_css_aa2.host.h"
 #include "isp/kernels/cnr/cnr_1.0/ia_css_cnr.host.h"
 #include "isp/kernels/cnr/cnr_2/ia_css_cnr2.host.h"
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2401_system/hive_isp_css_2401_system_generated/ia_css_isp_states.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2401_system/hive_isp_css_2401_system_generated/ia_css_isp_states.h
index 939dc36..732adaf 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2401_system/hive_isp_css_2401_system_generated/ia_css_isp_states.h
+++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2401_system/hive_isp_css_2401_system_generated/ia_css_isp_states.h
@@ -13,7 +13,6 @@
  */
 
 #define IA_CSS_INCLUDE_STATES
-#include "ia_css_memory_access.h"
 #include "isp/kernels/aa/aa_2/ia_css_aa2.host.h"
 #include "isp/kernels/cnr/cnr_1.0/ia_css_cnr.host.h"
 #include "isp/kernels/cnr/cnr_2/ia_css_cnr2.host.h"
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/ia_css_env.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/ia_css_env.h
index b4bf842..4d54aea 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/ia_css_env.h
+++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/ia_css_env.h
@@ -60,53 +60,6 @@ struct ia_css_cpu_mem_env {
 #endif
 };
 
-/** Environment with function pointers for allocation of memory for the CSS.
- *  The CSS uses its own MMU which has its own set of page tables. These
- *  functions are expected to use and/or update those page tables.
- *  This type of memory allocation is expected to be used for large buffers
- *  for images and statistics.
- *  ISP pointers are always 32 bits whereas IA pointer widths will depend
- *  on the platform.
- *  Attributes can be a combination (OR'ed) of ia_css_mem_attr values.
- */
-struct ia_css_css_mem_env {
-	ia_css_ptr(*alloc)(size_t bytes, uint32_t attributes);
-	/**< Allocate memory, cached or uncached, zeroed out or not. */
-	void (*free)(ia_css_ptr ptr);
-	/**< Free ISP shared memory. The function must also accept
-	     a NULL argument, similar to C89 free(). */
-	int (*load)(ia_css_ptr ptr, void *data, size_t bytes);
-	/**< Load from ISP shared memory. This function is necessary because
-	     the IA MMU does not share page tables with the ISP MMU. This means
-	     that the IA needs to do the virtual-to-physical address
-	     translation in software. This function performs this translation.*/
-	int (*store)(ia_css_ptr ptr, const void *data, size_t bytes);
-	/**< Same as the above load function but then to write data into ISP
-	     shared memory. */
-	int (*set)(ia_css_ptr ptr, int c, size_t bytes);
-	/**< Set an ISP shared memory region to a particular value. Each byte
-	     in this region will be set to this value. In most cases this is
-	     used to zero-out memory sections in which case the argument c
-	     would have the value zero. */
-	ia_css_ptr (*mmap)(const void *ptr, const size_t size,
-			   uint16_t attribute, void *context);
-	/**< Map an pre-allocated memory region to an address. */
-#ifdef ISP2401
-
-	/* a set of matching functions with additional debug params */
-	ia_css_ptr(*alloc_ex)(size_t bytes, uint32_t attributes, const char *caller_func, int caller_line);
-	/**< same as alloc above, only with additional debug parameters */
-	void (*free_ex)(ia_css_ptr ptr, const char *caller_func, int caller_line);
-	/**< same as free above, only with additional debug parameters */
-	int (*load_ex)(ia_css_ptr ptr, void *data, size_t bytes, const char *caller_func, int caller_line);
-	/**< same as load above, only with additional debug parameters */
-	int (*store_ex)(ia_css_ptr ptr, const void *data, size_t bytes, const char *caller_func, int caller_line);
-	/**< same as store above, only with additional debug parameters */
-	int (*set_ex)(ia_css_ptr ptr, int c, size_t bytes, const char *caller_func, int caller_line);
-	/**< same as set above, only with additional debug parameters */
-#endif
-};
-
 /** Environment with function pointers to access the CSS hardware. This includes
  *  registers and local memories.
  */
@@ -151,7 +104,6 @@ struct ia_css_print_env {
  */
 struct ia_css_env {
 	struct ia_css_cpu_mem_env   cpu_mem_env;   /**< local malloc and free. */
-	struct ia_css_css_mem_env   css_mem_env;   /**< CSS/ISP buffer alloc/free */
 	struct ia_css_hw_access_env hw_access_env; /**< CSS HW access functions */
 	struct ia_css_print_env     print_env;     /**< Message printing env. */
 };
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/ia_css_memory_access.c b/drivers/staging/media/atomisp/pci/atomisp2/css2400/ia_css_memory_access.c
index a140cec..8d559aa 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/ia_css_memory_access.c
+++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/ia_css_memory_access.c
@@ -12,26 +12,16 @@
  * more details.
  */
 
-#include "ia_css_memory_access.h"
 #include <type_support.h>
 #include <system_types.h>
 #include <assert_support.h>
 #include <memory_access.h>
 #include <ia_css_env.h>
+#include <hrt/hive_isp_css_mm_hrt.h>
 
 const hrt_vaddress mmgr_NULL = (hrt_vaddress)0;
 const hrt_vaddress mmgr_EXCEPTION = (hrt_vaddress)-1;
 
-static struct ia_css_css_mem_env my_env;
-
-void
-ia_css_memory_access_init(const struct ia_css_css_mem_env *env)
-{
-	assert(env != NULL);
-
-	my_env = *env;
-}
-
 hrt_vaddress
 mmgr_malloc(const size_t size)
 {
@@ -40,21 +30,33 @@ mmgr_malloc(const size_t size)
 
 hrt_vaddress mmgr_alloc_attr(const size_t size, const uint16_t attrs)
 {
-	uint32_t my_attrs = 0;
 	uint16_t masked_attrs = attrs & MMGR_ATTRIBUTE_MASK;
-	hrt_vaddress ptr;
-
-	if (masked_attrs & MMGR_ATTRIBUTE_CACHED)
-		my_attrs |= IA_CSS_MEM_ATTR_CACHED;
-	if (masked_attrs & MMGR_ATTRIBUTE_CLEARED)
-		my_attrs |= IA_CSS_MEM_ATTR_ZEROED;
-	if (masked_attrs & MMGR_ATTRIBUTE_CONTIGUOUS)
-		my_attrs |= IA_CSS_MEM_ATTR_CONTIGUOUS;
-	if (masked_attrs & MMGR_ATTRIBUTE_PAGEALIGN)
-		my_attrs |= IA_CSS_MEM_ATTR_PAGEALIGN;
 
-	ptr = my_env.alloc(size, my_attrs);
-	return ptr;
+	if (masked_attrs & MMGR_ATTRIBUTE_CLEARED) {
+		if (masked_attrs & MMGR_ATTRIBUTE_CACHED) {
+			if (masked_attrs & MMGR_ATTRIBUTE_CONTIGUOUS)
+				return (ia_css_ptr) hrt_isp_css_mm_calloc_contiguous(size);
+			else
+				return (ia_css_ptr) hrt_isp_css_mm_calloc_cached(size);
+		} else {
+			if (masked_attrs & MMGR_ATTRIBUTE_CONTIGUOUS)
+				return (ia_css_ptr) hrt_isp_css_mm_calloc_contiguous(size);
+			else
+				return (ia_css_ptr) hrt_isp_css_mm_calloc(size);
+		}
+	} else {
+		if (masked_attrs & MMGR_ATTRIBUTE_CACHED) {
+			if (masked_attrs & MMGR_ATTRIBUTE_CONTIGUOUS)
+				return (ia_css_ptr) hrt_isp_css_mm_alloc_contiguous(size);
+			else
+				return (ia_css_ptr) hrt_isp_css_mm_alloc_cached(size);
+		} else {
+			if (masked_attrs & MMGR_ATTRIBUTE_CONTIGUOUS)
+				return (ia_css_ptr) hrt_isp_css_mm_alloc_contiguous(size);
+			else
+				return (ia_css_ptr) hrt_isp_css_mm_alloc(size);
+		}
+	}
 }
 
 hrt_vaddress
@@ -66,30 +68,34 @@ mmgr_calloc(const size_t N, const size_t size)
 void
 mmgr_free(hrt_vaddress vaddr)
 {
-	my_env.free(vaddr);
+	hrt_isp_css_mm_free(vaddr);
 }
 
 void
 mmgr_clear(hrt_vaddress vaddr, const size_t size)
 {
-	my_env.set(vaddr, 0, size);
+	hrt_isp_css_mm_set(vaddr, 0, size);
 }
 
 void
 mmgr_load(const hrt_vaddress vaddr, void *data, const size_t size)
 {
-	my_env.load(vaddr, data, size);
+	hrt_isp_css_mm_load(vaddr, data, size);
 }
 
 void
 mmgr_store(const hrt_vaddress vaddr, const void *data, const size_t size)
 {
-	my_env.store(vaddr, data, size);
+	hrt_isp_css_mm_store(vaddr, data, size);
 }
 
 hrt_vaddress
 mmgr_mmap(const void *ptr, const size_t size,
 	  uint16_t attribute, void *context)
 {
-	return my_env.mmap(ptr, size, attribute, context);
+	struct hrt_userbuffer_attr *userbuffer_attr = context;
+	return hrt_isp_css_mm_alloc_user_ptr(
+			size, (void *)ptr, userbuffer_attr->pgnr,
+			userbuffer_attr->type,
+			attribute & HRT_BUF_FLAG_CACHED);
 }
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/ia_css_memory_access.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/ia_css_memory_access.h
deleted file mode 100644
index 1d6db0b..0000000
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/ia_css_memory_access.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, 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.
- */
-
-#ifndef _IA_CSS_MEMORY_ACCESS_H_
-#define _IA_CSS_MEMORY_ACCESS_H_
-
-#include "ia_css_env.h"
-
-void
-ia_css_memory_access_init(const struct ia_css_css_mem_env *env);
-
-#endif /* _IA_CSS_MEMORY_ACCESS_H_ */
-
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/bh/bh_2/ia_css_bh.host.c b/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/bh/bh_2/ia_css_bh.host.c
index 69e708f..0dcafad 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/bh/bh_2/ia_css_bh.host.c
+++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/bh/bh_2/ia_css_bh.host.c
@@ -14,7 +14,6 @@
 
 #if !defined(HAS_NO_HMEM)
 
-#include "ia_css_memory_access.h"
 #include "memory_access.h"
 #include "ia_css_types.h"
 #include "sh_css_internal.h"
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/raw_aa_binning/raw_aa_binning_1.0/ia_css_raa.host.c b/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/raw_aa_binning/raw_aa_binning_1.0/ia_css_raa.host.c
index 74521c9..9216821 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/raw_aa_binning/raw_aa_binning_1.0/ia_css_raa.host.c
+++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/raw_aa_binning/raw_aa_binning_1.0/ia_css_raa.host.c
@@ -14,7 +14,6 @@
 
 #if !defined(HAS_NO_HMEM)
 
-#include "ia_css_memory_access.h"
 #include "memory_access.h"
 #include "ia_css_types.h"
 #include "sh_css_internal.h"
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css.c b/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css.c
index 2eab07d..3cbdcef 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css.c
+++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css.c
@@ -33,7 +33,6 @@
 #include "ia_css_rmgr.h"
 #include "ia_css_debug.h"
 #include "ia_css_debug_pipe.h"
-#include "ia_css_memory_access.h"
 #include "ia_css_device_access.h"
 #include "device_access.h"
 #include "sh_css_legacy.h"
@@ -1690,8 +1689,6 @@ ia_css_load_firmware(const struct ia_css_env *env,
 
 	ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "ia_css_load_firmware() enter\n");
 
-	ia_css_memory_access_init(&env->css_mem_env);
-
 	/* make sure we initialize my_css */
 	if ((my_css.malloc != env->cpu_mem_env.alloc) ||
 		(my_css.free != env->cpu_mem_env.free) ||
@@ -1791,7 +1788,6 @@ ia_css_init(const struct ia_css_env *env,
 	ia_css_queue_map_init();
 
 	ia_css_device_access_init(&env->hw_access_env);
-	ia_css_memory_access_init(&env->css_mem_env);
 
 	select = gpio_reg_load(GPIO0_ID, _gpio_block_reg_do_select)
 						& (~GPIO_FLASH_PIN_MASK);
