This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 8981810e9689786db26c905a6cc609fe0f1898ed Author: Xiang Xiao <[email protected]> AuthorDate: Mon Feb 24 17:00:11 2025 +0800 drivers/rpmsg_port_spi: call rpmsg_port_spi_pm_action(false) in inactive path Only call rpmsg_port_spi_pm_action(false) when no more data to transfer to avoid unnecessary pm unlock/lock operations. Signed-off-by: Xiang Xiao <[email protected]> --- drivers/rpmsg/rpmsg_port_spi.c | 5 ++++- drivers/rpmsg/rpmsg_port_spi_slave.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/rpmsg/rpmsg_port_spi.c b/drivers/rpmsg/rpmsg_port_spi.c index db227192aa8..7aedb67ac55 100644 --- a/drivers/rpmsg/rpmsg_port_spi.c +++ b/drivers/rpmsg/rpmsg_port_spi.c @@ -461,7 +461,6 @@ static void rpmsg_port_spi_complete_handler(FAR void *arg) unlock: spin_unlock_irqrestore(&rpspi->lock, flags); out: - rpmsg_port_spi_pm_action(rpspi, false); if (atomic_xchg(&rpspi->transferring, 0) > 1) { rpmsg_port_spi_exchange(rpspi); @@ -471,6 +470,10 @@ out: { IOEXP_WRITEPIN(rpspi->ioe, rpspi->mreq, 1); } + else + { + rpmsg_port_spi_pm_action(rpspi, false); + } } /**************************************************************************** diff --git a/drivers/rpmsg/rpmsg_port_spi_slave.c b/drivers/rpmsg/rpmsg_port_spi_slave.c index 46c527abce3..d3dbb9f9d3f 100644 --- a/drivers/rpmsg/rpmsg_port_spi_slave.c +++ b/drivers/rpmsg/rpmsg_port_spi_slave.c @@ -522,12 +522,15 @@ static void rpmsg_port_spi_slave_notify(FAR struct spi_slave_dev_s *dev, unlock: spin_unlock_irqrestore(&rpspi->lock, flags); out: - rpmsg_port_spi_pm_action(rpspi, false); if (atomic_xchg(&rpspi->transferring, 0) > 1 || (rpspi->txavail > 0 && rpmsg_port_queue_nused(&rpspi->port.txq) > 0)) { rpmsg_port_spi_exchange(rpspi); } + else + { + rpmsg_port_spi_pm_action(rpspi, false); + } } /****************************************************************************
