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
