All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization
@ 2018-03-19  7:22 Oleksandr Andrushchenko
  2018-03-19  7:22 ` [PATCH v3 1/5] sndif: Introduce protocol version Oleksandr Andrushchenko
                   ` (12 more replies)
  0 siblings, 13 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-19  7:22 UTC (permalink / raw)
  To: alsa-devel, xen-devel, konrad.wilk, tiwai
  Cc: andr2000, Oleksandr Andrushchenko

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

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [Xen-devel][PATCH v3 1/5] sndif: Introduce protocol version
  2018-03-19  7:22 [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization Oleksandr Andrushchenko
  2018-03-19  7:22 ` [PATCH v3 1/5] sndif: Introduce protocol version Oleksandr Andrushchenko
@ 2018-03-19  7:22 ` Oleksandr Andrushchenko
  2018-03-19  7:22 ` [Xen-devel][PATCH v3 2/5] sndif: Fix missed "reserved" fields in comments Oleksandr Andrushchenko
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-19  7:22 UTC (permalink / raw)
  To: alsa-devel, xen-devel, konrad.wilk, tiwai
  Cc: andr2000, Oleksandr Andrushchenko

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Protocol version was referenced in the protocol description,
but missed its definition. Fix this by adding a constant
for current protocol version.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
 xen/include/public/io/sndif.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/xen/include/public/io/sndif.h b/xen/include/public/io/sndif.h
index c5c1978406b3..667e610fda2b 100644
--- a/xen/include/public/io/sndif.h
+++ b/xen/include/public/io/sndif.h
@@ -38,6 +38,13 @@
 
 /*
  ******************************************************************************
+ *                           Protocol version
+ ******************************************************************************
+ */
+#define XENSND_PROTOCOL_VERSION         1
+
+/*
+ ******************************************************************************
  *                  Feature and Parameter Negotiation
  ******************************************************************************
  *
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [PATCH v3 1/5] sndif: Introduce protocol version
  2018-03-19  7:22 [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization Oleksandr Andrushchenko
@ 2018-03-19  7:22 ` Oleksandr Andrushchenko
  2018-03-19  7:22 ` [Xen-devel][PATCH " Oleksandr Andrushchenko
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-19  7:22 UTC (permalink / raw)
  To: alsa-devel, xen-devel, konrad.wilk, tiwai
  Cc: andr2000, Oleksandr Andrushchenko

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Protocol version was referenced in the protocol description,
but missed its definition. Fix this by adding a constant
for current protocol version.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
 xen/include/public/io/sndif.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/xen/include/public/io/sndif.h b/xen/include/public/io/sndif.h
index c5c1978406b3..667e610fda2b 100644
--- a/xen/include/public/io/sndif.h
+++ b/xen/include/public/io/sndif.h
@@ -38,6 +38,13 @@
 
 /*
  ******************************************************************************
+ *                           Protocol version
+ ******************************************************************************
+ */
+#define XENSND_PROTOCOL_VERSION         1
+
+/*
+ ******************************************************************************
  *                  Feature and Parameter Negotiation
  ******************************************************************************
  *
-- 
2.7.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [Xen-devel][PATCH v3 2/5] sndif: Fix missed "reserved" fields in comments
  2018-03-19  7:22 [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization Oleksandr Andrushchenko
  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 ` Oleksandr Andrushchenko
  2018-03-19  7:22 ` [PATCH " Oleksandr Andrushchenko
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-19  7:22 UTC (permalink / raw)
  To: alsa-devel, xen-devel, konrad.wilk, tiwai
  Cc: andr2000, Oleksandr Andrushchenko

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Some of the request descriptions have "reserved" fields
missed: fix this by adding corresponidng entries.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
 xen/include/public/io/sndif.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/xen/include/public/io/sndif.h b/xen/include/public/io/sndif.h
index 667e610fda2b..916be1d3a13f 100644
--- a/xen/include/public/io/sndif.h
+++ b/xen/include/public/io/sndif.h
@@ -680,6 +680,8 @@ struct xensnd_rw_req {
  * +----------------+----------------+----------------+----------------+
  * |                              length                               | 16
  * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 20
+ * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
  * |                             reserved                              | 32
@@ -720,6 +722,8 @@ struct xensnd_rw_req {
  * +----------------+----------------+----------------+----------------+
  * |                              length                               | 16
  * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 20
+ * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
  * |                             reserved                              | 32
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [PATCH v3 2/5] sndif: Fix missed "reserved" fields in comments
  2018-03-19  7:22 [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization Oleksandr Andrushchenko
                   ` (2 preceding siblings ...)
  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 ` Oleksandr Andrushchenko
  2018-03-19  7:22 ` [Xen-devel][PATCH v3 3/5] sndif: Make requests and responses 64 octets long Oleksandr Andrushchenko
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-19  7:22 UTC (permalink / raw)
  To: alsa-devel, xen-devel, konrad.wilk, tiwai
  Cc: andr2000, Oleksandr Andrushchenko

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Some of the request descriptions have "reserved" fields
missed: fix this by adding corresponidng entries.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
 xen/include/public/io/sndif.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/xen/include/public/io/sndif.h b/xen/include/public/io/sndif.h
index 667e610fda2b..916be1d3a13f 100644
--- a/xen/include/public/io/sndif.h
+++ b/xen/include/public/io/sndif.h
@@ -680,6 +680,8 @@ struct xensnd_rw_req {
  * +----------------+----------------+----------------+----------------+
  * |                              length                               | 16
  * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 20
+ * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
  * |                             reserved                              | 32
@@ -720,6 +722,8 @@ struct xensnd_rw_req {
  * +----------------+----------------+----------------+----------------+
  * |                              length                               | 16
  * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 20
+ * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
  * |                             reserved                              | 32
-- 
2.7.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [Xen-devel][PATCH v3 3/5] sndif: Make requests and responses 64 octets long
  2018-03-19  7:22 [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization Oleksandr Andrushchenko
                   ` (3 preceding siblings ...)
  2018-03-19  7:22 ` [PATCH " Oleksandr Andrushchenko
@ 2018-03-19  7:22 ` Oleksandr Andrushchenko
  2018-03-19  7:22 ` [PATCH " Oleksandr Andrushchenko
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-19  7:22 UTC (permalink / raw)
  To: alsa-devel, xen-devel, konrad.wilk, tiwai
  Cc: andr2000, Oleksandr Andrushchenko

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Extend the size of the requests and responses to 64 octets.
Bump protocol version to 2.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
 xen/include/public/io/sndif.h | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/xen/include/public/io/sndif.h b/xen/include/public/io/sndif.h
index 916be1d3a13f..ec47ff990f2c 100644
--- a/xen/include/public/io/sndif.h
+++ b/xen/include/public/io/sndif.h
@@ -41,7 +41,7 @@
  *                           Protocol version
  ******************************************************************************
  */
-#define XENSND_PROTOCOL_VERSION         1
+#define XENSND_PROTOCOL_VERSION         2
 
 /*
  ******************************************************************************
@@ -533,7 +533,7 @@
  *
  *---------------------------------- Requests ---------------------------------
  *
- * All request packets have the same length (32 octets)
+ * All request packets have the same length (64 octets)
  * All request packets have common header:
  *         0                1                 2               3        octet
  * +----------------+----------------+----------------+----------------+
@@ -570,7 +570,7 @@
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 32
+ * |                             reserved                              | 64
  * +----------------+----------------+----------------+----------------+
  *
  * pcm_rate - uint32_t, stream data rate, Hz
@@ -639,7 +639,7 @@ struct xensnd_page_directory {
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 32
+ * |                             reserved                              | 64
  * +----------------+----------------+----------------+----------------+
  *
  * Request read/write - used for read (for capture) or write (for playback):
@@ -657,7 +657,7 @@ struct xensnd_page_directory {
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 32
+ * |                             reserved                              | 64
  * +----------------+----------------+----------------+----------------+
  *
  * operation - XENSND_OP_READ for read or XENSND_OP_WRITE for write
@@ -684,7 +684,7 @@ struct xensnd_rw_req {
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 32
+ * |                             reserved                              | 64
  * +----------------+----------------+----------------+----------------+
  *
  * operation - XENSND_OP_SET_VOLUME for volume set
@@ -726,7 +726,7 @@ struct xensnd_rw_req {
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 32
+ * |                             reserved                              | 64
  * +----------------+----------------+----------------+----------------+
  *
  * operation - XENSND_OP_MUTE for mute or XENSND_OP_UNMUTE for unmute
@@ -759,7 +759,7 @@ struct xensnd_rw_req {
 /*
  *---------------------------------- Responses --------------------------------
  *
- * All response packets have the same length (32 octets)
+ * All response packets have the same length (64 octets)
  *
  * Response for all requests:
  *         0                1                 2               3        octet
@@ -772,7 +772,7 @@ struct xensnd_rw_req {
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 32
+ * |                             reserved                              | 64
  * +----------------+----------------+----------------+----------------+
  *
  * id - uint16_t, copied from the request
@@ -787,7 +787,7 @@ struct xensnd_req {
     union {
         struct xensnd_open_req open;
         struct xensnd_rw_req rw;
-        uint8_t reserved[24];
+        uint8_t reserved[56];
     } op;
 };
 
@@ -796,7 +796,7 @@ struct xensnd_resp {
     uint8_t operation;
     uint8_t reserved;
     int32_t status;
-    uint8_t reserved1[24];
+    uint8_t reserved1[56];
 };
 
 DEFINE_RING_TYPES(xen_sndif, struct xensnd_req, struct xensnd_resp);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [PATCH v3 3/5] sndif: Make requests and responses 64 octets long
  2018-03-19  7:22 [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization Oleksandr Andrushchenko
                   ` (4 preceding siblings ...)
  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 ` Oleksandr Andrushchenko
  2018-03-19  7:22 ` [PATCH v3 4/5] sndif: Add explicit back and front synchronization Oleksandr Andrushchenko
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-19  7:22 UTC (permalink / raw)
  To: alsa-devel, xen-devel, konrad.wilk, tiwai
  Cc: andr2000, Oleksandr Andrushchenko

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Extend the size of the requests and responses to 64 octets.
Bump protocol version to 2.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
 xen/include/public/io/sndif.h | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/xen/include/public/io/sndif.h b/xen/include/public/io/sndif.h
index 916be1d3a13f..ec47ff990f2c 100644
--- a/xen/include/public/io/sndif.h
+++ b/xen/include/public/io/sndif.h
@@ -41,7 +41,7 @@
  *                           Protocol version
  ******************************************************************************
  */
-#define XENSND_PROTOCOL_VERSION         1
+#define XENSND_PROTOCOL_VERSION         2
 
 /*
  ******************************************************************************
@@ -533,7 +533,7 @@
  *
  *---------------------------------- Requests ---------------------------------
  *
- * All request packets have the same length (32 octets)
+ * All request packets have the same length (64 octets)
  * All request packets have common header:
  *         0                1                 2               3        octet
  * +----------------+----------------+----------------+----------------+
@@ -570,7 +570,7 @@
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 32
+ * |                             reserved                              | 64
  * +----------------+----------------+----------------+----------------+
  *
  * pcm_rate - uint32_t, stream data rate, Hz
@@ -639,7 +639,7 @@ struct xensnd_page_directory {
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 32
+ * |                             reserved                              | 64
  * +----------------+----------------+----------------+----------------+
  *
  * Request read/write - used for read (for capture) or write (for playback):
@@ -657,7 +657,7 @@ struct xensnd_page_directory {
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 32
+ * |                             reserved                              | 64
  * +----------------+----------------+----------------+----------------+
  *
  * operation - XENSND_OP_READ for read or XENSND_OP_WRITE for write
@@ -684,7 +684,7 @@ struct xensnd_rw_req {
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 32
+ * |                             reserved                              | 64
  * +----------------+----------------+----------------+----------------+
  *
  * operation - XENSND_OP_SET_VOLUME for volume set
@@ -726,7 +726,7 @@ struct xensnd_rw_req {
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 32
+ * |                             reserved                              | 64
  * +----------------+----------------+----------------+----------------+
  *
  * operation - XENSND_OP_MUTE for mute or XENSND_OP_UNMUTE for unmute
@@ -759,7 +759,7 @@ struct xensnd_rw_req {
 /*
  *---------------------------------- Responses --------------------------------
  *
- * All response packets have the same length (32 octets)
+ * All response packets have the same length (64 octets)
  *
  * Response for all requests:
  *         0                1                 2               3        octet
@@ -772,7 +772,7 @@ struct xensnd_rw_req {
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 32
+ * |                             reserved                              | 64
  * +----------------+----------------+----------------+----------------+
  *
  * id - uint16_t, copied from the request
@@ -787,7 +787,7 @@ struct xensnd_req {
     union {
         struct xensnd_open_req open;
         struct xensnd_rw_req rw;
-        uint8_t reserved[24];
+        uint8_t reserved[56];
     } op;
 };
 
@@ -796,7 +796,7 @@ struct xensnd_resp {
     uint8_t operation;
     uint8_t reserved;
     int32_t status;
-    uint8_t reserved1[24];
+    uint8_t reserved1[56];
 };
 
 DEFINE_RING_TYPES(xen_sndif, struct xensnd_req, struct xensnd_resp);
-- 
2.7.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [Xen-devel][PATCH v3 4/5] sndif: Add explicit back and front synchronization
  2018-03-19  7:22 [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization Oleksandr Andrushchenko
                   ` (6 preceding siblings ...)
  2018-03-19  7:22 ` [PATCH v3 4/5] sndif: Add explicit back and front synchronization Oleksandr Andrushchenko
@ 2018-03-19  7:22 ` Oleksandr Andrushchenko
  2018-03-19  7:22 ` [PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation Oleksandr Andrushchenko
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-19  7:22 UTC (permalink / raw)
  To: alsa-devel, xen-devel, konrad.wilk, tiwai
  Cc: andr2000, Clemens Ladisch, Takashi Sakamoto, Oleksandr Grytsov,
	Oleksandr Andrushchenko

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

In order to provide explicit synchronization between backend and
frontend the following changes are introduced in the protocol:
 - 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

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Oleksandr Grytsov <oleksandr_grytsov@epam.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Cc: Clemens Ladisch <clemens@ladisch.de>
---
 xen/include/public/io/sndif.h | 162 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 161 insertions(+), 1 deletion(-)

diff --git a/xen/include/public/io/sndif.h b/xen/include/public/io/sndif.h
index ec47ff990f2c..be8d7c83fa72 100644
--- a/xen/include/public/io/sndif.h
+++ b/xen/include/public/io/sndif.h
@@ -113,6 +113,8 @@
  *
  * /local/domain/1/device/vsnd/0/0/0/ring-ref = "386"
  * /local/domain/1/device/vsnd/0/0/0/event-channel = "15"
+ * /local/domain/1/device/vsnd/0/0/0/evt-ring-ref = "1386"
+ * /local/domain/1/device/vsnd/0/0/0/evt-event-channel = "215"
  *
  *------------------------------ Stream 1, capture ----------------------------
  *
@@ -122,6 +124,8 @@
  *
  * /local/domain/1/device/vsnd/0/0/1/ring-ref = "384"
  * /local/domain/1/device/vsnd/0/0/1/event-channel = "13"
+ * /local/domain/1/device/vsnd/0/0/1/evt-ring-ref = "1384"
+ * /local/domain/1/device/vsnd/0/0/1/evt-event-channel = "213"
  *
  *------------------------------- PCM device 1 --------------------------------
  *
@@ -135,6 +139,8 @@
  *
  * /local/domain/1/device/vsnd/0/1/0/ring-ref = "387"
  * /local/domain/1/device/vsnd/0/1/0/event-channel = "151"
+ * /local/domain/1/device/vsnd/0/1/0/evt-ring-ref = "1387"
+ * /local/domain/1/device/vsnd/0/1/0/evt-event-channel = "351"
  *
  *------------------------------- PCM device 2 --------------------------------
  *
@@ -147,6 +153,8 @@
  *
  * /local/domain/1/device/vsnd/0/2/0/ring-ref = "389"
  * /local/domain/1/device/vsnd/0/2/0/event-channel = "152"
+ * /local/domain/1/device/vsnd/0/2/0/evt-ring-ref = "1389"
+ * /local/domain/1/device/vsnd/0/2/0/evt-event-channel = "452"
  *
  ******************************************************************************
  *                            Backend XenBus Nodes
@@ -292,6 +300,23 @@
  *      The Xen grant reference granting permission for the backend to map
  *      a sole page in a single page sized ring buffer.
  *
+ *--------------------- Stream Event Transport Parameters ---------------------
+ *
+ * This communication path is used to deliver asynchronous events from backend
+ * to frontend, set up per stream.
+ *
+ * evt-event-channel
+ *      Values:         <uint32_t>
+ *
+ *      The identifier of the Xen event channel used to signal activity
+ *      in the ring buffer.
+ *
+ * evt-ring-ref
+ *      Values:         <uint32_t>
+ *
+ *      The Xen grant reference granting permission for the backend to map
+ *      a sole page in a single page sized ring buffer.
+ *
  ******************************************************************************
  *                               STATE DIAGRAMS
  ******************************************************************************
@@ -439,6 +464,19 @@
 #define XENSND_OP_GET_VOLUME            5
 #define XENSND_OP_MUTE                  6
 #define XENSND_OP_UNMUTE                7
+#define XENSND_OP_TRIGGER               8
+
+#define XENSND_OP_TRIGGER_START         0
+#define XENSND_OP_TRIGGER_PAUSE         1
+#define XENSND_OP_TRIGGER_STOP          2
+#define XENSND_OP_TRIGGER_RESUME        3
+
+/*
+ ******************************************************************************
+ *                                 EVENT CODES
+ ******************************************************************************
+ */
+#define XENSND_EVT_CUR_POS              0
 
 /*
  ******************************************************************************
@@ -455,6 +493,8 @@
 #define XENSND_FIELD_VCARD_LONG_NAME    "long-name"
 #define XENSND_FIELD_RING_REF           "ring-ref"
 #define XENSND_FIELD_EVT_CHNL           "event-channel"
+#define XENSND_FIELD_EVT_RING_REF       "evt-ring-ref"
+#define XENSND_FIELD_EVT_EVT_CHNL       "evt-event-channel"
 #define XENSND_FIELD_DEVICE_NAME        "name"
 #define XENSND_FIELD_TYPE               "type"
 #define XENSND_FIELD_STREAM_UNIQUE_ID   "unique-id"
@@ -566,7 +606,9 @@
  * +----------------+----------------+----------------+----------------+
  * |                           gref_directory                          | 24
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 28
+ * |                             period_sz                             | 28
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 32
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
@@ -578,6 +620,14 @@
  * pcm_channels - uint8_t, number of channels of this stream,
  *   [channels-min; channels-max]
  * buffer_sz - uint32_t, buffer size to be allocated, octets
+ * period_sz - uint32_t, event period size, octets
+ *   This is the requested value of the period at which frontend would
+ *   like to receive XENSND_EVT_CUR_POS notifications from the backend when
+ *   stream position advances during playback/capture.
+ *   It shows how many octets are expected to be played/captured before
+ *   sending such an event.
+ *   If set to 0 no XENSND_EVT_CUR_POS events are sent by the backend.
+ *
  * gref_directory - grant_ref_t, a reference to the first shared page
  *   describing shared buffer references. At least one page exists. If shared
  *   buffer size  (buffer_sz) exceeds what can be addressed by this single page,
@@ -592,6 +642,7 @@ struct xensnd_open_req {
     uint16_t reserved;
     uint32_t buffer_sz;
     grant_ref_t gref_directory;
+    uint32_t period_sz;
 };
 
 /*
@@ -754,8 +805,32 @@ struct xensnd_rw_req {
  *
  * The 'struct xensnd_rw_req' is also used for XENSND_OP_SET_VOLUME,
  * XENSND_OP_GET_VOLUME, XENSND_OP_MUTE, XENSND_OP_UNMUTE.
+ *
+ * Request stream running state change - trigger PCM stream running state
+ * to start, stop, pause or resume:
+ *
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |               id                |   _OP_TRIGGER  |    reserved    | 4
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 8
+ * +----------------+----------------+----------------+----------------+
+ * |      type      |                     reserved                     | 12
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 16
+ * +----------------+----------------+----------------+----------------+
+ * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 64
+ * +----------------+----------------+----------------+----------------+
+ *
+ * type - uint8_t, XENSND_OP_TRIGGER_XXX value
  */
 
+struct xensnd_trigger_req {
+    uint8_t type;
+};
+
 /*
  *---------------------------------- Responses --------------------------------
  *
@@ -778,8 +853,51 @@ struct xensnd_rw_req {
  * id - uint16_t, copied from the request
  * operation - uint8_t, XENSND_OP_* - copied from request
  * status - int32_t, response status, zero on success and -XEN_EXX on failure
+ *
+ *----------------------------------- Events ----------------------------------
+ *
+ * Events are sent via shared page allocated by the front and propagated by
+ *   evt-event-channel/evt-ring-ref XenStore entries
+ * All event packets have the same length (64 octets)
+ * All event packets have common header:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |               id                |      type      |   reserved     | 4
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 8
+ * +----------------+----------------+----------------+----------------+
+ *
+ * id - uint16_t, event id, may be used by front
+ * type - uint8_t, type of the event
+ *
+ *
+ * Current stream position - event from back to front when stream's
+ *   playback/capture position has advanced:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |               id                |   _EVT_CUR_POS |   reserved     | 4
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 8
+ * +----------------+----------------+----------------+----------------+
+ * |                         position low 32-bit                       | 12
+ * +----------------+----------------+----------------+----------------+
+ * |                         position high 32-bit                      | 16
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 20
+ * +----------------+----------------+----------------+----------------+
+ * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 64
+ * +----------------+----------------+----------------+----------------+
+ *
+ * position - current value of stream's playback/capture position, octets
+ *
  */
 
+struct xensnd_cur_pos_evt {
+    uint64_t position;
+};
+
 struct xensnd_req {
     uint16_t id;
     uint8_t operation;
@@ -787,6 +905,7 @@ struct xensnd_req {
     union {
         struct xensnd_open_req open;
         struct xensnd_rw_req rw;
+        struct xensnd_trigger_req trigger;
         uint8_t reserved[56];
     } op;
 };
@@ -799,8 +918,49 @@ struct xensnd_resp {
     uint8_t reserved1[56];
 };
 
+struct xensnd_evt {
+    uint16_t id;
+    uint8_t type;
+    uint8_t reserved[5];
+    union {
+        struct xensnd_cur_pos_evt cur_pos;
+        uint8_t reserved[56];
+    } op;
+};
+
 DEFINE_RING_TYPES(xen_sndif, struct xensnd_req, struct xensnd_resp);
 
+/*
+ ******************************************************************************
+ *                        Back to front events delivery
+ ******************************************************************************
+ * In order to deliver asynchronous events from back to front a shared page is
+ * allocated by front and its granted reference propagated to back via
+ * XenStore entries (evt-ring-ref/evt-event-channel).
+ * This page has a common header used by both front and back to synchronize
+ * access and control event's ring buffer, while back being a producer of the
+ * events and front being a consumer. The rest of the page after the header
+ * is used for event packets.
+ *
+ * Upon reception of an event(s) front may confirm its reception
+ * for either each event, group of events or none.
+ */
+
+struct xensnd_event_page {
+    uint32_t in_cons;
+    uint32_t in_prod;
+    uint8_t reserved[56];
+};
+
+#define XENSND_EVENT_PAGE_SIZE 4096
+#define XENSND_IN_RING_OFFS (sizeof(struct xensnd_event_page))
+#define XENSND_IN_RING_SIZE (XENSND_EVENT_PAGE_SIZE - XENSND_IN_RING_OFFS)
+#define XENSND_IN_RING_LEN (XENSND_IN_RING_SIZE / sizeof(struct xensnd_evt))
+#define XENSND_IN_RING(page) \
+    ((struct xensnd_evt *)((char *)(page) + XENSND_IN_RING_OFFS))
+#define XENSND_IN_RING_REF(page, idx) \
+    (XENSND_IN_RING((page))[(idx) % XENSND_IN_RING_LEN])
+
 #endif /* __XEN_PUBLIC_IO_SNDIF_H__ */
 
 /*
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [PATCH v3 4/5] sndif: Add explicit back and front synchronization
  2018-03-19  7:22 [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization Oleksandr Andrushchenko
                   ` (5 preceding siblings ...)
  2018-03-19  7:22 ` [PATCH " Oleksandr Andrushchenko
@ 2018-03-19  7:22 ` Oleksandr Andrushchenko
  2018-03-19  7:22 ` [Xen-devel][PATCH " Oleksandr Andrushchenko
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-19  7:22 UTC (permalink / raw)
  To: alsa-devel, xen-devel, konrad.wilk, tiwai
  Cc: andr2000, Clemens Ladisch, Takashi Sakamoto, Oleksandr Grytsov,
	Oleksandr Andrushchenko

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

In order to provide explicit synchronization between backend and
frontend the following changes are introduced in the protocol:
 - 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

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Oleksandr Grytsov <oleksandr_grytsov@epam.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Cc: Clemens Ladisch <clemens@ladisch.de>
---
 xen/include/public/io/sndif.h | 162 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 161 insertions(+), 1 deletion(-)

diff --git a/xen/include/public/io/sndif.h b/xen/include/public/io/sndif.h
index ec47ff990f2c..be8d7c83fa72 100644
--- a/xen/include/public/io/sndif.h
+++ b/xen/include/public/io/sndif.h
@@ -113,6 +113,8 @@
  *
  * /local/domain/1/device/vsnd/0/0/0/ring-ref = "386"
  * /local/domain/1/device/vsnd/0/0/0/event-channel = "15"
+ * /local/domain/1/device/vsnd/0/0/0/evt-ring-ref = "1386"
+ * /local/domain/1/device/vsnd/0/0/0/evt-event-channel = "215"
  *
  *------------------------------ Stream 1, capture ----------------------------
  *
@@ -122,6 +124,8 @@
  *
  * /local/domain/1/device/vsnd/0/0/1/ring-ref = "384"
  * /local/domain/1/device/vsnd/0/0/1/event-channel = "13"
+ * /local/domain/1/device/vsnd/0/0/1/evt-ring-ref = "1384"
+ * /local/domain/1/device/vsnd/0/0/1/evt-event-channel = "213"
  *
  *------------------------------- PCM device 1 --------------------------------
  *
@@ -135,6 +139,8 @@
  *
  * /local/domain/1/device/vsnd/0/1/0/ring-ref = "387"
  * /local/domain/1/device/vsnd/0/1/0/event-channel = "151"
+ * /local/domain/1/device/vsnd/0/1/0/evt-ring-ref = "1387"
+ * /local/domain/1/device/vsnd/0/1/0/evt-event-channel = "351"
  *
  *------------------------------- PCM device 2 --------------------------------
  *
@@ -147,6 +153,8 @@
  *
  * /local/domain/1/device/vsnd/0/2/0/ring-ref = "389"
  * /local/domain/1/device/vsnd/0/2/0/event-channel = "152"
+ * /local/domain/1/device/vsnd/0/2/0/evt-ring-ref = "1389"
+ * /local/domain/1/device/vsnd/0/2/0/evt-event-channel = "452"
  *
  ******************************************************************************
  *                            Backend XenBus Nodes
@@ -292,6 +300,23 @@
  *      The Xen grant reference granting permission for the backend to map
  *      a sole page in a single page sized ring buffer.
  *
+ *--------------------- Stream Event Transport Parameters ---------------------
+ *
+ * This communication path is used to deliver asynchronous events from backend
+ * to frontend, set up per stream.
+ *
+ * evt-event-channel
+ *      Values:         <uint32_t>
+ *
+ *      The identifier of the Xen event channel used to signal activity
+ *      in the ring buffer.
+ *
+ * evt-ring-ref
+ *      Values:         <uint32_t>
+ *
+ *      The Xen grant reference granting permission for the backend to map
+ *      a sole page in a single page sized ring buffer.
+ *
  ******************************************************************************
  *                               STATE DIAGRAMS
  ******************************************************************************
@@ -439,6 +464,19 @@
 #define XENSND_OP_GET_VOLUME            5
 #define XENSND_OP_MUTE                  6
 #define XENSND_OP_UNMUTE                7
+#define XENSND_OP_TRIGGER               8
+
+#define XENSND_OP_TRIGGER_START         0
+#define XENSND_OP_TRIGGER_PAUSE         1
+#define XENSND_OP_TRIGGER_STOP          2
+#define XENSND_OP_TRIGGER_RESUME        3
+
+/*
+ ******************************************************************************
+ *                                 EVENT CODES
+ ******************************************************************************
+ */
+#define XENSND_EVT_CUR_POS              0
 
 /*
  ******************************************************************************
@@ -455,6 +493,8 @@
 #define XENSND_FIELD_VCARD_LONG_NAME    "long-name"
 #define XENSND_FIELD_RING_REF           "ring-ref"
 #define XENSND_FIELD_EVT_CHNL           "event-channel"
+#define XENSND_FIELD_EVT_RING_REF       "evt-ring-ref"
+#define XENSND_FIELD_EVT_EVT_CHNL       "evt-event-channel"
 #define XENSND_FIELD_DEVICE_NAME        "name"
 #define XENSND_FIELD_TYPE               "type"
 #define XENSND_FIELD_STREAM_UNIQUE_ID   "unique-id"
@@ -566,7 +606,9 @@
  * +----------------+----------------+----------------+----------------+
  * |                           gref_directory                          | 24
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 28
+ * |                             period_sz                             | 28
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 32
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
@@ -578,6 +620,14 @@
  * pcm_channels - uint8_t, number of channels of this stream,
  *   [channels-min; channels-max]
  * buffer_sz - uint32_t, buffer size to be allocated, octets
+ * period_sz - uint32_t, event period size, octets
+ *   This is the requested value of the period at which frontend would
+ *   like to receive XENSND_EVT_CUR_POS notifications from the backend when
+ *   stream position advances during playback/capture.
+ *   It shows how many octets are expected to be played/captured before
+ *   sending such an event.
+ *   If set to 0 no XENSND_EVT_CUR_POS events are sent by the backend.
+ *
  * gref_directory - grant_ref_t, a reference to the first shared page
  *   describing shared buffer references. At least one page exists. If shared
  *   buffer size  (buffer_sz) exceeds what can be addressed by this single page,
@@ -592,6 +642,7 @@ struct xensnd_open_req {
     uint16_t reserved;
     uint32_t buffer_sz;
     grant_ref_t gref_directory;
+    uint32_t period_sz;
 };
 
 /*
@@ -754,8 +805,32 @@ struct xensnd_rw_req {
  *
  * The 'struct xensnd_rw_req' is also used for XENSND_OP_SET_VOLUME,
  * XENSND_OP_GET_VOLUME, XENSND_OP_MUTE, XENSND_OP_UNMUTE.
+ *
+ * Request stream running state change - trigger PCM stream running state
+ * to start, stop, pause or resume:
+ *
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |               id                |   _OP_TRIGGER  |    reserved    | 4
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 8
+ * +----------------+----------------+----------------+----------------+
+ * |      type      |                     reserved                     | 12
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 16
+ * +----------------+----------------+----------------+----------------+
+ * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 64
+ * +----------------+----------------+----------------+----------------+
+ *
+ * type - uint8_t, XENSND_OP_TRIGGER_XXX value
  */
 
+struct xensnd_trigger_req {
+    uint8_t type;
+};
+
 /*
  *---------------------------------- Responses --------------------------------
  *
@@ -778,8 +853,51 @@ struct xensnd_rw_req {
  * id - uint16_t, copied from the request
  * operation - uint8_t, XENSND_OP_* - copied from request
  * status - int32_t, response status, zero on success and -XEN_EXX on failure
+ *
+ *----------------------------------- Events ----------------------------------
+ *
+ * Events are sent via shared page allocated by the front and propagated by
+ *   evt-event-channel/evt-ring-ref XenStore entries
+ * All event packets have the same length (64 octets)
+ * All event packets have common header:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |               id                |      type      |   reserved     | 4
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 8
+ * +----------------+----------------+----------------+----------------+
+ *
+ * id - uint16_t, event id, may be used by front
+ * type - uint8_t, type of the event
+ *
+ *
+ * Current stream position - event from back to front when stream's
+ *   playback/capture position has advanced:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |               id                |   _EVT_CUR_POS |   reserved     | 4
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 8
+ * +----------------+----------------+----------------+----------------+
+ * |                         position low 32-bit                       | 12
+ * +----------------+----------------+----------------+----------------+
+ * |                         position high 32-bit                      | 16
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 20
+ * +----------------+----------------+----------------+----------------+
+ * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 64
+ * +----------------+----------------+----------------+----------------+
+ *
+ * position - current value of stream's playback/capture position, octets
+ *
  */
 
+struct xensnd_cur_pos_evt {
+    uint64_t position;
+};
+
 struct xensnd_req {
     uint16_t id;
     uint8_t operation;
@@ -787,6 +905,7 @@ struct xensnd_req {
     union {
         struct xensnd_open_req open;
         struct xensnd_rw_req rw;
+        struct xensnd_trigger_req trigger;
         uint8_t reserved[56];
     } op;
 };
@@ -799,8 +918,49 @@ struct xensnd_resp {
     uint8_t reserved1[56];
 };
 
+struct xensnd_evt {
+    uint16_t id;
+    uint8_t type;
+    uint8_t reserved[5];
+    union {
+        struct xensnd_cur_pos_evt cur_pos;
+        uint8_t reserved[56];
+    } op;
+};
+
 DEFINE_RING_TYPES(xen_sndif, struct xensnd_req, struct xensnd_resp);
 
+/*
+ ******************************************************************************
+ *                        Back to front events delivery
+ ******************************************************************************
+ * In order to deliver asynchronous events from back to front a shared page is
+ * allocated by front and its granted reference propagated to back via
+ * XenStore entries (evt-ring-ref/evt-event-channel).
+ * This page has a common header used by both front and back to synchronize
+ * access and control event's ring buffer, while back being a producer of the
+ * events and front being a consumer. The rest of the page after the header
+ * is used for event packets.
+ *
+ * Upon reception of an event(s) front may confirm its reception
+ * for either each event, group of events or none.
+ */
+
+struct xensnd_event_page {
+    uint32_t in_cons;
+    uint32_t in_prod;
+    uint8_t reserved[56];
+};
+
+#define XENSND_EVENT_PAGE_SIZE 4096
+#define XENSND_IN_RING_OFFS (sizeof(struct xensnd_event_page))
+#define XENSND_IN_RING_SIZE (XENSND_EVENT_PAGE_SIZE - XENSND_IN_RING_OFFS)
+#define XENSND_IN_RING_LEN (XENSND_IN_RING_SIZE / sizeof(struct xensnd_evt))
+#define XENSND_IN_RING(page) \
+    ((struct xensnd_evt *)((char *)(page) + XENSND_IN_RING_OFFS))
+#define XENSND_IN_RING_REF(page, idx) \
+    (XENSND_IN_RING((page))[(idx) % XENSND_IN_RING_LEN])
+
 #endif /* __XEN_PUBLIC_IO_SNDIF_H__ */
 
 /*
-- 
2.7.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [Xen-devel][PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation
  2018-03-19  7:22 [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization Oleksandr Andrushchenko
                   ` (8 preceding siblings ...)
  2018-03-19  7:22 ` [PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation Oleksandr Andrushchenko
@ 2018-03-19  7:22 ` Oleksandr Andrushchenko
  2018-03-20 20:22 ` [PATCH v3 0/5] sndif: add explicit back and front synchronization Takashi Iwai
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-19  7:22 UTC (permalink / raw)
  To: alsa-devel, xen-devel, konrad.wilk, tiwai
  Cc: andr2000, Oleksandr Andrushchenko

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

In order to provide explicit stream parameter negotiation between
backend and frontend the following change is introduced to the protocol:
 - 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.

Parameters supported by this request/response:
 - formats mask
 - sample rate interval
 - number of channels interval
 - buffer size, interval, frames
 - period size, interval, frames

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Takashi Iwai <tiwai@suse.de>
---
 xen/include/public/io/sndif.h | 133 +++++++++++++++++++++++++++++++++++++++---
 1 file changed, 126 insertions(+), 7 deletions(-)

diff --git a/xen/include/public/io/sndif.h b/xen/include/public/io/sndif.h
index be8d7c83fa72..417d3ebc7981 100644
--- a/xen/include/public/io/sndif.h
+++ b/xen/include/public/io/sndif.h
@@ -465,6 +465,7 @@
 #define XENSND_OP_MUTE                  6
 #define XENSND_OP_UNMUTE                7
 #define XENSND_OP_TRIGGER               8
+#define XENSND_OP_HW_PARAM_QUERY        9
 
 #define XENSND_OP_TRIGGER_START         0
 #define XENSND_OP_TRIGGER_PAUSE         1
@@ -832,28 +833,142 @@ struct xensnd_trigger_req {
 };
 
 /*
- *---------------------------------- Responses --------------------------------
+ * Request stream parameter ranges: request intervals and
+ *   masks of supported ranges for stream configuration values.
  *
- * All response packets have the same length (64 octets)
+ *   Sound device configuration for a particular stream is a limited subset
+ *   of the multidimensional configuration available on XenStore, e.g.
+ *   once the frame rate has been selected there is a limited supported range
+ *   for sample rates becomes available (which might be the same set configured
+ *   on XenStore or less). For example, selecting 96kHz sample rate may limit
+ *   number of channels available for such configuration from 4 to 2, etc.
+ *   Thus, each call to XENSND_OP_HW_PARAM_QUERY may reduce configuration
+ *   space making it possible to iteratively get the final stream configuration,
+ *   used in XENSND_OP_OPEN request.
+ *
+ *   See response format for this request.
  *
- * Response for all requests:
  *         0                1                 2               3        octet
  * +----------------+----------------+----------------+----------------+
- * |               id                |    operation   |    reserved    | 4
+ * |               id                | _HW_PARAM_QUERY|    reserved    | 4
  * +----------------+----------------+----------------+----------------+
- * |                              status                               | 8
+ * |                             reserved                              | 8
+ * +----------------+----------------+----------------+----------------+
+ * |                     formats mask low 32-bit                       | 12
+ * +----------------+----------------+----------------+----------------+
+ * |                     formats mask high 32-bit                      | 16
+ * +----------------+----------------+----------------+----------------+
+ * |                              min rate                             | 20
+ * +----------------+----------------+----------------+----------------+
+ * |                              max rate                             | 24
+ * +----------------+----------------+----------------+----------------+
+ * |                            min channels                           | 28
+ * +----------------+----------------+----------------+----------------+
+ * |                            max channels                           | 32
+ * +----------------+----------------+----------------+----------------+
+ * |                         min buffer frames                         | 36
+ * +----------------+----------------+----------------+----------------+
+ * |                         max buffer frames                         | 40
+ * +----------------+----------------+----------------+----------------+
+ * |                         min period frames                         | 44
+ * +----------------+----------------+----------------+----------------+
+ * |                         max period frames                         | 48
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 12
+ * |                             reserved                              | 52
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
  * |                             reserved                              | 64
  * +----------------+----------------+----------------+----------------+
  *
+ * formats - uint64_t, bit mask representing values of the parameter
+ *   made as bitwise OR of (1 << XENSND_PCM_FORMAT_XXX) values
+ *
+ * For interval parameters:
+ *   min - uint32_t, minimum value of the parameter
+ *   max - uint32_t, maximum value of the parameter
+ *
+ * Frame is defined as a product of the number of channels by the
+ * number of octets per one sample.
+ */
+
+struct xensnd_query_hw_param {
+    uint64_t formats;
+    struct {
+        uint32_t min;
+        uint32_t max;
+    } rates;
+    struct {
+        uint32_t min;
+        uint32_t max;
+    } channels;
+    struct {
+        uint32_t min;
+        uint32_t max;
+    } buffer;
+    struct {
+        uint32_t min;
+        uint32_t max;
+    } period;
+};
+
+/*
+ *---------------------------------- Responses --------------------------------
+ *
+ * All response packets have the same length (64 octets)
+ *
+ * All response packets have common header:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |               id                |    operation   |    reserved    | 4
+ * +----------------+----------------+----------------+----------------+
+ * |                              status                               | 8
+ * +----------------+----------------+----------------+----------------+
+ *
  * id - uint16_t, copied from the request
  * operation - uint8_t, XENSND_OP_* - copied from request
  * status - int32_t, response status, zero on success and -XEN_EXX on failure
  *
+ *
+ * HW parameter query response - response for XENSND_OP_HW_PARAM_QUERY:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |               id                |    operation   |    reserved    | 4
+ * +----------------+----------------+----------------+----------------+
+ * |                              status                               | 8
+ * +----------------+----------------+----------------+----------------+
+ * |                     formats mask low 32-bit                       | 12
+ * +----------------+----------------+----------------+----------------+
+ * |                     formats mask high 32-bit                      | 16
+ * +----------------+----------------+----------------+----------------+
+ * |                              min rate                             | 20
+ * +----------------+----------------+----------------+----------------+
+ * |                              max rate                             | 24
+ * +----------------+----------------+----------------+----------------+
+ * |                            min channels                           | 28
+ * +----------------+----------------+----------------+----------------+
+ * |                            max channels                           | 32
+ * +----------------+----------------+----------------+----------------+
+ * |                         min buffer frames                         | 36
+ * +----------------+----------------+----------------+----------------+
+ * |                         max buffer frames                         | 40
+ * +----------------+----------------+----------------+----------------+
+ * |                         min period frames                         | 44
+ * +----------------+----------------+----------------+----------------+
+ * |                         max period frames                         | 48
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 52
+ * +----------------+----------------+----------------+----------------+
+ * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 64
+ * +----------------+----------------+----------------+----------------+
+ *
+ * Meaning of the values in this response is the same as for
+ * XENSND_OP_HW_PARAM_QUERY request.
+ */
+
+/*
  *----------------------------------- Events ----------------------------------
  *
  * Events are sent via shared page allocated by the front and propagated by
@@ -906,6 +1021,7 @@ struct xensnd_req {
         struct xensnd_open_req open;
         struct xensnd_rw_req rw;
         struct xensnd_trigger_req trigger;
+        struct xensnd_query_hw_param hw_param;
         uint8_t reserved[56];
     } op;
 };
@@ -915,7 +1031,10 @@ struct xensnd_resp {
     uint8_t operation;
     uint8_t reserved;
     int32_t status;
-    uint8_t reserved1[56];
+    union {
+        struct xensnd_query_hw_param hw_param;
+        uint8_t reserved1[56];
+    } resp;
 };
 
 struct xensnd_evt {
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation
  2018-03-19  7:22 [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization Oleksandr Andrushchenko
                   ` (7 preceding siblings ...)
  2018-03-19  7:22 ` [Xen-devel][PATCH " Oleksandr Andrushchenko
@ 2018-03-19  7:22 ` Oleksandr Andrushchenko
  2018-03-19  7:22 ` [Xen-devel][PATCH " Oleksandr Andrushchenko
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-19  7:22 UTC (permalink / raw)
  To: alsa-devel, xen-devel, konrad.wilk, tiwai
  Cc: andr2000, Oleksandr Andrushchenko

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

In order to provide explicit stream parameter negotiation between
backend and frontend the following change is introduced to the protocol:
 - 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.

Parameters supported by this request/response:
 - formats mask
 - sample rate interval
 - number of channels interval
 - buffer size, interval, frames
 - period size, interval, frames

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Takashi Iwai <tiwai@suse.de>
---
 xen/include/public/io/sndif.h | 133 +++++++++++++++++++++++++++++++++++++++---
 1 file changed, 126 insertions(+), 7 deletions(-)

diff --git a/xen/include/public/io/sndif.h b/xen/include/public/io/sndif.h
index be8d7c83fa72..417d3ebc7981 100644
--- a/xen/include/public/io/sndif.h
+++ b/xen/include/public/io/sndif.h
@@ -465,6 +465,7 @@
 #define XENSND_OP_MUTE                  6
 #define XENSND_OP_UNMUTE                7
 #define XENSND_OP_TRIGGER               8
+#define XENSND_OP_HW_PARAM_QUERY        9
 
 #define XENSND_OP_TRIGGER_START         0
 #define XENSND_OP_TRIGGER_PAUSE         1
@@ -832,28 +833,142 @@ struct xensnd_trigger_req {
 };
 
 /*
- *---------------------------------- Responses --------------------------------
+ * Request stream parameter ranges: request intervals and
+ *   masks of supported ranges for stream configuration values.
  *
- * All response packets have the same length (64 octets)
+ *   Sound device configuration for a particular stream is a limited subset
+ *   of the multidimensional configuration available on XenStore, e.g.
+ *   once the frame rate has been selected there is a limited supported range
+ *   for sample rates becomes available (which might be the same set configured
+ *   on XenStore or less). For example, selecting 96kHz sample rate may limit
+ *   number of channels available for such configuration from 4 to 2, etc.
+ *   Thus, each call to XENSND_OP_HW_PARAM_QUERY may reduce configuration
+ *   space making it possible to iteratively get the final stream configuration,
+ *   used in XENSND_OP_OPEN request.
+ *
+ *   See response format for this request.
  *
- * Response for all requests:
  *         0                1                 2               3        octet
  * +----------------+----------------+----------------+----------------+
- * |               id                |    operation   |    reserved    | 4
+ * |               id                | _HW_PARAM_QUERY|    reserved    | 4
  * +----------------+----------------+----------------+----------------+
- * |                              status                               | 8
+ * |                             reserved                              | 8
+ * +----------------+----------------+----------------+----------------+
+ * |                     formats mask low 32-bit                       | 12
+ * +----------------+----------------+----------------+----------------+
+ * |                     formats mask high 32-bit                      | 16
+ * +----------------+----------------+----------------+----------------+
+ * |                              min rate                             | 20
+ * +----------------+----------------+----------------+----------------+
+ * |                              max rate                             | 24
+ * +----------------+----------------+----------------+----------------+
+ * |                            min channels                           | 28
+ * +----------------+----------------+----------------+----------------+
+ * |                            max channels                           | 32
+ * +----------------+----------------+----------------+----------------+
+ * |                         min buffer frames                         | 36
+ * +----------------+----------------+----------------+----------------+
+ * |                         max buffer frames                         | 40
+ * +----------------+----------------+----------------+----------------+
+ * |                         min period frames                         | 44
+ * +----------------+----------------+----------------+----------------+
+ * |                         max period frames                         | 48
  * +----------------+----------------+----------------+----------------+
- * |                             reserved                              | 12
+ * |                             reserved                              | 52
  * +----------------+----------------+----------------+----------------+
  * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
  * +----------------+----------------+----------------+----------------+
  * |                             reserved                              | 64
  * +----------------+----------------+----------------+----------------+
  *
+ * formats - uint64_t, bit mask representing values of the parameter
+ *   made as bitwise OR of (1 << XENSND_PCM_FORMAT_XXX) values
+ *
+ * For interval parameters:
+ *   min - uint32_t, minimum value of the parameter
+ *   max - uint32_t, maximum value of the parameter
+ *
+ * Frame is defined as a product of the number of channels by the
+ * number of octets per one sample.
+ */
+
+struct xensnd_query_hw_param {
+    uint64_t formats;
+    struct {
+        uint32_t min;
+        uint32_t max;
+    } rates;
+    struct {
+        uint32_t min;
+        uint32_t max;
+    } channels;
+    struct {
+        uint32_t min;
+        uint32_t max;
+    } buffer;
+    struct {
+        uint32_t min;
+        uint32_t max;
+    } period;
+};
+
+/*
+ *---------------------------------- Responses --------------------------------
+ *
+ * All response packets have the same length (64 octets)
+ *
+ * All response packets have common header:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |               id                |    operation   |    reserved    | 4
+ * +----------------+----------------+----------------+----------------+
+ * |                              status                               | 8
+ * +----------------+----------------+----------------+----------------+
+ *
  * id - uint16_t, copied from the request
  * operation - uint8_t, XENSND_OP_* - copied from request
  * status - int32_t, response status, zero on success and -XEN_EXX on failure
  *
+ *
+ * HW parameter query response - response for XENSND_OP_HW_PARAM_QUERY:
+ *         0                1                 2               3        octet
+ * +----------------+----------------+----------------+----------------+
+ * |               id                |    operation   |    reserved    | 4
+ * +----------------+----------------+----------------+----------------+
+ * |                              status                               | 8
+ * +----------------+----------------+----------------+----------------+
+ * |                     formats mask low 32-bit                       | 12
+ * +----------------+----------------+----------------+----------------+
+ * |                     formats mask high 32-bit                      | 16
+ * +----------------+----------------+----------------+----------------+
+ * |                              min rate                             | 20
+ * +----------------+----------------+----------------+----------------+
+ * |                              max rate                             | 24
+ * +----------------+----------------+----------------+----------------+
+ * |                            min channels                           | 28
+ * +----------------+----------------+----------------+----------------+
+ * |                            max channels                           | 32
+ * +----------------+----------------+----------------+----------------+
+ * |                         min buffer frames                         | 36
+ * +----------------+----------------+----------------+----------------+
+ * |                         max buffer frames                         | 40
+ * +----------------+----------------+----------------+----------------+
+ * |                         min period frames                         | 44
+ * +----------------+----------------+----------------+----------------+
+ * |                         max period frames                         | 48
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 52
+ * +----------------+----------------+----------------+----------------+
+ * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
+ * +----------------+----------------+----------------+----------------+
+ * |                             reserved                              | 64
+ * +----------------+----------------+----------------+----------------+
+ *
+ * Meaning of the values in this response is the same as for
+ * XENSND_OP_HW_PARAM_QUERY request.
+ */
+
+/*
  *----------------------------------- Events ----------------------------------
  *
  * Events are sent via shared page allocated by the front and propagated by
@@ -906,6 +1021,7 @@ struct xensnd_req {
         struct xensnd_open_req open;
         struct xensnd_rw_req rw;
         struct xensnd_trigger_req trigger;
+        struct xensnd_query_hw_param hw_param;
         uint8_t reserved[56];
     } op;
 };
@@ -915,7 +1031,10 @@ struct xensnd_resp {
     uint8_t operation;
     uint8_t reserved;
     int32_t status;
-    uint8_t reserved1[56];
+    union {
+        struct xensnd_query_hw_param hw_param;
+        uint8_t reserved1[56];
+    } resp;
 };
 
 struct xensnd_evt {
-- 
2.7.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* Re: [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-03-19  7:22 [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization Oleksandr Andrushchenko
                   ` (10 preceding siblings ...)
  2018-03-20 20:22 ` [PATCH v3 0/5] sndif: add explicit back and front synchronization Takashi Iwai
@ 2018-03-20 20:22 ` Takashi Iwai
  2018-03-21  7:15   ` [PATCH " Oleksandr Andrushchenko
  2018-03-21  7:15   ` [Xen-devel][PATCH " Oleksandr Andrushchenko
  2018-04-06  9:13 ` [PATCH " Juergen Gross
  12 siblings, 2 replies; 32+ messages in thread
From: Takashi Iwai @ 2018-03-20 20:22 UTC (permalink / raw)
  To: Oleksandr Andrushchenko
  Cc: xen-devel, alsa-devel, Oleksandr Andrushchenko, konrad.wilk

On Mon, 19 Mar 2018 08:22:19 +0100,
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:
> 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

I can't judge exactly about the protocol without the actual FE/BE
implementations, but the change looks good to me, especially if you've
already tested something.

If other people have no concern, let's go ahead with FE/BE stuff.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-03-19  7:22 [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization Oleksandr Andrushchenko
                   ` (9 preceding siblings ...)
  2018-03-19  7:22 ` [Xen-devel][PATCH " Oleksandr Andrushchenko
@ 2018-03-20 20:22 ` Takashi Iwai
  2018-03-20 20:22 ` [Xen-devel][PATCH " Takashi Iwai
  2018-04-06  9:13 ` [PATCH " Juergen Gross
  12 siblings, 0 replies; 32+ messages in thread
From: Takashi Iwai @ 2018-03-20 20:22 UTC (permalink / raw)
  To: Oleksandr Andrushchenko; +Cc: xen-devel, alsa-devel, Oleksandr Andrushchenko

On Mon, 19 Mar 2018 08:22:19 +0100,
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:
> 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

I can't judge exactly about the protocol without the actual FE/BE
implementations, but the change looks good to me, especially if you've
already tested something.

If other people have no concern, let's go ahead with FE/BE stuff.


thanks,

Takashi

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-03-20 20:22 ` [Xen-devel][PATCH " Takashi Iwai
  2018-03-21  7:15   ` [PATCH " Oleksandr Andrushchenko
@ 2018-03-21  7:15   ` Oleksandr Andrushchenko
  2018-03-21  7:20     ` [PATCH " Takashi Iwai
                       ` (3 more replies)
  1 sibling, 4 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-21  7:15 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: xen-devel, alsa-devel, Oleksandr Andrushchenko, konrad.wilk

On 03/20/2018 10:22 PM, Takashi Iwai wrote:
> On Mon, 19 Mar 2018 08:22:19 +0100,
> 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:
>> 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
> I can't judge exactly about the protocol without the actual FE/BE
> implementations, but the change looks good to me, especially if you've
> already tested something.
Thank you, I have tested the changes and need them to start upstreaming
the frontend driver used to test the protocol.
Do you mind if I put your Acked-by (or you prefer Reviewed-by?) tag to 
these patches:

[PATCH v3 4/5] sndif: Add explicit back and front synchronization
[PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation

Please note, that the changes first to be merged into Xen and then I'll 
prepare
the same, but for the kernel
>
> If other people have no concern, let's go ahead with FE/BE stuff.
Konrad, are you ok with the changes?
>
> thanks,
>
> Takashi
Thank you,
Oleksandr

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-03-20 20:22 ` [Xen-devel][PATCH " Takashi Iwai
@ 2018-03-21  7:15   ` Oleksandr Andrushchenko
  2018-03-21  7:15   ` [Xen-devel][PATCH " Oleksandr Andrushchenko
  1 sibling, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-21  7:15 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: xen-devel, alsa-devel, Oleksandr Andrushchenko

On 03/20/2018 10:22 PM, Takashi Iwai wrote:
> On Mon, 19 Mar 2018 08:22:19 +0100,
> 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:
>> 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
> I can't judge exactly about the protocol without the actual FE/BE
> implementations, but the change looks good to me, especially if you've
> already tested something.
Thank you, I have tested the changes and need them to start upstreaming
the frontend driver used to test the protocol.
Do you mind if I put your Acked-by (or you prefer Reviewed-by?) tag to 
these patches:

[PATCH v3 4/5] sndif: Add explicit back and front synchronization
[PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation

Please note, that the changes first to be merged into Xen and then I'll 
prepare
the same, but for the kernel
>
> If other people have no concern, let's go ahead with FE/BE stuff.
Konrad, are you ok with the changes?
>
> thanks,
>
> Takashi
Thank you,
Oleksandr

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-03-21  7:15   ` [Xen-devel][PATCH " Oleksandr Andrushchenko
  2018-03-21  7:20     ` [PATCH " Takashi Iwai
@ 2018-03-21  7:20     ` Takashi Iwai
  2018-03-21  7:25       ` [PATCH " Oleksandr Andrushchenko
  2018-03-21  7:25       ` [Xen-devel][PATCH " Oleksandr Andrushchenko
  2018-04-12 14:31     ` Konrad Rzeszutek Wilk
  2018-04-12 14:31     ` [Xen-devel][PATCH " Konrad Rzeszutek Wilk
  3 siblings, 2 replies; 32+ messages in thread
From: Takashi Iwai @ 2018-03-21  7:20 UTC (permalink / raw)
  To: Oleksandr Andrushchenko
  Cc: xen-devel, alsa-devel, Oleksandr Andrushchenko, konrad.wilk

On Wed, 21 Mar 2018 08:15:36 +0100,
Oleksandr Andrushchenko wrote:
> 
> On 03/20/2018 10:22 PM, Takashi Iwai wrote:
> > On Mon, 19 Mar 2018 08:22:19 +0100,
> > 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:
> >> 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
> > I can't judge exactly about the protocol without the actual FE/BE
> > implementations, but the change looks good to me, especially if you've
> > already tested something.
> Thank you, I have tested the changes and need them to start upstreaming
> the frontend driver used to test the protocol.
> Do you mind if I put your Acked-by (or you prefer Reviewed-by?) tag to
> these patches:
> 
> [PATCH v3 4/5] sndif: Add explicit back and front synchronization
> [PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation

Sure, feel free to take my ack:
  Reviewed-by: Takashi Iwai <tiwai@suse.de>


Takashi

> 
> Please note, that the changes first to be merged into Xen and then
> I'll prepare
> the same, but for the kernel
> >
> > If other people have no concern, let's go ahead with FE/BE stuff.
> Konrad, are you ok with the changes?
> >
> > thanks,
> >
> > Takashi
> Thank you,
> Oleksandr
> 

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-03-21  7:15   ` [Xen-devel][PATCH " Oleksandr Andrushchenko
@ 2018-03-21  7:20     ` Takashi Iwai
  2018-03-21  7:20     ` [Xen-devel][PATCH " Takashi Iwai
                       ` (2 subsequent siblings)
  3 siblings, 0 replies; 32+ messages in thread
From: Takashi Iwai @ 2018-03-21  7:20 UTC (permalink / raw)
  To: Oleksandr Andrushchenko; +Cc: xen-devel, alsa-devel, Oleksandr Andrushchenko

On Wed, 21 Mar 2018 08:15:36 +0100,
Oleksandr Andrushchenko wrote:
> 
> On 03/20/2018 10:22 PM, Takashi Iwai wrote:
> > On Mon, 19 Mar 2018 08:22:19 +0100,
> > 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:
> >> 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
> > I can't judge exactly about the protocol without the actual FE/BE
> > implementations, but the change looks good to me, especially if you've
> > already tested something.
> Thank you, I have tested the changes and need them to start upstreaming
> the frontend driver used to test the protocol.
> Do you mind if I put your Acked-by (or you prefer Reviewed-by?) tag to
> these patches:
> 
> [PATCH v3 4/5] sndif: Add explicit back and front synchronization
> [PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation

Sure, feel free to take my ack:
  Reviewed-by: Takashi Iwai <tiwai@suse.de>


Takashi

> 
> Please note, that the changes first to be merged into Xen and then
> I'll prepare
> the same, but for the kernel
> >
> > If other people have no concern, let's go ahead with FE/BE stuff.
> Konrad, are you ok with the changes?
> >
> > thanks,
> >
> > Takashi
> Thank you,
> Oleksandr
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-03-21  7:20     ` [Xen-devel][PATCH " Takashi Iwai
  2018-03-21  7:25       ` [PATCH " Oleksandr Andrushchenko
@ 2018-03-21  7:25       ` Oleksandr Andrushchenko
  2018-03-27  5:41         ` Oleksandr Andrushchenko
  2018-03-27  5:41         ` Oleksandr Andrushchenko
  1 sibling, 2 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-21  7:25 UTC (permalink / raw)
  To: Takashi Iwai, Oleksandr_Andrushchenko; +Cc: xen-devel, alsa-devel, konrad.wilk

On 03/21/2018 09:20 AM, Takashi Iwai wrote:
> On Wed, 21 Mar 2018 08:15:36 +0100,
> Oleksandr Andrushchenko wrote:
>> On 03/20/2018 10:22 PM, Takashi Iwai wrote:
>>> On Mon, 19 Mar 2018 08:22:19 +0100,
>>> 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:
>>>> 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
>>> I can't judge exactly about the protocol without the actual FE/BE
>>> implementations, but the change looks good to me, especially if you've
>>> already tested something.
>> Thank you, I have tested the changes and need them to start upstreaming
>> the frontend driver used to test the protocol.
>> Do you mind if I put your Acked-by (or you prefer Reviewed-by?) tag to
>> these patches:
>>
>> [PATCH v3 4/5] sndif: Add explicit back and front synchronization
>> [PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation
> Sure, feel free to take my ack:
>    Reviewed-by: Takashi Iwai <tiwai@suse.de>
Thank you
>
> Takashi
>
>> Please note, that the changes first to be merged into Xen and then
>> I'll prepare
>> the same, but for the kernel
>>> If other people have no concern, let's go ahead with FE/BE stuff.
>> Konrad, are you ok with the changes?
>>> thanks,
>>>
>>> Takashi
>> Thank you,
>> Oleksandr
>>

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-03-21  7:20     ` [Xen-devel][PATCH " Takashi Iwai
@ 2018-03-21  7:25       ` Oleksandr Andrushchenko
  2018-03-21  7:25       ` [Xen-devel][PATCH " Oleksandr Andrushchenko
  1 sibling, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-21  7:25 UTC (permalink / raw)
  To: Takashi Iwai, Oleksandr_Andrushchenko; +Cc: xen-devel, alsa-devel

On 03/21/2018 09:20 AM, Takashi Iwai wrote:
> On Wed, 21 Mar 2018 08:15:36 +0100,
> Oleksandr Andrushchenko wrote:
>> On 03/20/2018 10:22 PM, Takashi Iwai wrote:
>>> On Mon, 19 Mar 2018 08:22:19 +0100,
>>> 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:
>>>> 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
>>> I can't judge exactly about the protocol without the actual FE/BE
>>> implementations, but the change looks good to me, especially if you've
>>> already tested something.
>> Thank you, I have tested the changes and need them to start upstreaming
>> the frontend driver used to test the protocol.
>> Do you mind if I put your Acked-by (or you prefer Reviewed-by?) tag to
>> these patches:
>>
>> [PATCH v3 4/5] sndif: Add explicit back and front synchronization
>> [PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation
> Sure, feel free to take my ack:
>    Reviewed-by: Takashi Iwai <tiwai@suse.de>
Thank you
>
> Takashi
>
>> Please note, that the changes first to be merged into Xen and then
>> I'll prepare
>> the same, but for the kernel
>>> If other people have no concern, let's go ahead with FE/BE stuff.
>> Konrad, are you ok with the changes?
>>> thanks,
>>>
>>> Takashi
>> Thank you,
>> Oleksandr
>>


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization
  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-03  5:37           ` [PATCH " Oleksandr Andrushchenko
  2018-03-27  5:41         ` Oleksandr Andrushchenko
  1 sibling, 2 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-27  5:41 UTC (permalink / raw)
  To: konrad.wilk; +Cc: Takashi Iwai, xen-devel, alsa-devel, Oleksandr_Andrushchenko

Hi, Konrad!

Could you please review?

Thank you,
Oleksandr

On 03/21/2018 09:25 AM, Oleksandr Andrushchenko wrote:
> On 03/21/2018 09:20 AM, Takashi Iwai wrote:
>> On Wed, 21 Mar 2018 08:15:36 +0100,
>> Oleksandr Andrushchenko wrote:
>>> On 03/20/2018 10:22 PM, Takashi Iwai wrote:
>>>> On Mon, 19 Mar 2018 08:22:19 +0100,
>>>> 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:
>>>>> 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
>>>> I can't judge exactly about the protocol without the actual FE/BE
>>>> implementations, but the change looks good to me, especially if you've
>>>> already tested something.
>>> Thank you, I have tested the changes and need them to start upstreaming
>>> the frontend driver used to test the protocol.
>>> Do you mind if I put your Acked-by (or you prefer Reviewed-by?) tag to
>>> these patches:
>>>
>>> [PATCH v3 4/5] sndif: Add explicit back and front synchronization
>>> [PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation
>> Sure, feel free to take my ack:
>>    Reviewed-by: Takashi Iwai <tiwai@suse.de>
> Thank you
>>
>> Takashi
>>
>>> Please note, that the changes first to be merged into Xen and then
>>> I'll prepare
>>> the same, but for the kernel
>>>> If other people have no concern, let's go ahead with FE/BE stuff.
>>> Konrad, are you ok with the changes?
>>>> thanks,
>>>>
>>>> Takashi
>>> Thank you,
>>> Oleksandr
>>>
>

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-03-21  7:25       ` [Xen-devel][PATCH " Oleksandr Andrushchenko
  2018-03-27  5:41         ` Oleksandr Andrushchenko
@ 2018-03-27  5:41         ` Oleksandr Andrushchenko
  1 sibling, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-03-27  5:41 UTC (permalink / raw)
  To: konrad.wilk; +Cc: Takashi Iwai, xen-devel, alsa-devel, Oleksandr_Andrushchenko

Hi, Konrad!

Could you please review?

Thank you,
Oleksandr

On 03/21/2018 09:25 AM, Oleksandr Andrushchenko wrote:
> On 03/21/2018 09:20 AM, Takashi Iwai wrote:
>> On Wed, 21 Mar 2018 08:15:36 +0100,
>> Oleksandr Andrushchenko wrote:
>>> On 03/20/2018 10:22 PM, Takashi Iwai wrote:
>>>> On Mon, 19 Mar 2018 08:22:19 +0100,
>>>> 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:
>>>>> 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
>>>> I can't judge exactly about the protocol without the actual FE/BE
>>>> implementations, but the change looks good to me, especially if you've
>>>> already tested something.
>>> Thank you, I have tested the changes and need them to start upstreaming
>>> the frontend driver used to test the protocol.
>>> Do you mind if I put your Acked-by (or you prefer Reviewed-by?) tag to
>>> these patches:
>>>
>>> [PATCH v3 4/5] sndif: Add explicit back and front synchronization
>>> [PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation
>> Sure, feel free to take my ack:
>>    Reviewed-by: Takashi Iwai <tiwai@suse.de>
> Thank you
>>
>> Takashi
>>
>>> Please note, that the changes first to be merged into Xen and then
>>> I'll prepare
>>> the same, but for the kernel
>>>> If other people have no concern, let's go ahead with FE/BE stuff.
>>> Konrad, are you ok with the changes?
>>>> thanks,
>>>>
>>>> Takashi
>>> Thank you,
>>> Oleksandr
>>>
>


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization
  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
  1 sibling, 2 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-04-03  5:37 UTC (permalink / raw)
  To: konrad.wilk; +Cc: Takashi Iwai, xen-devel, alsa-devel, Oleksandr_Andrushchenko

ping

On 03/27/2018 08:41 AM, Oleksandr Andrushchenko wrote:
> Hi, Konrad!
>
> Could you please review?
>
> Thank you,
> Oleksandr
>
> On 03/21/2018 09:25 AM, Oleksandr Andrushchenko wrote:
>> On 03/21/2018 09:20 AM, Takashi Iwai wrote:
>>> On Wed, 21 Mar 2018 08:15:36 +0100,
>>> Oleksandr Andrushchenko wrote:
>>>> On 03/20/2018 10:22 PM, Takashi Iwai wrote:
>>>>> On Mon, 19 Mar 2018 08:22:19 +0100,
>>>>> 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:
>>>>>> 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
>>>>> I can't judge exactly about the protocol without the actual FE/BE
>>>>> implementations, but the change looks good to me, especially if 
>>>>> you've
>>>>> already tested something.
>>>> Thank you, I have tested the changes and need them to start 
>>>> upstreaming
>>>> the frontend driver used to test the protocol.
>>>> Do you mind if I put your Acked-by (or you prefer Reviewed-by?) tag to
>>>> these patches:
>>>>
>>>> [PATCH v3 4/5] sndif: Add explicit back and front synchronization
>>>> [PATCH v3 5/5] sndif: Add explicit back and front parameter 
>>>> negotiation
>>> Sure, feel free to take my ack:
>>>    Reviewed-by: Takashi Iwai <tiwai@suse.de>
>> Thank you
>>>
>>> Takashi
>>>
>>>> Please note, that the changes first to be merged into Xen and then
>>>> I'll prepare
>>>> the same, but for the kernel
>>>>> If other people have no concern, let's go ahead with FE/BE stuff.
>>>> Konrad, are you ok with the changes?
>>>>> thanks,
>>>>>
>>>>> Takashi
>>>> Thank you,
>>>> Oleksandr
>>>>
>>
>

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-03-27  5:41         ` Oleksandr Andrushchenko
  2018-04-03  5:37           ` Oleksandr Andrushchenko
@ 2018-04-03  5:37           ` Oleksandr Andrushchenko
  1 sibling, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-04-03  5:37 UTC (permalink / raw)
  To: konrad.wilk; +Cc: Takashi Iwai, xen-devel, alsa-devel, Oleksandr_Andrushchenko

ping

On 03/27/2018 08:41 AM, Oleksandr Andrushchenko wrote:
> Hi, Konrad!
>
> Could you please review?
>
> Thank you,
> Oleksandr
>
> On 03/21/2018 09:25 AM, Oleksandr Andrushchenko wrote:
>> On 03/21/2018 09:20 AM, Takashi Iwai wrote:
>>> On Wed, 21 Mar 2018 08:15:36 +0100,
>>> Oleksandr Andrushchenko wrote:
>>>> On 03/20/2018 10:22 PM, Takashi Iwai wrote:
>>>>> On Mon, 19 Mar 2018 08:22:19 +0100,
>>>>> 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:
>>>>>> 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
>>>>> I can't judge exactly about the protocol without the actual FE/BE
>>>>> implementations, but the change looks good to me, especially if 
>>>>> you've
>>>>> already tested something.
>>>> Thank you, I have tested the changes and need them to start 
>>>> upstreaming
>>>> the frontend driver used to test the protocol.
>>>> Do you mind if I put your Acked-by (or you prefer Reviewed-by?) tag to
>>>> these patches:
>>>>
>>>> [PATCH v3 4/5] sndif: Add explicit back and front synchronization
>>>> [PATCH v3 5/5] sndif: Add explicit back and front parameter 
>>>> negotiation
>>> Sure, feel free to take my ack:
>>>    Reviewed-by: Takashi Iwai <tiwai@suse.de>
>> Thank you
>>>
>>> Takashi
>>>
>>>> Please note, that the changes first to be merged into Xen and then
>>>> I'll prepare
>>>> the same, but for the kernel
>>>>> If other people have no concern, let's go ahead with FE/BE stuff.
>>>> Konrad, are you ok with the changes?
>>>>> thanks,
>>>>>
>>>>> Takashi
>>>> Thank you,
>>>> Oleksandr
>>>>
>>
>


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-03-19  7:22 [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization Oleksandr Andrushchenko
                   ` (11 preceding siblings ...)
  2018-03-20 20:22 ` [Xen-devel][PATCH " Takashi Iwai
@ 2018-04-06  9:13 ` Juergen Gross
  2018-04-06  9:18   ` [Xen-devel] " Oleksandr Andrushchenko
  2018-04-06  9:18   ` Oleksandr Andrushchenko
  12 siblings, 2 replies; 32+ messages in thread
From: Juergen Gross @ 2018-04-06  9:13 UTC (permalink / raw)
  To: Oleksandr Andrushchenko, alsa-devel, xen-devel, konrad.wilk, tiwai
  Cc: Oleksandr Andrushchenko

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:
> 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(-)
> 

With Konrad's ack you can have my:

Release-acked-by: Juergen Gross <jgross@suse.com>

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.


Juergen

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [Xen-devel] [PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-04-06  9:13 ` [PATCH " Juergen Gross
@ 2018-04-06  9:18   ` Oleksandr Andrushchenko
  2018-04-06  9:18   ` Oleksandr Andrushchenko
  1 sibling, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-04-06  9:18 UTC (permalink / raw)
  To: Juergen Gross, alsa-devel, xen-devel, konrad.wilk, tiwai
  Cc: Oleksandr Andrushchenko

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:
>> 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(-)
>>
> 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

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-04-06  9:13 ` [PATCH " Juergen Gross
  2018-04-06  9:18   ` [Xen-devel] " Oleksandr Andrushchenko
@ 2018-04-06  9:18   ` Oleksandr Andrushchenko
  1 sibling, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-04-06  9:18 UTC (permalink / raw)
  To: Juergen Gross, alsa-devel, xen-devel, konrad.wilk, tiwai
  Cc: Oleksandr Andrushchenko

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:
>> 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(-)
>>
> 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

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-04-03  5:37           ` Oleksandr Andrushchenko
  2018-04-10  5:28             ` [PATCH " Oleksandr Andrushchenko
@ 2018-04-10  5:28             ` Oleksandr Andrushchenko
  1 sibling, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-04-10  5:28 UTC (permalink / raw)
  To: konrad.wilk; +Cc: Takashi Iwai, xen-devel, alsa-devel, Oleksandr_Andrushchenko

Konrad?

On 04/03/2018 08:37 AM, Oleksandr Andrushchenko wrote:
> ping
>
> On 03/27/2018 08:41 AM, Oleksandr Andrushchenko wrote:
>> Hi, Konrad!
>>
>> Could you please review?
>>
>> Thank you,
>> Oleksandr
>>
>> On 03/21/2018 09:25 AM, Oleksandr Andrushchenko wrote:
>>> On 03/21/2018 09:20 AM, Takashi Iwai wrote:
>>>> On Wed, 21 Mar 2018 08:15:36 +0100,
>>>> Oleksandr Andrushchenko wrote:
>>>>> On 03/20/2018 10:22 PM, Takashi Iwai wrote:
>>>>>> On Mon, 19 Mar 2018 08:22:19 +0100,
>>>>>> 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:
>>>>>>> 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
>>>>>> I can't judge exactly about the protocol without the actual FE/BE
>>>>>> implementations, but the change looks good to me, especially if 
>>>>>> you've
>>>>>> already tested something.
>>>>> Thank you, I have tested the changes and need them to start 
>>>>> upstreaming
>>>>> the frontend driver used to test the protocol.
>>>>> Do you mind if I put your Acked-by (or you prefer Reviewed-by?) 
>>>>> tag to
>>>>> these patches:
>>>>>
>>>>> [PATCH v3 4/5] sndif: Add explicit back and front synchronization
>>>>> [PATCH v3 5/5] sndif: Add explicit back and front parameter 
>>>>> negotiation
>>>> Sure, feel free to take my ack:
>>>>    Reviewed-by: Takashi Iwai <tiwai@suse.de>
>>> Thank you
>>>>
>>>> Takashi
>>>>
>>>>> Please note, that the changes first to be merged into Xen and then
>>>>> I'll prepare
>>>>> the same, but for the kernel
>>>>>> If other people have no concern, let's go ahead with FE/BE stuff.
>>>>> Konrad, are you ok with the changes?
>>>>>> thanks,
>>>>>>
>>>>>> Takashi
>>>>> Thank you,
>>>>> Oleksandr
>>>>>
>>>
>>
>

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-04-03  5:37           ` Oleksandr Andrushchenko
@ 2018-04-10  5:28             ` Oleksandr Andrushchenko
  2018-04-10  5:28             ` [Xen-devel][PATCH " Oleksandr Andrushchenko
  1 sibling, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-04-10  5:28 UTC (permalink / raw)
  To: konrad.wilk; +Cc: Takashi Iwai, xen-devel, alsa-devel, Oleksandr_Andrushchenko

Konrad?

On 04/03/2018 08:37 AM, Oleksandr Andrushchenko wrote:
> ping
>
> On 03/27/2018 08:41 AM, Oleksandr Andrushchenko wrote:
>> Hi, Konrad!
>>
>> Could you please review?
>>
>> Thank you,
>> Oleksandr
>>
>> On 03/21/2018 09:25 AM, Oleksandr Andrushchenko wrote:
>>> On 03/21/2018 09:20 AM, Takashi Iwai wrote:
>>>> On Wed, 21 Mar 2018 08:15:36 +0100,
>>>> Oleksandr Andrushchenko wrote:
>>>>> On 03/20/2018 10:22 PM, Takashi Iwai wrote:
>>>>>> On Mon, 19 Mar 2018 08:22:19 +0100,
>>>>>> 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:
>>>>>>> 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
>>>>>> I can't judge exactly about the protocol without the actual FE/BE
>>>>>> implementations, but the change looks good to me, especially if 
>>>>>> you've
>>>>>> already tested something.
>>>>> Thank you, I have tested the changes and need them to start 
>>>>> upstreaming
>>>>> the frontend driver used to test the protocol.
>>>>> Do you mind if I put your Acked-by (or you prefer Reviewed-by?) 
>>>>> tag to
>>>>> these patches:
>>>>>
>>>>> [PATCH v3 4/5] sndif: Add explicit back and front synchronization
>>>>> [PATCH v3 5/5] sndif: Add explicit back and front parameter 
>>>>> negotiation
>>>> Sure, feel free to take my ack:
>>>>    Reviewed-by: Takashi Iwai <tiwai@suse.de>
>>> Thank you
>>>>
>>>> Takashi
>>>>
>>>>> Please note, that the changes first to be merged into Xen and then
>>>>> I'll prepare
>>>>> the same, but for the kernel
>>>>>> If other people have no concern, let's go ahead with FE/BE stuff.
>>>>> Konrad, are you ok with the changes?
>>>>>> thanks,
>>>>>>
>>>>>> Takashi
>>>>> Thank you,
>>>>> Oleksandr
>>>>>
>>>
>>
>


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-03-21  7:15   ` [Xen-devel][PATCH " Oleksandr Andrushchenko
                       ` (2 preceding siblings ...)
  2018-04-12 14:31     ` Konrad Rzeszutek Wilk
@ 2018-04-12 14:31     ` Konrad Rzeszutek Wilk
  2018-04-12 14:35       ` [PATCH " Oleksandr Andrushchenko
  2018-04-12 14:35       ` [Xen-devel][PATCH " Oleksandr Andrushchenko
  3 siblings, 2 replies; 32+ messages in thread
From: Konrad Rzeszutek Wilk @ 2018-04-12 14:31 UTC (permalink / raw)
  To: Oleksandr Andrushchenko
  Cc: Takashi Iwai, xen-devel, alsa-devel, Oleksandr Andrushchenko

On Wed, Mar 21, 2018 at 09:15:36AM +0200, Oleksandr Andrushchenko wrote:
> On 03/20/2018 10:22 PM, Takashi Iwai wrote:
> > On Mon, 19 Mar 2018 08:22:19 +0100,
> > 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:
> > > 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
> > I can't judge exactly about the protocol without the actual FE/BE
> > implementations, but the change looks good to me, especially if you've
> > already tested something.
> Thank you, I have tested the changes and need them to start upstreaming
> the frontend driver used to test the protocol.
> Do you mind if I put your Acked-by (or you prefer Reviewed-by?) tag to these
> patches:
> 
> [PATCH v3 4/5] sndif: Add explicit back and front synchronization
> [PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation
> 
> Please note, that the changes first to be merged into Xen and then I'll
> prepare
> the same, but for the kernel
> > 
> > If other people have no concern, let's go ahead with FE/BE stuff.
> Konrad, are you ok with the changes?

Yes. Thank you for your persistence.

Can you also add:

Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

Thank you!
> > 
> > thanks,
> > 
> > Takashi
> Thank you,
> Oleksandr

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v3 0/5] sndif: add explicit back and front synchronization
  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-04-12 14:31     ` Konrad Rzeszutek Wilk
  2018-04-12 14:31     ` [Xen-devel][PATCH " Konrad Rzeszutek Wilk
  3 siblings, 0 replies; 32+ messages in thread
From: Konrad Rzeszutek Wilk @ 2018-04-12 14:31 UTC (permalink / raw)
  To: Oleksandr Andrushchenko
  Cc: Takashi Iwai, xen-devel, alsa-devel, Oleksandr Andrushchenko

On Wed, Mar 21, 2018 at 09:15:36AM +0200, Oleksandr Andrushchenko wrote:
> On 03/20/2018 10:22 PM, Takashi Iwai wrote:
> > On Mon, 19 Mar 2018 08:22:19 +0100,
> > 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:
> > > 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
> > I can't judge exactly about the protocol without the actual FE/BE
> > implementations, but the change looks good to me, especially if you've
> > already tested something.
> Thank you, I have tested the changes and need them to start upstreaming
> the frontend driver used to test the protocol.
> Do you mind if I put your Acked-by (or you prefer Reviewed-by?) tag to these
> patches:
> 
> [PATCH v3 4/5] sndif: Add explicit back and front synchronization
> [PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation
> 
> Please note, that the changes first to be merged into Xen and then I'll
> prepare
> the same, but for the kernel
> > 
> > If other people have no concern, let's go ahead with FE/BE stuff.
> Konrad, are you ok with the changes?

Yes. Thank you for your persistence.

Can you also add:

Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

Thank you!
> > 
> > thanks,
> > 
> > Takashi
> Thank you,
> Oleksandr

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-04-12 14:31     ` [Xen-devel][PATCH " Konrad Rzeszutek Wilk
  2018-04-12 14:35       ` [PATCH " Oleksandr Andrushchenko
@ 2018-04-12 14:35       ` Oleksandr Andrushchenko
  1 sibling, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-04-12 14:35 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk, Oleksandr_Andrushchenko
  Cc: Takashi Iwai, xen-devel, alsa-devel

On 04/12/2018 05:31 PM, Konrad Rzeszutek Wilk wrote:
> On Wed, Mar 21, 2018 at 09:15:36AM +0200, Oleksandr Andrushchenko wrote:
>> On 03/20/2018 10:22 PM, Takashi Iwai wrote:
>>> On Mon, 19 Mar 2018 08:22:19 +0100,
>>> 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:
>>>> 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
>>> I can't judge exactly about the protocol without the actual FE/BE
>>> implementations, but the change looks good to me, especially if you've
>>> already tested something.
>> Thank you, I have tested the changes and need them to start upstreaming
>> the frontend driver used to test the protocol.
>> Do you mind if I put your Acked-by (or you prefer Reviewed-by?) tag to these
>> patches:
>>
>> [PATCH v3 4/5] sndif: Add explicit back and front synchronization
>> [PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation
>>
>> Please note, that the changes first to be merged into Xen and then I'll
>> prepare
>> the same, but for the kernel
>>> If other people have no concern, let's go ahead with FE/BE stuff.
>> Konrad, are you ok with the changes?
> Yes. Thank you for your persistence.
>
> Can you also add:
>
> Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Great, can you please add r-b tags while applying or you want me to 
resend with r-b tags?
> Thank you!
>>> thanks,
>>>
>>> Takashi
>> Thank you,
>> Oleksandr

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v3 0/5] sndif: add explicit back and front synchronization
  2018-04-12 14:31     ` [Xen-devel][PATCH " Konrad Rzeszutek Wilk
@ 2018-04-12 14:35       ` Oleksandr Andrushchenko
  2018-04-12 14:35       ` [Xen-devel][PATCH " Oleksandr Andrushchenko
  1 sibling, 0 replies; 32+ messages in thread
From: Oleksandr Andrushchenko @ 2018-04-12 14:35 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk, Oleksandr_Andrushchenko
  Cc: Takashi Iwai, xen-devel, alsa-devel

On 04/12/2018 05:31 PM, Konrad Rzeszutek Wilk wrote:
> On Wed, Mar 21, 2018 at 09:15:36AM +0200, Oleksandr Andrushchenko wrote:
>> On 03/20/2018 10:22 PM, Takashi Iwai wrote:
>>> On Mon, 19 Mar 2018 08:22:19 +0100,
>>> 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:
>>>> 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
>>> I can't judge exactly about the protocol without the actual FE/BE
>>> implementations, but the change looks good to me, especially if you've
>>> already tested something.
>> Thank you, I have tested the changes and need them to start upstreaming
>> the frontend driver used to test the protocol.
>> Do you mind if I put your Acked-by (or you prefer Reviewed-by?) tag to these
>> patches:
>>
>> [PATCH v3 4/5] sndif: Add explicit back and front synchronization
>> [PATCH v3 5/5] sndif: Add explicit back and front parameter negotiation
>>
>> Please note, that the changes first to be merged into Xen and then I'll
>> prepare
>> the same, but for the kernel
>>> If other people have no concern, let's go ahead with FE/BE stuff.
>> Konrad, are you ok with the changes?
> Yes. Thank you for your persistence.
>
> Can you also add:
>
> Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Great, can you please add r-b tags while applying or you want me to 
resend with r-b tags?
> Thank you!
>>> thanks,
>>>
>>> Takashi
>> Thank you,
>> Oleksandr


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2018-04-12 14:35 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-19  7:22 [Xen-devel][PATCH v3 0/5] sndif: add explicit back and front synchronization Oleksandr Andrushchenko
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

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.