Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1567912 > unrolled thread

[PATCH v2] xen,input: try to read screen resolution for xen-kbdfront

Started byJuergen Gross <jgross@suse.com>
First post2017-01-27 08:20 +0100
Last post2017-01-27 09:10 +0100
Articles 10 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH v2] xen,input: try to read screen resolution for xen-kbdfront Juergen Gross <jgross@suse.com> - 2017-01-27 08:20 +0100
    Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution  for xen-kbdfront Oleksandr Andrushchenko <andr2000@gmail.com> - 2017-01-27 08:30 +0100
      Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution  for xen-kbdfront Oleksandr Andrushchenko <andr2000@gmail.com> - 2017-01-27 09:00 +0100
        Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution  for xen-kbdfront Juergen Gross <jgross@suse.com> - 2017-01-27 09:20 +0100
          Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution  for xen-kbdfront Oleksandr Andrushchenko <andr2000@gmail.com> - 2017-01-27 09:30 +0100
            Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution  for xen-kbdfront Juergen Gross <jgross@suse.com> - 2017-01-27 09:40 +0100
              Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront Dmitry Torokhov <dmitry.torokhov@gmail.com> - 2017-01-27 17:20 +0100
                Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution  for xen-kbdfront Juergen Gross <jgross@suse.com> - 2017-01-30 12:30 +0100
                  Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution  for xen-kbdfront Oleksandr Andrushchenko <andr2000@gmail.com> - 2017-01-30 13:00 +0100
      Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution  for xen-kbdfront Juergen Gross <jgross@suse.com> - 2017-01-27 09:10 +0100

#1567912 — [PATCH v2] xen,input: try to read screen resolution for xen-kbdfront

FromJuergen Gross <jgross@suse.com>
Date2017-01-27 08:20 +0100
Subject[PATCH v2] xen,input: try to read screen resolution for xen-kbdfront
Message-ID<t48Zb-1aT-1@gated-at.bofh.it>
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

[toc] | [next] | [standalone]


#1567914 — Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront

FromOleksandr Andrushchenko <andr2000@gmail.com>
Date2017-01-27 08:30 +0100
SubjectRe: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront
Message-ID<t498R-1e6-9@gated-at.bofh.it>
In reply to#1567912
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);

[toc] | [prev] | [next] | [standalone]


#1567927 — Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront

FromOleksandr Andrushchenko <andr2000@gmail.com>
Date2017-01-27 09:00 +0100
SubjectRe: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront
Message-ID<t49BT-1ni-13@gated-at.bofh.it>
In reply to#1567914
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...

[toc] | [prev] | [next] | [standalone]


#1567937 — Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront

FromJuergen Gross <jgross@suse.com>
Date2017-01-27 09:20 +0100
SubjectRe: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront
Message-ID<t49Vg-1J9-13@gated-at.bofh.it>
In reply to#1567927
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

[toc] | [prev] | [next] | [standalone]


#1567946 — Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront

FromOleksandr Andrushchenko <andr2000@gmail.com>
Date2017-01-27 09:30 +0100
SubjectRe: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront
Message-ID<t4a4W-1M6-11@gated-at.bofh.it>
In reply to#1567937
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

[toc] | [prev] | [next] | [standalone]


#1567949 — Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront

FromJuergen Gross <jgross@suse.com>
Date2017-01-27 09:40 +0100
SubjectRe: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront
Message-ID<t4aeB-1P5-3@gated-at.bofh.it>
In reply to#1567946
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

[toc] | [prev] | [next] | [standalone]


#1568475 — Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront

FromDmitry Torokhov <dmitry.torokhov@gmail.com>
Date2017-01-27 17:20 +0100
SubjectRe: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront
Message-ID<t4hpL-6ni-3@gated-at.bofh.it>
In reply to#1567949
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

[toc] | [prev] | [next] | [standalone]


#1569620 — Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront

FromJuergen Gross <jgross@suse.com>
Date2017-01-30 12:30 +0100
SubjectRe: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront
Message-ID<t5ijM-3mW-19@gated-at.bofh.it>
In reply to#1568475
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

[toc] | [prev] | [next] | [standalone]


#1569652 — Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront

FromOleksandr Andrushchenko <andr2000@gmail.com>
Date2017-01-30 13:00 +0100
SubjectRe: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront
Message-ID<t5iMP-3x0-49@gated-at.bofh.it>
In reply to#1569620
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

[toc] | [prev] | [next] | [standalone]


#1567928 — Re: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront

FromJuergen Gross <jgross@suse.com>
Date2017-01-27 09:10 +0100
SubjectRe: [Xen-devel] [PATCH v2] xen, input: try to read screen resolution for xen-kbdfront
Message-ID<t49BU-1ni-15@gated-at.bofh.it>
In reply to#1567914
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

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web