diff --git a/src/runtime/cpu/operators/CpuGemmDirectConv2d.h b/src/runtime/cpu/operators/CpuGemmDirectConv2d.h
index 305a076..6aa17c2 100644
--- a/src/runtime/cpu/operators/CpuGemmDirectConv2d.h
+++ b/src/runtime/cpu/operators/CpuGemmDirectConv2d.h
@@ -48,7 +48,7 @@
 {
 public:
     /** Constructor */
-    CpuGemmDirectConv2d();
+    CpuGemmDirectConv2d(const std::shared_ptr<IMemoryManager> &memory_manager = nullptr);
     ARM_COMPUTE_DISALLOW_COPY_ALLOW_MOVE(CpuGemmDirectConv2d);
     /** Destructor */
     ~CpuGemmDirectConv2d();
@@ -80,16 +80,15 @@
     void configure(const ITensorInfo *src, const ITensorInfo *weights, const ITensorInfo *biases, ITensorInfo *dst, const Conv2dInfo &info);
     /** Static function to check if given info will lead to a valid configuration of @ref CpuGemmDirectConv2d
      *
-     * Similar to @ref CpuGemmDirectConv2d::configure()
+     * Similar to CpuGemmDirectConv2d::configure()
      *
      * @return a status
      */
     static Status validate(const ITensorInfo *src, const ITensorInfo *weights, const ITensorInfo *biases, const ITensorInfo *dst, const Conv2dInfo &info);
 
     // Inherited methods overridden:
-    void                             run(ITensorPack &tensors) override;
-    void                             prepare(ITensorPack &constants) override;
-    experimental::MemoryRequirements workspace() const override;
+    void run(ITensorPack &tensors) override;
+    void prepare(ITensorPack &constants) override;
 
 private:
     std::unique_ptr<CpuGemmAssemblyDispatch> _gemm_asm_func;
@@ -101,13 +100,11 @@
     bool                                     _is_prepared{ false };
     bool                                     _run_activation{ false };
 
-    /** Function to import workspace tensors
+    /** Function to allocated a tensor for permuted weights
      *
-     * @param[in] tensors Tensor pack includes workspace tensors
+     * @note This function will be removed when memory injection is properly implemented.
      */
-    void import_workspace_memory(ITensorPack &tensors);
-    /** Function free used workspace tensors */
-    void free_imported_workspace_memory();
+    void allocate_permuted_weights();
 };
 } // namespace cpu
 } // namespace arm_compute
