From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754193AbdA0HVz (ORCPT ); Fri, 27 Jan 2017 02:21:55 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:34104 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754038AbdA0HVx (ORCPT ); Fri, 27 Jan 2017 02:21:53 -0500 Subject: Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront To: Juergen Gross , linux-kernel@vger.kernel.org, linux-input@vger.kernel.org, xen-devel@lists.xenproject.org References: <20170127071239.913-1-jgross@suse.com> Cc: dmitry.torokhov@gmail.com From: Oleksandr Andrushchenko Message-ID: <5cbb25fa-2dee-f82f-e656-bc733c67c398@gmail.com> Date: Fri, 27 Jan 2017 09:21:50 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: <20170127071239.913-1-jgross@suse.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/27/2017 09:12 AM, Juergen Gross wrote: > Instead of using the default resolution of 800*600 for the pointing > device of xen-kbdfront try to read the resolution of the (virtual) > framebuffer device. Use the default as fallback only. > > Signed-off-by: Juergen Gross > --- > V2: get framebuffer resolution only if CONFIG_FB (Dmitry Torokhov) > --- > drivers/input/misc/xen-kbdfront.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > > diff --git a/drivers/input/misc/xen-kbdfront.c b/drivers/input/misc/xen-kbdfront.c > index 3900875..3aae9b4 100644 > --- a/drivers/input/misc/xen-kbdfront.c > +++ b/drivers/input/misc/xen-kbdfront.c > @@ -16,6 +16,7 @@ > #include > #include > #include > +#include > #include > #include > > @@ -108,7 +109,7 @@ static irqreturn_t input_handler(int rq, void *dev_id) > static int xenkbd_probe(struct xenbus_device *dev, > const struct xenbus_device_id *id) > { > - int ret, i; > + int ret, i, width, height; > unsigned int abs; > struct xenkbd_info *info; > struct input_dev *kbd, *ptr; > @@ -173,9 +174,17 @@ static int xenkbd_probe(struct xenbus_device *dev, > ptr->id.product = 0xfffe; > > if (abs) { > + width = XENFB_WIDTH; > + height = XENFB_HEIGHT; > +#ifdef CONFIG_FB > + if (registered_fb[0]) { This still will not help if FB gets registered after kbd+ptr > + width = registered_fb[0]->var.xres_virtual; > + height = registered_fb[0]->var.yres_virtual; > + } > +#endif > __set_bit(EV_ABS, ptr->evbit); > - input_set_abs_params(ptr, ABS_X, 0, XENFB_WIDTH, 0, 0); > - input_set_abs_params(ptr, ABS_Y, 0, XENFB_HEIGHT, 0, 0); > + input_set_abs_params(ptr, ABS_X, 0, width, 0, 0); > + input_set_abs_params(ptr, ABS_Y, 0, height, 0, 0); > } else { > input_set_capability(ptr, EV_REL, REL_X); > input_set_capability(ptr, EV_REL, REL_Y);