Commit 7c5337c9 authored by Jiri Slaby (SUSE)'s avatar Jiri Slaby (SUSE) Committed by Greg Kroah-Hartman
Browse files

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: default avatar"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: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent bfd7de49
Loading
Loading
Loading
Loading
+11 −15
Original line number Diff line number Diff line
@@ -443,25 +443,21 @@ 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);

	if (mode == CM_ERASE) {
		newport_vc2_set(npregs, VC2_IREG_CONTROL,
				(treg & ~(VC2_CTRL_ECDISP)));
		break;
		return;
	}

	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));
	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)
{
+12 −15
Original line number Diff line number Diff line
@@ -95,13 +95,12 @@ 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:
	return;
    }

    switch (CUR_SIZE(conp->vc_cursor_type)) {
    case CUR_UNDERLINE:
    case CUR_LOWER_THIRD:
@@ -112,8 +111,6 @@ static void sticon_cursor(struct vc_data *conp, int mode)
		 conp->state.y, conp->state.x, font_data[conp->vc_num]);
	break;
    }
	break;
    }
}

static bool sticon_scroll(struct vc_data *conp, unsigned int t,
+30 −36
Original line number Diff line number Diff line
@@ -514,36 +514,32 @@ 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);

	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));
		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));
		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));
		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));
		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)
@@ -555,8 +551,6 @@ static void vgacon_cursor(struct vc_data *c, int mode)
		vgacon_set_cursor_size(1, c_height);
		break;
	}
		break;
	}
}

static void vgacon_doresize(struct vc_data *c,