All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: "Kannan, Vandana" <vandana.kannan@intel.com>,
	Sonika Jindal <sonika.jindal@intel.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH] drm/i915/bxt: edp1.4 Intermediate Freq	support
Date: Wed, 03 Jun 2015 11:00:20 +0300	[thread overview]
Message-ID: <87r3ptcjcb.fsf@intel.com> (raw)
In-Reply-To: <556E9F45.7000408@intel.com>

On Wed, 03 Jun 2015, "Kannan, Vandana" <vandana.kannan@intel.com> wrote:
> On 5/26/2015 5:50 PM, Sonika Jindal wrote:
>> BXT supports following intermediate link rates for edp:
>> 2.16GHz, 2.43GHz, 3.24GHz, 4.32GHz.
>> Adding support for programming the intermediate rates.
>>
>> v2: Adding clock in bxt_clk_div struct and then look for the entry with
>> required rate (Ville)
>> v3: 'clock' has the selected value, no need to use link_bw or rate_select
>> for selecting pll(Ville)
>> v4: Make bxt_dp_clk_val const and remove size (Ville)
>> v5: Rebased
>> v6: Removed setting of vco while rebasing in v5, adding it back
>>
>> Signed-off-by: Sonika Jindal <sonika.jindal@intel.com>
>> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>(v4)

Pushed to drm-intel-next-queued, thanks for the patch and review.

BR,
Jani.

