Quoting Tvrtko Ursulin (2021-01-22 11:36:48) > > On 21/01/2021 21:34, Chris Wilson wrote: > > Quoting Tvrtko Ursulin (2021-01-21 18:10:05) > >> +static struct clients *init_clients(const char *drm_card) > >> +{ > >> + struct clients *clients = malloc(sizeof(*clients)); > >> + const char *slash; > >> + ssize_t ret; > >> + > >> + memset(clients, 0, sizeof(*clients)); > >> + > >> + if (drm_card) { > >> + slash = rindex(drm_card, '/'); > >> + assert(slash); > >> + } else { > >> + slash = "card0"; > >> + } > >> + > >> + ret = snprintf(clients->sysfs_root, sizeof(clients->sysfs_root), > >> + "/sys/class/drm/%s/clients/", slash); > >> + assert(ret > 0 && ret < sizeof(clients->sysfs_root)); > > > > Afaict, igt_device_card_match_pci et al are not guaranteed to fill in > > dev->drm_card and may leave it blank instead of finding the > > corresponding /dev/dri/cardN. > > I did the rest but this is giving me trouble - can't see locally that it > doesn't populate it. Do you know how to trigger that? Maybe it doesn't, I was just looking at the udev population of the card struct and surmised that if I could tell it to open a render device, dev->drm_card will not be found. This is all speculation on my part, I've just been burnt enough times trying to set engine properties on the render sysfs :( -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx