Loading drivers/mailbox/msm_qmp.c +5 −2 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. */ #include <linux/io.h> Loading Loading @@ -377,6 +377,7 @@ static int qmp_send_data(struct mbox_chan *chan, void *data) struct qmp_pkt *pkt = (struct qmp_pkt *)data; void __iomem *addr; unsigned long flags; u32 size; int i; if (!mbox || !data || mbox->local_state != CHANNEL_CONNECTED) Loading @@ -398,13 +399,15 @@ static int qmp_send_data(struct mbox_chan *chan, void *data) memcpy32_toio(addr + sizeof(pkt->size), pkt->data, pkt->size); iowrite32(pkt->size, addr); /* readback to ensure write reflects in msgram */ size = ioread32(addr); mbox->tx_sent = true; for (i = 0; i < mbox->ctrl.num_chans; i++) { if (chan == &mbox->ctrl.chans[i]) mbox->idx_in_flight = i; } QMP_INFO(mdev->ilc, "Copied buffer to msgram sz:%d i:%d\n", pkt->size, mbox->idx_in_flight); size, mbox->idx_in_flight); send_irq(mdev); qmp_schedule_tx_timeout(mbox); spin_unlock_irqrestore(&mbox->tx_lock, flags); Loading Loading
drivers/mailbox/msm_qmp.c +5 −2 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. */ #include <linux/io.h> Loading Loading @@ -377,6 +377,7 @@ static int qmp_send_data(struct mbox_chan *chan, void *data) struct qmp_pkt *pkt = (struct qmp_pkt *)data; void __iomem *addr; unsigned long flags; u32 size; int i; if (!mbox || !data || mbox->local_state != CHANNEL_CONNECTED) Loading @@ -398,13 +399,15 @@ static int qmp_send_data(struct mbox_chan *chan, void *data) memcpy32_toio(addr + sizeof(pkt->size), pkt->data, pkt->size); iowrite32(pkt->size, addr); /* readback to ensure write reflects in msgram */ size = ioread32(addr); mbox->tx_sent = true; for (i = 0; i < mbox->ctrl.num_chans; i++) { if (chan == &mbox->ctrl.chans[i]) mbox->idx_in_flight = i; } QMP_INFO(mdev->ilc, "Copied buffer to msgram sz:%d i:%d\n", pkt->size, mbox->idx_in_flight); size, mbox->idx_in_flight); send_irq(mdev); qmp_schedule_tx_timeout(mbox); spin_unlock_irqrestore(&mbox->tx_lock, flags); Loading