Message ID | 20200916092125.30898-1-srinivas.kandagatla@linaro.org |
---|---|
Headers | show |
Series | soundwire: qcom: fix IP version v1.5.1 support | expand |
>> 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.
On 9/16/20 9:29 AM, Vinod Koul wrote: > On 16-09-20, 08:18, Pierre-Louis Bossart wrote: >> >>>> 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); > > This should be replaced with u32_replace_bits(), i am sending the fix wondering if we should replace all uses of FIELD_PREP with either u32_insert_bits() or u32_encode_bits() then?