From: Albert H. <he...@us...> - 2008-03-26 20:15:57
|
Update of /cvsroot/gc-linux/linux/drivers/serial In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv22420/drivers/serial Modified Files: Kconfig usbgecko.c Log Message: Remove old ugecon driver (we use now usbgecko_udbg). Rewrite the following drivers as of_platform drivers using the device tree: - gcn-rsw - starlet-ipc - gcn-aram - rvl-mem2 - gcn-di - exi-driver, exi-hw - gcn-si - gcnfb (gcn-vifb) - gcn-ai Marked as broken gcn-mi and gcngx. Updated defconfigs. Index: usbgecko.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/serial/usbgecko.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- usbgecko.c 4 Mar 2008 06:11:22 -0000 1.2 +++ usbgecko.c 26 Mar 2008 20:15:21 -0000 1.3 @@ -31,23 +31,11 @@ #define DRV_DESCRIPTION "Console and TTY driver for the USB Gecko adapter" #define DRV_AUTHOR "Albert Herranz" -MODULE_AUTHOR(DRV_AUTHOR); -MODULE_DESCRIPTION(DRV_DESCRIPTION); -MODULE_LICENSE("GPL"); - static char ug_driver_version[] = "0.1-isobel"; -#define ug_printk(level, format, arg...) \ +#define drv_printk(level, format, arg...) \ printk(level DRV_MODULE_NAME ": " format , ## arg) -#ifdef UG_DEBUG -# define DBG(fmt, args...) \ - printk(KERN_ERR "%s: " fmt, __FUNCTION__ , ## args) -#else -# define DBG(fmt, args...) -#endif - - /* * * EXI related definitions. @@ -278,7 +266,8 @@ int i; char c; - for (i = 0; i < count; i++) { + i = count; + while(i--) { ug_safe_getc(adapter, &c); *buf++ = c; } @@ -326,12 +315,14 @@ struct sched_param param = { .sched_priority = 1 }; struct tty_struct *tty = tty_; struct ug_adapter *adapter; - int count; + int count, chunk; + const int max_outstanding = 32; char ch; sched_setscheduler(current, SCHED_FIFO, ¶m); set_task_state(current, TASK_RUNNING); + chunk = 0; while(!kthread_should_stop()) { count = 0; adapter = tty->driver_data; @@ -340,9 +331,17 @@ set_task_state(current, TASK_INTERRUPTIBLE); if (count) { tty_insert_flip_char(tty, ch, TTY_NORMAL); - tty_flip_buffer_push(tty); + if (chunk++ > max_outstanding) { + tty_flip_buffer_push(tty); + chunk = 0; + } + } else { + if (chunk) { + tty_flip_buffer_push(tty); + chunk = 0; + } + schedule_timeout(1); } - schedule_timeout(1); set_task_state(current, TASK_RUNNING); } @@ -368,7 +367,7 @@ if (!adapter->refcnt) { adapter->poller = kthread_run(ug_tty_poller, tty, "kugtty"); if (IS_ERR(adapter->poller)) { - ug_printk(KERN_ERR, "error creating poller thread\n"); + drv_printk(KERN_ERR, "error creating poller thread\n"); mutex_unlock(&adapter->mutex); return -ENOMEM; } @@ -502,8 +501,8 @@ console = &ug_consoles[slot]; adapter = console->data; - ug_printk(KERN_INFO, "USB Gecko detected in memcard slot-%c\n", - 'A'+slot); + drv_printk(KERN_INFO, "USB Gecko detected in memcard slot-%c\n", + 'A'+slot); adapter->poller = ERR_PTR(-EINVAL); mutex_init(&adapter->mutex); @@ -533,7 +532,7 @@ adapter = console->data; if (adapter->refcnt) { - ug_printk(KERN_ERR, "adapter removed while in use!\n"); + drv_printk(KERN_ERR, "adapter removed while in use!\n"); } ug_tty_exit(); @@ -545,8 +544,8 @@ mutex_destroy(&adapter->mutex); - ug_printk(KERN_INFO, "USB Gecko removed from memcard slot-%c\n", - 'A'+slot); + drv_printk(KERN_INFO, "USB Gecko removed from memcard slot-%c\n", + 'A'+slot); } static struct exi_device_id ug_eid_table[] = { @@ -579,8 +578,8 @@ static int __init ug_init_module(void) { - ug_printk(KERN_INFO, "%s - version %s\n", DRV_DESCRIPTION, - ug_driver_version); + drv_printk(KERN_INFO, "%s - version %s\n", DRV_DESCRIPTION, + ug_driver_version); return exi_driver_register(&ug_exi_driver); } @@ -593,3 +592,7 @@ module_init(ug_init_module); module_exit(ug_exit_module); +MODULE_AUTHOR(DRV_AUTHOR); +MODULE_DESCRIPTION(DRV_DESCRIPTION); +MODULE_LICENSE("GPL"); + Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/serial/Kconfig,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Kconfig 24 Feb 2008 18:08:15 -0000 1.1 +++ Kconfig 26 Mar 2008 20:15:21 -0000 1.2 @@ -1285,7 +1285,7 @@ others can easily be added. config SERIAL_USBGECKO - bool "USBGecko adapter on the Nintendo GameCube" + bool "USBGecko adapter on the Nintendo GameCube/Wii" depends on GAMECUBE_EXI select SERIAL_CORE help |