If you do have any docs on these, it is helpful if you could post in the
OMAP ML also. you will find a lot of interested blokes in the list too.
Regards,
Nishanth Menon
What version of the Android SDK is tried on your board. I've got
it working on my OMAP2430 platform with m5-rc14 version whereas the
eralier version (m3-rc20) was giving all sorts of issues.
Warm Regards,
Anil
On Thu, Apr 3, 2008 at 4:25 PM, Anil Sasidharan <ani...@gmail.com> wrote:
> Hi,
>
> The basic patch I've used to bring up the Android kernel (w.r.t
> 2.6.23 kernel) is attached herewith.
>
> Warm Regards,
> Anil
>
>
>
> On Thu, Apr 3, 2008 at 1:17 PM, Nishanth Menon <menon.n...@gmail.com> wrote:
> > Anil,
> > Could you post your patches to kernel and give a w.r.t base kernel to
> > the list? it will kinda help us all..
> > Regards,
> > Nishanth Menon
> > Anil Sasidharan said the following on 04/02/2008 09:36 AM:
> Great, congrats!!! I will try it on N800 as soon as I find some time
> for it.
>
Thanks :-)
> Regarding the touch screen problems:
> The existing touchscreen driver propably needs to be replaced by one
> that can work on fb level. See this site for details:
> http://qtablet.laginen.net/doku.php. Its about porting Qt to Maemo,
> but the problems are similar.
>
Thanks for the link...I'll check that out soon !
--
regards,
Georges Toth
mizmit1222 wrote:
> Hi,
>
> Big congraturations! Great job!
>
Thanks :-)
> I learned that OMAP 2420 has 3D hardware accelelator. Can you find
> /dev/hw3d in your system? If there, how fast is your Kube running?
>
Are you sure the n800/810 has 3d hardware acceleration ?
At least there is no such device node.
Anyway it runs smoothly...
> On my Zaurus C3000, which doesn't have any accelaletor, Kube
> turns a bit slower than emulator on PC.
>
Can't compare that right now... I'll be replying in private with a video
I just captured.... :-)
> By the way, regarding touchscreen issue, this discussion might be
> interesting.
>
> Android Zaurus: Touchscreen Driver - a small improvement
> http://androidzaurus.seesaa.net/article/90045743.html#comment
>
Thanks... I already read that page but I'm not sure if that will help me
much, I'll see next week.
--
regards,
Georges Toth
--
regards,
Georges Toth
http://elinux.org/Android_on_OMAP#Page_flipping_frame_buffer
--
regards,
Georges Toth
--
regards,
Georges Toth
stolzi wrote:
> I finally found the time to try your tips on my N800 and after some
> hazzling it also works.
> The actual trick was using my patched m5 kernel with the m3 file
> system.
>
Good :-)
Did you use init to start android ?
> Georges, have you already updated the keyboard mapping in the android
> config files? If yes, could please post them?
>
I haven't had time last week for working on this any further.
Last time I worked on this I was stuck trying to figure out a way to get
the keycodes.
I'll hope to be able to work on this again this week :-(
> Have you tried the other touchscreen driver, I mentioned?
>
I checked that website but the only thing I could find regarding
touchscreen was that tslib.
Android used the event device directly, so this won't help.
The zaurus touchscreen driver might help to adapt the n8xx one for
working with android:
http://androidzaurus.seesaa.net/article/90045743.html#comment
--
regards,
Georges Toth
Mohan Parthasarathy wrote:
> This is exactly the problem i am having since yesterday. I am
> debugging currently..
> Also, i use m3 kernel and m3 filesystem and i see the same entries in
> /proc/misc
> entries. Let me know if you find something or someone has clues..
>
> -thx
> mohan
Use the m5 kernel instead.
If you don't see a binder entry in /proc/misc it for sure won't work...
(there also has to be a node in /dev of course..)
Also checkout elinux.org and http://code.google.com/p/android-on-n8xx/ ...
--
regards,
Georges Toth
> in my reading of this thread, i thought m5 filesystem had issues with
> n810. Is that right ? Are you
> suggesting to use both m5 filesystem and m5 kernel ? I tried this
> early on and then reverted to
> m3. In the pointer below, the versions are not mentioned.
m5 userspace does not work with the n8xx ... that's right.
There's an issue with the framebuffer driver...
I'm suggesting that you use the m5-rc14 kernel with the m3 userspace.
That combination does work fine.
--
regards,
Georges Toth
If you're actively working on this ... maybe you want to join the
android-on-n8xx as well, in order to document your findings on that
website and add your patches etc, for other people to find ?
Just let me know...
( http://code.google.com/p/android-on-n8xx/ )
> Also checkout elinux.org <http://elinux.org> and
> http://code.google.com/p/android-on-n8xx/ ...
>
> --
> regards,
>
> Georges Toth
>
>
>
>
>
> >
--
regards,
Georges Toth
--
Sent from Gmail for mobile | mobile.google.com
On 4/21/08, Georges Toth <george...@gmail.com> wrote:
>
--
--
regards,
Georges Toth
--
regards,
Georges Toth
Jonathan Herriott wrote:
> Hi, I've been able to install the kernel, but I am having issues
> installing the file system. I am using the m5-rc14 userspace with the
> m5-rc14 kernel.
>
You _have_ to use an m3 userspace
--
regards,
Georges Toth
--
regards,
Georges Toth
How did you manage to get the keycodes ?
--
regards,
Georges Toth
If you want, I can upload a kernel image ?
I'll create a new patch againt a vanilla 2.6.21 and will send you that
one in private to try.
If it then still does not work, it is for sure not because of the kernel...
BTW, here is my output of /sys/android_power:
Nokia-N810-42-19:~# ls /sys/android_power/
acquire_full_wake_lock battery_level
battery_level_raw battery_low_level
charging_state request_state
acquire_partial_wake_lock battery_level_low
battery_level_scale battery_shutdown_level
release_wake_lock state
As you can see, no last_user_activity either...and again, it does work
nevertheless :-)
Your problem is somewhere else...
Jonathan Herriott wrote:
> Yeah, I was thinking about fixing the patch myself as well.
>
> Georges, do you happen to have the correct patch lying around? It
> seems you may have accidentally used the wrong android kernel source
> when making the patch.
>
--
regards,
Georges Toth
I'm not sure if somebody has those issues fixed already, but I don't
think so.
If you do work on it please let us know how it goes
--
regards,
Georges Toth
--
regards,
Georges Toth
> Are you using the M3 or the M5 runtime. I tried with the M3 because
> the M5 is not supposed to work.
>
I'm using m3 as m5 does not work (framebuffer issue).
> I ended up taking power.c from the M3 kernel and ported it to your
> patched n810 kernel. Using the older power.c, I saw the
> last_user_activity node show up in sys. With this change, everything
> seems to work just fine now.
>
Hmm... wondering why it does work for me then
Anyway, it works now for you :-)
--
regards,
Georges Toth
> I know the key mappings need to be included as another patch, but are
> there any new fixes that need to be included?
>
There is a touchscreen fix... see my private mail (patch too large for
posting...)
> I'm also going to reorganize the wiki as well. If you have objections
> to large changes, I'll email you my changes for review.
>
Ok no problem :-)
--
regards,
Georges Toth
Apply the patch to a nokia+android patched 2.6.21 kernel and you should
have a working touchscreen.
--
regards,
Georges Toth
Index: drivers/input/touchscreen/tsc2005.c
===================================================================
--- drivers/input/touchscreen/tsc2005.c (revision 1269)
+++ drivers/input/touchscreen/tsc2005.c (revision 1273)
@@ -181,6 +181,8 @@
};
#define NUM_READ_REGS (sizeof(tsc2005_read_reg)/sizeof(tsc2005_read_reg[0]))
+extern struct input_dev * android_idev;
+
struct tsc2005 {
struct spi_device *spi;
@@ -262,6 +264,8 @@
int x, int y, int pressure)
{
if (pressure) {
+ x = abs((x -260) * 800 / 3500);
+ y = abs((3550 - y) * 480 / 3000);
input_report_abs(ts->idev, ABS_X, x);
input_report_abs(ts->idev, ABS_Y, y);
input_report_abs(ts->idev, ABS_PRESSURE, pressure);
@@ -557,7 +561,8 @@
ts->touch_pressure = pdata->ts_touch_pressure ? : ts->p_max;
p_fudge = pdata->ts_pressure_fudge ? : 2;
- idev = input_allocate_device();
+// idev = input_allocate_device();
+ idev = android_idev;
if (idev == NULL) {
r = -ENOMEM;
goto err2;
@@ -567,10 +572,10 @@
* TODO: should be "TSC2005 touchscreen", but X has hardcoded these
* strings and doesn't accept TSC2005 yet...
*/
- idev->name = "TSC2301 touchscreen";
- snprintf(ts->phys, sizeof(ts->phys), "%s/input-ts",
- ts->spi->dev.bus_id);
- idev->phys = ts->phys;
+// idev->name = "TSC2301 touchscreen";
+// snprintf(ts->phys, sizeof(ts->phys), "%s/input-ts",
+// ts->spi->dev.bus_id);
+// idev->phys = ts->phys;
idev->evbit[0] = BIT(EV_ABS) | BIT(EV_KEY);
idev->absbit[0] = BIT(ABS_X) | BIT(ABS_Y) | BIT(ABS_PRESSURE);
@@ -578,9 +583,14 @@
tsc2005_ts_setup_spi_xfer(ts);
+ x_max = 800;
+ y_max = 480;
+
input_set_abs_params(idev, ABS_X, 0, x_max, x_fudge, 0);
input_set_abs_params(idev, ABS_Y, 0, y_max, y_fudge, 0);
input_set_abs_params(idev, ABS_PRESSURE, 0, ts->p_max, p_fudge, 0);
+ set_bit(BTN_TOUCH, idev->keybit);
+ bitmap_fill(idev->absbit, ABS_MAX);
tsc2005_start_scan(ts);
Index: drivers/video/omap/omapfb_main.c
===================================================================
--- drivers/video/omap/omapfb_main.c (revision 1269)
+++ drivers/video/omap/omapfb_main.c (revision 1273)
@@ -698,6 +698,34 @@
struct omapfb_device *fbdev = plane->fbdev;
int r;
+ if((var->rotate & 1) != (fbi->var.rotate & 1)) {
+ if((var->xres != fbi->var.yres) ||
+ (var->yres != fbi->var.xres) ||
+ (var->xres_virtual != fbi->var.yres) ||
+ (var->yres_virtual > fbi->var.xres) ||
+ (var->yres_virtual < fbi->var.xres )) {
+ printk(KERN_INFO "omapfb_check_var: failed 1\n");
+ return -EINVAL;
+ }
+ }
+ else {
+ if((var->xres != fbi->var.xres) ||
+ (var->yres != fbi->var.yres) ||
+ (var->xres_virtual != fbi->var.xres) ||
+ (var->yres_virtual > fbi->var.yres) ||
+ (var->yres_virtual < fbi->var.yres )) {
+ printk(KERN_INFO "omapfb_check_var: failed 2\n");
+ return -EINVAL;
+ }
+ }
+ if((var->xoffset != fbi->var.xoffset) ||
+ (var->bits_per_pixel != fbi->var.bits_per_pixel) ||
+ (var->grayscale != fbi->var.grayscale)) {
+
+ printk(KERN_INFO "omapfb_check_var: failed 3\n");
+ return -EINVAL;
+ }
+
omapfb_rqueue_lock(fbdev);
if (fbdev->ctrl->sync != NULL)
fbdev->ctrl->sync();
Index: drivers/i2c/chips/menelaus.c
===================================================================
--- drivers/i2c/chips/menelaus.c (revision 1269)
+++ drivers/i2c/chips/menelaus.c (revision 1273)
@@ -48,6 +48,7 @@
#include <asm/arch/menelaus.h>
/*#define DEBUG*/
+#define dev_info(dev, format, arg...) do { (void)(dev); } while (0)
#define DRIVER_NAME "menelaus"
Index: drivers/i2c/chips/lm8323.c
===================================================================
--- drivers/i2c/chips/lm8323.c (revision 1269)
+++ drivers/i2c/chips/lm8323.c (revision 1273)
@@ -174,6 +174,9 @@
struct lm8323_pwm pwm3;
};
+struct input_dev * android_idev;
+EXPORT_SYMBOL(android_idev);
+
#define client_to_lm8323(c) container_of(c, struct lm8323_chip, client)
#define dev_to_lm8323(d) container_of(d, struct lm8323_chip, client.dev)
#define work_to_lm8323(w) container_of(w, struct lm8323_chip, work)
@@ -801,6 +804,7 @@
err = -ENOMEM;
goto fail8;
}
+ android_idev = idev;
if (lm8323_pdata->name)
idev->name = lm8323_pdata->name;
@@ -822,7 +826,7 @@
set_bit(EV_REP, idev->evbit);
lm->idev = idev;
- input_register_device(idev);
+// input_register_device(idev);
return 0;
--
regards,
Georges Toth
I had just applied the patch, recompiled the kernel and rebooted the
n810 with the new kernel.
Worked fine for me...
--
regards,
Georges Toth
--
regards,
Georges Toth