All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Use bitmask for IS_REVID checking
@ 2016-05-10 13:02 Tvrtko Ursulin
  2016-05-10 13:33 ` ✗ Ro.CI.BAT: warning for " Patchwork
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Tvrtko Ursulin @ 2016-05-10 13:02 UTC (permalink / raw)
  To: Intel-gfx; +Cc: Jani Nikula

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

With this scheme all call sites of IS_SKL_REVID and IS_BXT_REVID
result in a maximum of one conditional jump instruction (was
three before) and overall reduction in code size.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_dma.c | 11 +++++++++++
 drivers/gpu/drm/i915/i915_drv.h | 24 +++++++++++++++++++-----
 2 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 46ac1da64a09..1ae812436827 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1072,6 +1072,17 @@ static int i915_driver_init_early(struct drm_i915_private *dev_priv,
 	memcpy(device_info, info, sizeof(dev_priv->info));
 	device_info->device_id = dev->pdev->device;
 
+	/* For unknown revisions mask stays at zero which is correct. */
+	if (dev->pdev->revision <
+	    sizeof(device_info->revision_mask) * BITS_PER_BYTE)
+		device_info->revision_mask = BIT(dev->pdev->revision);
+
+	if (IS_SKYLAKE(dev_priv))
+		device_info->skl_rev_mask = ~0;
+
+	if (IS_BROXTON(dev_priv))
+		device_info->bxt_rev_mask = ~0;
+
 	spin_lock_init(&dev_priv->irq_lock);
 	spin_lock_init(&dev_priv->gpu_error.lock);
 	mutex_init(&dev_priv->backlight_lock);
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 26e7de415966..fbeb68e9ec96 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -757,6 +757,9 @@ struct intel_csr {
 struct intel_device_info {
 	u32 display_mmio_offset;
 	u16 device_id;
+	u8 revision_mask;
+	u8 skl_rev_mask;
+	u8 bxt_rev_mask;
 	u8 num_pipes:3;
 	u8 num_sprites[I915_MAX_PIPES];
 	u8 gen;
@@ -2519,14 +2522,23 @@ struct drm_i915_cmd_table {
 #define INTEL_DEVID(p)	(INTEL_INFO(p)->device_id)
 #define INTEL_REVID(p)	(__I915__(p)->dev->pdev->revision)
 
-#define REVID_FOREVER		0xff
+#define REVID_FOREVER		0
+
 /*
  * Return true if revision is in range [since,until] inclusive.
  *
  * Use 0 for open-ended since, and REVID_FOREVER for open-ended until.
  */
-#define IS_REVID(p, since, until) \
-	(INTEL_REVID(p) >= (since) && INTEL_REVID(p) <= (until))
+#define IS_REVID(p, mask, since, until) ({\
+	unsigned int __s = (since), __e = (until); \
+	BUILD_BUG_ON(!__builtin_constant_p(since)); \
+	BUILD_BUG_ON(!__builtin_constant_p(until)); \
+	BUILD_BUG_ON(since >= sizeof(INTEL_INFO(p)->revision_mask) * BITS_PER_BYTE); \
+	BUILD_BUG_ON(until >= sizeof(INTEL_INFO(p)->revision_mask) * BITS_PER_BYTE); \
+	if ((__e) == REVID_FOREVER) \
+		__e = BITS_PER_LONG - 1; \
+	!!(INTEL_INFO(p)->revision_mask & (mask) & GENMASK((__e), (__s))); \
+})
 
 #define IS_I830(dev)		(INTEL_DEVID(dev) == 0x3577)
 #define IS_845G(dev)		(INTEL_DEVID(dev) == 0x2562)
@@ -2605,14 +2617,16 @@ struct drm_i915_cmd_table {
 #define SKL_REVID_E0		0x4
 #define SKL_REVID_F0		0x5
 
-#define IS_SKL_REVID(p, since, until) (IS_SKYLAKE(p) && IS_REVID(p, since, until))
+#define IS_SKL_REVID(p, since, until) IS_REVID(p, INTEL_INFO(p)->skl_rev_mask, \
+				               since, until)
 
 #define BXT_REVID_A0		0x0
 #define BXT_REVID_A1		0x1
 #define BXT_REVID_B0		0x3
 #define BXT_REVID_C0		0x9
 
-#define IS_BXT_REVID(p, since, until) (IS_BROXTON(p) && IS_REVID(p, since, until))
+#define IS_BXT_REVID(p, since, until) IS_REVID(p, INTEL_INFO(p)->bxt_rev_mask, \
+				               since, until)
 
 /*
  * The genX designation typically refers to the render engine, so render
-- 
1.9.1

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

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

* ✗ Ro.CI.BAT: warning for drm/i915: Use bitmask for IS_REVID checking
  2016-05-10 13:02 [PATCH] drm/i915: Use bitmask for IS_REVID checking Tvrtko Ursulin
@ 2016-05-10 13:33 ` Patchwork
  2016-05-10 13:33 ` [PATCH] " Jani Nikula
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2016-05-10 13:33 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Use bitmask for IS_REVID checking
URL   : https://patchwork.freedesktop.org/series/6972/
State : warning

== Summary ==

Series 6972v1 drm/i915: Use bitmask for IS_REVID checking
http://patchwork.freedesktop.org/api/1.0/series/6972/revisions/1/mbox

Test kms_pipe_crc_basic:
        Subgroup hang-read-crc-pipe-a:
                pass       -> DMESG-WARN (ro-ivb2-i7-3770)
        Subgroup suspend-read-crc-pipe-b:
                dmesg-warn -> PASS       (ro-bdw-i7-5557U)
Test kms_sink_crc_basic:
                pass       -> SKIP       (ro-skl-i7-6700hq)

ro-bdw-i5-5250u  total:219  pass:202  dwarn:4   dfail:0   fail:0   skip:13 
ro-bdw-i7-5557U  total:219  pass:205  dwarn:0   dfail:0   fail:0   skip:14 
ro-bdw-i7-5600u  total:219  pass:187  dwarn:0   dfail:0   fail:0   skip:32 
ro-bsw-n3050     total:219  pass:175  dwarn:0   dfail:0   fail:2   skip:42 
ro-byt-n2820     total:218  pass:174  dwarn:0   dfail:0   fail:3   skip:41 
ro-hsw-i3-4010u  total:218  pass:193  dwarn:0   dfail:0   fail:0   skip:25 
ro-hsw-i7-4770r  total:219  pass:194  dwarn:0   dfail:0   fail:0   skip:25 
ro-ilk-i7-620lm  total:219  pass:151  dwarn:0   dfail:0   fail:1   skip:67 
ro-ilk1-i5-650   total:214  pass:152  dwarn:0   dfail:0   fail:1   skip:61 
ro-ivb-i7-3770   total:219  pass:183  dwarn:0   dfail:0   fail:0   skip:36 
ro-ivb2-i7-3770  total:219  pass:186  dwarn:1   dfail:0   fail:0   skip:32 
ro-skl-i7-6700hq total:214  pass:189  dwarn:0   dfail:0   fail:0   skip:25 
ro-snb-i7-2620M  total:219  pass:177  dwarn:0   dfail:0   fail:1   skip:41 

Results at /archive/results/CI_IGT_test/RO_Patchwork_847/

2d4abf3 drm-intel-nightly: 2016y-05m-10d-09h-36m-54s UTC integration manifest
0a5a626 drm/i915: Use bitmask for IS_REVID checking

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

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

* Re: [PATCH] drm/i915: Use bitmask for IS_REVID checking
  2016-05-10 13:02 [PATCH] drm/i915: Use bitmask for IS_REVID checking Tvrtko Ursulin
  2016-05-10 13:33 ` ✗ Ro.CI.BAT: warning for " Patchwork
