| From 791a751a3f014213f6e36c0acd7174c60e3f2980 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 20 May 2021 13:35:18 +0200 |
| Subject: firmware: turris-mox-rwtm: report failures better |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Marek Behún <kabel@kernel.org> |
| |
| [ Upstream commit 72f99888944c44de1c899bbe44db1e53bdc9d994 ] |
| |
| Report a notice level message if a command is not supported by the rWTM |
| firmware. |
| |
| This should not be an error, merely a notice, because the firmware can |
| be used on boards that do not have manufacturing information burned. |
| |
| Fixes: 389711b37493 ("firmware: Add Turris Mox rWTM firmware driver") |
| Signed-off-by: Marek Behún <kabel@kernel.org> |
| Reviewed-by: Pali Rohár <pali@kernel.org> |
| Reviewed-by: Andrew Lunn <andrew@lunn.ch> |
| Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/firmware/turris-mox-rwtm.c | 18 ++++++++++++------ |
| 1 file changed, 12 insertions(+), 6 deletions(-) |
| |
| diff --git a/drivers/firmware/turris-mox-rwtm.c b/drivers/firmware/turris-mox-rwtm.c |
| index f85acdb3130c..d7e3489e4bf2 100644 |
| --- a/drivers/firmware/turris-mox-rwtm.c |
| +++ b/drivers/firmware/turris-mox-rwtm.c |
| @@ -204,11 +204,14 @@ static int mox_get_board_info(struct mox_rwtm *rwtm) |
| return ret; |
| |
| ret = mox_get_status(MBOX_CMD_BOARD_INFO, reply->retval); |
| - if (ret < 0 && ret != -ENODATA) { |
| - return ret; |
| - } else if (ret == -ENODATA) { |
| + if (ret == -ENODATA) { |
| dev_warn(rwtm->dev, |
| "Board does not have manufacturing information burned!\n"); |
| + } else if (ret == -ENOSYS) { |
| + dev_notice(rwtm->dev, |
| + "Firmware does not support the BOARD_INFO command\n"); |
| + } else if (ret < 0) { |
| + return ret; |
| } else { |
| rwtm->serial_number = reply->status[1]; |
| rwtm->serial_number <<= 32; |
| @@ -237,10 +240,13 @@ static int mox_get_board_info(struct mox_rwtm *rwtm) |
| return ret; |
| |
| ret = mox_get_status(MBOX_CMD_ECDSA_PUB_KEY, reply->retval); |
| - if (ret < 0 && ret != -ENODATA) { |
| - return ret; |
| - } else if (ret == -ENODATA) { |
| + if (ret == -ENODATA) { |
| dev_warn(rwtm->dev, "Board has no public key burned!\n"); |
| + } else if (ret == -ENOSYS) { |
| + dev_notice(rwtm->dev, |
| + "Firmware does not support the ECDSA_PUB_KEY command\n"); |
| + } else if (ret < 0) { |
| + return ret; |
| } else { |
| u32 *s = reply->status; |
| |
| -- |
| 2.30.2 |
| |