As part of the transitition of the DP encoder to a DRM bridge, turn the DRM encoder into a dummy encoder and move it out of the DP code, to the DPSUB core. DP encoder operations are handled by the DP bridge, which is now attached to the encoder. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
63 lines
1.3 KiB
C
63 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* ZynqMP DPSUB Subsystem Driver
|
|
*
|
|
* Copyright (C) 2017 - 2020 Xilinx, Inc.
|
|
*
|
|
* Authors:
|
|
* - Hyun Woo Kwon <hyun.kwon@xilinx.com>
|
|
* - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
*/
|
|
|
|
#ifndef _ZYNQMP_DPSUB_H_
|
|
#define _ZYNQMP_DPSUB_H_
|
|
|
|
#include <drm/drm_encoder.h>
|
|
|
|
struct clk;
|
|
struct device;
|
|
struct drm_bridge;
|
|
struct drm_device;
|
|
struct zynqmp_disp;
|
|
struct zynqmp_dp;
|
|
|
|
enum zynqmp_dpsub_format {
|
|
ZYNQMP_DPSUB_FORMAT_RGB,
|
|
ZYNQMP_DPSUB_FORMAT_YCRCB444,
|
|
ZYNQMP_DPSUB_FORMAT_YCRCB422,
|
|
ZYNQMP_DPSUB_FORMAT_YONLY,
|
|
};
|
|
|
|
/**
|
|
* struct zynqmp_dpsub - ZynqMP DisplayPort Subsystem
|
|
* @drm: The DRM/KMS device
|
|
* @dev: The physical device
|
|
* @apb_clk: The APB clock
|
|
* @encoder: The dummy DRM encoder
|
|
* @bridge: The DP encoder bridge
|
|
* @disp: The display controller
|
|
* @dp: The DisplayPort controller
|
|
* @dma_align: DMA alignment constraint (must be a power of 2)
|
|
*/
|
|
struct zynqmp_dpsub {
|
|
struct drm_device drm;
|
|
struct device *dev;
|
|
|
|
struct clk *apb_clk;
|
|
|
|
struct drm_encoder encoder;
|
|
struct drm_bridge *bridge;
|
|
|
|
struct zynqmp_disp *disp;
|
|
struct zynqmp_dp *dp;
|
|
|
|
unsigned int dma_align;
|
|
};
|
|
|
|
static inline struct zynqmp_dpsub *to_zynqmp_dpsub(struct drm_device *drm)
|
|
{
|
|
return container_of(drm, struct zynqmp_dpsub, drm);
|
|
}
|
|
|
|
#endif /* _ZYNQMP_DPSUB_H_ */
|