Lines Matching refs:pin

152 				       enum hpd_pin pin, bool long_hpd)  in intel_hpd_irq_storm_detect()  argument
155 unsigned long start = hpd->stats[pin].last_jiffies; in intel_hpd_irq_storm_detect()
166 hpd->stats[pin].last_jiffies = jiffies; in intel_hpd_irq_storm_detect()
167 hpd->stats[pin].count = 0; in intel_hpd_irq_storm_detect()
170 hpd->stats[pin].count += increment; in intel_hpd_irq_storm_detect()
171 if (hpd->stats[pin].count > threshold) { in intel_hpd_irq_storm_detect()
172 hpd->stats[pin].state = HPD_MARK_DISABLED; in intel_hpd_irq_storm_detect()
174 "HPD interrupt storm detected on PIN %d\n", pin); in intel_hpd_irq_storm_detect()
179 pin, in intel_hpd_irq_storm_detect()
180 hpd->stats[pin].count); in intel_hpd_irq_storm_detect()
237 enum hpd_pin pin; in intel_hpd_irq_storm_switch_to_polling() local
242 pin = intel_connector_hpd_pin(connector); in intel_hpd_irq_storm_switch_to_polling()
243 if (pin == HPD_NONE || in intel_hpd_irq_storm_switch_to_polling()
244 display->hotplug.stats[pin].state != HPD_MARK_DISABLED) in intel_hpd_irq_storm_switch_to_polling()
252 display->hotplug.stats[pin].state = HPD_DISABLED; in intel_hpd_irq_storm_switch_to_polling()
275 enum hpd_pin pin; in intel_hpd_irq_storm_reenable_work() local
283 pin = intel_connector_hpd_pin(connector); in intel_hpd_irq_storm_reenable_work()
284 if (pin == HPD_NONE || in intel_hpd_irq_storm_reenable_work()
285 display->hotplug.stats[pin].state != HPD_DISABLED) in intel_hpd_irq_storm_reenable_work()
296 for_each_hpd_pin(pin) { in intel_hpd_irq_storm_reenable_work()
297 if (display->hotplug.stats[pin].state == HPD_DISABLED) in intel_hpd_irq_storm_reenable_work()
298 display->hotplug.stats[pin].state = HPD_ENABLED; in intel_hpd_irq_storm_reenable_work()
354 static bool hpd_pin_has_pulse(struct intel_display *display, enum hpd_pin pin) in hpd_pin_has_pulse() argument
359 if (encoder->hpd_pin != pin) in hpd_pin_has_pulse()
369 static bool hpd_pin_is_blocked(struct intel_display *display, enum hpd_pin pin) in hpd_pin_is_blocked() argument
373 return display->hotplug.stats[pin].blocked_count; in hpd_pin_is_blocked()
378 enum hpd_pin pin; in get_blocked_hpd_pin_mask() local
381 for_each_hpd_pin(pin) { in get_blocked_hpd_pin_mask()
382 if (hpd_pin_is_blocked(display, pin)) in get_blocked_hpd_pin_mask()
383 hpd_pin_mask |= BIT(pin); in get_blocked_hpd_pin_mask()
411 enum hpd_pin pin = encoder->hpd_pin; in i915_digport_work_func() local
418 long_hpd = long_hpd_pin_mask & BIT(pin); in i915_digport_work_func()
419 short_hpd = short_hpd_pin_mask & BIT(pin); in i915_digport_work_func()
429 old_bits |= BIT(pin); in i915_digport_work_func()
506 enum hpd_pin pin; in i915_hotplug_work_func() local
509 pin = intel_connector_hpd_pin(connector); in i915_hotplug_work_func()
510 if (pin == HPD_NONE) in i915_hotplug_work_func()
513 hpd_bit = BIT(pin); in i915_hotplug_work_func()
525 connector->base.name, pin, in i915_hotplug_work_func()
594 enum hpd_pin pin; in intel_hpd_irq_handler() local
610 pin = encoder->hpd_pin; in intel_hpd_irq_handler()
611 if (!(BIT(pin) & pin_mask)) in intel_hpd_irq_handler()
617 long_hpd = long_mask & BIT(pin); in intel_hpd_irq_handler()
624 if (!hpd_pin_is_blocked(display, pin)) in intel_hpd_irq_handler()
628 long_hpd_pulse_mask |= BIT(pin); in intel_hpd_irq_handler()
629 display->hotplug.long_hpd_pin_mask |= BIT(pin); in intel_hpd_irq_handler()
631 short_hpd_pulse_mask |= BIT(pin); in intel_hpd_irq_handler()
632 display->hotplug.short_hpd_pin_mask |= BIT(pin); in intel_hpd_irq_handler()
637 for_each_hpd_pin(pin) { in intel_hpd_irq_handler()
640 if (!(BIT(pin) & pin_mask)) in intel_hpd_irq_handler()
643 if (display->hotplug.stats[pin].state == HPD_DISABLED) { in intel_hpd_irq_handler()
652 pin); in intel_hpd_irq_handler()
656 if (display->hotplug.stats[pin].state != HPD_ENABLED) in intel_hpd_irq_handler()
664 if (((short_hpd_pulse_mask | long_hpd_pulse_mask) & BIT(pin))) { in intel_hpd_irq_handler()
665 long_hpd = long_hpd_pulse_mask & BIT(pin); in intel_hpd_irq_handler()
667 display->hotplug.event_bits |= BIT(pin); in intel_hpd_irq_handler()
670 if (!hpd_pin_is_blocked(display, pin)) in intel_hpd_irq_handler()
674 if (intel_hpd_irq_storm_detect(display, pin, long_hpd)) { in intel_hpd_irq_handler()
675 display->hotplug.event_bits &= ~BIT(pin); in intel_hpd_irq_handler()
811 enum hpd_pin pin; in i915_hpd_poll_init_work() local
813 pin = intel_connector_hpd_pin(connector); in i915_hpd_poll_init_work()
814 if (pin == HPD_NONE) in i915_hpd_poll_init_work()
817 if (display->hotplug.stats[pin].state == HPD_DISABLED) in i915_hpd_poll_init_work()
998 enum hpd_pin pin; in queue_work_for_missed_irqs() local
1006 for_each_hpd_pin(pin) { in queue_work_for_missed_irqs()
1007 switch (display->hotplug.stats[pin].state) { in queue_work_for_missed_irqs()
1015 MISSING_CASE(display->hotplug.stats[pin].state); in queue_work_for_missed_irqs()
1026 static bool block_hpd_pin(struct intel_display *display, enum hpd_pin pin) in block_hpd_pin() argument
1032 hotplug->stats[pin].blocked_count++; in block_hpd_pin()
1034 return hotplug->stats[pin].blocked_count == 1; in block_hpd_pin()
1037 static bool unblock_hpd_pin(struct intel_display *display, enum hpd_pin pin) in unblock_hpd_pin() argument
1043 if (drm_WARN_ON(display->drm, hotplug->stats[pin].blocked_count == 0)) in unblock_hpd_pin()
1046 hotplug->stats[pin].blocked_count--; in unblock_hpd_pin()
1048 return hotplug->stats[pin].blocked_count == 0; in unblock_hpd_pin()
1131 enum hpd_pin pin = encoder->hpd_pin; in intel_hpd_clear_and_unblock() local
1133 if (pin == HPD_NONE) in intel_hpd_clear_and_unblock()
1138 if (unblock_hpd_pin(display, pin)) { in intel_hpd_clear_and_unblock()
1139 hotplug->event_bits &= ~BIT(pin); in intel_hpd_clear_and_unblock()
1140 hotplug->retry_bits &= ~BIT(pin); in intel_hpd_clear_and_unblock()
1141 hotplug->short_hpd_pin_mask &= ~BIT(pin); in intel_hpd_clear_and_unblock()
1142 hotplug->long_hpd_pin_mask &= ~BIT(pin); in intel_hpd_clear_and_unblock()