On Fri, Feb 05, 2016 at 01:55:19PM -0800, Sameer Kibey wrote: > Updated the list-workarounds script so that it > can parse Mesa directory if provided. Moved the > common code to a separate function to allow > reuse for both kernel and mesa. > > The new command line is: > Usage: list-workarounds [options] path-to-kernel > -k path-to-kernel -m path-to-mesa > > The legacy usage is retained to avoid breaking > backwards compatibility. New parameters -k and > -m are added for the new behavior. > > Either kernel or mesa or both paths can be specified. > If path-to-mesa is invalid, error is reported. > > Signed-off-by: Sameer Kibey <sameer.kibey@xxxxxxxxx> Pushed thanks for the patch. -- Damien > --- > scripts/list-workarounds | 74 ++++++++++++++++++++++++++++++++++-------------- > 1 file changed, 53 insertions(+), 21 deletions(-) > > diff --git a/scripts/list-workarounds b/scripts/list-workarounds > index d11b6a9..8b41ae5 100755 > --- a/scripts/list-workarounds > +++ b/scripts/list-workarounds > @@ -18,7 +18,7 @@ def find_nth(haystack, needle, n): > return start > > valid_platforms = ('ctg', 'elk', 'ilk', 'snb', 'ivb', 'vlv', 'hsw', 'bdw', > - 'chv', 'skl', 'bxt') > + 'chv', 'skl', 'bxt', 'kbl') > def parse_platforms(line, p): > l = p.split(',') > for p in l: > @@ -65,9 +65,15 @@ def execute(cmd): > return out, err > > def parse_options(args): > - usage = "Usage: list-workarounds [options] path-to-kernel" > + usage = "Usage: list-workarounds [options] path-to-kernel -k path-to-kernel -m path-to-mesa" > parser = optparse.OptionParser(usage, version=1.0) > > + parser.add_option("-k", "--kernel-path", dest="kernel_path", default=None, > + help="path to kernel") > + > + parser.add_option("-m", "--mesa-path", dest="mesa_path", default=None, > + help="path to mesa") > + > parser.add_option("-v", "--verbose", action="store_true", > dest="verbose", default=False, > help="be more verbose") > @@ -76,38 +82,64 @@ def parse_options(args): > help="List workarounds for the specified platform") > > (options, args) = parser.parse_args() > - > return (options, args) > > -if __name__ == '__main__': > - (options, args) = parse_options(sys.argv[1:]) > - verbose = options.verbose > - > - if not len(args): > - sys.stderr.write("error: A path to a kernel tree is required\n") > - sys.exit(1) > - > - kernel_path = args[0] > - kconfig = os.path.join(kernel_path, 'Kconfig') > - if not os.path.isfile(kconfig): > - sys.stderr.write("error: %s does not point to a kernel tree \n" > - % kernel_path) > - sys.exit(1) > - > - i915_dir = os.path.join('drivers', 'gpu', 'drm', 'i915') > +def print_workarounds(project_root, driver_dir, project): > olddir = os.getcwd() > - os.chdir(kernel_path) > + os.chdir(project_root) > work_arounds, err = execute(['git', 'grep', '-n', > '-e', 'W[aA][A-Z0-9][a-zA-Z0-9_]\+', > - i915_dir]) > + driver_dir]) > os.chdir(olddir) > if err: > print(err) > sys.exit(1) > > parse(work_arounds) > + print "\nList of workarounds found in %s:" % project > for wa in sorted(workarounds.keys()): > if not options.platform: > print("%s: %s" % (wa, ', '.join(workarounds[wa]))) > elif options.platform in workarounds[wa]: > print(wa) > + > + > +if __name__ == '__main__': > + (options, args) = parse_options(sys.argv) > + verbose = options.verbose > + kernel_path = None > + > + if not len(args) and options.kernel_path == None and options.mesa_path == None: > + sys.stderr.write("error: A path to either a kernel tree or Mesa is required\n") > + sys.exit(1) > + > + if len(args): > + kernel_path = args[0] > + elif options.kernel_path != None: > + kernel_path = options.kernel_path > + > + if kernel_path != None: > + # --- list Kernel workarounds if path is provided --- > + kconfig = os.path.join(kernel_path, 'Kconfig') > + if not os.path.isfile(kconfig): > + sys.stderr.write("error: %s does not point to a kernel tree \n" > + % kernel_path) > + sys.exit(1) > + > + i915_dir = os.path.join('drivers', 'gpu', 'drm', 'i915') > + print_workarounds(kernel_path, i915_dir, "kernel") > + > + # --- list mesa workarounds if path is provided --- > + if options.mesa_path != None: > + # reset workarounds array > + workarounds = {} > + > + mesa_path = options.mesa_path > + i965_dir = os.path.join('src', 'mesa', 'drivers', 'dri', 'i965') > + mesa_dir = os.path.join(mesa_path, i965_dir) > + if not os.path.exists(mesa_dir): > + sys.stderr.write("error: %s does not point to a valid mesa path \n" > + % mesa_path) > + sys.exit(1) > + > + print_workarounds(mesa_path, i965_dir, "Mesa") > -- > 1.9.1 > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx