Lines Matching refs:connector

666 	 * connector, etc., rather than just a single range.
3796 struct drm_connector *connector;
3817 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
3818 if (!connector->encoder || !connector->encoder->crtc)
3821 if (connector->encoder->crtc != crtc)
3824 connector->dpms = DRM_MODE_DPMS_OFF;
3825 to_intel_encoder(connector->encoder)->connectors_active = false;
3851 /* Simple dpms helper for encodres with just one connector, no cloning and only
3869 static void intel_connector_check_state(struct intel_connector *connector)
3871 if (connector->get_hw_state(connector)) {
3872 struct intel_encoder *encoder = connector->encoder;
3878 connector->base.base.id,
3879 drm_get_connector_name(&connector->base));
3881 WARN(connector->base.dpms == DRM_MODE_DPMS_OFF,
3882 "wrong connector dpms state\n");
3883 WARN(connector->base.encoder != &encoder->base,
3884 "active connector not linked to encoder\n");
3904 void intel_connector_dpms(struct drm_connector *connector, int mode)
3906 struct intel_encoder *encoder = intel_attached_encoder(connector);
3912 if (mode == connector->dpms)
3915 connector->dpms = mode;
3923 intel_modeset_check_state(connector->dev);
3926 /* Simple connector->get_hw_state implementation for encoders that support only
3927 * one connector and no cloning and hence the encoder state determines the state
3928 * of the connector. */
3929 bool intel_connector_get_hw_state(struct intel_connector *connector)
3932 struct intel_encoder *encoder = connector->encoder;
4103 struct drm_connector *connector;
4127 list_for_each_entry(connector, &dev->mode_config.connector_list,
4129 if (connector->encoder != &intel_encoder->base)
4133 if (connector->display_info.bpc &&
4134 connector->display_info.bpc < display_bpc) {
4135 DRM_DEBUG_KMS("clamping display bpc (was %d) to EDID reported max of %d\n", display_bpc, connector->display_info.bpc);
4136 display_bpc = connector->display_info.bpc;
6015 static bool intel_eld_uptodate(struct drm_connector *connector,
6020 struct drm_i915_private *dev_priv = connector->dev->dev_private;
6021 uint8_t *eld = connector->eld;
6044 static void g4x_write_eld(struct drm_connector *connector,
6047 struct drm_i915_private *dev_priv = connector->dev->dev_private;
6048 uint8_t *eld = connector->eld;
6060 if (intel_eld_uptodate(connector,
6084 static void haswell_write_eld(struct drm_connector *connector,
6087 struct drm_i915_private *dev_priv = connector->dev->dev_private;
6088 uint8_t *eld = connector->eld;
6139 if (intel_eld_uptodate(connector,
6169 static void ironlake_write_eld(struct drm_connector *connector,
6172 struct drm_i915_private *dev_priv = connector->dev->dev_private;
6173 uint8_t *eld = connector->eld;
6183 if (HAS_PCH_IBX(connector->dev)) {
6217 if (intel_eld_uptodate(connector,
6248 struct drm_connector *connector;
6252 connector = drm_select_eld(encoder, mode);
6253 if (!connector)
6257 connector->base.id,
6258 drm_get_connector_name(connector),
6259 connector->encoder->base.id,
6260 drm_get_encoder_name(connector->encoder));
6262 connector->eld[6] = drm_av_sync_delay(connector, mode) / 2;
6265 dev_priv->display.write_eld(connector, crtc);
6693 bool intel_get_load_detect_pipe(struct drm_connector *connector,
6699 intel_attached_encoder(connector);
6709 connector->base.id, drm_get_connector_name(connector),
6715 * - if the connector already has an assigned crtc, use it (but make
6718 * - try to find the first unused crtc that can drive this connector,
6722 /* See if we already have a CRTC for this connector */
6726 old->dpms_mode = connector->dpms;
6729 /* Make sure the crtc and connector are running */
6730 if (connector->dpms != DRM_MODE_DPMS_ON)
6731 connector->funcs->dpms(connector, DRM_MODE_DPMS_ON);
6756 to_intel_connector(connector)->new_encoder = intel_encoder;
6759 old->dpms_mode = connector->dpms;
6793 /* let the connector get through one full cycle before testing */
6798 void intel_release_load_detect_pipe(struct drm_connector *connector,
6802 intel_attached_encoder(connector);
6806 connector->base.id, drm_get_connector_name(connector),
6812 to_intel_connector(connector)->new_encoder = NULL;
6824 connector->funcs->dpms(connector, old->dpms_mode);
6907 * i830PllIsValid() because it relies on the xf86_config connector
7587 struct intel_connector *connector;
7589 list_for_each_entry(connector, &dev->mode_config.connector_list,
7591 connector->new_encoder =
7592 to_intel_encoder(connector->base.encoder);
7610 struct intel_connector *connector;
7612 list_for_each_entry(connector, &dev->mode_config.connector_list,
7614 connector->base.encoder = &connector->new_encoder->base;
7638 * adjust it according to limitations or connector properties, and also
7676 struct intel_connector *connector;
7685 list_for_each_entry(connector, &dev->mode_config.connector_list,
7687 if (connector->base.encoder == &connector->new_encoder->base)
7690 if (connector->base.encoder) {
7691 tmp_crtc = connector->base.encoder->crtc;
7696 if (connector->new_encoder)
7698 1 << connector->new_encoder->new_crtc->pipe;
7779 struct drm_connector *connector;
7800 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
7801 if (!connector->encoder || !connector->encoder->crtc)
7804 intel_crtc = to_intel_crtc(connector->encoder->crtc);
7810 connector->dpms = DRM_MODE_DPMS_ON;
7811 drm_object_property_set_value(&connector->base,
7815 intel_encoder = to_intel_encoder(connector->encoder);
7833 struct intel_connector *connector;
7835 list_for_each_entry(connector, &dev->mode_config.connector_list,
7837 /* This also checks the encoder/connector hw state with the
7839 intel_connector_check_state(connector);
7841 WARN(&connector->new_encoder->base != connector->base.encoder,
7842 "connector's staged encoder doesn't match current encoder\n");
7860 list_for_each_entry(connector, &dev->mode_config.connector_list,
7862 if (connector->base.encoder != &encoder->base)
7865 if (connector->base.dpms != DRM_MODE_DPMS_OFF)
8035 struct drm_connector *connector;
8060 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
8061 config->save_connector_encoders[count++] = connector->encoder;
8071 struct intel_connector *connector;
8081 list_for_each_entry(connector, &dev->mode_config.connector_list, base.head) {
8082 connector->new_encoder =
8127 struct intel_connector *connector;
8137 list_for_each_entry(connector, &dev->mode_config.connector_list,
8139 /* Otherwise traverse passed in connector list and get encoders
8142 if (set->connectors[ro] == &connector->base) {
8143 connector->new_encoder = connector->encoder;
8149 * the connector is on the changing crtc but not on the new
8150 * connector list, disable it. */
8152 connector->base.encoder &&
8153 connector->base.encoder->crtc == set->crtc) {
8154 connector->new_encoder = NULL;
8157 connector->base.base.id,
8158 drm_get_connector_name(&connector->base));
8162 if (&connector->new_encoder->base != connector->base.encoder) {
8167 /* connector->new_encoder is now updated for all connectors. */
8171 list_for_each_entry(connector, &dev->mode_config.connector_list,
8173 if (!connector->new_encoder)
8176 new_crtc = connector->new_encoder->base.crtc;
8179 if (set->connectors[ro] == &connector->base)
8184 if (!intel_encoder_crtc_ok(&connector->new_encoder->base,
8188 connector->encoder->new_crtc = to_intel_crtc(new_crtc);
8191 connector->base.base.id,
8192 drm_get_connector_name(&connector->base),
8199 list_for_each_entry(connector,
8202 if (connector->new_encoder == encoder) {
8203 WARN_ON(!connector->new_encoder->new_crtc);
9042 intel_connector_break_all_links(struct intel_connector *connector)
9044 connector->base.dpms = DRM_MODE_DPMS_OFF;
9045 connector->base.encoder = NULL;
9046 connector->encoder->connectors_active = false;
9047 connector->encoder->base.crtc = NULL;
9052 struct intel_connector *connector;
9059 list_for_each_entry(connector,
9062 if (connector->encoder->type == INTEL_OUTPUT_ANALOG) {
9063 crt = &connector->base;
9110 struct intel_connector *connector;
9125 list_for_each_entry(connector, &dev->mode_config.connector_list,
9127 if (connector->encoder->base.crtc != &crtc->base)
9130 intel_connector_break_all_links(connector);
9163 /* Because we only establish the connector -> encoder ->
9165 * crtc is now deactivated. Break the links. connector
9179 struct intel_connector *connector;
9207 list_for_each_entry(connector,
9210 if (connector->encoder != encoder)
9213 intel_connector_break_all_links(connector);
9247 struct intel_connector *connector;
9312 list_for_each_entry(connector, &dev->mode_config.connector_list,
9314 if (connector->get_hw_state(connector)) {
9315 connector->base.dpms = DRM_MODE_DPMS_ON;
9316 connector->encoder->connectors_active = true;
9317 connector->base.encoder = &connector->encoder->base;
9319 connector->base.dpms = DRM_MODE_DPMS_OFF;
9320 connector->base.encoder = NULL;
9323 connector->base.base.id,
9324 drm_get_connector_name(&connector->base),
9325 connector->base.encoder ? "enabled" : "disabled");
9415 * Return which encoder is currently attached for connector.
9417 struct drm_encoder *intel_best_encoder(struct drm_connector *connector)
9419 return &intel_attached_encoder(connector)->base;
9422 void intel_connector_attach_encoder(struct intel_connector *connector,
9425 connector->encoder = encoder;
9426 drm_mode_connector_attach_encoder(&connector->base,