This is a patch to the fb_agm1264k-fl.c file that fixes up the following
issue:

WARNING: Too many leading tabs - consider code refactoring

Add new function iterate_diffusion_matrix() to refactor a piece of code
inside write_vmem().

Signed-off-by: Gustavo A. R. Silva <garsi...@embeddedor.com>
---
 drivers/staging/fbtft/fb_agm1264k-fl.c | 68 ++++++++++++++++++----------------
 1 file changed, 37 insertions(+), 31 deletions(-)

diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c 
b/drivers/staging/fbtft/fb_agm1264k-fl.c
index 7561385..a6e3af7 100644
--- a/drivers/staging/fbtft/fb_agm1264k-fl.c
+++ b/drivers/staging/fbtft/fb_agm1264k-fl.c
@@ -264,6 +264,39 @@ construct_line_bitmap(struct fbtft_par *par, u8 *dest, 
signed short *src,
        }
 }
 
+static void iterate_diffusion_matrix(u32 xres, u32 yres, int x,
+                                    int y, signed short *convert_buf,
+                                    signed short pixel, signed short error)
+{
+       u16 i, j;
+
+       /* diffusion matrix row */
+       for (i = 0; i < DIFFUSING_MATRIX_WIDTH; ++i)
+               /* diffusion matrix column */
+               for (j = 0; j < DIFFUSING_MATRIX_HEIGHT; ++j) {
+                       signed short *write_pos;
+                       signed char coeff;
+
+                       /* skip pixels out of zone */
+                       if (x + i < 0 || x + i >= xres || y + j >= yres)
+                               continue;
+                       write_pos = &convert_buf[(y + j) * xres + x + i];
+                       coeff = diffusing_matrix[i][j];
+                       if (-1 == coeff)
+                               /* pixel itself */
+                               *write_pos = pixel;
+                       else {
+                               signed short p = *write_pos + error * coeff;
+
+                               if (p > WHITE)
+                                       p = WHITE;
+                               if (p < BLACK)
+                                       p = BLACK;
+                               *write_pos = p;
+                       }
+               }
+}
+
 static int write_vmem(struct fbtft_par *par, size_t offset, size_t len)
 {
        u16 *vmem16 = (u16 *)par->info->screen_buffer;
@@ -303,7 +336,6 @@ static int write_vmem(struct fbtft_par *par, size_t offset, 
size_t len)
                        signed short error_b = pixel - BLACK;
                        signed short error_w = pixel - WHITE;
                        signed short error;
-                       u16 i, j;
 
                        /* what color close? */
                        if (abs(error_b) >= abs(error_w)) {
@@ -318,36 +350,10 @@ static int write_vmem(struct fbtft_par *par, size_t 
offset, size_t len)
 
                        error /= 8;
 
-                       /* diffusion matrix row */
-                       for (i = 0; i < DIFFUSING_MATRIX_WIDTH; ++i)
-                               /* diffusion matrix column */
-                               for (j = 0; j < DIFFUSING_MATRIX_HEIGHT; ++j) {
-                                       signed short *write_pos;
-                                       signed char coeff;
-
-                                       /* skip pixels out of zone */
-                                       if (x + i < 0 ||
-                                               x + i >= par->info->var.xres
-                                               || y + j >= par->info->var.yres)
-                                               continue;
-                                       write_pos = &convert_buf[
-                                               (y + j) * par->info->var.xres +
-                                               x + i];
-                                       coeff = diffusing_matrix[i][j];
-                                       if (coeff == -1)
-                                               /* pixel itself */
-                                               *write_pos = pixel;
-                                       else {
-                                               signed short p = *write_pos +
-                                                       error * coeff;
-
-                                               if (p > WHITE)
-                                                       p = WHITE;
-                                               if (p < BLACK)
-                                                       p = BLACK;
-                                               *write_pos = p;
-                                       }
-                               }
+                       iterate_diffusion_matrix(par->info->var.xres,
+                                                par->info->var.yres,
+                                                x, y, convert_buf,
+                                                pixel, error);
                }
 
        /* 1 string = 2 pages */
-- 
2.5.0

Reply via email to