Andrew, Paul, This is an hvc_console patch which provides driver and ppc64 architecture fixes to enable the hvc_console driver to register itself as a vio device with the vio bus, provide hotplug add/remove for vty adapters, and act as an interrupt driven driver on Power-5 hardware or remain as a polling driver on Power-4 hardware. Paul MacKerras should probably approve this patch since it includes arch/ppc64/ changes. Ben Herrenschmidt wrote the original patch for the Ameslab tree, which provided the int-driven or poll driven console that this patch is extends upon. He had me add his 'signed-off-by' line. Changelog: arch/ppc64/kernel/hvconsole.c ----------------------------------------------------------------------- -Changed hvc_get_chars() and hvc_put_chars() api to take vtermno rather than index number. -Added hvc_find_vtys() function which walks the bus looking for vterm/vty devices to callback to the hvc_console driver. This provides console output functionality prior to early console init (pre mem init and pre device probe). include/asm-ppc64/hvconsole.h ----------------------------------------------------------------------- -Changed hvc_get_chars() and hvc_put_chars() api to take vtermno rather than index number. -Added hvc_find_vtys() function. -Added hvc_instantiate() function which is implemented by a console driver wanting to receive a callback of and early console init. drivers/char/hvc_console.c ----------------------------------------------------------------------- -Switch khvcd from kernel_threads to kthreads which got rid of deprecated daemonize(). -Added module exit clause to be thorough (not terribly necessary with a console driver of course) -Added early discovery of vterm/vty adapters by doing a bus walk on early console init which results in hvc_instantiate() callback and addition of the vtermno into a static array of vtermnos supported as console adapters (meaning the console api's work against these vtermnos prior to full console initialization). -This driver is now registered as a vio driver which means that vty adapters are now managed via probe/remove. This means hvc_console supports hotplug vty adapters. -Driver now requests more device nodes than what was found on the initial bus walk when registered as a tty driver to make room for hotplug vty adapters. These secondary vty adapters provide a tty tunnel between partitions. -Removed static hvc_struct array and replaced with a linux list that has elements (hvc_struct instances) added/removed on probe/remove AFTER early console init. This is important because kmalloc can't be done at early console init. -Driver now either runs in interrupt driven mode or in polling mode on older hardware. The khvcd is smart enough to not 'schedule()' when there are no interrupts. -kobjects are now used for ref counting on the hvc_struct instances. This patch was tested on both Power-4 and Power-5 hardware. Thanks, Ryan S. Arnold IBM Linux Technology Center