WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] fbfront: advertise either absolute or relative c

To: Olaf Hering <olaf@xxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] fbfront: advertise either absolute or relative coordinates
From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Date: Thu, 10 Mar 2011 18:09:38 +0000
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 10 Mar 2011 10:10:36 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20110310175822.GA32033@xxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <20110310175822.GA32033@xxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Alpine 2.00 (DEB 1167 2008-08-23)
On Thu, 10 Mar 2011, Olaf Hering wrote:
> A virtualized display device is usually viewed with the vncviewer
> application, either by 'xm vnc domU' or with vncviewer localhost:port.
> vncviewer and the RFB protocol provides absolute coordinates to the
> virtual display. These coordinates are either passed through to a PV
> guest or converted to relative coordinates for a HVM guest.
> 
> A PV guest receives these coordinates and passes them to the kernels
> evdev driver. There it can be picked up by applications such as the
> xorg-input drivers. Using absolute coordinates avoids issues such as
> guest mouse pointer not tracking host mouse pointer due to wrong mouse
> acceleration settings in the guests X display.
> 
> Advertise either absolute or relative coordinates to the input system
> and the evdev driver, depending on what dom0 provides. The xorg-input
> driver prefers relative coordinates even if a devices provides both.
> 
> Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
> 
> ---
>  drivers/xen/fbfront/xenkbd.c |   28 ++++++++++++++--------------
>  1 file changed, 14 insertions(+), 14 deletions(-)
> 
> Index: linux-2.6.18-xen.hg/drivers/xen/fbfront/xenkbd.c
> ===================================================================
> --- linux-2.6.18-xen.hg.orig/drivers/xen/fbfront/xenkbd.c
> +++ linux-2.6.18-xen.hg/drivers/xen/fbfront/xenkbd.c
> @@ -104,7 +104,7 @@ static irqreturn_t input_handler(int rq,
>  int __devinit xenkbd_probe(struct xenbus_device *dev,
>                          const struct xenbus_device_id *id)
>  {
> -     int ret, i;
> +     int ret, i, abs;
>       struct xenkbd_info *info;
>       struct input_dev *kbd, *ptr;
>  
> @@ -123,6 +123,11 @@ int __devinit xenkbd_probe(struct xenbus
>       info->page->in_cons = info->page->in_prod = 0;
>       info->page->out_cons = info->page->out_prod = 0;
>  
> +     if (xenbus_scanf(XBT_NIL, dev->otherend, "feature-abs-pointer", "%d", 
> &abs) < 0)
> +             abs = 0;
> +     if (abs)
> +             xenbus_printf(XBT_NIL, dev->nodename, "request-abs-pointer", 
> "1");
> +
>       /* keyboard */
>       kbd = input_allocate_device();
>       if (!kbd)
> @@ -155,10 +160,15 @@ int __devinit xenkbd_probe(struct xenbus
>       ptr->id.bustype = BUS_PCI;
>       ptr->id.vendor = 0x5853;
>       ptr->id.product = 0xfffe;
> -     ptr->evbit[0] = BIT(EV_KEY) | BIT(EV_REL) | BIT(EV_ABS);
> +     ptr->evbit[0] = BIT(EV_KEY);
> +     if (abs)
> +             ptr->evbit[0] |= BIT(EV_ABS);
> +     else {
> +             ptr->evbit[0] |= BIT(EV_REL);
> +             ptr->relbit[0] = BIT(REL_X) | BIT(REL_Y) | BIT(REL_WHEEL);
> +     }
>       for (i = BTN_LEFT; i <= BTN_TASK; i++)
>               set_bit(i, ptr->keybit);
> -     ptr->relbit[0] = BIT(REL_X) | BIT(REL_Y) | BIT(REL_WHEEL);
>       input_set_abs_params(ptr, ABS_X, 0, XENFB_WIDTH, 0, 0);
>       input_set_abs_params(ptr, ABS_Y, 0, XENFB_HEIGHT, 0, 0);
>  

does this mean that we are not getting any wheel events when we are
using absolute coordinates?


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel