Input: xen-kbdfront - fix multi-touch XenStore node's locations
authorOleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Tue, 12 Jun 2018 22:03:36 +0000 (15:03 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 4 Oct 2018 00:00:53 +0000 (17:00 -0700)
[ Upstream commit ce6f7d087e2b037f47349c1c36ac97678d02e394 ]

kbdif protocol describes multi-touch device parameters as a
part of frontend's XenBus configuration nodes while they
belong to backend's configuration. Fix this by reading the
parameters as defined by the protocol.

Fixes: 49aac8204da5 ("Input: xen-kbdfront - add multi-touch support")

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/input/misc/xen-kbdfront.c

index d91f3b1..92d7396 100644 (file)
@@ -229,7 +229,7 @@ static int xenkbd_probe(struct xenbus_device *dev,
                }
        }
 
-       touch = xenbus_read_unsigned(dev->nodename,
+       touch = xenbus_read_unsigned(dev->otherend,
                                     XENKBD_FIELD_FEAT_MTOUCH, 0);
        if (touch) {
                ret = xenbus_write(XBT_NIL, dev->nodename,
@@ -304,13 +304,13 @@ static int xenkbd_probe(struct xenbus_device *dev,
                if (!mtouch)
                        goto error_nomem;
 
-               num_cont = xenbus_read_unsigned(info->xbdev->nodename,
+               num_cont = xenbus_read_unsigned(info->xbdev->otherend,
                                                XENKBD_FIELD_MT_NUM_CONTACTS,
                                                1);
-               width = xenbus_read_unsigned(info->xbdev->nodename,
+               width = xenbus_read_unsigned(info->xbdev->otherend,
                                             XENKBD_FIELD_MT_WIDTH,
                                             XENFB_WIDTH);
-               height = xenbus_read_unsigned(info->xbdev->nodename,
+               height = xenbus_read_unsigned(info->xbdev->otherend,
                                              XENKBD_FIELD_MT_HEIGHT,
                                              XENFB_HEIGHT);