Loading drivers/soc/qcom/peripheral-loader.c +2 −1 Original line number Diff line number Diff line Loading @@ -920,6 +920,7 @@ out: &desc->attrs); priv->region = NULL; } if (desc->clear_fw_region && priv->region_start) pil_clear_segment(desc); pil_release_mmap(desc); } Loading drivers/soc/qcom/peripheral-loader.h +3 −1 Original line number Diff line number Diff line /* Copyright (c) 2010-2016, The Linux Foundation. All rights reserved. /* Copyright (c) 2010-2017, 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 Loading Loading @@ -37,6 +37,7 @@ struct pil_priv; * This defaults to iounmap if not specified. * @shutdown_fail: Set if PIL op for shutting down subsystem fails. * @modem_ssr: true if modem is restarting, false if booting for first time. * @clear_fw_region: Clear fw region on failure in loading. * @subsys_vmid: memprot id for the subsystem. */ struct pil_desc { Loading @@ -56,6 +57,7 @@ struct pil_desc { void *map_data; bool shutdown_fail; bool modem_ssr; bool clear_fw_region; u32 subsys_vmid; }; Loading drivers/soc/qcom/pil-q6v5.c +2 −1 Original line number Diff line number Diff line /* * Copyright (c) 2012-2016, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2017, 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 Loading Loading @@ -588,6 +588,7 @@ struct q6v5_data *pil_q6v5_init(struct platform_device *pdev) if (ret) return ERR_PTR(ret); desc->clear_fw_region = false; desc->dev = &pdev->dev; drv->qdsp6v5_2_0 = of_device_is_compatible(pdev->dev.of_node, Loading drivers/soc/qcom/service-notifier.c +1 −1 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ struct ind_req_resp { */ struct qmi_client_info { int instance_id; int subsys_state; enum pd_subsys_state subsys_state; struct work_struct svc_arrive; struct work_struct svc_exit; struct work_struct svc_rcv_msg; Loading drivers/soc/qcom/subsys-pil-tz.c +1 −0 Original line number Diff line number Diff line Loading @@ -1034,6 +1034,7 @@ static int pil_tz_driver_probe(struct platform_device *pdev) d->desc.ops = &pil_ops_trusted; d->desc.proxy_timeout = PROXY_TIMEOUT_MS; d->desc.clear_fw_region = true; rc = of_property_read_u32(pdev->dev.of_node, "qcom,proxy-timeout-ms", &proxy_timeout); Loading Loading
drivers/soc/qcom/peripheral-loader.c +2 −1 Original line number Diff line number Diff line Loading @@ -920,6 +920,7 @@ out: &desc->attrs); priv->region = NULL; } if (desc->clear_fw_region && priv->region_start) pil_clear_segment(desc); pil_release_mmap(desc); } Loading
drivers/soc/qcom/peripheral-loader.h +3 −1 Original line number Diff line number Diff line /* Copyright (c) 2010-2016, The Linux Foundation. All rights reserved. /* Copyright (c) 2010-2017, 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 Loading Loading @@ -37,6 +37,7 @@ struct pil_priv; * This defaults to iounmap if not specified. * @shutdown_fail: Set if PIL op for shutting down subsystem fails. * @modem_ssr: true if modem is restarting, false if booting for first time. * @clear_fw_region: Clear fw region on failure in loading. * @subsys_vmid: memprot id for the subsystem. */ struct pil_desc { Loading @@ -56,6 +57,7 @@ struct pil_desc { void *map_data; bool shutdown_fail; bool modem_ssr; bool clear_fw_region; u32 subsys_vmid; }; Loading
drivers/soc/qcom/pil-q6v5.c +2 −1 Original line number Diff line number Diff line /* * Copyright (c) 2012-2016, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2017, 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 Loading Loading @@ -588,6 +588,7 @@ struct q6v5_data *pil_q6v5_init(struct platform_device *pdev) if (ret) return ERR_PTR(ret); desc->clear_fw_region = false; desc->dev = &pdev->dev; drv->qdsp6v5_2_0 = of_device_is_compatible(pdev->dev.of_node, Loading
drivers/soc/qcom/service-notifier.c +1 −1 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ struct ind_req_resp { */ struct qmi_client_info { int instance_id; int subsys_state; enum pd_subsys_state subsys_state; struct work_struct svc_arrive; struct work_struct svc_exit; struct work_struct svc_rcv_msg; Loading
drivers/soc/qcom/subsys-pil-tz.c +1 −0 Original line number Diff line number Diff line Loading @@ -1034,6 +1034,7 @@ static int pil_tz_driver_probe(struct platform_device *pdev) d->desc.ops = &pil_ops_trusted; d->desc.proxy_timeout = PROXY_TIMEOUT_MS; d->desc.clear_fw_region = true; rc = of_property_read_u32(pdev->dev.of_node, "qcom,proxy-timeout-ms", &proxy_timeout); Loading