mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
drivers: Add compilation flag for iosys-map.h
Determining whether the header file iosys-map.h is present in the kernel is currently determine by kernel version. However, for Linux v5.15, iosys-map.h has been backported in order to support simple-framebuffer for early display. Therefore, we cannot rely on the kernel version to indicate whether iosys-map is present. This is also true for 3rd party Linux kernels that backport changes as well. Fix this by adding a compile time flag, that will be set accordingly by the conftest script if this header is present. Bug 4119327 Bug 4228080 Change-Id: Ibd814285b2a07932ede2fbe9e6dc8fd03039d0c3 Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2971954 Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
b3b4cf6f51
commit
214beca091
1
Makefile
1
Makefile
@@ -1,6 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (c) 2022-2023, NVIDIA CORPORATION. All rights reserved.
|
||||
|
||||
LINUXINCLUDE += -I$(srctree.nvconftest)
|
||||
LINUXINCLUDE += -I$(srctree.nvidia-oot)/include
|
||||
|
||||
subdir-ccflags-y += -Werror
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
* Copyright (c) 2011 Samsung Electronics Co., Ltd.
|
||||
*/
|
||||
|
||||
#include <nvidia/conftest.h>
|
||||
|
||||
#include <linux/dma-buf.h>
|
||||
#include <linux/iommu.h>
|
||||
#include <linux/module.h>
|
||||
@@ -178,7 +180,7 @@ static void tegra_bo_unpin(struct host1x_bo_mapping *map)
|
||||
static void *tegra_bo_mmap(struct host1x_bo *bo)
|
||||
{
|
||||
struct tegra_bo *obj = host1x_to_tegra_bo(bo);
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
|
||||
#if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
|
||||
struct iosys_map map = {0};
|
||||
#else
|
||||
struct dma_buf_map map = {0};
|
||||
@@ -199,7 +201,7 @@ static void *tegra_bo_mmap(struct host1x_bo *bo)
|
||||
static void tegra_bo_munmap(struct host1x_bo *bo, void *addr)
|
||||
{
|
||||
struct tegra_bo *obj = host1x_to_tegra_bo(bo);
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
|
||||
#if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
|
||||
struct iosys_map map = IOSYS_MAP_INIT_VADDR(addr);
|
||||
#else
|
||||
struct dma_buf_map map = DMA_BUF_MAP_INIT_VADDR(addr);
|
||||
@@ -722,7 +724,7 @@ static int tegra_gem_prime_mmap(struct dma_buf *buf, struct vm_area_struct *vma)
|
||||
return __tegra_gem_mmap(gem, vma);
|
||||
}
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
|
||||
#if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
|
||||
static int tegra_gem_prime_vmap(struct dma_buf *buf, struct iosys_map *map)
|
||||
{
|
||||
struct drm_gem_object *gem = buf->priv;
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
* platform.
|
||||
*/
|
||||
|
||||
#include <nvidia/conftest.h>
|
||||
|
||||
#include <linux/dma-buf.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/nospec.h>
|
||||
@@ -526,10 +528,10 @@ int capture_common_setup_progress_status_notifier(
|
||||
uint32_t mem_offset)
|
||||
{
|
||||
struct dma_buf *dmabuf;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
|
||||
struct dma_buf_map map = {0};
|
||||
#else
|
||||
#if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
|
||||
struct iosys_map map = {0};
|
||||
#else
|
||||
struct dma_buf_map map = {0};
|
||||
#endif
|
||||
void *va;
|
||||
int err = 0;
|
||||
@@ -573,10 +575,10 @@ int capture_common_release_progress_status_notifier(
|
||||
{
|
||||
struct dma_buf *dmabuf = progress_status_notifier->buf;
|
||||
void *va = progress_status_notifier->va;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
|
||||
struct dma_buf_map map = DMA_BUF_MAP_INIT_VADDR(va);
|
||||
#else
|
||||
#if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
|
||||
struct iosys_map map = IOSYS_MAP_INIT_VADDR(va);
|
||||
#else
|
||||
struct dma_buf_map map = DMA_BUF_MAP_INIT_VADDR(va);
|
||||
#endif
|
||||
|
||||
if (dmabuf != NULL) {
|
||||
@@ -629,10 +631,10 @@ int capture_common_pin_memory(
|
||||
struct capture_common_buf *unpin_data)
|
||||
{
|
||||
struct dma_buf *buf;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
|
||||
struct dma_buf_map map = {0};
|
||||
#else
|
||||
#if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
|
||||
struct iosys_map map = {0};
|
||||
#else
|
||||
struct dma_buf_map map = {0};
|
||||
#endif
|
||||
struct dma_buf_attachment *attach;
|
||||
struct sg_table *sgt;
|
||||
@@ -682,10 +684,10 @@ EXPORT_SYMBOL_GPL(capture_common_pin_memory);
|
||||
void capture_common_unpin_memory(
|
||||
struct capture_common_buf *unpin_data)
|
||||
{
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
|
||||
struct dma_buf_map map = DMA_BUF_MAP_INIT_VADDR(unpin_data->va);
|
||||
#else
|
||||
#if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
|
||||
struct iosys_map map = IOSYS_MAP_INIT_VADDR(unpin_data->va);
|
||||
#else
|
||||
struct dma_buf_map map = DMA_BUF_MAP_INIT_VADDR(unpin_data->va);
|
||||
#endif
|
||||
|
||||
if (unpin_data->va)
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
* @brief ISP channel operations for the T186/T194 Camera RTCPU platform.
|
||||
*/
|
||||
|
||||
#include <nvidia/conftest.h>
|
||||
|
||||
#include <linux/completion.h>
|
||||
#include <linux/nospec.h>
|
||||
#include <linux/nvhost.h>
|
||||
@@ -341,10 +343,10 @@ static int isp_capture_setup_inputfences(
|
||||
void *reloc_page_addr = NULL;
|
||||
struct isp_capture *capture = chan->capture_data;
|
||||
void *vmap_base = NULL;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
|
||||
struct dma_buf_map map;
|
||||
#else
|
||||
#if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
|
||||
struct iosys_map map;
|
||||
#else
|
||||
struct dma_buf_map map;
|
||||
#endif
|
||||
int i = 0;
|
||||
int err = 0;
|
||||
@@ -427,10 +429,10 @@ static int isp_capture_setup_prefences(
|
||||
void *reloc_page_addr = NULL;
|
||||
struct isp_capture *capture = chan->capture_data;
|
||||
void *vmap_base = NULL;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
|
||||
struct dma_buf_map map;
|
||||
#else
|
||||
#if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
|
||||
struct iosys_map map;
|
||||
#else
|
||||
struct dma_buf_map map;
|
||||
#endif
|
||||
|
||||
/* It is valid not to have prefences for given frame capture */
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
* Copyright (c) 2020-2023, NVIDIA CORPORATION. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <nvidia/conftest.h>
|
||||
|
||||
#include <asm-generic/errno-base.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/kernel.h>
|
||||
@@ -48,7 +50,7 @@
|
||||
void *pva_dmabuf_vmap(struct dma_buf *dmabuf)
|
||||
{
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0)
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
|
||||
#if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
|
||||
struct iosys_map map = {0};
|
||||
#else
|
||||
struct dma_buf_map map = {0};
|
||||
@@ -67,7 +69,7 @@ void *pva_dmabuf_vmap(struct dma_buf *dmabuf)
|
||||
void pva_dmabuf_vunmap(struct dma_buf *dmabuf, void *addr)
|
||||
{
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0)
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
|
||||
#if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
|
||||
struct iosys_map map = IOSYS_MAP_INIT_VADDR(addr);
|
||||
#else
|
||||
struct dma_buf_map map = DMA_BUF_MAP_INIT_VADDR(addr);
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
|
||||
#define pr_fmt(fmt) "nvmap: %s() " fmt, __func__
|
||||
|
||||
#include <nvidia/conftest.h>
|
||||
|
||||
#include <linux/list.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/uaccess.h>
|
||||
@@ -22,7 +24,7 @@
|
||||
#include <linux/of.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/iommu.h>
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
|
||||
#if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
|
||||
#include <linux/iosys-map.h>
|
||||
#endif
|
||||
|
||||
@@ -499,7 +501,7 @@ static void nvmap_dmabuf_vunmap(struct dma_buf *dmabuf, void *vaddr)
|
||||
__nvmap_munmap(info->handle, vaddr);
|
||||
}
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
|
||||
#if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
|
||||
static int nvmap_dmabuf_vmap(struct dma_buf *dmabuf, struct iosys_map *map)
|
||||
#else
|
||||
static int nvmap_dmabuf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map)
|
||||
@@ -526,7 +528,7 @@ static int nvmap_dmabuf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
|
||||
#if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
|
||||
static void nvmap_dmabuf_vunmap(struct dma_buf *dmabuf, struct iosys_map *map)
|
||||
#else
|
||||
static void nvmap_dmabuf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map)
|
||||
|
||||
@@ -106,7 +106,8 @@ $(obj)/conftest/patches.h: $(NV_CONFTEST_SCRIPT)
|
||||
# corresponding #define will be generated in conftest/headers.h.
|
||||
NV_HEADER_PRESENCE_TESTS = \
|
||||
generated/autoconf.h \
|
||||
linux/kconfig.h
|
||||
linux/kconfig.h \
|
||||
linux/iosys-map.h
|
||||
|
||||
# Filename to store the define for the header in $(1); this is only consumed by
|
||||
# the rule below that concatenates all of these together.
|
||||
|
||||
Reference in New Issue
Block a user