Lines Matching refs:hsdev
50 struct hid_sensor_hub_device *hsdev; member
101 struct hid_sensor_hub_device **hsdev, in sensor_hub_get_callback() argument
113 callback->hsdev->start_collection_index) && in sensor_hub_get_callback()
115 callback->hsdev->end_collection_index)) { in sensor_hub_get_callback()
117 *hsdev = callback->hsdev; in sensor_hub_get_callback()
127 int sensor_hub_register_callback(struct hid_sensor_hub_device *hsdev, in sensor_hub_register_callback() argument
132 struct sensor_hub_data *pdata = hid_get_drvdata(hsdev->hdev); in sensor_hub_register_callback()
138 callback->hsdev == hsdev) { in sensor_hub_register_callback()
147 callback->hsdev = hsdev; in sensor_hub_register_callback()
169 int sensor_hub_remove_callback(struct hid_sensor_hub_device *hsdev, in sensor_hub_remove_callback() argument
173 struct sensor_hub_data *pdata = hid_get_drvdata(hsdev->hdev); in sensor_hub_remove_callback()
179 callback->hsdev == hsdev) { in sensor_hub_remove_callback()
190 int sensor_hub_set_feature(struct hid_sensor_hub_device *hsdev, u32 report_id, in sensor_hub_set_feature() argument
194 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_set_feature()
202 report = sensor_hub_report(report_id, hsdev->hdev, HID_FEATURE_REPORT); in sensor_hub_set_feature()
228 hid_hw_request(hsdev->hdev, report, HID_REQ_SET_REPORT); in sensor_hub_set_feature()
229 hid_hw_wait(hsdev->hdev); in sensor_hub_set_feature()
238 int sensor_hub_get_feature(struct hid_sensor_hub_device *hsdev, u32 report_id, in sensor_hub_get_feature() argument
242 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_get_feature()
252 report = sensor_hub_report(report_id, hsdev->hdev, HID_FEATURE_REPORT); in sensor_hub_get_feature()
258 hid_hw_request(hsdev->hdev, report, HID_REQ_GET_REPORT); in sensor_hub_get_feature()
259 hid_hw_wait(hsdev->hdev); in sensor_hub_get_feature()
290 int sensor_hub_input_attr_get_raw_value(struct hid_sensor_hub_device *hsdev, in sensor_hub_input_attr_get_raw_value() argument
296 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_input_attr_get_raw_value()
301 report = sensor_hub_report(report_id, hsdev->hdev, in sensor_hub_input_attr_get_raw_value()
306 mutex_lock(hsdev->mutex_ptr); in sensor_hub_input_attr_get_raw_value()
308 memset(&hsdev->pending, 0, sizeof(hsdev->pending)); in sensor_hub_input_attr_get_raw_value()
309 init_completion(&hsdev->pending.ready); in sensor_hub_input_attr_get_raw_value()
310 hsdev->pending.usage_id = usage_id; in sensor_hub_input_attr_get_raw_value()
311 hsdev->pending.attr_usage_id = attr_usage_id; in sensor_hub_input_attr_get_raw_value()
312 hsdev->pending.raw_size = 0; in sensor_hub_input_attr_get_raw_value()
315 hsdev->pending.status = true; in sensor_hub_input_attr_get_raw_value()
319 hid_hw_request(hsdev->hdev, report, HID_REQ_GET_REPORT); in sensor_hub_input_attr_get_raw_value()
323 &hsdev->pending.ready, HZ*5); in sensor_hub_input_attr_get_raw_value()
324 switch (hsdev->pending.raw_size) { in sensor_hub_input_attr_get_raw_value()
327 ret_val = *(s8 *)hsdev->pending.raw_data; in sensor_hub_input_attr_get_raw_value()
329 ret_val = *(u8 *)hsdev->pending.raw_data; in sensor_hub_input_attr_get_raw_value()
333 ret_val = *(s16 *)hsdev->pending.raw_data; in sensor_hub_input_attr_get_raw_value()
335 ret_val = *(u16 *)hsdev->pending.raw_data; in sensor_hub_input_attr_get_raw_value()
338 ret_val = *(u32 *)hsdev->pending.raw_data; in sensor_hub_input_attr_get_raw_value()
343 kfree(hsdev->pending.raw_data); in sensor_hub_input_attr_get_raw_value()
344 hsdev->pending.status = false; in sensor_hub_input_attr_get_raw_value()
346 mutex_unlock(hsdev->mutex_ptr); in sensor_hub_input_attr_get_raw_value()
352 int hid_sensor_get_usage_index(struct hid_sensor_hub_device *hsdev, in hid_sensor_get_usage_index() argument
359 report = sensor_hub_report(report_id, hsdev->hdev, HID_FEATURE_REPORT); in hid_sensor_get_usage_index()
374 int sensor_hub_input_get_attribute_info(struct hid_sensor_hub_device *hsdev, in sensor_hub_input_get_attribute_info() argument
385 struct hid_device *hdev = hsdev->hdev; in sensor_hub_input_get_attribute_info()
406 hsdev->start_collection_index) && in sensor_hub_input_get_attribute_info()
408 hsdev->end_collection_index)) { in sensor_hub_input_get_attribute_info()
437 callback->hsdev, callback->priv); in sensor_hub_suspend()
455 callback->hsdev, callback->priv); in sensor_hub_resume()
482 struct hid_sensor_hub_device *hsdev = NULL; in sensor_hub_raw_event() local
513 &hsdev, &priv); in sensor_hub_raw_event()
518 if (hsdev->pending.status && (hsdev->pending.attr_usage_id == in sensor_hub_raw_event()
520 hsdev->pending.attr_usage_id == in sensor_hub_raw_event()
523 hsdev->pending.raw_data = kmemdup(ptr, sz, GFP_ATOMIC); in sensor_hub_raw_event()
524 if (hsdev->pending.raw_data) in sensor_hub_raw_event()
525 hsdev->pending.raw_size = sz; in sensor_hub_raw_event()
527 hsdev->pending.raw_size = 0; in sensor_hub_raw_event()
528 complete(&hsdev->pending.ready); in sensor_hub_raw_event()
532 callback->capture_sample(hsdev, in sensor_hub_raw_event()
536 callback->capture_sample(hsdev, in sensor_hub_raw_event()
543 callback->send_event(hsdev, collection->usage, in sensor_hub_raw_event()
550 int sensor_hub_device_open(struct hid_sensor_hub_device *hsdev) in sensor_hub_device_open() argument
553 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_device_open()
557 ret = hid_hw_open(hsdev->hdev); in sensor_hub_device_open()
559 hid_err(hsdev->hdev, "failed to open hid device\n"); in sensor_hub_device_open()
571 void sensor_hub_device_close(struct hid_sensor_hub_device *hsdev) in sensor_hub_device_close() argument
573 struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev); in sensor_hub_device_close()
578 hid_hw_close(hsdev->hdev); in sensor_hub_device_close()
613 struct hid_sensor_hub_device *hsdev; in sensor_hub_probe() local
665 hsdev = devm_kzalloc(&hdev->dev, sizeof(*hsdev), in sensor_hub_probe()
667 if (!hsdev) { in sensor_hub_probe()
672 hsdev->hdev = hdev; in sensor_hub_probe()
673 hsdev->vendor_id = hdev->vendor; in sensor_hub_probe()
674 hsdev->product_id = hdev->product; in sensor_hub_probe()
675 hsdev->usage = collection->usage; in sensor_hub_probe()
676 hsdev->mutex_ptr = devm_kzalloc(&hdev->dev, in sensor_hub_probe()
679 if (!hsdev->mutex_ptr) { in sensor_hub_probe()
683 mutex_init(hsdev->mutex_ptr); in sensor_hub_probe()
684 hsdev->start_collection_index = i; in sensor_hub_probe()
687 last_hsdev = hsdev; in sensor_hub_probe()
700 hsdev; in sensor_hub_probe()
703 sizeof(*hsdev); in sensor_hub_probe()
705 hsdev->start_collection_index); in sensor_hub_probe()
711 collection_hsdev = hsdev; in sensor_hub_probe()
744 struct hid_sensor_hub_device *hsdev = in sensor_hub_remove() local
746 if (hsdev->pending.status) in sensor_hub_remove()
747 complete(&hsdev->pending.ready); in sensor_hub_remove()