mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 07:37:31 -04:00
Merge c6ba8c1111 on remote branch
Change-Id: I60b460e03ba805dcc9696269a6098b4048fd9463
This commit is contained in:
commit
08beb6a63b
7 changed files with 47 additions and 13 deletions
|
|
@ -6025,6 +6025,13 @@ static int ipa3_panic_notifier(struct notifier_block *this,
|
|||
int res;
|
||||
struct ipa_active_client_logging_info log_info;
|
||||
|
||||
if (ipa3_ctx != NULL)
|
||||
{
|
||||
if (ipa3_ctx->is_device_crashed)
|
||||
return NOTIFY_DONE;
|
||||
ipa3_ctx->is_device_crashed = true;
|
||||
}
|
||||
|
||||
ipa3_freeze_clock_vote_and_notify_modem();
|
||||
|
||||
IPADBG("Calling uC panic handler\n");
|
||||
|
|
@ -7126,6 +7133,7 @@ static int ipa3_pre_init(const struct ipa3_plat_drv_res *resource_p,
|
|||
ipa3_ctx->gsi_ch20_wa = resource_p->gsi_ch20_wa;
|
||||
ipa3_ctx->wdi_over_pcie = resource_p->wdi_over_pcie;
|
||||
ipa3_ctx->ipa3_active_clients_logging.log_rdy = false;
|
||||
ipa3_ctx->is_device_crashed = false;
|
||||
ipa3_ctx->mhi_evid_limits[0] = resource_p->mhi_evid_limits[0];
|
||||
ipa3_ctx->mhi_evid_limits[1] = resource_p->mhi_evid_limits[1];
|
||||
ipa3_ctx->entire_ipa_block_size = resource_p->entire_ipa_block_size;
|
||||
|
|
|
|||
|
|
@ -1078,7 +1078,7 @@ static int __ipa_del_flt_rule(u32 rule_hdl)
|
|||
|
||||
list_del(&entry->link);
|
||||
entry->tbl->rule_cnt--;
|
||||
if (entry->rt_tbl)
|
||||
if (entry->rt_tbl && !ipa3_check_idr_if_freed(entry->rt_tbl))
|
||||
entry->rt_tbl->ref_cnt--;
|
||||
IPADBG("del flt rule rule_cnt=%d rule_id=%d\n",
|
||||
entry->tbl->rule_cnt, entry->rule_id);
|
||||
|
|
|
|||
|
|
@ -1533,6 +1533,9 @@ int ipa_drop_stats_init(void)
|
|||
/* Always enable drop stats for USB DPL Pipe. */
|
||||
pipe_bitmask |= IPA_CLIENT_BIT_32(IPA_CLIENT_USB_DPL_CONS);
|
||||
|
||||
/* Always enable drop stats for ODL DPL Pipe. */
|
||||
pipe_bitmask |= IPA_CLIENT_BIT_32(IPA_CLIENT_ODL_DPL_CONS);
|
||||
|
||||
/* Currently we have option to enable drop stats using debugfs.
|
||||
* To enable drop stats for a different pipe, first user needs
|
||||
* to query drop stats to get the current stats and enable.
|
||||
|
|
|
|||
|
|
@ -2154,6 +2154,7 @@ struct ipa3_context {
|
|||
bool is_bw_monitor_supported;
|
||||
bool modem_load_ipa_fw;
|
||||
bool fnr_stats_not_supported;
|
||||
bool is_device_crashed;
|
||||
};
|
||||
|
||||
struct ipa3_plat_drv_res {
|
||||
|
|
|
|||
|
|
@ -893,7 +893,10 @@ int ipa3_qmi_add_offload_request_send(
|
|||
}
|
||||
|
||||
/* check if the filter rules from IPACM is valid */
|
||||
if (req->filter_spec_ex2_list_len == 0) {
|
||||
if (req->filter_spec_ex2_list_len < 0) {
|
||||
IPAWANERR("IPACM pass invalid num of rules\n");
|
||||
return -EINVAL;
|
||||
} else if (req->filter_spec_ex2_list_len == 0) {
|
||||
IPAWANDBG("IPACM pass zero rules to Q6\n");
|
||||
} else {
|
||||
IPAWANDBG("IPACM pass %u rules to Q6\n",
|
||||
|
|
@ -901,9 +904,10 @@ int ipa3_qmi_add_offload_request_send(
|
|||
}
|
||||
|
||||
/* currently set total max to 64 */
|
||||
if (req->filter_spec_ex2_list_len +
|
||||
ipa3_qmi_ctx->num_ipa_offload_connection
|
||||
>= QMI_IPA_MAX_FILTERS_V01) {
|
||||
if ((ipa3_qmi_ctx->num_ipa_offload_connection < 0) ||
|
||||
(req->filter_spec_ex2_list_len >=
|
||||
(QMI_IPA_MAX_FILTERS_V01 -
|
||||
ipa3_qmi_ctx->num_ipa_offload_connection))) {
|
||||
IPAWANDBG(
|
||||
"cur(%d), req(%d), exceed limit (%d)\n",
|
||||
ipa3_qmi_ctx->num_ipa_offload_connection,
|
||||
|
|
|
|||
|
|
@ -8784,6 +8784,8 @@ void ipa3_force_close_coal(void)
|
|||
int ipa3_suspend_apps_pipes(bool suspend)
|
||||
{
|
||||
int res;
|
||||
struct ipa_ep_cfg_holb holb_cfg;
|
||||
int odl_ep_idx;
|
||||
|
||||
/* As per HPG first need start/stop coalescing channel
|
||||
* then default one. Coalescing client number was greater then
|
||||
|
|
@ -8805,6 +8807,24 @@ int ipa3_suspend_apps_pipes(bool suspend)
|
|||
if (res == -EAGAIN)
|
||||
goto undo_odl_cons;
|
||||
|
||||
odl_ep_idx = ipa3_get_ep_mapping(IPA_CLIENT_ODL_DPL_CONS);
|
||||
if (odl_ep_idx != IPA_EP_NOT_ALLOCATED && ipa3_ctx->ep[odl_ep_idx].valid) {
|
||||
memset(&holb_cfg, 0, sizeof(holb_cfg));
|
||||
if (suspend)
|
||||
holb_cfg.en = 0;
|
||||
else
|
||||
holb_cfg.en = 1;
|
||||
|
||||
ipahal_write_reg_n_fields(IPA_ENDP_INIT_HOL_BLOCK_EN_n,
|
||||
odl_ep_idx, &holb_cfg);
|
||||
/* IPA4.5 issue requires HOLB_EN to be written twice */
|
||||
if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_5 && holb_cfg.en)
|
||||
ipahal_write_reg_n_fields(
|
||||
IPA_ENDP_INIT_HOL_BLOCK_EN_n,
|
||||
odl_ep_idx, &holb_cfg);
|
||||
|
||||
}
|
||||
|
||||
res = _ipa_suspend_resume_pipe(IPA_CLIENT_APPS_WAN_LOW_LAT_CONS,
|
||||
suspend);
|
||||
if (res == -EAGAIN)
|
||||
|
|
|
|||
|
|
@ -2237,16 +2237,14 @@ static int rmnet_ipa_send_coalesce_notification(uint8_t qmap_id,
|
|||
if (!coalesce_info)
|
||||
return -ENOMEM;
|
||||
|
||||
if (enable) {
|
||||
coalesce_info->qmap_id = qmap_id;
|
||||
coalesce_info->tcp_enable = tcp;
|
||||
coalesce_info->udp_enable = udp;
|
||||
coalesce_info->qmap_id = qmap_id;
|
||||
coalesce_info->tcp_enable = tcp;
|
||||
coalesce_info->udp_enable = udp;
|
||||
msg_meta.msg_len = sizeof(struct ipa_coalesce_info);
|
||||
if (enable)
|
||||
msg_meta.msg_type = IPA_COALESCE_ENABLE;
|
||||
msg_meta.msg_len = sizeof(struct ipa_coalesce_info);
|
||||
} else {
|
||||
else
|
||||
msg_meta.msg_type = IPA_COALESCE_DISABLE;
|
||||
msg_meta.msg_len = sizeof(struct ipa_coalesce_info);
|
||||
}
|
||||
rc = ipa_send_msg(&msg_meta, coalesce_info, ipa3_wwan_msg_free_cb);
|
||||
if (rc) {
|
||||
IPAWANERR("ipa_send_msg failed: %d\n", rc);
|
||||
|
|
|
|||
Loading…
Reference in a new issue