Skip to content

Commit 5600797

Browse files
AKoskovichPaolo Abeni
authored andcommitted
net: ipa: fix event ring index not programmed for IPA v5.0+
For IPA v5.0+, the event ring index field moved from CH_C_CNTXT_0 to CH_C_CNTXT_1. The v5.0 register definition intended to define this field in the CH_C_CNTXT_1 fmask array but used the old identifier of ERINDEX instead of CH_ERINDEX. Without a valid event ring, GSI channels could never signal transfer completions. This caused gsi_channel_trans_quiesce() to block forever in wait_for_completion(). At least for IPA v5.2 this resolves an issue seen where runtime suspend, system suspend, and remoteproc stop all hanged forever. It also meant the IPA data path was completely non functional. Fixes: faf0678 ("net: ipa: add IPA v5.0 GSI register definitions") Signed-off-by: Alexander Koskovich <akoskovich@pm.me> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20260403-milos-ipa-v1-2-01e9e4e03d3e@fairphone.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
1 parent 9709b56 commit 5600797

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

drivers/net/ipa/reg/gsi_reg-v5.0.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ REG_STRIDE_FIELDS(CH_C_CNTXT_0, ch_c_cntxt_0,
3030

3131
static const u32 reg_ch_c_cntxt_1_fmask[] = {
3232
[CH_R_LENGTH] = GENMASK(23, 0),
33-
[ERINDEX] = GENMASK(31, 24),
33+
[CH_ERINDEX] = GENMASK(31, 24),
3434
};
3535

3636
REG_STRIDE_FIELDS(CH_C_CNTXT_1, ch_c_cntxt_1,

0 commit comments

Comments
 (0)