All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915/bxt: Added identifier for MIPI transcoder.
@ 2016-02-03 13:42 Animesh Manna
  2016-02-03 14:15 ` ✓ Fi.CI.BAT: success for " Patchwork
  2016-02-04 12:54 ` [PATCH] " Jani Nikula
  0 siblings, 2 replies; 4+ messages in thread
From: Animesh Manna @ 2016-02-03 13:42 UTC (permalink / raw)
  To: intel-gfx; +Cc: Jani Nikula

Changes done:
- Added identifier for Mipi transcoder A and C.
- Added power domain identifier for newly added mipi trancoder.
- Initialized transcoder for mipi during compute config.

v1: Initial RFC version.

v2: Rebased on tot.

Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h         | 4 ++++
 drivers/gpu/drm/i915/intel_dsi.c        | 8 ++++++++
 drivers/gpu/drm/i915/intel_runtime_pm.c | 6 ++++++
 3 files changed, 18 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 65a2cd0..c484df8 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -122,6 +122,8 @@ enum transcoder {
 	TRANSCODER_B,
 	TRANSCODER_C,
 	TRANSCODER_EDP,
+	TRANSCODER_MIPI_A,
+	TRANSCODER_MIPI_C,
 	I915_MAX_TRANSCODERS
 };
 #define transcoder_name(t) ((t) + 'A')
