Input: elan_i2c - add firmware update info for ICs 0x11, 0x13, 0x14
authorJingle Wu <jingle.wu@emc.com.tw>
Fri, 17 Jul 2020 05:55:57 +0000 (22:55 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 18 Jul 2020 00:36:02 +0000 (17:36 -0700)
This adds firmware size and page sizes for ic types 0x11, 0x13 and 0x14.
IC 0x14 uses 512-byte firmware page size.

Signed-off-by: Jingle Wu <jingle.wu@emc.com.tw>.
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/mouse/elan_i2c_core.c

index e0f42de..5c933e1 100644 (file)
@@ -127,6 +127,15 @@ static int elan_get_fwinfo(u16 ic_type, u8 iap_version, u16 *validpage_count,
        case 0x10:
                *validpage_count = 1024;
                break;
+       case 0x11:
+               *validpage_count = 1280;
+               break;
+       case 0x13:
+               *validpage_count = 2048;
+               break;
+       case 0x14:
+               *validpage_count = 1024;
+               break;
        default:
                /* unknown ic type clear value */
                *validpage_count = 0;
@@ -138,7 +147,10 @@ static int elan_get_fwinfo(u16 ic_type, u8 iap_version, u16 *validpage_count,
        *signature_address =
                (*validpage_count * ETP_FW_PAGE_SIZE) - ETP_FW_SIGNATURE_SIZE;
 
-       if (ic_type >= 0x0D && iap_version >= 1) {
+       if (ic_type == 0x14 && iap_version >= 2) {
+               *validpage_count /= 8;
+               *page_size = ETP_FW_PAGE_SIZE_512;
+       } else if (ic_type >= 0x0D && iap_version >= 1) {
                *validpage_count /= 2;
                *page_size = ETP_FW_PAGE_SIZE_128;
        } else {