File xf86-input-elographics-1.2.2-commit-bf0e1bf.diff of Package xorg-x11-driver-input

diff --git a/man/elographics.man b/man/elographics.man
index f47aaa1..8dac6b5 100644
--- a/man/elographics.man
+++ b/man/elographics.man
@@ -1,4 +1,3 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/elographics/elographics.man,v 1.1 2001/01/24 00:06:36 dawes Exp $
 .\" shorthand for double quote that works everywhere.
 .ds q \N'34'
 .TH elographics __drivermansuffix__ __vendorversion__
diff --git a/src/xf86Elo.c b/src/xf86Elo.c
index c107927..dfb05d1 100644
--- a/src/xf86Elo.c
+++ b/src/xf86Elo.c
@@ -1,7 +1,6 @@
-/* $XConsortium: xf86Elo.c /main/13 1996/10/25 14:11:31 kaleb $ */
 /*
  * Copyright 1995, 1999 by Patrick Lecoanet, France. <lecoanet@cena.dgac.fr>
- *                                                                            
+ *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is  hereby granted without fee, provided that
  * the  above copyright   notice appear  in   all  copies and  that both  that
@@ -10,8 +9,8 @@
  * advertising or publicity pertaining to distribution of the software without
  * specific,  written      prior  permission.     Patrick Lecoanet   makes  no
  * representations about the suitability of this software for any purpose.  It
- * is provided "as is" without express or implied warranty.                   
- *                                                                            
+ * is provided "as is" without express or implied warranty.
+ *
  * PATRICK LECOANET DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  * EVENT  SHALL PATRICK LECOANET BE LIABLE FOR ANY SPECIAL, INDIRECT OR
@@ -22,8 +21,6 @@
  *
  */
 
-/* $XFree86: xc/programs/Xserver/hw/xfree86/input/elographics/xf86Elo.c,v 1.13 2001/04/01 14:00:13 tsi Exp $ */
-
 /*
  *******************************************************************************
  *******************************************************************************
@@ -34,7 +31,7 @@
  * SUPPORT FOR E281-2310 and compatible controllers added with help of:
  *   1996/01/17 Juergen P. Meier (jpm@mailserv.rz.fh-muenchen.de) and
  *   1998/03/25 G.Felkel@edelmann.de
- *  
+ *
  *   The E281-2310 is a somewhat lobotomized 2210.
  *   It does not support the c,g,h,k,l,p,q,s and t commands.
  *   Especially the P command, which is used to check the baud rate.
@@ -50,12 +47,8 @@
 #include "config.h"
 #endif
 
-#include "xf86Version.h"
-#if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(3,9,0,0,0)
-#define XFREE86_V4
-#endif
+#include "xorgVersion.h"
 
-#ifdef XFREE86_V4
 
 #ifndef XFree86LOADER
 #include <unistd.h>
@@ -72,134 +65,6 @@
 #include "xf86Module.h"
 #endif
 
-#else /* XFREE86_V4 */
-
-#include <X11/Xos.h>
-#include <signal.h>
-#include <stdio.h>
-
-#define	 NEED_EVENTS
-#include <X11/X.h>
-#include <X11/Xproto.h>
-#include "inputstr.h"
-#include "scrnintstr.h"
-#include <X11/extensions/XI.h>
-#include <X11/extensions/XIproto.h>
-
-#if defined(sun) && !defined(i386)
-#include <errno.h>
-#include <termio.h>
-#include <fcntl.h>
-#include <ctype.h>
-
-#include "extio.h"
-#else /* defined(sun) && !defined(i386) */
-#include "compiler.h"
-
-#include "xf86.h"
-#include "xf86Procs.h"
-#include "xf86_OSlib.h"
-#include "xf86_Config.h"
-#include "xf86Xinput.h"
-#endif /* defined(sun) && !defined(i386) */
-
-#if !defined(sun) || defined(i386)
-#include "os.h"
-#include "osdep.h"
-#include "exevents.h"
-
-#include "extnsionst.h"
-#include "extinit.h"
-#endif /* !defined(sun) || defined(i386) */
-
-#endif /* XFREE86_V4 */
-
-
-#ifndef XFREE86_V4
-#if !defined(sun) || defined(i386)
-/*
- ***************************************************************************
- *
- * Configuration descriptor.
- *
- ***************************************************************************
- */
-
-#define PORT		1
-#define ELO_DEVICE_NAME	2
-#define SCREEN_NO	3
-#define UNTOUCH_DELAY	4
-#define REPORT_DELAY	5
-#define MAXX		6
-#define MAXY		7
-#define MINX		8
-#define MINY		9
-#define DEBUG_LEVEL     10
-#define HISTORY_SIZE	11
-#define LINK_SPEED	12
-#define ALWAYS_CORE	13
-#define SWAP_AXES	14
-#define PORTRAIT_MODE	15
-
-static SymTabRec EloTab[] = {
-  { ENDSUBSECTION,     "endsubsection" },
-  { PORT,              "port" },
-  { ELO_DEVICE_NAME,   "devicename" },
-  { SCREEN_NO,	       "screenno" },
-  { UNTOUCH_DELAY,     "untouchdelay" },
-  { REPORT_DELAY,      "reportdelay"},
-  { MAXX,              "maximumxposition" },
-  { MAXY,              "maximumyposition" },
-  { MINX,              "minimumxposition" },
-  { MINY,              "minimumyposition" },
-  { DEBUG_LEVEL,       "debuglevel" },
-  { HISTORY_SIZE,      "historysize" },
-  { LINK_SPEED,        "linkspeed" },
-  { ALWAYS_CORE,       "alwayscore" },
-  { SWAP_AXES,	       "swapxy" },
-  { PORTRAIT_MODE,     "portraitmode" },
-  { -1,                "" },
-};
-
-#define LS300		1
-#define LS1200		2
-#define LS2400		3
-#define LS9600		4
-#define LS19200		5
-
-static SymTabRec LinkSpeedTab[] = {
-  { LS300,	"b300" },
-  { LS1200,	"b1200" },
-  { LS2400,	"b2400" },
-  { LS9600,	"b9600" },
-  { LS19200,	"b19200" }
-};
-#endif /* !defined(sun) || defined(i386) */
-
-/*
- * This struct connects a line speed with
- * a compatible motion packet delay. The
- * driver will attempt to enforce a correct
- * delay (according to this table) in order to
- * avoid losing data in the touchscreen controller.
- * LinkSpeedValues should be kept in sync with
- * LinkSpeedTab.
- */
-typedef struct {
-  int	speed;
-  int	delay;
-} LinkParameterStruct;
-
-static LinkParameterStruct	LinkSpeedValues[] = {
-  { B300, 32 },
-  { B1200, 8 },
-  { B2400, 4 },
-  { B9600, 1 },
-  { B19200, 0 }
-};
-#endif /* XFREE86_V4 */
-
-
 /*
  ***************************************************************************
  *
@@ -287,7 +152,6 @@ static int      debug_level = 0;
 #define DBG(lvl, f)
 #endif
 
-#ifdef XFREE86_V4
 #undef SYSCALL
 #undef read
 #undef write
@@ -296,7 +160,6 @@ static int      debug_level = 0;
 #define read(fd, ptr, num) xf86ReadSerial(fd, ptr, num)
 #define write(fd, ptr, num) xf86WriteSerial(fd, ptr, num)
 #define close(fd) xf86CloseSerial(fd)
-#endif
 
 
 /*
@@ -314,9 +177,6 @@ typedef struct _EloPrivateRec {
   int		max_y;			/* Maximum y					*/
   int		untouch_delay;		/* Delay before reporting an untouch (in ms)    */
   int		report_delay;		/* Delay between touch report packets		*/
