linux/drivers/accel/ivpu/ivpu_hw_ip.c

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

#include "ivpu_drv.h"
#include "ivpu_fw.h"
#include "ivpu_hw.h"
#include "ivpu_hw_37xx_reg.h"
#include "ivpu_hw_40xx_reg.h"
#include "ivpu_hw_ip.h"
#include "ivpu_hw_reg_io.h"
#include "ivpu_mmu.h"
#include "ivpu_pm.h"

#define PWR_ISLAND_EN_POST_DLY_FREQ_DEFAULT
#define PWR_ISLAND_EN_POST_DLY_FREQ_HIGH
#define PWR_ISLAND_STATUS_DLY_FREQ_DEFAULT
#define PWR_ISLAND_STATUS_DLY_FREQ_HIGH
#define PWR_ISLAND_STATUS_TIMEOUT_US

#define TIM_SAFE_ENABLE
#define TIM_WATCHDOG_RESET_VALUE

#define ICB_0_IRQ_MASK_37XX

#define ICB_1_IRQ_MASK_37XX

#define ICB_0_1_IRQ_MASK_37XX

#define ICB_0_IRQ_MASK_40XX

#define ICB_1_IRQ_MASK_40XX

#define ICB_0_1_IRQ_MASK_40XX

#define ITF_FIREWALL_VIOLATION_MASK_37XX

#define ITF_FIREWALL_VIOLATION_MASK_40XX

static int wait_for_ip_bar(struct ivpu_device *vdev)
{}

static void host_ss_rst_clr(struct ivpu_device *vdev)
{}

static int host_ss_noc_qreqn_check_37xx(struct ivpu_device *vdev, u32 exp_val)
{}

static int host_ss_noc_qreqn_check_40xx(struct ivpu_device *vdev, u32 exp_val)
{}

static int host_ss_noc_qreqn_check(struct ivpu_device *vdev, u32 exp_val)
{}

static int host_ss_noc_qacceptn_check_37xx(struct ivpu_device *vdev, u32 exp_val)
{}

static int host_ss_noc_qacceptn_check_40xx(struct ivpu_device *vdev, u32 exp_val)
{}

static int host_ss_noc_qacceptn_check(struct ivpu_device *vdev, u32 exp_val)
{}

static int host_ss_noc_qdeny_check_37xx(struct ivpu_device *vdev, u32 exp_val)
{}

static int host_ss_noc_qdeny_check_40xx(struct ivpu_device *vdev, u32 exp_val)
{}

static int host_ss_noc_qdeny_check(struct ivpu_device *vdev, u32 exp_val)
{}

static int top_noc_qrenqn_check_37xx(struct ivpu_device *vdev, u32 exp_val)
{}

static int top_noc_qrenqn_check_40xx(struct ivpu_device *vdev, u32 exp_val)
{}

static int top_noc_qreqn_check(struct ivpu_device *vdev, u32 exp_val)
{}

int ivpu_hw_ip_host_ss_configure(struct ivpu_device *vdev)
{}

static void idle_gen_drive_37xx(struct ivpu_device *vdev, bool enable)
{}

static void idle_gen_drive_40xx(struct ivpu_device *vdev, bool enable)
{}

void ivpu_hw_ip_idle_gen_enable(struct ivpu_device *vdev)
{}

void ivpu_hw_ip_idle_gen_disable(struct ivpu_device *vdev)
{}

static void pwr_island_delay_set_50xx(struct ivpu_device *vdev)
{}

static void pwr_island_trickle_drive_37xx(struct ivpu_device *vdev, bool enable)
{}

static void pwr_island_trickle_drive_40xx(struct ivpu_device *vdev, bool enable)
{}

static void pwr_island_drive_37xx(struct ivpu_device *vdev, bool enable)
{}

static void pwr_island_drive_40xx(struct ivpu_device *vdev, bool enable)
{}

static void pwr_island_enable(struct ivpu_device *vdev)
{}

static int wait_for_pwr_island_status(struct ivpu_device *vdev, u32 exp_val)
{}

static void pwr_island_isolation_drive_37xx(struct ivpu_device *vdev, bool enable)
{}

static void pwr_island_isolation_drive_40xx(struct ivpu_device *vdev, bool enable)
{}

static void pwr_island_isolation_drive(struct ivpu_device *vdev, bool enable)
{}

static void pwr_island_isolation_disable(struct ivpu_device *vdev)
{}

static void host_ss_clk_drive_37xx(struct ivpu_device *vdev, bool enable)
{}

static void host_ss_clk_drive_40xx(struct ivpu_device *vdev, bool enable)
{}

static void host_ss_clk_drive(struct ivpu_device *vdev, bool enable)
{}

static void host_ss_clk_enable(struct ivpu_device *vdev)
{}

static void host_ss_rst_drive_37xx(struct ivpu_device *vdev, bool enable)
{}

static void host_ss_rst_drive_40xx(struct ivpu_device *vdev, bool enable)
{}

static void host_ss_rst_drive(struct ivpu_device *vdev, bool enable)
{}

static void host_ss_rst_enable(struct ivpu_device *vdev)
{}

static void host_ss_noc_qreqn_top_socmmio_drive_37xx(struct ivpu_device *vdev, bool enable)
{}

