Lines Matching refs:lspcon

55 static struct intel_dp *lspcon_to_intel_dp(struct intel_lspcon *lspcon)  in lspcon_to_intel_dp()  argument
58 container_of(lspcon, struct intel_digital_port, lspcon); in lspcon_to_intel_dp()
78 static bool lspcon_detect_vendor(struct intel_lspcon *lspcon) in lspcon_detect_vendor() argument
80 struct intel_dp *dp = lspcon_to_intel_dp(lspcon); in lspcon_detect_vendor()
95 lspcon->vendor = LSPCON_VENDOR_MCA; in lspcon_detect_vendor()
100 lspcon->vendor = LSPCON_VENDOR_PARADE; in lspcon_detect_vendor()
112 static u32 get_hdr_status_reg(struct intel_lspcon *lspcon) in get_hdr_status_reg() argument
114 if (lspcon->vendor == LSPCON_VENDOR_MCA) in get_hdr_status_reg()
120 void lspcon_detect_hdr_capability(struct intel_lspcon *lspcon) in lspcon_detect_hdr_capability() argument
123 container_of(lspcon, struct intel_digital_port, lspcon); in lspcon_detect_hdr_capability()
125 struct intel_dp *dp = lspcon_to_intel_dp(lspcon); in lspcon_detect_hdr_capability()
129 ret = drm_dp_dpcd_read(&dp->aux, get_hdr_status_reg(lspcon), in lspcon_detect_hdr_capability()
134 lspcon->hdr_supported = false; in lspcon_detect_hdr_capability()
137 lspcon->hdr_supported = true; in lspcon_detect_hdr_capability()
141 static enum drm_lspcon_mode lspcon_get_current_mode(struct intel_lspcon *lspcon) in lspcon_get_current_mode() argument
143 struct intel_dp *intel_dp = lspcon_to_intel_dp(lspcon); in lspcon_get_current_mode()
154 static enum drm_lspcon_mode lspcon_wait_mode(struct intel_lspcon *lspcon, in lspcon_wait_mode() argument
159 current_mode = lspcon_get_current_mode(lspcon); in lspcon_wait_mode()
166 wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode, 400); in lspcon_wait_mode()
177 static int lspcon_change_mode(struct intel_lspcon *lspcon, in lspcon_change_mode() argument
180 struct intel_dp *intel_dp = lspcon_to_intel_dp(lspcon); in lspcon_change_mode()
202 lspcon->mode = mode; in lspcon_change_mode()
207 static bool lspcon_wake_native_aux_ch(struct intel_lspcon *lspcon) in lspcon_wake_native_aux_ch() argument
211 if (drm_dp_dpcd_readb(&lspcon_to_intel_dp(lspcon)->aux, DP_DPCD_REV, in lspcon_wake_native_aux_ch()
223 static bool lspcon_probe(struct intel_lspcon *lspcon) in lspcon_probe() argument
227 struct intel_dp *intel_dp = lspcon_to_intel_dp(lspcon); in lspcon_probe()
231 expected_mode = lspcon_wake_native_aux_ch(lspcon) ? in lspcon_probe()
252 lspcon->mode = lspcon_wait_mode(lspcon, expected_mode); in lspcon_probe()
259 if (lspcon->mode != DRM_LSPCON_MODE_PCON) { in lspcon_probe()
260 if (lspcon_change_mode(lspcon, DRM_LSPCON_MODE_PCON) < 0) { in lspcon_probe()
268 static void lspcon_resume_in_pcon_wa(struct intel_lspcon *lspcon) in lspcon_resume_in_pcon_wa() argument
270 struct intel_dp *intel_dp = lspcon_to_intel_dp(lspcon); in lspcon_resume_in_pcon_wa()
460 struct intel_lspcon *lspcon = enc_to_intel_lspcon(encoder); in lspcon_write_infoframe() local
464 if (lspcon->vendor == LSPCON_VENDOR_MCA) in lspcon_write_infoframe()
506 struct intel_lspcon *lspcon = &dig_port->lspcon; in lspcon_set_infoframes() local
510 if (!lspcon->active) { in lspcon_set_infoframes()
604 struct intel_lspcon *lspcon = enc_to_intel_lspcon(encoder); in lspcon_infoframes_enabled() local
610 if (lspcon->vendor == LSPCON_VENDOR_MCA) in lspcon_infoframes_enabled()
618 if (lspcon->hdr_supported) { in lspcon_infoframes_enabled()
630 void lspcon_wait_pcon_mode(struct intel_lspcon *lspcon) in lspcon_wait_pcon_mode() argument
632 lspcon_wait_mode(lspcon, DRM_LSPCON_MODE_PCON); in lspcon_wait_pcon_mode()
638 struct intel_lspcon *lspcon = &dig_port->lspcon; in lspcon_init() local
641 lspcon->active = false; in lspcon_init()
642 lspcon->mode = DRM_LSPCON_MODE_INVALID; in lspcon_init()
644 if (!lspcon_probe(lspcon)) { in lspcon_init()
654 if (!lspcon_detect_vendor(lspcon)) { in lspcon_init()
660 lspcon->active = true; in lspcon_init()
675 struct intel_lspcon *lspcon = &dig_port->lspcon; in lspcon_resume() local
683 if (!lspcon->active) { in lspcon_resume()
691 if (lspcon_wake_native_aux_ch(lspcon)) { in lspcon_resume()
693 lspcon_resume_in_pcon_wa(lspcon); in lspcon_resume()
698 if (lspcon_wait_mode(lspcon, expected_mode) == DRM_LSPCON_MODE_PCON) in lspcon_resume()
701 if (lspcon_change_mode(lspcon, DRM_LSPCON_MODE_PCON)) in lspcon_resume()