Hi Dmitry- Thanks for sending these patches! On Mon, Mar 12, 2018 at 12:08:54PM -0700, Dmitry Torokhov wrote: > The way we are supposed to put controller to sleep and wake it up does not > depend on the platform, but rather on controller itself. Controllers using > T9 require manipulating T9 control register, while others, using newer > T100, should be put to sleep by adjusting T7 power config. I'm afraid this is actually a misconception. If you look at object table for the older T9 device, you'll find it has the T7 object and it in fact works exactly the same way as the T100-based device. The MXT_SUSPEND_T9_CTRL is in there because on your older Pixel devices the config saved into NVRAM on the touch controller has a zero byte in the T9 CTRL setting, meaning the touch controller will never wake up unless the driver knows to write 0x83 into it. > We'll keep pdata->suspend_mode for now and remove it when we rework > chromeos-laptop driver. > > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> > --- > drivers/input/touchscreen/atmel_mxt_ts.c | 15 ++++++--------- > 1 file changed, 6 insertions(+), 9 deletions(-) > > diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c > index 7659bc48f1db8..1aabfae1297ba 100644 > --- a/drivers/input/touchscreen/atmel_mxt_ts.c > +++ b/drivers/input/touchscreen/atmel_mxt_ts.c > @@ -2868,8 +2868,8 @@ static const struct attribute_group mxt_attr_group = { > > static void mxt_start(struct mxt_data *data) > { > - switch (data->pdata->suspend_mode) { > - case MXT_SUSPEND_T9_CTRL: > + switch (data->multitouch) { > + case MXT_TOUCH_MULTI_T9: > mxt_soft_reset(data); > > /* Touch enable */ > @@ -2878,7 +2878,7 @@ static void mxt_start(struct mxt_data *data) > MXT_TOUCH_MULTI_T9, MXT_T9_CTRL, 0x83); > break; > > - case MXT_SUSPEND_DEEP_SLEEP: > + case MXT_TOUCH_MULTITOUCHSCREEN_T100: > default: > mxt_set_t7_power_cfg(data, MXT_POWER_CFG_RUN); > > @@ -2886,19 +2886,18 @@ static void mxt_start(struct mxt_data *data) > mxt_t6_command(data, MXT_COMMAND_CALIBRATE, 1, false); > break; > } > - > } > > static void mxt_stop(struct mxt_data *data) > { > - switch (data->pdata->suspend_mode) { > - case MXT_SUSPEND_T9_CTRL: > + switch (data->multitouch) { > + case MXT_TOUCH_MULTI_T9: > /* Touch disable */ > mxt_write_object(data, > MXT_TOUCH_MULTI_T9, MXT_T9_CTRL, 0); > break; > > - case MXT_SUSPEND_DEEP_SLEEP: > + case MXT_TOUCH_MULTITOUCHSCREEN_T100: > default: > mxt_set_t7_power_cfg(data, MXT_POWER_CFG_DEEPSLEEP); > break; > @@ -2954,8 +2953,6 @@ static const struct mxt_platform_data *mxt_parse_dt(struct i2c_client *client) > pdata->t19_keymap = keymap; > } > > - pdata->suspend_mode = MXT_SUSPEND_DEEP_SLEEP; > - > return pdata; > } > #else > -- > 2.16.2.660.g709887971b-goog > -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html