Hi Stephen, On Tue, Nov 30, 2021 at 10:33:53AM +1100, Stephen Rothwell wrote: > Hi all, > > Today's linux-next merge of the drm tree got a conflict in: > > drivers/gpu/drm/vc4/vc4_kms.c > > between commits: > > f927767978d2 ("drm/vc4: kms: Fix return code check") > d354699e2292 ("drm/vc4: kms: Don't duplicate pending commit") > > from the drm-misc-fixes tree and commit: > > 16e101051f32 ("drm/vc4: Increase the core clock based on HVS load") > > from the drm tree. > > I fixed it up (see below) and can carry the fix as necessary. This > is now fixed as far as linux-next is concerned, but any non trivial > conflicts should be mentioned to your upstream maintainer when your tree > is submitted for merging. You may also want to consider cooperating > with the maintainer of the conflicting tree to minimise any particularly > complex conflicts. Unfortunately the merge resolution isn't entirely correct :/ There's multiple conflicts between those two branches on that file, but things went wrong between 16e101051f32 and 0c980a006d3f The first one changes the logic a bit for the clk_set_min_rate argument, and the second moves the clk_set_min_rate around. However, the merge resolution reintroduced the initial clk_set_min_rate call line (line 373), without changing the logic of the proper call site (line 396). This is the patch to fix the resolution: -- >8 -- --- a/drivers/gpu/drm/vc4/vc4_kms.c 2021-11-30 08:56:28.748524275 +0100 +++ b/drivers/gpu/drm/vc4/vc4_kms.c 2021-11-29 15:46:11.692151678 +0100 @@ -365,14 +365,6 @@ vc4_hvs_mask_underrun(dev, vc4_crtc_state->assigned_channel); } - if (vc4->hvs->hvs5) { - unsigned long core_rate = max_t(unsigned long, - 500000000, - new_hvs_state->core_clock_rate); - - clk_set_min_rate(hvs->core_clk, core_rate); - } - for (channel = 0; channel < HVS_NUM_CHANNELS; channel++) { struct drm_crtc_commit *commit; int ret; @@ -392,8 +384,13 @@ old_hvs_state->fifo_state[channel].pending_commit = NULL; } - if (vc4->hvs->hvs5) - clk_set_min_rate(hvs->core_clk, 500000000); + if (vc4->hvs->hvs5) { + unsigned long core_rate = max_t(unsigned long, + 500000000, + new_hvs_state->core_clock_rate); + + clk_set_min_rate(hvs->core_clk, core_rate); + } drm_atomic_helper_commit_modeset_disables(dev, state); -- >8 -- I'm wondering though, do you have access to the drm-rerere tree? I've fixed up the merge yesterday to deal with this conflict and the conflict resolution should be stored there already. Maxime