[U-Boot] [RFC PATCH] console/device: rework function naming

actually the console API use the following naming convention
---Extract--- typedef struct device_t;
int device_register (device_t * dev); int devices_init (void); int device_deregister(char *devname); struct list_head* device_get_list(void); device_t* device_get_by_name(char* name); device_t* device_clone(device_t *dev); ---
which is not console dependent and is confusing instead of using device_XX
we now switch to console_XX and console_device_t
this will also allow to add later a generic device mecanism in order to have multi generic device support and driver instance
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD plagnioj@jcrosoft.com --- board/MAI/AmigaOneG3SE/ps2kbd.c | 6 +- board/MAI/AmigaOneG3SE/video.c | 6 +- board/ads5121/ads5121_diu.c | 2 +- board/bf527-ezkit/video.c | 6 +- board/bf533-stamp/video.c | 6 +- board/bf548-ezkit/video.c | 6 +- board/bmw/bmw.c | 2 +- board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c | 2 +- board/mpl/common/common_util.c | 4 +- board/mpl/common/isa.c | 2 +- board/mpl/common/kbd.c | 6 +- board/mpl/pati/pati.c | 6 +- board/netphone/phone_console.c | 6 +- board/rbc823/kbd.c | 6 +- board/trab/vfd.c | 2 +- common/cmd_console.c | 6 +- common/cmd_log.c | 6 +- common/cmd_terminal.c | 6 +- common/console.c | 32 +++--- common/devices.c | 42 ++++---- common/iomux.c | 14 ++-- common/lcd.c | 6 +- common/serial.c | 8 +- common/usb_kbd.c | 12 +- cpu/blackfin/jtag-console.c | 6 +- cpu/mpc8xx/lcd.c | 2 +- cpu/mpc8xx/video.c | 6 +- cpu/pxa/pxafb.c | 2 +- drivers/input/keyboard.c | 6 +- drivers/mtd/ubi/build.c | 2 +- drivers/mtd/ubi/vmt.c | 4 +- drivers/net/netconsole.c | 6 +- drivers/serial/arm_dcc.c | 6 +- drivers/serial/usbtty.c | 6 +- drivers/usb/musb/musb_hcd.c | 4 +- drivers/usb/musb/musb_hcd.h | 2 +- drivers/video/cfb_console.c | 8 +- include/configs/AmigaOneG3SE.h | 2 +- include/configs/MIP405.h | 2 +- include/configs/MPC8610HPCD.h | 2 +- include/configs/MPC8641HPCN.h | 2 +- include/configs/PIP405.h | 2 +- include/configs/VCMA9.h | 2 +- include/configs/gr_ep2s60.h | 2 +- include/configs/mp2usb.h | 2 +- include/console.h | 101 +++++++++++++++++++- include/devices.h | 126 ------------------------- include/iomux.h | 6 +- include/serial.h | 2 +- lib_arm/board.c | 4 +- lib_avr32/board.c | 4 +- lib_blackfin/board.c | 4 +- lib_i386/board.c | 4 +- lib_i386/video.c | 10 +- lib_m68k/board.c | 4 +- lib_mips/board.c | 4 +- lib_nios/board.c | 4 +- lib_nios2/board.c | 4 +- lib_ppc/board.c | 4 +- lib_sh/board.c | 4 +- lib_sparc/board.c | 4 +- 61 files changed, 264 insertions(+), 301 deletions(-) delete mode 100644 include/devices.h
diff --git a/board/MAI/AmigaOneG3SE/ps2kbd.c b/board/MAI/AmigaOneG3SE/ps2kbd.c index a297005..404d9da 100644 --- a/board/MAI/AmigaOneG3SE/ps2kbd.c +++ b/board/MAI/AmigaOneG3SE/ps2kbd.c @@ -34,7 +34,7 @@ */ #include <common.h> #include <asm/processor.h> -#include <devices.h> +#include <console.h> #include "ps2kbd.h"
@@ -226,7 +226,7 @@ int overwrite_console (void) int drv_isa_kbd_init (void) { int error; - device_t kbddev ; + console_device_t kbddev ; char *stdinname = getenv ("stdin");
if(isa_kbd_init() == -1) @@ -239,7 +239,7 @@ int drv_isa_kbd_init (void) kbddev.getc = kbd_getc ; kbddev.tstc = kbd_testc ;
- error = device_register (&kbddev); + error = console_register (&kbddev); if(error==0) { /* check if this is the standard input device */ if(strcmp(stdinname,DEVNAME)==0) { diff --git a/board/MAI/AmigaOneG3SE/video.c b/board/MAI/AmigaOneG3SE/video.c index fc27c68..23a8b72 100644 --- a/board/MAI/AmigaOneG3SE/video.c +++ b/board/MAI/AmigaOneG3SE/video.c @@ -22,7 +22,7 @@ */
#include <common.h> -#include <devices.h> +#include <console.h> #include "memio.h" #include <part.h>
@@ -98,7 +98,7 @@ int video_inited = 0; int drv_video_init(void) { int error, devices = 1 ; - device_t vgadev ; + console_device_t vgadev ; if (video_inited) return 1; video_inited = 1; video_init(); @@ -112,7 +112,7 @@ int drv_video_init(void) vgadev.tstc = NULL; vgadev.start = video_start;
- error = device_register (&vgadev); + error = console_register (&vgadev);
if (error == 0) { diff --git a/board/ads5121/ads5121_diu.c b/board/ads5121/ads5121_diu.c index 41a1353..46fb9c3 100644 --- a/board/ads5121/ads5121_diu.c +++ b/board/ads5121/ads5121_diu.c @@ -33,7 +33,7 @@ #include "../freescale/common/fsl_diu_fb.h"
#if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE) -#include <devices.h> +#include <console.h> #include <video_fb.h> #endif
diff --git a/board/bf527-ezkit/video.c b/board/bf527-ezkit/video.c index 2df6717..ec24ff3 100644 --- a/board/bf527-ezkit/video.c +++ b/board/bf527-ezkit/video.c @@ -14,7 +14,7 @@ #include <asm/mach-common/bits/dma.h> #include <i2c.h> #include <linux/types.h> -#include <devices.h> +#include <console.h>
int gunzip(void *, int, unsigned char *, unsigned long *);
@@ -272,7 +272,7 @@ void video_puts(const char *s) int drv_video_init(void) { int error, devices = 1; - device_t videodev; + console_device_t videodev;
u8 *dst; u32 fbmem_size = LCD_X_RES * LCD_Y_RES * LCD_PIXEL_SIZE + ACTIVE_VIDEO_MEM_OFFSET; @@ -311,7 +311,7 @@ int drv_video_init(void) videodev.putc = video_putc; /* 'putc' function */ videodev.puts = video_puts; /* 'puts' function */
- error = device_register(&videodev); + error = console_register(&videodev);
return (error == 0) ? devices : error; } diff --git a/board/bf533-stamp/video.c b/board/bf533-stamp/video.c index 3c15eaa..e3fae30 100644 --- a/board/bf533-stamp/video.c +++ b/board/bf533-stamp/video.c @@ -18,7 +18,7 @@ #include <asm/mach-common/bits/dma.h> #include <i2c.h> #include <linux/types.h> -#include <devices.h> +#include <console.h>
int gunzip(void *, int, unsigned char *, unsigned long *);
@@ -154,7 +154,7 @@ static void video_init(char *NTSCFrame)
int drv_video_init(void) { - device_t videodev; + console_device_t videodev;
video_init((void *)NTSC_FRAME_ADDR);
@@ -163,5 +163,5 @@ int drv_video_init(void) videodev.ext = DEV_EXT_VIDEO; videodev.flags = DEV_FLAGS_SYSTEM;
- return device_register(&videodev); + return console_register(&videodev); } diff --git a/board/bf548-ezkit/video.c b/board/bf548-ezkit/video.c index a6f52bd..f8689d6 100644 --- a/board/bf548-ezkit/video.c +++ b/board/bf548-ezkit/video.c @@ -14,7 +14,7 @@ #include <asm/mach-common/bits/dma.h> #include <i2c.h> #include <linux/types.h> -#include <devices.h> +#include <console.h>
int gunzip(void *, int, unsigned char *, unsigned long *);
@@ -282,7 +282,7 @@ void video_puts(const char *s) int drv_video_init(void) { int error, devices = 1; - device_t videodev; + console_device_t videodev;
u8 *dst; u32 fbmem_size = LCD_X_RES * LCD_Y_RES * LCD_PIXEL_SIZE + ACTIVE_VIDEO_MEM_OFFSET; @@ -321,7 +321,7 @@ int drv_video_init(void) videodev.putc = video_putc; /* 'putc' function */ videodev.puts = video_puts; /* 'puts' function */
- error = device_register(&videodev); + error = console_register(&videodev);
return (error == 0) ? devices : error; } diff --git a/board/bmw/bmw.c b/board/bmw/bmw.c index 41ce14f..6cca017 100644 --- a/board/bmw/bmw.c +++ b/board/bmw/bmw.c @@ -26,7 +26,7 @@ #include <watchdog.h> #include <command.h> #include <malloc.h> -#include <devices.h> +#include <console.h> #include <net.h> #include <timestamp.h> #include <dtt.h> diff --git a/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c b/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c index 2b2d5d7..fb9371e 100644 --- a/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c +++ b/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c @@ -33,7 +33,7 @@ #include "../common/fsl_diu_fb.h"
#if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE) -#include <devices.h> +#include <console.h> #include <video_fb.h> #endif
diff --git a/board/mpl/common/common_util.c b/board/mpl/common/common_util.c index d169391..aa37370 100644 --- a/board/mpl/common/common_util.c +++ b/board/mpl/common/common_util.c @@ -29,7 +29,7 @@ #include <asm/processor.h> #include <asm/byteorder.h> #include <i2c.h> -#include <devices.h> +#include <console.h> #include <pci.h> #include <malloc.h> #include <bzlib.h> @@ -429,7 +429,7 @@ void check_env(void) }
-extern device_t *stdio_devices[]; +extern console_device_t *stdio_devices[]; extern char *stdio_names[];
void show_stdio_dev(void) diff --git a/board/mpl/common/isa.c b/board/mpl/common/isa.c index 91829d4..40ace1f 100644 --- a/board/mpl/common/isa.c +++ b/board/mpl/common/isa.c @@ -26,7 +26,7 @@
#include <common.h> #include <asm/processor.h> -#include <devices.h> +#include <console.h> #include "isa.h" #include "piix4_pci.h" #include "kbd.h" diff --git a/board/mpl/common/kbd.c b/board/mpl/common/kbd.c index a457635..262e656 100644 --- a/board/mpl/common/kbd.c +++ b/board/mpl/common/kbd.c @@ -28,7 +28,7 @@ */ #include <common.h> #include <asm/processor.h> -#include <devices.h> +#include <console.h> #include "isa.h" #include "kbd.h"
@@ -215,7 +215,7 @@ int overwrite_console (void) int drv_isa_kbd_init (void) { int error; - device_t kbddev ; + console_device_t kbddev ; char *stdinname = getenv ("stdin");
if(isa_kbd_init()==-1) @@ -228,7 +228,7 @@ int drv_isa_kbd_init (void) kbddev.getc = kbd_getc ; kbddev.tstc = kbd_testc ;
- error = device_register (&kbddev); + error = console_register (&kbddev); if(error==0) { /* check if this is the standard input device */ if(strcmp(stdinname,DEVNAME)==0) { diff --git a/board/mpl/pati/pati.c b/board/mpl/pati/pati.c index 85c5af9..a814903 100644 --- a/board/mpl/pati/pati.c +++ b/board/mpl/pati/pati.c @@ -46,7 +46,7 @@
#include <common.h> #include <mpc5xx.h> -#include <devices.h> +#include <console.h> #include <pci_ids.h> #define PLX9056_LOC #include "plx9056.h" @@ -447,7 +447,7 @@ int checkboard (void) int recbuf[REC_BUFFER_SIZE]; static int r_ptr = 0; int w_ptr; -device_t pci_con_dev; +console_device_t pci_con_dev; int conn=0; int buff_full=0;
@@ -584,7 +584,7 @@ void pci_con_connect(void) pci_con_dev.puts = pci_con_puts; pci_con_dev.getc = pci_con_getc; pci_con_dev.tstc = pci_con_tstc; - device_register (&pci_con_dev); + console_register (&pci_con_dev); printf("PATI ready for PCI connection, type ctrl-c for exit\n"); do { udelay(10); diff --git a/board/netphone/phone_console.c b/board/netphone/phone_console.c index d9b0ad3..85eea29 100644 --- a/board/netphone/phone_console.c +++ b/board/netphone/phone_console.c @@ -37,7 +37,7 @@
#include <version.h> #include <linux/types.h> -#include <devices.h> +#include <console.h>
#include <sed156x.h>
@@ -325,7 +325,7 @@ int phone_getc(void)
int drv_phone_init(void) { - device_t console_dev; + console_device_t console_dev;
console_init();
@@ -340,7 +340,7 @@ int drv_phone_init(void) console_dev.tstc = phone_tstc; /* 'tstc' function */ console_dev.getc = phone_getc; /* 'getc' function */
- if (device_register(&console_dev) == 0) + if (console_register(&console_dev) == 0) return 1;
return 0; diff --git a/board/rbc823/kbd.c b/board/rbc823/kbd.c index 1d48f6d..dbb2063 100644 --- a/board/rbc823/kbd.c +++ b/board/rbc823/kbd.c @@ -30,7 +30,7 @@ #include <common.h> #include <watchdog.h> #include <commproc.h> -#include <devices.h> +#include <console.h> #include <lcd.h>
DECLARE_GLOBAL_DATA_PTR; @@ -249,7 +249,7 @@ int smc1_tstc(void) int drv_keyboard_init(void) { int error = 0; - device_t kbd_dev; + console_device_t kbd_dev;
if (0) { /* register the keyboard */ @@ -260,7 +260,7 @@ int drv_keyboard_init(void) kbd_dev.puts = NULL; kbd_dev.getc = smc1_getc; kbd_dev.tstc = smc1_tstc; - error = device_register (&kbd_dev); + error = console_register (&kbd_dev); } else { lcd_is_enabled = 0; lcd_disable(); diff --git a/board/trab/vfd.c b/board/trab/vfd.c index 37d3aa4..cc13f30 100644 --- a/board/trab/vfd.c +++ b/board/trab/vfd.c @@ -36,7 +36,7 @@ #include <version.h> #include <stdarg.h> #include <linux/types.h> -#include <devices.h> +#include <console.h> #include <s3c2400.h>
DECLARE_GLOBAL_DATA_PTR; diff --git a/common/cmd_console.c b/common/cmd_console.c index f861f83..fd7a65d 100644 --- a/common/cmd_console.c +++ b/common/cmd_console.c @@ -26,15 +26,15 @@ */ #include <common.h> #include <command.h> -#include <devices.h> +#include <console.h>
extern void _do_coninfo (void); int do_coninfo (cmd_tbl_t * cmd, int flag, int argc, char *argv[]) { int l; - struct list_head *list = device_get_list(); + struct list_head *list = console_get_list(); struct list_head *pos; - device_t *dev; + console_device_t *dev;
/* Scan for valid output and input devices */
diff --git a/common/cmd_log.c b/common/cmd_log.c index a03835d..a3c06b8 100644 --- a/common/cmd_log.c +++ b/common/cmd_log.c @@ -42,7 +42,7 @@
#include <common.h> #include <command.h> -#include <devices.h> +#include <console.h> #include <post.h> #include <logbuff.h>
@@ -142,7 +142,7 @@ void logbuff_reset (void)
int drv_logbuff_init (void) { - device_t logdev; + console_device_t logdev; int rc;
/* Device initialization */ @@ -154,7 +154,7 @@ int drv_logbuff_init (void) logdev.putc = logbuff_putc; /* 'putc' function */ logdev.puts = logbuff_puts; /* 'puts' function */
- rc = device_register (&logdev); + rc = console_register (&logdev);
return (rc == 0) ? 1 : rc; } diff --git a/common/cmd_terminal.c b/common/cmd_terminal.c index fd3dd48..4586d6d 100644 --- a/common/cmd_terminal.c +++ b/common/cmd_terminal.c @@ -26,19 +26,19 @@ */ #include <common.h> #include <command.h> -#include <devices.h> +#include <console.h> #include <serial.h>
int do_terminal(cmd_tbl_t * cmd, int flag, int argc, char *argv[]) { int last_tilde = 0; - device_t *dev = NULL; + console_device_t *dev = NULL;
if (argc < 1) return -1;
/* Scan for selected output/input device */ - dev = device_get_by_name(argv[1]); + dev = console_get_by_name(argv[1]); if (!dev) return -1;
diff --git a/common/console.c b/common/console.c index 2add047..ff06a76 100644 --- a/common/console.c +++ b/common/console.c @@ -48,7 +48,7 @@ extern int overwrite_console(void);
#endif /* CONFIG_SYS_CONSOLE_IS_IN_ENV */
-static int console_setfile(int file, device_t * dev) +static int console_setfile(int file, console_device_t * dev) { int error = 0;
@@ -96,8 +96,8 @@ static int console_setfile(int file, device_t * dev) #if defined(CONFIG_CONSOLE_MUX) /** Console I/O multiplexing *******************************************/
-static device_t *tstcdev; -device_t **console_devices[MAX_FILES]; +static console_device_t *tstcdev; +console_device_t **console_devices[MAX_FILES]; int cd_count[MAX_FILES];
/* @@ -119,7 +119,7 @@ static int console_getc(int file) static int console_tstc(int file) { int i, ret; - device_t *dev; + console_device_t *dev;
disable_ctrlc(1); for (i = 0; i < cd_count[file]; i++) { @@ -141,7 +141,7 @@ static int console_tstc(int file) static void console_putc(int file, const char c) { int i; - device_t *dev; + console_device_t *dev;
for (i = 0; i < cd_count[file]; i++) { dev = console_devices[file][i]; @@ -153,7 +153,7 @@ static void console_putc(int file, const char c) static void console_puts(int file, const char *s) { int i; - device_t *dev; + console_device_t *dev;
for (i = 0; i < cd_count[file]; i++) { dev = console_devices[file][i]; @@ -167,7 +167,7 @@ static inline void console_printdevs(int file) iomux_printdevs(file); }
-static inline void console_doenv(int file, device_t *dev) +static inline void console_doenv(int file, console_device_t *dev) { iomux_doenv(file, dev->name); } @@ -197,7 +197,7 @@ static inline void console_printdevs(int file) printf("%s\n", stdio_devices[file]->name); }
-static inline void console_doenv(int file, device_t *dev) +static inline void console_doenv(int file, console_device_t *dev) { console_setfile(file, dev); } @@ -479,11 +479,11 @@ inline void dbg(const char *fmt, ...)
/** U-Boot INIT FUNCTIONS *************************************************/
-device_t *search_device(int flags, char *name) +console_device_t *search_device(int flags, char *name) { - device_t *dev; + console_device_t *dev;
- dev = device_get_by_name(name); + dev = console_get_by_name(name);
if (dev && (dev->flags & flags)) return dev; @@ -494,7 +494,7 @@ device_t *search_device(int flags, char *name) int console_assign(int file, char *devname) { int flag; - device_t *dev; + console_device_t *dev;
/* Check for valid file */ switch (file) { @@ -537,7 +537,7 @@ int console_init_f(void) int console_init_r(void) { char *stdinname, *stdoutname, *stderrname; - device_t *inputdev = NULL, *outputdev = NULL, *errdev = NULL; + console_device_t *inputdev = NULL, *outputdev = NULL, *errdev = NULL; #ifdef CONFIG_SYS_CONSOLE_ENV_OVERWRITE int i; #endif /* CONFIG_SYS_CONSOLE_ENV_OVERWRITE */ @@ -645,11 +645,11 @@ done: /* Called after the relocation - use desired console functions */ int console_init_r(void) { - device_t *inputdev = NULL, *outputdev = NULL; + console_device_t *inputdev = NULL, *outputdev = NULL; int i; - struct list_head *list = device_get_list(); + struct list_head *list = console_get_list(); struct list_head *pos; - device_t *dev; + console_device_t *dev;
#ifdef CONFIG_SPLASH_SCREEN /* diff --git a/common/devices.c b/common/devices.c index ba53c9b..dd57b31 100644 --- a/common/devices.c +++ b/common/devices.c @@ -25,7 +25,7 @@ #include <common.h> #include <stdarg.h> #include <malloc.h> -#include <devices.h> +#include <console.h> #include <serial.h> #ifdef CONFIG_LOGBUFFER #include <logbuff.h> @@ -36,8 +36,8 @@
DECLARE_GLOBAL_DATA_PTR;
-static device_t devs; -device_t *stdio_devices[] = { NULL, NULL, NULL }; +static console_device_t devs; +console_device_t *stdio_devices[] = { NULL, NULL, NULL }; char *stdio_names[MAX_FILES] = { "stdin", "stdout", "stderr" };
#if defined(CONFIG_SPLASH_SCREEN) && !defined(CONFIG_SYS_DEVICE_NULLDEV) @@ -70,7 +70,7 @@ int nulldev_input(void)
static void drv_system_init (void) { - device_t dev; + console_device_t dev;
memset (&dev, 0, sizeof (dev));
@@ -88,7 +88,7 @@ static void drv_system_init (void) dev.tstc = serial_tstc; #endif
- device_register (&dev); + console_register (&dev);
#ifdef CONFIG_SYS_DEVICE_NULLDEV memset (&dev, 0, sizeof (dev)); @@ -100,7 +100,7 @@ static void drv_system_init (void) dev.getc = nulldev_input; dev.tstc = nulldev_input;
- device_register (&dev); + console_register (&dev); #endif }
@@ -108,15 +108,15 @@ static void drv_system_init (void) * DEVICES ************************************************************************** */ -struct list_head* device_get_list(void) +struct list_head* console_get_list(void) { return &(devs.list); }
-device_t* device_get_by_name(char* name) +device_t* console_get_by_name(char* name) { struct list_head *pos; - device_t *dev; + console_device_t *dev;
if(!name) return NULL; @@ -130,9 +130,9 @@ device_t* device_get_by_name(char* name) return NULL; }
-device_t* device_clone(device_t *dev) +device_t* console_clone(console_device_t *dev) { - device_t *_dev; + console_device_t *_dev;
if(!dev) return NULL; @@ -148,11 +148,11 @@ device_t* device_clone(device_t *dev) return _dev; }
-int device_register (device_t * dev) +int console_register (console_device_t * dev) { - device_t *_dev; + console_device_t *_dev;
- _dev = device_clone(dev); + _dev = console_clone(dev); if(!_dev) return -1; list_add_tail(&(_dev->list), &(devs.list)); @@ -162,15 +162,15 @@ int device_register (device_t * dev) /* deregister the device "devname". * returns 0 if success, -1 if device is assigned and 1 if devname not found */ -#ifdef CONFIG_SYS_DEVICE_DEREGISTER -int device_deregister(char *devname) +#ifdef CONFIG_SYS_CONSOLE_DEREGISTER +int console_deregister(char *devname) { int l; struct list_head *pos; - device_t *dev; + console_device_t *dev; char temp_names[3][8];
- dev = device_get_by_name(devname); + dev = console_get_by_name(devname);
if(!dev) /* device not found */ return -1; @@ -197,9 +197,9 @@ int device_deregister(char *devname) } return 0; } -#endif /* CONFIG_SYS_DEVICE_DEREGISTER */ +#endif /* CONFIG_SYS_CONSOLE_DEREGISTER */
-int devices_init (void) +int consoles_init (void) { #ifndef CONFIG_ARM /* already relocated for current ARM implementation */ ulong relocation_offset = gd->reloc_off; @@ -235,7 +235,7 @@ int devices_init (void) #endif drv_system_init (); #ifdef CONFIG_SERIAL_MULTI - serial_devices_init (); + serial_consoles_init (); #endif #ifdef CONFIG_USB_TTY drv_usbtty_init (); diff --git a/common/iomux.c b/common/iomux.c index bdcc853..18e7d8d 100644 --- a/common/iomux.c +++ b/common/iomux.c @@ -29,7 +29,7 @@ void iomux_printdevs(const int console) { int i; - device_t *dev; + console_device_t *dev;
for (i = 0; i < cd_count[console]; i++) { dev = console_devices[console][i]; @@ -43,8 +43,8 @@ int iomux_doenv(const int console, const char *arg) { char *console_args, *temp, **start; int i, j, k, io_flag, cs_idx, repeat; - device_t *dev; - device_t **cons_set; + console_device_t *dev; + console_device_t **cons_set;
console_args = strdup(arg); if (console_args == NULL) @@ -85,7 +85,7 @@ int iomux_doenv(const int console, const char *arg) *temp = '\0'; start[i] = temp + 1; } - cons_set = (device_t **)calloc(i, sizeof(device_t *)); + cons_set = (console_device_t **)calloc(i, sizeof(console_device_t *)); if (cons_set == NULL) { free(start); free(console_args); @@ -158,14 +158,14 @@ int iomux_doenv(const int console, const char *arg) } else { /* Works even if console_devices[console] is NULL. */ console_devices[console] = - (device_t **)realloc(console_devices[console], - cs_idx * sizeof(device_t *)); + (console_device_t **)realloc(console_devices[console], + cs_idx * sizeof(console_device_t *)); if (console_devices[console] == NULL) { free(cons_set); return 1; } memcpy(console_devices[console], cons_set, cs_idx * - sizeof(device_t *)); + sizeof(console_device_t *));
cd_count[console] = cs_idx; } diff --git a/common/lcd.c b/common/lcd.c index 4155170..04b870e 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -34,7 +34,7 @@ #include <command.h> #include <stdarg.h> #include <linux/types.h> -#include <devices.h> +#include <console.h> #if defined(CONFIG_POST) #include <post.h> #endif @@ -355,7 +355,7 @@ static void test_pattern (void)
int drv_lcd_init (void) { - device_t lcddev; + console_device_t lcddev; int rc;
lcd_base = (void *)(gd->fb_base); @@ -373,7 +373,7 @@ int drv_lcd_init (void) lcddev.putc = lcd_putc; /* 'putc' function */ lcddev.puts = lcd_puts; /* 'puts' function */
- rc = device_register (&lcddev); + rc = console_register (&lcddev);
return (rc == 0) ? 1 : rc; } diff --git a/common/serial.c b/common/serial.c index 09385d0..7bf797c 100644 --- a/common/serial.c +++ b/common/serial.c @@ -23,7 +23,7 @@
#include <common.h> #include <serial.h> -#include <devices.h> +#include <console.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -139,9 +139,9 @@ void serial_initialize (void) serial_assign (default_serial_console ()->name); }
-void serial_devices_init (void) +void serial_consoles_init (void) { - device_t dev; + console_device_t dev; struct serial_device *s = serial_devices;
while (s) { @@ -156,7 +156,7 @@ void serial_devices_init (void) dev.getc = s->getc; dev.tstc = s->tstc;
- device_register (&dev); + console_register (&dev);
s = s->next; } diff --git a/common/usb_kbd.c b/common/usb_kbd.c index e0d006c..c52192b 100644 --- a/common/usb_kbd.c +++ b/common/usb_kbd.c @@ -25,7 +25,7 @@ * */ #include <common.h> -#include <devices.h> +#include <console.h> #include <asm/byteorder.h>
#include <usb.h> @@ -153,7 +153,7 @@ static int usb_kbd_probe(struct usb_device *dev, unsigned int ifnum); int drv_usb_kbd_init(void) { int error,i; - device_t usb_kbd_dev,*old_dev; + console_device_t usb_kbd_dev,*old_dev; struct usb_device *dev; char *stdinname = getenv ("stdin");
@@ -168,7 +168,7 @@ int drv_usb_kbd_init(void) if(usb_kbd_probe(dev,0)==1) { /* Ok, we found a keyboard */ /* check, if it is already registered */ USB_KBD_PRINTF("USB KBD found set up device.\n"); - old_dev = device_get_by_name(DEVNAME); + old_dev = console_get_by_name(DEVNAME); if(old_dev) { /* ok, already registered, just return ok */ USB_KBD_PRINTF("USB KBD is already registered.\n"); @@ -184,7 +184,7 @@ int drv_usb_kbd_init(void) usb_kbd_dev.getc = usb_kbd_getc; usb_kbd_dev.tstc = usb_kbd_testc; usb_kbd_dev.priv = (void *)dev; - error = device_register (&usb_kbd_dev); + error = console_register (&usb_kbd_dev); if(error==0) { /* check if this is the standard input device */ if(strcmp(stdinname,DEVNAME)==0) { @@ -212,8 +212,8 @@ int drv_usb_kbd_init(void) /* deregistering the keyboard */ int usb_kbd_deregister(void) { -#ifdef CONFIG_SYS_DEVICE_DEREGISTER - return device_deregister(DEVNAME); +#ifdef CONFIG_SYS_CONSOLE_DEREGISTER + return console_deregister(DEVNAME); #else return 1; #endif diff --git a/cpu/blackfin/jtag-console.c b/cpu/blackfin/jtag-console.c index d58582f..a12a643 100644 --- a/cpu/blackfin/jtag-console.c +++ b/cpu/blackfin/jtag-console.c @@ -7,7 +7,7 @@ */
#include <common.h> -#include <devices.h> +#include <console.h> #include <asm/blackfin.h>
#ifndef CONFIG_JTAG_CONSOLE_TIMEOUT @@ -105,7 +105,7 @@ static int jtag_getc(void)
int drv_jtag_console_init(void) { - device_t dev; + console_device_t dev; int ret;
memset(&dev, 0x00, sizeof(dev)); @@ -116,7 +116,7 @@ int drv_jtag_console_init(void) dev.tstc = jtag_tstc; dev.getc = jtag_getc;
- ret = device_register(&dev); + ret = console_register(&dev); return (ret == 0 ? 1 : ret); }
diff --git a/cpu/mpc8xx/lcd.c b/cpu/mpc8xx/lcd.c index 4474e24..2c0e555 100644 --- a/cpu/mpc8xx/lcd.c +++ b/cpu/mpc8xx/lcd.c @@ -35,7 +35,7 @@ #include <stdarg.h> #include <lcdvideo.h> #include <linux/types.h> -#include <devices.h> +#include <console.h> #if defined(CONFIG_POST) #include <post.h> #endif diff --git a/cpu/mpc8xx/video.c b/cpu/mpc8xx/video.c index 4a59927..9f91e82 100644 --- a/cpu/mpc8xx/video.c +++ b/cpu/mpc8xx/video.c @@ -36,7 +36,7 @@ #include <timestamp.h> #include <i2c.h> #include <linux/types.h> -#include <devices.h> +#include <console.h>
#ifdef CONFIG_VIDEO
@@ -1287,7 +1287,7 @@ int drv_video_init (void) { int error, devices = 1;
- device_t videodev; + console_device_t videodev;
video_init ((void *)(gd->fb_base)); /* Video initialization */
@@ -1301,7 +1301,7 @@ int drv_video_init (void) videodev.putc = video_putc; /* 'putc' function */ videodev.puts = video_puts; /* 'puts' function */
- error = device_register (&videodev); + error = console_register (&videodev);
return (error == 0) ? devices : error; } diff --git a/cpu/pxa/pxafb.c b/cpu/pxa/pxafb.c index 97efcb6..9f913e9 100644 --- a/cpu/pxa/pxafb.c +++ b/cpu/pxa/pxafb.c @@ -32,7 +32,7 @@ #include <version.h> #include <stdarg.h> #include <linux/types.h> -#include <devices.h> +#include <console.h> #include <lcd.h> #include <asm/arch/pxa-regs.h>
diff --git a/drivers/input/keyboard.c b/drivers/input/keyboard.c index 512b9f2..41dca98 100644 --- a/drivers/input/keyboard.c +++ b/drivers/input/keyboard.c @@ -11,7 +11,7 @@
#include <common.h>
-#include <devices.h> +#include <console.h> #include <keyboard.h>
#undef KBG_DEBUG @@ -268,7 +268,7 @@ extern int overwrite_console (void); int kbd_init (void) { int error; - device_t kbddev ; + console_device_t kbddev ; char *stdinname = getenv ("stdin");
if(kbd_init_hw()==-1) @@ -281,7 +281,7 @@ int kbd_init (void) kbddev.getc = kbd_getc ; kbddev.tstc = kbd_testc ;
- error = device_register (&kbddev); + error = console_register (&kbddev); if(error==0) { /* check if this is the standard input device */ if(strcmp(stdinname,DEVNAME)==0) { diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c index f4b01a9..9b94ddc 100644 --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c @@ -291,7 +291,7 @@ static int ubi_sysfs_init(struct ubi_device *ubi) ubi->dev.devt = ubi->cdev.dev; ubi->dev.class = ubi_class; sprintf(&ubi->dev.bus_id[0], UBI_NAME_STR"%d", ubi->ubi_num); - err = device_register(&ubi->dev); + err = console_register(&ubi->dev); if (err) return err;
diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c index 061da64..2b6b137 100644 --- a/drivers/mtd/ubi/vmt.c +++ b/drivers/mtd/ubi/vmt.c @@ -337,7 +337,7 @@ int ubi_create_volume(struct ubi_device *ubi, struct ubi_mkvol_req *req) vol->dev.class = ubi_class;
sprintf(&vol->dev.bus_id[0], "%s_%d", ubi->ubi_name, vol->vol_id); - err = device_register(&vol->dev); + err = console_register(&vol->dev); if (err) { ubi_err("cannot register device"); goto out_gluebi; @@ -646,7 +646,7 @@ int ubi_add_volume(struct ubi_device *ubi, struct ubi_volume *vol) vol->dev.devt = dev; vol->dev.class = ubi_class; sprintf(&vol->dev.bus_id[0], "%s_%d", ubi->ubi_name, vol->vol_id); - err = device_register(&vol->dev); + err = console_register(&vol->dev); if (err) goto out_gluebi;
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index b2ee5ea..f1644ce 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -23,7 +23,7 @@
#include <common.h> #include <command.h> -#include <devices.h> +#include <console.h> #include <net.h>
DECLARE_GLOBAL_DATA_PTR; @@ -243,7 +243,7 @@ int nc_tstc (void)
int drv_nc_init (void) { - device_t dev; + console_device_t dev; int rc;
memset (&dev, 0, sizeof (dev)); @@ -256,7 +256,7 @@ int drv_nc_init (void) dev.getc = nc_getc; dev.tstc = nc_tstc;
- rc = device_register (&dev); + rc = console_register (&dev);
return (rc == 0) ? 1 : rc; } diff --git a/drivers/serial/arm_dcc.c b/drivers/serial/arm_dcc.c index dca73b9..8439037 100644 --- a/drivers/serial/arm_dcc.c +++ b/drivers/serial/arm_dcc.c @@ -27,7 +27,7 @@ */
#include <common.h> -#include <devices.h> +#include <console.h>
#if defined(CONFIG_CPU_V6) /* @@ -148,7 +148,7 @@ int arm_dcc_tstc(void) }
#ifdef CONFIG_ARM_DCC_MULTI -static device_t arm_dcc_dev; +static console_device_t arm_dcc_dev;
int drv_arm_dcc_init(void) { @@ -165,6 +165,6 @@ int drv_arm_dcc_init(void) arm_dcc_dev.putc = arm_dcc_putc; /* 'putc' function */ arm_dcc_dev.puts = arm_dcc_puts; /* 'puts' function */
- return device_register(&arm_dcc_dev); + return console_register(&arm_dcc_dev); } #endif diff --git a/drivers/serial/usbtty.c b/drivers/serial/usbtty.c index f711d0b..88a5651 100644 --- a/drivers/serial/usbtty.c +++ b/drivers/serial/usbtty.c @@ -24,7 +24,7 @@ #include <common.h> #include <config.h> #include <circbuf.h> -#include <devices.h> +#include <console.h> #include "usbtty.h" #include "usb_cdc_acm.h" #include "usbdescriptors.h" @@ -70,7 +70,7 @@ static circbuf_t usbtty_output; /* * Instance variables */ -static device_t usbttydev; +static console_device_t usbttydev; static struct usb_device_instance device_instance[1]; static struct usb_bus_instance bus_instance[1]; static struct usb_configuration_instance config_instance[NUM_CONFIGS]; @@ -570,7 +570,7 @@ int drv_usbtty_init (void) usbttydev.putc = usbtty_putc; /* 'putc' function */ usbttydev.puts = usbtty_puts; /* 'puts' function */
- rc = device_register (&usbttydev); + rc = console_register (&usbttydev);
return (rc == 0) ? 1 : rc; } diff --git a/drivers/usb/musb/musb_hcd.c b/drivers/usb/musb/musb_hcd.c index 352a0d4..273ff0a 100644 --- a/drivers/usb/musb/musb_hcd.c +++ b/drivers/usb/musb/musb_hcd.c @@ -770,7 +770,7 @@ int submit_int_msg(struct usb_device *dev, unsigned long pipe, */ void usb_event_poll() { - device_t *dev; + console_device_t *dev; struct usb_device *usb_kbd_dev; struct usb_interface_descriptor *iface; struct usb_endpoint_descriptor *ep; @@ -778,7 +778,7 @@ void usb_event_poll() int maxp;
/* Get the pointer to USB Keyboard device pointer */ - dev = device_get_by_name("usbkbd"); + dev = console_get_by_name("usbkbd"); usb_kbd_dev = (struct usb_device *)dev->priv; iface = &usb_kbd_dev->config.if_desc[0]; ep = &iface->ep_desc[0]; diff --git a/drivers/usb/musb/musb_hcd.h b/drivers/usb/musb/musb_hcd.h index bb83311..dadf284 100644 --- a/drivers/usb/musb/musb_hcd.h +++ b/drivers/usb/musb/musb_hcd.h @@ -26,7 +26,7 @@
#include "musb_core.h" #ifdef CONFIG_USB_KEYBOARD -#include <devices.h> +#include <console.h> extern unsigned char new[]; #endif
diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c index 5ee2314..13ebb4e 100644 --- a/drivers/video/cfb_console.c +++ b/drivers/video/cfb_console.c @@ -183,7 +183,7 @@ CONFIG_VIDEO_HW_CURSOR: - Uses the hardware cursor capability of the
#include <version.h> #include <linux/types.h> -#include <devices.h> +#include <console.h> #include <video_font.h>
#if defined(CONFIG_CMD_DATE) @@ -1333,7 +1333,7 @@ static int video_init (void) int drv_video_init (void) { int skip_dev_init; - device_t console_dev; + console_device_t console_dev;
skip_dev_init = 0;
@@ -1354,7 +1354,7 @@ int drv_video_init (void) console_dev.tstc = NULL; /* 'tstc' function */ console_dev.getc = NULL; /* 'getc' function */
- if (device_register (&console_dev) == 0) + if (console_register (&console_dev) == 0) return 1; } #else @@ -1373,7 +1373,7 @@ int drv_video_init (void) console_dev.tstc = VIDEO_TSTC_FCT; /* 'tstc' function */ console_dev.getc = VIDEO_GETC_FCT; /* 'getc' function */
- if (device_register (&console_dev) == 0) + if (console_register (&console_dev) == 0) return 1; } #endif /* CONFIG_VGA_AS_SINGLE_DEVICE */ diff --git a/include/configs/AmigaOneG3SE.h b/include/configs/AmigaOneG3SE.h index fe04f27..bfd8257 100644 --- a/include/configs/AmigaOneG3SE.h +++ b/include/configs/AmigaOneG3SE.h @@ -363,7 +363,7 @@ #define CONFIG_USB_UHCI 1 #define CONFIG_USB_STORAGE 1 #define CONFIG_USB_KEYBOARD 1 -#define CONFIG_SYS_DEVICE_DEREGISTER 1 /* needed by CONFIG_USB_KEYBOARD */ +#define CONFIG_SYS_CONSOLE_DEREGISTER 1 /* needed by CONFIG_USB_KEYBOARD */
/* * Autoboot stuff diff --git a/include/configs/MIP405.h b/include/configs/MIP405.h index a3869c8..79cc774 100644 --- a/include/configs/MIP405.h +++ b/include/configs/MIP405.h @@ -414,7 +414,7 @@ #define CONFIG_USB_STORAGE
/* Enable needed helper functions */ -#define CONFIG_SYS_DEVICE_DEREGISTER /* needs device_deregister */ +#define CONFIG_SYS_CONSOLE_DEREGISTER /* needs console_deregister */ #endif /************************************************************ * Debug support diff --git a/include/configs/MPC8610HPCD.h b/include/configs/MPC8610HPCD.h index 1091043..84d1b66 100644 --- a/include/configs/MPC8610HPCD.h +++ b/include/configs/MPC8610HPCD.h @@ -321,7 +321,7 @@ #define CONFIG_PCI_OHCI 1 #define CONFIG_USB_OHCI_NEW 1 #define CONFIG_USB_KEYBOARD 1 -#define CONFIG_SYS_DEVICE_DEREGISTER +#define CONFIG_SYS_CONSOLE_DEREGISTER #define CONFIG_SYS_USB_EVENT_POLL 1 #define CONFIG_SYS_USB_OHCI_SLOT_NAME "ohci_pci" #define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 15 diff --git a/include/configs/MPC8641HPCN.h b/include/configs/MPC8641HPCN.h index d8042fb..ecaf558 100644 --- a/include/configs/MPC8641HPCN.h +++ b/include/configs/MPC8641HPCN.h @@ -395,7 +395,7 @@ extern unsigned long get_board_sys_clk(unsigned long dummy); #define CONFIG_PCI_OHCI 1 #define CONFIG_USB_OHCI_NEW 1 #define CONFIG_USB_KEYBOARD 1 -#define CONFIG_SYS_DEVICE_DEREGISTER +#define CONFIG_SYS_CONSOLE_DEREGISTER #define CONFIG_SYS_USB_EVENT_POLL 1 #define CONFIG_SYS_USB_OHCI_SLOT_NAME "ohci_pci" #define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 15 diff --git a/include/configs/PIP405.h b/include/configs/PIP405.h index 5c4d69b..2db18d3 100644 --- a/include/configs/PIP405.h +++ b/include/configs/PIP405.h @@ -360,7 +360,7 @@ #define CONFIG_USB_STORAGE
/* Enable needed helper functions */ -#define CONFIG_SYS_DEVICE_DEREGISTER /* needs device_deregister */ +#define CONFIG_SYS_CONSOLE_DEREGISTER /* needs console_deregister */
/************************************************************ * Debug support diff --git a/include/configs/VCMA9.h b/include/configs/VCMA9.h index 547167f..db68b98 100644 --- a/include/configs/VCMA9.h +++ b/include/configs/VCMA9.h @@ -130,7 +130,7 @@ #define CONFIG_DOS_PARTITION 1
/* Enable needed helper functions */ -#define CONFIG_SYS_DEVICE_DEREGISTER /* needs device_deregister */ +#define CONFIG_SYS_CONSOLE_DEREGISTER /* needs console_deregister */
/************************************************************ * RTC diff --git a/include/configs/gr_ep2s60.h b/include/configs/gr_ep2s60.h index 6f58bac..68c96c6 100644 --- a/include/configs/gr_ep2s60.h +++ b/include/configs/gr_ep2s60.h @@ -87,7 +87,7 @@ #define CONFIG_CMD_USB #define CONFIG_USB_STORAGE /* Enable needed helper functions */ -#define CONFIG_SYS_DEVICE_DEREGISTER /* needs device_deregister */ +#define CONFIG_SYS_CONSOLE_DEREGISTER /* needs console_deregister */ #endif
/* diff --git a/include/configs/mp2usb.h b/include/configs/mp2usb.h index 3225ce7..60ee0ef 100644 --- a/include/configs/mp2usb.h +++ b/include/configs/mp2usb.h @@ -216,7 +216,7 @@ #define CONFIG_SYS_MAXARGS 32 /* max number of command args */ #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */
-#define CONFIG_SYS_DEVICE_DEREGISTER /* needs device_deregister */ +#define CONFIG_SYS_CONSOLE_DEREGISTER /* needs console_deregister */
#define CONFIG_SYS_HZ 1000 #define CONFIG_SYS_HZ_CLOCK (AT91C_MASTER_CLOCK/2) /* AT91C_TC0_CMR is implicitly set to */ diff --git a/include/console.h b/include/console.h index 06ec32a..428102a 100644 --- a/include/console.h +++ b/include/console.h @@ -24,15 +24,104 @@ #ifndef _CONSOLE_H_ #define _CONSOLE_H_
-#include <devices.h> +#include <linux/list.h>
/* -** VARIABLES -*/ + * CONSOLE DEVICES + */ + +#define DEV_FLAGS_INPUT 0x00000001 /* Device can be used as input console */ +#define DEV_FLAGS_OUTPUT 0x00000002 /* Device can be used as output console */ +#define DEV_FLAGS_SYSTEM 0x80000000 /* Device is a system device */ +#define DEV_EXT_VIDEO 0x00000001 /* Video extensions supported */ + +/* Device information */ +typedef struct console_device { + int flags; /* Device flags: input/output/system */ + int ext; /* Supported extensions */ + char name[16]; /* Device name */ + +/* GENERAL functions */ + + int (*start) (void); /* To start the device */ + int (*stop) (void); /* To stop the device */ + +/* OUTPUT functions */ + + void (*putc) (const char c); /* To put a char */ + void (*puts) (const char *s); /* To put a string (accelerator) */ + +/* INPUT functions */
-extern device_t *stdio_devices[] ; -extern char *stdio_names[MAX_FILES] ; + int (*tstc) (void); /* To test if a char is ready... */ + int (*getc) (void); /* To get that char */
-int console_realloc(int top); +/* Other functions */ + + void *priv; /* Private extensions */ + struct list_head list; +} console_device_t; + +/* + * VIDEO EXTENSIONS + */ +#define VIDEO_FORMAT_RGB_INDEXED 0x0000 +#define VIDEO_FORMAT_RGB_DIRECTCOLOR 0x0001 +#define VIDEO_FORMAT_YUYV_4_4_4 0x0010 +#define VIDEO_FORMAT_YUYV_4_2_2 0x0011 + +typedef struct { + void *address; /* Address of framebuffer */ + ushort width; /* Horizontal resolution */ + ushort height; /* Vertical resolution */ + uchar format; /* Format */ + uchar colors; /* Colors number or color depth */ + void (*setcolreg) (int, int, int, int); + void (*getcolreg) (int, void *); +} video_ext_t; + +/* + * VARIABLES + */ +extern console_console_device_t *stdio_devices[]; +extern char *stdio_names[MAX_FILES]; + +/* + * PROTOTYPES + */ +int console_register (console_console_device_t * dev); +int console_init (void); +int console_realloc(int top); +#ifdef CONFIG_SYS_CONSOLE_DEREGISTER +int console_deregister(char *devname); +#endif +struct list_head* console_get_list(void); +console_device_t* console_get_by_name(char* name); +console_device_t* console_clone(console_console_device_t *dev); + +#ifdef CONFIG_ARM_DCC_MULTI +int drv_arm_dcc_init(void); +#endif +#ifdef CONFIG_LCD +int drv_lcd_init (void); +#endif +#ifdef CONFIG_VFD +int drv_vfd_init (void); +#endif +#if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE) +int drv_video_init (void); +#endif +#ifdef CONFIG_KEYBOARD +int drv_keyboard_init (void); +#endif +#ifdef CONFIG_USB_TTY +int drv_usbtty_init (void); +#endif +#ifdef CONFIG_NETCONSOLE +int drv_nc_init (void); +#endif +#ifdef CONFIG_JTAG_CONSOLE +int drv_jtag_console_init (void); +#endif
#endif diff --git a/include/devices.h b/include/devices.h deleted file mode 100644 index 3a9881b..0000000 --- a/include/devices.h +++ /dev/null @@ -1,126 +0,0 @@ -/* - * (C) Copyright 2000 - * Paolo Scaffardi, AIRVENT SAM s.p.a - RIMINI(ITALY), arsenio@tin.it - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include <linux/list.h> - -#ifndef _DEVICES_H_ -#define _DEVICES_H_ - -/* - * CONSOLE DEVICES - */ - -#define DEV_FLAGS_INPUT 0x00000001 /* Device can be used as input console */ -#define DEV_FLAGS_OUTPUT 0x00000002 /* Device can be used as output console */ -#define DEV_FLAGS_SYSTEM 0x80000000 /* Device is a system device */ -#define DEV_EXT_VIDEO 0x00000001 /* Video extensions supported */ - -/* Device information */ -typedef struct { - int flags; /* Device flags: input/output/system */ - int ext; /* Supported extensions */ - char name[16]; /* Device name */ - -/* GENERAL functions */ - - int (*start) (void); /* To start the device */ - int (*stop) (void); /* To stop the device */ - -/* OUTPUT functions */ - - void (*putc) (const char c); /* To put a char */ - void (*puts) (const char *s); /* To put a string (accelerator) */ - -/* INPUT functions */ - - int (*tstc) (void); /* To test if a char is ready... */ - int (*getc) (void); /* To get that char */ - -/* Other functions */ - - void *priv; /* Private extensions */ - struct list_head list; -} device_t; - -/* - * VIDEO EXTENSIONS - */ -#define VIDEO_FORMAT_RGB_INDEXED 0x0000 -#define VIDEO_FORMAT_RGB_DIRECTCOLOR 0x0001 -#define VIDEO_FORMAT_YUYV_4_4_4 0x0010 -#define VIDEO_FORMAT_YUYV_4_2_2 0x0011 - -typedef struct { - void *address; /* Address of framebuffer */ - ushort width; /* Horizontal resolution */ - ushort height; /* Vertical resolution */ - uchar format; /* Format */ - uchar colors; /* Colors number or color depth */ - void (*setcolreg) (int, int, int, int); - void (*getcolreg) (int, void *); -} video_ext_t; - -/* - * VARIABLES - */ -extern device_t *stdio_devices[]; -extern char *stdio_names[MAX_FILES]; - -/* - * PROTOTYPES - */ -int device_register (device_t * dev); -int devices_init (void); -#ifdef CONFIG_SYS_DEVICE_DEREGISTER -int device_deregister(char *devname); -#endif -struct list_head* device_get_list(void); -device_t* device_get_by_name(char* name); -device_t* device_clone(device_t *dev); - -#ifdef CONFIG_ARM_DCC_MULTI -int drv_arm_dcc_init(void); -#endif -#ifdef CONFIG_LCD -int drv_lcd_init (void); -#endif -#ifdef CONFIG_VFD -int drv_vfd_init (void); -#endif -#if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE) -int drv_video_init (void); -#endif -#ifdef CONFIG_KEYBOARD -int drv_keyboard_init (void); -#endif -#ifdef CONFIG_USB_TTY -int drv_usbtty_init (void); -#endif -#ifdef CONFIG_NETCONSOLE -int drv_nc_init (void); -#endif -#ifdef CONFIG_JTAG_CONSOLE -int drv_jtag_console_init (void); -#endif - -#endif /* _DEVICES_H_ */ diff --git a/include/iomux.h b/include/iomux.h index 257c1f7..2eb566c 100644 --- a/include/iomux.h +++ b/include/iomux.h @@ -24,7 +24,7 @@ #ifndef _IO_MUX_H #define _IO_MUX_H
-#include <devices.h> +#include <console.h>
/* * Stuff required to support console multiplexing. @@ -34,7 +34,7 @@ * Pointers to devices used for each file type. Defined in console.c * but storage is allocated in iomux.c. */ -extern device_t **console_devices[MAX_FILES]; +extern console_device_t **console_devices[MAX_FILES]; /* * The count of devices assigned to each FILE. Defined in console.c * and populated in iomux.c. @@ -43,6 +43,6 @@ extern int cd_count[MAX_FILES];
int iomux_doenv(const int, const char *); void iomux_printdevs(const int); -device_t *search_device(int, char *); +console_device_t *search_device(int, char *);
#endif /* _IO_MUX_H */ diff --git a/include/serial.h b/include/serial.h index e3d8b36..b756e61 100644 --- a/include/serial.h +++ b/include/serial.h @@ -47,7 +47,7 @@ extern struct serial_device serial_btuart_device; extern struct serial_device serial_stuart_device;
extern void serial_initialize(void); -extern void serial_devices_init(void); +extern void serial_consoles_init(void); extern int serial_assign(char * name); extern void serial_reinit_all(void);
diff --git a/lib_arm/board.c b/lib_arm/board.c index 9fbb4bf..8d17e96 100644 --- a/lib_arm/board.c +++ b/lib_arm/board.c @@ -41,7 +41,7 @@ #include <common.h> #include <command.h> #include <malloc.h> -#include <devices.h> +#include <console.h> #include <timestamp.h> #include <version.h> #include <net.h> @@ -388,7 +388,7 @@ void start_armboot (void) /* IP Address */ gd->bd->bi_ip_addr = getenv_IPaddr ("ipaddr");
- devices_init (); /* get the devices list going. */ + consoles_init (); /* get the devices list going. */
jumptable_init ();
diff --git a/lib_avr32/board.c b/lib_avr32/board.c index 57115df..bef5de4 100644 --- a/lib_avr32/board.c +++ b/lib_avr32/board.c @@ -22,7 +22,7 @@ #include <common.h> #include <command.h> #include <malloc.h> -#include <devices.h> +#include <console.h> #include <timestamp.h> #include <version.h> #include <net.h> @@ -350,7 +350,7 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
bd->bi_ip_addr = getenv_IPaddr ("ipaddr");
- devices_init(); + consoles_init(); jumptable_init(); console_init_r();
diff --git a/lib_blackfin/board.c b/lib_blackfin/board.c index 49465d2..27c06e3 100644 --- a/lib_blackfin/board.c +++ b/lib_blackfin/board.c @@ -11,7 +11,7 @@
#include <common.h> #include <command.h> -#include <devices.h> +#include <console.h> #include <environment.h> #include <malloc.h> #include <net.h> @@ -354,7 +354,7 @@ void board_init_r(gd_t * id, ulong dest_addr) env_relocate();
/* Initialize devices */ - devices_init(); + consoles_init(); jumptable_init();
/* Initialize the console (after the relocation and devices init) */ diff --git a/lib_i386/board.c b/lib_i386/board.c index e18dfa5..50d490f 100644 --- a/lib_i386/board.c +++ b/lib_i386/board.c @@ -31,7 +31,7 @@ #include <common.h> #include <watchdog.h> #include <command.h> -#include <devices.h> +#include <console.h> #include <timestamp.h> #include <version.h> #include <malloc.h> @@ -299,7 +299,7 @@ void start_i386boot (void) show_boot_progress(0x27);
- devices_init (); + consoles_init ();
jumptable_init ();
diff --git a/lib_i386/video.c b/lib_i386/video.c index cd89457..f6145d3 100644 --- a/lib_i386/video.c +++ b/lib_i386/video.c @@ -23,7 +23,7 @@
#include <common.h> #include <pci.h> -#include <devices.h> +#include <console.h> #include <i8042.h> #include <asm/ptrace.h> #include <asm/realmode.h> @@ -168,8 +168,8 @@ int video_init(void) { u16 pos;
- static device_t vga_dev; - static device_t kbd_dev; + static console_device_t vga_dev; + static console_device_t kbd_dev;
vidmem = (char *) 0xb8000; vidport = 0x3d4; @@ -203,7 +203,7 @@ int video_init(void) vga_dev.tstc = NULL; /* 'tstc' function */ vga_dev.getc = NULL; /* 'getc' function */
- if (device_register(&vga_dev) == 0) { + if (console_register(&vga_dev) == 0) { return 1; }
@@ -220,7 +220,7 @@ int video_init(void) kbd_dev.tstc = i8042_tstc; /* 'tstc' function */ kbd_dev.getc = i8042_getc; /* 'getc' function */
- if (device_register(&kbd_dev) == 0) { + if (console_register(&kbd_dev) == 0) { return 1; } return 0; diff --git a/lib_m68k/board.c b/lib_m68k/board.c index db45b00..2f41833 100644 --- a/lib_m68k/board.c +++ b/lib_m68k/board.c @@ -28,7 +28,7 @@ #include <watchdog.h> #include <command.h> #include <malloc.h> -#include <devices.h> +#include <console.h>
#include <asm/immap.h>
@@ -597,7 +597,7 @@ void board_init_r (gd_t *id, ulong dest_addr)
/** leave this here (after malloc(), environment and PCI are working) **/ /* Initialize devices */ - devices_init (); + consoles_init ();
/* Initialize the jump table for applications */ jumptable_init (); diff --git a/lib_mips/board.c b/lib_mips/board.c index 6fc4845..f2eafd3 100644 --- a/lib_mips/board.c +++ b/lib_mips/board.c @@ -24,7 +24,7 @@ #include <common.h> #include <command.h> #include <malloc.h> -#include <devices.h> +#include <console.h> #include <timestamp.h> #include <version.h> #include <net.h> @@ -413,7 +413,7 @@ void board_init_r (gd_t *id, ulong dest_addr)
/** leave this here (after malloc(), environment and PCI are working) **/ /* Initialize devices */ - devices_init (); + consoles_init ();
jumptable_init ();
diff --git a/lib_nios/board.c b/lib_nios/board.c index 63e79ae..a032624 100644 --- a/lib_nios/board.c +++ b/lib_nios/board.c @@ -25,7 +25,7 @@ */
#include <common.h> -#include <devices.h> +#include <console.h> #include <watchdog.h> #include <net.h> #ifdef CONFIG_STATUS_LED @@ -153,7 +153,7 @@ void board_init (void) bd->bi_ip_addr = getenv_IPaddr ("ipaddr");
WATCHDOG_RESET (); - devices_init(); + consoles_init(); jumptable_init(); console_init_r(); /* diff --git a/lib_nios2/board.c b/lib_nios2/board.c index 70fad1b..f21c075 100644 --- a/lib_nios2/board.c +++ b/lib_nios2/board.c @@ -25,7 +25,7 @@ */
#include <common.h> -#include <devices.h> +#include <console.h> #include <watchdog.h> #include <net.h> #ifdef CONFIG_STATUS_LED @@ -159,7 +159,7 @@ void board_init (void) bd->bi_ip_addr = getenv_IPaddr ("ipaddr");
WATCHDOG_RESET (); - devices_init(); + consoles_init(); jumptable_init(); console_init_r();
diff --git a/lib_ppc/board.c b/lib_ppc/board.c index 9e944fa..46eabde 100644 --- a/lib_ppc/board.c +++ b/lib_ppc/board.c @@ -25,7 +25,7 @@ #include <watchdog.h> #include <command.h> #include <malloc.h> -#include <devices.h> +#include <console.h> #ifdef CONFIG_8xx #include <mpc8xx.h> #endif @@ -933,7 +933,7 @@ void board_init_r (gd_t *id, ulong dest_addr)
/** leave this here (after malloc(), environment and PCI are working) **/ /* Initialize devices */ - devices_init (); + consoles_init ();
/* Initialize the jump table for applications */ jumptable_init (); diff --git a/lib_sh/board.c b/lib_sh/board.c index 2fd213b..4c059be 100644 --- a/lib_sh/board.c +++ b/lib_sh/board.c @@ -21,7 +21,7 @@ #include <common.h> #include <command.h> #include <malloc.h> -#include <devices.h> +#include <console.h> #include <timestamp.h> #include <version.h> #include <watchdog.h> @@ -150,7 +150,7 @@ init_fnc_t *init_sequence[] = sh_mem_env_init, INIT_FUNC_NAND_INIT/* Flash memory (NAND) init */ INIT_FUNC_PCI_INIT /* PCI init */ - devices_init, + consoles_init, console_init_r, interrupt_init, #ifdef BOARD_LATE_INIT diff --git a/lib_sparc/board.c b/lib_sparc/board.c index 2f3e673..c2fc8e6 100644 --- a/lib_sparc/board.c +++ b/lib_sparc/board.c @@ -28,7 +28,7 @@ #include <common.h> #include <command.h> #include <malloc.h> -#include <devices.h> +#include <console.h> #include <config.h> #if defined(CONFIG_CMD_IDE) #include <ide.h> @@ -404,7 +404,7 @@ void board_init_f(ulong bootflag) #endif
/* Initialize devices */ - devices_init(); + consoles_init();
/* Initialize the jump table for applications */ jumptable_init();

Hi Jean-Christophe,
2009/5/3 Jean-Christophe PLAGNIOL-VILLARD plagnioj@jcrosoft.com:
diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c index f4b01a9..9b94ddc 100644 --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c @@ -291,7 +291,7 @@ static int ubi_sysfs_init(struct ubi_device *ubi) ubi->dev.devt = ubi->cdev.dev; ubi->dev.class = ubi_class; sprintf(&ubi->dev.bus_id[0], UBI_NAME_STR"%d", ubi->ubi_num);
- err = device_register(&ubi->dev);
- err = console_register(&ubi->dev);
I'm not that familiar with device_*() in U-boot, but it surprised me to see the above change which is in the UBI layer and should not have anything to do with consoles. Also the above code is within a #ifdef UBI_LINUX block and is not used in U-boot.
diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c index 061da64..2b6b137 100644 --- a/drivers/mtd/ubi/vmt.c +++ b/drivers/mtd/ubi/vmt.c @@ -337,7 +337,7 @@ int ubi_create_volume(struct ubi_device *ubi, struct ubi_mkvol_req *req) vol->dev.class = ubi_class;
sprintf(&vol->dev.bus_id[0], "%s_%d", ubi->ubi_name, vol->vol_id);
- err = device_register(&vol->dev);
- err = console_register(&vol->dev);
if (err) { ubi_err("cannot register device"); goto out_gluebi; @@ -646,7 +646,7 @@ int ubi_add_volume(struct ubi_device *ubi, struct ubi_volume *vol) vol->dev.devt = dev; vol->dev.class = ubi_class; sprintf(&vol->dev.bus_id[0], "%s_%d", ubi->ubi_name, vol->vol_id);
- err = device_register(&vol->dev);
- err = console_register(&vol->dev);
Again a bit surprised to find anything about consoles in the UBI code. In contrast to my earlier comment, this code seems to be compiled (i.e. it's not within #ifdef UBI_LINUX). I'm guessing you did a global search/replace for device_register=>console_register?
Regards, Magnus

On 19:54 Sun 03 May , Magnus Lilja wrote:
Hi Jean-Christophe,
diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c index 061da64..2b6b137 100644 --- a/drivers/mtd/ubi/vmt.c +++ b/drivers/mtd/ubi/vmt.c @@ -337,7 +337,7 @@ int ubi_create_volume(struct ubi_device *ubi, struct ubi_mkvol_req *req) vol->dev.class = ubi_class;
sprintf(&vol->dev.bus_id[0], "%s_%d", ubi->ubi_name, vol->vol_id);
- err = device_register(&vol->dev);
- err = console_register(&vol->dev);
if (err) { ubi_err("cannot register device"); goto out_gluebi; @@ -646,7 +646,7 @@ int ubi_add_volume(struct ubi_device *ubi, struct ubi_volume *vol) vol->dev.devt = dev; vol->dev.class = ubi_class; sprintf(&vol->dev.bus_id[0], "%s_%d", ubi->ubi_name, vol->vol_id);
- err = device_register(&vol->dev);
- err = console_register(&vol->dev);
Again a bit surprised to find anything about consoles in the UBI code. In contrast to my earlier comment, this code seems to be compiled (i.e. it's not within #ifdef UBI_LINUX). I'm guessing you did a global search/replace for device_register=>console_register?
yes I've use script to generate the patch for the RFC
For ubi the device_register is replace via macro by 0
this will not been touch by the final patch
and fully check before
btw this is one of the confusing point of the current implementation
Best Regards, J.

Dear Jean-Christophe PLAGNIOL-VILLARD,
In message 20090503180519.GX25959@game.jcrosoft.org you wrote:
I've use script to generate the patch for the RFC
Hmm... you should have looked at the results before posting, it seems.
btw this is one of the confusing point of the current implementation
Well, see my previous message - your suggested patch solves confusion here and creates new confusion there, and I'd have hard times if I was to decide which was better. This needs more caerful preparation.
Best regards,
Wolfgang Denk

Dear Jean-Christophe PLAGNIOL-VILLARD,
In message 1241371349-2140-1-git-send-email-plagnioj@jcrosoft.com you wrote:
actually the console API use the following naming convention
---Extract--- typedef struct device_t;
int device_register (device_t * dev); int devices_init (void); int device_deregister(char *devname); struct list_head* device_get_list(void); device_t* device_get_by_name(char* name); device_t* device_clone(device_t *dev);
which is not console dependent and is confusing instead of using device_XX
we now switch to console_XX and console_device_t
Please be careful. "console" is a name (or prefex) that is already taken, and there are other (globally visible) identifiers, so con- fusion might become a problem - see for example overwrite_console(), console_changed(), console_buffer[], get_console_port(), console_init_f(), env-var console_nr, consoles[], next_cons_choice(), console_assign(), console, console_init(), console_dev, default_serial_console, cur_console, console_chan, ... etc. etc.
Also, we have common/console.c with lots of console_* names.
Actually there is even a direct name conflict - console_init() is already in use (in board/netphone/phone_console.c), and your patch fails to resolve this conflict.
All together: NAK.
Maybe "stdio" would be a better choice than "console" here?
Best regards,
Wolfgang Denk

On 20:41 Sun 03 May , Wolfgang Denk wrote:
Dear Jean-Christophe PLAGNIOL-VILLARD,
In message 1241371349-2140-1-git-send-email-plagnioj@jcrosoft.com you wrote:
actually the console API use the following naming convention
---Extract--- typedef struct device_t;
int device_register (device_t * dev); int devices_init (void); int device_deregister(char *devname); struct list_head* device_get_list(void); device_t* device_get_by_name(char* name); device_t* device_clone(device_t *dev);
which is not console dependent and is confusing instead of using device_XX
we now switch to console_XX and console_device_t
Please be careful. "console" is a name (or prefex) that is already taken, and there are other (globally visible) identifiers, so con- fusion might become a problem - see for example overwrite_console(), console_changed(), console_buffer[], get_console_port(), console_init_f(), env-var console_nr, consoles[], next_cons_choice(), console_assign(), console, console_init(), console_dev, default_serial_console, cur_console, console_chan, ... etc. etc.
Also, we have common/console.c with lots of console_* names.
Actually there is even a direct name conflict - console_init() is already in use (in board/netphone/phone_console.c), and your patch fails to resolve this conflict.
it does, it's call consoles_init()
Maybe "stdio" would be a better choice than "console" here?
why not
I'll wait other comment before write the true patch
Best Regards, J.

Dear Jean-Christophe PLAGNIOL-VILLARD,
In message 20090503184226.GY25959@game.jcrosoft.org you wrote:
we now switch to console_XX and console_device_t
-----------------------^^^^^^^^^^
Actually there is even a direct name conflict - console_init() is already in use (in board/netphone/phone_console.c), and your patch fails to resolve this conflict.
it does, it's call consoles_init()
Then your comment (see above) and the code disagree.
Maybe "stdio" would be a better choice than "console" here?
why not
Hm... actually checking the code tells that stdio is already taken, too - see show_stdio_dev(), stdio_devices[], stdio_names[].
But at least thesere are only few identifiers, so this could be delt with.
Best regards,
Wolfgang Denk

On 22:05 Sun 03 May , Wolfgang Denk wrote:
Dear Jean-Christophe PLAGNIOL-VILLARD,
In message 20090503184226.GY25959@game.jcrosoft.org you wrote:
we now switch to console_XX and console_device_t
-----------------------^^^^^^^^^^
Actually there is even a direct name conflict - console_init() is already in use (in board/netphone/phone_console.c), and your patch fails to resolve this conflict.
it does, it's call consoles_init()
Then your comment (see above) and the code disagree.
Maybe "stdio" would be a better choice than "console" here?
why not
Hm... actually checking the code tells that stdio is already taken, too - see show_stdio_dev(), stdio_devices[], stdio_names[].
btw we could stop to export the table
for show_stdio_dev it's just a copy of the common/console.c ligne 604
so we can merge it
But at least thesere are only few identifiers, so this could be delt with.
so no problem
Best Regards, J.
participants (3)
-
Jean-Christophe PLAGNIOL-VILLARD
-
Magnus Lilja
-
Wolfgang Denk