Loading drivers/android/binder.c +9 −12 Original line number Diff line number Diff line Loading @@ -4748,23 +4748,20 @@ static int binder_thread_release(struct binder_proc *proc, } /* * If this thread used poll, make sure we remove the waitqueue * from any epoll data structures holding it with POLLFREE. * waitqueue_active() is safe to use here because we're holding * the inner lock. * If this thread used poll, make sure we remove the waitqueue from any * poll data structures holding it. */ if ((thread->looper & BINDER_LOOPER_STATE_POLL) && waitqueue_active(&thread->wait)) { wake_up_poll(&thread->wait, EPOLLHUP | POLLFREE); } if (thread->looper & BINDER_LOOPER_STATE_POLL) wake_up_pollfree(&thread->wait); binder_inner_proc_unlock(thread->proc); /* * This is needed to avoid races between wake_up_poll() above and * and ep_remove_waitqueue() called for other reasons (eg the epoll file * descriptor being closed); ep_remove_waitqueue() holds an RCU read * lock, so we can be sure it's done after calling synchronize_rcu(). * This is needed to avoid races between wake_up_pollfree() above and * someone else removing the last entry from the queue for other reasons * (e.g. ep_remove_wait_queue() being called due to an epoll file * descriptor being closed). Such other users hold an RCU read lock, so * we can be sure they're done after we call synchronize_rcu(). */ if (thread->looper & BINDER_LOOPER_STATE_POLL) synchronize_rcu(); Loading drivers/i2c/busses/i2c-msm-v2.c +7 −7 Original line number Diff line number Diff line Loading @@ -435,13 +435,13 @@ static int i2c_msm_set_mstr_clk_ctl(struct i2c_msm_ctrl *ctrl, int fs_div, /* * find matching freq and set divider values unless they are forced * from parametr list * from parameter list */ for (i = 0; i < ARRAY_SIZE(i2c_msm_clk_div_map); ++i, ++itr) { if (ctrl->rsrcs.clk_freq_out == itr->clk_freq_out) { if (!fs_div) if (fs_div < 0) fs_div = itr->fs_div; if (!ht_div) if (ht_div < 0) ht_div = itr->ht_div; break; } Loading @@ -450,7 +450,7 @@ static int i2c_msm_set_mstr_clk_ctl(struct i2c_msm_ctrl *ctrl, int fs_div, /* For non-standard clock freq, clk divider value * fs_div should be supplied by client through device tree */ if (!fs_div) { if (fs_div < 0) { dev_err(ctrl->dev, "Missing clk divider value in DT for %dKHz\n", (ctrl->rsrcs.clk_freq_out / 1000)); return -EINVAL; Loading Loading @@ -2484,7 +2484,7 @@ static int i2c_msm_dt_to_pdata_populate(struct i2c_msm_ctrl *ctrl, static int i2c_msm_rsrcs_process_dt(struct i2c_msm_ctrl *ctrl, struct platform_device *pdev) { u32 fs_clk_div, ht_clk_div, noise_rjct_scl, noise_rjct_sda; int fs_clk_div, ht_clk_div, noise_rjct_scl, noise_rjct_sda; int ret; struct i2c_msm_dt_to_pdata_map map[] = { Loading @@ -2502,9 +2502,9 @@ static int i2c_msm_rsrcs_process_dt(struct i2c_msm_ctrl *ctrl, {"qcom,noise-rjct-sda", &noise_rjct_sda, DT_OPT, DT_U32, 0}, {"qcom,high-time-clk-div", &ht_clk_div, DT_OPT, DT_U32, 0}, DT_OPT, DT_U32, -1}, {"qcom,fs-clk-div", &fs_clk_div, DT_OPT, DT_U32, 0}, DT_OPT, DT_U32, -1}, {NULL, NULL, 0, 0, 0}, }; Loading drivers/media/platform/msm/npu/npu_mgr.c +7 −0 Original line number Diff line number Diff line Loading @@ -1845,6 +1845,13 @@ static int app_msg_proc(struct npu_host_ctx *host_ctx, uint32_t *msg) break; } if (prop_rsp_pkt->header.size < sizeof(struct ipc_msg_header_pkt)) { NPU_ERR("Invalid rsp pkt size %d\n", prop_rsp_pkt->header.size); break; } misc_cmd->ret_status = prop_rsp_pkt->header.status; if (prop_rsp_pkt->num_params > 0) { Loading drivers/net/wireless/cnss2/qmi.c +5 −0 Original line number Diff line number Diff line Loading @@ -2227,6 +2227,11 @@ int cnss_wlfw_server_arrive(struct cnss_plat_data *plat_priv, void *data) return -EINVAL; } if (test_bit(CNSS_IN_REBOOT, &plat_priv->driver_state)) { cnss_pr_err("WLFW server will exit on shutdown\n"); return -EINVAL; } cnss_ignore_qmi_failure(false); ret = cnss_wlfw_connect_to_server(plat_priv, data); Loading drivers/soc/qcom/icnss.c +19 −0 Original line number Diff line number Diff line Loading @@ -654,6 +654,15 @@ bool icnss_is_fw_ready(void) } EXPORT_SYMBOL(icnss_is_fw_ready); unsigned long icnss_get_device_config(void) { if (!penv) return 0; return penv->device_config; } EXPORT_SYMBOL(icnss_get_device_config); void icnss_block_shutdown(bool status) { if (!penv) Loading Loading @@ -3804,6 +3813,14 @@ static int icnss_smmu_dt_parse(struct icnss_priv *priv) return 0; } static void icnss_read_device_configs(struct icnss_priv *priv) { if (of_property_read_bool(priv->pdev->dev.of_node, "wlan-ipa-disabled")) { set_bit(ICNSS_IPA_DISABLED, &priv->device_config); } } static int icnss_probe(struct platform_device *pdev) { int ret = 0; Loading Loading @@ -3831,6 +3848,8 @@ static int icnss_probe(struct platform_device *pdev) icnss_allow_recursive_recovery(dev); icnss_read_device_configs(priv); ret = icnss_resource_parse(priv); if (ret) goto out; Loading Loading
drivers/android/binder.c +9 −12 Original line number Diff line number Diff line Loading @@ -4748,23 +4748,20 @@ static int binder_thread_release(struct binder_proc *proc, } /* * If this thread used poll, make sure we remove the waitqueue * from any epoll data structures holding it with POLLFREE. * waitqueue_active() is safe to use here because we're holding * the inner lock. * If this thread used poll, make sure we remove the waitqueue from any * poll data structures holding it. */ if ((thread->looper & BINDER_LOOPER_STATE_POLL) && waitqueue_active(&thread->wait)) { wake_up_poll(&thread->wait, EPOLLHUP | POLLFREE); } if (thread->looper & BINDER_LOOPER_STATE_POLL) wake_up_pollfree(&thread->wait); binder_inner_proc_unlock(thread->proc); /* * This is needed to avoid races between wake_up_poll() above and * and ep_remove_waitqueue() called for other reasons (eg the epoll file * descriptor being closed); ep_remove_waitqueue() holds an RCU read * lock, so we can be sure it's done after calling synchronize_rcu(). * This is needed to avoid races between wake_up_pollfree() above and * someone else removing the last entry from the queue for other reasons * (e.g. ep_remove_wait_queue() being called due to an epoll file * descriptor being closed). Such other users hold an RCU read lock, so * we can be sure they're done after we call synchronize_rcu(). */ if (thread->looper & BINDER_LOOPER_STATE_POLL) synchronize_rcu(); Loading
drivers/i2c/busses/i2c-msm-v2.c +7 −7 Original line number Diff line number Diff line Loading @@ -435,13 +435,13 @@ static int i2c_msm_set_mstr_clk_ctl(struct i2c_msm_ctrl *ctrl, int fs_div, /* * find matching freq and set divider values unless they are forced * from parametr list * from parameter list */ for (i = 0; i < ARRAY_SIZE(i2c_msm_clk_div_map); ++i, ++itr) { if (ctrl->rsrcs.clk_freq_out == itr->clk_freq_out) { if (!fs_div) if (fs_div < 0) fs_div = itr->fs_div; if (!ht_div) if (ht_div < 0) ht_div = itr->ht_div; break; } Loading @@ -450,7 +450,7 @@ static int i2c_msm_set_mstr_clk_ctl(struct i2c_msm_ctrl *ctrl, int fs_div, /* For non-standard clock freq, clk divider value * fs_div should be supplied by client through device tree */ if (!fs_div) { if (fs_div < 0) { dev_err(ctrl->dev, "Missing clk divider value in DT for %dKHz\n", (ctrl->rsrcs.clk_freq_out / 1000)); return -EINVAL; Loading Loading @@ -2484,7 +2484,7 @@ static int i2c_msm_dt_to_pdata_populate(struct i2c_msm_ctrl *ctrl, static int i2c_msm_rsrcs_process_dt(struct i2c_msm_ctrl *ctrl, struct platform_device *pdev) { u32 fs_clk_div, ht_clk_div, noise_rjct_scl, noise_rjct_sda; int fs_clk_div, ht_clk_div, noise_rjct_scl, noise_rjct_sda; int ret; struct i2c_msm_dt_to_pdata_map map[] = { Loading @@ -2502,9 +2502,9 @@ static int i2c_msm_rsrcs_process_dt(struct i2c_msm_ctrl *ctrl, {"qcom,noise-rjct-sda", &noise_rjct_sda, DT_OPT, DT_U32, 0}, {"qcom,high-time-clk-div", &ht_clk_div, DT_OPT, DT_U32, 0}, DT_OPT, DT_U32, -1}, {"qcom,fs-clk-div", &fs_clk_div, DT_OPT, DT_U32, 0}, DT_OPT, DT_U32, -1}, {NULL, NULL, 0, 0, 0}, }; Loading
drivers/media/platform/msm/npu/npu_mgr.c +7 −0 Original line number Diff line number Diff line Loading @@ -1845,6 +1845,13 @@ static int app_msg_proc(struct npu_host_ctx *host_ctx, uint32_t *msg) break; } if (prop_rsp_pkt->header.size < sizeof(struct ipc_msg_header_pkt)) { NPU_ERR("Invalid rsp pkt size %d\n", prop_rsp_pkt->header.size); break; } misc_cmd->ret_status = prop_rsp_pkt->header.status; if (prop_rsp_pkt->num_params > 0) { Loading
drivers/net/wireless/cnss2/qmi.c +5 −0 Original line number Diff line number Diff line Loading @@ -2227,6 +2227,11 @@ int cnss_wlfw_server_arrive(struct cnss_plat_data *plat_priv, void *data) return -EINVAL; } if (test_bit(CNSS_IN_REBOOT, &plat_priv->driver_state)) { cnss_pr_err("WLFW server will exit on shutdown\n"); return -EINVAL; } cnss_ignore_qmi_failure(false); ret = cnss_wlfw_connect_to_server(plat_priv, data); Loading
drivers/soc/qcom/icnss.c +19 −0 Original line number Diff line number Diff line Loading @@ -654,6 +654,15 @@ bool icnss_is_fw_ready(void) } EXPORT_SYMBOL(icnss_is_fw_ready); unsigned long icnss_get_device_config(void) { if (!penv) return 0; return penv->device_config; } EXPORT_SYMBOL(icnss_get_device_config); void icnss_block_shutdown(bool status) { if (!penv) Loading Loading @@ -3804,6 +3813,14 @@ static int icnss_smmu_dt_parse(struct icnss_priv *priv) return 0; } static void icnss_read_device_configs(struct icnss_priv *priv) { if (of_property_read_bool(priv->pdev->dev.of_node, "wlan-ipa-disabled")) { set_bit(ICNSS_IPA_DISABLED, &priv->device_config); } } static int icnss_probe(struct platform_device *pdev) { int ret = 0; Loading Loading @@ -3831,6 +3848,8 @@ static int icnss_probe(struct platform_device *pdev) icnss_allow_recursive_recovery(dev); icnss_read_device_configs(priv); ret = icnss_resource_parse(priv); if (ret) goto out; Loading