diff options
author | Jordan Justen <[email protected]> | 2019-03-08 16:59:44 -0800 |
---|---|---|
committer | Jordan Justen <[email protected]> | 2019-08-28 13:38:34 -0700 |
commit | cfbde3282d9b881a8cb09dc7a9c2b25b69872e32 (patch) | |
tree | 15d2667d74bdb1098a7a0fb1f9dd50136467fbc4 /src/loader | |
parent | 107c22945fdc1d21c3aaf48f0841cb1289f1669e (diff) |
pci_id_driver_map: Support preferring iris over i965
This adds the ability for intel devices that:
* Only load on i965
* Only load on iris
* First attempt i965, and try iris next
* First attempt iris, and try i965 next
Signed-off-by: Jordan Justen <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/loader')
-rw-r--r-- | src/loader/pci_id_driver_map.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/loader/pci_id_driver_map.h b/src/loader/pci_id_driver_map.h index 99fe4ad2161..2909f69f24f 100644 --- a/src/loader/pci_id_driver_map.h +++ b/src/loader/pci_id_driver_map.h @@ -19,13 +19,23 @@ static const int i915_chip_ids[] = { static const int i965_chip_ids[] = { #define CHIPSET(chip, family, name) chip, +#define IRIS 0 /* all i965 devices */ #include "pci_ids/i965_pci_ids.h" +#undef IRIS +#undef CHIPSET +}; + +static const int iris_chip_ids_1[] = { +#define CHIPSET(chip, family, name) chip, +#define IRIS 1 /* iris devices to try before i965 */ +#include "pci_ids/i965_pci_ids.h" +#undef IRIS #undef CHIPSET }; -static const int iris_chip_ids[] = { +static const int iris_chip_ids_2[] = { #define CHIPSET(chip, family, name) chip, -#define IRIS 1 +#define IRIS 2 /* iris devices to try after i965 */ #include "pci_ids/i965_pci_ids.h" #undef IRIS #undef CHIPSET @@ -83,8 +93,9 @@ static const struct { int (*predicate)(int fd); } driver_map[] = { { 0x8086, "i915", i915_chip_ids, ARRAY_SIZE(i915_chip_ids) }, + { 0x8086, "iris", iris_chip_ids_1, ARRAY_SIZE(iris_chip_ids_1) }, { 0x8086, "i965", i965_chip_ids, ARRAY_SIZE(i965_chip_ids) }, - { 0x8086, "iris", iris_chip_ids, ARRAY_SIZE(iris_chip_ids) }, + { 0x8086, "iris", iris_chip_ids_2, ARRAY_SIZE(iris_chip_ids_2) }, { 0x1002, "radeon", r100_chip_ids, ARRAY_SIZE(r100_chip_ids) }, { 0x1002, "r200", r200_chip_ids, ARRAY_SIZE(r200_chip_ids) }, { 0x1002, "r300", r300_chip_ids, ARRAY_SIZE(r300_chip_ids) }, |