HID Monitor Driver Advice
greg at kroah.com
Thu Apr 15 11:44:22 EDT 2021
On Thu, Apr 15, 2021 at 04:35:45PM +0100, mark at bolhuis.dev wrote:
> Hi all
> My name is Mark and I'm currently writing a device driver for Eizo EV
> FlexScan monitors, so that I can control them over usb. This driver is built
> by reverse engineering the hid reports sent by the propriety and windows
> only software.
> It can be found here: https://github.com/markbolhuis/openeizo
> I have some questions about this that hopefully somebody can answer.
> 1) What would be the recommended way to interface this with userspace? My
> plan is to expose a device file for each unique setting that the monitor has
> such as brightness control, input selection and so on... However I'm not
> sure this is a suitable way of doing this since the monitors have many
> options that are very similar. For example contiguous numerical values only
> differ by their usage and value min and max, meaning that if I have a file
> per setting there will be a lot of repetition. There are already 40+ unique
> attributes/settings that may need a file.
Why do you need a kernel driver at all? Why not just use the userspace
hid access and control stuff that way from an application?
> 2) To properly initialize the driver I will have to fetch a second report
> descriptor from the monitor. This isn't a standard hid report descriptor. It
> seems that Eizo are simply using the format instead of inventing their own.
> Is there a way for the hid subsystem to parse arbitrary report descriptors
> and expose them as a structure for generic use? I couldn't find much that
> would help with this. hid_parse_report @ inlcude/linux/hid.h:895 seems to be
> the closest to what I need but it's tied to a device.
If you write your own driver, you can do that from within the driver I
think. But again, what's wrong with userspace?
More information about the Kernelnewbies