All of lore.kernel.org
 help / color / mirror / Atom feed
* Try to make the device info flags a bit more maintainable
@ 2013-04-22 17:40 Damien Lespiau
  2013-04-22 17:40 ` [PATCH 1/6] drm/i915: Turn DEV_INFO_FLAGS into for foreach style macro Damien Lespiau
                   ` (5 more replies)
  0 siblings, 6 replies; 19+ messages in thread
From: Damien Lespiau @ 2013-04-22 17:40 UTC (permalink / raw)
  To: intel-gfx

Hi,

We had a few places (3) to update every time we wanted to add a device info
flag, somewhat error prone. With this series we just need to touch
DEV_INFO_FOR_EACH_FLAG() to add a flag (patches 1-3).

On top of that, I add two more flags, has_ddi (patch 4) and has_fpga_dbg
(patches 5/6), flags that should slightly ease our next enablings.

All pretty simple changes.

-- 
Damien

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

* [PATCH 1/6] drm/i915: Turn DEV_INFO_FLAGS into for foreach style macro
  2013-04-22 17:40 Try to make the device info flags a bit more maintainable Damien Lespiau
@ 2013-04-22 17:40 ` Damien Lespiau
  2013-04-23  7:20   ` Jani Nikula
  2013-04-22 17:40 ` [PATCH 2/6] drm/i915: Replace the line of %s by a DEV_INFO_FOR_EACH_FLAG() invocation Damien Lespiau
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 19+ messages in thread
From: Damien Lespiau @ 2013-04-22 17:40 UTC (permalink / raw)
  To: intel-gfx

DEV_INFO_FOR_FLAG() now takes 2 parameters:
  • A function to apply to the flag
  • A separator

This will allow us to use the macro twice in the DRM_DEBUG_DRIVER() call
of i915_dump_device_info().

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c |  8 +++---
 drivers/gpu/drm/i915/i915_dma.c     |  8 +++---
 drivers/gpu/drm/i915/i915_drv.h     | 50 ++++++++++++++++++-------------------
 3 files changed, 31 insertions(+), 35 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 367b534..5e43c19 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -61,11 +61,9 @@ static int i915_capabilities(struct seq_file *m, void *data)
 
 	seq_printf(m, "gen: %d\n", info->gen);
 	seq_printf(m, "pch: %d\n", INTEL_PCH_TYPE(dev));
-#define DEV_INFO_FLAG(x) seq_printf(m, #x ": %s\n", yesno(info->x))
-#define DEV_INFO_SEP ;
-	DEV_INFO_FLAGS;
-#undef DEV_INFO_FLAG
-#undef DEV_INFO_SEP
+#define PRINT_FLAG(x)  seq_printf(m, #x ": %s\n", yesno(info->x))
+#define SEP_SEMICOLON ;
+	DEV_INFO_FOR_EACH_FLAG(PRINT_FLAG, SEP_SEMICOLON);
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 3b315ba..8ac8dd2 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1445,15 +1445,13 @@ static void i915_dump_device_info(struct drm_i915_private *dev_priv)
 {
 	const struct intel_device_info *info = dev_priv->info;
 
-#define DEV_INFO_FLAG(name) info->name ? #name "," : ""
-#define DEV_INFO_SEP ,
+#define PRINT_FLAG(name) info->name ? #name "," : ""
+#define SEP_COMMA ,
 	DRM_DEBUG_DRIVER("i915 device info: gen=%i, pciid=0x%04x flags="
 			 "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
 			 info->gen,
 			 dev_priv->dev->pdev->device,
-			 DEV_INFO_FLAGS);
-#undef DEV_INFO_FLAG
-#undef DEV_INFO_SEP
+			 DEV_INFO_FOR_EACH_FLAG(PRINT_FLAG, SEP_COMMA));
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index d80bced..725d53d 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -333,31 +333,31 @@ struct drm_i915_gt_funcs {
 	void (*force_wake_put)(struct drm_i915_private *dev_priv);
 };
 
-#define DEV_INFO_FLAGS \
-	DEV_INFO_FLAG(is_mobile) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_i85x) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_i915g) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_i945gm) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_g33) DEV_INFO_SEP \
-	DEV_INFO_FLAG(need_gfx_hws) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_g4x) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_pineview) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_broadwater) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_crestline) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_ivybridge) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_valleyview) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_haswell) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_force_wake) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_fbc) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_pipe_cxsr) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_hotplug) DEV_INFO_SEP \
-	DEV_INFO_FLAG(cursor_needs_physical) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_overlay) DEV_INFO_SEP \
-	DEV_INFO_FLAG(overlay_needs_physical) DEV_INFO_SEP \
-	DEV_INFO_FLAG(supports_tv) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_bsd_ring) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_blt_ring) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_llc)
+#define DEV_INFO_FOR_EACH_FLAG(func, sep) \
+	func(is_mobile) sep \
+	func(is_i85x) sep \
+	func(is_i915g) sep \
+	func(is_i945gm) sep \
+	func(is_g33) sep \
+	func(need_gfx_hws) sep \
+	func(is_g4x) sep \
+	func(is_pineview) sep \
+	func(is_broadwater) sep \
+	func(is_crestline) sep \
+	func(is_ivybridge) sep \
+	func(is_valleyview) sep \
+	func(is_haswell) sep \
+	func(has_force_wake) sep \
+	func(has_fbc) sep \
+	func(has_pipe_cxsr) sep \
+	func(has_hotplug) sep \
+	func(cursor_needs_physical) sep \
+	func(has_overlay) sep \
+	func(overlay_needs_physical) sep \
+	func(supports_tv) sep \
+	func(has_bsd_ring) sep \
+	func(has_blt_ring) sep \
+	func(has_llc)
 
 struct intel_device_info {
 	u32 display_mmio_offset;
-- 
1.8.1.4

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

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

* [PATCH 2/6] drm/i915: Replace the line of %s by a DEV_INFO_FOR_EACH_FLAG() invocation
  2013-04-22 17:40 Try to make the device info flags a bit more maintainable Damien Lespiau
  2013-04-22 17:40 ` [PATCH 1/6] drm/i915: Turn DEV_INFO_FLAGS into for foreach style macro Damien Lespiau
