From: Michel Dänzer <michel.daenzer@xxxxxxx> Instead of lexically. This makes it more likely for similar generations to be close to each other in the list of unique chipsets. (Ported from radeon commit 1ce1b1656acc6211deb2091ff7f28d51b6daf86b, plus change $numunique++ => ++$numunique to fix OLAND getting listed twice) Signed-off-by: Michel Dänzer <michel.daenzer at amd.com> --- src/amdgpu_chipset_gen.h | 26 +++++++++++++------------- src/pcidb/parse_pci_ids.pl | 9 +++++++-- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/amdgpu_chipset_gen.h b/src/amdgpu_chipset_gen.h index 3bfab87..1598941 100644 --- a/src/amdgpu_chipset_gen.h +++ b/src/amdgpu_chipset_gen.h @@ -195,22 +195,22 @@ SymTabRec AMDGPUChipsets[] = { }; SymTabRec AMDGPUUniqueChipsets[] = { - { 0, "BONAIRE" }, - { 0, "CARRIZO" }, - { 0, "FIJI" }, + { 0, "OLAND" }, { 0, "HAINAN" }, - { 0, "HAWAII" }, + { 0, "TAHITI" }, + { 0, "PITCAIRN" }, + { 0, "VERDE" }, + { 0, "BONAIRE" }, { 0, "KABINI" }, - { 0, "KAVERI" }, { 0, "MULLINS" }, - { 0, "OLAND" }, - { 0, "PITCAIRN" }, - { 0, "POLARIS10" }, - { 0, "POLARIS11" }, - { 0, "STONEY" }, - { 0, "TAHITI" }, - { 0, "TONGA" }, + { 0, "KAVERI" }, + { 0, "HAWAII" }, { 0, "TOPAZ" }, - { 0, "VERDE" }, + { 0, "TONGA" }, + { 0, "CARRIZO" }, + { 0, "FIJI" }, + { 0, "STONEY" }, + { 0, "POLARIS11" }, + { 0, "POLARIS10" }, { -1, NULL } }; diff --git a/src/pcidb/parse_pci_ids.pl b/src/pcidb/parse_pci_ids.pl index 9b6c6f2..1234d79 100755 --- a/src/pcidb/parse_pci_ids.pl +++ b/src/pcidb/parse_pci_ids.pl @@ -17,6 +17,8 @@ my $amdgpuchipsetfile = 'amdgpu_chipset_gen.h'; my $amdgpuchipinfofile = 'amdgpu_chipinfo_gen.h'; my %uniquechipsets; +my @uniquearray; +my $numunique = 0; my $csv = Text::CSV_XS->new(); @@ -50,7 +52,10 @@ 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; + if (!$uniquechipsets{$columns[3]}) { + $uniquearray[$numunique] = $columns[3]; + $uniquechipsets{$columns[3]} = ++$numunique; + } print AMDGPUCHIPINFO " { $columns[0], CHIP_FAMILY_$columns[2] },\n"; } @@ -63,7 +68,7 @@ while (<CSV>) { print AMDGPUCHIPINFO "};\n"; print AMDGPUCHIPSET " { -1, NULL }\n};\n\nSymTabRec AMDGPUUniqueChipsets[] = {\n"; -foreach (sort keys %uniquechipsets) { +foreach (@uniquearray) { print AMDGPUCHIPSET " { 0, \"$_\" },\n"; } print AMDGPUCHIPSET " { -1, NULL }\n};\n"; -- 2.9.3