Lines Matching full:pm

122 	atomic_inc(&vdev->pm->reset_counter);  in ivpu_pm_reset_begin()
123 atomic_set(&vdev->pm->reset_pending, 1); in ivpu_pm_reset_begin()
124 down_write(&vdev->pm->reset_lock); in ivpu_pm_reset_begin()
143 up_write(&vdev->pm->reset_lock); in ivpu_pm_reset_complete()
144 atomic_set(&vdev->pm->reset_pending, 0); in ivpu_pm_reset_complete()
152 struct ivpu_pm_info *pm = container_of(work, struct ivpu_pm_info, recovery_work); in ivpu_pm_recovery_work() local
153 struct ivpu_device *vdev = pm->vdev; in ivpu_pm_recovery_work()
156 ivpu_err(vdev, "Recovering the NPU (reset #%d)\n", atomic_read(&vdev->pm->reset_counter)); in ivpu_pm_recovery_work()
186 if (atomic_cmpxchg(&vdev->pm->reset_pending, 0, 1) == 0) { in ivpu_pm_trigger_recovery()
189 queue_work(system_long_wq, &vdev->pm->recovery_work); in ivpu_pm_trigger_recovery()
195 struct ivpu_pm_info *pm = container_of(work, struct ivpu_pm_info, job_timeout_work.work); in ivpu_job_timeout_work() local
196 struct ivpu_device *vdev = pm->vdev; in ivpu_job_timeout_work()
206 queue_delayed_work(system_wq, &vdev->pm->job_timeout_work, msecs_to_jiffies(timeout_ms)); in ivpu_start_job_timeout_detection()
211 cancel_delayed_work_sync(&vdev->pm->job_timeout_work); in ivpu_stop_job_timeout_detection()
221 ivpu_dbg(vdev, PM, "Suspend..\n"); in ivpu_pm_suspend_cb()
237 ivpu_dbg(vdev, PM, "Suspend done.\n"); in ivpu_pm_suspend_cb()
250 ivpu_dbg(vdev, PM, "Resume..\n"); in ivpu_pm_resume_cb()
256 ivpu_dbg(vdev, PM, "Resume done.\n"); in ivpu_pm_resume_cb()
270 drm_WARN_ON(&vdev->drm, work_pending(&vdev->pm->recovery_work)); in ivpu_pm_runtime_suspend_cb()
273 ivpu_dbg(vdev, PM, "Runtime suspend..\n"); in ivpu_pm_runtime_suspend_cb()
277 is_idle = ivpu_hw_is_idle(vdev) || vdev->pm->dct_active_percent; in ivpu_pm_runtime_suspend_cb()
291 atomic_inc(&vdev->pm->reset_counter); in ivpu_pm_runtime_suspend_cb()
298 ivpu_dbg(vdev, PM, "Runtime suspend done.\n"); in ivpu_pm_runtime_suspend_cb()
311 ivpu_dbg(vdev, PM, "Runtime resume..\n"); in ivpu_pm_runtime_resume_cb()
317 ivpu_dbg(vdev, PM, "Runtime resume done.\n"); in ivpu_pm_runtime_resume_cb()
346 ivpu_dbg(vdev, PM, "Pre-reset..\n"); in ivpu_pm_reset_prepare_cb()
355 ivpu_dbg(vdev, PM, "Pre-reset done.\n"); in ivpu_pm_reset_prepare_cb()
362 ivpu_dbg(vdev, PM, "Post-reset..\n"); in ivpu_pm_reset_done_cb()
366 ivpu_dbg(vdev, PM, "Post-reset done.\n"); in ivpu_pm_reset_done_cb()
372 struct ivpu_pm_info *pm = vdev->pm; in ivpu_pm_init() local
375 pm->vdev = vdev; in ivpu_pm_init()
377 init_rwsem(&pm->reset_lock); in ivpu_pm_init()
378 atomic_set(&pm->reset_pending, 0); in ivpu_pm_init()
379 atomic_set(&pm->reset_counter, 0); in ivpu_pm_init()
381 INIT_WORK(&pm->recovery_work, ivpu_pm_recovery_work); in ivpu_pm_init()
382 INIT_DELAYED_WORK(&pm->job_timeout_work, ivpu_job_timeout_work); in ivpu_pm_init()
393 ivpu_dbg(vdev, PM, "Autosuspend delay = %d\n", delay); in ivpu_pm_init()
398 drm_WARN_ON(&vdev->drm, delayed_work_pending(&vdev->pm->job_timeout_work)); in ivpu_pm_cancel_recovery()
399 cancel_work_sync(&vdev->pm->recovery_work); in ivpu_pm_cancel_recovery()
419 if (vdev->pm->dct_active_percent) in ivpu_pm_dct_init()
420 return ivpu_pm_dct_enable(vdev, vdev->pm->dct_active_percent); in ivpu_pm_dct_init()
442 vdev->pm->dct_active_percent = active_percent; in ivpu_pm_dct_enable()
444 ivpu_dbg(vdev, PM, "DCT set to %u%% (D0: %uus, D0i2: %uus)\n", in ivpu_pm_dct_enable()
459 vdev->pm->dct_active_percent = 0; in ivpu_pm_dct_disable()
461 ivpu_dbg(vdev, PM, "DCT disabled\n"); in ivpu_pm_dct_disable()
473 if (vdev->pm->dct_active_percent) in ivpu_pm_dct_irq_thread_handler()
479 ivpu_hw_btrs_dct_set_status(vdev, enable, vdev->pm->dct_active_percent); in ivpu_pm_dct_irq_thread_handler()