[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