aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 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
591error_register_framebuffer: 584error_register_framebuffer:
592 destroy_workqueue(msmfb->resume_workqueue);
593error_create_workqueue:
594 iounmap(fb->screen_base); 585 iounmap(fb->screen_base);
595error_setup_fbmem: 586error_setup_fbmem:
596 framebuffer_release(msmfb->fb); 587 framebuffer_release(msmfb->fb);