@@ -325,15 +325,15 @@ struct mxt_data {
325325 u8 T100_reportid_min ;
326326 u8 T100_reportid_max ;
327327
328- /* for fw update in bootloader */
329- struct completion bl_completion ;
330-
331328 /* for reset handling */
332329 struct completion reset_completion ;
333330
334331 /* for config update handling */
335332 struct completion crc_completion ;
336333
334+ /* for power up handling */
335+ struct completion chg_completion ;
336+
337337 /* Indicates whether device is in suspend */
338338 bool suspended ;
339339};
@@ -551,7 +551,7 @@ static int mxt_check_bootloader(struct mxt_data *data, unsigned int state,
551551 * CHG assertion before reading the status byte.
552552 * Once the status byte has been read, the line is deasserted.
553553 */
554- ret = mxt_wait_for_completion (data , & data -> bl_completion ,
554+ ret = mxt_wait_for_completion (data , & data -> chg_completion ,
555555 MXT_FW_CHG_TIMEOUT );
556556 if (ret ) {
557557 /*
@@ -1133,11 +1133,10 @@ static irqreturn_t mxt_interrupt(int irq, void *dev_id)
11331133{
11341134 struct mxt_data * data = dev_id ;
11351135
1136- if ( data -> in_bootloader ) {
1137- /* bootloader state transition completion */
1138- complete ( & data -> bl_completion );
1136+ complete ( & data -> chg_completion );
1137+
1138+ if ( data -> in_bootloader )
11391139 return IRQ_HANDLED ;
1140- }
11411140
11421141 if (!data -> object_table )
11431142 return IRQ_HANDLED ;
@@ -2118,9 +2117,9 @@ static void mxt_regulator_enable(struct mxt_data *data)
21182117 msleep (MXT_CHG_DELAY );
21192118
21202119retry_wait :
2121- reinit_completion (& data -> bl_completion );
2120+ reinit_completion (& data -> chg_completion );
21222121 data -> in_bootloader = true;
2123- error = mxt_wait_for_completion (data , & data -> bl_completion ,
2122+ error = mxt_wait_for_completion (data , & data -> chg_completion ,
21242123 MXT_POWERON_DELAY );
21252124 if (error == - EINTR )
21262125 goto retry_wait ;
@@ -2882,7 +2881,7 @@ static int mxt_load_fw(struct device *dev, const char *fn)
28822881 enable_irq (data -> irq );
28832882 }
28842883
2885- reinit_completion (& data -> bl_completion );
2884+ reinit_completion (& data -> chg_completion );
28862885
28872886 ret = mxt_check_bootloader (data , MXT_WAITING_BOOTLOAD_CMD , false);
28882887 if (ret ) {
@@ -2937,7 +2936,7 @@ static int mxt_load_fw(struct device *dev, const char *fn)
29372936 }
29382937
29392938 /* Wait for flash. */
2940- ret = mxt_wait_for_completion (data , & data -> bl_completion ,
2939+ ret = mxt_wait_for_completion (data , & data -> chg_completion ,
29412940 MXT_FW_RESET_TIME );
29422941 if (ret )
29432942 goto disable_irq ;
@@ -2949,7 +2948,7 @@ static int mxt_load_fw(struct device *dev, const char *fn)
29492948 * the CHG line after bootloading has finished, so ignore potential
29502949 * errors.
29512950 */
2952- mxt_wait_for_completion (data , & data -> bl_completion , MXT_FW_RESET_TIME );
2951+ mxt_wait_for_completion (data , & data -> chg_completion , MXT_FW_RESET_TIME );
29532952
29542953 data -> in_bootloader = false;
29552954
@@ -3326,7 +3325,7 @@ static int mxt_probe(struct i2c_client *client, const struct i2c_device_id *id)
33263325 data -> irq = client -> irq ;
33273326 i2c_set_clientdata (client , data );
33283327
3329- init_completion (& data -> bl_completion );
3328+ init_completion (& data -> chg_completion );
33303329 init_completion (& data -> reset_completion );
33313330 init_completion (& data -> crc_completion );
33323331
@@ -3350,9 +3349,9 @@ static int mxt_probe(struct i2c_client *client, const struct i2c_device_id *id)
33503349 if (data -> reset_gpio ) {
33513350 data -> in_bootloader = true;
33523351 msleep (MXT_RESET_TIME );
3353- reinit_completion (& data -> bl_completion );
3352+ reinit_completion (& data -> chg_completion );
33543353 gpiod_set_value (data -> reset_gpio , 1 );
3355- error = mxt_wait_for_completion (data , & data -> bl_completion ,
3354+ error = mxt_wait_for_completion (data , & data -> chg_completion ,
33563355 MXT_RESET_TIMEOUT );
33573356 if (error )
33583357 return error ;
0 commit comments