In 4.19 kernels I have been unable to drive a bluetooth gen-1 magicmouse as anything other than a stock 2-button mouse. Regardless of config or params the driver refuses to send events for middle button or any touch v-scroll and h-scroll actions. I think this patch last year introduced proper middle button and touch scroll support: https://lkml.org/lkml/2017/4/7/109 This patch moves the __set_bit calls for touch and tap events to a higher scope when setting up the device. However sometime since then there has been some sort of regression. There appears to have been some general refactoring around magicmouse_raw_event and magicmouse_setup_input that I suspect has reintroduced the more restrictive scope for those __set_bit calls. I post this in the hope that it might jog the memory of someone familiar with the hid-magicmouse diver, so we can get a proper magicmouse support restored to the kernel.