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

Commit d339a4b4 authored by Siddharth Bhal's avatar Siddharth Bhal Committed by Gerrit - the friendly Code Review server
Browse files

wcnss: Ensure wcnss clocks are present before register dump



Adding wcnss 'measure' and 'debug' clock checks before dumping
wcnss pronto registers. This is required to ensure that registers
are dumped only when required clocks are present, otherwise it
could lead to undefined behavior.

CRs-Fixed: 815208
Change-Id: Iaa920b7f9ad02ef0a4e9e1537f2cd5de8be60b63
Signed-off-by: default avatarSiddharth Bhal <sbhal@codeaurora.org>
parent d4bc64ea
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -1154,6 +1154,25 @@ void wcnss_reset_intr(void)
}
EXPORT_SYMBOL(wcnss_reset_intr);

void wcnss_reset_fiq(bool clk_chk_en)
{
	if (wcnss_hardware_type() == WCNSS_PRONTO_HW) {
		if (clk_chk_en) {
			wcnss_log_debug_regs_on_bite();
		} else {
			wcnss_pronto_log_debug_regs();
			if (wcnss_get_mux_control())
				wcnss_log_iris_regs();
		}
		/* Insert memory barrier before writing fiq register */
		wmb();
		__raw_writel(1 << 16, penv->fiq_reg);
	} else {
		wcnss_riva_log_debug_regs();
	}
}
EXPORT_SYMBOL(wcnss_reset_fiq);

static int wcnss_create_sysfs(struct device *dev)
{
	int ret;
+1 −0
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ int wcnss_hardware_type(void);
void *wcnss_prealloc_get(unsigned int size);
int wcnss_prealloc_put(void *ptr);
void wcnss_reset_intr(void);
void wcnss_reset_fiq(bool clk_chk_en);
void wcnss_suspend_notify(void);
void wcnss_resume_notify(void);
void wcnss_riva_log_debug_regs(void);