From 753db746ee08eee44b99aeafc958dea5de1a80c5 Mon Sep 17 00:00:00 2001 From: phc Date: Sat, 25 Jun 2011 16:43:26 +0800 Subject: [PATCH] RK29SmartPhone:23d IMEI read support --- drivers/misc/mtk23d.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/misc/mtk23d.c b/drivers/misc/mtk23d.c index 5715234abf58..ddec43d1b0c4 100755 --- a/drivers/misc/mtk23d.c +++ b/drivers/misc/mtk23d.c @@ -22,6 +22,7 @@ #include #include #include +#include "../mtd/rknand/api_flash.h" MODULE_LICENSE("GPL"); @@ -220,13 +221,16 @@ static int mtk23d_release(struct inode *inode, struct file *file) } //extern char imei_value[16]; // phc, no find 'imei_value' in rk29 project -char imei_value[16] = {0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5}; +//char imei_value[16] = {0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5}; static int mtk23d_ioctl(struct inode *inode,struct file *file, unsigned int cmd, unsigned long arg) { struct rk2818_23d_data *pdata = gpdata; int i; void __user *argp = (void __user *)arg; + + char SectorBuffer[512]; + printk("mtk23d_ioctl\n"); switch(cmd) { @@ -242,11 +246,15 @@ static int mtk23d_ioctl(struct inode *inode,struct file *file, unsigned int cmd, break; case MTK23D_IMEI_READ: printk("MTK23D_IMEI_READ\n"); - if(copy_to_user(argp, &(imei_value[0]), 16)) + + GetSNSectorInfo(SectorBuffer); // phc,20110624 + + if(copy_to_user(argp, &(SectorBuffer[451]), 16)) // IMEIºó´Ó451Æ«ÒÆ¿ªÊ¼µÄ16bytes£¬µÚÒ»¸öbyteΪ³¤¶È¹Ì¶¨Îª15 { printk("ERROR: copy_to_user---%s\n", __FUNCTION__); return -EFAULT; } + //printk("IMEI:%d %d %d %d\n", SectorBuffer[451], SectorBuffer[452], SectorBuffer[453], SectorBuffer[454]); break; default: break; -- 2.34.1