From: Michel Dänzer <michel.daenzer@xxxxxxx> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com> --- v3: Simplify slightly by just setting all hash values to 1. src/amdgpu_chipset_gen.h | 21 +++++++++++++++++++++ src/amdgpu_probe.c | 2 +- src/pcidb/parse_pci_ids.pl | 7 +++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/amdgpu_chipset_gen.h b/src/amdgpu_chipset_gen.h index 30e5d24..3bfab87 100644 --- a/src/amdgpu_chipset_gen.h +++ b/src/amdgpu_chipset_gen.h @@ -193,3 +193,24 @@ SymTabRec AMDGPUChipsets[] = { { PCI_CHIP_POLARIS10_67CF, "POLARIS10" }, { -1, NULL } }; + +SymTabRec AMDGPUUniqueChipsets[] = { + { 0, "BONAIRE" }, + { 0, "CARRIZO" }, + { 0, "FIJI" }, + { 0, "HAINAN" }, + { 0, "HAWAII" }, + { 0, "KABINI" }, + { 0, "KAVERI" }, + { 0, "MULLINS" }, + { 0, "OLAND" }, + { 0, "PITCAIRN" }, + { 0, "POLARIS10" }, + { 0, "POLARIS11" }, + { 0, "STONEY" }, + { 0, "TAHITI" }, + { 0, "TONGA" }, + { 0, "TOPAZ" }, + { 0, "VERDE" }, + { -1, NULL } +}; diff --git a/src/amdgpu_probe.c b/src/amdgpu_probe.c index 1c32742..213d245 100644 --- a/src/amdgpu_probe.c +++ b/src/amdgpu_probe.c @@ -77,7 +77,7 @@ static const OptionInfoRec *AMDGPUAvailableOptions(int chipid, int busid) static void AMDGPUIdentify(int flags) { xf86PrintChipsets(AMDGPU_NAME, - "Driver for AMD Radeon chipsets", AMDGPUChipsets); + "Driver for AMD Radeon chipsets", AMDGPUUniqueChipsets); } static char *amdgpu_bus_id(ScrnInfoPtr pScrn, struct pci_device *dev) diff --git a/src/pcidb/parse_pci_ids.pl b/src/pcidb/parse_pci_ids.pl index 06a9e1e..9b6c6f2 100755 --- a/src/pcidb/parse_pci_ids.pl +++ b/src/pcidb/parse_pci_ids.pl @@ -16,6 +16,8 @@ my $amdgpupcidevicematchfile = 'amdgpu_pci_device_match_gen.h'; my $amdgpuchipsetfile = 'amdgpu_chipset_gen.h'; my $amdgpuchipinfofile = 'amdgpu_chipinfo_gen.h'; +my %uniquechipsets; + my $csv = Text::CSV_XS->new(); open (CSV, "<", $file) or die $!; @@ -48,6 +50,7 @@ while (<CSV>) { print PCIDEVICEMATCH " ATI_DEVICE_MATCH( PCI_CHIP_$columns[1], 0 ),\n"; print AMDGPUCHIPSET " { PCI_CHIP_$columns[1], \"$columns[3]\" },\n"; + $uniquechipsets{$columns[3]} = 1; print AMDGPUCHIPINFO " { $columns[0], CHIP_FAMILY_$columns[2] },\n"; } @@ -59,6 +62,10 @@ while (<CSV>) { } print AMDGPUCHIPINFO "};\n"; +print AMDGPUCHIPSET " { -1, NULL }\n};\n\nSymTabRec AMDGPUUniqueChipsets[] = {\n"; +foreach (sort keys %uniquechipsets) { + print AMDGPUCHIPSET " { 0, \"$_\" },\n"; +} print AMDGPUCHIPSET " { -1, NULL }\n};\n"; print PCICHIPSET " { -1, -1, RES_UNDEFINED }\n};\n"; print PCIDEVICEMATCH " { 0, 0, 0 }\n};\n"; -- 2.9.3