[PATCH] misc: bh1770glc: queue proximity work on freezable workqueue

From: Jiale Yao

Date: Fri Oct 16 2026 - 06:20:07 EST


The proximity fallback work reads sensor registers after a delay. System
suspend powers the sensor down without cancelling that work, while
schedule_delayed_work() leaves it runnable on the non-freezable system
workqueue.

Queue the fallback work on system_freezable_wq so it cannot access the
powered-down sensor or its suspended I2C adapter.

Signed-off-by: Jiale Yao <yaojiale02@xxxxxxx>
---
drivers/misc/bh1770glc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/misc/bh1770glc.c b/drivers/misc/bh1770glc.c
index 98fc5970b2bb..3411947d9283 100644
--- a/drivers/misc/bh1770glc.c
+++ b/drivers/misc/bh1770glc.c
@@ -620,8 +620,8 @@ static irqreturn_t bh1770_irq(int irq, void *data)
* next expected interrupt time.
*/
cancel_delayed_work_sync(&chip->prox_work);
- schedule_delayed_work(&chip->prox_work,
- msecs_to_jiffies(rate + 50));
+ queue_delayed_work(system_freezable_wq, &chip->prox_work,
+ msecs_to_jiffies(rate + 50));
}
return IRQ_HANDLED;
}
--
2.34.1