Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 74d8eab6 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: ipa: New APIs for PINE+PINE dual wifi support"

parents d70a1a19 62bdfdbb
Loading
Loading
Loading
Loading
+196 −2
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2015-2021, The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 */

#include <linux/ipa_fmwk.h>
@@ -318,6 +319,35 @@ struct ipa_fmwk_contex {

	bool (*ipa_wdi_is_tx1_used)(void);

	int (*ipa_wdi_get_capabilities)(struct ipa_wdi_capabilities_out_params *out);

	int (*ipa_wdi_init_per_inst)(struct ipa_wdi_init_in_params *in,
		struct ipa_wdi_init_out_params *out);

	int (*ipa_wdi_cleanup_per_inst)(u32 hdl);

	int (*ipa_wdi_reg_intf_per_inst)(
		struct ipa_wdi_reg_intf_in_params *in);

	int (*ipa_wdi_dereg_intf_per_inst)(const char *netdev_name, u32 hdl);

	int (*ipa_wdi_conn_pipes_per_inst)(struct ipa_wdi_conn_in_params *in,
		struct ipa_wdi_conn_out_params *out);

	int (*ipa_wdi_disconn_pipes_per_inst)(u32 hdl);

	int (*ipa_wdi_enable_pipes_per_inst)(u32 hdl);

	int (*ipa_wdi_disable_pipes_per_inst)(u32 hdl);

	int (*ipa_wdi_set_perf_profile_per_inst)(u32 hdl, struct ipa_wdi_perf_profile *profile);

	int (*ipa_wdi_create_smmu_mapping_per_inst)(u32 hdl, u32 num_buffers,
		struct ipa_wdi_buffer_info *info);

	int (*ipa_wdi_release_smmu_mapping_per_inst)(u32 hdl, u32 num_buffers,
		struct ipa_wdi_buffer_info *info);

	/* ipa_gsb APIs*/
	int (*ipa_bridge_init)(struct ipa_bridge_init_params *params, u32 *hdl);

@@ -1248,7 +1278,19 @@ int ipa_fmwk_register_ipa_wdi3(const struct ipa_wdi3_data *in)
		|| ipa_fmwk_ctx->ipa_wdi_get_stats
		|| ipa_fmwk_ctx->ipa_get_wdi_version
		|| ipa_fmwk_ctx->ipa_wdi_sw_stats
		|| ipa_fmwk_ctx->ipa_wdi_is_tx1_used) {
		|| ipa_fmwk_ctx->ipa_wdi_is_tx1_used
		|| ipa_fmwk_ctx->ipa_wdi_get_capabilities
		|| ipa_fmwk_ctx->ipa_wdi_init_per_inst
		|| ipa_fmwk_ctx->ipa_wdi_cleanup_per_inst
		|| ipa_fmwk_ctx->ipa_wdi_reg_intf_per_inst
		|| ipa_fmwk_ctx->ipa_wdi_dereg_intf_per_inst
		|| ipa_fmwk_ctx->ipa_wdi_conn_pipes_per_inst
		|| ipa_fmwk_ctx->ipa_wdi_disconn_pipes_per_inst
		|| ipa_fmwk_ctx->ipa_wdi_enable_pipes_per_inst
		|| ipa_fmwk_ctx->ipa_wdi_disable_pipes_per_inst
		|| ipa_fmwk_ctx->ipa_wdi_set_perf_profile_per_inst
		|| ipa_fmwk_ctx->ipa_wdi_create_smmu_mapping_per_inst
		|| ipa_fmwk_ctx->ipa_wdi_release_smmu_mapping_per_inst) {
		pr_err("ipa_wdi3 APIs were already initialized\n");
		return -EPERM;
	}
