My board is based on 2.6.24,I have tried to use 2.6.29 or27,but it seems very difficult to fixed the driver problem,so I choose 2.6.25(release r1)--- diff the android2.6.25 from standard 2.6.25 and then patch it to my board's given kernel 2.6.24.7
1. I hacked the touch driver as follows: first use tslib to get the pointercal file and then add it to s3c-ts.c for calibration,like: xtmp = (axis_table[2] + axis_table[0]*x + axis_table[1]*y )>>axis_table[6]; ytmp = (axis_table[5] + axis_table[3]*x + axis_table[4]*y )>>axis_table[6]; printk("x (xtmp)-> %d (%d)\t y(ytmp) - > %d (%d)\np->%d\n",x,xtmp,y,ytmp,p); input_report_abs(d->idev, ABS_X,ytmp); input_report_abs(d->idev, ABS_Y,xtmp); input_report_abs(d->idev,ABS_PRESSURE, p); input_report_key(d->idev,BTN_TOUCH,1); input_sync(d->idev); 2. and I hacked the android source code 1.6 as follows: 1 --- services/jni/com_android_server_BatteryService.cpp-orig 2009-11-01 18:20:41.000000000 +0800 2 +++ services/jni/com_android_server_BatteryService.cpp 2010-02-26 09:51:51.000000000 +0800 3 @@ -195,6 +195,13 @@ 4 5 if (readFromFile(BATTERY_TECHNOLOGY_PATH, buf, SIZE) > 0) 6 env->SetObjectField(obj, gFieldIds.mBatteryTechnology, env->NewStringUTF(buf)); 7 + //add by Weber 8 + env->SetBooleanField(obj, gFieldIds.mAcOnline, true); 9 + 10 + env->SetIntField(obj, gFieldIds.mBatteryStatus, gConstants.statusUnknonl); 11 + 12 + env->SetIntField(obj, gFieldIds.mBatteryHealth, gConstants.healthUnkown); 13 + //Weber end 14 } 15 16 static JNINativeMethod sMethods[] = { 3. Now,the board can boot up,but wherever I tap,it just respond at top bar,I can see the date and time. 4. Some one said that I should enable the following: PM Power Management support Suspend to RAM and standby Wake lock Wake lock stats Userspace wake locks Early suspend User-space screen access -> Sysfs interface 5. and someone said the hack the PowerManagerService.java boolean screenIsOn() { synchronized (mLocks) { - return (mPowerState & SCREEN_ON_BIT) != 0; + return true; if I do it ,the sceen will respond nothing! since 2.6.25 have none of them ,so I copied the source files from 2.6.27 to 2.6.24 ,reconfigured and rebuild the kernel. BUT,It is a pity that the ts still only responds at top left bar. 6 here are part of logcat: E/EventHub( 563): could not get driver version for /dev/input/ts0, Invalid argument I/EventHub( 563): New device: path=/dev/input/event1 name=S3C TouchScreen id=0x10000 (of 0x1) index=1 fd=40 classes=0x4 I/EventHub( 563): New device: path=/dev/input/event0 name=s3c-keypad id=0x10001 (of 0x2) index=2 fd=42 classes=0x3 I/EventHub( 563): New keyboard: publicID=65537 device->id=65537 devname='s3c-keypad' propName='hw.keyboards.65537.devname' keylayout='/ system/usr/keylayout/qwerty.kl' I/KeyInputQueue( 563): Device added: id=0x0, name=s3c-keypad, classes=3 I/KeyInputQueue( 563): Device added: id=0x10000, name=null, classes=4 I/KeyInputQueue( 563): X: min=0 max=240 flat=0 fuzz=0 I/KeyInputQueue( 563): Y: min=0 max=320 flat=0 fuzz=0 I/KeyInputQueue( 563): Pressure: min=0 max=1 flat=0 fuzz=0 I/KeyInputQueue( 563): Size: unknown values so Could you tell me how to solve then? Thank you ! --Weber -- unsubscribe: android-porting+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-porting