[PATCH driver/mga] Disable Linear Expansion on BE
walter harms
wharms at bfs.de
Mon Jul 29 04:08:11 PDT 2013
Am 29.07.2013 13:02, schrieb Egbert Eich:
> Linear Expansion doesn't work on BE as the bit order in
> a word is reversed. ScreenToScreenColorExpansion allows
> to adjust the bit order in a byte, still the bytes have
> the wrong order.
>
> Signed-off-by: Egbert Eich <eich at freedesktop.org>
> ---
> src/mga.h | 5 +++++
> src/mga_storm.c | 4 ++++
> 2 files changed, 9 insertions(+)
>
> diff --git a/src/mga.h b/src/mga.h
> index 34695c1..7c3f840 100644
> --- a/src/mga.h
> +++ b/src/mga.h
> @@ -688,7 +688,12 @@ extern CARD32 MGAAtypeNoBLK[16];
> #define NICE_DASH_PATTERN 0x00000020
> #define TWO_PASS_COLOR_EXPAND 0x00000040
> #define MGA_NO_PLANEMASK 0x00000080
> +/* linear expansion doesn't work on BE due to wrong byte order */
> +#if X_BYTE_ORDER != X_BIG_ENDIAN
> #define USE_LINEAR_EXPANSION 0x00000100
> +#else
> +#define USE_LINEAR_EXPANSION 0x00000000
> +#endif
> #define LARGE_ADDRESSES 0x00000200
Since ppl are terrible bad with a NOT i suggest the other way around.
#if X_BYTE_ORDER == X_BIG_ENDIAN
#define USE_LINEAR_EXPANSION 0x00000000
#else
#define USE_LINEAR_EXPANSION 0x00000100
#endif
re,
wh
> #define MGAIOMAPSIZE 0x00004000
> diff --git a/src/mga_storm.c b/src/mga_storm.c
> index fb0e7be..84a4c8c 100644
> --- a/src/mga_storm.c
> +++ b/src/mga_storm.c
> @@ -710,7 +710,11 @@ Bool mgaAccelInit( ScreenPtr pScreen )
> /* screen to screen color expansion */
> if(pMga->AccelFlags & USE_LINEAR_EXPANSION) {
> infoPtr->ScreenToScreenColorExpandFillFlags =
> +#if X_BYTE_ORDER == X_BIG_ENDIAN
> + BIT_ORDER_IN_BYTE_MSBFIRST;
> +#else
> BIT_ORDER_IN_BYTE_LSBFIRST;
> +#endif
> infoPtr->SetupForScreenToScreenColorExpandFill =
> mgaSetupForScreenToScreenColorExpandFill;
> infoPtr->SubsequentScreenToScreenColorExpandFill =
More information about the xorg-devel
mailing list