@ 2016-05-10 13:33 ` Jani Nikula
  2016-05-10 13:59   ` Tvrtko Ursulin
  2016-05-10 13:48 ` ✗ Ro.CI.BAT: warning for " Patchwork
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Jani Nikula @ 2016-05-10 13:33 UTC (permalink / raw)
  To: Tvrtko Ursulin, Intel-gfx

On Tue, 10 May 2016, Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> With this scheme all call sites of IS_SKL_REVID and IS_BXT_REVID
> result in a maximum of one conditional jump instruction (was
> three before) and overall reduction in code size.

IMO we really shouldn't bother with this. The end goal is that we remove
all of these when we decide we no longer care about early
(non-production) revisions for a platform. For Skylake I'd argue we are
beyond this point.

BR,
Jani.

>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_dma.c | 11 +++++++++++
>  drivers/gpu/drm/i915/i915_drv.h | 24 +++++++++++++++++++-----
>  2 files changed, 30 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index 46ac1da64a09..1ae812436827 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -1072,6 +1072,17 @@ static int i915_driver_init_early(struct drm_i915_private *dev_priv,
>  	memcpy(device_info, info, sizeof(dev_priv->info));
>  	device_info->device_id = dev->pdev->device;
>  
> +	/* For unknown revisions mask stays at zero which is correct. */
> +	if (dev->pdev->revision <
> +	    sizeof(device_info->revision_mask) * BITS_PER_BYTE)
> +		device_info->revision_mask = BIT(dev->pdev->revision);
> +
> +	if (IS_SKYLAKE(dev_priv))
> +		device_info->skl_rev_mask = ~0;
> +
> +	if (IS_BROXTON(dev_priv))
> +		device_info->bxt_rev_mask = ~0;
> +
>  	spin_lock_init(&dev_priv->irq_lock);
>  	spin_lock_init(&dev_priv->gpu_error.lock);
>  	mutex_init(&dev_priv->backlight_lock);
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 26e7de415966..fbeb68e9ec96 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -757,6 +757,9 @@ struct intel_csr {
>  struct intel_device_info {
>  	u32 display_mmio_offset;
>  	u16 device_id;
> +	u8 revision_mask;
> +	u8 skl_rev_mask;
> +	u8 bxt_rev_mask;
>  	u8 num_pipes:3;
>  	u8 num_sprites[I915_MAX_PIPES];
>  	u8 gen;
> @@ -2519,14 +2522,23 @@ struct drm_i915_cmd_table {
>  #define INTEL_DEVID(p)	(INTEL_INFO(p)->device_id)
>  #define INTEL_REVID(p)	(__I915__(p)->dev->pdev->revision)
>  
> -#define REVID_FOREVER		0xff
> +#define REVID_FOREVER		0
> +
>  /*
>   * Return true if revision is in range [since,until] inclusive.
>   *
>   * Use 0 for open-ended since, and REVID_FOREVER for open-ended until.
>   */
> -#define IS_REVID(p, since, until) \
> -	(INTEL_REVID(p) >= (since) && INTEL_REVID(p) <= (until))
> +#define IS_REVID(p, mask, since, until) ({\
> +	unsigned int __s = (since), __e = (until); \
> +	BUILD_BUG_ON(!__builtin_constant_p(since)); \
> +	BUILD_BUG_ON(!__builtin_constant_p(until)); \
> +	BUILD_BUG_ON(since >= sizeof(INTEL_INFO(p)->revision_mask) * BITS_PER_BYTE); \
> +	BUILD_BUG_ON(until >= sizeof(INTEL_INFO(p)->revision_mask) * BITS_PER_BYTE); \
> +	if ((__e) == REVID_FOREVER) \
> +		__e = BITS_PER_LONG - 1; \
> +	!!(INTEL_INFO(p)->revision_mask & (mask) & GENMASK((__e), (__s))); \
> +})
>  
>  #define IS_I830(dev)		(INTEL_DEVID(dev) == 0x3577)
>  #define IS_845G(dev)		(INTEL_DEVID(dev) == 0x2562)
> @@ -2605,14 +2617,16 @@ struct drm_i915_cmd_table {
>  #define SKL_REVID_E0		0x4
>  #define SKL_REVID_F0		0x5
>  
> -#define IS_SKL_REVID(p, since, until) (IS_SKYLAKE(p) && IS_REVID(p, since, until))
> +#define IS_SKL_REVID(p, since, until) IS_REVID(p, INTEL_INFO(p)->skl_rev_mask, \
> +				               since, until)
>  
>  #define BXT_REVID_A0		0x0
>  #define BXT_REVID_A1		0x1
>  #define BXT_REVID_B0		0x3
>  #define BXT_REVID_C0		0x9
>  
> -#define IS_BXT_REVID(p, since, until) (IS_BROXTON(p) && IS_REVID(p, since, until))
> +#define IS_BXT_REVID(p, since, until) IS_REVID(p, INTEL_INFO(p)->bxt_rev_mask, \
> +				               since, until)
>  
>  /*
>   * The genX designation typically refers to the render engine, so render

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

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

* ✗ Ro.CI.BAT: warning for drm/i915: Use bitmask for IS_REVID checking
  2016-05-10 13:02 [PATCH] drm/i915: Use bitmask for IS_REVID checking Tvrtko Ursulin
  2016-05-10 13:33 ` ✗ Ro.CI.BAT: warning for " Patchwork
  2016-05-10 13:33 ` [PATCH] " Jani Nikula
@ 2016-05-10 13:48 ` Patchwork
  2016-05-10 13:53 ` [PATCH v2] " Tvrtko Ursulin
  2016-05-10 14:26 ` ✗ Ro.CI.BAT: failure for drm/i915: Use bitmask for IS_REVID checking (rev2) Patchwork
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2016-05-10 13:48 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Use bitmask for IS_REVID checking
URL   : https://patchwork.freedesktop.org/series/6972/
State : warning

