alloc_ordered_workqueue() with WQ_MEM_RECLAIM set, replaces
deprecated create_singlethread_workqueue(). This is the identity
conversion. The workqueue "ts_workq" has been identity converted.

It queues work items viz &wm->ts_reader and &wm->pen_event_work which map
to wm97xx_pen_irq_worker (handles a pen down interrupt) and
wm97xx_ts_reader (the touchscreen sample reader) respectively. Hence,
an ordered dedicated workqueue has been used.

WQ_MEM_RECLAIM has been set to ensure forward progress under memory
pressure.

Signed-off-by: Bhaktipriya Shridhar <[email protected]>
---
 drivers/input/touchscreen/wm97xx-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/input/touchscreen/wm97xx-core.c 
b/drivers/input/touchscreen/wm97xx-core.c
index 1534e9b..c0af844 100644
--- a/drivers/input/touchscreen/wm97xx-core.c
+++ b/drivers/input/touchscreen/wm97xx-core.c
@@ -500,7 +500,7 @@ static int wm97xx_ts_input_open(struct input_dev *idev)
 {
        struct wm97xx *wm = input_get_drvdata(idev);

-       wm->ts_workq = create_singlethread_workqueue("kwm97xx");
+       wm->ts_workq = alloc_ordered_workqueue("kwm97xx", WQ_MEM_RECLAIM);
        if (wm->ts_workq == NULL) {
                dev_err(wm->dev,
                        "Failed to create workqueue\n");
--
2.1.4

Reply via email to