[PATCH 11/18] Check multi_touch module parameter and enable forcibly

Peter Hutterer peter.hutterer at who-t.net
Tue Oct 12 20:53:10 PDT 2010


explanation please. what does this do, why do we want to enable it forcibly,
etc?

Cheers,
  Peter

On Fri, Oct 08, 2010 at 07:22:35PM +0200, Takashi Iwai wrote:
> Signed-off-by: Takashi Iwai <tiwai at suse.de>
> ---
>  src/eventcomm.c |   22 ++++++++++++++++++++++
>  1 files changed, 22 insertions(+), 0 deletions(-)
> 
> diff --git a/src/eventcomm.c b/src/eventcomm.c
> index 5969448..2223bac 100644
> --- a/src/eventcomm.c
> +++ b/src/eventcomm.c
> @@ -179,6 +179,27 @@ event_query_info(InputInfoPtr pInfo)
>      }
>  }
>  
> +/* enable multi-touch feature via module parameter */
> +#define MULTI_TOUCH_SYSFS_PARM	"/sys/module/psmouse/parameters/multi_touch"
> +static void enable_multi_touch(void)
> +{
> +    int fd;
> +    char val = '0';
> +    fd = open(MULTI_TOUCH_SYSFS_PARM, O_RDONLY);
> +    if (fd < 0)
> +	return;
> +    read(fd, &val, 1);
> +    close(fd);
> +    if (val == '1' || val == '2')
> +	return;
> +    fd = open(MULTI_TOUCH_SYSFS_PARM, O_WRONLY);
> +    if (fd < 0)
> +	return;
> +    val = '1';
> +    write(fd, &val, 1);
> +    close(fd);
> +}
> +
>  static void event_query_multi_touch(LocalDevicePtr local)
>  {
>      SynapticsPrivate *priv = (SynapticsPrivate *)local->private;
> @@ -535,6 +556,7 @@ EventReadDevDimensions(InputInfoPtr pInfo)
>      SynapticsPrivate *priv = (SynapticsPrivate *)pInfo->private;
>      BOOL *need_grab = (BOOL*)priv->proto_data;
>  
> +    enable_multi_touch();
>      if (event_query_is_touchpad(pInfo->fd, (need_grab) ? *need_grab : TRUE))
>  	event_query_axis_ranges(pInfo);
>      event_query_info(pInfo);
> -- 
> 1.7.3.1
> 


More information about the xorg-devel mailing list