summaryrefslogtreecommitdiffstats
path: root/zarb-ml/mageia-dev/attachments/20120103/d64e6985/attachment-0003.obj
blob: 851e31d13fb8c1b0801c6290f61425af90653ab2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
(readCardsDB,handle_DRIVER2_NO_SSE) handle new DRIVER2_NEEDS_SSE keyword

diff --git a/NEWS b/NEWS
index 4efd4ad..d3f1a8c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,5 @@
+- handle drivers needing SSE
+
 Version 0.99 - 18 December 2011
 - default to 24bit with QXL driver (16 bit doesn't work)
 - do not offer to try KMS drivers during installation (mga#3711)
diff --git a/lib/Xconfig/card.pm b/lib/Xconfig/card.pm
index 133dd08..30a5929 100644
--- a/lib/Xconfig/card.pm
+++ b/lib/Xconfig/card.pm
@@ -496,7 +497,10 @@ sub readCardsDB {
 	CHIPSET => sub { $card->{Chipset} = $val },
 	DRIVER => sub { $card->{Driver} = $val },
 	DRIVER2 => sub { $card->{Driver2} = $val },
+	DRIVER2_NEEDS_SSE => sub { $card->{DRIVER2_NEEDS_SSE} = 1 },
 	DRIVER2_NO_SSE => sub { $card->{DRIVER2_NO_SSE} = $val },
diff --git a/lib/Xconfig/proprietary.pm b/lib/Xconfig/proprietary.pm
index 350a116..e718834 100644
--- a/lib/Xconfig/proprietary.pm
+++ b/lib/Xconfig/proprietary.pm
@@ -37,12 +37,28 @@ sub install_matrox_hal {
 sub handle_DRIVER2_NO_SSE {
     my ($card) = @_;
 
-    $card->{DRIVER2_NO_SSE} or return;
+    $card->{DRIVER2_NO_SSE} || $card->{DRIVER2_NEEDS_SSE} or return;
 
     require detect_devices;
     if (!detect_devices::has_cpu_flag('sse')) {
-	log::l("$card->{Driver2} need a processor featuring SSE, switching back to $card->{DRIVER2_NO_SSE}");
-	$card->{Driver2} = $card->{DRIVER2_NO_SSE};
+	my $driver = $card->{DRIVER2_NEEDS_SSE} ? $card->{DRIVER} : $card->{DRIVER2_NO_SSE};
+	log::l("$card->{Driver2} need a processor featuring SSE, switching back to $driver");
+	$card->{Driver2} = $driver;
     }
 }