\r
if(drvdata->ipp_result == 0)\r
{\r
- wait_ret = wait_event_interruptible_timeout(hw_wait_queue, wq_condition, msecs_to_jiffies(req->timeout));\r
+ //wait_ret = wait_event_interruptible_timeout(hw_wait_queue, wq_condition, msecs_to_jiffies(req->timeout));\r
+ wait_ret = wait_event_timeout(hw_wait_queue, wq_condition, msecs_to_jiffies(req->timeout));\r
#ifdef IPP_TEST\r
irq_end = ktime_get(); \r
irq_end = ktime_sub(irq_end,irq_start);\r
#endif\r
\r
ipp_soft_reset();\r
+ drvdata->ipp_result = -EAGAIN;\r
}\r
\r
ipp_power_off(NULL);\r
\r
if(drvdata->issync)//sync\r
{\r
- wake_up_interruptible_sync(&hw_wait_queue);\r
+ //wake_up_interruptible_sync(&hw_wait_queue);\r
+ wake_up(&hw_wait_queue);\r
}\r
else//async\r
{\r
static int ipp_suspend(struct platform_device *pdev, pm_message_t state)\r
{\r
//printk("ipp_suspend\n");\r
- //delay 20ms to wait hardware work completed\r
- mdelay(20);\r
+ \r
+ if(drvdata->enable)\r
+ {\r
+ //delay 20ms to wait hardware work completed\r
+ mdelay(20);\r
\r
- //cancel the delay work, power off right now\r
- cancel_delayed_work_sync(&drvdata->power_off_work);\r
- ipp_power_off(NULL);\r
+ // power off right now\r
+ ipp_power_off(NULL);\r
+ }\r
\r
return 0;\r
}\r