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

staging: sm750fb: change definition of DE_PITCH fields

Use stratight-forward definition of DE_PITCH 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 e2e22587
...@@ -100,8 +100,9 @@ int hw_fillrect(struct lynx_accel *accel, ...@@ -100,8 +100,9 @@ int hw_fillrect(struct lynx_accel *accel,
write_dpr(accel, DE_WINDOW_DESTINATION_BASE, base); /* dpr40 */ write_dpr(accel, DE_WINDOW_DESTINATION_BASE, base); /* dpr40 */
write_dpr(accel, DE_PITCH, write_dpr(accel, DE_PITCH,
FIELD_VALUE(0, DE_PITCH, DESTINATION, pitch/Bpp)| ((pitch / Bpp << DE_PITCH_DESTINATION_SHIFT) &
FIELD_VALUE(0, DE_PITCH, SOURCE, pitch/Bpp)); /* dpr10 */ DE_PITCH_DESTINATION_MASK) |
(pitch / Bpp & DE_PITCH_SOURCE_MASK)); /* dpr10 */
write_dpr(accel, DE_WINDOW_WIDTH, write_dpr(accel, DE_WINDOW_WIDTH,
FIELD_VALUE(0, DE_WINDOW_WIDTH, DESTINATION, pitch/Bpp)| FIELD_VALUE(0, DE_WINDOW_WIDTH, DESTINATION, pitch/Bpp)|
...@@ -227,11 +228,10 @@ unsigned int rop2) /* ROP value */ ...@@ -227,11 +228,10 @@ unsigned int rop2) /* ROP value */
Note that input pitch is BYTE value, but the 2D Pitch register uses Note that input pitch is BYTE value, but the 2D Pitch register uses
pixel values. Need Byte to pixel conversion. pixel values. Need Byte to pixel conversion.
*/ */
{
write_dpr(accel, DE_PITCH, write_dpr(accel, DE_PITCH,
FIELD_VALUE(0, DE_PITCH, DESTINATION, (dPitch/Bpp)) | ((dPitch / Bpp << DE_PITCH_DESTINATION_SHIFT) &
FIELD_VALUE(0, DE_PITCH, SOURCE, (sPitch/Bpp))); /* dpr10 */ DE_PITCH_DESTINATION_MASK) |
} (sPitch / Bpp & DE_PITCH_SOURCE_MASK)); /* dpr10 */
/* Screen Window width in Pixels. /* Screen Window width in Pixels.
2D engine uses this value to calculate the linear address in frame buffer for a given point. 2D engine uses this value to calculate the linear address in frame buffer for a given point.
...@@ -320,11 +320,10 @@ int hw_imageblit(struct lynx_accel *accel, ...@@ -320,11 +320,10 @@ int hw_imageblit(struct lynx_accel *accel,
Note that input pitch is BYTE value, but the 2D Pitch register uses Note that input pitch is BYTE value, but the 2D Pitch register uses
pixel values. Need Byte to pixel conversion. pixel values. Need Byte to pixel conversion.
*/ */
{
write_dpr(accel, DE_PITCH, write_dpr(accel, DE_PITCH,
FIELD_VALUE(0, DE_PITCH, DESTINATION, dPitch/bytePerPixel) | ((dPitch / bytePerPixel << DE_PITCH_DESTINATION_SHIFT) &
FIELD_VALUE(0, DE_PITCH, SOURCE, dPitch/bytePerPixel)); /* dpr10 */ DE_PITCH_DESTINATION_MASK) |
} (dPitch / bytePerPixel & DE_PITCH_SOURCE_MASK)); /* dpr10 */
/* Screen Window width in Pixels. /* Screen Window width in Pixels.
2D engine uses this value to calculate the linear address in frame buffer for a given point. 2D engine uses this value to calculate the linear address in frame buffer for a given point.
......
...@@ -98,8 +98,9 @@ ...@@ -98,8 +98,9 @@
#define DE_CONTROL_ROTATION_180 3 #define DE_CONTROL_ROTATION_180 3
#define DE_PITCH 0x000010 #define DE_PITCH 0x000010
#define DE_PITCH_DESTINATION 28:16 #define DE_PITCH_DESTINATION_SHIFT 16
#define DE_PITCH_SOURCE 12:0 #define DE_PITCH_DESTINATION_MASK (0x1fff << 16)
#define DE_PITCH_SOURCE_MASK 0x1fff
#define DE_FOREGROUND 0x000014 #define DE_FOREGROUND 0x000014
#define DE_FOREGROUND_COLOR 31:0 #define DE_FOREGROUND_COLOR 31:0
......
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