Commit 48b63b69 authored by Tejun Heo's avatar Tejun Heo Committed by David Brown

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: default avatarTejun Heo <tj@kernel.org>
Cc: Stanislaw Gruszka <stf_xl@wp.pl>
Cc: linux-usb@vger.kernel.org
Signed-off-by: default avatarDavid Brown <davidb@codeaurora.org>
parent 1bae4ce2
...@@ -81,7 +81,6 @@ struct msmfb_info { ...@@ -81,7 +81,6 @@ struct msmfb_info {
spinlock_t update_lock; spinlock_t update_lock;
struct mutex panel_init_lock; struct mutex panel_init_lock;
wait_queue_head_t frame_wq; wait_queue_head_t frame_wq;
struct workqueue_struct *resume_workqueue;
struct work_struct resume_work; struct work_struct resume_work;
struct msmfb_callback dma_callback; struct msmfb_callback dma_callback;
struct msmfb_callback vsync_callback; struct msmfb_callback vsync_callback;
...@@ -111,7 +110,7 @@ static void msmfb_handle_dma_interrupt(struct msmfb_callback *callback) ...@@ -111,7 +110,7 @@ static void msmfb_handle_dma_interrupt(struct msmfb_callback *callback)
if (msmfb->sleeping == UPDATING && if (msmfb->sleeping == UPDATING &&
msmfb->frame_done == msmfb->update_frame) { msmfb->frame_done == msmfb->update_frame) {
DLOG(SUSPEND_RESUME, "full update completed\n"); 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); spin_unlock_irqrestore(&msmfb->update_lock, irq_flags);
wake_up(&msmfb->frame_wq); wake_up(&msmfb->frame_wq);
...@@ -559,12 +558,6 @@ static int msmfb_probe(struct platform_device *pdev) ...@@ -559,12 +558,6 @@ static int msmfb_probe(struct platform_device *pdev)
spin_lock_init(&msmfb->update_lock); spin_lock_init(&msmfb->update_lock);
mutex_init(&msmfb->panel_init_lock); mutex_init(&msmfb->panel_init_lock);
init_waitqueue_head(&msmfb->frame_wq); 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); INIT_WORK(&msmfb->resume_work, power_on_panel);
msmfb->black = kzalloc(msmfb->fb->var.bits_per_pixel*msmfb->xres, msmfb->black = kzalloc(msmfb->fb->var.bits_per_pixel*msmfb->xres,
GFP_KERNEL); GFP_KERNEL);
...@@ -589,8 +582,6 @@ static int msmfb_probe(struct platform_device *pdev) ...@@ -589,8 +582,6 @@ static int msmfb_probe(struct platform_device *pdev)
return 0; return 0;
error_register_framebuffer: error_register_framebuffer:
destroy_workqueue(msmfb->resume_workqueue);
error_create_workqueue:
iounmap(fb->screen_base); iounmap(fb->screen_base);
error_setup_fbmem: error_setup_fbmem:
framebuffer_release(msmfb->fb); framebuffer_release(msmfb->fb);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment