summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-graphics
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-graphics')
-rw-r--r--meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh13
-rw-r--r--meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch18
-rw-r--r--meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch621
-rw-r--r--meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch27
-rw-r--r--meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb33
5 files changed, 712 insertions, 0 deletions
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 000000000..fa43617bd
--- /dev/null
+++ b/meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
@@ -0,0 +1,13 @@
1#!/bin/sh
2
3. /etc/formfactor/config
4
5if [ "$HAVE_TOUCHSCREEN" = "1" ]; then
6 n=1
7 while [ ! -z $TSLIB_TSDEVICE ] && [ ! -f /etc/pointercal ] && [ $n -le 5 ]
8 do
9 /usr/bin/xtscal
10 sleep 1
11 n=$(($n+1))
12 done
13fi
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 000000000..1da771786
--- /dev/null
+++ b/meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch
@@ -0,0 +1,18 @@
1Upstream-Status: Pending
2
3--- tmp/main.c.orig 2007-01-02 15:39:54.000000000 +0000
4+++ tmp/main.c 2007-01-02 15:39:54.000000000 +0000
5@@ -131,9 +131,10 @@
6 {
7 XRenderFillRectangles (dpy, PictOpSrc, pict, &rect_color, rectangles, 2);
8
9- XFillArc (dpy, crosshair_w, crosshair_gc, (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1,
10- (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1,
11- WIDTH + 1, WIDTH + 1, 0, 360 * 64);
12+ XFillRectangle (dpy, crosshair_w, crosshair_gc,
13+ (CROSSHAIR_SIZE / 2) - (WIDTH / 2),
14+ (CROSSHAIR_SIZE / 2) - (WIDTH / 2),
15+ WIDTH, WIDTH);
16 }
17
18 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 000000000..f7b0854c3
--- /dev/null
+++ b/meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch
@@ -0,0 +1,621 @@
1---
2 Makefile.am | 9 --
3 configure.ac | 3
4 gpe-dist.am | 12 ---
5 h3600_ts.h | 216 -----------------------------------------------------------
6 main.c | 210 ++-------------------------------------------------------
7 xtscal.in | 19 -----
8 6 files changed, 14 insertions(+), 455 deletions(-)
9
10Upstream-Status: Pending
11
12Index: xtscal-0.6.3/xtscal.in
13===================================================================
14--- xtscal-0.6.3.orig/xtscal.in 2004-09-10 20:10:36.000000000 +0100
15+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
16@@ -1,19 +0,0 @@
17-#!/bin/sh
18-
19-module_id() {
20- # Get model name
21- echo `grep "^Hardware" /proc/cpuinfo | sed -e "s/.*: *//" | tr a-z A-Z`
22-}
23-
24-case `module_id` in
25- "HP IPAQ H3100" | "HP IPAQ H3800" )
26- ARGS="-rotate 90" ;;
27- "HP IPAQ H3600" | "HP IPAQ H3700" | "HP IPAQ H3900" | *COLLIE | *POODLE)
28- ARGS="-rotate 270" ;;
29- # H2200: works without rotation
30-esac
31-
32-# the things we do for autoconf
33-prefix=@prefix@
34-exec_prefix=@exec_prefix@
35-exec @libexecdir@/xtscal.bin $ARGS $*
36Index: xtscal-0.6.3/main.c
37===================================================================
38--- xtscal-0.6.3.orig/main.c 2007-07-01 01:12:52.000000000 +0100
39+++ xtscal-0.6.3/main.c 2007-07-01 01:12:55.000000000 +0100
40@@ -22,12 +22,10 @@
41 #include <X11/Xlib.h>
42
43 #include <X11/extensions/Xrender.h>
44-#include <X11/extensions/Xrandr.h>
45 #include <X11/Xft/Xft.h>
46 #include <X11/extensions/xcalibrate.h>
47 #include <X11/keysym.h>
48
49-#include "h3600_ts.h"
50 #include "calibrate.h"
51
52 Display *dpy;
53@@ -45,15 +43,11 @@ XftColor xftcol;
54 XftDraw *xftdraw;
55 XftFont *xftfont;
56 int screen_x, screen_y;
57-int ts_fd;
58 int samples;
59 Pixmap bg_pixmap;
60 int flag_debug;
61-int rotation = 0;
62 int error_base, event_base;
63
64-int using_xcalibrate;
65-
66 int moving;
67
68 #define CROSSHAIR_SIZE 25
69@@ -63,7 +57,6 @@ int moving;
70 #define ENOUGH 5
71 #define MAX_SAMPLES 40
72
73-#define RAW_DEVICE "/dev/h3600_tsraw"
74 #define FONTNAME "sans-10"
75
76 struct point
77@@ -287,12 +280,8 @@ sort_by_y (const void* a, const void *b)
78 void
79 set_calibration (calibration *cal)
80 {
81- TS_CAL tc;
82- int xtrans, ytrans, xscale, yscale, xyscale, yxscale;
83 calibration ocal = *cal;
84
85- if (using_xcalibrate)
86- {
87 FILE *fp;
88 if (flag_debug)
89 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]);
90@@ -304,29 +293,6 @@ set_calibration (calibration *cal)
91 }
92 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]);
93 fclose (fp);
94- return;
95- }
96-
97- xtrans = cal->a[0] / cal->a[6];
98- ytrans = cal->a[3] / cal->a[6];
99- xscale = cal->a[1] * 256 / cal->a[6];
100- yscale = cal->a[5] * 256 / cal->a[6];
101- xyscale = cal->a[2] * 256 / cal->a[6];
102- yxscale = cal->a[4] * 256 / cal->a[6];
103-
104- tc.xtrans = xtrans;
105- tc.ytrans = ytrans;
106- tc.xscale = xscale;
107- tc.yscale = yscale;
108- tc.xyswap = 0;
109-
110- printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap);
111-
112- if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0)
113- {
114- perror ("TS_SET_CAL");
115- exit (1);
116- }
117 }
118
119 void
120@@ -398,80 +364,13 @@ handle_ts_event (int x, int y, int press
121 }
122
123 void
124-read_ts (void)
125-{
126- TS_EVENT ts_ev;
127- int r;
128-
129- r = read (ts_fd, &ts_ev, sizeof (ts_ev));
130- if (r == sizeof (ts_ev))
131- handle_ts_event (ts_ev.x, ts_ev.y, ts_ev.pressure);
132-}
133-
134-void
135-do_cal (char **args)
136-{
137- TS_CAL tc;
138-
139- tc.xscale = atoi (args[0]);
140- tc.xtrans = atoi (args[1]);
141- tc.yscale = atoi (args[2]);
142- tc.ytrans = atoi (args[3]);
143- tc.xyswap = atoi (args[4]);
144-
145- if (flag_debug)
146- fprintf (stderr, "setting: %d %d %d %d %d\n",
147- tc.xtrans, tc.ytrans, tc.xscale, tc.yscale, tc.xyswap);
148-
149- if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0)
150- {
151- perror ("TS_SET_CAL");
152- exit (1);
153- }
154-
155- exit (0);
156-}
157-
158-void
159-show_cal (void)
160-{
161- TS_CAL tc;
162-
163- if (ioctl (ts_fd, TS_GET_CAL, (void *)&tc) != 0)
164- {
165- perror ("TS_GET_CAL");
166- exit (1);
167- }
168-
169- printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap);
170-}
171-
172-void
173 usage (const char *name)
174 {
175- fprintf (stderr, "usage: %s -view\n", name);
176- fprintf (stderr, " %s [-rotate <0 | 90 | 180 | 270>]\n", name);
177- fprintf (stderr, " %s -cal <xs> <xt> <ys> <yt> <xyswap>\n", name);
178-
179+ fprintf (stderr, "usage: %s [-debug]\n", name);
180 exit (1);
181 }
182
183 int
184-xrr_supported (void)
185-{
186- int xrr_event_base, xrr_error_base;
187- int xrr_major, xrr_minor;
188-
189- if (XRRQueryExtension (dpy, &xrr_event_base, &xrr_error_base) == False
190- || XRRQueryVersion (dpy, &xrr_major, &xrr_minor) == 0
191- || xrr_major != 1
192- || xrr_minor < 1)
193- return 0;
194-
195- return 1;
196-}
197-
198-int
199 main (int argc, char *argv[])
200 {
201 XSetWindowAttributes attributes;
202@@ -480,31 +379,11 @@ main (int argc, char *argv[])
203 int max_fd;
204 GC bg_gc;
205 int i;
206- int have_xrandr;
207
208 for (i = 1; i < argc; i++)
209 {
210- if (!strcmp (argv[i], "-view"))
211- {
212- show_cal ();
213- exit (0);
214- }
215- else if (!strcmp (argv[i], "-debug"))
216+ if (!strcmp (argv[i], "-debug"))
217 flag_debug = 1;
218- else if (!strcmp (argv[i], "-cal"))
219- {
220- if (argc > (i + 5))
221- do_cal (argv + i + 1);
222- else
223- usage (argv[0]);
224- }
225- else if (!strcmp (argv[i], "-rotate"))
226- {
227- if (argc > (i + 1))
228- rotation = atoi (argv[++i]);
229- else
230- usage (argv[0]);
231- }
232 else
233 usage (argv[0]);
234 }
235@@ -531,48 +410,11 @@ main (int argc, char *argv[])
236 fprintf (stderr, "failed to set raw mode: error %d\n", r);
237 exit (1);
238 }
239-
240- using_xcalibrate = 1;
241- }
242-
243- have_xrandr = xrr_supported ();
244- if (have_xrandr)
245- {
246- XRRScreenConfiguration *rr_screen;
247- Rotation current_rotation;
248-
249- if (flag_debug)
250- fprintf (stderr, "XRANDR is supported\n");
251-
252- rr_screen = XRRGetScreenInfo (dpy, RootWindow (dpy, screen));
253-
254- XRRRotations (dpy, screen, &current_rotation);
255-
256- XRRFreeScreenConfigInfo (rr_screen);
257-
258- if (flag_debug)
259- fprintf (stderr, "Current RANDR rotation is %d\n", current_rotation);
260-
261- switch (current_rotation)
262- {
263- case RR_Rotate_270:
264- rotation += 90;
265- case RR_Rotate_180:
266- rotation += 90;
267- case RR_Rotate_90:
268- rotation += 90;
269- rotation %= 360;
270- case RR_Rotate_0:
271- break;
272- default:
273- fprintf (stderr, "Unknown RANDR rotation: %d\n", current_rotation);
274- break;
275- }
276 }
277 else
278 {
279- if (flag_debug)
280- fprintf (stderr, "XRANDR not supported\n");
281+ perror ("XCALIBRATE extension missing");
282+ exit (1);
283 }
284
285 attributes.override_redirect = flag_debug ? False : True;
286@@ -666,45 +508,17 @@ main (int argc, char *argv[])
287
288 for (i = 0; i < NR_POINTS; i++)
289 {
290- switch (rotation)
291- {
292- case 0:
293- cal.xfb[i] = cal.xscr[i];
294- cal.yfb[i] = cal.yscr[i];
295- break;
296- case 90:
297- cal.xfb[i] = cal.yscr[i];
298- cal.yfb[i] = screen_x - cal.xscr[i];
299- break;
300- case 180:
301- cal.xfb[i] = screen_x - cal.xscr[i];
302- cal.yfb[i] = screen_y - cal.yscr[i];
303- break;
304- case 270:
305- cal.xfb[i] = screen_y - cal.yscr[i];
306- cal.yfb[i] = cal.xscr[i];
307- break;
308- }
309+ cal.xfb[i] = cal.xscr[i];
310+ cal.yfb[i] = cal.yscr[i];
311+ XCalibrateScreenToCoord (dpy, &cal.xfb[i], &cal.yfb[i]);
312
313 if (flag_debug)
314- printf ("rotation %d: (%d,%d) -> (%d,%d)\n", rotation,
315+ printf ("rotation conversion: (%d,%d) -> (%d,%d)\n",
316 cal.xscr[i], cal.yscr[i], cal.xfb[i], cal.yfb[i]);
317 }
318
319 next_event ();
320
321- if (!using_xcalibrate)
322- {
323- ts_fd = open (RAW_DEVICE, O_RDONLY);
324- if (ts_fd < 0)
325- {
326- perror (RAW_DEVICE);
327- exit (1);
328- }
329- }
330-
331- max_fd = (xfd > ts_fd) ? xfd : ts_fd;
332-
333 for (;;)
334 {
335 fd_set fds;
336@@ -713,12 +527,8 @@ main (int argc, char *argv[])
337
338 FD_ZERO (&fds);
339 FD_SET (xfd, &fds);
340- if (ts_fd != -1)
341- FD_SET (ts_fd, &fds);
342
343- select (max_fd + 1, &fds, NULL, NULL, NULL);
344-
345- if (ts_fd != -1 && FD_ISSET (ts_fd, &fds))
346- read_ts ();
347+ select (xfd + 1, &fds, NULL, NULL, NULL);
348 }
349 }
350+
351Index: xtscal-0.6.3/configure.ac
352===================================================================
353--- xtscal-0.6.3.orig/configure.ac 2004-09-10 20:11:12.000000000 +0100
354+++ xtscal-0.6.3/configure.ac 2007-07-01 01:12:55.000000000 +0100
355@@ -9,8 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2])
356 # Checks for programs.
357 AC_PROG_CC
358
359-PKG_CHECK_MODULES(XTSCAL, x11 xft xext xrandr xcalibrate)
360+PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate)
361
362 AC_CONFIG_FILES([Makefile])
363-AC_CONFIG_FILES([xtscal])
364 AC_OUTPUT
365Index: xtscal-0.6.3/gpe-dist.am
366===================================================================
367--- xtscal-0.6.3.orig/gpe-dist.am 2004-06-02 23:07:13.000000000 +0100
368+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
369@@ -1,12 +0,0 @@
370-CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_])
371-
372-dist-upload: dist
373- scp $(PACKAGE)-$(VERSION).tar.bz2 $(USER)@handhelds.org:/home/ftp/pub/projects/gpe/source/
374-
375-tag:
376- cvs tag $(CVSTAG)
377-
378-retag:
379- cvs tag -F $(CVSTAG)
380-
381-source: tag dist-upload
382Index: xtscal-0.6.3/h3600_ts.h
383===================================================================
384--- xtscal-0.6.3.orig/h3600_ts.h 2003-07-05 17:27:10.000000000 +0100
385+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
386@@ -1,216 +0,0 @@
387-/*
388-*
389-* Driver for the H3600 Touch Screen and other Atmel controlled devices.
390-*
391-* Copyright 2000 Compaq Computer Corporation.
392-*
393-* Use consistent with the GNU GPL is permitted,
394-* provided that this copyright notice is
395-* preserved in its entirety in all copies and derived works.
396-*
397-* COMPAQ COMPUTER CORPORATION MAKES NO WARRANTIES, EXPRESSED OR IMPLIED,
398-* AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS
399-* FITNESS FOR ANY PARTICULAR PURPOSE.
400-*
401-* Author: Charles Flynn.
402-*
403-*/
404-
405-
406-#ifndef __H3600_TS_H__
407-#define __H3600_TS_H__
408-
409-#include <linux/ioctl.h>
410-
411-enum h3600_ts_minor_devices {
412- TS_MINOR = 0,
413- TSRAW_MINOR = 1,
414- KEY_MINOR = 2
415-};
416-
417-typedef struct h3600_ts_calibration {
418- int xscale;
419- int xtrans;
420- int yscale;
421- int ytrans;
422- int xyswap;
423-} TS_CAL;
424-
425-typedef struct h3600_ts_event {
426- unsigned short pressure;
427- unsigned short x;
428- unsigned short y;
429- unsigned short pad;
430-} TS_EVENT;
431-
432-/* Deprecated - do not use */
433-typedef struct h3600_ts_return {
434- unsigned short pressure;
435- unsigned short x;
436- unsigned short y;
437- unsigned short pad;
438-} TS_RET;
439-
440-enum power_button_mode {
441- PBM_SUSPEND = 0,
442- PBM_GENERATE_KEYPRESS = 1
443-};
444-
445-
446-/* ++++++++++++++ +++++++++++++++++++++++++++++++++++++ */
447-
448-typedef struct therm_dev {
449- short data;
450-} THERM_DEV;
451-
452-#define H3600_BATT_CHEM_ALKALINE 0x01
453-#define H3600_BATT_CHEM_NICD 0x02
454-#define H3600_BATT_CHEM_NIMH 0x03
455-#define H3600_BATT_CHEM_LION 0x04
456-#define H3600_BATT_CHEM_LIPOLY 0x05
457-#define H3600_BATT_CHEM_NOT_INSTALLED 0x06
458-#define H3600_BATT_CHEM_UNKNOWN 0xff
459-
460-/* These should match the apm_bios.h definitions */
461-#define H3600_AC_STATUS_AC_OFFLINE 0x00
462-#define H3600_AC_STATUS_AC_ONLINE 0x01
463-#define H3600_AC_STATUS_AC_BACKUP 0x02 /* What does this mean? */
464-#define H3600_AC_STATUS_AC_UNKNOWN 0xff
465-
466-/* These bitfields are rarely "or'd" together */
467-#define H3600_BATT_STATUS_HIGH 0x01
468-#define H3600_BATT_STATUS_LOW 0x02
469-#define H3600_BATT_STATUS_CRITICAL 0x04
470-#define H3600_BATT_STATUS_CHARGING 0x08
471-#define H3600_BATT_STATUS_CHARGE_MAIN 0x10
472-#define H3600_BATT_STATUS_DEAD 0x20 /* Battery will not charge */
473-#define H3600_BATT_NOT_INSTALLED 0x20 /* For expansion pack batteries */
474-#define H3600_BATT_STATUS_FULL 0x40 /* Battery fully charged (and connected to AC) */
475-#define H3600_BATT_STATUS_NOBATT 0x80
476-#define H3600_BATT_STATUS_UNKNOWN 0xff
477-
478-struct battery_data {
479- unsigned char chemistry;
480- unsigned char status;
481- unsigned short voltage; /* Voltage for battery #0; unknown for battery #1 */
482- unsigned short percentage; /* Percentage of full charge */
483- unsigned short life; /* Life remaining in minutes */
484-};
485-
486-struct h3600_battery {
487- unsigned char ac_status;
488- unsigned char battery_count; /* How many batteries we have */
489- struct battery_data battery[2];
490-};
491-
492-/* -------- EEPROM and SPI Interfaces ---------------*/
493-
494-#define EEPROM_RD_BUFSIZ 6 /* EEPROM reads are 16 bits */
495-#define EEPROM_WR_BUFSIZ 5 /* Allow room for 8bit 'addr' field in buffer*/
496-#define SPI_RD_BUFSIZ 16 /* SPI reads are 8 bits */
497-#define SPI_WR_BUFSIZ 7
498-
499-/* The EEPROM is where internal programs are stored on the Amtel.
500- You probably don't want to read or write these values */
501-
502-typedef struct h3600_eeprom_read_request {
503- unsigned char addr; /* 8bit Address Offset 0-255 */
504- unsigned char len; /* Number of 16bit words to read 0-128 */
505- unsigned short buff[EEPROM_RD_BUFSIZ];
506-} EEPROM_READ;
507-
508-typedef struct h3600_eeprom_write_request {
509- unsigned char len; /* used only to compute the number of bytes to send */
510- unsigned char addr; /* 0-128 */
511- unsigned short buff[EEPROM_WR_BUFSIZ];
512-} EEPROM_WRITE;
513-
514-/* The SPI bus connects to EEPROMs located on sleeves plugged into
515- the iPAQ. You may want to read these values */
516-
517-typedef struct h3600_spi_read_request {
518- unsigned short addr; /* 16bit Address Offset 0-128 */
519- unsigned char len; /* Number of bytes to read */
520- unsigned char buff[SPI_RD_BUFSIZ];
521-} SPI_READ;
522-
523-#define SPI_READ_STATUS_BYTE 0xffff /* Use this address to read the status byte */
524-
525-typedef struct h3600_spi_write_request {
526- unsigned short len; /* used only to compute the number of bytes to send */
527- unsigned short addr; /* this 16bit address accesses a single byte */
528- unsigned char buff[SPI_WR_BUFSIZ];
529-} SPI_WRITE;
530-
531-
532-/* -------- end of EEPROM and SPI Interfaces ---------------*/
533-
534-/* User space structures for IOCTL calls */
535-
536-typedef struct h3600_ts_version {
537- unsigned char host_version[8]; /* ascii "x.yy" */
538- unsigned char pack_version[8]; /* ascii "x.yy" */
539- unsigned char boot_type; /* TODO ?? */
540-} VER_RET;
541-
542-typedef struct h3600_ts_led {
543- unsigned char OffOnBlink; /* 0=off 1=on 2=Blink */
544- unsigned char TotalTime; /* Units of 5 seconds */
545- unsigned char OnTime; /* units of 100m/s */
546- unsigned char OffTime; /* units of 100m/s */
547-} LED_IN;
548-
549-enum flite_mode {
550- FLITE_MODE1 = 1,
551- FLITE_AUTO_MODE = 1, /* for reference only */
552- FLITE_MANUAL_MODE = 2, /* Use this normally? */
553- FLITE_GET_LIGHT_SENSOR = 3 /* Returns light reading in "brightness" field */
554-};
555-enum flite_pwr {
556- FLITE_PWR_OFF = 0,
557- FLITE_PWR_ON = 1
558-};
559-
560-typedef struct h3600_ts_flite {
561- unsigned char mode;
562- unsigned char pwr;
563- unsigned char brightness;
564-} FLITE_IN;
565-
566-/*************************** Updated "universal" structures *******************/
567-
568-/* Sets backlight for both H3100 and H3600 models - technically "frontlight" for H3600 */
569-struct h3600_ts_backlight {
570- enum flite_pwr power; /* 0 = off, 1 = on */
571- unsigned char brightness; /* 0 - 255 */
572-};
573-
574-struct h3600_ts_contrast { /* Only useful on H3100 model */
575- unsigned char contrast; /* 0 - 255 */
576-};
577-
578-/* IOCTL cmds user or kernel space */
579-
580-/* Use 'f' as magic number */
581-#define IOC_H3600_TS_MAGIC 'f'
582-
583-/* TODO: Some of these IOWR values are just plain wrong */
584-#define GET_VERSION _IOR(IOC_H3600_TS_MAGIC, 1, struct h3600_ts_version )
585-#define READ_EEPROM _IOWR(IOC_H3600_TS_MAGIC, 2, struct h3600_eeprom_read_request)
586-#define WRITE_EEPROM _IOWR(IOC_H3600_TS_MAGIC, 3, struct h3600_eeprom_write_request)
587-#define GET_THERMAL _IOR(IOC_H3600_TS_MAGIC, 4, struct therm_dev)
588-#define LED_ON _IOW(IOC_H3600_TS_MAGIC, 5, struct h3600_ts_led)
589-#define GET_BATTERY_STATUS _IOR(IOC_H3600_TS_MAGIC, 6, struct h3600_battery)
590-#define FLITE_ON _IOW(IOC_H3600_TS_MAGIC, 7, struct h3600_ts_flite)
591-#define READ_SPI _IOWR(IOC_H3600_TS_MAGIC, 8, struct h3600_spi_read_request)
592-#define WRITE_SPI _IOWR(IOC_H3600_TS_MAGIC, 9, struct h3600_spi_write_request)
593-#define TS_GET_CAL _IOR(IOC_H3600_TS_MAGIC, 10, struct h3600_ts_calibration)
594-#define TS_SET_CAL _IOW(IOC_H3600_TS_MAGIC, 11, struct h3600_ts_calibration)
595-
596-/* New IOCTL interfaces - defined to be more user friendly */
597-#define TS_GET_BACKLIGHT _IOR(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight)
598-#define TS_SET_BACKLIGHT _IOW(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight)
599-#define TS_GET_CONTRAST _IOR(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast)
600-#define TS_SET_CONTRAST _IOW(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast)
601-
602-#endif
603Index: xtscal-0.6.3/Makefile.am
604===================================================================
605--- xtscal-0.6.3.orig/Makefile.am 2004-06-02 23:07:13.000000000 +0100
606+++ xtscal-0.6.3/Makefile.am 2007-07-02 12:51:02.000000000 +0100
607@@ -1,11 +1,8 @@
608-libexec_PROGRAMS = xtscal.bin
609-bin_SCRIPTS = xtscal
610+bin_PROGRAMS = xtscal
611
612-xtscal_bin_SOURCES = main.c calibrate.c calibrate.h h3600_ts.h
613+xtscal_SOURCES = main.c calibrate.c calibrate.h
614
615-xtscal_bin_LDADD = @XTSCAL_LIBS@
616+xtscal_LDADD = @XTSCAL_LIBS@
617
618 INCLUDES = @XTSCAL_CFLAGS@ -DNR_POINTS=5
619
620-include gpe-dist.am
621-
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 000000000..3e4533f78
--- /dev/null
+++ b/meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
@@ -0,0 +1,27 @@
1after gcc linking has changed, all the libraries must be explicitely specified
2This patch avoids this linking error:
3
4| 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
5| /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
6| /disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux/usr/lib/libXrender.so.1: could not read symbols: Bad value^M
7| collect2: ld returned 1 exit status^M
8| make: *** [xtscal] Error 1
9
10Nitin A Kamble <nitin.a.kamble@intel.com>
11Date: 2011/01/11
12
13Upstream-Status: Pending
14
15Index: xtscal-0.6.3/configure.ac
16===================================================================
17--- xtscal-0.6.3.orig/configure.ac
18+++ xtscal-0.6.3/configure.ac
19@@ -9,7 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2])
20 # Checks for programs.
21 AC_PROG_CC
22
23-PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate)
24+PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate xrender)
25
26 AC_CONFIG_FILES([Makefile])
27 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 000000000..4bfddf06b
--- /dev/null
+++ b/meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb
@@ -0,0 +1,33 @@
1SUMMARY = "Touchscreen calibration utility"
2
3DESCRIPTION = "Basic touchscreen calibration utility"
4
5HOMEPAGE = "http://gpe.linuxtogo.org"
6BUGTRACKER = "http://bugs.linuxtogo.org"
7LICENSE = "GPLv2 & GPLv2+"
8LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
9 file://main.c;endline=10;md5=8721bcb08ae9f24e5fe4c82941873c87"
10
11SECTION = "x11/base"
12
13DEPENDS = "virtual/libx11 libxft libxcalibrate"
14
15PR = "r13"
16
17SRC_URI = "${GPE_MIRROR}/xtscal-${PV}.tar.bz2 \
18 file://change-cross.patch \
19 file://cleanup.patch \
20 file://dso_linking_change_build_fix.patch \
21 file://30xTs_Calibrate.sh"
22
23SRC_URI[md5sum] = "9bcab80b474d5454477d1ca166a68c34"
24SRC_URI[sha256sum] = "27b9dc2203de9b1706ca39fa6ca80ecab8807909ec901c4a345b8e41178800a1"
25
26inherit autotools pkgconfig distro_features_check
27# depends on virtual/libx11
28REQUIRED_DISTRO_FEATURES = "x11"
29
30do_install_append() {
31 install -d ${D}${sysconfdir}/X11/Xsession.d/
32 install -m 0755 ${WORKDIR}/30xTs_Calibrate.sh ${D}${sysconfdir}/X11/Xsession.d/
33}