The comments inline (for both patches) are trivial and pretty much
unnecessary (in my standard :). But the testing result is
un-neglectable:

The ISDV4 serial 1FGT device support is still broken. It failed at
accessing the device stage.

The ISDV4 serial 2FGT device support is not 100% correct at least for
touch.  When I use my 2 fingers, I don't get the gestures that I used
with 0.10.7. Both single finger and pen can move the cursor though.

Ping

On Sun, Jul 4, 2010 at 8:59 PM, Peter Hutterer <[email protected]> wrote:
> Only send one SAMPLING command to the tablet for the last device. If
> sampling is started before the last device was enabled, that device may not
> work.
>
> This is a quickfix, there is bound to be a better way to solve this but
> meanwhile we might as well try to make the tablet work again.
>
> Signed-off-by: Peter Hutterer <[email protected]>
> ---
> With this and the calloc patch, my serial device works like a charm again.
>
>  src/wcmISDV4.c |   19 +++++++++++++++----
>  1 files changed, 15 insertions(+), 4 deletions(-)
>
> diff --git a/src/wcmISDV4.c b/src/wcmISDV4.c
> index be10dff..44ab69c 100644
> --- a/src/wcmISDV4.c
> +++ b/src/wcmISDV4.c
> @@ -35,7 +35,10 @@
>  #define RESET_RELATIVE(ds) do { (ds).relwheel = 0; } while (0)
>
>  typedef struct {
> -       int initialized; /* QUERY can only be run once */
> +       /* Counter for dependent devices. We can only send one QUERY command 
> to
> +          the tablet and we must not send the SAMPLING command until the last
> +          device is enabled.  */
> +       int initialized;
>        int baudrate;
>  } wcmISDV4Data;
>
> @@ -326,7 +329,7 @@ static int isdv4GetRanges(LocalDevicePtr local)
>
>        DBG(2, priv, "getting ISDV4 Ranges\n");
>
> -       if (isdv4data->initialized)
> +       if (isdv4data->initialized++)
>                return ret;
>
>        /* Send query command to the tablet */
> @@ -465,13 +468,19 @@ static int isdv4GetRanges(LocalDevicePtr local)
>
>        xf86Msg(X_INFO, "%s: serial tablet id 0x%X.\n", local->name, 
> common->tablet_id);
>
> -       isdv4data->initialized = 1;
> -
>        return ret;
>  }
>
>  static int isdv4StartTablet(LocalDevicePtr local)
>  {
> +       WacomDevicePtr priv = (WacomDevicePtr)local->private;
> +       WacomCommonPtr common = priv->common;
> +       wcmISDV4Data *isdv4data = common->private;
> +
> +

We don't need two blank lines here.

> +       if (--isdv4data->initialized)
> +               return Success;
> +
>        /* Tell the tablet to start sending coordinates */
>        if (!wcmWriteWait(local, ISDV4_SAMPLING))
>                return !Success;
> @@ -481,6 +490,8 @@ static int isdv4StartTablet(LocalDevicePtr local)
>
>  static int isdv4StopTablet(LocalDevicePtr local)
>  {
> +       WacomDevicePtr priv = (WacomDevicePtr)local->private;
> +

priv is not used.

>        /* Send stop command to the tablet */
>        if (!wcmWriteWait(local, ISDV4_STOP))
>                return !Success;
> --
> 1.7.1
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by Sprint
> What will you do first with EVO, the first 4G phone?
> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
> _______________________________________________
> Linuxwacom-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
>

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Linuxwacom-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to