Loading drivers/net/wireless/cnss2/usb.c +9 −20 Original line number Diff line number Diff line Loading @@ -185,7 +185,8 @@ int cnss_usb_call_driver_remove(struct cnss_usb_data *usb_priv) } static struct usb_driver cnss_usb_driver; #define QCN7605_WLAN_INTERFACE_NUM 0x0000 #define QCN7605_WLAN_STANDALONE_INTERFACE_NUM 0x0000 #define QCN7605_WLAN_COMPOSITE_INTERFACE_NUM 0x0002 static int cnss_usb_probe(struct usb_interface *interface, const struct usb_device_id *id) Loading @@ -207,15 +208,6 @@ static int cnss_usb_probe(struct usb_interface *interface, goto out; } if (interface->cur_altsetting->desc.bInterfaceNumber == QCN7605_WLAN_INTERFACE_NUM) { if (usb_driver_claim_interface(&cnss_usb_driver, interface, NULL)) { ret = -ENODEV; goto reset_priv; } } bcd_device = le16_to_cpu(usb_dev->descriptor.bcdDevice); usb_priv->plat_priv = plat_priv; usb_priv->usb_intf = interface; Loading Loading @@ -256,7 +248,6 @@ static int cnss_usb_probe(struct usb_interface *interface, cnss_unregister_subsys(plat_priv); reset_ctx: plat_priv->bus_priv = NULL; reset_priv: devm_kfree(&usb_dev->dev, usb_priv); out: return ret; Loading Loading @@ -317,14 +308,12 @@ static int cnss_usb_reset_resume(struct usb_interface *interface) } static struct usb_device_id cnss_usb_id_table[] = { { USB_DEVICE_AND_INTERFACE_INFO(QCN7605_USB_VENDOR_ID, { USB_DEVICE_INTERFACE_NUMBER(QCN7605_USB_VENDOR_ID, QCN7605_COMPOSITE_PRODUCT_ID, QCN7605_WLAN_INTERFACE_NUM, 0xFF, 0xFF) }, { USB_DEVICE_AND_INTERFACE_INFO(QCN7605_USB_VENDOR_ID, QCN7605_WLAN_COMPOSITE_INTERFACE_NUM) }, { USB_DEVICE_INTERFACE_NUMBER(QCN7605_USB_VENDOR_ID, QCN7605_STANDALONE_PRODUCT_ID, QCN7605_WLAN_INTERFACE_NUM, 0xFF, 0xFF) }, QCN7605_WLAN_STANDALONE_INTERFACE_NUM) }, {} /* Terminating entry */ }; Loading drivers/net/wireless/cnss2/wlan_firmware_service_v01.c +96 −0 Original line number Diff line number Diff line Loading @@ -1310,6 +1310,46 @@ struct elem_info wlfw_initiate_cal_download_ind_msg_v01_ei[] = { struct wlfw_initiate_cal_download_ind_msg_v01, cal_id), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .is_array = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof( struct wlfw_initiate_cal_download_ind_msg_v01, total_size_valid), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .is_array = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof( struct wlfw_initiate_cal_download_ind_msg_v01, total_size), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .is_array = NO_ARRAY, .tlv_type = 0x11, .offset = offsetof( struct wlfw_initiate_cal_download_ind_msg_v01, cal_data_location_valid), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .is_array = NO_ARRAY, .tlv_type = 0x11, .offset = offsetof( struct wlfw_initiate_cal_download_ind_msg_v01, cal_data_location), }, { .data_type = QMI_EOTI, .is_array = NO_ARRAY, Loading Loading @@ -1426,6 +1466,24 @@ struct elem_info wlfw_cal_download_req_msg_v01_ei[] = { .offset = offsetof(struct wlfw_cal_download_req_msg_v01, end), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .is_array = NO_ARRAY, .tlv_type = 0x15, .offset = offsetof(struct wlfw_cal_download_req_msg_v01, cal_data_location_valid), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .is_array = NO_ARRAY, .tlv_type = 0x15, .offset = offsetof(struct wlfw_cal_download_req_msg_v01, cal_data_location), }, { .data_type = QMI_EOTI, .is_array = NO_ARRAY, Loading Loading @@ -1473,6 +1531,26 @@ struct elem_info wlfw_initiate_cal_update_ind_msg_v01_ei[] = { wlfw_initiate_cal_update_ind_msg_v01, total_size), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .is_array = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof(struct wlfw_initiate_cal_update_ind_msg_v01, cal_data_location_valid), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .is_array = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof(struct wlfw_initiate_cal_update_ind_msg_v01, cal_data_location), }, { .data_type = QMI_EOTI, .is_array = NO_ARRAY, Loading Loading @@ -1616,6 +1694,24 @@ struct elem_info wlfw_cal_update_resp_msg_v01_ei[] = { .offset = offsetof(struct wlfw_cal_update_resp_msg_v01, end), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .is_array = NO_ARRAY, .tlv_type = 0x15, .offset = offsetof(struct wlfw_cal_update_resp_msg_v01, cal_data_location_valid), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .is_array = NO_ARRAY, .tlv_type = 0x15, .offset = offsetof(struct wlfw_cal_update_resp_msg_v01, cal_data_location), }, { .data_type = QMI_EOTI, .is_array = NO_ARRAY, Loading drivers/net/wireless/cnss2/wlan_firmware_service_v01.h +14 −4 Original line number Diff line number Diff line Loading @@ -396,9 +396,13 @@ extern struct elem_info wlfw_cal_report_resp_msg_v01_ei[]; struct wlfw_initiate_cal_download_ind_msg_v01 { enum wlfw_cal_temp_id_enum_v01 cal_id; u8 total_size_valid; u32 total_size; u8 cal_data_location_valid; u32 cal_data_location; }; #define WLFW_INITIATE_CAL_DOWNLOAD_IND_MSG_V01_MAX_MSG_LEN 7 #define WLFW_INITIATE_CAL_DOWNLOAD_IND_MSG_V01_MAX_MSG_LEN 21 extern struct elem_info wlfw_initiate_cal_download_ind_msg_v01_ei[]; struct wlfw_cal_download_req_msg_v01 { Loading @@ -414,9 +418,11 @@ struct wlfw_cal_download_req_msg_v01 { u8 data[QMI_WLFW_MAX_DATA_SIZE_V01]; u8 end_valid; u8 end; u8 cal_data_location_valid; u32 cal_data_location; }; #define WLFW_CAL_DOWNLOAD_REQ_MSG_V01_MAX_MSG_LEN 6178 #define WLFW_CAL_DOWNLOAD_REQ_MSG_V01_MAX_MSG_LEN 6185 extern struct elem_info wlfw_cal_download_req_msg_v01_ei[]; struct wlfw_cal_download_resp_msg_v01 { Loading @@ -429,9 +435,11 @@ extern struct elem_info wlfw_cal_download_resp_msg_v01_ei[]; struct wlfw_initiate_cal_update_ind_msg_v01 { enum wlfw_cal_temp_id_enum_v01 cal_id; u32 total_size; u8 cal_data_location_valid; u32 cal_data_location; }; #define WLFW_INITIATE_CAL_UPDATE_IND_MSG_V01_MAX_MSG_LEN 14 #define WLFW_INITIATE_CAL_UPDATE_IND_MSG_V01_MAX_MSG_LEN 21 extern struct elem_info wlfw_initiate_cal_update_ind_msg_v01_ei[]; struct wlfw_cal_update_req_msg_v01 { Loading @@ -455,9 +463,11 @@ struct wlfw_cal_update_resp_msg_v01 { u8 data[QMI_WLFW_MAX_DATA_SIZE_V01]; u8 end_valid; u8 end; u8 cal_data_location_valid; u32 cal_data_location; }; #define WLFW_CAL_UPDATE_RESP_MSG_V01_MAX_MSG_LEN 6181 #define WLFW_CAL_UPDATE_RESP_MSG_V01_MAX_MSG_LEN 6188 extern struct elem_info wlfw_cal_update_resp_msg_v01_ei[]; struct wlfw_msa_info_req_msg_v01 { Loading Loading
drivers/net/wireless/cnss2/usb.c +9 −20 Original line number Diff line number Diff line Loading @@ -185,7 +185,8 @@ int cnss_usb_call_driver_remove(struct cnss_usb_data *usb_priv) } static struct usb_driver cnss_usb_driver; #define QCN7605_WLAN_INTERFACE_NUM 0x0000 #define QCN7605_WLAN_STANDALONE_INTERFACE_NUM 0x0000 #define QCN7605_WLAN_COMPOSITE_INTERFACE_NUM 0x0002 static int cnss_usb_probe(struct usb_interface *interface, const struct usb_device_id *id) Loading @@ -207,15 +208,6 @@ static int cnss_usb_probe(struct usb_interface *interface, goto out; } if (interface->cur_altsetting->desc.bInterfaceNumber == QCN7605_WLAN_INTERFACE_NUM) { if (usb_driver_claim_interface(&cnss_usb_driver, interface, NULL)) { ret = -ENODEV; goto reset_priv; } } bcd_device = le16_to_cpu(usb_dev->descriptor.bcdDevice); usb_priv->plat_priv = plat_priv; usb_priv->usb_intf = interface; Loading Loading @@ -256,7 +248,6 @@ static int cnss_usb_probe(struct usb_interface *interface, cnss_unregister_subsys(plat_priv); reset_ctx: plat_priv->bus_priv = NULL; reset_priv: devm_kfree(&usb_dev->dev, usb_priv); out: return ret; Loading Loading @@ -317,14 +308,12 @@ static int cnss_usb_reset_resume(struct usb_interface *interface) } static struct usb_device_id cnss_usb_id_table[] = { { USB_DEVICE_AND_INTERFACE_INFO(QCN7605_USB_VENDOR_ID, { USB_DEVICE_INTERFACE_NUMBER(QCN7605_USB_VENDOR_ID, QCN7605_COMPOSITE_PRODUCT_ID, QCN7605_WLAN_INTERFACE_NUM, 0xFF, 0xFF) }, { USB_DEVICE_AND_INTERFACE_INFO(QCN7605_USB_VENDOR_ID, QCN7605_WLAN_COMPOSITE_INTERFACE_NUM) }, { USB_DEVICE_INTERFACE_NUMBER(QCN7605_USB_VENDOR_ID, QCN7605_STANDALONE_PRODUCT_ID, QCN7605_WLAN_INTERFACE_NUM, 0xFF, 0xFF) }, QCN7605_WLAN_STANDALONE_INTERFACE_NUM) }, {} /* Terminating entry */ }; Loading
drivers/net/wireless/cnss2/wlan_firmware_service_v01.c +96 −0 Original line number Diff line number Diff line Loading @@ -1310,6 +1310,46 @@ struct elem_info wlfw_initiate_cal_download_ind_msg_v01_ei[] = { struct wlfw_initiate_cal_download_ind_msg_v01, cal_id), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .is_array = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof( struct wlfw_initiate_cal_download_ind_msg_v01, total_size_valid), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .is_array = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof( struct wlfw_initiate_cal_download_ind_msg_v01, total_size), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .is_array = NO_ARRAY, .tlv_type = 0x11, .offset = offsetof( struct wlfw_initiate_cal_download_ind_msg_v01, cal_data_location_valid), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .is_array = NO_ARRAY, .tlv_type = 0x11, .offset = offsetof( struct wlfw_initiate_cal_download_ind_msg_v01, cal_data_location), }, { .data_type = QMI_EOTI, .is_array = NO_ARRAY, Loading Loading @@ -1426,6 +1466,24 @@ struct elem_info wlfw_cal_download_req_msg_v01_ei[] = { .offset = offsetof(struct wlfw_cal_download_req_msg_v01, end), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .is_array = NO_ARRAY, .tlv_type = 0x15, .offset = offsetof(struct wlfw_cal_download_req_msg_v01, cal_data_location_valid), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .is_array = NO_ARRAY, .tlv_type = 0x15, .offset = offsetof(struct wlfw_cal_download_req_msg_v01, cal_data_location), }, { .data_type = QMI_EOTI, .is_array = NO_ARRAY, Loading Loading @@ -1473,6 +1531,26 @@ struct elem_info wlfw_initiate_cal_update_ind_msg_v01_ei[] = { wlfw_initiate_cal_update_ind_msg_v01, total_size), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .is_array = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof(struct wlfw_initiate_cal_update_ind_msg_v01, cal_data_location_valid), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .is_array = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof(struct wlfw_initiate_cal_update_ind_msg_v01, cal_data_location), }, { .data_type = QMI_EOTI, .is_array = NO_ARRAY, Loading Loading @@ -1616,6 +1694,24 @@ struct elem_info wlfw_cal_update_resp_msg_v01_ei[] = { .offset = offsetof(struct wlfw_cal_update_resp_msg_v01, end), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .is_array = NO_ARRAY, .tlv_type = 0x15, .offset = offsetof(struct wlfw_cal_update_resp_msg_v01, cal_data_location_valid), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .is_array = NO_ARRAY, .tlv_type = 0x15, .offset = offsetof(struct wlfw_cal_update_resp_msg_v01, cal_data_location), }, { .data_type = QMI_EOTI, .is_array = NO_ARRAY, Loading
drivers/net/wireless/cnss2/wlan_firmware_service_v01.h +14 −4 Original line number Diff line number Diff line Loading @@ -396,9 +396,13 @@ extern struct elem_info wlfw_cal_report_resp_msg_v01_ei[]; struct wlfw_initiate_cal_download_ind_msg_v01 { enum wlfw_cal_temp_id_enum_v01 cal_id; u8 total_size_valid; u32 total_size; u8 cal_data_location_valid; u32 cal_data_location; }; #define WLFW_INITIATE_CAL_DOWNLOAD_IND_MSG_V01_MAX_MSG_LEN 7 #define WLFW_INITIATE_CAL_DOWNLOAD_IND_MSG_V01_MAX_MSG_LEN 21 extern struct elem_info wlfw_initiate_cal_download_ind_msg_v01_ei[]; struct wlfw_cal_download_req_msg_v01 { Loading @@ -414,9 +418,11 @@ struct wlfw_cal_download_req_msg_v01 { u8 data[QMI_WLFW_MAX_DATA_SIZE_V01]; u8 end_valid; u8 end; u8 cal_data_location_valid; u32 cal_data_location; }; #define WLFW_CAL_DOWNLOAD_REQ_MSG_V01_MAX_MSG_LEN 6178 #define WLFW_CAL_DOWNLOAD_REQ_MSG_V01_MAX_MSG_LEN 6185 extern struct elem_info wlfw_cal_download_req_msg_v01_ei[]; struct wlfw_cal_download_resp_msg_v01 { Loading @@ -429,9 +435,11 @@ extern struct elem_info wlfw_cal_download_resp_msg_v01_ei[]; struct wlfw_initiate_cal_update_ind_msg_v01 { enum wlfw_cal_temp_id_enum_v01 cal_id; u32 total_size; u8 cal_data_location_valid; u32 cal_data_location; }; #define WLFW_INITIATE_CAL_UPDATE_IND_MSG_V01_MAX_MSG_LEN 14 #define WLFW_INITIATE_CAL_UPDATE_IND_MSG_V01_MAX_MSG_LEN 21 extern struct elem_info wlfw_initiate_cal_update_ind_msg_v01_ei[]; struct wlfw_cal_update_req_msg_v01 { Loading @@ -455,9 +463,11 @@ struct wlfw_cal_update_resp_msg_v01 { u8 data[QMI_WLFW_MAX_DATA_SIZE_V01]; u8 end_valid; u8 end; u8 cal_data_location_valid; u32 cal_data_location; }; #define WLFW_CAL_UPDATE_RESP_MSG_V01_MAX_MSG_LEN 6181 #define WLFW_CAL_UPDATE_RESP_MSG_V01_MAX_MSG_LEN 6188 extern struct elem_info wlfw_cal_update_resp_msg_v01_ei[]; struct wlfw_msa_info_req_msg_v01 { Loading