Skip to content
This repository has been archived by the owner on Dec 28, 2020. It is now read-only.

Commit

Permalink
Merge tag 'LA.UM.7.3.r1-07400-sdm845.0' into neutrino-msm-fajita-4.9
Browse files Browse the repository at this point in the history
"LA.UM.7.3.r1-07400-sdm845.0"

* tag 'LA.UM.7.3.r1-07400-sdm845.0':
  qseecom: fix a blocked listener request issue
  qseecom: Move qseecom_ioctl from inline to normal function
  ARM: dts: msm: Add new property to LPASS IPC router node for SDM670
  fbdev: msm: check for panel status before waiting for pp done
  msm: kgsl: Replace scm call api with its atomic version

Signed-off-by: Adam W. Willis <return.of.octobot@gmail.com>

Conflicts:
	arch/arm64/boot/dts/qcom/sdm845-audio.dtsi
	drivers/gpu/drm/msm/sde/sde_connector.c
	drivers/media/platform/msm/camera/cam_cdm/cam_cdm_intf.c
	drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c
	drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_core.c
	drivers/media/platform/msm/camera/cam_sensor_module/cam_csiphy/cam_csiphy_core.c
	drivers/media/platform/msm/camera/cam_sensor_module/cam_flash/cam_flash_core.c
	drivers/media/platform/msm/camera_v3/cam_cdm/cam_cdm_virtual_core.c
	drivers/media/platform/msm/camera_v3/cam_icp/icp_hw/icp_hw_mgr/cam_icp_hw_mgr.c
	drivers/media/platform/msm/camera_v3/cam_isp/cam_isp_context.c
	drivers/media/platform/msm/camera_v3/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe170.h
	drivers/media/platform/msm/camera_v3/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe175.h
	drivers/media/platform/msm/camera_v3/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe175_130.h
	drivers/media/platform/msm/camera_v3/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_rd_ver1.c
	drivers/media/platform/msm/camera_v3/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver2.c
	drivers/media/platform/msm/camera_v3/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver2.h
	drivers/media/platform/msm/camera_v3/cam_req_mgr/cam_req_mgr_core.c
	drivers/media/platform/msm/camera_v3/cam_utils/cam_packet_util.c
	drivers/misc/qseecom.c
	drivers/net/ppp/pppolac.c
	scripts/gcc-wrapper.py
  • Loading branch information
0ctobot committed May 3, 2019
2 parents a605968 + e47a761 commit 2c1b2ab
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 21 deletions.
1 change: 1 addition & 0 deletions arch/arm64/boot/dts/qcom/sdm670.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -1616,6 +1616,7 @@
qcom,xprt-linkid = <1>;
qcom,xprt-version = <1>;
qcom,fragmented-data;
qcom,dynamic-wakeup-source;
};

