On 02.10.23 18:52, Jeffery Miller wrote: > On Sat, Sep 30, 2023 at 4:04 AM Thorsten Leemhuis <linux@xxxxxxxxxxxxx> wrote: >> """ >>> diff --git a/drivers/input/mouse/psmouse-smbus.c b/drivers/input/mouse/psmouse-smbus.c >>> index 7b13de979908..fe12385bb856 100644 >>> --- a/drivers/input/mouse/psmouse-smbus.c >>> +++ b/drivers/input/mouse/psmouse-smbus.c >>> @@ -121,11 +121,11 @@ static psmouse_ret_t psmouse_smbus_process_byte(struct psmouse *psmouse) >>> >>> static void psmouse_activate_smbus_mode(struct psmouse_smbus_dev *smbdev) >>> { >>> - if (smbdev->need_deactivate) { >>> - psmouse_deactivate(smbdev->psmouse); >>> - /* Give the device time to switch into SMBus mode */ >>> - msleep(30); >>> - } >>> + if (smbdev->psmouse == NULL) { >>> + printk("XXX: smbdev->psmouse is null\n"); >>> + } else { >>> + printk("XXX: smbdev->psmouse is set\n"); >>> + } >>> } >>> >>> static int psmouse_smbus_reconnect(struct psmouse *psmouse) >> """ >> >> During boot this prints "XXX: smbdev->psmouse is set". But it helped, as >> the machine now resumes from s2idle again -- while printing "XXX: >> smbdev->psmouse is null". And that should not be the case I assume. Or >> did my brute force test go sideways due to my limited skills? > > This was a good test. You've identified where it is crashing. > > Maybe we could confirm that `psmouse->private` is not-NULL?: > ``` > diff --git a/drivers/input/mouse/psmouse-smbus.c > b/drivers/input/mouse/psmouse-smbus.c > index 7b13de979908..432615df9ae8 100644 > --- a/drivers/input/mouse/psmouse-smbus.c > +++ b/drivers/input/mouse/psmouse-smbus.c > @@ -130,7 +130,10 @@ static void psmouse_activate_smbus_mode(struct > psmouse_smbus_dev *smbdev) > > static int psmouse_smbus_reconnect(struct psmouse *psmouse) > { > - psmouse_activate_smbus_mode(psmouse->private); > + if (psmouse->private == NULL) { > + printk("XXX smbdev is null"); > + } > + //psmouse_activate_smbus_mode(psmouse->private); > return 0; > } > ``` This didn't print anything on resume, so `psmouse->private` apparently is set. Tried brute force again afterwards to find what might unset smbdev->psmouse by adding printk statements to psmouse_smbus_disconnect() and psmouse_smbus_cleanup() but those didn't fire, so it must be something else I didn't spot. Ciao, Thorsten > On Thu, Sep 28, 2023 at 4:08 AM Thorsten Leemhuis <linux@xxxxxxxxxxxxx> wrote: >> >> On 27.09.23 19:23, Thorsten Leemhuis wrote: >>> On 27.09.23 17:55, Jeffery Miller wrote: >>>> On Wed, Sep 27, 2023 at 10:43 AM Jeffery Miller >>>> <jefferymiller@xxxxxxxxxx> wrote: >>>>> On Wed, Sep 27, 2023 at 3:54 AM Thorsten Leemhuis <linux@xxxxxxxxxxxxx> wrote: >>>>>> >>>>>> My dmesg from a kernel with the revert: >>>>>> https://www.leemhuis.info/files/misc/dmesg >>> >>> Thx for looking into this! >>> >>>>> In this dmesg output it shows that this is an elantech smbus device: >>>>> ``` >>>>> [ 4.260415] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x7f3001) >>>>> [ 4.279297] psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x0f. >>>>> [ 4.292788] psmouse serio1: elantech: Elan sample query result 00, 80, c9 >>>>> [ 4.319184] psmouse serio1: elantech: Elan ic body: 0x10, current fw version: 0x3 >>>>> ... >>>>> [ 4.346951] psmouse serio1: elantech: Trying to set up SMBus access >>>>> [ 4.346986] psmouse serio1: elantech: SMbus companion is not ready yet >>>>> [ 4.369993] input: ETPS/2 Elantech TrackPoint as /devices/platform/i8042/serio1/input/input7 >>>>> [ 4.376200] systemd[1]: bpf-lsm: LSM BPF program attached >>>>> [ 4.385192] input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio1/input/input5 >>>>> ``` >>>>> The change in 92e24e0e57f72e shouldn't affect the elantouch device as elantech_setup_smbus >>>>> initializes `psmouse_smbus_init` with need_deactivate = false. >>> >>> Hmmm. Wondering if I should warm up the compiler again to recheck my >>> result one more time[1]. >> >> Just did that. Ran "make clean" and compiled mainline as of now >> (633b47cb009d) and the machine does never resume from s2idle; then I >> reverted 92e24e0e57f7 and compiled again (for completeness: without >> running "make clean" beforehand) and with that kernel s2idle resume >> works perfectly fine. >> >> Wondering if I or the compiler is doing something stupid here -- or if >> we missed some small but important detail somewhere. >> >> Ciao, Thorsten >> >>>>> Did you store dmesg logs from boot without the applied patch? >>>> I intended to ask if you have logs from a boot without 92e24e0e57f72e reverted. >>> >>> https://www.leemhuis.info/files/misc/dmesg-6.6-rc3-vanilla >>> >>>>> If the delay was being applied the timestamps should show the 30ms delay between >>>>> `psmouse serio1: elantech: Trying to set up SMBus access` >>>>> and >>>>> `psmouse serio1: elantech: SMbus companion is not ready yet` >>> >>> Unless I missed something there is not difference. :-/ >>> >>> Ciao, Thorsten >>> >>> [1] FWIW, this is my bisect log >>> >>> """ >>>> git bisect start >>>> # status: waiting for both good and bad commits >>>> # bad: [6465e260f48790807eef06b583b38ca9789b6072] Linux 6.6-rc3 >>>> git bisect bad 6465e260f48790807eef06b583b38ca9789b6072 >>>> # status: waiting for good commit(s), bad commit known >>>> # good: [2dde18cd1d8fac735875f2e4987f11817cc0bc2c] Linux 6.5 >>>> git bisect good 2dde18cd1d8fac735875f2e4987f11817cc0bc2c >>>> # good: [4fb0dacb78c6a041bbd38ddd998df806af5c2c69] Merge tag 'sound-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound >>>> git bisect good 4fb0dacb78c6a041bbd38ddd998df806af5c2c69 >>>> # good: [307d59039fb26212a84a9aa6a134a7d2bdea34ca] Merge tag 'media/v6.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media >>>> git bisect good 307d59039fb26212a84a9aa6a134a7d2bdea34ca >>>> # bad: [4a0fc73da97efd23a383ca839e6fe86410268f6b] Merge tag 's390-6.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux >>>> git bisect bad 4a0fc73da97efd23a383ca839e6fe86410268f6b >>>> # good: [e4f1b8202fb59c56a3de7642d50326923670513f] Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost >>>> git bisect good e4f1b8202fb59c56a3de7642d50326923670513f >>>> # good: [5eea5820c7340d39e56e169e1b87199391105f6b] Merge tag 'mm-stable-2023-09-04-14-00' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm >>>> git bisect good 5eea5820c7340d39e56e169e1b87199391105f6b >>>> # good: [65d6e954e37872fd9afb5ef3fc0481bb3c2f20f4] Merge tag 'gfs2-v6.5-rc5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 >>>> git bisect good 65d6e954e37872fd9afb5ef3fc0481bb3c2f20f4 >>>> # bad: [744a759492b5c57ff24a6e8aabe47b17ad8ee964] Merge tag 'input-for-v6.6-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input >>>> git bisect bad 744a759492b5c57ff24a6e8aabe47b17ad8ee964 >>>> # good: [dbce1a7d5dce7318d8465b1e0d052ef1d2202237] Input: Explicitly include correct DT includes >>>> git bisect good dbce1a7d5dce7318d8465b1e0d052ef1d2202237 >>>> # good: [29057cc5bddc785ea0a11534d7ad2546fa0872d3] Merge tag 'linux-watchdog-6.6-rc1' of git://www.linux-watchdog.org/linux-watchdog >>>> git bisect good 29057cc5bddc785ea0a11534d7ad2546fa0872d3 >>>> # bad: [3e4bb047b23375a34dbf5885709ac3729d9cfb22] Input: qt2160 - convert to use devm_* api >>>> git bisect bad 3e4bb047b23375a34dbf5885709ac3729d9cfb22 >>>> # good: [e175eae16c1bf92062f1f431a95f476a61a77c48] Input: mcs-touchkey - convert to use devm_* api >>>> git bisect good e175eae16c1bf92062f1f431a95f476a61a77c48 >>>> # bad: [92e24e0e57f72e06c2df87116557331fd2d4dda2] Input: psmouse - add delay when deactivating for SMBus mode >>>> git bisect bad 92e24e0e57f72e06c2df87116557331fd2d4dda2 >>>> # good: [8362bf82fb5441613aac7c6c9dbb6b83def6ad3b] Input: mcs-touchkey - fix uninitialized use of error in mcs_touchkey_probe() >>>> git bisect good 8362bf82fb5441613aac7c6c9dbb6b83def6ad3b >>>> # first bad commit: [92e24e0e57f72e06c2df87116557331fd2d4dda2] Input: psmouse - add delay when deactivating for SMBus mode >>> """ >>> >>> > >