All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: alsa-devel@alsa-project.org, xen-devel@lists.xenproject.org,
	konrad.wilk@oracle.com, tiwai@suse.de
Cc: andr2000@gmail.com,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization
Date: Mon, 19 Mar 2018 09:22:19 +0200	[thread overview]
Message-ID: <1521444144-12451-1-git-send-email-andr2000@gmail.com> (raw)

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:
1. Konrad's r-b tag for version patch
2. MAJOR: changed req/resp/evt packet sizes from 32 to 64 octets
3. Reworked XENSND_OP_HW_PARAM_QUERY so it now sends all 
   parameters at once, allowing to check all the configuration
   space.
4. Minor documentation cleanup (added missed "reserved" fields)

Changes since v1:

1. 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.

2. 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(-)

-- 
2.7.4

             reply	other threads:[~2018-03-19  7:22 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-19  7:22 Oleksandr Andrushchenko [this message]
2018-03-19  7:22 ` [PATCH v3 1/5] sndif: Introduce protocol version Oleksandr Andrushchenko
2018-03-19  7:22 ` [Xen-devel][PATCH " Oleksandr Andrushchenko
2018-03-19  7:22 ` [Xen-devel][PATCH v3 2/5] sndif: Fix missed "reserved" fields in comments Oleksandr Andrushchenko
2018-03-19  7:22 ` [PATCH " Oleksandr Andrushchenko
2018-03-19  7:22 ` [Xen-devel][PATCH v3 3/5] sndif: Make requests and responses 64 octets long Oleksandr Andrushchenko
2018-03-19  7:22 ` [PATCH " Oleksandr Andrushchenko
2018-03-19  7:22 ` [PATCH v3 4/5] sndif: Add explicit back and front synchronization Oleksandr Andrushchenko
2018-03-19  7:22 ` [Xen-devel][PATCH " Oleksandr Andrushchenko
2018-03-19  7:22 ` [PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation Oleksandr Andrushchenko
2018-03-19  7:22 ` [Xen-devel][PATCH " Oleksandr Andrushchenko
2018-03-20 20:22 ` [PATCH v3 0/5] sndif: add explicit back and front synchronization Takashi Iwai
2018-03-20 20:22 ` [Xen-devel][PATCH " Takashi Iwai
2018-03-21  7:15   ` [PATCH " Oleksandr Andrushchenko
2018-03-21  7:15   ` [Xen-devel][PATCH " Oleksandr Andrushchenko
2018-03-21  7:20     ` [PATCH " Takashi Iwai
2018-03-21  7:20     ` [Xen-devel][PATCH " Takashi Iwai
2018-03-21  7:25       ` [PATCH " Oleksandr Andrushchenko
2018-03-21  7:25       ` [Xen-devel][PATCH " Oleksandr Andrushchenko
2018-03-27  5:41         ` Oleksandr Andrushchenko
2018-04-03  5:37           ` Oleksandr Andrushchenko
2018-04-10  5:28             ` [PATCH " Oleksandr Andrushchenko
2018-04-10  5:28             ` [Xen-devel][PATCH " Oleksandr Andrushchenko
2018-04-03  5:37           ` [PATCH " Oleksandr Andrushchenko
2018-03-27  5:41         ` Oleksandr Andrushchenko
2018-04-12 14:31     ` Konrad Rzeszutek Wilk
2018-04-12 14:31     ` [Xen-devel][PATCH " Konrad Rzeszutek Wilk
2018-04-12 14:35       ` [PATCH " Oleksandr Andrushchenko
2018-04-12 14:35       ` [Xen-devel][PATCH " Oleksandr Andrushchenko
2018-04-06  9:13 ` [PATCH " Juergen Gross
2018-04-06  9:18   ` [Xen-devel] " Oleksandr Andrushchenko
2018-04-06  9:18   ` Oleksandr Andrushchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1521444144-12451-1-git-send-email-andr2000@gmail.com \
    --to=andr2000@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=konrad.wilk@oracle.com \
    --cc=oleksandr_andrushchenko@epam.com \
    --cc=tiwai@suse.de \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.