1
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_macros.h,v 1.22 2002/02/20 17:17:50 dawes Exp $ */
11
#define REPLICATE(r) r &= 0xFF; r |= r << 8; r |= r << 16
13
#define REPLICATE(r) r &= 0xFFFF; r |= r << 16
15
#define REPLICATE(r) r &= 0xFFFFFF; r |= r << 24
17
#define REPLICATE(r) /* */
20
#define RGBEQUAL(c) (!((((c) >> 8) ^ (c)) & 0xffff))
23
#define MGA_SYNC_XTAG 0x275f4200
25
#define MGABUSYWAIT() do { \
26
OUTREG(MGAREG_DWGSYNC, MGA_SYNC_XTAG); \
27
while(INREG(MGAREG_DWGSYNC) != MGA_SYNC_XTAG) ; \
32
#define MGAISBUSY() (INREG8(MGAREG_Status + 2) & 0x01)
34
#define WAITFIFO(cnt) \
35
if(!pMga->UsePCIRetry) {\
36
register int n = cnt; \
37
if(n > pMga->FifoSize) n = pMga->FifoSize; \
38
while(pMga->fifoCount < (n))\
39
pMga->fifoCount = INREG8(MGAREG_FIFOSTATUS);\
40
pMga->fifoCount -= n;\
43
#define XYADDRESS(x,y) \
44
((y) * pMga->CurrentLayout.displayWidth + (x) + pMga->YDstOrg)
46
#define MAKEDMAINDEX(index) ((((index) >> 2) & 0x7f) | (((index) >> 6) & 0x80))
48
#define DMAINDICES(one,two,three,four) \
49
( MAKEDMAINDEX(one) | \
50
(MAKEDMAINDEX(two) << 8) | \
51
(MAKEDMAINDEX(three) << 16) | \
52
(MAKEDMAINDEX(four) << 24) )
55
#define SET_PLANEMASK(p) /**/
57
#define SET_PLANEMASK(p) \
58
if(!(pMga->AccelFlags & MGA_NO_PLANEMASK) && ((p) != pMga->PlaneMask)) { \
59
pMga->PlaneMask = (p); \
61
OUTREG(MGAREG_PLNWT,(p)); \
65
#define SET_FOREGROUND(c) \
66
if((c) != pMga->FgColor) { \
67
pMga->FgColor = (c); \
69
OUTREG(MGAREG_FCOL,(c)); \
72
#define SET_BACKGROUND(c) \
73
if((c) != pMga->BgColor) { \
74
pMga->BgColor = (c); \
76
OUTREG(MGAREG_BCOL,(c)); \
79
#define DISABLE_CLIP() { \
80
pMga->AccelFlags &= ~CLIPPER_ON; \
82
OUTREG(MGAREG_CXBNDRY, 0xFFFF0000); }
85
#define CHECK_DMA_QUIESCENT(pMGA, pScrn) { \
86
if (!pMGA->haveQuiescense) { \
87
pMGA->GetQuiescence( pScrn ); \
91
#define CHECK_DMA_QUIESCENT(pMGA, pScrn)
95
#define HAL_CHIPSETS ((pMga->Chipset == PCI_CHIP_MGAG200_PCI) || \
96
(pMga->Chipset == PCI_CHIP_MGAG200) || \
97
(pMga->Chipset == PCI_CHIP_MGAG400) || \
98
(pMga->Chipset == PCI_CHIP_MGAG550))
100
#define MGA_HAL(x) { \
101
MGAPtr pMga = MGAPTR(pScrn); \
102
if (pMga->HALLoaded && HAL_CHIPSETS) { x; } \
104
#define MGA_NOT_HAL(x) { \
105
MGAPtr pMga = MGAPTR(pScrn); \
106
if (!pMga->HALLoaded || !HAL_CHIPSETS) { x; } \
109
#define MGA_NOT_HAL(x) { x; }
112
#define MGAISGx50(x) ( (((x)->Chipset == PCI_CHIP_MGAG400) && ((x)->ChipRev >= 0x80)) || \
113
((x)->Chipset == PCI_CHIP_MGAG550) )
115
#define MGA_DH_NEEDS_HAL(x) (((x)->Chipset == PCI_CHIP_MGAG400) && \
116
((x)->ChipRev < 0x80))
118
#endif /* _MGA_MACROS_H_ */