@@ -1271,7 +1313,26 @@ int ipa_fmwk_register_ipa_wdi3(const struct ipa_wdi3_data *in)
	ipa_fmwk_ctx->ipa_wdi_sw_stats = in->ipa_wdi_sw_stats;
	ipa_fmwk_ctx->ipa_get_wdi_version = in->ipa_get_wdi_version;
	ipa_fmwk_ctx->ipa_wdi_is_tx1_used = in->ipa_wdi_is_tx1_used;

	ipa_fmwk_ctx->ipa_wdi_get_capabilities = in->ipa_wdi_get_capabilities;
	ipa_fmwk_ctx->ipa_wdi_init_per_inst = in->ipa_wdi_init_per_inst;
	ipa_fmwk_ctx->ipa_wdi_cleanup_per_inst = in->ipa_wdi_cleanup_per_inst;
	ipa_fmwk_ctx->ipa_wdi_reg_intf_per_inst = in->ipa_wdi_reg_intf_per_inst;
	ipa_fmwk_ctx->ipa_wdi_dereg_intf_per_inst =
		in->ipa_wdi_dereg_intf_per_inst;
	ipa_fmwk_ctx->ipa_wdi_conn_pipes_per_inst =
		in->ipa_wdi_conn_pipes_per_inst;
	ipa_fmwk_ctx->ipa_wdi_disconn_pipes_per_inst =
		in->ipa_wdi_disconn_pipes_per_inst;
	ipa_fmwk_ctx->ipa_wdi_enable_pipes_per_inst =
		in->ipa_wdi_enable_pipes_per_inst;
	ipa_fmwk_ctx->ipa_wdi_disable_pipes_per_inst =
		in->ipa_wdi_disable_pipes_per_inst;
	ipa_fmwk_ctx->ipa_wdi_set_perf_profile_per_inst =
		in->ipa_wdi_set_perf_profile_per_inst;
	ipa_fmwk_ctx->ipa_wdi_create_smmu_mapping_per_inst =
		in->ipa_wdi_create_smmu_mapping_per_inst;
	ipa_fmwk_ctx->ipa_wdi_release_smmu_mapping_per_inst =
		in->ipa_wdi_release_smmu_mapping_per_inst;
	pr_info("ipa_wdi3 registered successfully\n");

	return 0;
@@ -1411,6 +1472,139 @@ int ipa_wdi_release_smmu_mapping(u32 num_buffers,
}
EXPORT_SYMBOL(ipa_wdi_release_smmu_mapping);

int ipa_wdi_get_capabilities(struct ipa_wdi_capabilities_out_params *out)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_wdi_get_capabilities, out);

	return ret;
}
EXPORT_SYMBOL(ipa_wdi_get_capabilities);

int ipa_wdi_init_per_inst(struct ipa_wdi_init_in_params *in,
	struct ipa_wdi_init_out_params *out)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_wdi_init_per_inst,
		in, out);

	return ret;
}
EXPORT_SYMBOL(ipa_wdi_init_per_inst);

int ipa_wdi_cleanup_per_inst(u32 hdl)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_wdi_cleanup_per_inst, hdl);

	return ret;
}
EXPORT_SYMBOL(ipa_wdi_cleanup_per_inst);

int ipa_wdi_reg_intf_per_inst(
	struct ipa_wdi_reg_intf_in_params *in)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_wdi_reg_intf_per_inst,
		in);

	return ret;
}
EXPORT_SYMBOL(ipa_wdi_reg_intf_per_inst);

int ipa_wdi_dereg_intf_per_inst(const char *netdev_name, u32 hdl)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_wdi_dereg_intf_per_inst,
		netdev_name, hdl);

	return ret;
}
EXPORT_SYMBOL(ipa_wdi_dereg_intf_per_inst);

int ipa_wdi_conn_pipes_per_inst(struct ipa_wdi_conn_in_params *in,
	struct ipa_wdi_conn_out_params *out)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_wdi_conn_pipes_per_inst,
		in, out);

	return ret;
}
EXPORT_SYMBOL(ipa_wdi_conn_pipes_per_inst);

int ipa_wdi_disconn_pipes_per_inst(u32 hdl)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_wdi_disconn_pipes_per_inst, hdl);

	return ret;
}
EXPORT_SYMBOL(ipa_wdi_disconn_pipes_per_inst);

int ipa_wdi_enable_pipes_per_inst(u32 hdl)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_wdi_enable_pipes_per_inst, hdl);

	return ret;
}
EXPORT_SYMBOL(ipa_wdi_enable_pipes_per_inst);

int ipa_wdi_disable_pipes_per_inst(u32 hdl)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_wdi_disable_pipes_per_inst, hdl);

	return ret;
}
EXPORT_SYMBOL(ipa_wdi_disable_pipes_per_inst);

