Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7fb23e31 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "soc: qcom: add snapshot of MBA based modem PIL"

parents 3692bb75 5803201c
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -321,6 +321,15 @@ config MSM_PIL_SSR_GENERIC
	  or a fatal error. Subsystems include LPASS, Venus, VPU, WCNSS and
	  BCSS.

config MSM_PIL_MSS_QDSP6V5
	tristate "MSS QDSP6v5 (Hexagon) Boot Support"
	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
	help
	 Support for booting and shutting down QDSP6v5 (Hexagon) processors
	 in modem subsystems. If you would like to make or receive phone
	 calls then say Y here.
	 If unsure, say N.

config MSM_SERVICE_LOCATOR
	tristate "Service Locator"
	select QCOM_QMI_HELPERS
+1 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ obj-$(CONFIG_MSM_SUBSYSTEM_RESTART) += subsystem_restart.o
obj-$(CONFIG_MSM_CDSP_LOADER) += qdsp6v2/
subsystem_restart-y := msm_subsystem_restart.o subsystem_notif.o ramdump.o sysmon-qmi.o
obj-$(CONFIG_MSM_PIL_SSR_GENERIC) += subsys-pil-tz.o
obj-$(CONFIG_MSM_PIL_MSS_QDSP6V5) += pil-q6v5.o pil-msa.o pil-q6v5-mss.o
obj-$(CONFIG_MSM_SERVICE_NOTIFIER) += service-notifier.o
obj-$(CONFIG_MSM_SERVICE_LOCATOR) += service-locator.o
obj-$(CONFIG_QCOM_QMI_HELPERS)	+= qmi_helpers.o
+1008 −0

File added.

Preview size limit exceeded, changes collapsed.

+56 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2012-2021, The Linux Foundation. All rights reserved.
 */

#ifndef __MSM_PIL_MSA_H
#define __MSM_PIL_MSA_H

#include <soc/qcom/subsystem_restart.h>

#include "peripheral-loader.h"

struct modem_data {
	struct device *dev;
	struct q6v5_data *q6;
	struct subsys_device *subsys;
	struct subsys_desc subsys_desc;
	void *ramdump_dev;
	void *minidump_dev;
	bool crash_shutdown;
	u32 pas_id;
	bool ignore_errors;
	struct completion err_ready;
	struct completion stop_ack;
	void __iomem *rmb_base;
	struct clk *xo;
	struct pil_desc desc;
	struct device mba_mem_dev;
	struct device *mba_mem_dev_fixed;
	unsigned long attrs_dma;
	int is_not_loadable;
	unsigned int err_fatal_irq;
	unsigned int err_ready_irq;
	unsigned int stop_ack_irq;
	unsigned int wdog_bite_irq;
	unsigned int generic_irq;
	int ramdump_disable_irq;
	int shutdown_ack_irq;
	int force_stop_bit;
	struct qcom_smem_state *state;
};

extern struct pil_reset_ops pil_msa_mss_ops;
extern struct pil_reset_ops pil_msa_mss_ops_selfauth;
extern struct pil_reset_ops pil_msa_femto_mba_ops;

int pil_mss_reset_load_mba(struct pil_desc *pil);
int pil_mss_make_proxy_votes(struct pil_desc *pil);
void pil_mss_remove_proxy_votes(struct pil_desc *pil);
int pil_mss_shutdown(struct pil_desc *pil);
int pil_mss_deinit_image(struct pil_desc *pil);
int __pil_mss_deinit_image(struct pil_desc *pil, bool err_path);
int pil_mss_assert_resets(struct q6v5_data *drv);
int pil_mss_deassert_resets(struct q6v5_data *drv);
int pil_mss_debug_reset(struct pil_desc *pil);
#endif
+810 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading