.. | .. |
---|
656 | 656 | } |
---|
657 | 657 | |
---|
658 | 658 | #if defined(CONFIG_FB) |
---|
| 659 | +#include <linux/async.h> |
---|
| 660 | + |
---|
| 661 | +static void gt1x_resume_async(void *data, async_cookie_t cookie) |
---|
| 662 | +{ |
---|
| 663 | + gt1x_resume(); |
---|
| 664 | +} |
---|
| 665 | + |
---|
| 666 | +static void gt1x_suspend_async(void *data, async_cookie_t cookie) |
---|
| 667 | +{ |
---|
| 668 | + gt1x_suspend(); |
---|
| 669 | +} |
---|
| 670 | + |
---|
659 | 671 | /* frame buffer notifier block control the suspend/resume procedure */ |
---|
660 | 672 | static struct notifier_block gt1x_fb_notifier; |
---|
661 | 673 | static int tp_status; |
---|
.. | .. |
---|
686 | 698 | if (*blank == FB_BLANK_UNBLANK) { |
---|
687 | 699 | tp_status = *blank; |
---|
688 | 700 | GTP_DEBUG("Resume by fb notifier."); |
---|
689 | | - gt1x_resume(); |
---|
| 701 | + async_schedule(gt1x_resume_async, NULL); |
---|
690 | 702 | } |
---|
691 | 703 | } |
---|
692 | 704 | #endif |
---|
.. | .. |
---|
697 | 709 | if (*blank == FB_BLANK_POWERDOWN) { |
---|
698 | 710 | tp_status = *blank; |
---|
699 | 711 | GTP_DEBUG("Suspend by fb notifier."); |
---|
700 | | - gt1x_suspend(); |
---|
| 712 | + async_schedule(gt1x_suspend_async, NULL); |
---|
701 | 713 | } |
---|
702 | 714 | } |
---|
703 | 715 | |
---|