@ 2013-04-22 17:40 ` Damien Lespiau
  2013-04-23  7:22   ` Jani Nikula
  2013-04-23 15:38   ` [PATCH 2/6 v2] " Damien Lespiau
  2013-04-22 17:40 ` [PATCH 3/6] drm/i915: Use DEV_INFO_FOR_EACH_FLAG() to declare flags as well Damien Lespiau
                   ` (3 subsequent siblings)
  5 siblings, 2 replies; 19+ messages in thread
From: Damien Lespiau @ 2013-04-22 17:40 UTC (permalink / raw)
  To: intel-gfx

This way, when adding a device flag we don't have to manually maintain
that list.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
---
 drivers/gpu/drm/i915/i915_dma.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 8ac8dd2..24b9e8b 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1445,10 +1445,12 @@ static void i915_dump_device_info(struct drm_i915_private *dev_priv)
 {
 	const struct intel_device_info *info = dev_priv->info;
 
+#define PRINT_S(name) "%s"
+#define SEP_EMPTY
 #define PRINT_FLAG(name) info->name ? #name "," : ""
 #define SEP_COMMA ,
 	DRM_DEBUG_DRIVER("i915 device info: gen=%i, pciid=0x%04x flags="
-			 "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
+			 DEV_INFO_FOR_EACH_FLAG(PRINT_S, SEP_EMPTY),
 			 info->gen,
 			 dev_priv->dev->pdev->device,
 			 DEV_INFO_FOR_EACH_FLAG(PRINT_FLAG, SEP_COMMA));
-- 
1.8.1.4

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

* [PATCH 3/6] drm/i915: Use DEV_INFO_FOR_EACH_FLAG() to declare flags as well
  2013-04-22 17:40 Try to make the device info flags a bit more maintainable Damien Lespiau
  2013-04-22 17:40 ` [PATCH 1/6] drm/i915: Turn DEV_INFO_FLAGS into for foreach style macro Damien Lespiau
  2013-04-22 17:40 ` [PATCH 2/6] drm/i915: Replace the line of %s by a DEV_INFO_FOR_EACH_FLAG() invocation Damien Lespiau
@ 2013-04-22 17:40 ` Damien Lespiau
  2013-04-23  7:25   ` Jani Nikula
  2013-04-22 17:40 ` [PATCH 4/6] drm/i915: Turn HAS_DDI() into a device_info flag Damien Lespiau
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 19+ messages in thread
From: Damien Lespiau @ 2013-04-22 17:40 UTC (permalink / raw)
  To: intel-gfx

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h | 31 +++++++------------------------
 1 file changed, 7 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 725d53d..4239263 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -359,36 +359,19 @@ struct drm_i915_gt_funcs {
 	func(has_blt_ring) sep \
 	func(has_llc)
 
+#define DEFINE_FLAG(name) u8 name:1
+#define SEP_SEMICOLON ;
+
 struct intel_device_info {
 	u32 display_mmio_offset;
 	u8 num_pipes:3;
 	u8 gen;
-	u8 is_mobile:1;
-	u8 is_i85x:1;
-	u8 is_i915g:1;
-	u8 is_i945gm:1;
-	u8 is_g33:1;
-	u8 need_gfx_hws:1;
-	u8 is_g4x:1;
-	u8 is_pineview:1;
-	u8 is_broadwater:1;
-	u8 is_crestline:1;
-	u8 is_ivybridge:1;
-	u8 is_valleyview:1;
-	u8 has_force_wake:1;
-	u8 is_haswell:1;
-	u8 has_fbc:1;
-	u8 has_pipe_cxsr:1;
-	u8 has_hotplug:1;
-	u8 cursor_needs_physical:1;
-	u8 has_overlay:1;
-	u8 overlay_needs_physical:1;
-	u8 supports_tv:1;
-	u8 has_bsd_ring:1;
-	u8 has_blt_ring:1;
-	u8 has_llc:1;
+	DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG, SEP_SEMICOLON);
 };
 
