[PATCH 1/2] kdrive: add protocol mouse option

Olivier Blin blino at mandriva.com
Wed May 27 10:04:16 PDT 2009


Peter Hutterer <peter.hutterer at who-t.net> writes:

> On Tue, May 26, 2009 at 03:30:08PM +0200, Olivier Blin wrote:
>> kdrive probes a lot of PS/2 protocols for the mouse device, which
>> makes the mouse unusable for some seconds after X startup.
>> This new "protocol" option allows forcing the mouse protocol.
>> It can be used this way:
>> Xfbdev -mouse mouse,,protocol=ps/2 -keybd keyboard
>> 
>> Signed-off-by: Olivier Blin <blino at mandriva.com>
>> ---
>>  hw/kdrive/linux/mouse.c |    4 +++-
>>  hw/kdrive/src/kdrive.h  |    1 +
>>  hw/kdrive/src/kinput.c  |    3 +++
>>  3 files changed, 7 insertions(+), 1 deletions(-)
>> 
>> diff --git a/hw/kdrive/linux/mouse.c b/hw/kdrive/linux/mouse.c
>> index 02214b3..253da26 100644
>> --- a/hw/kdrive/linux/mouse.c
>> +++ b/hw/kdrive/linux/mouse.c
>> @@ -961,7 +961,9 @@ MouseInit (KdPointerInfo *pi)
>>      km = (Kmouse *) xalloc (sizeof (Kmouse));
>>      if (km) {
>>          km->iob.avail = km->iob.used = 0;
>> -        MouseFirstProtocol(km, "exps/2");
>> +        MouseFirstProtocol(km, pi->force_protocol ? pi->force_protocol : "exps/2");
>> +        if (pi->force_protocol) 
>> +                km->state = MouseWorking;
>>          km->i_prot = 0;
>>          km->tty = isatty (fd);
>>          km->iob.fd = -1;
>> diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h
>> index c60559a..c025144 100644
>> --- a/hw/kdrive/src/kdrive.h
>> +++ b/hw/kdrive/src/kdrive.h
>> @@ -220,6 +220,7 @@ struct _KdPointerInfo {
>>      DeviceIntPtr          dixdev;
>>      char                  *name;
>>      char                  *path;
>> +    char                  *force_protocol;
>>      InputOption           *options;
>>      int                   inputClass;
>>  
>> diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
>> index 0d216a9..5f82ba4 100644
>> --- a/hw/kdrive/src/kinput.c
>> +++ b/hw/kdrive/src/kinput.c
>> @@ -1166,6 +1166,8 @@ KdParsePointerOptions (KdPointerInfo *pi)
>>              pi->transformCoordinates = FALSE;
>>          else if (!strcasecmp (option->key, "device"))
>>              pi->path = strdup(option->value);
>> +        else if (!strcasecmp (option->key, "protocol"))
>> +            pi->force_protocol = strdup(option->value);
>>          else
>>              ErrorF("Pointer option key (%s) of value (%s) not assigned!\n", 
>>                      option->key, option->value);
>> @@ -1186,6 +1188,7 @@ KdParsePointer (char *arg)
>>          return NULL;
>>      pi->emulateMiddleButton = kdEmulateMiddleButton;
>>      pi->transformCoordinates = !kdRawPointerCoordinates;
>> +    pi->force_protocol = NULL;
>>      pi->nButtons = 5; /* XXX should not be hardcoded */
>>      pi->inputClass = KD_MOUSE;
>>  
>> -- 
>> 1.6.2.4
>
> wouldn't it be better to name the option "protocol" instead of
> "force_protocol" to reflect the cmdline option?

I used the "force_" prefix mainly to indicate it is optional, but it's
ok to just name it protocol (note that "device" option and pi->path have
the same issue, if we want to be picky).
Do you want me to resend the patch using "protocol" as field name?

Thanks for your input

-- 
Olivier Blin (blino) - Mandriva



More information about the xorg mailing list