diff --git a/drivers/platform/tegra/dce/dce-fsm.c b/drivers/platform/tegra/dce/dce-fsm.c index 0e924c92..bcc2105f 100644 --- a/drivers/platform/tegra/dce/dce-fsm.c +++ b/drivers/platform/tegra/dce/dce-fsm.c @@ -490,13 +490,16 @@ void dce_fsm_stop(struct tegra_dce *d) } /** - * dce_fsm_init - Init the FSM + * dce_fsm_init_unlocked - Init the FSM * * @d : Pointer to tegra_dce struct. * * Return : 0 if successful else error code. + * + * Note: This function is not thread safe and should be called only once + * during initialization. */ -int dce_fsm_init(struct tegra_dce *d) +int dce_fsm_init_unlocked(struct tegra_dce *d) { int ret = 0; struct dce_fsm_info *fsm = &d->fsm_info; @@ -515,13 +518,16 @@ int dce_fsm_init(struct tegra_dce *d) } /** - * dce_fsm_deinit - DeInit the FSM + * dce_fsm_deinit_unlocked - DeInit the FSM * * @d : Pointer to tegra_dce struct. * * Return : void + * + * Note: This function is not thread safe and should be called only once + * during de-initialization. */ -void dce_fsm_deinit(struct tegra_dce *d) +void dce_fsm_deinit_unlocked(struct tegra_dce *d) { struct dce_fsm_info *fsm = &d->fsm_info; diff --git a/drivers/platform/tegra/dce/dce-init-deinit.c b/drivers/platform/tegra/dce/dce-init-deinit.c index f5da2cef..60a02be6 100644 --- a/drivers/platform/tegra/dce/dce-init-deinit.c +++ b/drivers/platform/tegra/dce/dce-init-deinit.c @@ -77,7 +77,7 @@ int dce_driver_init(struct tegra_dce *d) goto err_sw_init; } - ret = dce_fsm_init(d); + ret = dce_fsm_init_unlocked(d); if (ret) { dce_os_err(d, "dce FSM init failed"); goto err_fsm_init; @@ -113,7 +113,7 @@ void dce_driver_deinit(struct tegra_dce *d) { /* TODO : Reset DCE ? */ - dce_fsm_deinit(d); + dce_fsm_deinit_unlocked(d); dce_os_work_cond_sw_resource_deinit(d); diff --git a/drivers/platform/tegra/dce/include/dce-fsm.h b/drivers/platform/tegra/dce/include/dce-fsm.h index cfd2aadb..198110bd 100644 --- a/drivers/platform/tegra/dce/include/dce-fsm.h +++ b/drivers/platform/tegra/dce/include/dce-fsm.h @@ -83,10 +83,10 @@ struct dce_admin_send_msg_params { struct dce_ipc_message *msg; }; -int dce_fsm_init(struct tegra_dce *d); +int dce_fsm_init_unlocked(struct tegra_dce *d); void dce_fsm_start(struct tegra_dce *d); void dce_fsm_stop(struct tegra_dce *d); -void dce_fsm_deinit(struct tegra_dce *d); +void dce_fsm_deinit_unlocked(struct tegra_dce *d); int dce_fsm_post_event(struct tegra_dce *d, enum dce_fsm_event_id_type event, void *data);