static int dhd_set_suspend(int value, dhd_pub_t *dhd)
{
+#if !defined(SUPPORT_PM2_ONLY)
int power_mode = PM_MAX;
+#endif
/* wl_pkt_filter_enable_t enable_parm; */
char iovbuf[32];
int bcn_li_dtim = 3;
/* Kernel suspended */
DHD_ERROR(("%s: force extra Suspend setting\n", __FUNCTION__));
+#if !defined(SUPPORT_PM2_ONLY)
dhd_wl_ioctl_cmd(dhd, WLC_SET_PM, (char *)&power_mode,
sizeof(power_mode), TRUE, 0);
+#endif
/* Enable packet filter, only allow unicast packet to send up */
dhd_set_packet_filter(1, dhd);
/* Kernel resumed */
DHD_ERROR(("%s: Remove extra suspend setting\n", __FUNCTION__));
+#if !defined(SUPPORT_PM2_ONLY)
power_mode = PM_FAST;
dhd_wl_ioctl_cmd(dhd, WLC_SET_PM, (char *)&power_mode,
sizeof(power_mode), TRUE, 0);
+#endif
/* disable pkt filter */
dhd_set_packet_filter(0, dhd);
s32 pm;
s32 err = 0;
struct wl_priv *wl = wiphy_priv(wiphy);
+#if !defined(SUPPORT_PM2_ONLY)
dhd_pub_t *dhd = (dhd_pub_t *)(wl->pub);
-
+#endif
CHECK_SYS_UP(wl);
WL_DBG(("Enter : power save %s\n", (enabled ? "enable" : "disable")));
return err;
}
+#if !defined(SUPPORT_PM2_ONLY)
pm = enabled ? ((dhd->in_suspend) ? PM_MAX : PM_FAST) : PM_OFF;
+#else
+ pm = enabled ? PM_FAST : PM_OFF;
+#endif
pm = htod32(pm);
err = wldev_ioctl(dev, WLC_SET_PM, &pm, sizeof(pm), true);
if (unlikely(err)) {
if (legacy_ps != -1) {
s32 pm = legacy_ps ? PM_MAX : PM_OFF;
+#if defined(SUPPORT_PM2_ONLY)
+ if (pm == PM_MAX)
+ pm = PM_FAST;
+#endif /* SUPPORT_PM2_ONLY */
ret = wldev_ioctl(wl_to_p2p_bss_ndev(wl, P2PAPI_BSSCFG_CONNECTION),
WLC_SET_PM, &pm, sizeof(pm), true);
if (unlikely(ret)) {