static void host_ss_noc_qreqn_top_socmmio_drive_40xx(struct ivpu_device *vdev, bool enable)
{}

static void host_ss_noc_qreqn_top_socmmio_drive(struct ivpu_device *vdev, bool enable)
{}

static int host_ss_axi_drive(struct ivpu_device *vdev, bool enable)
{}

static void top_noc_qreqn_drive_40xx(struct ivpu_device *vdev, bool enable)
{}

static void top_noc_qreqn_drive_37xx(struct ivpu_device *vdev, bool enable)
{}

static void top_noc_qreqn_drive(struct ivpu_device *vdev, bool enable)
{}

int ivpu_hw_ip_host_ss_axi_enable(struct ivpu_device *vdev)
{}

static int top_noc_qacceptn_check_37xx(struct ivpu_device *vdev, u32 exp_val)
{}

static int top_noc_qacceptn_check_40xx(struct ivpu_device *vdev, u32 exp_val)
{}

static int top_noc_qacceptn_check(struct ivpu_device *vdev, u32 exp_val)
{}

static int top_noc_qdeny_check_37xx(struct ivpu_device *vdev, u32 exp_val)
{}

static int top_noc_qdeny_check_40xx(struct ivpu_device *vdev, u32 exp_val)
{}

static int top_noc_qdeny_check(struct ivpu_device *vdev, u32 exp_val)
{}

static int top_noc_drive(struct ivpu_device *vdev, bool enable)
{}

int ivpu_hw_ip_top_noc_enable(struct ivpu_device *vdev)
{}

static void dpu_active_drive_37xx(struct ivpu_device *vdev, bool enable)
{}

int ivpu_hw_ip_pwr_domain_enable(struct ivpu_device *vdev)
{}

u64 ivpu_hw_ip_read_perf_timer_counter(struct ivpu_device *vdev)
{}

static void ivpu_hw_ip_snoop_disable_37xx(struct ivpu_device *vdev)
{}

static void ivpu_hw_ip_snoop_disable_40xx(struct ivpu_device *vdev)
{}

void ivpu_hw_ip_snoop_disable(struct ivpu_device *vdev)
{}

static void ivpu_hw_ip_tbu_mmu_enable_37xx(struct ivpu_device *vdev)
{}

static void ivpu_hw_ip_tbu_mmu_enable_40xx(struct ivpu_device *vdev)
{}

void ivpu_hw_ip_tbu_mmu_enable(struct ivpu_device *vdev)
{}

static int soc_cpu_boot_37xx(struct ivpu_device *vdev)
{}

static int cpu_noc_qacceptn_check_40xx(struct ivpu_device *vdev, u32 exp_val)
{}

static int cpu_noc_qdeny_check_40xx(struct ivpu_device *vdev, u32 exp_val)
{}

static void cpu_noc_top_mmio_drive_40xx(struct ivpu_device *vdev, bool enable)
{}

static int soc_cpu_drive_40xx(struct ivpu_device *vdev, bool enable)
{}

static int soc_cpu_enable(struct ivpu_device *vdev)
{}

static int soc_cpu_boot_40xx(struct ivpu_device *vdev)
{}

int ivpu_hw_ip_soc_cpu_boot(struct ivpu_device *vdev)
{}

static void wdt_disable_37xx(struct ivpu_device *vdev)
{}

static void wdt_disable_40xx(struct ivpu_device *vdev)
{}

void ivpu_hw_ip_wdt_disable(struct ivpu_device *vdev)
{}

static u32 ipc_rx_count_get_37xx(struct ivpu_device *vdev)
{}

static u32 ipc_rx_count_get_40xx(struct ivpu_device *vdev)
{}

u32 ivpu_hw_ip_ipc_rx_count_get(struct ivpu_device *vdev)
{}

void ivpu_hw_ip_irq_enable(struct ivpu_device *vdev)
{}

void ivpu_hw_ip_irq_disable(struct ivpu_device *vdev)
{}

static void diagnose_failure_37xx(struct ivpu_device *vdev)
{}

static void diagnose_failure_40xx(struct ivpu_device *vdev)
{}

void ivpu_hw_ip_diagnose_failure(struct ivpu_device *vdev)
{}

void ivpu_hw_ip_irq_clear(struct ivpu_device *vdev)
{}

static void irq_wdt_nce_handler(struct ivpu_device *vdev)
{}

static void irq_wdt_mss_handler(struct ivpu_device *vdev)
{}

static void irq_noc_firewall_handler(struct ivpu_device *vdev)
{}

/* Handler for IRQs from NPU core */
bool ivpu_hw_ip_irq_handler_37xx(struct ivpu_device *vdev, int irq)
{}

/* Handler for IRQs from NPU core */
bool ivpu_hw_ip_irq_handler_40xx(struct ivpu_device *vdev, int irq)
{}

static void db_set_37xx(struct ivpu_device *vdev, u32 db_id)
{}

static void db_set_40xx(struct ivpu_device *vdev, u32 db_id)
{}

void ivpu_hw_ip_db_set(struct ivpu_device *vdev, u32 db_id)
{}

u32 ivpu_hw_ip_ipc_rx_addr_get(struct ivpu_device *vdev)
{}

void ivpu_hw_ip_ipc_tx_set(struct ivpu_device *vdev, u32 vpu_addr)
{}