diff --git a/HalideIR b/HalideIR
index 6f64f7866747a2a81bec84aea9bde0479c5b72c1..f519848d972c67971b4cbf8c34070d5a5e3ede0d 160000
--- a/HalideIR
+++ b/HalideIR
@@ -1 +1 @@
-Subproject commit 6f64f7866747a2a81bec84aea9bde0479c5b72c1
+Subproject commit f519848d972c67971b4cbf8c34070d5a5e3ede0d
diff --git a/dlpack b/dlpack
index 10892ac964f1af7c81aae145cd3fab78bbccd297..bee4d1dd8dc1ee4a1fd8fa6a96476c2f8b7492a3 160000
--- a/dlpack
+++ b/dlpack
@@ -1 +1 @@
-Subproject commit 10892ac964f1af7c81aae145cd3fab78bbccd297
+Subproject commit bee4d1dd8dc1ee4a1fd8fa6a96476c2f8b7492a3
diff --git a/include/tvm/runtime/c_runtime_api.h b/include/tvm/runtime/c_runtime_api.h
index 52499fb9186f3a11ae1a8bc4dce0f50fcdfea188..75e936d8f502b0db606dcab42a5225fc1804e997 100644
--- a/include/tvm/runtime/c_runtime_api.h
+++ b/include/tvm/runtime/c_runtime_api.h
@@ -62,11 +62,7 @@ typedef int64_t tvm_index_t;
 typedef enum {
   kDLAOCL = 5,
   kDLSDAccel = 6,
-  kDLVulkan = 7,
   kOpenGL = 11,
-  // Extension DRAM type, used for quickly test extension device
-  // The device api can differ depending on the xpu driver registered.
-  kExtDev = 12,
   // AddExtraTVMType which is not in DLPack here
 } TVMDeviceExtType;
 
diff --git a/src/codegen/build_module.cc b/src/codegen/build_module.cc
index fef5a28b1d218bf0d14d6323fa20bc085cab483e..f35b09d1dfe621a5686fc8a8f8d967a5426fd759 100644
--- a/src/codegen/build_module.cc
+++ b/src/codegen/build_module.cc
@@ -102,7 +102,7 @@ Target CreateTarget(const std::string& target_name,
   } else if (target_name == "stackvm") {
     t->device_type = kDLCPU;
   } else if (target_name == "ext_dev") {
-    t->device_type = kExtDev;
+    t->device_type = kDLExtDev;
   } else {
     LOG(ERROR) << "Unknown target name " << target_name;
     return target::stackvm();
diff --git a/src/runtime/c_runtime_api.cc b/src/runtime/c_runtime_api.cc
index a081a4c1df113f97e393f17bc1f4688401a7067d..b566b9a3f608d7f13328b778cfebf82b9e81cf7e 100644
--- a/src/runtime/c_runtime_api.cc
+++ b/src/runtime/c_runtime_api.cc
@@ -38,7 +38,7 @@ inline std::string DeviceName(int type) {
     case kDLVPI: return "vpi";
     case kDLROCM: return "rocm";
     case kOpenGL: return "opengl";
-    case kExtDev: return "ext_dev";
+    case kDLExtDev: return "ext_dev";
     default: LOG(FATAL) << "unknown type =" << type; return "Unknown";
   }
 }
diff --git a/vta/src/device_api.cc b/vta/src/device_api.cc
index 88990e1b1331c357d2d962dd5183331ec01c8c95..a2729baa25913b6375d6ac4587c56570eda55277 100644
--- a/vta/src/device_api.cc
+++ b/vta/src/device_api.cc
@@ -72,8 +72,7 @@ class VTADeviceAPI final : public DeviceAPI {
 
 struct VTAWorkspacePool : public WorkspacePool {
   VTAWorkspacePool() :
-      WorkspacePool(static_cast<DLDeviceType>(kExtDev),
-                    VTADeviceAPI::Global()) {}
+      WorkspacePool(kDLExtDev, VTADeviceAPI::Global()) {}
 };
 
 void* VTADeviceAPI::AllocWorkspace(TVMContext ctx, size_t size, TVMType type_hint) {