97fb5e8d9b
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 and only version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 294 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Alexios Zavras <alexios.zavras@intel.com> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141900.825281744@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
67 lines
2.1 KiB
C
67 lines
2.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
|
|
*/
|
|
|
|
#ifndef _DPU_FORMATS_H
|
|
#define _DPU_FORMATS_H
|
|
|
|
#include <drm/drm_fourcc.h>
|
|
#include "msm_gem.h"
|
|
#include "dpu_hw_mdss.h"
|
|
|
|
/**
|
|
* dpu_get_dpu_format_ext() - Returns dpu format structure pointer.
|
|
* @format: DRM FourCC Code
|
|
* @modifiers: format modifier array from client, one per plane
|
|
*/
|
|
const struct dpu_format *dpu_get_dpu_format_ext(
|
|
const uint32_t format,
|
|
const uint64_t modifier);
|
|
|
|
#define dpu_get_dpu_format(f) dpu_get_dpu_format_ext(f, 0)
|
|
|
|
/**
|
|
* dpu_get_msm_format - get an dpu_format by its msm_format base
|
|
* callback function registers with the msm_kms layer
|
|
* @kms: kms driver
|
|
* @format: DRM FourCC Code
|
|
* @modifiers: data layout modifier
|
|
*/
|
|
const struct msm_format *dpu_get_msm_format(
|
|
struct msm_kms *kms,
|
|
const uint32_t format,
|
|
const uint64_t modifiers);
|
|
|
|
/**
|
|
* dpu_format_check_modified_format - validate format and buffers for
|
|
* dpu non-standard, i.e. modified format
|
|
* @kms: kms driver
|
|
* @msm_fmt: pointer to the msm_fmt base pointer of an dpu_format
|
|
* @cmd: fb_cmd2 structure user request
|
|
* @bos: gem buffer object list
|
|
*
|
|
* Return: error code on failure, 0 on success
|
|
*/
|
|
int dpu_format_check_modified_format(
|
|
const struct msm_kms *kms,
|
|
const struct msm_format *msm_fmt,
|
|
const struct drm_mode_fb_cmd2 *cmd,
|
|
struct drm_gem_object **bos);
|
|
|
|
/**
|
|
* dpu_format_populate_layout - populate the given format layout based on
|
|
* mmu, fb, and format found in the fb
|
|
* @aspace: address space pointer
|
|
* @fb: framebuffer pointer
|
|
* @fmtl: format layout structure to populate
|
|
*
|
|
* Return: error code on failure, -EAGAIN if success but the addresses
|
|
* are the same as before or 0 if new addresses were populated
|
|
*/
|
|
int dpu_format_populate_layout(
|
|
struct msm_gem_address_space *aspace,
|
|
struct drm_framebuffer *fb,
|
|
struct dpu_hw_fmt_layout *fmtl);
|
|
|
|
#endif /*_DPU_FORMATS_H */
|