hannstar_p1003: use async init and msleep
author黄涛 <huangtao@rock-chips.com>
Mon, 20 Dec 2010 06:32:03 +0000 (14:32 +0800)
committer黄涛 <huangtao@rock-chips.com>
Mon, 20 Dec 2010 06:32:03 +0000 (14:32 +0800)
arch/arm/mach-rk29/board-rk29-winaccord.c
arch/arm/mach-rk29/board-rk29sdk.c
drivers/input/touchscreen/hannstar_p1003.c

index 1e1d381b55524846190d99bd54a443d914061b05..fed8b635a2419f0fe49ea438dc119b57d980839c 100644 (file)
@@ -328,9 +328,9 @@ int p1003_init_platform_hw(void)
     }
     gpio_pull_updown(TOUCH_INT_PIN, 1);
     gpio_direction_output(TOUCH_RESET_PIN, 0);
-    mdelay(500);
+    msleep(500);
     gpio_set_value(TOUCH_RESET_PIN,GPIO_LOW);
-    mdelay(500);
+    msleep(500);
     gpio_set_value(TOUCH_RESET_PIN,GPIO_HIGH);
 
     return 0;
index 680ef50b1684e572aa1d2e10ee386e19ef0f4f0a..89241e720f8673efa36b4c633c8341e6d16f0881 100644 (file)
@@ -328,9 +328,9 @@ int p1003_init_platform_hw(void)
     }
     gpio_pull_updown(TOUCH_INT_PIN, 1);
     gpio_direction_output(TOUCH_RESET_PIN, 0);
-    mdelay(500);
+    msleep(500);
     gpio_set_value(TOUCH_RESET_PIN,GPIO_LOW);
-    mdelay(500);
+    msleep(500);
     gpio_set_value(TOUCH_RESET_PIN,GPIO_HIGH);
 
     return 0;
index 21235a348a60aaab5cf0014c15023d0d0c31d8a7..a4ba8cac958c5543ae11fd83a75519e6ce66129f 100755 (executable)
@@ -15,6 +15,7 @@
 #include <linux/interrupt.h>
 #include <linux/io.h>
 #include <linux/platform_device.h>
+#include <linux/async.h>
 #include <mach/gpio.h>
 #include <linux/irq.h>
 #include <mach/board.h>
@@ -393,10 +394,16 @@ static struct i2c_driver p1003_driver = {
        .remove         = __devexit_p(p1003_remove),
 };
 
-static int __init p1003_init(void)
+static void __init p1003_init_async(void *unused, async_cookie_t cookie)
 {
        printk("--------> %s <-------------\n",__func__);
-       return i2c_add_driver(&p1003_driver);
+       i2c_add_driver(&p1003_driver);
+}
+
+static int __init p1003_init(void)
+{
+       async_schedule(p1003_init_async, NULL);
+       return 0;
 }
 
 static void __exit p1003_exit(void)