Improve error handling for qnap-mcu transfers
From: Heiko Stuebner <heiko@...> Date: Thu, 13 Nov 2025 17:49:30 +0100
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
Patches in this set
- [0001] mfd: qnap-mcu: Calculate the checksum on the actual (raw)
- [0002] mfd: qnap-mcu: Use EPROTO in stead of EIO on checksum (raw)
- [0003] mfd: qnap-mcu: Move checksum verification to its own (raw)
- [0004] mfd: qnap-mcu: Add proper error handling for command (raw)
Statistics
- 4 individual patches
- 76 lines added
- 7 lines removed