diff --git a/drivers/staging/ks7010/ks_hostif.c b/drivers/staging/ks7010/ks_hostif.c index 3a6385c0349c..359187e1009b 100644 --- a/drivers/staging/ks7010/ks_hostif.c +++ b/drivers/staging/ks7010/ks_hostif.c @@ -1880,36 +1880,23 @@ spin_unlock: spin_unlock(&priv->multicast_spin); } -static -void hostif_sme_power_mgmt_set(struct ks_wlan_private *priv) +static void hostif_sme_power_mgmt_set(struct ks_wlan_private *priv) { u32 mode, wake_up, receive_dtims; - switch (priv->reg.power_mgmt) { - case POWER_MGMT_SAVE1: - mode = (priv->reg.operation_mode == MODE_INFRASTRUCTURE) ? - POWER_SAVE : POWER_ACTIVE; - wake_up = 0; - receive_dtims = 0; - break; - case POWER_MGMT_SAVE2: - if (priv->reg.operation_mode == MODE_INFRASTRUCTURE) { - mode = POWER_SAVE; - wake_up = 0; - receive_dtims = 1; - } else { - mode = POWER_ACTIVE; - wake_up = 0; - receive_dtims = 0; - } - break; - case POWER_MGMT_ACTIVE: - default: + if (priv->reg.power_mgmt != POWER_MGMT_SAVE1 && + priv->reg.power_mgmt != POWER_MGMT_SAVE2) { mode = POWER_ACTIVE; wake_up = 0; receive_dtims = 0; - break; + } else { + mode = (priv->reg.operation_mode == MODE_INFRASTRUCTURE) ? + POWER_SAVE : POWER_ACTIVE; + wake_up = 0; + receive_dtims = (priv->reg.operation_mode == MODE_INFRASTRUCTURE && + priv->reg.power_mgmt == POWER_MGMT_SAVE2); } + hostif_power_mgmt_request(priv, mode, wake_up, receive_dtims); }