mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
mailbox: msm_qmp: Enhance debug logging
There are an increasing amount of reports where the tx timeout is being asserted. Add logging to mark the enter and exit of the qmp worker thread in ipc logs to correlate with the rx interrupts. Change-Id: Ie24ab7ac761b16abfeeef78bbb3907e781b6f79d Signed-off-by: Chris Lew <[email protected]>
This commit is contained in:
parent
8543fd31f2
commit
9d099b501a
1 changed files with 12 additions and 2 deletions
|
|
@ -215,6 +215,8 @@ struct qmp_device {
|
|||
*/
|
||||
static void send_irq(struct qmp_device *mdev)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/*
|
||||
* Any data associated with this event must be visable to the remote
|
||||
* before the interrupt is triggered
|
||||
|
|
@ -222,8 +224,11 @@ static void send_irq(struct qmp_device *mdev)
|
|||
wmb();
|
||||
|
||||
if (mdev->mbox_chan) {
|
||||
mbox_send_message(mdev->mbox_chan, NULL);
|
||||
ret = mbox_send_message(mdev->mbox_chan, NULL);
|
||||
mbox_client_txdone(mdev->mbox_chan, 0);
|
||||
|
||||
if (ret < 0)
|
||||
QMP_ERR(mdev->ilc, "failed to trigger ipcc irq %d\n", ret);
|
||||
} else {
|
||||
writel_relaxed(mdev->irq_mask, mdev->tx_irq_reg);
|
||||
}
|
||||
|
|
@ -527,6 +532,7 @@ static irqreturn_t qmp_irq_handler(int irq, void *priv)
|
|||
|
||||
kthread_queue_work(&mdev->kworker, &mdev->kwork);
|
||||
mdev->rx_irq_count++;
|
||||
QMP_INFO(mdev->ilc, "Queued rx worker count:%d\n", mdev->rx_irq_count);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
|
@ -542,9 +548,12 @@ static void __qmp_rx_worker(struct qmp_mbox *mbox)
|
|||
struct qmp_device *mdev = mbox->mdev;
|
||||
unsigned long flags;
|
||||
|
||||
QMP_INFO(mdev->ilc, "Enter rx worker state:%d\n", mbox->local_state);
|
||||
memcpy_fromio(&desc, mbox->desc, sizeof(desc));
|
||||
if (desc.magic != QMP_MAGIC)
|
||||
if (desc.magic != QMP_MAGIC) {
|
||||
QMP_ERR(mdev->ilc, "wrong magic 0x:%x\n", desc.magic);
|
||||
return;
|
||||
}
|
||||
|
||||
mutex_lock(&mbox->state_lock);
|
||||
switch (mbox->local_state) {
|
||||
|
|
@ -660,6 +669,7 @@ static void __qmp_rx_worker(struct qmp_mbox *mbox)
|
|||
default:
|
||||
QMP_ERR(mdev->ilc, "Local Channel State corrupted\n");
|
||||
}
|
||||
QMP_INFO(mdev->ilc, "Exit rx worker state:%d\n", mbox->local_state);
|
||||
mutex_unlock(&mbox->state_lock);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue