On Wed Sep 25, 2024 at 9:53 AM BST, Mark Brown wrote: > On Wed, Sep 25, 2024 at 11:27:54AM +0300, Dmitry Baryshkov wrote: > > On Wed, Sep 25, 2024 at 05:38:22AM GMT, Alexey Klimov wrote: > > > > +#define CDC_RX_RXn_RX_PATH_SEC7(rx, n) \ > > > + (0x0434 + rx->rxn_reg_stride * n + n * (n - 1) * rx->rxn_reg_stride2) > > > This is a nice hack to rule out n=0 and n=1, but maybe we can be more > > obvious here: > > > (0x0434 + stride * n + (n > 2) ? stride2 : 0) > > Yes. We could also use some brackets to make the + and * precedence > obvious. Yeah, sure. If this approach with stride2 works then I can update to: (0x0434 + (rx->rxn_reg_stride * n) + ((n > 1) ? rx->rxn_reg_stride2 : 0)) and update stride2 to 0xc. Looks like I can also remove: if (j == INTERP_AUX) dsm_reg = CDC_RX_RXn_RX_PATH_DSM_CTL(rx, 2); from rx_macro_digital_mute() since INTERP_AUX = 2 and this if-check was there to handle special offset of DSM_CTL for RX2. If RXn() will generate correct addresses then this no longer needed. Or such kind of clean-up should go into separate patch. BR, Alexey