diff mbox

kbdif: Define "feature-raw-pointer" and "request-raw-pointer"

Message ID 1499086673-1877-1-git-send-email-owen.smith@citrix.com (mailing list archive)
State New, archived
Headers show

Commit Message

Owen Smith July 3, 2017, 12:57 p.m. UTC
Backends set "feature-raw-pointer" if its capable of reporting
absolute positions without scaling the coordinates to screen
size. This should be set during the backend init.
Frontends set "request-raw-pointer" to request that backends
do not rescale absolute coordinates to screen size, and the
coordinates remain in the range [0, 0x7fff]. This request is
only applicable if "request-abs-pointer" is also set. Frontends
should set this value before setting Connected.

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
Adding this feature will help determine the difference between older
backends and newer backends. In the case I'm interested in, the difference
between old QEMU vkbd backend which blocks waiting for the vfb device, which
is not present on HVM guests, and a newer QEMU backend that does not rely
on display information to rescale axis values.

 xen/include/public/io/kbdif.h | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

Comments

Paul Durrant July 3, 2017, 2:19 p.m. UTC | #1
> -----Original Message-----

> From: Xen-devel [mailto:xen-devel-bounces@lists.xen.org] On Behalf Of

> Owen Smith

> Sent: 03 July 2017 13:58

> To: xen-devel@lists.xen.org

> Cc: andr2000@gmail.com; sstabellini@kernel.org; Owen Smith

> <owen.smith@citrix.com>

> Subject: [Xen-devel] [PATCH] kbdif: Define "feature-raw-pointer" and

> "request-raw-pointer"

> 

> Backends set "feature-raw-pointer" if its capable of reporting

> absolute positions without scaling the coordinates to screen

> size. This should be set during the backend init.

> Frontends set "request-raw-pointer" to request that backends

> do not rescale absolute coordinates to screen size, and the

> coordinates remain in the range [0, 0x7fff]. This request is

> only applicable if "request-abs-pointer" is also set. Frontends

> should set this value before setting Connected.

> 

> Signed-off-by: Owen Smith <owen.smith@citrix.com>


This seems like an eminently sensible idea to me. The fact that it is not the default behaviour is shame, but that ship sailed long ago.

Reviewed-by: Paul Durrant <paul.durrant@citrix.com>


> ---

> Adding this feature will help determine the difference between older

> backends and newer backends. In the case I'm interested in, the difference

> between old QEMU vkbd backend which blocks waiting for the vfb device,

> which

> is not present on HVM guests, and a newer QEMU backend that does not

> rely

> on display information to rescale axis values.

> 

>  xen/include/public/io/kbdif.h | 14 ++++++++++++++

>  1 file changed, 14 insertions(+)

> 

> diff --git a/xen/include/public/io/kbdif.h b/xen/include/public/io/kbdif.h

> index dcbd71a..3ce54e9 100644

> --- a/xen/include/public/io/kbdif.h

> +++ b/xen/include/public/io/kbdif.h

> @@ -63,6 +63,13 @@

>   *      Backends, which support reporting of multi-touch events

>   *      should set this to 1.

>   *

> + * feature-raw-pointer

> + *      Values:        <uint>

> + *

> + *      Backends, which support reporting raw (unscaled) absolute

> coordinates

> + *      for pointer devices should set this to 1. Raw (unscaled) values have

> + *      a range of [0, 0x7fff].

> + *

>   *------------------------- Pointer Device Parameters ------------------------

>   *

>   * width

> @@ -98,6 +105,13 @@

>   *

>   *      Request backend to report multi-touch events.

>   *

> + * request-raw-pointer

> + *      Values:         <uint>

> + *

> + *      Request backend to report raw unscaled absolute pointer coordinates.

> + *      This option is only valid if request-abs-pointer is also set.

> + *      Raw unscaled coordinates have the range [0, 0x7fff]

> + *

>   *----------------------- Request Transport Parameters -----------------------

>   *

>   * event-channel

> --

> 2.1.4

> 

> 

> _______________________________________________

> Xen-devel mailing list

> Xen-devel@lists.xen.org