int ipa_wdi_set_perf_profile_per_inst(u32 hdl,
	struct ipa_wdi_perf_profile *profile)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_wdi_set_perf_profile_per_inst,
		hdl, profile);

	return ret;
}
EXPORT_SYMBOL(ipa_wdi_set_perf_profile_per_inst);

int ipa_wdi_create_smmu_mapping_per_inst(u32 hdl, u32 num_buffers,
	struct ipa_wdi_buffer_info *info)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN_DP(ipa_wdi_create_smmu_mapping_per_inst,
		hdl, num_buffers, info);

	return ret;
}
EXPORT_SYMBOL(ipa_wdi_create_smmu_mapping_per_inst);

int ipa_wdi_release_smmu_mapping_per_inst(u32 hdl, u32 num_buffers,
	struct ipa_wdi_buffer_info *info)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN_DP(ipa_wdi_release_smmu_mapping_per_inst,
		hdl, num_buffers, info);

	return ret;
}
EXPORT_SYMBOL(ipa_wdi_release_smmu_mapping_per_inst);

int ipa_wdi_get_stats(struct IpaHwStatsWDIInfoData_t *stats)
{
	int ret;
+30 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2018 - 2021, The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 */

#ifndef _IPA_FMWK_H_
@@ -207,6 +208,35 @@ struct ipa_wdi3_data {
	int (*ipa_get_wdi_version)(void);

	bool (*ipa_wdi_is_tx1_used)(void);

	int (*ipa_wdi_get_capabilities)(struct ipa_wdi_capabilities_out_params *out);

	int (*ipa_wdi_init_per_inst)(struct ipa_wdi_init_in_params *in,
		struct ipa_wdi_init_out_params *out);

	int (*ipa_wdi_cleanup_per_inst)(u32 hdl);

	int (*ipa_wdi_reg_intf_per_inst)(
		struct ipa_wdi_reg_intf_in_params *in);

	int (*ipa_wdi_dereg_intf_per_inst)(const char *netdev_name, u32 hdl);

	int (*ipa_wdi_conn_pipes_per_inst)(struct ipa_wdi_conn_in_params *in,
		struct ipa_wdi_conn_out_params *out);

	int (*ipa_wdi_disconn_pipes_per_inst)(u32 hdl);

	int (*ipa_wdi_enable_pipes_per_inst)(u32 hdl);

	int (*ipa_wdi_disable_pipes_per_inst)(u32 hdl);

	int (*ipa_wdi_set_perf_profile_per_inst)(u32 hdl, struct ipa_wdi_perf_profile *profile);

	int (*ipa_wdi_create_smmu_mapping_per_inst)(u32 hdl, u32 num_buffers,
		struct ipa_wdi_buffer_info *info);

	int (*ipa_wdi_release_smmu_mapping_per_inst)(u32 hdl, u32 num_buffers,
		struct ipa_wdi_buffer_info *info);
};

struct ipa_qdss_data {
+241 −1
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2018 - 2021, The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 */

#ifndef _IPA_WDI3_H_
@@ -19,15 +20,19 @@

#define IPA_WDI_MAX_SUPPORTED_SYS_PIPE 3

typedef u32 ipa_wdi_hdl_t;

enum ipa_wdi_version {
	IPA_WDI_1,
	IPA_WDI_2,
	IPA_WDI_3
	IPA_WDI_3,
	IPA_WDI_VER_MAX
};

#define IPA_WDI3_TX_DIR 1
#define IPA_WDI3_TX1_DIR 2
#define IPA_WDI3_RX_DIR 3
#define IPA_WDI_INST_MAX (2)

/**
 * struct ipa_wdi_init_in_params - wdi init input parameters
@@ -43,6 +48,7 @@ struct ipa_wdi_init_in_params {
#ifdef IPA_WAN_MSG_IPv6_ADDR_GW_LEN
	ipa_wdi_meter_notifier_cb wdi_notify;
#endif
	int inst_id;
};

/**
@@ -57,6 +63,7 @@ struct ipa_wdi_init_out_params {
	bool is_uC_ready;
	bool is_smmu_enabled;
	bool is_over_gsi;
	ipa_wdi_hdl_t hdl;
};

/**
@@ -93,6 +100,7 @@ struct ipa_wdi_reg_intf_in_params {
	u32 meta_data;
	u32 meta_data_mask;
	u8 is_tx1_used;
	ipa_wdi_hdl_t hdl;
};

/**
@@ -208,6 +216,7 @@ struct ipa_wdi_conn_in_params {
		struct ipa_wdi_pipe_setup_info tx;
		struct ipa_wdi_pipe_setup_info_smmu tx_smmu;
	} u_tx1;
	ipa_wdi_hdl_t hdl;
};

/**
@@ -236,8 +245,30 @@ struct ipa_wdi_perf_profile {
	u32 max_supported_bw_mbps;
};


/**
 * struct ipa_wdi_capabilities - wdi capability parameters
 *
 * @num_of_instances: Number of WLAN instances supported.
 */
struct ipa_wdi_capabilities_out_params {
	u8 num_of_instances;
};

#if IS_ENABLED(CONFIG_IPA3)

/**
 * ipa_wdi_get_capabilities - Client should call this function to
 * know the WDI capabilities
 *
 * Note: Should not be called from atomic context and only
 * after checking IPA readiness using ipa_register_ipa_ready_cb()
 *
 * @Return 0 on success, negative on failure
 */
int ipa_wdi_get_capabilities(
	struct ipa_wdi_capabilities_out_params *out);

/**
 * ipa_wdi_init - Client should call this function to
 * init WDI IPA offload data path
@@ -256,6 +287,18 @@ int ipa_wdi_init(struct ipa_wdi_init_in_params *in,
 */
bool ipa_wdi_is_tx1_used(void);

/**
 * ipa_wdi_init_per_inst - Client should call this function to
 * init WDI IPA offload data path
 *
 * Note: Should not be called from atomic context and only
 * after checking IPA readiness using ipa_register_ipa_ready_cb()
 *
 * @Return 0 on success, negative on failure
 */
int ipa_wdi_init_per_inst(struct ipa_wdi_init_in_params *in,
	struct ipa_wdi_init_out_params *out);

/**
 * ipa_wdi_cleanup - Client should call this function to
 * clean up WDI IPA offload data path
@@ -264,6 +307,17 @@ bool ipa_wdi_is_tx1_used(void);
 */
int ipa_wdi_cleanup(void);

/**
 * ipa_wdi_cleanup_per_inst - Client should call this function to
 * clean up WDI IPA offload data path
 *
 * @hdl: hdl to wdi client
 *
 * @Return 0 on success, negative on failure
 */
int ipa_wdi_cleanup_per_inst(ipa_wdi_hdl_t hdl);


/**
 * ipa_wdi_reg_intf - Client should call this function to
 * register interface
@@ -275,6 +329,17 @@ int ipa_wdi_cleanup(void);
int ipa_wdi_reg_intf(
	struct ipa_wdi_reg_intf_in_params *in);

/**
 * ipa_wdi_reg_intf_per_inst - Client should call this function to
 * register interface
 *
 * Note: Should not be called from atomic context
 *
 * @Return 0 on success, negative on failure
 */
int ipa_wdi_reg_intf_per_inst(
	struct ipa_wdi_reg_intf_in_params *in);

/**
 * ipa_wdi_dereg_intf - Client Driver should call this
 * function to deregister before unload and after disconnect
@@ -283,6 +348,14 @@ int ipa_wdi_reg_intf(
 */
int ipa_wdi_dereg_intf(const char *netdev_name);

/**
 * ipa_wdi_dereg_intf_per_inst - Client Driver should call this
 * function to deregister before unload and after disconnect
 *
 * @Return 0 on success, negative on failure
 */
int ipa_wdi_dereg_intf_per_inst(const char *netdev_name, ipa_wdi_hdl_t hdl);

/**
 * ipa_wdi_conn_pipes - Client should call this
 * function to connect pipes
@@ -297,6 +370,20 @@ int ipa_wdi_dereg_intf(const char *netdev_name);
int ipa_wdi_conn_pipes(struct ipa_wdi_conn_in_params *in,
	struct ipa_wdi_conn_out_params *out);

/**
 * ipa_wdi_conn_pipes_per_inst - Client should call this
 * function to connect pipes
 *
 * @in:	[in] input parameters from client
 * @out: [out] output params to client
 *
 * Note: Should not be called from atomic context
 *
 * @Return 0 on success, negative on failure
 */
int ipa_wdi_conn_pipes_per_inst(struct ipa_wdi_conn_in_params *in,
	struct ipa_wdi_conn_out_params *out);

/**
 * ipa_wdi_disconn_pipes() - Client should call this
 *		function to disconnect pipes
@@ -307,6 +394,17 @@ int ipa_wdi_conn_pipes(struct ipa_wdi_conn_in_params *in,
 */
int ipa_wdi_disconn_pipes(void);

/**
 * ipa_wdi_disconn_pipes_per_inst() - Client should call this
 *		function to disconnect pipes
 *
 * @hdl: hdl to wdi client
 * Note: Should not be called from atomic context
 *
 * Returns: 0 on success, negative on failure
 */
int ipa_wdi_disconn_pipes_per_inst(ipa_wdi_hdl_t hdl);

/**
 * ipa_wdi_enable_pipes() - Client should call this
 *		function to enable IPA offload data path
@@ -317,6 +415,17 @@ int ipa_wdi_disconn_pipes(void);
 */
int ipa_wdi_enable_pipes(void);

/**
 * ipa_wdi_enable_pipes_per_inst() - Client should call this
 *		function to enable IPA offload data path
 *
 * @hdl: hdl to wdi client
 * Note: Should not be called from atomic context
 *
 * Returns: 0 on success, negative on failure
 */
int ipa_wdi_enable_pipes_per_inst(ipa_wdi_hdl_t hdl);

/**
 * ipa_wdi_disable_pipes() - Client should call this
 *		function to disable IPA offload data path
@@ -327,6 +436,17 @@ int ipa_wdi_enable_pipes(void);
 */
int ipa_wdi_disable_pipes(void);

/**
 * ipa_wdi_disable_pipes_per_inst() - Client should call this
 *		function to disable IPA offload data path
 *
 * @hdl: hdl to wdi client
 * Note: Should not be called from atomic context
 *
 * Returns: 0 on success, negative on failure
 */
int ipa_wdi_disable_pipes_per_inst(ipa_wdi_hdl_t hdl);

/**
 * ipa_wdi_set_perf_profile() - Client should call this function to
 *		set IPA clock bandwidth based on data rates
@@ -337,6 +457,18 @@ int ipa_wdi_disable_pipes(void);
 */
int ipa_wdi_set_perf_profile(struct ipa_wdi_perf_profile *profile);

/**
 * ipa_wdi_set_perf_profile_per_inst() - Client should call this function to
 *		set IPA clock bandwidth based on data rates
 *
 * @hdl: hdl to wdi client
 * @profile: [in] BandWidth profile to use
 *
 * Returns: 0 on success, negative on failure
 */
int ipa_wdi_set_perf_profile_per_inst(ipa_wdi_hdl_t hdl,
	struct ipa_wdi_perf_profile *profile);

/**
 * ipa_wdi_create_smmu_mapping() - Create smmu mapping
 *
@@ -347,6 +479,17 @@ int ipa_wdi_set_perf_profile(struct ipa_wdi_perf_profile *profile);
int ipa_wdi_create_smmu_mapping(u32 num_buffers,
	struct ipa_wdi_buffer_info *info);

/**
 * ipa_wdi_create_smmu_mapping_per_inst() - Create smmu mapping
 *
 * @hdl: hdl to wdi client
 * @num_buffers: number of buffers
 * @info: wdi buffer info
 */
int ipa_wdi_create_smmu_mapping_per_inst(ipa_wdi_hdl_t hdl,
	u32 num_buffers,
	struct ipa_wdi_buffer_info *info);

/**
 * ipa_wdi_release_smmu_mapping() - Release smmu mapping
 *
@@ -357,6 +500,18 @@ int ipa_wdi_create_smmu_mapping(u32 num_buffers,
int ipa_wdi_release_smmu_mapping(u32 num_buffers,
	struct ipa_wdi_buffer_info *info);

/**
 * ipa_wdi_release_smmu_mapping_per_inst() - Release smmu mapping
 *
 * @hdl: hdl to wdi client
 * @num_buffers: number of buffers
 *
 * @info: wdi buffer info
 */
int ipa_wdi_release_smmu_mapping_per_inst(ipa_wdi_hdl_t hdl,
	u32 num_buffers,
	struct ipa_wdi_buffer_info *info);

/**
 * ipa_wdi_get_stats() - Query WDI statistics
 * @stats:	[inout] stats blob from client populated by driver
@@ -394,12 +549,34 @@ int ipa_get_wdi_version(void);

#else /* IS_ENABLED(CONFIG_IPA3) */

/**
 * ipa_wdi_get_capabilities - Client should call this function to
 * know the WDI capabilities
 *
 * Note: Should not be called from atomic context and only
 * after checking IPA readiness using ipa_register_ipa_ready_cb()
 *
 * @Return 0 on success, negative on failure
 */
int ipa_wdi_get_capabilities(
	struct ipa_wdi_capabilities_out_params *out)
{
	return -EPERM;
}

static inline int ipa_wdi_init(struct ipa_wdi_init_in_params *in,
	struct ipa_wdi_init_out_params *out)
{
	return -EPERM;
}

static inline int ipa_wdi_init_per_inst(
	struct ipa_wdi_init_in_params *in,
	struct ipa_wdi_init_out_params *out)
{
	return -EPERM;
}

static inline int ipa_get_wdi_version(void)
{
	return -EPERM;
@@ -415,56 +592,119 @@ static inline int ipa_wdi_cleanup(void)
	return -EPERM;
}

static inline int ipa_wdi_cleanup_per_inst(ipa_wdi_hdl_t hdl)
{
	return -EPERM;
}

static inline int ipa_wdi_reg_intf(
	struct ipa_wdi_reg_intf_in_params *in)
{
	return -EPERM;
}

static inline int ipa_wdi_reg_intf_per_inst(
	struct ipa_wdi_reg_intf_in_params *in)
{
	return -EPERM;
}

static inline int ipa_wdi_dereg_intf(const char *netdev_name)
{
	return -EPERM;
}

static inline int ipa_wdi_dereg_intf_per_inst(const char *netdev_name,
	ipa_wdi_hdl_t hdl)
{
	return -EPERM;
}

static inline int ipa_wdi_conn_pipes(struct ipa_wdi_conn_in_params *in,
	struct ipa_wdi_conn_out_params *out)
{
	return -EPERM;
}

static inline int ipa_wdi_conn_pipes_per_inst(
	struct ipa_wdi_conn_in_params *in,
	struct ipa_wdi_conn_out_params *out)
{
	return -EPERM;
}

static inline int ipa_wdi_disconn_pipes(void)
{
	return -EPERM;
}

static inline int ipa_wdi_disconn_pipes_per_inst(ipa_wdi_hdl_t hdl)
{
	return -EPERM;
}


static inline int ipa_wdi_enable_pipes(void)
{
	return -EPERM;
}

static inline int ipa_wdi_enable_pipes_per_inst(ipa_wdi_hdl_t hdl)
{
	return -EPERM;
}

static inline int ipa_wdi_disable_pipes(void)
{
	return -EPERM;
}

static inline int ipa_wdi_disable_pipes_per_inst(ipa_wdi_hdl_t hdl)
{
	return -EPERM;
}

static inline int ipa_wdi_set_perf_profile(
	struct ipa_wdi_perf_profile *profile)
{
	return -EPERM;
}

static inline int ipa_wdi_set_perf_profile_per_inst(
	ipa_wdi_hdl_t hdl,
	struct ipa_wdi_perf_profile *profile)
{
	return -EPERM;
}

static inline int ipa_wdi_create_smmu_mapping(u32 num_buffers,
	struct ipa_wdi_buffer_info *info)
{
	return -EPERM;
}

static inline int ipa_wdi_create_smmu_mapping_per_inst(
	ipa_wdi_hdl_t hdl,
	u32 num_buffers,
	struct ipa_wdi_buffer_info *info)
{
	return -EPERM;
}

static inline int ipa_wdi_release_smmu_mapping(u32 num_buffers,
	struct ipa_wdi_buffer_info *info)
{
	return -EPERM;
}

static inline int ipa_wdi_release_smmu_mapping_per_inst(
	ipa_wdi_hdl_t hdl,
	u32 num_buffers,
	struct ipa_wdi_buffer_info *info)
{
	return -EPERM;
}

static inline int ipa_wdi_get_stats(struct IpaHwStatsWDIInfoData_t *stats)
{
	return -EPERM;