All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] move tslib, pointercal and xtscal recipes from oe-core
@ 2016-09-16 11:19 Maxin B. John
  2016-09-16 11:19 ` [PATCH 1/4] pointercal: move recipe " Maxin B. John
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Maxin B. John @ 2016-09-16 11:19 UTC (permalink / raw)
  To: openembedded-devel

Move tslib, pointercal and xtscal recipes from oe-core. These recipes
are already removed from oe-core with these commits:

1. xtscal: remove recipe : 5bcdb9f0995474635789cf0774aba9b774277c53
2. tslib: remove recipe : d37f6b595fd9ce53c79ff9281f2e20df7fa0503d
3. pointercal: remove recipe: d56dffe629dfc86a8d3c7a043c8c2893004f803e

Changes in v2:
    Addressed the review comments about indentation.

Maxin B. John (4):
  pointercal: move recipe from oe-core
  meta-gpe: add pointercal to layer.conf
  xtscal: move recipe from oe-core
  tslib: move recipe from oe-core

 meta-gpe/conf/layer.conf                           |   2 +
 meta-gpe/recipes-bsp/pointercal/pointercal/COPYING |   2 +
 .../recipes-bsp/pointercal/pointercal/pointercal   |   0
 .../pointercal/pointercal/qemuarm/pointercal       |   1 +
 .../pointercal/pointercal/qemuarmv6/pointercal     |   1 +
 .../pointercal/pointercal/qemuarmv7/pointercal     |   1 +
 .../pointercal/pointercal/qemumips/pointercal      |   1 +
 .../pointercal/pointercal/qemuppc/pointercal       | Bin 0 -> 36 bytes
 .../pointercal/pointercal/qemux86-64/pointercal    |   1 +
 .../pointercal/pointercal/qemux86/pointercal       |   1 +
 meta-gpe/recipes-bsp/pointercal/pointercal_0.0.bb  |  22 +
 meta-gpe/recipes-graphics/tslib/tslib/ts.conf      |  25 +
 meta-gpe/recipes-graphics/tslib/tslib/tslib.sh     |   8 +
 meta-gpe/recipes-graphics/tslib/tslib_1.1.bb       |  53 ++
 .../xtscal/xtscal/30xTs_Calibrate.sh               |  13 +
 .../xtscal/xtscal/change-cross.patch               |  18 +
 .../recipes-graphics/xtscal/xtscal/cleanup.patch   | 621 +++++++++++++++++++++
 .../xtscal/dso_linking_change_build_fix.patch      |  27 +
 meta-gpe/recipes-graphics/xtscal/xtscal_0.6.3.bb   |  33 ++
 19 files changed, 830 insertions(+)
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/COPYING
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/qemuarm/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/qemuarmv6/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/qemuarmv7/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/qemumips/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/qemuppc/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/qemux86-64/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/qemux86/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal_0.0.bb
 create mode 100644 meta-gpe/recipes-graphics/tslib/tslib/ts.conf
 create mode 100644 meta-gpe/recipes-graphics/tslib/tslib/tslib.sh
 create mode 100644 meta-gpe/recipes-graphics/tslib/tslib_1.1.bb
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal/change-cross.patch
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal/cleanup.patch
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal_0.6.3.bb

-- 
2.4.0



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/4] pointercal: move recipe from oe-core
  2016-09-16 11:19 [PATCH v2 0/4] move tslib, pointercal and xtscal recipes from oe-core Maxin B. John
@ 2016-09-16 11:19 ` Maxin B. John
  2016-09-16 11:19 ` [PATCH 2/4] meta-gpe: add pointercal to layer.conf Maxin B. John
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Maxin B. John @ 2016-09-16 11:19 UTC (permalink / raw)
  To: openembedded-devel

Move pointercal recipe from oe-core layer.

Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
 meta-gpe/recipes-bsp/pointercal/pointercal/COPYING |   2 ++
 .../recipes-bsp/pointercal/pointercal/pointercal   |   0
 .../pointercal/pointercal/qemuarm/pointercal       |   1 +
 .../pointercal/pointercal/qemuarmv6/pointercal     |   1 +
 .../pointercal/pointercal/qemuarmv7/pointercal     |   1 +
 .../pointercal/pointercal/qemumips/pointercal      |   1 +
 .../pointercal/pointercal/qemuppc/pointercal       | Bin 0 -> 36 bytes
 .../pointercal/pointercal/qemux86-64/pointercal    |   1 +
 .../pointercal/pointercal/qemux86/pointercal       |   1 +
 meta-gpe/recipes-bsp/pointercal/pointercal_0.0.bb  |  22 +++++++++++++++++++++
 10 files changed, 30 insertions(+)
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/COPYING
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/qemuarm/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/qemuarmv6/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/qemuarmv7/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/qemumips/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/qemuppc/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/qemux86-64/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal/qemux86/pointercal
 create mode 100644 meta-gpe/recipes-bsp/pointercal/pointercal_0.0.bb

diff --git a/meta-gpe/recipes-bsp/pointercal/pointercal/COPYING b/meta-gpe/recipes-bsp/pointercal/pointercal/COPYING
new file mode 100644
index 0000000..63f5293
--- /dev/null
+++ b/meta-gpe/recipes-bsp/pointercal/pointercal/COPYING
@@ -0,0 +1,2 @@
+This is a blank COPYING file, and should be filled in by original author in future.
+
diff --git a/meta-gpe/recipes-bsp/pointercal/pointercal/pointercal b/meta-gpe/recipes-bsp/pointercal/pointercal/pointercal
new file mode 100644
index 0000000..e69de29
diff --git a/meta-gpe/recipes-bsp/pointercal/pointercal/qemuarm/pointercal b/meta-gpe/recipes-bsp/pointercal/pointercal/qemuarm/pointercal
new file mode 100644
index 0000000..abd84ca
--- /dev/null
+++ b/meta-gpe/recipes-bsp/pointercal/pointercal/qemuarm/pointercal
@@ -0,0 +1 @@
+8313 4 -8526 7 8334 -82604 65536
diff --git a/meta-gpe/recipes-bsp/pointercal/pointercal/qemuarmv6/pointercal b/meta-gpe/recipes-bsp/pointercal/pointercal/qemuarmv6/pointercal
new file mode 100644
index 0000000..abd84ca
--- /dev/null
+++ b/meta-gpe/recipes-bsp/pointercal/pointercal/qemuarmv6/pointercal
@@ -0,0 +1 @@
+8313 4 -8526 7 8334 -82604 65536
diff --git a/meta-gpe/recipes-bsp/pointercal/pointercal/qemuarmv7/pointercal b/meta-gpe/recipes-bsp/pointercal/pointercal/qemuarmv7/pointercal
new file mode 100644
index 0000000..abd84ca
--- /dev/null
+++ b/meta-gpe/recipes-bsp/pointercal/pointercal/qemuarmv7/pointercal
@@ -0,0 +1 @@
+8313 4 -8526 7 8334 -82604 65536
diff --git a/meta-gpe/recipes-bsp/pointercal/pointercal/qemumips/pointercal b/meta-gpe/recipes-bsp/pointercal/pointercal/qemumips/pointercal
new file mode 100644
index 0000000..abd84ca
--- /dev/null
+++ b/meta-gpe/recipes-bsp/pointercal/pointercal/qemumips/pointercal
@@ -0,0 +1 @@
+8313 4 -8526 7 8334 -82604 65536
diff --git a/meta-gpe/recipes-bsp/pointercal/pointercal/qemuppc/pointercal b/meta-gpe/recipes-bsp/pointercal/pointercal/qemuppc/pointercal
new file mode 100644
index 0000000000000000000000000000000000000000..c2d6e37bf0c0d956ba17ba9955613c4cee5a147a
GIT binary patch
literal 36
mcmXpsFt#*Q&;=n=3lPgl!O+0i%uK=9!qiZ~%+%D_i~#_8+XjmO

literal 0
HcmV?d00001

diff --git a/meta-gpe/recipes-bsp/pointercal/pointercal/qemux86-64/pointercal b/meta-gpe/recipes-bsp/pointercal/pointercal/qemux86-64/pointercal
new file mode 100644
index 0000000..640053d
--- /dev/null
+++ b/meta-gpe/recipes-bsp/pointercal/pointercal/qemux86-64/pointercal
@@ -0,0 +1 @@
+1280 0 1002 0 960 328 65536
diff --git a/meta-gpe/recipes-bsp/pointercal/pointercal/qemux86/pointercal b/meta-gpe/recipes-bsp/pointercal/pointercal/qemux86/pointercal
new file mode 100644
index 0000000..640053d
--- /dev/null
+++ b/meta-gpe/recipes-bsp/pointercal/pointercal/qemux86/pointercal
@@ -0,0 +1 @@
+1280 0 1002 0 960 328 65536
diff --git a/meta-gpe/recipes-bsp/pointercal/pointercal_0.0.bb b/meta-gpe/recipes-bsp/pointercal/pointercal_0.0.bb
new file mode 100644
index 0000000..fcfd038
--- /dev/null
+++ b/meta-gpe/recipes-bsp/pointercal/pointercal_0.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Touchscreen calibration data"
+SECTION = "base"
+PR = "r11"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4b5fcfc87fb615860d398b5e38685edf"
+
+SRC_URI = "file://pointercal \
+           file://COPYING"
+
+S = "${WORKDIR}"
+
+do_install() {
+    # Only install file if it has a contents
+    if [ -s ${S}/pointercal ]; then
+        install -d ${D}${sysconfdir}/
+        install -m 0644 ${S}/pointercal ${D}${sysconfdir}/
+    fi
+}
+
+ALLOW_EMPTY_${PN} = "1"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+INHIBIT_DEFAULT_DEPS = "1"
-- 
2.4.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/4] meta-gpe: add pointercal to layer.conf
  2016-09-16 11:19 [PATCH v2 0/4] move tslib, pointercal and xtscal recipes from oe-core Maxin B. John
  2016-09-16 11:19 ` [PATCH 1/4] pointercal: move recipe " Maxin B. John
