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

Commit 24b295ae authored by Kyle Yan's avatar Kyle Yan Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: ipa3: support AP+STA IPA stats" into msm-4.9

parents a7a83056 6b41f8da
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -1634,6 +1634,25 @@ u16 ipa_get_smem_restr_bytes(void)
}
EXPORT_SYMBOL(ipa_get_smem_restr_bytes);

/**
 * ipa_broadcast_wdi_quota_reach_ind() - quota reach
 * @uint32_t fid: [in] input netdev ID
 * @uint64_t num_bytes: [in] used bytes
 *
 * Returns:	0 on success, negative on failure
 */
int ipa_broadcast_wdi_quota_reach_ind(uint32_t fid,
		uint64_t num_bytes)
{
	int ret;

	IPA_API_DISPATCH_RETURN(ipa_broadcast_wdi_quota_reach_ind,
		fid, num_bytes);

	return ret;
}
EXPORT_SYMBOL(ipa_broadcast_wdi_quota_reach_ind);

/**
 * ipa_uc_wdi_get_dbpa() - To retrieve
 * doorbell physical address of wlan pipes
+3 −0
Original line number Diff line number Diff line
@@ -183,6 +183,9 @@ struct ipa_api_controller {

	u16 (*ipa_get_smem_restr_bytes)(void);

	int (*ipa_broadcast_wdi_quota_reach_ind)(uint32_t fid,
		uint64_t num_bytes);

	int (*ipa_uc_wdi_get_dbpa)(struct ipa_wdi_db_params *out);

	int (*ipa_uc_reg_rdyCB)(struct ipa_wdi_uc_ready_params *param);
+8 −0
Original line number Diff line number Diff line
@@ -937,6 +937,10 @@ struct ipa3_uc_wdi_ctx {
	struct IpaHwStatsWDIInfoData_t *wdi_uc_stats_mmio;
	void *priv;
	ipa_uc_ready_cb uc_ready_cb;
	/* for AP+STA stats update */
#ifdef IPA_WAN_MSG_IPv6_ADDR_GW_LEN
	ipa_wdi_meter_notifier_cb stats_notify;
#endif
};

/**
@@ -1611,6 +1615,7 @@ int ipa3_resume_wdi_pipe(u32 clnt_hdl);
int ipa3_suspend_wdi_pipe(u32 clnt_hdl);
int ipa3_get_wdi_stats(struct IpaHwStatsWDIInfoData_t *stats);
u16 ipa3_get_smem_restr_bytes(void);
int ipa3_broadcast_wdi_quota_reach_ind(uint32_t fid, uint64_t num_bytes);
int ipa3_setup_uc_ntn_pipes(struct ipa_ntn_conn_in_params *in,
		ipa_notify_cb notify, void *priv, u8 hdr_len,
		struct ipa_ntn_conn_out_params *outp);
@@ -1651,6 +1656,9 @@ enum ipacm_client_enum ipa3_get_client(int pipe_idx);

bool ipa3_get_client_uplink(int pipe_idx);

int ipa3_get_wlan_stats(struct ipa_get_wdi_sap_stats *wdi_sap_stats);

int ipa3_set_wlan_quota(struct ipa_set_wifi_quota *wdi_quota);
/*
 * IPADMA
 */
+2 −1
Original line number Diff line number Diff line
@@ -884,7 +884,8 @@ static void ipa3_q6_clnt_ind_cb(struct qmi_handle *handle, unsigned int msg_id,
		IPAWANDBG("Quota reached indication on qmux(%d) Mbytes(%lu)\n",
			  qmi_ind.apn.mux_id,
			  (unsigned long int) qmi_ind.apn.num_Mbytes);
		ipa3_broadcast_quota_reach_ind(qmi_ind.apn.mux_id);
		ipa3_broadcast_quota_reach_ind(qmi_ind.apn.mux_id,
			IPA_UPSTEAM_MODEM);
	}
}

+6 −2
Original line number Diff line number Diff line
@@ -181,7 +181,8 @@ int rmnet_ipa3_poll_tethering_stats(struct wan_ioctl_poll_tethering_stats

int rmnet_ipa3_set_data_quota(struct wan_ioctl_set_data_quota *data);

void ipa3_broadcast_quota_reach_ind(uint32_t mux_id);
void ipa3_broadcast_quota_reach_ind(uint32_t mux_id,
	enum ipa_upstream_type upstream_type);

int rmnet_ipa3_set_tether_client_pipe(struct wan_ioctl_set_tether_client_pipe
	*data);
@@ -189,6 +190,8 @@ int rmnet_ipa3_set_tether_client_pipe(struct wan_ioctl_set_tether_client_pipe
int rmnet_ipa3_query_tethering_stats(struct wan_ioctl_query_tether_stats *data,
	bool reset);

int rmnet_ipa3_reset_tethering_stats(struct wan_ioctl_reset_tether_stats *data);

int ipa3_qmi_get_data_stats(struct ipa_get_data_stats_req_msg_v01 *req,
	struct ipa_get_data_stats_resp_msg_v01 *resp);

@@ -283,7 +286,8 @@ static inline int rmnet_ipa3_set_data_quota(
	return -EPERM;
}

static inline void ipa3_broadcast_quota_reach_ind(uint32_t mux_id) { }
static inline void ipa3_broadcast_quota_reach_ind(uint32_t mux_id,
	enum ipa_upstream_type upstream_type) { }

static inline int ipa3_qmi_get_data_stats(
	struct ipa_get_data_stats_req_msg_v01 *req,
Loading