Re:[PATCH 1/2] mfd: si476x: queue polling work on freezable workqueue
From: jiale yao
Date: Sat Oct 17 2026 - 03:20:01 EST
At 2026-10-16 18:05:02, "Jiale Yao" <yaojiale02@xxxxxxx> wrote:
>SI476x devices without an interrupt continuously poll their status over
>I2C. The polling callback runs on the non-freezable system workqueue and
>can issue a transfer after the adapter has been suspended.
>
>Queue status polling on system_freezable_wq so it stops before device
>suspend and continues after resume.
>
Fixes: 730a30ab7fba ("mfd: si476x: Add the bulk of the core driver")
>Signed-off-by: Jiale Yao <yaojiale02@xxxxxxx>
>---
> drivers/mfd/si476x-i2c.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/mfd/si476x-i2c.c b/drivers/mfd/si476x-i2c.c
>index 9bce720a0a08..8d952113f8a6 100644
>--- a/drivers/mfd/si476x-i2c.c
>+++ b/drivers/mfd/si476x-i2c.c
>@@ -17,6 +17,7 @@
> #include <linux/regulator/consumer.h>
> #include <linux/i2c.h>
> #include <linux/err.h>
>+#include <linux/workqueue.h>
>
> #include <linux/mfd/si476x-core.h>
>
>@@ -97,8 +98,8 @@ static int si476x_core_config_pinmux(struct si476x_core *core)
>
> static inline void si476x_core_schedule_polling_work(struct si476x_core *core)
> {
>- schedule_delayed_work(&core->status_monitor,
>- usecs_to_jiffies(SI476X_STATUS_POLL_US));
>+ queue_delayed_work(system_freezable_wq, &core->status_monitor,
>+ usecs_to_jiffies(SI476X_STATUS_POLL_US));
> }
>
> /**
>--
>2.34.1