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: Mike Rapoport <mike.rapoport@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Mike Rapoport 2016-02-15 19:54:00 +02:00 committed by Greg Kroah-Hartman
parent 0fab34b5a1
commit e2e2258774
2 changed files with 54 additions and 103 deletions

View file

@ -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, 0);
reg = FIELD_SET(0, DE_CONTROL, TRANSPARENCY, DISABLE)|
FIELD_SET(0, DE_CONTROL, TRANSPARENCY_MATCH, OPAQUE)|
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);
clr = DE_CONTROL_TRANSPARENCY | DE_CONTROL_TRANSPARENCY_MATCH |
DE_CONTROL_TRANSPARENCY_SELECT;
/* 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
@ -122,13 +117,9 @@ int hw_fillrect(struct lynx_accel *accel,
((width << DE_DIMENSION_X_SHIFT) & DE_DIMENSION_X_MASK) |
(height & DE_DIMENSION_Y_ET_MASK)); /* dpr8 */
deCtrl =
FIELD_SET(0, DE_CONTROL, STATUS, START)|
FIELD_SET(0, DE_CONTROL, DIRECTION, LEFT_TO_RIGHT)|
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 */
deCtrl = DE_CONTROL_STATUS | DE_CONTROL_LAST_PIXEL |
DE_CONTROL_COMMAND_RECTANGLE_FILL | DE_CONTROL_ROP_SELECT |
(rop & DE_CONTROL_ROP_MASK); /* dpr0xc */
write_dpr(accel, DE_CONTROL, deCtrl);
return 0;
@ -264,13 +255,9 @@ unsigned int rop2) /* ROP value */
((width << DE_DIMENSION_X_SHIFT) & DE_DIMENSION_X_MASK) |
(height & DE_DIMENSION_Y_ET_MASK)); /* dpr08 */
de_ctrl = FIELD_VALUE(0, DE_CONTROL, ROP, rop2) |
FIELD_SET(0, DE_CONTROL, ROP_SELECT, ROP2) |
FIELD_SET(0, DE_CONTROL, COMMAND, BITBLT) |
((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);
de_ctrl = (rop2 & DE_CONTROL_ROP_MASK) | DE_CONTROL_ROP_SELECT |
((nDirection == RIGHT_TO_LEFT) ? DE_CONTROL_DIRECTION : 0) |
DE_CONTROL_COMMAND_BITBLT | DE_CONTROL_STATUS;
write_dpr(accel, DE_CONTROL, de_ctrl); /* dpr0c */
}
@ -284,10 +271,8 @@ static unsigned int deGetTransparency(struct lynx_accel *accel)
de_ctrl = read_dpr(accel, DE_CONTROL);
de_ctrl &=
FIELD_MASK(DE_CONTROL_TRANSPARENCY_MATCH) |
FIELD_MASK(DE_CONTROL_TRANSPARENCY_SELECT)|
FIELD_MASK(DE_CONTROL_TRANSPARENCY);
de_ctrl &= (DE_CONTROL_TRANSPARENCY_MATCH |
DE_CONTROL_TRANSPARENCY_SELECT | DE_CONTROL_TRANSPARENCY);
return de_ctrl;
}
@ -365,11 +350,9 @@ int hw_imageblit(struct lynx_accel *accel,
write_dpr(accel, DE_FOREGROUND, fColor);
write_dpr(accel, DE_BACKGROUND, bColor);
de_ctrl = FIELD_VALUE(0, DE_CONTROL, ROP, rop2) |
FIELD_SET(0, DE_CONTROL, ROP_SELECT, ROP2) |
FIELD_SET(0, DE_CONTROL, COMMAND, HOST_WRITE) |
FIELD_SET(0, DE_CONTROL, HOST, MONO) |
FIELD_SET(0, DE_CONTROL, STATUS, START);
de_ctrl = (rop2 & DE_CONTROL_ROP_MASK) |
DE_CONTROL_ROP_SELECT | DE_CONTROL_COMMAND_HOST_WRITE |
DE_CONTROL_HOST | DE_CONTROL_STATUS;
write_dpr(accel, DE_CONTROL, de_ctrl | deGetTransparency(accel));

View file

@ -39,78 +39,46 @@
#define DE_DIMENSION_Y_ET_MASK 0x1fff
#define DE_CONTROL 0xC
#define DE_CONTROL_STATUS 31:31
#define DE_CONTROL_STATUS_STOP 0
#define DE_CONTROL_STATUS_START 1
#define DE_CONTROL_PATTERN 30:30
#define DE_CONTROL_PATTERN_MONO 0
#define DE_CONTROL_PATTERN_COLOR 1
#define DE_CONTROL_UPDATE_DESTINATION_X 29:29
#define DE_CONTROL_UPDATE_DESTINATION_X_DISABLE 0
#define DE_CONTROL_UPDATE_DESTINATION_X_ENABLE 1
#define DE_CONTROL_QUICK_START 28:28
#define DE_CONTROL_QUICK_START_DISABLE 0
#define DE_CONTROL_QUICK_START_ENABLE 1
#define DE_CONTROL_DIRECTION 27:27
#define DE_CONTROL_DIRECTION_LEFT_TO_RIGHT 0
#define DE_CONTROL_DIRECTION_RIGHT_TO_LEFT 1
#define DE_CONTROL_MAJOR 26:26
#define DE_CONTROL_MAJOR_X 0
#define DE_CONTROL_MAJOR_Y 1
#define DE_CONTROL_STEP_X 25:25
#define DE_CONTROL_STEP_X_POSITIVE 1
#define DE_CONTROL_STEP_X_NEGATIVE 0
#define DE_CONTROL_STEP_Y 24:24
#define DE_CONTROL_STEP_Y_POSITIVE 1
#define DE_CONTROL_STEP_Y_NEGATIVE 0
#define DE_CONTROL_STRETCH 23:23
#define DE_CONTROL_STRETCH_DISABLE 0
#define DE_CONTROL_STRETCH_ENABLE 1
#define DE_CONTROL_HOST 22:22
#define DE_CONTROL_HOST_COLOR 0
#define DE_CONTROL_HOST_MONO 1
#define DE_CONTROL_LAST_PIXEL 21:21
#define DE_CONTROL_LAST_PIXEL_OFF 0
#define DE_CONTROL_LAST_PIXEL_ON 1
#define DE_CONTROL_COMMAND 20:16
#define DE_CONTROL_COMMAND_BITBLT 0
#define DE_CONTROL_COMMAND_RECTANGLE_FILL 1
#define DE_CONTROL_COMMAND_DE_TILE 2
#define DE_CONTROL_COMMAND_TRAPEZOID_FILL 3
#define DE_CONTROL_COMMAND_ALPHA_BLEND 4
#define DE_CONTROL_COMMAND_RLE_STRIP 5
#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
#define DE_CONTROL_STATUS BIT(31)
#define DE_CONTROL_PATTERN BIT(30)
#define DE_CONTROL_UPDATE_DESTINATION_X BIT(29)
#define DE_CONTROL_QUICK_START BIT(28)
#define DE_CONTROL_DIRECTION BIT(27)
#define DE_CONTROL_MAJOR BIT(26)
#define DE_CONTROL_STEP_X BIT(25)
#define DE_CONTROL_STEP_Y BIT(24)
#define DE_CONTROL_STRETCH BIT(23)
#define DE_CONTROL_HOST BIT(22)
#define DE_CONTROL_LAST_PIXEL BIT(21)
#define DE_CONTROL_COMMAND_SHIFT 16
#define DE_CONTROL_COMMAND_MASK (0x1f << 16)
#define DE_CONTROL_COMMAND_BITBLT (0x0 << 16)
#define DE_CONTROL_COMMAND_RECTANGLE_FILL (0x1 << 16)
#define DE_CONTROL_COMMAND_DE_TILE (0x2 << 16)
#define DE_CONTROL_COMMAND_TRAPEZOID_FILL (0x3 << 16)
#define DE_CONTROL_COMMAND_ALPHA_BLEND (0x4 << 16)
#define DE_CONTROL_COMMAND_RLE_STRIP (0x5 << 16)
#define DE_CONTROL_COMMAND_SHORT_STROKE (0x6 << 16)
#define DE_CONTROL_COMMAND_LINE_DRAW (0x7 << 16)
#define DE_CONTROL_COMMAND_HOST_WRITE (0x8 << 16)
#define DE_CONTROL_COMMAND_HOST_READ (0x9 << 16)
#define DE_CONTROL_COMMAND_HOST_WRITE_BOTTOM_UP (0xa << 16)
#define DE_CONTROL_COMMAND_ROTATE (0xb << 16)
#define DE_CONTROL_COMMAND_FONT (0xc << 16)
#define DE_CONTROL_COMMAND_TEXTURE_LOAD (0xe << 16)
#define DE_CONTROL_ROP_SELECT BIT(15)
#define DE_CONTROL_ROP2_SOURCE BIT(14)
#define DE_CONTROL_MONO_DATA_SHIFT 12
#define DE_CONTROL_MONO_DATA_MASK (0x3 << 12)
#define DE_CONTROL_MONO_DATA_NOT_PACKED (0x0 << 12)
#define DE_CONTROL_MONO_DATA_8_PACKED (0x1 << 12)
#define DE_CONTROL_MONO_DATA_16_PACKED (0x2 << 12)
#define DE_CONTROL_MONO_DATA_32_PACKED (0x3 << 12)
#define DE_CONTROL_REPEAT_ROTATE BIT(11)
#define DE_CONTROL_TRANSPARENCY_MATCH BIT(10)
#define DE_CONTROL_TRANSPARENCY_SELECT BIT(9)
#define DE_CONTROL_TRANSPARENCY BIT(8)
#define DE_CONTROL_ROP_MASK 0xff
/* Pseudo fields. */