@ 2016-09-16 11:19 ` Maxin B. John
  2016-09-16 11:19 ` [PATCH 3/4] xtscal: move recipe from oe-core Maxin B. John
  2016-09-16 11:19 ` [PATCH 4/4] tslib: " Maxin B. John
  3 siblings, 0 replies; 7+ messages in thread
From: Maxin B. John @ 2016-09-16 11:19 UTC (permalink / raw)
  To: openembedded-devel

add pointercal to SIGGEN_EXCLUDERECIPES_ABISAFE in layer.conf

Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
 meta-gpe/conf/layer.conf | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta-gpe/conf/layer.conf b/meta-gpe/conf/layer.conf
index 00f3929..477e4a8 100644
--- a/meta-gpe/conf/layer.conf
+++ b/meta-gpe/conf/layer.conf
@@ -13,3 +13,5 @@ BBFILE_PRIORITY_gpe-layer = "7"
 LAYERVERSION_gpe-layer = "1"
 
 LAYERDEPENDS_gpe-layer = "core openembedded-layer"
+
+SIGGEN_EXCLUDERECIPES_ABISAFE += "pointercal"
-- 
2.4.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/4] xtscal: move recipe from oe-core
  2016-09-16 11:19 [PATCH v2 0/4] move tslib, pointercal and xtscal recipes from oe-core Maxin B. John
  2016-09-16 11:19 ` [PATCH 1/4] pointercal: move recipe " Maxin B. John
  2016-09-16 11:19 ` [PATCH 2/4] meta-gpe: add pointercal to layer.conf Maxin B. John
@ 2016-09-16 11:19 ` Maxin B. John
  2016-09-16 11:19 ` [PATCH 4/4] tslib: " Maxin B. John
  3 siblings, 0 replies; 7+ messages in thread
From: Maxin B. John @ 2016-09-16 11:19 UTC (permalink / raw)
  To: openembedded-devel

Move xtscal recipe from oe-core layer.

Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
 .../xtscal/xtscal/30xTs_Calibrate.sh               |  13 +
 .../xtscal/xtscal/change-cross.patch               |  18 +
 .../recipes-graphics/xtscal/xtscal/cleanup.patch   | 621 +++++++++++++++++++++
 .../xtscal/dso_linking_change_build_fix.patch      |  27 +
 meta-gpe/recipes-graphics/xtscal/xtscal_0.6.3.bb   |  33 ++
 5 files changed, 712 insertions(+)
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal/change-cross.patch
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal/cleanup.patch
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal_0.6.3.bb

diff --git a/meta-gpe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh b/meta-gpe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
new file mode 100644
index 0000000..fa43617
--- /dev/null
+++ b/meta-gpe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+. /etc/formfactor/config
+
+if [ "$HAVE_TOUCHSCREEN" = "1" ]; then
+	n=1
+	while [ ! -z $TSLIB_TSDEVICE ] && [ ! -f /etc/pointercal ] && [ $n -le 5 ]
+	do
+	   /usr/bin/xtscal
+	   sleep 1
+	   n=$(($n+1))
+	done
+fi
diff --git a/meta-gpe/recipes-graphics/xtscal/xtscal/change-cross.patch b/meta-gpe/recipes-graphics/xtscal/xtscal/change-cross.patch
new file mode 100644
index 0000000..1da7717
--- /dev/null
+++ b/meta-gpe/recipes-graphics/xtscal/xtscal/change-cross.patch
@@ -0,0 +1,18 @@
+Upstream-Status: Pending
+
+--- tmp/main.c.orig	2007-01-02 15:39:54.000000000 +0000
++++ tmp/main.c	2007-01-02 15:39:54.000000000 +0000
+@@ -131,9 +131,10 @@
+ {
+   XRenderFillRectangles (dpy, PictOpSrc, pict, &rect_color, rectangles, 2);
+ 
+-  XFillArc (dpy, crosshair_w, crosshair_gc, (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1, 
+-	    (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1,
+-	    WIDTH + 1, WIDTH + 1, 0, 360 * 64);
++  XFillRectangle (dpy, crosshair_w, crosshair_gc,
++		  (CROSSHAIR_SIZE / 2) - (WIDTH / 2),
++		  (CROSSHAIR_SIZE / 2) - (WIDTH / 2),
++		  WIDTH, WIDTH);
+ }
+ 
+ void
diff --git a/meta-gpe/recipes-graphics/xtscal/xtscal/cleanup.patch b/meta-gpe/recipes-graphics/xtscal/xtscal/cleanup.patch
new file mode 100644
index 0000000..f7b0854
--- /dev/null
+++ b/meta-gpe/recipes-graphics/xtscal/xtscal/cleanup.patch
@@ -0,0 +1,621 @@
+---
+ Makefile.am  |    9 --
+ configure.ac |    3 
+ gpe-dist.am  |   12 ---
+ h3600_ts.h   |  216 -----------------------------------------------------------
+ main.c       |  210 ++-------------------------------------------------------
+ xtscal.in    |   19 -----
+ 6 files changed, 14 insertions(+), 455 deletions(-)
+
+Upstream-Status: Pending
+
+Index: xtscal-0.6.3/xtscal.in
+===================================================================
+--- xtscal-0.6.3.orig/xtscal.in	2004-09-10 20:10:36.000000000 +0100
++++ /dev/null	1970-01-01 00:00:00.000000000 +0000
+@@ -1,19 +0,0 @@
+-#!/bin/sh
+-
+-module_id() {
+-    # Get model name
+-    echo `grep "^Hardware" /proc/cpuinfo | sed -e "s/.*: *//" | tr a-z A-Z`
+-}
+-
+-case `module_id` in
+-	"HP IPAQ H3100" | "HP IPAQ H3800" )
+-		ARGS="-rotate 90" ;;
+-	"HP IPAQ H3600" | "HP IPAQ H3700" | "HP IPAQ H3900" | *COLLIE | *POODLE)
+-		ARGS="-rotate 270" ;;
+-	# H2200: works without rotation
+-esac
+-
+-# the things we do for autoconf
+-prefix=@prefix@
+-exec_prefix=@exec_prefix@
+-exec @libexecdir@/xtscal.bin $ARGS $*
+Index: xtscal-0.6.3/main.c
+===================================================================
+--- xtscal-0.6.3.orig/main.c	2007-07-01 01:12:52.000000000 +0100
++++ xtscal-0.6.3/main.c	2007-07-01 01:12:55.000000000 +0100
+@@ -22,12 +22,10 @@
+ #include <X11/Xlib.h>
+ 
+ #include <X11/extensions/Xrender.h>
+-#include <X11/extensions/Xrandr.h>
+ #include <X11/Xft/Xft.h>
+ #include <X11/extensions/xcalibrate.h>
+ #include <X11/keysym.h>
+ 
+-#include "h3600_ts.h"
+ #include "calibrate.h"
+ 
+ Display *dpy;
+@@ -45,15 +43,11 @@ XftColor xftcol;
+ XftDraw *xftdraw;
+ XftFont *xftfont;
+ int screen_x, screen_y;
+-int ts_fd;
+ int samples;
+ Pixmap bg_pixmap;
+ int flag_debug;
+-int rotation = 0;
+ int error_base, event_base;
+ 
+-int using_xcalibrate;
+-
+ int moving;
+ 
+ #define CROSSHAIR_SIZE	25
+@@ -63,7 +57,6 @@ int moving;
+ #define ENOUGH 5
+ #define MAX_SAMPLES 40
+ 
+-#define RAW_DEVICE "/dev/h3600_tsraw"
+ #define FONTNAME "sans-10"
+ 
+ struct point 
+@@ -287,12 +280,8 @@ sort_by_y (const void* a, const void *b)
+ void
+ set_calibration (calibration *cal)
+ {
+-  TS_CAL tc;
+-  int xtrans, ytrans, xscale, yscale, xyscale, yxscale;
+   calibration ocal = *cal;
+ 
+-  if (using_xcalibrate)
+-    {
+       FILE *fp;
+       if (flag_debug)
+ 	printf ("constants are: %d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]);
+@@ -304,29 +293,6 @@ set_calibration (calibration *cal)
+ 	}
+       fprintf (fp, "%d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]);
+       fclose (fp); 
+-      return;
+-    }
+-
+-  xtrans = cal->a[0] / cal->a[6];
+-  ytrans = cal->a[3] / cal->a[6];
+-  xscale = cal->a[1] * 256 / cal->a[6];
+-  yscale = cal->a[5] * 256 / cal->a[6];
+-  xyscale = cal->a[2] * 256 / cal->a[6];
+-  yxscale = cal->a[4] * 256 / cal->a[6];
+-  
+-  tc.xtrans = xtrans;
+-  tc.ytrans = ytrans;
+-  tc.xscale = xscale;
+-  tc.yscale = yscale;
+-  tc.xyswap = 0;
+-
+-  printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap);
+-
+-  if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0)
+-    {
+-      perror ("TS_SET_CAL");
+-      exit (1);
+-    }
+ }
+ 
+ void
+@@ -398,80 +364,13 @@ handle_ts_event (int x, int y, int press
+ }
+ 
+ void
+-read_ts (void)
+-{
+-  TS_EVENT ts_ev;
+-  int r;
+-
+-  r = read (ts_fd, &ts_ev, sizeof (ts_ev));
+-  if (r == sizeof (ts_ev))
+-    handle_ts_event (ts_ev.x, ts_ev.y, ts_ev.pressure);
+-}
+-
+-void
+-do_cal (char **args)
+-{
+-  TS_CAL tc;
+-
+-  tc.xscale = atoi (args[0]);
+-  tc.xtrans = atoi (args[1]);
+-  tc.yscale = atoi (args[2]);
+-  tc.ytrans = atoi (args[3]);
+-  tc.xyswap = atoi (args[4]);
+-
+-  if (flag_debug)
+-    fprintf (stderr, "setting: %d %d %d %d %d\n", 
+-	     tc.xtrans, tc.ytrans, tc.xscale, tc.yscale, tc.xyswap);
+-    
+-  if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0)
+-    {
+-      perror ("TS_SET_CAL");
+-      exit (1);
+-    }
+-  
+-  exit (0);
+-}
+-
+-void
+-show_cal (void)
+-{
+-  TS_CAL tc;
+-
+-  if (ioctl (ts_fd, TS_GET_CAL, (void *)&tc) != 0)
+-    {
+-      perror ("TS_GET_CAL");
+-      exit (1);
+-    }
+-
+-  printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap);
+-}
+-
+-void
+ usage (const char *name)
+ {
+-  fprintf (stderr, "usage: %s -view\n", name);
+-  fprintf (stderr, "       %s [-rotate <0 | 90 | 180 | 270>]\n", name);
+-  fprintf (stderr, "       %s -cal <xs> <xt> <ys> <yt> <xyswap>\n", name);
+-
++  fprintf (stderr, "usage: %s [-debug]\n", name);
+   exit (1);
+ }
+ 
+ int
+-xrr_supported (void)
+-{
+-  int xrr_event_base, xrr_error_base;
+-  int xrr_major, xrr_minor;
+-
+-  if (XRRQueryExtension (dpy, &xrr_event_base, &xrr_error_base) == False
+-      || XRRQueryVersion (dpy, &xrr_major, &xrr_minor) == 0
+-      || xrr_major != 1
+-      || xrr_minor < 1)
+-    return 0;
+-
+-  return 1;
+-}
+-
+-int
+ main (int argc, char *argv[])
+ {
+   XSetWindowAttributes attributes;
+@@ -480,31 +379,11 @@ main (int argc, char *argv[])
+   int max_fd;
+   GC bg_gc;
+   int i;
+-  int have_xrandr;
+ 
+   for (i = 1; i < argc; i++)
+     {
+-      if (!strcmp (argv[i], "-view"))
+-	{
+-	  show_cal ();
+-	  exit (0);
+-	}
+-      else if (!strcmp (argv[i], "-debug"))
++      if (!strcmp (argv[i], "-debug"))
+ 	flag_debug = 1;
+-      else if (!strcmp (argv[i], "-cal"))
+-	{
+-	  if (argc > (i + 5))
+-	    do_cal (argv + i + 1);
+-	  else
+-	    usage (argv[0]);
+-	}
+-      else if (!strcmp (argv[i], "-rotate"))
+-	{
+-	  if (argc > (i + 1))
+-	    rotation = atoi (argv[++i]);
+-	  else
+-	    usage (argv[0]);
+-	}
+       else
+ 	usage (argv[0]);
+     }
+@@ -531,48 +410,11 @@ main (int argc, char *argv[])
+ 	  fprintf (stderr, "failed to set raw mode: error %d\n", r);
+ 	  exit (1);
+ 	}
+-
+-      using_xcalibrate = 1;
+-    }
+-
+-  have_xrandr = xrr_supported ();
+-  if (have_xrandr)
+-    {
+-      XRRScreenConfiguration *rr_screen;
+-      Rotation current_rotation;
+-
+-      if (flag_debug)
+-	fprintf (stderr, "XRANDR is supported\n");
+-
+-      rr_screen = XRRGetScreenInfo (dpy, RootWindow (dpy, screen));
+-
+-      XRRRotations (dpy, screen, &current_rotation);
+-
+-      XRRFreeScreenConfigInfo (rr_screen);
+-
+-      if (flag_debug)
+-	fprintf (stderr, "Current RANDR rotation is %d\n", current_rotation);
+-
+-      switch (current_rotation)
+-	{
+-	case RR_Rotate_270:
+-	  rotation += 90;
+-	case RR_Rotate_180:
+-	  rotation += 90;
+-	case RR_Rotate_90:
+-	  rotation += 90;
+-	  rotation %= 360;
+-	case RR_Rotate_0:
+-	  break;
+-	default:
+-	  fprintf (stderr, "Unknown RANDR rotation: %d\n", current_rotation);
+-	  break;
+-	}
+     }
+   else
+     {
+-      if (flag_debug)
+-	fprintf (stderr, "XRANDR not supported\n");
++      perror ("XCALIBRATE extension missing");
++      exit (1);
+     }
+ 
+   attributes.override_redirect = flag_debug ? False : True;
+@@ -666,45 +508,17 @@ main (int argc, char *argv[])
+ 
+   for (i = 0; i < NR_POINTS; i++)
+     {
+-      switch (rotation)
+-	{
+-	case 0:
+-	  cal.xfb[i] = cal.xscr[i];
+-	  cal.yfb[i] = cal.yscr[i];
+-	  break;
+-	case 90:
+-	  cal.xfb[i] = cal.yscr[i];
+-	  cal.yfb[i] = screen_x - cal.xscr[i];
+-	  break;
+-	case 180:
+-	  cal.xfb[i] = screen_x - cal.xscr[i];
+-	  cal.yfb[i] = screen_y - cal.yscr[i];
+-	  break;
+-	case 270:
+-	  cal.xfb[i] = screen_y - cal.yscr[i];
+-	  cal.yfb[i] = cal.xscr[i];
+-	  break;
+-	}
++      cal.xfb[i] = cal.xscr[i];
++      cal.yfb[i] = cal.yscr[i];
++      XCalibrateScreenToCoord (dpy, &cal.xfb[i], &cal.yfb[i]);
+ 
+       if (flag_debug)
+-	printf ("rotation %d: (%d,%d) -> (%d,%d)\n", rotation, 
++	printf ("rotation conversion: (%d,%d) -> (%d,%d)\n",
+ 		cal.xscr[i], cal.yscr[i], cal.xfb[i], cal.yfb[i]);
+     }
+ 
+   next_event ();
+ 
+-  if (!using_xcalibrate)
+-    {
+-      ts_fd = open (RAW_DEVICE, O_RDONLY);
+-      if (ts_fd < 0)
+-	{
+-	  perror (RAW_DEVICE);
+-	  exit (1);
+-	}
+-    }
+-
+-  max_fd = (xfd > ts_fd) ? xfd : ts_fd;
+-
+   for (;;)
+     {
+       fd_set fds;
+@@ -713,12 +527,8 @@ main (int argc, char *argv[])
+ 
+       FD_ZERO (&fds);
+       FD_SET (xfd, &fds);
+-      if (ts_fd != -1)
+-	FD_SET (ts_fd, &fds);
+ 
+-      select (max_fd + 1, &fds, NULL, NULL, NULL);
+-      
+-      if (ts_fd != -1 && FD_ISSET (ts_fd, &fds))
+-	read_ts ();
++      select (xfd + 1, &fds, NULL, NULL, NULL);
+     }
+ }
++
+Index: xtscal-0.6.3/configure.ac
+===================================================================
+--- xtscal-0.6.3.orig/configure.ac	2004-09-10 20:11:12.000000000 +0100
++++ xtscal-0.6.3/configure.ac	2007-07-01 01:12:55.000000000 +0100
+@@ -9,8 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2])
+ # Checks for programs.
+ AC_PROG_CC
+ 
+-PKG_CHECK_MODULES(XTSCAL, x11 xft xext xrandr xcalibrate)
++PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate)
+ 
+ AC_CONFIG_FILES([Makefile])
+-AC_CONFIG_FILES([xtscal])
+ AC_OUTPUT
+Index: xtscal-0.6.3/gpe-dist.am
+===================================================================
+--- xtscal-0.6.3.orig/gpe-dist.am	2004-06-02 23:07:13.000000000 +0100
++++ /dev/null	1970-01-01 00:00:00.000000000 +0000
+@@ -1,12 +0,0 @@
+-CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_])
+-
+-dist-upload: dist
+-	scp $(PACKAGE)-$(VERSION).tar.bz2 $(USER)@handhelds.org:/home/ftp/pub/projects/gpe/source/
+-
+-tag:
+-	cvs tag $(CVSTAG)
+-
+-retag:
+-	cvs tag -F $(CVSTAG)
+-
+-source: tag dist-upload
+Index: xtscal-0.6.3/h3600_ts.h
+===================================================================
+--- xtscal-0.6.3.orig/h3600_ts.h	2003-07-05 17:27:10.000000000 +0100
++++ /dev/null	1970-01-01 00:00:00.000000000 +0000
+@@ -1,216 +0,0 @@
+-/*
+-*
+-* Driver for the H3600 Touch Screen and other Atmel controlled devices.
+-*
+-* Copyright 2000 Compaq Computer Corporation.
+-*
+-* Use consistent with the GNU GPL is permitted,
+-* provided that this copyright notice is
+-* preserved in its entirety in all copies and derived works.
+-*
+-* COMPAQ COMPUTER CORPORATION MAKES NO WARRANTIES, EXPRESSED OR IMPLIED,
+-* AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS
+-* FITNESS FOR ANY PARTICULAR PURPOSE.
+-*
+-* Author: Charles Flynn.
+-*
+-*/
+-
+-
+-#ifndef __H3600_TS_H__
+-#define __H3600_TS_H__
+-
+-#include <linux/ioctl.h>
+-
+-enum h3600_ts_minor_devices {
+-	TS_MINOR    = 0,
+-	TSRAW_MINOR = 1,
+-	KEY_MINOR   = 2
+-};
+-
+-typedef struct h3600_ts_calibration {
+-        int xscale;
+-        int xtrans;
+-        int yscale;
+-        int ytrans;
+-        int xyswap;
+-} TS_CAL;
+-
+-typedef struct h3600_ts_event {
+-        unsigned short pressure;
+-        unsigned short x;
+-        unsigned short y;
+-        unsigned short pad;
+-} TS_EVENT;
+-
+-/* Deprecated - do not use */
+-typedef struct h3600_ts_return {
+-        unsigned short pressure;
+-        unsigned short x;
+-        unsigned short y;
+-        unsigned short pad;
+-} TS_RET;
+-
+-enum power_button_mode {
+-   PBM_SUSPEND           = 0,
+-   PBM_GENERATE_KEYPRESS = 1
+-};
+-
+-
+-/* ++++++++++++++ +++++++++++++++++++++++++++++++++++++ */
+-
+-typedef struct therm_dev {
+-	short data;
+-} THERM_DEV;
+-
+-#define H3600_BATT_CHEM_ALKALINE        0x01
+-#define H3600_BATT_CHEM_NICD            0x02
+-#define H3600_BATT_CHEM_NIMH            0x03
+-#define H3600_BATT_CHEM_LION            0x04
+-#define H3600_BATT_CHEM_LIPOLY          0x05
+-#define H3600_BATT_CHEM_NOT_INSTALLED   0x06
+-#define H3600_BATT_CHEM_UNKNOWN         0xff
+-
+-/* These should match the apm_bios.h definitions */
+-#define H3600_AC_STATUS_AC_OFFLINE	0x00
+-#define H3600_AC_STATUS_AC_ONLINE	0x01
+-#define H3600_AC_STATUS_AC_BACKUP	0x02   /* What does this mean? */
+-#define H3600_AC_STATUS_AC_UNKNOWN	0xff
+-
+-/* These bitfields are rarely "or'd" together */
+-#define H3600_BATT_STATUS_HIGH		0x01
+-#define H3600_BATT_STATUS_LOW		0x02
+-#define H3600_BATT_STATUS_CRITICAL	0x04
+-#define H3600_BATT_STATUS_CHARGING	0x08
+-#define H3600_BATT_STATUS_CHARGE_MAIN   0x10
+-#define H3600_BATT_STATUS_DEAD          0x20   /* Battery will not charge */
+-#define H3600_BATT_NOT_INSTALLED        0x20   /* For expansion pack batteries */
+-#define H3600_BATT_STATUS_FULL          0x40   /* Battery fully charged (and connected to AC) */
+-#define H3600_BATT_STATUS_NOBATT	0x80
+-#define H3600_BATT_STATUS_UNKNOWN	0xff
+-
+-struct battery_data {
+-	unsigned char  chemistry;
+-	unsigned char  status;
+-	unsigned short voltage;    /* Voltage for battery #0; unknown for battery #1 */
+-	unsigned short percentage; /* Percentage of full charge */
+-	unsigned short life;       /* Life remaining in minutes */
+-};
+-
+-struct h3600_battery {
+-        unsigned char       ac_status;
+-	unsigned char       battery_count;  /* How many batteries we have */
+-	struct battery_data battery[2];
+-};
+-
+-/* -------- EEPROM and SPI Interfaces ---------------*/
+-
+-#define EEPROM_RD_BUFSIZ 6	/* EEPROM reads are 16 bits */
+-#define EEPROM_WR_BUFSIZ 5	/* Allow room for 8bit 'addr' field in buffer*/ 
+-#define SPI_RD_BUFSIZ	 16	/* SPI reads are 8 bits */
+-#define SPI_WR_BUFSIZ	 7
+-
+-/* The EEPROM is where internal programs are stored on the Amtel.
+-   You probably don't want to read or write these values */
+-
+-typedef struct h3600_eeprom_read_request {
+-	unsigned char addr;    /* 8bit Address Offset 0-255 */
+-	unsigned char len;     /* Number of 16bit words to read 0-128  */
+-	unsigned short buff[EEPROM_RD_BUFSIZ];
+-} EEPROM_READ;
+-
+-typedef struct h3600_eeprom_write_request {
+-	unsigned char len;	/* used only to compute the number of bytes to send */
+-	unsigned char addr;    /* 0-128  */
+-	unsigned short buff[EEPROM_WR_BUFSIZ];
+-} EEPROM_WRITE;
+-
+-/* The SPI bus connects to EEPROMs located on sleeves plugged into
+-   the iPAQ.  You may want to read these values  */
+-
+-typedef struct h3600_spi_read_request {
+-	unsigned short addr;    /* 16bit Address Offset 0-128 */
+-	unsigned char len;      /* Number of bytes to read */
+-	unsigned char buff[SPI_RD_BUFSIZ];
+-} SPI_READ;
+-
+-#define SPI_READ_STATUS_BYTE  0xffff   /* Use this address to read the status byte */
+-
+-typedef struct h3600_spi_write_request {
+-	unsigned short len;	/* used only to compute the number of bytes to send */
+-	unsigned short addr;	/* this 16bit address accesses a single byte */
+-	unsigned char  buff[SPI_WR_BUFSIZ];
+-} SPI_WRITE;
+-
+-
+-/* -------- end of EEPROM and SPI Interfaces ---------------*/
+-
+-/* User space structures for IOCTL calls */
+-
+-typedef struct h3600_ts_version {
+-	unsigned char host_version[8];	/* ascii "x.yy" */
+-	unsigned char pack_version[8];	/* ascii "x.yy" */
+-	unsigned char boot_type;		/* TODO ?? */
+-} VER_RET;
+-
+-typedef struct h3600_ts_led {
+-        unsigned char OffOnBlink;       /* 0=off 1=on 2=Blink */
+-        unsigned char TotalTime;        /* Units of 5 seconds */
+-        unsigned char OnTime;           /* units of 100m/s */
+-        unsigned char OffTime;          /* units of 100m/s */
+-} LED_IN;
+-
+-enum flite_mode {
+-        FLITE_MODE1 = 1,
+-	FLITE_AUTO_MODE   = 1,     /* for reference only */
+-	FLITE_MANUAL_MODE = 2,     /* Use this normally? */
+-	FLITE_GET_LIGHT_SENSOR = 3 /* Returns light reading in "brightness" field */
+-};
+-enum flite_pwr {
+-        FLITE_PWR_OFF = 0,
+-        FLITE_PWR_ON  = 1
+-};
+-
+-typedef struct h3600_ts_flite {
+-        unsigned char mode;
+-        unsigned char pwr;
+-        unsigned char brightness;
+-} FLITE_IN;
+-
+-/*************************** Updated "universal" structures *******************/
+-
+-/* Sets backlight for both H3100 and H3600 models - technically "frontlight" for H3600 */
+-struct h3600_ts_backlight {
+-	enum flite_pwr power;          /* 0 = off, 1 = on */
+-	unsigned char  brightness;     /* 0 - 255         */
+-};
+-
+-struct h3600_ts_contrast {            /* Only useful on H3100 model */
+-	unsigned char contrast;       /* 0 - 255 */
+-};
+-
+-/* IOCTL cmds  user or kernel space */
+-
+-/* Use 'f' as magic number */
+-#define IOC_H3600_TS_MAGIC  'f'
+-
+-/* TODO: Some of these IOWR values are just plain wrong */
+-#define GET_VERSION		_IOR(IOC_H3600_TS_MAGIC,  1, struct h3600_ts_version )
+-#define READ_EEPROM		_IOWR(IOC_H3600_TS_MAGIC, 2, struct h3600_eeprom_read_request)
+-#define WRITE_EEPROM		_IOWR(IOC_H3600_TS_MAGIC, 3, struct h3600_eeprom_write_request)
+-#define GET_THERMAL		_IOR(IOC_H3600_TS_MAGIC,  4, struct therm_dev)
+-#define LED_ON			_IOW(IOC_H3600_TS_MAGIC,  5, struct h3600_ts_led)
+-#define GET_BATTERY_STATUS	_IOR(IOC_H3600_TS_MAGIC,  6, struct h3600_battery)
+-#define FLITE_ON		_IOW(IOC_H3600_TS_MAGIC,  7, struct h3600_ts_flite)
+-#define READ_SPI		_IOWR(IOC_H3600_TS_MAGIC, 8, struct h3600_spi_read_request)
+-#define WRITE_SPI		_IOWR(IOC_H3600_TS_MAGIC, 9, struct h3600_spi_write_request)
+-#define TS_GET_CAL		_IOR(IOC_H3600_TS_MAGIC, 10, struct h3600_ts_calibration)
+-#define TS_SET_CAL		_IOW(IOC_H3600_TS_MAGIC, 11, struct h3600_ts_calibration)
+-
+-/* New IOCTL interfaces - defined to be more user friendly */
+-#define TS_GET_BACKLIGHT        _IOR(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight)
+-#define TS_SET_BACKLIGHT        _IOW(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight)
+-#define TS_GET_CONTRAST         _IOR(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast)
+-#define TS_SET_CONTRAST         _IOW(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast)
+-
+-#endif
+Index: xtscal-0.6.3/Makefile.am
+===================================================================
+--- xtscal-0.6.3.orig/Makefile.am	2004-06-02 23:07:13.000000000 +0100
++++ xtscal-0.6.3/Makefile.am	2007-07-02 12:51:02.000000000 +0100
+@@ -1,11 +1,8 @@
+-libexec_PROGRAMS = xtscal.bin
+-bin_SCRIPTS = xtscal
++bin_PROGRAMS = xtscal
+ 
+-xtscal_bin_SOURCES = main.c calibrate.c calibrate.h h3600_ts.h
++xtscal_SOURCES = main.c calibrate.c calibrate.h
+ 
+-xtscal_bin_LDADD = @XTSCAL_LIBS@
++xtscal_LDADD = @XTSCAL_LIBS@
+ 
+ INCLUDES = @XTSCAL_CFLAGS@ -DNR_POINTS=5
+ 
+-include gpe-dist.am
+-
diff --git a/meta-gpe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch b/meta-gpe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
new file mode 100644
index 0000000..3e4533f
--- /dev/null
+++ b/meta-gpe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
@@ -0,0 +1,27 @@
+after gcc linking has changed, all the libraries must be explicitely specified 
+This patch avoids this linking error:
+
+| ccache i586-poky-linux-gcc -march=i586 --sysroot=/disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux  -fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -ggdb -feliminate-unused-debug-types  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o xtscal main.o calibrate.o -lX11 -lXft -lXext -lXcalibrate^M
+| /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: ^?: invalid DSO for symbol `XRenderChangePicture' definition^M
+| /disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux/usr/lib/libXrender.so.1: could not read symbols: Bad value^M
+| collect2: ld returned 1 exit status^M
+| make: *** [xtscal] Error 1
+
+Nitin A Kamble <nitin.a.kamble@intel.com>
+Date: 2011/01/11
+
+Upstream-Status: Pending
+
+Index: xtscal-0.6.3/configure.ac
+===================================================================
+--- xtscal-0.6.3.orig/configure.ac
++++ xtscal-0.6.3/configure.ac
+@@ -9,7 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2])
+ # Checks for programs.
+ AC_PROG_CC
+ 
+-PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate)
++PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate xrender)
+ 
+ AC_CONFIG_FILES([Makefile])
+ AC_OUTPUT
diff --git a/meta-gpe/recipes-graphics/xtscal/xtscal_0.6.3.bb b/meta-gpe/recipes-graphics/xtscal/xtscal_0.6.3.bb
new file mode 100644
index 0000000..4bfddf0
--- /dev/null
+++ b/meta-gpe/recipes-graphics/xtscal/xtscal_0.6.3.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Touchscreen calibration utility"
+
+DESCRIPTION = "Basic touchscreen calibration utility"
+
+HOMEPAGE = "http://gpe.linuxtogo.org"
+BUGTRACKER = "http://bugs.linuxtogo.org"
+LICENSE = "GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://main.c;endline=10;md5=8721bcb08ae9f24e5fe4c82941873c87"
+
+SECTION = "x11/base"
+
+DEPENDS = "virtual/libx11 libxft libxcalibrate"
+
+PR = "r13"
+
+SRC_URI = "${GPE_MIRROR}/xtscal-${PV}.tar.bz2 \
+           file://change-cross.patch \
+           file://cleanup.patch \
+           file://dso_linking_change_build_fix.patch \
+           file://30xTs_Calibrate.sh"
+
+SRC_URI[md5sum] = "9bcab80b474d5454477d1ca166a68c34"
+SRC_URI[sha256sum] = "27b9dc2203de9b1706ca39fa6ca80ecab8807909ec901c4a345b8e41178800a1"
+
+inherit autotools pkgconfig distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+do_install_append() {
+    install -d ${D}${sysconfdir}/X11/Xsession.d/
+    install -m 0755 ${WORKDIR}/30xTs_Calibrate.sh ${D}${sysconfdir}/X11/Xsession.d/
+}
-- 
2.4.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/4] tslib: move recipe from oe-core
  2016-09-16 11:19 [PATCH v2 0/4] move tslib, pointercal and xtscal recipes from oe-core Maxin B. John
                   ` (2 preceding siblings ...)
  2016-09-16 11:19 ` [PATCH 3/4] xtscal: move recipe from oe-core Maxin B. John
@ 2016-09-16 11:19 ` Maxin B. John
  3 siblings, 0 replies; 7+ messages in thread
From: Maxin B. John @ 2016-09-16 11:19 UTC (permalink / raw)
  To: openembedded-devel

Move tslib recipe from oe-core layer.

Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
 meta-gpe/recipes-graphics/tslib/tslib/ts.conf  | 25 ++++++++++++
 meta-gpe/recipes-graphics/tslib/tslib/tslib.sh |  8 ++++
 meta-gpe/recipes-graphics/tslib/tslib_1.1.bb   | 53 ++++++++++++++++++++++++++
 3 files changed, 86 insertions(+)
 create mode 100644 meta-gpe/recipes-graphics/tslib/tslib/ts.conf
 create mode 100644 meta-gpe/recipes-graphics/tslib/tslib/tslib.sh
 create mode 100644 meta-gpe/recipes-graphics/tslib/tslib_1.1.bb

diff --git a/meta-gpe/recipes-graphics/tslib/tslib/ts.conf b/meta-gpe/recipes-graphics/tslib/tslib/ts.conf
new file mode 100644
index 0000000..1b0da93
--- /dev/null
+++ b/meta-gpe/recipes-graphics/tslib/tslib/ts.conf
@@ -0,0 +1,25 @@
+# Uncomment if you wish to use the linux input layer event interface
+module_raw input
+
+# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
+# module_raw collie
+
+# Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860
+# module_raw corgi
+
+# Uncomment if you're using a device with a UCB1200/1300/1400 TS interface
+# module_raw ucb1x00
+
+# Uncomment if you're using an HP iPaq h3600 or similar
+# module_raw h3600
+
+# Uncomment if you're using a Hitachi Webpad
+# module_raw mk712
+
+# Uncomment if you're using an IBM Arctic II
+# module_raw arctic2
+
+module pthres pmin=1
+module variance delta=30
+module dejitter delta=100
+module linear
diff --git a/meta-gpe/recipes-graphics/tslib/tslib/tslib.sh b/meta-gpe/recipes-graphics/tslib/tslib/tslib.sh
new file mode 100644
index 0000000..7068e8d
--- /dev/null
+++ b/meta-gpe/recipes-graphics/tslib/tslib/tslib.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+if [ -e /dev/input/touchscreen0 ]; then
+    TSLIB_TSDEVICE=/dev/input/touchscreen0
+
+    export TSLIB_TSDEVICE
+fi
+
diff --git a/meta-gpe/recipes-graphics/tslib/tslib_1.1.bb b/meta-gpe/recipes-graphics/tslib/tslib_1.1.bb
new file mode 100644
index 0000000..502034a
--- /dev/null
+++ b/meta-gpe/recipes-graphics/tslib/tslib_1.1.bb
@@ -0,0 +1,53 @@
+SUMMARY = "An abstraction layer for touchscreen panel events"
+DESCRIPTION = "Tslib is an abstraction layer for touchscreen panel \
+events, as well as a filter stack for the manipulation of those events. \
+Tslib is generally used on embedded devices to provide a common user \
+space interface to touchscreen functionality."
+HOMEPAGE = "http://tslib.berlios.de/"
+
+AUTHOR = "Russell King w/ plugins by Chris Larson et. al."
+SECTION = "base"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f30a9716ef3762e3467a2f62bf790f0a"
+
+SRC_URI = "https://github.com/kergoth/tslib/releases/download/${PV}/tslib-${PV}.tar.xz;downloadfilename=tslib-${PV}.tar.xz \
+           file://ts.conf \
+           file://tslib.sh \
+"
+
+SRC_URI[md5sum] = "14771f8607b341bb4b297819d37e837d"
+SRC_URI[sha256sum] = "fe35e5f710ea933b118f710e2ce4403ac076fe69926b570333867d4de082a51c"
+
+UPSTREAM_CHECK_URI = "https://github.com/kergoth/tslib/releases"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-shared --disable-h3600 --enable-input --disable-corgi --disable-collie --disable-mk712 --disable-arctic2 --disable-ucb1x00"
+
+do_install_prepend() {
+    install -m 0644 ${WORKDIR}/ts.conf ${S}/etc/ts.conf
+}
+
+do_install_append() {
+    install -d ${D}${sysconfdir}/profile.d/
+    install -m 0755 ${WORKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/
+}
+
+# People should consider using udev's /dev/input/touchscreen0 symlink
+# instead of detect-stylus
+#RDEPENDS_tslib-conf_weird-machine = "detect-stylus"
+RPROVIDES_tslib-conf = "libts-0.0-conf"
+
+PACKAGES =+ "tslib-conf tslib-tests tslib-calibrate"
+DEBIAN_NOAUTONAME_tslib-conf = "1"
+DEBIAN_NOAUTONAME_tslib-tests = "1"
+DEBIAN_NOAUTONAME_tslib-calibrate = "1"
+
+RDEPENDS_${PN} = "tslib-conf"
+RRECOMMENDS_${PN} = "pointercal"
+
+FILES_${PN}-dev += "${libdir}/ts/*.la"
+FILES_tslib-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib"
+FILES_${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*"
+FILES_tslib-calibrate += "${bindir}/ts_calibrate"
+FILES_tslib-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_test"
-- 
2.4.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/4] xtscal: move recipe from oe-core
  2016-09-21 15:47 [PATCH v3 0/4] move tslib, pointercal and xtscal recipes " Maxin B. John
@ 2016-09-21 15:47 ` Maxin B. John
  0 siblings, 0 replies; 7+ messages in thread
