#include <mach/iomux.h>\r
#include <linux/platform_device.h>\r
#include "rk29_gps.h"\r
-#ifdef CONFIG_HAS_EARLYSUSPEND\r
-#include <linux/earlysuspend.h>\r
-#endif\r
#if 0\r
#define DBG(x...) printk(KERN_INFO x)\r
#else\r
#define DISABLE 0\r
\r
static struct rk29_gps_data *pgps;\r
-static struct early_suspend gps_early_suspend;\r
\r
-static void rk29_gps_early_suspend(struct early_suspend *h)\r
+\r
+int rk29_gps_suspend(struct platform_device *pdev, pm_message_t state)\r
{\r
- struct rk29_gps_data *pdata = pgps;\r
+ struct rk29_gps_data *pdata = pdev->dev.platform_data;\r
if(!pdata)\r
- return;\r
+ return -1;\r
\r
if(pdata->uart_id == 3)\r
{\r
}\r
\r
printk("%s\n",__FUNCTION__);\r
- \r
+ return 0; \r
}\r
\r
-static void rk29_gps_early_resume(struct early_suspend *h)\r
+int rk29_gps_resume(struct platform_device *pdev)\r
{\r
- struct rk29_gps_data *pdata = pgps;\r
+ struct rk29_gps_data *pdata = pdev->dev.platform_data;\r
if(!pdata)\r
- return;\r
+ return -1;\r
\r
if(pdata->uart_id == 3)\r
{\r
}\r
\r
printk("%s\n",__FUNCTION__);\r
- \r
+ return 0;\r
}\r
+\r
int rk29_gps_open(struct inode *inode, struct file *filp)\r
{\r
DBG("rk29_gps_open\n");\r
pdata->power_up();\r
pgps = pdata;\r
\r
-#ifdef CONFIG_HAS_EARLYSUSPEND\r
- gps_early_suspend.suspend = rk29_gps_early_suspend;\r
- gps_early_suspend.resume = rk29_gps_early_resume;\r
- gps_early_suspend.level = ~0x0;\r
- register_early_suspend(&gps_early_suspend);\r
-#endif\r
\r
printk("%s:rk29 GPS initialized\n",__FUNCTION__);\r
\r
\r
static struct platform_driver rk29_gps_driver = {\r
.probe = rk29_gps_probe,\r
+ .suspend = rk29_gps_suspend,\r
+ .resume = rk29_gps_resume,\r
.driver = {\r
.name = "rk29_gps",\r
.owner = THIS_MODULE,\r