mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-07-23 09:56:02 +00:00
quick_dump: SWIG chipset interface
This isn't strictly necessary it would have been easy enough to simply convert intel_chipset.h but this should be nice prep work for directly doing MMIO. It also serves as a nice review point. It's demonstrated with an autodetect function in the script. That autodetect has a hardcoded path that shouldn't be there, but it will go away in the next patch when we can properly link in libpciaccess. Thanks to Matt for helping whip the automake stuff into shape. v2: Switch to $(top_srcdir) Reviewed-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
This commit is contained in:
parent
508b5ce9a5
commit
6437eed930
@ -1,4 +1,4 @@
|
|||||||
DIST_SUBDIRS = quick_dump
|
SUBDIRS = quick_dump
|
||||||
|
|
||||||
bin_PROGRAMS = \
|
bin_PROGRAMS = \
|
||||||
intel_disable_clock_gating \
|
intel_disable_clock_gating \
|
||||||
|
@ -1,6 +1,23 @@
|
|||||||
|
BUILT_SOURCES = chipset_wrap_python.c
|
||||||
|
|
||||||
|
bin_SCRIPTS = quick_dump.py chipset.py
|
||||||
|
|
||||||
|
lib_LTLIBRARIES = I915ChipsetPython.la
|
||||||
|
I915ChipsetPython_la_CFLAGS = -I$(top_srcdir)/lib $(PYTHON_CPPFLAGS)
|
||||||
|
I915ChipsetPython_la_LDFLAGS = -module -avoid-version $(PYTHON_LDFLAGS)
|
||||||
|
I915ChipsetPython_la_SOURCES = chipset_wrap_python.c intel_chipset.c
|
||||||
|
|
||||||
|
chipset_wrap_python.c: chipset.i
|
||||||
|
$(SWIG) $(AX_SWIG_PYTHON_OPT) -I$(top_srcdir)/lib -o $@ $<
|
||||||
|
|
||||||
|
all-local: I915ChipsetPython.la
|
||||||
|
$(LN_S) -f .libs/I915ChipsetPython.so _chipset.so
|
||||||
|
|
||||||
|
CLEANFILES = chipset_wrap_python.c chipset.py _chipset.so
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
base_display.txt base_interrupt.txt base_other.txt base_power.txt base_rings.txt \
|
base_display.txt base_interrupt.txt base_other.txt base_power.txt base_rings.txt \
|
||||||
gen6_other.txt sandybridge \
|
gen6_other.txt sandybridge \
|
||||||
gen7_other.txt ivybridge \
|
gen7_other.txt ivybridge \
|
||||||
vlv_display.txt valleyview \
|
vlv_display.txt valleyview \
|
||||||
quick_dump.py
|
quick_dump.py \
|
||||||
|
chipset.i chipset.py
|
||||||
|
12
tools/quick_dump/chipset.i
Normal file
12
tools/quick_dump/chipset.i
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
%module chipset
|
||||||
|
%{
|
||||||
|
#include "intel_chipset.h"
|
||||||
|
extern int is_sandybridge(unsigned short pciid);
|
||||||
|
extern int is_ivybridge(unsigned short pciid);
|
||||||
|
extern int is_valleyview(unsigned short pciid);
|
||||||
|
%}
|
||||||
|
|
||||||
|
%include "intel_chipset.h"
|
||||||
|
extern int is_sandybridge(unsigned short pciid);
|
||||||
|
extern int is_ivybridge(unsigned short pciid);
|
||||||
|
extern int is_valleyview(unsigned short pciid);
|
16
tools/quick_dump/intel_chipset.c
Normal file
16
tools/quick_dump/intel_chipset.c
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#include "intel_chipset.h"
|
||||||
|
|
||||||
|
int is_sandybridge(unsigned short pciid)
|
||||||
|
{
|
||||||
|
return IS_GEN6(pciid);
|
||||||
|
}
|
||||||
|
|
||||||
|
int is_ivybridge(unsigned short pciid)
|
||||||
|
{
|
||||||
|
return IS_IVYBRIDGE(pciid);
|
||||||
|
}
|
||||||
|
|
||||||
|
int is_valleyview(unsigned short pciid)
|
||||||
|
{
|
||||||
|
return IS_VALLEYVIEW(pciid);
|
||||||
|
}
|
@ -5,6 +5,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import ast
|
import ast
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import chipset
|
||||||
|
|
||||||
def parse_file(file):
|
def parse_file(file):
|
||||||
for line in file:
|
for line in file:
|
||||||
@ -18,6 +19,7 @@ def parse_file(file):
|
|||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Dumb register dumper.')
|
parser = argparse.ArgumentParser(description='Dumb register dumper.')
|
||||||
parser.add_argument('-b', '--baseless', action='store_true', default=False, help='baseless mode, ignore files starting with base_')
|
parser.add_argument('-b', '--baseless', action='store_true', default=False, help='baseless mode, ignore files starting with base_')
|
||||||
|
parser.add_argument('-a', '--autodetect', action='store_true', default=False, help='autodetect chipset')
|
||||||
parser.add_argument('profile', nargs='?', type=argparse.FileType('r'), default=None)
|
parser.add_argument('profile', nargs='?', type=argparse.FileType('r'), default=None)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
@ -29,6 +31,19 @@ if args.baseless == False:
|
|||||||
file = open(name.rstrip(), 'r')
|
file = open(name.rstrip(), 'r')
|
||||||
parse_file(file)
|
parse_file(file)
|
||||||
|
|
||||||
|
if args.autodetect:
|
||||||
|
sysfs_file = open('/sys/class/drm/card0/device/device', 'r')
|
||||||
|
devid_str = sysfs_file.read()
|
||||||
|
devid = int(devid_str, 16)
|
||||||
|
if chipset.is_sandybridge(devid):
|
||||||
|
args.profile = open('sandybridge', 'r')
|
||||||
|
elif chipset.is_ivybridge(devid):
|
||||||
|
args.profile = open('ivybridge', 'r')
|
||||||
|
elif chipset.is_valleyview(devid):
|
||||||
|
args.profile = open('valleyview', 'r')
|
||||||
|
else:
|
||||||
|
print("Autodetect of %x " + devid + " failed")
|
||||||
|
|
||||||
if args.profile == None:
|
if args.profile == None:
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user