Lines Matching refs:kms
45 static void dcss_kms_mode_config_init(struct dcss_kms_dev *kms) in dcss_kms_mode_config_init() argument
47 struct drm_mode_config *config = &kms->base.mode_config; in dcss_kms_mode_config_init()
49 drm_mode_config_init(&kms->base); in dcss_kms_mode_config_init()
65 static int dcss_kms_bridge_connector_init(struct dcss_kms_dev *kms) in dcss_kms_bridge_connector_init() argument
67 struct drm_device *ddev = &kms->base; in dcss_kms_bridge_connector_init()
68 struct drm_encoder *encoder = &kms->encoder; in dcss_kms_bridge_connector_init()
69 struct drm_crtc *crtc = (struct drm_crtc *)&kms->crtc; in dcss_kms_bridge_connector_init()
86 ret = drm_encoder_init(&kms->base, encoder, in dcss_kms_bridge_connector_init()
99 kms->connector = drm_bridge_connector_init(ddev, encoder); in dcss_kms_bridge_connector_init()
100 if (IS_ERR(kms->connector)) { in dcss_kms_bridge_connector_init()
102 return PTR_ERR(kms->connector); in dcss_kms_bridge_connector_init()
105 drm_connector_attach_encoder(kms->connector, encoder); in dcss_kms_bridge_connector_init()
112 struct dcss_kms_dev *kms; in dcss_kms_attach() local
117 kms = devm_drm_dev_alloc(dcss->dev, &dcss_kms_driver, in dcss_kms_attach()
119 if (IS_ERR(kms)) in dcss_kms_attach()
120 return kms; in dcss_kms_attach()
122 drm = &kms->base; in dcss_kms_attach()
123 crtc = &kms->crtc; in dcss_kms_attach()
127 dcss_kms_mode_config_init(kms); in dcss_kms_attach()
133 ret = dcss_kms_bridge_connector_init(kms); in dcss_kms_attach()
145 drm_bridge_connector_enable_hpd(kms->connector); in dcss_kms_attach()
153 return kms; in dcss_kms_attach()
156 drm_bridge_connector_disable_hpd(kms->connector); in dcss_kms_attach()
167 void dcss_kms_detach(struct dcss_kms_dev *kms) in dcss_kms_detach() argument
169 struct drm_device *drm = &kms->base; in dcss_kms_detach()
172 drm_bridge_connector_disable_hpd(kms->connector); in dcss_kms_detach()
175 drm_crtc_vblank_off(&kms->crtc.base); in dcss_kms_detach()
177 dcss_crtc_deinit(&kms->crtc, drm); in dcss_kms_detach()