Lines Matching refs:hsdev
51 struct hid_sensor_hub_device *hsdev; member
102 struct hid_sensor_hub_device **hsdev, in sensor_hub_get_callback() argument
114 callback->hsdev->start_collection_index) && in sensor_hub_get_callback()
116 callback->hsdev->end_collection_index)) { in sensor_hub_get_callback()
118 *hsdev = callback->hsdev; in sensor_hub_get_callback()
128 int sensor_hub_register_callback(struct hid_sensor_hub_device *hsdev, in sensor_hub_register_callback() argument
133 struct sensor_hub_data *pdata = hid_get_drvdata(hsdev->hdev); in sensor_hub_register_callback()
139 callback->hsdev == hsdev) { in sensor_hub_register_callback()
148 callback->hsdev = hsdev; in sensor_hub_register_callback()
170 int sensor_hub_remove_callback(struct hid_sensor_hub_device *hsdev, in sensor_hub_remove_callback() argument
174 struct sensor_hub_data *pdata = hid_get_drvdata(hsdev->hdev); in sensor_hub_remove_callback()
180 callback->hsdev == hsdev) { in sensor_hub_remove_callback()
191 int sensor_hub_set_feature(struct hid_sensor_hub_device *hsdev, u32 report_id, in sensor_hub_set_feature() argument
195 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_set_feature()
203 report = sensor_hub_report(report_id, hsdev->hdev, HID_FEATURE_REPORT); in sensor_hub_set_feature()
224 hid_hw_request(hsdev->hdev, report, HID_REQ_SET_REPORT); in sensor_hub_set_feature()
225 hid_hw_wait(hsdev->hdev); in sensor_hub_set_feature()
234 int sensor_hub_get_feature(struct hid_sensor_hub_device *hsdev, u32 report_id, in sensor_hub_get_feature() argument
238 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_get_feature()
248 report = sensor_hub_report(report_id, hsdev->hdev, HID_FEATURE_REPORT); in sensor_hub_get_feature()
254 hid_hw_request(hsdev->hdev, report, HID_REQ_GET_REPORT); in sensor_hub_get_feature()
255 hid_hw_wait(hsdev->hdev); in sensor_hub_get_feature()
286 int sensor_hub_input_attr_get_raw_value(struct hid_sensor_hub_device *hsdev, in sensor_hub_input_attr_get_raw_value() argument
292 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_input_attr_get_raw_value()
297 report = sensor_hub_report(report_id, hsdev->hdev, in sensor_hub_input_attr_get_raw_value()
302 mutex_lock(hsdev->mutex_ptr); in sensor_hub_input_attr_get_raw_value()
304 memset(&hsdev->pending, 0, sizeof(hsdev->pending)); in sensor_hub_input_attr_get_raw_value()
305 init_completion(&hsdev->pending.ready); in sensor_hub_input_attr_get_raw_value()
306 hsdev->pending.usage_id = usage_id; in sensor_hub_input_attr_get_raw_value()
307 hsdev->pending.attr_usage_id = attr_usage_id; in sensor_hub_input_attr_get_raw_value()
308 hsdev->pending.raw_size = 0; in sensor_hub_input_attr_get_raw_value()
311 hsdev->pending.status = true; in sensor_hub_input_attr_get_raw_value()
315 hid_hw_request(hsdev->hdev, report, HID_REQ_GET_REPORT); in sensor_hub_input_attr_get_raw_value()
319 &hsdev->pending.ready, HZ*5); in sensor_hub_input_attr_get_raw_value()
320 switch (hsdev->pending.raw_size) { in sensor_hub_input_attr_get_raw_value()
323 ret_val = *(s8 *)hsdev->pending.raw_data; in sensor_hub_input_attr_get_raw_value()
325 ret_val = *(u8 *)hsdev->pending.raw_data; in sensor_hub_input_attr_get_raw_value()
329 ret_val = *(s16 *)hsdev->pending.raw_data; in sensor_hub_input_attr_get_raw_value()
331 ret_val = *(u16 *)hsdev->pending.raw_data; in sensor_hub_input_attr_get_raw_value()
334 ret_val = *(u32 *)hsdev->pending.raw_data; in sensor_hub_input_attr_get_raw_value()
339 kfree(hsdev->pending.raw_data); in sensor_hub_input_attr_get_raw_value()
340 hsdev->pending.status = false; in sensor_hub_input_attr_get_raw_value()
342 mutex_unlock(hsdev->mutex_ptr); in sensor_hub_input_attr_get_raw_value()
348 int hid_sensor_get_usage_index(struct hid_sensor_hub_device *hsdev, in hid_sensor_get_usage_index() argument
355 report = sensor_hub_report(report_id, hsdev->hdev, HID_FEATURE_REPORT); in hid_sensor_get_usage_index()
370 int sensor_hub_input_get_attribute_info(struct hid_sensor_hub_device *hsdev, in sensor_hub_input_get_attribute_info() argument
381 struct hid_device *hdev = hsdev->hdev; in sensor_hub_input_get_attribute_info()
401 hsdev->start_collection_index) && in sensor_hub_input_get_attribute_info()
403 hsdev->end_collection_index)) { in sensor_hub_input_get_attribute_info()
432 callback->hsdev, callback->priv); in sensor_hub_suspend()
450 callback->hsdev, callback->priv); in sensor_hub_resume()
477 struct hid_sensor_hub_device *hsdev = NULL; in sensor_hub_raw_event() local
507 &hsdev, &priv); in sensor_hub_raw_event()
512 if (hsdev->pending.status && (hsdev->pending.attr_usage_id == in sensor_hub_raw_event()
514 hsdev->pending.attr_usage_id == in sensor_hub_raw_event()
517 hsdev->pending.raw_data = kmemdup(ptr, sz, GFP_ATOMIC); in sensor_hub_raw_event()
518 if (hsdev->pending.raw_data) in sensor_hub_raw_event()
519 hsdev->pending.raw_size = sz; in sensor_hub_raw_event()
521 hsdev->pending.raw_size = 0; in sensor_hub_raw_event()
522 complete(&hsdev->pending.ready); in sensor_hub_raw_event()
526 callback->capture_sample(hsdev, in sensor_hub_raw_event()
530 callback->capture_sample(hsdev, in sensor_hub_raw_event()
537 callback->send_event(hsdev, collection->usage, in sensor_hub_raw_event()
544 int sensor_hub_device_open(struct hid_sensor_hub_device *hsdev) in sensor_hub_device_open() argument
547 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_device_open()
551 ret = hid_hw_open(hsdev->hdev); in sensor_hub_device_open()
553 hid_err(hsdev->hdev, "failed to open hid device\n"); in sensor_hub_device_open()
565 void sensor_hub_device_close(struct hid_sensor_hub_device *hsdev) in sensor_hub_device_close() argument
567 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_device_close()
572 hid_hw_close(hsdev->hdev); in sensor_hub_device_close()
607 struct hid_sensor_hub_device *hsdev; in sensor_hub_probe() local
660 hsdev = devm_kzalloc(&hdev->dev, sizeof(*hsdev), in sensor_hub_probe()
662 if (!hsdev) { in sensor_hub_probe()
667 hsdev->hdev = hdev; in sensor_hub_probe()
668 hsdev->vendor_id = hdev->vendor; in sensor_hub_probe()
669 hsdev->product_id = hdev->product; in sensor_hub_probe()
670 hsdev->usage = collection->usage; in sensor_hub_probe()
671 hsdev->mutex_ptr = devm_kzalloc(&hdev->dev, in sensor_hub_probe()
674 if (!hsdev->mutex_ptr) { in sensor_hub_probe()
678 mutex_init(hsdev->mutex_ptr); in sensor_hub_probe()
679 hsdev->start_collection_index = i; in sensor_hub_probe()
682 last_hsdev = hsdev; in sensor_hub_probe()
695 hsdev; in sensor_hub_probe()
698 sizeof(*hsdev); in sensor_hub_probe()
700 hsdev->start_collection_index); in sensor_hub_probe()
706 collection_hsdev = hsdev; in sensor_hub_probe()
739 struct hid_sensor_hub_device *hsdev = in sensor_hub_remove() local
741 if (hsdev->pending.status) in sensor_hub_remove()
742 complete(&hsdev->pending.ready); in sensor_hub_remove()