From: Maxin B. John @ 2016-09-21 15:47 UTC (permalink / raw)
  To: openembedded-devel

Move xtscal recipe from oe-core layer

Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
 .../xtscal/xtscal/30xTs_Calibrate.sh               |  13 +
 .../xtscal/xtscal/change-cross.patch               |  18 +
 .../recipes-graphics/xtscal/xtscal/cleanup.patch   | 621 +++++++++++++++++++++
 .../xtscal/dso_linking_change_build_fix.patch      |  27 +
 meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb    |  33 ++
 5 files changed, 712 insertions(+)
 create mode 100644 meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
 create mode 100644 meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch
 create mode 100644 meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch
 create mode 100644 meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
 create mode 100644 meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb

diff --git a/meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh b/meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
new file mode 100644
index 0000000..fa43617
--- /dev/null
+++ b/meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+. /etc/formfactor/config
+
+if [ "$HAVE_TOUCHSCREEN" = "1" ]; then
+	n=1
+	while [ ! -z $TSLIB_TSDEVICE ] && [ ! -f /etc/pointercal ] && [ $n -le 5 ]
+	do
+	   /usr/bin/xtscal
+	   sleep 1
+	   n=$(($n+1))
+	done
+fi
diff --git a/meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch b/meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch
new file mode 100644
index 0000000..1da7717
--- /dev/null
+++ b/meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch
@@ -0,0 +1,18 @@
+Upstream-Status: Pending
+
+--- tmp/main.c.orig	2007-01-02 15:39:54.000000000 +0000
++++ tmp/main.c	2007-01-02 15:39:54.000000000 +0000
+@@ -131,9 +131,10 @@
+ {
+   XRenderFillRectangles (dpy, PictOpSrc, pict, &rect_color, rectangles, 2);
+ 
+-  XFillArc (dpy, crosshair_w, crosshair_gc, (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1, 
+-	    (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1,
+-	    WIDTH + 1, WIDTH + 1, 0, 360 * 64);
++  XFillRectangle (dpy, crosshair_w, crosshair_gc,
++		  (CROSSHAIR_SIZE / 2) - (WIDTH / 2),
++		  (CROSSHAIR_SIZE / 2) - (WIDTH / 2),
++		  WIDTH, WIDTH);
+ }
+ 
+ void
diff --git a/meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch b/meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch
new file mode 100644
index 0000000..f7b0854
--- /dev/null
+++ b/meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch
@@ -0,0 +1,621 @@
+---
+ Makefile.am  |    9 --
+ configure.ac |    3 
+ gpe-dist.am  |   12 ---
+ h3600_ts.h   |  216 -----------------------------------------------------------
+ main.c       |  210 ++-------------------------------------------------------
+ xtscal.in    |   19 -----
+ 6 files changed, 14 insertions(+), 455 deletions(-)
+
+Upstream-Status: Pending
+
+Index: xtscal-0.6.3/xtscal.in
+===================================================================
+--- xtscal-0.6.3.orig/xtscal.in	2004-09-10 20:10:36.000000000 +0100
++++ /dev/null	1970-01-01 00:00:00.000000000 +0000
+@@ -1,19 +0,0 @@
+-#!/bin/sh
+-
+-module_id() {
+-    # Get model name
+-    echo `grep "^Hardware" /proc/cpuinfo | sed -e "s/.*: *//" | tr a-z A-Z`
+-}
+-
+-case `module_id` in
+-	"HP IPAQ H3100" | "HP IPAQ H3800" )
+-		ARGS="-rotate 90" ;;
+-	"HP IPAQ H3600" | "HP IPAQ H3700" | "HP IPAQ H3900" | *COLLIE | *POODLE)
+-		ARGS="-rotate 270" ;;
+-	# H2200: works without rotation
+-esac
+-
+-# the things we do for autoconf
+-prefix=@prefix@
+-exec_prefix=@exec_prefix@
+-exec @libexecdir@/xtscal.bin $ARGS $*
+Index: xtscal-0.6.3/main.c
+===================================================================
+--- xtscal-0.6.3.orig/main.c	2007-07-01 01:12:52.000000000 +0100
++++ xtscal-0.6.3/main.c	2007-07-01 01:12:55.000000000 +0100
+@@ -22,12 +22,10 @@
+ #include <X11/Xlib.h>
+ 
+ #include <X11/extensions/Xrender.h>
+-#include <X11/extensions/Xrandr.h>
+ #include <X11/Xft/Xft.h>
+ #include <X11/extensions/xcalibrate.h>
+ #include <X11/keysym.h>
+ 
+-#include "h3600_ts.h"
+ #include "calibrate.h"
+ 
+ Display *dpy;
+@@ -45,15 +43,11 @@ XftColor xftcol;
+ XftDraw *xftdraw;
+ XftFont *xftfont;
+ int screen_x, screen_y;
+-int ts_fd;
+ int samples;
+ Pixmap bg_pixmap;
+ int flag_debug;
+-int rotation = 0;
+ int error_base, event_base;
+ 
+-int using_xcalibrate;
+-
+ int moving;
+ 
+ #define CROSSHAIR_SIZE	25
+@@ -63,7 +57,6 @@ int moving;
+ #define ENOUGH 5
+ #define MAX_SAMPLES 40
+ 
+-#define RAW_DEVICE "/dev/h3600_tsraw"
+ #define FONTNAME "sans-10"
+ 
+ struct point 
+@@ -287,12 +280,8 @@ sort_by_y (const void* a, const void *b)
+ void
+ set_calibration (calibration *cal)
+ {
+-  TS_CAL tc;
+-  int xtrans, ytrans, xscale, yscale, xyscale, yxscale;
+   calibration ocal = *cal;
+ 
+-  if (using_xcalibrate)
+-    {
+       FILE *fp;
+       if (flag_debug)
+ 	printf ("constants are: %d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]);
+@@ -304,29 +293,6 @@ set_calibration (calibration *cal)
+ 	}
+       fprintf (fp, "%d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]);
+       fclose (fp); 
+-      return;
+-    }
+-
+-  xtrans = cal->a[0] / cal->a[6];
+-  ytrans = cal->a[3] / cal->a[6];
+-  xscale = cal->a[1] * 256 / cal->a[6];
+-  yscale = cal->a[5] * 256 / cal->a[6];
+-  xyscale = cal->a[2] * 256 / cal->a[6];
+-  yxscale = cal->a[4] * 256 / cal->a[6];
+-  
+-  tc.xtrans = xtrans;
+-  tc.ytrans = ytrans;
+-  tc.xscale = xscale;
+-  tc.yscale = yscale;
+-  tc.xyswap = 0;
+-
+-  printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap);
+-
+-  if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0)
+-    {
+-      perror ("TS_SET_CAL");
+-      exit (1);
+-    }
+ }
+ 
+ void
+@@ -398,80 +364,13 @@ handle_ts_event (int x, int y, int press
+ }
+ 
+ void
+-read_ts (void)
+-{
+-  TS_EVENT ts_ev;
+-  int r;
+-
+-  r = read (ts_fd, &ts_ev, sizeof (ts_ev));
+-  if (r == sizeof (ts_ev))
+-    handle_ts_event (ts_ev.x, ts_ev.y, ts_ev.pressure);
+-}
+-
+-void
+-do_cal (char **args)
+-{
+-  TS_CAL tc;
+-
+-  tc.xscale = atoi (args[0]);
+-  tc.xtrans = atoi (args[1]);
+-  tc.yscale = atoi (args[2]);
+-  tc.ytrans = atoi (args[3]);
+-  tc.xyswap = atoi (args[4]);
+-
+-  if (flag_debug)
+-    fprintf (stderr, "setting: %d %d %d %d %d\n", 
+-	     tc.xtrans, tc.ytrans, tc.xscale, tc.yscale, tc.xyswap);
+-    
+-  if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0)
+-    {
+-      perror ("TS_SET_CAL");
+-      exit (1);
+-    }
+-  
+-  exit (0);
+-}
+-
+-void
+-show_cal (void)
+-{
+-  TS_CAL tc;
+-
+-  if (ioctl (ts_fd, TS_GET_CAL, (void *)&tc) != 0)
+-    {
+-      perror ("TS_GET_CAL");
+-      exit (1);
+-    }
+-
+-  printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap);
+-}
+-
+-void
+ usage (const char *name)
+ {
+-  fprintf (stderr, "usage: %s -view\n", name);
+-  fprintf (stderr, "       %s [-rotate <0 | 90 | 180 | 270>]\n", name);
+-  fprintf (stderr, "       %s -cal <xs> <xt> <ys> <yt> <xyswap>\n", name);
+-
++  fprintf (stderr, "usage: %s [-debug]\n", name);
+   exit (1);
+ }
+ 
+ int
+-xrr_supported (void)
+-{
+-  int xrr_event_base, xrr_error_base;
+-  int xrr_major, xrr_minor;
+-
+-  if (XRRQueryExtension (dpy, &xrr_event_base, &xrr_error_base) == False
+-      || XRRQueryVersion (dpy, &xrr_major, &xrr_minor) == 0
+-      || xrr_major != 1
+-      || xrr_minor < 1)
+-    return 0;
+-
+-  return 1;
+-}
+-
+-int
+ main (int argc, char *argv[])
+ {
+   XSetWindowAttributes attributes;
+@@ -480,31 +379,11 @@ main (int argc, char *argv[])
+   int max_fd;
+   GC bg_gc;
+   int i;
+-  int have_xrandr;
+ 
+   for (i = 1; i < argc; i++)
+     {
+-      if (!strcmp (argv[i], "-view"))
+-	{
+-	  show_cal ();
+-	  exit (0);
+-	}
+-      else if (!strcmp (argv[i], "-debug"))
++      if (!strcmp (argv[i], "-debug"))
+ 	flag_debug = 1;
+-      else if (!strcmp (argv[i], "-cal"))
+-	{
+-	  if (argc > (i + 5))
+-	    do_cal (argv + i + 1);
+-	  else
+-	    usage (argv[0]);
+-	}
+-      else if (!strcmp (argv[i], "-rotate"))
+-	{
+-	  if (argc > (i + 1))
+-	    rotation = atoi (argv[++i]);
+-	  else
+-	    usage (argv[0]);
+-	}
+       else
+ 	usage (argv[0]);
+     }
+@@ -531,48 +410,11 @@ main (int argc, char *argv[])
+ 	  fprintf (stderr, "failed to set raw mode: error %d\n", r);
+ 	  exit (1);
+ 	}
+-
+-      using_xcalibrate = 1;
+-    }
+-
+-  have_xrandr = xrr_supported ();
+-  if (have_xrandr)
+-    {
+-      XRRScreenConfiguration *rr_screen;
+-      Rotation current_rotation;
+-
+-      if (flag_debug)
+-	fprintf (stderr, "XRANDR is supported\n");
+-
+-      rr_screen = XRRGetScreenInfo (dpy, RootWindow (dpy, screen));
+-
+-      XRRRotations (dpy, screen, &current_rotation);
+-
+-      XRRFreeScreenConfigInfo (rr_screen);
+-
+-      if (flag_debug)
+-	fprintf (stderr, "Current RANDR rotation is %d\n", current_rotation);
+-
+-      switch (current_rotation)
+-	{
+-	case RR_Rotate_270:
+-	  rotation += 90;
+-	case RR_Rotate_180:
+-	  rotation += 90;
+-	case RR_Rotate_90:
+-	  rotation += 90;
+-	  rotation %= 360;
+-	case RR_Rotate_0:
+-	  break;
+-	default:
+-	  fprintf (stderr, "Unknown RANDR rotation: %d\n", current_rotation);
+-	  break;
+-	}
+     }
+   else
+     {
+-      if (flag_debug)
+-	fprintf (stderr, "XRANDR not supported\n");
++      perror ("XCALIBRATE extension missing");
++      exit (1);
+     }
+ 
+   attributes.override_redirect = flag_debug ? False : True;
+@@ -666,45 +508,17 @@ main (int argc, char *argv[])
+ 
+   for (i = 0; i < NR_POINTS; i++)
+     {
+-      switch (rotation)
+-	{
+-	case 0:
+-	  cal.xfb[i] = cal.xscr[i];
+-	  cal.yfb[i] = cal.yscr[i];
+-	  break;
+-	case 90:
+-	  cal.xfb[i] = cal.yscr[i];
+-	  cal.yfb[i] = screen_x - cal.xscr[i];
+-	  break;
+-	case 180:
+-	  cal.xfb[i] = screen_x - cal.xscr[i];
+-	  cal.yfb[i] = screen_y - cal.yscr[i];
+-	  break;
+-	case 270:
+-	  cal.xfb[i] = screen_y - cal.yscr[i];
+-	  cal.yfb[i] = cal.xscr[i];
+-	  break;
+-	}
++      cal.xfb[i] = cal.xscr[i];
++      cal.yfb[i] = cal.yscr[i];
++      XCalibrateScreenToCoord (dpy, &cal.xfb[i], &cal.yfb[i]);
+ 
+       if (flag_debug)
+-	printf ("rotation %d: (%d,%d) -> (%d,%d)\n", rotation, 
++	printf ("rotation conversion: (%d,%d) -> (%d,%d)\n",
+ 		cal.xscr[i], cal.yscr[i], cal.xfb[i], cal.yfb[i]);
+     }
+ 
+   next_event ();
+ 
+-  if (!using_xcalibrate)
+-    {
+-      ts_fd = open (RAW_DEVICE, O_RDONLY);
+-      if (ts_fd < 0)
+-	{
+-	  perror (RAW_DEVICE);
+-	  exit (1);
+-	}
+-    }
+-
+-  max_fd = (xfd > ts_fd) ? xfd : ts_fd;
+-
+   for (;;)
+     {
+       fd_set fds;
+@@ -713,12 +527,8 @@ main (int argc, char *argv[])
+ 
+       FD_ZERO (&fds);
+       FD_SET (xfd, &fds);
+-      if (ts_fd != -1)
+-	FD_SET (ts_fd, &fds);
+ 
+-      select (max_fd + 1, &fds, NULL, NULL, NULL);
+-      
+-      if (ts_fd != -1 && FD_ISSET (ts_fd, &fds))
+-	read_ts ();
++      select (xfd + 1, &fds, NULL, NULL, NULL);
+     }
+ }
++
+Index: xtscal-0.6.3/configure.ac
+===================================================================
+--- xtscal-0.6.3.orig/configure.ac	2004-09-10 20:11:12.000000000 +0100
++++ xtscal-0.6.3/configure.ac	2007-07-01 01:12:55.000000000 +0100
+@@ -9,8 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2])
+ # Checks for programs.
+ AC_PROG_CC
+ 
+-PKG_CHECK_MODULES(XTSCAL, x11 xft xext xrandr xcalibrate)
++PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate)
+ 
+ AC_CONFIG_FILES([Makefile])
+-AC_CONFIG_FILES([xtscal])
+ AC_OUTPUT
+Index: xtscal-0.6.3/gpe-dist.am
+===================================================================
+--- xtscal-0.6.3.orig/gpe-dist.am	2004-06-02 23:07:13.000000000 +0100
++++ /dev/null	1970-01-01 00:00:00.000000000 +0000
+@@ -1,12 +0,0 @@
+-CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_])
+-
+-dist-upload: dist
+-	scp $(PACKAGE)-$(VERSION).tar.bz2 $(USER)@handhelds.org:/home/ftp/pub/projects/gpe/source/
+-
+-tag:
+-	cvs tag $(CVSTAG)
+-
+-retag:
+-	cvs tag -F $(CVSTAG)
+-
+-source: tag dist-upload
+Index: xtscal-0.6.3/h3600_ts.h
+===================================================================
+--- xtscal-0.6.3.orig/h3600_ts.h	2003-07-05 17:27:10.000000000 +0100
++++ /dev/null	1970-01-01 00:00:00.000000000 +0000
+@@ -1,216 +0,0 @@
+-/*
+-*
+-* Driver for the H3600 Touch Screen and other Atmel controlled devices.
+-*
+-* Copyright 2000 Compaq Computer Corporation.
+-*
+-* Use consistent with the GNU GPL is permitted,
+-* provided that this copyright notice is
+-* preserved in its entirety in all copies and derived works.
+-*
+-* COMPAQ COMPUTER CORPORATION MAKES NO WARRANTIES, EXPRESSED OR IMPLIED,
+-* AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS
+-* FITNESS FOR ANY PARTICULAR PURPOSE.
+-*
+-* Author: Charles Flynn.
+-*
+-*/
+-
+-
+-#ifndef __H3600_TS_H__
+-#define __H3600_TS_H__
+-
+-#include <linux/ioctl.h>
+-
+-enum h3600_ts_minor_devices {
+-	TS_MINOR    = 0,
+-	TSRAW_MINOR = 1,
+-	KEY_MINOR   = 2
+-};
+-
+-typedef struct h3600_ts_calibration {
+-        int xscale;
+-        int xtrans;
+-        int yscale;
+-        int ytrans;
+-        int xyswap;
+-} TS_CAL;
+-
+-typedef struct h3600_ts_event {
+-        unsigned short pressure;
+-        unsigned short x;
+-        unsigned short y;
+-        unsigned short pad;
+-} TS_EVENT;
+-
+-/* Deprecated - do not use */
+-typedef struct h3600_ts_return {
+-        unsigned short pressure;
+-        unsigned short x;
+-        unsigned short y;
+-        unsigned short pad;
+-} TS_RET;
+-
+-enum power_button_mode {
+-   PBM_SUSPEND           = 0,
+-   PBM_GENERATE_KEYPRESS = 1
+-};
+-
+-
+-/* ++++++++++++++ +++++++++++++++++++++++++++++++++++++ */
+-
+-typedef struct therm_dev {
+-	short data;
+-} THERM_DEV;
+-
+-#define H3600_BATT_CHEM_ALKALINE        0x01
+-#define H3600_BATT_CHEM_NICD            0x02
+-#define H3600_BATT_CHEM_NIMH            0x03
+-#define H3600_BATT_CHEM_LION            0x04
+-#define H3600_BATT_CHEM_LIPOLY          0x05
+-#define H3600_BATT_CHEM_NOT_INSTALLED   0x06
+-#define H3600_BATT_CHEM_UNKNOWN         0xff
+-
+-/* These should match the apm_bios.h definitions */
+-#define H3600_AC_STATUS_AC_OFFLINE	0x00
+-#define H3600_AC_STATUS_AC_ONLINE	0x01
+-#define H3600_AC_STATUS_AC_BACKUP	0x02   /* What does this mean? */
+-#define H3600_AC_STATUS_AC_UNKNOWN	0xff
+-
+-/* These bitfields are rarely "or'd" together */
+-#define H3600_BATT_STATUS_HIGH		0x01
+-#define H3600_BATT_STATUS_LOW		0x02
+-#define H3600_BATT_STATUS_CRITICAL	0x04
+-#define H3600_BATT_STATUS_CHARGING	0x08
+-#define H3600_BATT_STATUS_CHARGE_MAIN   0x10
+-#define H3600_BATT_STATUS_DEAD          0x20   /* Battery will not charge */
+-#define H3600_BATT_NOT_INSTALLED        0x20   /* For expansion pack batteries */
+-#define H3600_BATT_STATUS_FULL          0x40   /* Battery fully charged (and connected to AC) */
+-#define H3600_BATT_STATUS_NOBATT	0x80
+-#define H3600_BATT_STATUS_UNKNOWN	0xff
+-
+-struct battery_data {
+-	unsigned char  chemistry;
+-	unsigned char  status;
+-	unsigned short voltage;    /* Voltage for battery #0; unknown for battery #1 */
+-	unsigned short percentage; /* Percentage of full charge */
+-	unsigned short life;       /* Life remaining in minutes */
+-};
+-
+-struct h3600_battery {
+-        unsigned char       ac_status;
+-	unsigned char       battery_count;  /* How many batteries we have */
+-	struct battery_data battery[2];
+-};
+-
+-/* -------- EEPROM and SPI Interfaces ---------------*/
+-
+-#define EEPROM_RD_BUFSIZ 6	/* EEPROM reads are 16 bits */
+-#define EEPROM_WR_BUFSIZ 5	/* Allow room for 8bit 'addr' field in buffer*/ 
+-#define SPI_RD_BUFSIZ	 16	/* SPI reads are 8 bits */
+-#define SPI_WR_BUFSIZ	 7
+-
+-/* The EEPROM is where internal programs are stored on the Amtel.
+-   You probably don't want to read or write these values */
+-
+-typedef struct h3600_eeprom_read_request {
+-	unsigned char addr;    /* 8bit Address Offset 0-255 */
+-	unsigned char len;     /* Number of 16bit words to read 0-128  */
+-	unsigned short buff[EEPROM_RD_BUFSIZ];
+-} EEPROM_READ;
+-
+-typedef struct h3600_eeprom_write_request {
+-	unsigned char len;	/* used only to compute the number of bytes to send */
+-	unsigned char addr;    /* 0-128  */
+-	unsigned short buff[EEPROM_WR_BUFSIZ];
+-} EEPROM_WRITE;
+-
+-/* The SPI bus connects to EEPROMs located on sleeves plugged into
+-   the iPAQ.  You may want to read these values  */
+-
+-typedef struct h3600_spi_read_request {
+-	unsigned short addr;    /* 16bit Address Offset 0-128 */
+-	unsigned char len;      /* Number of bytes to read */
+-	unsigned char buff[SPI_RD_BUFSIZ];
+-} SPI_READ;
+-
+-#define SPI_READ_STATUS_BYTE  0xffff   /* Use this address to read the status byte */
+-
+-typedef struct h3600_spi_write_request {
+-	unsigned short len;	/* used only to compute the number of bytes to send */
+-	unsigned short addr;	/* this 16bit address accesses a single byte */
+-	unsigned char  buff[SPI_WR_BUFSIZ];
+-} SPI_WRITE;
+-
+-
+-/* -------- end of EEPROM and SPI Interfaces ---------------*/
+-
+-/* User space structures for IOCTL calls */
+-
+-typedef struct h3600_ts_version {
+-	unsigned char host_version[8];	/* ascii "x.yy" */
+-	unsigned char pack_version[8];	/* ascii "x.yy" */
+-	unsigned char boot_type;		/* TODO ?? */
+-} VER_RET;
+-
+-typedef struct h3600_ts_led {
+-        unsigned char OffOnBlink;       /* 0=off 1=on 2=Blink */
+-        unsigned char TotalTime;        /* Units of 5 seconds */
+-        unsigned char OnTime;           /* units of 100m/s */
+-        unsigned char OffTime;          /* units of 100m/s */
+-} LED_IN;
+-
+-enum flite_mode {
+-        FLITE_MODE1 = 1,
+-	FLITE_AUTO_MODE   = 1,     /* for reference only */
+-	FLITE_MANUAL_MODE = 2,     /* Use this normally? */
+-	FLITE_GET_LIGHT_SENSOR = 3 /* Returns light reading in "brightness" field */
+-};
+-enum flite_pwr {
+-        FLITE_PWR_OFF = 0,
+-        FLITE_PWR_ON  = 1
+-};
+-
+-typedef struct h3600_ts_flite {
+-        unsigned char mode;
+-        unsigned char pwr;
+-        unsigned char brightness;
+-} FLITE_IN;
+-
+-/*************************** Updated "universal" structures *******************/
+-
+-/* Sets backlight for both H3100 and H3600 models - technically "frontlight" for H3600 */
+-struct h3600_ts_backlight {
+-	enum flite_pwr power;          /* 0 = off, 1 = on */
+-	unsigned char  brightness;     /* 0 - 255         */
+-};
+-
+-struct h3600_ts_contrast {            /* Only useful on H3100 model */
+-	unsigned char contrast;       /* 0 - 255 */
+-};
+-
+-/* IOCTL cmds  user or kernel space */
+-
+-/* Use 'f' as magic number */
+-#define IOC_H3600_TS_MAGIC  'f'
+-
+-/* TODO: Some of these IOWR values are just plain wrong */
+-#define GET_VERSION		_IOR(IOC_H3600_TS_MAGIC,  1, struct h3600_ts_version )
+-#define READ_EEPROM		_IOWR(IOC_H3600_TS_MAGIC, 2, struct h3600_eeprom_read_request)
+-#define WRITE_EEPROM		_IOWR(IOC_H3600_TS_MAGIC, 3, struct h3600_eeprom_write_request)
+-#define GET_THERMAL		_IOR(IOC_H3600_TS_MAGIC,  4, struct therm_dev)
+-#define LED_ON			_IOW(IOC_H3600_TS_MAGIC,  5, struct h3600_ts_led)
+-#define GET_BATTERY_STATUS	_IOR(IOC_H3600_TS_MAGIC,  6, struct h3600_battery)
+-#define FLITE_ON		_IOW(IOC_H3600_TS_MAGIC,  7, struct h3600_ts_flite)
+-#define READ_SPI		_IOWR(IOC_H3600_TS_MAGIC, 8, struct h3600_spi_read_request)
+-#define WRITE_SPI		_IOWR(IOC_H3600_TS_MAGIC, 9, struct h3600_spi_write_request)
+-#define TS_GET_CAL		_IOR(IOC_H3600_TS_MAGIC, 10, struct h3600_ts_calibration)
+-#define TS_SET_CAL		_IOW(IOC_H3600_TS_MAGIC, 11, struct h3600_ts_calibration)
+-
+-/* New IOCTL interfaces - defined to be more user friendly */
+-#define TS_GET_BACKLIGHT        _IOR(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight)
+-#define TS_SET_BACKLIGHT        _IOW(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight)
+-#define TS_GET_CONTRAST         _IOR(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast)
+-#define TS_SET_CONTRAST         _IOW(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast)
+-
+-#endif
+Index: xtscal-0.6.3/Makefile.am
+===================================================================
+--- xtscal-0.6.3.orig/Makefile.am	2004-06-02 23:07:13.000000000 +0100
++++ xtscal-0.6.3/Makefile.am	2007-07-02 12:51:02.000000000 +0100
+@@ -1,11 +1,8 @@
+-libexec_PROGRAMS = xtscal.bin
+-bin_SCRIPTS = xtscal
++bin_PROGRAMS = xtscal
+ 
+-xtscal_bin_SOURCES = main.c calibrate.c calibrate.h h3600_ts.h
++xtscal_SOURCES = main.c calibrate.c calibrate.h
+ 
+-xtscal_bin_LDADD = @XTSCAL_LIBS@
++xtscal_LDADD = @XTSCAL_LIBS@
+ 
+ INCLUDES = @XTSCAL_CFLAGS@ -DNR_POINTS=5
+ 
+-include gpe-dist.am
+-
diff --git a/meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch b/meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
new file mode 100644
index 0000000..3e4533f
--- /dev/null
+++ b/meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
@@ -0,0 +1,27 @@
+after gcc linking has changed, all the libraries must be explicitely specified 
+This patch avoids this linking error:
+
+| ccache i586-poky-linux-gcc -march=i586 --sysroot=/disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux  -fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -ggdb -feliminate-unused-debug-types  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o xtscal main.o calibrate.o -lX11 -lXft -lXext -lXcalibrate^M
+| /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: ^?: invalid DSO for symbol `XRenderChangePicture' definition^M
+| /disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux/usr/lib/libXrender.so.1: could not read symbols: Bad value^M
+| collect2: ld returned 1 exit status^M
+| make: *** [xtscal] Error 1
+
+Nitin A Kamble <nitin.a.kamble@intel.com>
+Date: 2011/01/11
+
+Upstream-Status: Pending
+
+Index: xtscal-0.6.3/configure.ac
+===================================================================
+--- xtscal-0.6.3.orig/configure.ac
++++ xtscal-0.6.3/configure.ac
+@@ -9,7 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2])
+ # Checks for programs.
+ AC_PROG_CC
+ 
+-PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate)
++PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate xrender)
+ 
+ AC_CONFIG_FILES([Makefile])
+ AC_OUTPUT
diff --git a/meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb b/meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb
new file mode 100644
index 0000000..4bfddf0
--- /dev/null
+++ b/meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Touchscreen calibration utility"
+
+DESCRIPTION = "Basic touchscreen calibration utility"
+
+HOMEPAGE = "http://gpe.linuxtogo.org"
+BUGTRACKER = "http://bugs.linuxtogo.org"
+LICENSE = "GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://main.c;endline=10;md5=8721bcb08ae9f24e5fe4c82941873c87"
+
+SECTION = "x11/base"
+
+DEPENDS = "virtual/libx11 libxft libxcalibrate"
+
+PR = "r13"
+
+SRC_URI = "${GPE_MIRROR}/xtscal-${PV}.tar.bz2 \
+           file://change-cross.patch \
+           file://cleanup.patch \
+           file://dso_linking_change_build_fix.patch \
+           file://30xTs_Calibrate.sh"
+
+SRC_URI[md5sum] = "9bcab80b474d5454477d1ca166a68c34"
+SRC_URI[sha256sum] = "27b9dc2203de9b1706ca39fa6ca80ecab8807909ec901c4a345b8e41178800a1"
+
+inherit autotools pkgconfig distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+do_install_append() {
+    install -d ${D}${sysconfdir}/X11/Xsession.d/
+    install -m 0755 ${WORKDIR}/30xTs_Calibrate.sh ${D}${sysconfdir}/X11/Xsession.d/
+}
-- 
2.4.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/4] xtscal: move recipe from oe-core
  2016-09-01 11:40 [PATCH 0/4] move tslib, pointercal and xtscal recipes " Maxin B. John
@ 2016-09-01 11:40 ` Maxin B. John
  0 siblings, 0 replies; 7+ messages in thread
