
On 04/06/2018 12:13 PM, Juergen Gross wrote:
On 19/03/18 08:22, Oleksandr Andrushchenko wrote:
From: Oleksandr Andrushchenko oleksandr_andrushchenko@epam.com
Hello, all!
In order to provide explicit synchronization between backend and frontend the following changes are introduced in the protocol:
- bump protocol version to 2
- add new ring buffer for sending asynchronous events from backend to frontend to report number of bytes played by the frontend (XENSND_EVT_CUR_POS)
- introduce trigger events for playback control: start/stop/pause/resume
- add "req-" prefix to event-channel and ring-ref to unify naming of the Xen event channels for requests and events
- add XENSND_OP_HW_PARAM_QUERY request to read/update stream configuration space: request passes desired intervals/formats for the stream parameters and the response returns allowed intervals and formats mask that can be used.
Changes since v2:
- Konrad's r-b tag for version patch
- MAJOR: changed req/resp/evt packet sizes from 32 to 64 octets
- Reworked XENSND_OP_HW_PARAM_QUERY so it now sends all parameters at once, allowing to check all the configuration space.
- Minor documentation cleanup (added missed "reserved" fields)
Changes since v1:
- Changed protocol version definition from string to integer,
so it can easily be used in comparisons. Konrad, I have removed your r-b tag for the reason of this change.
- In order to provide explicit stream parameter negotiation between
backend and frontend the following changes are introduced in the protocol: add XENSND_OP_HW_PARAM_QUERY request to read/update configuration space for the parameter given: request passes desired parameter interval (mask) and the response to this request returns min/max interval (mask) for the parameter to be used.
Parameters supported by this request/response:
- format mask
- sample rate interval
- number of channels interval
- buffer size, interval, frames
- period size, interval, frames
Oleksandr Andrushchenko (5): sndif: Introduce protocol version sndif: Fix missed "reserved" fields in comments sndif: Make requests and responses 64 octets long sndif: Add explicit back and front synchronization sndif: Add explicit back and front parameter negotiation
xen/include/public/io/sndif.h | 322 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 306 insertions(+), 16 deletions(-)
With Konrad's ack you can have my:
Release-acked-by: Juergen Gross jgross@suse.com
Thank you
even if the commit can't be done before the freeze. The header isn't used inside Xen so the risk for the release is zero.
This is true
Juergen
Thank you, Oleksandr