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

Signed-off-by: Pratik Jain <pratik.jain0...@gmail.com>
---
 drivers/staging/xgifb/XGI_main_26.c | 63 +++++++++++++++++++------------------
 1 file changed, 33 insertions(+), 30 deletions(-)

diff --git a/drivers/staging/xgifb/XGI_main_26.c 
b/drivers/staging/xgifb/XGI_main_26.c
index 10107de0119a..ef9a726cd35d 100644
--- a/drivers/staging/xgifb/XGI_main_26.c
+++ b/drivers/staging/xgifb/XGI_main_26.c
@@ -544,41 +544,44 @@ 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)) {
-                       if (XGIfb_vrate[i].refresh == rate) {
+       
+       // Skip values with less xres
+       while (XGIfb_vrate[i].idx != 0 && XGIfb_vrate[i].xres < xres)
+               ++i;
+
+       while (XGIfb_vrate[i].idx != 0 && XGIfb_vrate[i].xres <= xres) {
+               if (XGIfb_vrate[i].yres != yres) {
+                       ++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) {
+                               pr_debug("Adjusting rate from %d up to %d\n",
+                                       rate, XGIfb_vrate[i].refresh);
                                xgifb_info->rate_idx = XGIfb_vrate[i].idx;
-                               break;
-                       } else if (XGIfb_vrate[i].refresh > rate) {
-                               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->refresh_rate =
-                                               XGIfb_vrate[i].refresh;
-                               } else if (((rate - XGIfb_vrate[i - 1].refresh)
-                                               <= 2) && (XGIfb_vrate[i].idx
-                                               != 1)) {
-                                       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;
-                                       xgifb_info->refresh_rate =
-                                               XGIfb_vrate[i - 1].refresh;
-                               }
-                               break;
-                       } else if ((rate - XGIfb_vrate[i].refresh) <= 2) {
+                               xgifb_info->refresh_rate =
+                                       XGIfb_vrate[i].refresh;
+                       } else if ((rate - XGIfb_vrate[i - 1].refresh <= 2)
+                                       && (XGIfb_vrate[i].idx != 1)) {
                                pr_debug("Adjusting rate from %d down to %d\n",
-                                        rate, XGIfb_vrate[i].refresh);
-                               xgifb_info->rate_idx = XGIfb_vrate[i].idx;
-                               break;
+                                       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) {
+                       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++;
+               ++i;
        }
+
        if (xgifb_info->rate_idx > 0)
                return xgifb_info->rate_idx;
        pr_info("Unsupported rate %d for %dx%d\n",
-- 
2.16.2

Reply via email to