コード例 #1
0
/* XXX: Checking this repeatedly actually hangs the GPU. I have literally no
 *      idea why. */
static void
connector_check_current_state(struct kms_atomic_connector_state *connector)
{
	struct kms_atomic_connector_state connector_kernel;
	drmModeConnectorPtr legacy;
	uint32_t crtc_id;

	legacy = drmModeGetConnectorCurrent(connector->state->desc->fd,
					    connector->obj);
	igt_assert(legacy);

	if (legacy->encoder_id) {
		drmModeEncoderPtr legacy_enc;

		legacy_enc = drmModeGetEncoder(connector->state->desc->fd,
					       legacy->encoder_id);
		igt_assert(legacy_enc);

		crtc_id = legacy_enc->crtc_id;
		drmModeFreeEncoder(legacy_enc);
	} else {
		crtc_id = 0;
	}

	igt_assert_eq_u32(crtc_id, connector->crtc_id);

	memcpy(&connector_kernel, connector, sizeof(connector_kernel));
	connector_get_current_state(&connector_kernel);
	do_or_die(memcmp(&connector_kernel, connector,
			 sizeof(connector_kernel)));

	drmModeFreeConnector(legacy);
}
コード例 #2
0
ファイル: testdisplay.c プロジェクト: jmb82/intel-gpu-tools
static void dump_connectors_fd(int drmfd)
{
	int i, j;

	drmModeRes *mode_resources = drmModeGetResources(drmfd);

	if (!mode_resources) {
		igt_warn("drmModeGetResources failed: %s\n", strerror(errno));
		return;
	}

	igt_info("Connectors:\n");
	igt_info("id\tencoder\tstatus\t\ttype\tsize (mm)\tmodes\n");
	for (i = 0; i < mode_resources->count_connectors; i++) {
		drmModeConnector *connector;

		connector = drmModeGetConnectorCurrent(drmfd,
						       mode_resources->connectors[i]);
		if (!connector) {
			igt_warn("could not get connector %i: %s\n", mode_resources->connectors[i], strerror(errno));
			continue;
		}

		igt_info("%d\t%d\t%s\t%s\t%dx%d\t\t%d\n", connector->connector_id, connector->encoder_id, kmstest_connector_status_str(connector->connection), kmstest_connector_type_str(connector->connector_type), connector->mmWidth, connector->mmHeight, connector->count_modes);

		if (!connector->count_modes)
			continue;

		igt_info("  modes:\n");
		igt_info("  name refresh (Hz) hdisp hss hse htot vdisp ""vss vse vtot flags type clock\n");
		for (j = 0; j < connector->count_modes; j++){
			igt_info("[%d]", j);
			kmstest_dump_mode(&connector->modes[j]);
		}

		drmModeFreeConnector(connector);
	}
	igt_info("\n");

	drmModeFreeResources(mode_resources);
}