Merge tag 'drm-next-2020-06-08' of git://anongit.freedesktop.org/drm/drm
Pull drm fixes from Dave Airlie: "These are the fixes from last week for the stuff merged in the merge window. It got a bunch of nouveau fixes for HDA audio on some new GPUs, some i915 and some amdpgu fixes. i915: - gvt: Fix one clang warning on debug only function - Use ARRAY_SIZE for coccicheck warning - Use after free fix for display global state. - Whitelisting context-local timestamp on Gen9 and two scheduler fixes with deps (Cc: stable) - Removal of write flag from sysfs files where ineffective nouveau: - HDMI/DP audio HDA fixes - display hang fix for Volta/Turing - GK20A regression fix. amdgpu: - Prevent hwmon accesses while GPU is in reset - CTF interrupt fix - Backlight fix for renoir - Fix for display sync groups - Display bandwidth validation workaround" * tag 'drm-next-2020-06-08' of git://anongit.freedesktop.org/drm/drm: (28 commits) drm/nouveau/kms/nv50-: clear SW state of disabled windows harder drm/nouveau: gr/gk20a: Use firmware version 0 drm/nouveau/disp/gm200-: detect and potentially disable HDA support on some SORs drm/nouveau/disp/gp100: split SOR implementation from gm200 drm/nouveau/disp: modify OR allocation policy to account for HDA requirements drm/nouveau/disp: split part of OR allocation logic into a function drm/nouveau/disp: provide hint to OR allocation about HDA requirements drm/amd/display: Revalidate bandwidth before commiting DC updates drm/amdgpu/display: use blanked rather than plane state for sync groups drm/i915/params: fix i915.fake_lmem_start module param sysfs permissions drm/i915/params: don't expose inject_probe_failure in debugfs drm/i915: Whitelist context-local timestamp in the gen9 cmdparser drm/i915: Fix global state use-after-frees with a refcount drm/i915: Check for awaits on still currently executing requests drm/i915/gt: Do not schedule normal requests immediately along virtual drm/i915: Reorder await_execution before await_request drm/nouveau/kms/gt215-: fix race with audio driver runpm drm/nouveau/disp/gm200-: fix NV_PDISP_SOR_HDMI2_CTRL(n) selection Revert "drm/amd/display: disable dcn20 abm feature for bring up" drm/amd/powerplay: ack the SMUToHost interrupt on receive V2 ...
This commit is contained in:
@@ -1356,7 +1356,7 @@ static int dm_late_init(void *handle)
|
||||
unsigned int linear_lut[16];
|
||||
int i;
|
||||
struct dmcu *dmcu = NULL;
|
||||
bool ret = false;
|
||||
bool ret;
|
||||
|
||||
if (!adev->dm.fw_dmcu)
|
||||
return detect_mst_link_for_all_connectors(adev->ddev);
|
||||
@@ -1377,13 +1377,10 @@ static int dm_late_init(void *handle)
|
||||
*/
|
||||
params.min_abm_backlight = 0x28F;
|
||||
|
||||
/* todo will enable for navi10 */
|
||||
if (adev->asic_type <= CHIP_RAVEN) {
|
||||
ret = dmcu_load_iram(dmcu, params);
|
||||
ret = dmcu_load_iram(dmcu, params);
|
||||
|
||||
if (!ret)
|
||||
return -EINVAL;
|
||||
}
|
||||
if (!ret)
|
||||
return -EINVAL;
|
||||
|
||||
return detect_mst_link_for_all_connectors(adev->ddev);
|
||||
}
|
||||
|
@@ -1016,9 +1016,17 @@ static void program_timing_sync(
|
||||
}
|
||||
}
|
||||
|
||||
/* set first pipe with plane as master */
|
||||
/* set first unblanked pipe as master */
|
||||
for (j = 0; j < group_size; j++) {
|
||||
if (pipe_set[j]->plane_state) {
|
||||
bool is_blanked;
|
||||
|
||||
if (pipe_set[j]->stream_res.opp->funcs->dpg_is_blanked)
|
||||
is_blanked =
|
||||
pipe_set[j]->stream_res.opp->funcs->dpg_is_blanked(pipe_set[j]->stream_res.opp);
|
||||
else
|
||||
is_blanked =
|
||||
pipe_set[j]->stream_res.tg->funcs->is_blanked(pipe_set[j]->stream_res.tg);
|
||||
if (!is_blanked) {
|
||||
if (j == 0)
|
||||
break;
|
||||
|
||||
@@ -1039,9 +1047,17 @@ static void program_timing_sync(
|
||||
status->timing_sync_info.master = false;
|
||||
|
||||
}
|
||||
/* remove any other pipes with plane as they have already been synced */
|
||||
/* remove any other unblanked pipes as they have already been synced */
|
||||
for (j = j + 1; j < group_size; j++) {
|
||||
if (pipe_set[j]->plane_state) {
|
||||
bool is_blanked;
|
||||
|
||||
if (pipe_set[j]->stream_res.opp->funcs->dpg_is_blanked)
|
||||
is_blanked =
|
||||
pipe_set[j]->stream_res.opp->funcs->dpg_is_blanked(pipe_set[j]->stream_res.opp);
|
||||
else
|
||||
is_blanked =
|
||||
pipe_set[j]->stream_res.tg->funcs->is_blanked(pipe_set[j]->stream_res.tg);
|
||||
if (!is_blanked) {
|
||||
group_size--;
|
||||
pipe_set[j] = pipe_set[group_size];
|
||||
j--;
|
||||
@@ -2522,6 +2538,12 @@ void dc_commit_updates_for_stream(struct dc *dc,
|
||||
|
||||
copy_stream_update_to_stream(dc, context, stream, stream_update);
|
||||
|
||||
if (!dc->res_pool->funcs->validate_bandwidth(dc, context, false)) {
|
||||
DC_ERROR("Mode validation failed for stream update!\n");
|
||||
dc_release_state(context);
|
||||
return;
|
||||
}
|
||||
|
||||
commit_planes_for_stream(
|
||||
dc,
|
||||
srf_updates,
|
||||
|
Reference in New Issue
Block a user