All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeffery Miller <jefferymiller@google.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: regressions@lists.linux.dev, benjamin.tissoires@redhat.com,
	 linux@leemhuis.info, Andrew Duggan <aduggan@synaptics.com>,
	 Andrew Duggan <andrew@duggan.us>,
	loic.poulain@linaro.org,
	 Jeffery Miller <jefferymiller@google.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	 linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH] Input: elantech - fix fast_reconnect callback in ps2 mode
Date: Tue,  3 Oct 2023 19:57:24 -0500	[thread overview]
Message-ID: <20231004005729.3943515-1-jefferymiller@google.com> (raw)

Make `elantech_setup_ps2` set a compatible fast_reconnect pointer
when its ps2 mode is used.

When an SMBus connection is attempted and fails `psmouse_smbus_init`
sets fast_reconnect to `psmouse_smbus_reconnect`.
`psmouse_smbus_reconnect` expects `psmouse->private` to be
`struct psmouse_smbus_dev` but `elantech_setup_ps2` replaces
it with its private data. This was causing an issue on resume
since psmouse_smbus_reconnect was being called while in ps2, not SMBus
mode.

This was uncovered by commit 92e24e0e57f7 ("Input: psmouse - add delay when
deactivating for SMBus mode")

Closes:
Link:https://lore.kernel.org/all/ca0109fa-c64b-43c1-a651-75b294d750a1@leemhuis.info/
Reported-by: Thorsten Leemhuis <linux@leemhuis.info>

Signed-off-by: Jeffery Miller <jefferymiller@google.com>
---

The other callbacks set in psmouse_smbus_init are already replaced.
Should fast_reconnect be set to `elantech_reconnect` instead?


 drivers/input/mouse/elantech.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
index 2118b2075f43..4e38229404b4 100644
--- a/drivers/input/mouse/elantech.c
+++ b/drivers/input/mouse/elantech.c
@@ -2114,6 +2114,7 @@ static int elantech_setup_ps2(struct psmouse *psmouse,
 	psmouse->protocol_handler = elantech_process_byte;
 	psmouse->disconnect = elantech_disconnect;
 	psmouse->reconnect = elantech_reconnect;
+	psmouse->fast_reconnect = NULL;
 	psmouse->pktsize = info->hw_version > 1 ? 6 : 4;
 
 	return 0;
-- 
2.42.0.582.g8ccd20d70d-goog


             reply	other threads:[~2023-10-04  0:58 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-04  0:57 Jeffery Miller [this message]
2023-10-04  5:07 ` [PATCH] Input: elantech - fix fast_reconnect callback in ps2 mode Thorsten Leemhuis
2023-10-04  6:19 ` Greg Kroah-Hartman
2023-10-04  6:34   ` Thorsten Leemhuis
2023-10-05  0:35   ` Jeffery Miller
2023-10-04 14:10 ` Dmitry Torokhov
2023-10-05  0:13   ` Jeffery Miller
2023-10-10  7:08     ` Thorsten Leemhuis
2023-10-12 22:53       ` Dmitry Torokhov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231004005729.3943515-1-jefferymiller@google.com \
    --to=jefferymiller@google.com \
    --cc=aduggan@synaptics.com \
    --cc=andrew@duggan.us \
    --cc=benjamin.tissoires@redhat.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@leemhuis.info \
    --cc=loic.poulain@linaro.org \
    --cc=regressions@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.