diff options
author | Tejun Heo <tj@kernel.org> | 2011-01-03 08:49:43 -0500 |
---|---|---|
committer | David Brown <davidb@codeaurora.org> | 2011-01-25 18:14:28 -0500 |
commit | 48b63b6908a10add9ee383c7db24c37f99e5d324 (patch) | |
tree | a5e97a5b4e3172cbc27224fc62fd25878a9db48a /drivers/video/msm/msm_fb.c | |
parent | 1bae4ce27c9c90344f23c65ea6966c50ffeae2f5 (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.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/video/msm/msm_fb.c b/drivers/video/msm/msm_fb.c index debe5933fd2e..5436aeb94456 100644 --- a/drivers/video/msm/msm_fb.c +++ b/drivers/video/msm/msm_fb.c | |||
@@ -81,7 +81,6 @@ struct msmfb_info { | |||
81 | spinlock_t update_lock; | 81 | spinlock_t update_lock; |
82 | struct mutex panel_init_lock; | 82 | struct mutex panel_init_lock; |
83 | wait_queue_head_t frame_wq; | 83 | wait_queue_head_t frame_wq; |
84 | struct workqueue_struct *resume_workqueue; | ||
85 | struct work_struct resume_work; | 84 | struct work_struct resume_work; |
86 | struct msmfb_callback dma_callback; | 85 | struct msmfb_callback dma_callback; |
87 | struct msmfb_callback vsync_callback; | 86 | struct msmfb_callback vsync_callback; |
@@ -111,7 +110,7 @@ static void msmfb_handle_dma_interrupt(struct msmfb_callback *callback) | |||
111 | if (msmfb->sleeping == UPDATING && | 110 | if (msmfb->sleeping == UPDATING && |
112 | msmfb->frame_done == msmfb->update_frame) { | 111 | msmfb->frame_done == msmfb->update_frame) { |
113 | DLOG(SUSPEND_RESUME, "full update completed\n"); | 112 | DLOG(SUSPEND_RESUME, "full update completed\n"); |
114 | queue_work(msmfb->resume_workqueue, &msmfb->resume_work); | 113 | schedule_work(&msmfb->resume_work); |
115 | } | 114 | } |
116 | spin_unlock_irqrestore(&msmfb->update_lock, irq_flags); | 115 | spin_unlock_irqrestore(&msmfb->update_lock, irq_flags); |
117 | wake_up(&msmfb->frame_wq); | 116 | wake_up(&msmfb->frame_wq); |
@@ -559,12 +558,6 @@ static int msmfb_probe(struct platform_device *pdev) | |||
559 | spin_lock_init(&msmfb->update_lock); | 558 | spin_lock_init(&msmfb->update_lock); |
560 | mutex_init(&msmfb->panel_init_lock); | 559 | mutex_init(&msmfb->panel_init_lock); |
561 | init_waitqueue_head(&msmfb->frame_wq); | 560 | init_waitqueue_head(&msmfb->frame_wq); |
562 | msmfb->resume_workqueue = create_workqueue("panel_on"); | ||
563 | if (msmfb->resume_workqueue == NULL) { | ||
564 | printk(KERN_ERR "failed to create panel_on workqueue\n"); | ||
565 | ret = -ENOMEM; | ||
566 | goto error_create_workqueue; | ||
567 | } | ||
568 | INIT_WORK(&msmfb->resume_work, power_on_panel); | 561 | INIT_WORK(&msmfb->resume_work, power_on_panel); |
569 | msmfb->black = kzalloc(msmfb->fb->var.bits_per_pixel*msmfb->xres, | 562 | msmfb->black = kzalloc(msmfb->fb->var.bits_per_pixel*msmfb->xres, |
570 | GFP_KERNEL); | 563 | GFP_KERNEL); |
@@ -589,8 +582,6 @@ static int msmfb_probe(struct platform_device *pdev) | |||
589 | return 0; | 582 | return 0; |
590 | 583 | ||
591 | error_register_framebuffer: | 584 | error_register_framebuffer: |
592 | destroy_workqueue(msmfb->resume_workqueue); | ||
593 | error_create_workqueue: | ||
594 | iounmap(fb->screen_base); | 585 | iounmap(fb->screen_base); |
595 | error_setup_fbmem: | 586 | error_setup_fbmem: |
596 | framebuffer_release(msmfb->fb); | 587 | framebuffer_release(msmfb->fb); |