diff options
| -rw-r--r-- | drivers/hid/hid-rmi.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c index eda7ef41c291..05e4928c06f1 100644 --- a/drivers/hid/hid-rmi.c +++ b/drivers/hid/hid-rmi.c | |||
| @@ -641,10 +641,15 @@ static int rmi_populate_f11(struct hid_device *hdev) | |||
| 641 | } | 641 | } |
| 642 | } | 642 | } |
| 643 | 643 | ||
| 644 | /* retrieve the ctrl registers */ | 644 | /* |
| 645 | ret = rmi_read_block(hdev, data->f11.control_base_addr, buf, 20); | 645 | * retrieve the ctrl registers |
| 646 | * the ctrl register has a size of 20 but a fw bug split it into 16 + 4, | ||
| 647 | * and there is no way to know if the first 20 bytes are here or not. | ||
| 648 | * We use only the first 10 bytes, so get only them. | ||
| 649 | */ | ||
| 650 | ret = rmi_read_block(hdev, data->f11.control_base_addr, buf, 10); | ||
| 646 | if (ret) { | 651 | if (ret) { |
| 647 | hid_err(hdev, "can not read ctrl block of size 20: %d.\n", ret); | 652 | hid_err(hdev, "can not read ctrl block of size 10: %d.\n", ret); |
| 648 | return ret; | 653 | return ret; |
| 649 | } | 654 | } |
| 650 | 655 | ||
