|
|
@@ -660,6 +660,20 @@ exit:
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+static int alps_sp_open(struct input_dev *dev)
|
|
|
+{
|
|
|
+ struct hid_device *hid = input_get_drvdata(dev);
|
|
|
+
|
|
|
+ return hid_hw_open(hid);
|
|
|
+}
|
|
|
+
|
|
|
+static void alps_sp_close(struct input_dev *dev)
|
|
|
+{
|
|
|
+ struct hid_device *hid = input_get_drvdata(dev);
|
|
|
+
|
|
|
+ hid_hw_close(hid);
|
|
|
+}
|
|
|
+
|
|
|
static int alps_input_configured(struct hid_device *hdev, struct hid_input *hi)
|
|
|
{
|
|
|
struct alps_dev *data = hid_get_drvdata(hdev);
|
|
|
@@ -733,6 +747,10 @@ static int alps_input_configured(struct hid_device *hdev, struct hid_input *hi)
|
|
|
input2->id.version = input->id.version;
|
|
|
input2->dev.parent = input->dev.parent;
|
|
|
|
|
|
+ input_set_drvdata(input2, hdev);
|
|
|
+ input2->open = alps_sp_open;
|
|
|
+ input2->close = alps_sp_close;
|
|
|
+
|
|
|
__set_bit(EV_KEY, input2->evbit);
|
|
|
data->sp_btn_cnt = (data->sp_btn_info & 0x0F);
|
|
|
for (i = 0; i < data->sp_btn_cnt; i++)
|