> https://lists.xen.org/xen-devel
Stefano Stabellini July 3, 2017, 11:49 p.m. UTC | #2
On Mon, 3 Jul 2017, Owen Smith wrote:
> Backends set "feature-raw-pointer" if its capable of reporting
> absolute positions without scaling the coordinates to screen
> size. This should be set during the backend init.
> Frontends set "request-raw-pointer" to request that backends
> do not rescale absolute coordinates to screen size, and the
> coordinates remain in the range [0, 0x7fff]. This request is
> only applicable if "request-abs-pointer" is also set. Frontends
> should set this value before setting Connected.
> 
> Signed-off-by: Owen Smith <owen.smith@citrix.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> Adding this feature will help determine the difference between older
> backends and newer backends. In the case I'm interested in, the difference
> between old QEMU vkbd backend which blocks waiting for the vfb device, which
> is not present on HVM guests, and a newer QEMU backend that does not rely
> on display information to rescale axis values.
> 
>  xen/include/public/io/kbdif.h | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/xen/include/public/io/kbdif.h b/xen/include/public/io/kbdif.h
> index dcbd71a..3ce54e9 100644
> --- a/xen/include/public/io/kbdif.h
> +++ b/xen/include/public/io/kbdif.h
> @@ -63,6 +63,13 @@
>   *      Backends, which support reporting of multi-touch events
>   *      should set this to 1.
>   *
> + * feature-raw-pointer
> + *      Values:        <uint>
> + *
> + *      Backends, which support reporting raw (unscaled) absolute coordinates
> + *      for pointer devices should set this to 1. Raw (unscaled) values have
> + *      a range of [0, 0x7fff].
> + *
>   *------------------------- Pointer Device Parameters ------------------------
>   *
>   * width
> @@ -98,6 +105,13 @@
>   *
>   *      Request backend to report multi-touch events.
>   *
> + * request-raw-pointer
> + *      Values:         <uint>
> + *
> + *      Request backend to report raw unscaled absolute pointer coordinates.
> + *      This option is only valid if request-abs-pointer is also set.
> + *      Raw unscaled coordinates have the range [0, 0x7fff]
> + *
>   *----------------------- Request Transport Parameters -----------------------
>   *
>   * event-channel
> -- 
> 2.1.4
>
Oleksandr Andrushchenko July 4, 2017, 5:52 a.m. UTC | #3
Hi, Owen!

On 07/03/2017 03:57 PM, Owen Smith wrote:
> determine the difference between older
> backends and newer backends. In the case I'm interested in, the difference
> between old QEMU vkbd backend which blocks waiting for the vfb device, which
> is not present on HVM guests, and a newer QEMU backend
For how long will it remain "new" and what will be the
next patch for yet another new backend?
So, in addition to your patch I would suggest we add backend
type and its version to get the information you need and rely
on that deterministically, not making indirect decisions on
if the pointer is raw for new backend only.
Please see [1] where backend "type" entry was discussed.

BTW, we are working on decoupling QEMU's vkbd from vfb
as it is required for vkbd to work with vdispl, not vfb,
so from having type and version we will also benefit.

Thank you,
Oleksandr

[1] https://patchwork.kernel.org/patch/9674807/
Stefano Stabellini July 18, 2017, 10:29 p.m. UTC | #4
On Mon, 3 Jul 2017, Stefano Stabellini wrote:
> On Mon, 3 Jul 2017, Owen Smith wrote:
> > Backends set "feature-raw-pointer" if its capable of reporting
> > absolute positions without scaling the coordinates to screen
> > size. This should be set during the backend init.
> > Frontends set "request-raw-pointer" to request that backends
> > do not rescale absolute coordinates to screen size, and the
> > coordinates remain in the range [0, 0x7fff]. This request is
> > only applicable if "request-abs-pointer" is also set. Frontends
> > should set this value before setting Connected.
> > 
> > Signed-off-by: Owen Smith <owen.smith@citrix.com>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Konrad, are you OK with this? Can I go ahead and commit it?