@@ -176,6 +178,8 @@ enum intel_display_power_domain {
 	POWER_DOMAIN_TRANSCODER_B,
 	POWER_DOMAIN_TRANSCODER_C,
 	POWER_DOMAIN_TRANSCODER_EDP,
+	POWER_DOMAIN_TRANSCODER_MIPI_A,
+	POWER_DOMAIN_TRANSCODER_MIPI_C,
 	POWER_DOMAIN_PORT_DDI_A_LANES,
 	POWER_DOMAIN_PORT_DDI_B_LANES,
 	POWER_DOMAIN_PORT_DDI_C_LANES,
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
index 91cef35..4f2b513 100644
--- a/drivers/gpu/drm/i915/intel_dsi.c
+++ b/drivers/gpu/drm/i915/intel_dsi.c
@@ -273,6 +273,7 @@ static bool intel_dsi_compute_config(struct intel_encoder *encoder,
 	struct intel_connector *intel_connector = intel_dsi->attached_connector;
 	struct drm_display_mode *fixed_mode = intel_connector->panel.fixed_mode;
 	struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode;
+	struct drm_device *dev = intel_connector->base.dev;
 
 	DRM_DEBUG_KMS("\n");
 
@@ -284,6 +285,13 @@ static bool intel_dsi_compute_config(struct intel_encoder *encoder,
 	/* DSI uses short packets for sync events, so clear mode flags for DSI */
 	adjusted_mode->flags = 0;
 
+	if (IS_BROXTON(dev)) {
+		if (intel_dsi->ports & (1 << PORT_A))
+			pipe_config->cpu_transcoder = TRANSCODER_MIPI_A;
+		else
+			pipe_config->cpu_transcoder = TRANSCODER_MIPI_C;
+	}
+
 	return true;
 }
 
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
index bbca527..611dc1e 100644
--- a/drivers/gpu/drm/i915/intel_runtime_pm.c
+++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
@@ -87,6 +87,10 @@ intel_display_power_domain_str(enum intel_display_power_domain domain)
 		return "TRANSCODER_B";
 	case POWER_DOMAIN_TRANSCODER_C:
 		return "TRANSCODER_C";
+	case POWER_DOMAIN_TRANSCODER_MIPI_A:
+		return "TRANSCODER_MIPI_A";
+	case POWER_DOMAIN_TRANSCODER_MIPI_C:
+		return "TRANSCODER_MIPI_C";
 	case POWER_DOMAIN_TRANSCODER_EDP:
 		return "TRANSCODER_EDP";
 	case POWER_DOMAIN_PORT_DDI_A_LANES:
@@ -403,6 +407,8 @@ static void hsw_set_power_well(struct drm_i915_private *dev_priv,
 	BXT_DISPLAY_POWERWELL_2_POWER_DOMAINS |		\
 	BIT(POWER_DOMAIN_PIPE_A) |			\
 	BIT(POWER_DOMAIN_TRANSCODER_EDP) |		\
+	BIT(POWER_DOMAIN_TRANSCODER_MIPI_A) |		\
+	BIT(POWER_DOMAIN_TRANSCODER_MIPI_C) |		\
 	BIT(POWER_DOMAIN_PIPE_A_PANEL_FITTER) |		\
 	BIT(POWER_DOMAIN_PORT_DDI_A_LANES) |		\
 	BIT(POWER_DOMAIN_AUX_A) |			\
-- 
2.0.2

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

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915/bxt: Added identifier for MIPI transcoder.
  2016-02-03 13:42 [PATCH] drm/i915/bxt: Added identifier for MIPI transcoder Animesh Manna
@ 2016-02-03 14:15 ` Patchwork
  2016-02-04 12:54 ` [PATCH] " Jani Nikula
  1 sibling, 0 replies; 4+ messages in thread
From: Patchwork @ 2016-02-03 14:15 UTC (permalink / raw)
  To: Animesh Manna; +Cc: intel-gfx

== Summary ==

Series 3046v1 drm/i915/bxt: Added identifier for MIPI transcoder.
http://patchwork.freedesktop.org/api/1.0/series/3046/revisions/1/mbox/

Test kms_pipe_crc_basic:
        Subgroup suspend-read-crc-pipe-c:
                incomplete -> PASS       (hsw-gt2)

bdw-nuci7        total:156  pass:147  dwarn:0   dfail:0   fail:0   skip:9  
bdw-ultra        total:159  pass:147  dwarn:0   dfail:0   fail:0   skip:12 
bsw-nuc-2        total:159  pass:131  dwarn:0   dfail:0   fail:0   skip:28 
byt-nuc          total:159  pass:136  dwarn:0   dfail:0   fail:0   skip:23 
hsw-brixbox      total:159  pass:146  dwarn:0   dfail:0   fail:0   skip:13 
hsw-gt2          total:159  pass:149  dwarn:0   dfail:0   fail:0   skip:10 
ilk-hp8440p      total:159  pass:111  dwarn:0   dfail:0   fail:0   skip:48 
ivb-t430s        total:159  pass:145  dwarn:0   dfail:0   fail:0   skip:14 
skl-i5k-2        total:159  pass:144  dwarn:1   dfail:0   fail:0   skip:14 
skl-i7k-2        total:159  pass:144  dwarn:1   dfail:0   fail:0   skip:14 
snb-dellxps      total:159  pass:137  dwarn:0   dfail:0   fail:0   skip:22 
snb-x220t        total:159  pass:137  dwarn:0   dfail:0   fail:1   skip:21 

Results at /archive/results/CI_IGT_test/Patchwork_1355/

02932377a975a59ccd83095816d5b23183107d79 drm-intel-nightly: 2016y-02m-03d-01h-54m-27s UTC integration manifest
66b5e3d785bc6dc3881c83912237f92787db4382 drm/i915/bxt: Added identifier for MIPI transcoder.

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm/i915/bxt: Added identifier for MIPI transcoder.
  2016-02-03 13:42 [PATCH] drm/i915/bxt: Added identifier for MIPI transcoder Animesh Manna
  2016-02-03 14:15 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2016-02-04 12:54 ` Jani Nikula
  2016-02-04 13:31   ` Jani Nikula
  1 sibling, 1 reply; 4+ messages in thread
From: Jani Nikula @ 2016-02-04 12:54 UTC (permalink / raw)
  To: Animesh Manna, intel-gfx

On Wed, 03 Feb 2016, Animesh Manna <animesh.manna@intel.com> wrote:
> Changes done:
> - Added identifier for Mipi transcoder A and C.
> - Added power domain identifier for newly added mipi trancoder.
> - Initialized transcoder for mipi during compute config.

Please separate the power domain control from the addition of the
transcoders. I think the former is safer to go in.

BR,
Jani.


>
> v1: Initial RFC version.
>
> v2: Rebased on tot.
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Animesh Manna <animesh.manna@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.h         | 4 ++++
>  drivers/gpu/drm/i915/intel_dsi.c        | 8 ++++++++
>  drivers/gpu/drm/i915/intel_runtime_pm.c | 6 ++++++
>  3 files changed, 18 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 65a2cd0..c484df8 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -122,6 +122,8 @@ enum transcoder {
>  	TRANSCODER_B,
>  	TRANSCODER_C,
>  	TRANSCODER_EDP,
> +	TRANSCODER_MIPI_A,
> +	TRANSCODER_MIPI_C,
>  	I915_MAX_TRANSCODERS
>  };
>  #define transcoder_name(t) ((t) + 'A')
> @@ -176,6 +178,8 @@ enum intel_display_power_domain {
>  	POWER_DOMAIN_TRANSCODER_B,
>  	POWER_DOMAIN_TRANSCODER_C,
>  	POWER_DOMAIN_TRANSCODER_EDP,
> +	POWER_DOMAIN_TRANSCODER_MIPI_A,
> +	POWER_DOMAIN_TRANSCODER_MIPI_C,
>  	POWER_DOMAIN_PORT_DDI_A_LANES,
>  	POWER_DOMAIN_PORT_DDI_B_LANES,
>  	POWER_DOMAIN_PORT_DDI_C_LANES,
> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
> index 91cef35..4f2b513 100644
> --- a/drivers/gpu/drm/i915/intel_dsi.c
> +++ b/drivers/gpu/drm/i915/intel_dsi.c
> @@ -273,6 +273,7 @@ static bool intel_dsi_compute_config(struct intel_encoder *encoder,
>  	struct intel_connector *intel_connector = intel_dsi->attached_connector;
>  	struct drm_display_mode *fixed_mode = intel_connector->panel.fixed_mode;
>  	struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode;
> +	struct drm_device *dev = intel_connector->base.dev;
>  
>  	DRM_DEBUG_KMS("\n");
>  
> @@ -284,6 +285,13 @@ static bool intel_dsi_compute_config(struct intel_encoder *encoder,
>  	/* DSI uses short packets for sync events, so clear mode flags for DSI */
>  	adjusted_mode->flags = 0;
>  
> +	if (IS_BROXTON(dev)) {
> +		if (intel_dsi->ports & (1 << PORT_A))
> +			pipe_config->cpu_transcoder = TRANSCODER_MIPI_A;
> +		else
> +			pipe_config->cpu_transcoder = TRANSCODER_MIPI_C;
> +	}
> +
>  	return true;
>  }
>  
> diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
> index bbca527..611dc1e 100644
> --- a/drivers/gpu/drm/i915/intel_runtime_pm.c
> +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
> @@ -87,6 +87,10 @@ intel_display_power_domain_str(enum intel_display_power_domain domain)
>  		return "TRANSCODER_B";
>  	case POWER_DOMAIN_TRANSCODER_C:
>  		return "TRANSCODER_C";
> +	case POWER_DOMAIN_TRANSCODER_MIPI_A:
> +		return "TRANSCODER_MIPI_A";
> +	case POWER_DOMAIN_TRANSCODER_MIPI_C:
> +		return "TRANSCODER_MIPI_C";
>  	case POWER_DOMAIN_TRANSCODER_EDP:
>  		return "TRANSCODER_EDP";
>  	case POWER_DOMAIN_PORT_DDI_A_LANES:
> @@ -403,6 +407,8 @@ static void hsw_set_power_well(struct drm_i915_private *dev_priv,
>  	BXT_DISPLAY_POWERWELL_2_POWER_DOMAINS |		\
>  	BIT(POWER_DOMAIN_PIPE_A) |			\
>  	BIT(POWER_DOMAIN_TRANSCODER_EDP) |		\
> +	BIT(POWER_DOMAIN_TRANSCODER_MIPI_A) |		\
> +	BIT(POWER_DOMAIN_TRANSCODER_MIPI_C) |		\
>  	BIT(POWER_DOMAIN_PIPE_A_PANEL_FITTER) |		\
>  	BIT(POWER_DOMAIN_PORT_DDI_A_LANES) |		\
>  	BIT(POWER_DOMAIN_AUX_A) |			\

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm/i915/bxt: Added identifier for MIPI transcoder.
  2016-02-04 12:54 ` [PATCH] " Jani Nikula
@ 2016-02-04 13:31   ` Jani Nikula
  0 siblings, 0 replies; 4+ messages in thread
From: Jani Nikula @ 2016-02-04 13:31 UTC (permalink / raw)
  To: Animesh Manna, intel-gfx

On Thu, 04 Feb 2016, Jani Nikula <jani.nikula@intel.com> wrote:
> On Wed, 03 Feb 2016, Animesh Manna <animesh.manna@intel.com> wrote:
>> Changes done:
>> - Added identifier for Mipi transcoder A and C.
>> - Added power domain identifier for newly added mipi trancoder.
>> - Initialized transcoder for mipi during compute config.
>
> Please separate the power domain control from the addition of the
> transcoders. I think the former is safer to go in.

Hmm, that probably doesn't work either. But this would require a
thorough checking of *all* uses of cpu_transcoder in bxt code paths,
ensuring we don't accidentally index registers with DSI transcoders. And
you'll also notice the transcoders are not at uniformly spread register
offsets, so you can't just assume whatever value TRANSCODER_MIPI_A will
get will be the right offset when used as cpu_transcoder.

See for example what [1] does and imagine TRANSCODER_MIPI_A for HTOTAL
et al.

BR,
Jani.

[1] http://patchwork.freedesktop.org/patch/msgid/1454502456-10556-2-git-send-email-ramalingam.c@intel.com


>
> BR,
> Jani.
>
>
>>
>> v1: Initial RFC version.
>>
>> v2: Rebased on tot.
>>
>> Cc: Jani Nikula <jani.nikula@intel.com>
>> Signed-off-by: Animesh Manna <animesh.manna@intel.com>
>> ---
>>  drivers/gpu/drm/i915/i915_drv.h         | 4 ++++
>>  drivers/gpu/drm/i915/intel_dsi.c        | 8 ++++++++
>>  drivers/gpu/drm/i915/intel_runtime_pm.c | 6 ++++++
>>  3 files changed, 18 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index 65a2cd0..c484df8 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -122,6 +122,8 @@ enum transcoder {
>>  	TRANSCODER_B,
>>  	TRANSCODER_C,
>>  	TRANSCODER_EDP,
>> +	TRANSCODER_MIPI_A,
>> +	TRANSCODER_MIPI_C,
>>  	I915_MAX_TRANSCODERS
>>  };
>>  #define transcoder_name(t) ((t) + 'A')
>> @@ -176,6 +178,8 @@ enum intel_display_power_domain {
>>  	POWER_DOMAIN_TRANSCODER_B,
>>  	POWER_DOMAIN_TRANSCODER_C,
>>  	POWER_DOMAIN_TRANSCODER_EDP,
>> +	POWER_DOMAIN_TRANSCODER_MIPI_A,
>> +	POWER_DOMAIN_TRANSCODER_MIPI_C,
>>  	POWER_DOMAIN_PORT_DDI_A_LANES,
>>  	POWER_DOMAIN_PORT_DDI_B_LANES,
>>  	POWER_DOMAIN_PORT_DDI_C_LANES,
>> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
>> index 91cef35..4f2b513 100644
>> --- a/drivers/gpu/drm/i915/intel_dsi.c
>> +++ b/drivers/gpu/drm/i915/intel_dsi.c
>> @@ -273,6 +273,7 @@ static bool intel_dsi_compute_config(struct intel_encoder *encoder,
>>  	struct intel_connector *intel_connector = intel_dsi->attached_connector;
>>  	struct drm_display_mode *fixed_mode = intel_connector->panel.fixed_mode;
>>  	struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode;
>> +	struct drm_device *dev = intel_connector->base.dev;
>>  
>>  	DRM_DEBUG_KMS("\n");
>>  
>> @@ -284,6 +285,13 @@ static bool intel_dsi_compute_config(struct intel_encoder *encoder,
>>  	/* DSI uses short packets for sync events, so clear mode flags for DSI */
>>  	adjusted_mode->flags = 0;
>>  
>> +	if (IS_BROXTON(dev)) {
>> +		if (intel_dsi->ports & (1 << PORT_A))
>> +			pipe_config->cpu_transcoder = TRANSCODER_MIPI_A;
>> +		else
>> +			pipe_config->cpu_transcoder = TRANSCODER_MIPI_C;
>> +	}
>> +
>>  	return true;
>>  }
>>  
>> diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
>> index bbca527..611dc1e 100644
>> --- a/drivers/gpu/drm/i915/intel_runtime_pm.c
>> +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
>> @@ -87,6 +87,10 @@ intel_display_power_domain_str(enum intel_display_power_domain domain)
>>  		return "TRANSCODER_B";
>>  	case POWER_DOMAIN_TRANSCODER_C:
>>  		return "TRANSCODER_C";
>> +	case POWER_DOMAIN_TRANSCODER_MIPI_A:
>> +		return "TRANSCODER_MIPI_A";
>> +	case POWER_DOMAIN_TRANSCODER_MIPI_C:
>> +		return "TRANSCODER_MIPI_C";
>>  	case POWER_DOMAIN_TRANSCODER_EDP:
>>  		return "TRANSCODER_EDP";
>>  	case POWER_DOMAIN_PORT_DDI_A_LANES:
>> @@ -403,6 +407,8 @@ static void hsw_set_power_well(struct drm_i915_private *dev_priv,
>>  	BXT_DISPLAY_POWERWELL_2_POWER_DOMAINS |		\
>>  	BIT(POWER_DOMAIN_PIPE_A) |			\
>>  	BIT(POWER_DOMAIN_TRANSCODER_EDP) |		\
>> +	BIT(POWER_DOMAIN_TRANSCODER_MIPI_A) |		\
>> +	BIT(POWER_DOMAIN_TRANSCODER_MIPI_C) |		\
>>  	BIT(POWER_DOMAIN_PIPE_A_PANEL_FITTER) |		\
>>  	BIT(POWER_DOMAIN_PORT_DDI_A_LANES) |		\
>>  	BIT(POWER_DOMAIN_AUX_A) |			\

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-02-04 13:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-03 13:42 [PATCH] drm/i915/bxt: Added identifier for MIPI transcoder Animesh Manna
2016-02-03 14:15 ` ✓ Fi.CI.BAT: success for " Patchwork
2016-02-04 12:54 ` [PATCH] " Jani Nikula
2016-02-04 13:31   ` Jani Nikula

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.