From: Jani Nikula <jani.nikula@linux.intel.com>
To: Paulo Zanoni <przanoni@gmail.com>, intel-gfx@lists.freedesktop.org
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Subject: Re: [PATCH 1/3] drm/i915: consider the source max DP lane count too
Date: Fri, 25 Apr 2014 10:16:32 +0300 [thread overview]
Message-ID: <8738h1x4j3.fsf@intel.com> (raw)
In-Reply-To: <1398374579-5697-1-git-send-email-przanoni@gmail.com>
On Fri, 25 Apr 2014, Paulo Zanoni <przanoni@gmail.com> wrote:
> From: Paulo Zanoni <paulo.r.zanoni@intel.com>
>
> Even if the panel claims it can support 4 lanes, there's the
> possibility that the HW can't, so consider this while selecting the
> max lane count.
>
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> ---
> drivers/gpu/drm/i915/intel_dp.c | 20 ++++++++++++++++++--
> 1 file changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 104998e..19537a6 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -120,6 +120,22 @@ intel_dp_max_link_bw(struct intel_dp *intel_dp)
> return max_link_bw;
> }
>
> +static u8 intel_dp_max_lane_count(struct intel_dp *intel_dp)
> +{
> + struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
> + struct drm_device *dev = intel_dig_port->base.base.dev;
> + u8 source_max, sink_max;
> +
> + source_max = 4;
> + if (HAS_DDI(dev) && intel_dig_port->port == PORT_A &&
> + (intel_dig_port->saved_port_bits & DDI_A_4_LANES) == 0)
> + source_max = 2;
Wow, good catch. Are you aware of similar restrictions on other
platforms?
Does this potentially fix
https://bugs.freedesktop.org/show_bug.cgi?id=73539 ?
BR,
Jani.
> +
> + sink_max = drm_dp_max_lane_count(intel_dp->dpcd);
> +
> + return min(source_max, sink_max);
> +}
> +
> /*
> * The units on the numbers in the next two are... bizarre. Examples will
> * make it clearer; this one parallels an example in the eDP spec.
> @@ -170,7 +186,7 @@ intel_dp_mode_valid(struct drm_connector *connector,
> }
>
> max_link_clock = drm_dp_bw_code_to_link_rate(intel_dp_max_link_bw(intel_dp));
> - max_lanes = drm_dp_max_lane_count(intel_dp->dpcd);
> + max_lanes = intel_dp_max_lane_count(intel_dp);
>
> max_rate = intel_dp_max_data_rate(max_link_clock, max_lanes);
> mode_rate = intel_dp_link_required(target_clock, 18);
> @@ -764,7 +780,7 @@ intel_dp_compute_config(struct intel_encoder *encoder,
> struct intel_crtc *intel_crtc = encoder->new_crtc;
> struct intel_connector *intel_connector = intel_dp->attached_connector;
> int lane_count, clock;
> - int max_lane_count = drm_dp_max_lane_count(intel_dp->dpcd);
> + int max_lane_count = intel_dp_max_lane_count(intel_dp);
> /* Conveniently, the link BW constants become indices with a shift...*/
> int max_clock = intel_dp_max_link_bw(intel_dp) >> 3;
> int bpp, mode_rate;
> --
> 1.9.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Jani Nikula, Intel Open Source Technology Center
next prev parent reply other threads:[~2014-04-25 7:16 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-24 21:22 [PATCH 1/3] drm/i915: consider the source max DP lane count too Paulo Zanoni
2014-04-24 21:22 ` [PATCH 2/3] drm/i915: extract intel_dp_compute_link_config Paulo Zanoni
2014-04-24 21:22 ` [PATCH 3/3] drm/i915: add i915.dp_link_train_policy option Paulo Zanoni
2014-04-25 8:06 ` Daniel Vetter
2014-04-25 8:10 ` Daniel Vetter
2014-04-25 9:00 ` Jani Nikula
2014-04-25 9:18 ` Daniel Vetter
2014-04-25 10:32 ` Jani Nikula
2014-04-25 10:50 ` Barbalho, Rafael
2014-04-25 17:48 ` Paulo Zanoni
2014-04-25 20:02 ` Daniel Vetter
2014-04-25 10:48 ` Barbalho, Rafael
2014-04-25 7:16 ` Jani Nikula [this message]
-- strict thread matches above, loose matches on Subject: below --
2014-05-06 11:56 [PATCH 1/3] drm/i915: consider the source max DP lane count too Jani Nikula
2014-05-06 12:55 ` Damien Lespiau
2014-05-06 16:59 ` Jani Nikula
2014-05-06 13:34 ` Damien Lespiau
2014-05-06 13:39 ` Damien Lespiau
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=8738h1x4j3.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=paulo.r.zanoni@intel.com \
--cc=przanoni@gmail.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.