Loading drivers/video/msm/msm_fb.c +1 −10 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); Loading @@ -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); Loading Loading
drivers/video/msm/msm_fb.c +1 −10 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); Loading @@ -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); Loading