Loading sound/usb/usb_audio_qmi_svc.c +6 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,7 @@ struct uaudio_dev { /* audio control interface */ struct usb_host_interface *ctrl_intf; unsigned int card_num; unsigned int usb_core_id; atomic_t in_use; struct kref kref; wait_queue_head_t disconnect_wq; Loading Loading @@ -182,6 +183,8 @@ get_speed_info(enum usb_device_speed udev_speed) return USB_AUDIO_DEVICE_SPEED_HIGH_V01; case USB_SPEED_SUPER: return USB_AUDIO_DEVICE_SPEED_SUPER_V01; case USB_SPEED_SUPER_PLUS: return USB_AUDIO_DEVICE_SPEED_SUPER_PLUS_V01; default: pr_err("%s: udev speed %d\n", __func__, udev_speed); return USB_AUDIO_DEVICE_SPEED_INVALID_V01; Loading Loading @@ -675,6 +678,7 @@ skip_sync: } uadev[card_num].card_num = card_num; uadev[card_num].usb_core_id = resp->controller_num; /* cache intf specific info to use it for unmap and free xfer buf */ uadev[card_num].info[info_idx].data_xfer_ring_va = tr_data_va; Loading Loading @@ -795,6 +799,8 @@ static void uaudio_disconnect_cb(struct snd_usb_audio *chip) pr_debug("%s: sending qmi indication disconnect\n", __func__); disconnect_ind.dev_event = USB_AUDIO_DEV_DISCONNECT_V01; disconnect_ind.slot_id = dev->udev->slot_id; disconnect_ind.controller_num = dev->usb_core_id; disconnect_ind.controller_num_valid = 1; ret = qmi_send_ind(svc->uaudio_svc_hdl, svc->curr_conn, &uaudio_stream_ind_desc, &disconnect_ind, sizeof(disconnect_ind)); Loading sound/usb/usb_audio_qmi_v01.c +18 −0 Original line number Diff line number Diff line Loading @@ -865,6 +865,24 @@ struct elem_info qmi_uaudio_stream_ind_msg_v01_ei[] = { .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01, interrupter_num), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(uint8_t), .is_array = NO_ARRAY, .tlv_type = 0x19, .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01, controller_num_valid), }, { .data_type = QMI_UNSIGNED_1_BYTE, .elem_len = 1, .elem_size = sizeof(uint8_t), .is_array = NO_ARRAY, .tlv_type = 0x19, .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01, controller_num), }, { .data_type = QMI_EOTI, .is_array = NO_ARRAY, Loading sound/usb/usb_audio_qmi_v01.h +4 −1 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ enum usb_audio_device_speed_enum_v01 { USB_AUDIO_DEVICE_SPEED_FULL_V01 = 2, USB_AUDIO_DEVICE_SPEED_HIGH_V01 = 3, USB_AUDIO_DEVICE_SPEED_SUPER_V01 = 4, USB_AUDIO_DEVICE_SPEED_SUPER_PLUS_V01 = 5, USB_AUDIO_DEVICE_SPEED_ENUM_MAX_VAL_V01 = INT_MAX, }; Loading Loading @@ -157,8 +158,10 @@ struct qmi_uaudio_stream_ind_msg_v01 { struct apps_mem_info_v01 xhci_mem_info; uint8_t interrupter_num_valid; uint8_t interrupter_num; uint8_t controller_num_valid; uint8_t controller_num; }; #define QMI_UAUDIO_STREAM_IND_MSG_V01_MAX_MSG_LEN 177 #define QMI_UAUDIO_STREAM_IND_MSG_V01_MAX_MSG_LEN 181 extern struct elem_info qmi_uaudio_stream_ind_msg_v01_ei[]; #endif Loading
sound/usb/usb_audio_qmi_svc.c +6 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,7 @@ struct uaudio_dev { /* audio control interface */ struct usb_host_interface *ctrl_intf; unsigned int card_num; unsigned int usb_core_id; atomic_t in_use; struct kref kref; wait_queue_head_t disconnect_wq; Loading Loading @@ -182,6 +183,8 @@ get_speed_info(enum usb_device_speed udev_speed) return USB_AUDIO_DEVICE_SPEED_HIGH_V01; case USB_SPEED_SUPER: return USB_AUDIO_DEVICE_SPEED_SUPER_V01; case USB_SPEED_SUPER_PLUS: return USB_AUDIO_DEVICE_SPEED_SUPER_PLUS_V01; default: pr_err("%s: udev speed %d\n", __func__, udev_speed); return USB_AUDIO_DEVICE_SPEED_INVALID_V01; Loading Loading @@ -675,6 +678,7 @@ skip_sync: } uadev[card_num].card_num = card_num; uadev[card_num].usb_core_id = resp->controller_num; /* cache intf specific info to use it for unmap and free xfer buf */ uadev[card_num].info[info_idx].data_xfer_ring_va = tr_data_va; Loading Loading @@ -795,6 +799,8 @@ static void uaudio_disconnect_cb(struct snd_usb_audio *chip) pr_debug("%s: sending qmi indication disconnect\n", __func__); disconnect_ind.dev_event = USB_AUDIO_DEV_DISCONNECT_V01; disconnect_ind.slot_id = dev->udev->slot_id; disconnect_ind.controller_num = dev->usb_core_id; disconnect_ind.controller_num_valid = 1; ret = qmi_send_ind(svc->uaudio_svc_hdl, svc->curr_conn, &uaudio_stream_ind_desc, &disconnect_ind, sizeof(disconnect_ind)); Loading
sound/usb/usb_audio_qmi_v01.c +18 −0 Original line number Diff line number Diff line Loading @@ -865,6 +865,24 @@ struct elem_info qmi_uaudio_stream_ind_msg_v01_ei[] = { .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01, interrupter_num), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(uint8_t), .is_array = NO_ARRAY, .tlv_type = 0x19, .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01, controller_num_valid), }, { .data_type = QMI_UNSIGNED_1_BYTE, .elem_len = 1, .elem_size = sizeof(uint8_t), .is_array = NO_ARRAY, .tlv_type = 0x19, .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01, controller_num), }, { .data_type = QMI_EOTI, .is_array = NO_ARRAY, Loading
sound/usb/usb_audio_qmi_v01.h +4 −1 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ enum usb_audio_device_speed_enum_v01 { USB_AUDIO_DEVICE_SPEED_FULL_V01 = 2, USB_AUDIO_DEVICE_SPEED_HIGH_V01 = 3, USB_AUDIO_DEVICE_SPEED_SUPER_V01 = 4, USB_AUDIO_DEVICE_SPEED_SUPER_PLUS_V01 = 5, USB_AUDIO_DEVICE_SPEED_ENUM_MAX_VAL_V01 = INT_MAX, }; Loading Loading @@ -157,8 +158,10 @@ struct qmi_uaudio_stream_ind_msg_v01 { struct apps_mem_info_v01 xhci_mem_info; uint8_t interrupter_num_valid; uint8_t interrupter_num; uint8_t controller_num_valid; uint8_t controller_num; }; #define QMI_UAUDIO_STREAM_IND_MSG_V01_MAX_MSG_LEN 177 #define QMI_UAUDIO_STREAM_IND_MSG_V01_MAX_MSG_LEN 181 extern struct elem_info qmi_uaudio_stream_ind_msg_v01_ei[]; #endif