diff --git a/suspend/1.0/default/main.cpp b/suspend/1.0/default/main.cpp
index 9f4bea1..3070e42 100644
--- a/suspend/1.0/default/main.cpp
+++ b/suspend/1.0/default/main.cpp
@@ -4,6 +4,7 @@
 #include <cutils/native_handle.h>
 #include <hidl/HidlTransportSupport.h>
 
+#include <sys/socket.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 
@@ -12,6 +13,7 @@
 
 using android::sp;
 using android::status_t;
+using android::base::Socketpair;
 using android::base::unique_fd;
 using android::hardware::configureRpcThreadpool;
 using android::hardware::joinRpcThreadpool;
@@ -26,12 +28,20 @@
     unique_fd wakeupCountFd{TEMP_FAILURE_RETRY(open(kSysPowerWakeupCount, O_CLOEXEC | O_RDWR))};
     if (wakeupCountFd < 0) {
         PLOG(ERROR) << "error opening " << kSysPowerWakeupCount;
-        return 1;
     }
     unique_fd stateFd{TEMP_FAILURE_RETRY(open(kSysPowerState, O_CLOEXEC | O_RDWR))};
     if (stateFd < 0) {
         PLOG(ERROR) << "error opening " << kSysPowerState;
-        return 1;
+    }
+
+    // If either /sys/power/wakeup_count or /sys/power/state fail to open, we construct
+    // SystemSuspend with blocking fds. This way this process will keep running, handle wake lock
+    // requests, collect stats, but won't suspend the device. We want this behavior on devices
+    // (hosts) where system suspend should not be handles by Android platform e.g. ARC++, Android
+    // virtual devices.
+    if (wakeupCountFd < 0 || stateFd < 0) {
+        // This will block all reads/writes to these fds from the suspend thread.
+        Socketpair(SOCK_STREAM, &wakeupCountFd, &stateFd);
     }
 
     configureRpcThreadpool(1, true /* callerWillJoin */);
