From: notaz Date: Wed, 13 Jan 2016 00:19:11 +0000 (+0200) Subject: ts tweaks for _dyn X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8cbb027881eadc228c7a0613b7afb6c566bf86fe;p=ginge.git ts tweaks for _dyn --- diff --git a/loader/emu.c b/loader/emu.c index 77f9a6d..6ddbb4a 100644 --- a/loader/emu.c +++ b/loader/emu.c @@ -1259,10 +1259,11 @@ fail: return -EINVAL; } +static const char wm97xx_p[] = + "5507 0 -831476 0 -4218 16450692 65536"; // from 4.0 fw + long emu_do_read(int fd, void *buf, int count) { - static const char wm97xx_p[] = - "5507 0 -831476 0 -4218 16450692 65536"; // from 4.0 fw int ret, pressed = 0, x, y; struct { u16 pressure, x, y; @@ -1284,7 +1285,7 @@ long emu_do_read(int fd, void *buf, int count) case FAKEDEV_WM97XX: ret = host_read_ts(&pressed, &x, &y); if (ret == 0 && pressed) { - wm97xx.pressure = 1; + wm97xx.pressure = 0x8001; // TODO: check the real thing wm97xx.x = x * 3750 / 1024 + 200; wm97xx.y = 3750 - y * 3750 / 1024 + 200; } @@ -1303,7 +1304,7 @@ long emu_do_read(int fd, void *buf, int count) strncpy(buf, wm97xx_p, count); break; default: - err("read(%d, %d)\n", fd, count); + dbg("read(%d, %d)\n", fd, count); return -EINVAL; } return count; @@ -1365,9 +1366,23 @@ void *emu_do_fopen(const char *path, const char *mode) const char *w_path; FILE *ret; - w_path = emu_wrap_path(path); - ret = fopen(w_path, mode); - emu_wrap_path_free(w_path, path); + if (strcmp(path, "/etc/pointercal") == 0) { + // use local pontercal, not host's + ret = fopen("pointercal", mode); + if (ret == NULL) { + ret = fopen("pointercal", "w"); + if (ret != NULL) { + fwrite(wm97xx_p, 1, sizeof(wm97xx_p), ret); + fclose(ret); + } + ret = fopen("pointercal", mode); + } + } + else { + w_path = emu_wrap_path(path); + ret = fopen(w_path, mode); + emu_wrap_path_free(w_path, path); + } return ret; } diff --git a/loader/header.h b/loader/header.h index 29841ea..da03c00 100644 --- a/loader/header.h +++ b/loader/header.h @@ -32,10 +32,11 @@ enum { FAKEDEV_GPIO, FAKEDEV_FB0, FAKEDEV_FB1, - FAKEDEV_MMUHACK, - FAKEDEV_TTY0, + FAKEDEV_MMUHACK, // 1005 FAKEDEV_WM97XX, FAKEDEV_WM97XX_P, + FAKEDEV_TTY, // 1008 + FAKEDEV_TTY0, FAKEDEV_FD_BOUNDARY, }; diff --git a/loader/override.c b/loader/override.c index f98a4db..5927bc2 100644 --- a/loader/override.c +++ b/loader/override.c @@ -39,12 +39,13 @@ static const struct dev_fd_t takeover_devs[] = { { "/dev/fb1", FAKEDEV_FB1 }, { "/dev/fb/1", FAKEDEV_FB1 }, { "/dev/mmuhack", FAKEDEV_MMUHACK }, - { "/dev/tty", FAKEDEV_TTY0 }, + { "/dev/tty", FAKEDEV_TTY }, { "/dev/tty0", FAKEDEV_TTY0 }, { "/dev/touchscreen/wm97xx", FAKEDEV_WM97XX }, { "/etc/pointercal", FAKEDEV_WM97XX_P }, + { "/dev/input/mice", -ENODEV }, #ifdef PND - { "/dev/input/event*", -1 }, // hide for now, may cause dupe events + { "/dev/input/event*", -ENODEV }, // hide for now, may cause dupe events #endif };