| From e43b8c6bf63f04bdf46d63e4c514e925d4ce6f75 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 4 Jul 2025 22:44:32 +0200 |
| Subject: i3c: don't fail if GETHDRCAP is unsupported |
| |
| From: Wolfram Sang <wsa+renesas@sang-engineering.com> |
| |
| [ Upstream commit 447270cdb41b1c8c3621bb14b93a6749f942556e ] |
| |
| 'I3C_BCR_HDR_CAP' is still spec v1.0 and has been renamed to 'advanced |
| capabilities' in v1.1 onwards. The ST pressure sensor LPS22DF does not |
| have HDR, but has the 'advanced cap' bit set. The core still wants to |
| get additional information using the CCC 'GETHDRCAP' (or GETCAPS in v1.1 |
| onwards). Not all controllers support this CCC and will notify the upper |
| layers about it. For instantiating the device, we can ignore this |
| unsupported CCC as standard communication will work. Without this patch, |
| the device will not be instantiated at all. |
| |
| Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> |
| Reviewed-by: Frank Li <Frank.Li@nxp.com> |
| Link: https://lore.kernel.org/r/20250704204524.6124-1-wsa+renesas@sang-engineering.com |
| Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/i3c/master.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c |
| index 33254bc338b9..7e526da11524 100644 |
| --- a/drivers/i3c/master.c |
| +++ b/drivers/i3c/master.c |
| @@ -1398,7 +1398,7 @@ static int i3c_master_retrieve_dev_info(struct i3c_dev_desc *dev) |
| |
| if (dev->info.bcr & I3C_BCR_HDR_CAP) { |
| ret = i3c_master_gethdrcap_locked(master, &dev->info); |
| - if (ret) |
| + if (ret && ret != -ENOTSUPP) |
| return ret; |
| } |
| |
| -- |
| 2.39.5 |
| |