All of lore.kernel.org
 help / color / mirror / Atom feed
From: Werner Sembach <wse@tuxedocomputers.com>
To: ville.syrjala@linux.intel.com, airlied@linux.ie, daniel@ffwll.ch,
	intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org
Cc: Werner Sembach <wse@tuxedocomputers.com>
Subject: [PATCH 1/3] drm/i915/display: New function to avoid duplicate code in upcomming commits
Date: Thu,  6 May 2021 19:23:23 +0200	[thread overview]
Message-ID: <20210506172325.1995964-2-wse@tuxedocomputers.com> (raw)
In-Reply-To: <20210506172325.1995964-1-wse@tuxedocomputers.com>

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@tuxedocomputers.com>
---
 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;
 
-- 
2.25.1


WARNING: multiple messages have this Message-ID (diff)
From: Werner Sembach <wse@tuxedocomputers.com>
To: ville.syrjala@linux.intel.com, airlied@linux.ie, daniel@ffwll.ch,
	intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org
Cc: Werner Sembach <wse@tuxedocomputers.com>
Subject: [Intel-gfx] [PATCH 1/3] drm/i915/display: New function to avoid duplicate code in upcomming commits
Date: Thu,  6 May 2021 19:23:23 +0200	[thread overview]
Message-ID: <20210506172325.1995964-2-wse@tuxedocomputers.com> (raw)
In-Reply-To: <20210506172325.1995964-1-wse@tuxedocomputers.com>

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@tuxedocomputers.com>
---
 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;
 
-- 
2.25.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2021-05-06 17:23 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-06 17:23 [PATCH 0/3] drm/i915/display: Try YCbCr420 color when RGB fails Werner Sembach
2021-05-06 17:23 ` [Intel-gfx] " Werner Sembach
2021-05-06 17:23 ` Werner Sembach [this message]
2021-05-06 17:23   ` [Intel-gfx] [PATCH 1/3] drm/i915/display: New function to avoid duplicate code in upcomming commits Werner Sembach
2021-05-06 17:23 ` [PATCH 2/3] drm/i915/display: Restructure output format computation for better expandability Werner Sembach
2021-05-06 17:23   ` [Intel-gfx] " Werner Sembach
2021-05-06 17:23 ` [PATCH 3/3] drm/i915/display: Use YCbCr420 as fallback when RGB fails Werner Sembach
2021-05-06 17:23   ` [Intel-gfx] " Werner Sembach
2021-05-06 17:35 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/display: Try YCbCr420 color " Patchwork
2021-05-06 18:04 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-05-06 19:21 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2021-05-07  8:49 ` [PATCH v6 0/3] " Werner Sembach
2021-05-07  8:49   ` [Intel-gfx] " Werner Sembach
2021-05-07  8:49   ` [PATCH v6 1/3] drm/i915/display: New function to avoid duplicate code in upcomming commits Werner Sembach
2021-05-07  8:49     ` [Intel-gfx] " Werner Sembach
2021-05-07 17:47     ` Ville Syrjälä
2021-05-07 17:47       ` [Intel-gfx] " Ville Syrjälä
2021-05-07 17:47       ` Ville Syrjälä
2021-05-07 20:33       ` Werner Sembach
2021-05-07 20:33         ` [Intel-gfx] " Werner Sembach
2021-05-07 20:33         ` Werner Sembach
2021-05-07  8:49   ` [PATCH v6 2/3] drm/i915/display: Restructure output format computation for better expandability Werner Sembach
2021-05-07  8:49     ` [Intel-gfx] " Werner Sembach
2021-05-07 17:52     ` Ville Syrjälä
2021-05-07 17:52       ` [Intel-gfx] " Ville Syrjälä
2021-05-07 17:52       ` Ville Syrjälä
2021-05-07 17:56       ` Randy Dunlap
2021-05-07 17:56         ` [Intel-gfx] " Randy Dunlap
2021-05-07 17:56         ` Randy Dunlap
2021-05-07 21:24       ` Werner Sembach
2021-05-07 21:24         ` [Intel-gfx] " Werner Sembach
2021-05-07 21:24         ` Werner Sembach
2021-05-07  8:49   ` [PATCH v6 3/3] drm/i915/display: Use YCbCr420 as fallback when RGB fails Werner Sembach
2021-05-07  8:49     ` [Intel-gfx] " Werner Sembach

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210506172325.1995964-2-wse@tuxedocomputers.com \
    --to=wse@tuxedocomputers.com \
    --cc=airlied@linux.ie \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ville.syrjala@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.