2002-07-31 22:24:40

by James Simmons

[permalink] [raw]
Subject: [PATCH] console part 2.


Here is the second patch. It has many fixes and alot of major changes
internally. Please test it out. It will break a few keyboard drivers due
to the struct kbd_struct changes. It will also break a few framebuffer
drivers as well since they touch console data structures. If you port your
fbdev driver to the new api you will not have to worry about this
(reason I developed this new api) :-)

arch/mips/au1000/common/serial.c | 2
arch/parisc/kernel/pdc_cons.c | 3
arch/ppc/4xx_io/serial_sicc.c | 2
arch/ppc/8xx_io/uart.c | 2
arch/ppc64/kernel/ioctl32.c | 64
arch/sparc64/kernel/ioctl32.c | 23
arch/x86_64/ia32/ia32_ioctl.c | 20
drivers/char/Makefile | 12
drivers/char/console.c | 3032 -------------------------------
drivers/char/console_macros.h | 161 -
drivers/char/consolemap.c | 136 -
drivers/char/decvte.c | 2054 +++++++++++++++++++++
drivers/char/hvc_console.c | 2
drivers/char/keyboard.c | 595 +++---
drivers/char/misc.c | 1
drivers/char/selection.c | 63
drivers/char/sysrq.c | 22
drivers/char/tty_io.c | 2
drivers/char/vc_screen.c | 115 -
drivers/char/vt.c | 2753 +++++++++++++++++-----------
drivers/char/vt_ioctl.c | 1443 ++++++++++++++
drivers/s390/char/ctrlchar.c | 2
drivers/tc/zs.c | 2
drivers/video/dummycon.c | 1
drivers/video/fbcon-accel.c | 5
drivers/video/fbcon.c | 55
drivers/video/mdacon.c | 21
drivers/video/newport_con.c | 1
drivers/video/promcon.c | 33
drivers/video/sticon-bmode.c | 2
drivers/video/sticon.c | 3
drivers/video/vgacon.c | 21
include/linux/console.h | 17
include/linux/console_struct.h | 110 -
include/linux/consolemap.h | 6
include/linux/kbd_kern.h | 27
include/linux/selection.h | 23
include/linux/tty.h | 8
include/linux/vt_kern.h | 275 ++
include/video/fbcon.h | 2
45 files changed, 6214 insertions(+), 4923 deletions(-)

diff:
http://www.transvirtual.com/~jsimmons/console.diff.gz

BK:
http://linuxconsole.bkbits.net:8080/dev

. ---
|o_o |
|:_/ | Give Micro$oft the Bird!!!!
// \ \ Use Linux!!!!
(| | )
/'\_ _/`\
\___)=(___/


2002-07-31 22:56:41

by Russell King

[permalink] [raw]
Subject: Re: [PATCH] console part 2.

On Wed, Jul 31, 2002 at 03:27:57PM -0700, James Simmons wrote:
> Here is the second patch. It has many fixes and alot of major changes
> internally.

A quick read through reveals:

- printk("mdacon: MDA card not detected.\n");
+ printk("KERN_WARNING mdacon: MDA card not detected.\n");

KERN_WARNING and friends should be outside the quotes.

Secondly, the absolutely gigantic "switch (vc_state) {" stuff with
extra layers of switch statements below it in decvte.c - I find this
rather disgusting to read. I bet the resulting asm is also disgusting.
Isn't there a cleaner solution to this? (I've been carrying around
since 2.2 patches to the console layer to split this up mainly because
some older versions of ARM gcc choked on it. I'm not certain about
current versions though.)

Also, something that should probably be fixed one day, but I wouldn't
call it a show stopper:

-#define SIZE(x) (sizeof(x)/sizeof((x)[0]))
+#define SIZE(x) (sizeof(x)/sizeof((x)[0]))

We have ARRAY_SIZE(x) in linux/kernel.h which does this already.

--
Russell King ([email protected]) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html

2002-08-01 17:23:33

by James Simmons

[permalink] [raw]
Subject: Re: [PATCH] console part 2.


> A quick read through reveals:
>
> - printk("mdacon: MDA card not detected.\n");
> + printk("KERN_WARNING mdacon: MDA card not detected.\n");
>
> KERN_WARNING and friends should be outside the quotes.

Fixed.

> Secondly, the absolutely gigantic "switch (vc_state) {" stuff with
> extra layers of switch statements below it in decvte.c - I find this
> rather disgusting to read. I bet the resulting asm is also disgusting.
> Isn't there a cleaner solution to this? (I've been carrying around
> since 2.2 patches to the console layer to split this up mainly because
> some older versions of ARM gcc choked on it. I'm not certain about
> current versions though.)

Yes it is disgusting. That is one of the reasons I placed it into a
seperate file. It is the same code as before. Could you send me that
patch. I'm interested in it :-)

> Also, something that should probably be fixed one day, but I wouldn't
> call it a show stopper:
>
> -#define SIZE(x) (sizeof(x)/sizeof((x)[0]))
> +#define SIZE(x) (sizeof(x)/sizeof((x)[0]))
>
> We have ARRAY_SIZE(x) in linux/kernel.h which does this already.

Done.