[Bug 196678] x11-servers/xorg-server: make config/devd recognize /dev/input/eventX from multimedia/webcamd

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sat Mar 11 11:57:45 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=196678

--- Comment #69 from Matthew Rezny <rezny at freebsd.org> ---
(In reply to Vladimir Kondratyev from comment #66)

Your reply confirms the problem is as I suspected. Thank you for pointing out
those patches to evdev and wacom. I had a look at the webcam and wacom code and
determined the problem is in the the patch in xf86-input-wacom.

if (priv->isParent && errno == EINVAL) {
    WacomDevicePtr other;
    for (other = common->wcmDevices; other; other = other->next) {
        xf86Msg(X_INFO, "%s: removing automatically added device.\n",
other->pInfo->name);
        DeleteInputDeviceRequest(other->pInfo->dev);
    }
} else
/* for all other errors, hope that the hotplugging code will
* remove the device */
    if (errno != EAGAIN && errno != EINTR)
    LogMessageVerbSigSafe(X_ERROR, 0, "%s: Error reading wacom device : %s\n",
pInfo->name, strerror(errno));

I should have pasted the exact error message before as it makes it clear
webcamd is not the culprit. Since the log message was "Error reading wacom
device: Invalid argument", the value of errno must already be EINVAL (it is
translated correctly by webcamd), so to be getting the log spam the problem
must be that priv->isParent is false. I removed that so it's just "if (errno ==
EINVAL)" and now the hot plugging works correctly.

[497841.487] (II) Wacom Graphire3 6x8 Pen cursor: removing automatically added
device.
[497841.487] (II) UnloadModule: "wacom"
[497841.487] (II) Wacom Graphire3 6x8 Pen eraser: removing automatically added
device.
[497841.488] (II) UnloadModule: "wacom"
[497841.488] (II) Wacom Graphire3 6x8 Pen stylus: removing automatically added
device.
[497841.489] (II) config/devd: removing input device /dev/input/event0
[497841.489] (II) UnloadModule: "wacom"

Those log messages suggest that is the child devices (stylus, eraser, and
cursor) which get culled by this condition, then devd send a removal notice for
/dev/input/event0 and the config code commands the device removal. Maybe that
was supposed to have been "if (!priv->isParent && errno == EINVAL)".

Jan: As you are the maintainer of the wacom DDX, do you have any input on the
wacom situation? What is the correct condition to call
DeleteInputDeviceRequest?

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-x11 mailing list