where the floppy driver would wedge because a motor-on timeout would
be cancelled by another I/O operation cancelling a motor-off timeout.
From enami tsugutomo <enami@sm.sony.co.jp>.
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
resource allocation.
- Insertion and removal of callouts is constant time, important as
this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
* do not require a `zs' driver for console handling
* run the console on PROM primitives until a device recognises
itself as a console device during normal autoconfiguration.
* allow (keyboard) devices to take over the input channel of
the PROM primitive-based console device.
As a result, consinit() is much simplified and does no longer have
to "detect" devices to setup a working console device. This complexity
has moved to individual drivers which interpret the PROM information
after they have attached to decide whether or not to act as a console.
tctrl now initializes the state of the internal LCD icons. The icons
are unprogrammed at boot time. This incidentally makes the DC-POWER icon
work.
Fixes:
Fix my stupidity in the ENVSYS stuff, and actually follow the API.
* Improve communication between the `hard' and `soft' interrupt handlers
to better distinguish various interrupt sources.
* Eliminate several race conditions where we would set a time out handler
only after starting the command on the hardware.
* Handle most timeouts by resetting the controller; there isn't much chance
of recovery in any other way. Currently, the exception is a timeout
on I/O, in which case we first try to pulse the controller's TC line
in order to abort the pseudo-dma sequence. Apparently, "normal"
conditions can induce such a timeout when there's no disk in the drive.
* Reduce the formatting gap parameter to 0x54.
* On the obio bus, interpret the `status' attribute.
* Minimize console diagnostic output if the errors we get appear to be
caused by the absence of a disk.
Add some undocumented commands to the ts102 registers file, and fix a few
typos.
Modifications to tctrl.c:
Add entrypoints to driver for open/close/ioctl/poll.
Make device work with apmd. (still no support for suspend/sleep)
Make device work with ENVSYS API.
Slightly restructure handling of events.
Add function to make microcontroller requests.
- Set RI_FULLCLEAR so that we clear the *entire* display
- Set RI_CURSOR and cursor position so that old cursor glyph gets wiped
Fixes PR: port-sparc/8121
screen will turn off and when you open the lid screen turns on. If you
do too rapidly, the driver won't be notified but you can press the micro
switch and it will come back. Also "halt -p" now works so you don't
have to do Pause-P to powerdown.