-#ifndef XFREE86_V4
-  int		link_speed;		/* Speed of the RS232 link connecting the ts.	*/
-#endif
   int		screen_no;		/* Screen associated with the device		*/
   int		screen_width;		/* Width of the associated X screen		*/
   int		screen_height;		/* Height of the screen				*/
@@ -328,262 +188,6 @@ typedef struct _EloPrivateRec {
   unsigned char	packet_buf[ELO_PACKET_SIZE]; /* Assembly buffer				*/
 } EloPrivateRec, *EloPrivatePtr;
 
-
-#ifndef XFREE86_V4
-#if !defined(sun) || defined(i386)
-/*
- ***************************************************************************
- *
- * xf86EloConfig --
- *	Configure the driver from the configuration data.
- *
- ***************************************************************************
- */
-static Bool
-xf86EloConfig(LocalDevicePtr    *array,
-              int               inx,
-              int               max,
-	      LexPtr            val)
-{
-  LocalDevicePtr        local = array[inx];
-  EloPrivatePtr         priv = (EloPrivatePtr)(local->private);
-  int                   token;
-  int			portrait=0;
-  
-  while ((token = xf86GetToken(EloTab)) != ENDSUBSECTION) {
-    switch(token) {
-      
-    case PORT:
-      if (xf86GetToken(NULL) != STRING) {
-	xf86ConfigError("Elographics input port expected");
-      }
-      priv->input_dev = strdup(val->str);	
-      if (xf86Verbose) {
-	ErrorF("%s Elographics input port: %s\n",
-	       XCONFIG_GIVEN, priv->input_dev);
-      }
-      break;
-
-    case ELO_DEVICE_NAME:
-      if (xf86GetToken(NULL) != STRING) {
-	xf86ConfigError("Elographics device name expected");
-      }
-      local->name = strdup(val->str);
-      if (xf86Verbose) {
-	ErrorF("%s Elographics X device name: %s\n",
-	       XCONFIG_GIVEN, local->name);
-      }
-      break;
-
-    case SCREEN_NO:
-      if (xf86GetToken(NULL) != NUMBER) {
-	xf86ConfigError("Elographics screen number expected");
-      }
-      priv->screen_no = val->num;
-      if (xf86Verbose) {
-	ErrorF("%s Elographics associated screen: %d\n",
-	       XCONFIG_GIVEN, priv->screen_no);
-      }
-      break;
-
-    case UNTOUCH_DELAY:
-      if (xf86GetToken(NULL) != NUMBER) {
-	xf86ConfigError("Elographics untouch delay expected");
-      }
-      priv->untouch_delay = val->num;
-      if (xf86Verbose) {
-	ErrorF("%s Elographics untouch delay: %d ms\n",
-	       XCONFIG_GIVEN, priv->untouch_delay*10);
-      }
-      break;
-
-    case REPORT_DELAY:
-      if (xf86GetToken(NULL) != NUMBER) {
-	xf86ConfigError("Elographics report delay expected");
-      }
-      priv->report_delay = val->num;
-      if (xf86Verbose) {
-	ErrorF("%s Elographics report delay: %d ms\n",
-	       XCONFIG_GIVEN, priv->report_delay*10);
-      }
-      break;
-      
-    case LINK_SPEED:
-      {
-	int	ltoken = xf86GetToken(LinkSpeedTab);
-	if (ltoken == EOF ||
-	    ltoken == STRING ||
-	    ltoken == NUMBER) {
-	  xf86ConfigError("Elographics link speed expected");
-	}
-	priv->link_speed = LinkSpeedValues[ltoken-1].speed;
-	if (xf86Verbose) {
-	  ErrorF("%s Elographics link speed: %s bps\n",
-		 XCONFIG_GIVEN, (LinkSpeedTab[ltoken-1].name)+1);
-	}
-      }
-      break;
-      
-    case MAXX:
-      if (xf86GetToken(NULL) != NUMBER) {
-        xf86ConfigError("Elographics maximum x position expected");
-      }
-      priv->max_x = val->num;
-      if (xf86Verbose) {
-	ErrorF("%s Elographics maximum x position: %d\n",
-	       XCONFIG_GIVEN, priv->max_x);
-      }
-     break;
-      
-    case MAXY:
-      if (xf86GetToken(NULL) != NUMBER) {
-        xf86ConfigError("Elographics maximum y position expected");
-      }
-      priv->max_y = val->num;
-      if (xf86Verbose) {
-	ErrorF("%s Elographics maximum y position: %d\n",
-	       XCONFIG_GIVEN, priv->max_y);
-      }
-     break;
-      
-    case MINX:
-      if (xf86GetToken(NULL) != NUMBER) {
-        xf86ConfigError("Elographics minimum x position expected");
-      }
-      priv->min_x = val->num;
-      if (xf86Verbose) {
-	ErrorF("%s Elographics minimum x position: %d\n",
-	       XCONFIG_GIVEN, priv->min_x);
-      }
-     break;
-      
-    case MINY:
-      if (xf86GetToken(NULL) != NUMBER) {
-        xf86ConfigError("Elographics minimum y position expected");
-      }
-      priv->min_y = val->num;
-      if (xf86Verbose) {
-	ErrorF("%s Elographics minimum y position: %d\n",
-	       XCONFIG_GIVEN, priv->min_y);
-      }
-     break;
-      
-    case DEBUG_LEVEL:
-      if (xf86GetToken(NULL) != NUMBER) {
-	xf86ConfigError("Elographics driver debug level expected");
-      }
-      debug_level = val->num;
-      if (xf86Verbose) {
-#if DEBUG
-	ErrorF("%s Elographics debug level sets to %d\n", XCONFIG_GIVEN,
-	       debug_level);      
-#else
-	ErrorF("%s Elographics debug not available\n",
-	       XCONFIG_GIVEN, debug_level);      
-#endif
-      }
-      break;
-
-    case HISTORY_SIZE:
-      if (xf86GetToken(NULL) != NUMBER) {
-	xf86ConfigError("Elographics motion history size expected");
-      }
-      local->history_size = val->num;
-      if (xf86Verbose) {
-	ErrorF("%s EloGraphics motion history size is %d\n", XCONFIG_GIVEN,
-	       local->history_size);
-      }
-      break;
-	    
-    case ALWAYS_CORE:
-      xf86AlwaysCore(local, TRUE);
-      if (xf86Verbose) {
-	ErrorF("%s Elographics device will always stays core pointer\n",
-	       XCONFIG_GIVEN);
-      }
-      break;
-
-    case SWAP_AXES:
-      priv->swap_axes = 1;
-      if (xf86Verbose) {
-	ErrorF("%s Elographics device will work with X and Y axes swapped\n",
-	       XCONFIG_GIVEN);
-      }      
-      break;
-
-    case PORTRAIT_MODE:
-      if (xf86GetToken(NULL) != STRING) {
-      portrait_mode_err:
-	xf86ConfigError("Elographics portrait mode should be: Portrait, Landscape or PortraitCCW");
-      }
-      if (strcmp(val->str, "portrait") == 0) {
-	portrait = 1;
-      }
-      else if (strcmp(val->str, "portraitccw") == 0) {
-	portrait = -1;
-      }
-      else if (strcmp(val->str, "landscape") != 0) {
-	goto portrait_mode_err;
-      }
-      if (xf86Verbose) {
-	ErrorF("%s Elographics device will work in %s mode\n",
-	       XCONFIG_GIVEN, val->str);
-      }      
-      break;
-
-    case EOF:
-      FatalError("Unexpected EOF (missing EndSubSection)");
-      break;
-
-    default:
-      xf86ConfigError("Elographics subsection keyword expected");
-      break;
-    }
-  }
-
-  if (priv->max_x - priv->min_x <= 0) {
-    ErrorF("%s Elographics: reverse x mode (minimum x position >= maximum x position)\n",
-	   XCONFIG_GIVEN);
-  }  
-  if (priv->max_y - priv->min_y <= 0) {
-    ErrorF("%s Elographics: reverse y mode (minimum y position >= maximum y position)\n",
-	   XCONFIG_GIVEN);
-  }
-  /*
-   * The portrait adjustments need to be done after axis reversing
-   * and axes swap. This way the driver can cope with deffective
-   * hardware and still do the correct processing depending on the
-   * actual display orientation.
-   */
-  if (portrait == 1) {
-    /*
-     * Portrait Clockwise: reverse Y axis and exchange X and Y.
-     */
-    int tmp;
-    tmp = priv->min_y;
-    priv->min_y = priv->max_y;
-    priv->max_y = tmp;
-    priv->swap_axes = (priv->swap_axes==0) ? 1 : 0;
-  }
-  else if (portrait == -1) {
-    /*
-     * Portrait Counter Clockwise: reverse X axis and exchange X and Y.
-     */
-    int tmp;
-    tmp = priv->min_x;
-    priv->min_x = priv->max_x;
-    priv->max_x = tmp;
-    priv->swap_axes = (priv->swap_axes==0) ? 1 : 0;
-  }
-    
-  DBG(2, ErrorF("xf86EloConfig port name=%s\n", priv->input_dev))
-
-  return Success;
-}
-#endif
-#endif
-
-
 /*
  ***************************************************************************
  *
@@ -620,7 +224,7 @@ xf86EloGetPacket(unsigned char	*buffer,
 
   DBG(4, ErrorF("Entering xf86EloGetPacket with checksum == %d and buffer_p == %d\n",
 		*checksum, *buffer_p));
-  
+
   /*
    * Try to read enough bytes to fill up the packet buffer.
    */