> 
> > ---
> > Adding this feature will help determine the difference between older
> > backends and newer backends. In the case I'm interested in, the difference
> > between old QEMU vkbd backend which blocks waiting for the vfb device, which
> > is not present on HVM guests, and a newer QEMU backend that does not rely
> > on display information to rescale axis values.
> > 
> >  xen/include/public/io/kbdif.h | 14 ++++++++++++++
> >  1 file changed, 14 insertions(+)
> > 
> > diff --git a/xen/include/public/io/kbdif.h b/xen/include/public/io/kbdif.h
> > index dcbd71a..3ce54e9 100644
> > --- a/xen/include/public/io/kbdif.h
> > +++ b/xen/include/public/io/kbdif.h
> > @@ -63,6 +63,13 @@
> >   *      Backends, which support reporting of multi-touch events
> >   *      should set this to 1.
> >   *
> > + * feature-raw-pointer
> > + *      Values:        <uint>
> > + *
> > + *      Backends, which support reporting raw (unscaled) absolute coordinates
> > + *      for pointer devices should set this to 1. Raw (unscaled) values have
> > + *      a range of [0, 0x7fff].
> > + *
> >   *------------------------- Pointer Device Parameters ------------------------
> >   *
> >   * width
> > @@ -98,6 +105,13 @@
> >   *
> >   *      Request backend to report multi-touch events.
> >   *
> > + * request-raw-pointer
> > + *      Values:         <uint>
> > + *
> > + *      Request backend to report raw unscaled absolute pointer coordinates.
> > + *      This option is only valid if request-abs-pointer is also set.
> > + *      Raw unscaled coordinates have the range [0, 0x7fff]
> > + *
> >   *----------------------- Request Transport Parameters -----------------------
> >   *
> >   * event-channel
> > -- 
> > 2.1.4
> > 
>
Konrad Rzeszutek Wilk July 19, 2017, 1:41 a.m. UTC | #5
On Tue, Jul 18, 2017 at 03:29:14PM -0700, Stefano Stabellini wrote:
> On Mon, 3 Jul 2017, Stefano Stabellini wrote:
> > On Mon, 3 Jul 2017, Owen Smith wrote:
> > > Backends set "feature-raw-pointer" if its capable of reporting
> > > absolute positions without scaling the coordinates to screen
> > > size. This should be set during the backend init.
> > > Frontends set "request-raw-pointer" to request that backends
> > > do not rescale absolute coordinates to screen size, and the
> > > coordinates remain in the range [0, 0x7fff]. This request is
> > > only applicable if "request-abs-pointer" is also set. Frontends
> > > should set this value before setting Connected.
> > > 
> > > Signed-off-by: Owen Smith <owen.smith@citrix.com>
> > 
> > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> Konrad, are you OK with this? Can I go ahead and commit it?

Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> 
> 
> > 
> > > ---
> > > Adding this feature will help determine the difference between older
> > > backends and newer backends. In the case I'm interested in, the difference
> > > between old QEMU vkbd backend which blocks waiting for the vfb device, which
> > > is not present on HVM guests, and a newer QEMU backend that does not rely
> > > on display information to rescale axis values.
> > > 
> > >  xen/include/public/io/kbdif.h | 14 ++++++++++++++
> > >  1 file changed, 14 insertions(+)
> > > 
> > > diff --git a/xen/include/public/io/kbdif.h b/xen/include/public/io/kbdif.h
> > > index dcbd71a..3ce54e9 100644
> > > --- a/xen/include/public/io/kbdif.h
> > > +++ b/xen/include/public/io/kbdif.h
> > > @@ -63,6 +63,13 @@
> > >   *      Backends, which support reporting of multi-touch events
> > >   *      should set this to 1.
> > >   *
> > > + * feature-raw-pointer
> > > + *      Values:        <uint>
> > > + *
> > > + *      Backends, which support reporting raw (unscaled) absolute coordinates
> > > + *      for pointer devices should set this to 1. Raw (unscaled) values have
> > > + *      a range of [0, 0x7fff].
> > > + *
> > >   *------------------------- Pointer Device Parameters ------------------------
> > >   *
> > >   * width
> > > @@ -98,6 +105,13 @@
> > >   *
> > >   *      Request backend to report multi-touch events.
> > >   *
> > > + * request-raw-pointer
> > > + *      Values:         <uint>
> > > + *
> > > + *      Request backend to report raw unscaled absolute pointer coordinates.
> > > + *      This option is only valid if request-abs-pointer is also set.
> > > + *      Raw unscaled coordinates have the range [0, 0x7fff]
> > > + *
> > >   *----------------------- Request Transport Parameters -----------------------
> > >   *
> > >   * event-channel
> > > -- 
> > > 2.1.4
> > > 
> >
diff mbox

Patch

diff --git a/xen/include/public/io/kbdif.h b/xen/include/public/io/kbdif.h
index dcbd71a..3ce54e9 100644
--- a/xen/include/public/io/kbdif.h
+++ b/xen/include/public/io/kbdif.h
@@ -63,6 +63,13 @@ 
  *      Backends, which support reporting of multi-touch events
  *      should set this to 1.
  *
+ * feature-raw-pointer
+ *      Values:        <uint>
+ *
+ *      Backends, which support reporting raw (unscaled) absolute coordinates
+ *      for pointer devices should set this to 1. Raw (unscaled) values have
+ *      a range of [0, 0x7fff].
+ *
  *------------------------- Pointer Device Parameters ------------------------
  *
  * width
@@ -98,6 +105,13 @@ 
  *
  *      Request backend to report multi-touch events.
  *
+ * request-raw-pointer
+ *      Values:         <uint>
+ *
+ *      Request backend to report raw unscaled absolute pointer coordinates.
+ *      This option is only valid if request-abs-pointer is also set.
+ *      Raw unscaled coordinates have the range [0, 0x7fff]
+ *
  *----------------------- Request Transport Parameters -----------------------
  *
  * event-channel