summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS4
-rwxr-xr-xconvert/merge2pcitable.pl20
2 files changed, 24 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 1f561847..2c5a7054 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+- enable to automatically add new ATI cards from
+ dkms-modules-info/dkms-modules.alias where fglrx declares what it
+ supports
+
Version 0.1.275 - 25 September 2009
- add support for 0x10de:0x06ec (G98M [GeForce G 105M]) which only
diff --git a/convert/merge2pcitable.pl b/convert/merge2pcitable.pl
index 1571f0b7..ee66de68 100755
--- a/convert/merge2pcitable.pl
+++ b/convert/merge2pcitable.pl
@@ -9,6 +9,8 @@ qw(alsa ignore),
my ($force, @force_modules, $all, $keep_subids, $wildcards, $use_description);
+# UPDATE ME WHEN UPDATING ../lst/Cards+:
+my $ati_driver = 'Card:ATI Radeon HD 2000 and later (radeon/fglrx)';
if ($0 =~ /merge2pcitable/)
{
if ($ARGV[0] =~ /^-f=?(.*)$/) {
@@ -114,6 +116,24 @@ sub read_pcitable {
\%drivers;
}
+sub read_kernel_aliasmap {
+ my ($f) = @_;
+ my %drivers;
+ if (!$f || $f eq '/dev/null') {
+ $f = find { -e $_ } map { "$_/dkms-modules-info/dkms-modules.alias" } qw(. ..);
+ }
+ foreach (cat_($f)) {
+ # too bad nvidia driver doesn't list its ids...
+ next if !/alias pci.* fglrx/;
+ if (/alias pci:v0000(....)d0000(....)sv/) {
+ my ($id1, $id2) = (lc($1), lc($2));
+ $drivers{ join '', map { /(....)$/ } $id1, $id2, '0xffff', '0xffff' } = [ $ati_driver ];
+ }
+ }
+ \%drivers;
+}
+
+
sub read_kernel_pcimap {
my ($f) = @_;
my (%drivers, %driver_with_classes);