Loading drivers/firmware/qcom_scm.c +19 −1 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* Copyright (c) 2010,2015,2020 The Linux Foundation. All rights reserved. /* Copyright (c) 2010,2015,2020-2021 The Linux Foundation. All rights reserved. * Copyright (C) 2015 Linaro Ltd. */ #include <linux/platform_device.h> Loading Loading @@ -264,6 +264,24 @@ int qcom_scm_pas_mem_setup(u32 peripheral, phys_addr_t addr, phys_addr_t size) } EXPORT_SYMBOL(qcom_scm_pas_mem_setup); /** * qcom_scm_pas_mss_reset() - MSS restart */ int qcom_scm_pas_mss_reset(bool reset) { int ret; ret = qcom_scm_clk_enable(); if (ret) return ret; ret = __qcom_scm_pas_mss_reset(__scm->dev, reset); qcom_scm_clk_disable(); return ret; } EXPORT_SYMBOL(qcom_scm_pas_mss_reset); /** * qcom_scm_pas_auth_and_reset() - Authenticate the given peripheral firmware * and reset the remote processor Loading include/linux/qcom_scm.h +3 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* Copyright (c) 2010-2015, 2018-2020 The Linux Foundation. All rights reserved. /* Copyright (c) 2010-2015, 2018-2021 The Linux Foundation. All rights reserved. * Copyright (C) 2015 Linaro Ltd. */ #ifndef __QCOM_SCM_H Loading Loading @@ -95,6 +95,7 @@ extern int qcom_scm_pas_init_image(u32 peripheral, const void *metadata, size_t size); extern int qcom_scm_pas_mem_setup(u32 peripheral, phys_addr_t addr, phys_addr_t size); extern int qcom_scm_pas_mss_reset(bool reset); extern int qcom_scm_pas_auth_and_reset(u32 peripheral); extern int qcom_scm_pas_shutdown(u32 peripheral); extern int qcom_scm_get_sec_dump_state(u32 *dump_state); Loading Loading @@ -223,6 +224,7 @@ static inline int qcom_scm_pas_init_image(u32 peripheral, const void *metadata, size_t size) { return -ENODEV; } static inline int qcom_scm_pas_mem_setup(u32 peripheral, phys_addr_t addr, phys_addr_t size) { return -ENODEV; } static inline int qcom_scm_pas_mss_reset(bool reset) { return -ENODEV; } static inline int qcom_scm_pas_auth_and_reset(u32 peripheral) { return -ENODEV; } static inline int qcom_scm_pas_shutdown(u32 peripheral) { return -ENODEV; } Loading Loading
drivers/firmware/qcom_scm.c +19 −1 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* Copyright (c) 2010,2015,2020 The Linux Foundation. All rights reserved. /* Copyright (c) 2010,2015,2020-2021 The Linux Foundation. All rights reserved. * Copyright (C) 2015 Linaro Ltd. */ #include <linux/platform_device.h> Loading Loading @@ -264,6 +264,24 @@ int qcom_scm_pas_mem_setup(u32 peripheral, phys_addr_t addr, phys_addr_t size) } EXPORT_SYMBOL(qcom_scm_pas_mem_setup); /** * qcom_scm_pas_mss_reset() - MSS restart */ int qcom_scm_pas_mss_reset(bool reset) { int ret; ret = qcom_scm_clk_enable(); if (ret) return ret; ret = __qcom_scm_pas_mss_reset(__scm->dev, reset); qcom_scm_clk_disable(); return ret; } EXPORT_SYMBOL(qcom_scm_pas_mss_reset); /** * qcom_scm_pas_auth_and_reset() - Authenticate the given peripheral firmware * and reset the remote processor Loading
include/linux/qcom_scm.h +3 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* Copyright (c) 2010-2015, 2018-2020 The Linux Foundation. All rights reserved. /* Copyright (c) 2010-2015, 2018-2021 The Linux Foundation. All rights reserved. * Copyright (C) 2015 Linaro Ltd. */ #ifndef __QCOM_SCM_H Loading Loading @@ -95,6 +95,7 @@ extern int qcom_scm_pas_init_image(u32 peripheral, const void *metadata, size_t size); extern int qcom_scm_pas_mem_setup(u32 peripheral, phys_addr_t addr, phys_addr_t size); extern int qcom_scm_pas_mss_reset(bool reset); extern int qcom_scm_pas_auth_and_reset(u32 peripheral); extern int qcom_scm_pas_shutdown(u32 peripheral); extern int qcom_scm_get_sec_dump_state(u32 *dump_state); Loading Loading @@ -223,6 +224,7 @@ static inline int qcom_scm_pas_init_image(u32 peripheral, const void *metadata, size_t size) { return -ENODEV; } static inline int qcom_scm_pas_mem_setup(u32 peripheral, phys_addr_t addr, phys_addr_t size) { return -ENODEV; } static inline int qcom_scm_pas_mss_reset(bool reset) { return -ENODEV; } static inline int qcom_scm_pas_auth_and_reset(u32 peripheral) { return -ENODEV; } static inline int qcom_scm_pas_shutdown(u32 peripheral) { return -ENODEV; } Loading