* [PATCH v2] xen,input: try to read screen resolution for xen-kbdfront @ 2017-01-27 7:12 Juergen Gross 2017-01-27 7:21 ` Oleksandr Andrushchenko 0 siblings, 1 reply; 23+ messages in thread From: Juergen Gross @ 2017-01-27 7:12 UTC (permalink / raw) To: linux-kernel, linux-input, xen-devel; +Cc: dmitry.torokhov, Juergen Gross 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 <jgross@suse.com> --- 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 <linux/kernel.h> #include <linux/errno.h> #include <linux/module.h> +#include <linux/fb.h> #include <linux/input.h> #include <linux/slab.h> @@ -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]) { + 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); -- 2.10.2 ^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-01-27 7:12 [PATCH v2] xen,input: try to read screen resolution for xen-kbdfront Juergen Gross @ 2017-01-27 7:21 ` Oleksandr Andrushchenko 0 siblings, 0 replies; 23+ messages in thread From: Oleksandr Andrushchenko @ 2017-01-27 7:21 UTC (permalink / raw) To: Juergen Gross, linux-kernel, linux-input, xen-devel; +Cc: dmitry.torokhov 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 <jgross@suse.com> > --- > 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 <linux/kernel.h> > #include <linux/errno.h> > #include <linux/module.h> > +#include <linux/fb.h> > #include <linux/input.h> > #include <linux/slab.h> > > @@ -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); ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront @ 2017-01-27 7:21 ` Oleksandr Andrushchenko 0 siblings, 0 replies; 23+ messages in thread From: Oleksandr Andrushchenko @ 2017-01-27 7:21 UTC (permalink / raw) To: Juergen Gross, linux-kernel, linux-input, xen-devel; +Cc: dmitry.torokhov 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 <jgross@suse.com> > --- > 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 <linux/kernel.h> > #include <linux/errno.h> > #include <linux/module.h> > +#include <linux/fb.h> > #include <linux/input.h> > #include <linux/slab.h> > > @@ -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); _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-01-27 7:21 ` Oleksandr Andrushchenko @ 2017-01-27 7:46 ` Juergen Gross -1 siblings, 0 replies; 23+ messages in thread From: Juergen Gross @ 2017-01-27 7:46 UTC (permalink / raw) To: Oleksandr Andrushchenko, linux-kernel, linux-input, xen-devel Cc: dmitry.torokhov On 27/01/17 08:21, Oleksandr Andrushchenko wrote: > 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 <jgross@suse.com> >> --- >> 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 <linux/kernel.h> >> #include <linux/errno.h> >> #include <linux/module.h> >> +#include <linux/fb.h> >> #include <linux/input.h> >> #include <linux/slab.h> >> @@ -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 Hmm, so you think I should add a call to fb_register_client() to get events for new registered framebuffer devices? This would probably work. I'll have a try. Thanks, Juergen ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront @ 2017-01-27 7:46 ` Juergen Gross 0 siblings, 0 replies; 23+ messages in thread From: Juergen Gross @ 2017-01-27 7:46 UTC (permalink / raw) To: Oleksandr Andrushchenko, linux-kernel, linux-input, xen-devel Cc: dmitry.torokhov On 27/01/17 08:21, Oleksandr Andrushchenko wrote: > 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 <jgross@suse.com> >> --- >> 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 <linux/kernel.h> >> #include <linux/errno.h> >> #include <linux/module.h> >> +#include <linux/fb.h> >> #include <linux/input.h> >> #include <linux/slab.h> >> @@ -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 Hmm, so you think I should add a call to fb_register_client() to get events for new registered framebuffer devices? This would probably work. I'll have a try. Thanks, Juergen _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-01-27 7:46 ` Juergen Gross (?) @ 2017-01-27 7:53 ` Oleksandr Andrushchenko 2017-01-27 8:14 ` Juergen Gross 2017-01-27 8:14 ` [Xen-devel] " Juergen Gross -1 siblings, 2 replies; 23+ messages in thread From: Oleksandr Andrushchenko @ 2017-01-27 7:53 UTC (permalink / raw) To: Juergen Gross, linux-kernel, linux-input, xen-devel; +Cc: dmitry.torokhov On 01/27/2017 09:46 AM, Juergen Gross wrote: > On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >> 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 <jgross@suse.com> >>> --- >>> 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 <linux/kernel.h> >>> #include <linux/errno.h> >>> #include <linux/module.h> >>> +#include <linux/fb.h> >>> #include <linux/input.h> >>> #include <linux/slab.h> >>> @@ -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 > Hmm, so you think I should add a call to fb_register_client() to get > events for new registered framebuffer devices? yes, but also pay attention to CONFIG_FB_NOTIFY: you may still end up w/o notification. > > This would probably work. I'll have a try. > > > Thanks, > > Juergen My bigger concern here is that we try to tie keyboard and pointer device to the framebuffer. IMO, these are independent parts of the system and the relation depends on the use-case. One can have graphics enabled w/o framebuffer at all, e.g. DRM/KMS + OpenGLES + Weston + kbd + ptr... ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-01-27 7:53 ` [Xen-devel] " Oleksandr Andrushchenko @ 2017-01-27 8:14 ` Juergen Gross 2017-01-27 8:14 ` [Xen-devel] " Juergen Gross 1 sibling, 0 replies; 23+ messages in thread From: Juergen Gross @ 2017-01-27 8:14 UTC (permalink / raw) To: Oleksandr Andrushchenko, linux-kernel, linux-input, xen-devel Cc: dmitry.torokhov On 27/01/17 08:53, Oleksandr Andrushchenko wrote: > On 01/27/2017 09:46 AM, Juergen Gross wrote: >> On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >>> 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 <jgross@suse.com> >>>> --- >>>> 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 <linux/kernel.h> >>>> #include <linux/errno.h> >>>> #include <linux/module.h> >>>> +#include <linux/fb.h> >>>> #include <linux/input.h> >>>> #include <linux/slab.h> >>>> @@ -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 >> Hmm, so you think I should add a call to fb_register_client() to get >> events for new registered framebuffer devices? > yes, but also pay attention to CONFIG_FB_NOTIFY: you may still > end up w/o notification. Okay, that's not worse than today. >> This would probably work. I'll have a try. >> >> >> Thanks, >> >> Juergen > My bigger concern here is that we try to tie keyboard and pointer device > to the framebuffer. IMO, these are independent parts of the system and > the relation > depends on the use-case. One can have graphics enabled w/o framebuffer > at all, e.g. > DRM/KMS + OpenGLES + Weston + kbd + ptr... Again: that's a use case which will work as today. The current defaults are being used. The question is whether we should add a module parameter switching off the automatic adaption of the resolution as there might be use cases where we don't want this feature. Juergen _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-01-27 7:53 ` [Xen-devel] " Oleksandr Andrushchenko 2017-01-27 8:14 ` Juergen Gross @ 2017-01-27 8:14 ` Juergen Gross 2017-01-27 8:26 ` Oleksandr Andrushchenko 1 sibling, 1 reply; 23+ messages in thread From: Juergen Gross @ 2017-01-27 8:14 UTC (permalink / raw) To: Oleksandr Andrushchenko, linux-kernel, linux-input, xen-devel Cc: dmitry.torokhov On 27/01/17 08:53, Oleksandr Andrushchenko wrote: > On 01/27/2017 09:46 AM, Juergen Gross wrote: >> On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >>> 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 <jgross@suse.com> >>>> --- >>>> 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 <linux/kernel.h> >>>> #include <linux/errno.h> >>>> #include <linux/module.h> >>>> +#include <linux/fb.h> >>>> #include <linux/input.h> >>>> #include <linux/slab.h> >>>> @@ -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 >> Hmm, so you think I should add a call to fb_register_client() to get >> events for new registered framebuffer devices? > yes, but also pay attention to CONFIG_FB_NOTIFY: you may still > end up w/o notification. Okay, that's not worse than today. >> This would probably work. I'll have a try. >> >> >> Thanks, >> >> Juergen > My bigger concern here is that we try to tie keyboard and pointer device > to the framebuffer. IMO, these are independent parts of the system and > the relation > depends on the use-case. One can have graphics enabled w/o framebuffer > at all, e.g. > DRM/KMS + OpenGLES + Weston + kbd + ptr... Again: that's a use case which will work as today. The current defaults are being used. The question is whether we should add a module parameter switching off the automatic adaption of the resolution as there might be use cases where we don't want this feature. Juergen ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-01-27 8:14 ` [Xen-devel] " Juergen Gross @ 2017-01-27 8:26 ` Oleksandr Andrushchenko 0 siblings, 0 replies; 23+ messages in thread From: Oleksandr Andrushchenko @ 2017-01-27 8:26 UTC (permalink / raw) To: Juergen Gross, linux-kernel, linux-input, xen-devel; +Cc: dmitry.torokhov On 01/27/2017 10:14 AM, Juergen Gross wrote: > On 27/01/17 08:53, Oleksandr Andrushchenko wrote: >> On 01/27/2017 09:46 AM, Juergen Gross wrote: >>> On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >>>> 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 <jgross@suse.com> >>>>> --- >>>>> 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 <linux/kernel.h> >>>>> #include <linux/errno.h> >>>>> #include <linux/module.h> >>>>> +#include <linux/fb.h> >>>>> #include <linux/input.h> >>>>> #include <linux/slab.h> >>>>> @@ -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 >>> Hmm, so you think I should add a call to fb_register_client() to get >>> events for new registered framebuffer devices? >> yes, but also pay attention to CONFIG_FB_NOTIFY: you may still >> end up w/o notification. > Okay, that's not worse than today. agree >>> This would probably work. I'll have a try. >>> >>> >>> Thanks, >>> >>> Juergen >> My bigger concern here is that we try to tie keyboard and pointer device >> to the framebuffer. IMO, these are independent parts of the system and >> the relation >> depends on the use-case. One can have graphics enabled w/o framebuffer >> at all, e.g. >> DRM/KMS + OpenGLES + Weston + kbd + ptr... > Again: that's a use case which will work as today. The current defaults > are being used. > > The question is whether we should add a module parameter switching off > the automatic adaption of the resolution as there might be use cases > where we don't want this feature. I think for those who doesn't want this resolution there is still a possibility to change it on backend's XenbusStateConnected So, no need for module parameter, IMO > > Juergen ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront @ 2017-01-27 8:26 ` Oleksandr Andrushchenko 0 siblings, 0 replies; 23+ messages in thread From: Oleksandr Andrushchenko @ 2017-01-27 8:26 UTC (permalink / raw) To: Juergen Gross, linux-kernel, linux-input, xen-devel; +Cc: dmitry.torokhov On 01/27/2017 10:14 AM, Juergen Gross wrote: > On 27/01/17 08:53, Oleksandr Andrushchenko wrote: >> On 01/27/2017 09:46 AM, Juergen Gross wrote: >>> On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >>>> 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 <jgross@suse.com> >>>>> --- >>>>> 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 <linux/kernel.h> >>>>> #include <linux/errno.h> >>>>> #include <linux/module.h> >>>>> +#include <linux/fb.h> >>>>> #include <linux/input.h> >>>>> #include <linux/slab.h> >>>>> @@ -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 >>> Hmm, so you think I should add a call to fb_register_client() to get >>> events for new registered framebuffer devices? >> yes, but also pay attention to CONFIG_FB_NOTIFY: you may still >> end up w/o notification. > Okay, that's not worse than today. agree >>> This would probably work. I'll have a try. >>> >>> >>> Thanks, >>> >>> Juergen >> My bigger concern here is that we try to tie keyboard and pointer device >> to the framebuffer. IMO, these are independent parts of the system and >> the relation >> depends on the use-case. One can have graphics enabled w/o framebuffer >> at all, e.g. >> DRM/KMS + OpenGLES + Weston + kbd + ptr... > Again: that's a use case which will work as today. The current defaults > are being used. > > The question is whether we should add a module parameter switching off > the automatic adaption of the resolution as there might be use cases > where we don't want this feature. I think for those who doesn't want this resolution there is still a possibility to change it on backend's XenbusStateConnected So, no need for module parameter, IMO > > Juergen _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-01-27 8:26 ` Oleksandr Andrushchenko @ 2017-01-27 8:31 ` Juergen Gross -1 siblings, 0 replies; 23+ messages in thread From: Juergen Gross @ 2017-01-27 8:31 UTC (permalink / raw) To: Oleksandr Andrushchenko, linux-kernel, linux-input, xen-devel Cc: dmitry.torokhov On 27/01/17 09:26, Oleksandr Andrushchenko wrote: > On 01/27/2017 10:14 AM, Juergen Gross wrote: >> On 27/01/17 08:53, Oleksandr Andrushchenko wrote: >>> On 01/27/2017 09:46 AM, Juergen Gross wrote: >>>> On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >>>>> 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 <jgross@suse.com> >>>>>> --- >>>>>> 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 <linux/kernel.h> >>>>>> #include <linux/errno.h> >>>>>> #include <linux/module.h> >>>>>> +#include <linux/fb.h> >>>>>> #include <linux/input.h> >>>>>> #include <linux/slab.h> >>>>>> @@ -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 >>>> Hmm, so you think I should add a call to fb_register_client() to get >>>> events for new registered framebuffer devices? >>> yes, but also pay attention to CONFIG_FB_NOTIFY: you may still >>> end up w/o notification. >> Okay, that's not worse than today. > agree >>>> This would probably work. I'll have a try. >>>> >>>> >>>> Thanks, >>>> >>>> Juergen >>> My bigger concern here is that we try to tie keyboard and pointer device >>> to the framebuffer. IMO, these are independent parts of the system and >>> the relation >>> depends on the use-case. One can have graphics enabled w/o framebuffer >>> at all, e.g. >>> DRM/KMS + OpenGLES + Weston + kbd + ptr... >> Again: that's a use case which will work as today. The current defaults >> are being used. >> >> The question is whether we should add a module parameter switching off >> the automatic adaption of the resolution as there might be use cases >> where we don't want this feature. > I think for those who doesn't want this resolution there is > still a possibility to change it on backend's XenbusStateConnected > So, no need for module parameter, IMO Fine. I'll send V3 soon. Juergen ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront @ 2017-01-27 8:31 ` Juergen Gross 0 siblings, 0 replies; 23+ messages in thread From: Juergen Gross @ 2017-01-27 8:31 UTC (permalink / raw) To: Oleksandr Andrushchenko, linux-kernel, linux-input, xen-devel Cc: dmitry.torokhov On 27/01/17 09:26, Oleksandr Andrushchenko wrote: > On 01/27/2017 10:14 AM, Juergen Gross wrote: >> On 27/01/17 08:53, Oleksandr Andrushchenko wrote: >>> On 01/27/2017 09:46 AM, Juergen Gross wrote: >>>> On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >>>>> 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 <jgross@suse.com> >>>>>> --- >>>>>> 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 <linux/kernel.h> >>>>>> #include <linux/errno.h> >>>>>> #include <linux/module.h> >>>>>> +#include <linux/fb.h> >>>>>> #include <linux/input.h> >>>>>> #include <linux/slab.h> >>>>>> @@ -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 >>>> Hmm, so you think I should add a call to fb_register_client() to get >>>> events for new registered framebuffer devices? >>> yes, but also pay attention to CONFIG_FB_NOTIFY: you may still >>> end up w/o notification. >> Okay, that's not worse than today. > agree >>>> This would probably work. I'll have a try. >>>> >>>> >>>> Thanks, >>>> >>>> Juergen >>> My bigger concern here is that we try to tie keyboard and pointer device >>> to the framebuffer. IMO, these are independent parts of the system and >>> the relation >>> depends on the use-case. One can have graphics enabled w/o framebuffer >>> at all, e.g. >>> DRM/KMS + OpenGLES + Weston + kbd + ptr... >> Again: that's a use case which will work as today. The current defaults >> are being used. >> >> The question is whether we should add a module parameter switching off >> the automatic adaption of the resolution as there might be use cases >> where we don't want this feature. > I think for those who doesn't want this resolution there is > still a possibility to change it on backend's XenbusStateConnected > So, no need for module parameter, IMO Fine. I'll send V3 soon. Juergen _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-01-27 8:31 ` Juergen Gross @ 2017-01-27 16:10 ` Dmitry Torokhov -1 siblings, 0 replies; 23+ messages in thread From: Dmitry Torokhov @ 2017-01-27 16:10 UTC (permalink / raw) To: Juergen Gross, Oleksandr Andrushchenko, linux-kernel, linux-input, xen-devel On January 27, 2017 12:31:19 AM PST, Juergen Gross <jgross@suse.com> wrote: >On 27/01/17 09:26, Oleksandr Andrushchenko wrote: >> On 01/27/2017 10:14 AM, Juergen Gross wrote: >>> On 27/01/17 08:53, Oleksandr Andrushchenko wrote: >>>> On 01/27/2017 09:46 AM, Juergen Gross wrote: >>>>> On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >>>>>> 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 <jgross@suse.com> >>>>>>> --- >>>>>>> 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 <linux/kernel.h> >>>>>>> #include <linux/errno.h> >>>>>>> #include <linux/module.h> >>>>>>> +#include <linux/fb.h> >>>>>>> #include <linux/input.h> >>>>>>> #include <linux/slab.h> >>>>>>> @@ -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 >>>>> Hmm, so you think I should add a call to fb_register_client() to >get >>>>> events for new registered framebuffer devices? >>>> yes, but also pay attention to CONFIG_FB_NOTIFY: you may still >>>> end up w/o notification. >>> Okay, that's not worse than today. >> agree >>>>> This would probably work. I'll have a try. >>>>> >>>>> >>>>> Thanks, >>>>> >>>>> Juergen >>>> My bigger concern here is that we try to tie keyboard and pointer >device >>>> to the framebuffer. IMO, these are independent parts of the system >and >>>> the relation >>>> depends on the use-case. One can have graphics enabled w/o >framebuffer >>>> at all, e.g. >>>> DRM/KMS + OpenGLES + Weston + kbd + ptr... >>> Again: that's a use case which will work as today. The current >defaults >>> are being used. >>> >>> The question is whether we should add a module parameter switching >off >>> the automatic adaption of the resolution as there might be use cases >>> where we don't want this feature. >> I think for those who doesn't want this resolution there is >> still a possibility to change it on backend's XenbusStateConnected >> So, no need for module parameter, IMO > >Fine. > >I'll send V3 soon. How about you do the axis adjustment from userspace (udev rule), and leave kernel as is? Thanks. -- Dmitry ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront @ 2017-01-27 16:10 ` Dmitry Torokhov 0 siblings, 0 replies; 23+ messages in thread From: Dmitry Torokhov @ 2017-01-27 16:10 UTC (permalink / raw) To: Juergen Gross, Oleksandr Andrushchenko, linux-kernel, linux-input, xen-devel On January 27, 2017 12:31:19 AM PST, Juergen Gross <jgross@suse.com> wrote: >On 27/01/17 09:26, Oleksandr Andrushchenko wrote: >> On 01/27/2017 10:14 AM, Juergen Gross wrote: >>> On 27/01/17 08:53, Oleksandr Andrushchenko wrote: >>>> On 01/27/2017 09:46 AM, Juergen Gross wrote: >>>>> On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >>>>>> 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 <jgross@suse.com> >>>>>>> --- >>>>>>> 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 <linux/kernel.h> >>>>>>> #include <linux/errno.h> >>>>>>> #include <linux/module.h> >>>>>>> +#include <linux/fb.h> >>>>>>> #include <linux/input.h> >>>>>>> #include <linux/slab.h> >>>>>>> @@ -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 >>>>> Hmm, so you think I should add a call to fb_register_client() to >get >>>>> events for new registered framebuffer devices? >>>> yes, but also pay attention to CONFIG_FB_NOTIFY: you may still >>>> end up w/o notification. >>> Okay, that's not worse than today. >> agree >>>>> This would probably work. I'll have a try. >>>>> >>>>> >>>>> Thanks, >>>>> >>>>> Juergen >>>> My bigger concern here is that we try to tie keyboard and pointer >device >>>> to the framebuffer. IMO, these are independent parts of the system >and >>>> the relation >>>> depends on the use-case. One can have graphics enabled w/o >framebuffer >>>> at all, e.g. >>>> DRM/KMS + OpenGLES + Weston + kbd + ptr... >>> Again: that's a use case which will work as today. The current >defaults >>> are being used. >>> >>> The question is whether we should add a module parameter switching >off >>> the automatic adaption of the resolution as there might be use cases >>> where we don't want this feature. >> I think for those who doesn't want this resolution there is >> still a possibility to change it on backend's XenbusStateConnected >> So, no need for module parameter, IMO > >Fine. > >I'll send V3 soon. How about you do the axis adjustment from userspace (udev rule), and leave kernel as is? Thanks. -- Dmitry _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-01-27 16:10 ` Dmitry Torokhov (?) @ 2017-01-30 11:23 ` Juergen Gross 2017-01-30 11:27 ` Oleksandr Andrushchenko -1 siblings, 1 reply; 23+ messages in thread From: Juergen Gross @ 2017-01-30 11:23 UTC (permalink / raw) To: Dmitry Torokhov, Oleksandr Andrushchenko, linux-kernel, linux-input, xen-devel On 27/01/17 17:10, Dmitry Torokhov wrote: > On January 27, 2017 12:31:19 AM PST, Juergen Gross <jgross@suse.com> wrote: >> On 27/01/17 09:26, Oleksandr Andrushchenko wrote: >>> On 01/27/2017 10:14 AM, Juergen Gross wrote: >>>> On 27/01/17 08:53, Oleksandr Andrushchenko wrote: >>>>> On 01/27/2017 09:46 AM, Juergen Gross wrote: >>>>>> On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >>>>>>> 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 <jgross@suse.com> >>>>>>>> --- >>>>>>>> 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 <linux/kernel.h> >>>>>>>> #include <linux/errno.h> >>>>>>>> #include <linux/module.h> >>>>>>>> +#include <linux/fb.h> >>>>>>>> #include <linux/input.h> >>>>>>>> #include <linux/slab.h> >>>>>>>> @@ -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 >>>>>> Hmm, so you think I should add a call to fb_register_client() to >> get >>>>>> events for new registered framebuffer devices? >>>>> yes, but also pay attention to CONFIG_FB_NOTIFY: you may still >>>>> end up w/o notification. >>>> Okay, that's not worse than today. >>> agree >>>>>> This would probably work. I'll have a try. >>>>>> >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Juergen >>>>> My bigger concern here is that we try to tie keyboard and pointer >> device >>>>> to the framebuffer. IMO, these are independent parts of the system >> and >>>>> the relation >>>>> depends on the use-case. One can have graphics enabled w/o >> framebuffer >>>>> at all, e.g. >>>>> DRM/KMS + OpenGLES + Weston + kbd + ptr... >>>> Again: that's a use case which will work as today. The current >> defaults >>>> are being used. >>>> >>>> The question is whether we should add a module parameter switching >> off >>>> the automatic adaption of the resolution as there might be use cases >>>> where we don't want this feature. >>> I think for those who doesn't want this resolution there is >>> still a possibility to change it on backend's XenbusStateConnected >>> So, no need for module parameter, IMO >> >> Fine. >> >> I'll send V3 soon. > > How about you do the axis adjustment from userspace (udev rule), and leave kernel as is? Hmm, is this a good idea? I'd need a udev rule to trigger when either the pointing device or a new frame buffer is showing up. In both cases I need to read the geometry of the frame buffer (in case it exists) and set the geometry of the pointing device (in case it exists) to the same values. This seems to be much more complicated than the required changes in the driver. I could be wrong, of course, especially as I'm no expert in writing udev rules. :-) Juergen ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-01-30 11:23 ` [Xen-devel] " Juergen Gross @ 2017-01-30 11:27 ` Oleksandr Andrushchenko 0 siblings, 0 replies; 23+ messages in thread From: Oleksandr Andrushchenko @ 2017-01-30 11:27 UTC (permalink / raw) To: Juergen Gross, Dmitry Torokhov, linux-kernel, linux-input, xen-devel On 01/30/2017 01:23 PM, Juergen Gross wrote: > On 27/01/17 17:10, Dmitry Torokhov wrote: >> On January 27, 2017 12:31:19 AM PST, Juergen Gross <jgross@suse.com> wrote: >>> On 27/01/17 09:26, Oleksandr Andrushchenko wrote: >>>> On 01/27/2017 10:14 AM, Juergen Gross wrote: >>>>> On 27/01/17 08:53, Oleksandr Andrushchenko wrote: >>>>>> On 01/27/2017 09:46 AM, Juergen Gross wrote: >>>>>>> On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >>>>>>>> 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 <jgross@suse.com> >>>>>>>>> --- >>>>>>>>> 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 <linux/kernel.h> >>>>>>>>> #include <linux/errno.h> >>>>>>>>> #include <linux/module.h> >>>>>>>>> +#include <linux/fb.h> >>>>>>>>> #include <linux/input.h> >>>>>>>>> #include <linux/slab.h> >>>>>>>>> @@ -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 >>>>>>> Hmm, so you think I should add a call to fb_register_client() to >>> get >>>>>>> events for new registered framebuffer devices? >>>>>> yes, but also pay attention to CONFIG_FB_NOTIFY: you may still >>>>>> end up w/o notification. >>>>> Okay, that's not worse than today. >>>> agree >>>>>>> This would probably work. I'll have a try. >>>>>>> >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Juergen >>>>>> My bigger concern here is that we try to tie keyboard and pointer >>> device >>>>>> to the framebuffer. IMO, these are independent parts of the system >>> and >>>>>> the relation >>>>>> depends on the use-case. One can have graphics enabled w/o >>> framebuffer >>>>>> at all, e.g. >>>>>> DRM/KMS + OpenGLES + Weston + kbd + ptr... >>>>> Again: that's a use case which will work as today. The current >>> defaults >>>>> are being used. >>>>> >>>>> The question is whether we should add a module parameter switching >>> off >>>>> the automatic adaption of the resolution as there might be use cases >>>>> where we don't want this feature. >>>> I think for those who doesn't want this resolution there is >>>> still a possibility to change it on backend's XenbusStateConnected >>>> So, no need for module parameter, IMO >>> Fine. >>> >>> I'll send V3 soon. >> How about you do the axis adjustment from userspace (udev rule), and leave kernel as is? > Hmm, is this a good idea? > > I'd need a udev rule to trigger when either the pointing device or a > new frame buffer is showing up. In both cases I need to read the > geometry of the frame buffer (in case it exists) and set the geometry > of the pointing device (in case it exists) to the same values. This > seems to be much more complicated than the required changes in the > driver. > > I could be wrong, of course, especially as I'm no expert in writing > udev rules. :-) And you may also end up with thin Dom0 w/o udev at all... > > Juergen ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront @ 2017-01-30 11:27 ` Oleksandr Andrushchenko 0 siblings, 0 replies; 23+ messages in thread From: Oleksandr Andrushchenko @ 2017-01-30 11:27 UTC (permalink / raw) To: Juergen Gross, Dmitry Torokhov, linux-kernel, linux-input, xen-devel On 01/30/2017 01:23 PM, Juergen Gross wrote: > On 27/01/17 17:10, Dmitry Torokhov wrote: >> On January 27, 2017 12:31:19 AM PST, Juergen Gross <jgross@suse.com> wrote: >>> On 27/01/17 09:26, Oleksandr Andrushchenko wrote: >>>> On 01/27/2017 10:14 AM, Juergen Gross wrote: >>>>> On 27/01/17 08:53, Oleksandr Andrushchenko wrote: >>>>>> On 01/27/2017 09:46 AM, Juergen Gross wrote: >>>>>>> On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >>>>>>>> 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 <jgross@suse.com> >>>>>>>>> --- >>>>>>>>> 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 <linux/kernel.h> >>>>>>>>> #include <linux/errno.h> >>>>>>>>> #include <linux/module.h> >>>>>>>>> +#include <linux/fb.h> >>>>>>>>> #include <linux/input.h> >>>>>>>>> #include <linux/slab.h> >>>>>>>>> @@ -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 >>>>>>> Hmm, so you think I should add a call to fb_register_client() to >>> get >>>>>>> events for new registered framebuffer devices? >>>>>> yes, but also pay attention to CONFIG_FB_NOTIFY: you may still >>>>>> end up w/o notification. >>>>> Okay, that's not worse than today. >>>> agree >>>>>>> This would probably work. I'll have a try. >>>>>>> >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Juergen >>>>>> My bigger concern here is that we try to tie keyboard and pointer >>> device >>>>>> to the framebuffer. IMO, these are independent parts of the system >>> and >>>>>> the relation >>>>>> depends on the use-case. One can have graphics enabled w/o >>> framebuffer >>>>>> at all, e.g. >>>>>> DRM/KMS + OpenGLES + Weston + kbd + ptr... >>>>> Again: that's a use case which will work as today. The current >>> defaults >>>>> are being used. >>>>> >>>>> The question is whether we should add a module parameter switching >>> off >>>>> the automatic adaption of the resolution as there might be use cases >>>>> where we don't want this feature. >>>> I think for those who doesn't want this resolution there is >>>> still a possibility to change it on backend's XenbusStateConnected >>>> So, no need for module parameter, IMO >>> Fine. >>> >>> I'll send V3 soon. >> How about you do the axis adjustment from userspace (udev rule), and leave kernel as is? > Hmm, is this a good idea? > > I'd need a udev rule to trigger when either the pointing device or a > new frame buffer is showing up. In both cases I need to read the > geometry of the frame buffer (in case it exists) and set the geometry > of the pointing device (in case it exists) to the same values. This > seems to be much more complicated than the required changes in the > driver. > > I could be wrong, of course, especially as I'm no expert in writing > udev rules. :-) And you may also end up with thin Dom0 w/o udev at all... > > Juergen _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-01-30 11:27 ` Oleksandr Andrushchenko (?) @ 2017-02-17 19:47 ` Dmitry Torokhov -1 siblings, 0 replies; 23+ messages in thread From: Dmitry Torokhov @ 2017-02-17 19:47 UTC (permalink / raw) To: Oleksandr Andrushchenko Cc: Juergen Gross, xen-devel, linux-kernel, linux-input On Mon, Jan 30, 2017 at 01:27:29PM +0200, Oleksandr Andrushchenko wrote: > On 01/30/2017 01:23 PM, Juergen Gross wrote: > >On 27/01/17 17:10, Dmitry Torokhov wrote: > >>On January 27, 2017 12:31:19 AM PST, Juergen Gross <jgross@suse.com> wrote: > >>>On 27/01/17 09:26, Oleksandr Andrushchenko wrote: > >>>>On 01/27/2017 10:14 AM, Juergen Gross wrote: > >>>>>On 27/01/17 08:53, Oleksandr Andrushchenko wrote: > >>>>>>On 01/27/2017 09:46 AM, Juergen Gross wrote: > >>>>>>>On 27/01/17 08:21, Oleksandr Andrushchenko wrote: > >>>>>>>>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 <jgross@suse.com> > >>>>>>>>>--- > >>>>>>>>>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 <linux/kernel.h> > >>>>>>>>> #include <linux/errno.h> > >>>>>>>>> #include <linux/module.h> > >>>>>>>>>+#include <linux/fb.h> > >>>>>>>>> #include <linux/input.h> > >>>>>>>>> #include <linux/slab.h> > >>>>>>>>> @@ -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 > >>>>>>>Hmm, so you think I should add a call to fb_register_client() to > >>>get > >>>>>>>events for new registered framebuffer devices? > >>>>>>yes, but also pay attention to CONFIG_FB_NOTIFY: you may still > >>>>>>end up w/o notification. > >>>>>Okay, that's not worse than today. > >>>>agree > >>>>>>>This would probably work. I'll have a try. > >>>>>>> > >>>>>>> > >>>>>>>Thanks, > >>>>>>> > >>>>>>>Juergen > >>>>>>My bigger concern here is that we try to tie keyboard and pointer > >>>device > >>>>>>to the framebuffer. IMO, these are independent parts of the system > >>>and > >>>>>>the relation > >>>>>>depends on the use-case. One can have graphics enabled w/o > >>>framebuffer > >>>>>>at all, e.g. > >>>>>>DRM/KMS + OpenGLES + Weston + kbd + ptr... > >>>>>Again: that's a use case which will work as today. The current > >>>defaults > >>>>>are being used. > >>>>> > >>>>>The question is whether we should add a module parameter switching > >>>off > >>>>>the automatic adaption of the resolution as there might be use cases > >>>>>where we don't want this feature. > >>>>I think for those who doesn't want this resolution there is > >>>>still a possibility to change it on backend's XenbusStateConnected > >>>>So, no need for module parameter, IMO > >>>Fine. > >>> > >>>I'll send V3 soon. > >>How about you do the axis adjustment from userspace (udev rule), and leave kernel as is? > >Hmm, is this a good idea? > > > >I'd need a udev rule to trigger when either the pointing device or a > >new frame buffer is showing up. In both cases I need to read the > >geometry of the frame buffer (in case it exists) and set the geometry > >of the pointing device (in case it exists) to the same values. This > >seems to be much more complicated than the required changes in the > >driver. > > > >I could be wrong, of course, especially as I'm no expert in writing > >udev rules. :-) > And you may also end up with thin Dom0 w/o udev at all... So what piece of software is using resolution of this input device and why it has to match screen resolution? What happens when framebuffer is registered after input device is created? I see that in the later version of the patch you hook the notifier and change values, but how users would know about that? I think tying input device to framebuffer is wrong. Thanks. -- Dmitry _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-01-30 11:27 ` Oleksandr Andrushchenko (?) (?) @ 2017-02-17 19:47 ` Dmitry Torokhov 2017-02-20 6:05 ` Juergen Gross 2017-02-20 6:05 ` [Xen-devel] " Juergen Gross -1 siblings, 2 replies; 23+ messages in thread From: Dmitry Torokhov @ 2017-02-17 19:47 UTC (permalink / raw) To: Oleksandr Andrushchenko Cc: Juergen Gross, linux-kernel, linux-input, xen-devel On Mon, Jan 30, 2017 at 01:27:29PM +0200, Oleksandr Andrushchenko wrote: > On 01/30/2017 01:23 PM, Juergen Gross wrote: > >On 27/01/17 17:10, Dmitry Torokhov wrote: > >>On January 27, 2017 12:31:19 AM PST, Juergen Gross <jgross@suse.com> wrote: > >>>On 27/01/17 09:26, Oleksandr Andrushchenko wrote: > >>>>On 01/27/2017 10:14 AM, Juergen Gross wrote: > >>>>>On 27/01/17 08:53, Oleksandr Andrushchenko wrote: > >>>>>>On 01/27/2017 09:46 AM, Juergen Gross wrote: > >>>>>>>On 27/01/17 08:21, Oleksandr Andrushchenko wrote: > >>>>>>>>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 <jgross@suse.com> > >>>>>>>>>--- > >>>>>>>>>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 <linux/kernel.h> > >>>>>>>>> #include <linux/errno.h> > >>>>>>>>> #include <linux/module.h> > >>>>>>>>>+#include <linux/fb.h> > >>>>>>>>> #include <linux/input.h> > >>>>>>>>> #include <linux/slab.h> > >>>>>>>>> @@ -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 > >>>>>>>Hmm, so you think I should add a call to fb_register_client() to > >>>get > >>>>>>>events for new registered framebuffer devices? > >>>>>>yes, but also pay attention to CONFIG_FB_NOTIFY: you may still > >>>>>>end up w/o notification. > >>>>>Okay, that's not worse than today. > >>>>agree > >>>>>>>This would probably work. I'll have a try. > >>>>>>> > >>>>>>> > >>>>>>>Thanks, > >>>>>>> > >>>>>>>Juergen > >>>>>>My bigger concern here is that we try to tie keyboard and pointer > >>>device > >>>>>>to the framebuffer. IMO, these are independent parts of the system > >>>and > >>>>>>the relation > >>>>>>depends on the use-case. One can have graphics enabled w/o > >>>framebuffer > >>>>>>at all, e.g. > >>>>>>DRM/KMS + OpenGLES + Weston + kbd + ptr... > >>>>>Again: that's a use case which will work as today. The current > >>>defaults > >>>>>are being used. > >>>>> > >>>>>The question is whether we should add a module parameter switching > >>>off > >>>>>the automatic adaption of the resolution as there might be use cases > >>>>>where we don't want this feature. > >>>>I think for those who doesn't want this resolution there is > >>>>still a possibility to change it on backend's XenbusStateConnected > >>>>So, no need for module parameter, IMO > >>>Fine. > >>> > >>>I'll send V3 soon. > >>How about you do the axis adjustment from userspace (udev rule), and leave kernel as is? > >Hmm, is this a good idea? > > > >I'd need a udev rule to trigger when either the pointing device or a > >new frame buffer is showing up. In both cases I need to read the > >geometry of the frame buffer (in case it exists) and set the geometry > >of the pointing device (in case it exists) to the same values. This > >seems to be much more complicated than the required changes in the > >driver. > > > >I could be wrong, of course, especially as I'm no expert in writing > >udev rules. :-) > And you may also end up with thin Dom0 w/o udev at all... So what piece of software is using resolution of this input device and why it has to match screen resolution? What happens when framebuffer is registered after input device is created? I see that in the later version of the patch you hook the notifier and change values, but how users would know about that? I think tying input device to framebuffer is wrong. Thanks. -- Dmitry ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-02-17 19:47 ` [Xen-devel] " Dmitry Torokhov @ 2017-02-20 6:05 ` Juergen Gross 2017-02-20 6:05 ` [Xen-devel] " Juergen Gross 1 sibling, 0 replies; 23+ messages in thread From: Juergen Gross @ 2017-02-20 6:05 UTC (permalink / raw) To: Dmitry Torokhov, Oleksandr Andrushchenko Cc: xen-devel, linux-kernel, linux-input On 17/02/17 20:47, Dmitry Torokhov wrote: > On Mon, Jan 30, 2017 at 01:27:29PM +0200, Oleksandr Andrushchenko wrote: >> On 01/30/2017 01:23 PM, Juergen Gross wrote: >>> On 27/01/17 17:10, Dmitry Torokhov wrote: >>>> On January 27, 2017 12:31:19 AM PST, Juergen Gross <jgross@suse.com> wrote: >>>>> On 27/01/17 09:26, Oleksandr Andrushchenko wrote: >>>>>> On 01/27/2017 10:14 AM, Juergen Gross wrote: >>>>>>> On 27/01/17 08:53, Oleksandr Andrushchenko wrote: >>>>>>>> On 01/27/2017 09:46 AM, Juergen Gross wrote: >>>>>>>>> On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >>>>>>>>>> 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 <jgross@suse.com> >>>>>>>>>>> --- >>>>>>>>>>> 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 <linux/kernel.h> >>>>>>>>>>> #include <linux/errno.h> >>>>>>>>>>> #include <linux/module.h> >>>>>>>>>>> +#include <linux/fb.h> >>>>>>>>>>> #include <linux/input.h> >>>>>>>>>>> #include <linux/slab.h> >>>>>>>>>>> @@ -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 >>>>>>>>> Hmm, so you think I should add a call to fb_register_client() to >>>>> get >>>>>>>>> events for new registered framebuffer devices? >>>>>>>> yes, but also pay attention to CONFIG_FB_NOTIFY: you may still >>>>>>>> end up w/o notification. >>>>>>> Okay, that's not worse than today. >>>>>> agree >>>>>>>>> This would probably work. I'll have a try. >>>>>>>>> >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> >>>>>>>>> Juergen >>>>>>>> My bigger concern here is that we try to tie keyboard and pointer >>>>> device >>>>>>>> to the framebuffer. IMO, these are independent parts of the system >>>>> and >>>>>>>> the relation >>>>>>>> depends on the use-case. One can have graphics enabled w/o >>>>> framebuffer >>>>>>>> at all, e.g. >>>>>>>> DRM/KMS + OpenGLES + Weston + kbd + ptr... >>>>>>> Again: that's a use case which will work as today. The current >>>>> defaults >>>>>>> are being used. >>>>>>> >>>>>>> The question is whether we should add a module parameter switching >>>>> off >>>>>>> the automatic adaption of the resolution as there might be use cases >>>>>>> where we don't want this feature. >>>>>> I think for those who doesn't want this resolution there is >>>>>> still a possibility to change it on backend's XenbusStateConnected >>>>>> So, no need for module parameter, IMO >>>>> Fine. >>>>> >>>>> I'll send V3 soon. >>>> How about you do the axis adjustment from userspace (udev rule), and leave kernel as is? >>> Hmm, is this a good idea? >>> >>> I'd need a udev rule to trigger when either the pointing device or a >>> new frame buffer is showing up. In both cases I need to read the >>> geometry of the frame buffer (in case it exists) and set the geometry >>> of the pointing device (in case it exists) to the same values. This >>> seems to be much more complicated than the required changes in the >>> driver. >>> >>> I could be wrong, of course, especially as I'm no expert in writing >>> udev rules. :-) >> And you may also end up with thin Dom0 w/o udev at all... > > So what piece of software is using resolution of this input device and > why it has to match screen resolution? What happens when framebuffer is > registered after input device is created? I see that in the later > version of the patch you hook the notifier and change values, but how > users would know about that? The problem showed up in out internal QA: the installer is being tested automatically in a virtual machine. The output of the (virtual) framebuffer is captured automatically and verified to match certain criteria. User input (via keyboard and pointing device) are entered automatically, too. As the installer has to work for different screen resolutions this is a major requirement. And the pointing device has to match the resolution of the screen, of course, to be able to reach all regions of the screen. > I think tying input device to framebuffer is wrong. Generally: might be. For virtual machines: I think this makes sense in more than 99% of the use cases. Would you be okay if I add a module parameter for switching this behavior off on demand? Juergen _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-02-17 19:47 ` [Xen-devel] " Dmitry Torokhov 2017-02-20 6:05 ` Juergen Gross @ 2017-02-20 6:05 ` Juergen Gross 1 sibling, 0 replies; 23+ messages in thread From: Juergen Gross @ 2017-02-20 6:05 UTC (permalink / raw) To: Dmitry Torokhov, Oleksandr Andrushchenko Cc: linux-kernel, linux-input, xen-devel On 17/02/17 20:47, Dmitry Torokhov wrote: > On Mon, Jan 30, 2017 at 01:27:29PM +0200, Oleksandr Andrushchenko wrote: >> On 01/30/2017 01:23 PM, Juergen Gross wrote: >>> On 27/01/17 17:10, Dmitry Torokhov wrote: >>>> On January 27, 2017 12:31:19 AM PST, Juergen Gross <jgross@suse.com> wrote: >>>>> On 27/01/17 09:26, Oleksandr Andrushchenko wrote: >>>>>> On 01/27/2017 10:14 AM, Juergen Gross wrote: >>>>>>> On 27/01/17 08:53, Oleksandr Andrushchenko wrote: >>>>>>>> On 01/27/2017 09:46 AM, Juergen Gross wrote: >>>>>>>>> On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >>>>>>>>>> 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 <jgross@suse.com> >>>>>>>>>>> --- >>>>>>>>>>> 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 <linux/kernel.h> >>>>>>>>>>> #include <linux/errno.h> >>>>>>>>>>> #include <linux/module.h> >>>>>>>>>>> +#include <linux/fb.h> >>>>>>>>>>> #include <linux/input.h> >>>>>>>>>>> #include <linux/slab.h> >>>>>>>>>>> @@ -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 >>>>>>>>> Hmm, so you think I should add a call to fb_register_client() to >>>>> get >>>>>>>>> events for new registered framebuffer devices? >>>>>>>> yes, but also pay attention to CONFIG_FB_NOTIFY: you may still >>>>>>>> end up w/o notification. >>>>>>> Okay, that's not worse than today. >>>>>> agree >>>>>>>>> This would probably work. I'll have a try. >>>>>>>>> >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> >>>>>>>>> Juergen >>>>>>>> My bigger concern here is that we try to tie keyboard and pointer >>>>> device >>>>>>>> to the framebuffer. IMO, these are independent parts of the system >>>>> and >>>>>>>> the relation >>>>>>>> depends on the use-case. One can have graphics enabled w/o >>>>> framebuffer >>>>>>>> at all, e.g. >>>>>>>> DRM/KMS + OpenGLES + Weston + kbd + ptr... >>>>>>> Again: that's a use case which will work as today. The current >>>>> defaults >>>>>>> are being used. >>>>>>> >>>>>>> The question is whether we should add a module parameter switching >>>>> off >>>>>>> the automatic adaption of the resolution as there might be use cases >>>>>>> where we don't want this feature. >>>>>> I think for those who doesn't want this resolution there is >>>>>> still a possibility to change it on backend's XenbusStateConnected >>>>>> So, no need for module parameter, IMO >>>>> Fine. >>>>> >>>>> I'll send V3 soon. >>>> How about you do the axis adjustment from userspace (udev rule), and leave kernel as is? >>> Hmm, is this a good idea? >>> >>> I'd need a udev rule to trigger when either the pointing device or a >>> new frame buffer is showing up. In both cases I need to read the >>> geometry of the frame buffer (in case it exists) and set the geometry >>> of the pointing device (in case it exists) to the same values. This >>> seems to be much more complicated than the required changes in the >>> driver. >>> >>> I could be wrong, of course, especially as I'm no expert in writing >>> udev rules. :-) >> And you may also end up with thin Dom0 w/o udev at all... > > So what piece of software is using resolution of this input device and > why it has to match screen resolution? What happens when framebuffer is > registered after input device is created? I see that in the later > version of the patch you hook the notifier and change values, but how > users would know about that? The problem showed up in out internal QA: the installer is being tested automatically in a virtual machine. The output of the (virtual) framebuffer is captured automatically and verified to match certain criteria. User input (via keyboard and pointing device) are entered automatically, too. As the installer has to work for different screen resolutions this is a major requirement. And the pointing device has to match the resolution of the screen, of course, to be able to reach all regions of the screen. > I think tying input device to framebuffer is wrong. Generally: might be. For virtual machines: I think this makes sense in more than 99% of the use cases. Would you be okay if I add a module parameter for switching this behavior off on demand? Juergen ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-01-27 16:10 ` Dmitry Torokhov (?) (?) @ 2017-01-30 11:23 ` Juergen Gross -1 siblings, 0 replies; 23+ messages in thread From: Juergen Gross @ 2017-01-30 11:23 UTC (permalink / raw) To: Dmitry Torokhov, Oleksandr Andrushchenko, linux-kernel, linux-input, xen-devel On 27/01/17 17:10, Dmitry Torokhov wrote: > On January 27, 2017 12:31:19 AM PST, Juergen Gross <jgross@suse.com> wrote: >> On 27/01/17 09:26, Oleksandr Andrushchenko wrote: >>> On 01/27/2017 10:14 AM, Juergen Gross wrote: >>>> On 27/01/17 08:53, Oleksandr Andrushchenko wrote: >>>>> On 01/27/2017 09:46 AM, Juergen Gross wrote: >>>>>> On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >>>>>>> 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 <jgross@suse.com> >>>>>>>> --- >>>>>>>> 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 <linux/kernel.h> >>>>>>>> #include <linux/errno.h> >>>>>>>> #include <linux/module.h> >>>>>>>> +#include <linux/fb.h> >>>>>>>> #include <linux/input.h> >>>>>>>> #include <linux/slab.h> >>>>>>>> @@ -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 >>>>>> Hmm, so you think I should add a call to fb_register_client() to >> get >>>>>> events for new registered framebuffer devices? >>>>> yes, but also pay attention to CONFIG_FB_NOTIFY: you may still >>>>> end up w/o notification. >>>> Okay, that's not worse than today. >>> agree >>>>>> This would probably work. I'll have a try. >>>>>> >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Juergen >>>>> My bigger concern here is that we try to tie keyboard and pointer >> device >>>>> to the framebuffer. IMO, these are independent parts of the system >> and >>>>> the relation >>>>> depends on the use-case. One can have graphics enabled w/o >> framebuffer >>>>> at all, e.g. >>>>> DRM/KMS + OpenGLES + Weston + kbd + ptr... >>>> Again: that's a use case which will work as today. The current >> defaults >>>> are being used. >>>> >>>> The question is whether we should add a module parameter switching >> off >>>> the automatic adaption of the resolution as there might be use cases >>>> where we don't want this feature. >>> I think for those who doesn't want this resolution there is >>> still a possibility to change it on backend's XenbusStateConnected >>> So, no need for module parameter, IMO >> >> Fine. >> >> I'll send V3 soon. > > How about you do the axis adjustment from userspace (udev rule), and leave kernel as is? Hmm, is this a good idea? I'd need a udev rule to trigger when either the pointing device or a new frame buffer is showing up. In both cases I need to read the geometry of the frame buffer (in case it exists) and set the geometry of the pointing device (in case it exists) to the same values. This seems to be much more complicated than the required changes in the driver. I could be wrong, of course, especially as I'm no expert in writing udev rules. :-) Juergen _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront 2017-01-27 7:46 ` Juergen Gross (?) (?) @ 2017-01-27 7:53 ` Oleksandr Andrushchenko -1 siblings, 0 replies; 23+ messages in thread From: Oleksandr Andrushchenko @ 2017-01-27 7:53 UTC (permalink / raw) To: Juergen Gross, linux-kernel, linux-input, xen-devel; +Cc: dmitry.torokhov On 01/27/2017 09:46 AM, Juergen Gross wrote: > On 27/01/17 08:21, Oleksandr Andrushchenko wrote: >> 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 <jgross@suse.com> >>> --- >>> 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 <linux/kernel.h> >>> #include <linux/errno.h> >>> #include <linux/module.h> >>> +#include <linux/fb.h> >>> #include <linux/input.h> >>> #include <linux/slab.h> >>> @@ -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 > Hmm, so you think I should add a call to fb_register_client() to get > events for new registered framebuffer devices? yes, but also pay attention to CONFIG_FB_NOTIFY: you may still end up w/o notification. > > This would probably work. I'll have a try. > > > Thanks, > > Juergen My bigger concern here is that we try to tie keyboard and pointer device to the framebuffer. IMO, these are independent parts of the system and the relation depends on the use-case. One can have graphics enabled w/o framebuffer at all, e.g. DRM/KMS + OpenGLES + Weston + kbd + ptr... _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2017-02-20 6:05 UTC | newest] Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-01-27 7:12 [PATCH v2] xen,input: try to read screen resolution for xen-kbdfront Juergen Gross 2017-01-27 7:21 ` [Xen-devel] [PATCH v2] xen, input: " Oleksandr Andrushchenko 2017-01-27 7:21 ` Oleksandr Andrushchenko 2017-01-27 7:46 ` [Xen-devel] " Juergen Gross 2017-01-27 7:46 ` Juergen Gross 2017-01-27 7:53 ` [Xen-devel] " Oleksandr Andrushchenko 2017-01-27 8:14 ` Juergen Gross 2017-01-27 8:14 ` [Xen-devel] " Juergen Gross 2017-01-27 8:26 ` Oleksandr Andrushchenko 2017-01-27 8:26 ` Oleksandr Andrushchenko 2017-01-27 8:31 ` [Xen-devel] " Juergen Gross 2017-01-27 8:31 ` Juergen Gross 2017-01-27 16:10 ` [Xen-devel] " Dmitry Torokhov 2017-01-27 16:10 ` Dmitry Torokhov 2017-01-30 11:23 ` [Xen-devel] " Juergen Gross 2017-01-30 11:27 ` Oleksandr Andrushchenko 2017-01-30 11:27 ` Oleksandr Andrushchenko 2017-02-17 19:47 ` Dmitry Torokhov 2017-02-17 19:47 ` [Xen-devel] " Dmitry Torokhov 2017-02-20 6:05 ` Juergen Gross 2017-02-20 6:05 ` [Xen-devel] " Juergen Gross 2017-01-30 11:23 ` Juergen Gross 2017-01-27 7:53 ` 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.