[PATCH v3 0/4] Improve error handling for qnap-mcu transfers

From: Heiko Stuebner

Date: Thu Nov 13 2025 - 11:52:25 EST


Digging deeper into how that MCU behaves, I found out it can return
more status codes than the "@0" for "ok".

The additional codes can report a failed checksum verification and
some "general" error for the command execution.

This also explains sporadic command timeout messages, I have seen
over time, when the controller sends an error code while we expect
a longer reply from it.

So while I'm not sure yet why it reports an error, with these changes
we at least handle the error return code in a meaningful way.

changes in v3:
- fix stupid mistake of not running checkpatch after reorganizing
the error handling code and having the function opening { not
on the next line

changes in v2:
- rebase on top of 6.18-rc1
- include improvement suggestions from Lee

Heiko Stuebner (4):
mfd: qnap-mcu: Calculate the checksum on the actual number of bytes
received
mfd: qnap-mcu: Use EPROTO in stead of EIO on checksum errors
mfd: qnap-mcu: Move checksum verification to its own function
mfd: qnap-mcu: Add proper error handling for command errors

drivers/mfd/qnap-mcu.c | 79 +++++++++++++++++++++++++++++++++++++++---
1 file changed, 74 insertions(+), 5 deletions(-)

--
2.47.2