1: 453d212d7c03 ! 1: e1ad987df17f net: qrtr: Allow the host QRTR to assign a unique node id @@ net/qrtr/af_qrtr.c: static void qrtr_node_assign(struct qrtr_node *node, unsigne  + return;  +  + pkt = (struct qrtr_ctrl_pkt *)skb->data; -+ if (type == QRTR_TYPE_DEL_CLIENT) ++ if (type == QRTR_TYPE_DEL_CLIENT || type == QRTR_TYPE_RESUME_TX)  + nid = &pkt->client.node;  + else  + nid = &pkt->server.node; @@ net/qrtr/af_qrtr.c: int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void  +  + if (cb->type == QRTR_TYPE_NEW_SERVER ||  + cb->type == QRTR_TYPE_DEL_SERVER || -+ cb->type == QRTR_TYPE_DEL_CLIENT) ++ cb->type == QRTR_TYPE_DEL_CLIENT || ++ cb->type == QRTR_TYPE_RESUME_TX)  + qrtr_node_rewrite_ctrl(node, cb->type, skb);  + if (cb->type == QRTR_TYPE_RESUME_TX) { 2: 756012c60bd6 = 2: 4dab42ed0c8e net: qrtr: Assign unique node id for MHI endpoints 3: deb31edf1de1 ! 3: a5a61f53ef23 wifi: ath11k: Connect to the QMI server belonging to the device owned by this driver @@ Commit message node id does not match. A node id of zero disables the check, so transports that do not assign one keep their current behavior.  + Tested-on: 2x WCN6855 hw2.1 PCI WLAN.HSP.1.1-04685-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1 + + Tested-by: Juha-Matti Tilli  + Reviewed-by: Vasanthakumar Thiagarajan  Signed-off-by: Manivannan Sadhasivam   ## drivers/net/wireless/ath/ath11k/hif.h ## @@ drivers/net/wireless/ath/ath11k/hif.h: struct ath11k_hif_ops { void (*ce_irq_disable)(struct ath11k_base *ab); void (*get_ce_msi_idx)(struct ath11k_base *ab, u32 ce_id, u32 *msi_idx); void (*coredump_download)(struct ath11k_base *ab); -+ int (*get_qrtr_node_id)(struct ath11k_base *ab); ++ unsigned int (*get_qrtr_node_id)(struct ath11k_base *ab); };  static inline void ath11k_hif_ce_irq_enable(struct ath11k_base *ab) @@ drivers/net/wireless/ath/ath11k/hif.h: static inline void ath11k_hif_coredump_do ab->hif.ops->coredump_download(ab); }  -+static inline int ath11k_hif_get_qrtr_node_id(struct ath11k_base *ab) ++static inline unsigned int ath11k_hif_get_qrtr_node_id(struct ath11k_base *ab)  +{  + if (!ab->hif.ops->get_qrtr_node_id)  + return 0; @@ drivers/net/wireless/ath/ath11k/pci.c: static int ath11k_pci_start(struct ath11k return 0; }  -+static int ath11k_pci_get_qrtr_node_id(struct ath11k_base *ab) ++static unsigned int ath11k_pci_get_qrtr_node_id(struct ath11k_base *ab)  +{  + struct ath11k_pci *ab_pci = ath11k_pci_priv(ab);  + @@ drivers/net/wireless/ath/ath11k/qmi.c: static int ath11k_qmi_ops_new_server(stru struct ath11k_qmi *qmi = container_of(qmi_hdl, struct ath11k_qmi, handle); struct ath11k_base *ab = qmi->ab; struct sockaddr_qrtr *sq = &qmi->sq; -+ int node_id; ++ unsigned int node_id; int ret;   + /* Identical devices advertise the same QMI services, so connect only to 4: 412a31aa6264 ! 4: 95e136982686 wifi: ath12k: Connect to the QMI server belonging to the device owned by this driver @@ Commit message node id does not match. A node id of zero disables the check, so transports that do not assign one keep their current behavior.  + Tested-on: 2x WCN7850 hw2.0 WLAN.IOE_HMT.1.1-00018-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1 + Tested-on: 1x WCN6855 ath11k + 1x WCN7850 ath12k + + Tested-by: Juha-Matti Tilli  + Reviewed-by: Vasanthakumar Thiagarajan  Signed-off-by: Manivannan Sadhasivam   ## drivers/net/wireless/ath/ath12k/hif.h ## @@ drivers/net/wireless/ath/ath12k/hif.h: struct ath12k_hif_ops { void (*get_ce_msi_idx)(struct ath12k_base *ab, u32 ce_id, u32 *msi_idx); int (*panic_handler)(struct ath12k_base *ab); void (*coredump_download)(struct ath12k_base *ab); -+ int (*get_qrtr_node_id)(struct ath12k_base *ab); ++ unsigned int (*get_qrtr_node_id)(struct ath12k_base *ab); };  static inline int ath12k_hif_map_service_to_pipe(struct ath12k_base *ab, u16 service_id, @@ drivers/net/wireless/ath/ath12k/hif.h: static inline void ath12k_hif_coredump_do ab->hif.ops->coredump_download(ab); }  + -+static inline int ath12k_hif_get_qrtr_node_id(struct ath12k_base *ab) ++static inline unsigned int ath12k_hif_get_qrtr_node_id(struct ath12k_base *ab)  +{  + if (!ab->hif.ops->get_qrtr_node_id)  + return 0; @@ drivers/net/wireless/ath/ath12k/pci.c: static int ath12k_pci_panic_handler(struc return NOTIFY_OK; }  -+static int ath12k_pci_get_qrtr_node_id(struct ath12k_base *ab) ++static unsigned int ath12k_pci_get_qrtr_node_id(struct ath12k_base *ab)  +{  + struct ath12k_pci *ab_pci = ath12k_pci_priv(ab);  + @@ drivers/net/wireless/ath/ath12k/qmi.c: static int ath12k_qmi_ops_new_server(stru struct ath12k_qmi *qmi = container_of(qmi_hdl, struct ath12k_qmi, handle); struct ath12k_base *ab = qmi->ab; struct sockaddr_qrtr *sq = &qmi->sq; -+ int node_id; ++ unsigned int node_id; int ret;   + /* Identical devices advertise the same QMI services, so connect only to