Files
linux-nv-oot/drivers/platform/tegra/dce/include/dce-util-common.h
anupamg 8533f2be4a DCE-KMD: Use OS abstraction for types.h
- DCE-KMD code is only compiled on Linux Kernel today. So it has
  some linux specific dependencies.

- We will be compiling the same code for new DispalySerer HVRTOS
  process. To support this we will need to abstract out OS
  specific dependencies from DCE-KMD.

- Common OS abstraction code will be developed under display/drivers/
  server/ repo.

- DCE-KMD will start using that os abtsaction and this is the first
  CL towards that effort.

JIRA TDS-16052

Change-Id: I51fba684ac285139225a2999338e73c724d9d499
Signed-off-by: anupamg <anupamg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3167249
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Arun Swain <arswain@nvidia.com>
Reviewed-by: Mahesh Kumar <mahkumar@nvidia.com>
2025-07-24 10:19:12 +00:00

59 lines
1.6 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
/*
* SPDX-FileCopyrightText: Copyright (c) 2019-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
*/
#ifndef DCE_UTIL_COMMON_H
#define DCE_UTIL_COMMON_H
#include <types.h>
#include <linux/bitops.h>
#include <linux/bitmap.h>
#include <linux/workqueue.h>
/**
* This file contains all dce common fucntions and data strutcures which are
* abstarcted out from the operating system. The underlying OS layer will
* implement the pertinent low level details. This design is to make sure that
* dce cpu driver can be leveraged across multiple OSes if the neede arises.
*/
struct tegra_dce;
void dce_writel(struct tegra_dce *d, u32 r, u32 v);
u32 dce_readl(struct tegra_dce *d, u32 r);
void dce_writel_check(struct tegra_dce *d, u32 r, u32 v);
bool dce_io_exists(struct tegra_dce *d);
bool dce_io_valid_reg(struct tegra_dce *d, u32 r);
struct dce_firmware *dce_request_firmware(struct tegra_dce *d,
const char *fw_name);
void dce_release_fw(struct tegra_dce *d, struct dce_firmware *fw);
void *dce_kzalloc(struct tegra_dce *d, size_t size, bool dma_flag);
void dce_kfree(struct tegra_dce *d, void *addr);
unsigned long dce_get_nxt_pow_of_2(unsigned long *addr, u8 nbits);
void dce_usleep_range(unsigned long min, unsigned long max);
static inline void dce_bitmap_set(unsigned long *map,
unsigned int start, unsigned int len)
{
bitmap_set(map, start, (int)len);
}
static inline void dce_bitmap_clear(unsigned long *map,
unsigned int start, unsigned int len)
{
bitmap_clear(map, start, (int)len);
}
#endif