tests: Updated modeprint
parent
f1fe9178f1
commit
4f233ce618
|
@ -55,50 +55,36 @@ int printMode(struct drm_mode_modeinfo *mode)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int printConnector(int fd, drmModeResPtr res, drmModeConnectorPtr connector, uint32_t id)
|
||||
int printProperty(int fd, drmModeResPtr res, drmModePropertyPtr props, uint64_t value)
|
||||
{
|
||||
int i = 0, j;
|
||||
struct drm_mode_modeinfo *mode = NULL;
|
||||
drmModePropertyPtr props;
|
||||
unsigned char *name = NULL;
|
||||
const unsigned char *name = NULL;
|
||||
int j;
|
||||
|
||||
printf("Connector: %d-%d\n", connector->connector_type, connector->connector_type_id);
|
||||
printf("\tid : %i\n", id);
|
||||
printf("\tencoder id : %i\n", connector->encoder);
|
||||
printf("\tconn : %s\n", getConnectionText(connector->connection));
|
||||
printf("\tsize : %ix%i (mm)\n", connector->mmWidth, connector->mmHeight);
|
||||
printf("\tcount_modes : %i\n", connector->count_modes);
|
||||
printf("\tcount_props : %i\n", connector->count_props);
|
||||
printf("\tcount_encoders : %i\n", connector->count_encoders);
|
||||
printf("Property: %s\n", props->name);
|
||||
printf("\tid : %i\n", props->prop_id);
|
||||
printf("\tflags : %i\n", props->flags);
|
||||
printf("\tcount_values : %d\n", props->count_values);
|
||||
|
||||
if (connector->count_encoders) {
|
||||
printf("\t\tencoders");
|
||||
for (i = 0; i < connector->count_encoders; i++)
|
||||
printf(" %i", connector->encoders[i]);
|
||||
|
||||
if (props->count_values) {
|
||||
printf("\tvalues :");
|
||||
for (j = 0; j < props->count_values; j++)
|
||||
printf(" %lld", props->values[j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
if (full_props) {
|
||||
for (i = 0; i < connector->count_props; i++) {
|
||||
props = drmModeGetProperty(fd, connector->props[i]);
|
||||
name = NULL;
|
||||
if (props) {
|
||||
printf("Property: %s\n", props->name);
|
||||
printf("\tid: %i\n", props->prop_id);
|
||||
printf("\tflags: %i\n", props->flags);
|
||||
printf("\tvalues %d: ", props->count_values);
|
||||
for (j = 0; j < props->count_values; j++)
|
||||
printf("%lld ", props->values[j]);
|
||||
|
||||
printf("\n\tenums %d: \n", props->count_enums);
|
||||
printf("\tcount_enums : %d\n", props->count_enums);
|
||||
|
||||
if (props->flags & DRM_MODE_PROP_BLOB) {
|
||||
drmModePropertyBlobPtr blob;
|
||||
|
||||
blob = drmModeGetPropertyBlob(fd, connector->prop_values[i]);
|
||||
blob = drmModeGetPropertyBlob(fd, value);
|
||||
if (blob) {
|
||||
printf("blob is %d length, %08X\n", blob->length, *(uint32_t *)blob->data);
|
||||
drmModeFreePropertyBlob(blob);
|
||||
} else {
|
||||
printf("error getting blob %lld\n", value);
|
||||
}
|
||||
|
||||
} else {
|
||||
|
@ -107,28 +93,46 @@ int printConnector(int fd, drmModeResPtr res, drmModeConnectorPtr connector, uin
|
|||
|
||||
for (j = 0; j < props->count_enums; j++) {
|
||||
printf("\t\t%lld = %s\n", props->enums[j].value, props->enums[j].name);
|
||||
if (connector->prop_values[i] == props->enums[j].value)
|
||||
if (props->enums[j].value == value)
|
||||
name = props->enums[j].name;
|
||||
|
||||
}
|
||||
|
||||
if (props->count_enums && name) {
|
||||
printf("\tconnector property name %s %s\n", props->name, name);
|
||||
printf("\tcon_value : %s\n", name);
|
||||
} else {
|
||||
printf("\tconnector property id %s %lli\n", props->name, connector->prop_values[i]);
|
||||
printf("\tcon_value : %lld\n", value);
|
||||
}
|
||||
}
|
||||
|
||||
drmModeFreeProperty(props);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int printConnector(int fd, drmModeResPtr res, drmModeConnectorPtr connector, uint32_t id)
|
||||
{
|
||||
int i = 0;
|
||||
struct drm_mode_modeinfo *mode = NULL;
|
||||
drmModePropertyPtr props;
|
||||
|
||||
printf("Connector: %d-%d\n", connector->connector_type, connector->connector_type_id);
|
||||
printf("\tid : %i\n", id);
|
||||
printf("\tencoder id : %i\n", connector->encoder);
|
||||
printf("\tconn : %s\n", getConnectionText(connector->connection));
|
||||
printf("\tsize : %ix%i (mm)\n", connector->mmWidth, connector->mmHeight);
|
||||
printf("\tcount_modes : %i\n", connector->count_modes);
|
||||
printf("\tcount_props : %i\n", connector->count_props);
|
||||
if (connector->count_props) {
|
||||
printf("\t\tprops");
|
||||
printf("\tprops :");
|
||||
for (i = 0; i < connector->count_props; i++)
|
||||
printf(" %i", connector->props[i]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
printf("\tcount_encoders : %i\n", connector->count_encoders);
|
||||
if (connector->count_encoders) {
|
||||
printf("\tencoders :");
|
||||
for (i = 0; i < connector->count_encoders; i++)
|
||||
printf(" %i", connector->encoders[i]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
if (modes) {
|
||||
|
@ -138,6 +142,16 @@ int printConnector(int fd, drmModeResPtr res, drmModeConnectorPtr connector, uin
|
|||
}
|
||||
}
|
||||
|
||||
if (full_props) {
|
||||
for (i = 0; i < connector->count_props; i++) {
|
||||
props = drmModeGetProperty(fd, connector->props[i]);
|
||||
if (props) {
|
||||
printProperty(fd, res, props, connector->prop_values[i]);
|
||||
drmModeFreeProperty(props);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -310,13 +324,13 @@ void args(int argc, char **argv)
|
|||
|
||||
if (argc == 1) {
|
||||
fbs = 1;
|
||||
modes = 1;
|
||||
full_modes = 0;
|
||||
encoders = 1;
|
||||
connectors = 1;
|
||||
crtcs = 1;
|
||||
full_props = 0;
|
||||
edid = 1;
|
||||
crtcs = 1;
|
||||
modes = 1;
|
||||
encoders = 1;
|
||||
full_modes = 0;
|
||||
full_props = 0;
|
||||
connectors = 1;
|
||||
}
|
||||
}
|
||||
int main(int argc, char **argv)
|
||||
|
|
Loading…
Reference in New Issue