HIF_FW_TYPE_WSM  = 0x2
 };
 
-struct hif_capabilities {
-       u8     link_mode:2;
-       u8     reserved1:6;
-       u8     reserved2;
-       u8     reserved3;
-       u8     reserved4;
-} __packed;
-
-struct hif_otp_regul_sel_mode_info {
-       u8     region_sel_mode:4;
-       u8     reserved:4;
-} __packed;
-
-struct hif_otp_phy_info {
-       u8     phy1_region:3;
-       u8     phy0_region:3;
-       u8     otp_phy_ver:2;
-} __packed;
-
 struct hif_ind_startup {
        // As the others, this struct is interpreted as little endian by the
        // device. However, this struct is also used by the driver. We prefer to
        u8     mac_addr[2][ETH_ALEN];
        u8     api_version_minor;
        u8     api_version_major;
-       struct hif_capabilities capabilities;
+       u8     link_mode:2;
+       u8     reserved1:6;
+       u8     reserved2;
+       u8     reserved3;
+       u8     reserved4;
        u8     firmware_build;
        u8     firmware_minor;
        u8     firmware_major;
        u8     firmware_type;
        u8     disabled_channel_list[2];
-       struct hif_otp_regul_sel_mode_info regul_sel_mode_info;
-       struct hif_otp_phy_info otp_phy_info;
+       u8     region_sel_mode:4;
+       u8     reserved5:4;
+       u8     phy1_region:3;
+       u8     phy0_region:3;
+       u8     otp_phy_ver:2;
        u32    supported_rate_mask;
        u8     firmware_label[128];
 } __packed;
 
        dev_info(wdev->dev, "started firmware %d.%d.%d \"%s\" (API: %d.%d, keyset: %02X, caps: 0x%.8X)\n",
                 wdev->hw_caps.firmware_major, wdev->hw_caps.firmware_minor,
                 wdev->hw_caps.firmware_build, wdev->hw_caps.firmware_label,
-                wdev->hw_caps.api_version_major,
-                wdev->hw_caps.api_version_minor,
-                wdev->keyset, *((u32 *)&wdev->hw_caps.capabilities));
+                wdev->hw_caps.api_version_major, wdev->hw_caps.api_version_minor,
+                wdev->keyset, wdev->hw_caps.link_mode);
        snprintf(wdev->hw->wiphy->fw_version,
                 sizeof(wdev->hw->wiphy->fw_version),
                 "%d.%d.%d",
                goto err0;
        }
 
-       if (wdev->hw_caps.capabilities.link_mode == SEC_LINK_ENFORCED) {
+       if (wdev->hw_caps.link_mode == SEC_LINK_ENFORCED) {
                dev_err(wdev->dev,
                        "chip require secure_link, but can't negotiate it\n");
                goto err0;
        }
 
-       if (wdev->hw_caps.regul_sel_mode_info.region_sel_mode) {
+       if (wdev->hw_caps.region_sel_mode) {
                wdev->hw->wiphy->bands[NL80211_BAND_2GHZ]->channels[11].flags |= IEEE80211_CHAN_NO_IR;
                wdev->hw->wiphy->bands[NL80211_BAND_2GHZ]->channels[12].flags |= IEEE80211_CHAN_NO_IR;
                wdev->hw->wiphy->bands[NL80211_BAND_2GHZ]->channels[13].flags |= IEEE80211_CHAN_DISABLED;