Re: [PATCH v2 1/3] soundwire: qcom: clear BIT FIELDs before value set.

From: Pierre-Louis Bossart
Date: Wed Sep 16 2020 - 17:09:41 EST



According to usage (bitfields.h) of REG_FIELDS,
Modify is:
reg &= ~REG_FIELD_C;
reg |= FIELD_PREP(REG_FIELD_C, c);


if this is indeed the case, all the code in cadence_master.c is also broken, e.g:

dpn_config = cdns_readl(cdns, dpn_config_off);

dpn_config |= FIELD_PREP(CDNS_DPN_CONFIG_WL, (p_params->bps - 1));
dpn_config |= FIELD_PREP(CDNS_DPN_CONFIG_PORT_FLOW, p_params->flow_mode);
dpn_config |= FIELD_PREP(CDNS_DPN_CONFIG_PORT_DAT, p_params->data_mode);


Gah.