Hi Rene, On Sun, Jan 6, 2019 at 5:10 PM Rene Rebe <rene@xxxxxxxxxxxxx> wrote: > > Hi, > > I am testing a Dell XPS 15 all-in-one and noticed the I2C connected > touchpad had only very basic mouse function. I debugged around a bit > and manually modprobing hid-multitouch appears to bind this to the > hid-multitouch for grearly enhanced functionatliy. Now I could Hmm, if the module is compiled in and you are using udev, there should be no need to manually modprobe the driver. Which distribution are you using? and are you running the stock kernel for that distribution? > probably just add hid-multitouch to some init script, but I wanted to > get it to auto-load liek for my Surface Typecover. I added the ID, > Synaptics, 0x7A13 to the hid-quirks for a test, but this is not yet Is this ID for the Surface TypeCover or the XPS 15? > enough to auto-load. Before I continue adding the ID all over the > place, including the hid-multitouch.c, could someone shortly comment > about the best, intended place for this - there are so many IDs all > over the place and it is not obvious where it is necessary and where > not. Short answer nowhere :) udev should load it for you. At least if udev loads hid-generic, there is no reasons it doesn't load hid-multitouch. > > Thank you! > > René Rebe > > --- drivers/hid/hid-quirks.c.vanilla 2019-01-06 17:35:58.304007689 +0100 > +++ drivers/hid/hid-quirks.c 2019-01-06 17:47:30.776010444 +0100 > @@ -157,6 +157,7 @@ > { HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_LTS2), HID_QUIRK_NO_INIT_REPORTS }, > { HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_QUAD_HD), HID_QUIRK_NO_INIT_REPORTS }, > { HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_TP_V103), HID_QUIRK_NO_INIT_REPORTS }, > + { HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, 0x7A13), HID_QUIRK_MULTI_INPUT }, HID_QUIRK_MULTI_INPUT should not be set for hid-multitouch devices. The driver takes care of settings its own quirks. > { HID_USB_DEVICE(USB_VENDOR_ID_TOPMAX, USB_DEVICE_ID_TOPMAX_COBRAPAD), HID_QUIRK_BADPAD }, > { HID_USB_DEVICE(USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS), HID_QUIRK_MULTI_INPUT }, > { HID_USB_DEVICE(USB_VENDOR_ID_TPV, USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8882), HID_QUIRK_NOGET }, > @@ -507,6 +508,7 @@ > #endif > #if IS_ENABLED(CONFIG_HID_MULTITOUCH) > { HID_USB_DEVICE(USB_VENDOR_ID_LG, USB_DEVICE_ID_LG_MELFAS_MT) }, > + { HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, 0x7A13) }, You are just preventing hid-generic you bind on your device, which might be worse than what you want. If hid-multitouch is not loaded, then you don't even have basic mouse capabilities. So, if for a very unfortunate events udev can't load the device (which I strongly doubt given than modprobing the driver works), the only place that would have an effect is adding the ID in hid-multitouch.c. But again, if udev doesn't bind hid-multitouch without the id, there is a risk it won't bind the device even if you add the ID: there is something wrong at the udev level IMO. Cheers, Benjamin > #endif > #if IS_ENABLED(CONFIG_HID_WIIMOTE) > { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO, USB_DEVICE_ID_NINTENDO_WIIMOTE) }, > > > -- > René Rebe, ExactCODE GmbH, Lietzenburger Str. 42, DE-10789 Berlin > https://exactcode.com | https://t2sde.org | https://rene.rebe.de