diff options
author | Egbert Eich <eich@suse.de> | 2004-10-12 19:13:43 +0000 |
---|---|---|
committer | Egbert Eich <eich@suse.de> | 2004-10-12 19:13:43 +0000 |
commit | 3364e7fbd44537b98212820fb2b1941abf0d5ef3 (patch) | |
tree | a4dafeab979a474221491e164bd5ed4dc281511e /hw/xfree86/common/xf86pciBus.c | |
parent | 4ab7d316eceb23c81c1b208f9291750cf6b37513 (diff) |
Set fbdev mode as the default mode on PPC (Olaf Hering).
Added support for IBM space saver keyboard (Stefan Dirsch). Added support
for Cherry CyMotion Master XPress (Marcus Schaefer).
Change order of SetDisplayDevice(), HWRestore(), UnbindGART() and
RestoreBIOSMemSize() to be exactly opposite to the Save procedure in
EnterVT() (Matthias Hopf, Alan Hourihane).
Fix text mode restauration by removing the assumption that the register
which determines which head is programmed is set. to the active head by
the BIOS (Mark Vojkovich).
When I wrote the resource code 5 years ago I made some assumptions which
turned out to be false: I've assumed that the bus number of the PCI
hostbridge would be the PCI bus the bridge links to. This is not
correct. Fixing this assumption is not easy. However I hope that the
attached patch will make the system work regardless as it 'ignores'
host bridges from which the target bus is not known. This should not
matter at all as we really don't care about host bridges (unless we
have bridge specific code which retrieves information about the
bridge).
Fixed server crash on reset when a structure allocated in PreInit() was
freed on CloseScreen().
Fixed ring buffer lock ups that happened because the structure that
contained ringbuffer data was not zeroed after allocation.
Fixed numerous warnings due to signed unsigned comparisons.
programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
(NVBacklightEnable): Changed the order in which the sequencer registers
and the backlight control registers are written. The sequencer control
register need to be written first otherwise DPMS screen blanking
produces vertical bars on a mobile device. lib/Xau/Imakefile: Build
libXau static library PIC so it can be linked into toolkits that would
like to wrap its functionality.
Diffstat (limited to 'hw/xfree86/common/xf86pciBus.c')
-rw-r--r-- | hw/xfree86/common/xf86pciBus.c | 48 |
1 files changed, 22 insertions, 26 deletions
diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c index c5a022bf9..636faa1df 100644 --- a/hw/xfree86/common/xf86pciBus.c +++ b/hw/xfree86/common/xf86pciBus.c @@ -1838,7 +1838,7 @@ xf86GetPciBridgeInfo(void) primary, secondary); break; } - + *pnPciBus = PciBus = xnfcalloc(1, sizeof(PciBusRec)); pnPciBus = &PciBus->next; @@ -2123,42 +2123,38 @@ xf86GetPciBridgeInfo(void) case PCI_SUBCLASS_BRIDGE_HOST: /* Is this the correct bridge? If not, ignore bus info */ pBusInfo = pcrp->businfo; - if (pBusInfo == HOST_NO_BUS) + + if (!pBusInfo || pBusInfo == HOST_NO_BUS) break; secondary = 0; - if (pBusInfo) { - /* Find "secondary" bus segment */ - while (pBusInfo != pciBusInfo[secondary]) + /* Find "secondary" bus segment */ + while (pBusInfo != pciBusInfo[secondary]) secondary++; - if (pcrp != pBusInfo->bridge) { - xf86MsgVerb(X_WARNING, 3, "Host bridge mismatch for" - " bus %x: %x:%x:%x and %x:%x:%x\n", - pBusInfo->primary_bus, - pcrp->busnum, pcrp->devnum, pcrp->funcnum, - pBusInfo->bridge->busnum, - pBusInfo->bridge->devnum, - pBusInfo->bridge->funcnum); - pBusInfo = NULL; - } + if (pcrp != pBusInfo->bridge) { + xf86MsgVerb(X_WARNING, 3, "Host bridge mismatch for" + " bus %x: %x:%x:%x and %x:%x:%x\n", + pBusInfo->primary_bus, + pcrp->busnum, pcrp->devnum, pcrp->funcnum, + pBusInfo->bridge->busnum, + pBusInfo->bridge->devnum, + pBusInfo->bridge->funcnum); + pBusInfo = NULL; } *pnPciBus = PciBus = xnfcalloc(1, sizeof(PciBusRec)); pnPciBus = &PciBus->next; - PciBus->primary = -1; - PciBus->secondary = -1; /* to be set below */ + + PciBus->primary = PciBus->secondary = secondary; PciBus->subordinate = pciNumBuses - 1; - if (pBusInfo) { - PciBus->primary = PciBus->secondary = secondary; - if (pBusInfo->funcs->pciGetBridgeBuses) - (*pBusInfo->funcs->pciGetBridgeBuses) - (secondary, - &PciBus->primary, - &PciBus->secondary, - &PciBus->subordinate); - } + if (pBusInfo->funcs->pciGetBridgeBuses) + (*pBusInfo->funcs->pciGetBridgeBuses) + (secondary, + &PciBus->primary, + &PciBus->secondary, + &PciBus->subordinate); PciBus->brbus = pcrp->busnum; PciBus->brdev = pcrp->devnum; |