[PATCH] drm/dp: Set the MOT bit for Write_Status_Update_Request transactions

Ville Syrjälä ville.syrjala at linux.intel.com
Tue Dec 11 13:22:31 UTC 2018


On Mon, Dec 10, 2018 at 02:15:11PM -0800, Dhinakaran Pandiyan wrote:
> On Mon, 2018-12-10 at 23:29 +0200, Ville Syrjälä wrote:
> > On Mon, Dec 10, 2018 at 01:07:49PM -0800, Dhinakaran Pandiyan wrote:
> > > The Write_Status_Update_Request I2C transaction requires the MOT
> > > bit to
> > > be set, Change the logical AND to OR to fix what looks like a typo.
> > 
> > It's not a type. We're just preserving MOT. What makes you think it
> > should always be set?
> > 
> The table defining request commands (2-148) has the MOT bit set for
> Write_Status_Update_Request, doesn't make it look like an option when
> querying the status. Checking the callers again, I see that we could
> get a defer when ending an i2c transaction and that will require a
> Write_Status_Update_Request with MOT unset. Sorry for the noise.

Or a short reply. Admittedly the spec is a bit vague on this topic,
but after trawling it thorougly again I spotted that table 2-151 #9
does have an example of write_status_update with mot==0. So I guess
my original interpretation was in fact correct. Phew :)

> 
> 
> 
> 
> > > 
> > > Cc: dri-devel at lists.freedesktop.org
> > > Cc: Jani Nikula <jani.nikula at intel.com>
> > > Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > > Fixes: 68ec2a2a2481 ("drm/dp: Use I2C_WRITE_STATUS_UPDATE to drain
> > > partial I2C_WRITE requests")
> > > Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan at intel.com>
> > > ---
> > >  drivers/gpu/drm/drm_dp_helper.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/gpu/drm/drm_dp_helper.c
> > > b/drivers/gpu/drm/drm_dp_helper.c
> > > index 2d6c491a0542..d98805b517f0 100644
> > > --- a/drivers/gpu/drm/drm_dp_helper.c
> > > +++ b/drivers/gpu/drm/drm_dp_helper.c
> > > @@ -677,7 +677,7 @@ static void
> > > drm_dp_i2c_msg_write_status_update(struct drm_dp_aux_msg *msg)
> > >  	 * rest of the message
> > >  	 */
> > >  	if ((msg->request & ~DP_AUX_I2C_MOT) == DP_AUX_I2C_WRITE) {
> > > -		msg->request &= DP_AUX_I2C_MOT;
> > > +		msg->request |= DP_AUX_I2C_MOT;
> > >  		msg->request |= DP_AUX_I2C_WRITE_STATUS_UPDATE;
> > >  	}
> > >  }
> > > -- 
> > > 2.17.1
> > 
> > 

-- 
Ville Syrjälä
Intel


More information about the dri-devel mailing list