kernel_samsung_a53x/drivers/gpu/drm/samsung/dpu/panel/mcd-panel-samsung-helper.h
2024-06-15 16:02:09 -03:00

56 lines
2.2 KiB
C
Executable file

/*
* include/linux/panel_modes.h
*
* Header file for Samsung Common LCD Driver.
*
* Copyright (c) 2020 Samsung Electronics
* Gwanghui Lee <gwanghui.lee@samsung.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __EXYNOS_PANEL_MODES_H__
#define __EXYNOS_PANEL_MODES_H__
#include "panel-samsung-drv.h"
/**
* EXYNOS_MODE_FMT - printf string for &struct exynos_display_mode
*/
#define EXYNOS_MODE_FMT "%lu %d %d %d %d %d %d"
/**
* EXYNOS_MODE_ARG - printf arguments for &struct exynos_display_mode
* @m: exynos display mode
*/
#define EXYNOS_MODE_ARG(m) \
(m)->mode_flags, (m)->bpc, (m)->is_lp_mode, \
(m)->dsc.enabled, (m)->dsc.dsc_count, (m)->dsc.slice_count, (m)->dsc.slice_height
/**
* EXYNOS_PANEL_MODE_FMT - printf string for &struct exynos_panel_mode
*/
#define EXYNOS_PANEL_MODE_FMT DRM_MODE_FMT EXYNOS_MODE_FMT
/**
* EXYNOS_MODE_ARG - printf arguments for &struct exynos_display_mode
* @m: exynos panel mode
*/
#define EXYNOS_PANEL_MODE_ARG(m) DRM_MODE_ARG(&(m)->mode), EXYNOS_MODE_ARG(&(m)->exynos_mode)
int drm_display_mode_from_panel_display_mode(struct panel_display_mode *pdm, struct drm_display_mode *ddm);
int exynos_display_mode_from_panel_display_mode(struct panel_display_mode *pdm, struct exynos_display_mode *edm);
int exynos_panel_mode_from_panel_display_mode(struct panel_display_mode *pdm, struct exynos_panel_mode *epm);
void exynos_drm_mode_set_name(struct drm_display_mode *mode, int refresh_mode);
struct panel_display_mode *exynos_panel_find_panel_mode(struct panel_display_modes *pdms,
const struct drm_display_mode *pmode);
struct exynos_panel_mode *exynos_panel_mode_create(struct exynos_panel *ctx);
void exynos_panel_mode_destroy(struct exynos_panel *ctx, struct exynos_panel_mode *mode);
struct exynos_panel_desc *exynos_panel_desc_create(struct exynos_panel *ctx);
void exynos_panel_desc_destroy(struct exynos_panel *ctx, struct exynos_panel_desc *desc);
struct exynos_panel_desc *
exynos_panel_desc_create_from_panel_display_modes(struct exynos_panel *ctx,
struct panel_display_modes *pdms);
#endif /* __EXYNOS_PANEL_MODES_H__ */