[igt-dev] [PATCH 1/7] tests/panfrost: Make sure we open a DUMB capable node for prime tests

Boris Brezillon boris.brezillon at collabora.com
Tue Jun 22 06:52:45 UTC 2021


Hi Petri,

On Mon, 21 Jun 2021 20:00:33 +0300
Petri Latvala <petri.latvala at intel.com> wrote:

> On Mon, Jun 21, 2021 at 02:57:18PM +0200, Boris Brezillon wrote:
> > Signed-off-by: Boris Brezillon <boris.brezillon at collabora.com>
> > ---
> >  tests/panfrost_prime.c | 26 +++++++++++++++++++++++++-
> >  1 file changed, 25 insertions(+), 1 deletion(-)
> > 
> > diff --git a/tests/panfrost_prime.c b/tests/panfrost_prime.c
> > index 351d46f2f7e6..f9818108a662 100644
> > --- a/tests/panfrost_prime.c
> > +++ b/tests/panfrost_prime.c
> > @@ -35,12 +35,36 @@
> >  #include <sys/ioctl.h>
> >  #include "panfrost_drm.h"
> >  
> > +static int igt_panfrost_open_kms_driver(void)
> > +{
> > +	for (unsigned i = 0; i < 2; i++) {
> > +		uint64_t cap_dumb_buf = 0, cap_prime = 0;
> > +		char path[32];
> > +		int fd;
> > +
> > +		snprintf(path, sizeof(path), "/dev/dri/card%d", i);
> > +
> > +		fd = open(path, O_RDWR);
> > +		if (fd < 0)
> > +			continue;
> > +
> > +		drmGetCap(fd, DRM_CAP_DUMB_BUFFER, &cap_dumb_buf);
> > +		drmGetCap(fd, DRM_CAP_PRIME, &cap_prime);
> > +		if (cap_dumb_buf && (cap_prime & DRM_PRIME_CAP_EXPORT))
> > +			return fd;
> > +
> > +		close(fd);
> > +	}
> > +
> > +	return -1;
> > +}
> > +
> >  igt_main
> >  {
> >  	int fd, kms_fd;
> >  
> >  	igt_fixture {
> > -		kms_fd = drm_open_driver_master(DRIVER_ANY);
> > +		kms_fd = igt_panfrost_open_kms_driver();  
> 
> 
> How we've done this kind of thing elsewhere is
> 
> 1) use drm_open_driver_another(0, DRIVER_foobar) +
> drm_open_driver_another(1, DRIVER_something) to open the two driver
> fds. The _another variants make sure the fds are from different
> devices. Then, check that the fds meet the requirements for testing
> with igt_require et al, don't go looking for additional devices. Let
> the test produce a 'skip' result if requirements are not met.
> 
> 2) use device filters when executing the tests to control what devices
> get chosen. Docs at
> https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Device-selection.html
> 
> 
> That way someone who has, say, vkms + vgem + panfrost drivers present
> is able to run tests and specify that they don't want you to touch
> vkms.
> 

Thanks for the tip. I'll use drm_open_driver_another() in v2.

Regards,

Boris


More information about the igt-dev mailing list