mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 09:11:26 +03:00
Add a few microseconds delay between sending ipc-notify calls for IPC channel reset. IPC notify ACKs are asynchronous and sending notify when the previous ACK was still in progress will cause spurious interrupt/ACK signal and printout FSP state warnings. Bug 4069133 Change-Id: I20dff299149a66629dc23ab2a7cb7765eac1b4dc Signed-off-by: Mahesh Kumar <mahkumar@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2900570 Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com> Reviewed-by: Vinod Atyam <vatyam@nvidia.com> Reviewed-by: Bitan Biswas <bbiswas@nvidia.com> Tested-by: Vinod Atyam <vatyam@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2902404
59 lines
1.5 KiB
C
59 lines
1.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (c) 2019-2023, NVIDIA CORPORATION. All rights reserved.
|
|
*/
|
|
|
|
#ifndef DCE_UTIL_COMMON_H
|
|
#define DCE_UTIL_COMMON_H
|
|
|
|
#include <linux/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
|