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

Reply via email to