st/dri2: fix kms_swrast driconf option handling
authorRob Herring <robh@kernel.org>
Tue, 8 Aug 2017 16:42:02 +0000 (11:42 -0500)
committerRob Herring <robh@kernel.org>
Wed, 9 Aug 2017 14:09:39 +0000 (09:09 -0500)
Commit e794f8bf8bdb ("gallium: move loading of drirc to pipe-loader")
moved the option cache to the pipe_loader_device. However, the
screen->dev pointer is not set when dri_init_options() is called. Move
the call to after the pipe_loader_sw_probe_kms() call so screen->dev is
set. This mirrors the code flow for dri2_init_screen().

Fixes: e794f8bf8bdb ("gallium: move loading of drirc to pipe-loader")
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Cc: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Rob Herring <robh@kernel.org>
src/gallium/state_trackers/dri/dri2.c

index 4e58bcb9c5b28e18e89fe7d52209d04839744fff..1e8bb48104465f89d1b71252b2f5bf913574ce19 100644 (file)
@@ -2061,10 +2061,10 @@ dri_kms_init_screen(__DRIscreen * sPriv)
    if (screen->fd < 0 || (fd = fcntl(screen->fd, F_DUPFD_CLOEXEC, 3)) < 0)
       goto free_screen;
 
-   dri_init_options(screen);
-
-   if (pipe_loader_sw_probe_kms(&screen->dev, fd))
+   if (pipe_loader_sw_probe_kms(&screen->dev, fd)) {
+      dri_init_options(screen);
       pscreen = pipe_loader_create_screen(screen->dev);
+   }
 
    if (!pscreen)
        goto release_pipe;