Lines Matching refs:workitem
632 struct dj_workitem *workitem) in logi_dj_recv_destroy_djhid_device() argument
639 dj_dev = djrcv_dev->paired_dj_devices[workitem->device_index]; in logi_dj_recv_destroy_djhid_device()
640 djrcv_dev->paired_dj_devices[workitem->device_index] = NULL; in logi_dj_recv_destroy_djhid_device()
653 struct dj_workitem *workitem) in logi_dj_recv_add_djhid_device() argument
659 u8 device_index = workitem->device_index; in logi_dj_recv_add_djhid_device()
685 dj_hiddev->product = (workitem->quad_id_msb << 8) | in logi_dj_recv_add_djhid_device()
686 workitem->quad_id_lsb; in logi_dj_recv_add_djhid_device()
687 if (workitem->device_type) { in logi_dj_recv_add_djhid_device()
690 switch (workitem->device_type) { in logi_dj_recv_add_djhid_device()
724 dj_dev->reports_supported = workitem->reports_supported; in logi_dj_recv_add_djhid_device()
755 struct dj_workitem workitem; in delayedwork_callback() local
775 count = kfifo_out(&djrcv_dev->notif_fifo, &workitem, sizeof(workitem)); in delayedwork_callback()
777 if (count != sizeof(workitem)) { in delayedwork_callback()
787 switch (workitem.type) { in delayedwork_callback()
789 logi_dj_recv_add_djhid_device(djrcv_dev, &workitem); in delayedwork_callback()
792 logi_dj_recv_destroy_djhid_device(djrcv_dev, &workitem); in delayedwork_callback()
821 struct dj_workitem workitem = { .type = WORKITEM_TYPE_UNKNOWN }; in logi_dj_recv_queue_unknown_work() local
827 kfifo_in(&djrcv_dev->notif_fifo, &workitem, sizeof(workitem)); in logi_dj_recv_queue_unknown_work()
835 struct dj_workitem workitem = { in logi_dj_recv_queue_notification() local
841 workitem.type = WORKITEM_TYPE_PAIRED; in logi_dj_recv_queue_notification()
844 workitem.type = WORKITEM_TYPE_EMPTY; in logi_dj_recv_queue_notification()
849 workitem.quad_id_msb = in logi_dj_recv_queue_notification()
851 workitem.quad_id_lsb = in logi_dj_recv_queue_notification()
853 workitem.reports_supported = get_unaligned_le32( in logi_dj_recv_queue_notification()
856 workitem.reports_supported |= HIDPP; in logi_dj_recv_queue_notification()
858 workitem.type = WORKITEM_TYPE_UNPAIRED; in logi_dj_recv_queue_notification()
865 kfifo_in(&djrcv_dev->notif_fifo, &workitem, sizeof(workitem)); in logi_dj_recv_queue_notification()
883 struct dj_workitem *workitem) in logi_hidpp_dev_conn_notif_equad() argument
888 workitem->type = WORKITEM_TYPE_PAIRED; in logi_hidpp_dev_conn_notif_equad()
889 workitem->device_type = hidpp_report->params[HIDPP_PARAM_DEVICE_INFO] & in logi_hidpp_dev_conn_notif_equad()
891 workitem->quad_id_msb = hidpp_report->params[HIDPP_PARAM_EQUAD_MSB]; in logi_hidpp_dev_conn_notif_equad()
892 workitem->quad_id_lsb = hidpp_report->params[HIDPP_PARAM_EQUAD_LSB]; in logi_hidpp_dev_conn_notif_equad()
893 switch (workitem->device_type) { in logi_hidpp_dev_conn_notif_equad()
895 workitem->reports_supported |= STD_KEYBOARD | MULTIMEDIA | in logi_hidpp_dev_conn_notif_equad()
898 id = (workitem->quad_id_msb << 8) | workitem->quad_id_lsb; in logi_hidpp_dev_conn_notif_equad()
901 workitem->reports_supported |= STD_MOUSE; in logi_hidpp_dev_conn_notif_equad()
907 workitem->reports_supported |= STD_MOUSE | HIDPP; in logi_hidpp_dev_conn_notif_equad()
909 workitem->reports_supported |= MULTIMEDIA; in logi_hidpp_dev_conn_notif_equad()
916 struct dj_workitem *workitem) in logi_hidpp_dev_conn_notif_27mhz() argument
918 workitem->type = WORKITEM_TYPE_PAIRED; in logi_hidpp_dev_conn_notif_27mhz()
919 workitem->quad_id_lsb = hidpp_report->params[HIDPP_PARAM_27MHZ_DEVID]; in logi_hidpp_dev_conn_notif_27mhz()
923 workitem->device_type = HIDPP_DEVICE_TYPE_MOUSE; in logi_hidpp_dev_conn_notif_27mhz()
924 workitem->reports_supported |= STD_MOUSE | HIDPP; in logi_hidpp_dev_conn_notif_27mhz()
928 workitem->device_type = HIDPP_DEVICE_TYPE_KEYBOARD; in logi_hidpp_dev_conn_notif_27mhz()
929 workitem->reports_supported |= STD_KEYBOARD | MULTIMEDIA | in logi_hidpp_dev_conn_notif_27mhz()
944 struct dj_workitem workitem = { in logi_hidpp_recv_queue_notif() local
953 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem); in logi_hidpp_recv_queue_notif()
958 workitem.reports_supported &= ~HIDPP; in logi_hidpp_recv_queue_notif()
963 logi_hidpp_dev_conn_notif_27mhz(hdev, hidpp_report, &workitem); in logi_hidpp_recv_queue_notif()
967 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem); in logi_hidpp_recv_queue_notif()
971 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem); in logi_hidpp_recv_queue_notif()
978 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem); in logi_hidpp_recv_queue_notif()
982 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem); in logi_hidpp_recv_queue_notif()
989 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem); in logi_hidpp_recv_queue_notif()
993 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem); in logi_hidpp_recv_queue_notif()
994 workitem.reports_supported |= STD_KEYBOARD; in logi_hidpp_recv_queue_notif()
998 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem); in logi_hidpp_recv_queue_notif()
999 workitem.reports_supported |= STD_KEYBOARD; in logi_hidpp_recv_queue_notif()
1005 workitem.reports_supported |= HIDPP; in logi_hidpp_recv_queue_notif()
1008 if (workitem.type == WORKITEM_TYPE_EMPTY) { in logi_hidpp_recv_queue_notif()
1021 kfifo_in(&djrcv_dev->notif_fifo, &workitem, sizeof(workitem)); in logi_hidpp_recv_queue_notif()
1553 struct dj_workitem workitem = { in logi_dj_hidpp_event() local
1557 kfifo_in(&djrcv_dev->notif_fifo, &workitem, sizeof(workitem)); in logi_dj_hidpp_event()