[igt-dev] [PATCH i-g-t 2/4] lib/igt_kms: add helper for dp-mst connector id

Sharma, Swati2 swati2.sharma at intel.com
Thu Aug 10 06:15:39 UTC 2023


Hi Bhanu,

Thanks for the reviews.

On 07-Aug-23 9:59 PM, Modem, Bhanuprakash wrote:
> Hi Swati,
> 
> On Sun-06-08-2023 10:17 pm, Swati Sharma wrote:
>> Helper is added which returns dp-mst connector id.
>>
>> Signed-off-by: Swati Sharma <swati2.sharma at intel.com>
>> ---
>>   lib/igt_kms.c | 40 ++++++++++++++++++++++++++++++++++++++++
>>   lib/igt_kms.h |  1 +
>>   2 files changed, 41 insertions(+)
>>
>> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
>> index 6034ff70c..c0bfa73fe 100644
>> --- a/lib/igt_kms.c
>> +++ b/lib/igt_kms.c
>> @@ -6050,3 +6050,43 @@ bool igt_check_output_is_dp_mst(int drm_fd, 
>> igt_output_t *output)
>>       return true;
>>   }
>> +
>> +static int parse_path_blob(char *blob_data)
>> +{
>> +    int connector_id;
>> +    char *encoder;
>> +
>> +    encoder = strtok(blob_data, ":");
>> +    igt_assert_f(!strcmp(encoder, "mst"), "PATH connector property 
>> expected to have 'mst'\n");
>> +
>> +    connector_id = atoi(strtok(NULL, "-"));
>> +
>> +    return connector_id;
>> +}
>> +
>> +/**
>> + * igt_get_dp_mst_connector_id
>> + * @drmfd: Handle to open drm device
>> + * @output: Target output
>> + *
>> + * Returns: dp-mst connector id.
>> + */
>> +int igt_get_dp_mst_connector_id(int drm_fd, igt_output_t *output)
>> +{
>> +    drmModePropertyBlobPtr path_blob = NULL;
>> +    uint64_t path_blob_id;
>> +    drmModeConnector *connector = output->config.connector;
>> +    int connector_id;
>> +
>> +    igt_assert(kmstest_get_property(drm_fd, connector->connector_id,
>> +           DRM_MODE_OBJECT_CONNECTOR, "PATH", NULL,
>> +           &path_blob_id, NULL));
>> +
>> +    igt_assert(path_blob = drmModeGetPropertyBlob(drm_fd, 
>> path_blob_id));
>> +
>> +    connector_id = parse_path_blob((char *) path_blob->data);
>> +
>> +    drmModeFreePropertyBlob(path_blob);
>> +
>> +    return connector_id;
> 
> I can write this helper as:
> 
> int igt_get_dp_mst_connector_id() {
>      if igt_check_output_is_dp_mst()
>          return 0; // Not sure if connector_id can be zero
> 
>      <get PATH property & parse the connector id outof it>
>      return connector_id;
> }

Done.

> 
> Test:
> You can directly call igt_get_dp_mst_connector_id(), no need to check 
> for the output type (dp-mst).

Tried. This won't work.

> 
> - Bhanu
> 
>> +}
>> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
>> index 9a46e7a5c..6f978ed55 100644
>> --- a/lib/igt_kms.h
>> +++ b/lib/igt_kms.h
>> @@ -1005,5 +1005,6 @@ bool igt_check_bigjoiner_support(igt_display_t 
>> *display);
>>   bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo 
>> *mode);
>>   bool i915_pipe_output_combo_valid(igt_display_t *display);
>>   bool igt_check_output_is_dp_mst(int drmfd, igt_output_t *output);
>> +int igt_get_dp_mst_connector_id(int drm_fd, igt_output_t *output);
>>   #endif /* __IGT_KMS_H__ */


More information about the igt-dev mailing list