summaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host/wbsd.h
diff options
context:
space:
mode:
authorAllen Pais <allen.lkml@gmail.com>2024-07-01 12:07:33 +0200
committerUlf Hansson <ulf.hansson@linaro.org>2024-07-08 11:41:30 +0200
commit921c87ba3893b5d3608e7f248366266b40b86c75 (patch)
tree46d8d628a666d161233a05c9a7a2fd953c9d226c /drivers/mmc/host/wbsd.h
parentmmc: sdhi: Convert from tasklet to BH workqueue (diff)
downloadlinux-921c87ba3893b5d3608e7f248366266b40b86c75.tar.xz
linux-921c87ba3893b5d3608e7f248366266b40b86c75.zip
mmc: Convert from tasklet to BH workqueue
The only generic interface to execute asynchronously in the BH context is tasklet; however, it's marked deprecated and has some design flaws. To replace tasklets, BH workqueue support was recently added. A BH workqueue behaves similarly to regular workqueues except that the queued work items are executed in the BH context. This patch converts drivers/mmc/* from tasklet to BH workqueue. Based on the work done by Tejun Heo <tj@kernel.org> Tested-by: Christian Loehle <christian.loehle@arm.com> Tested-by: Aubin Constans <aubin.constans@microchip.com> Acked-by: Aubin Constans <aubin.constans@microchip.com> Acked-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Reviewed-by: Christian Loehle <christian.loehle@arm.com> Signed-off-by: Allen Pais <allen.lkml@gmail.com> Link: https://lore.kernel.org/r/20240701100736.4001658-1-allen.lkml@gmail.com Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc/host/wbsd.h')
-rw-r--r--drivers/mmc/host/wbsd.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/mmc/host/wbsd.h b/drivers/mmc/host/wbsd.h
index be30b4d8ce4c..970886831305 100644
--- a/drivers/mmc/host/wbsd.h
+++ b/drivers/mmc/host/wbsd.h
@@ -171,11 +171,11 @@ struct wbsd_host
int irq; /* Interrupt */
int dma; /* DMA channel */
- struct tasklet_struct card_tasklet; /* Tasklet structures */
- struct tasklet_struct fifo_tasklet;
- struct tasklet_struct crc_tasklet;
- struct tasklet_struct timeout_tasklet;
- struct tasklet_struct finish_tasklet;
+ struct work_struct card_bh_work; /* Work structures */
+ struct work_struct fifo_bh_work;
+ struct work_struct crc_bh_work;
+ struct work_struct timeout_bh_work;
+ struct work_struct finish_bh_work;
struct timer_list ignore_timer; /* Ignore detection timer */
};