Re: [PATCH 2/2] Input: Allow devices to state that they aren't joysticks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ping?

/Thomas


On 04/25/2015 05:05 PM, Thomas Hellstrom wrote:
> Hi, Dmitry & input list.
>
> I noticed that patch 1 in this series (VMMouse support) has made it to
> Linus' tree. However, this patch seems to be missing. It's crucial for
> VMMouse since without it, a number of games will recognize the vmmouse
> as a joystick and
> leave the cursor stuck in the upper left corner.
> (The VMware USB absolute mouse has been disabled for Linux guests
> because of this).
>
> Is there a chance we can have this patch in as well. An alternative that
> I've tested briefly is to add a fake
> BTN_DIGI to the absolute device to trick joydev, but that's rather
> hackish and will probably cause future confusion.
>
> Any feedback appreciated.
>
> Thanks,
> Thomas Hellström
>
>
> On 04/13/2015 08:07 AM, Thomas Hellstrom wrote:
>> Sometimes the device driver knows that a device isn't a joystick.
>> In those cases, allow the driver to ovveride joydev's guess.
>>
>> Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
>> ---
>>  drivers/input/joydev.c        | 4 ++++
>>  drivers/input/mouse/vmmouse.c | 1 +
>>  include/linux/input.h         | 5 +++++
>>  3 files changed, 10 insertions(+)
>>
>> diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c
>> index f362883..6add101 100644
>> --- a/drivers/input/joydev.c
>> +++ b/drivers/input/joydev.c
>> @@ -750,6 +750,10 @@ static void joydev_cleanup(struct joydev *joydev)
>>  
>>  static bool joydev_match(struct input_handler *handler, struct input_dev *dev)
>>  {
>> +	/* Avoid devices that explicitly don't want to be joysticks */
>> +	if (dev->flags & INPUT_FLAG_NO_JOYSTICK)
>> +		return false;
>> +
>>  	/* Avoid touchpads and touchscreens */
>>  	if (test_bit(EV_KEY, dev->evbit) && test_bit(BTN_TOUCH, dev->keybit))
>>  		return false;
>> diff --git a/drivers/input/mouse/vmmouse.c b/drivers/input/mouse/vmmouse.c
>> index b3a6170..0fabe3d 100644
>> --- a/drivers/input/mouse/vmmouse.c
>> +++ b/drivers/input/mouse/vmmouse.c
>> @@ -468,6 +468,7 @@ int vmmouse_init(struct psmouse *psmouse)
>>  	abs_dev->id.product = PSMOUSE_VMMOUSE;
>>  	abs_dev->id.version = psmouse->model;
>>  	abs_dev->dev.parent = &psmouse->ps2dev.serio->dev;
>> +	abs_dev->flags |= INPUT_FLAG_NO_JOYSTICK;
>>  
>>  	if (input_register_device(priv->abs_dev))
>>  		goto init_fail;
>> diff --git a/include/linux/input.h b/include/linux/input.h
>> index 82ce323..516387e 100644
>> --- a/include/linux/input.h
>> +++ b/include/linux/input.h
>> @@ -117,6 +117,7 @@ struct input_value {
>>   * @vals: array of values queued in the current frame
>>   * @devres_managed: indicates that devices is managed with devres framework
>>   *	and needs not be explicitly unregistered or freed.
>> + * @flags: Device flags.
>>   */
>>  struct input_dev {
>>  	const char *name;
>> @@ -187,9 +188,13 @@ struct input_dev {
>>  	struct input_value *vals;
>>  
>>  	bool devres_managed;
>> +
>> +	u32 flags;
>>  };
>>  #define to_input_dev(d) container_of(d, struct input_dev, dev)
>>  
>> +#define INPUT_FLAG_NO_JOYSTICK      (1 << 0)
>> +
>>  /*
>>   * Verify that we are in sync with input_device_id mod_devicetable.h #defines
>>   */

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux