@@ -6534,18 +6534,23 @@ amdgpu_dm_connector_late_register(struct drm_connector *connector)
6534
6534
static void amdgpu_dm_connector_funcs_force (struct drm_connector * connector )
6535
6535
{
6536
6536
struct amdgpu_dm_connector * aconnector = to_amdgpu_dm_connector (connector );
6537
- struct amdgpu_connector * amdgpu_connector = to_amdgpu_connector (connector );
6538
6537
struct dc_link * dc_link = aconnector -> dc_link ;
6539
6538
struct dc_sink * dc_em_sink = aconnector -> dc_em_sink ;
6540
6539
struct edid * edid ;
6540
+ struct i2c_adapter * ddc ;
6541
+
6542
+ if (dc_link -> aux_mode )
6543
+ ddc = & aconnector -> dm_dp_aux .aux .ddc ;
6544
+ else
6545
+ ddc = & aconnector -> i2c -> base ;
6541
6546
6542
6547
/*
6543
6548
* Note: drm_get_edid gets edid in the following order:
6544
6549
* 1) override EDID if set via edid_override debugfs,
6545
6550
* 2) firmware EDID if set via edid_firmware module parameter
6546
6551
* 3) regular DDC read.
6547
6552
*/
6548
- edid = drm_get_edid (connector , & amdgpu_connector -> ddc_bus -> aux . ddc );
6553
+ edid = drm_get_edid (connector , ddc );
6549
6554
if (!edid ) {
6550
6555
DRM_ERROR ("No EDID found on connector: %s.\n" , connector -> name );
6551
6556
return ;
@@ -6586,20 +6591,26 @@ static int get_modes(struct drm_connector *connector)
6586
6591
static void create_eml_sink (struct amdgpu_dm_connector * aconnector )
6587
6592
{
6588
6593
struct drm_connector * connector = & aconnector -> base ;
6589
- struct amdgpu_connector * amdgpu_connector = to_amdgpu_connector ( & aconnector -> base ) ;
6594
+ struct dc_link * dc_link = aconnector -> dc_link ;
6590
6595
struct dc_sink_init_data init_params = {
6591
6596
.link = aconnector -> dc_link ,
6592
6597
.sink_signal = SIGNAL_TYPE_VIRTUAL
6593
6598
};
6594
6599
struct edid * edid ;
6600
+ struct i2c_adapter * ddc ;
6601
+
6602
+ if (dc_link -> aux_mode )
6603
+ ddc = & aconnector -> dm_dp_aux .aux .ddc ;
6604
+ else
6605
+ ddc = & aconnector -> i2c -> base ;
6595
6606
6596
6607
/*
6597
6608
* Note: drm_get_edid gets edid in the following order:
6598
6609
* 1) override EDID if set via edid_override debugfs,
6599
6610
* 2) firmware EDID if set via edid_firmware module parameter
6600
6611
* 3) regular DDC read.
6601
6612
*/
6602
- edid = drm_get_edid (connector , & amdgpu_connector -> ddc_bus -> aux . ddc );
6613
+ edid = drm_get_edid (connector , ddc );
6603
6614
if (!edid ) {
6604
6615
DRM_ERROR ("No EDID found on connector: %s.\n" , connector -> name );
6605
6616
return ;
0 commit comments