@@ -638,7 +242,7 @@ xf86EloGetPacket(unsigned char	*buffer,
     return !Success;
   }
   DBG(4, ErrorF("Read %d bytes\n", num_bytes));
-    
+
   while (num_bytes) {
     /*
      * Sync with the start of a packet.
@@ -678,7 +282,7 @@ xf86EloGetPacket(unsigned char	*buffer,
       ErrorF("Checksum error on Elographics touchscreen link\n");
       return !Success;
     }
-    
+
     /*
      * Valid packet received report it.
      */
@@ -716,7 +320,7 @@ xf86EloConvert(LocalDevicePtr	local,
   int		width = priv->max_x - priv->min_x;
   int		height = priv->max_y - priv->min_y;
   int		input_x, input_y;
-  
+
   if (first != 0 || num != 2) {
     return FALSE;
   }
@@ -738,21 +342,19 @@ xf86EloConvert(LocalDevicePtr	local,
   *y = (priv->screen_height -
 	(priv->screen_height * (input_y - priv->min_y)) / height);
 
-  /* 
+  /*
    * MHALAS: Based on the description in xf86XInputSetScreen
    * this code must be called from ReadInput BEFORE any events
    * are posted but this method is called FROM xf86PostMotionEvent
    * Therefore I have moved this method into xf86EloReadInput
    */
-#ifdef XFREE86_V4
   /*
    * Need to check if still on the correct screen.
    * This call is here so that this work can be done after
    * calib and before posting the event.
    */
 /*  xf86XInputSetScreen(local, priv->screen_no, *x, *y); */
-#endif
-  
+
   DBG(3, ErrorF("EloConvert: Screen(%d) - x(%d), y(%d)\n", priv->screen_no, *x, *y));
 
   return TRUE;
@@ -790,7 +392,7 @@ xf86EloReadInput(LocalDevicePtr	local)
   EloPrivatePtr			priv = (EloPrivatePtr)(local->private);
   int				cur_x, cur_y;
   int				state;
-#ifdef XFREE86_V4
+#if GET_ABI_MAJOR(XINPUT_ABI) == 0
    int first = 0; /* since convert is expecting 0 */
    int num = 2; /* since convert is expecting 0 */
    int v0 = 0; /* = cur_x - based on the debug output this is what v0 is */
@@ -799,18 +401,19 @@ xf86EloReadInput(LocalDevicePtr	local)
    int v3 = 0; /* not used in convert */
    int v4 = 0; /* not used in convert */
    int v5 = 0; /* not used in convert */
-   int x; /* output */
-   int y; /* output */
 #endif
 
   DBG(4, ErrorF("Entering ReadInput\n"));
   /*
    * Try to get a packet.
    */
-  while (xf86EloGetPacket(priv->packet_buf,
+  while (xf86WaitForInput(local->fd, ELO_MAX_WAIT/100) > 0) {
+      if(xf86EloGetPacket(priv->packet_buf,
 		       &priv->packet_buf_p,
 		       &priv->checksum,
-		       local->fd) == Success) {
+		       local->fd) != Success)
+          break;
+
       /*
        * Process only ELO_TOUCHs here.
        */
@@ -821,31 +424,30 @@ xf86EloReadInput(LocalDevicePtr	local)
           cur_x = WORD_ASSEMBLY(priv->packet_buf[3], priv->packet_buf[4]);
           cur_y = WORD_ASSEMBLY(priv->packet_buf[5], priv->packet_buf[6]);
           state = priv->packet_buf[2] & 0x07;
-
-          /* 
+#if GET_ABI_MAJOR(XINPUT_ABI) == 0
+          /*
            * MHALAS: Based on the description in xf86XInputSetScreen
            * this code must be called from ReadInput BEFORE any events
            * are posted but this method is called FROM xf86PostMotionEvent
            * Therefore I have moved this method into xf86EloReadInput
            */
-#ifdef XFREE86_V4
           /*
            * Need to check if still on the correct screen.
            * This call is here so that this work can be done after
            * calib and before posting the event.
            */
 
-          DBG(3, ErrorF("EloConvert Before Fix: Screen(%d) - x(%d), y(%d)\n", priv->screen_no, x, y));
+          DBG(3, ErrorF("EloConvert Before Fix: Screen(%d) - x(%d), y(%d)\n", priv->screen_no, cur_x, cur_y));
           v0 = cur_x; /* based on the debug output this is what v0 is */
-          v1 = cur_y; /* based on the debug output this is what v0 is */
-          /* 
+          v1 = cur_y; /* based on the debug output this is what v1 is */
+          /*
            * Use the conversion method to send correct coordinates
            * since it contains all necessary logic
            */
-          xf86EloConvert(local, first, num, v0, v1, v2, v3, v4, v5, &x, &y);
-          DBG(3, ErrorF("EloConvert During Fix: Screen(%d) - x(%d), y(%d)\n", priv->screen_no, x, y));
-          xf86XInputSetScreen(local, priv->screen_no, x, y);
-          DBG(3, ErrorF("EloConvert After Fix: Screen(%d) - x(%d), y(%d)\n", priv->screen_no, x, y));
+          xf86EloConvert(local, first, num, v0, v1, v2, v3, v4, v5, &cur_x, &cur_y);
+          DBG(3, ErrorF("EloConvert During Fix: Screen(%d) - x(%d), y(%d)\n", priv->screen_no, cur_x, cur_y));
+          xf86XInputSetScreen(local, priv->screen_no, cur_x, cur_y);
+          DBG(3, ErrorF("EloConvert After Fix: Screen(%d) - x(%d), y(%d)\n", priv->screen_no, cur_x, cur_y));
 #endif
 
           /*
@@ -855,13 +457,13 @@ xf86EloReadInput(LocalDevicePtr	local)
            * location has changed as DIX assumes this. This is why we always
            * emit a motion, regardless of the kind of packet processed.
            */
-          xf86PostMotionEvent(local->dev, TRUE, 0, 2, x, y);
+          xf86PostMotionEvent(local->dev, TRUE, 0, 2, cur_x, cur_y);
 
           /*
            * Emit a button press or release.
            */
           if (state == ELO_PRESS || state == ELO_RELEASE) {
-              xf86PostButtonEvent(local->dev, TRUE, 1, state == ELO_PRESS, 0, 2, x, y);
+              xf86PostButtonEvent(local->dev, TRUE, 1, state == ELO_PRESS, 0, 2, cur_x, cur_y);
           }
 
           DBG(3, ErrorF("TouchScreen: x(%d), y(%d), %s\n",
@@ -925,24 +527,6 @@ xf86EloSendPacket(unsigned char	*packet,
  *
  ***************************************************************************
  */
-#ifndef XFREE86_V4
-static int
-xf86WaitForInput(int	fd,
-		 int	timeout)
-{
-  fd_set	readfds;
-  struct	timeval to;
-  int		r;
-  
-  FD_ZERO(&readfds);
-  FD_SET(fd, &readfds);
-  to.tv_sec = 0;
-  to.tv_usec = timeout;
-  
-  SYSCALL(r = select(FD_SETSIZE, &readfds, NULL, NULL, &to));
-  return r;
-}
-#endif
 
 static Bool
 xf86EloWaitReply(unsigned char	type,
@@ -958,7 +542,7 @@ xf86EloWaitReply(unsigned char	type,
   i = ELO_MAX_TRIALS;
   do {
     ok = !Success;
-    
+
     /*
      * Wait half a second for the reply. The fuse counts down each
      * timeout and each wrong packet.
@@ -979,7 +563,7 @@ xf86EloWaitReply(unsigned char	type,
     else {
       DBG(3, ErrorF("No answer from link : %d\n", result));
     }
-    
+
     if (result == 0) {
       i--;
     }
@@ -1041,7 +625,7 @@ xf86EloSendQuery(unsigned char	*request,
 		 int		fd)
 {
   Bool			ok;
-  
+
   if (xf86EloSendPacket(request, fd) == Success) {
     ok = xf86EloWaitReply(toupper(request[1]), reply, fd);
     if (ok == Success) {
@@ -1090,7 +674,6 @@ static void
 xf86EloPrintIdent(unsigned char	*packet,
 		  EloPrivatePtr	priv)
 {
-#ifdef XFREE86_V4
   xf86Msg(X_PROBED, "Elographics touchscreen is a ");
   switch(packet[2]) {
   case '0':
@@ -1128,7 +711,7 @@ xf86EloPrintIdent(unsigned char	*packet,
     xf86Msg(X_NONE, "E271-2200");
   }
   xf86Msg(X_NONE, ", firmware revision %d.%d.\n", packet[6], packet[5]);
-  
+
   if (packet[4]) {
     xf86Msg(X_PROBED, " Additional features:\n");
     if (packet[4] & 0x10) {
@@ -1145,62 +728,6 @@ xf86EloPrintIdent(unsigned char	*packet,
     }
     xf86Msg(X_NONE, "\n");
   }
-#else
-  ErrorF("%s Elographics touchscreen is a ", XCONFIG_PROBED);
-  switch(packet[2]) {
-  case '0':
-    ErrorF("AccuTouch");
-    break;
-  case '1':
-    ErrorF("DuraTouch");
-    break;
-  case '2':
-    ErrorF("Intellitouch");
-    break;
-  }
-  ErrorF(", connected through a ");
-  switch(packet[3]) {
-  case '0':
-    ErrorF("serial link.\n");
-    break;
-  case '1':
-    ErrorF("PC-Bus port.\n");
-    break;
-  case '2':
-    ErrorF("Micro Channel port.\n");
-    break;
-  }
-  ErrorF("%s The controller is a model ", XCONFIG_PROBED);
-  if (packet[8] & 1) {
-    if (priv->is_a_2310) {
-      ErrorF("E281-2310");
-    }
-    else {
-      ErrorF("E271-2210");
-    }
-  }
-  else {
-    ErrorF("E271-2200");
-  }
-  ErrorF(", firmware revision %d.%d.\n", packet[6], packet[5]);
-  
-  if (packet[4]) {
-    ErrorF("%s Additional features:\n", XCONFIG_PROBED);
-    if (packet[4] & 0x10) {
-      ErrorF("%s	External A/D converter\n", XCONFIG_PROBED);
-    }
-    if (packet[4] & 0x20) {
-      ErrorF("%s	32Ko RAM\n", XCONFIG_PROBED);
-    }
-    if (packet[4] & 0x40) {
-      ErrorF("%s	RAM onboard\n", XCONFIG_PROBED);
-    }
-    if (packet[4] & 0x80) {
-      ErrorF("%s	Z axis active\n", XCONFIG_PROBED);
-    }
-    ErrorF("\n");
-  }
-#endif
 }
 
 
@@ -1241,75 +768,8 @@ xf86EloControl(DeviceIntPtr	dev,
 
   case DEVICE_INIT:
     {
-#if defined(sun) && !defined(i386) && !defined(XFREE86_V4)
-      char      *name = (char *) getenv("ELO_DEV");
-      char      *calib = (char *) getenv("ELO_CALIB");
-      char	*speed = (char *) getenv("ELO_SPEED");
-      char	*delays = (char *) getenv("ELO_DELAYS");
-#endif
-      
       DBG(2, ErrorF("Elographics touchscreen init...\n"));
 
-#if defined(sun) && !defined(i386) && !defined(XFREE86_V4)
-      if (name) {
-	priv->input_dev = strdup(name);
-	ErrorF("Elographics touchscreen port changed to '%s'\n",
-	       priv->input_dev);
-      }
-      if (calib) {
-	if (sscanf(calib, "%d %d %d %d",
-		   &priv->min_x, &priv->max_x,
-		   &priv->min_y, &priv->max_y) != 4) {
-	  ErrorF("Incorrect syntax in ELO_CALIB\n");
-	  return !Success;
-	}
-	else if (priv->max_x <= priv->min_x ||
-		 priv->max_y <= priv->min_y) {
-	  ErrorF("Bogus calibration data in ELO_CALIB\n");
-	  return !Success;
-	}
-	else {
-	  ErrorF("Calibration will be done with:\n");
-	  ErrorF("x_min=%d, x_max=%d, y_min=%d, y_max=%d\n",
-		 priv->min_x, priv->max_x, priv->min_y, priv->max_y);
-	}
-      }
-      if (speed) {
-	/* These tests should be kept in sync with the LinkSpeedValues
-	 * array. */
-	if (strcmp(speed, "B9600") == 0) {
-	  priv->link_speed = B9600;
-	}
-	else if (strcmp(speed, "B19200") == 0) {
-	  priv->link_speed = B19200;
-	}
-	else if (strcmp(speed, "B2400") == 0) {
-	  priv->link_speed = B2400;
-	}
-	else if (strcmp(speed, "B1200") == 0) {
-	  priv->link_speed = B1200;
-	}
-	else if (strcmp(speed, "B300") == 0) {
-	  priv->link_speed = B300;
-	}
-	else {
-	  ErrorF("Bogus speed value in ELO_SPEED\n");
-	  return !Success;
-	}
-      }
-      if (delays) {
-	if (sscanf(delays, "%d %d",
-		   &priv->untouch_delay,
-		   &priv->report_delay) != 2) {
-	  ErrorF("Bogus delays data in ELO_DELAYS\n");
-	}
-	else {
-	  ErrorF("Untouch delay will be: %d\n", priv->untouch_delay);
-	  ErrorF("Report delay will be: %d\n", priv->report_delay);
-	}
-      }
-#endif
-      
       if (priv->screen_no >= screenInfo.numScreens ||
 	  priv->screen_no < 0) {
 	priv->screen_no = 0;
@@ -1324,7 +784,7 @@ xf86EloControl(DeviceIntPtr	dev,
 	ErrorF("Unable to allocate Elographics touchscreen ButtonClassDeviceStruct\n");
 	return !Success;
       }
-      
+
       if (InitFocusClassDeviceStruct(dev) == FALSE) {
 	ErrorF("Unable to allocate Elographics touchscreen FocusClassDeviceStruct\n");
 	return !Success;
@@ -1332,7 +792,7 @@ xf86EloControl(DeviceIntPtr	dev,
       if (InitPtrFeedbackClassDeviceStruct(dev, xf86EloPtrControl) == FALSE) {
 	  ErrorF("unable to init ptr feedback\n");
 	  return !Success;
-      }  
+      }
       /*
        * Device reports motions on 2 axes in absolute coordinates.
        * Axes min and max values are reported in raw coordinates.
@@ -1363,56 +823,28 @@ xf86EloControl(DeviceIntPtr	dev,
       if (InitFocusClassDeviceStruct(dev) == FALSE) {
 	ErrorF("Unable to allocate Elographics touchscreen FocusClassDeviceStruct\n");
       }
-      
+
       /*
        * Allocate the motion events buffer.
        */
       xf86MotionHistoryAllocate(local);
-      
-      /*
-       * This once has caused the server to crash after doing an xalloc & strcpy ??
-       */
-#ifndef XFREE86_V4
-      AssignTypeAndName(dev, local->atom, local->name);
-#endif
-      
+
+
       DBG(2, ErrorF("Done.\n"));
       return Success;
     }
-    
+
   case DEVICE_ON:
     DBG(2, ErrorF("Elographics touchscreen on...\n"));
 
     if (local->fd < 0) {
-#ifndef XFREE86_V4
-      struct termios termios_tty;
-      int	     i, result;
-#endif
-      
+
       DBG(2, ErrorF("Elographics touchscreen opening : %s\n", priv->input_dev));
-#ifdef XFREE86_V4
       local->fd = xf86OpenSerial(local->options);
       if (local->fd < 0) {
 	Error("Unable to open Elographics touchscreen device");
 	return !Success;
       }
-#else
-      SYSCALL(local->fd = open(priv->input_dev, O_RDWR|O_NDELAY, 0));
-      if (local->fd < 0) {
-	Error("Unable to open Elographics touchscreen device");
-	return !Success;
-      }
-
-      DBG(3, ErrorF("Try to see if the link is at the specified rate\n"));
-      memset(&termios_tty, 0, sizeof(termios_tty));
-      termios_tty.c_cflag = priv->link_speed | CS8 | CREAD | CLOCAL;
-      termios_tty.c_cc[VMIN] = 1;
-      SYSCALL(result = tcsetattr(local->fd, TCSANOW, &termios_tty));
-      if (result < 0) {
-	Error("Unable to configure Elographics touchscreen port");
-	goto not_success;
-      }
-#endif
       /*
        * Try to see if the link is at the specified rate and
        * ask the controller to report various infos.
@@ -1436,7 +868,7 @@ xf86EloControl(DeviceIntPtr	dev,
 	ErrorF("Unable to ask Elographics touchscreen identification\n");
 	goto not_success;
       }
-      
+
       /*
        * Set the operating mode: Stream, no scaling, no calibration,
        * no range checking, no trim, tracking enabled.
@@ -1450,21 +882,6 @@ xf86EloControl(DeviceIntPtr	dev,
 	goto not_success;
       }
 
-#ifndef XFREE86_V4
-      /*
-       * Check if the report delay is compatible with the selected
-       * link speed and reset it otherwise.
-       */
-      for (i = 0; i < sizeof(LinkSpeedValues)/sizeof(LinkParameterStruct); i++) {
-	if (LinkSpeedValues[i].speed == priv->link_speed) {
-	  if (LinkSpeedValues[i].delay > priv->report_delay) {
-	    ErrorF("Changing report delay from %d ms to %d ms to comply with link speed\n",
-		   priv->report_delay*10, LinkSpeedValues[i].delay*10);
-	    priv->report_delay = LinkSpeedValues[i].delay;
-	  }
-	}
-      }
-#endif
       /*
        * Set the touch reports timings from configuration data.
        */
@@ -1480,17 +897,13 @@ xf86EloControl(DeviceIntPtr	dev,
 	local->fd = -1;
 	return !Success;
       }
-#ifdef XFREE86_V4
       xf86AddEnabledDevice(local);
-#else
-      AddEnabledDevice(local->fd);
-#endif
-      dev->public.on = TRUE;  
+      dev->public.on = TRUE;
     }
-    
+
     DBG(2, ErrorF("Done\n"));
     return Success;
-    
+
     /*
      * Deactivate the device. After this, the device will not emit
      * events until a subsequent DEVICE_ON. Thus, we can momentarily
@@ -1500,17 +913,13 @@ xf86EloControl(DeviceIntPtr	dev,
     DBG(2, ErrorF("Elographics touchscreen off...\n"));
     dev->public.on = FALSE;
     if (local->fd >= 0) {
-#ifdef XFREE86_V4
       xf86RemoveEnabledDevice(local);
-#else
-      RemoveEnabledDevice(local->fd);
-#endif
     }
     SYSCALL(close(local->fd));
     local->fd = -1;
     DBG(2, ErrorF("Done\n"));
     return Success;
-    
+
     /*
      * Final close before server exit. This is used during server shutdown.
      * Close the port and free all the resources.
@@ -1519,11 +928,7 @@ xf86EloControl(DeviceIntPtr	dev,
     DBG(2, ErrorF("Elographics touchscreen close...\n"));
     dev->public.on = FALSE;
     if (local->fd >= 0) {
-#ifdef XFREE86_V4
 	xf86RemoveEnabledDevice(local);
-#else
-	RemoveEnabledDevice(local->fd);
-#endif
     }
     SYSCALL(close(local->fd));
     local->fd = -1;
@@ -1544,11 +949,7 @@ xf86EloControl(DeviceIntPtr	dev,
  ***************************************************************************
  */
 static LocalDevicePtr
-#ifndef XFREE86_V4
-xf86EloAllocate(void)
-#else
-xf86EloAllocate(InputDriverPtr	drv)     
-#endif
+xf86EloAllocate(InputDriverPtr	drv)
 {
   LocalDevicePtr	local;
   EloPrivatePtr		priv;
@@ -1557,23 +958,14 @@ xf86EloAllocate(InputDriverPtr	drv)
   if (!priv)
     return NULL;
 
-#ifndef XFREE86_V4
-  local = (LocalDevicePtr) xalloc(sizeof(LocalDeviceRec));
-#else
   local = xf86AllocateInput(drv, 0);
-#endif
 
   if (!local) {
     xfree(priv);
     return NULL;
   }
-  
-#ifdef XFREE86_V4
+
   priv->input_dev = strdup(ELO_PORT);
-#else
-  priv->input_dev = ELO_PORT;
-  priv->link_speed = ELO_LINK_SPEED;
-#endif
   priv->min_x = 0;
   priv->max_x = 3000;
   priv->min_y = 0;
@@ -1591,11 +983,6 @@ xf86EloAllocate(InputDriverPtr	drv)
 
   local->name = XI_TOUCHSCREEN;
   local->flags = 0 /* XI86_NO_OPEN_ON_INIT */;
-#ifndef XFREE86_V4
-#if !defined(sun) || defined(i386)
-  local->device_config = xf86EloConfig;
-#endif
-#endif
   local->device_control = xf86EloControl;
   local->read_input   = xf86EloReadInput;
   local->control_proc = NULL;
@@ -1609,52 +996,10 @@ xf86EloAllocate(InputDriverPtr	drv)
   local->private      = priv;
   local->type_name    = "Elographics TouchScreen";
   local->history_size = 0;
-  
-  return local;
-}
-
-#ifndef XFREE86_V4
-/*
- ***************************************************************************
- *
- * Elographics device association --
- *
- ***************************************************************************
- */
-DeviceAssocRec elographics_assoc =
-{
-  "elographics",                /* config_section_name */
-  xf86EloAllocate               /* device_allocate */
-};
 
-#ifdef DYNAMIC_MODULE
-/*
- ***************************************************************************
- *
- * entry point of dynamic loading
- *
- ***************************************************************************
- */
-int
-#ifndef DLSYM_BUG
-init_module(unsigned long	server_version)
-#else
-init_xf86Elo(unsigned long      server_version)
-#endif
-{
-    xf86AddDeviceAssoc(&elographics_assoc);
-
-    if (server_version != XF86_VERSION_CURRENT) {
-      ErrorF("Warning: Elographics module compiled for version%s\n", XF86_VERSION);
-      return 0;
-    }
-    else {
-      return 1;
-    }
+  return local;
 }
-#endif
 
-#else /* XFREE86_V4 */
 
 static void
 xf86EloUninit(InputDriverPtr	drv,
@@ -1662,7 +1007,7 @@ xf86EloUninit(InputDriverPtr	drv,
 	      int flags)
 {
   EloPrivatePtr		priv = (EloPrivatePtr) local->private;
-  
+
   xf86EloControl(local->dev, DEVICE_OFF);
 
   xfree(priv->input_dev);
@@ -1694,14 +1039,14 @@ xf86EloInit(InputDriverPtr	drv,
   char			*str;
   int			portrait = 0;
   int			height, width;
-  
+
   local = xf86EloAllocate(drv);
   if (!local) {
     return NULL;
   }
   priv = local->private;
   local->conf_idev = dev;
-  
+
   xf86CollectInputOptions(local, default_options, NULL);
   /* Process the common options. */
   xf86ProcessCommonOptions(local, local->options);
@@ -1721,9 +1066,9 @@ xf86EloInit(InputDriverPtr	drv,
   priv->input_dev = strdup(str);
 
   local->name = xf86SetStrOption(local->options, "DeviceName", XI_TOUCHSCREEN);
-  xf86Msg(X_CONFIG, "Elographics X device name: %s\n", local->name);  
+  xf86Msg(X_CONFIG, "Elographics X device name: %s\n", local->name);
   priv->screen_no = xf86SetIntOption(local->options, "ScreenNo", 0);
-  xf86Msg(X_CONFIG, "Elographics associated screen: %d\n", priv->screen_no);  
+  xf86Msg(X_CONFIG, "Elographics associated screen: %d\n", priv->screen_no);
   priv->untouch_delay = xf86SetIntOption(local->options, "UntouchDelay", ELO_UNTOUCH_DELAY);
   xf86Msg(X_CONFIG, "Elographics untouch delay: %d ms\n", priv->untouch_delay*10);
   priv->report_delay = xf86SetIntOption(local->options, "ReportDelay", ELO_REPORT_DELAY);
@@ -1743,9 +1088,9 @@ xf86EloInit(InputDriverPtr	drv,
   debug_level = xf86SetIntOption(local->options, "DebugLevel", 0);
   if (debug_level) {
 #if DEBUG
-    xf86Msg(X_CONFIG, "Elographics debug level sets to %d\n", debug_level);      
+    xf86Msg(X_CONFIG, "Elographics debug level sets to %d\n", debug_level);
 #else
-    xf86Msg(X_INFO, "Elographics debug not available\n");      
+    xf86Msg(X_INFO, "Elographics debug not available\n");
 #endif
   }
   str = xf86SetStrOption(local->options, "PortraitMode", "Landscape");
@@ -1759,7 +1104,7 @@ xf86EloInit(InputDriverPtr	drv,
     xf86Msg(X_ERROR, "Elographics portrait mode should be: Portrait, Landscape or PortraitCCW");
     str = "Landscape";
   }
-  xf86Msg(X_CONFIG, "Elographics device will work in %s mode\n", str);      
+  xf86Msg(X_CONFIG, "Elographics device will work in %s mode\n", str);
 
   width = priv->max_x - priv->min_x;
   height = priv->max_y - priv->min_y;
@@ -1853,4 +1198,3 @@ static XF86ModuleVersionInfo version_rec = {
 _X_EXPORT XF86ModuleData elographicsModuleData = { &version_rec, Plug, Unplug };
 
 #endif
-#endif /* XFREE86_V4 */
openSUSE Build Service is sponsored by