Re: [PATCH v2] hwmon: Add driver for MSI Mystic Light controller voltage sensors

From: Tomasz Bojanowski

Date: Sat Nov 07 2026 - 13:15:38 EST


Hi Guenter,

On 11/7/26 10:02, Guenter Roeck wrote:
> What am I missing ?

Sorry, my earlier description was not clear about how the request is
sent. From the vendor software, it looks like this:

- The request goes out as an output report with report ID 0xfa, not
as a feature report. If I read usbhid_set_raw_report() correctly,
it puts reportnum into buf[0], so with MSI_ML_SENSOR_REPORT_ID the
controller would have received a feature report 0xf0 instead.
- The reply seems to come back as an input report on the interrupt
endpoint, not through GET_REPORT. As long as the driver calls
hid_hw_open(), it should show up in .raw_event().

Roughly like this (untested, I have none of these boards):

buf[0] = 0xfa;
buf[1] = 0xa0;
buf[9] = 0x01;
buf[10] = 0xfc;
reinit_completion(&priv->done);
ret = hid_hw_output_report(hdev, buf, 64);
if (ret == -ENOSYS)
ret = hid_hw_raw_request(hdev, 0xfa, buf, 64,
HID_OUTPUT_REPORT,
HID_REQ_SET_REPORT);
...
wait_for_completion_timeout(&priv->done, msecs_to_jiffies(500));

In .raw_event(), the reply could be accepted when data[0] == 0xfa,
data[2] == 0x01 and size == 64, followed by complete().

The report ID should stay a constant 0xfa: with 0x01, the same buffer
would be the bootloader command.

A quicker check might be to write the 64 bytes to the hidraw node and
read() the input reports.

Thanks,
Tomasz