drivers/rpmsg_port_spi/slave: remove the pm prepare ops

Use pm wakelock is enough to make sure system will not suspend
when there is a transfer in process, and it can actually sleep when
there is buffer to send but peer side not response in 1ms which is
the timeout we set.

Signed-off-by: liaoao <liaoao@xiaomi.com>
This commit is contained in:
liaoao
2025-03-21 15:16:28 +08:00
committed by Xiang Xiao
parent a52dc0e785
commit 49d95aa0d1
2 changed files with 0 additions and 80 deletions
-40
View File
@@ -107,7 +107,6 @@ struct rpmsg_port_spi_s
volatile uint8_t state;
spinlock_t lock;
#ifdef CONFIG_PM
struct pm_callback_s pmcb;
spinlock_t pmlock;
struct wdog_s wdog;
struct pm_wakelock_s wakelock;
@@ -203,43 +202,6 @@ rpmsg_port_spi_pm_action(FAR struct rpmsg_port_spi_s *rpspi, bool stay)
spin_unlock_irqrestore(&rpspi->pmlock, flags);
}
/****************************************************************************
* Name: rpmsg_port_spi_prepare
****************************************************************************/
static int rpmsg_port_spi_prepare(FAR struct pm_callback_s *cb, int domain,
enum pm_state_e pmstate)
{
FAR struct rpmsg_port_spi_s *rpspi =
container_of(cb, struct rpmsg_port_spi_s, pmcb);
enum pm_state_e oldstate;
oldstate = pm_querystate(PM_IDLE_DOMAIN);
switch (oldstate)
{
case PM_NORMAL:
case PM_IDLE:
case PM_STANDBY:
if (pmstate == PM_SLEEP)
{
if (atomic_load(&rpspi->transferring) ||
rpmsg_port_queue_nused(&rpspi->port.rxq) > 0 ||
rpmsg_port_queue_nused(&rpspi->port.txq) > 0)
{
rpmsgerr("rpmsg port spi busy\n");
return -EBUSY;
}
}
break;
case PM_SLEEP:
default:
break;
}
return 0;
}
#else
# define rpmsg_port_spi_pm_action(rpspi, stay)
#endif
@@ -834,8 +796,6 @@ rpmsg_port_spi_initialize(FAR const struct rpmsg_port_config_s *cfg,
}
#ifdef CONFIG_PM
rpspi->pmcb.prepare = rpmsg_port_spi_prepare;
pm_register(&rpspi->pmcb);
spin_lock_init(&rpspi->pmlock);
pm_wakelock_init(&rpspi->wakelock, cfg->remotecpu,
PM_IDLE_DOMAIN, PM_NORMAL);
-40
View File
@@ -110,7 +110,6 @@ struct rpmsg_port_spi_s
volatile uint8_t state;
spinlock_t lock;
#ifdef CONFIG_PM
struct pm_callback_s pmcb;
spinlock_t pmlock;
struct wdog_s wdog;
struct pm_wakelock_s wakelock;
@@ -226,43 +225,6 @@ rpmsg_port_spi_pm_action(FAR struct rpmsg_port_spi_s *rpspi, bool stay)
spin_unlock_irqrestore(&rpspi->pmlock, flags);
}
/****************************************************************************
* Name: rpmsg_port_spi_prepare
****************************************************************************/
static int rpmsg_port_spi_prepare(FAR struct pm_callback_s *cb, int domain,
enum pm_state_e pmstate)
{
FAR struct rpmsg_port_spi_s *rpspi =
container_of(cb, struct rpmsg_port_spi_s, pmcb);
enum pm_state_e oldstate;
oldstate = pm_querystate(PM_IDLE_DOMAIN);
switch (oldstate)
{
case PM_NORMAL:
case PM_IDLE:
case PM_STANDBY:
if (pmstate == PM_SLEEP)
{
if (atomic_load(&rpspi->transferring) ||
rpmsg_port_queue_nused(&rpspi->port.rxq) > 0 ||
rpmsg_port_queue_nused(&rpspi->port.txq) > 0)
{
rpmsgerr("rpmsg port spi busy\n");
return -EBUSY;
}
}
break;
case PM_SLEEP:
default:
break;
}
return 0;
}
#else
# define rpmsg_port_spi_pm_action(rpspi, stay)
#endif
@@ -874,8 +836,6 @@ rpmsg_port_spi_slave_initialize(FAR const struct rpmsg_port_config_s *cfg,
}
#ifdef CONFIG_PM
rpspi->pmcb.prepare = rpmsg_port_spi_prepare;
pm_register(&rpspi->pmcb);
spin_lock_init(&rpspi->pmlock);
pm_wakelock_init(&rpspi->wakelock, cfg->remotecpu,
PM_IDLE_DOMAIN, PM_NORMAL);