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: [email protected]
website: http://groups.google.com/group/android-porting