== Summary ==

Series 6972v1 drm/i915: Use bitmask for IS_REVID checking
http://patchwork.freedesktop.org/api/1.0/series/6972/revisions/1/mbox

Test kms_pipe_crc_basic:
        Subgroup hang-read-crc-pipe-a:
                pass       -> DMESG-WARN (ro-ivb2-i7-3770)
        Subgroup suspend-read-crc-pipe-b:
                dmesg-warn -> PASS       (ro-bdw-i7-5557U)
Test kms_sink_crc_basic:
                pass       -> SKIP       (ro-skl-i7-6700hq)

ro-bdw-i5-5250u  total:219  pass:202  dwarn:4   dfail:0   fail:0   skip:13 
ro-bdw-i7-5557U  total:219  pass:205  dwarn:0   dfail:0   fail:0   skip:14 
ro-bdw-i7-5600u  total:219  pass:187  dwarn:0   dfail:0   fail:0   skip:32 
ro-bsw-n3050     total:219  pass:175  dwarn:0   dfail:0   fail:2   skip:42 
ro-byt-n2820     total:218  pass:174  dwarn:0   dfail:0   fail:3   skip:41 
ro-hsw-i3-4010u  total:218  pass:193  dwarn:0   dfail:0   fail:0   skip:25 
ro-hsw-i7-4770r  total:219  pass:194  dwarn:0   dfail:0   fail:0   skip:25 
ro-ilk-i7-620lm  total:219  pass:151  dwarn:0   dfail:0   fail:1   skip:67 
ro-ilk1-i5-650   total:214  pass:152  dwarn:0   dfail:0   fail:1   skip:61 
ro-ivb-i7-3770   total:219  pass:183  dwarn:0   dfail:0   fail:0   skip:36 
ro-ivb2-i7-3770  total:219  pass:186  dwarn:1   dfail:0   fail:0   skip:32 
ro-skl-i7-6700hq total:214  pass:189  dwarn:0   dfail:0   fail:0   skip:25 
ro-snb-i7-2620M  total:219  pass:177  dwarn:0   dfail:0   fail:1   skip:41 

Results at /archive/results/CI_IGT_test/RO_Patchwork_847/

2d4abf3 drm-intel-nightly: 2016y-05m-10d-09h-36m-54s UTC integration manifest
0a5a626 drm/i915: Use bitmask for IS_REVID checking

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

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

* [PATCH v2] drm/i915: Use bitmask for IS_REVID checking
  2016-05-10 13:02 [PATCH] drm/i915: Use bitmask for IS_REVID checking Tvrtko Ursulin
                   ` (2 preceding siblings ...)
  2016-05-10 13:48 ` ✗ Ro.CI.BAT: warning for " Patchwork
