All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] tools/intel_reg: Use pci device from config on write
@ 2015-08-28 14:51 Mika Kuoppala
  2015-08-28 14:51 ` [PATCH 2/3] lib: Optionally initialize mmio register access without forcewake Mika Kuoppala
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Mika Kuoppala @ 2015-08-28 14:51 UTC (permalink / raw)
  To: intel-gfx; +Cc: Jani Nikula

Use the pre configured pci device from config also
in write path.

Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
---
 tools/intel_reg.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/intel_reg.c b/tools/intel_reg.c
index 190aa5b..2b60a83 100644
--- a/tools/intel_reg.c
+++ b/tools/intel_reg.c
@@ -439,7 +439,7 @@ static int intel_reg_write(struct config *config, int argc, char *argv[])
 		return EXIT_FAILURE;
 	}
 
-	intel_register_access_init(intel_get_pci_device(), 0);
+	intel_register_access_init(config->pci_dev, 0);
 
 	for (i = 1; i < argc; i += 2) {
 		struct reg reg;
-- 
2.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] 8+ messages in thread

* [PATCH 2/3] lib: Optionally initialize mmio register access without forcewake
  2015-08-28 14:51 [PATCH 1/3] tools/intel_reg: Use pci device from config on write Mika Kuoppala
@ 2015-08-28 14:51 ` Mika Kuoppala
  2015-08-28 15:12   ` Jani Nikula
  2015-08-28 15:44   ` Ville Syrjälä
  2015-08-28 14:51 ` [PATCH 3/3] tools/intel_reg: Add option to skip forcewake Mika Kuoppala
  2015-08-28 15:16 ` [PATCH 1/3] tools/intel_reg: Use pci device from config on write Jani Nikula
  2 siblings, 2 replies; 8+ messages in thread
From: Mika Kuoppala @ 2015-08-28 14:51 UTC (permalink / raw)
  To: intel-gfx

Sometimes it is beneficial to debug the forcewake registers
themselves or registers that don't need or are interfered by
forcewake. Add parameter to intel_register_access_init()
to optionally avoid forcewake dance around register access.

Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
---
 debugger/debug_rdata.c       |  2 +-
 debugger/eudb.c              |  2 +-
 lib/intel_io.h               |  2 +-
 lib/intel_mmio.c             |  9 +++++++--
 tests/gem_workarounds.c      |  2 +-
 tests/pm_lpsp.c              |  2 +-
 tools/intel_display_poller.c |  2 +-
 tools/intel_forcewaked.c     |  4 ++--
 tools/intel_gpu_top.c        |  2 +-
 tools/intel_infoframes.c     |  2 +-
 tools/intel_l3_parity.c      |  2 +-
 tools/intel_panel_fitter.c   |  2 +-
 tools/intel_perf_counters.c  |  2 +-
 tools/intel_reg.c            |  6 +++---
 tools/intel_watermark.c      | 14 +++++++-------
 tools/quick_dump/chipset.i   |  4 ++--
 16 files changed, 32 insertions(+), 27 deletions(-)