From: Maxin B. John @ 2016-09-01 11:40 UTC (permalink / raw)
  To: openembedded-devel

Move xtscal recipe from oe-core layer.

Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
 .../xtscal/xtscal/30xTs_Calibrate.sh               |  13 +
 .../xtscal/xtscal/change-cross.patch               |  18 +
 .../recipes-graphics/xtscal/xtscal/cleanup.patch   | 621 +++++++++++++++++++++
 .../xtscal/dso_linking_change_build_fix.patch      |  27 +
 meta-gpe/recipes-graphics/xtscal/xtscal_0.6.3.bb   |  33 ++
 5 files changed, 712 insertions(+)
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal/change-cross.patch
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal/cleanup.patch
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
 create mode 100644 meta-gpe/recipes-graphics/xtscal/xtscal_0.6.3.bb

diff --git a/meta-gpe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh b/meta-gpe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
new file mode 100644
index 0000000..fa43617
--- /dev/null
+++ b/meta-gpe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+. /etc/formfactor/config
+
+if [ "$HAVE_TOUCHSCREEN" = "1" ]; then
+	n=1
+	while [ ! -z $TSLIB_TSDEVICE ] && [ ! -f /etc/pointercal ] && [ $n -le 5 ]
+	do
+	   /usr/bin/xtscal
+	   sleep 1
+	   n=$(($n+1))
+	done
+fi
diff --git a/meta-gpe/recipes-graphics/xtscal/xtscal/change-cross.patch b/meta-gpe/recipes-graphics/xtscal/xtscal/change-cross.patch
new file mode 100644
index 0000000..1da7717
--- /dev/null
+++ b/meta-gpe/recipes-graphics/xtscal/xtscal/change-cross.patch
@@ -0,0 +1,18 @@
+Upstream-Status: Pending
+
+--- tmp/main.c.orig	2007-01-02 15:39:54.000000000 +0000
++++ tmp/main.c	2007-01-02 15:39:54.000000000 +0000
+@@ -131,9 +131,10 @@
+ {
+   XRenderFillRectangles (dpy, PictOpSrc, pict, &rect_color, rectangles, 2);
+ 
+-  XFillArc (dpy, crosshair_w, crosshair_gc, (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1, 
+-	    (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1,
+-	    WIDTH + 1, WIDTH + 1, 0, 360 * 64);
++  XFillRectangle (dpy, crosshair_w, crosshair_gc,
++		  (CROSSHAIR_SIZE / 2) - (WIDTH / 2),
++		  (CROSSHAIR_SIZE / 2) - (WIDTH / 2),
++		  WIDTH, WIDTH);
+ }
+ 
+ void
diff --git a/meta-gpe/recipes-graphics/xtscal/xtscal/cleanup.patch b/meta-gpe/recipes-graphics/xtscal/xtscal/cleanup.patch
new file mode 100644
index 0000000..f7b0854
--- /dev/null
+++ b/meta-gpe/recipes-graphics/xtscal/xtscal/cleanup.patch
@@ -0,0 +1,621 @@
+---
+ Makefile.am  |    9 --
+ configure.ac |    3 
+ gpe-dist.am  |   12 ---
+ h3600_ts.h   |  216 -----------------------------------------------------------
+ main.c       |  210 ++-------------------------------------------------------
+ xtscal.in    |   19 -----
+ 6 files changed, 14 insertions(+), 455 deletions(-)
+
+Upstream-Status: Pending
+
+Index: xtscal-0.6.3/xtscal.in
+===================================================================
+--- xtscal-0.6.3.orig/xtscal.in	2004-09-10 20:10:36.000000000 +0100
++++ /dev/null	1970-01-01 00:00:00.000000000 +0000
+@@ -1,19 +0,0 @@
+-#!/bin/sh
+-
+-module_id() {
+-    # Get model name
+-    echo `grep "^Hardware" /proc/cpuinfo | sed -e "s/.*: *//" | tr a-z A-Z`
+-}
+-
+-case `module_id` in
+-	"HP IPAQ H3100" | "HP IPAQ H3800" )
+-		ARGS="-rotate 90" ;;
+-	"HP IPAQ H3600" | "HP IPAQ H3700" | "HP IPAQ H3900" | *COLLIE | *POODLE)
+-		ARGS="-rotate 270" ;;
+-	# H2200: works without rotation
+-esac
+-
+-# the things we do for autoconf
+-prefix=@prefix@
+-exec_prefix=@exec_prefix@
+-exec @libexecdir@/xtscal.bin $ARGS $*
+Index: xtscal-0.6.3/main.c
+===================================================================
+--- xtscal-0.6.3.orig/main.c	2007-07-01 01:12:52.000000000 +0100
++++ xtscal-0.6.3/main.c	2007-07-01 01:12:55.000000000 +0100
+@@ -22,12 +22,10 @@
+ #include <X11/Xlib.h>
+ 
+ #include <X11/extensions/Xrender.h>
+-#include <X11/extensions/Xrandr.h>
+ #include <X11/Xft/Xft.h>
+ #include <X11/extensions/xcalibrate.h>
+ #include <X11/keysym.h>
+ 
+-#include "h3600_ts.h"
+ #include "calibrate.h"
+ 
+ Display *dpy;
+@@ -45,15 +43,11 @@ XftColor xftcol;
+ XftDraw *xftdraw;
+ XftFont *xftfont;
+ int screen_x, screen_y;
+-int ts_fd;
+ int samples;
+ Pixmap bg_pixmap;
+ int flag_debug;
+-int rotation = 0;
+ int error_base, event_base;
+ 
+-int using_xcalibrate;
+-
+ int moving;
+ 
+ #define CROSSHAIR_SIZE	25
+@@ -63,7 +57,6 @@ int moving;
+ #define ENOUGH 5
+ #define MAX_SAMPLES 40
+ 
+-#define RAW_DEVICE "/dev/h3600_tsraw"
+ #define FONTNAME "sans-10"
+ 
+ struct point 
+@@ -287,12 +280,8 @@ sort_by_y (const void* a, const void *b)
+ void
+ set_calibration (calibration *cal)
+ {
+-  TS_CAL tc;
+-  int xtrans, ytrans, xscale, yscale, xyscale, yxscale;
+   calibration ocal = *cal;
+ 
+-  if (using_xcalibrate)
+-    {
+       FILE *fp;
+       if (flag_debug)
+ 	printf ("constants are: %d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]);
+@@ -304,29 +293,6 @@ set_calibration (calibration *cal)
+ 	}
+       fprintf (fp, "%d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]);
+       fclose (fp); 
+-      return;
+-    }
+-
+-  xtrans = cal->a[0] / cal->a[6];
+-  ytrans = cal->a[3] / cal->a[6];
+-  xscale = cal->a[1] * 256 / cal->a[6];
+-  yscale = cal->a[5] * 256 / cal->a[6];
+-  xyscale = cal->a[2] * 256 / cal->a[6];
+-  yxscale = cal->a[4] * 256 / cal->a[6];
+-  
+-  tc.xtrans = xtrans;
+-  tc.ytrans = ytrans;
+-  tc.xscale = xscale;
+-  tc.yscale = yscale;
+-  tc.xyswap = 0;
+-
+-  printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap);
+-
+-  if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0)
+-    {
+-      perror ("TS_SET_CAL");
+-      exit (1);
+-    }
+ }
+ 
+ void
+@@ -398,80 +364,13 @@ handle_ts_event (int x, int y, int press
+ }
+ 
+ void
+-read_ts (void)
+-{
+-  TS_EVENT ts_ev;
+-  int r;
+-
+-  r = read (ts_fd, &ts_ev, sizeof (ts_ev));
+-  if (r == sizeof (ts_ev))
+-    handle_ts_event (ts_ev.x, ts_ev.y, ts_ev.pressure);
+-}
+-
+-void
+-do_cal (char **args)
+-{
+-  TS_CAL tc;
+-
+-  tc.xscale = atoi (args[0]);
+-  tc.xtrans = atoi (args[1]);
+-  tc.yscale = atoi (args[2]);
+-  tc.ytrans = atoi (args[3]);
+-  tc.xyswap = atoi (args[4]);
+-
+-  if (flag_debug)
+-    fprintf (stderr, "setting: %d %d %d %d %d\n", 
+-	     tc.xtrans, tc.ytrans, tc.xscale, tc.yscale, tc.xyswap);
+-    
+-  if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0)
+-    {
+-      perror ("TS_SET_CAL");
+-      exit (1);
+-    }
+-  
+-  exit (0);
+-}
+-
+-void
+-show_cal (void)
+-{
+-  TS_CAL tc;
+-
+-  if (ioctl (ts_fd, TS_GET_CAL, (void *)&tc) != 0)
+-    {
+-      perror ("TS_GET_CAL");
+-      exit (1);
+-    }
+-
+-  printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap);
+-}
+-
+-void
+ usage (const char *name)
+ {
+-  fprintf (stderr, "usage: %s -view\n", name);
+-  fprintf (stderr, "       %s [-rotate <0 | 90 | 180 | 270>]\n", name);
+-  fprintf (stderr, "       %s -cal <xs> <xt> <ys> <yt> <xyswap>\n", name);
+-
++  fprintf (stderr, "usage: %s [-debug]\n", name);
+   exit (1);
+ }
+ 
+ int
+-xrr_supported (void)
+-{
+-  int xrr_event_base, xrr_error_base;
+-  int xrr_major, xrr_minor;
+-
+-  if (XRRQueryExtension (dpy, &xrr_event_base, &xrr_error_base) == False
+-      || XRRQueryVersion (dpy, &xrr_major, &xrr_minor) == 0
+-      || xrr_major != 1
+-      || xrr_minor < 1)
+-    return 0;
+-
+-  return 1;
+-}
+-
+-int
+ main (int argc, char *argv[])
+ {
+   XSetWindowAttributes attributes;
+@@ -480,31 +379,11 @@ main (int argc, char *argv[])
+   int max_fd;
+   GC bg_gc;
+   int i;
+-  int have_xrandr;
+ 
+   for (i = 1; i < argc; i++)
+     {
+-      if (!strcmp (argv[i], "-view"))
+-	{
+-	  show_cal ();
+-	  exit (0);
+-	}
+-      else if (!strcmp (argv[i], "-debug"))
++      if (!strcmp (argv[i], "-debug"))
+ 	flag_debug = 1;
+-      else if (!strcmp (argv[i], "-cal"))
+-	{
+-	  if (argc > (i + 5))
+-	    do_cal (argv + i + 1);
+-	  else
+-	    usage (argv[0]);
+-	}
+-      else if (!strcmp (argv[i], "-rotate"))
+-	{
+-	  if (argc > (i + 1))
+-	    rotation = atoi (argv[++i]);
+-	  else
+-	    usage (argv[0]);
+-	}
+       else
+ 	usage (argv[0]);
+     }
+@@ -531,48 +410,11 @@ main (int argc, char *argv[])
+ 	  fprintf (stderr, "failed to set raw mode: error %d\n", r);
+ 	  exit (1);
+ 	}
+-
+-      using_xcalibrate = 1;
+-    }
+-
+-  have_xrandr = xrr_supported ();
+-  if (have_xrandr)
+-    {
+-      XRRScreenConfiguration *rr_screen;
+-      Rotation current_rotation;
+-
+-      if (flag_debug)
+-	fprintf (stderr, "XRANDR is supported\n");
+-
+-      rr_screen = XRRGetScreenInfo (dpy, RootWindow (dpy, screen));
+-
+-      XRRRotations (dpy, screen, &current_rotation);
+-
+-      XRRFreeScreenConfigInfo (rr_screen);
+-
+-      if (flag_debug)
+-	fprintf (stderr, "Current RANDR rotation is %d\n", current_rotation);
+-
+-      switch (current_rotation)
+-	{
+-	case RR_Rotate_270:
+-	  rotation += 90;
+-	case RR_Rotate_180:
+-	  rotation += 90;
+-	case RR_Rotate_90:
+-	  rotation += 90;
+-	  rotation %= 360;
+-	case RR_Rotate_0:
+-	  break;
+-	default:
+-	  fprintf (stderr, "Unknown RANDR rotation: %d\n", current_rotation);
+-	  break;
+-	}
+     }
+   else
+     {
+-      if (flag_debug)
+-	fprintf (stderr, "XRANDR not supported\n");
++      perror ("XCALIBRATE extension missing");
++      exit (1);
+     }
+ 
+   attributes.override_redirect = flag_debug ? False : True;
+@@ -666,45 +508,17 @@ main (int argc, char *argv[])
+ 
+   for (i = 0; i < NR_POINTS; i++)
+     {
+-      switch (rotation)
+-	{
+-	case 0:
+-	  cal.xfb[i] = cal.xscr[i];
+-	  cal.yfb[i] = cal.yscr[i];
+-	  break;
+-	case 90:
+-	  cal.xfb[i] = cal.yscr[i];
+-	  cal.yfb[i] = screen_x - cal.xscr[i];
+-	  break;
+-	case 180:
+-	  cal.xfb[i] = screen_x - cal.xscr[i];
+-	  cal.yfb[i] = screen_y - cal.yscr[i];
+-	  break;
+-	case 270:
+-	  cal.xfb[i] = screen_y - cal.yscr[i];
+-	  cal.yfb[i] = cal.xscr[i];
+-	  break;
+-	}
++      cal.xfb[i] = cal.xscr[i];
++      cal.yfb[i] = cal.yscr[i];
++      XCalibrateScreenToCoord (dpy, &cal.xfb[i], &cal.yfb[i]);
+ 
+       if (flag_debug)
+-	printf ("rotation %d: (%d,%d) -> (%d,%d)\n", rotation, 
++	printf ("rotation conversion: (%d,%d) -> (%d,%d)\n",
+ 		cal.xscr[i], cal.yscr[i], cal.xfb[i], cal.yfb[i]);
+     }
+ 
+   next_event ();
+ 
+-  if (!using_xcalibrate)
+-    {
+-      ts_fd = open (RAW_DEVICE, O_RDONLY);
+-      if (ts_fd < 0)
+-	{
+-	  perror (RAW_DEVICE);
+-	  exit (1);
+-	}
+-    }
+-
+-  max_fd = (xfd > ts_fd) ? xfd : ts_fd;
+-
+   for (;;)
+     {
+       fd_set fds;
+@@ -713,12 +527,8 @@ main (int argc, char *argv[])
+ 
+       FD_ZERO (&fds);
+       FD_SET (xfd, &fds);
+-      if (ts_fd != -1)
+-	FD_SET (ts_fd, &fds);
+ 
+-      select (max_fd + 1, &fds, NULL, NULL, NULL);
+-      
+-      if (ts_fd != -1 && FD_ISSET (ts_fd, &fds))
+-	read_ts ();
++      select (xfd + 1, &fds, NULL, NULL, NULL);
+     }
+ }
++
+Index: xtscal-0.6.3/configure.ac
+===================================================================
+--- xtscal-0.6.3.orig/configure.ac	2004-09-10 20:11:12.000000000 +0100
++++ xtscal-0.6.3/configure.ac	2007-07-01 01:12:55.000000000 +0100
+@@ -9,8 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2])
+ # Checks for programs.
+ AC_PROG_CC
+ 
+-PKG_CHECK_MODULES(XTSCAL, x11 xft xext xrandr xcalibrate)
++PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate)
+ 
+ AC_CONFIG_FILES([Makefile])
+-AC_CONFIG_FILES([xtscal])
+ AC_OUTPUT
+Index: xtscal-0.6.3/gpe-dist.am
+===================================================================
+--- xtscal-0.6.3.orig/gpe-dist.am	2004-06-02 23:07:13.000000000 +0100
++++ /dev/null	1970-01-01 00:00:00.000000000 +0000
+@@ -1,12 +0,0 @@
+-CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_])
+-
+-dist-upload: dist
+-	scp $(PACKAGE)-$(VERSION).tar.bz2 $(USER)@handhelds.org:/home/ftp/pub/projects/gpe/source/
+-
+-tag:
+-	cvs tag $(CVSTAG)
+-
+-retag:
+-	cvs tag -F $(CVSTAG)
+-
+-source: tag dist-upload
+Index: xtscal-0.6.3/h3600_ts.h
+===================================================================
+--- xtscal-0.6.3.orig/h3600_ts.h	2003-07-05 17:27:10.000000000 +0100
++++ /dev/null	1970-01-01 00:00:00.000000000 +0000
+@@ -1,216 +0,0 @@
+-/*
+-*
+-* Driver for the H3600 Touch Screen and other Atmel controlled devices.
+-*
+-* Copyright 2000 Compaq Computer Corporation.
+-*
+-* Use consistent with the GNU GPL is permitted,
+-* provided that this copyright notice is
+-* preserved in its entirety in all copies and derived works.
+-*
+-* COMPAQ COMPUTER CORPORATION MAKES NO WARRANTIES, EXPRESSED OR IMPLIED,
+-* AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS
+-* FITNESS FOR ANY PARTICULAR PURPOSE.
+-*
+-* Author: Charles Flynn.
+-*
+-*/
+-
+-
+-#ifndef __H3600_TS_H__
+-#define __H3600_TS_H__
+-
+-#include <linux/ioctl.h>
+-
+-enum h3600_ts_minor_devices {
+-	TS_MINOR    = 0,
+-	TSRAW_MINOR = 1,
+-	KEY_MINOR   = 2
+-};
+-
+-typedef struct h3600_ts_calibration {
+-        int xscale;
+-        int xtrans;
+-        int yscale;
+-        int ytrans;
+-        int xyswap;
+-} TS_CAL;
+-
+-typedef struct h3600_ts_event {
+-        unsigned short pressure;
+-        unsigned short x;
+-        unsigned short y;
+-        unsigned short pad;
+-} TS_EVENT;
+-
+-/* Deprecated - do not use */
+-typedef struct h3600_ts_return {
+-        unsigned short pressure;
+-        unsigned short x;
+-        unsigned short y;
+-        unsigned short pad;
+-} TS_RET;
+-
+-enum power_button_mode {
+-   PBM_SUSPEND           = 0,
+-   PBM_GENERATE_KEYPRESS = 1
+-};
+-
+-
+-/* ++++++++++++++ +++++++++++++++++++++++++++++++++++++ */
+-
+-typedef struct therm_dev {
+-	short data;
+-} THERM_DEV;
+-
+-#define H3600_BATT_CHEM_ALKALINE        0x01
+-#define H3600_BATT_CHEM_NICD            0x02
+-#define H3600_BATT_CHEM_NIMH            0x03
+-#define H3600_BATT_CHEM_LION            0x04
+-#define H3600_BATT_CHEM_LIPOLY          0x05
+-#define H3600_BATT_CHEM_NOT_INSTALLED   0x06
+-#define H3600_BATT_CHEM_UNKNOWN         0xff
+-
+-/* These should match the apm_bios.h definitions */
+-#define H3600_AC_STATUS_AC_OFFLINE	0x00
+-#define H3600_AC_STATUS_AC_ONLINE	0x01
+-#define H3600_AC_STATUS_AC_BACKUP	0x02   /* What does this mean? */
+-#define H3600_AC_STATUS_AC_UNKNOWN	0xff
+-
+-/* These bitfields are rarely "or'd" together */
+-#define H3600_BATT_STATUS_HIGH		0x01
+-#define H3600_BATT_STATUS_LOW		0x02
+-#define H3600_BATT_STATUS_CRITICAL	0x04
+-#define H3600_BATT_STATUS_CHARGING	0x08
+-#define H3600_BATT_STATUS_CHARGE_MAIN   0x10
+-#define H3600_BATT_STATUS_DEAD          0x20   /* Battery will not charge */
+-#define H3600_BATT_NOT_INSTALLED        0x20   /* For expansion pack batteries */
+-#define H3600_BATT_STATUS_FULL          0x40   /* Battery fully charged (and connected to AC) */
+-#define H3600_BATT_STATUS_NOBATT	0x80
+-#define H3600_BATT_STATUS_UNKNOWN	0xff
+-
+-struct battery_data {
+-	unsigned char  chemistry;
+-	unsigned char  status;
+-	unsigned short voltage;    /* Voltage for battery #0; unknown for battery #1 */
+-	unsigned short percentage; /* Percentage of full charge */
+-	unsigned short life;       /* Life remaining in minutes */
+-};
+-
+-struct h3600_battery {
+-        unsigned char       ac_status;
+-	unsigned char       battery_count;  /* How many batteries we have */
+-	struct battery_data battery[2];
+-};
+-
+-/* -------- EEPROM and SPI Interfaces ---------------*/
+-
+-#define EEPROM_RD_BUFSIZ 6	/* EEPROM reads are 16 bits */
+-#define EEPROM_WR_BUFSIZ 5	/* Allow room for 8bit 'addr' field in buffer*/ 
+-#define SPI_RD_BUFSIZ	 16	/* SPI reads are 8 bits */
+-#define SPI_WR_BUFSIZ	 7
+-
+-/* The EEPROM is where internal programs are stored on the Amtel.
+-   You probably don't want to read or write these values */
+-
+-typedef struct h3600_eeprom_read_request {
+-	unsigned char addr;    /* 8bit Address Offset 0-255 */
+-	unsigned char len;     /* Number of 16bit words to read 0-128  */
+-	unsigned short buff[EEPROM_RD_BUFSIZ];
+-} EEPROM_READ;
+-
+-typedef struct h3600_eeprom_write_request {
+-	unsigned char len;	/* used only to compute the number of bytes to send */
+-	unsigned char addr;    /* 0-128  */
+-	unsigned short buff[EEPROM_WR_BUFSIZ];
+-} EEPROM_WRITE;
+-
+-/* The SPI bus connects to EEPROMs located on sleeves plugged into
+-   the iPAQ.  You may want to read these values  */
+-
+-typedef struct h3600_spi_read_request {
+-	unsigned short addr;    /* 16bit Address Offset 0-128 */
+-	unsigned char len;      /* Number of bytes to read */
+-	unsigned char buff[SPI_RD_BUFSIZ];
+-} SPI_READ;
+-
+-#define SPI_READ_STATUS_BYTE  0xffff   /* Use this address to read the status byte */
+-
+-typedef struct h3600_spi_write_request {
+-	unsigned short len;	/* used only to compute the number of bytes to send */
+-	unsigned short addr;	/* this 16bit address accesses a single byte */
+-	unsigned char  buff[SPI_WR_BUFSIZ];
+-} SPI_WRITE;
+-
+-
+-/* -------- end of EEPROM and SPI Interfaces ---------------*/
+-
+-/* User space structures for IOCTL calls */
+-
+-typedef struct h3600_ts_version {
+-	unsigned char host_version[8];	/* ascii "x.yy" */
+-	unsigned char pack_version[8];	/* ascii "x.yy" */
+-	unsigned char boot_type;		/* TODO ?? */
+-} VER_RET;
+-
+-typedef struct h3600_ts_led {
+-        unsigned char OffOnBlink;       /* 0=off 1=on 2=Blink */
+-        unsigned char TotalTime;        /* Units of 5 seconds */
+-        unsigned char OnTime;           /* units of 100m/s */
+-        unsigned char OffTime;          /* units of 100m/s */
+-} LED_IN;
+-
+-enum flite_mode {
+-        FLITE_MODE1 = 1,
+-	FLITE_AUTO_MODE   = 1,     /* for reference only */
+-	FLITE_MANUAL_MODE = 2,     /* Use this normally? */
+-	FLITE_GET_LIGHT_SENSOR = 3 /* Returns light reading in "brightness" field */
+-};
+-enum flite_pwr {
+-        FLITE_PWR_OFF = 0,
+-        FLITE_PWR_ON  = 1
+-};
+-
+-typedef struct h3600_ts_flite {
+-        unsigned char mode;
+-        unsigned char pwr;
+-        unsigned char brightness;
+-} FLITE_IN;
+-
+-/*************************** Updated "universal" structures *******************/
+-
+-/* Sets backlight for both H3100 and H3600 models - technically "frontlight" for H3600 */
+-struct h3600_ts_backlight {
+-	enum flite_pwr power;          /* 0 = off, 1 = on */
+-	unsigned char  brightness;     /* 0 - 255         */
+-};
+-
+-struct h3600_ts_contrast {            /* Only useful on H3100 model */
+-	unsigned char contrast;       /* 0 - 255 */
+-};
+-
+-/* IOCTL cmds  user or kernel space */
+-
+-/* Use 'f' as magic number */
+-#define IOC_H3600_TS_MAGIC  'f'
+-
+-/* TODO: Some of these IOWR values are just plain wrong */
+-#define GET_VERSION		_IOR(IOC_H3600_TS_MAGIC,  1, struct h3600_ts_version )
+-#define READ_EEPROM		_IOWR(IOC_H3600_TS_MAGIC, 2, struct h3600_eeprom_read_request)
+-#define WRITE_EEPROM		_IOWR(IOC_H3600_TS_MAGIC, 3, struct h3600_eeprom_write_request)
+-#define GET_THERMAL		_IOR(IOC_H3600_TS_MAGIC,  4, struct therm_dev)
+-#define LED_ON			_IOW(IOC_H3600_TS_MAGIC,  5, struct h3600_ts_led)
+-#define GET_BATTERY_STATUS	_IOR(IOC_H3600_TS_MAGIC,  6, struct h3600_battery)
+-#define FLITE_ON		_IOW(IOC_H3600_TS_MAGIC,  7, struct h3600_ts_flite)
+-#define READ_SPI		_IOWR(IOC_H3600_TS_MAGIC, 8, struct h3600_spi_read_request)
+-#define WRITE_SPI		_IOWR(IOC_H3600_TS_MAGIC, 9, struct h3600_spi_write_request)
+-#define TS_GET_CAL		_IOR(IOC_H3600_TS_MAGIC, 10, struct h3600_ts_calibration)
+-#define TS_SET_CAL		_IOW(IOC_H3600_TS_MAGIC, 11, struct h3600_ts_calibration)
+-
+-/* New IOCTL interfaces - defined to be more user friendly */
+-#define TS_GET_BACKLIGHT        _IOR(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight)
+-#define TS_SET_BACKLIGHT        _IOW(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight)
+-#define TS_GET_CONTRAST         _IOR(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast)
+-#define TS_SET_CONTRAST         _IOW(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast)
+-
+-#endif
+Index: xtscal-0.6.3/Makefile.am
+===================================================================
+--- xtscal-0.6.3.orig/Makefile.am	2004-06-02 23:07:13.000000000 +0100
++++ xtscal-0.6.3/Makefile.am	2007-07-02 12:51:02.000000000 +0100
+@@ -1,11 +1,8 @@
+-libexec_PROGRAMS = xtscal.bin
+-bin_SCRIPTS = xtscal
++bin_PROGRAMS = xtscal
+ 
+-xtscal_bin_SOURCES = main.c calibrate.c calibrate.h h3600_ts.h
++xtscal_SOURCES = main.c calibrate.c calibrate.h
+ 
+-xtscal_bin_LDADD = @XTSCAL_LIBS@
++xtscal_LDADD = @XTSCAL_LIBS@
+ 
+ INCLUDES = @XTSCAL_CFLAGS@ -DNR_POINTS=5
+ 
+-include gpe-dist.am
+-
diff --git a/meta-gpe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch b/meta-gpe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
new file mode 100644
index 0000000..3e4533f
--- /dev/null
+++ b/meta-gpe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
@@ -0,0 +1,27 @@
+after gcc linking has changed, all the libraries must be explicitely specified 
+This patch avoids this linking error:
+
+| ccache i586-poky-linux-gcc -march=i586 --sysroot=/disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux  -fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -ggdb -feliminate-unused-debug-types  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o xtscal main.o calibrate.o -lX11 -lXft -lXext -lXcalibrate^M
+| /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: ^?: invalid DSO for symbol `XRenderChangePicture' definition^M
+| /disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux/usr/lib/libXrender.so.1: could not read symbols: Bad value^M
+| collect2: ld returned 1 exit status^M
+| make: *** [xtscal] Error 1
+
+Nitin A Kamble <nitin.a.kamble@intel.com>
+Date: 2011/01/11
+
+Upstream-Status: Pending
+
+Index: xtscal-0.6.3/configure.ac
+===================================================================
+--- xtscal-0.6.3.orig/configure.ac
++++ xtscal-0.6.3/configure.ac
+@@ -9,7 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2])
+ # Checks for programs.
+ AC_PROG_CC
+ 
+-PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate)
++PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate xrender)
+ 
+ AC_CONFIG_FILES([Makefile])
+ AC_OUTPUT
diff --git a/meta-gpe/recipes-graphics/xtscal/xtscal_0.6.3.bb b/meta-gpe/recipes-graphics/xtscal/xtscal_0.6.3.bb
new file mode 100644
index 0000000..4bfddf0
--- /dev/null
+++ b/meta-gpe/recipes-graphics/xtscal/xtscal_0.6.3.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Touchscreen calibration utility"
+
+DESCRIPTION = "Basic touchscreen calibration utility"
+
+HOMEPAGE = "http://gpe.linuxtogo.org"
+BUGTRACKER = "http://bugs.linuxtogo.org"
+LICENSE = "GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://main.c;endline=10;md5=8721bcb08ae9f24e5fe4c82941873c87"
+
+SECTION = "x11/base"
+
+DEPENDS = "virtual/libx11 libxft libxcalibrate"
+
+PR = "r13"
+
+SRC_URI = "${GPE_MIRROR}/xtscal-${PV}.tar.bz2 \
+           file://change-cross.patch \
+           file://cleanup.patch \
+           file://dso_linking_change_build_fix.patch \
+           file://30xTs_Calibrate.sh"
+
+SRC_URI[md5sum] = "9bcab80b474d5454477d1ca166a68c34"
+SRC_URI[sha256sum] = "27b9dc2203de9b1706ca39fa6ca80ecab8807909ec901c4a345b8e41178800a1"
+
+inherit autotools pkgconfig distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+do_install_append() {
+    install -d ${D}${sysconfdir}/X11/Xsession.d/
+    install -m 0755 ${WORKDIR}/30xTs_Calibrate.sh ${D}${sysconfdir}/X11/Xsession.d/
+}
-- 
2.4.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-09-21 15:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-16 11:19 [PATCH v2 0/4] move tslib, pointercal and xtscal recipes from oe-core Maxin B. John
2016-09-16 11:19 ` [PATCH 1/4] pointercal: move recipe " Maxin B. John
2016-09-16 11:19 ` [PATCH 2/4] meta-gpe: add pointercal to layer.conf Maxin B. John
2016-09-16 11:19 ` [PATCH 3/4] xtscal: move recipe from oe-core Maxin B. John
2016-09-16 11:19 ` [PATCH 4/4] tslib: " Maxin B. John
  -- strict thread matches above, loose matches on Subject: below --
2016-09-21 15:47 [PATCH v3 0/4] move tslib, pointercal and xtscal recipes " Maxin B. John
2016-09-21 15:47 ` [PATCH 3/4] xtscal: move recipe " Maxin B. John
2016-09-01 11:40 [PATCH 0/4] move tslib, pointercal and xtscal recipes " Maxin B. John
2016-09-01 11:40 ` [PATCH 3/4] xtscal: move recipe " Maxin B. John

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.