#include <linux/highmem.h>
#include <linux/moduleparam.h>
#include <linux/pci.h>
#include <linux/pm_runtime.h>
#include <linux/reboot.h>
#include "vpu_boot_api.h"
#include "ivpu_drv.h"
#include "ivpu_hw.h"
#include "ivpu_fw.h"
#include "ivpu_fw_log.h"
#include "ivpu_ipc.h"
#include "ivpu_job.h"
#include "ivpu_jsm_msg.h"
#include "ivpu_mmu.h"
#include "ivpu_ms.h"
#include "ivpu_pm.h"
static bool ivpu_disable_recovery;
module_param_named_unsafe(disable_recovery, ivpu_disable_recovery, bool, 0644);
MODULE_PARM_DESC(…) …;
static unsigned long ivpu_tdr_timeout_ms;
module_param_named(tdr_timeout_ms, ivpu_tdr_timeout_ms, ulong, 0644);
MODULE_PARM_DESC(…) …;
#define PM_RESCHEDULE_LIMIT …
static void ivpu_pm_prepare_cold_boot(struct ivpu_device *vdev)
{ … }
static void ivpu_pm_prepare_warm_boot(struct ivpu_device *vdev)
{ … }
static int ivpu_suspend(struct ivpu_device *vdev)
{ … }
static int ivpu_resume(struct ivpu_device *vdev)
{ … }
static void ivpu_pm_recovery_work(struct work_struct *work)
{ … }
void ivpu_pm_trigger_recovery(struct ivpu_device *vdev, const char *reason)
{ … }
static void ivpu_job_timeout_work(struct work_struct *work)
{ … }
void ivpu_start_job_timeout_detection(struct ivpu_device *vdev)
{ … }
void ivpu_stop_job_timeout_detection(struct ivpu_device *vdev)
{ … }
int ivpu_pm_suspend_cb(struct device *dev)
{ … }
int ivpu_pm_resume_cb(struct device *dev)
{ … }
int ivpu_pm_runtime_suspend_cb(struct device *dev)
{ … }
int ivpu_pm_runtime_resume_cb(struct device *dev)
{ … }
int ivpu_rpm_get(struct ivpu_device *vdev)
{ … }
void ivpu_rpm_put(struct ivpu_device *vdev)
{ … }
void ivpu_pm_reset_prepare_cb(struct pci_dev *pdev)
{ … }
void ivpu_pm_reset_done_cb(struct pci_dev *pdev)
{ … }
void ivpu_pm_init(struct ivpu_device *vdev)
{ … }
void ivpu_pm_cancel_recovery(struct ivpu_device *vdev)
{ … }
void ivpu_pm_enable(struct ivpu_device *vdev)
{ … }
void ivpu_pm_disable(struct ivpu_device *vdev)
{ … }
int ivpu_pm_dct_init(struct ivpu_device *vdev)
{ … }
int ivpu_pm_dct_enable(struct ivpu_device *vdev, u8 active_percent)
{ … }
int ivpu_pm_dct_disable(struct ivpu_device *vdev)
{ … }
void ivpu_pm_dct_irq_thread_handler(struct ivpu_device *vdev)
{ … }