Repository navigation
Release notes - Poseidon for AmigaOS 6.2
Everything in this archive - poseidon.library, all 29 class drivers, Trident, USBEject
and the command-line tools - reports version 6.2, followed by the CPU it was built
for.
Upgrading from 6.1: install the whole archive. Your settings are untouched. Every
binary in this release was rebuilt, so replace all of them rather than picking out
poseidon.library.
One Suspend/Resume button
Trident's Devices page used to have separate Suspend and Resume buttons, one of them
always greyed out. It now has a single button that says Suspend or Resume depending on
the selected device's state, and follows it live, including when the device is put to sleep by
the power-saving timeout. The button is greyed out when suspending cannot work: the host
controller driver does not support it, or the hub the device is plugged into has no driver.
Fewer stuck USB devices
When a USB device stalls, the library now recovers it, even for class drivers that never
did. You may see a line in the error log saying so.
USB storage settings that stay as you set them
The compatibility switches of massstorage.class (Simple SCSI, Fix Capacity, Trim Inquiry and
so on) could change behind your back, and once they had, changing the class defaults no longer
reached that device. This release closes the gaps:
- No Fallback is honoured everywhere. With it ticked, the class no longer switches a
workaround on by itself or saves one. When a device looks as if it needs one, the error log
says which, once per plug-in - for example "Simple SCSI" is probably needed for this device.
Please check this. The built-in workarounds for the few devices the class knows by name
still apply. - Forget Device. The settings window of a storage device has a new Forget Device
button. It drops the settings saved for that one device, so the class defaults apply to it
again. Trident's own data for the device, such as a custom name, is kept. (Trident's Config
page could always remove such an entry; this is the short way.) - A changed NAK timeout reaches drives that are plugged in. It used to wait for the next
replug, and setting it to 0 did not switch it off on a running drive at all. (The UAS queue
depth, the unit number and what is mounted still need a replug.) - USB in ROM: the ROM stack starts before your settings can be read. Workarounds it
picked up during that time could end up saved as if you had chosen them; they no longer do. - Built-in workarounds stay on. The handful of devices the class knows by name (certain
Genesys, Olympus and Prolific bridges, among others) lost their built-in workaround whenever
settings were saved or loaded while they were attached. It now stays.
One startup command
PsdStackLoader <device> <unit> now starts the whole stack, and the installer writes that one
line to S:User-Startup. AddUSBHardware and AddUSBClasses are no longer part of the
startup; an existing three-line startup keeps working.
Bug fixes
- USB Attached SCSI (UAS) drives that reject a command no longer fail to mount with "NAK
timeout" errors. - USB sticks and drives that stop answering no longer hang their volume. The AROS line
had added a "device is busy" retry for Bulk-Only devices: after a NAK timeout it raised the
timeout to one or two minutes, tried again without resetting the device, and kept trying
without limit. That change is reverted. A timeout is again an ordinary error: the device
is reset, the command is tried once more, and then the error is reported. The NAK timeout
you set is never changed for you, and its default for new installations is 30 seconds
instead of 60. - Card readers and other multi-slot devices: the compatibility switches of the first slot
leaked into every other slot, and could be saved for them. - Drives that report a made-up geometry: the automatic switch to Simple SCSI for them
never took effect. It does now, unless No Fallback is ticked. - Trident, Config page: long device entries were cut off at the end, which removed the
serial number, the one part that tells two identical sticks apart. They are now shortened
in the middle. - Serial adapters, printers and Palm devices: a failed write could go unnoticed, because the
wrong half of the connection was checked for errors. It is now reported. - Power saving: many network and storage devices could never be put to sleep; they now
can. A device that refuses to suspend is no longer asked again at every timeout. - USB audio: a playing device could be put to sleep by the power-saving timeout. A running
stream now keeps it awake. - French: some Trident texts showed stray characters; fixed.
- Composite devices (two-interface keyboard/mouse receivers, headsets): after a resume,
only the first interface came back to life; now all of them do. - Running a class driver as a program (typing its name in the Shell) no longer crashes; it
now returns an error. - ROM builds: modules now report their true size, so Kickstart no longer rescans code it
has already passed.
Fixes ported from AROS
Poseidon is still developed in AROS, and fixes made there are brought over. The AROS commit
each one comes from is given in brackets.
- USB audio: a program that opened more AHI channels than the USB device has outputs - a
four-channel module player on a stereo DAC, for instance - made AHI write past the end of its
channel table. The class no longer replaces the channel count the program asked for.
(31794523) - USB network adapters (asixeth, cdceth, davicometh, ethwrap, moschipeth, pegasuseth,
rndis): once a program had opened the device for exclusive use and closed it again, nothing
else could open it - every later attempt failed with "unit busy" until the adapter was
unplugged. Closing it now releases the exclusive claim. Not tested here. (9a984adb) - Trident in French: the "Various Settings" heading on the Options page was shown in
English although a translation existed. (translation repository,1ac62187) - Garbled copyright sign in About windows: Trident, the device popup and the settings
windows of the audio, mass-storage, HID control, boot keyboard, boot mouse, MIDI, Palm and
raw-wrapper classes showed�where the © belongs, and the game-controller class showed
©. The same goes for "Moiré" in the HID usage names. All non-ASCII characters in program
text are now written so that no editor or tool can re-encode them, and the copyright notices
use "(C)", which reads the same in every character set. (717dd468) - Devices missing behind a hub: a hub that reports too short a power-on time was scanned
too early, and a slow-starting device could be missed. External hubs now always get at least
100 ms. (16dc9e95) - USB storage: the capacity query is now retried once when a drive answers it with "unit
attention" after a reset, like the class's other commands. (3312e74c) - Bluetooth dongles: Broadcom dongles that use a vendor-specific interface class are now
recognised; commands no longer block event reception; and event reception continues after a
transfer error. Ported as they are; not tested here. (ec7643e2,81516dcd,d02f90d5) - USB in ROM without saved settings: keyboard and mouse stayed on the boot classes, because
the handover tohid.classonly ran when a prefs file existed. It now runs on the first
start from disk in every case. (555fa3ae) - Mouse wheel before
hid.classtakes over:bootmouse.classnow has wheel support on by
default, and no longer reads a wheel byte the mouse did not send. A saved bootmouse setting
is kept. (555fa3ae) - USB tethering (RNDIS):
rndis.classnow binds the RNDIS interface instead of the whole
device, and recognises the common 2/2/255 form as well as the wireless one. A composite
device keeps its other interfaces for their own classes. (4e1bd6ef) - LAN78xx network adapters: received data is now read through four requests at a time, and
a busy receive path can no longer hold up sending. Ported without the upstream change to the
chip's idle behaviour; not tested here. (14ff79a6)