pipe-loader: Fallback to kmsro driver when no matching driver name found
authorRob Herring <robh@kernel.org>
Thu, 24 Jan 2019 22:36:00 +0000 (16:36 -0600)
committerEric Anholt <eric@anholt.net>
Mon, 28 Jan 2019 17:35:45 +0000 (09:35 -0800)
If we can't find a driver matching by name, then use the kmsro driver.
This removes the need for needing a driver descriptor for every possible
KMS driver.

Signed-off-by: Rob Herring <robh@kernel.org>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c

index 230bafe5e159747fef6783bd9788b85e7e6f1149..c1323ac65906bb32fa4c5f2269d3afd125d6daa8 100644 (file)
@@ -106,11 +106,6 @@ static const struct drm_driver_descriptor driver_descriptors[] = {
         .create_screen = pipe_freedreno_create_screen,
         .configuration = pipe_default_configuration_query,
     },
-    {
-       .driver_name = "pl111",
-        .create_screen = pipe_kmsro_create_screen,
-        .configuration = pipe_default_configuration_query,
-    },
     {
         .driver_name = "virtio_gpu",
         .create_screen = pipe_virgl_create_screen,
@@ -142,6 +137,13 @@ static const struct drm_driver_descriptor driver_descriptors[] = {
         .configuration = pipe_default_configuration_query,
     },
 };
+
+static const struct drm_driver_descriptor default_driver_descriptor = {
+        .driver_name = "kmsro",
+        .create_screen = pipe_kmsro_create_screen,
+        .configuration = pipe_default_configuration_query,
+};
+
 #endif
 
 static const struct drm_driver_descriptor *
@@ -152,6 +154,7 @@ get_driver_descriptor(const char *driver_name, struct util_dl_library **plib)
       if (strcmp(driver_descriptors[i].driver_name, driver_name) == 0)
          return &driver_descriptors[i];
    }
+   return &default_driver_descriptor;
 #else
    *plib = pipe_loader_find_module(driver_name, PIPE_SEARCH_DIR);
    if (!*plib)