Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Wed, 13 Feb 2002 14:01:15 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Wed, 13 Feb 2002 14:01:08 -0500 Received: from www.transvirtual.com ([206.14.214.140]:31239 "EHLO www.transvirtual.com") by vger.kernel.org with ESMTP id ; Wed, 13 Feb 2002 14:00:55 -0500 Date: Wed, 13 Feb 2002 11:00:50 -0800 (PST) From: James Simmons To: "Randy.Dunlap" cc: linux-kernel@vger.kernel.org Subject: Re: 2.5.x doc. links In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org > | > I made some updates to "2.5 porting help" at > | > http://www.osdl.org/archive/rddunlap/linux-port-25x.html . > | > > | > If James (fbdev), Vojtech (input), ALSA project, V4L project, > | > or Jean (wireless) would like changes, please let me know. > | > | I really need to get you proper docs. Sorry but I have been busy > | preparing patches. Since I can use the console system as a multi-desktop > | it is really hard to debug stuff. ZIn fact I plan to start sending patches > | that make the console system truly multi-desktop. > > Yes, that would be great for all concerned IMO. The best way to show the new api is with my highly detailed new skeletonfb.c file. P.S I have a few patches coming for the fbdev layer to teh DJ tree but my main focus will be working on the console system for some time. The reason being is the console system is not pre-emptive where as the kernel now is. I need to fix that ASAP. /* * linux/drivers/video/skeletonfb.c -- Skeleton for a frame buffer device * * Modified to new api Jan 2001 by James Simmons (jsimmons@transvirtual.com) * * Created 28 Dec 1997 by Geert Uytterhoeven * * * I have started rewriting this driver as a example of the upcoming new API * The primary goal is to remove the console code from fbdev and place it * into fbcon.c. This reduces the code and makes writing a new fbdev driver * easy since the author doesn't need to worry about console internals. It * also allows the ability to run fbdev without a console/tty system on top * of it. * * First the roles of struct fb_info and struct display have changed. Struct * display will gone away. The way the the new framebuffer console code will * work is that it will act to translate data about the tty/console in * struct vc_data to data in a device independent way in struct fb_info. Then * various functions in struct fb_ops will be called to store the device * dependent state in the par field in struct fb_info and to change the * hardware to that state. This allows a very clean seperation of the fbdev * layer from the console layer. It also allows one to use fbdev on its own * which is a bounus for embedded devices. The reason this approach works is * for each framebuffer device when used as a tty/console device is allocated * a set of virtual terminals to it. Only one virtual terminal can be active * per framebuffer device. We already have all the data we need in struct * vc_data so why store a bunch of colormaps and other fbdev specific data * per virtual terminal. * * As you can see doing this makes the con parameter pretty much useless * for struct fb_ops functions, as it should be. Also having struct * fb_var_screeninfo and other data in fb_info pretty much eliminates the * need for get_fix and get_var. Once all drivers use the fix, var, and cmap * fbcon can be written around these fields. This will also eliminate the * need to regenerate struct fb_var_screeninfo, struct fb_fix_screeninfo * struct fb_cmap every time get_var, get_fix, get_cmap functions are called * as many drivers do now. * * This file is subject to the terms and conditions of the GNU General Public * License. See the file COPYING in the main directory of this archive for * more details. */ #include #include #include #include #include #include #include #include #include #include /* * This is just simple sample code. * * No warranty that it actually compiles. * Even less warranty that it actually works :-) */ #include