|
@@ -339,7 +339,15 @@ static int tpkbd_probe_tp(struct hid_device *hdev)
|
|
|
struct tpkbd_data_pointer *data_pointer;
|
|
|
size_t name_sz = strlen(dev_name(dev)) + 16;
|
|
|
char *name_mute, *name_micmute;
|
|
|
- int ret;
|
|
|
+ int i, ret;
|
|
|
+
|
|
|
+ /* Validate required reports. */
|
|
|
+ for (i = 0; i < 4; i++) {
|
|
|
+ if (!hid_validate_values(hdev, HID_FEATURE_REPORT, 4, i, 1))
|
|
|
+ return -ENODEV;
|
|
|
+ }
|
|
|
+ if (!hid_validate_values(hdev, HID_OUTPUT_REPORT, 3, 0, 2))
|
|
|
+ return -ENODEV;
|
|
|
|
|
|
if (sysfs_create_group(&hdev->dev.kobj,
|
|
|
&tpkbd_attr_group_pointer)) {
|