Dear Dmitry, Are there devices that do not trigger errors? => Yes, there exist devices that would act normally. However, our team cannot organize the rule to recognize which devices could trigger this command without error. What I sure about is that some devices would get TP no function while triggering this command. Besides, ABS mode had been set in P/S2 protocol, so there is no need to set ABS mode again in SMBUS driver. How do we put SMbus devices into low power mode? => As far as I am concerned, core.c only set the mode into ABS mode or ENABLE_CALIBRATE mode after updating firmware. I don't know what or when to set SMbus devices into low power mode. Best regards, Dave -----Original Message----- From: Dmitry Torokhov [mailto:dmitry.torokhov@xxxxxxxxx] Sent: Wednesday, July 22, 2020 12:13 AM To: Dave Wang <dave.wang@xxxxxxxxxx> Cc: Linux-input@xxxxxxxxxxxxxxx; Linux-kernel@xxxxxxxxxxxxxxx; phoenix@xxxxxxxxxx; josh.chen@xxxxxxxxxx; jingle.wu@xxxxxxxxxx; kai.heng.feng@xxxxxxxxxxxxx Subject: Re: [PATCH 1/3] Input: elan_i2c - Do no operation for elan_smbus_set_mode function Hi Dave, On Mon, Dec 09, 2019 at 06:11:07AM -0500, Dave Wang wrote: > Some touchpads might get error while triggerring the set_mode command > in SMBus interface. Do no operation for elan_smbus_set_mode function. Are there devices that do not trigger errors? How do we put SMbus devices into low power mode? > > Signed-off-by: Dave Wang <dave.wang@xxxxxxxxxx> > --- > drivers/input/mouse/elan_i2c_smbus.c | 5 +---- > 1 file changed, 1 insertion(+), 4 deletions(-) > > diff --git a/drivers/input/mouse/elan_i2c_smbus.c > b/drivers/input/mouse/elan_i2c_smbus.c > index 8c3185d54c73..bcb9ec4a7a6b 100644 > --- a/drivers/input/mouse/elan_i2c_smbus.c > +++ b/drivers/input/mouse/elan_i2c_smbus.c > @@ -84,10 +84,7 @@ static int elan_smbus_initialize(struct i2c_client > *client) > > static int elan_smbus_set_mode(struct i2c_client *client, u8 mode) { > - u8 cmd[4] = { 0x00, 0x07, 0x00, mode }; > - > - return i2c_smbus_write_block_data(client, ETP_SMBUS_IAP_CMD, > - sizeof(cmd), cmd); > + return 0; /* A no-op */ > } > > static int elan_smbus_sleep_control(struct i2c_client *client, bool > sleep) > -- > 2.17.1 > Thanks. -- Dmitry