On Fri, Dec 15, 2017 at 11:48:51AM -0800, Jason Gerecke wrote:
> The HAL daemon used by RHEL6/CentOS6 does not play nicely with input
> devices that advertise unsupported EV_SW events. Devices with such
> an event will fail in the middle of the probe process, preventing
> the X server from being able to hotplug the device. The SW_MUTE_DEVICE
> event used by the Cintiq Pro touchscreen is such an event.
> 
> To work around this limitation, we can define an fdi configuration file
> which resets the "button.has_state" property prior to probe. Because
> HAL only runs the failing code when this property is true, the device
> is able to finish the probe process just as though it never had the
> unsupported switch in the first place. Resetting this property does
> prevent HAL from being able to monitor the switch state, but that is
> not considered a problem.
> 
> Signed-off-by: Jason Gerecke <jason.gere...@wacom.com>

This makes me incredibly sad but given that hal is dead there isn't really
another option. I do recommend that distros that ship HAL patch the hal
package instead of applying this patch though.

Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net>

Cheers,
   Peter

> ---
>  conf/Makefile.am        |  2 ++
>  conf/wacom-preprobe.fdi | 17 +++++++++++++++++
>  2 files changed, 19 insertions(+)
>  create mode 100644 conf/wacom-preprobe.fdi
> 
> diff --git a/conf/Makefile.am b/conf/Makefile.am
> index 5db206e..1fd7988 100644
> --- a/conf/Makefile.am
> +++ b/conf/Makefile.am
> @@ -6,7 +6,9 @@ endif
>  
>  if USE_HAL_FDI
>  fdipolicydir = $(datadir)/hal/fdi/policy/20thirdparty
> +fdipreprobedir = $(datadir)/hal/fdi/preprobe/20thirdparty
>  dist_fdipolicy_DATA = wacom.fdi
> +dist_fdipreprobe_DATA = wacom-preprobe.fdi
>  endif
>  
>  if HAVE_SYSTEMD_UNIT_DIR
> diff --git a/conf/wacom-preprobe.fdi b/conf/wacom-preprobe.fdi
> new file mode 100644
> index 0000000..b23f452
> --- /dev/null
> +++ b/conf/wacom-preprobe.fdi
> @@ -0,0 +1,17 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +
> +<deviceinfo version="0.2">
> +  <device>
> +
> +    <!-- Some Wacom devicees (e.g. Cintiq Pro) have an EV_SW event which is
> +         unsupported by HAL. To prevent the input prober from failing
> +         on this event (hal/hald/linux/probing/probe-input.c:79) we
> +         should pretend that it doesn't exist. -->
> +    <match key="info.capabilities" contains="button">
> +      <match key="info.product" contains_outof="Wacom;WACOM">
> +        <merge key="button.has_state" type="bool">false</merge>
> +      </match>
> +    </match>
> +
> +  </device>
> +</deviceinfo>
> -- 
> 2.15.1
> 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to