diff --git a/debugger/debug_rdata.c b/debugger/debug_rdata.c
index 61d82d9..2643581 100644
--- a/debugger/debug_rdata.c
+++ b/debugger/debug_rdata.c
@@ -135,7 +135,7 @@ int main(int argc, char *argv[]) {
 	struct pci_device *pci_dev;
 	pci_dev = intel_get_pci_device();
 
-	intel_register_access_init(pci_dev, 1);
+	intel_register_access_init(pci_dev, 1, 0);
 	find_stuck_threads();
 //	collect_rdata(atoi(argv[1]), atoi(argv[2]));
 	return 0;
diff --git a/debugger/eudb.c b/debugger/eudb.c
index 39c5cca..1d6da48 100644
--- a/debugger/eudb.c
+++ b/debugger/eudb.c
@@ -540,7 +540,7 @@ int main(int argc, char* argv[]) {
 		abort();
 	}
 
-	assert(intel_register_access_init(pci_dev, 1) == 0);
+	assert(intel_register_access_init(pci_dev, 1, 0) == 0);
 
 	memset(bits, -1, sizeof(bits));
 	/*
diff --git a/lib/intel_io.h b/lib/intel_io.h
index e2d6b47..3ce9474 100644
--- a/lib/intel_io.h
+++ b/lib/intel_io.h
@@ -36,7 +36,7 @@ extern void *igt_global_mmio;
 void intel_mmio_use_pci_bar(struct pci_device *pci_dev);
 void intel_mmio_use_dump_file(char *file);
 
-int intel_register_access_init(struct pci_device *pci_dev, int safe);
+int intel_register_access_init(struct pci_device *pci_dev, int safe, int nofw);
 void intel_register_access_fini(void);
 uint32_t intel_register_read(uint32_t reg);
 void intel_register_write(uint32_t reg, uint32_t val);
diff --git a/lib/intel_mmio.c b/lib/intel_mmio.c
index e5e23c3..641fb4c 100644
--- a/lib/intel_mmio.c
+++ b/lib/intel_mmio.c
@@ -155,6 +155,7 @@ release_forcewake_lock(int fd)
  * intel_register_access_init:
  * @pci_dev: intel graphics pci device
  * @safe: use safe register access tables
+ * @nofw: don't take forcewake lock during register access
  *
  * This initializes the new register access library, which supports forcewake
  * handling and also allows register access to be checked with an explicit
@@ -165,7 +166,7 @@ release_forcewake_lock(int fd)
  * @pci_dev can be obtained from intel_get_pci_device().
  */
 int
-intel_register_access_init(struct pci_device *pci_dev, int safe)
+intel_register_access_init(struct pci_device *pci_dev, int safe, int nofw)
 {
 	int ret;
 
@@ -187,7 +188,11 @@ intel_register_access_init(struct pci_device *pci_dev, int safe)
 	/* Find where the forcewake lock is. Forcewake doesn't exist
 	 * gen < 6, but the debugfs should do the right things for us.
 	 */
-	ret = igt_open_forcewake_handle();
+	if (nofw)
+		ret = -1;
+	else
+		ret = igt_open_forcewake_handle();
+
 	if (ret == -1)
 		mmio_data.key = FAKEKEY;
 	else
diff --git a/tests/gem_workarounds.c b/tests/gem_workarounds.c
index 3759c23..81d67dd 100644
--- a/tests/gem_workarounds.c
+++ b/tests/gem_workarounds.c
@@ -117,7 +117,7 @@ static int workaround_fail_count(void)
 {
 	int i, fail_count = 0;
 
-	intel_register_access_init(intel_get_pci_device(), 0);
+	intel_register_access_init(intel_get_pci_device(), 0, 0);
 
 	/* There is a small delay after coming ot of rc6 to the correct
 	   render context values will get loaded by hardware (bdw,chv).
diff --git a/tests/pm_lpsp.c b/tests/pm_lpsp.c
index 43444d8..faf20a2 100644
--- a/tests/pm_lpsp.c
+++ b/tests/pm_lpsp.c
@@ -239,7 +239,7 @@ igt_main
 
 		igt_require(supports_lpsp(devid));
 
-		intel_register_access_init(intel_get_pci_device(), 0);
+		intel_register_access_init(intel_get_pci_device(), 0, 0);
 
 		kmstest_set_vt_graphics_mode();
 	}
diff --git a/tools/intel_display_poller.c b/tools/intel_display_poller.c
index 6d6ea21..4c2bde7 100644
--- a/tools/intel_display_poller.c
+++ b/tools/intel_display_poller.c
@@ -1350,7 +1350,7 @@ int main(int argc, char *argv[])
 		break;
 	}
 
-	intel_register_access_init(intel_get_pci_device(), 0);
+	intel_register_access_init(intel_get_pci_device(), 0, 0);
 
 	printf("%s?\n", test_name(test, pipe, bit, test_pixelcount));
 
diff --git a/tools/intel_forcewaked.c b/tools/intel_forcewaked.c
index 01ca025..95e173d 100644
--- a/tools/intel_forcewaked.c
+++ b/tools/intel_forcewaked.c
@@ -79,7 +79,7 @@ int main(int argc, char *argv[])
 		INFO_PRINT("started daemon");
 	}
 
-	ret = intel_register_access_init(intel_get_pci_device(), 1);
+	ret = intel_register_access_init(intel_get_pci_device(), 1, 0);
 	if (ret) {
 		INFO_PRINT("Couldn't init register access\n");
 		exit(1);
@@ -90,7 +90,7 @@ int main(int argc, char *argv[])
 		if (!is_alive()) {
 			INFO_PRINT("gpu reset? restarting daemon\n");
 			intel_register_access_fini();
-			ret = intel_register_access_init(intel_get_pci_device(), 1);
+			ret = intel_register_access_init(intel_get_pci_device(), 1, 0);
 			if (ret)
 				INFO_PRINT("Reg access init fail\n");
 		}
diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index b5cfda0..6629dcc 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -511,7 +511,7 @@ int main(int argc, char **argv)
 	}
 
 	/* Grab access to the registers */
-	intel_register_access_init(pci_dev, 0);
+	intel_register_access_init(pci_dev, 0, 0);
 
 	ring_init(&render_ring);
 	if (IS_GEN4(devid) || IS_GEN5(devid))
diff --git a/tools/intel_infoframes.c b/tools/intel_infoframes.c
index e03cb2c..63eb10b 100644
--- a/tools/intel_infoframes.c
+++ b/tools/intel_infoframes.c
@@ -1108,7 +1108,7 @@ int main(int argc, char *argv[])
 	       " perfectly: the Kernel might undo our changes.\n");
 
 	pci_dev = intel_get_pci_device();
-	intel_register_access_init(pci_dev, 0);
+	intel_register_access_init(pci_dev, 0, 0);
 	intel_check_pch();
 
 	if (IS_GEN4(pci_dev->device_id))
diff --git a/tools/intel_l3_parity.c b/tools/intel_l3_parity.c
index a4b7d73..ef38177 100644
--- a/tools/intel_l3_parity.c
+++ b/tools/intel_l3_parity.c
@@ -196,7 +196,7 @@ int main(int argc, char *argv[])
 	if (intel_gen(devid) < 7 || IS_VALLEYVIEW(devid))
 		exit(EXIT_SUCCESS);
 
-	assert(intel_register_access_init(intel_get_pci_device(), 0) == 0);
+	assert(intel_register_access_init(intel_get_pci_device(), 0, 0) == 0);
 
 	ret = asprintf(&path[0], "/sys/class/drm/card%d/l3_parity", device);
 	assert(ret != -1);
diff --git a/tools/intel_panel_fitter.c b/tools/intel_panel_fitter.c
index 5519361..31b9f0e 100644
--- a/tools/intel_panel_fitter.c
+++ b/tools/intel_panel_fitter.c
@@ -279,7 +279,7 @@ int main (int argc, char *argv[])
 	       "solution that may or may not work. Use it at your own risk.\n");
 
 	pci_dev = intel_get_pci_device();
-	intel_register_access_init(pci_dev, 0);
+	intel_register_access_init(pci_dev, 0, 0);
 	devid = pci_dev->device_id;
 
 	if (!HAS_PCH_SPLIT(devid)) {
diff --git a/tools/intel_perf_counters.c b/tools/intel_perf_counters.c
index 739f926..d26bba3 100644
--- a/tools/intel_perf_counters.c
+++ b/tools/intel_perf_counters.c
@@ -483,7 +483,7 @@ main(int argc, char **argv)
 
 	if (oacontrol) {
 		/* Forcewake */
-		intel_register_access_init(intel_get_pci_device(), 0);
+		intel_register_access_init(intel_get_pci_device(), 0, 0);
 
 		/* Enable performance counters */
 		intel_register_write(OACONTROL,
diff --git a/tools/intel_reg.c b/tools/intel_reg.c
index 2b60a83..b082555 100644
--- a/tools/intel_reg.c
+++ b/tools/intel_reg.c
@@ -409,7 +409,7 @@ static int intel_reg_read(struct config *config, int argc, char *argv[])
 	if (config->mmiofile)
 		intel_mmio_use_dump_file(config->mmiofile);
 	else
-		intel_register_access_init(config->pci_dev, 0);
+		intel_register_access_init(config->pci_dev, 0, 0);
 
 	for (i = 1; i < argc; i++) {
 		struct reg reg;
@@ -439,7 +439,7 @@ static int intel_reg_write(struct config *config, int argc, char *argv[])
 		return EXIT_FAILURE;
 	}
 
-	intel_register_access_init(config->pci_dev, 0);
+	intel_register_access_init(config->pci_dev, 0, 0);
 
 	for (i = 1; i < argc; i += 2) {
 		struct reg reg;
@@ -477,7 +477,7 @@ static int intel_reg_dump(struct config *config, int argc, char *argv[])
 	if (config->mmiofile)
 		intel_mmio_use_dump_file(config->mmiofile);
 	else
-		intel_register_access_init(config->pci_dev, 0);
+		intel_register_access_init(config->pci_dev, 0, 0);
 
 	for (i = 0; i < config->regcount; i++) {
 		reg = &config->regs[i];
diff --git a/tools/intel_watermark.c b/tools/intel_watermark.c
index 0b7c5e5..f399e96 100644
--- a/tools/intel_watermark.c
+++ b/tools/intel_watermark.c
@@ -139,7 +139,7 @@ static void ilk_wm_dump(void)
 	int num_pipes = is_gen7_plus(devid) ? 3 : 2;
 	struct ilk_wm wm = {};
 
-	intel_register_access_init(intel_get_pci_device(), 0);
+	intel_register_access_init(intel_get_pci_device(), 0, 0);
 
 	for (i = 0; i < num_pipes; i++) {
 		dspcntr[i] = read_reg(0x70180 + i * 0x1000);
@@ -265,7 +265,7 @@ static void vlv_wm_dump(void)
 	uint32_t dsp_ss_pm, ddr_setup2;
 	struct gmch_wm wms[MAX_PLANE] = {};
 
-	intel_register_access_init(intel_get_pci_device(), 0);
+	intel_register_access_init(intel_get_pci_device(), 0, 0);
 
 	dsparb = read_reg(0x70030);
 	dsparb2 = read_reg(0x70060);
@@ -481,7 +481,7 @@ static void g4x_wm_dump(void)
 	uint32_t mi_arb_state;
 	struct gmch_wm wms[MAX_PLANE] = {};
 
-	intel_register_access_init(intel_get_pci_device(), 0);
+	intel_register_access_init(intel_get_pci_device(), 0, 0);
 
 	dspacntr = read_reg(0x70180);
 	dspbcntr = read_reg(0x71180);
@@ -567,7 +567,7 @@ static void gen4_wm_dump(void)
 	uint32_t mi_arb_state;
 	struct gmch_wm wms[MAX_PLANE] = {};
 
-	intel_register_access_init(intel_get_pci_device(), 0);
+	intel_register_access_init(intel_get_pci_device(), 0, 0);
 
 	dsparb = read_reg(0x70030);
 	fw1 = read_reg(0x70034);
@@ -638,7 +638,7 @@ static void pnv_wm_dump(void)
 	uint32_t cbr;
 	struct gmch_wm wms[MAX_PLANE] = {};
 
-	intel_register_access_init(intel_get_pci_device(), 0);
+	intel_register_access_init(intel_get_pci_device(), 0, 0);
 
 	dsparb = read_reg(0x70030);
 	fw1 = read_reg(0x70034);
@@ -728,7 +728,7 @@ static void gen3_wm_dump(void)
 	uint32_t mi_arb_state;
 	struct gmch_wm wms[MAX_PLANE] = {};
 
-	intel_register_access_init(intel_get_pci_device(), 0);
+	intel_register_access_init(intel_get_pci_device(), 0, 0);
 
 	dsparb = read_reg(0x70030);
 	instpm = read_reg(0x20c0);
@@ -797,7 +797,7 @@ static void gen2_wm_dump(void)
 	uint32_t mi_state;
 	struct gmch_wm wms[MAX_PLANE] = {};
 
-	intel_register_access_init(intel_get_pci_device(), 0);
+	intel_register_access_init(intel_get_pci_device(), 0, 0);
 
 	dsparb = read_reg(0x70030);
 	mem_mode = read_reg(0x20cc);
diff --git a/tools/quick_dump/chipset.i b/tools/quick_dump/chipset.i
index 90db40e..e6921cf 100644
--- a/tools/quick_dump/chipset.i
+++ b/tools/quick_dump/chipset.i
@@ -13,7 +13,7 @@ extern int is_haswell(unsigned short pciid);
 extern int is_broadwell(unsigned short pciid);
 extern int is_skylake(unsigned short pciid);
 extern struct pci_device *intel_get_pci_device();
-extern int intel_register_access_init(struct pci_device *pci_dev, int safe);
+extern int intel_register_access_init(struct pci_device *pci_dev, int safe, int nofw);
 extern uint32_t intel_register_read(uint32_t reg);
 extern void intel_register_write(uint32_t reg, uint32_t val);
 extern void intel_register_access_fini();
@@ -31,7 +31,7 @@ extern int is_haswell(unsigned short pciid);
 extern int is_broadwell(unsigned short pciid);
 extern int is_skylake(unsigned short pciid);
 extern struct pci_device *intel_get_pci_device();
-extern int intel_register_access_init(struct pci_device *pci_dev, int safe);
+extern int intel_register_access_init(struct pci_device *pci_dev, int safe, int nofw);
 extern uint32_t intel_register_read(uint32_t reg);
 extern void intel_register_write(uint32_t reg, uint32_t val);
 extern void intel_register_access_fini();
-- 
2.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] 8+ messages in thread

* [PATCH 3/3] tools/intel_reg: Add option to skip forcewake
  2015-08-28 14:51 [PATCH 1/3] tools/intel_reg: Use pci device from config on write Mika Kuoppala
  2015-08-28 14:51 ` [PATCH 2/3] lib: Optionally initialize mmio register access without forcewake Mika Kuoppala
@ 2015-08-28 14:51 ` Mika Kuoppala
  2015-08-28 15:16   ` Jani Nikula
  2015-08-28 15:16 ` [PATCH 1/3] tools/intel_reg: Use pci device from config on write Jani Nikula
  2 siblings, 1 reply; 8+ messages in thread
From: Mika Kuoppala @ 2015-08-28 14:51 UTC (permalink / raw)
  To: intel-gfx; +Cc: Jani Nikula

Sometimes we want to inspect the hardware as it is,
without doing the forcewake before access. Add option to skip
the forcewake dance.

Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
---
 tools/intel_reg.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/tools/intel_reg.c b/tools/intel_reg.c
index b082555..c73b9ef 100644
--- a/tools/intel_reg.c
+++ b/tools/intel_reg.c
@@ -70,12 +70,16 @@ struct config {
 	/* spread out bits for convenience */
 	bool binary;
 
+	/* dont take forcewake on register access */
+	int nofw;
+
 	/* register spec */
 	char *specfile;
 	struct reg *regs;
 	ssize_t regcount;
 
 	int verbosity;
+
 };
 
 /* port desc must have been set */
@@ -409,7 +413,7 @@ static int intel_reg_read(struct config *config, int argc, char *argv[])
 	if (config->mmiofile)
 		intel_mmio_use_dump_file(config->mmiofile);
 	else
-		intel_register_access_init(config->pci_dev, 0, 0);
+		intel_register_access_init(config->pci_dev, 0, config->nofw);
 
 	for (i = 1; i < argc; i++) {
 		struct reg reg;
@@ -439,7 +443,7 @@ static int intel_reg_write(struct config *config, int argc, char *argv[])
 		return EXIT_FAILURE;
 	}
 
-	intel_register_access_init(config->pci_dev, 0, 0);
+	intel_register_access_init(config->pci_dev, 0, config->nofw);
 
 	for (i = 1; i < argc; i += 2) {
 		struct reg reg;
@@ -477,7 +481,7 @@ static int intel_reg_dump(struct config *config, int argc, char *argv[])
 	if (config->mmiofile)
 		intel_mmio_use_dump_file(config->mmiofile);
 	else
-		intel_register_access_init(config->pci_dev, 0, 0);
+		intel_register_access_init(config->pci_dev, 0, config->nofw);
 
 	for (i = 0; i < config->regcount; i++) {
 		reg = &config->regs[i];
@@ -637,6 +641,7 @@ static int intel_reg_help(struct config *config, int argc, char *argv[])
 	printf(" --all          Decode registers for all known platforms\n");
 	printf(" --binary       Binary dump registers\n");
 	printf(" --verbose      Increase verbosity\n");
+	printf(" --nofw         No forcewake on register access (DANGEROUS)\n");
 	printf(" --quiet        Reduce verbosity\n");
 
 	printf("\n");
@@ -769,6 +774,7 @@ enum opt {
 	OPT_BINARY,
 	OPT_SPEC,
 	OPT_VERBOSE,
+	OPT_NOFW,
 	OPT_QUIET,
 	OPT_HELP,
 };
@@ -781,6 +787,7 @@ int main(int argc, char *argv[])
 	const struct command *command = NULL;
 	struct config config = {
 		.count = 1,
+		.nofw = 0,
 	};
 	bool help = false;
 
@@ -800,6 +807,7 @@ int main(int argc, char *argv[])
 		/* options specific to read, dump and decode */
 		{ "all",	no_argument,		NULL,	OPT_ALL },
 		{ "binary",	no_argument,		NULL,	OPT_BINARY },
+		{ "nofw",	no_argument,		NULL,	OPT_NOFW },
 		{ 0 }
 	};
 
@@ -846,6 +854,9 @@ int main(int argc, char *argv[])
 		case OPT_BINARY:
 			config.binary = true;
 			break;
+		case OPT_NOFW:
+			config.nofw = 1;
+			break;
 		case OPT_VERBOSE:
 			config.verbosity++;
 			break;
-- 
2.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] 8+ messages in thread

* Re: [PATCH 2/3] lib: Optionally initialize mmio register access without forcewake
  2015-08-28 14:51 ` [PATCH 2/3] lib: Optionally initialize mmio register access without forcewake Mika Kuoppala
@ 2015-08-28 15:12   ` Jani Nikula
  2015-08-28 15:44   ` Ville Syrjälä
  1 sibling, 0 replies; 8+ messages in thread
From: Jani Nikula @ 2015-08-28 15:12 UTC (permalink / raw)
  To: Mika Kuoppala, intel-gfx

On Fri, 28 Aug 2015, Mika Kuoppala <mika.kuoppala@linux.intel.com> wrote:
> Sometimes it is beneficial to debug the forcewake registers
> themselves or registers that don't need or are interfered by
> forcewake. Add parameter to intel_register_access_init()
> to optionally avoid forcewake dance around register access.
>
> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
> ---
>  debugger/debug_rdata.c       |  2 +-
>  debugger/eudb.c              |  2 +-
>  lib/intel_io.h               |  2 +-
>  lib/intel_mmio.c             |  9 +++++++--
>  tests/gem_workarounds.c      |  2 +-
>  tests/pm_lpsp.c              |  2 +-
>  tools/intel_display_poller.c |  2 +-
>  tools/intel_forcewaked.c     |  4 ++--
>  tools/intel_gpu_top.c        |  2 +-
>  tools/intel_infoframes.c     |  2 +-
>  tools/intel_l3_parity.c      |  2 +-
>  tools/intel_panel_fitter.c   |  2 +-
>  tools/intel_perf_counters.c  |  2 +-
>  tools/intel_reg.c            |  6 +++---
>  tools/intel_watermark.c      | 14 +++++++-------
>  tools/quick_dump/chipset.i   |  4 ++--
>  16 files changed, 32 insertions(+), 27 deletions(-)
>
> diff --git a/debugger/debug_rdata.c b/debugger/debug_rdata.c
> index 61d82d9..2643581 100644
> --- a/debugger/debug_rdata.c
> +++ b/debugger/debug_rdata.c
> @@ -135,7 +135,7 @@ int main(int argc, char *argv[]) {
>  	struct pci_device *pci_dev;
>  	pci_dev = intel_get_pci_device();
>  
> -	intel_register_access_init(pci_dev, 1);
> +	intel_register_access_init(pci_dev, 1, 0);
>  	find_stuck_threads();
>  //	collect_rdata(atoi(argv[1]), atoi(argv[2]));
>  	return 0;
> diff --git a/debugger/eudb.c b/debugger/eudb.c
> index 39c5cca..1d6da48 100644
> --- a/debugger/eudb.c
> +++ b/debugger/eudb.c
> @@ -540,7 +540,7 @@ int main(int argc, char* argv[]) {
>  		abort();
>  	}
>  
> -	assert(intel_register_access_init(pci_dev, 1) == 0);
> +	assert(intel_register_access_init(pci_dev, 1, 0) == 0);
>  
>  	memset(bits, -1, sizeof(bits));
>  	/*
> diff --git a/lib/intel_io.h b/lib/intel_io.h
> index e2d6b47..3ce9474 100644
> --- a/lib/intel_io.h
> +++ b/lib/intel_io.h
> @@ -36,7 +36,7 @@ extern void *igt_global_mmio;
>  void intel_mmio_use_pci_bar(struct pci_device *pci_dev);
>  void intel_mmio_use_dump_file(char *file);
>  
> -int intel_register_access_init(struct pci_device *pci_dev, int safe);
> +int intel_register_access_init(struct pci_device *pci_dev, int safe, int nofw);

Friday night nitpicking, in the long run adding boolean parameters to a
function makes it hard to use. (Especially so if they are ints used as
boolean! ;) I'd rather you either turned the two parameters into one
mode parameter, so you'd call it with init(dev, SAFE | NOFW), or added
an init_nofw() variant.

Just sayin'. I'm not insisting though.

BR,
Jani.



>  void intel_register_access_fini(void);
>  uint32_t intel_register_read(uint32_t reg);
>  void intel_register_write(uint32_t reg, uint32_t val);
> diff --git a/lib/intel_mmio.c b/lib/intel_mmio.c
> index e5e23c3..641fb4c 100644
> --- a/lib/intel_mmio.c
> +++ b/lib/intel_mmio.c
> @@ -155,6 +155,7 @@ release_forcewake_lock(int fd)
>   * intel_register_access_init:
>   * @pci_dev: intel graphics pci device
>   * @safe: use safe register access tables
> + * @nofw: don't take forcewake lock during register access
>   *
>   * This initializes the new register access library, which supports forcewake
>   * handling and also allows register access to be checked with an explicit
> @@ -165,7 +166,7 @@ release_forcewake_lock(int fd)
>   * @pci_dev can be obtained from intel_get_pci_device().
>   */
>  int
> -intel_register_access_init(struct pci_device *pci_dev, int safe)
> +intel_register_access_init(struct pci_device *pci_dev, int safe, int nofw)
>  {
>  	int ret;
>  
> @@ -187,7 +188,11 @@ intel_register_access_init(struct pci_device *pci_dev, int safe)
>  	/* Find where the forcewake lock is. Forcewake doesn't exist
>  	 * gen < 6, but the debugfs should do the right things for us.
>  	 */
> -	ret = igt_open_forcewake_handle();
> +	if (nofw)
> +		ret = -1;
> +	else
> +		ret = igt_open_forcewake_handle();
> +
>  	if (ret == -1)
>  		mmio_data.key = FAKEKEY;
>  	else
> diff --git a/tests/gem_workarounds.c b/tests/gem_workarounds.c
> index 3759c23..81d67dd 100644
> --- a/tests/gem_workarounds.c
> +++ b/tests/gem_workarounds.c
> @@ -117,7 +117,7 @@ static int workaround_fail_count(void)
>  {
>  	int i, fail_count = 0;
>  
> -	intel_register_access_init(intel_get_pci_device(), 0);
> +	intel_register_access_init(intel_get_pci_device(), 0, 0);
>  
>  	/* There is a small delay after coming ot of rc6 to the correct
>  	   render context values will get loaded by hardware (bdw,chv).
> diff --git a/tests/pm_lpsp.c b/tests/pm_lpsp.c
> index 43444d8..faf20a2 100644
> --- a/tests/pm_lpsp.c
> +++ b/tests/pm_lpsp.c
> @@ -239,7 +239,7 @@ igt_main
>  
>  		igt_require(supports_lpsp(devid));
>  
> -		intel_register_access_init(intel_get_pci_device(), 0);
> +		intel_register_access_init(intel_get_pci_device(), 0, 0);
>  
>  		kmstest_set_vt_graphics_mode();
>  	}
> diff --git a/tools/intel_display_poller.c b/tools/intel_display_poller.c
> index 6d6ea21..4c2bde7 100644
> --- a/tools/intel_display_poller.c
> +++ b/tools/intel_display_poller.c
> @@ -1350,7 +1350,7 @@ int main(int argc, char *argv[])
>  		break;
>  	}
>  
> -	intel_register_access_init(intel_get_pci_device(), 0);
> +	intel_register_access_init(intel_get_pci_device(), 0, 0);
>  
>  	printf("%s?\n", test_name(test, pipe, bit, test_pixelcount));
>  
> diff --git a/tools/intel_forcewaked.c b/tools/intel_forcewaked.c
> index 01ca025..95e173d 100644
> --- a/tools/intel_forcewaked.c
> +++ b/tools/intel_forcewaked.c
> @@ -79,7 +79,7 @@ int main(int argc, char *argv[])
>  		INFO_PRINT("started daemon");
>  	}
>  
> -	ret = intel_register_access_init(intel_get_pci_device(), 1);
> +	ret = intel_register_access_init(intel_get_pci_device(), 1, 0);
>  	if (ret) {
>  		INFO_PRINT("Couldn't init register access\n");
>  		exit(1);
> @@ -90,7 +90,7 @@ int main(int argc, char *argv[])
>  		if (!is_alive()) {
>  			INFO_PRINT("gpu reset? restarting daemon\n");
>  			intel_register_access_fini();
> -			ret = intel_register_access_init(intel_get_pci_device(), 1);
> +			ret = intel_register_access_init(intel_get_pci_device(), 1, 0);
>  			if (ret)
>  				INFO_PRINT("Reg access init fail\n");
>  		}
> diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
> index b5cfda0..6629dcc 100644
> --- a/tools/intel_gpu_top.c
> +++ b/tools/intel_gpu_top.c
> @@ -511,7 +511,7 @@ int main(int argc, char **argv)
>  	}
>  
>  	/* Grab access to the registers */
> -	intel_register_access_init(pci_dev, 0);
> +	intel_register_access_init(pci_dev, 0, 0);
>  
>  	ring_init(&render_ring);
>  	if (IS_GEN4(devid) || IS_GEN5(devid))
> diff --git a/tools/intel_infoframes.c b/tools/intel_infoframes.c
> index e03cb2c..63eb10b 100644
> --- a/tools/intel_infoframes.c
> +++ b/tools/intel_infoframes.c
> @@ -1108,7 +1108,7 @@ int main(int argc, char *argv[])
>  	       " perfectly: the Kernel might undo our changes.\n");
>  
>  	pci_dev = intel_get_pci_device();
> -	intel_register_access_init(pci_dev, 0);
> +	intel_register_access_init(pci_dev, 0, 0);
>  	intel_check_pch();
>  
>  	if (IS_GEN4(pci_dev->device_id))
> diff --git a/tools/intel_l3_parity.c b/tools/intel_l3_parity.c
> index a4b7d73..ef38177 100644
> --- a/tools/intel_l3_parity.c
> +++ b/tools/intel_l3_parity.c
> @@ -196,7 +196,7 @@ int main(int argc, char *argv[])
>  	if (intel_gen(devid) < 7 || IS_VALLEYVIEW(devid))
>  		exit(EXIT_SUCCESS);
>  
> -	assert(intel_register_access_init(intel_get_pci_device(), 0) == 0);
> +	assert(intel_register_access_init(intel_get_pci_device(), 0, 0) == 0);
>  
>  	ret = asprintf(&path[0], "/sys/class/drm/card%d/l3_parity", device);
>  	assert(ret != -1);
> diff --git a/tools/intel_panel_fitter.c b/tools/intel_panel_fitter.c
> index 5519361..31b9f0e 100644
> --- a/tools/intel_panel_fitter.c
> +++ b/tools/intel_panel_fitter.c
> @@ -279,7 +279,7 @@ int main (int argc, char *argv[])
>  	       "solution that may or may not work. Use it at your own risk.\n");
>  
>  	pci_dev = intel_get_pci_device();
> -	intel_register_access_init(pci_dev, 0);
> +	intel_register_access_init(pci_dev, 0, 0);
>  	devid = pci_dev->device_id;
>  
>  	if (!HAS_PCH_SPLIT(devid)) {
> diff --git a/tools/intel_perf_counters.c b/tools/intel_perf_counters.c
> index 739f926..d26bba3 100644
> --- a/tools/intel_perf_counters.c
> +++ b/tools/intel_perf_counters.c
> @@ -483,7 +483,7 @@ main(int argc, char **argv)
>  
>  	if (oacontrol) {
>  		/* Forcewake */
> -		intel_register_access_init(intel_get_pci_device(), 0);
> +		intel_register_access_init(intel_get_pci_device(), 0, 0);
>  
>  		/* Enable performance counters */
>  		intel_register_write(OACONTROL,
> diff --git a/tools/intel_reg.c b/tools/intel_reg.c
> index 2b60a83..b082555 100644
> --- a/tools/intel_reg.c
> +++ b/tools/intel_reg.c
> @@ -409,7 +409,7 @@ static int intel_reg_read(struct config *config, int argc, char *argv[])
>  	if (config->mmiofile)
>  		intel_mmio_use_dump_file(config->mmiofile);
>  	else
> -		intel_register_access_init(config->pci_dev, 0);
> +		intel_register_access_init(config->pci_dev, 0, 0);
>  
>  	for (i = 1; i < argc; i++) {
>  		struct reg reg;
> @@ -439,7 +439,7 @@ static int intel_reg_write(struct config *config, int argc, char *argv[])
>  		return EXIT_FAILURE;
>  	}
>  
> -	intel_register_access_init(config->pci_dev, 0);
> +	intel_register_access_init(config->pci_dev, 0, 0);
>  
>  	for (i = 1; i < argc; i += 2) {
>  		struct reg reg;
> @@ -477,7 +477,7 @@ static int intel_reg_dump(struct config *config, int argc, char *argv[])
>  	if (config->mmiofile)
>  		intel_mmio_use_dump_file(config->mmiofile);
>  	else
> -		intel_register_access_init(config->pci_dev, 0);
> +		intel_register_access_init(config->pci_dev, 0, 0);
>  
>  	for (i = 0; i < config->regcount; i++) {
>  		reg = &config->regs[i];
> diff --git a/tools/intel_watermark.c b/tools/intel_watermark.c
> index 0b7c5e5..f399e96 100644
> --- a/tools/intel_watermark.c
> +++ b/tools/intel_watermark.c
> @@ -139,7 +139,7 @@ static void ilk_wm_dump(void)
>  	int num_pipes = is_gen7_plus(devid) ? 3 : 2;
>  	struct ilk_wm wm = {};
>  
> -	intel_register_access_init(intel_get_pci_device(), 0);
> +	intel_register_access_init(intel_get_pci_device(), 0, 0);
>  
>  	for (i = 0; i < num_pipes; i++) {
>  		dspcntr[i] = read_reg(0x70180 + i * 0x1000);
> @@ -265,7 +265,7 @@ static void vlv_wm_dump(void)
>  	uint32_t dsp_ss_pm, ddr_setup2;
>  	struct gmch_wm wms[MAX_PLANE] = {};
>  
> -	intel_register_access_init(intel_get_pci_device(), 0);
> +	intel_register_access_init(intel_get_pci_device(), 0, 0);
>  
>  	dsparb = read_reg(0x70030);
>  	dsparb2 = read_reg(0x70060);
> @@ -481,7 +481,7 @@ static void g4x_wm_dump(void)
>  	uint32_t mi_arb_state;
>  	struct gmch_wm wms[MAX_PLANE] = {};
>  
> -	intel_register_access_init(intel_get_pci_device(), 0);
> +	intel_register_access_init(intel_get_pci_device(), 0, 0);
>  
>  	dspacntr = read_reg(0x70180);
>  	dspbcntr = read_reg(0x71180);
> @@ -567,7 +567,7 @@ static void gen4_wm_dump(void)
>  	uint32_t mi_arb_state;
>  	struct gmch_wm wms[MAX_PLANE] = {};
>  
> -	intel_register_access_init(intel_get_pci_device(), 0);
> +	intel_register_access_init(intel_get_pci_device(), 0, 0);
>  
>  	dsparb = read_reg(0x70030);
>  	fw1 = read_reg(0x70034);
> @@ -638,7 +638,7 @@ static void pnv_wm_dump(void)
>  	uint32_t cbr;
>  	struct gmch_wm wms[MAX_PLANE] = {};
>  
> -	intel_register_access_init(intel_get_pci_device(), 0);
> +	intel_register_access_init(intel_get_pci_device(), 0, 0);
>  
>  	dsparb = read_reg(0x70030);
>  	fw1 = read_reg(0x70034);
> @@ -728,7 +728,7 @@ static void gen3_wm_dump(void)
>  	uint32_t mi_arb_state;
>  	struct gmch_wm wms[MAX_PLANE] = {};
>  
> -	intel_register_access_init(intel_get_pci_device(), 0);
> +	intel_register_access_init(intel_get_pci_device(), 0, 0);
>  
>  	dsparb = read_reg(0x70030);
>  	instpm = read_reg(0x20c0);
> @@ -797,7 +797,7 @@ static void gen2_wm_dump(void)
>  	uint32_t mi_state;
>  	struct gmch_wm wms[MAX_PLANE] = {};
>  
> -	intel_register_access_init(intel_get_pci_device(), 0);
> +	intel_register_access_init(intel_get_pci_device(), 0, 0);
>  
>  	dsparb = read_reg(0x70030);
>  	mem_mode = read_reg(0x20cc);
> diff --git a/tools/quick_dump/chipset.i b/tools/quick_dump/chipset.i
> index 90db40e..e6921cf 100644
> --- a/tools/quick_dump/chipset.i
> +++ b/tools/quick_dump/chipset.i
> @@ -13,7 +13,7 @@ extern int is_haswell(unsigned short pciid);
>  extern int is_broadwell(unsigned short pciid);
>  extern int is_skylake(unsigned short pciid);
>  extern struct pci_device *intel_get_pci_device();
> -extern int intel_register_access_init(struct pci_device *pci_dev, int safe);
> +extern int intel_register_access_init(struct pci_device *pci_dev, int safe, int nofw);
>  extern uint32_t intel_register_read(uint32_t reg);
>  extern void intel_register_write(uint32_t reg, uint32_t val);
>  extern void intel_register_access_fini();
> @@ -31,7 +31,7 @@ extern int is_haswell(unsigned short pciid);
>  extern int is_broadwell(unsigned short pciid);
>  extern int is_skylake(unsigned short pciid);
>  extern struct pci_device *intel_get_pci_device();
> -extern int intel_register_access_init(struct pci_device *pci_dev, int safe);
> +extern int intel_register_access_init(struct pci_device *pci_dev, int safe, int nofw);
>  extern uint32_t intel_register_read(uint32_t reg);
>  extern void intel_register_write(uint32_t reg, uint32_t val);
>  extern void intel_register_access_fini();
> -- 
> 2.1.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

* Re: [PATCH 3/3] tools/intel_reg: Add option to skip forcewake
  2015-08-28 14:51 ` [PATCH 3/3] tools/intel_reg: Add option to skip forcewake Mika Kuoppala
@ 2015-08-28 15:16   ` Jani Nikula
  0 siblings, 0 replies; 8+ messages in thread
From: Jani Nikula @ 2015-08-28 15:16 UTC (permalink / raw)
  To: Mika Kuoppala, intel-gfx

On Fri, 28 Aug 2015, Mika Kuoppala <mika.kuoppala@linux.intel.com> wrote:
> Sometimes we want to inspect the hardware as it is,
> without doing the forcewake before access. Add option to skip
> the forcewake dance.

This needs a manual page update.

Some trivial comments below, otherwise lgtm.

>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
> ---
>  tools/intel_reg.c | 17 ++++++++++++++---
>  1 file changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/tools/intel_reg.c b/tools/intel_reg.c
> index b082555..c73b9ef 100644
> --- a/tools/intel_reg.c
> +++ b/tools/intel_reg.c
> @@ -70,12 +70,16 @@ struct config {
>  	/* spread out bits for convenience */
>  	bool binary;
>  
> +	/* dont take forcewake on register access */
> +	int nofw;

IMO should be a bool.


> +
>  	/* register spec */
>  	char *specfile;
>  	struct reg *regs;
>  	ssize_t regcount;
>  
>  	int verbosity;
> +

Superfluous whitespace change.

>  };
>  
>  /* port desc must have been set */
> @@ -409,7 +413,7 @@ static int intel_reg_read(struct config *config, int argc, char *argv[])
>  	if (config->mmiofile)
>  		intel_mmio_use_dump_file(config->mmiofile);
>  	else
> -		intel_register_access_init(config->pci_dev, 0, 0);
> +		intel_register_access_init(config->pci_dev, 0, config->nofw);
>  
>  	for (i = 1; i < argc; i++) {
>  		struct reg reg;
> @@ -439,7 +443,7 @@ static int intel_reg_write(struct config *config, int argc, char *argv[])
>  		return EXIT_FAILURE;
>  	}
>  
> -	intel_register_access_init(config->pci_dev, 0, 0);
> +	intel_register_access_init(config->pci_dev, 0, config->nofw);
>  
>  	for (i = 1; i < argc; i += 2) {
>  		struct reg reg;
> @@ -477,7 +481,7 @@ static int intel_reg_dump(struct config *config, int argc, char *argv[])
>  	if (config->mmiofile)
>  		intel_mmio_use_dump_file(config->mmiofile);
>  	else
> -		intel_register_access_init(config->pci_dev, 0, 0);
> +		intel_register_access_init(config->pci_dev, 0, config->nofw);
>  
>  	for (i = 0; i < config->regcount; i++) {
>  		reg = &config->regs[i];
> @@ -637,6 +641,7 @@ static int intel_reg_help(struct config *config, int argc, char *argv[])
>  	printf(" --all          Decode registers for all known platforms\n");
>  	printf(" --binary       Binary dump registers\n");
>  	printf(" --verbose      Increase verbosity\n");
> +	printf(" --nofw         No forcewake on register access (DANGEROUS)\n");
>  	printf(" --quiet        Reduce verbosity\n");
>  
>  	printf("\n");
> @@ -769,6 +774,7 @@ enum opt {
>  	OPT_BINARY,
>  	OPT_SPEC,
>  	OPT_VERBOSE,
> +	OPT_NOFW,
>  	OPT_QUIET,
>  	OPT_HELP,
>  };
> @@ -781,6 +787,7 @@ int main(int argc, char *argv[])
>  	const struct command *command = NULL;
>  	struct config config = {
>  		.count = 1,
> +		.nofw = 0,

No need to initialize to zero.

>  	};
>  	bool help = false;
>  
> @@ -800,6 +807,7 @@ int main(int argc, char *argv[])
>  		/* options specific to read, dump and decode */
>  		{ "all",	no_argument,		NULL,	OPT_ALL },
>  		{ "binary",	no_argument,		NULL,	OPT_BINARY },
> +		{ "nofw",	no_argument,		NULL,	OPT_NOFW },
>  		{ 0 }
>  	};
>  
> @@ -846,6 +854,9 @@ int main(int argc, char *argv[])
>  		case OPT_BINARY:
>  			config.binary = true;
>  			break;
> +		case OPT_NOFW:
> +			config.nofw = 1;

= true;

> +			break;
>  		case OPT_VERBOSE:
>  			config.verbosity++;
>  			break;
> -- 
> 2.1.4
>

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

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

* Re: [PATCH 1/3] tools/intel_reg: Use pci device from config on write
  2015-08-28 14:51 [PATCH 1/3] tools/intel_reg: Use pci device from config on write Mika Kuoppala
  2015-08-28 14:51 ` [PATCH 2/3] lib: Optionally initialize mmio register access without forcewake Mika Kuoppala
  2015-08-28 14:51 ` [PATCH 3/3] tools/intel_reg: Add option to skip forcewake Mika Kuoppala
@ 2015-08-28 15:16 ` Jani Nikula
  2015-09-09 13:50   ` Thomas Wood
  2 siblings, 1 reply; 8+ messages in thread
From: Jani Nikula @ 2015-08-28 15:16 UTC (permalink / raw)
  To: Mika Kuoppala, intel-gfx

On Fri, 28 Aug 2015, Mika Kuoppala <mika.kuoppala@linux.intel.com> wrote:
> Use the pre configured pci device from config also
> in write path.
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
> ---
>  tools/intel_reg.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/intel_reg.c b/tools/intel_reg.c
> index 190aa5b..2b60a83 100644
> --- a/tools/intel_reg.c
> +++ b/tools/intel_reg.c
> @@ -439,7 +439,7 @@ static int intel_reg_write(struct config *config, int argc, char *argv[])
>  		return EXIT_FAILURE;
>  	}
>  
> -	intel_register_access_init(intel_get_pci_device(), 0);
> +	intel_register_access_init(config->pci_dev, 0);

Whoops, my bad.

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


>  
>  	for (i = 1; i < argc; i += 2) {
>  		struct reg reg;
> -- 
> 2.1.4
>

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

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

* Re: [PATCH 2/3] lib: Optionally initialize mmio register access without forcewake
  2015-08-28 14:51 ` [PATCH 2/3] lib: Optionally initialize mmio register access without forcewake Mika Kuoppala
  2015-08-28 15:12   ` Jani Nikula
@ 2015-08-28 15:44   ` Ville Syrjälä
  1 sibling, 0 replies; 8+ messages in thread
From: Ville Syrjälä @ 2015-08-28 15:44 UTC (permalink / raw)
  To: Mika Kuoppala; +Cc: intel-gfx

On Fri, Aug 28, 2015 at 05:51:46PM +0300, Mika Kuoppala wrote:
> Sometimes it is beneficial to debug the forcewake registers
> themselves or registers that don't need or are interfered by
> forcewake. Add parameter to intel_register_access_init()
> to optionally avoid forcewake dance around register access.
> 
> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
> ---
>  debugger/debug_rdata.c       |  2 +-
>  debugger/eudb.c              |  2 +-
>  lib/intel_io.h               |  2 +-
>  lib/intel_mmio.c             |  9 +++++++--
>  tests/gem_workarounds.c      |  2 +-
>  tests/pm_lpsp.c              |  2 +-
>  tools/intel_display_poller.c |  2 +-
>  tools/intel_forcewaked.c     |  4 ++--
>  tools/intel_gpu_top.c        |  2 +-
>  tools/intel_infoframes.c     |  2 +-
>  tools/intel_l3_parity.c      |  2 +-
>  tools/intel_panel_fitter.c   |  2 +-
>  tools/intel_perf_counters.c  |  2 +-
>  tools/intel_reg.c            |  6 +++---
>  tools/intel_watermark.c      | 14 +++++++-------
>  tools/quick_dump/chipset.i   |  4 ++--
>  16 files changed, 32 insertions(+), 27 deletions(-)
> 
> diff --git a/debugger/debug_rdata.c b/debugger/debug_rdata.c
> index 61d82d9..2643581 100644
> --- a/debugger/debug_rdata.c
> +++ b/debugger/debug_rdata.c
<snip>  
> @@ -187,7 +188,11 @@ intel_register_access_init(struct pci_device *pci_dev, int safe)
>  	/* Find where the forcewake lock is. Forcewake doesn't exist
>  	 * gen < 6, but the debugfs should do the right things for us.
>  	 */
> -	ret = igt_open_forcewake_handle();
> +	if (nofw)
> +		ret = -1;
> +	else
> +		ret = igt_open_forcewake_handle();

IGT_NO_FORCEWAKE is handled in igt_open_forcewake_handle(). Maybe pull
it out so that all ways to disable forcewake are handled in the same
place?

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 1/3] tools/intel_reg: Use pci device from config on write
  2015-08-28 15:16 ` [PATCH 1/3] tools/intel_reg: Use pci device from config on write Jani Nikula
@ 2015-09-09 13:50   ` Thomas Wood
  0 siblings, 0 replies; 8+ messages in thread
From: Thomas Wood @ 2015-09-09 13:50 UTC (permalink / raw)
  To: Jani Nikula; +Cc: Intel Graphics Development

On 28 August 2015 at 16:16, Jani Nikula <jani.nikula@intel.com> wrote:
> On Fri, 28 Aug 2015, Mika Kuoppala <mika.kuoppala@linux.intel.com> wrote:
>> Use the pre configured pci device from config also
>> in write path.
>>
>> Cc: Jani Nikula <jani.nikula@intel.com>
>> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
>> ---
>>  tools/intel_reg.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/intel_reg.c b/tools/intel_reg.c
>> index 190aa5b..2b60a83 100644
>> --- a/tools/intel_reg.c
>> +++ b/tools/intel_reg.c
>> @@ -439,7 +439,7 @@ static int intel_reg_write(struct config *config, int argc, char *argv[])
>>               return EXIT_FAILURE;
>>       }
>>
>> -     intel_register_access_init(intel_get_pci_device(), 0);
>> +     intel_register_access_init(config->pci_dev, 0);
>
> Whoops, my bad.
>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>

Thanks, I've pushed this patch. The other two patches in this series
can be pushed once any of the review comments have been addressed.


>
>
>>
>>       for (i = 1; i < argc; i += 2) {
>>               struct reg reg;
>> --
>> 2.1.4
>>
>
> --
> Jani Nikula, Intel Open Source Technology Center
> _______________________________________________
> 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] 8+ messages in thread

end of thread, other threads:[~2015-09-09 13:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-28 14:51 [PATCH 1/3] tools/intel_reg: Use pci device from config on write Mika Kuoppala
2015-08-28 14:51 ` [PATCH 2/3] lib: Optionally initialize mmio register access without forcewake Mika Kuoppala
2015-08-28 15:12   ` Jani Nikula
2015-08-28 15:44   ` Ville Syrjälä
2015-08-28 14:51 ` [PATCH 3/3] tools/intel_reg: Add option to skip forcewake Mika Kuoppala
2015-08-28 15:16   ` Jani Nikula
2015-08-28 15:16 ` [PATCH 1/3] tools/intel_reg: Use pci device from config on write Jani Nikula
2015-09-09 13:50   ` Thomas Wood

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.