qcom,ipc_router_cdsp_xprt {
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/msm/adreno_a5xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -2245,7 +2245,7 @@ static int a5xx_microcode_load(struct adreno_device *adreno_dev)
desc.args[1] = 13;
desc.arginfo = SCM_ARGS(2);

ret = scm_call2(SCM_SIP_FNID(SCM_SVC_BOOT, 0xA), &desc);
ret = scm_call2_atomic(SCM_SIP_FNID(SCM_SVC_BOOT, 0xA), &desc);
if (ret) {
pr_err("SCM resume call failed with error %d\n", ret);
return ret;
Expand Down
46 changes: 28 additions & 18 deletions drivers/misc/qseecom.c
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,7 @@ struct qseecom_client_handle {
char app_name[MAX_APP_NAME_SIZE];
u32 app_arch;
struct qseecom_sec_buf_fd_info sec_buf_fd[MAX_ION_FD];
bool from_smcinvoke;
};

struct qseecom_listener_handle {
Expand Down Expand Up @@ -1972,6 +1973,7 @@ static int __qseecom_process_reentrancy_blocked_on_listener(
sigset_t old_sigset;
unsigned long flags;
bool found_app = false;
struct qseecom_registered_app_list dummy_app_entry = { {NULL} };

if (!resp || !data) {
pr_err("invalid resp or data pointer\n");
Expand All @@ -1980,25 +1982,32 @@ static int __qseecom_process_reentrancy_blocked_on_listener(
}

/* find app_id & img_name from list */
if (!ptr_app && data->client.app_arch != ELFCLASSNONE) {
spin_lock_irqsave(&qseecom.registered_app_list_lock, flags);
list_for_each_entry(ptr_app, &qseecom.registered_app_list_head,
list) {
if ((ptr_app->app_id == data->client.app_id) &&
(!strcmp(ptr_app->app_name,
if (!ptr_app) {
if (data->client.from_smcinvoke) {
pr_debug("This request is from smcinvoke\n");
ptr_app = &dummy_app_entry;
ptr_app->app_id = data->client.app_id;
} else {
spin_lock_irqsave(&qseecom.registered_app_list_lock,
flags);
list_for_each_entry(ptr_app,
&qseecom.registered_app_list_head, list) {
if ((ptr_app->app_id == data->client.app_id) &&
(!strcmp(ptr_app->app_name,
data->client.app_name))) {
found_app = true;
break;
found_app = true;
break;
}
}
spin_unlock_irqrestore(
&qseecom.registered_app_list_lock, flags);
if (!found_app) {
pr_err("app_id %d (%s) is not found\n",
data->client.app_id,
(char *)data->client.app_name);
ret = -ENOENT;
goto exit;
}
}
spin_unlock_irqrestore(&qseecom.registered_app_list_lock,
flags);
if (!found_app) {
pr_err("app_id %d (%s) is not found\n",
data->client.app_id,
(char *)data->client.app_name);
ret = -ENOENT;
goto exit;
}
}

Expand Down Expand Up @@ -4958,6 +4967,7 @@ int qseecom_process_listener_from_smcinvoke(struct scm_desc *desc)
resp.data = desc->ret[2]; /*listener_id*/

dummy_private_data.client.app_id = desc->ret[1];
dummy_private_data.client.from_smcinvoke = true;
dummy_app_entry.app_id = desc->ret[1];

mutex_lock(&app_access_lock);
Expand Down Expand Up @@ -7130,7 +7140,7 @@ static void __qseecom_clean_data_sglistinfo(struct qseecom_dev_handle *data)
}
}

static inline long qseecom_ioctl(struct file *file,
static long qseecom_ioctl(struct file *file,
unsigned int cmd, unsigned long arg)
{
int ret = 0;
Expand Down
7 changes: 5 additions & 2 deletions drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright (c) 2013-2018, The Linux Foundation. All rights reserved.
/* Copyright (c) 2013-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
Expand Down Expand Up @@ -3234,6 +3234,7 @@ int mdss_mdp_cmd_stop(struct mdss_mdp_ctl *ctl, int panel_power_state)
struct mdss_mdp_cmd_ctx *ctx = ctl->intf_ctx[MASTER_CTX];
struct mdss_mdp_cmd_ctx *sctx = NULL;
struct mdss_mdp_ctl *sctl = mdss_mdp_get_split_ctl(ctl);
struct mdss_panel_data *pdata;
bool panel_off = false;
bool turn_off_clocks = false;
bool send_panel_events = false;
Expand All @@ -3244,6 +3245,7 @@ int mdss_mdp_cmd_stop(struct mdss_mdp_ctl *ctl, int panel_power_state)
return -ENODEV;
}

pdata = ctl->panel_data;
if (__mdss_mdp_cmd_is_panel_power_off(ctx)) {
pr_debug("%s: panel already off\n", __func__);
return 0;
Expand Down Expand Up @@ -3280,7 +3282,8 @@ int mdss_mdp_cmd_stop(struct mdss_mdp_ctl *ctl, int panel_power_state)
send_panel_events = true;
if (mdss_panel_is_power_on_ulp(panel_power_state)) {
turn_off_clocks = true;
} else if (atomic_read(&ctx->koff_cnt)) {
} else if (atomic_read(&ctx->koff_cnt) &&
!pdata->panel_info.panel_dead) {
/*
* Transition from interactive to low power
* Wait for kickoffs to finish
Expand Down

0 comments on commit 2c1b2ab

Please sign in to comment.