blob: 6bf67b5261d4e07f65831bacfc04b296bee8bb9b [file] [log] [blame]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef _OSD_DRM_H_
#define _OSD_DRM_H_
#include <linux/dcache.h>
#include "osd.h"
struct osd_plane_map_s {
u32 plane_index;
u32 zorder;
u32 phy_addr;
u32 format;
u32 enable;
u32 src_x;
u32 src_y;
u32 src_w;
u32 src_h;
u32 dst_x;
u32 dst_y;
u32 dst_w;
u32 dst_h;
int byte_stride;
u32 background_w;
u32 background_h;
u32 premult_en;
u32 afbc_en;
u32 afbc_inter_format;
u32 blend_mode;
int plane_alpha;
u32 reserve;
};
int osd_drm_init(struct osd_device_data_s *osd_meson_dev);
void osd_drm_debugfs_add(struct dentry **plane_debugfs_dir,
char *name,
int osd_id);
void osd_drm_debugfs_init(void);
void osd_drm_debugfs_exit(void);
void osd_drm_plane_page_flip(struct osd_plane_map_s *plane_map);
void osd_drm_plane_enable_hw(u32 index, u32 enable);
void osd_drm_vsync_isr_handler(void);
#endif