18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ 28c2ecf20Sopenharmony_ci// Copyright 2018 IBM Corporation 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci#include <drm/drm_atomic_helper.h> 58c2ecf20Sopenharmony_ci#include <drm/drm_connector.h> 68c2ecf20Sopenharmony_ci#include <drm/drm_crtc_helper.h> 78c2ecf20Sopenharmony_ci#include <drm/drm_probe_helper.h> 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include "aspeed_gfx.h" 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_cistatic int aspeed_gfx_get_modes(struct drm_connector *connector) 128c2ecf20Sopenharmony_ci{ 138c2ecf20Sopenharmony_ci return drm_add_modes_noedid(connector, 800, 600); 148c2ecf20Sopenharmony_ci} 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_cistatic const struct 178c2ecf20Sopenharmony_cidrm_connector_helper_funcs aspeed_gfx_connector_helper_funcs = { 188c2ecf20Sopenharmony_ci .get_modes = aspeed_gfx_get_modes, 198c2ecf20Sopenharmony_ci}; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_cistatic const struct drm_connector_funcs aspeed_gfx_connector_funcs = { 228c2ecf20Sopenharmony_ci .fill_modes = drm_helper_probe_single_connector_modes, 238c2ecf20Sopenharmony_ci .destroy = drm_connector_cleanup, 248c2ecf20Sopenharmony_ci .reset = drm_atomic_helper_connector_reset, 258c2ecf20Sopenharmony_ci .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, 268c2ecf20Sopenharmony_ci .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, 278c2ecf20Sopenharmony_ci}; 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ciint aspeed_gfx_create_output(struct drm_device *drm) 308c2ecf20Sopenharmony_ci{ 318c2ecf20Sopenharmony_ci struct aspeed_gfx *priv = to_aspeed_gfx(drm); 328c2ecf20Sopenharmony_ci int ret; 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci priv->connector.dpms = DRM_MODE_DPMS_OFF; 358c2ecf20Sopenharmony_ci priv->connector.polled = 0; 368c2ecf20Sopenharmony_ci drm_connector_helper_add(&priv->connector, 378c2ecf20Sopenharmony_ci &aspeed_gfx_connector_helper_funcs); 388c2ecf20Sopenharmony_ci ret = drm_connector_init(drm, &priv->connector, 398c2ecf20Sopenharmony_ci &aspeed_gfx_connector_funcs, 408c2ecf20Sopenharmony_ci DRM_MODE_CONNECTOR_Unknown); 418c2ecf20Sopenharmony_ci return ret; 428c2ecf20Sopenharmony_ci} 43