linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Antonino A. Daplas" <adaplas@hotpop.com>
To: Jon Smirl <jonsmirl@gmail.com>, adaplas@pol.net
Cc: linux-fbdev-devel@lists.sourceforge.net,
	James Simmons <jsimmons@www.infradead.org>
Subject: Re: Patch to add mode setting to sysfs
Date: Fri, 18 Feb 2005 15:31:04 +0800	[thread overview]
Message-ID: <200502181531.05517.adaplas@hotpop.com> (raw)
In-Reply-To: <9e473391050217185912a7d3d7@mail.gmail.com>

On Friday 18 February 2005 10:59, Jon Smirl wrote:
> On Fri, 18 Feb 2005 08:04:46 +0800, Antonino A. Daplas
>
> <adaplas@hotpop.com> wrote:
> > This is dangerous.  For one, if the mode in info->var does not match any
> > of the entries in the modelist, you can get a screwed up display. 
> > Secondly, fbcon refers to info->modelist to store settings for each
> > console.  Thus it is better to check first if the mode in the modelist is
> > currently in use.
> >
> > A safer way is to loop through each entries of the old modelist, call
> > fb_set_var() with the FB_ACTIVATE_INV_MODE set in var->activate. This
> > process will safely remove each mode from the modelist.  Not all entries
> > will be deleted of course. After that, loop through each entries of the
> > new modedb array, and use fb_add_videomode() to add each entry to the
> > modelist.
>
> Radeon hardware has an interrupt that is not hooked up in radeonfb
> that can tell if the monitor has been switched. Hook a radeon to a KVM
> switch and flip the switch. We should get an interrupt. Use the
> interrupt to trigger a hotplug event. Hotplug event will set a new
> list of modes into radeonfb. All of the old modes have to be deleted,
> they probably don't exist in the new monitor.
>

Just trying to point out that destroying the modelist is not entirely safe.

> At this point fbcon needs to get a modelist change event. It can then
> find_mode() to find a new mode that is close to what it was using. So
> the problem seems to be that disp->mode holds a pointer to the mode
> instead of a copy of the mode. I'll try changing this to a copy. Does

Whether it's a copy or a pointer does not matter anyway, because fbcon
still need to resize each console using the new modelist.

> fbcon really need to know the entire mode structure or could it work
> with just the resolution?

fbcon only needs xres, yres, vxres and vyres.  But in order to preserve
the graphics state per console, everything in var is required.

>
> I'd feel more comfortable if fbcon used a well defined interface to
> fbdev instead of having access to all of fbdev's internal structures.

The 2.6 code is already a big step compared to 2.4, and most of the bugs
plaguing fbcon/fbcore has been ironed out.  I don't want a new interface
again until after things settle down a bit more and drivers get updated to
the new core.

Anyway, you can code the part where a new modelist is to be created.  Then
send an event that the entire modelist is to be changed, passing the fb_info
structure and the new modelist.  fbcon captures the event (and I'll code
this part where fbcon starts using the new modelist and resizes each
console).  After which, the old modelist can be destroyed. 

Sample code:

struct fb_event event;

/* create new_modelist */
event.info = info;
event.data = new_modelist;
notifier_call_chain(&fb_notifier_list, FB_EVENT_NEW_MODELIST, &event);
/*destroy old_modelist */

Tony




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

  reply	other threads:[~2005-02-18  7:31 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-16 22:30 Patch to add mode setting to sysfs Jon Smirl
2005-02-16 22:47 ` James Simmons
2005-02-17  1:28   ` Jon Smirl
2005-02-17 13:50 ` Antonino A. Daplas
2005-02-17 20:49   ` Jon Smirl
2005-02-17 22:13     ` James Simmons
2005-02-18  0:04     ` Antonino A. Daplas
2005-02-18  0:39       ` Jon Smirl
2005-02-21 18:37         ` James Simmons
2005-02-21 19:11           ` Jon Smirl
2005-02-21 21:16             ` James Simmons
2005-02-18  2:59       ` Jon Smirl
2005-02-18  7:31         ` Antonino A. Daplas [this message]
2005-02-18  9:42           ` Geert Uytterhoeven
2005-02-18  7:27       ` Jon Smirl
2005-02-18  7:41         ` Antonino A. Daplas
2005-02-18  7:42         ` Antonino A. Daplas
2005-02-18 16:46           ` Jon Smirl
2005-02-18 21:59             ` Antonino A. Daplas
2005-02-21 18:55               ` James Simmons
2005-02-21 19:13                 ` Jon Smirl
2005-02-21 23:13               ` Antonino A. Daplas
2005-02-21 23:15                 ` Antonino A. Daplas
2005-02-25  0:04                   ` Jon Smirl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200502181531.05517.adaplas@hotpop.com \
    --to=adaplas@hotpop.com \
    --cc=adaplas@pol.net \
    --cc=jonsmirl@gmail.com \
    --cc=jsimmons@www.infradead.org \
    --cc=linux-fbdev-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).