Commit e2e22587 authored by Mike Rapoport's avatar Mike Rapoport Committed by Greg Kroah-Hartman

staging: sm750fb: change definition of DE_CONTROL fields

Use stratight-forward definition of DE_CONTROL register fields
and use open-coded implementation for register manipulation
Signed-off-by: default avatarMike Rapoport <mike.rapoport@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0fab34b5
...@@ -63,16 +63,11 @@ void hw_de_init(struct lynx_accel *accel) ...@@ -63,16 +63,11 @@ void hw_de_init(struct lynx_accel *accel)
write_dpr(accel, DE_COLOR_COMPARE_MASK, 0); /* dpr24 */ write_dpr(accel, DE_COLOR_COMPARE_MASK, 0); /* dpr24 */
write_dpr(accel, DE_COLOR_COMPARE, 0); write_dpr(accel, DE_COLOR_COMPARE, 0);
reg = FIELD_SET(0, DE_CONTROL, TRANSPARENCY, DISABLE)| clr = DE_CONTROL_TRANSPARENCY | DE_CONTROL_TRANSPARENCY_MATCH |
FIELD_SET(0, DE_CONTROL, TRANSPARENCY_MATCH, OPAQUE)| DE_CONTROL_TRANSPARENCY_SELECT;
FIELD_SET(0, DE_CONTROL, TRANSPARENCY_SELECT, SOURCE);
clr = FIELD_CLEAR(DE_CONTROL, TRANSPARENCY)&
FIELD_CLEAR(DE_CONTROL, TRANSPARENCY_MATCH)&
FIELD_CLEAR(DE_CONTROL, TRANSPARENCY_SELECT);
/* dpr0c */ /* dpr0c */
write_dpr(accel, DE_CONTROL, (read_dpr(accel, DE_CONTROL)&clr)|reg); write_dpr(accel, DE_CONTROL, read_dpr(accel, DE_CONTROL) & ~clr);
} }
/* set2dformat only be called from setmode functions /* set2dformat only be called from setmode functions
...@@ -122,13 +117,9 @@ int hw_fillrect(struct lynx_accel *accel, ...@@ -122,13 +117,9 @@ int hw_fillrect(struct lynx_accel *accel,
((width << DE_DIMENSION_X_SHIFT) & DE_DIMENSION_X_MASK) | ((width << DE_DIMENSION_X_SHIFT) & DE_DIMENSION_X_MASK) |
(height & DE_DIMENSION_Y_ET_MASK)); /* dpr8 */ (height & DE_DIMENSION_Y_ET_MASK)); /* dpr8 */
deCtrl = deCtrl = DE_CONTROL_STATUS | DE_CONTROL_LAST_PIXEL |
FIELD_SET(0, DE_CONTROL, STATUS, START)| DE_CONTROL_COMMAND_RECTANGLE_FILL | DE_CONTROL_ROP_SELECT |
FIELD_SET(0, DE_CONTROL, DIRECTION, LEFT_TO_RIGHT)| (rop & DE_CONTROL_ROP_MASK); /* dpr0xc */
FIELD_SET(0, DE_CONTROL, LAST_PIXEL, ON)|
FIELD_SET(0, DE_CONTROL, COMMAND, RECTANGLE_FILL)|
FIELD_SET(0, DE_CONTROL, ROP_SELECT, ROP2)|
FIELD_VALUE(0, DE_CONTROL, ROP, rop); /* dpr0xc */
write_dpr(accel, DE_CONTROL, deCtrl); write_dpr(accel, DE_CONTROL, deCtrl);
return 0; return 0;
...@@ -264,13 +255,9 @@ unsigned int rop2) /* ROP value */ ...@@ -264,13 +255,9 @@ unsigned int rop2) /* ROP value */
((width << DE_DIMENSION_X_SHIFT) & DE_DIMENSION_X_MASK) | ((width << DE_DIMENSION_X_SHIFT) & DE_DIMENSION_X_MASK) |
(height & DE_DIMENSION_Y_ET_MASK)); /* dpr08 */ (height & DE_DIMENSION_Y_ET_MASK)); /* dpr08 */
de_ctrl = FIELD_VALUE(0, DE_CONTROL, ROP, rop2) | de_ctrl = (rop2 & DE_CONTROL_ROP_MASK) | DE_CONTROL_ROP_SELECT |
FIELD_SET(0, DE_CONTROL, ROP_SELECT, ROP2) | ((nDirection == RIGHT_TO_LEFT) ? DE_CONTROL_DIRECTION : 0) |
FIELD_SET(0, DE_CONTROL, COMMAND, BITBLT) | DE_CONTROL_COMMAND_BITBLT | DE_CONTROL_STATUS;
((nDirection == RIGHT_TO_LEFT) ?
FIELD_SET(0, DE_CONTROL, DIRECTION, RIGHT_TO_LEFT)
: FIELD_SET(0, DE_CONTROL, DIRECTION, LEFT_TO_RIGHT)) |
FIELD_SET(0, DE_CONTROL, STATUS, START);
write_dpr(accel, DE_CONTROL, de_ctrl); /* dpr0c */ write_dpr(accel, DE_CONTROL, de_ctrl); /* dpr0c */
} }
...@@ -284,10 +271,8 @@ static unsigned int deGetTransparency(struct lynx_accel *accel) ...@@ -284,10 +271,8 @@ static unsigned int deGetTransparency(struct lynx_accel *accel)
de_ctrl = read_dpr(accel, DE_CONTROL); de_ctrl = read_dpr(accel, DE_CONTROL);
de_ctrl &= de_ctrl &= (DE_CONTROL_TRANSPARENCY_MATCH |
FIELD_MASK(DE_CONTROL_TRANSPARENCY_MATCH) | DE_CONTROL_TRANSPARENCY_SELECT | DE_CONTROL_TRANSPARENCY);
FIELD_MASK(DE_CONTROL_TRANSPARENCY_SELECT)|
FIELD_MASK(DE_CONTROL_TRANSPARENCY);
return de_ctrl; return de_ctrl;
} }
...@@ -365,11 +350,9 @@ int hw_imageblit(struct lynx_accel *accel, ...@@ -365,11 +350,9 @@ int hw_imageblit(struct lynx_accel *accel,
write_dpr(accel, DE_FOREGROUND, fColor); write_dpr(accel, DE_FOREGROUND, fColor);
write_dpr(accel, DE_BACKGROUND, bColor); write_dpr(accel, DE_BACKGROUND, bColor);
de_ctrl = FIELD_VALUE(0, DE_CONTROL, ROP, rop2) | de_ctrl = (rop2 & DE_CONTROL_ROP_MASK) |
FIELD_SET(0, DE_CONTROL, ROP_SELECT, ROP2) | DE_CONTROL_ROP_SELECT | DE_CONTROL_COMMAND_HOST_WRITE |
FIELD_SET(0, DE_CONTROL, COMMAND, HOST_WRITE) | DE_CONTROL_HOST | DE_CONTROL_STATUS;
FIELD_SET(0, DE_CONTROL, HOST, MONO) |
FIELD_SET(0, DE_CONTROL, STATUS, START);
write_dpr(accel, DE_CONTROL, de_ctrl | deGetTransparency(accel)); write_dpr(accel, DE_CONTROL, de_ctrl | deGetTransparency(accel));
......
...@@ -39,78 +39,46 @@ ...@@ -39,78 +39,46 @@
#define DE_DIMENSION_Y_ET_MASK 0x1fff #define DE_DIMENSION_Y_ET_MASK 0x1fff
#define DE_CONTROL 0xC #define DE_CONTROL 0xC
#define DE_CONTROL_STATUS 31:31 #define DE_CONTROL_STATUS BIT(31)
#define DE_CONTROL_STATUS_STOP 0 #define DE_CONTROL_PATTERN BIT(30)
#define DE_CONTROL_STATUS_START 1 #define DE_CONTROL_UPDATE_DESTINATION_X BIT(29)
#define DE_CONTROL_PATTERN 30:30 #define DE_CONTROL_QUICK_START BIT(28)
#define DE_CONTROL_PATTERN_MONO 0 #define DE_CONTROL_DIRECTION BIT(27)
#define DE_CONTROL_PATTERN_COLOR 1 #define DE_CONTROL_MAJOR BIT(26)
#define DE_CONTROL_UPDATE_DESTINATION_X 29:29 #define DE_CONTROL_STEP_X BIT(25)
#define DE_CONTROL_UPDATE_DESTINATION_X_DISABLE 0 #define DE_CONTROL_STEP_Y BIT(24)
#define DE_CONTROL_UPDATE_DESTINATION_X_ENABLE 1 #define DE_CONTROL_STRETCH BIT(23)
#define DE_CONTROL_QUICK_START 28:28 #define DE_CONTROL_HOST BIT(22)
#define DE_CONTROL_QUICK_START_DISABLE 0 #define DE_CONTROL_LAST_PIXEL BIT(21)
#define DE_CONTROL_QUICK_START_ENABLE 1 #define DE_CONTROL_COMMAND_SHIFT 16
#define DE_CONTROL_DIRECTION 27:27 #define DE_CONTROL_COMMAND_MASK (0x1f << 16)
#define DE_CONTROL_DIRECTION_LEFT_TO_RIGHT 0 #define DE_CONTROL_COMMAND_BITBLT (0x0 << 16)
#define DE_CONTROL_DIRECTION_RIGHT_TO_LEFT 1 #define DE_CONTROL_COMMAND_RECTANGLE_FILL (0x1 << 16)
#define DE_CONTROL_MAJOR 26:26 #define DE_CONTROL_COMMAND_DE_TILE (0x2 << 16)
#define DE_CONTROL_MAJOR_X 0 #define DE_CONTROL_COMMAND_TRAPEZOID_FILL (0x3 << 16)
#define DE_CONTROL_MAJOR_Y 1 #define DE_CONTROL_COMMAND_ALPHA_BLEND (0x4 << 16)
#define DE_CONTROL_STEP_X 25:25 #define DE_CONTROL_COMMAND_RLE_STRIP (0x5 << 16)
#define DE_CONTROL_STEP_X_POSITIVE 1 #define DE_CONTROL_COMMAND_SHORT_STROKE (0x6 << 16)
#define DE_CONTROL_STEP_X_NEGATIVE 0 #define DE_CONTROL_COMMAND_LINE_DRAW (0x7 << 16)
#define DE_CONTROL_STEP_Y 24:24 #define DE_CONTROL_COMMAND_HOST_WRITE (0x8 << 16)
#define DE_CONTROL_STEP_Y_POSITIVE 1 #define DE_CONTROL_COMMAND_HOST_READ (0x9 << 16)
#define DE_CONTROL_STEP_Y_NEGATIVE 0 #define DE_CONTROL_COMMAND_HOST_WRITE_BOTTOM_UP (0xa << 16)
#define DE_CONTROL_STRETCH 23:23 #define DE_CONTROL_COMMAND_ROTATE (0xb << 16)
#define DE_CONTROL_STRETCH_DISABLE 0 #define DE_CONTROL_COMMAND_FONT (0xc << 16)
#define DE_CONTROL_STRETCH_ENABLE 1 #define DE_CONTROL_COMMAND_TEXTURE_LOAD (0xe << 16)
#define DE_CONTROL_HOST 22:22 #define DE_CONTROL_ROP_SELECT BIT(15)
#define DE_CONTROL_HOST_COLOR 0 #define DE_CONTROL_ROP2_SOURCE BIT(14)
#define DE_CONTROL_HOST_MONO 1 #define DE_CONTROL_MONO_DATA_SHIFT 12
#define DE_CONTROL_LAST_PIXEL 21:21 #define DE_CONTROL_MONO_DATA_MASK (0x3 << 12)
#define DE_CONTROL_LAST_PIXEL_OFF 0 #define DE_CONTROL_MONO_DATA_NOT_PACKED (0x0 << 12)
#define DE_CONTROL_LAST_PIXEL_ON 1 #define DE_CONTROL_MONO_DATA_8_PACKED (0x1 << 12)
#define DE_CONTROL_COMMAND 20:16 #define DE_CONTROL_MONO_DATA_16_PACKED (0x2 << 12)
#define DE_CONTROL_COMMAND_BITBLT 0 #define DE_CONTROL_MONO_DATA_32_PACKED (0x3 << 12)
#define DE_CONTROL_COMMAND_RECTANGLE_FILL 1 #define DE_CONTROL_REPEAT_ROTATE BIT(11)
#define DE_CONTROL_COMMAND_DE_TILE 2 #define DE_CONTROL_TRANSPARENCY_MATCH BIT(10)
#define DE_CONTROL_COMMAND_TRAPEZOID_FILL 3 #define DE_CONTROL_TRANSPARENCY_SELECT BIT(9)
#define DE_CONTROL_COMMAND_ALPHA_BLEND 4 #define DE_CONTROL_TRANSPARENCY BIT(8)
#define DE_CONTROL_COMMAND_RLE_STRIP 5 #define DE_CONTROL_ROP_MASK 0xff
#define DE_CONTROL_COMMAND_SHORT_STROKE 6
#define DE_CONTROL_COMMAND_LINE_DRAW 7
#define DE_CONTROL_COMMAND_HOST_WRITE 8
#define DE_CONTROL_COMMAND_HOST_READ 9
#define DE_CONTROL_COMMAND_HOST_WRITE_BOTTOM_UP 10
#define DE_CONTROL_COMMAND_ROTATE 11
#define DE_CONTROL_COMMAND_FONT 12
#define DE_CONTROL_COMMAND_TEXTURE_LOAD 15
#define DE_CONTROL_ROP_SELECT 15:15
#define DE_CONTROL_ROP_SELECT_ROP3 0
#define DE_CONTROL_ROP_SELECT_ROP2 1
#define DE_CONTROL_ROP2_SOURCE 14:14
#define DE_CONTROL_ROP2_SOURCE_BITMAP 0
#define DE_CONTROL_ROP2_SOURCE_PATTERN 1
#define DE_CONTROL_MONO_DATA 13:12
#define DE_CONTROL_MONO_DATA_NOT_PACKED 0
#define DE_CONTROL_MONO_DATA_8_PACKED 1
#define DE_CONTROL_MONO_DATA_16_PACKED 2
#define DE_CONTROL_MONO_DATA_32_PACKED 3
#define DE_CONTROL_REPEAT_ROTATE 11:11
#define DE_CONTROL_REPEAT_ROTATE_DISABLE 0
#define DE_CONTROL_REPEAT_ROTATE_ENABLE 1
#define DE_CONTROL_TRANSPARENCY_MATCH 10:10
#define DE_CONTROL_TRANSPARENCY_MATCH_OPAQUE 0
#define DE_CONTROL_TRANSPARENCY_MATCH_TRANSPARENT 1
#define DE_CONTROL_TRANSPARENCY_SELECT 9:9
#define DE_CONTROL_TRANSPARENCY_SELECT_SOURCE 0
#define DE_CONTROL_TRANSPARENCY_SELECT_DESTINATION 1
#define DE_CONTROL_TRANSPARENCY 8:8
#define DE_CONTROL_TRANSPARENCY_DISABLE 0
#define DE_CONTROL_TRANSPARENCY_ENABLE 1
#define DE_CONTROL_ROP 7:0
/* Pseudo fields. */ /* Pseudo fields. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment