Skip to content

Commit 88412a4

Browse files
committed
Merge tag 'drm-fixes-2020-04-24' of git://anongit.freedesktop.org/drm/drm
Pull drm fixes from Dave Airlie: "Weekly regular fixes for drm, The usual rc3 uptick here, but nothing too crazy or notable. core: - mst: zero pbn when releasing vcpi slots amdgpu: - Fix resume issue on renoir - Thermal fix for older CI dGPUs - Fix some fallout from dropping drm load/unload callbacks i915: - Tigerlake Workaround - disabling media recompression (Matt) - Fix RPS interrupts for right GPU frequency (Chris) - HDCP fix prime check (Oliver) - Tigerlake Thunderbolt power well fix (Matt) - Tigerlake DP link training fixes (Jose) - Documentation sphinx build fix (Jani) - Fix enable_dpcd_backlight modparam (Lyude) analogix-dp: - binding fix meson: - remove unneeded error message bindings: - fix warnings - fix lvds binding scheduler: - thread racing fix tidss: - use after free fix" * tag 'drm-fixes-2020-04-24' of git://anongit.freedesktop.org/drm/drm: drm/i915/dpcd_bl: Unbreak enable_dpcd_backlight modparam drm/i915: fix Sphinx build duplicate label warning drm/i915/display: Load DP_TP_CTL/STATUS offset before use it drm/i915/tgl: TBT AUX should use TC power well ops drm/i915: HDCP: fix Ri prime check done during link check drm/i915/gt: Update PMINTRMSK holding fw drm/i915/tgl: Add Wa_14010477008:tgl drm/tidss: fix crash related to accessing freed memory drm/dp_mst: Zero assigned PBN when releasing VCPI slots drm/amdgpu/display: give aux i2c buses more meaningful names drm/amdgpu/display: fix aux registration (v2) drm/amdgpu: Correctly initialize thermal controller for GPUs with Powerplay table v0 (e.g Hawaii) drm/amd/powerplay: fix resume failed as smu table initialize early exit drm/scheduler: fix drm_sched_get_cleanup_job drm/meson: Delete an error message in meson_dw_hdmi_bind() drm/bridge: anx6345: set correct BPC for display_info of connector dt-bindings: display: allow port and ports in panel-lvds dt-bindings: display: xpp055c272: Remove the reg property dt-bindings: display: ltk500hd1829: Remove the reg property drm/bridge: analogix_dp: Split bind() into probe() and real bind()
2 parents b4f6332 + e32b248 commit 88412a4

24 files changed

+156
-52
lines changed

Documentation/devicetree/bindings/display/panel/leadtek,ltk500hd1829.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ examples:
3737
dsi {
3838
#address-cells = <1>;
3939
#size-cells = <0>;
40-
reg = <0xff450000 0x1000>;
4140
4241
panel@0 {
4342
compatible = "leadtek,ltk500hd1829";

Documentation/devicetree/bindings/display/panel/lvds.yaml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,20 @@ properties:
9696
If set, reverse the bit order described in the data mappings below on all
9797
data lanes, transmitting bits for slots 6 to 0 instead of 0 to 6.
9898

99+
port: true
100+
ports: true
101+
99102
required:
100103
- compatible
101104
- data-mapping
102105
- width-mm
103106
- height-mm
104107
- panel-timing
105-
- port
108+
109+
oneOf:
110+
- required:
111+
- port
112+
- required:
113+
- ports
106114

107115
...

Documentation/devicetree/bindings/display/panel/xinpeng,xpp055c272.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ examples:
3737
dsi {
3838
#address-cells = <1>;
3939
#size-cells = <0>;
40-
reg = <0xff450000 0x1000>;
4140
4241
panel@0 {
4342
compatible = "xinpeng,xpp055c272";

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4664,6 +4664,7 @@ static void amdgpu_dm_connector_destroy(struct drm_connector *connector)
46644664
i2c_del_adapter(&aconnector->i2c->base);
46654665
kfree(aconnector->i2c);
46664666
}
4667+
kfree(aconnector->dm_dp_aux.aux.name);
46674668

46684669
kfree(connector);
46694670
}
@@ -4723,10 +4724,19 @@ amdgpu_dm_connector_atomic_duplicate_state(struct drm_connector *connector)
47234724
static int
47244725
amdgpu_dm_connector_late_register(struct drm_connector *connector)
47254726
{
4726-
#if defined(CONFIG_DEBUG_FS)
47274727
struct amdgpu_dm_connector *amdgpu_dm_connector =
47284728
to_amdgpu_dm_connector(connector);
4729+
int r;
47294730

4731+
if ((connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) ||
4732+
(connector->connector_type == DRM_MODE_CONNECTOR_eDP)) {
4733+
amdgpu_dm_connector->dm_dp_aux.aux.dev = connector->kdev;
4734+
r = drm_dp_aux_register(&amdgpu_dm_connector->dm_dp_aux.aux);
4735+
if (r)
4736+
return r;
4737+
}
4738+
4739+
#if defined(CONFIG_DEBUG_FS)
47304740
connector_debugfs_init(amdgpu_dm_connector);
47314741
#endif
47324742

@@ -6092,7 +6102,7 @@ static int amdgpu_dm_connector_init(struct amdgpu_display_manager *dm,
60926102

60936103
if (connector_type == DRM_MODE_CONNECTOR_DisplayPort
60946104
|| connector_type == DRM_MODE_CONNECTOR_eDP)
6095-
amdgpu_dm_initialize_dp_connector(dm, aconnector);
6105+
amdgpu_dm_initialize_dp_connector(dm, aconnector, link->link_index);
60966106

60976107
out_free:
60986108
if (res) {

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -156,16 +156,16 @@ amdgpu_dm_mst_connector_late_register(struct drm_connector *connector)
156156
to_amdgpu_dm_connector(connector);
157157
int r;
158158

159-
amdgpu_dm_connector->dm_dp_aux.aux.dev = connector->kdev;
160-
r = drm_dp_aux_register(&amdgpu_dm_connector->dm_dp_aux.aux);
161-
if (r)
159+
r = drm_dp_mst_connector_late_register(connector,
160+
amdgpu_dm_connector->port);
161+
if (r < 0)
162162
return r;
163163

164164
#if defined(CONFIG_DEBUG_FS)
165165
connector_debugfs_init(amdgpu_dm_connector);
166166
#endif
167167

168-
return r;
168+
return 0;
169169
}
170170

171171
static void
@@ -472,9 +472,12 @@ static const struct drm_dp_mst_topology_cbs dm_mst_cbs = {
472472
};
473473

474474
void amdgpu_dm_initialize_dp_connector(struct amdgpu_display_manager *dm,
475-
struct amdgpu_dm_connector *aconnector)
475+
struct amdgpu_dm_connector *aconnector,
476+
int link_index)
476477
{
477-
aconnector->dm_dp_aux.aux.name = "dmdc";
478+
aconnector->dm_dp_aux.aux.name =
479+
kasprintf(GFP_KERNEL, "AMDGPU DM aux hw bus %d",
480+
link_index);
478481
aconnector->dm_dp_aux.aux.transfer = dm_dp_aux_transfer;
479482
aconnector->dm_dp_aux.ddc_service = aconnector->dc_link->ddc;
480483

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ struct amdgpu_dm_connector;
3232
int dm_mst_get_pbn_divider(struct dc_link *link);
3333

3434
void amdgpu_dm_initialize_dp_connector(struct amdgpu_display_manager *dm,
35-
struct amdgpu_dm_connector *aconnector);
35+
struct amdgpu_dm_connector *aconnector,
36+
int link_index);
3637

3738
#if defined(CONFIG_DRM_AMD_DC_DCN)
3839
bool compute_mst_dsc_configs_for_state(struct drm_atomic_state *state,

drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.c

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -984,6 +984,32 @@ static int init_thermal_controller(
984984
struct pp_hwmgr *hwmgr,
985985
const ATOM_PPLIB_POWERPLAYTABLE *powerplay_table)
986986
{
987+
hwmgr->thermal_controller.ucType =
988+
powerplay_table->sThermalController.ucType;
989+
hwmgr->thermal_controller.ucI2cLine =
990+
powerplay_table->sThermalController.ucI2cLine;
991+
hwmgr->thermal_controller.ucI2cAddress =
992+
powerplay_table->sThermalController.ucI2cAddress;
993+
994+
hwmgr->thermal_controller.fanInfo.bNoFan =
995+
(0 != (powerplay_table->sThermalController.ucFanParameters &
996+
ATOM_PP_FANPARAMETERS_NOFAN));
997+
998+
hwmgr->thermal_controller.fanInfo.ucTachometerPulsesPerRevolution =
999+
powerplay_table->sThermalController.ucFanParameters &
1000+
ATOM_PP_FANPARAMETERS_TACHOMETER_PULSES_PER_REVOLUTION_MASK;
1001+
1002+
hwmgr->thermal_controller.fanInfo.ulMinRPM
1003+
= powerplay_table->sThermalController.ucFanMinRPM * 100UL;
1004+
hwmgr->thermal_controller.fanInfo.ulMaxRPM
1005+
= powerplay_table->sThermalController.ucFanMaxRPM * 100UL;
1006+
1007+
set_hw_cap(hwmgr,
1008+
ATOM_PP_THERMALCONTROLLER_NONE != hwmgr->thermal_controller.ucType,
1009+
PHM_PlatformCaps_ThermalController);
1010+
1011+
hwmgr->thermal_controller.use_hw_fan_control = 1;
1012+
9871013
return 0;
9881014
}
9891015

drivers/gpu/drm/amd/powerplay/renoir_ppt.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -895,12 +895,17 @@ static int renoir_read_sensor(struct smu_context *smu,
895895

896896
static bool renoir_is_dpm_running(struct smu_context *smu)
897897
{
898+
struct amdgpu_device *adev = smu->adev;
899+
898900
/*
899901
* Util now, the pmfw hasn't exported the interface of SMU
900902
* feature mask to APU SKU so just force on all the feature
901903
* at early initial stage.
902904
*/
903-
return true;
905+
if (adev->in_suspend)
906+
return false;
907+
else
908+
return true;
904909

905910
}
906911

drivers/gpu/drm/bridge/analogix/analogix-anx6345.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,9 @@ static int anx6345_get_modes(struct drm_connector *connector)
485485

486486
num_modes += drm_add_edid_modes(connector, anx6345->edid);
487487

488+
/* Driver currently supports only 6bpc */
489+
connector->display_info.bpc = 6;
490+
488491
unlock:
489492
if (power_off)
490493
anx6345_poweroff(anx6345);

drivers/gpu/drm/drm_dp_mst_topology.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4295,6 +4295,7 @@ int drm_dp_atomic_release_vcpi_slots(struct drm_atomic_state *state,
42954295
if (pos->vcpi) {
42964296
drm_dp_mst_put_port_malloc(port);
42974297
pos->vcpi = 0;
4298+
pos->pbn = 0;
42984299
}
42994300

43004301
return 0;

0 commit comments

Comments
 (0)