mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-06 05:02:31 +00:00
consoles: use if instead of switch-case in consw::con_cursor()
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)" <jirislaby@kernel.org> Cc: Helge Deller <deller@gmx.de> Cc: linux-fbdev@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Tested-by: Helge Deller <deller@gmx.de> # parisc STI console Link: https://lore.kernel.org/r/20240122110401.7289-28-jirislaby@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
bfd7de49d7
commit
7c5337c9ea
@ -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);
|
||||
treg = newport_vc2_get(npregs, VC2_IREG_CONTROL);
|
||||
|
||||
if (mode == CM_ERASE) {
|
||||
newport_vc2_set(npregs, VC2_IREG_CONTROL,
|
||||
(treg & ~(VC2_CTRL_ECDISP)));
|
||||
break;
|
||||
|
||||
case CM_MOVE:
|
||||
case CM_DRAW:
|
||||
treg = newport_vc2_get(npregs, VC2_IREG_CONTROL);
|
||||
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);
|
||||
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)
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user