Am 06.05.21 um 12:19 schrieb Jani Nikula: > On Wed, 05 May 2021, Werner Sembach <wse@xxxxxxxxxxxxxxxxxxx> wrote: >> Moves some checks that later will be performed 2 times to an own fuction. This >> avoids duplicate code later on. >> >> Signed-off-by: Werner Sembach <wse@xxxxxxxxxxxxxxxxxxx> >> --- >> >> From 42a4a3a7d9ea9948b4071f406e7fcae23bfa0bdf Mon Sep 17 00:00:00 2001 >> From: Werner Sembach <wse@xxxxxxxxxxxxxxxxxxx> >> Date: Mon, 3 May 2021 14:35:39 +0200 >> Subject: [PATCH 1/3] New function to avoid duplicate code in upcomming commits > What are you using to generate and send the patches? This looks like > unnecessary cruft, and our CI fails to apply and test the changes. > > BR, > Jani. I'm using git send-email with --compose and --annotate. The From, Date, and Subject lines are automatically generated by it and I then add the commit message above. After reading https://www.kernel.org/doc/html/v5.12/process/submitting-patches.html#the-canonical-patch-format I thought the format was: <commit message for upstream and signed of lines> --- <additional comments only for mailing list/stuff that gets ignored by the tools> --- <the patch> With the middle part being optional. (I only tested with "git apply" which worked fine with the format) I will resend the patches without the middle part, and the drm/i915/display in all subject lines. > >> --- >> drivers/gpu/drm/i915/display/intel_hdmi.c | 41 ++++++++++++++--------- >> 1 file changed, 26 insertions(+), 15 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c >> index 46de56af33db..576d3d910d06 100644 >> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c >> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c >> @@ -1861,6 +1861,31 @@ static int intel_hdmi_port_clock(int clock, int bpc) >> return clock * bpc / 8; >> } >> >> +static enum drm_mode_status >> +intel_hdmi_mode_clock_valid(struct intel_hdmi *hdmi, int clock, bool has_hdmi_sink) >> +{ >> + struct drm_device *dev = intel_hdmi_to_dev(hdmi); >> + struct drm_i915_private *dev_priv = to_i915(dev); >> + enum drm_mode_status status; >> + >> + /* check if we can do 8bpc */ >> + status = hdmi_port_clock_valid(hdmi, clock, true, has_hdmi_sink); >> + >> + if (has_hdmi_sink) { >> + /* if we can't do 8bpc we may still be able to do 12bpc */ >> + if (status != MODE_OK && !HAS_GMCH(dev_priv)) >> + status = hdmi_port_clock_valid(hdmi, clock * 3 / 2, >> + true, has_hdmi_sink); >> + >> + /* if we can't do 8,12bpc we may still be able to do 10bpc */ >> + if (status != MODE_OK && INTEL_GEN(dev_priv) >= 11) >> + status = hdmi_port_clock_valid(hdmi, clock * 5 / 4, >> + true, has_hdmi_sink); >> + } >> + >> + return status; >> +} >> + >> static enum drm_mode_status >> intel_hdmi_mode_valid(struct drm_connector *connector, >> struct drm_display_mode *mode) >> @@ -1891,21 +1916,7 @@ intel_hdmi_mode_valid(struct drm_connector *connector, >> if (drm_mode_is_420_only(&connector->display_info, mode)) >> clock /= 2; >> >> - /* check if we can do 8bpc */ >> - status = hdmi_port_clock_valid(hdmi, intel_hdmi_port_clock(clock, 8), >> - true, has_hdmi_sink); >> - >> - if (has_hdmi_sink) { >> - /* if we can't do 8bpc we may still be able to do 12bpc */ >> - if (status != MODE_OK && !HAS_GMCH(dev_priv)) >> - status = hdmi_port_clock_valid(hdmi, intel_hdmi_port_clock(clock, 12), >> - true, has_hdmi_sink); >> - >> - /* if we can't do 8,12bpc we may still be able to do 10bpc */ >> - if (status != MODE_OK && DISPLAY_VER(dev_priv) >= 11) >> - status = hdmi_port_clock_valid(hdmi, intel_hdmi_port_clock(clock, 10), >> - true, has_hdmi_sink); >> - } >> + status = intel_hdmi_mode_clock_valid(hdmi, clock, has_hdmi_sink); >> if (status != MODE_OK) >> return status;