diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c index 84412e752017b5d2ca73cf25c807859aacbc33f6..6516c275e0c71bb2f8889d495453fa92a1ec1500 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c @@ -1725,6 +1725,31 @@ bool dc_read_dpcd( return r == DDC_RESULT_SUCESSFULL; } +bool dc_query_ddc_data( + struct dc *dc, + uint32_t link_index, + uint32_t address, + uint8_t *write_buf, + uint32_t write_size, + uint8_t *read_buf, + uint32_t read_size) { + + struct core_dc *core_dc = DC_TO_CORE(dc); + + struct core_link *link = core_dc->links[link_index]; + + bool result = dal_ddc_service_query_ddc_data( + link->ddc, + address, + write_buf, + write_size, + read_buf, + read_size); + + return result; +} + + bool dc_write_dpcd( struct dc *dc, uint32_t link_index, diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h index 71d7dde79ae0d6169cb15d7afe53ef627b09e432..2d84b18f48b07644b72c2e3b65d9518e089548fd 100644 --- a/drivers/gpu/drm/amd/display/dc/dc.h +++ b/drivers/gpu/drm/amd/display/dc/dc.h @@ -720,7 +720,16 @@ bool dc_write_dpcd( uint32_t link_index, uint32_t address, const uint8_t *data, - uint32_t size); + uint32_t size); + +bool dc_query_ddc_data( + struct dc *dc, + uint32_t link_index, + uint32_t address, + uint8_t *write_buf, + uint32_t write_size, + uint8_t *read_buf, + uint32_t read_size); bool dc_submit_i2c( struct dc *dc,