|
11 | 11 | #include <linux/acpi.h>
|
12 | 12 | #include <linux/device.h>
|
13 | 13 | #include <linux/dmi.h>
|
| 14 | +#include <linux/efi_embedded_fw.h> |
14 | 15 | #include <linux/i2c.h>
|
15 | 16 | #include <linux/notifier.h>
|
16 | 17 | #include <linux/property.h>
|
17 | 18 | #include <linux/string.h>
|
18 | 19 |
|
19 | 20 | struct ts_dmi_data {
|
| 21 | + /* The EFI embedded-fw code expects this to be the first member! */ |
| 22 | + struct efi_embedded_fw_desc embedded_fw; |
20 | 23 | const char *acpi_name;
|
21 | 24 | const struct property_entry *properties;
|
22 | 25 | };
|
@@ -64,6 +67,15 @@ static const struct property_entry chuwi_hi8_pro_props[] = {
|
64 | 67 | };
|
65 | 68 |
|
66 | 69 | static const struct ts_dmi_data chuwi_hi8_pro_data = {
|
| 70 | + .embedded_fw = { |
| 71 | + .name = "silead/gsl3680-chuwi-hi8-pro.fw", |
| 72 | + .prefix = { 0xf0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 }, |
| 73 | + .length = 39864, |
| 74 | + .sha256 = { 0xc0, 0x88, 0xc5, 0xef, 0xd1, 0x70, 0x77, 0x59, |
| 75 | + 0x4e, 0xe9, 0xc4, 0xd8, 0x2e, 0xcd, 0xbf, 0x95, |
| 76 | + 0x32, 0xd9, 0x03, 0x28, 0x0d, 0x48, 0x9f, 0x92, |
| 77 | + 0x35, 0x37, 0xf6, 0x8b, 0x2a, 0xe4, 0x73, 0xff }, |
| 78 | + }, |
67 | 79 | .acpi_name = "MSSL1680:00",
|
68 | 80 | .properties = chuwi_hi8_pro_props,
|
69 | 81 | };
|
@@ -181,6 +193,15 @@ static const struct property_entry cube_iwork8_air_props[] = {
|
181 | 193 | };
|
182 | 194 |
|
183 | 195 | static const struct ts_dmi_data cube_iwork8_air_data = {
|
| 196 | + .embedded_fw = { |
| 197 | + .name = "silead/gsl3670-cube-iwork8-air.fw", |
| 198 | + .prefix = { 0xf0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 }, |
| 199 | + .length = 38808, |
| 200 | + .sha256 = { 0xff, 0x62, 0x2d, 0xd1, 0x8a, 0x78, 0x04, 0x7b, |
| 201 | + 0x33, 0x06, 0xb0, 0x4f, 0x7f, 0x02, 0x08, 0x9c, |
| 202 | + 0x96, 0xd4, 0x9f, 0x04, 0xe1, 0x47, 0x25, 0x25, |
| 203 | + 0x60, 0x77, 0x41, 0x33, 0xeb, 0x12, 0x82, 0xfc }, |
| 204 | + }, |
184 | 205 | .acpi_name = "MSSL1680:00",
|
185 | 206 | .properties = cube_iwork8_air_props,
|
186 | 207 | };
|
@@ -387,6 +408,15 @@ static const struct property_entry onda_v80_plus_v3_props[] = {
|
387 | 408 | };
|
388 | 409 |
|
389 | 410 | static const struct ts_dmi_data onda_v80_plus_v3_data = {
|
| 411 | + .embedded_fw = { |
| 412 | + .name = "silead/gsl3676-onda-v80-plus-v3.fw", |
| 413 | + .prefix = { 0xf0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 }, |
| 414 | + .length = 37224, |
| 415 | + .sha256 = { 0x8f, 0xbd, 0x8f, 0x0c, 0x6b, 0xba, 0x5b, 0xf5, |
| 416 | + 0xa3, 0xc7, 0xa3, 0xc0, 0x4f, 0xcd, 0xdf, 0x32, |
| 417 | + 0xcc, 0xe4, 0x70, 0xd6, 0x46, 0x9c, 0xd7, 0xa7, |
| 418 | + 0x4b, 0x82, 0x3f, 0xab, 0xc7, 0x90, 0xea, 0x23 }, |
| 419 | + }, |
390 | 420 | .acpi_name = "MSSL1680:00",
|
391 | 421 | .properties = onda_v80_plus_v3_props,
|
392 | 422 | };
|
@@ -449,6 +479,15 @@ static const struct property_entry pipo_w2s_props[] = {
|
449 | 479 | };
|
450 | 480 |
|
451 | 481 | static const struct ts_dmi_data pipo_w2s_data = {
|
| 482 | + .embedded_fw = { |
| 483 | + .name = "silead/gsl1680-pipo-w2s.fw", |
| 484 | + .prefix = { 0xf0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 }, |
| 485 | + .length = 39072, |
| 486 | + .sha256 = { 0xd0, 0x58, 0xc4, 0x7d, 0x55, 0x2d, 0x62, 0x18, |
| 487 | + 0xd1, 0x6a, 0x71, 0x73, 0x0b, 0x3f, 0xbe, 0x60, |
| 488 | + 0xbb, 0x45, 0x8c, 0x52, 0x27, 0xb7, 0x18, 0xf4, |
| 489 | + 0x31, 0x00, 0x6a, 0x49, 0x76, 0xd8, 0x7c, 0xd3 }, |
| 490 | + }, |
452 | 491 | .acpi_name = "MSSL1680:00",
|
453 | 492 | .properties = pipo_w2s_props,
|
454 | 493 | };
|
@@ -641,7 +680,7 @@ static const struct ts_dmi_data trekstor_surftab_wintron70_data = {
|
641 | 680 | };
|
642 | 681 |
|
643 | 682 | /* NOTE: Please keep this table sorted alphabetically */
|
644 |
| -static const struct dmi_system_id touchscreen_dmi_table[] = { |
| 683 | +const struct dmi_system_id touchscreen_dmi_table[] = { |
645 | 684 | {
|
646 | 685 | /* Chuwi Hi8 */
|
647 | 686 | .driver_data = (void *)&chuwi_hi8_data,
|
|
0 commit comments