Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 65197a7d authored by Pratik Jain's avatar Pratik Jain Committed by Greg Kroah-Hartman
Browse files

Staging: xgifb: XGI_main_26.c: Refactored the function



Refactored the function `XGIfb_search_refresh_rate` by removing a level
of `if...else` block nesting. Removed unnecessary parantheses. Removed
potential bug of array underflow.

Signed-off-by: default avatarPratik Jain <pratik.jain0509@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f8174647
Loading
Loading
Loading
Loading
+30 −29
Original line number Diff line number Diff line
@@ -544,41 +544,42 @@ static u8 XGIfb_search_refresh_rate(struct xgifb_video_info *xgifb_info,
	yres = XGIbios_mode[xgifb_info->mode_idx].yres;

	xgifb_info->rate_idx = 0;
	while ((XGIfb_vrate[i].idx != 0) && (XGIfb_vrate[i].xres <= xres)) {
		if ((XGIfb_vrate[i].xres == xres) &&
		    (XGIfb_vrate[i].yres == yres)) {

	while (XGIfb_vrate[i].idx != 0 && XGIfb_vrate[i].xres <= xres) {
		/* Skip values with xres or yres less than specified */
		if ((XGIfb_vrate[i].yres != yres) ||
		    (XGIfb_vrate[i].xres != xres)) {
			i++;
			continue;
		}
		if (XGIfb_vrate[i].refresh == rate) {
			xgifb_info->rate_idx = XGIfb_vrate[i].idx;
			break;
		} else if (XGIfb_vrate[i].refresh > rate) {
				if ((XGIfb_vrate[i].refresh - rate) <= 3) {
			if (XGIfb_vrate[i].refresh - rate <= 3) {
				pr_debug("Adjusting rate from %d up to %d\n",
					rate, XGIfb_vrate[i].refresh);
					xgifb_info->rate_idx =
						XGIfb_vrate[i].idx;
				xgifb_info->rate_idx = XGIfb_vrate[i].idx;
				xgifb_info->refresh_rate =
					XGIfb_vrate[i].refresh;
				} else if (((rate - XGIfb_vrate[i - 1].refresh)
						<= 2) && (XGIfb_vrate[i].idx
						!= 1)) {
			} else if ((XGIfb_vrate[i].idx != 1) &&
				   (rate - XGIfb_vrate[i - 1].refresh <= 2)) {
				pr_debug("Adjusting rate from %d down to %d\n",
						 rate,
						 XGIfb_vrate[i - 1].refresh);
					xgifb_info->rate_idx =
						XGIfb_vrate[i - 1].idx;
					rate, XGIfb_vrate[i - 1].refresh);
				xgifb_info->rate_idx = XGIfb_vrate[i - 1].idx;
				xgifb_info->refresh_rate =
					XGIfb_vrate[i - 1].refresh;
			}
			break;
			} else if ((rate - XGIfb_vrate[i].refresh) <= 2) {
		} else if (rate - XGIfb_vrate[i].refresh <= 2) {
			pr_debug("Adjusting rate from %d down to %d\n",
				rate, XGIfb_vrate[i].refresh);
			xgifb_info->rate_idx = XGIfb_vrate[i].idx;
			break;
		}
		}
		i++;
	}

	if (xgifb_info->rate_idx > 0)
		return xgifb_info->rate_idx;
	pr_info("Unsupported rate %d for %dx%d\n",