On 28-08-20, 13:13, Pierre-Louis Bossart wrote: > > > - val = (r << CDNS_MCP_FRAME_SHAPE_ROW_OFFSET) | c; > > + val = FIELD_PREP(CDNS_MCP_FRAME_SHAPE_ROW_OFFSET, r) | c; > > Confusion between shift and mask here. thanks, yes I had doubts on this, folder the fix > > Testing a fix now (attached), but may I suggest you use the SOF > GitHub/Travis CI directly for any updates? You'll get an answer in 30mn for > the CML RVP w/ SoundWire. > >From 5d0ca63bee2c6e2456195499908ecdc8a7709238 Mon Sep 17 00:00:00 2001 > From: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx> > Date: Fri, 28 Aug 2020 13:04:01 -0500 > Subject: [PATCH] fixup! soundwire: cadence: use FIELD_{GET|PREP} > > Fix confusion between shift and mask. > > Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx> > --- > drivers/soundwire/cadence_master.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence_master.c > index b6796aa19aa8..5dd06483c835 100644 > --- a/drivers/soundwire/cadence_master.c > +++ b/drivers/soundwire/cadence_master.c > @@ -58,7 +58,7 @@ MODULE_PARM_DESC(cdns_mcp_int_mask, "Cadence MCP IntMask"); > #define CDNS_MCP_FRAME_SHAPE 0x10 > #define CDNS_MCP_FRAME_SHAPE_INIT 0x14 > #define CDNS_MCP_FRAME_SHAPE_COL_MASK GENMASK(2, 0) > -#define CDNS_MCP_FRAME_SHAPE_ROW_OFFSET 3 > +#define CDNS_MCP_FRAME_SHAPE_ROW_MASK GENMASK(7, 3) > > #define CDNS_MCP_CONFIG_UPDATE 0x18 > #define CDNS_MCP_CONFIG_UPDATE_BIT BIT(0) > @@ -1165,9 +1165,10 @@ static u32 cdns_set_initial_frame_shape(int n_rows, int n_cols) > int r; > > r = sdw_find_row_index(n_rows); > - c = sdw_find_col_index(n_cols) & CDNS_MCP_FRAME_SHAPE_COL_MASK; > + c = sdw_find_col_index(n_cols); > > - val = FIELD_PREP(CDNS_MCP_FRAME_SHAPE_ROW_OFFSET, r) | c; > + val = FIELD_PREP(CDNS_MCP_FRAME_SHAPE_ROW_MASK, r) | > + FIELD_PREP(CDNS_MCP_FRAME_SHAPE_COL_MASK, c); > > return val; > } > -- > 2.25.1 > -- ~Vinod