All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rodrigo Vivi <rodrigo.vivi@gmail.com>
To: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: intel-gfx <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 10/23] drm/i915: Move HAS_RC6 definition to platform definition
Date: Thu, 21 Jul 2016 09:45:45 -0700	[thread overview]
Message-ID: <CABVU7+sYTBxzTVWcXu+NtL3hKBZefYhLmQ8pPazCbgkdEkPAKg@mail.gmail.com> (raw)
In-Reply-To: <5790A905.1040300@linux.intel.com>

On Thu, Jul 21, 2016 at 3:50 AM, Tvrtko Ursulin
<tvrtko.ursulin@linux.intel.com> wrote:
>
> 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.

Well, right now we have 3 issues that this series address:

1 - unify/standardize the way we introduce a feature in a giving platform.
2 - have a view to all features available on a giving platform.
3 - Make platform enabling with legacy features easy

the only downside is indeed for some cases it is getting hard now to answer:
"which platforms support this specific feature?"
But anyways they are all organized in only one file on structs and
macros that are
easy to navigate and understand.

>
> 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);

But if you do this you loose the

>
> For completeness:
>
> #define _HAS_RC6(dev)           (INTEL_INFO(dev)->gen >= 6)

Maybe a comment here would solve this downside:

/* RC6 is supported on all platforms starting on gen6. */
#define HAS_RC6(dev)            (INTEL_INFO(dev)->has_rc6)

or something like this...

Thanks,
Rodrigo.

>
> 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



-- 
Rodrigo Vivi
Blog: http://blog.vivi.eng.br
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2016-07-21 16:45 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
2016-07-21 16:45     ` Rodrigo Vivi [this message]
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=CABVU7+sYTBxzTVWcXu+NtL3hKBZefYhLmQ8pPazCbgkdEkPAKg@mail.gmail.com \
    --to=rodrigo.vivi@gmail.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=tvrtko.ursulin@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.