tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

isaki-audio2 was merged



# At first, I'm sorry for long absent due to my health problem.
# I'm fine now.

As you know, I merged isaki-audio2 branch a while ago.
This will improve whole the audio system.  Please test it.

Summary for the userland:

  The most userland apps should work as it is.  (Although I got some
  PRs already...)
  Existing userland API are mostly not changed but there is some
  changes.  See also audio(4).

  - The open() behavior on half duplex device is clarified.
  - The AUMODE_PLAY_ALL flag has no meaning whether specified or not.
    It was not incompatible with realtime mixing.
  - AUDIO_GETFD/SETFD ioctl are obsoleted.  Nobody wants to change
    duplex mode on-the-fly and any driver have not supported it.
  - AUDIO_GETCHAN/SETCHAN ioctl are obsoleted.  It was introduced at
    netbsd-8 but it's unusable and insecure.  I think nobody uses.

Summary for the hardware drivers (lower layer drivers):

  All drivers should follow it.  See also audio(9).  I've done as
  much as possible but some drivers may not work yet.
  Please test your driver.

  - The calling sequence of audio_hw_if had been changed silently at
    netbsd-8.  I clarified it.  Here is the summary at least I can
    explain.
    - Drivers who resets the chip on open() or close() may not work.
      Resetting the chip should be done by attach.
    - Drivers who starts play and/or rec on init_{input,output}()
      may not work.  Starting should be done by start_{input,output}
      (if you use start_* method).
    If your driver does not work, please confirm it on netbsd-8
    (or prior to 8.99.39) and netbsd-7 (if possible).  Because some
    of them have not worked for long time.

  - In the past, each drivers used to convert all userland encoding
    to its hardware format.  But now all userland encoding/channels/
    frequency conversions are handled in the upper layer (audio.c).
    The hardware drivers only need to handle at least one hardware
    encoding/precision/channels/frequency.
    I left some conversion code as-is in the most drivers to avoid
    enbug.  But feel free to modify/remove it.
    You does not need to support many encoding/frequencies, so you
    will be able to make it more simple.

Lastly, this work is based on Y.Sugahara's initial work.  Without
his help, I would not have reached here.  Thanks so much.
---
Tetsuya Isaki <isaki%pastel-flower.jp@localhost / isaki%NetBSD.org@localhost>


Home | Main Index | Thread Index | Old Index