linux/drivers/accel/ivpu/ivpu_pm.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2020-2024 Intel Corporation
 */

#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)
{}