Lines Matching refs:hsdev

63 	struct hid_sensor_hub_device *hsdev;  member
114 struct hid_sensor_hub_device **hsdev, in sensor_hub_get_callback() argument
126 callback->hsdev->start_collection_index) && in sensor_hub_get_callback()
128 callback->hsdev->end_collection_index)) { in sensor_hub_get_callback()
130 *hsdev = callback->hsdev; in sensor_hub_get_callback()
140 int sensor_hub_register_callback(struct hid_sensor_hub_device *hsdev, in sensor_hub_register_callback() argument
145 struct sensor_hub_data *pdata = hid_get_drvdata(hsdev->hdev); in sensor_hub_register_callback()
151 callback->hsdev == hsdev) { in sensor_hub_register_callback()
160 callback->hsdev = hsdev; in sensor_hub_register_callback()
182 int sensor_hub_remove_callback(struct hid_sensor_hub_device *hsdev, in sensor_hub_remove_callback() argument
186 struct sensor_hub_data *pdata = hid_get_drvdata(hsdev->hdev); in sensor_hub_remove_callback()
192 callback->hsdev == hsdev) { in sensor_hub_remove_callback()
203 int sensor_hub_set_feature(struct hid_sensor_hub_device *hsdev, u32 report_id, in sensor_hub_set_feature() argument
207 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_set_feature()
215 report = sensor_hub_report(report_id, hsdev->hdev, HID_FEATURE_REPORT); in sensor_hub_set_feature()
235 hid_hw_request(hsdev->hdev, report, HID_REQ_SET_REPORT); in sensor_hub_set_feature()
236 hid_hw_wait(hsdev->hdev); in sensor_hub_set_feature()
245 int sensor_hub_get_feature(struct hid_sensor_hub_device *hsdev, u32 report_id, in sensor_hub_get_feature() argument
249 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_get_feature()
254 report = sensor_hub_report(report_id, hsdev->hdev, HID_FEATURE_REPORT); in sensor_hub_get_feature()
260 hid_hw_request(hsdev->hdev, report, HID_REQ_GET_REPORT); in sensor_hub_get_feature()
261 hid_hw_wait(hsdev->hdev); in sensor_hub_get_feature()
282 int sensor_hub_input_attr_get_raw_value(struct hid_sensor_hub_device *hsdev, in sensor_hub_input_attr_get_raw_value() argument
287 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_input_attr_get_raw_value()
292 report = sensor_hub_report(report_id, hsdev->hdev, in sensor_hub_input_attr_get_raw_value()
297 mutex_lock(hsdev->mutex_ptr); in sensor_hub_input_attr_get_raw_value()
299 memset(&hsdev->pending, 0, sizeof(hsdev->pending)); in sensor_hub_input_attr_get_raw_value()
300 init_completion(&hsdev->pending.ready); in sensor_hub_input_attr_get_raw_value()
301 hsdev->pending.usage_id = usage_id; in sensor_hub_input_attr_get_raw_value()
302 hsdev->pending.attr_usage_id = attr_usage_id; in sensor_hub_input_attr_get_raw_value()
303 hsdev->pending.raw_size = 0; in sensor_hub_input_attr_get_raw_value()
306 hsdev->pending.status = true; in sensor_hub_input_attr_get_raw_value()
310 hid_hw_request(hsdev->hdev, report, HID_REQ_GET_REPORT); in sensor_hub_input_attr_get_raw_value()
314 &hsdev->pending.ready, HZ*5); in sensor_hub_input_attr_get_raw_value()
315 switch (hsdev->pending.raw_size) { in sensor_hub_input_attr_get_raw_value()
317 ret_val = *(u8 *)hsdev->pending.raw_data; in sensor_hub_input_attr_get_raw_value()
320 ret_val = *(u16 *)hsdev->pending.raw_data; in sensor_hub_input_attr_get_raw_value()
323 ret_val = *(u32 *)hsdev->pending.raw_data; in sensor_hub_input_attr_get_raw_value()
328 kfree(hsdev->pending.raw_data); in sensor_hub_input_attr_get_raw_value()
329 hsdev->pending.status = false; in sensor_hub_input_attr_get_raw_value()
331 mutex_unlock(hsdev->mutex_ptr); in sensor_hub_input_attr_get_raw_value()
337 int hid_sensor_get_usage_index(struct hid_sensor_hub_device *hsdev, in hid_sensor_get_usage_index() argument
344 report = sensor_hub_report(report_id, hsdev->hdev, HID_FEATURE_REPORT); in hid_sensor_get_usage_index()
359 int sensor_hub_input_get_attribute_info(struct hid_sensor_hub_device *hsdev, in sensor_hub_input_get_attribute_info() argument
370 struct hid_device *hdev = hsdev->hdev; in sensor_hub_input_get_attribute_info()
390 hsdev->start_collection_index) && in sensor_hub_input_get_attribute_info()
392 hsdev->end_collection_index)) { in sensor_hub_input_get_attribute_info()
421 callback->hsdev, callback->priv); in sensor_hub_suspend()
439 callback->hsdev, callback->priv); in sensor_hub_resume()
466 struct hid_sensor_hub_device *hsdev = NULL; in sensor_hub_raw_event() local
495 &hsdev, &priv); in sensor_hub_raw_event()
500 if (hsdev->pending.status && (hsdev->pending.attr_usage_id == in sensor_hub_raw_event()
502 hsdev->pending.attr_usage_id == in sensor_hub_raw_event()
505 hsdev->pending.raw_data = kmemdup(ptr, sz, GFP_ATOMIC); in sensor_hub_raw_event()
506 if (hsdev->pending.raw_data) in sensor_hub_raw_event()
507 hsdev->pending.raw_size = sz; in sensor_hub_raw_event()
509 hsdev->pending.raw_size = 0; in sensor_hub_raw_event()
510 complete(&hsdev->pending.ready); in sensor_hub_raw_event()
514 callback->capture_sample(hsdev, in sensor_hub_raw_event()
518 callback->capture_sample(hsdev, in sensor_hub_raw_event()
525 callback->send_event(hsdev, collection->usage, in sensor_hub_raw_event()
532 int sensor_hub_device_open(struct hid_sensor_hub_device *hsdev) in sensor_hub_device_open() argument
535 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_device_open()
539 ret = hid_hw_open(hsdev->hdev); in sensor_hub_device_open()
541 hid_err(hsdev->hdev, "failed to open hid device\n"); in sensor_hub_device_open()
553 void sensor_hub_device_close(struct hid_sensor_hub_device *hsdev) in sensor_hub_device_close() argument
555 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_device_close()
560 hid_hw_close(hsdev->hdev); in sensor_hub_device_close()
607 struct hid_sensor_hub_device *hsdev; in sensor_hub_probe() local
659 hsdev = devm_kzalloc(&hdev->dev, sizeof(*hsdev), in sensor_hub_probe()
661 if (!hsdev) { in sensor_hub_probe()
666 hsdev->hdev = hdev; in sensor_hub_probe()
667 hsdev->vendor_id = hdev->vendor; in sensor_hub_probe()
668 hsdev->product_id = hdev->product; in sensor_hub_probe()
669 hsdev->usage = collection->usage; in sensor_hub_probe()
670 hsdev->mutex_ptr = devm_kzalloc(&hdev->dev, in sensor_hub_probe()
673 if (!hsdev->mutex_ptr) { in sensor_hub_probe()
677 mutex_init(hsdev->mutex_ptr); in sensor_hub_probe()
678 hsdev->start_collection_index = i; in sensor_hub_probe()
681 last_hsdev = hsdev; in sensor_hub_probe()
694 hsdev; in sensor_hub_probe()
697 sizeof(*hsdev); in sensor_hub_probe()
699 hsdev->start_collection_index); in sensor_hub_probe()
705 collection_hsdev = hsdev; in sensor_hub_probe()
738 struct hid_sensor_hub_device *hsdev = in sensor_hub_remove() local
740 if (hsdev->pending.status) in sensor_hub_remove()
741 complete(&hsdev->pending.ready); in sensor_hub_remove()