driver: i2c: mv64xxx: cn9130 bus lockup issue - #615
Conversation
hishahbhavsar
commented
Aug 25, 2026
- This patch disable offload module, and disable the "i2c debug slave"
|
|
|
/azp run |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
1c4d389 to
c09c2ed
Compare
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
Refreshed patch 0023 against Linux v6.12.41 + patches through 0022. The original patch applied with fuzz, causing the CI patch application failure; the refreshed patch now applies cleanly. Could you please review the updated patch and approve PR #615 if everything looks good? Thank you. |
paulmenzel
left a comment
There was a problem hiding this comment.
Did you report this upstream? What do they say?
| Date: Thu, 27 Aug 2026 13:49:20 -0700 | ||
| Subject: [PATCH] driver: i2c: mv64xxx: cn9130 bus lockup issue | ||
|
|
||
| This patch disable offload module, and disable the "i2c debug slave" |
There was a problem hiding this comment.
Please split into two patches, and add a problem description, and why your patch is the solution.
There was a problem hiding this comment.
Added full problem description and justification. Regarding splitting — these two changes are interdependent. Disabling either one alone does not resolve the lockup. Splitting would result in a broken intermediate state, so keeping them as a single patch is the correct approach."
There was a problem hiding this comment.
Disabling either one alone might not resolve the lockup, but there are two separate changes, with two separate effects being made here. That warrants having two separate patches.
| + /* Disable I2C slave */ | ||
| + data = readl(drv_data->reg_base + drv_data->reg_offsets.config_debug); | ||
| + data &= ~BIT(18); | ||
| + writel(data, drv_data->reg_base + drv_data->reg_offsets.config_debug); |
There was a problem hiding this comment.
regmap_clear_bits(drv_data->map, drv_data->reg_offsets.config_debug, BIT(18));
|
@vmytnyk-plv, thank you for looking at this, but what did you review exactly? |
- This patch disable offload module, and disable the "i2c debug slave" Signed-off-by: Narendra Hadke <nhadke@marvell.com>
c09c2ed to
813e01a
Compare
|
Has this been reported upstream? |
This fix has not been submitted to upstream kernel.org. The patch addresses a Marvell-specific hardware issue involving an internal "debug I2C slave" register (config_debug at offset 0x8C) that is proprietary to the Marvell CN9130/mv78230 SoC and not part of the standard driver interface. The fix has been validated and is shipping in Marvell's SDK11, SDK12, and SDK13 (linux-6.6.y) kernels internally. We are aware that upstreaming is the preferred long-term path. However, since the fix accesses a Marvell-proprietary internal register and the issue behavior differs on newer kernels (not reproducible in linux-6.12), we have not yet submitted it to the upstream mailing list. We will look into submitting it upstream and will update this PR accordingly. |