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

Commit 624d3c0d authored by Sameer Thalappil's avatar Sameer Thalappil
Browse files

wcnss: Add two registers to wcnss dump



When a WDI timeout or Watchdog bite happens at WCNSS, certain WCNSS
registers are logged for debug purpose.  Add alarms txctl and alarms
tactl registers to the dump.

Change-Id: Id79345666dd7e5b3d43b13fff5d8230e4fd38655
CRs-fixed: 587892
Acked-by: default avatarYuanyuan Liu <yuanliu@qca.qualcomm.com>
Signed-off-by: default avatarSameer Thalappil <sameert@codeaurora.org>
parent 70979abc
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -147,6 +147,9 @@ static DEFINE_SPINLOCK(reg_spinlock);
#define MSM_PRONTO_TXP_PHY_ABORT        0xfb080488
#define MSM_PRONTO_BRDG_ERR_SRC         0xfb080fb0

#define MSM_PRONTO_ALARMS_TXCTL         0xfb0120a8
#define MSM_PRONTO_ALARMS_TACTL         0xfb012448

#define WCNSS_DEF_WLAN_RX_BUFF_COUNT		1024
#define WCNSS_VBATT_THRESHOLD		3500000
#define WCNSS_VBATT_GUARD		200
@@ -338,6 +341,8 @@ static struct {
	void __iomem *wlan_tx_status;
	void __iomem *wlan_tx_phy_aborts;
	void __iomem *wlan_brdg_err_source;
	void __iomem *alarms_txctl;
	void __iomem *alarms_tactl;
	void __iomem *fiq_reg;
	int	nv_downloaded;
	unsigned char *fw_cal_data;
@@ -649,6 +654,12 @@ void wcnss_pronto_log_debug_regs(void)

	reg = readl_relaxed(penv->wlan_tx_status);
	pr_err("WLAN_TXP_STATUS %08x\n", reg);

	reg = readl_relaxed(penv->alarms_txctl);
	pr_err("ALARMS_TXCTL %08x\n", reg);

	reg = readl_relaxed(penv->alarms_tactl);
	pr_err("ALARMS_TACTL %08x\n", reg);
}
EXPORT_SYMBOL(wcnss_pronto_log_debug_regs);

@@ -1948,6 +1959,18 @@ wcnss_trigger_config(struct platform_device *pdev)
			pr_err("%s: ioremap wlan TX STATUS failed\n", __func__);
			goto fail_ioremap9;
		}
		penv->alarms_txctl = ioremap(MSM_PRONTO_ALARMS_TXCTL, SZ_8);
		if (!penv->alarms_txctl) {
			ret = -ENOMEM;
			pr_err("%s: ioremap alarms TXCTL failed\n", __func__);
			goto fail_ioremap10;
		}
		penv->alarms_tactl = ioremap(MSM_PRONTO_ALARMS_TACTL, SZ_8);
		if (!penv->alarms_tactl) {
			ret = -ENOMEM;
			pr_err("%s: ioremap alarms TACTL failed\n", __func__);
			goto fail_ioremap11;
		}
	}
	penv->adc_tm_dev = qpnp_get_adc_tm(&penv->pdev->dev, "wcnss");
	if (IS_ERR(penv->adc_tm_dev)) {
@@ -1973,6 +1996,12 @@ wcnss_trigger_config(struct platform_device *pdev)
fail_pil:
	if (penv->riva_ccu_base)
		iounmap(penv->riva_ccu_base);
	if (penv->alarms_tactl)
		iounmap(penv->alarms_tactl);
fail_ioremap11:
	if (penv->alarms_txctl)
		iounmap(penv->alarms_txctl);
fail_ioremap10:
	if (penv->wlan_tx_status)
		iounmap(penv->wlan_tx_status);
fail_ioremap9: