From 243dcf38a58388d04dab1e41d5cf92f1fd4457b0 Mon Sep 17 00:00:00 2001
From: cwz <cwz@rockchips.com>
Date: Wed, 3 Aug 2011 01:10:03 -0700
Subject: [PATCH] newton: get all sector3 info api.

---
 drivers/misc/newton.c | 33 ++++++++++++++++++++++++---------
 1 file changed, 24 insertions(+), 9 deletions(-)

diff --git a/drivers/misc/newton.c b/drivers/misc/newton.c
index dcc7b7256de7..2074231e1b6f 100755
--- a/drivers/misc/newton.c
+++ b/drivers/misc/newton.c
@@ -30,6 +30,8 @@
 #define NEWTON_GPIO_B            RK29_PIN4_PB2
 #define NEWTON_GPIO_AC_DETEC     RK29_PIN4_PA1
 #define NEWTON_GPIO_GPS_PWR      RK29_PIN6_PB2
+#define NEWTON_IDBDATA_SIZE      512
+#define NEWTON_GET_IDBDATA       0x600F
 #define NEWTON_GET_UID           0x6001
 #define NEWTON_AC_DETEC          0x6002
 #define NEWTON_GPS_CTRL          0x6003
@@ -121,16 +123,29 @@ int rk29_newton_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
 	
     switch(cmd)
     {
-    case NEWTON_GET_UID:
-		{
-			IdbSector3 sn;
-			DBG("%s:NEWTON_GET_UID\n",__FUNCTION__);
-			memset(&sn,0,sizeof(IdbSector3));
-			GetSNSectorInfo((char*)&sn);
-			//newton_print_buf(&sn.UID_Data, sizeof(sn.UID_Data));
+        case NEWTON_GET_UID:
+        {
+            IdbSector3 sn;
+
+            DBG("%s:NEWTON_GET_UID\n",__FUNCTION__);
+            memset(&sn,0,sizeof(IdbSector3));
+            GetSNSectorInfo((char*)&sn);
+	    //newton_print_buf(&sn.UID_Data, sizeof(sn.UID_Data));
             if(copy_to_user(argp, &sn.UID_Data, sizeof(sn.UID_Data)))  return -EFAULT;
-    	}
-		break;
+        }
+        break;
+
+        case NEWTON_GET_IDBDATA:
+        {
+            char data[NEWTON_IDBDATA_SIZE];
+
+            memset(data, 0, NEWTON_IDBDATA_SIZE);
+            GetSNSectorInfo(data);
+            if(copy_to_user(argp, data, NEWTON_IDBDATA_SIZE))
+                return -EFAULT;
+        }
+        break;
+
 /*		
 	case NEWTON_AC_DETEC:
 		{
-- 
2.34.1