Skip to content

Poseidon v6.2

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Oct 18:58
· 106 commits to main since this release
3395a03

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 to hid.class only ran when a prefs file existed. It now runs on the first
    start from disk in every case. (555fa3ae)
  • Mouse wheel before hid.class takes over: bootmouse.class now 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.class now 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)