@@ -489,47 +489,31 @@ static int mxt_probe_bootloader(struct mxt_data *data, bool alt_address)
489
489
{
490
490
struct device * dev = & data -> client -> dev ;
491
491
int error ;
492
- u8 val ;
493
- bool crc_failure ;
492
+ u8 buf [ 3 ] ;
493
+ bool crc_failure , extended_id ;
494
494
495
495
error = mxt_lookup_bootloader_address (data , alt_address );
496
496
if (error )
497
497
return error ;
498
498
499
- error = mxt_bootloader_read (data , & val , 1 );
499
+ /* Check bootloader status and version information */
500
+ error = mxt_bootloader_read (data , buf , sizeof (buf ));
500
501
if (error )
501
502
return error ;
502
503
503
- /* Check app crc fail mode */
504
- crc_failure = ( val & ~ MXT_BOOT_STATUS_MASK ) == MXT_APP_CRC_FAIL ;
504
+ crc_failure = ( buf [ 0 ] & ~ MXT_BOOT_STATUS_MASK ) == MXT_APP_CRC_FAIL ;
505
+ extended_id = buf [ 0 ] & MXT_BOOT_EXTENDED_ID ;
505
506
506
- dev_err (dev , "Detected bootloader, status:%02X%s\n" ,
507
- val , crc_failure ? ", APP_CRC_FAIL" : "" );
507
+ dev_info (dev , "Found bootloader addr:%02x ID:%u%s%u%s\n" ,
508
+ data -> bootloader_addr ,
509
+ extended_id ? (buf [1 ] & MXT_BOOT_ID_MASK ) : buf [0 ],
510
+ extended_id ? " version:" : "" ,
511
+ extended_id ? buf [2 ] : 0 ,
512
+ crc_failure ? ", APP_CRC_FAIL" : "" );
508
513
509
514
return 0 ;
510
515
}
511
516
512
- static u8 mxt_get_bootloader_version (struct mxt_data * data , u8 val )
513
- {
514
- struct device * dev = & data -> client -> dev ;
515
- u8 buf [3 ];
516
-
517
- if (val & MXT_BOOT_EXTENDED_ID ) {
518
- if (mxt_bootloader_read (data , & buf [0 ], 3 ) != 0 ) {
519
- dev_err (dev , "%s: i2c failure\n" , __func__ );
520
- return val ;
521
- }
522
-
523
- dev_dbg (dev , "Bootloader ID:%d Version:%d\n" , buf [1 ], buf [2 ]);
524
-
525
- return buf [0 ];
526
- } else {
527
- dev_dbg (dev , "Bootloader ID:%d\n" , val & MXT_BOOT_ID_MASK );
528
-
529
- return val ;
530
- }
531
- }
532
-
533
517
static int mxt_check_bootloader (struct mxt_data * data , unsigned int state ,
534
518
bool wait )
535
519
{
@@ -563,9 +547,6 @@ static int mxt_check_bootloader(struct mxt_data *data, unsigned int state,
563
547
if (ret )
564
548
return ret ;
565
549
566
- if (state == MXT_WAITING_BOOTLOAD_CMD )
567
- val = mxt_get_bootloader_version (data , val );
568
-
569
550
switch (state ) {
570
551
case MXT_WAITING_BOOTLOAD_CMD :
571
552
case MXT_WAITING_FRAME_DATA :
@@ -2749,7 +2730,7 @@ static int mxt_enter_bootloader(struct mxt_data *data)
2749
2730
msleep (MXT_RESET_TIME );
2750
2731
2751
2732
/* Do not need to scan since we know family ID */
2752
- ret = mxt_lookup_bootloader_address (data , 0 );
2733
+ ret = mxt_probe_bootloader (data , 0 );
2753
2734
if (ret )
2754
2735
return ret ;
2755
2736
0 commit comments