ApplicationApplicationDeviceDevicePM SubsystemPM SubsystemSystem WorkqueueSystem Workqueueoperation(dev)pm_device_runtime_get(dev)Increase usagealt[usage == 1]PM_DEVICE_ACTION_RESUMEOperationpm_device_runtime_put_async(dev)Decrease usagealt[usage == 0]Schedule suspendalt[Scheduled suspend]PM_DEVICE_ACTION_SUSPEND