.min_len = sizeof(struct wmi_vdev_delete_resp_event) },
        [WMI_TAG_TWT_ENABLE_COMPLETE_EVENT] = {
                .min_len = sizeof(struct wmi_twt_enable_event) },
+       [WMI_TAG_TWT_DISABLE_COMPLETE_EVENT] = {
+               .min_len = sizeof(struct wmi_twt_disable_event) },
 };
 
 static __le32 ath12k_wmi_tlv_hdr(u32 cmd, u32 len)
        kfree(tb);
 }
 
+static void ath12k_wmi_twt_disable_event(struct ath12k_base *ab,
+                                        struct sk_buff *skb)
+{
+       const void **tb;
+       const struct wmi_twt_disable_event *ev;
+       int ret;
+
+       tb = ath12k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC);
+       if (IS_ERR(tb)) {
+               ret = PTR_ERR(tb);
+               ath12k_warn(ab, "failed to parse wmi twt disable status event tlv: %d\n",
+                           ret);
+               return;
+       }
+
+       ev = tb[WMI_TAG_TWT_DISABLE_COMPLETE_EVENT];
+       if (!ev) {
+               ath12k_warn(ab, "failed to fetch twt disable wmi event\n");
+               goto exit;
+       }
+
+       ath12k_dbg(ab, ATH12K_DBG_MAC, "wmi twt disable event pdev id %d status %u\n",
+                  le32_to_cpu(ev->pdev_id),
+                  le32_to_cpu(ev->status));
+
+exit:
+       kfree(tb);
+}
+
 static void ath12k_wmi_op_rx(struct ath12k_base *ab, struct sk_buff *skb)
 {
        struct wmi_cmd_hdr *cmd_hdr;
        case WMI_TWT_ENABLE_EVENTID:
                ath12k_wmi_twt_enable_event(ab, skb);
                break;
+       case WMI_TWT_DISABLE_EVENTID:
+               ath12k_wmi_twt_disable_event(ab, skb);
+               break;
        /* add Unsupported events here */
        case WMI_TBTTOFFSET_EXT_UPDATE_EVENTID:
        case WMI_PEER_OPER_MODE_CHANGE_EVENTID:
-       case WMI_TWT_DISABLE_EVENTID:
        case WMI_PDEV_DMA_RING_CFG_RSP_EVENTID:
                ath12k_dbg(ab, ATH12K_DBG_WMI,
                           "ignoring unsupported event 0x%x\n", id);