|
@@ -1,5 +1,6 @@
|
|
|
/*
|
|
|
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
|
|
|
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
|
*
|
|
|
* Permission to use, copy, modify, and/or distribute this software for
|
|
|
* any purpose with or without fee is hereby granted, provided that the
|
|
@@ -80,11 +81,20 @@
|
|
|
#define WLAN_PRIV_DATA_MAX_LEN 8192
|
|
|
|
|
|
/*
|
|
|
- * Driver miracast parameters 0-Disabled
|
|
|
+ * Driver miracast parameters:
|
|
|
+ * 0-Disabled
|
|
|
* 1-Source, 2-Sink
|
|
|
+ * 128: miracast connecting time optimization enabled. At present host
|
|
|
+ * will disable imps to reduce connection time for p2p.
|
|
|
+ * 129: miracast connecting time optimization disabled
|
|
|
*/
|
|
|
-#define WLAN_HDD_DRIVER_MIRACAST_CFG_MIN_VAL 0
|
|
|
-#define WLAN_HDD_DRIVER_MIRACAST_CFG_MAX_VAL 2
|
|
|
+enum miracast_param {
|
|
|
+ MIRACAST_DISABLED,
|
|
|
+ MIRACAST_SOURCE,
|
|
|
+ MIRACAST_SINK,
|
|
|
+ MIRACAST_CONN_OPT_ENABLED = 128,
|
|
|
+ MIRACAST_CONN_OPT_DISABLED = 129,
|
|
|
+};
|
|
|
|
|
|
/*
|
|
|
* When ever we need to print IBSSPEERINFOALL for more than 16 STA
|
|
@@ -4486,12 +4496,34 @@ static int drv_cmd_miracast(struct hdd_adapter *adapter,
|
|
|
ret = -EINVAL;
|
|
|
goto exit;
|
|
|
}
|
|
|
- if ((filter_type < WLAN_HDD_DRIVER_MIRACAST_CFG_MIN_VAL) ||
|
|
|
- (filter_type > WLAN_HDD_DRIVER_MIRACAST_CFG_MAX_VAL)) {
|
|
|
- hdd_err("Accepted Values are 0 to 2. 0-Disabled, 1-Source, 2-Sink");
|
|
|
+ hdd_debug("filter_type %d", filter_type);
|
|
|
+
|
|
|
+ switch (filter_type) {
|
|
|
+ case MIRACAST_DISABLED:
|
|
|
+ case MIRACAST_SOURCE:
|
|
|
+ case MIRACAST_SINK:
|
|
|
+ break;
|
|
|
+ case MIRACAST_CONN_OPT_ENABLED:
|
|
|
+ case MIRACAST_CONN_OPT_DISABLED:
|
|
|
+ {
|
|
|
+ bool is_imps_enabled = true;
|
|
|
+
|
|
|
+ ucfg_mlme_is_imps_enabled(hdd_ctx->psoc,
|
|
|
+ &is_imps_enabled);
|
|
|
+ if (!is_imps_enabled)
|
|
|
+ return 0;
|
|
|
+ hdd_set_idle_ps_config(
|
|
|
+ hdd_ctx,
|
|
|
+ filter_type ==
|
|
|
+ MIRACAST_CONN_OPT_ENABLED ? false : true);
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ default:
|
|
|
+ hdd_err("accepted Values: 0-Disabled, 1-Source, 2-Sink, 128,129");
|
|
|
ret = -EINVAL;
|
|
|
goto exit;
|
|
|
}
|
|
|
+
|
|
|
/* Filtertype value should be either 0-Disabled, 1-Source, 2-sink */
|
|
|
hdd_ctx->miracast_value = filter_type;
|
|
|
|