On Fri, 1 Jun 2007, Jan Rekorajski wrote: > > I am looking into a solution that would make it automatic without the > > need of involving userland which just does not seem right here -- you do > > want to run your kernel with "init=/bin/bash" or suchlike and have your > > virtual terminal console usable. I will remove the old lk201 bits then. > > Why not do that in the driver? AFAIK there can't be anything else on > those ports. Well, with some soldering skills you can make an adapter that will convert each of them to an ordinary 3-wire serial line. Therefore I think the best approach would be only doing the binding of the keyboard and the mouse port to the input subsystem if the virtual terminal device is opened. This is unfortunately not the way how things are set up right now. Opening the VT does not trigger a query for the associated input devices that could pull the necessary drivers. It merely uses whatever got registered beforehand (or actually at any point) and for the DECstation it means dummy devices (how useful!). But that is not the most important reason. That in fact is the way how it could be implemented in the driver. It means at least hacks to the receive interrupt and another hack to implement an alternative transmit interrupt handler. I refuse to do polled transmission with this chip because of its performance hit, sorry, and with the dz driver, which requires a corresponding change, the hit would be even worse. Finally, the lone reason for introducing the serial subsystem was to abstract serial ports from the TTY layer, so any sort of devices could use them, regardless of whether they resemble a terminal or not. And there is a proper serio driver for this abstract serial port already implemented. Therefore introducing hacks to the serial driver "under the bonnet" is certainly not the way to go. We did have such hacks in 2.4, but that was because there was no generic serial port layer back then and all serial ports were TTYs. ;-) Besides, I think the driver should not enforce any policy, because it does not "know" or enforce the external wiring of the serial ports. These are the part of the platform (and please note that there are two variations available for the DECstation and other two for the DEC 3000 AXP) and it's the platform that should mark each port appropriately. I do admit at the moment the device handled by the driver is not handled as a platform device as it should, but I'd like to avoid short-term hacks that do not add value. The DECstation port needs a generic way of registering platform devices (all the bits on the motherboard that do not pretend to be TURBOchannel options) like some other platforms already do and when this is implemented the serial ports will be handled as necessary as a part of it. Maciej