Hi Ajay, On Tue, Feb 05, 2019 at 07:24:49PM +0000, Ajay Gupta wrote: > > +static int ucsi_displayport_configure(struct ucsi_dp *dp) { > > + u32 pins = DP_CONF_GET_PIN_ASSIGN(dp->data.conf); > > + struct ucsi_control ctrl; > > + > > + if (!dp->override) > > + return 0; > > + > > + ctrl.raw_cmd = UCSI_CMD_SET_NEW_CAM(dp->con->num, 1, dp- > > >offset, > > +pins); > If previous CAM is active at this point then we should exit before setting new > CAM. Please add something like : > > + if (!dp->override) > + return 0; > > UCSI_CMD_GET_CURRENT_CAM(ctrl, dp->con->num); > ret = ucsi_send_command(dp->con->ucsi, &ctrl, &cur, sizeof(cur)); > while ((cur != 0xff) && (cur != dp->offset)) { > ctrl.raw_cmd = UCSI_CMD_SET_NEW_CAM(dp->con->num, 0, cur, 0); > ret = ucsi_send_command(dp->con->ucsi, &ctrl, NULL, 0); > UCSI_CMD_GET_CURRENT_CAM(ctrl, dp->con->num); > ret = ucsi_send_command(dp->con->ucsi, &ctrl, &cur, sizeof(cur)); > } > + ctrl.raw_cmd = UCSI_CMD_SET_NEW_CAM(dp->con->num, 1, dp- I'll take a look at this before preparing the next version. thanks, -- heikki