summaryrefslogtreecommitdiffstats
path: root/drivers/video/msm/msm_fb.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-01-03 13:49:43 +0000
committerDavid Brown <davidb@codeaurora.org>2011-01-25 15:14:28 -0800
commit48b63b6908a10add9ee383c7db24c37f99e5d324 (patch)
treea5e97a5b4e3172cbc27224fc62fd25878a9db48a /drivers/video/msm/msm_fb.c
parent1bae4ce27c9c90344f23c65ea6966c50ffeae2f5 (diff)
video/msm_fb: use system_wq instead of dedicated workqueues
With cmwq, there's no reason to use separate workqueues. Drop msmfb_info->resume_workqueue and use system_wq instead. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Stanislaw Gruszka <stf_xl@wp.pl> Cc: linux-usb@vger.kernel.org Signed-off-by: David Brown <davidb@codeaurora.org>
Diffstat (limited to 'drivers/video/msm/msm_fb.c')
-rw-r--r--drivers/video/msm/msm_fb.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/video/msm/msm_fb.c b/drivers/video/msm/msm_fb.c
index debe5933fd2..5436aeb9445 100644
--- a/drivers/video/msm/msm_fb.c
+++ b/drivers/video/msm/msm_fb.c
@@ -81,7 +81,6 @@ struct msmfb_info {
spinlock_t update_lock;
struct mutex panel_init_lock;
wait_queue_head_t frame_wq;
- struct workqueue_struct *resume_workqueue;
struct work_struct resume_work;
struct msmfb_callback dma_callback;
struct msmfb_callback vsync_callback;
@@ -111,7 +110,7 @@ static void msmfb_handle_dma_interrupt(struct msmfb_callback *callback)
if (msmfb->sleeping == UPDATING &&
msmfb->frame_done == msmfb->update_frame) {
DLOG(SUSPEND_RESUME, "full update completed\n");
- queue_work(msmfb->resume_workqueue, &msmfb->resume_work);
+ schedule_work(&msmfb->resume_work);
}
spin_unlock_irqrestore(&msmfb->update_lock, irq_flags);
wake_up(&msmfb->frame_wq);
@@ -559,12 +558,6 @@ static int msmfb_probe(struct platform_device *pdev)
spin_lock_init(&msmfb->update_lock);
mutex_init(&msmfb->panel_init_lock);
init_waitqueue_head(&msmfb->frame_wq);
- msmfb->resume_workqueue = create_workqueue("panel_on");
- if (msmfb->resume_workqueue == NULL) {
- printk(KERN_ERR "failed to create panel_on workqueue\n");
- ret = -ENOMEM;
- goto error_create_workqueue;
- }
INIT_WORK(&msmfb->resume_work, power_on_panel);
msmfb->black = kzalloc(msmfb->fb->var.bits_per_pixel*msmfb->xres,
GFP_KERNEL);
@@ -589,8 +582,6 @@ static int msmfb_probe(struct platform_device *pdev)
return 0;
error_register_framebuffer:
- destroy_workqueue(msmfb->resume_workqueue);
-error_create_workqueue:
iounmap(fb->screen_base);
error_setup_fbmem:
framebuffer_release(msmfb->fb);