public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Carlos Santa <carlos.santa@intel.com>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 10/23] drm/i915: Move HAS_RC6 definition to platform definition
Date: Thu, 21 Jul 2016 11:50:45 +0100	[thread overview]
Message-ID: <5790A905.1040300@linux.intel.com> (raw)
In-Reply-To: <1469036435-18918-11-git-send-email-carlos.santa@intel.com>


On 20/07/16 18:40, Carlos Santa wrote:
> Moving all GPU features to the platform struct definition allows for
> 	- standard place when adding new features from new platforms
> 	- possible to see supported features when dumping struct
> 	  definitions
>
> Signed-off-by: Carlos Santa <carlos.santa@intel.com>
> ---
>   drivers/gpu/drm/i915/i915_drv.h | 3 ++-
>   drivers/gpu/drm/i915/i915_pci.c | 5 +++++
>   2 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index a326a88..75131a0 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -775,6 +775,7 @@ struct intel_csr {
>   	func(has_guc) sep \
>   	func(has_guc_ucode) sep \
>   	func(has_guc_sched) sep \
> +	func(has_rc6) sep \
>   	func(has_resource_streamer) sep \
>   	func(has_pipe_cxsr) sep \
>   	func(has_hotplug) sep \
> @@ -2856,7 +2857,7 @@ struct drm_i915_cmd_table {
>   #define HAS_FPGA_DBG_UNCLAIMED(dev)	(INTEL_INFO(dev)->has_fpga_dbg)
>   #define HAS_PSR(dev)		(INTEL_INFO(dev)->has_psr)
>   #define HAS_RUNTIME_PM(dev)	(INTEL_INFO(dev)->has_runtime_pm)
> -#define HAS_RC6(dev)		(INTEL_INFO(dev)->gen >= 6)
> +#define HAS_RC6(dev)		(INTEL_INFO(dev)->has_rc6)
>   #define HAS_RC6p(dev)		(IS_GEN6(dev) || IS_IVYBRIDGE(dev))
>
>   #define HAS_CSR(dev)	(INTEL_INFO(dev)->has_csr)
> diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
> index f59ad4b..e10fb5c 100644
> --- a/drivers/gpu/drm/i915/i915_pci.c
> +++ b/drivers/gpu/drm/i915/i915_pci.c
> @@ -200,6 +200,7 @@ static const struct intel_device_info intel_ironlake_m_info = {
>   	.has_fbc = 1, \
>   	.has_runtime_pm = 1, \
>   	.has_core_ring_freq = 1, \
> +	.has_rc6 = 1, \

This platform claims to be Gen5 so no RC6.

I have a slight reservation on all this because sometimes it is very 
useful to see that "INTEL_INFO(dev)->gen >= 6". When sprinkled around 
like here it becomes harder to figure out which feature is supported by 
which platforms.

Once I tried something like this work (mind you I was concentrating only 
on HAS_ and IS_ macros which contain multiple conditionals - it was an 
excercise in reducing multiple conditionals at runtime), I decided to 
keep the macro but renamed it to have a leading underscore. And I did 
the assignment to device_info in an appropriate place, for example:

device_info->has_rc6 = _HAS_RC6(dev_priv);

For completeness:

#define _HAS_RC6(dev)		(INTEL_INFO(dev)->gen >= 6)
#define HAS_RC6(dev)		(INTEL_INFO(dev)->has_rc6)

I was not too happy with that approach either, but I think the downside 
I mentioned above is real.

Regards,

Tvrtko

>   	.ring_mask = RENDER_RING | BSD_RING | BLT_RING, \
>   	.has_llc = 1, \
>   	GEN_DEFAULT_PIPEOFFSETS, \
> @@ -219,6 +220,7 @@ static const struct intel_device_info intel_sandybridge_m_info = {
>   	.need_gfx_hws = 1, .has_hotplug = 1, \
>   	.has_fbc = 1, \
>   	.has_core_ring_freq = 1, \
> +	.has_rc6 = 1, \
>   	.ring_mask = RENDER_RING | BSD_RING | BLT_RING, \
>   	.has_llc = 1, \
>   	GEN_DEFAULT_PIPEOFFSETS, \
> @@ -245,6 +247,7 @@ static const struct intel_device_info intel_ivybridge_q_info = {
>   	.gen = 7, .num_pipes = 2, \
>   	.has_psr = 1, \
>   	.has_runtime_pm = 1, \
> +	.has_rc6 = 1, \
>   	.need_gfx_hws = 1, .has_hotplug = 1, \
>   	.ring_mask = RENDER_RING | BSD_RING | BLT_RING, \
>   	.display_mmio_offset = VLV_DISPLAY_BASE, \
> @@ -320,6 +323,7 @@ static const struct intel_device_info intel_cherryview_info = {
>   	.has_psr = 1,
>   	.has_runtime_pm = 1,
>   	.has_resource_streamer = 1,
> +	.has_rc6 = 1,
>   	.display_mmio_offset = VLV_DISPLAY_BASE,
>   	GEN_CHV_PIPEOFFSETS,
>   	CURSOR_OFFSETS,
> @@ -358,6 +362,7 @@ static const struct intel_device_info intel_broxton_info = {
>   	.has_runtime_pm = 1,
>   	.has_pooled_eu = 0,
>   	.has_resource_streamer = 1,
> +	.has_rc6 = 1,
>   	GEN_DEFAULT_PIPEOFFSETS,
>   	IVB_CURSOR_OFFSETS,
>   	BDW_COLORS,
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2016-07-21 10:50 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-20 17:40 [PATCH 00/23] drm/i915: Organize most GPU features by platform Carlos Santa
2016-07-20 17:40 ` [PATCH 01/23] drm/i915: Move HAS_PSR definition to platform struct definition Carlos Santa
2016-07-20 20:16   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 02/23] drm/i915: Introduce GEN6_FEATURES for device info Carlos Santa
2016-07-20 20:17   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 03/23] drm/i915: Move HAS_RUNTIME_PM definition to platform Carlos Santa
2016-07-20 20:25   ` Rodrigo Vivi
2016-07-21 13:34     ` Imre Deak
2016-08-09 13:49       ` Ville Syrjälä
2016-08-11 23:38         ` Carlos Santa
2016-08-01 13:02   ` Jani Nikula
2016-07-20 17:40 ` [PATCH 04/23] drm/i915: Move HAS_CORE_RING_FREQ definition to platform definition Carlos Santa
2016-07-20 20:28   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 05/23] drm/i915: Move HAS_CSR " Carlos Santa
2016-07-20 21:04   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 06/23] drm/i915: Move HAS_GUC " Carlos Santa
2016-07-20 17:40 ` [PATCH 07/23] drm/i915: Move HAS_GUC_UCODE " Carlos Santa
2016-07-20 21:07   ` Rodrigo Vivi
2016-07-21 10:38     ` Tvrtko Ursulin
2016-07-21 17:10       ` Dave Gordon
2016-08-02 10:10         ` Dave Gordon
2016-08-02 14:16           ` Daniel Vetter
2016-08-04 10:13             ` Dave Gordon
2016-07-20 17:40 ` [PATCH 08/23] drm/i915: Move HAS_GUC_SCHED " Carlos Santa
2016-07-20 21:07   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 09/23] drm/i915: Move HAS_RESOURCE_STREAMER " Carlos Santa
2016-07-20 21:14   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 10/23] drm/i915: Move HAS_RC6 " Carlos Santa
2016-07-20 21:16   ` Rodrigo Vivi
2016-07-21 10:50   ` Tvrtko Ursulin [this message]
2016-07-21 16:45     ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 11/23] drm/i915: Move HAS_RC6p " Carlos Santa
2016-07-20 21:18   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 12/23] drm/i915: Move HAS_DP_MST " Carlos Santa
2016-07-20 21:21   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 13/23] drm/i915: Introduce GEN5_FEATURES for device info Carlos Santa
2016-07-20 21:22   ` Rodrigo Vivi
2016-07-20 21:24     ` Rodrigo Vivi
2016-08-01 13:05   ` Jani Nikula
2016-07-20 17:40 ` [PATCH 14/23] drm/i915: Move HAS_AUX_IRQ definition to platform definition Carlos Santa
2016-07-20 21:40   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 15/23] drm/i915: Move HAS_GMBUS_IRQ " Carlos Santa
2016-07-20 21:41   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 16/23] drm/i915: Introduce GEN4_FEATURES for device info Carlos Santa
2016-07-20 21:44   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 17/23] drm/i915: Introduce GEN3_FEATURES " Carlos Santa
2016-07-20 21:45   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 18/23] drm/i915: Introduce GEN2 FEATURES " Carlos Santa
2016-07-20 21:47   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 19/23] drm/915: Move HAS_FW_BLC definition to platform Carlos Santa
2016-07-20 21:48   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 20/23] drm/i915: Move HAS_HW_CONTEXTS " Carlos Santa
2016-07-20 21:49   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 21/23] drm/i915: Move HAS_LOGICAL_RING_CONTEXTS definition to platform definition Carlos Santa
2016-07-20 21:51   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 22/23] drm/i915: Move HAS_L3_DPF " Carlos Santa
2016-07-20 21:52   ` Rodrigo Vivi
2016-07-20 17:40 ` [PATCH 23/23] drm/i915: Move HAS_GMCH_DISPLAY definition to platform Carlos Santa
2016-07-20 21:55   ` Rodrigo Vivi
2016-07-21  6:11 ` ✗ Ro.CI.BAT: failure for drm/i915: Organize most GPU features by platform Patchwork
2016-08-01 13:08 ` [PATCH 00/23] " 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=5790A905.1040300@linux.intel.com \
    --to=tvrtko.ursulin@linux.intel.com \
    --cc=carlos.santa@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox