From 6b7e1e5ba3348b4f6c2bcae6fe659d742991b63b Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Thu, 3 Jan 2002 17:46:02 +0000 Subject: save the output of ddcxinfos before modprobe'ing i810fb, and use that output for Xconfig (when i810fb is modprobe'd, ddc probe doesn't work anymore) --- perl-install/Xconfig.pm | 3 ++- perl-install/any.pm | 12 +++++++++++- perl-install/install2.pm | 9 ++++++--- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/perl-install/Xconfig.pm b/perl-install/Xconfig.pm index cb23f05af..487b2b6fa 100644 --- a/perl-install/Xconfig.pm +++ b/perl-install/Xconfig.pm @@ -3,6 +3,7 @@ package Xconfig; # $Id$ use diagnostics; use strict; +use any; use common; use mouse; use devices; @@ -190,7 +191,7 @@ sub getinfoFromDDC { my $o = shift || {}; my $O = $o->{monitor} ||= {}; #- return $o if $O->{hsyncrange} && $O->{vsyncrange} && $O->{modelines}; - my ($m, @l) = `ddcxinfos`; + my ($m, @l) = any::ddcxinfos(); $? == 0 or return $o; $o->{card}{memory} ||= to_int($m); diff --git a/perl-install/any.pm b/perl-install/any.pm index 1a8e5657a..389c57511 100644 --- a/perl-install/any.pm +++ b/perl-install/any.pm @@ -868,7 +868,7 @@ sub report_bug { header("partitions"), cat_("/proc/partitions"), header("cpuinfo"), cat_("/proc/cpuinfo"), header("syslog"), cat_("/tmp/syslog"), - header("ddcxinfos"), `$ENV{LD_LOADER} ddcxinfos`, + header("ddcxinfos"), ddcxinfos(), header("stage1.log"), cat_("/tmp/stage1.log"), header("ddebug.log"), cat_("/tmp/ddebug.log"), header("install.log"), cat_("$prefix/root/install.log"), @@ -911,4 +911,14 @@ Or on the command line use: "usermod -G fileshare user_name"'); } } +sub ddcxinfos { + if ($::isInstall && -e "/tmp/ddcxinfos") { + cat_("/tmp/ddcxinfos"); + } else { + my @l = `$ENV{LD_LOADER} ddcxinfos`; + output("/tmp/ddcxinfos", @l) if $::isInstall; + @l; + } +} + 1; diff --git a/perl-install/install2.pm b/perl-install/install2.pm index 1aa15d45b..529a3b6ac 100644 --- a/perl-install/install2.pm +++ b/perl-install/install2.pm @@ -328,9 +328,12 @@ sub start_i810fb { my $xres = $vga_to_xres{$vga} || '800'; log::l("trying to load i810fb module with xres <$xres> (vga was <$vga>)"); - eval { modules::load('i810fb', undef, - ("xres=$xres", 'hsync1=32', 'hsync2=48', 'vsync1=50', 'vsync2=70', #- this sucking i810fb does not accept floating point numbers in hsync! - 'vram=2', 'bpp=16', 'accel=1', 'mtrr=1', 'hwcur=1', 'xcon=4')) }; + eval { + any::ddcxinfos(); # keep the result otherwise ddcxinfos doesn't return good results afterwards + modules::load('i810fb', undef, + ("xres=$xres", 'hsync1=32', 'hsync2=48', 'vsync1=50', 'vsync2=70', #- this sucking i810fb does not accept floating point numbers in hsync! + 'vram=2', 'bpp=16', 'accel=1', 'mtrr=1', 'hwcur=1', 'xcon=4')); + }; } -- cgit v1.2.1