diff --git a/applications/driver_unit_tests/command_stream.cpp b/applications/driver_unit_tests/command_stream.cpp
index ede9dd6..e099b73 100644
--- a/applications/driver_unit_tests/command_stream.cpp
+++ b/applications/driver_unit_tests/command_stream.cpp
@@ -58,38 +58,38 @@
 
 Pmu::Pmu(ethosu_driver *_drv, const PmuEvents &_config) : drv(_drv), config(_config) {
     // Enable PMU block
-    ETHOSU_PMU_Enable_v2(drv);
+    ETHOSU_PMU_Enable(drv);
 
     // Enable cycle counter
-    ETHOSU_PMU_CNTR_Enable_v2(drv, ETHOSU_PMU_CCNT_Msk);
+    ETHOSU_PMU_CNTR_Enable(drv, ETHOSU_PMU_CCNT_Msk);
 
     // Configure event types
     for (size_t i = 0; i < config.size(); i++) {
-        ETHOSU_PMU_Set_EVTYPER_v2(drv, i, config[i]);
-        ETHOSU_PMU_CNTR_Enable_v2(drv, 1 << i);
+        ETHOSU_PMU_Set_EVTYPER(drv, i, config[i]);
+        ETHOSU_PMU_CNTR_Enable(drv, 1 << i);
     }
 }
 
 void Pmu::clear() {
-    ETHOSU_PMU_CYCCNT_Reset_v2(drv);
-    ETHOSU_PMU_EVCNTR_ALL_Reset_v2(drv);
+    ETHOSU_PMU_CYCCNT_Reset(drv);
+    ETHOSU_PMU_EVCNTR_ALL_Reset(drv);
 }
 
 void Pmu::print() {
     printf("PMU={cycleCount=%llu, events=[%" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 "]}\n",
-           ETHOSU_PMU_Get_CCNTR_v2(drv),
-           ETHOSU_PMU_Get_EVCNTR_v2(drv, 0),
-           ETHOSU_PMU_Get_EVCNTR_v2(drv, 1),
-           ETHOSU_PMU_Get_EVCNTR_v2(drv, 2),
-           ETHOSU_PMU_Get_EVCNTR_v2(drv, 3));
+           ETHOSU_PMU_Get_CCNTR(drv),
+           ETHOSU_PMU_Get_EVCNTR(drv, 0),
+           ETHOSU_PMU_Get_EVCNTR(drv, 1),
+           ETHOSU_PMU_Get_EVCNTR(drv, 2),
+           ETHOSU_PMU_Get_EVCNTR(drv, 3));
 }
 
 uint64_t Pmu::getCycleCount() const {
-    return ETHOSU_PMU_Get_CCNTR_v2(drv);
+    return ETHOSU_PMU_Get_CCNTR(drv);
 }
 
 uint32_t Pmu::getEventCount(size_t index) const {
-    return ETHOSU_PMU_Get_EVCNTR_v2(drv, index);
+    return ETHOSU_PMU_Get_EVCNTR(drv, index);
 }
 
 /****************************************************************************
