// SPDX-License-Identifier: GPL-2.0-only/* * Qualcomm ADSP/SLPI Peripheral Image Loader for MSM8974 and MSM8996 * * Copyright (C) 2016 Linaro Ltd * Copyright (C) 2014 Sony Mobile Communications AB * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. */#include<linux/clk.h>#include<linux/delay.h>#include<linux/firmware.h>#include<linux/interrupt.h>#include<linux/kernel.h>#include<linux/module.h>#include<linux/of.h>#include<linux/of_address.h>#include<linux/of_reserved_mem.h>#include<linux/platform_device.h>#include<linux/pm_domain.h>#include<linux/pm_runtime.h>#include<linux/firmware/qcom/qcom_scm.h>#include<linux/regulator/consumer.h>#include<linux/remoteproc.h>#include<linux/soc/qcom/mdt_loader.h>#include<linux/soc/qcom/smem.h>#include<linux/soc/qcom/smem_state.h>#include"qcom_common.h"#include"qcom_pil_info.h"#include"qcom_q6v5.h"#include"remoteproc_internal.h"#define ADSP_DECRYPT_SHUTDOWN_DELAY_MS 100#define MAX_ASSIGN_COUNT 3structadsp_data{intcrash_reason_smem;constchar*firmware_name;constchar*dtb_firmware_name;intpas_id;intdtb_pas_id;intlite_pas_id;unsignedintminidump_id;boolauto_boot;booldecrypt_shutdown;char**proxy_pd_names;constchar*load_state;constchar*ssr_name;constchar*sysmon_name;intssctl_id;unsignedintsmem_host_id;intregion_assign_idx;intregion_assign_count;