This is an issue I have for the second time now: basically, an USB based device reports some wrong numbers for "HID_MAX_USAGES", resulting in the kernel giving an error message and the device not working. I had this issue with an Sharkoon Drakonia mouse a couple of years ago, and while the mouse is supported by the linux kernel by now, the detachable keyboard of my new Medion P2213T is not. But there are all kinds of devices out there with this issue, have a look at this bug report for more details.
From what I have read by now, there are different ways to work around this issue: The one most people seem to use is to rebuild the kernel, after changing "HID_MAX_USAGES" in "include/linux/hid.h" to a higher value (mostly around 64k). While this works quite well, the asigned developer in the bug report I linked above pointed out it will increase memory usage, and this will lead to bad perfomance especially on a low end tablet device. Also, you will have to rebuild the kernel every time you want a security update and you can not use your distros automatic kernel update system (this is really the worst part)...
The second approach would be thinking about fixing the USB HID Report Descriptor, as usually these high values are not justified anyways. I think there are two ways for this again, fixing it on the device firmware itself, or adding it to some kind of whitelist in the kernel source code to overwrite the value. But it is hard to find more info on both ways.
So it boils down to these questions:
Where would I ask for adding the detachable keyboard to this "whitelist"? What data should I attach? I know it should be possible, because my Sharkoon mouse is supported by up-to-date kernels by now.
Are there other ways making the kernel support my device, without disabling automatic kernel updates?