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

Commit bddb8cca authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "drivers: mailbox: qti-tcs: increase debug verbosity"

parents 37b11709 d9abfa6c
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@
 *
 */

#define pr_fmt(fmt) "%s:%s " fmt, KBUILD_MODNAME, __func__
#define pr_fmt(fmt) "%s " fmt, KBUILD_MODNAME

#include <linux/atomic.h>
#include <linux/bitmap.h>
@@ -270,7 +270,7 @@ static void print_response(struct tcs_drv *drv, int m)
		return;

	msg = resp->msg;
	pr_warn("Response object idx=%d:\n\tfor-tcs=%d\tin-use=%d\n",
	pr_warn("Response object [idx=%d for-tcs=%d in-use=%d]\n",
			resp->idx, resp->m, resp->in_use);
	pr_warn("Msg: state=%d\n", msg->state);
	for (i = 0; i < msg->num_payload; i++)
@@ -831,7 +831,7 @@ static void print_tcs_regs(struct tcs_drv *drv, int m)
	int n;
	struct tcs_mbox *tcs = get_tcs_from_index(drv, m);
	void __iomem *base = drv->reg_base;
	u32 enable, addr, data, msgid;
	u32 enable, addr, data, msgid, sts, irq_sts;

	if (!tcs || tcs_is_free(drv, m))
		return;
@@ -840,15 +840,24 @@ static void print_tcs_regs(struct tcs_drv *drv, int m)
	if (!enable)
		return;

	pr_warn("TCS-%d contents:\n", m);
	pr_warn("RSC:%s\n", drv->name);

	sts = read_tcs_reg(base, TCS_DRV_STATUS, m, 0);
	data = read_tcs_reg(base, TCS_DRV_CONTROL, m, 0);
	irq_sts = read_tcs_reg(base, TCS_DRV_IRQ_STATUS, 0, 0);
	pr_warn("TCS=%d [ctrlr-sts:%s amc-mode:0x%x irq-sts:%s]\n",
			m, sts ? "IDLE" : "BUSY", data,
			(irq_sts & BIT(m)) ? "COMPLETED" : "PENDING");

	for (n = 0; n < tcs->ncpt; n++) {
		if (!(enable & BIT(n)))
			continue;
		addr = read_tcs_reg(base, TCS_DRV_CMD_ADDR, m, n);
		data = read_tcs_reg(base, TCS_DRV_CMD_DATA, m, n);
		msgid = read_tcs_reg(base, TCS_DRV_CMD_MSGID, m, n);
		pr_warn("\tn=%d addr=0x%x data=0x%x hdr=0x%x\n",
						n, addr, data, msgid);
		sts = read_tcs_reg(base, TCS_DRV_CMD_STATUS, m, n);
		pr_warn("\tCMD=%d [addr=0x%x data=0x%x hdr=0x%x sts=0x%x]\n",
						n, addr, data, msgid, sts);
	}
}

+5 −0
Original line number Diff line number Diff line
@@ -190,6 +190,7 @@ static inline void wait_for_tx_done(struct rpmh_client *rc,
{
	int ret;
	int count = 4;
	int skip = 0;

	do {
		ret = wait_for_completion_timeout(compl, RPMH_TIMEOUT);
@@ -201,6 +202,10 @@ static inline void wait_for_tx_done(struct rpmh_client *rc,
			return;
		}
		if (!count) {
			if (skip++ % 100)
				continue;
			dev_err(rc->dev,
				"RPMH waiting for interrupt from AOSS\n");
			mbox_chan_debug(rc->chan);
		} else {
			dev_err(rc->dev,