XFree86 4.3.99.16 Bring the tree up to date for the Cygwin folks

parent 0a53864f
.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ati.man,v 1.2 2001/01/27 18:20:46 dawes Exp $
.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ati.man,v 1.3 2003/11/10 18:41:20 tsi Exp $
.\" shorthand for double quote that works everywhere.
.ds q \N'34'
.TH ATI __drivermansuffix__ __vendorversion__
......
......@@ -4,19 +4,19 @@
.SH NAME
radeon \- ATI RADEON video driver
.SH SYNOPSIS
.nf
.nf
.B "Section \*qDevice\*q"
.BI " Identifier \*q" devname \*q
.B " Driver \*qradeon\*q"
\ \ ...
.B EndSection
.fi
.fi
.SH DESCRIPTION
.B radeon
is a XFree86 driver for ATI RADEON based video cards. It contains
full support for 8, 15, 16 and 24 bit pixel depths, dual-head setup,
flat panel, hardware 2D acceleration, hardware 3D acceleration
(except R300 cards), hardware cursor, XV extension, Xinerama extension.
full support for 8, 15, 16 and 24 bit pixel depths, dual-head setup,
flat panel, hardware 2D acceleration, hardware 3D acceleration
(except R300 and IGP series cards), hardware cursor, XV extension, Xinerama extension.
.SH SUPPORTED HARDWARE
The
.B radeon
......@@ -28,74 +28,101 @@ Radeon 7200
.B RV100
Radeon 7000(VE), M6
.TP 12
.B RS100
Radeon IGP320(M) (2D only)
.TP 12
.B RV200
Radeon 7500, M7
Radeon 7500, M7, FireGL 7800
.TP 12
.B RS200
Radeon IGP330(M)/IGP340(M) (2D only)
.TP 12
.B RS250
Radeon Mobility 7000 IGP (2D only)
.TP 12
.B R200
Radeon 8500, 9100, FireGL 8800/8700
.TP 12
.B RV250
Radeon 9000, M9
Radeon 9000PRO/9000, M9
.TP 12
.B RS300
Radeon 9100 IGP (2D only)
.TP 12
.B RV280
Radeon 9200PRO/9200/9200SE, M9+
.TP 12
.B R300
Radeon 9700PRO/9700/9500PRO/9500, FireGL X1/Z1
Radeon 9700PRO/9700/9500PRO/9500/9600TX, FireGL X1/Z1 (2D only)
.TP 12
.B R350
Radeon 9800PRO/9800SE/9800, FireGL X2 (2D only)
.TP 12
.B R360
Radeon 9800XT (2d only)
.TP 12
.B RV350
Radeon 9600PRO/9600SE/9600, M10/M11, FireGL T2 (2D only)
.TP 12
.B RV360
Radeon 9600XT (2d only)
.SH CONFIGURATION DETAILS
Please refer to XF86Config(__filemansuffix__) for general configuration
details. This section only covers configuration details specific to this
driver.
.PP
.PP
The driver auto\-detects all device information necessary to initialize
the card. However, if you have problems with auto\-detection, you can
specify:
.PP
.PP
.RS 4
VideoRam \- in kilobytes
.br
.br
MemBase \- physical address of the linear framebuffer
.br
.br
IOBase \- physical address of the MMIO registers
.br
.br
ChipID \- PCI DEVICE ID
.RE
.PP
.PP
In addition, the following driver
.B Options
are supported:
.TP
.TP
.BI "Option \*qSWcursor\*q \*q" boolean \*q
Selects software cursor. The default is
.B off.
.TP
.TP
.BI "Option \*qNoAccel\*q \*q" boolean \*q
Enables or disables all hardware acceleration.
Enables or disables all hardware acceleration.
.br
The default is to
.B enable
hardware acceleration.
.TP
.TP
.BI "Option \*qDac6Bit\*q \*q" boolean \*q
Enables or disables the use of 6 bits per color component when in 8 bpp
mode (emulates VGA mode). By default, all 8 bits per color component
are used.
are used.
.br
The default is
.B off.
.TP
.TP
.BI "Option \*qVideoKey\*q \*q" integer \*q
This overrides the default pixel value for the YUV video overlay key.
.br
The default value is
.B undefined.
.TP
.B 0x1E.
.TP
.BI "Option \*qUseFBDev\*q \*q" boolean \*q
Enable or disable use of an OS\-specific framebuffer device interface
(which is not supported on all OSs). See fbdevhw(__drivermansuffix__)
for further information.
for further information.
.br
The default is
.B off.
.TP
.TP
.BI "Option \*qAGPMode\*q \*q" integer \*q
Set AGP data transfer rate.
(used only when DRI is enabled)
......@@ -107,7 +134,7 @@ Set AGP data transfer rate.
4 \-\- x4
.br
others \-\- invalid
.TP
.TP
.BI "Option \*qAGPFastWrite\*q \*q" boolean \*q
Enable AGP fast write.
.br
......@@ -115,104 +142,176 @@ Enable AGP fast write.
.br
The default is
.B off.
.TP
.BI "Option \*qForcePCIMode\*q \*q" boolean \*q
Force to use PCI GART for DRI acceleration.
.TP
.BI "Option \*qBusType\*q \*q" string \*q
Used to replace previous ForcePCIMode option.
Should only be used when driver's bus detection is incorrect
or you want to force a AGP card to PCI mode. Should NEVER force
a PCI card to AGP bus.
.br
PCI \-\- PCI bus
.br
AGP \-\- AGP bus
.br
PCIE \-\- PCI Express (falls back to PCI at present)
.br
(used only when DRI is enabled)
.br
The default is
.B off.
.B auto detect.
.TP
.BI "Option \*qForcePCIMode\*q \*q" boolean \*q
Force to use PCI GART for DRI acceleration.
This option is deprecated in favor of the
.BI BusType
option above and will be removed in the next release.
.TP
.BI "Option \*qDDCMode\*q \*q" boolean \*q
Force to use the modes queried from the connected monitor.
.br
The default is
.B off.
.TP
.BI "Option \*qCloneDisplay\*q \*q" integer \*q
.br
This option is only used for dual\-head cards with only single
screen section specified in the configuration file.
0 \-\- disable
.br
1 \-\- auto\-detect (default)
.br
2 \-\- force on
.br
3 \-\- auto\-detect + 2nd head overlay
.br
4 \-\- force on + 2nd head overlay
.br
others \-\- auto\-detect
.B disable
means only one CRTC is used for both heads.
.B auto\-detect
means the secondary head will be driven by CRTC2
if a monitor is detected there.
.B force on
means the secondary head will be driven by CRTC2
even no monitor is detected there.
.B 2nd-head overlay
means the only hardware overlay will be placed to the secondary head.
.TP
.BI "Option \*qDisplayPriority\*q \*q" string \*q
.br
Used to prevent flickering or tearing problem caused by display buffer underflow.
.br
AUTO \-\- Driver calculated (default).
.br
BIOS \-\- Remain unchanged from BIOS setting.
Use this if the calculation is not correct
for your card.
.br
HIGH \-\- Force to the highest priority.
Use this if you have problem with above options.
This may affect performence slightly.
.br
The default value is
.B AUTO.
.TP
.BI "Option \*qMonitorLayout\*q \*q" string \*q
.br
This option is used to overwrite the detected monitor types.
This is only required when driver makes a false detection.
The possible monitor types are:
.br
NONE \-\- Not connected
.br
CRT \-\- Analog CRT monitor
.br
TMDS \-\- Desktop flat panel
.br
LVDS \-\- Lapto flat panel
.br
This option can be used in following format:
.br
Option "MonitorLayout" "[type on primary], [type on secondary]"
.br
For example, Option "MonitorLayout" "CRT, TMDS"
Primary/Secondary head for dual\-head cards:
.br
.br
(when only one port is used, it will be treated as the primary regardless)
.br
.br
.B Primary head:
.br
.br
DVI port on DVI+VGA cards
.br
.br
LCD output on laptops
.br
.br
Internal TMDS prot on DVI+DVI cards
.br
.br
.B Secondary head:
.br
.br
VGA port on DVI+VGA cards
.br
.br
VGA port on laptops
.br
.br
External TMDS port on DVI+DVI cards
.TP
The default value is
.B undefined.
.TP
.BI "Option \*qCloneMode\*q \*q" "string" \*q
Set the first mode for the secondary head.
It can be different from the modes used for the primary head. If you don't
have this line while clone is on, the modes specified for the primary head
will be used for the secondary head.
.TP
.br
For example, Option "CloneMode" "1024x768"
.br
The default value is
.B undefined.
.TP
.BI "Option \*qCloneHSync\*q \*q" "string" \*q
Set the horizontal sync range for the secondary monitor.
Set the horizontal sync range for the secondary monitor.
It is not required if a DDC\-capable monitor is connected.
.br
For example, Option "CloneHSync" "30.0-86.0"
.br
The default value is
.B undefined.
.TP
.TP
.BI "Option \*qCloneVRefresh\*q \*q" "string" \*q
Set the vertical refresh range for the secondary monitor.
Set the vertical refresh range for the secondary monitor.
It is not required if a DDC\-capable monitor is connected.
.br
For example, Option "CloneVRefresh" "50.0-120.0"
.br
The default value is
.B undefined.
.TP
.TP
.BI "Option \*qOverlayOnCRTC2\*q \*q" boolean \*q
Force hardware overlay to clone head.
.br
The default value is
.B off.
.TP
.BI "Option \*qIgnoreEDID\*q \*q" boolean \*q
Do not use EDID data for mode validation, but DDC is still used
for monitor detection. This is different from NoDDC option.
.br
The default value is
.B off.
.TP
.BI "Option \*qPanelSize\*q \*q" "string" \*q
Should only be used when driver cannot detect the correct panel size.
Apply to both desktop (TMDS) and laptop (LVDS) digital panels.
When a valid panel size is specified, the timings collected from
DDC and BIOS will not be used. If you have a panel with timings
different from that of a standard VESA mode, you have to provide
this information through the Modeline.
.br
For example, Option "PanelSize" "1400x1050"
.br
The default value is
.B none.
.TP
.BI "Option \*qPanelOff\*q \*q" boolean \*q
Disable panel output. Only used when clone is enabled.
.br
The default value is
.B off.
.TP
.TP
.BI "Option \*qEnablePageFlip\*q \*q" boolean \*q
Enable page flipping for 3D acceleration. This will increase performance
but not work correctly in some rare cases, hence the default is
.B off.
.TP
.BI "Option \*qForceMinDotClock\*q \*q" frequency \*q
Override minimum dot clock. Some Radeon BIOSes report a minimum dot
clock unsuitable (too high) for use with television sets even when they
actually can produce lower dot clocks. If this is the case you can
override the value here.
.B Note that using this option may damage your hardware.
You have been warned. The
.B frequency
parameter may be specified as a float value with standard suffixes like
"k", "kHz", "M", "MHz".
.SH SEE ALSO
XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(__miscmansuffix__)
.SH AUTHORS
.nf
.nf
Authors include: ...
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ati.c,v 1.21 2003/01/01 19:16:30 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ati.c,v 1.23 2003/04/25 14:37:35 tsi Exp $ */
/*
* Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
......@@ -41,7 +41,7 @@
* Mark Vojkovich, Huw D M Davies, Andrew C Aitchison, Ani Joshi,
* Kostas Gewrgiou, Jakub Jelinek, David S. Miller, A E Lawrence,
* Linus Torvalds, William Blew, Ignacio Garcia Etxebarria, Patrick Chase,
* Vladimir Dergachev
* Vladimir Dergachev, Egbert Eich, Mike A. Harris
*
* ... and, many, many others from around the world.
*
......
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.c,v 1.11 2003/01/01 19:16:30 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.c,v 1.13 2003/04/24 21:19:22 tsi Exp $ */
/*
* Copyright 2001 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
......@@ -23,7 +23,7 @@
#include "atiaccel.h"
#include "atiadapter.h"
#include "atimach64.h"
#include "atimach64accel.h"
#include "atistruct.h"
/*
......@@ -65,6 +65,11 @@ ATIInitializeAcceleration
#endif /* AVOID_CPIO */
{
/*
* Note: If PixelArea exceeds the engine's maximum, the excess is
* never used, even though it would be useful for such things
* as XVideo buffers.
*/
maxPixelArea = maxScanlines * pScreenInfo->displayWidth;
PixelArea = pScreenInfo->videoRam * 1024 * 8 / pATI->bitsPerPixel;
if (PixelArea > maxPixelArea)
......@@ -79,3 +84,50 @@ ATIInitializeAcceleration
pATI->pXAAInfo = NULL;
return FALSE;
}
FBLinearPtr
ATIResizeOffscreenLinear
(
ScreenPtr pScreen,
FBLinearPtr pLinear,
int Size
)
{
if (Size <= 0)
{
xf86FreeOffscreenLinear(pLinear);
return NULL;
}
if (pLinear)
{
if ((pLinear->size >= Size) ||
xf86ResizeOffscreenLinear(pLinear, Size))
{
pLinear->MoveLinearCallback = NULL;
pLinear->RemoveLinearCallback = NULL;
return pLinear;
}
xf86FreeOffscreenLinear(pLinear);
}
pLinear = xf86AllocateOffscreenLinear(pScreen, Size, 16, NULL, NULL, NULL);
if (!pLinear)
{
int maxSize;
xf86QueryLargestOffscreenLinear(pScreen, &maxSize, 16,
PRIORITY_EXTREME);
if (maxSize < Size)
return NULL;
xf86PurgeUnlockedOffscreenAreas(pScreen);
pLinear =
xf86AllocateOffscreenLinear(pScreen, Size, 16, NULL, NULL, NULL);
}
return pLinear;
}
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.h,v 1.4 2003/01/01 19:16:30 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.h,v 1.5 2003/04/23 21:51:27 tsi Exp $ */
/*
* Copyright 2001 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
......@@ -28,9 +28,14 @@
#include "atiproto.h"
#include "xf86str.h"
#include "xf86fbman.h"
extern Bool ATIInitializeAcceleration FunctionPrototype((ScreenPtr,
ScrnInfoPtr,
ATIPtr));
extern Bool ATIInitializeAcceleration FunctionPrototype((ScreenPtr,
ScrnInfoPtr,
ATIPtr));
extern FBLinearPtr ATIResizeOffscreenLinear FunctionPrototype((ScreenPtr,
FBLinearPtr,
int));
#endif /* ___ATIACCEL_H___ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.c,v 1.14 2003/01/01 19:16:30 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.c,v 1.15 2003/04/23 21:51:27 tsi Exp $ */
/*
* Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
......@@ -38,7 +38,7 @@
*/
/*
* ATIAjustPreInit --
* ATIAjustPreInit --
*
* This function calculates values needed to speed up the setting of the
* display start address.
......@@ -90,11 +90,17 @@ ATIAdjustPreInit
pATI->AdjustMaxBase <<= 1;
}
else if (!pATI->CPIO_VGAWonder)
{
pATI->AdjustMaxBase = 0xFFFFU << 3;
}
else if (pATI->Chip <= ATI_CHIP_28800_6)
{
pATI->AdjustMaxBase = 0x03FFFFU << 3;
}
else /* Mach32 & Mach64 */
{
pATI->AdjustMaxBase = 0x0FFFFFU << 3;
}
break;
#endif /* AVOID_CPIO */
......
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.c,v 1.33 2003/02/19 15:07:46 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.c,v 1.37 2003/10/07 22:47:11 martin Exp $ */
/*
* Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
......@@ -84,15 +84,24 @@ const char *ATIChipNames[] =
"ATI Rage 128 Mobility M3",
"ATI Rage 128 Mobility M4",
"ATI unknown Rage 128"
"ATI Radeon",
"ATI Radeon VE",
"ATI Radeon 7200",
"ATI Radeon 7000 (VE)",
"ATI Radeon Mobility M6",
"ATI Radeon Mobility M7",
"ATI Radeon 8500",
"ATI Radeon IGP320",
"ATI Radeon IGP330/340/350",
"ATI Radeon 7000 IGP",
"ATI Radeon 7500",
"ATI Radeon Mobility M7",
"ATI Radeon 8500/9100",
"ATI Radeon 9000",
"ATI Radeon Mobility M9",
"ATI Radeon 9700",
"ATI Radeon 9000 IGP",
"ATI Radeon 9200",
"ATI Radeon Mobility M9+",
"ATI Radeon 9700/9500",
"ATI Radeon 9600",
"ATI Radeon 9800",
"ATI Radeon 9800XT",
"ATI Rage HDTV"
};
......@@ -629,6 +638,18 @@ ATIChipID
case NewChipID('L', 'Z'):
return ATI_CHIP_RADEONMOBILITY6;
case NewChipID('A', '6'):
case NewChipID('C', '6'):
return ATI_CHIP_RS100;
case NewChipID('A', '7'):
case NewChipID('C', '7'):
return ATI_CHIP_RS200;
case NewChipID('D', '7'):
case NewChipID('B', '7'):
return ATI_CHIP_RS250;
case NewChipID('L', 'W'):
case NewChipID('L', 'X'):
return ATI_CHIP_RADEONMOBILITY7;
......@@ -653,18 +674,29 @@ ATIChipID
case NewChipID('Q', 'X'):
return ATI_CHIP_RV200;
case NewChipID('I', 'd'):
case NewChipID('I', 'e'):
case NewChipID('I', 'f'):
case NewChipID('I', 'g'):
return ATI_CHIP_RV250;
case NewChipID('L', 'd'):
case NewChipID('L', 'e'):
case NewChipID('L', 'f'):
case NewChipID('L', 'g'):
return ATI_CHIP_RADEONMOBILITY9;
case NewChipID('X', '4'):
case NewChipID('X', '5'):
return ATI_CHIP_RS300;
case NewChipID('Y', '\''):
case NewChipID('Y', 'a'):
case NewChipID('Y', 'b'):
case NewChipID('Y', 'd'):
return ATI_CHIP_RV280;
case NewChipID('\\', 'a'):
case NewChipID('\\', 'c'):
return ATI_CHIP_RADEONMOBILITY9PLUS;
case NewChipID('A', 'D'):
case NewChipID('A', 'E'):
case NewChipID('A', 'F'):
......@@ -675,6 +707,32 @@ ATIChipID
case NewChipID('N', 'G'):
return ATI_CHIP_R300;
case NewChipID('A', 'H'):
case NewChipID('A', 'I'):
case NewChipID('A', 'J'):
case NewChipID('A', 'K'):
case NewChipID('N', 'H'):
case NewChipID('N', 'I'):
case NewChipID('N', 'K'):
return ATI_CHIP_R350;
case NewChipID('A', 'P'):
case NewChipID('A', 'Q'):
case NewChipID('A', 'R'):
case NewChipID('A', 'S'):
case NewChipID('A', 'T'):
case NewChipID('A', 'V'):
case NewChipID('N', 'P'):
case NewChipID('N', 'Q'):
case NewChipID('N', 'R'):
case NewChipID('N', 'S'):
case NewChipID('N', 'T'):
case NewChipID('N', 'V'):
return ATI_CHIP_RV350;
case NewChipID('N', 'J'):
return ATI_CHIP_R360;
case NewChipID('H', 'D'):
return ATI_CHIP_HDTV;
......
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.h,v 1.22 2003/01/01 19:16:30 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.h,v 1.25 2003/10/07 22:47:11 martin Exp $ */
/*
* Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
......@@ -89,12 +89,21 @@ typedef enum
ATI_CHIP_RADEON, /* Radeon */
ATI_CHIP_RADEONVE, /* Radeon VE */
ATI_CHIP_RADEONMOBILITY6, /* Radeon M6 */
ATI_CHIP_RS100, /* IGP320 */
ATI_CHIP_RS200, /* IGP340 */
ATI_CHIP_RS250, /* Radoen 7000 IGP */
ATI_CHIP_RV200, /* RV200 */
ATI_CHIP_RADEONMOBILITY7, /* Radeon M7 */
ATI_CHIP_R200, /* R200 */
ATI_CHIP_RV200, /* RV200 */
ATI_CHIP_RV250, /* RV250 */
ATI_CHIP_RADEONMOBILITY9, /* Radeon M9 */
ATI_CHIP_RS300, /* Radoen 9000 IGP */
ATI_CHIP_RV280, /* RV250 */
ATI_CHIP_RADEONMOBILITY9PLUS, /* Radeon M9+ */
ATI_CHIP_R300, /* R300 */
ATI_CHIP_RV350, /* RV350 */
ATI_CHIP_R350, /* R350 */
ATI_CHIP_R360, /* R360 */
ATI_CHIP_HDTV /* HDTV */
} ATIChipType;
......
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.c,v 1.20 2003/01/01 19:16:31 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.c,v 1.21 2003/04/23 21:51:27 tsi Exp $ */
/*
* Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
......@@ -499,7 +499,9 @@ ATIMatchClockLine
continue;
}
else if (Gap > MaximumGap)
{
MaximumGap = Gap;
}
ClockCount++;
}
......@@ -562,13 +564,17 @@ ATIClockPreInit
/* Check for those that are not (yet) handled */
if ((pATI->ProgrammableClock == ATI_CLOCK_UNKNOWN) ||
(pATI->ProgrammableClock > NumberOf(ATIClockDescriptors)))
{
xf86DrvMsgVerb(pScreenInfo->scrnIndex, X_WARNING, 0,
"Unknown programmable clock generator type (0x%02X)"
" detected.\n", pATI->ProgrammableClock);
}
else if (pATI->ClockDescriptor.MaxN <= 0)
{