@ 2016-05-10 13:53 ` Tvrtko Ursulin
  2016-05-10 14:06   ` Tvrtko Ursulin
  2016-05-10 14:26 ` ✗ Ro.CI.BAT: failure for drm/i915: Use bitmask for IS_REVID checking (rev2) Patchwork
  4 siblings, 1 reply; 9+ messages in thread
From: Tvrtko Ursulin @ 2016-05-10 13:53 UTC (permalink / raw)
  To: Intel-gfx; +Cc: Jani Nikula

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

With this scheme all call sites of IS_SKL_REVID and IS_BXT_REVID
result in a maximum of one conditional jump instruction (was
three before) and overall reduction in code size.

v2: Simplified, now saves ~880 bytes of text.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_dma.c |  8 ++++++++
 drivers/gpu/drm/i915/i915_drv.h | 21 ++++++++++++++++-----
 2 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 46ac1da64a09..f2ad78d8296f 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1072,6 +1072,14 @@ static int i915_driver_init_early(struct drm_i915_private *dev_priv,
 	memcpy(device_info, info, sizeof(dev_priv->info));
 	device_info->device_id = dev->pdev->device;
 
+	/* For unknown revisions mask stays at zero which is correct. */
+	if (IS_SKYLAKE(dev_priv) && dev->pdev->revision <
+	    sizeof(device_info->skl_rev_mask) * BITS_PER_BYTE)
+		device_info->skl_rev_mask = BIT(dev->pdev->revision);
+	else if (IS_BROXTON(dev_priv) && dev->pdev->revision <
+	         sizeof(device_info->bxt_rev_mask) * BITS_PER_BYTE)
+		device_info->bxt_rev_mask = BIT(dev->pdev->revision);
+
 	spin_lock_init(&dev_priv->irq_lock);
 	spin_lock_init(&dev_priv->gpu_error.lock);
 	mutex_init(&dev_priv->backlight_lock);
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 26e7de415966..18eee575b9ae 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -757,6 +757,8 @@ struct intel_csr {
 struct intel_device_info {
 	u32 display_mmio_offset;
 	u16 device_id;
+	u8 skl_rev_mask;
+	u8 bxt_rev_mask;
 	u8 num_pipes:3;
 	u8 num_sprites[I915_MAX_PIPES];
 	u8 gen;
@@ -2519,14 +2521,23 @@ struct drm_i915_cmd_table {
 #define INTEL_DEVID(p)	(INTEL_INFO(p)->device_id)
 #define INTEL_REVID(p)	(__I915__(p)->dev->pdev->revision)
 
-#define REVID_FOREVER		0xff
+#define REVID_FOREVER		0
+
 /*
  * Return true if revision is in range [since,until] inclusive.
  *
  * Use 0 for open-ended since, and REVID_FOREVER for open-ended until.
  */
-#define IS_REVID(p, since, until) \
-	(INTEL_REVID(p) >= (since) && INTEL_REVID(p) <= (until))
+#define IS_REVID(p, mask, since, until) ({\
+	unsigned int __s = (since), __e = (until); \
+	BUILD_BUG_ON(!__builtin_constant_p(since)); \
+	BUILD_BUG_ON(!__builtin_constant_p(until)); \
+	BUILD_BUG_ON(since >= sizeof(INTEL_INFO(p)->mask) * BITS_PER_BYTE); \
+	BUILD_BUG_ON(until >= sizeof(INTEL_INFO(p)->mask) * BITS_PER_BYTE); \
+	if ((__e) == REVID_FOREVER) \
+		__e = BITS_PER_LONG - 1; \
+	!!(INTEL_INFO(p)->mask & GENMASK((__e), (__s))); \
+})
 
 #define IS_I830(dev)		(INTEL_DEVID(dev) == 0x3577)
 #define IS_845G(dev)		(INTEL_DEVID(dev) == 0x2562)
@@ -2605,14 +2616,14 @@ struct drm_i915_cmd_table {
 #define SKL_REVID_E0		0x4
 #define SKL_REVID_F0		0x5
 
-#define IS_SKL_REVID(p, since, until) (IS_SKYLAKE(p) && IS_REVID(p, since, until))
+#define IS_SKL_REVID(p, since, until) IS_REVID(p, skl_rev_mask, since, until)
 
 #define BXT_REVID_A0		0x0
 #define BXT_REVID_A1		0x1
 #define BXT_REVID_B0		0x3
 #define BXT_REVID_C0		0x9
 
-#define IS_BXT_REVID(p, since, until) (IS_BROXTON(p) && IS_REVID(p, since, until))
+#define IS_BXT_REVID(p, since, until) IS_REVID(p, bxt_rev_mask, since, until)
 
 /*
  * The genX designation typically refers to the render engine, so render
-- 
1.9.1

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

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

* Re: [PATCH] drm/i915: Use bitmask for IS_REVID checking
  2016-05-10 13:33 ` [PATCH] " Jani Nikula
@ 2016-05-10 13:59   ` Tvrtko Ursulin
  2016-05-11 11:58     ` Jani Nikula
  0 siblings, 1 reply; 9+ messages in thread
From: Tvrtko Ursulin @ 2016-05-10 13:59 UTC (permalink / raw)
  To: Jani Nikula, Intel-gfx


Hi,

