Skip to content

Commit 2f71557

Browse files
ndyerehristev
authored andcommitted
Input: atmel_mxt_ts - check return values in mxt_start and mxt_stop
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> [cyrille.pitchen@atmel.com: adapt original patch to mainline] Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
1 parent c7f4dec commit 2f71557

1 file changed

Lines changed: 39 additions & 12 deletions

File tree

drivers/input/touchscreen/atmel_mxt_ts.c

Lines changed: 39 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3032,10 +3032,12 @@ static void mxt_reset_slots(struct mxt_data *data)
30323032
mxt_input_sync(data);
30333033
}
30343034

3035-
static void mxt_start(struct mxt_data *data)
3035+
static int mxt_start(struct mxt_data *data)
30363036
{
3037+
int ret;
3038+
30373039
if (!data->suspended || data->in_bootloader)
3038-
return;
3040+
return 0;
30393041

30403042
switch (data->pdata->suspend_mode) {
30413043
case MXT_SUSPEND_T9_CTRL:
@@ -3060,28 +3062,42 @@ static void mxt_start(struct mxt_data *data)
30603062
*/
30613063
mxt_process_messages_until_invalid(data);
30623064

3063-
mxt_set_t7_power_cfg(data, MXT_POWER_CFG_RUN);
3065+
ret = mxt_set_t7_power_cfg(data, MXT_POWER_CFG_RUN);
3066+
if (ret)
3067+
return ret;
30643068

30653069
/* Recalibrate since chip has been in deep sleep */
3066-
mxt_t6_command(data, MXT_COMMAND_CALIBRATE, 1, false);
3070+
ret = mxt_t6_command(data, MXT_COMMAND_CALIBRATE, 1, false);
3071+
if (ret)
3072+
return ret;
3073+
3074+
ret = mxt_acquire_irq(data);
3075+
if (ret)
3076+
return ret;
30673077

3068-
mxt_acquire_irq(data);
30693078
break;
30703079
}
30713080

30723081
data->suspended = false;
3082+
3083+
return 0;
30733084
}
30743085

3075-
static void mxt_stop(struct mxt_data *data)
3086+
static int mxt_stop(struct mxt_data *data)
30763087
{
3088+
int ret;
3089+
30773090
if (data->suspended || data->in_bootloader)
3078-
return;
3091+
return 0;
30793092

30803093
switch (data->pdata->suspend_mode) {
30813094
case MXT_SUSPEND_T9_CTRL:
30823095
/* Touch disable */
3083-
mxt_write_object(data,
3096+
ret = mxt_write_object(data,
30843097
MXT_TOUCH_MULTI_T9, MXT_T9_CTRL, 0);
3098+
if (ret)
3099+
return ret;
3100+
30853101
break;
30863102

30873103
case MXT_SUSPEND_REGULATOR:
@@ -3094,29 +3110,40 @@ static void mxt_stop(struct mxt_data *data)
30943110
default:
30953111
disable_irq(data->irq);
30963112

3097-
mxt_set_t7_power_cfg(data, MXT_POWER_CFG_DEEPSLEEP);
3113+
ret = mxt_set_t7_power_cfg(data, MXT_POWER_CFG_DEEPSLEEP);
3114+
if (ret)
3115+
return ret;
30983116

30993117
mxt_reset_slots(data);
31003118
break;
31013119
}
31023120

31033121
data->suspended = true;
3122+
return 0;
31043123
}
31053124

31063125
static int mxt_input_open(struct input_dev *dev)
31073126
{
31083127
struct mxt_data *data = input_get_drvdata(dev);
3128+
int ret;
31093129

3110-
mxt_start(data);
3130+
ret = mxt_start(data);
31113131

3112-
return 0;
3132+
if (ret)
3133+
dev_err(&data->client->dev, "%s failed rc=%d\n", __func__, ret);
3134+
3135+
return ret;
31133136
}
31143137

31153138
static void mxt_input_close(struct input_dev *dev)
31163139
{
31173140
struct mxt_data *data = input_get_drvdata(dev);
3141+
int ret;
31183142

3119-
mxt_stop(data);
3143+
ret = mxt_stop(data);
3144+
3145+
if (ret)
3146+
dev_err(&data->client->dev, "%s failed rc=%d\n", __func__, ret);
31203147
}
31213148

31223149
#ifdef CONFIG_OF

0 commit comments

Comments
 (0)