[ip] Added bug fixes for IP
authorParichay Kapoor <pk.kapoor@samsung.com>
Tue, 20 Aug 2019 06:11:53 +0000 (15:11 +0900)
committer함명주/On-Device Lab(SR)/Principal Engineer/삼성전자 <myungjoo.ham@samsung.com>
Wed, 21 Aug 2019 08:24:46 +0000 (17:24 +0900)
Added bug fixes for IP for the apptest to pass

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
src/core/ip/plugin-comm-ip.c

index 8ada859..9c150ed 100644 (file)
@@ -303,11 +303,6 @@ static int setup_hwmem (npu_device *npu_dev, const generic_buffer *in_buf, hwmem
     return -EINVAL;
   }
 
-  if ((err = hwmem_activate (hwmem_ptr)) < 0) {
-    logerr (TAG, "Fail to activate hwmem\n");
-    return err;
-  }
-
   if ((err = hwmem_get_data (hwmem_ptr, &data_ptr)) < 0) {
     logerr (TAG, "Error setting data in hwmem, errno: %d\n", err);
     goto out;
@@ -367,7 +362,7 @@ out:
     if (err == 0)
       return err2;
   }
-  
+
   return err;
 }
 
@@ -462,6 +457,11 @@ int registerNPUmodel(npudev_h dev, generic_buffer *model, uint32_t *modelid)
     return err;
   }
 
+  if ((err = hwmem_activate (hwmem_ptr)) < 0) {
+    logerr (TAG, "Fail to activate hwmem\n");
+    return err;
+  }
+
   /** handles all the buffer types */
   if ((err = setup_hwmem (dev, model, hwmem_ptr)) < 0) {
     goto out_free;
@@ -646,11 +646,6 @@ static void npu_callback (buffer *buffer_ptr, uint64_t offset, uint64_t size,
   void *data_ptr;
 
   npu_dev = data;
-  buffer_ptr_verify = libnpupriv.host_handle->getCurrentOutputBuffer(&err);
-  if (buffer_ptr_verify == NULL) {
-    logerr (TAG, "Error getting current output buffer, errno: %d", err);
-  }
-  assert (buffer_ptr_verify == buffer_ptr);
 
   DEVICE_LOCK();
 
@@ -682,6 +677,13 @@ static void npu_callback (buffer *buffer_ptr, uint64_t offset, uint64_t size,
   DEVICE_UNLOCK();
 
   if (cb != NULL) {
+    /** This should not be done for sync call, else sync cannot do this */
+    buffer_ptr_verify = libnpupriv.host_handle->getCurrentOutputBuffer(&err);
+    if (buffer_ptr_verify == NULL) {
+      logerr (TAG, "Error getting current output buffer, errno: %d", err);
+    }
+    assert (buffer_ptr_verify == buffer_ptr);
+
     output_buf = malloc (sizeof (output_buffer));
     if (output_buf == NULL) {
       logerr (TAG, "Failed allocating output buffer.");