On 10/05/16 14:33, Jani Nikula wrote:
> On Tue, 10 May 2016, Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>
>> With this scheme all call sites of IS_SKL_REVID and IS_BXT_REVID
>> result in a maximum of one conditional jump instruction (was
>> three before) and overall reduction in code size.
>
> IMO we really shouldn't bother with this. The end goal is that we remove
> all of these when we decide we no longer care about early
> (non-production) revisions for a platform. For Skylake I'd argue we are
> beyond this point.

Thought that simply removing everything guarded by IS_SKL_REVID might be 
possible never crossed my mind. :) Which one is the first production 
stepping then?

Regards,

Tvrtko.

>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>> Cc: Jani Nikula <jani.nikula@intel.com>
>> ---
>>   drivers/gpu/drm/i915/i915_dma.c | 11 +++++++++++
>>   drivers/gpu/drm/i915/i915_drv.h | 24 +++++++++++++++++++-----
>>   2 files changed, 30 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
>> index 46ac1da64a09..1ae812436827 100644
>> --- a/drivers/gpu/drm/i915/i915_dma.c
>> +++ b/drivers/gpu/drm/i915/i915_dma.c
>> @@ -1072,6 +1072,17 @@ static int i915_driver_init_early(struct drm_i915_private *dev_priv,
>>   	memcpy(device_info, info, sizeof(dev_priv->info));
>>   	device_info->device_id = dev->pdev->device;
>>
>> +	/* For unknown revisions mask stays at zero which is correct. */
>> +	if (dev->pdev->revision <
>> +	    sizeof(device_info->revision_mask) * BITS_PER_BYTE)
>> +		device_info->revision_mask = BIT(dev->pdev->revision);
>> +
>> +	if (IS_SKYLAKE(dev_priv))
>> +		device_info->skl_rev_mask = ~0;
>> +
>> +	if (IS_BROXTON(dev_priv))
>> +		device_info->bxt_rev_mask = ~0;
>> +
>>   	spin_lock_init(&dev_priv->irq_lock);
>>   	spin_lock_init(&dev_priv->gpu_error.lock);
>>   	mutex_init(&dev_priv->backlight_lock);
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index 26e7de415966..fbeb68e9ec96 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -757,6 +757,9 @@ struct intel_csr {
>>   struct intel_device_info {
>>   	u32 display_mmio_offset;
>>   	u16 device_id;
>> +	u8 revision_mask;
>> +	u8 skl_rev_mask;
>> +	u8 bxt_rev_mask;
>>   	u8 num_pipes:3;
>>   	u8 num_sprites[I915_MAX_PIPES];
>>   	u8 gen;
>> @@ -2519,14 +2522,23 @@ struct drm_i915_cmd_table {
>>   #define INTEL_DEVID(p)	(INTEL_INFO(p)->device_id)
>>   #define INTEL_REVID(p)	(__I915__(p)->dev->pdev->revision)
>>
>> -#define REVID_FOREVER		0xff
>> +#define REVID_FOREVER		0
>> +
>>   /*
>>    * Return true if revision is in range [since,until] inclusive.
>>    *
>>    * Use 0 for open-ended since, and REVID_FOREVER for open-ended until.
>>    */
>> -#define IS_REVID(p, since, until) \
>> -	(INTEL_REVID(p) >= (since) && INTEL_REVID(p) <= (until))
>> +#define IS_REVID(p, mask, since, until) ({\
>> +	unsigned int __s = (since), __e = (until); \
>> +	BUILD_BUG_ON(!__builtin_constant_p(since)); \
>> +	BUILD_BUG_ON(!__builtin_constant_p(until)); \
>> +	BUILD_BUG_ON(since >= sizeof(INTEL_INFO(p)->revision_mask) * BITS_PER_BYTE); \
>> +	BUILD_BUG_ON(until >= sizeof(INTEL_INFO(p)->revision_mask) * BITS_PER_BYTE); \
>> +	if ((__e) == REVID_FOREVER) \
>> +		__e = BITS_PER_LONG - 1; \
>> +	!!(INTEL_INFO(p)->revision_mask & (mask) & GENMASK((__e), (__s))); \
>> +})
>>
>>   #define IS_I830(dev)		(INTEL_DEVID(dev) == 0x3577)
>>   #define IS_845G(dev)		(INTEL_DEVID(dev) == 0x2562)
>> @@ -2605,14 +2617,16 @@ struct drm_i915_cmd_table {
>>   #define SKL_REVID_E0		0x4
>>   #define SKL_REVID_F0		0x5
>>
>> -#define IS_SKL_REVID(p, since, until) (IS_SKYLAKE(p) && IS_REVID(p, since, until))
>> +#define IS_SKL_REVID(p, since, until) IS_REVID(p, INTEL_INFO(p)->skl_rev_mask, \
>> +				               since, until)
>>
>>   #define BXT_REVID_A0		0x0
>>   #define BXT_REVID_A1		0x1
>>   #define BXT_REVID_B0		0x3
>>   #define BXT_REVID_C0		0x9
>>
>> -#define IS_BXT_REVID(p, since, until) (IS_BROXTON(p) && IS_REVID(p, since, until))
>> +#define IS_BXT_REVID(p, since, until) IS_REVID(p, INTEL_INFO(p)->bxt_rev_mask, \
>> +				               since, until)
>>
>>   /*
>>    * The genX designation typically refers to the render engine, so render
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v2] drm/i915: Use bitmask for IS_REVID checking
  2016-05-10 13:53 ` [PATCH v2] " Tvrtko Ursulin
@ 2016-05-10 14:06   ` Tvrtko Ursulin
  0 siblings, 0 replies; 9+ messages in thread
From: Tvrtko Ursulin @ 2016-05-10 14:06 UTC (permalink / raw)
  To: Intel-gfx; +Cc: Jani Nikula



On 10/05/16 14:53, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> With this scheme all call sites of IS_SKL_REVID and IS_BXT_REVID
> result in a maximum of one conditional jump instruction (was
> three before) and overall reduction in code size.
>
> v2: Simplified, now saves ~880 bytes of text.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Jani Nikula <jani.nikula@intel.com>
> ---
>   drivers/gpu/drm/i915/i915_dma.c |  8 ++++++++
>   drivers/gpu/drm/i915/i915_drv.h | 21 ++++++++++++++++-----
>   2 files changed, 24 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index 46ac1da64a09..f2ad78d8296f 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -1072,6 +1072,14 @@ static int i915_driver_init_early(struct drm_i915_private *dev_priv,
>   	memcpy(device_info, info, sizeof(dev_priv->info));
>   	device_info->device_id = dev->pdev->device;
>
> +	/* For unknown revisions mask stays at zero which is correct. */
> +	if (IS_SKYLAKE(dev_priv) && dev->pdev->revision <
> +	    sizeof(device_info->skl_rev_mask) * BITS_PER_BYTE)
> +		device_info->skl_rev_mask = BIT(dev->pdev->revision);
> +	else if (IS_BROXTON(dev_priv) && dev->pdev->revision <
> +	         sizeof(device_info->bxt_rev_mask) * BITS_PER_BYTE)
> +		device_info->bxt_rev_mask = BIT(dev->pdev->revision);
> +

No this is wrong, > /dev/null please, sorry for the noise. :)

