diff --git a/drivers/platform/tegra/dce/dce-bootstrap.c b/drivers/platform/tegra/dce/dce-bootstrap.c index 897fd2af..d91210c6 100644 --- a/drivers/platform/tegra/dce/dce-bootstrap.c +++ b/drivers/platform/tegra/dce/dce-bootstrap.c @@ -100,7 +100,7 @@ int dce_handle_boot_complete_requested_event(struct tegra_dce *d, void *params) if (ret) dce_os_err(d, "failed to send DCE_BOOT_COMPLETE_RECEIVED event"); - dce_cond_wait_reset(d, DCE_WAIT_BOOT_COMPLETE); + dce_os_cond_wait_reset(d, DCE_WAIT_BOOT_COMPLETE); goto boot_done; } @@ -173,7 +173,7 @@ dce_start_boot_flow(struct tegra_dce *d) } else { d->boot_status |= DCE_FW_BOOT_DONE; dce_os_info(d, "DCE_BOOT_DONE"); - dce_cond_broadcast_interruptible(&d->dce_bootstrap_done); + dce_os_cond_broadcast_interruptible(&d->dce_bootstrap_done); } exit: diff --git a/drivers/platform/tegra/dce/dce-client-ipc.c b/drivers/platform/tegra/dce/dce-client-ipc.c index a9c7ddac..3e2314e0 100644 --- a/drivers/platform/tegra/dce/dce-client-ipc.c +++ b/drivers/platform/tegra/dce/dce-client-ipc.c @@ -151,7 +151,7 @@ int tegra_dce_register_ipc_client(u32 type, * Wait for bootstrapping to complete before client IPC registration */ #define DCE_IPC_REGISTER_BOOT_WAIT (30U * 1000) - ret = DCE_COND_WAIT_INTERRUPTIBLE_TIMEOUT(&d->dce_bootstrap_done, + ret = DCE_OS_COND_WAIT_INTERRUPTIBLE_TIMEOUT(&d->dce_bootstrap_done, dce_is_bootstrap_done(d), DCE_IPC_REGISTER_BOOT_WAIT); if (ret) { @@ -173,7 +173,7 @@ int tegra_dce_register_ipc_client(u32 type, cl->callback_fn = callback_fn; dce_os_atomic_set(&cl->complete, 0); - ret = dce_cond_init(&cl->recv_wait); + ret = dce_os_cond_init(&cl->recv_wait); if (ret) { dce_os_err(d, "dce condition initialization failed for int_type: [%u]", int_type); @@ -204,8 +204,8 @@ int tegra_dce_unregister_ipc_client(u32 handle) return -EINVAL; } - dce_cond_destroy(&cl->recv_wait); - atomic_set(&cl->complete, 0); + dce_os_cond_destroy(&cl->recv_wait); + dce_os_atomic_set(&cl->complete, 0); return dce_client_ipc_handle_free(cl); } @@ -283,7 +283,7 @@ int dce_client_ipc_wait(struct tegra_dce *d, u32 int_type) } retry_wait: - DCE_COND_WAIT_INTERRUPTIBLE(&cl->recv_wait, + DCE_OS_COND_WAIT_INTERRUPTIBLE(&cl->recv_wait, dce_os_atomic_read(&cl->complete) == 1); if (dce_os_atomic_read(&cl->complete) != 1) goto retry_wait; @@ -375,5 +375,5 @@ void dce_client_ipc_wakeup(struct tegra_dce *d, u32 ch_type) return dce_client_schedule_event_work(d); dce_os_atomic_set(&cl->complete, 1); - dce_cond_signal_interruptible(&cl->recv_wait); + dce_os_cond_signal_interruptible(&cl->recv_wait); } diff --git a/drivers/platform/tegra/dce/dce-os-utils.c b/drivers/platform/tegra/dce/dce-os-utils.c index e435bb77..1c29f797 100644 --- a/drivers/platform/tegra/dce/dce-os-utils.c +++ b/drivers/platform/tegra/dce/dce-os-utils.c @@ -371,13 +371,13 @@ void dce_os_log_msg(struct tegra_dce *d, const char *func_name, int line, } /** - * dce_cond_init - Initialize a condition variable + * dce_os_cond_init - Initialize a condition variable * * @cond - The condition variable to initialize * * Initialize a condition variable before using it. */ -int dce_cond_init(struct dce_cond *cond) +int dce_os_cond_init(struct dce_os_cond *cond) { init_waitqueue_head(&cond->wq); cond->initialized = true; @@ -386,17 +386,17 @@ int dce_cond_init(struct dce_cond *cond) } /** - * dce_cond_destroy - Destroy a condition variable + * dce_os_cond_destroy - Destroy a condition variable * * @cond - The condition variable to destroy */ -void dce_cond_destroy(struct dce_cond *cond) +void dce_os_cond_destroy(struct dce_os_cond *cond) { cond->initialized = false; } /** - * dce_cond_signal - Signal a condition variable + * dce_os_cond_signal - Signal a condition variable * * @cond - The condition variable to signal * @@ -405,7 +405,7 @@ void dce_cond_destroy(struct dce_cond *cond) * * The waiter is using an uninterruptible wait. */ -void dce_cond_signal(struct dce_cond *cond) +void dce_os_cond_signal(struct dce_os_cond *cond) { WARN_ON(!cond->initialized); @@ -413,7 +413,7 @@ void dce_cond_signal(struct dce_cond *cond) } /** - * dce_cond_signal_interruptible - Signal a condition variable + * dce_os_cond_signal_interruptible - Signal a condition variable * * @cond - The condition variable to signal * @@ -422,7 +422,7 @@ void dce_cond_signal(struct dce_cond *cond) * * The waiter is using an interruptible wait. */ -void dce_cond_signal_interruptible(struct dce_cond *cond) +void dce_os_cond_signal_interruptible(struct dce_os_cond *cond) { WARN_ON(!cond->initialized); @@ -430,7 +430,7 @@ void dce_cond_signal_interruptible(struct dce_cond *cond) } /** - * dce_cond_broadcast - Signal all waiters of a condition variable + * dce_os_cond_broadcast - Signal all waiters of a condition variable * * @cond - The condition variable to signal * @@ -439,7 +439,7 @@ void dce_cond_signal_interruptible(struct dce_cond *cond) * * The waiters are using an uninterruptible wait. */ -int dce_cond_broadcast(struct dce_cond *cond) +int dce_os_cond_broadcast(struct dce_os_cond *cond) { if (!cond->initialized) return -EINVAL; @@ -450,7 +450,7 @@ int dce_cond_broadcast(struct dce_cond *cond) } /** - * dce_cond_broadcast_interruptible - Signal all waiters of a condition + * dce_os_cond_broadcast_interruptible - Signal all waiters of a condition * variable * * @cond - The condition variable to signal @@ -460,7 +460,7 @@ int dce_cond_broadcast(struct dce_cond *cond) * * The waiters are using an interruptible wait. */ -int dce_cond_broadcast_interruptible(struct dce_cond *cond) +int dce_os_cond_broadcast_interruptible(struct dce_os_cond *cond) { if (!cond->initialized) return -EINVAL; diff --git a/drivers/platform/tegra/dce/dce-worker.c b/drivers/platform/tegra/dce/dce-worker.c index 62970218..ce2b18eb 100644 --- a/drivers/platform/tegra/dce/dce-worker.c +++ b/drivers/platform/tegra/dce/dce-worker.c @@ -4,7 +4,7 @@ */ #include -#include +#include #include #include #include @@ -34,7 +34,7 @@ int dce_wait_interruptible(struct tegra_dce *d, u32 msg_id) * start waiting. But that should not be an issue as wait->complete * Will be "1" and we immediately exit from the wait. */ - DCE_COND_WAIT_INTERRUPTIBLE(&wait->cond_wait, + DCE_OS_COND_WAIT_INTERRUPTIBLE(&wait->cond_wait, dce_os_atomic_read(&wait->complete) == 1); if (dce_os_atomic_read(&wait->complete) != 1) @@ -70,22 +70,22 @@ void dce_wakeup_interruptible(struct tegra_dce *d, u32 msg_id) /* * Set wait->complete to "1", so if the wait is called even after - * "dce_cond_signal_interruptible", it'll see the complete variable + * "dce_os_cond_signal_interruptible", it'll see the complete variable * as "1" and exit the wait immediately. */ dce_os_atomic_set(&wait->complete, 1); - dce_cond_signal_interruptible(&wait->cond_wait); + dce_os_cond_signal_interruptible(&wait->cond_wait); } /* - * dce_cond_wait_reset : reset condition wait variable to zero + * dce_os_cond_wait_reset : reset condition wait variable to zero * * @d : Pointer to tegra_dce struct. * @msg_id : index of wait condition * * Return : void */ -void dce_cond_wait_reset(struct tegra_dce *d, u32 msg_id) +void dce_os_cond_wait_reset(struct tegra_dce *d, u32 msg_id) { struct dce_wait_cond *wait; @@ -110,7 +110,7 @@ int dce_work_cond_sw_resource_init(struct tegra_dce *d) int ret = 0; int i; - if (dce_cond_init(&d->dce_bootstrap_done)) { + if (dce_os_cond_init(&d->dce_bootstrap_done)) { dce_os_err(d, "dce boot wait condition init failed"); ret = -1; goto exit; @@ -119,7 +119,7 @@ int dce_work_cond_sw_resource_init(struct tegra_dce *d) for (i = 0; i < DCE_MAX_WAIT; i++) { struct dce_wait_cond *wait = &d->ipc_waits[i]; - if (dce_cond_init(&wait->cond_wait)) { + if (dce_os_cond_init(&wait->cond_wait)) { dce_os_err(d, "dce wait condition %d init failed", i); ret = -1; goto init_error; @@ -133,10 +133,10 @@ init_error: while (i >= 0) { struct dce_wait_cond *wait = &d->ipc_waits[i]; - dce_cond_destroy(&wait->cond_wait); + dce_os_cond_destroy(&wait->cond_wait); i--; } - dce_cond_destroy(&d->dce_bootstrap_done); + dce_os_cond_destroy(&d->dce_bootstrap_done); exit: return ret; } @@ -155,9 +155,9 @@ void dce_work_cond_sw_resource_deinit(struct tegra_dce *d) for (i = 0; i < DCE_MAX_WAIT; i++) { struct dce_wait_cond *wait = &d->ipc_waits[i]; - dce_cond_destroy(&wait->cond_wait); + dce_os_cond_destroy(&wait->cond_wait); dce_os_atomic_set(&wait->complete, 0); } - dce_cond_destroy(&d->dce_bootstrap_done); + dce_os_cond_destroy(&d->dce_bootstrap_done); } diff --git a/drivers/platform/tegra/dce/include/dce-client-ipc-internal.h b/drivers/platform/tegra/dce/include/dce-client-ipc-internal.h index 10e79f9e..7a20191f 100644 --- a/drivers/platform/tegra/dce/include/dce-client-ipc-internal.h +++ b/drivers/platform/tegra/dce/include/dce-client-ipc-internal.h @@ -33,7 +33,7 @@ struct tegra_dce_client_ipc { uint32_t handle; uint32_t int_type; struct tegra_dce *d; - struct dce_cond recv_wait; + struct dce_os_cond recv_wait; dce_os_atomic_t complete; tegra_dce_client_ipc_callback_t callback_fn; }; diff --git a/drivers/platform/tegra/dce/include/dce-fsm.h b/drivers/platform/tegra/dce/include/dce-fsm.h index 5011badd..cfd2aadb 100644 --- a/drivers/platform/tegra/dce/include/dce-fsm.h +++ b/drivers/platform/tegra/dce/include/dce-fsm.h @@ -6,7 +6,7 @@ #ifndef DCE_FSM_H #define DCE_FSM_H -#include +#include #include /** diff --git a/drivers/platform/tegra/dce/include/dce-worker.h b/drivers/platform/tegra/dce/include/dce-worker.h index fba833aa..003e4da7 100644 --- a/drivers/platform/tegra/dce/include/dce-worker.h +++ b/drivers/platform/tegra/dce/include/dce-worker.h @@ -6,7 +6,7 @@ #ifndef DCE_WORKER_H #define DCE_WORKER_H -#include +#include #include #include @@ -21,7 +21,7 @@ struct tegra_dce; struct dce_wait_cond { dce_os_atomic_t complete; - struct dce_cond cond_wait; + struct dce_os_cond cond_wait; }; int dce_work_cond_sw_resource_init(struct tegra_dce *d); @@ -29,6 +29,6 @@ void dce_work_cond_sw_resource_deinit(struct tegra_dce *d); void dce_schedule_boot_complete_wait_worker(struct tegra_dce *d); int dce_wait_interruptible(struct tegra_dce *d, u32 msg_id); void dce_wakeup_interruptible(struct tegra_dce *d, u32 msg_id); -void dce_cond_wait_reset(struct tegra_dce *d, u32 msg_id); +void dce_os_cond_wait_reset(struct tegra_dce *d, u32 msg_id); #endif diff --git a/drivers/platform/tegra/dce/include/dce.h b/drivers/platform/tegra/dce/include/dce.h index 0e65b618..27e67846 100644 --- a/drivers/platform/tegra/dce/include/dce.h +++ b/drivers/platform/tegra/dce/include/dce.h @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #include #include @@ -164,7 +164,7 @@ struct tegra_dce { /** * dce_bootstrap_done - Data structure to manage wait for boot done */ - struct dce_cond dce_bootstrap_done; + struct dce_os_cond dce_bootstrap_done; /** * @d_mb - Stores the current status of dce mailbox interfaces. */ diff --git a/drivers/platform/tegra/dce/os/include/os-cond.h b/drivers/platform/tegra/dce/os/include/os-cond.h deleted file mode 100644 index 0d0309f2..00000000 --- a/drivers/platform/tegra/dce/os/include/os-cond.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. - * SPDX-License-Identifier: LicenseRef-NvidiaProprietary - * - * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual - * property and proprietary rights in and to this material, related - * documentation and any modifications thereto. Any use, reproduction, - * disclosure or distribution of this material and related documentation - * without an express license agreement from NVIDIA CORPORATION or - * its affiliates is strictly prohibited. - */ - -#ifndef NVDISPLAY_SERVER_OS_COND_H -#define NVDISPLAY_SERVER_OS_COND_H - -#ifdef __KERNEL__ -#include -#elif defined(NVDISPLAY_SERVER_HVRTOS) -#include -#else -#error "OS Not Supported" -#endif - -#endif /* NVDISPLAY_SERVER_OS_COND_H */ \ No newline at end of file diff --git a/drivers/platform/tegra/dce/os/include/linux-kmd/os-cond.h b/drivers/platform/tegra/dce/os/linux/include/dce-os-cond.h similarity index 67% rename from drivers/platform/tegra/dce/os/include/linux-kmd/os-cond.h rename to drivers/platform/tegra/dce/os/linux/include/dce-os-cond.h index 2c824a60..12c58db2 100644 --- a/drivers/platform/tegra/dce/os/include/linux-kmd/os-cond.h +++ b/drivers/platform/tegra/dce/os/linux/include/dce-os-cond.h @@ -1,35 +1,28 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ /* * SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. - * SPDX-License-Identifier: LicenseRef-NvidiaProprietary - * - * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual - * property and proprietary rights in and to this material, related - * documentation and any modifications thereto. Any use, reproduction, - * disclosure or distribution of this material and related documentation - * without an express license agreement from NVIDIA CORPORATION or - * its affiliates is strictly prohibited. */ -#ifndef NVDISPLAY_SERVER_OS_COND_LINUX_H -#define NVDISPLAY_SERVER_OS_COND_LINUX_H +#ifndef DCE_OS_COND_H +#define DCE_OS_COND_H #include #include -struct dce_cond { +struct dce_os_cond { bool initialized; wait_queue_head_t wq; }; /** - * DCE_COND_WAIT - Wait for a condition to be true + * DCE_OS_COND_WAIT - Wait for a condition to be true * * @c - The condition variable to sleep on * @condition - The condition that needs to be true * * Wait for a condition to become true. */ -#define DCE_COND_WAIT(c, condition) \ +#define DCE_OS_COND_WAIT(c, condition) \ ({\ int ret = 0; \ wait_event((c)->wq, condition); \ @@ -37,7 +30,7 @@ struct dce_cond { }) /** - * DCE_COND_WAIT_INTERRUPTIBLE - Wait for a condition to be true + * DCE_OS_COND_WAIT_INTERRUPTIBLE - Wait for a condition to be true * * @c - The condition variable to sleep on * @condition - The condition that needs to be true @@ -45,7 +38,7 @@ struct dce_cond { * Wait for a condition to become true. Returns -ERESTARTSYS * on signal. */ -#define DCE_COND_WAIT_INTERRUPTIBLE(c, condition) \ +#define DCE_OS_COND_WAIT_INTERRUPTIBLE(c, condition) \ ({ \ int ret = 0; \ ret = wait_event_interruptible((c)->wq, condition); \ @@ -53,7 +46,7 @@ struct dce_cond { }) /** - * DCE_COND_WAIT_TIMEOUT - Wait for a condition to be true + * DCE_OS_COND_WAIT_TIMEOUT - Wait for a condition to be true * * @c - The condition variable to sleep on * @condition - The condition that needs to be true @@ -66,7 +59,7 @@ struct dce_cond { * Wait for a condition to become true. Returns -ETIMEOUT if * the wait timed out with condition false. */ -#define DCE_COND_WAIT_TIMEOUT(c, condition, timeout_ms) \ +#define DCE_OS_COND_WAIT_TIMEOUT(c, condition, timeout_ms) \ ({\ int ret = 0; \ /* This is the assignment to enforce a u32 for timeout_ms */ \ @@ -84,7 +77,7 @@ struct dce_cond { }) /** - * DCE_COND_WAIT_INTERRUPTIBLE_TIMEOUT - Wait for a condition to be true + * DCE_OS_COND_WAIT_INTERRUPTIBLE_TIMEOUT - Wait for a condition to be true * * @c - The condition variable to sleep on * @condition - The condition that needs to be true @@ -98,7 +91,7 @@ struct dce_cond { * the wait timed out with condition false or -ERESTARTSYS on * signal. */ -#define DCE_COND_WAIT_INTERRUPTIBLE_TIMEOUT(c, condition, timeout_ms) \ +#define DCE_OS_COND_WAIT_INTERRUPTIBLE_TIMEOUT(c, condition, timeout_ms) \ ({ \ int ret = 0; \ /* This is the assignment to enforce a u32 for timeout_ms */ \ @@ -117,16 +110,16 @@ struct dce_cond { ret; \ }) -int dce_cond_init(struct dce_cond *cond); +int dce_os_cond_init(struct dce_os_cond *cond); -void dce_cond_signal(struct dce_cond *cond); +void dce_os_cond_signal(struct dce_os_cond *cond); -void dce_cond_signal_interruptible(struct dce_cond *cond); +void dce_os_cond_signal_interruptible(struct dce_os_cond *cond); -int dce_cond_broadcast(struct dce_cond *cond); +int dce_os_cond_broadcast(struct dce_os_cond *cond); -int dce_cond_broadcast_interruptible(struct dce_cond *cond); +int dce_os_cond_broadcast_interruptible(struct dce_os_cond *cond); -void dce_cond_destroy(struct dce_cond *cond); +void dce_os_cond_destroy(struct dce_os_cond *cond); -#endif /* NVDISPLAY_SERVER_OS_COND_LINUX_H */ \ No newline at end of file +#endif /* DCE_OS_COND_H */