On 3/11/20 6:35 AM, Srinivas Kandagatla wrote:
WSA881x works in PDM mode so the wordlength is fixed, which also makes the only field "WordLength" in DPN_BlockCtrl1 register a read-only. Writing to this register will throw up errors with Qualcomm Controller.
it'd be good to clarify the nature of these errors, i.e.
a) is this the Slave device responding with a NAK? b) is this the Slave device responding with COMMAND_IGNORED, and those responses not handled by the controller? c) something else?
Thanks!
So use ro_blockctrl1_reg flag to mark this field as read-only so that core will not write to this register.
Signed-off-by: Srinivas Kandagatla srinivas.kandagatla@linaro.org
sound/soc/codecs/wsa881x.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/soc/codecs/wsa881x.c b/sound/soc/codecs/wsa881x.c index b59f1d0e7f84..35b44b297f9e 100644 --- a/sound/soc/codecs/wsa881x.c +++ b/sound/soc/codecs/wsa881x.c @@ -394,6 +394,7 @@ static struct sdw_dpn_prop wsa_sink_dpn_prop[WSA881X_MAX_SWR_PORTS] = { .min_ch = 1, .max_ch = 1, .simple_ch_prep_sm = true,
}, { /* COMP */ .num = 2,.read_only_wordlength = true,
@@ -401,6 +402,7 @@ static struct sdw_dpn_prop wsa_sink_dpn_prop[WSA881X_MAX_SWR_PORTS] = { .min_ch = 1, .max_ch = 1, .simple_ch_prep_sm = true,
}, { /* BOOST */ .num = 3,.read_only_wordlength = true,
@@ -408,6 +410,7 @@ static struct sdw_dpn_prop wsa_sink_dpn_prop[WSA881X_MAX_SWR_PORTS] = { .min_ch = 1, .max_ch = 1, .simple_ch_prep_sm = true,
}, { /* VISENSE */ .num = 4,.read_only_wordlength = true,
@@ -415,6 +418,7 @@ static struct sdw_dpn_prop wsa_sink_dpn_prop[WSA881X_MAX_SWR_PORTS] = { .min_ch = 1, .max_ch = 1, .simple_ch_prep_sm = true,
} };.read_only_wordlength = true,