blob: 1bfe29325de86e2636b13459caa8e36a8fbc43f1 [file] [log] [blame]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef __MESON_WRITEBACK_H__
#define __MESON_WRITEBACK_H__
#include "meson_drv.h"
#include <drm/drm_connector.h>
#include <drm/drm_encoder.h>
#include <drm/drm_writeback.h>
struct am_drm_writeback {
struct meson_connector base;
struct drm_writeback_connector wb_connector;
struct drm_device drm_dev;
struct drm_framebuffer *fb;
struct workqueue_struct *writeback_wq;
struct work_struct writeback_work;
/*capture port prop*/
struct drm_property *capture_port_prop;
u32 capture_port;
};
struct am_drm_writeback_state {
struct drm_connector_state base;
u32 capture_port;
};
#define to_am_writeback_state(x) \
container_of(x, struct am_drm_writeback_state, base)
#define connector_to_wb_connector(x) \
container_of((x), struct drm_writeback_connector, base)
#define connector_to_am_writeback(x) \
container_of(connector_to_wb_connector(x), \
struct am_drm_writeback, wb_connector)
int am_meson_writeback_create(struct drm_device *drm);
#endif