+#undef DEFINE_FLAG
+#undef SEP_SEMICOLON
+
 enum i915_cache_level {
 	I915_CACHE_NONE = 0,
 	I915_CACHE_LLC,
-- 
1.8.1.4

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

* [PATCH 4/6] drm/i915: Turn HAS_DDI() into a device_info flag
  2013-04-22 17:40 Try to make the device info flags a bit more maintainable Damien Lespiau
                   ` (2 preceding siblings ...)
  2013-04-22 17:40 ` [PATCH 3/6] drm/i915: Use DEV_INFO_FOR_EACH_FLAG() to declare flags as well Damien Lespiau
@ 2013-04-22 17:40 ` Damien Lespiau
  2013-04-23  7:27   ` Jani Nikula
  2013-04-22 17:40 ` [PATCH 5/6] drm/i915: Introduce HAS_FPGA_DBG_UNCLAIMED() Damien Lespiau
  2013-04-22 17:40 ` [PATCH 6/6] drm/i915: Turn HAS_FPGA_DBG_UNCLAIMED into a device_info flag Damien Lespiau
  5 siblings, 1 reply; 19+ messages in thread
From: Damien Lespiau @ 2013-04-22 17:40 UTC (permalink / raw)
  To: intel-gfx

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.c | 2 ++
 drivers/gpu/drm/i915/i915_drv.h | 5 +++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 9ebe895..564d4c6 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -308,12 +308,14 @@ static const struct intel_device_info intel_valleyview_d_info = {
 static const struct intel_device_info intel_haswell_d_info = {
 	GEN7_FEATURES,
 	.is_haswell = 1,
+	.has_ddi = 1,
 };
 
 static const struct intel_device_info intel_haswell_m_info = {
 	GEN7_FEATURES,
 	.is_haswell = 1,
 	.is_mobile = 1,
+	.has_ddi = 1,
 };
 
 static const struct pci_device_id pciidlist[] = {		/* aka */
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 4239263..652b168 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -357,7 +357,8 @@ struct drm_i915_gt_funcs {
 	func(supports_tv) sep \
 	func(has_bsd_ring) sep \
 	func(has_blt_ring) sep \
-	func(has_llc)
+	func(has_llc) sep \
+	func(has_ddi)
 
 #define DEFINE_FLAG(name) u8 name:1
 #define SEP_SEMICOLON ;
@@ -1366,7 +1367,7 @@ struct drm_i915_file_private {
 
 #define HAS_PIPE_CONTROL(dev) (INTEL_INFO(dev)->gen >= 5)
 
-#define HAS_DDI(dev)		(IS_HASWELL(dev))
+#define HAS_DDI(dev)		(INTEL_INFO(dev)->has_ddi)
 #define HAS_POWER_WELL(dev)	(IS_HASWELL(dev))
 
 #define INTEL_PCH_DEVICE_ID_MASK		0xff00
-- 
1.8.1.4

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

* [PATCH 5/6] drm/i915: Introduce HAS_FPGA_DBG_UNCLAIMED()
  2013-04-22 17:40 Try to make the device info flags a bit more maintainable Damien Lespiau
                   ` (3 preceding siblings ...)
  2013-04-22 17:40 ` [PATCH 4/6] drm/i915: Turn HAS_DDI() into a device_info flag Damien Lespiau
@ 2013-04-22 17:40 ` Damien Lespiau
  2013-04-23  7:28   ` Jani Nikula
  2013-04-22 17:40 ` [PATCH 6/6] drm/i915: Turn HAS_FPGA_DBG_UNCLAIMED into a device_info flag Damien Lespiau
  5 siblings, 1 reply; 19+ messages in thread
From: Damien Lespiau @ 2013-04-22 17:40 UTC (permalink / raw)
  To: intel-gfx

Let's introduce one more of those orthogonal feature macros. This should
hopefully make the code more readable and make things easier for new platform
enabling.

This time, HAS_FPGA_DBG_UNCLAIMED() is true for platforms that have bit
31 of FPGA_DBG able to signal unclaimed writes.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
---
 drivers/gpu/drm/i915/i915_dma.c | 2 +-
 drivers/gpu/drm/i915/i915_drv.c | 4 ++--
 drivers/gpu/drm/i915/i915_drv.h | 1 +
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 24b9e8b..74f2247 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1468,7 +1468,7 @@ static void intel_early_sanitize_regs(struct drm_device *dev)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
 
-	if (IS_HASWELL(dev))
+	if (HAS_FPGA_DBG_UNCLAIMED(dev))
 		I915_WRITE_NOTRACE(FPGA_DBG, FPGA_DBG_RM_NOCLAIM);
 }
 
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 564d4c6..896b904 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -1205,7 +1205,7 @@ ilk_dummy_write(struct drm_i915_private *dev_priv)
 static void
 hsw_unclaimed_reg_clear(struct drm_i915_private *dev_priv, u32 reg)
 {
-	if (IS_HASWELL(dev_priv->dev) &&
+	if (HAS_FPGA_DBG_UNCLAIMED(dev_priv->dev) &&
 	    (I915_READ_NOTRACE(FPGA_DBG) & FPGA_DBG_RM_NOCLAIM)) {
 		DRM_ERROR("Unknown unclaimed register before writing to %x\n",
 			  reg);
@@ -1216,7 +1216,7 @@ hsw_unclaimed_reg_clear(struct drm_i915_private *dev_priv, u32 reg)
 static void
 hsw_unclaimed_reg_check(struct drm_i915_private *dev_priv, u32 reg)
 {
-	if (IS_HASWELL(dev_priv->dev) &&
+	if (HAS_FPGA_DBG_UNCLAIMED(dev_priv->dev) &&
 	    (I915_READ_NOTRACE(FPGA_DBG) & FPGA_DBG_RM_NOCLAIM)) {
 		DRM_ERROR("Unclaimed write to %x\n", reg);
 		I915_WRITE_NOTRACE(FPGA_DBG, FPGA_DBG_RM_NOCLAIM);
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 652b168..c5f0778 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1369,6 +1369,7 @@ struct drm_i915_file_private {
 
 #define HAS_DDI(dev)		(INTEL_INFO(dev)->has_ddi)
 #define HAS_POWER_WELL(dev)	(IS_HASWELL(dev))
+#define HAS_FPGA_DBG_UNCLAIMED(dev)	(IS_HASWELL(dev))
 
 #define INTEL_PCH_DEVICE_ID_MASK		0xff00
 #define INTEL_PCH_IBX_DEVICE_ID_TYPE		0x3b00
-- 
1.8.1.4

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

* [PATCH 6/6] drm/i915: Turn HAS_FPGA_DBG_UNCLAIMED into a device_info flag
  2013-04-22 17:40 Try to make the device info flags a bit more maintainable Damien Lespiau
                   ` (4 preceding siblings ...)
  2013-04-22 17:40 ` [PATCH 5/6] drm/i915: Introduce HAS_FPGA_DBG_UNCLAIMED() Damien Lespiau
@ 2013-04-22 17:40 ` Damien Lespiau
  2013-04-23  7:29   ` Jani Nikula
  5 siblings, 1 reply; 19+ messages in thread
From: Damien Lespiau @ 2013-04-22 17:40 UTC (permalink / raw)
  To: intel-gfx

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.c | 2 ++
 drivers/gpu/drm/i915/i915_drv.h | 5 +++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 896b904..624cdfc 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -309,6 +309,7 @@ static const struct intel_device_info intel_haswell_d_info = {
 	GEN7_FEATURES,
 	.is_haswell = 1,
 	.has_ddi = 1,
+	.has_fpga_dbg = 1,
 };
 
 static const struct intel_device_info intel_haswell_m_info = {
@@ -316,6 +317,7 @@ static const struct intel_device_info intel_haswell_m_info = {
 	.is_haswell = 1,
 	.is_mobile = 1,
 	.has_ddi = 1,
+	.has_fpga_dbg = 1,
 };
 
 static const struct pci_device_id pciidlist[] = {		/* aka */
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index c5f0778..0eb4618 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -358,7 +358,8 @@ struct drm_i915_gt_funcs {
 	func(has_bsd_ring) sep \
 	func(has_blt_ring) sep \
 	func(has_llc) sep \
-	func(has_ddi)
+	func(has_ddi) sep \
+	func(has_fpga_dbg)
 
 #define DEFINE_FLAG(name) u8 name:1
 #define SEP_SEMICOLON ;
@@ -1369,7 +1370,7 @@ struct drm_i915_file_private {
 
 #define HAS_DDI(dev)		(INTEL_INFO(dev)->has_ddi)
 #define HAS_POWER_WELL(dev)	(IS_HASWELL(dev))
-#define HAS_FPGA_DBG_UNCLAIMED(dev)	(IS_HASWELL(dev))
+#define HAS_FPGA_DBG_UNCLAIMED(dev)	(INTEL_INFO(dev)->has_fpga_dbg)
 
 #define INTEL_PCH_DEVICE_ID_MASK		0xff00
 #define INTEL_PCH_IBX_DEVICE_ID_TYPE		0x3b00
-- 
1.8.1.4

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

* Re: [PATCH 1/6] drm/i915: Turn DEV_INFO_FLAGS into for foreach style macro
  2013-04-22 17:40 ` [PATCH 1/6] drm/i915: Turn DEV_INFO_FLAGS into for foreach style macro Damien Lespiau
@ 2013-04-23  7:20   ` Jani Nikula
  2013-04-23  7:31     ` Jani Nikula
  2013-04-23 11:08     ` [PATCH 1/6] drm/i915: Turn DEV_INFO_FLAGS into for " Damien Lespiau
  0 siblings, 2 replies; 19+ messages in thread
From: Jani Nikula @ 2013-04-23  7:20 UTC (permalink / raw)
  To: Damien Lespiau, intel-gfx

On Mon, 22 Apr 2013, Damien Lespiau <damien.lespiau@intel.com> wrote:
> DEV_INFO_FOR_FLAG() now takes 2 parameters:
>   • A function to apply to the flag
>   • A separator

Oooh, fancy bullets. ;)

Tiny bikeshed, is leaving out #undefs for the temp macros intentional?

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

>
> This will allow us to use the macro twice in the DRM_DEBUG_DRIVER() call
> of i915_dump_device_info().
>
> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c |  8 +++---
>  drivers/gpu/drm/i915/i915_dma.c     |  8 +++---
>  drivers/gpu/drm/i915/i915_drv.h     | 50 ++++++++++++++++++-------------------
>  3 files changed, 31 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 367b534..5e43c19 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -61,11 +61,9 @@ static int i915_capabilities(struct seq_file *m, void *data)
>  
>  	seq_printf(m, "gen: %d\n", info->gen);
>  	seq_printf(m, "pch: %d\n", INTEL_PCH_TYPE(dev));
> -#define DEV_INFO_FLAG(x) seq_printf(m, #x ": %s\n", yesno(info->x))
> -#define DEV_INFO_SEP ;
> -	DEV_INFO_FLAGS;
> -#undef DEV_INFO_FLAG
> -#undef DEV_INFO_SEP
> +#define PRINT_FLAG(x)  seq_printf(m, #x ": %s\n", yesno(info->x))
> +#define SEP_SEMICOLON ;
> +	DEV_INFO_FOR_EACH_FLAG(PRINT_FLAG, SEP_SEMICOLON);
>  
>  	return 0;
>  }
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index 3b315ba..8ac8dd2 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -1445,15 +1445,13 @@ static void i915_dump_device_info(struct drm_i915_private *dev_priv)
>  {
>  	const struct intel_device_info *info = dev_priv->info;
>  
> -#define DEV_INFO_FLAG(name) info->name ? #name "," : ""
> -#define DEV_INFO_SEP ,
> +#define PRINT_FLAG(name) info->name ? #name "," : ""
> +#define SEP_COMMA ,
>  	DRM_DEBUG_DRIVER("i915 device info: gen=%i, pciid=0x%04x flags="
>  			 "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
>  			 info->gen,
>  			 dev_priv->dev->pdev->device,
> -			 DEV_INFO_FLAGS);
> -#undef DEV_INFO_FLAG
> -#undef DEV_INFO_SEP
> +			 DEV_INFO_FOR_EACH_FLAG(PRINT_FLAG, SEP_COMMA));
>  }
>  
>  /**
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index d80bced..725d53d 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -333,31 +333,31 @@ struct drm_i915_gt_funcs {
>  	void (*force_wake_put)(struct drm_i915_private *dev_priv);
>  };
>  
> -#define DEV_INFO_FLAGS \
> -	DEV_INFO_FLAG(is_mobile) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(is_i85x) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(is_i915g) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(is_i945gm) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(is_g33) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(need_gfx_hws) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(is_g4x) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(is_pineview) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(is_broadwater) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(is_crestline) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(is_ivybridge) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(is_valleyview) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(is_haswell) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(has_force_wake) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(has_fbc) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(has_pipe_cxsr) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(has_hotplug) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(cursor_needs_physical) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(has_overlay) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(overlay_needs_physical) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(supports_tv) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(has_bsd_ring) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(has_blt_ring) DEV_INFO_SEP \
> -	DEV_INFO_FLAG(has_llc)
> +#define DEV_INFO_FOR_EACH_FLAG(func, sep) \
> +	func(is_mobile) sep \
> +	func(is_i85x) sep \
> +	func(is_i915g) sep \
> +	func(is_i945gm) sep \
> +	func(is_g33) sep \
> +	func(need_gfx_hws) sep \
> +	func(is_g4x) sep \
> +	func(is_pineview) sep \
> +	func(is_broadwater) sep \
> +	func(is_crestline) sep \
> +	func(is_ivybridge) sep \
> +	func(is_valleyview) sep \
> +	func(is_haswell) sep \
> +	func(has_force_wake) sep \
> +	func(has_fbc) sep \
> +	func(has_pipe_cxsr) sep \
> +	func(has_hotplug) sep \
> +	func(cursor_needs_physical) sep \
> +	func(has_overlay) sep \
> +	func(overlay_needs_physical) sep \
> +	func(supports_tv) sep \
> +	func(has_bsd_ring) sep \
> +	func(has_blt_ring) sep \
> +	func(has_llc)
>  
>  struct intel_device_info {
>  	u32 display_mmio_offset;
> -- 
> 1.8.1.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 2/6] drm/i915: Replace the line of %s by a DEV_INFO_FOR_EACH_FLAG() invocation
  2013-04-22 17:40 ` [PATCH 2/6] drm/i915: Replace the line of %s by a DEV_INFO_FOR_EACH_FLAG() invocation Damien Lespiau
@ 2013-04-23  7:22   ` Jani Nikula
  2013-04-23 15:38   ` [PATCH 2/6 v2] " Damien Lespiau
  1 sibling, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2013-04-23  7:22 UTC (permalink / raw)
  To: Damien Lespiau, intel-gfx

On Mon, 22 Apr 2013, Damien Lespiau <damien.lespiau@intel.com> wrote:
> This way, when adding a device flag we don't have to manually maintain
> that list.

\o/-by: and

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_dma.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index 8ac8dd2..24b9e8b 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -1445,10 +1445,12 @@ static void i915_dump_device_info(struct drm_i915_private *dev_priv)
>  {
>  	const struct intel_device_info *info = dev_priv->info;
>  
> +#define PRINT_S(name) "%s"
> +#define SEP_EMPTY
>  #define PRINT_FLAG(name) info->name ? #name "," : ""
>  #define SEP_COMMA ,
>  	DRM_DEBUG_DRIVER("i915 device info: gen=%i, pciid=0x%04x flags="
> -			 "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
> +			 DEV_INFO_FOR_EACH_FLAG(PRINT_S, SEP_EMPTY),
>  			 info->gen,
>  			 dev_priv->dev->pdev->device,
>  			 DEV_INFO_FOR_EACH_FLAG(PRINT_FLAG, SEP_COMMA));
> -- 
> 1.8.1.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 3/6] drm/i915: Use DEV_INFO_FOR_EACH_FLAG() to declare flags as well
  2013-04-22 17:40 ` [PATCH 3/6] drm/i915: Use DEV_INFO_FOR_EACH_FLAG() to declare flags as well Damien Lespiau
@ 2013-04-23  7:25   ` Jani Nikula
  0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2013-04-23  7:25 UTC (permalink / raw)
  To: Damien Lespiau, intel-gfx

On Mon, 22 Apr 2013, Damien Lespiau <damien.lespiau@intel.com> wrote:
> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_drv.h | 31 +++++++------------------------
>  1 file changed, 7 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 725d53d..4239263 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -359,36 +359,19 @@ struct drm_i915_gt_funcs {
>  	func(has_blt_ring) sep \
>  	func(has_llc)
>  
> +#define DEFINE_FLAG(name) u8 name:1
> +#define SEP_SEMICOLON ;
> +
>  struct intel_device_info {
>  	u32 display_mmio_offset;
>  	u8 num_pipes:3;
>  	u8 gen;
> -	u8 is_mobile:1;
> -	u8 is_i85x:1;
> -	u8 is_i915g:1;
> -	u8 is_i945gm:1;
> -	u8 is_g33:1;
> -	u8 need_gfx_hws:1;
> -	u8 is_g4x:1;
> -	u8 is_pineview:1;
> -	u8 is_broadwater:1;
> -	u8 is_crestline:1;
> -	u8 is_ivybridge:1;
> -	u8 is_valleyview:1;
> -	u8 has_force_wake:1;
> -	u8 is_haswell:1;
> -	u8 has_fbc:1;
> -	u8 has_pipe_cxsr:1;
> -	u8 has_hotplug:1;
> -	u8 cursor_needs_physical:1;
> -	u8 has_overlay:1;
> -	u8 overlay_needs_physical:1;
> -	u8 supports_tv:1;
> -	u8 has_bsd_ring:1;
> -	u8 has_blt_ring:1;
> -	u8 has_llc:1;
> +	DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG, SEP_SEMICOLON);
>  };
>  
> +#undef DEFINE_FLAG
> +#undef SEP_SEMICOLON
> +
>  enum i915_cache_level {
>  	I915_CACHE_NONE = 0,
>  	I915_CACHE_LLC,
> -- 
> 1.8.1.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 4/6] drm/i915: Turn HAS_DDI() into a device_info flag
  2013-04-22 17:40 ` [PATCH 4/6] drm/i915: Turn HAS_DDI() into a device_info flag Damien Lespiau
@ 2013-04-23  7:27   ` Jani Nikula
  0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2013-04-23  7:27 UTC (permalink / raw)
  To: Damien Lespiau, intel-gfx

On Mon, 22 Apr 2013, Damien Lespiau <damien.lespiau@intel.com> wrote:
> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.c | 2 ++
>  drivers/gpu/drm/i915/i915_drv.h | 5 +++--
>  2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 9ebe895..564d4c6 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -308,12 +308,14 @@ static const struct intel_device_info intel_valleyview_d_info = {
>  static const struct intel_device_info intel_haswell_d_info = {
>  	GEN7_FEATURES,
>  	.is_haswell = 1,
> +	.has_ddi = 1,
>  };
>  
>  static const struct intel_device_info intel_haswell_m_info = {
>  	GEN7_FEATURES,
>  	.is_haswell = 1,
>  	.is_mobile = 1,
> +	.has_ddi = 1,
>  };
>  
>  static const struct pci_device_id pciidlist[] = {		/* aka */
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 4239263..652b168 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -357,7 +357,8 @@ struct drm_i915_gt_funcs {
>  	func(supports_tv) sep \
>  	func(has_bsd_ring) sep \
>  	func(has_blt_ring) sep \
> -	func(has_llc)
> +	func(has_llc) sep \
> +	func(has_ddi)

We could just decide to keep something last and insert new stuff before
that.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

>  
>  #define DEFINE_FLAG(name) u8 name:1
>  #define SEP_SEMICOLON ;
> @@ -1366,7 +1367,7 @@ struct drm_i915_file_private {
>  
>  #define HAS_PIPE_CONTROL(dev) (INTEL_INFO(dev)->gen >= 5)
>  
> -#define HAS_DDI(dev)		(IS_HASWELL(dev))
> +#define HAS_DDI(dev)		(INTEL_INFO(dev)->has_ddi)
>  #define HAS_POWER_WELL(dev)	(IS_HASWELL(dev))
>  
>  #define INTEL_PCH_DEVICE_ID_MASK		0xff00
> -- 
> 1.8.1.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 5/6] drm/i915: Introduce HAS_FPGA_DBG_UNCLAIMED()
  2013-04-22 17:40 ` [PATCH 5/6] drm/i915: Introduce HAS_FPGA_DBG_UNCLAIMED() Damien Lespiau
@ 2013-04-23  7:28   ` Jani Nikula
  0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2013-04-23  7:28 UTC (permalink / raw)
  To: Damien Lespiau, intel-gfx

On Mon, 22 Apr 2013, Damien Lespiau <damien.lespiau@intel.com> wrote:
> Let's introduce one more of those orthogonal feature macros. This should
> hopefully make the code more readable and make things easier for new platform
> enabling.
>
> This time, HAS_FPGA_DBG_UNCLAIMED() is true for platforms that have bit
> 31 of FPGA_DBG able to signal unclaimed writes.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

>
> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_dma.c | 2 +-
>  drivers/gpu/drm/i915/i915_drv.c | 4 ++--
>  drivers/gpu/drm/i915/i915_drv.h | 1 +
>  3 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index 24b9e8b..74f2247 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -1468,7 +1468,7 @@ static void intel_early_sanitize_regs(struct drm_device *dev)
>  {
>  	struct drm_i915_private *dev_priv = dev->dev_private;
>  
> -	if (IS_HASWELL(dev))
> +	if (HAS_FPGA_DBG_UNCLAIMED(dev))
>  		I915_WRITE_NOTRACE(FPGA_DBG, FPGA_DBG_RM_NOCLAIM);
>  }
>  
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 564d4c6..896b904 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -1205,7 +1205,7 @@ ilk_dummy_write(struct drm_i915_private *dev_priv)
>  static void
>  hsw_unclaimed_reg_clear(struct drm_i915_private *dev_priv, u32 reg)
>  {
> -	if (IS_HASWELL(dev_priv->dev) &&
> +	if (HAS_FPGA_DBG_UNCLAIMED(dev_priv->dev) &&
>  	    (I915_READ_NOTRACE(FPGA_DBG) & FPGA_DBG_RM_NOCLAIM)) {
>  		DRM_ERROR("Unknown unclaimed register before writing to %x\n",
>  			  reg);
> @@ -1216,7 +1216,7 @@ hsw_unclaimed_reg_clear(struct drm_i915_private *dev_priv, u32 reg)
>  static void
>  hsw_unclaimed_reg_check(struct drm_i915_private *dev_priv, u32 reg)
>  {
> -	if (IS_HASWELL(dev_priv->dev) &&
> +	if (HAS_FPGA_DBG_UNCLAIMED(dev_priv->dev) &&
>  	    (I915_READ_NOTRACE(FPGA_DBG) & FPGA_DBG_RM_NOCLAIM)) {
>  		DRM_ERROR("Unclaimed write to %x\n", reg);
>  		I915_WRITE_NOTRACE(FPGA_DBG, FPGA_DBG_RM_NOCLAIM);
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 652b168..c5f0778 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1369,6 +1369,7 @@ struct drm_i915_file_private {
>  
>  #define HAS_DDI(dev)		(INTEL_INFO(dev)->has_ddi)
>  #define HAS_POWER_WELL(dev)	(IS_HASWELL(dev))
> +#define HAS_FPGA_DBG_UNCLAIMED(dev)	(IS_HASWELL(dev))
>  
>  #define INTEL_PCH_DEVICE_ID_MASK		0xff00
>  #define INTEL_PCH_IBX_DEVICE_ID_TYPE		0x3b00
> -- 
> 1.8.1.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 6/6] drm/i915: Turn HAS_FPGA_DBG_UNCLAIMED into a device_info flag
  2013-04-22 17:40 ` [PATCH 6/6] drm/i915: Turn HAS_FPGA_DBG_UNCLAIMED into a device_info flag Damien Lespiau
@ 2013-04-23  7:29   ` Jani Nikula
  2013-04-23 16:30     ` Daniel Vetter
  0 siblings, 1 reply; 19+ messages in thread
From: Jani Nikula @ 2013-04-23  7:29 UTC (permalink / raw)
  To: Damien Lespiau, intel-gfx


I think this could be squashed together with the previous patch, but
either way,

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

On Mon, 22 Apr 2013, Damien Lespiau <damien.lespiau@intel.com> wrote:
> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.c | 2 ++
>  drivers/gpu/drm/i915/i915_drv.h | 5 +++--
>  2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 896b904..624cdfc 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -309,6 +309,7 @@ static const struct intel_device_info intel_haswell_d_info = {
>  	GEN7_FEATURES,
>  	.is_haswell = 1,
>  	.has_ddi = 1,
> +	.has_fpga_dbg = 1,
>  };
>  
>  static const struct intel_device_info intel_haswell_m_info = {
> @@ -316,6 +317,7 @@ static const struct intel_device_info intel_haswell_m_info = {
>  	.is_haswell = 1,
>  	.is_mobile = 1,
>  	.has_ddi = 1,
> +	.has_fpga_dbg = 1,
>  };
>  
>  static const struct pci_device_id pciidlist[] = {		/* aka */
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index c5f0778..0eb4618 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -358,7 +358,8 @@ struct drm_i915_gt_funcs {
>  	func(has_bsd_ring) sep \
>  	func(has_blt_ring) sep \
>  	func(has_llc) sep \
> -	func(has_ddi)
> +	func(has_ddi) sep \
> +	func(has_fpga_dbg)
>  
>  #define DEFINE_FLAG(name) u8 name:1
>  #define SEP_SEMICOLON ;
> @@ -1369,7 +1370,7 @@ struct drm_i915_file_private {
>  
>  #define HAS_DDI(dev)		(INTEL_INFO(dev)->has_ddi)
>  #define HAS_POWER_WELL(dev)	(IS_HASWELL(dev))
> -#define HAS_FPGA_DBG_UNCLAIMED(dev)	(IS_HASWELL(dev))
> +#define HAS_FPGA_DBG_UNCLAIMED(dev)	(INTEL_INFO(dev)->has_fpga_dbg)
>  
>  #define INTEL_PCH_DEVICE_ID_MASK		0xff00
>  #define INTEL_PCH_IBX_DEVICE_ID_TYPE		0x3b00
> -- 
> 1.8.1.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 1/6] drm/i915: Turn DEV_INFO_FLAGS into for foreach style macro
  2013-04-23  7:20   ` Jani Nikula
@ 2013-04-23  7:31     ` Jani Nikula
  2013-04-23 11:13       ` [PATCH v2] drm/i915: Turn DEV_INFO_FLAGS into " Damien Lespiau
  2013-04-23 11:08     ` [PATCH 1/6] drm/i915: Turn DEV_INFO_FLAGS into for " Damien Lespiau
  1 sibling, 1 reply; 19+ messages in thread
From: Jani Nikula @ 2013-04-23  7:31 UTC (permalink / raw)
  To: Damien Lespiau, intel-gfx

On Tue, 23 Apr 2013, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Mon, 22 Apr 2013, Damien Lespiau <damien.lespiau@intel.com> wrote:
>> DEV_INFO_FOR_FLAG() now takes 2 parameters:
>>   • A function to apply to the flag
>>   • A separator
>
> Oooh, fancy bullets. ;)
>
> Tiny bikeshed, is leaving out #undefs for the temp macros intentional?

Forgot to nitpick about the extra "for" in the subject.

J.

>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>
>>
>> This will allow us to use the macro twice in the DRM_DEBUG_DRIVER() call
>> of i915_dump_device_info().
>>
>> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
>> ---
>>  drivers/gpu/drm/i915/i915_debugfs.c |  8 +++---
>>  drivers/gpu/drm/i915/i915_dma.c     |  8 +++---
>>  drivers/gpu/drm/i915/i915_drv.h     | 50 ++++++++++++++++++-------------------
>>  3 files changed, 31 insertions(+), 35 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
>> index 367b534..5e43c19 100644
>> --- a/drivers/gpu/drm/i915/i915_debugfs.c
>> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
>> @@ -61,11 +61,9 @@ static int i915_capabilities(struct seq_file *m, void *data)
>>  
>>  	seq_printf(m, "gen: %d\n", info->gen);
>>  	seq_printf(m, "pch: %d\n", INTEL_PCH_TYPE(dev));
>> -#define DEV_INFO_FLAG(x) seq_printf(m, #x ": %s\n", yesno(info->x))
>> -#define DEV_INFO_SEP ;
>> -	DEV_INFO_FLAGS;
>> -#undef DEV_INFO_FLAG
>> -#undef DEV_INFO_SEP
>> +#define PRINT_FLAG(x)  seq_printf(m, #x ": %s\n", yesno(info->x))
>> +#define SEP_SEMICOLON ;
>> +	DEV_INFO_FOR_EACH_FLAG(PRINT_FLAG, SEP_SEMICOLON);
>>  
>>  	return 0;
>>  }
>> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
>> index 3b315ba..8ac8dd2 100644
>> --- a/drivers/gpu/drm/i915/i915_dma.c
>> +++ b/drivers/gpu/drm/i915/i915_dma.c
>> @@ -1445,15 +1445,13 @@ static void i915_dump_device_info(struct drm_i915_private *dev_priv)
>>  {
>>  	const struct intel_device_info *info = dev_priv->info;
>>  
>> -#define DEV_INFO_FLAG(name) info->name ? #name "," : ""
>> -#define DEV_INFO_SEP ,
>> +#define PRINT_FLAG(name) info->name ? #name "," : ""
>> +#define SEP_COMMA ,
>>  	DRM_DEBUG_DRIVER("i915 device info: gen=%i, pciid=0x%04x flags="
>>  			 "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
>>  			 info->gen,
>>  			 dev_priv->dev->pdev->device,
>> -			 DEV_INFO_FLAGS);
>> -#undef DEV_INFO_FLAG
>> -#undef DEV_INFO_SEP
>> +			 DEV_INFO_FOR_EACH_FLAG(PRINT_FLAG, SEP_COMMA));
>>  }
>>  
>>  /**
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index d80bced..725d53d 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -333,31 +333,31 @@ struct drm_i915_gt_funcs {
>>  	void (*force_wake_put)(struct drm_i915_private *dev_priv);
>>  };
>>  
>> -#define DEV_INFO_FLAGS \
>> -	DEV_INFO_FLAG(is_mobile) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(is_i85x) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(is_i915g) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(is_i945gm) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(is_g33) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(need_gfx_hws) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(is_g4x) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(is_pineview) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(is_broadwater) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(is_crestline) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(is_ivybridge) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(is_valleyview) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(is_haswell) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(has_force_wake) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(has_fbc) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(has_pipe_cxsr) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(has_hotplug) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(cursor_needs_physical) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(has_overlay) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(overlay_needs_physical) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(supports_tv) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(has_bsd_ring) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(has_blt_ring) DEV_INFO_SEP \
>> -	DEV_INFO_FLAG(has_llc)
>> +#define DEV_INFO_FOR_EACH_FLAG(func, sep) \
>> +	func(is_mobile) sep \
>> +	func(is_i85x) sep \
>> +	func(is_i915g) sep \
>> +	func(is_i945gm) sep \
>> +	func(is_g33) sep \
>> +	func(need_gfx_hws) sep \
>> +	func(is_g4x) sep \
>> +	func(is_pineview) sep \
>> +	func(is_broadwater) sep \
>> +	func(is_crestline) sep \
>> +	func(is_ivybridge) sep \
>> +	func(is_valleyview) sep \
>> +	func(is_haswell) sep \
>> +	func(has_force_wake) sep \
>> +	func(has_fbc) sep \
>> +	func(has_pipe_cxsr) sep \
>> +	func(has_hotplug) sep \
>> +	func(cursor_needs_physical) sep \
>> +	func(has_overlay) sep \
>> +	func(overlay_needs_physical) sep \
>> +	func(supports_tv) sep \
>> +	func(has_bsd_ring) sep \
>> +	func(has_blt_ring) sep \
>> +	func(has_llc)
>>  
>>  struct intel_device_info {
>>  	u32 display_mmio_offset;
>> -- 
>> 1.8.1.4
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 1/6] drm/i915: Turn DEV_INFO_FLAGS into for foreach style macro
  2013-04-23  7:20   ` Jani Nikula
  2013-04-23  7:31     ` Jani Nikula
@ 2013-04-23 11:08     ` Damien Lespiau
  1 sibling, 0 replies; 19+ messages in thread
From: Damien Lespiau @ 2013-04-23 11:08 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Tue, Apr 23, 2013 at 10:20:54AM +0300, Jani Nikula wrote:
> On Mon, 22 Apr 2013, Damien Lespiau <damien.lespiau@intel.com> wrote:
> > DEV_INFO_FOR_FLAG() now takes 2 parameters:
> >   • A function to apply to the flag
> >   • A separator
> 
> Oooh, fancy bullets. ;)

2013 is definitely the year of Unicode!

> Tiny bikeshed, is leaving out #undefs for the temp macros intentional?

It was. Before when wanting two invocations of DEV_INFO_FLAGS, you had
to define the same macros twice (DEV_INFO_FLAG/DEV_INFO_SEP), so to be
defensive about that #undef was added after DEV_INFO_FLAGS.

Now DEV_INFO_FOR_EACH_FLAG() takes the macro/sep to apply to each flag so
you can leave the macro defined, the second invocation will define its
own transformation (or reuse an existing one).

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

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

* [PATCH v2] drm/i915: Turn DEV_INFO_FLAGS into foreach style macro
  2013-04-23  7:31     ` Jani Nikula
@ 2013-04-23 11:13       ` Damien Lespiau
  2013-04-23 15:37         ` [PATCH 1/6 v3] drm/i915: Turn DEV_INFO_FLAGS into a " Damien Lespiau
  0 siblings, 1 reply; 19+ messages in thread
From: Damien Lespiau @ 2013-04-23 11:13 UTC (permalink / raw)
  To: intel-gfx

DEV_INFO_FOR_FLAG() now takes 2 parameters:
  • A function to apply to the flag
  • A separator

This will allow us to use the macro twice in the DRM_DEBUG_DRIVER() call
of i915_dump_device_info().

v2: Fix a typo in the subject (Jani Nikula)

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c |  8 +++---
 drivers/gpu/drm/i915/i915_dma.c     |  8 +++---
 drivers/gpu/drm/i915/i915_drv.h     | 50 ++++++++++++++++++-------------------
 3 files changed, 31 insertions(+), 35 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 367b534..5e43c19 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -61,11 +61,9 @@ static int i915_capabilities(struct seq_file *m, void *data)
 
 	seq_printf(m, "gen: %d\n", info->gen);
 	seq_printf(m, "pch: %d\n", INTEL_PCH_TYPE(dev));
-#define DEV_INFO_FLAG(x) seq_printf(m, #x ": %s\n", yesno(info->x))
-#define DEV_INFO_SEP ;
-	DEV_INFO_FLAGS;
-#undef DEV_INFO_FLAG
-#undef DEV_INFO_SEP
+#define PRINT_FLAG(x)  seq_printf(m, #x ": %s\n", yesno(info->x))
+#define SEP_SEMICOLON ;
+	DEV_INFO_FOR_EACH_FLAG(PRINT_FLAG, SEP_SEMICOLON);
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 3b315ba..8ac8dd2 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1445,15 +1445,13 @@ static void i915_dump_device_info(struct drm_i915_private *dev_priv)
 {
 	const struct intel_device_info *info = dev_priv->info;
 
-#define DEV_INFO_FLAG(name) info->name ? #name "," : ""
-#define DEV_INFO_SEP ,
+#define PRINT_FLAG(name) info->name ? #name "," : ""
+#define SEP_COMMA ,
 	DRM_DEBUG_DRIVER("i915 device info: gen=%i, pciid=0x%04x flags="
 			 "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
 			 info->gen,
 			 dev_priv->dev->pdev->device,
-			 DEV_INFO_FLAGS);
-#undef DEV_INFO_FLAG
-#undef DEV_INFO_SEP
+			 DEV_INFO_FOR_EACH_FLAG(PRINT_FLAG, SEP_COMMA));
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index d80bced..725d53d 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -333,31 +333,31 @@ struct drm_i915_gt_funcs {
 	void (*force_wake_put)(struct drm_i915_private *dev_priv);
 };
 
-#define DEV_INFO_FLAGS \
-	DEV_INFO_FLAG(is_mobile) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_i85x) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_i915g) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_i945gm) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_g33) DEV_INFO_SEP \
-	DEV_INFO_FLAG(need_gfx_hws) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_g4x) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_pineview) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_broadwater) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_crestline) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_ivybridge) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_valleyview) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_haswell) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_force_wake) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_fbc) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_pipe_cxsr) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_hotplug) DEV_INFO_SEP \
-	DEV_INFO_FLAG(cursor_needs_physical) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_overlay) DEV_INFO_SEP \
-	DEV_INFO_FLAG(overlay_needs_physical) DEV_INFO_SEP \
-	DEV_INFO_FLAG(supports_tv) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_bsd_ring) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_blt_ring) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_llc)
+#define DEV_INFO_FOR_EACH_FLAG(func, sep) \
+	func(is_mobile) sep \
+	func(is_i85x) sep \
+	func(is_i915g) sep \
+	func(is_i945gm) sep \
+	func(is_g33) sep \
+	func(need_gfx_hws) sep \
+	func(is_g4x) sep \
+	func(is_pineview) sep \
+	func(is_broadwater) sep \
+	func(is_crestline) sep \
+	func(is_ivybridge) sep \
+	func(is_valleyview) sep \
+	func(is_haswell) sep \
+	func(has_force_wake) sep \
+	func(has_fbc) sep \
+	func(has_pipe_cxsr) sep \
+	func(has_hotplug) sep \
+	func(cursor_needs_physical) sep \
+	func(has_overlay) sep \
+	func(overlay_needs_physical) sep \
+	func(supports_tv) sep \
+	func(has_bsd_ring) sep \
+	func(has_blt_ring) sep \
+	func(has_llc)
 
 struct intel_device_info {
 	u32 display_mmio_offset;
-- 
1.8.1.4

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

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

* [PATCH 1/6 v3] drm/i915: Turn DEV_INFO_FLAGS into a foreach style macro
  2013-04-23 11:13       ` [PATCH v2] drm/i915: Turn DEV_INFO_FLAGS into " Damien Lespiau
@ 2013-04-23 15:37         ` Damien Lespiau
  0 siblings, 0 replies; 19+ messages in thread
From: Damien Lespiau @ 2013-04-23 15:37 UTC (permalink / raw)
  To: intel-gfx

DEV_INFO_FOR_FLAG() now takes 2 parameters:
  • A function to apply to the flag
  • A separator

This will allow us to use the macro twice in the DRM_DEBUG_DRIVER() call
of i915_dump_device_info().

v2: Fix a typo in the subject (Jani Nikula)
v3: Undef the helper macros (Jani Nikula, Daniel vetter)

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 10 ++++----
 drivers/gpu/drm/i915/i915_dma.c     | 10 ++++----
 drivers/gpu/drm/i915/i915_drv.h     | 50 ++++++++++++++++++-------------------
 3 files changed, 35 insertions(+), 35 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 367b534..a293ed3 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -61,11 +61,11 @@ static int i915_capabilities(struct seq_file *m, void *data)
 
 	seq_printf(m, "gen: %d\n", info->gen);
 	seq_printf(m, "pch: %d\n", INTEL_PCH_TYPE(dev));
-#define DEV_INFO_FLAG(x) seq_printf(m, #x ": %s\n", yesno(info->x))
-#define DEV_INFO_SEP ;
-	DEV_INFO_FLAGS;
-#undef DEV_INFO_FLAG
-#undef DEV_INFO_SEP
+#define PRINT_FLAG(x)  seq_printf(m, #x ": %s\n", yesno(info->x))
+#define SEP_SEMICOLON ;
+	DEV_INFO_FOR_EACH_FLAG(PRINT_FLAG, SEP_SEMICOLON);
+#undef PRINT_FLAG
+#undef SEP_SEMICOLON
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 3b315ba..cc5fd5f 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1445,15 +1445,15 @@ static void i915_dump_device_info(struct drm_i915_private *dev_priv)
 {
 	const struct intel_device_info *info = dev_priv->info;
 
-#define DEV_INFO_FLAG(name) info->name ? #name "," : ""
-#define DEV_INFO_SEP ,
+#define PRINT_FLAG(name) info->name ? #name "," : ""
+#define SEP_COMMA ,
 	DRM_DEBUG_DRIVER("i915 device info: gen=%i, pciid=0x%04x flags="
 			 "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
 			 info->gen,
 			 dev_priv->dev->pdev->device,
-			 DEV_INFO_FLAGS);
-#undef DEV_INFO_FLAG
-#undef DEV_INFO_SEP
+			 DEV_INFO_FOR_EACH_FLAG(PRINT_FLAG, SEP_COMMA));
+#undef PRINT_FLAG
+#undef SEP_COMMA
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index d80bced..725d53d 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -333,31 +333,31 @@ struct drm_i915_gt_funcs {
 	void (*force_wake_put)(struct drm_i915_private *dev_priv);
 };
 
-#define DEV_INFO_FLAGS \
-	DEV_INFO_FLAG(is_mobile) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_i85x) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_i915g) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_i945gm) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_g33) DEV_INFO_SEP \
-	DEV_INFO_FLAG(need_gfx_hws) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_g4x) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_pineview) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_broadwater) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_crestline) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_ivybridge) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_valleyview) DEV_INFO_SEP \
-	DEV_INFO_FLAG(is_haswell) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_force_wake) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_fbc) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_pipe_cxsr) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_hotplug) DEV_INFO_SEP \
-	DEV_INFO_FLAG(cursor_needs_physical) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_overlay) DEV_INFO_SEP \
-	DEV_INFO_FLAG(overlay_needs_physical) DEV_INFO_SEP \
-	DEV_INFO_FLAG(supports_tv) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_bsd_ring) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_blt_ring) DEV_INFO_SEP \
-	DEV_INFO_FLAG(has_llc)
+#define DEV_INFO_FOR_EACH_FLAG(func, sep) \
+	func(is_mobile) sep \
+	func(is_i85x) sep \
+	func(is_i915g) sep \
+	func(is_i945gm) sep \
+	func(is_g33) sep \
+	func(need_gfx_hws) sep \
+	func(is_g4x) sep \
+	func(is_pineview) sep \
+	func(is_broadwater) sep \
+	func(is_crestline) sep \
+	func(is_ivybridge) sep \
+	func(is_valleyview) sep \
+	func(is_haswell) sep \
+	func(has_force_wake) sep \
+	func(has_fbc) sep \
+	func(has_pipe_cxsr) sep \
+	func(has_hotplug) sep \
+	func(cursor_needs_physical) sep \
+	func(has_overlay) sep \
+	func(overlay_needs_physical) sep \
+	func(supports_tv) sep \
+	func(has_bsd_ring) sep \
+	func(has_blt_ring) sep \
+	func(has_llc)
 
 struct intel_device_info {
 	u32 display_mmio_offset;
-- 
1.8.1.4

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

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

* [PATCH 2/6 v2] drm/i915: Replace the line of %s by a DEV_INFO_FOR_EACH_FLAG() invocation
  2013-04-22 17:40 ` [PATCH 2/6] drm/i915: Replace the line of %s by a DEV_INFO_FOR_EACH_FLAG() invocation Damien Lespiau
  2013-04-23  7:22   ` Jani Nikula
@ 2013-04-23 15:38   ` Damien Lespiau
  1 sibling, 0 replies; 19+ messages in thread
From: Damien Lespiau @ 2013-04-23 15:38 UTC (permalink / raw)
  To: intel-gfx

This way, when adding a device flag we don't have to manually maintain
that list.

v2: undefine the helper macros (Jani Nikula, Daniel Vetter)

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
---
 drivers/gpu/drm/i915/i915_dma.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index cc5fd5f..cfa1298 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1445,13 +1445,17 @@ static void i915_dump_device_info(struct drm_i915_private *dev_priv)
 {
 	const struct intel_device_info *info = dev_priv->info;
 
+#define PRINT_S(name) "%s"
+#define SEP_EMPTY
 #define PRINT_FLAG(name) info->name ? #name "," : ""
 #define SEP_COMMA ,
 	DRM_DEBUG_DRIVER("i915 device info: gen=%i, pciid=0x%04x flags="
-			 "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
+			 DEV_INFO_FOR_EACH_FLAG(PRINT_S, SEP_EMPTY),
 			 info->gen,
 			 dev_priv->dev->pdev->device,
 			 DEV_INFO_FOR_EACH_FLAG(PRINT_FLAG, SEP_COMMA));
+#undef PRINT_S
+#undef SEP_EMPTY
 #undef PRINT_FLAG
 #undef SEP_COMMA
 }
-- 
1.8.1.4

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

* Re: [PATCH 6/6] drm/i915: Turn HAS_FPGA_DBG_UNCLAIMED into a device_info flag
  2013-04-23  7:29   ` Jani Nikula
@ 2013-04-23 16:30     ` Daniel Vetter
  0 siblings, 0 replies; 19+ messages in thread
From: Daniel Vetter @ 2013-04-23 16:30 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Tue, Apr 23, 2013 at 10:29:43AM +0300, Jani Nikula wrote:
> 
> I think this could be squashed together with the previous patch, but
> either way,
> 
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>

Entire series merged to dinq, thanks.
-Daniel

> 
> On Mon, 22 Apr 2013, Damien Lespiau <damien.lespiau@intel.com> wrote:
> > Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_drv.c | 2 ++
> >  drivers/gpu/drm/i915/i915_drv.h | 5 +++--
> >  2 files changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> > index 896b904..624cdfc 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.c
> > +++ b/drivers/gpu/drm/i915/i915_drv.c
> > @@ -309,6 +309,7 @@ static const struct intel_device_info intel_haswell_d_info = {
> >  	GEN7_FEATURES,
> >  	.is_haswell = 1,
> >  	.has_ddi = 1,
> > +	.has_fpga_dbg = 1,
> >  };
> >  
> >  static const struct intel_device_info intel_haswell_m_info = {
> > @@ -316,6 +317,7 @@ static const struct intel_device_info intel_haswell_m_info = {
> >  	.is_haswell = 1,
> >  	.is_mobile = 1,
> >  	.has_ddi = 1,
> > +	.has_fpga_dbg = 1,
> >  };
> >  
> >  static const struct pci_device_id pciidlist[] = {		/* aka */
> > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> > index c5f0778..0eb4618 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.h
> > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > @@ -358,7 +358,8 @@ struct drm_i915_gt_funcs {
> >  	func(has_bsd_ring) sep \
> >  	func(has_blt_ring) sep \
> >  	func(has_llc) sep \
> > -	func(has_ddi)
> > +	func(has_ddi) sep \
> > +	func(has_fpga_dbg)
> >  
> >  #define DEFINE_FLAG(name) u8 name:1
> >  #define SEP_SEMICOLON ;
> > @@ -1369,7 +1370,7 @@ struct drm_i915_file_private {
> >  
> >  #define HAS_DDI(dev)		(INTEL_INFO(dev)->has_ddi)
> >  #define HAS_POWER_WELL(dev)	(IS_HASWELL(dev))
> > -#define HAS_FPGA_DBG_UNCLAIMED(dev)	(IS_HASWELL(dev))
> > +#define HAS_FPGA_DBG_UNCLAIMED(dev)	(INTEL_INFO(dev)->has_fpga_dbg)
> >  
> >  #define INTEL_PCH_DEVICE_ID_MASK		0xff00
> >  #define INTEL_PCH_IBX_DEVICE_ID_TYPE		0x3b00
> > -- 
> > 1.8.1.4
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

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

end of thread, other threads:[~2013-04-23 16:27 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-22 17:40 Try to make the device info flags a bit more maintainable Damien Lespiau
2013-04-22 17:40 ` [PATCH 1/6] drm/i915: Turn DEV_INFO_FLAGS into for foreach style macro Damien Lespiau
2013-04-23  7:20   ` Jani Nikula
2013-04-23  7:31     ` Jani Nikula
2013-04-23 11:13       ` [PATCH v2] drm/i915: Turn DEV_INFO_FLAGS into " Damien Lespiau
2013-04-23 15:37         ` [PATCH 1/6 v3] drm/i915: Turn DEV_INFO_FLAGS into a " Damien Lespiau
2013-04-23 11:08     ` [PATCH 1/6] drm/i915: Turn DEV_INFO_FLAGS into for " Damien Lespiau
2013-04-22 17:40 ` [PATCH 2/6] drm/i915: Replace the line of %s by a DEV_INFO_FOR_EACH_FLAG() invocation Damien Lespiau
2013-04-23  7:22   ` Jani Nikula
2013-04-23 15:38   ` [PATCH 2/6 v2] " Damien Lespiau
2013-04-22 17:40 ` [PATCH 3/6] drm/i915: Use DEV_INFO_FOR_EACH_FLAG() to declare flags as well Damien Lespiau
2013-04-23  7:25   ` Jani Nikula
2013-04-22 17:40 ` [PATCH 4/6] drm/i915: Turn HAS_DDI() into a device_info flag Damien Lespiau
2013-04-23  7:27   ` Jani Nikula
2013-04-22 17:40 ` [PATCH 5/6] drm/i915: Introduce HAS_FPGA_DBG_UNCLAIMED() Damien Lespiau
2013-04-23  7:28   ` Jani Nikula
2013-04-22 17:40 ` [PATCH 6/6] drm/i915: Turn HAS_FPGA_DBG_UNCLAIMED into a device_info flag Damien Lespiau
2013-04-23  7:29   ` Jani Nikula
2013-04-23 16:30     ` Daniel Vetter

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.