This is only a preparation for the following cleanup patch to make it
easier. Provided CM_ERASE is the only different, use 'if' instead of
'switch+case' in all those.

Signed-off-by: Jiri Slaby (SUSE) <jirisl...@kernel.org>
Cc: Helge Deller <del...@gmx.de>
Cc: linux-fb...@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
---
 drivers/video/console/newport_con.c | 26 +++++-------
 drivers/video/console/sticon.c      | 27 ++++++------
 drivers/video/console/vgacon.c      | 66 +++++++++++++----------------
 3 files changed, 53 insertions(+), 66 deletions(-)

diff --git a/drivers/video/console/newport_con.c 
b/drivers/video/console/newport_con.c
index 5e65ee0b7c07..f852717b88f0 100644
--- a/drivers/video/console/newport_con.c
+++ b/drivers/video/console/newport_con.c
@@ -443,24 +443,20 @@ static void newport_cursor(struct vc_data *vc, int mode)
        unsigned short treg;
        int xcurs, ycurs;
 
-       switch (mode) {
-       case CM_ERASE:
-               treg = newport_vc2_get(npregs, VC2_IREG_CONTROL);
-               newport_vc2_set(npregs, VC2_IREG_CONTROL,
-                               (treg & ~(VC2_CTRL_ECDISP)));
-               break;
+       treg = newport_vc2_get(npregs, VC2_IREG_CONTROL);
 
-       case CM_MOVE:
-       case CM_DRAW:
-               treg = newport_vc2_get(npregs, VC2_IREG_CONTROL);
+       if (mode == CM_ERASE) {
                newport_vc2_set(npregs, VC2_IREG_CONTROL,
-                               (treg | VC2_CTRL_ECDISP));
-               xcurs = (vc->vc_pos - vc->vc_visible_origin) / 2;
-               ycurs = ((xcurs / vc->vc_cols) << 4) + 31;
-               xcurs = ((xcurs % vc->vc_cols) << 3) + xcurs_correction;
-               newport_vc2_set(npregs, VC2_IREG_CURSX, xcurs);
-               newport_vc2_set(npregs, VC2_IREG_CURSY, ycurs);
+                               (treg & ~(VC2_CTRL_ECDISP)));
+               return;
        }
+
+       newport_vc2_set(npregs, VC2_IREG_CONTROL, (treg | VC2_CTRL_ECDISP));
+       xcurs = (vc->vc_pos - vc->vc_visible_origin) / 2;
+       ycurs = ((xcurs / vc->vc_cols) << 4) + 31;
+       xcurs = ((xcurs % vc->vc_cols) << 3) + xcurs_correction;
+       newport_vc2_set(npregs, VC2_IREG_CURSX, xcurs);
+       newport_vc2_set(npregs, VC2_IREG_CURSY, ycurs);
 }
 
 static int newport_switch(struct vc_data *vc)
diff --git a/drivers/video/console/sticon.c b/drivers/video/console/sticon.c
index 906da1fde7c8..42480874db00 100644
--- a/drivers/video/console/sticon.c
+++ b/drivers/video/console/sticon.c
@@ -95,23 +95,20 @@ static void sticon_cursor(struct vc_data *conp, int mode)
        return;
 
     car1 = conp->vc_screenbuf[conp->state.x + conp->state.y * conp->vc_cols];
-    switch (mode) {
-    case CM_ERASE:
+    if (mode == CM_ERASE) {
        sti_putc(sticon_sti, car1, conp->state.y, conp->state.x,
                 font_data[conp->vc_num]);
-       break;
-    case CM_MOVE:
-    case CM_DRAW:
-       switch (CUR_SIZE(conp->vc_cursor_type)) {
-       case CUR_UNDERLINE:
-       case CUR_LOWER_THIRD:
-       case CUR_LOWER_HALF:
-       case CUR_TWO_THIRDS:
-       case CUR_BLOCK:
-           sti_putc(sticon_sti, (car1 & 255) + (0 << 8) + (7 << 11),
-                    conp->state.y, conp->state.x, font_data[conp->vc_num]);
-           break;
-       }
+       return;
+    }
+
+    switch (CUR_SIZE(conp->vc_cursor_type)) {
+    case CUR_UNDERLINE:
+    case CUR_LOWER_THIRD:
+    case CUR_LOWER_HALF:
+    case CUR_TWO_THIRDS:
+    case CUR_BLOCK:
+       sti_putc(sticon_sti, (car1 & 255) + (0 << 8) + (7 << 11),
+                conp->state.y, conp->state.x, font_data[conp->vc_num]);
        break;
     }
 }
diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c
index 558076462b0d..3bf7f46a8998 100644
--- a/drivers/video/console/vgacon.c
+++ b/drivers/video/console/vgacon.c
@@ -514,47 +514,41 @@ static void vgacon_cursor(struct vc_data *c, int mode)
 
        c_height = c->vc_cell_height;
 
-       switch (mode) {
-       case CM_ERASE:
-               write_vga(14, (c->vc_pos - vga_vram_base) / 2);
+       write_vga(14, (c->vc_pos - vga_vram_base) / 2);
+
+       if (mode == CM_ERASE) {
                if (vga_video_type >= VIDEO_TYPE_VGAC)
                        vgacon_set_cursor_size(31, 30);
                else
                        vgacon_set_cursor_size(31, 31);
-               break;
+               return;
+       }
 
-       case CM_MOVE:
-       case CM_DRAW:
-               write_vga(14, (c->vc_pos - vga_vram_base) / 2);
-               switch (CUR_SIZE(c->vc_cursor_type)) {
-               case CUR_UNDERLINE:
-                       vgacon_set_cursor_size(c_height -
-                                              (c_height < 10 ? 2 : 3),
-                                              c_height -
-                                              (c_height < 10 ? 1 : 2));
-                       break;
-               case CUR_TWO_THIRDS:
-                       vgacon_set_cursor_size(c_height / 3, c_height -
-                                              (c_height < 10 ? 1 : 2));
-                       break;
-               case CUR_LOWER_THIRD:
-                       vgacon_set_cursor_size(c_height * 2 / 3, c_height -
-                                              (c_height < 10 ? 1 : 2));
-                       break;
-               case CUR_LOWER_HALF:
-                       vgacon_set_cursor_size(c_height / 2, c_height -
-                                              (c_height < 10 ? 1 : 2));
-                       break;
-               case CUR_NONE:
-                       if (vga_video_type >= VIDEO_TYPE_VGAC)
-                               vgacon_set_cursor_size(31, 30);
-                       else
-                               vgacon_set_cursor_size(31, 31);
-                       break;
-               default:
-                       vgacon_set_cursor_size(1, c_height);
-                       break;
-               }
+       switch (CUR_SIZE(c->vc_cursor_type)) {
+       case CUR_UNDERLINE:
+               vgacon_set_cursor_size(c_height - (c_height < 10 ? 2 : 3),
+                                      c_height - (c_height < 10 ? 1 : 2));
+               break;
+       case CUR_TWO_THIRDS:
+               vgacon_set_cursor_size(c_height / 3,
+                                      c_height - (c_height < 10 ? 1 : 2));
+               break;
+       case CUR_LOWER_THIRD:
+               vgacon_set_cursor_size(c_height * 2 / 3,
+                                      c_height - (c_height < 10 ? 1 : 2));
+               break;
+       case CUR_LOWER_HALF:
+               vgacon_set_cursor_size(c_height / 2,
+                                      c_height - (c_height < 10 ? 1 : 2));
+               break;
+       case CUR_NONE:
+               if (vga_video_type >= VIDEO_TYPE_VGAC)
+                       vgacon_set_cursor_size(31, 30);
+               else
+                       vgacon_set_cursor_size(31, 31);
+               break;
+       default:
+               vgacon_set_cursor_size(1, c_height);
                break;
        }
 }
-- 
2.43.0

Reply via email to