}
 }
 
-static int wfx_set_pm(struct wfx_vif *wvif,
-                     const struct hif_req_set_pm_mode *arg)
+static int wfx_update_pm(struct wfx_vif *wvif)
 {
-       struct hif_req_set_pm_mode pm = *arg;
+       struct hif_req_set_pm_mode pm = wvif->powersave_mode;
        u16 uapsd_flags;
-       int ret;
 
        if (wvif->state != WFX_STATE_STA || !wvif->bss_params.aid)
                return 0;
                        if (!ret && wvif->setbssparams_done &&
                            wvif->state == WFX_STATE_STA &&
                            old_uapsd_flags != new_uapsd_flags)
-                               ret = wfx_set_pm(wvif, &wvif->powersave_mode);
+                               ret = wfx_update_pm(wvif);
                }
        } else {
                ret = -EINVAL;
                hif_set_bss_params(wvif, &wvif->bss_params);
                wvif->setbssparams_done = true;
                wfx_set_beacon_wakeup_period_work(&wvif->set_beacon_wakeup_period_work);
-               wfx_set_pm(wvif, &wvif->powersave_mode);
+               wfx_update_pm(wvif);
        }
 }
 
                                }
                        }
                        if (wvif->state == WFX_STATE_STA && wvif->bss_params.aid)
-                               wfx_set_pm(wvif, &wvif->powersave_mode);
+                               wfx_update_pm(wvif);
                }
                wvif = wdev_to_wvif(wdev, 0);
        }
                else
                        hif_set_block_ack_policy(wvif, 0x00, 0x00);
                // Combo force powersave mode. We can re-enable it now
-               wfx_set_pm(wvif, &wvif->powersave_mode);
+               wfx_update_pm(wvif);
        }
        return 0;
 }
                else
                        hif_set_block_ack_policy(wvif, 0x00, 0x00);
                // Combo force powersave mode. We can re-enable it now
-               wfx_set_pm(wvif, &wvif->powersave_mode);
+               wfx_update_pm(wvif);
        }
 }