xref: /OK3568_Linux_fs/kernel/drivers/gpu/drm/aspeed/aspeed_gfx_out.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0+
2*4882a593Smuzhiyun // Copyright 2018 IBM Corporation
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun #include <drm/drm_atomic_helper.h>
5*4882a593Smuzhiyun #include <drm/drm_connector.h>
6*4882a593Smuzhiyun #include <drm/drm_crtc_helper.h>
7*4882a593Smuzhiyun #include <drm/drm_probe_helper.h>
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #include "aspeed_gfx.h"
10*4882a593Smuzhiyun 
aspeed_gfx_get_modes(struct drm_connector * connector)11*4882a593Smuzhiyun static int aspeed_gfx_get_modes(struct drm_connector *connector)
12*4882a593Smuzhiyun {
13*4882a593Smuzhiyun 	return drm_add_modes_noedid(connector, 800, 600);
14*4882a593Smuzhiyun }
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun static const struct
17*4882a593Smuzhiyun drm_connector_helper_funcs aspeed_gfx_connector_helper_funcs = {
18*4882a593Smuzhiyun 	.get_modes = aspeed_gfx_get_modes,
19*4882a593Smuzhiyun };
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun static const struct drm_connector_funcs aspeed_gfx_connector_funcs = {
22*4882a593Smuzhiyun 	.fill_modes		= drm_helper_probe_single_connector_modes,
23*4882a593Smuzhiyun 	.destroy		= drm_connector_cleanup,
24*4882a593Smuzhiyun 	.reset			= drm_atomic_helper_connector_reset,
25*4882a593Smuzhiyun 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
26*4882a593Smuzhiyun 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
27*4882a593Smuzhiyun };
28*4882a593Smuzhiyun 
aspeed_gfx_create_output(struct drm_device * drm)29*4882a593Smuzhiyun int aspeed_gfx_create_output(struct drm_device *drm)
30*4882a593Smuzhiyun {
31*4882a593Smuzhiyun 	struct aspeed_gfx *priv = to_aspeed_gfx(drm);
32*4882a593Smuzhiyun 	int ret;
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun 	priv->connector.dpms = DRM_MODE_DPMS_OFF;
35*4882a593Smuzhiyun 	priv->connector.polled = 0;
36*4882a593Smuzhiyun 	drm_connector_helper_add(&priv->connector,
37*4882a593Smuzhiyun 				 &aspeed_gfx_connector_helper_funcs);
38*4882a593Smuzhiyun 	ret = drm_connector_init(drm, &priv->connector,
39*4882a593Smuzhiyun 				 &aspeed_gfx_connector_funcs,
40*4882a593Smuzhiyun 				 DRM_MODE_CONNECTOR_Unknown);
41*4882a593Smuzhiyun 	return ret;
42*4882a593Smuzhiyun }
43