Tvrtko

>   	spin_lock_init(&dev_priv->irq_lock);
>   	spin_lock_init(&dev_priv->gpu_error.lock);
>   	mutex_init(&dev_priv->backlight_lock);
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 26e7de415966..18eee575b9ae 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -757,6 +757,8 @@ struct intel_csr {
>   struct intel_device_info {
>   	u32 display_mmio_offset;
>   	u16 device_id;
> +	u8 skl_rev_mask;
> +	u8 bxt_rev_mask;
>   	u8 num_pipes:3;
>   	u8 num_sprites[I915_MAX_PIPES];
>   	u8 gen;
> @@ -2519,14 +2521,23 @@ struct drm_i915_cmd_table {
>   #define INTEL_DEVID(p)	(INTEL_INFO(p)->device_id)
>   #define INTEL_REVID(p)	(__I915__(p)->dev->pdev->revision)
>
> -#define REVID_FOREVER		0xff
> +#define REVID_FOREVER		0
> +
>   /*
>    * Return true if revision is in range [since,until] inclusive.
>    *
>    * Use 0 for open-ended since, and REVID_FOREVER for open-ended until.
>    */
> -#define IS_REVID(p, since, until) \
> -	(INTEL_REVID(p) >= (since) && INTEL_REVID(p) <= (until))
> +#define IS_REVID(p, mask, since, until) ({\
> +	unsigned int __s = (since), __e = (until); \
> +	BUILD_BUG_ON(!__builtin_constant_p(since)); \
> +	BUILD_BUG_ON(!__builtin_constant_p(until)); \
> +	BUILD_BUG_ON(since >= sizeof(INTEL_INFO(p)->mask) * BITS_PER_BYTE); \
> +	BUILD_BUG_ON(until >= sizeof(INTEL_INFO(p)->mask) * BITS_PER_BYTE); \
> +	if ((__e) == REVID_FOREVER) \
> +		__e = BITS_PER_LONG - 1; \
> +	!!(INTEL_INFO(p)->mask & GENMASK((__e), (__s))); \
> +})
>
>   #define IS_I830(dev)		(INTEL_DEVID(dev) == 0x3577)
>   #define IS_845G(dev)		(INTEL_DEVID(dev) == 0x2562)
> @@ -2605,14 +2616,14 @@ struct drm_i915_cmd_table {
>   #define SKL_REVID_E0		0x4
>   #define SKL_REVID_F0		0x5
>
> -#define IS_SKL_REVID(p, since, until) (IS_SKYLAKE(p) && IS_REVID(p, since, until))
> +#define IS_SKL_REVID(p, since, until) IS_REVID(p, skl_rev_mask, since, until)
>
>   #define BXT_REVID_A0		0x0
>   #define BXT_REVID_A1		0x1
>   #define BXT_REVID_B0		0x3
>   #define BXT_REVID_C0		0x9
>
> -#define IS_BXT_REVID(p, since, until) (IS_BROXTON(p) && IS_REVID(p, since, until))
> +#define IS_BXT_REVID(p, since, until) IS_REVID(p, bxt_rev_mask, since, until)
>
>   /*
>    * The genX designation typically refers to the render engine, so render
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ Ro.CI.BAT: failure for drm/i915: Use bitmask for IS_REVID checking (rev2)
  2016-05-10 13:02 [PATCH] drm/i915: Use bitmask for IS_REVID checking Tvrtko Ursulin
                   ` (3 preceding siblings ...)
  2016-05-10 13:53 ` [PATCH v2] " Tvrtko Ursulin
@ 2016-05-10 14:26 ` Patchwork
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2016-05-10 14:26 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Use bitmask for IS_REVID checking (rev2)
URL   : https://patchwork.freedesktop.org/series/6972/
State : failure

== Summary ==

Series 6972v2 drm/i915: Use bitmask for IS_REVID checking
http://patchwork.freedesktop.org/api/1.0/series/6972/revisions/2/mbox

Test drv_hangman:
        Subgroup error-state-basic:
                pass       -> FAIL       (ro-ilk1-i5-650)
                incomplete -> PASS       (fi-snb-i7-2600)
Test kms_pipe_crc_basic:
        Subgroup suspend-read-crc-pipe-b:
                dmesg-warn -> PASS       (ro-bdw-i7-5557U)
Test kms_sink_crc_basic:
                pass       -> SKIP       (ro-skl-i7-6700hq)

fi-bdw-i7-5557u  total:219  pass:206  dwarn:0   dfail:0   fail:0   skip:13 
fi-byt-n2820     total:219  pass:175  dwarn:0   dfail:0   fail:3   skip:41 
fi-hsw-i7-4770k  total:219  pass:197  dwarn:0   dfail:0   fail:1   skip:21 
fi-skl-i5-6260u  total:219  pass:207  dwarn:0   dfail:0   fail:0   skip:12 
fi-skl-i7-6700k  total:219  pass:191  dwarn:0   dfail:0   fail:0   skip:28 
fi-snb-i7-2600   total:219  pass:176  dwarn:0   dfail:0   fail:0   skip:43 
ro-bdw-i5-5250u  total:219  pass:202  dwarn:4   dfail:0   fail:0   skip:13 
ro-bdw-i7-5557U  total:219  pass:205  dwarn:0   dfail:0   fail:0   skip:14 
ro-bdw-i7-5600u  total:219  pass:187  dwarn:0   dfail:0   fail:0   skip:32 
ro-bsw-n3050     total:219  pass:174  dwarn:0   dfail:0   fail:3   skip:42 
ro-byt-n2820     total:218  pass:174  dwarn:0   dfail:0   fail:3   skip:41 
ro-hsw-i3-4010u  total:218  pass:193  dwarn:0   dfail:0   fail:0   skip:25 
ro-hsw-i7-4770r  total:219  pass:194  dwarn:0   dfail:0   fail:0   skip:25 
ro-ilk1-i5-650   total:214  pass:151  dwarn:0   dfail:0   fail:2   skip:61 
ro-ivb-i7-3770   total:219  pass:183  dwarn:0   dfail:0   fail:0   skip:36 
ro-ivb2-i7-3770  total:219  pass:187  dwarn:0   dfail:0   fail:0   skip:32 
ro-skl-i7-6700hq total:214  pass:189  dwarn:0   dfail:0   fail:0   skip:25 
ro-snb-i7-2620M  total:219  pass:177  dwarn:0   dfail:0   fail:1   skip:41 
fi-hsw-i7-4770r failed to connect after reboot
fi-kbl-y failed to connect after reboot
ro-ilk-i7-620lm failed to connect after reboot

Results at /archive/results/CI_IGT_test/RO_Patchwork_849/

2d4abf3 drm-intel-nightly: 2016y-05m-10d-09h-36m-54s UTC integration manifest
4e1a637 drm/i915: Use bitmask for IS_REVID checking

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

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

* Re: [PATCH] drm/i915: Use bitmask for IS_REVID checking
  2016-05-10 13:59   ` Tvrtko Ursulin
@ 2016-05-11 11:58     ` Jani Nikula
  0 siblings, 0 replies; 9+ messages in thread
From: Jani Nikula @ 2016-05-11 11:58 UTC (permalink / raw)
  To: Tvrtko Ursulin, Intel-gfx; +Cc: Syrjala, Ville

On Tue, 10 May 2016, Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> wrote:
> Hi,
>
> On 10/05/16 14:33, Jani Nikula wrote:
>> On Tue, 10 May 2016, Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> wrote:
>>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>>
>>> With this scheme all call sites of IS_SKL_REVID and IS_BXT_REVID
>>> result in a maximum of one conditional jump instruction (was
>>> three before) and overall reduction in code size.
>>
>> IMO we really shouldn't bother with this. The end goal is that we remove
>> all of these when we decide we no longer care about early
>> (non-production) revisions for a platform. For Skylake I'd argue we are
>> beyond this point.
>
> Thought that simply removing everything guarded by IS_SKL_REVID might be 
> possible never crossed my mind. :) Which one is the first production 
> stepping then?

None of the ones we list and check for i.e. we should replace all of the
IS_SKL_REVID() uses with either 0 or IS_SKYLAKE(), and simplify from
there.

Maybe we should check the revid once on driver load, and whine about
early hardware. We've had such checks in the past on earlier
platforms. This might save our precious time, as we shouldn't be
debugging issues reported against pre-production hardware.

Ville here says dropping the checks is a good time to verify the
workarounds we do have in place are correct going forward.


BR,
Jani.



>
> Regards,
>
> Tvrtko.
>
>>>
>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>>> Cc: Jani Nikula <jani.nikula@intel.com>
>>> ---
>>>   drivers/gpu/drm/i915/i915_dma.c | 11 +++++++++++
>>>   drivers/gpu/drm/i915/i915_drv.h | 24 +++++++++++++++++++-----
>>>   2 files changed, 30 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
>>> index 46ac1da64a09..1ae812436827 100644
>>> --- a/drivers/gpu/drm/i915/i915_dma.c
>>> +++ b/drivers/gpu/drm/i915/i915_dma.c
>>> @@ -1072,6 +1072,17 @@ static int i915_driver_init_early(struct drm_i915_private *dev_priv,
>>>   	memcpy(device_info, info, sizeof(dev_priv->info));
>>>   	device_info->device_id = dev->pdev->device;
>>>
>>> +	/* For unknown revisions mask stays at zero which is correct. */
>>> +	if (dev->pdev->revision <
>>> +	    sizeof(device_info->revision_mask) * BITS_PER_BYTE)
>>> +		device_info->revision_mask = BIT(dev->pdev->revision);
>>> +
>>> +	if (IS_SKYLAKE(dev_priv))
>>> +		device_info->skl_rev_mask = ~0;
>>> +
>>> +	if (IS_BROXTON(dev_priv))
>>> +		device_info->bxt_rev_mask = ~0;
>>> +
>>>   	spin_lock_init(&dev_priv->irq_lock);
>>>   	spin_lock_init(&dev_priv->gpu_error.lock);
>>>   	mutex_init(&dev_priv->backlight_lock);
>>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>>> index 26e7de415966..fbeb68e9ec96 100644
>>> --- a/drivers/gpu/drm/i915/i915_drv.h
>>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>>> @@ -757,6 +757,9 @@ struct intel_csr {
>>>   struct intel_device_info {
>>>   	u32 display_mmio_offset;
>>>   	u16 device_id;
>>> +	u8 revision_mask;
>>> +	u8 skl_rev_mask;
>>> +	u8 bxt_rev_mask;
>>>   	u8 num_pipes:3;
>>>   	u8 num_sprites[I915_MAX_PIPES];
>>>   	u8 gen;
>>> @@ -2519,14 +2522,23 @@ struct drm_i915_cmd_table {
>>>   #define INTEL_DEVID(p)	(INTEL_INFO(p)->device_id)
>>>   #define INTEL_REVID(p)	(__I915__(p)->dev->pdev->revision)
>>>
>>> -#define REVID_FOREVER		0xff
>>> +#define REVID_FOREVER		0
>>> +
>>>   /*
>>>    * Return true if revision is in range [since,until] inclusive.
>>>    *
>>>    * Use 0 for open-ended since, and REVID_FOREVER for open-ended until.
>>>    */
>>> -#define IS_REVID(p, since, until) \
>>> -	(INTEL_REVID(p) >= (since) && INTEL_REVID(p) <= (until))
>>> +#define IS_REVID(p, mask, since, until) ({\
>>> +	unsigned int __s = (since), __e = (until); \
>>> +	BUILD_BUG_ON(!__builtin_constant_p(since)); \
>>> +	BUILD_BUG_ON(!__builtin_constant_p(until)); \
>>> +	BUILD_BUG_ON(since >= sizeof(INTEL_INFO(p)->revision_mask) * BITS_PER_BYTE); \
>>> +	BUILD_BUG_ON(until >= sizeof(INTEL_INFO(p)->revision_mask) * BITS_PER_BYTE); \
>>> +	if ((__e) == REVID_FOREVER) \
>>> +		__e = BITS_PER_LONG - 1; \
>>> +	!!(INTEL_INFO(p)->revision_mask & (mask) & GENMASK((__e), (__s))); \
>>> +})
>>>
>>>   #define IS_I830(dev)		(INTEL_DEVID(dev) == 0x3577)
>>>   #define IS_845G(dev)		(INTEL_DEVID(dev) == 0x2562)
>>> @@ -2605,14 +2617,16 @@ struct drm_i915_cmd_table {
>>>   #define SKL_REVID_E0		0x4
>>>   #define SKL_REVID_F0		0x5
>>>
>>> -#define IS_SKL_REVID(p, since, until) (IS_SKYLAKE(p) && IS_REVID(p, since, until))
>>> +#define IS_SKL_REVID(p, since, until) IS_REVID(p, INTEL_INFO(p)->skl_rev_mask, \
>>> +				               since, until)
>>>
>>>   #define BXT_REVID_A0		0x0
>>>   #define BXT_REVID_A1		0x1
>>>   #define BXT_REVID_B0		0x3
>>>   #define BXT_REVID_C0		0x9
>>>
>>> -#define IS_BXT_REVID(p, since, until) (IS_BROXTON(p) && IS_REVID(p, since, until))
>>> +#define IS_BXT_REVID(p, since, until) IS_REVID(p, INTEL_INFO(p)->bxt_rev_mask, \
>>> +				               since, until)
>>>
>>>   /*
>>>    * The genX designation typically refers to the render engine, so render
>>

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

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

end of thread, other threads:[~2016-05-11 11:58 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-10 13:02 [PATCH] drm/i915: Use bitmask for IS_REVID checking Tvrtko Ursulin
2016-05-10 13:33 ` ✗ Ro.CI.BAT: warning for " Patchwork
2016-05-10 13:33 ` [PATCH] " Jani Nikula
2016-05-10 13:59   ` Tvrtko Ursulin
2016-05-11 11:58     ` Jani Nikula
2016-05-10 13:48 ` ✗ Ro.CI.BAT: warning for " Patchwork
2016-05-10 13:53 ` [PATCH v2] " Tvrtko Ursulin
2016-05-10 14:06   ` Tvrtko Ursulin
2016-05-10 14:26 ` ✗ Ro.CI.BAT: failure for drm/i915: Use bitmask for IS_REVID checking (rev2) Patchwork

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.