Commit b5d63974 authored by Isaac Assegai's avatar Isaac Assegai Committed by Greg Kroah-Hartman

Staging: sm750fb: sm750_accel.c: Insert spaces after commas.

Insert Spaces after commas to rectify the
following checkpatch errors in sm750_accel.c:
ERROR: space required after that ','
Signed-off-by: default avatarIsaac Assegai <isaac.a.travers@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent bdec7773
...@@ -18,81 +18,81 @@ ...@@ -18,81 +18,81 @@
#include "sm750.h" #include "sm750.h"
#include "sm750_accel.h" #include "sm750_accel.h"
#include "sm750_help.h" #include "sm750_help.h"
static inline void write_dpr(struct lynx_accel * accel,int offset,u32 regValue) static inline void write_dpr(struct lynx_accel * accel, int offset, u32 regValue)
{ {
writel(regValue,accel->dprBase + offset); writel(regValue, accel->dprBase + offset);
} }
static inline u32 read_dpr(struct lynx_accel * accel,int offset) static inline u32 read_dpr(struct lynx_accel * accel, int offset)
{ {
return readl(accel->dprBase + offset); return readl(accel->dprBase + offset);
} }
static inline void write_dpPort(struct lynx_accel * accel,u32 data) static inline void write_dpPort(struct lynx_accel * accel, u32 data)
{ {
writel(data,accel->dpPortBase); writel(data, accel->dpPortBase);
} }
void hw_de_init(struct lynx_accel * accel) void hw_de_init(struct lynx_accel * accel)
{ {
/* setup 2d engine registers */ /* setup 2d engine registers */
u32 reg,clr; u32 reg, clr;
write_dpr(accel,DE_MASKS,0xFFFFFFFF); write_dpr(accel, DE_MASKS, 0xFFFFFFFF);
/* dpr1c */ /* dpr1c */
reg = FIELD_SET(0,DE_STRETCH_FORMAT,PATTERN_XY,NORMAL)| reg = FIELD_SET(0, DE_STRETCH_FORMAT, PATTERN_XY, NORMAL)|
FIELD_VALUE(0,DE_STRETCH_FORMAT,PATTERN_Y,0)| FIELD_VALUE(0, DE_STRETCH_FORMAT, PATTERN_Y, 0)|
FIELD_VALUE(0,DE_STRETCH_FORMAT,PATTERN_X,0)| FIELD_VALUE(0, DE_STRETCH_FORMAT, PATTERN_X, 0)|
FIELD_SET(0,DE_STRETCH_FORMAT,ADDRESSING,XY)| FIELD_SET(0, DE_STRETCH_FORMAT, ADDRESSING, XY)|
FIELD_VALUE(0,DE_STRETCH_FORMAT,SOURCE_HEIGHT,3); FIELD_VALUE(0, DE_STRETCH_FORMAT, SOURCE_HEIGHT, 3);
clr = FIELD_CLEAR(DE_STRETCH_FORMAT,PATTERN_XY)& clr = FIELD_CLEAR(DE_STRETCH_FORMAT, PATTERN_XY)&
FIELD_CLEAR(DE_STRETCH_FORMAT,PATTERN_Y)& FIELD_CLEAR(DE_STRETCH_FORMAT, PATTERN_Y)&
FIELD_CLEAR(DE_STRETCH_FORMAT,PATTERN_X)& FIELD_CLEAR(DE_STRETCH_FORMAT, PATTERN_X)&
FIELD_CLEAR(DE_STRETCH_FORMAT,ADDRESSING)& FIELD_CLEAR(DE_STRETCH_FORMAT, ADDRESSING)&
FIELD_CLEAR(DE_STRETCH_FORMAT,SOURCE_HEIGHT); FIELD_CLEAR(DE_STRETCH_FORMAT, SOURCE_HEIGHT);
/* DE_STRETCH bpp format need be initilized in setMode routine */ /* DE_STRETCH bpp format need be initilized in setMode routine */
write_dpr(accel,DE_STRETCH_FORMAT,(read_dpr(accel,DE_STRETCH_FORMAT) & clr) | reg); write_dpr(accel, DE_STRETCH_FORMAT, (read_dpr(accel, DE_STRETCH_FORMAT) & clr) | reg);
/* disable clipping and transparent */ /* disable clipping and transparent */
write_dpr(accel,DE_CLIP_TL,0);//dpr2c write_dpr(accel, DE_CLIP_TL, 0);//dpr2c
write_dpr(accel,DE_CLIP_BR,0);//dpr30 write_dpr(accel, DE_CLIP_BR, 0);//dpr30
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)| reg = FIELD_SET(0, DE_CONTROL, TRANSPARENCY, DISABLE)|
FIELD_SET(0,DE_CONTROL,TRANSPARENCY_MATCH,OPAQUE)| FIELD_SET(0, DE_CONTROL, TRANSPARENCY_MATCH, OPAQUE)|
FIELD_SET(0,DE_CONTROL,TRANSPARENCY_SELECT,SOURCE); FIELD_SET(0, DE_CONTROL, TRANSPARENCY_SELECT, SOURCE);
clr = FIELD_CLEAR(DE_CONTROL,TRANSPARENCY)& clr = FIELD_CLEAR(DE_CONTROL, TRANSPARENCY)&
FIELD_CLEAR(DE_CONTROL,TRANSPARENCY_MATCH)& FIELD_CLEAR(DE_CONTROL, TRANSPARENCY_MATCH)&
FIELD_CLEAR(DE_CONTROL,TRANSPARENCY_SELECT); 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)|reg);
} }
/* set2dformat only be called from setmode functions /* set2dformat only be called from setmode functions
* but if you need dual framebuffer driver,need call set2dformat * but if you need dual framebuffer driver,need call set2dformat
* every time you use 2d function */ * every time you use 2d function */
void hw_set2dformat(struct lynx_accel * accel,int fmt) void hw_set2dformat(struct lynx_accel * accel, int fmt)
{ {
u32 reg; u32 reg;
/* fmt=0,1,2 for 8,16,32,bpp on sm718/750/502 */ /* fmt=0,1,2 for 8,16,32,bpp on sm718/750/502 */
reg = read_dpr(accel,DE_STRETCH_FORMAT); reg = read_dpr(accel, DE_STRETCH_FORMAT);
reg = FIELD_VALUE(reg,DE_STRETCH_FORMAT,PIXEL_FORMAT,fmt); reg = FIELD_VALUE(reg, DE_STRETCH_FORMAT, PIXEL_FORMAT, fmt);
write_dpr(accel,DE_STRETCH_FORMAT,reg); write_dpr(accel, DE_STRETCH_FORMAT, reg);
} }
int hw_fillrect(struct lynx_accel * accel, int hw_fillrect(struct lynx_accel * accel,
u32 base,u32 pitch,u32 Bpp, u32 base, u32 pitch, u32 Bpp,
u32 x,u32 y,u32 width,u32 height, u32 x, u32 y, u32 width, u32 height,
u32 color,u32 rop) u32 color, u32 rop)
{ {
u32 deCtrl; u32 deCtrl;
...@@ -100,39 +100,39 @@ int hw_fillrect(struct lynx_accel * accel, ...@@ -100,39 +100,39 @@ int hw_fillrect(struct lynx_accel * accel,
{ {
/* int time wait and always busy,seems hardware /* int time wait and always busy,seems hardware
* got something error */ * got something error */
pr_debug("%s:De engine always bussy\n",__func__); pr_debug("%s:De engine always bussy\n", __func__);
return -1; return -1;
} }
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, DESTINATION, pitch/Bpp)|
FIELD_VALUE(0,DE_PITCH,SOURCE,pitch/Bpp));//dpr10 FIELD_VALUE(0, DE_PITCH, SOURCE, pitch/Bpp));//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)|
FIELD_VALUE(0,DE_WINDOW_WIDTH,SOURCE,pitch/Bpp));//dpr44 FIELD_VALUE(0, DE_WINDOW_WIDTH, SOURCE, pitch/Bpp));//dpr44
write_dpr(accel,DE_FOREGROUND,color);//DPR14 write_dpr(accel, DE_FOREGROUND, color);//DPR14
write_dpr(accel,DE_DESTINATION, write_dpr(accel, DE_DESTINATION,
FIELD_SET(0,DE_DESTINATION,WRAP,DISABLE)| FIELD_SET(0, DE_DESTINATION, WRAP, DISABLE)|
FIELD_VALUE(0,DE_DESTINATION,X,x)| FIELD_VALUE(0, DE_DESTINATION, X, x)|
FIELD_VALUE(0,DE_DESTINATION,Y,y));//dpr4 FIELD_VALUE(0, DE_DESTINATION, Y, y));//dpr4
write_dpr(accel,DE_DIMENSION, write_dpr(accel, DE_DIMENSION,
FIELD_VALUE(0,DE_DIMENSION,X,width)| FIELD_VALUE(0, DE_DIMENSION, X, width)|
FIELD_VALUE(0,DE_DIMENSION,Y_ET,height));//dpr8 FIELD_VALUE(0, DE_DIMENSION, Y_ET, height));//dpr8
deCtrl = deCtrl =
FIELD_SET(0,DE_CONTROL,STATUS,START)| FIELD_SET(0, DE_CONTROL, STATUS, START)|
FIELD_SET(0,DE_CONTROL,DIRECTION,LEFT_TO_RIGHT)| FIELD_SET(0, DE_CONTROL, DIRECTION, LEFT_TO_RIGHT)|
FIELD_SET(0,DE_CONTROL,LAST_PIXEL,ON)| FIELD_SET(0, DE_CONTROL, LAST_PIXEL, ON)|
FIELD_SET(0,DE_CONTROL,COMMAND,RECTANGLE_FILL)| FIELD_SET(0, DE_CONTROL, COMMAND, RECTANGLE_FILL)|
FIELD_SET(0,DE_CONTROL,ROP_SELECT,ROP2)| FIELD_SET(0, DE_CONTROL, ROP_SELECT, ROP2)|
FIELD_VALUE(0,DE_CONTROL,ROP,rop);//dpr0xc FIELD_VALUE(0, DE_CONTROL, ROP, rop);//dpr0xc
write_dpr(accel,DE_CONTROL,deCtrl); write_dpr(accel, DE_CONTROL, deCtrl);
return 0; return 0;
} }
...@@ -236,12 +236,12 @@ unsigned int rop2) /* ROP value */ ...@@ -236,12 +236,12 @@ unsigned int rop2) /* ROP value */
/* 2D Source Base. /* 2D Source Base.
It is an address offset (128 bit aligned) from the beginning of frame buffer. It is an address offset (128 bit aligned) from the beginning of frame buffer.
*/ */
write_dpr(accel,DE_WINDOW_SOURCE_BASE, sBase);//dpr40 write_dpr(accel, DE_WINDOW_SOURCE_BASE, sBase);//dpr40
/* 2D Destination Base. /* 2D Destination Base.
It is an address offset (128 bit aligned) from the beginning of frame buffer. It is an address offset (128 bit aligned) from the beginning of frame buffer.
*/ */
write_dpr(accel,DE_WINDOW_DESTINATION_BASE, dBase);//dpr44 write_dpr(accel, DE_WINDOW_DESTINATION_BASE, dBase);//dpr44
#if 0 #if 0
/* Program pitch (distance between the 1st points of two adjacent lines). /* Program pitch (distance between the 1st points of two adjacent lines).
...@@ -252,14 +252,14 @@ unsigned int rop2) /* ROP value */ ...@@ -252,14 +252,14 @@ unsigned int rop2) /* ROP value */
sx *= 3; sx *= 3;
dx *= 3; dx *= 3;
width *= 3; width *= 3;
write_dpr(accel,DE_PITCH, write_dpr(accel, DE_PITCH,
FIELD_VALUE(0, DE_PITCH, DESTINATION, dPitch) | FIELD_VALUE(0, DE_PITCH, DESTINATION, dPitch) |
FIELD_VALUE(0, DE_PITCH, SOURCE, sPitch));//dpr10 FIELD_VALUE(0, DE_PITCH, SOURCE, sPitch));//dpr10
} }
else else
#endif #endif
{ {
write_dpr(accel,DE_PITCH, write_dpr(accel, DE_PITCH,
FIELD_VALUE(0, DE_PITCH, DESTINATION, (dPitch/Bpp)) | FIELD_VALUE(0, DE_PITCH, DESTINATION, (dPitch/Bpp)) |
FIELD_VALUE(0, DE_PITCH, SOURCE, (sPitch/Bpp)));//dpr10 FIELD_VALUE(0, DE_PITCH, SOURCE, (sPitch/Bpp)));//dpr10
} }
...@@ -267,7 +267,7 @@ unsigned int rop2) /* ROP value */ ...@@ -267,7 +267,7 @@ unsigned int rop2) /* ROP value */
/* 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.
*/ */
write_dpr(accel,DE_WINDOW_WIDTH, write_dpr(accel, DE_WINDOW_WIDTH,
FIELD_VALUE(0, DE_WINDOW_WIDTH, DESTINATION, (dPitch/Bpp)) | FIELD_VALUE(0, DE_WINDOW_WIDTH, DESTINATION, (dPitch/Bpp)) |
FIELD_VALUE(0, DE_WINDOW_WIDTH, SOURCE, (sPitch/Bpp)));//dpr3c FIELD_VALUE(0, DE_WINDOW_WIDTH, SOURCE, (sPitch/Bpp)));//dpr3c
...@@ -277,15 +277,15 @@ unsigned int rop2) /* ROP value */ ...@@ -277,15 +277,15 @@ unsigned int rop2) /* ROP value */
{ {
write_dpr(accel,DE_SOURCE, write_dpr(accel, DE_SOURCE,
FIELD_SET (0, DE_SOURCE, WRAP, DISABLE) | FIELD_SET (0, DE_SOURCE, WRAP, DISABLE) |
FIELD_VALUE(0, DE_SOURCE, X_K1, sx) | FIELD_VALUE(0, DE_SOURCE, X_K1, sx) |
FIELD_VALUE(0, DE_SOURCE, Y_K2, sy));//dpr0 FIELD_VALUE(0, DE_SOURCE, Y_K2, sy));//dpr0
write_dpr(accel,DE_DESTINATION, write_dpr(accel, DE_DESTINATION,
FIELD_SET (0, DE_DESTINATION, WRAP, DISABLE) | FIELD_SET (0, DE_DESTINATION, WRAP, DISABLE) |
FIELD_VALUE(0, DE_DESTINATION, X, dx) | FIELD_VALUE(0, DE_DESTINATION, X, dx) |
FIELD_VALUE(0, DE_DESTINATION, Y, dy));//dpr04 FIELD_VALUE(0, DE_DESTINATION, Y, dy));//dpr04
write_dpr(accel,DE_DIMENSION, write_dpr(accel, DE_DIMENSION,
FIELD_VALUE(0, DE_DIMENSION, X, width) | FIELD_VALUE(0, DE_DIMENSION, X, width) |
FIELD_VALUE(0, DE_DIMENSION, Y_ET, height));//dpr08 FIELD_VALUE(0, DE_DIMENSION, Y_ET, height));//dpr08
...@@ -297,7 +297,7 @@ unsigned int rop2) /* ROP value */ ...@@ -297,7 +297,7 @@ unsigned int rop2) /* ROP value */
FIELD_SET(0, DE_CONTROL, DIRECTION, 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, DIRECTION, LEFT_TO_RIGHT)) |
FIELD_SET(0, DE_CONTROL, STATUS, START); FIELD_SET(0, DE_CONTROL, STATUS, START);
write_dpr(accel,DE_CONTROL,de_ctrl);//dpr0c write_dpr(accel, DE_CONTROL, de_ctrl);//dpr0c
} }
return 0; return 0;
...@@ -307,7 +307,7 @@ static unsigned int deGetTransparency(struct lynx_accel * accel) ...@@ -307,7 +307,7 @@ static unsigned int deGetTransparency(struct lynx_accel * accel)
{ {
unsigned int de_ctrl; unsigned int de_ctrl;
de_ctrl = read_dpr(accel,DE_CONTROL); de_ctrl = read_dpr(accel, DE_CONTROL);
de_ctrl &= de_ctrl &=
FIELD_MASK(DE_CONTROL_TRANSPARENCY_MATCH) | FIELD_MASK(DE_CONTROL_TRANSPARENCY_MATCH) |
...@@ -353,12 +353,12 @@ int hw_imageblit(struct lynx_accel *accel, ...@@ -353,12 +353,12 @@ int hw_imageblit(struct lynx_accel *accel,
/* 2D Source Base. /* 2D Source Base.
Use 0 for HOST Blt. Use 0 for HOST Blt.
*/ */
write_dpr(accel,DE_WINDOW_SOURCE_BASE, 0); write_dpr(accel, DE_WINDOW_SOURCE_BASE, 0);
/* 2D Destination Base. /* 2D Destination Base.
It is an address offset (128 bit aligned) from the beginning of frame buffer. It is an address offset (128 bit aligned) from the beginning of frame buffer.
*/ */
write_dpr(accel,DE_WINDOW_DESTINATION_BASE, dBase); write_dpr(accel, DE_WINDOW_DESTINATION_BASE, dBase);
#if 0 #if 0
/* Program pitch (distance between the 1st points of two adjacent lines). /* Program pitch (distance between the 1st points of two adjacent lines).
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
...@@ -368,7 +368,7 @@ int hw_imageblit(struct lynx_accel *accel, ...@@ -368,7 +368,7 @@ int hw_imageblit(struct lynx_accel *accel,
dx *= 3; dx *= 3;
width *= 3; width *= 3;
startBit *= 3; startBit *= 3;
write_dpr(accel,DE_PITCH, write_dpr(accel, DE_PITCH,
FIELD_VALUE(0, DE_PITCH, DESTINATION, dPitch) | FIELD_VALUE(0, DE_PITCH, DESTINATION, dPitch) |
FIELD_VALUE(0, DE_PITCH, SOURCE, dPitch));//dpr10 FIELD_VALUE(0, DE_PITCH, SOURCE, dPitch));//dpr10
...@@ -376,7 +376,7 @@ int hw_imageblit(struct lynx_accel *accel, ...@@ -376,7 +376,7 @@ int hw_imageblit(struct lynx_accel *accel,
else else
#endif #endif
{ {
write_dpr(accel,DE_PITCH, write_dpr(accel, DE_PITCH,
FIELD_VALUE(0, DE_PITCH, DESTINATION, dPitch/bytePerPixel) | FIELD_VALUE(0, DE_PITCH, DESTINATION, dPitch/bytePerPixel) |
FIELD_VALUE(0, DE_PITCH, SOURCE, dPitch/bytePerPixel));//dpr10 FIELD_VALUE(0, DE_PITCH, SOURCE, dPitch/bytePerPixel));//dpr10
} }
...@@ -384,27 +384,27 @@ int hw_imageblit(struct lynx_accel *accel, ...@@ -384,27 +384,27 @@ int hw_imageblit(struct lynx_accel *accel,
/* 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.
*/ */
write_dpr(accel,DE_WINDOW_WIDTH, write_dpr(accel, DE_WINDOW_WIDTH,
FIELD_VALUE(0, DE_WINDOW_WIDTH, DESTINATION, (dPitch/bytePerPixel)) | FIELD_VALUE(0, DE_WINDOW_WIDTH, DESTINATION, (dPitch/bytePerPixel)) |
FIELD_VALUE(0, DE_WINDOW_WIDTH, SOURCE, (dPitch/bytePerPixel))); FIELD_VALUE(0, DE_WINDOW_WIDTH, SOURCE, (dPitch/bytePerPixel)));
/* Note: For 2D Source in Host Write, only X_K1_MONO field is needed, and Y_K2 field is not used. /* Note: For 2D Source in Host Write, only X_K1_MONO field is needed, and Y_K2 field is not used.
For mono bitmap, use startBit for X_K1. */ For mono bitmap, use startBit for X_K1. */
write_dpr(accel,DE_SOURCE, write_dpr(accel, DE_SOURCE,
FIELD_SET (0, DE_SOURCE, WRAP, DISABLE) | FIELD_SET (0, DE_SOURCE, WRAP, DISABLE) |
FIELD_VALUE(0, DE_SOURCE, X_K1_MONO, startBit));//dpr00 FIELD_VALUE(0, DE_SOURCE, X_K1_MONO, startBit));//dpr00
write_dpr(accel,DE_DESTINATION, write_dpr(accel, DE_DESTINATION,
FIELD_SET (0, DE_DESTINATION, WRAP, DISABLE) | FIELD_SET (0, DE_DESTINATION, WRAP, DISABLE) |
FIELD_VALUE(0, DE_DESTINATION, X, dx) | FIELD_VALUE(0, DE_DESTINATION, X, dx) |
FIELD_VALUE(0, DE_DESTINATION, Y, dy));//dpr04 FIELD_VALUE(0, DE_DESTINATION, Y, dy));//dpr04
write_dpr(accel,DE_DIMENSION, write_dpr(accel, DE_DIMENSION,
FIELD_VALUE(0, DE_DIMENSION, X, width) | FIELD_VALUE(0, DE_DIMENSION, X, width) |
FIELD_VALUE(0, DE_DIMENSION, Y_ET, height));//dpr08 FIELD_VALUE(0, DE_DIMENSION, Y_ET, height));//dpr08
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 = FIELD_VALUE(0, DE_CONTROL, ROP, rop2) |
FIELD_SET(0, DE_CONTROL, ROP_SELECT, ROP2) | FIELD_SET(0, DE_CONTROL, ROP_SELECT, ROP2) |
...@@ -412,7 +412,7 @@ int hw_imageblit(struct lynx_accel *accel, ...@@ -412,7 +412,7 @@ int hw_imageblit(struct lynx_accel *accel,
FIELD_SET(0, DE_CONTROL, HOST, MONO) | FIELD_SET(0, DE_CONTROL, HOST, MONO) |
FIELD_SET(0, DE_CONTROL, STATUS, START); 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));
/* Write MONO data (line by line) to 2D Engine data port */ /* Write MONO data (line by line) to 2D Engine data port */
for (i=0; i<height; i++) for (i=0; i<height; i++)
......
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