diff options
author | Aaro Koskinen <aaro.koskinen@iki.fi> | 2015-02-01 17:01:33 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-02-07 17:24:11 +0800 |
commit | 509031dd5f5ae008ef5d4d04226ce63ca8c84354 (patch) | |
tree | 57b8b8f77c805a5ff8169aa170074a26c8a75fa4 /drivers/staging/xgifb | |
parent | 659688a51a0e7427be2b2e38baeaa7f30ba16bcb (diff) | |
download | op-kernel-dev-509031dd5f5ae008ef5d4d04226ce63ca8c84354.zip op-kernel-dev-509031dd5f5ae008ef5d4d04226ce63ca8c84354.tar.gz |
staging: xgifb: fix colours on big-endian machines other than powerpc
XGI framebuffer supports big-endian machines, but it's currently
enabled based on __powerpc__ define (which is wrong, as powerpc can
be also little-endian now). Use __BIG_ENDIAN instead. This will fix
wrong colours on such machines.
Tested on parisc with XGI Z7.
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/xgifb')
-rw-r--r-- | drivers/staging/xgifb/XGI_main_26.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/staging/xgifb/XGI_main_26.c b/drivers/staging/xgifb/XGI_main_26.c index 74a8db8..935c714 100644 --- a/drivers/staging/xgifb/XGI_main_26.c +++ b/drivers/staging/xgifb/XGI_main_26.c @@ -930,7 +930,7 @@ static int XGIfb_do_set_var(struct fb_var_screeninfo *var, int isactive, + var->hsync_len; unsigned int vtotal = var->upper_margin + var->yres + var->lower_margin + var->vsync_len; -#if defined(__powerpc__) +#if defined(__BIG_ENDIAN) u8 cr_data; #endif unsigned int drate = 0, hrate = 0; @@ -1044,7 +1044,7 @@ static int XGIfb_do_set_var(struct fb_var_screeninfo *var, int isactive, xgifb_info->DstColor = 0x0000; xgifb_info->XGI310_AccelDepth = 0x00000000; xgifb_info->video_cmap_len = 256; -#if defined(__powerpc__) +#if defined(__BIG_ENDIAN) cr_data = xgifb_reg_get(XGICR, 0x4D); xgifb_reg_set(XGICR, 0x4D, (cr_data & 0xE0)); #endif @@ -1052,7 +1052,7 @@ static int XGIfb_do_set_var(struct fb_var_screeninfo *var, int isactive, case 16: xgifb_info->DstColor = 0x8000; xgifb_info->XGI310_AccelDepth = 0x00010000; -#if defined(__powerpc__) +#if defined(__BIG_ENDIAN) cr_data = xgifb_reg_get(XGICR, 0x4D); xgifb_reg_set(XGICR, 0x4D, ((cr_data & 0xE0) | 0x0B)); #endif @@ -1062,7 +1062,7 @@ static int XGIfb_do_set_var(struct fb_var_screeninfo *var, int isactive, xgifb_info->DstColor = 0xC000; xgifb_info->XGI310_AccelDepth = 0x00020000; xgifb_info->video_cmap_len = 16; -#if defined(__powerpc__) +#if defined(__BIG_ENDIAN) cr_data = xgifb_reg_get(XGICR, 0x4D); xgifb_reg_set(XGICR, 0x4D, ((cr_data & 0xE0) | 0x15)); #endif |