>> ---
>>   drivers/gpu/drm/i915/intel_ddi.c |   39 ++++++++++++++++----------------------
>>   drivers/gpu/drm/i915/intel_dp.c  |    7 ++++++-
>>   2 files changed, 22 insertions(+), 24 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
>> index cacb07b..2a2518d 100644
>> --- a/drivers/gpu/drm/i915/intel_ddi.c
>> +++ b/drivers/gpu/drm/i915/intel_ddi.c
>> @@ -1334,6 +1334,7 @@ skl_ddi_pll_select(struct intel_crtc *intel_crtc,
>>
>>   /* bxt clock parameters */
>>   struct bxt_clk_div {
>> +	int clock;
>>   	uint32_t p1;
>>   	uint32_t p2;
>>   	uint32_t m2_int;
>> @@ -1343,14 +1344,14 @@ struct bxt_clk_div {
>>   };
>>
>>   /* pre-calculated values for DP linkrates */
>> -static struct bxt_clk_div bxt_dp_clk_val[7] = {
>> -	/* 162 */ {4, 2, 32, 1677722, 1, 1},
>> -	/* 270 */ {4, 1, 27,       0, 0, 1},
>> -	/* 540 */ {2, 1, 27,       0, 0, 1},
>> -	/* 216 */ {3, 2, 32, 1677722, 1, 1},
>> -	/* 243 */ {4, 1, 24, 1258291, 1, 1},
>> -	/* 324 */ {4, 1, 32, 1677722, 1, 1},
>> -	/* 432 */ {3, 1, 32, 1677722, 1, 1}
>> +static const struct bxt_clk_div bxt_dp_clk_val[] = {
>> +	{162000, 4, 2, 32, 1677722, 1, 1},
>> +	{270000, 4, 1, 27,       0, 0, 1},
>> +	{540000, 2, 1, 27,       0, 0, 1},
>> +	{216000, 3, 2, 32, 1677722, 1, 1},
>> +	{243000, 4, 1, 24, 1258291, 1, 1},
>> +	{324000, 4, 1, 32, 1677722, 1, 1},
>> +	{432000, 3, 1, 32, 1677722, 1, 1}
>>   };
>>
>>   static bool
>> @@ -1390,22 +1391,14 @@ bxt_ddi_pll_select(struct intel_crtc *intel_crtc,
>>   		vco = best_clock.vco;
>>   	} else if (intel_encoder->type == INTEL_OUTPUT_DISPLAYPORT ||
>>   			intel_encoder->type == INTEL_OUTPUT_EDP) {
>> -		struct drm_encoder *encoder = &intel_encoder->base;
>> -		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>> +		int i;
>>
>> -		switch (intel_dp->link_bw) {
>> -		case DP_LINK_BW_1_62:
>> -			clk_div = bxt_dp_clk_val[0];
>> -			break;
>> -		case DP_LINK_BW_2_7:
>> -			clk_div = bxt_dp_clk_val[1];
>> -			break;
>> -		case DP_LINK_BW_5_4:
>> -			clk_div = bxt_dp_clk_val[2];
>> -			break;
>> -		default:
>> -			clk_div = bxt_dp_clk_val[0];
>> -			DRM_ERROR("Unknown link rate\n");
>> +		clk_div = bxt_dp_clk_val[0];
>> +		for (i = 0; i < ARRAY_SIZE(bxt_dp_clk_val); ++i) {
>> +			if (bxt_dp_clk_val[i].clock == clock) {
>> +				clk_div = bxt_dp_clk_val[i];
>> +				break;
>> +			}
>>   		}
>>   		vco = clock * 10 / 2 * clk_div.p1 * clk_div.p2;
>>   	}
>> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
>> index abd442a..bd0f958 100644
>> --- a/drivers/gpu/drm/i915/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/intel_dp.c
>> @@ -91,6 +91,8 @@ static const struct dp_link_dpll chv_dpll[] = {
>>   		{ .p1 = 2, .p2 = 1, .n = 1, .m1 = 2, .m2 = 0x6c00000 } }
>>   };
>>
>> +static const int bxt_rates[] = { 162000, 216000, 243000, 270000,
>> +				  324000, 432000, 540000 };
>>   static const int skl_rates[] = { 162000, 216000, 270000,
>>   				  324000, 432000, 540000 };
>>   static const int chv_rates[] = { 162000, 202500, 210000, 216000,
>> @@ -1170,7 +1172,10 @@ intel_dp_sink_rates(struct intel_dp *intel_dp, const int **sink_rates)
>>   static int
>>   intel_dp_source_rates(struct drm_device *dev, const int **source_rates)
>>   {
>> -	if (IS_SKYLAKE(dev)) {
>> +	if (IS_BROXTON(dev)) {
>> +		*source_rates = bxt_rates;
>> +		return ARRAY_SIZE(bxt_rates);
>> +	} else if (IS_SKYLAKE(dev)) {
>>   		*source_rates = skl_rates;
>>   		return ARRAY_SIZE(skl_rates);
>>   	} else if (IS_CHERRYVIEW(dev)) {
>>
> Reviewed-by: Vandana Kannan <vandana.kannan@intel.com>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2015-06-03  7:58 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-07  4:22 [PATCH 1/3] drm/i915: Sink rate read should be saved in deca-kHz Sonika Jindal
2015-05-07  4:22 ` [PATCH 2/3] drm/i915: Rename dp rates array as per platform Sonika Jindal
2015-05-07  8:35   ` Ville Syrjälä
2015-05-07 13:19     ` Daniel Vetter
2015-05-07  4:22 ` [PATCH 3/3] drm/i915/bxt: edp1.4 Intermediate Freq support Sonika Jindal
2015-05-07  8:41   ` Ville Syrjälä
2015-05-07  8:57     ` Jindal, Sonika
2015-05-07 11:06       ` [PATCH] " Sonika Jindal
2015-05-07 15:34         ` Ville Syrjälä
2015-05-08  5:34           ` Sonika Jindal
2015-05-08 12:26             ` Ville Syrjälä
2015-05-11  7:51               ` Sonika Jindal
2015-05-11  9:51                 ` Daniel Vetter
2015-05-14 13:30                 ` shuang.he
2015-05-26  9:21               ` Sonika Jindal
2015-05-26  9:48                 ` Daniel Vetter
2015-05-26  9:57                   ` Jani Nikula
2015-05-26  9:59                     ` Daniel Vetter
2015-05-26 10:21                       ` Jindal, Sonika
2015-05-26 12:20                         ` Sonika Jindal
2015-06-03  5:19                           ` Jindal, Sonika
2015-06-03  6:31                           ` Kannan, Vandana
2015-06-03  8:00                             ` Jani Nikula [this message]
2015-05-26  9:54                 ` Jani Nikula
2015-05-08 19:30             ` shuang.he
2015-05-08  7:39         ` shuang.he
2015-05-07 19:04   ` [PATCH 3/3] " shuang.he
2015-05-07  8:10 ` [PATCH 1/3] drm/i915: Sink rate read should be saved in deca-kHz Jani Nikula
2015-05-07  8:34   ` Ville Syrjälä
2015-05-07  8:29     ` [PATCH] " Sonika Jindal
2015-05-07  8:58       ` Jani Nikula

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=87r3ptcjcb.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=sonika.jindal@intel.com \
    --cc=vandana.kannan@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.