wmi.c (90a9fb5b6618ae070c94b2141ec5de6a2a207eae) wmi.c (afba35d7d12514aa1122fdfb4ca5459417656813)
1// SPDX-License-Identifier: BSD-3-Clause-Clear
2/*
3 * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
4 * Copyright (c) 2021, 2023 Qualcomm Innovation Center, Inc. All rights reserved.
5 */
6#include <linux/skbuff.h>
7#include <linux/ctype.h>
8#include <net/mac80211.h>

--- 3167 unchanged lines hidden (view full) ---

3176 cmd->add_sta_slot_interval = params->add_sta_slot_interval;
3177 cmd->remove_sta_slot_interval = params->remove_sta_slot_interval;
3178 cmd->mbss_support = params->mbss_support;
3179
3180 ret = ath11k_wmi_cmd_send(wmi, skb, WMI_TWT_ENABLE_CMDID);
3181 if (ret) {
3182 ath11k_warn(ab, "Failed to send WMI_TWT_ENABLE_CMDID");
3183 dev_kfree_skb(skb);
1// SPDX-License-Identifier: BSD-3-Clause-Clear
2/*
3 * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
4 * Copyright (c) 2021, 2023 Qualcomm Innovation Center, Inc. All rights reserved.
5 */
6#include <linux/skbuff.h>
7#include <linux/ctype.h>
8#include <net/mac80211.h>

--- 3167 unchanged lines hidden (view full) ---

3176 cmd->add_sta_slot_interval = params->add_sta_slot_interval;
3177 cmd->remove_sta_slot_interval = params->remove_sta_slot_interval;
3178 cmd->mbss_support = params->mbss_support;
3179
3180 ret = ath11k_wmi_cmd_send(wmi, skb, WMI_TWT_ENABLE_CMDID);
3181 if (ret) {
3182 ath11k_warn(ab, "Failed to send WMI_TWT_ENABLE_CMDID");
3183 dev_kfree_skb(skb);
3184 } else {
3185 ar->twt_enabled = 1;
3184 return ret;
3186 }
3185 }
3187 return ret;
3186
3187 ar->twt_enabled = 1;
3188
3189 return 0;
3188}
3189
3190int
3191ath11k_wmi_send_twt_disable_cmd(struct ath11k *ar, u32 pdev_id)
3192{
3193 struct ath11k_pdev_wmi *wmi = ar->wmi;
3194 struct ath11k_base *ab = wmi->wmi_ab->ab;
3195 struct wmi_twt_disable_params_cmd *cmd;

--- 10 unchanged lines hidden (view full) ---

3206 cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_TWT_DISABLE_CMD) |
3207 FIELD_PREP(WMI_TLV_LEN, len - TLV_HDR_SIZE);
3208 cmd->pdev_id = pdev_id;
3209
3210 ret = ath11k_wmi_cmd_send(wmi, skb, WMI_TWT_DISABLE_CMDID);
3211 if (ret) {
3212 ath11k_warn(ab, "Failed to send WMI_TWT_DISABLE_CMDID");
3213 dev_kfree_skb(skb);
3190}
3191
3192int
3193ath11k_wmi_send_twt_disable_cmd(struct ath11k *ar, u32 pdev_id)
3194{
3195 struct ath11k_pdev_wmi *wmi = ar->wmi;
3196 struct ath11k_base *ab = wmi->wmi_ab->ab;
3197 struct wmi_twt_disable_params_cmd *cmd;

--- 10 unchanged lines hidden (view full) ---

3208 cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_TWT_DISABLE_CMD) |
3209 FIELD_PREP(WMI_TLV_LEN, len - TLV_HDR_SIZE);
3210 cmd->pdev_id = pdev_id;
3211
3212 ret = ath11k_wmi_cmd_send(wmi, skb, WMI_TWT_DISABLE_CMDID);
3213 if (ret) {
3214 ath11k_warn(ab, "Failed to send WMI_TWT_DISABLE_CMDID");
3215 dev_kfree_skb(skb);
3214 } else {
3215 ar->twt_enabled = 0;
3216 return ret;
3216 }
3217 }
3217 return ret;
3218
3219 ar->twt_enabled = 0;
3220
3221 return 0;
3218}
3219
3220int ath11k_wmi_send_twt_add_dialog_cmd(struct ath11k *ar,
3221 struct wmi_twt_add_dialog_params *params)
3222{
3223 struct ath11k_pdev_wmi *wmi = ar->wmi;
3224 struct ath11k_base *ab = wmi->wmi_ab->ab;
3225 struct wmi_twt_add_dialog_params_cmd *cmd;

--- 35 unchanged lines hidden (view full) ---

3261
3262 ret = ath11k_wmi_cmd_send(wmi, skb, WMI_TWT_ADD_DIALOG_CMDID);
3263
3264 if (ret) {
3265 ath11k_warn(ab,
3266 "failed to send wmi command to add twt dialog: %d",
3267 ret);
3268 dev_kfree_skb(skb);
3222}
3223
3224int ath11k_wmi_send_twt_add_dialog_cmd(struct ath11k *ar,
3225 struct wmi_twt_add_dialog_params *params)
3226{
3227 struct ath11k_pdev_wmi *wmi = ar->wmi;
3228 struct ath11k_base *ab = wmi->wmi_ab->ab;
3229 struct wmi_twt_add_dialog_params_cmd *cmd;

--- 35 unchanged lines hidden (view full) ---

3265
3266 ret = ath11k_wmi_cmd_send(wmi, skb, WMI_TWT_ADD_DIALOG_CMDID);
3267
3268 if (ret) {
3269 ath11k_warn(ab,
3270 "failed to send wmi command to add twt dialog: %d",
3271 ret);
3272 dev_kfree_skb(skb);
3273 return ret;
3269 }
3274 }
3270 return ret;
3275
3276 return 0;
3271}
3272
3273int ath11k_wmi_send_twt_del_dialog_cmd(struct ath11k *ar,
3274 struct wmi_twt_del_dialog_params *params)
3275{
3276 struct ath11k_pdev_wmi *wmi = ar->wmi;
3277 struct ath11k_base *ab = wmi->wmi_ab->ab;
3278 struct wmi_twt_del_dialog_params_cmd *cmd;

--- 19 unchanged lines hidden (view full) ---

3298 cmd->vdev_id, cmd->dialog_id);
3299
3300 ret = ath11k_wmi_cmd_send(wmi, skb, WMI_TWT_DEL_DIALOG_CMDID);
3301 if (ret) {
3302 ath11k_warn(ab,
3303 "failed to send wmi command to delete twt dialog: %d",
3304 ret);
3305 dev_kfree_skb(skb);
3277}
3278
3279int ath11k_wmi_send_twt_del_dialog_cmd(struct ath11k *ar,
3280 struct wmi_twt_del_dialog_params *params)
3281{
3282 struct ath11k_pdev_wmi *wmi = ar->wmi;
3283 struct ath11k_base *ab = wmi->wmi_ab->ab;
3284 struct wmi_twt_del_dialog_params_cmd *cmd;

--- 19 unchanged lines hidden (view full) ---

3304 cmd->vdev_id, cmd->dialog_id);
3305
3306 ret = ath11k_wmi_cmd_send(wmi, skb, WMI_TWT_DEL_DIALOG_CMDID);
3307 if (ret) {
3308 ath11k_warn(ab,
3309 "failed to send wmi command to delete twt dialog: %d",
3310 ret);
3311 dev_kfree_skb(skb);
3312 return ret;
3306 }
3313 }
3307 return ret;
3314
3315 return 0;
3308}
3309
3310int ath11k_wmi_send_twt_pause_dialog_cmd(struct ath11k *ar,
3311 struct wmi_twt_pause_dialog_params *params)
3312{
3313 struct ath11k_pdev_wmi *wmi = ar->wmi;
3314 struct ath11k_base *ab = wmi->wmi_ab->ab;
3315 struct wmi_twt_pause_dialog_params_cmd *cmd;

--- 20 unchanged lines hidden (view full) ---

3336 cmd->vdev_id, cmd->dialog_id);
3337
3338 ret = ath11k_wmi_cmd_send(wmi, skb, WMI_TWT_PAUSE_DIALOG_CMDID);
3339 if (ret) {
3340 ath11k_warn(ab,
3341 "failed to send wmi command to pause twt dialog: %d",
3342 ret);
3343 dev_kfree_skb(skb);
3316}
3317
3318int ath11k_wmi_send_twt_pause_dialog_cmd(struct ath11k *ar,
3319 struct wmi_twt_pause_dialog_params *params)
3320{
3321 struct ath11k_pdev_wmi *wmi = ar->wmi;
3322 struct ath11k_base *ab = wmi->wmi_ab->ab;
3323 struct wmi_twt_pause_dialog_params_cmd *cmd;

--- 20 unchanged lines hidden (view full) ---

3344 cmd->vdev_id, cmd->dialog_id);
3345
3346 ret = ath11k_wmi_cmd_send(wmi, skb, WMI_TWT_PAUSE_DIALOG_CMDID);
3347 if (ret) {
3348 ath11k_warn(ab,
3349 "failed to send wmi command to pause twt dialog: %d",
3350 ret);
3351 dev_kfree_skb(skb);
3352 return ret;
3344 }
3353 }
3345 return ret;
3354
3355 return 0;
3346}
3347
3348int ath11k_wmi_send_twt_resume_dialog_cmd(struct ath11k *ar,
3349 struct wmi_twt_resume_dialog_params *params)
3350{
3351 struct ath11k_pdev_wmi *wmi = ar->wmi;
3352 struct ath11k_base *ab = wmi->wmi_ab->ab;
3353 struct wmi_twt_resume_dialog_params_cmd *cmd;

--- 23 unchanged lines hidden (view full) ---

3377 cmd->next_twt_size);
3378
3379 ret = ath11k_wmi_cmd_send(wmi, skb, WMI_TWT_RESUME_DIALOG_CMDID);
3380 if (ret) {
3381 ath11k_warn(ab,
3382 "failed to send wmi command to resume twt dialog: %d",
3383 ret);
3384 dev_kfree_skb(skb);
3356}
3357
3358int ath11k_wmi_send_twt_resume_dialog_cmd(struct ath11k *ar,
3359 struct wmi_twt_resume_dialog_params *params)
3360{
3361 struct ath11k_pdev_wmi *wmi = ar->wmi;
3362 struct ath11k_base *ab = wmi->wmi_ab->ab;
3363 struct wmi_twt_resume_dialog_params_cmd *cmd;

--- 23 unchanged lines hidden (view full) ---

3387 cmd->next_twt_size);
3388
3389 ret = ath11k_wmi_cmd_send(wmi, skb, WMI_TWT_RESUME_DIALOG_CMDID);
3390 if (ret) {
3391 ath11k_warn(ab,
3392 "failed to send wmi command to resume twt dialog: %d",
3393 ret);
3394 dev_kfree_skb(skb);
3395 return ret;
3385 }
3396 }
3386 return ret;
3397
3398 return 0;
3387}
3388
3389int
3390ath11k_wmi_send_obss_spr_cmd(struct ath11k *ar, u32 vdev_id,
3391 struct ieee80211_he_obss_pd *he_obss_pd)
3392{
3393 struct ath11k_pdev_wmi *wmi = ar->wmi;
3394 struct ath11k_base *ab = wmi->wmi_ab->ab;

--- 17 unchanged lines hidden (view full) ---

3412 cmd->obss_max = he_obss_pd->max_offset;
3413
3414 ret = ath11k_wmi_cmd_send(wmi, skb,
3415 WMI_PDEV_OBSS_PD_SPATIAL_REUSE_CMDID);
3416 if (ret) {
3417 ath11k_warn(ab,
3418 "Failed to send WMI_PDEV_OBSS_PD_SPATIAL_REUSE_CMDID");
3419 dev_kfree_skb(skb);
3399}
3400
3401int
3402ath11k_wmi_send_obss_spr_cmd(struct ath11k *ar, u32 vdev_id,
3403 struct ieee80211_he_obss_pd *he_obss_pd)
3404{
3405 struct ath11k_pdev_wmi *wmi = ar->wmi;
3406 struct ath11k_base *ab = wmi->wmi_ab->ab;

--- 17 unchanged lines hidden (view full) ---

3424 cmd->obss_max = he_obss_pd->max_offset;
3425
3426 ret = ath11k_wmi_cmd_send(wmi, skb,
3427 WMI_PDEV_OBSS_PD_SPATIAL_REUSE_CMDID);
3428 if (ret) {
3429 ath11k_warn(ab,
3430 "Failed to send WMI_PDEV_OBSS_PD_SPATIAL_REUSE_CMDID");
3431 dev_kfree_skb(skb);
3432 return ret;
3420 }
3433 }
3421 return ret;
3434
3435 return 0;
3422}
3423
3424int
3425ath11k_wmi_pdev_set_srg_bss_color_bitmap(struct ath11k *ar, u32 *bitmap)
3426{
3427 struct ath11k_pdev_wmi *wmi = ar->wmi;
3428 struct ath11k_base *ab = wmi->wmi_ab->ab;
3429 struct wmi_pdev_obss_pd_bitmap_cmd *cmd;

--- 18 unchanged lines hidden (view full) ---

3448 cmd->pdev_id, cmd->bitmap[0], cmd->bitmap[1]);
3449
3450 ret = ath11k_wmi_cmd_send(wmi, skb,
3451 WMI_PDEV_SET_SRG_BSS_COLOR_BITMAP_CMDID);
3452 if (ret) {
3453 ath11k_warn(ab,
3454 "failed to send WMI_PDEV_SET_SRG_BSS_COLOR_BITMAP_CMDID");
3455 dev_kfree_skb(skb);
3436}
3437
3438int
3439ath11k_wmi_pdev_set_srg_bss_color_bitmap(struct ath11k *ar, u32 *bitmap)
3440{
3441 struct ath11k_pdev_wmi *wmi = ar->wmi;
3442 struct ath11k_base *ab = wmi->wmi_ab->ab;
3443 struct wmi_pdev_obss_pd_bitmap_cmd *cmd;

--- 18 unchanged lines hidden (view full) ---

3462 cmd->pdev_id, cmd->bitmap[0], cmd->bitmap[1]);
3463
3464 ret = ath11k_wmi_cmd_send(wmi, skb,
3465 WMI_PDEV_SET_SRG_BSS_COLOR_BITMAP_CMDID);
3466 if (ret) {
3467 ath11k_warn(ab,
3468 "failed to send WMI_PDEV_SET_SRG_BSS_COLOR_BITMAP_CMDID");
3469 dev_kfree_skb(skb);
3470 return ret;
3456 }
3457
3471 }
3472
3458 return ret;
3473 return 0;
3459}
3460
3461int
3462ath11k_wmi_pdev_set_srg_patial_bssid_bitmap(struct ath11k *ar, u32 *bitmap)
3463{
3464 struct ath11k_pdev_wmi *wmi = ar->wmi;
3465 struct ath11k_base *ab = wmi->wmi_ab->ab;
3466 struct wmi_pdev_obss_pd_bitmap_cmd *cmd;

--- 19 unchanged lines hidden (view full) ---

3486 cmd->pdev_id, cmd->bitmap[0], cmd->bitmap[1]);
3487
3488 ret = ath11k_wmi_cmd_send(wmi, skb,
3489 WMI_PDEV_SET_SRG_PARTIAL_BSSID_BITMAP_CMDID);
3490 if (ret) {
3491 ath11k_warn(ab,
3492 "failed to send WMI_PDEV_SET_SRG_PARTIAL_BSSID_BITMAP_CMDID");
3493 dev_kfree_skb(skb);
3474}
3475
3476int
3477ath11k_wmi_pdev_set_srg_patial_bssid_bitmap(struct ath11k *ar, u32 *bitmap)
3478{
3479 struct ath11k_pdev_wmi *wmi = ar->wmi;
3480 struct ath11k_base *ab = wmi->wmi_ab->ab;
3481 struct wmi_pdev_obss_pd_bitmap_cmd *cmd;

--- 19 unchanged lines hidden (view full) ---

3501 cmd->pdev_id, cmd->bitmap[0], cmd->bitmap[1]);
3502
3503 ret = ath11k_wmi_cmd_send(wmi, skb,
3504 WMI_PDEV_SET_SRG_PARTIAL_BSSID_BITMAP_CMDID);
3505 if (ret) {
3506 ath11k_warn(ab,
3507 "failed to send WMI_PDEV_SET_SRG_PARTIAL_BSSID_BITMAP_CMDID");
3508 dev_kfree_skb(skb);
3509 return ret;
3494 }
3495
3510 }
3511
3496 return ret;
3512 return 0;
3497}
3498
3499int
3500ath11k_wmi_pdev_srg_obss_color_enable_bitmap(struct ath11k *ar, u32 *bitmap)
3501{
3502 struct ath11k_pdev_wmi *wmi = ar->wmi;
3503 struct ath11k_base *ab = wmi->wmi_ab->ab;
3504 struct wmi_pdev_obss_pd_bitmap_cmd *cmd;

--- 19 unchanged lines hidden (view full) ---

3524 cmd->pdev_id, cmd->bitmap[0], cmd->bitmap[1]);
3525
3526 ret = ath11k_wmi_cmd_send(wmi, skb,
3527 WMI_PDEV_SET_SRG_OBSS_COLOR_ENABLE_BITMAP_CMDID);
3528 if (ret) {
3529 ath11k_warn(ab,
3530 "failed to send WMI_PDEV_SET_SRG_OBSS_COLOR_ENABLE_BITMAP_CMDID");
3531 dev_kfree_skb(skb);
3513}
3514
3515int
3516ath11k_wmi_pdev_srg_obss_color_enable_bitmap(struct ath11k *ar, u32 *bitmap)
3517{
3518 struct ath11k_pdev_wmi *wmi = ar->wmi;
3519 struct ath11k_base *ab = wmi->wmi_ab->ab;
3520 struct wmi_pdev_obss_pd_bitmap_cmd *cmd;

--- 19 unchanged lines hidden (view full) ---

3540 cmd->pdev_id, cmd->bitmap[0], cmd->bitmap[1]);
3541
3542 ret = ath11k_wmi_cmd_send(wmi, skb,
3543 WMI_PDEV_SET_SRG_OBSS_COLOR_ENABLE_BITMAP_CMDID);
3544 if (ret) {
3545 ath11k_warn(ab,
3546 "failed to send WMI_PDEV_SET_SRG_OBSS_COLOR_ENABLE_BITMAP_CMDID");
3547 dev_kfree_skb(skb);
3548 return ret;
3532 }
3533
3549 }
3550
3534 return ret;
3551 return 0;
3535}
3536
3537int
3538ath11k_wmi_pdev_srg_obss_bssid_enable_bitmap(struct ath11k *ar, u32 *bitmap)
3539{
3540 struct ath11k_pdev_wmi *wmi = ar->wmi;
3541 struct ath11k_base *ab = wmi->wmi_ab->ab;
3542 struct wmi_pdev_obss_pd_bitmap_cmd *cmd;

--- 19 unchanged lines hidden (view full) ---

3562 cmd->pdev_id, cmd->bitmap[0], cmd->bitmap[1]);
3563
3564 ret = ath11k_wmi_cmd_send(wmi, skb,
3565 WMI_PDEV_SET_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID);
3566 if (ret) {
3567 ath11k_warn(ab,
3568 "failed to send WMI_PDEV_SET_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID");
3569 dev_kfree_skb(skb);
3552}
3553
3554int
3555ath11k_wmi_pdev_srg_obss_bssid_enable_bitmap(struct ath11k *ar, u32 *bitmap)
3556{
3557 struct ath11k_pdev_wmi *wmi = ar->wmi;
3558 struct ath11k_base *ab = wmi->wmi_ab->ab;
3559 struct wmi_pdev_obss_pd_bitmap_cmd *cmd;

--- 19 unchanged lines hidden (view full) ---

3579 cmd->pdev_id, cmd->bitmap[0], cmd->bitmap[1]);
3580
3581 ret = ath11k_wmi_cmd_send(wmi, skb,
3582 WMI_PDEV_SET_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID);
3583 if (ret) {
3584 ath11k_warn(ab,
3585 "failed to send WMI_PDEV_SET_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID");
3586 dev_kfree_skb(skb);
3587 return ret;
3570 }
3571
3588 }
3589
3572 return ret;
3590 return 0;
3573}
3574
3575int
3576ath11k_wmi_pdev_non_srg_obss_color_enable_bitmap(struct ath11k *ar, u32 *bitmap)
3577{
3578 struct ath11k_pdev_wmi *wmi = ar->wmi;
3579 struct ath11k_base *ab = wmi->wmi_ab->ab;
3580 struct wmi_pdev_obss_pd_bitmap_cmd *cmd;

--- 19 unchanged lines hidden (view full) ---

3600 cmd->pdev_id, cmd->bitmap[0], cmd->bitmap[1]);
3601
3602 ret = ath11k_wmi_cmd_send(wmi, skb,
3603 WMI_PDEV_SET_NON_SRG_OBSS_COLOR_ENABLE_BITMAP_CMDID);
3604 if (ret) {
3605 ath11k_warn(ab,
3606 "failed to send WMI_PDEV_SET_NON_SRG_OBSS_COLOR_ENABLE_BITMAP_CMDID");
3607 dev_kfree_skb(skb);
3591}
3592
3593int
3594ath11k_wmi_pdev_non_srg_obss_color_enable_bitmap(struct ath11k *ar, u32 *bitmap)
3595{
3596 struct ath11k_pdev_wmi *wmi = ar->wmi;
3597 struct ath11k_base *ab = wmi->wmi_ab->ab;
3598 struct wmi_pdev_obss_pd_bitmap_cmd *cmd;

--- 19 unchanged lines hidden (view full) ---

3618 cmd->pdev_id, cmd->bitmap[0], cmd->bitmap[1]);
3619
3620 ret = ath11k_wmi_cmd_send(wmi, skb,
3621 WMI_PDEV_SET_NON_SRG_OBSS_COLOR_ENABLE_BITMAP_CMDID);
3622 if (ret) {
3623 ath11k_warn(ab,
3624 "failed to send WMI_PDEV_SET_NON_SRG_OBSS_COLOR_ENABLE_BITMAP_CMDID");
3625 dev_kfree_skb(skb);
3626 return ret;
3608 }
3609
3627 }
3628
3610 return ret;
3629 return 0;
3611}
3612
3613int
3614ath11k_wmi_pdev_non_srg_obss_bssid_enable_bitmap(struct ath11k *ar, u32 *bitmap)
3615{
3616 struct ath11k_pdev_wmi *wmi = ar->wmi;
3617 struct ath11k_base *ab = wmi->wmi_ab->ab;
3618 struct wmi_pdev_obss_pd_bitmap_cmd *cmd;

--- 19 unchanged lines hidden (view full) ---

3638 cmd->pdev_id, cmd->bitmap[0], cmd->bitmap[1]);
3639
3640 ret = ath11k_wmi_cmd_send(wmi, skb,
3641 WMI_PDEV_SET_NON_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID);
3642 if (ret) {
3643 ath11k_warn(ab,
3644 "failed to send WMI_PDEV_SET_NON_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID");
3645 dev_kfree_skb(skb);
3630}
3631
3632int
3633ath11k_wmi_pdev_non_srg_obss_bssid_enable_bitmap(struct ath11k *ar, u32 *bitmap)
3634{
3635 struct ath11k_pdev_wmi *wmi = ar->wmi;
3636 struct ath11k_base *ab = wmi->wmi_ab->ab;
3637 struct wmi_pdev_obss_pd_bitmap_cmd *cmd;

--- 19 unchanged lines hidden (view full) ---

3657 cmd->pdev_id, cmd->bitmap[0], cmd->bitmap[1]);
3658
3659 ret = ath11k_wmi_cmd_send(wmi, skb,
3660 WMI_PDEV_SET_NON_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID);
3661 if (ret) {
3662 ath11k_warn(ab,
3663 "failed to send WMI_PDEV_SET_NON_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID");
3664 dev_kfree_skb(skb);
3665 return ret;
3646 }
3647
3666 }
3667
3648 return ret;
3668 return 0;
3649}
3650
3651int
3652ath11k_wmi_send_obss_color_collision_cfg_cmd(struct ath11k *ar, u32 vdev_id,
3653 u8 bss_color, u32 period,
3654 bool enable)
3655{
3656 struct ath11k_pdev_wmi *wmi = ar->wmi;

--- 26 unchanged lines hidden (view full) ---

3683 cmd->vdev_id, cmd->evt_type, cmd->current_bss_color,
3684 cmd->detection_period_ms, cmd->scan_period_ms);
3685
3686 ret = ath11k_wmi_cmd_send(wmi, skb,
3687 WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID);
3688 if (ret) {
3689 ath11k_warn(ab, "Failed to send WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID");
3690 dev_kfree_skb(skb);
3669}
3670
3671int
3672ath11k_wmi_send_obss_color_collision_cfg_cmd(struct ath11k *ar, u32 vdev_id,
3673 u8 bss_color, u32 period,
3674 bool enable)
3675{
3676 struct ath11k_pdev_wmi *wmi = ar->wmi;

--- 26 unchanged lines hidden (view full) ---

3703 cmd->vdev_id, cmd->evt_type, cmd->current_bss_color,
3704 cmd->detection_period_ms, cmd->scan_period_ms);
3705
3706 ret = ath11k_wmi_cmd_send(wmi, skb,
3707 WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID);
3708 if (ret) {
3709 ath11k_warn(ab, "Failed to send WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID");
3710 dev_kfree_skb(skb);
3711 return ret;
3691 }
3712 }
3692 return ret;
3713
3714 return 0;
3693}
3694
3695int ath11k_wmi_send_bss_color_change_enable_cmd(struct ath11k *ar, u32 vdev_id,
3696 bool enable)
3697{
3698 struct ath11k_pdev_wmi *wmi = ar->wmi;
3699 struct ath11k_base *ab = wmi->wmi_ab->ab;
3700 struct wmi_bss_color_change_enable_params_cmd *cmd;

--- 16 unchanged lines hidden (view full) ---

3717 "wmi_send_bss_color_change_enable id %d enable %d\n",
3718 cmd->vdev_id, cmd->enable);
3719
3720 ret = ath11k_wmi_cmd_send(wmi, skb,
3721 WMI_BSS_COLOR_CHANGE_ENABLE_CMDID);
3722 if (ret) {
3723 ath11k_warn(ab, "Failed to send WMI_BSS_COLOR_CHANGE_ENABLE_CMDID");
3724 dev_kfree_skb(skb);
3715}
3716
3717int ath11k_wmi_send_bss_color_change_enable_cmd(struct ath11k *ar, u32 vdev_id,
3718 bool enable)
3719{
3720 struct ath11k_pdev_wmi *wmi = ar->wmi;
3721 struct ath11k_base *ab = wmi->wmi_ab->ab;
3722 struct wmi_bss_color_change_enable_params_cmd *cmd;

--- 16 unchanged lines hidden (view full) ---

3739 "wmi_send_bss_color_change_enable id %d enable %d\n",
3740 cmd->vdev_id, cmd->enable);
3741
3742 ret = ath11k_wmi_cmd_send(wmi, skb,
3743 WMI_BSS_COLOR_CHANGE_ENABLE_CMDID);
3744 if (ret) {
3745 ath11k_warn(ab, "Failed to send WMI_BSS_COLOR_CHANGE_ENABLE_CMDID");
3746 dev_kfree_skb(skb);
3747 return ret;
3725 }
3748 }
3726 return ret;
3749
3750 return 0;
3727}
3728
3729int ath11k_wmi_fils_discovery_tmpl(struct ath11k *ar, u32 vdev_id,
3730 struct sk_buff *tmpl)
3731{
3732 struct wmi_tlv *tlv;
3733 struct sk_buff *skb;
3734 void *ptr;

--- 25 unchanged lines hidden (view full) ---

3760 memcpy(tlv->value, tmpl->data, tmpl->len);
3761
3762 ret = ath11k_wmi_cmd_send(ar->wmi, skb, WMI_FILS_DISCOVERY_TMPL_CMDID);
3763 if (ret) {
3764 ath11k_warn(ar->ab,
3765 "WMI vdev %i failed to send FILS discovery template command\n",
3766 vdev_id);
3767 dev_kfree_skb(skb);
3751}
3752
3753int ath11k_wmi_fils_discovery_tmpl(struct ath11k *ar, u32 vdev_id,
3754 struct sk_buff *tmpl)
3755{
3756 struct wmi_tlv *tlv;
3757 struct sk_buff *skb;
3758 void *ptr;

--- 25 unchanged lines hidden (view full) ---

3784 memcpy(tlv->value, tmpl->data, tmpl->len);
3785
3786 ret = ath11k_wmi_cmd_send(ar->wmi, skb, WMI_FILS_DISCOVERY_TMPL_CMDID);
3787 if (ret) {
3788 ath11k_warn(ar->ab,
3789 "WMI vdev %i failed to send FILS discovery template command\n",
3790 vdev_id);
3791 dev_kfree_skb(skb);
3792 return ret;
3768 }
3793 }
3769 return ret;
3794
3795 return 0;
3770}
3771
3772int ath11k_wmi_probe_resp_tmpl(struct ath11k *ar, u32 vdev_id,
3773 struct sk_buff *tmpl)
3774{
3775 struct wmi_probe_tmpl_cmd *cmd;
3776 struct wmi_bcn_prb_info *probe_info;
3777 struct wmi_tlv *tlv;

--- 35 unchanged lines hidden (view full) ---

3813 memcpy(tlv->value, tmpl->data, tmpl->len);
3814
3815 ret = ath11k_wmi_cmd_send(ar->wmi, skb, WMI_PRB_TMPL_CMDID);
3816 if (ret) {
3817 ath11k_warn(ar->ab,
3818 "WMI vdev %i failed to send probe response template command\n",
3819 vdev_id);
3820 dev_kfree_skb(skb);
3796}
3797
3798int ath11k_wmi_probe_resp_tmpl(struct ath11k *ar, u32 vdev_id,
3799 struct sk_buff *tmpl)
3800{
3801 struct wmi_probe_tmpl_cmd *cmd;
3802 struct wmi_bcn_prb_info *probe_info;
3803 struct wmi_tlv *tlv;

--- 35 unchanged lines hidden (view full) ---

3839 memcpy(tlv->value, tmpl->data, tmpl->len);
3840
3841 ret = ath11k_wmi_cmd_send(ar->wmi, skb, WMI_PRB_TMPL_CMDID);
3842 if (ret) {
3843 ath11k_warn(ar->ab,
3844 "WMI vdev %i failed to send probe response template command\n",
3845 vdev_id);
3846 dev_kfree_skb(skb);
3847 return ret;
3821 }
3848 }
3822 return ret;
3849
3850 return 0;
3823}
3824
3825int ath11k_wmi_fils_discovery(struct ath11k *ar, u32 vdev_id, u32 interval,
3826 bool unsol_bcast_probe_resp_enabled)
3827{
3828 struct sk_buff *skb;
3829 int ret, len;
3830 struct wmi_fils_discovery_cmd *cmd;

--- 17 unchanged lines hidden (view full) ---

3848 cmd->config = unsol_bcast_probe_resp_enabled;
3849
3850 ret = ath11k_wmi_cmd_send(ar->wmi, skb, WMI_ENABLE_FILS_CMDID);
3851 if (ret) {
3852 ath11k_warn(ar->ab,
3853 "WMI vdev %i failed to send FILS discovery enable/disable command\n",
3854 vdev_id);
3855 dev_kfree_skb(skb);
3851}
3852
3853int ath11k_wmi_fils_discovery(struct ath11k *ar, u32 vdev_id, u32 interval,
3854 bool unsol_bcast_probe_resp_enabled)
3855{
3856 struct sk_buff *skb;
3857 int ret, len;
3858 struct wmi_fils_discovery_cmd *cmd;

--- 17 unchanged lines hidden (view full) ---

3876 cmd->config = unsol_bcast_probe_resp_enabled;
3877
3878 ret = ath11k_wmi_cmd_send(ar->wmi, skb, WMI_ENABLE_FILS_CMDID);
3879 if (ret) {
3880 ath11k_warn(ar->ab,
3881 "WMI vdev %i failed to send FILS discovery enable/disable command\n",
3882 vdev_id);
3883 dev_kfree_skb(skb);
3884 return ret;
3856 }
3885 }
3857 return ret;
3886
3887 return 0;
3858}
3859
3860static void
3861ath11k_wmi_obss_color_collision_event(struct ath11k_base *ab, struct sk_buff *skb)
3862{
3863 const void **tb;
3864 const struct wmi_obss_color_collision_event *ev;
3865 struct ath11k_vif *arvif;

--- 251 unchanged lines hidden (view full) ---

4117 ptr += sizeof(*band_to_mac);
4118 }
4119 }
4120
4121 ret = ath11k_wmi_cmd_send(wmi, skb, WMI_INIT_CMDID);
4122 if (ret) {
4123 ath11k_warn(ab, "failed to send WMI_INIT_CMDID\n");
4124 dev_kfree_skb(skb);
3888}
3889
3890static void
3891ath11k_wmi_obss_color_collision_event(struct ath11k_base *ab, struct sk_buff *skb)
3892{
3893 const void **tb;
3894 const struct wmi_obss_color_collision_event *ev;
3895 struct ath11k_vif *arvif;

--- 251 unchanged lines hidden (view full) ---

4147 ptr += sizeof(*band_to_mac);
4148 }
4149 }
4150
4151 ret = ath11k_wmi_cmd_send(wmi, skb, WMI_INIT_CMDID);
4152 if (ret) {
4153 ath11k_warn(ab, "failed to send WMI_INIT_CMDID\n");
4154 dev_kfree_skb(skb);
4155 return ret;
4125 }
4126
4156 }
4157
4127 return ret;
4158 return 0;
4128}
4129
4130int ath11k_wmi_pdev_lro_cfg(struct ath11k *ar,
4131 int pdev_id)
4132{
4133 struct ath11k_wmi_pdev_lro_config_cmd *cmd;
4134 struct sk_buff *skb;
4135 int ret;

--- 72 unchanged lines hidden (view full) ---

4208
4209 cmd->pdev_id = WMI_PDEV_ID_SOC;
4210 cmd->hw_mode_index = mode;
4211
4212 ret = ath11k_wmi_cmd_send(&wmi_ab->wmi[0], skb, WMI_PDEV_SET_HW_MODE_CMDID);
4213 if (ret) {
4214 ath11k_warn(ab, "failed to send WMI_PDEV_SET_HW_MODE_CMDID\n");
4215 dev_kfree_skb(skb);
4159}
4160
4161int ath11k_wmi_pdev_lro_cfg(struct ath11k *ar,
4162 int pdev_id)
4163{
4164 struct ath11k_wmi_pdev_lro_config_cmd *cmd;
4165 struct sk_buff *skb;
4166 int ret;

--- 72 unchanged lines hidden (view full) ---

4239
4240 cmd->pdev_id = WMI_PDEV_ID_SOC;
4241 cmd->hw_mode_index = mode;
4242
4243 ret = ath11k_wmi_cmd_send(&wmi_ab->wmi[0], skb, WMI_PDEV_SET_HW_MODE_CMDID);
4244 if (ret) {
4245 ath11k_warn(ab, "failed to send WMI_PDEV_SET_HW_MODE_CMDID\n");
4246 dev_kfree_skb(skb);
4247 return ret;
4216 }
4217
4248 }
4249
4218 return ret;
4250 return 0;
4219}
4220
4221int ath11k_wmi_cmd_init(struct ath11k_base *ab)
4222{
4223 struct ath11k_wmi_base *wmi_sc = &ab->wmi_ab;
4224 struct wmi_init_cmd_param init_param;
4225 struct target_resource_config config;
4226

--- 5480 unchanged lines hidden ---
4251}
4252
4253int ath11k_wmi_cmd_init(struct ath11k_base *ab)
4254{
4255 struct ath11k_wmi_base *wmi_sc = &ab->wmi_ab;
4256 struct wmi_init_cmd_param init_param;
4257 struct target_resource_config config;
4258

--- 5480 unchanged lines hidden ---