Browse Source

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: Mike Rapoport <mike.rapoport@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Mike Rapoport 9 years ago
parent
commit
7124080feb
2 changed files with 14 additions and 14 deletions
  1. 11 12
      drivers/staging/sm750fb/sm750_accel.c
  2. 3 2
      drivers/staging/sm750fb/sm750_accel.h

+ 11 - 12
drivers/staging/sm750fb/sm750_accel.c

@@ -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)|
-			FIELD_VALUE(0, DE_PITCH, SOURCE, pitch/Bpp)); /* dpr10 */
+		  ((pitch / Bpp << DE_PITCH_DESTINATION_SHIFT) &
+		   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 */
        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,
-				FIELD_VALUE(0, DE_PITCH, DESTINATION, (dPitch/Bpp)) |
-				FIELD_VALUE(0, DE_PITCH, SOURCE,      (sPitch/Bpp))); /* dpr10 */
-	}
+	write_dpr(accel, DE_PITCH,
+		  ((dPitch / Bpp << DE_PITCH_DESTINATION_SHIFT) &
+		   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,
        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,
-				FIELD_VALUE(0, DE_PITCH, DESTINATION, dPitch/bytePerPixel) |
-				FIELD_VALUE(0, DE_PITCH, SOURCE,      dPitch/bytePerPixel)); /* dpr10 */
-	}
+	write_dpr(accel, DE_PITCH,
+		  ((dPitch / bytePerPixel << DE_PITCH_DESTINATION_SHIFT) &
+		   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.

+ 3 - 2
drivers/staging/sm750fb/sm750_accel.h

@@ -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_SOURCE                                 12:0
+#define DE_PITCH_DESTINATION_SHIFT                      16
+#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