19 Dec, 2018

1 commit


16 May, 2018

5 commits

  • Implement essential initialization of the sound driver:
    - introduce required data structures
    - handle driver registration
    - handle sound card registration
    - register sound driver on backend connection
    - remove sound driver on backend disconnect

    Initialize virtual sound card with streams according to the
    Xen store configuration.

    Implement ALSA driver operations including:
    - manage frontend/backend shared buffers
    - manage Xen bus event channel states

    Implement requests from front to back for ALSA
    PCM operations.
    - report ALSA period elapsed event: handle XENSND_EVT_CUR_POS
    notifications from the backend when stream position advances
    during playback/capture. The event carries a value of how
    many octets were played/captured at the time of the event.
    - implement explicit stream parameter negotiation between
    backend and frontend: handle XENSND_OP_HW_PARAM_QUERY request
    to read/update configuration space for the parameter given:
    request passes desired parameter interval and the response to
    this request returns min/max interval for the parameter to be used.

    Signed-off-by: Oleksandr Andrushchenko
    Signed-off-by: Takashi Iwai

    Oleksandr Andrushchenko
     
  • Implement shared buffer handling according to the
    para-virtualized sound device protocol at xen/interface/io/sndif.h:
    - manage buffer memory
    - handle granted references
    - handle page directories

    [ Fixed missing linux/kernel.h inclusion -- tiwai ]

    Signed-off-by: Oleksandr Andrushchenko
    Signed-off-by: Takashi Iwai

    Oleksandr Andrushchenko
     
  • Handle Xen event channels:
    - create for all configured streams and publish
    corresponding ring references and event channels in Xen store,
    so backend can connect
    - implement event channels interrupt handlers
    - create and destroy event channels with respect to Xen bus state

    Signed-off-by: Oleksandr Andrushchenko
    Signed-off-by: Takashi Iwai

    Oleksandr Andrushchenko
     
  • Read configuration values from Xen store according
    to xen/interface/io/sndif.h protocol:
    - introduce configuration structures for different
    components, e.g. sound card, device, stream
    - read PCM HW parameters, e.g rate, format etc.
    - detect stream type (capture/playback)
    - read device and card parameters

    Signed-off-by: Oleksandr Andrushchenko
    Signed-off-by: Takashi Iwai

    Oleksandr Andrushchenko
     
  • Introduce skeleton of the para-virtualized Xen sound
    frontend driver.

    Initial handling for Xen bus states: implement
    Xen bus state machine for the frontend driver according to
    the state diagram and recovery flow from sound para-virtualized
    protocol: xen/interface/io/sndif.h.

    Signed-off-by: Oleksandr Andrushchenko
    Reviewed-by: Juergen Gross
    Signed-off-by: Takashi Iwai

    Oleksandr Andrushchenko