[igt-dev] [PATCH i-g-t v2 2/2] tests/kms_properties: Add functional test for "max bpc" property

Radhakrishna Sripada radhakrishna.sripada at intel.com
Mon Oct 29 11:23:18 UTC 2018


On Wed, Oct 24, 2018 at 03:45:35PM -0700, Rodrigo Vivi wrote:
> On Fri, Oct 12, 2018 at 12:18:46AM -0700, Radhakrishna Sripada wrote:
> > Test the values in the range advertised by the "max bpc" property.
> > 
> > Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
> > Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada at intel.com>
> > ---
> >  tests/kms_properties.c | 32 +++++++++++++++++++++++++++++++-
> >  1 file changed, 31 insertions(+), 1 deletion(-)
> > 
> > diff --git a/tests/kms_properties.c b/tests/kms_properties.c
> > index f5a86236f5c8..503a5c251e10 100644
> > --- a/tests/kms_properties.c
> > +++ b/tests/kms_properties.c
> > @@ -82,7 +82,37 @@ static bool ignore_property(uint32_t obj_type, uint32_t prop_flags,
> >  	return false;
> >  }
> >  
> > -static const struct additional_test property_functional_test[] = {};
> > +static void max_bpc_prop_test(int fd, uint32_t id, uint32_t type, drmModePropertyPtr prop,
> > +			      uint32_t prop_id, uint64_t prop_value, bool atomic)
> > +{
> > +	drmModeAtomicReqPtr req = NULL;
> > +	int i, ret;
> > +
> > +	if (atomic)
> > +		req = drmModeAtomicAlloc();
> > +
> > +	for ( i = prop->values[0]; i < prop->values[1] ; i++) {
> > +		if (!atomic) {
> > +			ret = drmModeObjectSetProperty(fd, id, type, prop_id, i);
> > +
> > +			igt_assert_eq(ret, 0);
> > +		} else {
> > +			ret = drmModeAtomicAddProperty(req, id, prop_id, i);
> > +			igt_assert(ret >= 0);
> > +
> > +			ret = drmModeAtomicCommit(fd, req, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
> > +			igt_assert_eq(ret, 0);
> 
> Should we read it back to see if it sticks?

Reading back the property to see if the value sticks IMO is validation 
of the drm_property infrastructure which is being done by the sanity sub tests.
> or should we be checking with some debugfs to see all
> conditions and to see if the max is getting really respected?
> 
We could do this additional check for this property. However it would involve 
obtaining the corresponding CRTC id and parsing the i915_display_info debugs 
file to get the appropriate bpp for the CRTC and make sure the bpp is less 
than 8 * prop->values[i] making the test bulky. Do you suggest a simpler way?

Thanks,
Radhakrishna(RK) Sripada
> ( really questions not a request ;) )
> 
> > +		}
> > +	}
> > +
> > +	if (atomic)
> > +		drmModeAtomicFree(req);
> > +}
> > +
> > +static const struct additional_test property_functional_test[] = {
> > +									{"max bpc", DRM_MODE_OBJECT_CONNECTOR,
> > +									 max_bpc_prop_test},
> > +								 };
> >  
> >  static bool has_additional_test_lookup(uint32_t obj_type, const char *name,
> >  				bool atomic, int *index)
> > -- 
> > 2.9.3
> > 
> > _______________________________________________
> > igt-dev mailing list
> > igt-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/igt-dev


More information about the igt-dev mailing list