Re: 2.6.3-rc3 radeonfb: Problems with new (and old) driver

Benjamin Herrenschmidt
2004-02-16T21:51:10Z

On Tue, 2004-02-17 at 04:56, Linus Torvalds wrote:

> The console layer already always calls "unblank_screen()" on any switch to
> text mode, _regardless_ of whether it was switching from another console
> or not. That should be the place where this is done, and perhaps by
> changing the console layer to be a bit more helpful about things (mainly
> re-name the damn thing, since it has nothing to do with "unblank" any
> more).
>
> "unblank_screen()" is really the same as "reset_screen" - it's also called
> on resume. While "do_blank_screen()" is basically "go away".

That's interesting... I didn't want to do a full mode + engine restore
in unblank_screen though as this can be called from interrupt time by
printk... But then, with the LVDS blanking, I already have to delay
up to 1 second in this function, so .... I think I'll have to find a
way to abstract a delay function that schedules in normal case _but_
when called from printk....

> So why don't you just reset the thing in "con_blank()" that gets called in
> all the right cases?

Do we want to pay the cost (in time) of a full mode set + engine reset
on each unblank ? I could limit myself to restoring the accel engine,
that faster, but with X also not always restoring the console mode
properly, I'd have preferred re-setting the whole mode...

Maybe we should go that way for now (engine only in unblank), then try
to fix X for the mode thing (if doable.... there is some VGA magic in
there that I don't understand)

Ben.