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

Reply via email to