From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Januszewski Subject: Re: [PATCH 1/4] fbdev: make fb_find_mode look for a mode with the highest refresh rate Date: Sat, 23 Jun 2007 23:26:32 +0200 Message-ID: <20070623212632.GA7148@spock.one.pl> References: <20070623105046.GB12623@spock.one.pl> <20070623110424.9a68d82d.akpm@linux-foundation.org> Reply-To: spock@gentoo.org, linux-fbdev-devel@lists.sourceforge.net Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from sc8-sf-mx2-b.sourceforge.net ([10.3.1.92] helo=mail.sourceforge.net) by sc8-sf-list1-new.sourceforge.net with esmtp (Exim 4.43) id 1I2D7s-0003OI-EI for linux-fbdev-devel@lists.sourceforge.net; Sat, 23 Jun 2007 14:26:36 -0700 Received: from ipn26-148.piekary.net ([83.238.26.148]) by mail.sourceforge.net with esmtp (Exim 4.44) id 1I2D7q-0005og-NX for linux-fbdev-devel@lists.sourceforge.net; Sat, 23 Jun 2007 14:26:36 -0700 Content-Disposition: inline In-Reply-To: <20070623110424.9a68d82d.akpm@linux-foundation.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-fbdev-devel-bounces@lists.sourceforge.net Errors-To: linux-fbdev-devel-bounces@lists.sourceforge.net To: Andrew Morton Cc: linux-fbdev-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org On Sat, Jun 23, 2007 at 11:04:24AM -0700, Andrew Morton wrote: > On Sat, 23 Jun 2007 12:50:46 +0200 Michal Januszewski wrote: > > > + if (!refresh_specified) > > + refresh = 200; > > diff = refresh; > > best = -1; > > for (i = 0; i < dbsize; i++) { > > if (name_matches(db[i], name, namelen) || > > (res_specified && res_matches(db[i], xres, yres))) { > > if(!fb_try_mode(var, info, &db[i], bpp)) { > > - if(!refresh_specified || db[i].refresh == refresh) > > + if (refresh_specified && db[i].refresh == refresh) > > return 1; > > else { > > - if(diff > abs(db[i].refresh - refresh)) { > > + if (diff > abs(db[i].refresh - refresh)) { > > diff = abs(db[i].refresh - refresh); > > best = i; > > } > > @@ -938,6 +940,7 @@ void fb_destroy_modelist(struct list_head *head) > > kfree(pos); > > } > > } > > +EXPORT_SYMBOL_GPL(fb_destroy_modelist); > > > > fbdev ignoramus asks: isn't this pretty risky? People who were previously > relying upon (or at least using) the kernel's default resolution will find > their displays coming up in a quite different resolution. The resolution will be unchanged (this part of the code is only executed if either the name of the mode or the resolution are a match). What can change is the refresh rate -- it can be set higher than what it used to be before. But since we're checking all modes with fb_try_mode(), (which calls fb_check_var()), I think that this change should be safe. To avoid any side effects we could also do the following: for (i = 0; i < dbsize; i++) { if (name_matches(db[i], name, namelen) || (res_specified && res_matches(db[i], xres, yres))) { if(!fb_try_mode(var, info, &db[i], bpp)) { if (refresh_specified && db[i].refresh == refresh) return 1; else { if (diff > abs(db[i].refresh - refresh)) { diff = abs(db[i].refresh - refresh); best = i; } } } } } if (best != -1) { fb_try_mode(var, info, &db[best], bpp); - return 2; + return (refresh_specified) ? 2 : 1; } which would ensure that 1 is returned if the refresh rate is not explicitly specified, just as it is done currently: if(!refresh_specified || db[i].refresh == refresh) return 1 I might be missing something here, so it would be nice if someone involved in the fb development could comment on the proposed change. > This change seems to be quite unrelated to the uvesafb stuff and should be > in a separate patch from the export, which _is_ uvesafb-related. I think. > If that's wrong then the changelog could do with some attention. You're right, I'll split this into two patches in the next round. Best regards, Michal ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/